]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2002-12-23 David Carlton <carlton@math.stanford.edu>
authorDavid Carlton <carlton@bactrian.org>
Mon, 23 Dec 2002 19:39:59 +0000 (19:39 +0000)
committerDavid Carlton <carlton@bactrian.org>
Mon, 23 Dec 2002 19:39:59 +0000 (19:39 +0000)
* Merge from mainline; tag is carlton_dictionary-20021223-merge.

960 files changed:
COPYING.NEWLIB
ChangeLog
Makefile.in
bfd/ChangeLog
bfd/Makefile.am
bfd/Makefile.in
bfd/acinclude.m4
bfd/aclocal.m4
bfd/aix386-core.c
bfd/aix5ppc-core.c
bfd/aout-adobe.c
bfd/aout-arm.c
bfd/aout-cris.c
bfd/aout-encap.c
bfd/aout-ns32k.c
bfd/aout-target.h
bfd/aout-tic30.c
bfd/aoutf1.h
bfd/aoutx.h
bfd/archive.c
bfd/archive64.c
bfd/archures.c
bfd/bfd-in.h
bfd/bfd-in2.h
bfd/bfd.c
bfd/binary.c
bfd/bout.c
bfd/cache.c
bfd/cisco-core.c
bfd/coff-a29k.c
bfd/coff-alpha.c
bfd/coff-apollo.c
bfd/coff-arm.c
bfd/coff-aux.c
bfd/coff-h8300.c
bfd/coff-h8500.c
bfd/coff-i386.c
bfd/coff-i860.c
bfd/coff-i960.c
bfd/coff-ia64.c
bfd/coff-m68k.c
bfd/coff-m88k.c
bfd/coff-mcore.c
bfd/coff-mips.c
bfd/coff-or32.c
bfd/coff-ppc.c
bfd/coff-rs6000.c
bfd/coff-sh.c
bfd/coff-sparc.c
bfd/coff-stgo32.c
bfd/coff-tic30.c
bfd/coff-tic4x.c
bfd/coff-tic54x.c
bfd/coff-tic80.c
bfd/coff-w65.c
bfd/coff-we32k.c
bfd/coff-z8k.c
bfd/coff64-rs6000.c
bfd/coffcode.h
bfd/coffgen.c
bfd/cofflink.c
bfd/configure
bfd/configure.host
bfd/configure.in
bfd/corefile.c
bfd/cpu-a29k.c
bfd/cpu-alpha.c
bfd/cpu-arc.c
bfd/cpu-arm.c
bfd/cpu-avr.c
bfd/cpu-cris.c
bfd/cpu-d10v.c
bfd/cpu-d30v.c
bfd/cpu-dlx.c
bfd/cpu-fr30.c
bfd/cpu-frv.c
bfd/cpu-h8300.c
bfd/cpu-h8500.c
bfd/cpu-hppa.c
bfd/cpu-i370.c
bfd/cpu-i386.c
bfd/cpu-i860.c
bfd/cpu-i960.c
bfd/cpu-ia64-opc.c
bfd/cpu-ia64.c
bfd/cpu-ip2k.c
bfd/cpu-m10200.c
bfd/cpu-m10300.c
bfd/cpu-m32r.c
bfd/cpu-m68hc11.c
bfd/cpu-m68hc12.c
bfd/cpu-m68k.c
bfd/cpu-m88k.c
bfd/cpu-mcore.c
bfd/cpu-mips.c
bfd/cpu-mmix.c
bfd/cpu-ns32k.c
bfd/cpu-openrisc.c
bfd/cpu-or32.c
bfd/cpu-pdp11.c
bfd/cpu-pj.c
bfd/cpu-powerpc.c
bfd/cpu-rs6000.c
bfd/cpu-s390.c
bfd/cpu-sh.c
bfd/cpu-sparc.c
bfd/cpu-tic30.c
bfd/cpu-tic4x.c
bfd/cpu-tic54x.c
bfd/cpu-tic80.c
bfd/cpu-v850.c
bfd/cpu-vax.c
bfd/cpu-w65.c
bfd/cpu-we32k.c
bfd/cpu-xstormy16.c
bfd/cpu-z8k.c
bfd/doc/ChangeLog
bfd/doc/Makefile.am
bfd/doc/Makefile.in
bfd/doc/bfd.texinfo
bfd/doc/bfdint.texi
bfd/dwarf1.c
bfd/dwarf2.c
bfd/ecoff.c
bfd/ecofflink.c
bfd/efi-app-ia32.c
bfd/efi-app-ia64.c
bfd/elf-bfd.h
bfd/elf-eh-frame.c
bfd/elf-hppa.h
bfd/elf-m10200.c
bfd/elf-m10300.c
bfd/elf-strtab.c
bfd/elf.c
bfd/elf32-arc.c
bfd/elf32-arm.h
bfd/elf32-avr.c
bfd/elf32-cris.c
bfd/elf32-d10v.c
bfd/elf32-d30v.c
bfd/elf32-dlx.c
bfd/elf32-fr30.c
bfd/elf32-frv.c
bfd/elf32-gen.c
bfd/elf32-h8300.c
bfd/elf32-hppa.c
bfd/elf32-hppa.h
bfd/elf32-i370.c
bfd/elf32-i386.c
bfd/elf32-i860.c
bfd/elf32-i960.c
bfd/elf32-ip2k.c
bfd/elf32-m32r.c
bfd/elf32-m68hc11.c
bfd/elf32-m68hc12.c
bfd/elf32-m68k.c
bfd/elf32-mcore.c
bfd/elf32-mips.c
bfd/elf32-openrisc.c
bfd/elf32-or32.c
bfd/elf32-pj.c
bfd/elf32-ppc.c
bfd/elf32-s390.c
bfd/elf32-sh.c
bfd/elf32-sh64-com.c
bfd/elf32-sh64.c
bfd/elf32-sparc.c
bfd/elf32-v850.c
bfd/elf32-vax.c
bfd/elf32-xstormy16.c
bfd/elf64-alpha.c
bfd/elf64-gen.c
bfd/elf64-hppa.c
bfd/elf64-mips.c
bfd/elf64-mmix.c
bfd/elf64-ppc.c
bfd/elf64-ppc.h
bfd/elf64-s390.c
bfd/elf64-sh64.c
bfd/elf64-sparc.c
bfd/elf64-x86-64.c
bfd/elfarm-nabi.c
bfd/elfarm-oabi.c
bfd/elfcode.h
bfd/elfcore.h
bfd/elflink.c
bfd/elflink.h
bfd/elfn32-mips.c
bfd/elfxx-ia64.c
bfd/elfxx-mips.c
bfd/elfxx-mips.h
bfd/elfxx-target.h
bfd/format.c
bfd/freebsd.h
bfd/genlink.h
bfd/hash.c
bfd/hp300hpux.c
bfd/hppabsd-core.c
bfd/hpux-core.c
bfd/i386aout.c
bfd/i386linux.c
bfd/i386lynx.c
bfd/i386mach3.c
bfd/i386msdos.c
bfd/i386os9k.c
bfd/ieee.c
bfd/ihex.c
bfd/irix-core.c
bfd/libaout.h
bfd/libbfd-in.h
bfd/libbfd.c
bfd/libbfd.h
bfd/libcoff-in.h
bfd/libcoff.h
bfd/libecoff.h
bfd/libieee.h
bfd/libnlm.h
bfd/liboasys.h
bfd/libpei.h
bfd/libxcoff.h
bfd/linker.c
bfd/lynx-core.c
bfd/m68klinux.c
bfd/m68klynx.c
bfd/mach-o.c
bfd/mach-o.h
bfd/merge.c
bfd/mipsbsd.c
bfd/mmo.c
bfd/netbsd-core.c
bfd/netbsd.h
bfd/nlm.c
bfd/nlm32-alpha.c
bfd/nlm32-i386.c
bfd/nlm32-ppc.c
bfd/nlm32-sparc.c
bfd/nlmcode.h
bfd/oasys.c
bfd/opncls.c
bfd/osf-core.c
bfd/pc532-mach.c
bfd/pdp11.c
bfd/pe-arm.c
bfd/pe-i386.c
bfd/pe-mcore.c
bfd/pe-mips.c
bfd/pe-sh.c
bfd/peXXigen.c
bfd/pef.c
bfd/pei-arm.c
bfd/pei-i386.c
bfd/pei-mcore.c
bfd/pei-mips.c
bfd/pei-sh.c
bfd/peicode.h
bfd/po/SRC-POTFILES.in
bfd/ppcboot.c
bfd/ptrace-core.c
bfd/reloc.c
bfd/reloc16.c
bfd/riscix.c
bfd/rs6000-core.c
bfd/sco5-core.c
bfd/section.c
bfd/simple.c
bfd/som.c
bfd/som.h
bfd/sparclinux.c
bfd/sparclynx.c
bfd/srec.c
bfd/stabs.c
bfd/sunos.c
bfd/syms.c
bfd/targets.c
bfd/tekhex.c
bfd/ticoff.h
bfd/trad-core.c
bfd/versados.c
bfd/version.h
bfd/vms-gsd.c
bfd/vms-hdr.c
bfd/vms-misc.c
bfd/vms-tir.c
bfd/vms.c
bfd/vms.h
bfd/xcoff-target.h
bfd/xcofflink.c
bfd/xsym.c
bfd/xsym.h
config/ChangeLog
config/mh-cygwin
configure
configure.in
gdb/ChangeLog
gdb/MAINTAINERS
gdb/Makefile.in
gdb/NEWS
gdb/abug-rom.c
gdb/acconfig.h
gdb/acinclude.m4
gdb/aclocal.m4
gdb/ada-lang.c
gdb/ada-tasks.c
gdb/alpha-linux-tdep.c
gdb/alpha-nat.c
gdb/alpha-osf1-tdep.c
gdb/alpha-tdep.c
gdb/alphafbsd-tdep.c
gdb/alphanbsd-tdep.c
gdb/arc-tdep.c [deleted file]
gdb/arch-utils.c
gdb/arch-utils.h
gdb/arm-linux-tdep.c
gdb/arm-tdep.c
gdb/armnbsd-tdep.c
gdb/avr-tdep.c
gdb/ax-gdb.c
gdb/blockframe.c
gdb/breakpoint.c
gdb/breakpoint.h
gdb/buildsym.c
gdb/buildsym.h
gdb/c-typeprint.c
gdb/ch-exp.c [deleted file]
gdb/ch-lang.c [deleted file]
gdb/ch-lang.h [deleted file]
gdb/ch-typeprint.c [deleted file]
gdb/ch-valprint.c [deleted file]
gdb/cli/cli-cmds.c
gdb/cli/cli-dump.c
gdb/cli/cli-setshow.c
gdb/coffread.c
gdb/complaints.h
gdb/completer.c
gdb/completer.h
gdb/config.in
gdb/config/alpha/alpha-linux.mh
gdb/config/arc/arc.mt [deleted file]
gdb/config/arc/tm-arc.h [deleted file]
gdb/config/d30v/d30v.mt [deleted file]
gdb/config/d30v/tm-d30v.h [deleted file]
gdb/config/fr30/fr30.mt [deleted file]
gdb/config/fr30/tm-fr30.h [deleted file]
gdb/config/h8500/tm-h8500.h
gdb/config/i386/i386aix.mh [deleted file]
gdb/config/i386/i386aix.mt [deleted file]
gdb/config/i386/i386m3.mh [deleted file]
gdb/config/i386/i386m3.mt [deleted file]
gdb/config/i386/i386mach.mh [deleted file]
gdb/config/i386/i386os9k.mt [deleted file]
gdb/config/i386/nm-i386aix.h [deleted file]
gdb/config/i386/nm-i386mach.h [deleted file]
gdb/config/i386/nm-m3.h [deleted file]
gdb/config/i386/tm-cygwin.h
gdb/config/i386/tm-i386aix.h [deleted file]
gdb/config/i386/tm-i386m3.h [deleted file]
gdb/config/i386/tm-i386mk.h [deleted file]
gdb/config/i386/x86-64linux.mt
gdb/config/i386/xm-i386aix.h [deleted file]
gdb/config/i386/xm-i386m3.h [deleted file]
gdb/config/i386/xm-i386mach.h [deleted file]
gdb/config/i386/xm-i386mk.h [deleted file]
gdb/config/i960/mon960.mt [deleted file]
gdb/config/i960/nindy960.mt [deleted file]
gdb/config/i960/tm-i960.h [deleted file]
gdb/config/i960/tm-mon960.h [deleted file]
gdb/config/i960/tm-nindy960.h [deleted file]
gdb/config/i960/tm-vx960.h [deleted file]
gdb/config/i960/vxworks960.mt [deleted file]
gdb/config/m32r/tm-m32r.h
gdb/config/m68k/apollo68b.mh [deleted file]
gdb/config/m68k/apollo68b.mt [deleted file]
gdb/config/m68k/apollo68v.mh [deleted file]
gdb/config/m68k/hp300bsd.mh [deleted file]
gdb/config/m68k/hp300bsd.mt [deleted file]
gdb/config/m68k/hp300hpux.mh [deleted file]
gdb/config/m68k/hp300hpux.mt [deleted file]
gdb/config/m68k/linux.mt
gdb/config/m68k/tm-linux.h
gdb/config/m68k/tm-m68k.h
gdb/config/m88k/delta88.mh [deleted file]
gdb/config/m88k/delta88.mt [deleted file]
gdb/config/m88k/delta88v4.mh [deleted file]
gdb/config/m88k/delta88v4.mt [deleted file]
gdb/config/m88k/m88k.mh [deleted file]
gdb/config/m88k/m88k.mt [deleted file]
gdb/config/m88k/nm-delta88v4.h [deleted file]
gdb/config/m88k/nm-m88k.h [deleted file]
gdb/config/m88k/tm-delta88.h [deleted file]
gdb/config/m88k/tm-delta88v4.h [deleted file]
gdb/config/m88k/tm-m88k.h [deleted file]
gdb/config/m88k/xm-delta88.h [deleted file]
gdb/config/m88k/xm-dgux.h [deleted file]
gdb/config/mips/tm-irix3.h
gdb/config/mips/tm-irix6.h
gdb/config/mips/tm-linux.h
gdb/config/mips/tm-mips.h
gdb/config/mn10200/tm-mn10200.h
gdb/config/nm-linux.h
gdb/config/pa/hppa64.mt
gdb/config/pa/hppahpux.mt
gdb/config/pa/nm-hppab.h
gdb/config/pa/nm-hppah.h
gdb/config/pa/nm-hppao.h
gdb/config/pa/tm-hppa.h
gdb/config/pa/tm-hppah.h
gdb/config/powerpc/aix432.mh
gdb/config/rs6000/tm-rs6000.h
gdb/config/sparc/tm-sp64.h
gdb/config/sparc/tm-sparc.h
gdb/config/z8k/tm-z8k.h
gdb/configure
gdb/configure.in
gdb/corelow.c
gdb/cpu32bug-rom.c
gdb/cris-tdep.c
gdb/cxux-nat.c [deleted file]
gdb/d10v-tdep.c
gdb/d30v-tdep.c [deleted file]
gdb/dbug-rom.c
gdb/dbxread.c
gdb/defs.h
gdb/doc/ChangeLog
gdb/doc/Makefile.in
gdb/doc/agentexpr.texi
gdb/doc/annotate.texi
gdb/doc/fdl.texi
gdb/doc/gdbint.texinfo
gdb/doublest.c
gdb/dst.h [deleted file]
gdb/dstread.c [deleted file]
gdb/dummy-frame.c
gdb/dummy-frame.h
gdb/dve3900-rom.c
gdb/dwarf2cfi.c
gdb/dwarf2cfi.h
gdb/dwarf2read.c
gdb/dwarfread.c
gdb/elfread.c
gdb/eval.c
gdb/exec.c
gdb/expprint.c
gdb/expression.h
gdb/f-valprint.c
gdb/findvar.c
gdb/fork-child.c
gdb/fr30-tdep.c [deleted file]
gdb/frame.c
gdb/frame.h
gdb/frv-tdep.c
gdb/gdbarch.c
gdb/gdbarch.h
gdb/gdbarch.sh
gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-arm-low.c
gdb/gdbserver/linux-low.c
gdb/gdbserver/linux-s390-low.c
gdb/gdbthread.h
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/h8300-tdep.c
gdb/h8500-tdep.c
gdb/hppa-tdep.c
gdb/hppah-nat.c
gdb/hpread.c
gdb/i386-interix-tdep.c
gdb/i386-linux-tdep.c
gdb/i386-sol2-tdep.c
gdb/i386-tdep.c
gdb/i386aix-nat.c [deleted file]
gdb/i386bsd-tdep.c
gdb/i386gnu-tdep.c
gdb/i386ly-tdep.c
gdb/i386m3-nat.c [deleted file]
gdb/i386mach-nat.c [deleted file]
gdb/i386nbsd-tdep.c
gdb/i386obsd-tdep.c
gdb/i960-tdep.c [deleted file]
gdb/ia64-linux-nat.c
gdb/ia64-tdep.c
gdb/infcmd.c
gdb/inferior.h
gdb/inflow.c
gdb/infrun.c
gdb/inftarg.c
gdb/infttrace.c
gdb/lin-lwp.c
gdb/linux-proc.c
gdb/m32r-tdep.c
gdb/m68hc11-tdep.c
gdb/m68k-tdep.c
gdb/m68klinux-nat.c
gdb/m88k-nat.c [deleted file]
gdb/m88k-tdep.c [deleted file]
gdb/macroscope.c
gdb/macrotab.c
gdb/maint.c
gdb/mcore-tdep.c
gdb/mdebugread.c
gdb/mi/ChangeLog
gdb/mi/gdbmi.texinfo
gdb/mi/mi-cmd-stack.c
gdb/mi/mi-cmds.c
gdb/mi/mi-cmds.h
gdb/mi/mi-main.c
gdb/mips-irix-tdep.c
gdb/mips-linux-tdep.c
gdb/mips-tdep.c
gdb/mipsnbsd-tdep.c
gdb/mn10200-tdep.c
gdb/mn10300-tdep.c
gdb/ns32k-tdep.c
gdb/ns32knbsd-tdep.c
gdb/objc-exp.y
gdb/objc-lang.c
gdb/objc-lang.h
gdb/ocd.c
gdb/os9kread.c [deleted file]
gdb/osabi.c
gdb/osabi.h
gdb/p-exp.y
gdb/pa64solib.c
gdb/parse.c
gdb/parser-defs.h
gdb/ppc-linux-nat.c
gdb/ppc-linux-tdep.c
gdb/ppcnbsd-tdep.c
gdb/printcmd.c
gdb/regcache.h
gdb/remote-bug.c [deleted file]
gdb/remote-e7000.c
gdb/remote-est.c
gdb/remote-mips.c
gdb/remote-nindy.c [deleted file]
gdb/remote-nrom.c [deleted file]
gdb/remote-os9k.c [deleted file]
gdb/remote-rdp.c
gdb/remote-vx.c
gdb/remote-vx960.c [deleted file]
gdb/rom68k-rom.c
gdb/rs6000-tdep.c
gdb/s390-tdep.c
gdb/sh-tdep.c
gdb/shnbsd-tdep.c
gdb/solib-svr4.c
gdb/solib.c
gdb/somsolib.c
gdb/source.c
gdb/sparc-nat.c
gdb/sparc-tdep.c
gdb/sparcnbsd-tdep.c
gdb/stabsread.c
gdb/stabsread.h
gdb/stack.c
gdb/std-regs.c
gdb/symfile.c
gdb/symmisc.c
gdb/symtab.h
gdb/target.c
gdb/target.h
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/attach.exp
gdb/testsuite/gdb.base/foll-vfork.exp
gdb/testsuite/gdb.base/maint.exp
gdb/testsuite/gdb.base/selftest.exp
gdb/testsuite/gdb.base/step-test.exp
gdb/testsuite/gdb.c++/annota2.exp
gdb/testsuite/gdb.c++/m-data.cc
gdb/testsuite/gdb.c++/m-data.exp
gdb/testsuite/gdb.c++/try_catch.cc
gdb/testsuite/gdb.c++/try_catch.exp
gdb/testsuite/gdb.chill/ChangeLog [deleted file]
gdb/testsuite/gdb.chill/Makefile.in [deleted file]
gdb/testsuite/gdb.chill/builtins.ch [deleted file]
gdb/testsuite/gdb.chill/builtins.exp [deleted file]
gdb/testsuite/gdb.chill/callch.ch [deleted file]
gdb/testsuite/gdb.chill/callch.exp [deleted file]
gdb/testsuite/gdb.chill/chexp.exp [deleted file]
gdb/testsuite/gdb.chill/chillvars.ch [deleted file]
gdb/testsuite/gdb.chill/chillvars.exp [deleted file]
gdb/testsuite/gdb.chill/configure [deleted file]
gdb/testsuite/gdb.chill/configure.in [deleted file]
gdb/testsuite/gdb.chill/enum.ch [deleted file]
gdb/testsuite/gdb.chill/enum.exp [deleted file]
gdb/testsuite/gdb.chill/func1.ch [deleted file]
gdb/testsuite/gdb.chill/gch1041.ch [deleted file]
gdb/testsuite/gdb.chill/gch1041.exp [deleted file]
gdb/testsuite/gdb.chill/gch1272.ch [deleted file]
gdb/testsuite/gdb.chill/gch1272.exp [deleted file]
gdb/testsuite/gdb.chill/gch1280.ch [deleted file]
gdb/testsuite/gdb.chill/gch1280.exp [deleted file]
gdb/testsuite/gdb.chill/gch922.ch [deleted file]
gdb/testsuite/gdb.chill/gch922.exp [deleted file]
gdb/testsuite/gdb.chill/gch981.ch [deleted file]
gdb/testsuite/gdb.chill/gch981.exp [deleted file]
gdb/testsuite/gdb.chill/misc.ch [deleted file]
gdb/testsuite/gdb.chill/misc.exp [deleted file]
gdb/testsuite/gdb.chill/powerset.ch [deleted file]
gdb/testsuite/gdb.chill/powerset.exp [deleted file]
gdb/testsuite/gdb.chill/pr-4975-grt.ch [deleted file]
gdb/testsuite/gdb.chill/pr-4975.ch [deleted file]
gdb/testsuite/gdb.chill/pr-4975.exp [deleted file]
gdb/testsuite/gdb.chill/pr-5016.ch [deleted file]
gdb/testsuite/gdb.chill/pr-5016.exp [deleted file]
gdb/testsuite/gdb.chill/pr-5020.ch [deleted file]
gdb/testsuite/gdb.chill/pr-5020.exp [deleted file]
gdb/testsuite/gdb.chill/pr-5022.ch [deleted file]
gdb/testsuite/gdb.chill/pr-5022.exp [deleted file]
gdb/testsuite/gdb.chill/pr-5646-grt.ch [deleted file]
gdb/testsuite/gdb.chill/pr-5646.ch [deleted file]
gdb/testsuite/gdb.chill/pr-5646.exp [deleted file]
gdb/testsuite/gdb.chill/pr-5984.ch [deleted file]
gdb/testsuite/gdb.chill/pr-5984.exp [deleted file]
gdb/testsuite/gdb.chill/pr-6292.ch [deleted file]
gdb/testsuite/gdb.chill/pr-6292.exp [deleted file]
gdb/testsuite/gdb.chill/pr-6632-grt.ch [deleted file]
gdb/testsuite/gdb.chill/pr-6632.ch [deleted file]
gdb/testsuite/gdb.chill/pr-6632.exp [deleted file]
gdb/testsuite/gdb.chill/pr-8134.exp [deleted file]
gdb/testsuite/gdb.chill/pr-8136.ch [deleted file]
gdb/testsuite/gdb.chill/pr-8136.exp [deleted file]
gdb/testsuite/gdb.chill/pr-8405.ch [deleted file]
gdb/testsuite/gdb.chill/pr-8405.exp [deleted file]
gdb/testsuite/gdb.chill/pr-8742.ch [deleted file]
gdb/testsuite/gdb.chill/pr-8742.exp [deleted file]
gdb/testsuite/gdb.chill/pr-8894-grt.ch [deleted file]
gdb/testsuite/gdb.chill/pr-8894.ch [deleted file]
gdb/testsuite/gdb.chill/pr-8894.exp [deleted file]
gdb/testsuite/gdb.chill/pr-9095.ch [deleted file]
gdb/testsuite/gdb.chill/pr-9095.exp [deleted file]
gdb/testsuite/gdb.chill/pr-9946.ch [deleted file]
gdb/testsuite/gdb.chill/pr-9946.exp [deleted file]
gdb/testsuite/gdb.chill/result.ch [deleted file]
gdb/testsuite/gdb.chill/result.exp [deleted file]
gdb/testsuite/gdb.chill/string.ch [deleted file]
gdb/testsuite/gdb.chill/string.exp [deleted file]
gdb/testsuite/gdb.chill/tests1.ch [deleted file]
gdb/testsuite/gdb.chill/tests1.exp [deleted file]
gdb/testsuite/gdb.chill/tests2.ch [deleted file]
gdb/testsuite/gdb.chill/tests2.exp [deleted file]
gdb/testsuite/gdb.chill/tuples.ch [deleted file]
gdb/testsuite/gdb.chill/tuples.exp [deleted file]
gdb/testsuite/gdb.chill/xstruct-grt.ch [deleted file]
gdb/testsuite/gdb.chill/xstruct.ch [deleted file]
gdb/testsuite/gdb.chill/xstruct.exp [deleted file]
gdb/testsuite/gdb.fortran/exprs.exp
gdb/testsuite/gdb.fortran/types.exp
gdb/testsuite/gdb.mi/ChangeLog
gdb/testsuite/gdb.mi/mi-basics.exp
gdb/testsuite/gdb.trace/tfind.exp
gdb/testsuite/lib/gdb.exp
gdb/testsuite/lib/mi-support.exp
gdb/thread-db.c
gdb/thread.c
gdb/top.c
gdb/tracepoint.c
gdb/tui/ChangeLog
gdb/tui/tui-hooks.c
gdb/tui/tui.c
gdb/tui/tuiDisassem.c
gdb/tui/tuiRegs.c
gdb/tui/tuiSource.c
gdb/tui/tuiSourceWin.c
gdb/tui/tuiStack.c
gdb/tui/tuiWin.c
gdb/ui-out.c
gdb/utils.c
gdb/v850-tdep.c
gdb/valops.c
gdb/varobj.c
gdb/vax-tdep.c
gdb/version.in
gdb/win32-nat.c
gdb/x86-64-linux-nat.c
gdb/x86-64-linux-tdep.c
gdb/x86-64-tdep.c
gdb/x86-64-tdep.h
gdb/xcoffread.c
gdb/xstormy16-tdep.c
gdb/z8k-tdep.c
include/ChangeLog
include/bfdlink.h
include/coff/ChangeLog
include/coff/ecoff.h
include/coff/xcoff.h
include/elf/ChangeLog
include/elf/dwarf2.h
include/elf/internal.h
include/elf/m68hc11.h
include/elf/mmix.h
include/elf/sh.h
include/elf/xstormy16.h
include/libiberty.h
include/opcode/ChangeLog
include/opcode/arc.h
include/opcode/cgen.h
include/opcode/h8300.h
include/opcode/hppa.h
include/opcode/i860.h
include/opcode/ia64.h
include/opcode/m88k.h
include/opcode/ns32k.h
include/opcode/pj.h
include/opcode/tic4x.h
libiberty/ChangeLog
libiberty/Makefile.in
libiberty/functions.texi
libiberty/md5.c
ltcf-c.sh
ltcf-gcj.sh
mmalloc/ChangeLog
mmalloc/Makefile.in
opcodes/ChangeLog
opcodes/Makefile.am
opcodes/Makefile.in
opcodes/arc-opc.c
opcodes/arm-dis.c
opcodes/arm-opc.h
opcodes/avr-dis.c
opcodes/cgen-asm.c
opcodes/cgen-dis.in
opcodes/cris-dis.c
opcodes/fr30-desc.c
opcodes/fr30-dis.c
opcodes/frv-desc.c
opcodes/frv-dis.c
opcodes/h8300-dis.c
opcodes/h8500-dis.c
opcodes/h8500-opc.h
opcodes/i386-dis.c
opcodes/ia64-asmtab.c
opcodes/ia64-dis.c
opcodes/ia64-gen.c
opcodes/ia64-ic.tbl
opcodes/ia64-opc-b.c
opcodes/ia64-opc-d.c
opcodes/ia64-opc-f.c
opcodes/ia64-opc-i.c
opcodes/ia64-opc-m.c
opcodes/ia64-opc-x.c
opcodes/ia64-opc.h
opcodes/ia64-raw.tbl
opcodes/ia64-waw.tbl
opcodes/ip2k-asm.c
opcodes/ip2k-desc.c
opcodes/ip2k-dis.c
opcodes/ip2k-opc.c
opcodes/ip2k-opc.h
opcodes/m32r-desc.c
opcodes/m32r-dis.c
opcodes/m68hc11-dis.c
opcodes/m88k-dis.c
opcodes/mcore-dis.c
opcodes/mcore-opc.h
opcodes/mips-dis.c
opcodes/mips-opc.c
opcodes/mmix-dis.c
opcodes/ns32k-dis.c
opcodes/openrisc-desc.c
opcodes/openrisc-dis.c
opcodes/pdp11-dis.c
opcodes/pj-dis.c
opcodes/pj-opc.c
opcodes/ppc-opc.c
opcodes/sh-dis.c
opcodes/sh-opc.h
opcodes/sh64-dis.c
opcodes/tic30-dis.c
opcodes/tic4x-dis.c
opcodes/v850-dis.c
opcodes/w65-dis.c
opcodes/w65-opc.h
opcodes/xstormy16-asm.c
opcodes/xstormy16-desc.c
opcodes/xstormy16-dis.c
opcodes/xstormy16-opc.c
opcodes/xstormy16-opc.h
opcodes/z8k-opc.h
opcodes/z8kgen.c
readline/CHANGELOG
readline/CHANGES
readline/ChangeLog.gdb
readline/INSTALL
readline/MANIFEST
readline/Makefile.in
readline/README
readline/aclocal.m4
readline/ansi_stdlib.h
readline/bind.c
readline/callback.c
readline/chardefs.h
readline/complete.c
readline/config.h.in
readline/configure
readline/configure.in
readline/cross-build/cygwin.cache
readline/display.c
readline/doc/Makefile.in
readline/doc/hist.texinfo
readline/doc/hstech.texinfo
readline/doc/hsuser.texinfo
readline/doc/manvers.texinfo
readline/doc/readline.3
readline/doc/rlman.texinfo
readline/doc/rltech.texinfo
readline/doc/rluser.texinfo
readline/doc/rluserman.texinfo
readline/doc/texi2dvi
readline/doc/texi2html
readline/emacs_keymap.c
readline/examples/Inputrc
readline/examples/Makefile.in
readline/examples/fileman.c
readline/examples/histexamp.c
readline/examples/manexamp.c
readline/examples/rl.c
readline/examples/rlfe.c
readline/examples/rltest.c
readline/examples/rlversion.c
readline/funmap.c
readline/histexpand.c
readline/histfile.c
readline/histlib.h
readline/history.c
readline/history.h
readline/histsearch.c
readline/input.c
readline/isearch.c
readline/keymaps.c
readline/keymaps.h
readline/kill.c
readline/macro.c
readline/nls.c
readline/parens.c
readline/posixdir.h
readline/readline.c
readline/readline.h
readline/rlconf.h
readline/rldefs.h
readline/rlprivate.h
readline/rlshell.h
readline/rlstdc.h
readline/rltty.c
readline/savestring.c
readline/search.c
readline/shell.c
readline/shlib/Makefile.in
readline/signals.c
readline/support/install.sh
readline/support/mkdirs
readline/support/mkdist
readline/support/shlib-install
readline/support/shobj-conf
readline/terminal.c
readline/tilde.c
readline/tilde.h
readline/undo.c
readline/util.c
readline/vi_keymap.c
readline/vi_mode.c
readline/xmalloc.c
readline/xmalloc.h
sim/common/ChangeLog
sim/common/dv-core.c
sim/common/dv-glue.c
sim/common/dv-pal.c
sim/common/hw-base.c
sim/common/hw-base.h
sim/common/hw-device.c
sim/common/hw-device.h
sim/common/hw-handles.c
sim/common/hw-handles.h
sim/common/hw-instances.c
sim/common/hw-instances.h
sim/common/hw-properties.c
sim/common/hw-properties.h
sim/common/hw-tree.c
sim/common/hw-tree.h
sim/common/sim-alu.h
sim/common/sim-basics.h
sim/common/sim-bits.c
sim/common/sim-bits.h
sim/common/sim-config.c
sim/common/sim-config.h
sim/common/sim-core.c
sim/common/sim-core.h
sim/common/sim-endian.c
sim/common/sim-endian.h
sim/common/sim-events.c
sim/common/sim-events.h
sim/common/sim-fpu.c
sim/common/sim-inline.c
sim/common/sim-inline.h
sim/common/sim-io.c
sim/common/sim-io.h
sim/common/sim-n-bits.h
sim/common/sim-n-core.h
sim/common/sim-n-endian.h
sim/common/sim-types.h
sim/igen/ChangeLog
sim/igen/Makefile.in
sim/igen/filter.c
sim/igen/filter.h
sim/igen/filter_host.c
sim/igen/filter_host.h
sim/igen/gen-engine.c
sim/igen/gen-engine.h
sim/igen/gen-icache.c
sim/igen/gen-icache.h
sim/igen/gen-idecode.c
sim/igen/gen-idecode.h
sim/igen/gen-itable.c
sim/igen/gen-itable.h
sim/igen/gen-model.c
sim/igen/gen-model.h
sim/igen/gen-semantics.c
sim/igen/gen-semantics.h
sim/igen/gen-support.c
sim/igen/gen-support.h
sim/igen/gen.c
sim/igen/gen.h
sim/igen/igen.c
sim/igen/igen.h
sim/igen/ld-cache.c
sim/igen/ld-cache.h
sim/igen/ld-decode.c
sim/igen/ld-decode.h
sim/igen/ld-insn.c
sim/igen/ld-insn.h
sim/igen/lf.c
sim/igen/lf.h
sim/igen/misc.c
sim/igen/misc.h
sim/igen/table.c
sim/igen/table.h
sim/m32r/ChangeLog
sim/m32r/arch.c
sim/m32r/arch.h
sim/m32r/cpu.c
sim/m32r/cpu.h
sim/m32r/cpuall.h
sim/m32r/cpux.c
sim/m32r/cpux.h
sim/m32r/decode.c
sim/m32r/decode.h
sim/m32r/decodex.c
sim/m32r/decodex.h
sim/m32r/model.c
sim/m32r/modelx.c
sim/m32r/sem-switch.c
sim/m32r/sem.c
sim/m32r/semx-switch.c
sim/mips/ChangeLog
sim/mips/tconfig.in
sim/mn10300/ChangeLog
sim/mn10300/Makefile.in
sim/mn10300/sim-main.h
sim/v850/ChangeLog
sim/v850/sim-main.h
sim/v850/simops.c

index 25badedcb3542288f85cfce2401f4c4e16bb6e11..145e2f026bf50963a374b0b0a155985274c5473a 100644 (file)
@@ -1,8 +1,24 @@
 The newlib subdirectory is a collection of software from several sources.
-Each have their own copyrights embedded in each file that they concern.
+Each file may have its own copyright/license that is embedded in the source 
+file.
+
+This list documents those licenses which are more restrictive than
+a BSD-like license or require the copyright notice
+to be duplicated in documentation and/or other materials associated with
+the distribution.  Certain licenses documented here only apply to
+specific targets.  Certain clauses only apply if you are building the
+code as part of your binary.
+
+Note that this list may omit certain licenses that
+only pertain to the copying/modifying of the individual source code. 
+If you are distributing the source code, then you do not need to
+worry about these omitted licenses, so long as you do not modify the
+copyright information already in place.
 
 (1) University of California, Berkeley
 
+[1a]
+
 Copyright (c) 1990 The Regents of the University of California.
 All rights reserved.
 
@@ -18,19 +34,162 @@ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
-(2) DJ Delorie (following only applies to go32 target)
+[1b]
 
-Copyright (C) 1991 DJ Delorie
+Copyright (c) 1990 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms are permitted
+provided that the above copyright notice and this paragraph are
+duplicated in all such forms and that any documentation,
+advertising materials, and other materials related to such
+distribution and use acknowledge that the software was developed
+by the University of California, Berkeley.  The name of the
+University may not be used to endorse or promote products derived
+from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
-This file is distributed under the terms listed in the document
-"copying.dj".
+[1c]
 
-A copy of "copying.dj" should accompany this file; if not, a copy
-should be available from where this file was obtained.  This file
-may not be distributed without a verbatim copy of "copying.dj".
+Copyright (c) 1981, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 
+The Regents of the University of California.
+All rights reserved.
 
-This file is distributed WITHOUT ANY WARRANTY; without even the implied
-warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+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. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by the University of
+     California, Berkeley and its contributors.
+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.
+
+[1d]
+
+Copyright (c) 1988, 1990, 1993 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. 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.
+
+[1e]
+
+Copyright (c) 1982, 1986, 1989, 1991, 1993, 1994
+The Regents of the University of California.  All rights reserved.
+(c) UNIX System Laboratories, Inc.
+All or some portions of this file are derived from material licensed
+to the University of California by American Telephone and Telegraph
+Co. or Unix System Laboratories, Inc. and are reproduced herein with
+the permission of UNIX System Laboratories, Inc.
+
+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. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by the University of
+     California, Berkeley and its contributors.
+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.
+
+[1f]
+
+Copyright (c) 1987, 1988, 2000 Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms are permitted
+provided that: (1) source distributions retain this entire copyright
+notice and comment, and (2) distributions including binaries display
+the following acknowledgement:  ``This product includes software
+developed by the University of California, Berkeley and its contributors''
+in the documentation or other materials provided with the distribution
+and in all advertising materials mentioning features or use of this
+software. 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+-------------------------------------------------------------
+ Please note that in some of the above alternate licenses, there is a
+ statement regarding that acknowledgement must be made in any
+ advertising materials for products using the code.  This restriction
+ no longer applies due to the following license change:
+
+  ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
+
+ In some cases the defunct clause has been removed in modified newlib code and
+ in some cases, the clause has been left as-is.
+-------------------------------------------------------------
+
+(2) Cygwin (cygwin targets only)
+
+Copyright 2001 Red Hat, Inc.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
+details.
 
 (3) David M. Gay at AT&T
 
@@ -166,8 +325,308 @@ 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.
 
-(12) Unless otherwise stated in each remaining newlib file, the remaining
-files in the newlib subdirectory are governed by the following copyright.
+(12) SuperH, Inc.
+
+Copyright 2002 SuperH, Inc. All rights reserved
+
+This software is the property of SuperH, Inc (SuperH) which specifically
+grants the user the right to modify, use and distribute this software
+provided this notice is not removed or altered.  All other rights are
+reserved by SuperH.
+
+SUPERH MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO
+THIS SOFTWARE.  IN NO EVENT SHALL SUPERH BE LIABLE FOR INDIRECT, SPECIAL, 
+INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING FROM
+THE FURNISHING, PERFORMANCE, OR USE OF THIS SOFTWARE.
+
+So that all may benefit from your experience, please report any problems
+or suggestions about this software to the SuperH Support Center via
+e-mail at softwaresupport@superh.com .
+
+SuperH, Inc.
+405 River Oaks Parkway
+San Jose
+CA 95134
+USA
+
+(13) Royal Institute of Technology
+
+Copyright (c) 1999 Kungliga Tekniska Högskolan
+(Royal Institute of Technology, Stockholm, Sweden).
+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. Neither the name of KTH 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 KTH AND ITS 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 KTH OR ITS 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.
+
+(14) Alexey Zelkin
+
+Copyright (c) 2000, 2001 Alexey Zelkin <phantom@FreeBSD.org>
+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.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+
+(15) Andrey A. Chernov
+
+Copyright (C) 1997 by Andrey A. Chernov, Moscow, Russia.
+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.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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.
+
+(16) FreeBSD
+
+Copyright (c) 1997-2002 FreeBSD Project.
+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.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+
+(17) S. L. Moshier
+
+Author:  S. L. Moshier.
+
+Copyright (c) 1984,2000 S.L. Moshier
+
+Permission to use, copy, modify, and distribute this software for any
+purpose without fee is hereby granted, provided that this entire notice
+is included in all copies of any software which is or includes a copy
+or modification of this software and in all copies of the supporting
+documentation for such software.
+
+THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
+OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
+SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+
+(18) Citrus Project
+
+Copyright (c)1999 Citrus Project,
+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.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+
+(19) Todd C. Miller
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+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. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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.
+
+(20) DJ Delorie (i386) 
+
+Copyright (C) 1991 DJ Delorie
+All rights reserved.
+
+Redistribution and use in source and binary forms is permitted
+provided that the above copyright notice and following paragraph are
+duplicated in all such forms.
+
+This file is distributed WITHOUT ANY WARRANTY; without even the implied
+warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+(21) Free Software Foundation LGPL License (i[3456]86-*-linux* targets only)
+
+   Copyright (C) 1990-1999, 2000, 2001 
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
+
+   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., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.
+
+(22) Xavier Leroy LGPL License (i[3456]86-*-linux* targets only)
+
+Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr)
+
+This program 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.
+                                                     
+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 Library General Public License for more details.
+
+(23) Intel (i960)
+
+Copyright (c) 1993 Intel Corporation
+
+Intel hereby grants you permission to copy, modify, and distribute this
+software and its documentation.  Intel grants this permission provided
+that the above copyright notice appears in all copies and that both the
+copyright notice and this permission notice appear in supporting
+documentation.  In addition, Intel grants this permission provided that
+you prominently mark as "not part of the original" any modifications
+made to this software or documentation, and that the name of Intel
+Corporation not be used in advertising or publicity pertaining to
+distribution of the software or the documentation without specific,
+written prior permission.
+
+Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR
+IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE.  Intel makes no guarantee or
+representations regarding the use of, or the results of the use of,
+the software and documentation in terms of correctness, accuracy,
+reliability, currentness, or otherwise; and you rely on the software,
+documentation and results solely at your own risk.
+
+IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS,
+LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES
+OF ANY KIND.  IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM
+PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER.
+
+(24) Hewlett-Packard  (hppa targets only)
+
+(c) Copyright 1986 HEWLETT-PACKARD COMPANY
+
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty:
+    permission to use, copy, modify, and distribute this file
+for any purpose is hereby granted without fee, provided that
+the above copyright notice and this notice appears in all
+copies, and that the name of Hewlett-Packard Company not be
+used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+Hewlett-Packard Company makes no representations about the
+suitability of this software for any purpose.
+
+(25) Red Hat Incorporated
+
+Unless otherwise stated in each remaining newlib file, the remaining
+files in the newlib subdirectory default to the following copyright.
+It should be noted that Red Hat Incorporated now owns copyrights
+belonging to Cygnus Solutions and Cygnus Support.
 
 Copyright (c) 1994, 1997, 2001, 2002 Red Hat Incorporated.
 All rights reserved.
index f36c879ea00f0c3e0e81adf9efd054d5903edb32..0f57aaa1e49de3f0a76dbe9e668cadd2c1b9635f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,250 @@
+2002-12-20  Jeff Johnston  <jjohnstn@redhat.com>
+
+       * COPYING.NEWLIB: Updated.
+       * COPYING.LIBGLOSS: Ditto.
+
+2002-12-19  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * Makefile.tpl: Revert HJL's change.
+       * Makefile.in: Regenerated.
+       * configure.in: Put build_prefix before $(BUILD_SUBDIR) here, and
+       always.
+
+2002-12-19  Andreas Schwab  <schwab@suse.de>
+
+       * Makefile.tpl, configure.in: Substitute libstdcxx_incdir.
+       * Makefile.in: Regenerate.
+
+2002-12-18  H.J. Lu <hjl@gnu.org>
+
+       * Makefile.tpl: Add @build_prefix@ before $(BUILD_SUBDIR).
+       * Makefile.in: Regenerated.
+
+       * configure.in (build_prefix): New. Substitute.
+
+2002-12-18  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * Makefile.tpl: Don't let real targets depend on phony targets.
+       * Makefile.in: Regenerate.
+
+       * Makefile.tpl (do-info): Depend on maybe-all-texinfo, not all-texinfo.
+       * Makefile.in: Regenerate.
+
+2002-12-16  Jason Merrill  <jason@redhat.com>
+
+       * Makefile.tpl (all-gcc): Use 'make quickstrap' if there was a
+       previous 'make bootstrap'.
+       * Makefile.in: Regenerate.
+
+2002-12-17  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * configure.in (noconfigdirs) [mmix-*-*]: Disable libgloss and gdb.
+
+2002-12-13  Jason Merrill  <jason@redhat.com>
+
+       * Makefile.tpl (check-gcc-c++): Renamed from check-c++.  Don't run
+       library tests.
+       (check-c++): Just depend on it and check-target-libstdc++-v3.
+       * Makefile.in: Regenerate.
+
+2002-12-13  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.in, Makefile.tpl, Makefile.def: Remove tclX.
+       * Makefile.in: Regenerate.
+
+2002-12-12  Jeff Johnston  <jjohnstn@redhat.com>
+
+        * COPYING.NEWLIB: Update list of alternate Regent of California
+        licenses and discuss official revoking of advertising clause.
+        * COPYING.LIBGLOSS: Ditto.
+
+2002-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * Makefile.tpl (configure-target-rda): Depend on $(ALL_GCC_C).
+       * Makefile.in: Rebuilt.
+
+2002-12-10  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure: Fix bug put in by gremlins.
+
+       * Makefile.tpl: Substitute more autoconfily.
+       * configure: Substitute more autoconfily.
+       * Makefile.in: Regenerate.
+
+2002-12-08  Andrew Cagney  <ac131313@redhat.com>
+
+       * Makefile.tpl (all-sim): Depend on maybe-configure-gdb.
+       * Makefile.in (all-sim): Ditto.
+
+2002-12-06  DJ Delorie  <dj@redhat.com>
+
+       * Makefile.tpl: Change configure dependencies to not have real
+       targets depend on phony targets.
+
+2002-12-05  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.in: Revert unintentional change.
+
+       * src-release: Configure host subdirs.
+
+       * Makefile.tpl: Change dependency for */multilib.out so that
+       it works when gcc isn't in the tree.
+
+       * configure.in: Substitute more.
+       * configure: Run subconfigures from the Makefile.
+       * Makefile.tpl: Run subconfigures from the Makefile; add a few
+       convenience targets.  Make sure gcc isn't rebuilt after bootstrap.
+
+2002-12-03  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * Makefile.tpl: Add targets for configuring host subdirs in Makefile,
+       and corresponding dependencies.
+       * Makefile.in: Regenerate.
+
+       * configure.in (host_tools): Order binutils, gas and ld for
+       convenience in running the testsuites.
+
+       * Makefile.tpl: Introduce rules to serialize subconfigure runs.
+       * Makefile.in: Regenerate.
+       * configure.in: Introduce rules to serialize subconfigure runs.
+
+       * configure.in: Introduce BASE_CC_FOR_TARGET.
+       * Makefile.tpl: Reorganize and comment.  Introduce HOST_CONFIGARGS.
+       Realize configure-build-* targets.  Realize configure-target-* targets.
+       * Makefile.in: Regenerate.
+
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure: Move gcc_version_trigger stuff from here...
+       * configure.in: ...to here.
+
+       * configure.in: Separate subconfigure options added by this file from
+       options given by the user.  Add machinery to put args for host
+       subconfigures into the Makefile.
+
+       * Makefile.tpl: Remove 'vault' targets.
+       * Makefile.tpl: Reorder and comment dependencies.
+       * Makefile.in: Regenerate.
+
+2002-11-28  Geoffrey Keating  <geoffk@apple.com>
+
+       * configure.in: Move host-specific darwin noconfigdirs into
+       the host-specific section.
+
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * Makefile.tpl: Restore bkorb's style patch, accidentally lost
+       during replay.
+       * Makefile.in: Regenerate.
+
+       (finishing slow-motion replay)
+       * configure: Remove skip-this-dir support.
+       * Makefile.tpl: Remove skip-this-dir support.
+
+       * Makefile.tpl: Remove leftover support for non-autoconfiscated
+       subdirectories.
+       * Makefile.in: Regenerate.
+
+       * Makefile.tpl: Strip out useless setting of 'dir'.
+       * Makefile.in: Regenerate.
+       
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (finishing slow-motion replay)
+       * configure.in: Fix deeply stupid bug.
+
+       * configure.in: Introduce RAW_CXX_FOR_TARGET and simplify embedded
+       shell code in CXX_FOR_TARGET
+       * Makefile.def: Introduce raw_cxx.
+       * Makefile.tpl: Use raw_cxx to select between CXX_FOR_TARGET and
+       RAW_CXX_FOR_TARGET.
+       * Makefile.in: Regenerate.
+
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (finishing slow-motion replay)
+       * Makefile.tpl: Remove unnecessary ifs.
+       * Makefile.in: Regenerate.
+
+       * Makefile.tpl: Implement soft dependency machinery.  Maybe-ize 
+       dependencies.  Maybe-ize build-libiberty.  Create dummy install
+       targets for 'no_install' modules.
+       * configure: Move GDB_TK substitution to configure.in.  Move 
+       build_modules stuff to configure.in.
+       * configure.in: Implement soft dependency machinery.  Maybe-ize 
+       GDB_TK, rearrange slightly.  Move build_modules stuff from configure.
+       * Makefile.in: Regenerate.
+
+2002-12-01  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (continuing slow-motion replay)
+       * Makefile.tpl: Make all-target, install-target behave similarly
+       to all, install (only hitting configured targets).  Eliminate
+       unused macro defintions.
+
+       * Makefile.tpl: Add all-gcc: all-build-libiberty dependency when
+       build != host.
+
+       * Makefile.tpl: Add all-gcc: all-libiberty dependency.
+
+       * ltcf-c.sh, ltcf-gcj.sh, Makefile.tpl: Correct BUILD/HOST confusion.
+
+       * configure.in: Produce lists of subdir targets we're actually 
+       configuring.  Remove references to "dosrel".
+       * Makefile.tpl: Let configure set which subdir targets are hit.
+       Remove install-cross; clean up install; remove ALL.  Remove 
+       references to "dosrel".  Remove "EXTRA_TARGET_HOST" hackery.
+       Autogenerate host module targets.  Remove empty dependency lines 
+       and redundant dependency; rearrange slightly.
+       * Makefile.def: Add host-side libtermcap, utils.
+
+       * Makefile.in: Regenerate.
+
+2002-12-01  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (Continuing slow-motion replay)
+       * Makefile.def: Add list of recursive targets to autogenerate.
+       Add build_modules.
+       * Makefile.tpl: Autogenerate do-* targets.  Autogenerate *-target-*
+       targets.  Autogenerate *-build-* targets.
+       * Makefile.in: Regenerate.
+
+2002-11-30  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (Continuing slow-motion replay)
+       * configure: More autoconf-style substitutions.
+       * Makefile.tpl: More autoconf-style substitutions.
+       * Makefile.in: Regenerate.
+
+2002-11-30  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (Continuing slow-motion replay)
+       * configure: Substitute more variables in a more autoconf-friendly
+       way.  Simplify slightly.
+       * Makefile.tpl: Make more variables substitutable in an
+       autoconf-friendly way.
+       * Makefile.in: Regenerate.
+
+2002-11-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (Continuing slow-motion replay)
+       * configure.in (v810*): Remove special setting of tools.
+
+       * configure: Add support for extra required flags for ar or nm.
+       * configure.in (aix4.3+): Use above support for target-specific
+       issues, rather than using config/mt-aix43.
+
+2002-11-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (Starting slow-motion replay merge from gcc 3.4 b-i-b branch)
+       * configure: Remove 'removing', which doesn't work.  Replace $subdir
+       with . everywhere.  Replace $subdirs with ''.  Replace $makesrcdir
+       with $srcdir.  Reformat indentation.  Substitute some variables
+       formerly hard-coded in the Makefile for build=host.
+       * Makefile.tpl: Autogenerate more; make more autoconf-friendly.
+       * Makefile.def: Autogenerate more.
+       * Makefile.in: Regenerate.
+
 2002-11-13  Bruce Korb  <bkorb@gnu.org>
 
        * Makefile.tpl: syntactic cleanup
index 6f7689785cb440f318dfa2d570b622ec47f4a175..64b0657ef12fee0d1f4db8039d2c5bca8e21590b 100644 (file)
 NOTPARALLEL = .NOTPARALLEL
 $(NOTPARALLEL):
 
+VPATH=@srcdir@
+links=@configlinks@
+
+build_alias=@build_alias@
+build_cpu=@build_cpu@
+build_vendor=@build_vendor@
+build_os=@build_os@
+build_canonical=@build_cpu@-@build_vendor@-@build_os@
+host_alias=@host_alias@
+host_cpu=@host_cpu@
+host_vendor=@host_vendor@
+host_os=@host_os@
+host_canonical=@host_cpu@-@host_vendor@-@host_os@
+target_alias=@target_alias@
+target_cpu=@target_cpu@
+target_vendor=@target_vendor@
+target_os=@target_os@
+target_canonical=@target_cpu@-@target_vendor@-@target_os@
+
+enable_shared = @enable_shared@
+enable_threads = @enable_threads@
+enable_version_specific_runtime_libs = @enable_version_specific_runtime_libs@
+# The file containing GCC's version number.
+gcc_version_trigger = @gcc_version_trigger@
+gcc_version = @gcc_version@
+
 srcdir = @srcdir@
 
 prefix = @prefix@
@@ -43,7 +69,8 @@ includedir = @includedir@
 oldincludedir = @oldincludedir@
 infodir = @infodir@
 mandir = @mandir@
-gxx_include_dir=@gxx_include_dir@
+gxx_include_dir = @gxx_include_dir@
+libstdcxx_incdir = @libstdcxx_incdir@
 
 tooldir = @tooldir@
 build_tooldir = @build_tooldir@
@@ -80,22 +107,19 @@ INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS)
 INSTALL_SCRIPT = $(INSTALL)
 INSTALL_DATA = $(INSTALL) -m 644
 
-INSTALL_DOSREL = install-dosrel-fake
-
-AS = as
-AR = ar
+AS = @AS@
+AR = @AR@
 AR_FLAGS = rc
-CC = cc
+CC = @CC@
 
 # Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
 # here so that they can be overridden by Makefile fragments.
-HOST_CC = $(CC_FOR_BUILD)
-BUILD_PREFIX = 
-BUILD_PREFIX_1 = loser-
+BUILD_CC = $(CC_FOR_BUILD)
+BUILD_PREFIX = @BUILD_PREFIX@
+BUILD_PREFIX_1 = @BUILD_PREFIX_1@
 
-# These flag values are normally overridden by the configure script.
-CFLAGS = -g
-CXXFLAGS = -g -O2
+CFLAGS = @CFLAGS@
+CXXFLAGS = @CXXFLAGS@
 
 LDFLAGS = 
 LIBCFLAGS = $(CFLAGS)
@@ -110,32 +134,34 @@ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
 PICFLAG = 
 PICFLAG_FOR_TARGET = 
 
-CXX = c++
+CXX = @CXX@
 
 # Use -O2 to stress test the compiler.
 LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
 CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
 LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
 
-DLLTOOL = dlltool
-WINDRES = windres
+DLLTOOL = @DLLTOOL@
+WINDRES = @WINDRES@
 
-NM = nm
+NM = @NM@
 
-LD = ld
+LD = @LD@
 
 # These values are substituted by configure.
 DEFAULT_YACC = @DEFAULT_YACC@
 DEFAULT_LEX = @DEFAULT_LEX@
 DEFAULT_M4 = @DEFAULT_M4@
 
-BISON = `if [ -f $$r/bison/bison ] ; then \
+BISON=@BISON@
+USUAL_BISON = `if [ -f $$r/bison/bison ] ; then \
            echo $$r/bison/bison -L $$s/bison/ ; \
         else \
            echo bison ; \
         fi`
 
-YACC = `if [ -f $$r/bison/bison ] ; then \
+YACC=@YACC@
+USUAL_YACC = `if [ -f $$r/bison/bison ] ; then \
            echo $$r/bison/bison -y -L $$s/bison/ ; \
        elif [ -f $$r/byacc/byacc ] ; then \
            echo $$r/byacc/byacc ; \
@@ -143,7 +169,8 @@ YACC = `if [ -f $$r/bison/bison ] ; then \
            echo ${DEFAULT_YACC} ; \
        fi`
 
-LEX = `if [ -f $$r/flex/flex ] ; \
+LEX=@LEX@
+USUAL_LEX = `if [ -f $$r/flex/flex ] ; \
        then echo $$r/flex/flex ; \
        else echo ${DEFAULT_LEX} ; fi`
 
@@ -153,7 +180,8 @@ M4 = `if [ -f $$r/m4/m4 ] ; \
 
 # For an installed makeinfo, we require it to be from texinfo 4 or
 # higher, else we use the "missing" dummy.
-MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \
+MAKEINFO=@MAKEINFO@
+USUAL_MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \
        then echo $$r/texinfo/makeinfo/makeinfo ; \
        else if (makeinfo --version \
          | egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \
@@ -175,7 +203,7 @@ RUNTEST = `if [ -f $$s/dejagnu/runtest ] ; \
 
 # compilers to use to create programs which must be run in the build
 # environment.
-CC_FOR_BUILD = $(CC)
+CC_FOR_BUILD = @CC_FOR_BUILD@
 CXX_FOR_BUILD = $(CXX)
 
 SUBDIRS = @configdirs@
@@ -191,14 +219,18 @@ TARGET_SUBDIR = @target_subdir@
 BUILD_CONFIGDIRS = libiberty
 BUILD_SUBDIR = @build_subdir@
 
-# This is set by the configure script to the arguments to use when configuring
-# directories built for the target.
-TARGET_CONFIGARGS = @target_configargs@
-
 # This is set by the configure script to the arguments to use when configuring
 # directories built for the build system.
 BUILD_CONFIGARGS = @build_configargs@
 
+# This is set by the configure script to the arguments to use when configuring
+# directories built for the host system.
+HOST_CONFIGARGS = @host_configargs@
+
+# This is set by the configure script to the arguments to use when configuring
+# directories built for the target.
+TARGET_CONFIGARGS = @target_configargs@
+
 # This is set by configure to REALLY_SET_LIB_PATH if --enable-shared
 # was used.
 SET_LIB_PATH = @SET_LIB_PATH@
@@ -221,35 +253,24 @@ TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs:
 REALLY_SET_LIB_PATH = \
   $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
 
-ALL = all.normal
-INSTALL_TARGET = installdirs \
-       install-gcc \
-       $(INSTALL_MODULES) \
-       $(INSTALL_TARGET_MODULES) \
-       $(INSTALL_X11_MODULES) \
-       $(INSTALL_DOSREL)
-
-INSTALL_TARGET_CROSS = installdirs \
-       install-gcc-cross \
-       $(INSTALL_MODULES) \
-       $(INSTALL_TARGET_MODULES) \
-       $(INSTALL_X11_MODULES) \
-       $(INSTALL_DOSREL)
-
 # Should be substed by configure.in
 FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@
 CC_FOR_TARGET = @CC_FOR_TARGET@
 CXX_FOR_TARGET = @CXX_FOR_TARGET@
+RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
 CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
+RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
 GCJ_FOR_TARGET = @GCJ_FOR_TARGET@
 
 # If GCC_FOR_TARGET is not overriden on the command line, then this
 # variable is passed down to the gcc Makefile, where it is used to
 # build libgcc2.a.  We define it here so that it can itself be
 # overridden on the command line.
-GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET)
+GCC_FOR_TARGET=@GCC_FOR_TARGET@
+USUAL_GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET)
 
-AS_FOR_TARGET = ` \
+AS_FOR_TARGET=@AS_FOR_TARGET@
+USUAL_AS_FOR_TARGET = ` \
   if [ -f $$r/gas/as-new ] ; then \
     echo $$r/gas/as-new ; \
   elif [ -f $$r/gcc/xgcc ]; then \
@@ -262,7 +283,8 @@ AS_FOR_TARGET = ` \
     fi; \
   fi`
 
-LD_FOR_TARGET = ` \
+LD_FOR_TARGET=@LD_FOR_TARGET@
+USUAL_LD_FOR_TARGET = ` \
   if [ -f $$r/ld/ld-new ] ; then \
     echo $$r/ld/ld-new ; \
   elif [ -f $$r/gcc/xgcc ]; then \
@@ -275,7 +297,8 @@ LD_FOR_TARGET = ` \
     fi; \
   fi`
 
-DLLTOOL_FOR_TARGET = ` \
+DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
+USUAL_DLLTOOL_FOR_TARGET = ` \
   if [ -f $$r/binutils/dlltool ] ; then \
     echo $$r/binutils/dlltool ; \
   else \
@@ -286,7 +309,8 @@ DLLTOOL_FOR_TARGET = ` \
     fi; \
   fi`
 
-WINDRES_FOR_TARGET = ` \
+WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
+USUAL_WINDRES_FOR_TARGET = ` \
   if [ -f $$r/binutils/windres ] ; then \
     echo $$r/binutils/windres ; \
   else \
@@ -297,7 +321,8 @@ WINDRES_FOR_TARGET = ` \
     fi; \
   fi`
 
-AR_FOR_TARGET = ` \
+AR_FOR_TARGET=@AR_FOR_TARGET@
+USUAL_AR_FOR_TARGET = ` \
   if [ -f $$r/binutils/ar ] ; then \
     echo $$r/binutils/ar ; \
   else \
@@ -308,7 +333,8 @@ AR_FOR_TARGET = ` \
     fi; \
   fi`
 
-RANLIB_FOR_TARGET = ` \
+RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@
+USUAL_RANLIB_FOR_TARGET = ` \
   if [ -f $$r/binutils/ranlib ] ; then \
     echo $$r/binutils/ranlib ; \
   else \
@@ -323,7 +349,8 @@ RANLIB_FOR_TARGET = ` \
     fi; \
   fi`
 
-NM_FOR_TARGET = ` \
+NM_FOR_TARGET=@NM_FOR_TARGET@
+USUAL_NM_FOR_TARGET = ` \
   if [ -f $$r/binutils/nm-new ] ; then \
     echo $$r/binutils/nm-new ; \
   elif [ -f $$r/gcc/xgcc ]; then \
@@ -341,13 +368,6 @@ NM_FOR_TARGET = ` \
 all: all.normal
 .PHONY: all
 
-# These can be overridden by config/mt-*.
-# The _TARGET_ is because they're specified in mt-foo.
-# The _HOST_ is because they're programs that run on the host.
-EXTRA_TARGET_HOST_ALL_MODULES =
-EXTRA_TARGET_HOST_INSTALL_MODULES =
-EXTRA_TARGET_HOST_CHECK_MODULES =
-
 #### host and target specific makefile fragments come in here.
 ###
 
@@ -422,7 +442,8 @@ BASE_FLAGS_TO_PASS = \
 # so we pass these variables down unchanged.  They must not contain
 # single nor double quotes.
 RECURSE_FLAGS = \
-       CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)'
+       CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \
+       RAW_CXX_FOR_TARGET='$(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \
 
 # Flags to pass down to most sub-makes, in which we're building with
 # the host environment.
@@ -485,7 +506,7 @@ EXTRA_GCC_FLAGS = \
        'CC=$(CC)' \
        'CXX=$(CXX)' \
        'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
-       'HOST_CC=$(CC_FOR_BUILD)' \
+       'BUILD_CC=$(CC_FOR_BUILD)' \
        'BUILD_PREFIX=$(BUILD_PREFIX)' \
        'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \
        'NM=$(NM)' \
@@ -505,318 +526,8 @@ EXTRA_GCC_FLAGS = \
 
 GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
 
-# This is a list of the targets for all of the modules which are compiled
-# using the build machine's native compiler.  Configure edits the second
-# macro for build!=host builds.
-ALL_BUILD_MODULES_LIST = \
-       all-build-libiberty
-ALL_BUILD_MODULES = @all_build_modules@
-
-# This is a list of the configure targets for all of the modules which
-# are compiled using the native tools.
-CONFIGURE_BUILD_MODULES = \
-       configure-build-libiberty
-
-# This is a list of the targets for all of the modules which are compiled
-# using $(FLAGS_TO_PASS).
-ALL_MODULES = \
-       all-ash \
-       all-autoconf \
-       all-automake \
-       all-bash \
-       all-bfd \
-       all-opcodes \
-       all-binutils \
-       all-bison \
-       all-byacc \
-       all-bzip2 \
-       all-db \
-       all-dejagnu \
-       all-diff \
-       all-dosutils \
-       all-etc \
-       all-fastjar \
-       all-fileutils \
-       all-findutils \
-       all-find \
-       all-flex \
-       all-gas \
-       all-gawk \
-       all-gettext \
-       all-gnuserv \
-       all-gprof \
-       all-grep \
-       all-gzip \
-       all-hello \
-       all-indent \
-       all-intl \
-       all-tcl \
-       all-itcl \
-       all-ld \
-       all-libgui \
-       all-libiberty \
-       all-libtool \
-       all-m4 \
-       all-make \
-       all-mmalloc \
-       all-patch \
-       all-perl \
-       all-prms \
-       all-rcs \
-       all-readline \
-       all-release \
-       all-recode \
-       all-sed \
-       all-send-pr \
-       all-shellutils \
-       all-sid \
-       all-sim \
-       all-snavigator \
-       all-tar \
-       all-texinfo \
-       all-textutils \
-       all-time \
-       all-uudecode \
-       all-wdiff \
-       all-zip \
-       all-zlib \
-       $(EXTRA_TARGET_HOST_ALL_MODULES)
-
-# This is a list of the check targets for all of the modules which are
-# compiled using $(FLAGS_TO_PASS).
-#
-# The list is in two parts.  The first lists those tools which
-# are tested as part of the host's native tool-chain, and not
-# tested in a cross configuration.
-NATIVE_CHECK_MODULES = \
-       check-bison \
-       check-byacc \
-       check-fastjar \
-       check-flex \
-       check-zip
-
-CROSS_CHECK_MODULES = \
-       check-ash \
-       check-autoconf \
-       check-automake \
-       check-bash \
-       check-bfd \
-       check-opcodes \
-       check-binutils \
-       check-bzip2 \
-       check-db \
-       check-dejagnu \
-       check-diff \
-       check-etc \
-       check-fileutils \
-       check-findutils \
-       check-find \
-       check-gas \
-       check-gawk \
-       check-gettext \
-       check-gnuserv \
-       check-gprof \
-       check-grep \
-       check-gzip \
-       check-hello \
-       check-indent \
-       check-intl \
-       check-tcl \
-       check-itcl \
-       check-ld \
-       check-libgui \
-       check-libiberty \
-       check-libtool \
-       check-m4 \
-       check-make \
-       check-patch \
-       check-perl \
-       check-prms \
-       check-rcs \
-       check-readline \
-       check-recode \
-       check-sed \
-       check-send-pr \
-       check-shellutils \
-       check-sid \
-       check-sim \
-       check-snavigator \
-       check-tar \
-       check-texinfo \
-       check-textutils \
-       check-time \
-       check-uudecode \
-       check-wdiff \
-       $(EXTRA_TARGET_HOST_CHECK_MODULES)
-
-CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
-
-# This is a list of the install targets for all of the modules which are
-# compiled using $(FLAGS_TO_PASS).
-INSTALL_MODULES = \
-       install-ash \
-       install-autoconf \
-       install-automake \
-       install-bash \
-       install-bfd \
-       install-opcodes \
-       install-binutils \
-       install-bison \
-       install-byacc \
-       install-bzip2 \
-       install-db \
-       install-dejagnu \
-       install-diff \
-       install-dosutils \
-       install-etc \
-       install-fastjar \
-       install-fileutils \
-       install-findutils \
-       install-find \
-       install-flex \
-       install-gas \
-       install-gawk \
-       install-gettext \
-       install-gnuserv \
-       install-gprof \
-       install-grep \
-       install-gzip \
-       install-hello \
-       install-indent \
-       install-intl \
-       install-tcl \
-       install-itcl \
-       install-ld \
-       install-libgui \
-       install-libiberty \
-       install-libtool \
-       install-m4 \
-       install-make \
-       install-mmalloc \
-       install-patch \
-       install-perl \
-       install-prms \
-       install-rcs \
-       install-readline \
-       install-recode \
-       install-sed \
-       install-send-pr \
-       install-shellutils \
-       install-sid \
-       install-sim \
-       install-snavigator \
-       install-tar \
-       install-textutils \
-       install-time \
-       install-uudecode \
-       install-wdiff \
-       install-zip \
-       $(EXTRA_TARGET_HOST_INSTALL_MODULES)
-
-# This is a list of the targets for all of the modules which are compiled
-# using $(X11_FLAGS_TO_PASS).
-ALL_X11_MODULES = \
-       all-gdb \
-       all-expect \
-       all-guile \
-       all-tclX \
-       all-tk \
-       all-tix
-
-# This is a list of the check targets for all of the modules which are
-# compiled using $(X11_FLAGS_TO_PASS).
-CHECK_X11_MODULES = \
-       check-gdb \
-       check-guile \
-       check-expect \
-       check-tclX \
-       check-tk \
-       check-tix
-
-# This is a list of the install targets for all the modules which are
-# compiled using $(X11_FLAGS_TO_PASS).
-INSTALL_X11_MODULES = \
-       install-gdb \
-       install-guile \
-       install-expect \
-       install-tclX \
-       install-tk \
-       install-tix
-
-# This is a list of the targets for all of the modules which are compiled
-# using $(TARGET_FLAGS_TO_PASS).
-ALL_TARGET_MODULES = \
-       all-target-libstdc++-v3 \
-       all-target-newlib \
-       all-target-libf2c \
-       all-target-libobjc \
-       all-target-libtermcap \
-       all-target-winsup \
-       all-target-libgloss \
-       all-target-libiberty \
-       all-target-gperf \
-       all-target-examples \
-       all-target-libffi \
-       all-target-libjava \
-       all-target-zlib \
-       all-target-boehm-gc \
-       all-target-qthreads \
-       all-target-rda 
-
-# This is a list of the configure targets for all of the modules which
-# are compiled using the target tools.
-CONFIGURE_TARGET_MODULES = \
-       configure-target-libstdc++-v3 \
-       configure-target-newlib \
-       configure-target-libf2c \
-       configure-target-libobjc \
-       configure-target-libtermcap \
-       configure-target-winsup \
-       configure-target-libgloss \
-       configure-target-libiberty \
-       configure-target-gperf \
-       configure-target-examples \
-       configure-target-libffi \
-       configure-target-libjava \
-       configure-target-zlib \
-       configure-target-boehm-gc \
-       configure-target-qthreads \
-       configure-target-rda 
-
-# This is a list of the check targets for all of the modules which are
-# compiled using $(TARGET_FLAGS_TO_PASS).
-CHECK_TARGET_MODULES = \
-       check-target-libstdc++-v3 \
-       check-target-newlib \
-       check-target-libf2c \
-       check-target-libobjc \
-       check-target-winsup \
-       check-target-libiberty \
-       check-target-gperf \
-       check-target-libffi \
-       check-target-libjava \
-       check-target-zlib \
-       check-target-boehm-gc \
-       check-target-qthreads \
-       check-target-rda 
-
-# This is a list of the install targets for all of the modules which are
-# compiled using $(TARGET_FLAGS_TO_PASS).
-INSTALL_TARGET_MODULES = \
-       install-target-libstdc++-v3 \
-       install-target-newlib \
-       install-target-libf2c \
-       install-target-libobjc \
-       install-target-libtermcap \
-       install-target-winsup \
-       install-target-libgloss \
-       install-target-libiberty \
-       install-target-gperf \
-       install-target-libjava \
-       install-target-zlib \
-       install-target-boehm-gc \
-       install-target-qthreads \
-       install-target-rda 
+configure-host: @configure_host_modules@
+configure-target: @configure_target_modules@
 
 # This is a list of the targets for which we can do a clean-{target}.
 CLEAN_MODULES = \
@@ -879,7 +590,8 @@ CLEAN_MODULES = \
        clean-uudecode \
        clean-wdiff \
        clean-zip \
-       clean-zlib 
+       clean-zlib \
+       clean-utils
 
 # All of the target modules that can be cleaned
 CLEAN_TARGET_MODULES = \
@@ -897,25 +609,25 @@ CLEAN_TARGET_MODULES = \
        clean-target-zlib \
        clean-target-boehm-gc \
        clean-target-qthreads \
-       clean-target-rda 
+       clean-target-rda
 
 # All of the x11 modules that can be cleaned
 CLEAN_X11_MODULES = \
        clean-gdb \
        clean-expect \
        clean-guile \
-       clean-tclX \
        clean-tk \
-       clean-tix
+       clean-tix 
 
 # The target built for a native build.
+# This list only includes modules actually being configured and built.
 .PHONY: all.normal
-all.normal: \
-       $(ALL_BUILD_MODULES) \
-       $(ALL_MODULES) \
-       $(ALL_X11_MODULES) \
-       $(ALL_TARGET_MODULES) \
-       all-gcc
+all.normal: @all_build_modules@ \
+       @all_host_modules@ \
+       @all_target_modules@
+
+all-host: @all_host_modules@
+all-target: @all_target_modules@
 
 # Do a target for all the subdirectories.  A ``make do-X'' will do a
 # ``make X'' in all subdirectories (because, in general, there is a
@@ -924,20 +636,10 @@ all.normal: \
 # This target ensures that $(BASE_FLAGS_TO_PASS) appears only once,
 # because it is so large that it can easily overflow the command line
 # length limit on some systems.
-DO_X = \
-       do-clean \
-       do-distclean \
-       do-dvi \
-       do-info \
-       do-install-info \
-       do-installcheck \
-       do-mostlyclean \
-       do-maintainer-clean \
-       do-TAGS
-.PHONY: $(DO_X)
-$(DO_X):
-       @target=`echo $@ | sed -e 's/^do-//'`; \
-       r=`${PWD}`; export r; \
+
+.PHONY: do-clean
+do-clean:
+       @r=`${PWD}`; export r; \
        s=`cd $(srcdir); ${PWD}`; export s; \
        $(SET_LIB_PATH) \
        for i in $(SUBDIRS) -dummy-; do \
@@ -959,11 +661,11 @@ $(DO_X):
                        "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
                        "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
                        "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
-                       $${target}); \
+                       clean); \
            then true; else exit 1; fi; \
          else true; fi; \
        done
-       @target=`echo $@ | sed -e 's/^do-//'`; \
+       # Break into two pieces
        r=`${PWD}`; export r; \
        s=`cd $(srcdir); ${PWD}`; export s; \
        $(SET_LIB_PATH) \
@@ -977,52 +679,431 @@ $(DO_X):
                        "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
                        "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
                        "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
-                       $${target}); \
+                       clean); \
            then true; else exit 1; fi; \
          else true; fi; \
        done
 
-# Here are the targets which correspond to the do-X targets.
-
-.PHONY: info installcheck dvi install-info
-.PHONY: clean distclean mostlyclean maintainer-clean realclean
-.PHONY: local-clean local-distclean local-maintainer-clean
-info: do-info
-installcheck: do-installcheck
-dvi: do-dvi
-
-# Make sure makeinfo is built before we do a `make info'.
-do-info: all-texinfo
+.PHONY: do-distclean
+do-distclean:
+       @r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(SUBDIRS) -dummy-; do \
+         if [ -f ./$$i/Makefile ]; then \
+           case $$i in \
+           gcc) \
+             for flag in $(EXTRA_GCC_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           *) \
+             for flag in $(EXTRA_HOST_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           esac ; \
+           if (cd ./$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       distclean); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+       # Break into two pieces
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(TARGET_CONFIGDIRS) -dummy-; do \
+         if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
+           for flag in $(EXTRA_TARGET_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+           done; \
+           if (cd $(TARGET_SUBDIR)/$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       distclean); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
 
-install-info: do-install-info dir.info
+.PHONY: do-dvi
+do-dvi:
+       @r=`${PWD}`; export r; \
        s=`cd $(srcdir); ${PWD}`; export s; \
-       if [ -f dir.info ] ; then \
-         $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \
-       else true ; fi
+       $(SET_LIB_PATH) \
+       for i in $(SUBDIRS) -dummy-; do \
+         if [ -f ./$$i/Makefile ]; then \
+           case $$i in \
+           gcc) \
+             for flag in $(EXTRA_GCC_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           *) \
+             for flag in $(EXTRA_HOST_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           esac ; \
+           if (cd ./$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       dvi); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+       # Break into two pieces
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(TARGET_CONFIGDIRS) -dummy-; do \
+         if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
+           for flag in $(EXTRA_TARGET_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+           done; \
+           if (cd $(TARGET_SUBDIR)/$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       dvi); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
 
-local-clean:
-       -rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log
+.PHONY: do-info
+do-info:
+       @r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(SUBDIRS) -dummy-; do \
+         if [ -f ./$$i/Makefile ]; then \
+           case $$i in \
+           gcc) \
+             for flag in $(EXTRA_GCC_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           *) \
+             for flag in $(EXTRA_HOST_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           esac ; \
+           if (cd ./$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       info); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+       # Break into two pieces
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(TARGET_CONFIGDIRS) -dummy-; do \
+         if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
+           for flag in $(EXTRA_TARGET_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+           done; \
+           if (cd $(TARGET_SUBDIR)/$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       info); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
 
-local-distclean:
-       -rm -f Makefile config.status config.cache mh-frag mt-frag
-       -if [ "$(TARGET_SUBDIR)" != "." ]; then \
-         rm -rf $(TARGET_SUBDIR); \
-       else true; fi
-       -rm -f texinfo/po/Makefile texinfo/po/Makefile.in texinfo/info/Makefile
-       -rm -f texinfo/doc/Makefile texinfo/po/POTFILES
-       -rmdir texinfo/doc texinfo/info texinfo/intl texinfo/lib 2>/dev/null
-       -rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null
-       -rmdir fastjar gcc libiberty texinfo zlib 2>/dev/null
+.PHONY: do-install-info
+do-install-info:
+       @r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(SUBDIRS) -dummy-; do \
+         if [ -f ./$$i/Makefile ]; then \
+           case $$i in \
+           gcc) \
+             for flag in $(EXTRA_GCC_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           *) \
+             for flag in $(EXTRA_HOST_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           esac ; \
+           if (cd ./$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       install-info); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+       # Break into two pieces
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(TARGET_CONFIGDIRS) -dummy-; do \
+         if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
+           for flag in $(EXTRA_TARGET_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+           done; \
+           if (cd $(TARGET_SUBDIR)/$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       install-info); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
 
-local-maintainer-clean:
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
+.PHONY: do-installcheck
+do-installcheck:
+       @r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(SUBDIRS) -dummy-; do \
+         if [ -f ./$$i/Makefile ]; then \
+           case $$i in \
+           gcc) \
+             for flag in $(EXTRA_GCC_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           *) \
+             for flag in $(EXTRA_HOST_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           esac ; \
+           if (cd ./$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       installcheck); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+       # Break into two pieces
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(TARGET_CONFIGDIRS) -dummy-; do \
+         if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
+           for flag in $(EXTRA_TARGET_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+           done; \
+           if (cd $(TARGET_SUBDIR)/$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       installcheck); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
 
-clean: do-clean local-clean
-mostlyclean: do-mostlyclean local-clean
-distclean: do-distclean local-clean local-distclean
-maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean 
-maintainer-clean: local-distclean
+.PHONY: do-mostlyclean
+do-mostlyclean:
+       @r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(SUBDIRS) -dummy-; do \
+         if [ -f ./$$i/Makefile ]; then \
+           case $$i in \
+           gcc) \
+             for flag in $(EXTRA_GCC_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           *) \
+             for flag in $(EXTRA_HOST_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           esac ; \
+           if (cd ./$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       mostlyclean); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+       # Break into two pieces
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(TARGET_CONFIGDIRS) -dummy-; do \
+         if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
+           for flag in $(EXTRA_TARGET_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+           done; \
+           if (cd $(TARGET_SUBDIR)/$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       mostlyclean); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+
+.PHONY: do-maintainer-clean
+do-maintainer-clean:
+       @r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(SUBDIRS) -dummy-; do \
+         if [ -f ./$$i/Makefile ]; then \
+           case $$i in \
+           gcc) \
+             for flag in $(EXTRA_GCC_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           *) \
+             for flag in $(EXTRA_HOST_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           esac ; \
+           if (cd ./$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       maintainer-clean); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+       # Break into two pieces
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(TARGET_CONFIGDIRS) -dummy-; do \
+         if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
+           for flag in $(EXTRA_TARGET_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+           done; \
+           if (cd $(TARGET_SUBDIR)/$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       maintainer-clean); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+
+.PHONY: do-TAGS
+do-TAGS:
+       @r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(SUBDIRS) -dummy-; do \
+         if [ -f ./$$i/Makefile ]; then \
+           case $$i in \
+           gcc) \
+             for flag in $(EXTRA_GCC_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           *) \
+             for flag in $(EXTRA_HOST_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+             done; \
+             ;; \
+           esac ; \
+           if (cd ./$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       TAGS); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+       # Break into two pieces
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       $(SET_LIB_PATH) \
+       for i in $(TARGET_CONFIGDIRS) -dummy-; do \
+         if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
+           for flag in $(EXTRA_TARGET_FLAGS); do \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+           done; \
+           if (cd $(TARGET_SUBDIR)/$$i; \
+               $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+                       "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
+                       "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+                       TAGS); \
+           then true; else exit 1; fi; \
+         else true; fi; \
+       done
+
+
+
+# Here are the targets which correspond to the do-X targets.
+
+.PHONY: info installcheck dvi install-info
+.PHONY: clean distclean mostlyclean maintainer-clean realclean
+.PHONY: local-clean local-distclean local-maintainer-clean
+info: do-info
+installcheck: do-installcheck
+dvi: do-dvi
+
+# Make sure makeinfo is built before we do a `make info', if we're
+# in fact building texinfo.
+do-info: maybe-all-texinfo
+
+install-info: do-install-info dir.info
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       if [ -f dir.info ] ; then \
+         $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \
+       else true ; fi
+
+local-clean:
+       -rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log
+
+local-distclean:
+       -rm -f Makefile config.status config.cache mh-frag mt-frag
+       -if [ "$(TARGET_SUBDIR)" != "." ]; then \
+         rm -rf $(TARGET_SUBDIR); \
+       else true; fi
+       -rm -f texinfo/po/Makefile texinfo/po/Makefile.in texinfo/info/Makefile
+       -rm -f texinfo/doc/Makefile texinfo/po/POTFILES
+       -rmdir texinfo/doc texinfo/info texinfo/intl texinfo/lib 2>/dev/null
+       -rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null
+       -rmdir fastjar gcc libiberty texinfo zlib 2>/dev/null
+
+local-maintainer-clean:
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+clean: do-clean local-clean
+mostlyclean: do-mostlyclean local-clean
+distclean: do-distclean local-clean local-distclean
+maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean 
+maintainer-clean: local-distclean
 realclean: maintainer-clean
 
 # This rule is used to clean specific modules.
@@ -1064,10 +1145,9 @@ clean-target-libgcc:
 check:
        $(MAKE) do-check NOTPARALLEL=parallel-ok
 
-do-check: $(CHECK_MODULES) \
-       $(CHECK_TARGET_MODULES) \
-       $(CHECK_X11_MODULES) \
-       check-gcc
+# Only include modules actually being configured and built.
+do-check: @check_host_modules@ \
+       @check_target_modules@
 
 # Automated reporting of test results.
 
@@ -1092,28 +1172,14 @@ mail-report-with-warnings.log: warning.log
 
 # Installation targets.
 
-.PHONY: install install-cross uninstall source-vault binary-vault vault-install
-install: $(INSTALL_TARGET) 
-install-cross: $(INSTALL_TARGET_CROSS) 
+.PHONY: install uninstall
+install: installdirs @install_host_modules@ @install_target_modules@
+
+install-target: @install_target_modules@
 
 uninstall:
        @echo "the uninstall target is not supported in this tree"
 
-source-vault:
-       $(MAKE) -f ./release/Build-A-Release \
-               host=$(host_alias) source-vault
-
-binary-vault:
-       $(MAKE) -f ./release/Build-A-Release \
-               host=$(host_alias) target=$(target_alias)
-
-vault-install:
-       @if [ -f ./release/vault-install ] ; then \
-         ./release/vault-install $(host_alias) $(target_alias) ; \
-       else \
-         true ; \
-       fi
-
 .PHONY: install.all
 install.all: install-no-fixedincludes
        @if [ -f ./gcc/Makefile ] ; then \
@@ -1128,88 +1194,6069 @@ install.all: install-no-fixedincludes
 # install-no-fixedincludes is used because Cygnus can not distribute
 # the fixed header files.
 .PHONY: install-no-fixedincludes
-install-no-fixedincludes: \
-       installdirs \
-       $(INSTALL_MODULES) \
-       $(INSTALL_TARGET_MODULES) \
-       $(INSTALL_X11_MODULES) \
-       gcc-no-fixedincludes 
+install-no-fixedincludes: installdirs @install_host_modules_nogcc@ \
+       @install_target_modules@ gcc-no-fixedincludes
+
+### other supporting targets
+
+MAKEDIRS= \
+       $(DESTDIR)$(prefix) \
+       $(DESTDIR)$(exec_prefix)
+.PHONY: installdirs
+installdirs: mkinstalldirs
+       $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS)
+
+dir.info: do-install-info
+       if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
+         $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
+         mv -f dir.info.new dir.info ; \
+       else true ; \
+       fi
+
+dist:
+       @echo "Building a full distribution of this tree isn't done"
+       @echo "via 'make dist'.  Check out the etc/ subdirectory" 
+
+etags tags: TAGS
+
+# Right now this just builds TAGS in each subdirectory.  emacs19 has the
+# ability to use several tags files at once, so there is probably no need
+# to combine them into one big TAGS file (like CVS 1.3 does).  We could
+# (if we felt like it) have this Makefile write a piece of elisp which
+# the user could load to tell emacs19 where all the TAGS files we just
+# built are.
+TAGS: do-TAGS
+
+
+# --------------------------------------
+# Modules which run on the build machine
+# --------------------------------------
+
+.PHONY: configure-build-libiberty maybe-configure-build-libiberty
+maybe-configure-build-libiberty:
+configure-build-libiberty: $(BUILD_SUBDIR)/libiberty/Makefile
+$(BUILD_SUBDIR)/libiberty/Makefile: config.status
+       @[ -d $(BUILD_SUBDIR)/libiberty ] || mkdir $(BUILD_SUBDIR)/libiberty;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           AR="$(AR_FOR_BUILD)"; export AR; \
+           AS="$(AS_FOR_BUILD)"; export AS; \
+           CC="$(CC_FOR_BUILD)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
+           CXX="$(CXX_FOR_BUILD)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
+           LD="$(LD_FOR_BUILD)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
+           NM="$(NM_FOR_BUILD)"; export NM; \
+           RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \
+           echo Configuring in $(BUILD_SUBDIR)/libiberty; \
+           cd "$(BUILD_SUBDIR)/libiberty" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(BUILD_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(BUILD_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/libiberty "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/libiberty"; \
+             libsrcdir="$$s/libiberty"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(BUILD_CONFIGARGS) $${srcdiroption} \
+             --with-build-subdir="$(BUILD_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-build-libiberty maybe-all-build-libiberty
+maybe-all-build-libiberty:
+all-build-libiberty: configure-build-libiberty
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         (cd $(BUILD_SUBDIR)/libiberty && $(MAKE) all)
+
+
+# --------------------------------------
+# Modules which run on the host machine
+# --------------------------------------
+
+.PHONY: configure-ash maybe-configure-ash
+maybe-configure-ash:
+configure-ash: ash/Makefile
+
+ash/Makefile: config.status
+       @[ -d ash ] || mkdir ash; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in ash; \
+       cd ash || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/ash"; \
+           libsrcdir="$$s/ash";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/ash"; \
+           libsrcdir="$$s/ash";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-ash maybe-all-ash
+maybe-all-ash:
+all-ash: configure-ash
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd ash; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-ash
+check-ash:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd ash; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-ash maybe-install-ash
+maybe-install-ash:
+install-ash: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd ash; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-autoconf maybe-configure-autoconf
+maybe-configure-autoconf:
+configure-autoconf: autoconf/Makefile
+
+autoconf/Makefile: config.status
+       @[ -d autoconf ] || mkdir autoconf; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in autoconf; \
+       cd autoconf || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/autoconf"; \
+           libsrcdir="$$s/autoconf";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/autoconf"; \
+           libsrcdir="$$s/autoconf";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-autoconf maybe-all-autoconf
+maybe-all-autoconf:
+all-autoconf: configure-autoconf
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd autoconf; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-autoconf
+check-autoconf:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd autoconf; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-autoconf maybe-install-autoconf
+maybe-install-autoconf:
+install-autoconf: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd autoconf; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-automake maybe-configure-automake
+maybe-configure-automake:
+configure-automake: automake/Makefile
+
+automake/Makefile: config.status
+       @[ -d automake ] || mkdir automake; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in automake; \
+       cd automake || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/automake"; \
+           libsrcdir="$$s/automake";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/automake"; \
+           libsrcdir="$$s/automake";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-automake maybe-all-automake
+maybe-all-automake:
+all-automake: configure-automake
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd automake; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-automake
+check-automake:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd automake; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-automake maybe-install-automake
+maybe-install-automake:
+install-automake: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd automake; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-bash maybe-configure-bash
+maybe-configure-bash:
+configure-bash: bash/Makefile
+
+bash/Makefile: config.status
+       @[ -d bash ] || mkdir bash; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in bash; \
+       cd bash || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bash"; \
+           libsrcdir="$$s/bash";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bash"; \
+           libsrcdir="$$s/bash";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-bash maybe-all-bash
+maybe-all-bash:
+all-bash: configure-bash
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bash; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-bash
+check-bash:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bash; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-bash maybe-install-bash
+maybe-install-bash:
+install-bash: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bash; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-bfd maybe-configure-bfd
+maybe-configure-bfd:
+configure-bfd: bfd/Makefile
+
+bfd/Makefile: config.status
+       @[ -d bfd ] || mkdir bfd; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in bfd; \
+       cd bfd || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-bfd maybe-all-bfd
+maybe-all-bfd:
+all-bfd: configure-bfd
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bfd; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-bfd
+check-bfd:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bfd; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-bfd maybe-install-bfd
+maybe-install-bfd:
+install-bfd: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bfd; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-opcodes maybe-configure-opcodes
+maybe-configure-opcodes:
+configure-opcodes: opcodes/Makefile
+
+opcodes/Makefile: config.status
+       @[ -d opcodes ] || mkdir opcodes; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in opcodes; \
+       cd opcodes || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-opcodes maybe-all-opcodes
+maybe-all-opcodes:
+all-opcodes: configure-opcodes
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd opcodes; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-opcodes
+check-opcodes:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd opcodes; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-opcodes maybe-install-opcodes
+maybe-install-opcodes:
+install-opcodes: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd opcodes; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-binutils maybe-configure-binutils
+maybe-configure-binutils:
+configure-binutils: binutils/Makefile
+
+binutils/Makefile: config.status
+       @[ -d binutils ] || mkdir binutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in binutils; \
+       cd binutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-binutils maybe-all-binutils
+maybe-all-binutils:
+all-binutils: configure-binutils
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd binutils; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-binutils
+check-binutils:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd binutils; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-binutils maybe-install-binutils
+maybe-install-binutils:
+install-binutils: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd binutils; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-bison maybe-configure-bison
+maybe-configure-bison:
+configure-bison: bison/Makefile
+
+bison/Makefile: config.status
+       @[ -d bison ] || mkdir bison; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in bison; \
+       cd bison || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bison"; \
+           libsrcdir="$$s/bison";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bison"; \
+           libsrcdir="$$s/bison";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-bison maybe-all-bison
+maybe-all-bison:
+all-bison: configure-bison
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bison; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-bison
+# This module is only tested in a native toolchain.
+check-bison:
+       @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           (cd bison; $(MAKE) $(FLAGS_TO_PASS) check); \
+       fi
+
+
+
+.PHONY: install-bison maybe-install-bison
+maybe-install-bison:
+install-bison: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bison; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-byacc maybe-configure-byacc
+maybe-configure-byacc:
+configure-byacc: byacc/Makefile
+
+byacc/Makefile: config.status
+       @[ -d byacc ] || mkdir byacc; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in byacc; \
+       cd byacc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/byacc"; \
+           libsrcdir="$$s/byacc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/byacc"; \
+           libsrcdir="$$s/byacc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-byacc maybe-all-byacc
+maybe-all-byacc:
+all-byacc: configure-byacc
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd byacc; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-byacc
+# This module is only tested in a native toolchain.
+check-byacc:
+       @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           (cd byacc; $(MAKE) $(FLAGS_TO_PASS) check); \
+       fi
+
+
+
+.PHONY: install-byacc maybe-install-byacc
+maybe-install-byacc:
+install-byacc: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd byacc; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-bzip2 maybe-configure-bzip2
+maybe-configure-bzip2:
+configure-bzip2: bzip2/Makefile
+
+bzip2/Makefile: config.status
+       @[ -d bzip2 ] || mkdir bzip2; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in bzip2; \
+       cd bzip2 || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bzip2"; \
+           libsrcdir="$$s/bzip2";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bzip2"; \
+           libsrcdir="$$s/bzip2";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-bzip2 maybe-all-bzip2
+maybe-all-bzip2:
+all-bzip2: configure-bzip2
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bzip2; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-bzip2
+check-bzip2:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bzip2; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-bzip2 maybe-install-bzip2
+maybe-install-bzip2:
+install-bzip2: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd bzip2; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-db maybe-configure-db
+maybe-configure-db:
+configure-db: db/Makefile
+
+db/Makefile: config.status
+       @[ -d db ] || mkdir db; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in db; \
+       cd db || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/db"; \
+           libsrcdir="$$s/db";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/db"; \
+           libsrcdir="$$s/db";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-db maybe-all-db
+maybe-all-db:
+all-db: configure-db
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd db; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-db
+check-db:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd db; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-db maybe-install-db
+maybe-install-db:
+install-db: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd db; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-dejagnu maybe-configure-dejagnu
+maybe-configure-dejagnu:
+configure-dejagnu: dejagnu/Makefile
+
+dejagnu/Makefile: config.status
+       @[ -d dejagnu ] || mkdir dejagnu; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in dejagnu; \
+       cd dejagnu || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/dejagnu"; \
+           libsrcdir="$$s/dejagnu";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/dejagnu"; \
+           libsrcdir="$$s/dejagnu";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-dejagnu maybe-all-dejagnu
+maybe-all-dejagnu:
+all-dejagnu: configure-dejagnu
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd dejagnu; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-dejagnu
+check-dejagnu:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd dejagnu; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-dejagnu maybe-install-dejagnu
+maybe-install-dejagnu:
+install-dejagnu: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd dejagnu; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-diff maybe-configure-diff
+maybe-configure-diff:
+configure-diff: diff/Makefile
+
+diff/Makefile: config.status
+       @[ -d diff ] || mkdir diff; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in diff; \
+       cd diff || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/diff"; \
+           libsrcdir="$$s/diff";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/diff"; \
+           libsrcdir="$$s/diff";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-diff maybe-all-diff
+maybe-all-diff:
+all-diff: configure-diff
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd diff; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-diff
+check-diff:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd diff; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-diff maybe-install-diff
+maybe-install-diff:
+install-diff: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd diff; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-dosutils maybe-configure-dosutils
+maybe-configure-dosutils:
+configure-dosutils: dosutils/Makefile
+
+dosutils/Makefile: config.status
+       @[ -d dosutils ] || mkdir dosutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in dosutils; \
+       cd dosutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/dosutils"; \
+           libsrcdir="$$s/dosutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/dosutils"; \
+           libsrcdir="$$s/dosutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-dosutils maybe-all-dosutils
+maybe-all-dosutils:
+all-dosutils: configure-dosutils
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd dosutils; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-dosutils
+check-dosutils:
+
+
+
+.PHONY: install-dosutils maybe-install-dosutils
+maybe-install-dosutils:
+install-dosutils: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd dosutils; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-etc maybe-configure-etc
+maybe-configure-etc:
+configure-etc: etc/Makefile
+
+etc/Makefile: config.status
+       @[ -d etc ] || mkdir etc; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in etc; \
+       cd etc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/etc"; \
+           libsrcdir="$$s/etc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/etc"; \
+           libsrcdir="$$s/etc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-etc maybe-all-etc
+maybe-all-etc:
+all-etc: configure-etc
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd etc; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-etc
+check-etc:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd etc; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-etc maybe-install-etc
+maybe-install-etc:
+install-etc: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd etc; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-fastjar maybe-configure-fastjar
+maybe-configure-fastjar:
+configure-fastjar: fastjar/Makefile
+
+fastjar/Makefile: config.status
+       @[ -d fastjar ] || mkdir fastjar; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in fastjar; \
+       cd fastjar || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/fastjar"; \
+           libsrcdir="$$s/fastjar";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/fastjar"; \
+           libsrcdir="$$s/fastjar";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-fastjar maybe-all-fastjar
+maybe-all-fastjar:
+all-fastjar: configure-fastjar
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd fastjar; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-fastjar
+# This module is only tested in a native toolchain.
+check-fastjar:
+       @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           (cd fastjar; $(MAKE) $(FLAGS_TO_PASS) check); \
+       fi
+
+
+
+.PHONY: install-fastjar maybe-install-fastjar
+maybe-install-fastjar:
+install-fastjar: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd fastjar; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-fileutils maybe-configure-fileutils
+maybe-configure-fileutils:
+configure-fileutils: fileutils/Makefile
+
+fileutils/Makefile: config.status
+       @[ -d fileutils ] || mkdir fileutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in fileutils; \
+       cd fileutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/fileutils"; \
+           libsrcdir="$$s/fileutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/fileutils"; \
+           libsrcdir="$$s/fileutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-fileutils maybe-all-fileutils
+maybe-all-fileutils:
+all-fileutils: configure-fileutils
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd fileutils; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-fileutils
+check-fileutils:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd fileutils; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-fileutils maybe-install-fileutils
+maybe-install-fileutils:
+install-fileutils: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd fileutils; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-findutils maybe-configure-findutils
+maybe-configure-findutils:
+configure-findutils: findutils/Makefile
+
+findutils/Makefile: config.status
+       @[ -d findutils ] || mkdir findutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in findutils; \
+       cd findutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/findutils"; \
+           libsrcdir="$$s/findutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/findutils"; \
+           libsrcdir="$$s/findutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-findutils maybe-all-findutils
+maybe-all-findutils:
+all-findutils: configure-findutils
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd findutils; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-findutils
+check-findutils:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd findutils; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-findutils maybe-install-findutils
+maybe-install-findutils:
+install-findutils: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd findutils; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-find maybe-configure-find
+maybe-configure-find:
+configure-find: find/Makefile
+
+find/Makefile: config.status
+       @[ -d find ] || mkdir find; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in find; \
+       cd find || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/find"; \
+           libsrcdir="$$s/find";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/find"; \
+           libsrcdir="$$s/find";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-find maybe-all-find
+maybe-all-find:
+all-find: configure-find
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd find; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-find
+check-find:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd find; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-find maybe-install-find
+maybe-install-find:
+install-find: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd find; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-flex maybe-configure-flex
+maybe-configure-flex:
+configure-flex: flex/Makefile
+
+flex/Makefile: config.status
+       @[ -d flex ] || mkdir flex; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in flex; \
+       cd flex || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/flex"; \
+           libsrcdir="$$s/flex";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/flex"; \
+           libsrcdir="$$s/flex";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-flex maybe-all-flex
+maybe-all-flex:
+all-flex: configure-flex
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd flex; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-flex
+# This module is only tested in a native toolchain.
+check-flex:
+       @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           (cd flex; $(MAKE) $(FLAGS_TO_PASS) check); \
+       fi
+
+
+
+.PHONY: install-flex maybe-install-flex
+maybe-install-flex:
+install-flex: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd flex; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-gas maybe-configure-gas
+maybe-configure-gas:
+configure-gas: gas/Makefile
+
+gas/Makefile: config.status
+       @[ -d gas ] || mkdir gas; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gas; \
+       cd gas || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gas maybe-all-gas
+maybe-all-gas:
+all-gas: configure-gas
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gas; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-gas
+check-gas:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gas; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-gas maybe-install-gas
+maybe-install-gas:
+install-gas: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gas; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-gawk maybe-configure-gawk
+maybe-configure-gawk:
+configure-gawk: gawk/Makefile
+
+gawk/Makefile: config.status
+       @[ -d gawk ] || mkdir gawk; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gawk; \
+       cd gawk || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gawk"; \
+           libsrcdir="$$s/gawk";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gawk"; \
+           libsrcdir="$$s/gawk";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gawk maybe-all-gawk
+maybe-all-gawk:
+all-gawk: configure-gawk
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gawk; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-gawk
+check-gawk:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gawk; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-gawk maybe-install-gawk
+maybe-install-gawk:
+install-gawk: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gawk; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-gettext maybe-configure-gettext
+maybe-configure-gettext:
+configure-gettext: gettext/Makefile
+
+gettext/Makefile: config.status
+       @[ -d gettext ] || mkdir gettext; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gettext; \
+       cd gettext || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gettext"; \
+           libsrcdir="$$s/gettext";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gettext"; \
+           libsrcdir="$$s/gettext";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gettext maybe-all-gettext
+maybe-all-gettext:
+all-gettext: configure-gettext
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gettext; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-gettext
+check-gettext:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gettext; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-gettext maybe-install-gettext
+maybe-install-gettext:
+install-gettext: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gettext; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-gnuserv maybe-configure-gnuserv
+maybe-configure-gnuserv:
+configure-gnuserv: gnuserv/Makefile
+
+gnuserv/Makefile: config.status
+       @[ -d gnuserv ] || mkdir gnuserv; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gnuserv; \
+       cd gnuserv || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gnuserv"; \
+           libsrcdir="$$s/gnuserv";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gnuserv"; \
+           libsrcdir="$$s/gnuserv";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gnuserv maybe-all-gnuserv
+maybe-all-gnuserv:
+all-gnuserv: configure-gnuserv
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gnuserv; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-gnuserv
+check-gnuserv:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gnuserv; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-gnuserv maybe-install-gnuserv
+maybe-install-gnuserv:
+install-gnuserv: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gnuserv; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-gprof maybe-configure-gprof
+maybe-configure-gprof:
+configure-gprof: gprof/Makefile
+
+gprof/Makefile: config.status
+       @[ -d gprof ] || mkdir gprof; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gprof; \
+       cd gprof || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gprof"; \
+           libsrcdir="$$s/gprof";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gprof"; \
+           libsrcdir="$$s/gprof";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gprof maybe-all-gprof
+maybe-all-gprof:
+all-gprof: configure-gprof
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gprof; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-gprof
+check-gprof:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gprof; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-gprof maybe-install-gprof
+maybe-install-gprof:
+install-gprof: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gprof; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-grep maybe-configure-grep
+maybe-configure-grep:
+configure-grep: grep/Makefile
+
+grep/Makefile: config.status
+       @[ -d grep ] || mkdir grep; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in grep; \
+       cd grep || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/grep"; \
+           libsrcdir="$$s/grep";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/grep"; \
+           libsrcdir="$$s/grep";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-grep maybe-all-grep
+maybe-all-grep:
+all-grep: configure-grep
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd grep; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-grep
+check-grep:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd grep; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-grep maybe-install-grep
+maybe-install-grep:
+install-grep: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd grep; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-gzip maybe-configure-gzip
+maybe-configure-gzip:
+configure-gzip: gzip/Makefile
+
+gzip/Makefile: config.status
+       @[ -d gzip ] || mkdir gzip; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gzip; \
+       cd gzip || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gzip"; \
+           libsrcdir="$$s/gzip";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gzip"; \
+           libsrcdir="$$s/gzip";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gzip maybe-all-gzip
+maybe-all-gzip:
+all-gzip: configure-gzip
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gzip; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-gzip
+check-gzip:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gzip; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-gzip maybe-install-gzip
+maybe-install-gzip:
+install-gzip: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gzip; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-hello maybe-configure-hello
+maybe-configure-hello:
+configure-hello: hello/Makefile
+
+hello/Makefile: config.status
+       @[ -d hello ] || mkdir hello; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in hello; \
+       cd hello || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/hello"; \
+           libsrcdir="$$s/hello";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/hello"; \
+           libsrcdir="$$s/hello";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-hello maybe-all-hello
+maybe-all-hello:
+all-hello: configure-hello
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd hello; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-hello
+check-hello:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd hello; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-hello maybe-install-hello
+maybe-install-hello:
+install-hello: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd hello; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-indent maybe-configure-indent
+maybe-configure-indent:
+configure-indent: indent/Makefile
+
+indent/Makefile: config.status
+       @[ -d indent ] || mkdir indent; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in indent; \
+       cd indent || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/indent"; \
+           libsrcdir="$$s/indent";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/indent"; \
+           libsrcdir="$$s/indent";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-indent maybe-all-indent
+maybe-all-indent:
+all-indent: configure-indent
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd indent; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-indent
+check-indent:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd indent; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-indent maybe-install-indent
+maybe-install-indent:
+install-indent: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd indent; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-intl maybe-configure-intl
+maybe-configure-intl:
+configure-intl: intl/Makefile
+
+intl/Makefile: config.status
+       @[ -d intl ] || mkdir intl; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in intl; \
+       cd intl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-intl maybe-all-intl
+maybe-all-intl:
+all-intl: configure-intl
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd intl; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-intl
+check-intl:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd intl; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-intl maybe-install-intl
+maybe-install-intl:
+install-intl: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd intl; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-tcl maybe-configure-tcl
+maybe-configure-tcl:
+configure-tcl: tcl/Makefile
+
+tcl/Makefile: config.status
+       @[ -d tcl ] || mkdir tcl; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in tcl; \
+       cd tcl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/tcl"; \
+           libsrcdir="$$s/tcl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/tcl"; \
+           libsrcdir="$$s/tcl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-tcl maybe-all-tcl
+maybe-all-tcl:
+all-tcl: configure-tcl
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tcl; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-tcl
+check-tcl:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tcl; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-tcl maybe-install-tcl
+maybe-install-tcl:
+install-tcl: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tcl; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-itcl maybe-configure-itcl
+maybe-configure-itcl:
+configure-itcl: itcl/Makefile
+
+itcl/Makefile: config.status
+       @[ -d itcl ] || mkdir itcl; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in itcl; \
+       cd itcl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/itcl"; \
+           libsrcdir="$$s/itcl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/itcl"; \
+           libsrcdir="$$s/itcl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-itcl maybe-all-itcl
+maybe-all-itcl:
+all-itcl: configure-itcl
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd itcl; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-itcl
+check-itcl:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd itcl; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-itcl maybe-install-itcl
+maybe-install-itcl:
+install-itcl: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd itcl; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-ld maybe-configure-ld
+maybe-configure-ld:
+configure-ld: ld/Makefile
+
+ld/Makefile: config.status
+       @[ -d ld ] || mkdir ld; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in ld; \
+       cd ld || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-ld maybe-all-ld
+maybe-all-ld:
+all-ld: configure-ld
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd ld; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-ld
+check-ld:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd ld; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-ld maybe-install-ld
+maybe-install-ld:
+install-ld: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd ld; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-libgui maybe-configure-libgui
+maybe-configure-libgui:
+configure-libgui: libgui/Makefile
+
+libgui/Makefile: config.status
+       @[ -d libgui ] || mkdir libgui; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in libgui; \
+       cd libgui || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libgui"; \
+           libsrcdir="$$s/libgui";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libgui"; \
+           libsrcdir="$$s/libgui";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-libgui maybe-all-libgui
+maybe-all-libgui:
+all-libgui: configure-libgui
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libgui; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-libgui
+check-libgui:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libgui; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-libgui maybe-install-libgui
+maybe-install-libgui:
+install-libgui: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libgui; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-libiberty maybe-configure-libiberty
+maybe-configure-libiberty:
+configure-libiberty: libiberty/Makefile
+
+libiberty/Makefile: config.status
+       @[ -d libiberty ] || mkdir libiberty; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in libiberty; \
+       cd libiberty || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-libiberty maybe-all-libiberty
+maybe-all-libiberty:
+all-libiberty: configure-libiberty
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libiberty; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-libiberty
+check-libiberty:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libiberty; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-libiberty maybe-install-libiberty
+maybe-install-libiberty:
+install-libiberty: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libiberty; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-libtool maybe-configure-libtool
+maybe-configure-libtool:
+configure-libtool: libtool/Makefile
+
+libtool/Makefile: config.status
+       @[ -d libtool ] || mkdir libtool; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in libtool; \
+       cd libtool || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libtool"; \
+           libsrcdir="$$s/libtool";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libtool"; \
+           libsrcdir="$$s/libtool";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-libtool maybe-all-libtool
+maybe-all-libtool:
+all-libtool: configure-libtool
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libtool; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-libtool
+check-libtool:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libtool; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-libtool maybe-install-libtool
+maybe-install-libtool:
+install-libtool: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libtool; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-m4 maybe-configure-m4
+maybe-configure-m4:
+configure-m4: m4/Makefile
+
+m4/Makefile: config.status
+       @[ -d m4 ] || mkdir m4; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in m4; \
+       cd m4 || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/m4"; \
+           libsrcdir="$$s/m4";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/m4"; \
+           libsrcdir="$$s/m4";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-m4 maybe-all-m4
+maybe-all-m4:
+all-m4: configure-m4
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd m4; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-m4
+check-m4:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd m4; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-m4 maybe-install-m4
+maybe-install-m4:
+install-m4: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd m4; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-make maybe-configure-make
+maybe-configure-make:
+configure-make: make/Makefile
+
+make/Makefile: config.status
+       @[ -d make ] || mkdir make; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in make; \
+       cd make || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/make"; \
+           libsrcdir="$$s/make";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/make"; \
+           libsrcdir="$$s/make";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-make maybe-all-make
+maybe-all-make:
+all-make: configure-make
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd make; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-make
+check-make:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd make; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-make maybe-install-make
+maybe-install-make:
+install-make: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd make; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-mmalloc maybe-configure-mmalloc
+maybe-configure-mmalloc:
+configure-mmalloc: mmalloc/Makefile
+
+mmalloc/Makefile: config.status
+       @[ -d mmalloc ] || mkdir mmalloc; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in mmalloc; \
+       cd mmalloc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/mmalloc"; \
+           libsrcdir="$$s/mmalloc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/mmalloc"; \
+           libsrcdir="$$s/mmalloc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-mmalloc maybe-all-mmalloc
+maybe-all-mmalloc:
+all-mmalloc: configure-mmalloc
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd mmalloc; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-mmalloc
+check-mmalloc:
+
+
+
+.PHONY: install-mmalloc maybe-install-mmalloc
+maybe-install-mmalloc:
+install-mmalloc: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd mmalloc; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-patch maybe-configure-patch
+maybe-configure-patch:
+configure-patch: patch/Makefile
+
+patch/Makefile: config.status
+       @[ -d patch ] || mkdir patch; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in patch; \
+       cd patch || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/patch"; \
+           libsrcdir="$$s/patch";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/patch"; \
+           libsrcdir="$$s/patch";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-patch maybe-all-patch
+maybe-all-patch:
+all-patch: configure-patch
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd patch; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-patch
+check-patch:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd patch; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-patch maybe-install-patch
+maybe-install-patch:
+install-patch: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd patch; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-perl maybe-configure-perl
+maybe-configure-perl:
+configure-perl: perl/Makefile
+
+perl/Makefile: config.status
+       @[ -d perl ] || mkdir perl; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in perl; \
+       cd perl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/perl"; \
+           libsrcdir="$$s/perl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/perl"; \
+           libsrcdir="$$s/perl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-perl maybe-all-perl
+maybe-all-perl:
+all-perl: configure-perl
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd perl; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-perl
+check-perl:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd perl; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-perl maybe-install-perl
+maybe-install-perl:
+install-perl: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd perl; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-prms maybe-configure-prms
+maybe-configure-prms:
+configure-prms: prms/Makefile
+
+prms/Makefile: config.status
+       @[ -d prms ] || mkdir prms; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in prms; \
+       cd prms || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/prms"; \
+           libsrcdir="$$s/prms";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/prms"; \
+           libsrcdir="$$s/prms";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-prms maybe-all-prms
+maybe-all-prms:
+all-prms: configure-prms
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd prms; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-prms
+check-prms:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd prms; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-prms maybe-install-prms
+maybe-install-prms:
+install-prms: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd prms; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-rcs maybe-configure-rcs
+maybe-configure-rcs:
+configure-rcs: rcs/Makefile
+
+rcs/Makefile: config.status
+       @[ -d rcs ] || mkdir rcs; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in rcs; \
+       cd rcs || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/rcs"; \
+           libsrcdir="$$s/rcs";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/rcs"; \
+           libsrcdir="$$s/rcs";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-rcs maybe-all-rcs
+maybe-all-rcs:
+all-rcs: configure-rcs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-rcs
+check-rcs:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-rcs maybe-install-rcs
+maybe-install-rcs:
+install-rcs: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-readline maybe-configure-readline
+maybe-configure-readline:
+configure-readline: readline/Makefile
+
+readline/Makefile: config.status
+       @[ -d readline ] || mkdir readline; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in readline; \
+       cd readline || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/readline"; \
+           libsrcdir="$$s/readline";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/readline"; \
+           libsrcdir="$$s/readline";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-readline maybe-all-readline
+maybe-all-readline:
+all-readline: configure-readline
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd readline; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-readline
+check-readline:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd readline; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-readline maybe-install-readline
+maybe-install-readline:
+install-readline: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd readline; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-release maybe-configure-release
+maybe-configure-release:
+configure-release: release/Makefile
+
+release/Makefile: config.status
+       @[ -d release ] || mkdir release; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in release; \
+       cd release || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/release"; \
+           libsrcdir="$$s/release";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/release"; \
+           libsrcdir="$$s/release";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-release maybe-all-release
+maybe-all-release:
+all-release: configure-release
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd release; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-release
+check-release:
+
+
+
+.PHONY: install-release maybe-install-release
+maybe-install-release:
+install-release:
+
+
+.PHONY: configure-recode maybe-configure-recode
+maybe-configure-recode:
+configure-recode: recode/Makefile
+
+recode/Makefile: config.status
+       @[ -d recode ] || mkdir recode; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in recode; \
+       cd recode || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/recode"; \
+           libsrcdir="$$s/recode";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/recode"; \
+           libsrcdir="$$s/recode";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-recode maybe-all-recode
+maybe-all-recode:
+all-recode: configure-recode
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd recode; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-recode
+check-recode:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd recode; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-recode maybe-install-recode
+maybe-install-recode:
+install-recode: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd recode; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-sed maybe-configure-sed
+maybe-configure-sed:
+configure-sed: sed/Makefile
+
+sed/Makefile: config.status
+       @[ -d sed ] || mkdir sed; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in sed; \
+       cd sed || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/sed"; \
+           libsrcdir="$$s/sed";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/sed"; \
+           libsrcdir="$$s/sed";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-sed maybe-all-sed
+maybe-all-sed:
+all-sed: configure-sed
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd sed; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-sed
+check-sed:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd sed; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-sed maybe-install-sed
+maybe-install-sed:
+install-sed: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd sed; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-send-pr maybe-configure-send-pr
+maybe-configure-send-pr:
+configure-send-pr: send-pr/Makefile
+
+send-pr/Makefile: config.status
+       @[ -d send-pr ] || mkdir send-pr; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in send-pr; \
+       cd send-pr || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/send-pr"; \
+           libsrcdir="$$s/send-pr";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/send-pr"; \
+           libsrcdir="$$s/send-pr";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-send-pr maybe-all-send-pr
+maybe-all-send-pr:
+all-send-pr: configure-send-pr
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd send-pr; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-send-pr
+check-send-pr:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd send-pr; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-send-pr maybe-install-send-pr
+maybe-install-send-pr:
+install-send-pr: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd send-pr; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-shellutils maybe-configure-shellutils
+maybe-configure-shellutils:
+configure-shellutils: shellutils/Makefile
+
+shellutils/Makefile: config.status
+       @[ -d shellutils ] || mkdir shellutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in shellutils; \
+       cd shellutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/shellutils"; \
+           libsrcdir="$$s/shellutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/shellutils"; \
+           libsrcdir="$$s/shellutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-shellutils maybe-all-shellutils
+maybe-all-shellutils:
+all-shellutils: configure-shellutils
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd shellutils; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-shellutils
+check-shellutils:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd shellutils; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-shellutils maybe-install-shellutils
+maybe-install-shellutils:
+install-shellutils: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd shellutils; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-sid maybe-configure-sid
+maybe-configure-sid:
+configure-sid: sid/Makefile
+
+sid/Makefile: config.status
+       @[ -d sid ] || mkdir sid; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in sid; \
+       cd sid || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/sid"; \
+           libsrcdir="$$s/sid";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/sid"; \
+           libsrcdir="$$s/sid";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-sid maybe-all-sid
+maybe-all-sid:
+all-sid: configure-sid
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd sid; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-sid
+check-sid:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd sid; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-sid maybe-install-sid
+maybe-install-sid:
+install-sid: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd sid; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-sim maybe-configure-sim
+maybe-configure-sim:
+configure-sim: sim/Makefile
+
+sim/Makefile: config.status
+       @[ -d sim ] || mkdir sim; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in sim; \
+       cd sim || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/sim"; \
+           libsrcdir="$$s/sim";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/sim"; \
+           libsrcdir="$$s/sim";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-sim maybe-all-sim
+maybe-all-sim:
+all-sim: configure-sim
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd sim; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-sim
+check-sim:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd sim; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-sim maybe-install-sim
+maybe-install-sim:
+install-sim: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd sim; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-snavigator maybe-configure-snavigator
+maybe-configure-snavigator:
+configure-snavigator: snavigator/Makefile
+
+snavigator/Makefile: config.status
+       @[ -d snavigator ] || mkdir snavigator; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in snavigator; \
+       cd snavigator || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/snavigator"; \
+           libsrcdir="$$s/snavigator";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/snavigator"; \
+           libsrcdir="$$s/snavigator";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-snavigator maybe-all-snavigator
+maybe-all-snavigator:
+all-snavigator: configure-snavigator
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd snavigator; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-snavigator
+check-snavigator:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd snavigator; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-snavigator maybe-install-snavigator
+maybe-install-snavigator:
+install-snavigator: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd snavigator; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-tar maybe-configure-tar
+maybe-configure-tar:
+configure-tar: tar/Makefile
+
+tar/Makefile: config.status
+       @[ -d tar ] || mkdir tar; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in tar; \
+       cd tar || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/tar"; \
+           libsrcdir="$$s/tar";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/tar"; \
+           libsrcdir="$$s/tar";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-tar maybe-all-tar
+maybe-all-tar:
+all-tar: configure-tar
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tar; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-tar
+check-tar:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tar; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-tar maybe-install-tar
+maybe-install-tar:
+install-tar: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tar; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-texinfo maybe-configure-texinfo
+maybe-configure-texinfo:
+configure-texinfo: texinfo/Makefile
+
+texinfo/Makefile: config.status
+       @[ -d texinfo ] || mkdir texinfo; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in texinfo; \
+       cd texinfo || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/texinfo"; \
+           libsrcdir="$$s/texinfo";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/texinfo"; \
+           libsrcdir="$$s/texinfo";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-texinfo maybe-all-texinfo
+maybe-all-texinfo:
+all-texinfo: configure-texinfo
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd texinfo; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-texinfo
+check-texinfo:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd texinfo; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-texinfo maybe-install-texinfo
+maybe-install-texinfo:
+install-texinfo:
+
+
+.PHONY: configure-textutils maybe-configure-textutils
+maybe-configure-textutils:
+configure-textutils: textutils/Makefile
+
+textutils/Makefile: config.status
+       @[ -d textutils ] || mkdir textutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in textutils; \
+       cd textutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/textutils"; \
+           libsrcdir="$$s/textutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/textutils"; \
+           libsrcdir="$$s/textutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-textutils maybe-all-textutils
+maybe-all-textutils:
+all-textutils: configure-textutils
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd textutils; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-textutils
+check-textutils:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd textutils; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-textutils maybe-install-textutils
+maybe-install-textutils:
+install-textutils: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd textutils; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-time maybe-configure-time
+maybe-configure-time:
+configure-time: time/Makefile
+
+time/Makefile: config.status
+       @[ -d time ] || mkdir time; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in time; \
+       cd time || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/time"; \
+           libsrcdir="$$s/time";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/time"; \
+           libsrcdir="$$s/time";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-time maybe-all-time
+maybe-all-time:
+all-time: configure-time
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd time; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-time
+check-time:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd time; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-time maybe-install-time
+maybe-install-time:
+install-time: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd time; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-uudecode maybe-configure-uudecode
+maybe-configure-uudecode:
+configure-uudecode: uudecode/Makefile
+
+uudecode/Makefile: config.status
+       @[ -d uudecode ] || mkdir uudecode; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in uudecode; \
+       cd uudecode || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/uudecode"; \
+           libsrcdir="$$s/uudecode";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/uudecode"; \
+           libsrcdir="$$s/uudecode";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-uudecode maybe-all-uudecode
+maybe-all-uudecode:
+all-uudecode: configure-uudecode
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd uudecode; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-uudecode
+check-uudecode:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd uudecode; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-uudecode maybe-install-uudecode
+maybe-install-uudecode:
+install-uudecode: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd uudecode; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-wdiff maybe-configure-wdiff
+maybe-configure-wdiff:
+configure-wdiff: wdiff/Makefile
+
+wdiff/Makefile: config.status
+       @[ -d wdiff ] || mkdir wdiff; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in wdiff; \
+       cd wdiff || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/wdiff"; \
+           libsrcdir="$$s/wdiff";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/wdiff"; \
+           libsrcdir="$$s/wdiff";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-wdiff maybe-all-wdiff
+maybe-all-wdiff:
+all-wdiff: configure-wdiff
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd wdiff; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-wdiff
+check-wdiff:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd wdiff; $(MAKE) $(FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-wdiff maybe-install-wdiff
+maybe-install-wdiff:
+install-wdiff: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd wdiff; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-zip maybe-configure-zip
+maybe-configure-zip:
+configure-zip: zip/Makefile
+
+zip/Makefile: config.status
+       @[ -d zip ] || mkdir zip; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in zip; \
+       cd zip || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/zip"; \
+           libsrcdir="$$s/zip";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/zip"; \
+           libsrcdir="$$s/zip";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-zip maybe-all-zip
+maybe-all-zip:
+all-zip: configure-zip
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd zip; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-zip
+# This module is only tested in a native toolchain.
+check-zip:
+       @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           (cd zip; $(MAKE) $(FLAGS_TO_PASS) check); \
+       fi
+
+
+
+.PHONY: install-zip maybe-install-zip
+maybe-install-zip:
+install-zip: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd zip; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-zlib maybe-configure-zlib
+maybe-configure-zlib:
+configure-zlib: zlib/Makefile
+
+zlib/Makefile: config.status
+       @[ -d zlib ] || mkdir zlib; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in zlib; \
+       cd zlib || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-zlib maybe-all-zlib
+maybe-all-zlib:
+all-zlib: configure-zlib
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd zlib; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-zlib
+check-zlib:
+
+
+
+.PHONY: install-zlib maybe-install-zlib
+maybe-install-zlib:
+install-zlib:
+
+
+.PHONY: configure-gdb maybe-configure-gdb
+maybe-configure-gdb:
+configure-gdb: gdb/Makefile
+
+gdb/Makefile: config.status
+       @[ -d gdb ] || mkdir gdb; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gdb; \
+       cd gdb || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gdb"; \
+           libsrcdir="$$s/gdb";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gdb"; \
+           libsrcdir="$$s/gdb";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gdb maybe-all-gdb
+maybe-all-gdb:
+all-gdb: configure-gdb
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gdb; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
+
+
+.PHONY: check-gdb
+check-gdb:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gdb; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-gdb maybe-install-gdb
+maybe-install-gdb:
+install-gdb: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gdb; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-expect maybe-configure-expect
+maybe-configure-expect:
+configure-expect: expect/Makefile
+
+expect/Makefile: config.status
+       @[ -d expect ] || mkdir expect; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in expect; \
+       cd expect || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/expect"; \
+           libsrcdir="$$s/expect";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/expect"; \
+           libsrcdir="$$s/expect";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-expect maybe-all-expect
+maybe-all-expect:
+all-expect: configure-expect
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd expect; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
+
+
+.PHONY: check-expect
+check-expect:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd expect; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-expect maybe-install-expect
+maybe-install-expect:
+install-expect: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd expect; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-guile maybe-configure-guile
+maybe-configure-guile:
+configure-guile: guile/Makefile
+
+guile/Makefile: config.status
+       @[ -d guile ] || mkdir guile; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in guile; \
+       cd guile || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/guile"; \
+           libsrcdir="$$s/guile";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/guile"; \
+           libsrcdir="$$s/guile";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-guile maybe-all-guile
+maybe-all-guile:
+all-guile: configure-guile
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd guile; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
+
+
+.PHONY: check-guile
+check-guile:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd guile; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-guile maybe-install-guile
+maybe-install-guile:
+install-guile: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd guile; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-tk maybe-configure-tk
+maybe-configure-tk:
+configure-tk: tk/Makefile
+
+tk/Makefile: config.status
+       @[ -d tk ] || mkdir tk; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in tk; \
+       cd tk || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/tk"; \
+           libsrcdir="$$s/tk";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/tk"; \
+           libsrcdir="$$s/tk";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-tk maybe-all-tk
+maybe-all-tk:
+all-tk: configure-tk
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tk; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
+
+
+.PHONY: check-tk
+check-tk:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tk; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-tk maybe-install-tk
+maybe-install-tk:
+install-tk: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tk; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-tix maybe-configure-tix
+maybe-configure-tix:
+configure-tix: tix/Makefile
+
+tix/Makefile: config.status
+       @[ -d tix ] || mkdir tix; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in tix; \
+       cd tix || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/tix"; \
+           libsrcdir="$$s/tix";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/tix"; \
+           libsrcdir="$$s/tix";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-tix maybe-all-tix
+maybe-all-tix:
+all-tix: configure-tix
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tix; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
+
+
+.PHONY: check-tix
+check-tix:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tix; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
+
+
+
+.PHONY: install-tix maybe-install-tix
+maybe-install-tix:
+install-tix: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd tix; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-libtermcap maybe-configure-libtermcap
+maybe-configure-libtermcap:
+configure-libtermcap: libtermcap/Makefile
+
+libtermcap/Makefile: config.status
+       @[ -d libtermcap ] || mkdir libtermcap; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in libtermcap; \
+       cd libtermcap || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libtermcap"; \
+           libsrcdir="$$s/libtermcap";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libtermcap"; \
+           libsrcdir="$$s/libtermcap";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-libtermcap maybe-all-libtermcap
+maybe-all-libtermcap:
+all-libtermcap: configure-libtermcap
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libtermcap; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-libtermcap
+check-libtermcap:
+
+
+
+.PHONY: install-libtermcap maybe-install-libtermcap
+maybe-install-libtermcap:
+install-libtermcap: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd libtermcap; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-utils maybe-configure-utils
+maybe-configure-utils:
+configure-utils: utils/Makefile
+
+utils/Makefile: config.status
+       @[ -d utils ] || mkdir utils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in utils; \
+       cd utils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/utils"; \
+           libsrcdir="$$s/utils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/utils"; \
+           libsrcdir="$$s/utils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-utils maybe-all-utils
+maybe-all-utils:
+all-utils: configure-utils
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd utils; $(MAKE) $(FLAGS_TO_PASS) all)
+
+
+.PHONY: check-utils
+check-utils:
+
+
+
+.PHONY: install-utils maybe-install-utils
+maybe-install-utils:
+install-utils: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd utils; $(MAKE) $(FLAGS_TO_PASS) install)
+
+
+
+# ---------------------------------------
+# Modules which run on the target machine
+# ---------------------------------------
+
+.PHONY: configure-target-libstdc++-v3 maybe-configure-target-libstdc++-v3
+maybe-configure-target-libstdc++-v3:
+configure-target-libstdc++-v3: $(TARGET_SUBDIR)/libstdc++-v3/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libstdc++-v3/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || mkdir $(TARGET_SUBDIR)/libstdc++-v3;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libstdc++-v3"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libstdc++-v3/Makefile: config.status $(TARGET_SUBDIR)/libstdc++-v3/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || mkdir $(TARGET_SUBDIR)/libstdc++-v3;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
+           CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/libstdc++-v3; \
+           cd "$(TARGET_SUBDIR)/libstdc++-v3" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/libstdc++-v3 "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/libstdc++-v3"; \
+             libsrcdir="$$s/libstdc++-v3"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libstdc++-v3 maybe-all-target-libstdc++-v3
+maybe-all-target-libstdc++-v3:
+all-target-libstdc++-v3: configure-target-libstdc++-v3
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libstdc++-v3; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  all)
+
+.PHONY: check-target-libstdc++-v3
+check-target-libstdc++-v3:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libstdc++-v3; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  check)
+
+
+.PHONY: install-target-libstdc++-v3 maybe-install-target-libstdc++-v3
+maybe-install-target-libstdc++-v3:
+install-target-libstdc++-v3: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libstdc++-v3; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-newlib maybe-configure-target-newlib
+maybe-configure-target-newlib:
+configure-target-newlib: $(TARGET_SUBDIR)/newlib/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/newlib/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/newlib ] || mkdir $(TARGET_SUBDIR)/newlib;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for newlib"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/newlib/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/newlib/Makefile: config.status $(TARGET_SUBDIR)/newlib/multilib.out
+       @[ -d $(TARGET_SUBDIR)/newlib ] || mkdir $(TARGET_SUBDIR)/newlib;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/newlib; \
+           cd "$(TARGET_SUBDIR)/newlib" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/newlib "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/newlib"; \
+             libsrcdir="$$s/newlib"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-newlib maybe-all-target-newlib
+maybe-all-target-newlib:
+all-target-newlib: configure-target-newlib
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/newlib; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-newlib
+check-target-newlib:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/newlib; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
+
+.PHONY: install-target-newlib maybe-install-target-newlib
+maybe-install-target-newlib:
+install-target-newlib: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/newlib; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-libf2c maybe-configure-target-libf2c
+maybe-configure-target-libf2c:
+configure-target-libf2c: $(TARGET_SUBDIR)/libf2c/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libf2c/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libf2c ] || mkdir $(TARGET_SUBDIR)/libf2c;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libf2c"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libf2c/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libf2c/Makefile: config.status $(TARGET_SUBDIR)/libf2c/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libf2c ] || mkdir $(TARGET_SUBDIR)/libf2c;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/libf2c; \
+           cd "$(TARGET_SUBDIR)/libf2c" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/libf2c "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/libf2c"; \
+             libsrcdir="$$s/libf2c"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libf2c maybe-all-target-libf2c
+maybe-all-target-libf2c:
+all-target-libf2c: configure-target-libf2c
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libf2c; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-libf2c
+check-target-libf2c:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libf2c; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
+
+.PHONY: install-target-libf2c maybe-install-target-libf2c
+maybe-install-target-libf2c:
+install-target-libf2c: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libf2c; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-libobjc maybe-configure-target-libobjc
+maybe-configure-target-libobjc:
+configure-target-libobjc: $(TARGET_SUBDIR)/libobjc/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libobjc/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libobjc ] || mkdir $(TARGET_SUBDIR)/libobjc;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libobjc"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libobjc/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libobjc/Makefile: config.status $(TARGET_SUBDIR)/libobjc/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libobjc ] || mkdir $(TARGET_SUBDIR)/libobjc;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/libobjc; \
+           cd "$(TARGET_SUBDIR)/libobjc" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/libobjc "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/libobjc"; \
+             libsrcdir="$$s/libobjc"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libobjc maybe-all-target-libobjc
+maybe-all-target-libobjc:
+all-target-libobjc: configure-target-libobjc
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libobjc; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-libobjc
+check-target-libobjc:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libobjc; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
+
+.PHONY: install-target-libobjc maybe-install-target-libobjc
+maybe-install-target-libobjc:
+install-target-libobjc: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libobjc; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-libtermcap maybe-configure-target-libtermcap
+maybe-configure-target-libtermcap:
+configure-target-libtermcap: $(TARGET_SUBDIR)/libtermcap/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libtermcap/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libtermcap ] || mkdir $(TARGET_SUBDIR)/libtermcap;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libtermcap"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libtermcap/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libtermcap/Makefile: config.status $(TARGET_SUBDIR)/libtermcap/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libtermcap ] || mkdir $(TARGET_SUBDIR)/libtermcap;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/libtermcap; \
+           cd "$(TARGET_SUBDIR)/libtermcap" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/libtermcap "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/libtermcap"; \
+             libsrcdir="$$s/libtermcap"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libtermcap maybe-all-target-libtermcap
+maybe-all-target-libtermcap:
+all-target-libtermcap: configure-target-libtermcap
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libtermcap; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+# Dummy target for uncheckable module.
+.PHONY: check-target-libtermcap
+check-target-libtermcap:
+
+
+.PHONY: install-target-libtermcap maybe-install-target-libtermcap
+maybe-install-target-libtermcap:
+install-target-libtermcap: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libtermcap; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-winsup maybe-configure-target-winsup
+maybe-configure-target-winsup:
+configure-target-winsup: $(TARGET_SUBDIR)/winsup/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/winsup/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/winsup ] || mkdir $(TARGET_SUBDIR)/winsup;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for winsup"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/winsup/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/winsup/Makefile: config.status $(TARGET_SUBDIR)/winsup/multilib.out
+       @[ -d $(TARGET_SUBDIR)/winsup ] || mkdir $(TARGET_SUBDIR)/winsup;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/winsup; \
+           cd "$(TARGET_SUBDIR)/winsup" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/winsup "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/winsup"; \
+             libsrcdir="$$s/winsup"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-winsup maybe-all-target-winsup
+maybe-all-target-winsup:
+all-target-winsup: configure-target-winsup
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/winsup; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-winsup
+check-target-winsup:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/winsup; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
+
+.PHONY: install-target-winsup maybe-install-target-winsup
+maybe-install-target-winsup:
+install-target-winsup: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/winsup; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-libgloss maybe-configure-target-libgloss
+maybe-configure-target-libgloss:
+configure-target-libgloss: $(TARGET_SUBDIR)/libgloss/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libgloss/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libgloss ] || mkdir $(TARGET_SUBDIR)/libgloss;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libgloss"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgloss/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libgloss/Makefile: config.status $(TARGET_SUBDIR)/libgloss/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libgloss ] || mkdir $(TARGET_SUBDIR)/libgloss;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/libgloss; \
+           cd "$(TARGET_SUBDIR)/libgloss" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/libgloss "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/libgloss"; \
+             libsrcdir="$$s/libgloss"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libgloss maybe-all-target-libgloss
+maybe-all-target-libgloss:
+all-target-libgloss: configure-target-libgloss
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libgloss; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+# Dummy target for uncheckable module.
+.PHONY: check-target-libgloss
+check-target-libgloss:
+
+
+.PHONY: install-target-libgloss maybe-install-target-libgloss
+maybe-install-target-libgloss:
+install-target-libgloss: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libgloss; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-libiberty maybe-configure-target-libiberty
+maybe-configure-target-libiberty:
+configure-target-libiberty: $(TARGET_SUBDIR)/libiberty/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libiberty/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libiberty ] || mkdir $(TARGET_SUBDIR)/libiberty;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libiberty"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libiberty/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libiberty/Makefile: config.status $(TARGET_SUBDIR)/libiberty/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libiberty ] || mkdir $(TARGET_SUBDIR)/libiberty;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/libiberty; \
+           cd "$(TARGET_SUBDIR)/libiberty" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/libiberty "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/libiberty"; \
+             libsrcdir="$$s/libiberty"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libiberty maybe-all-target-libiberty
+maybe-all-target-libiberty:
+all-target-libiberty: configure-target-libiberty
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libiberty; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-libiberty
+check-target-libiberty:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libiberty; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
+
+.PHONY: install-target-libiberty maybe-install-target-libiberty
+maybe-install-target-libiberty:
+install-target-libiberty: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libiberty; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-gperf maybe-configure-target-gperf
+maybe-configure-target-gperf:
+configure-target-gperf: $(TARGET_SUBDIR)/gperf/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/gperf/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/gperf ] || mkdir $(TARGET_SUBDIR)/gperf;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for gperf"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/gperf/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/gperf/Makefile: config.status $(TARGET_SUBDIR)/gperf/multilib.out
+       @[ -d $(TARGET_SUBDIR)/gperf ] || mkdir $(TARGET_SUBDIR)/gperf;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/gperf; \
+           cd "$(TARGET_SUBDIR)/gperf" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/gperf "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/gperf"; \
+             libsrcdir="$$s/gperf"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-gperf maybe-all-target-gperf
+maybe-all-target-gperf:
+all-target-gperf: configure-target-gperf
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/gperf; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-gperf
+check-target-gperf:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/gperf; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
+
+.PHONY: install-target-gperf maybe-install-target-gperf
+maybe-install-target-gperf:
+install-target-gperf: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/gperf; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-examples maybe-configure-target-examples
+maybe-configure-target-examples:
+configure-target-examples: $(TARGET_SUBDIR)/examples/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/examples/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/examples ] || mkdir $(TARGET_SUBDIR)/examples;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for examples"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/examples/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/examples/Makefile: config.status $(TARGET_SUBDIR)/examples/multilib.out
+       @[ -d $(TARGET_SUBDIR)/examples ] || mkdir $(TARGET_SUBDIR)/examples;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/examples; \
+           cd "$(TARGET_SUBDIR)/examples" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/examples "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/examples"; \
+             libsrcdir="$$s/examples"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-examples maybe-all-target-examples
+maybe-all-target-examples:
+all-target-examples: configure-target-examples
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/examples; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+# Dummy target for uncheckable module.
+.PHONY: check-target-examples
+check-target-examples:
+
+
+.PHONY: install-target-examples maybe-install-target-examples
+maybe-install-target-examples:
+# Dummy target for uninstallable.
+install-target-examples:
+
+
+.PHONY: configure-target-libffi maybe-configure-target-libffi
+maybe-configure-target-libffi:
+configure-target-libffi: $(TARGET_SUBDIR)/libffi/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libffi/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libffi ] || mkdir $(TARGET_SUBDIR)/libffi;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libffi"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libffi/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libffi/Makefile: config.status $(TARGET_SUBDIR)/libffi/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libffi ] || mkdir $(TARGET_SUBDIR)/libffi;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/libffi; \
+           cd "$(TARGET_SUBDIR)/libffi" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/libffi "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/libffi"; \
+             libsrcdir="$$s/libffi"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libffi maybe-all-target-libffi
+maybe-all-target-libffi:
+all-target-libffi: configure-target-libffi
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libffi; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-libffi
+check-target-libffi:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libffi; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
+
+.PHONY: install-target-libffi maybe-install-target-libffi
+maybe-install-target-libffi:
+# Dummy target for uninstallable.
+install-target-libffi:
+
+
+.PHONY: configure-target-libjava maybe-configure-target-libjava
+maybe-configure-target-libjava:
+configure-target-libjava: $(TARGET_SUBDIR)/libjava/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libjava/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libjava ] || mkdir $(TARGET_SUBDIR)/libjava;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libjava"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libjava/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libjava/Makefile: config.status $(TARGET_SUBDIR)/libjava/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libjava ] || mkdir $(TARGET_SUBDIR)/libjava;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
+           CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/libjava; \
+           cd "$(TARGET_SUBDIR)/libjava" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/libjava "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/libjava"; \
+             libsrcdir="$$s/libjava"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libjava maybe-all-target-libjava
+maybe-all-target-libjava:
+all-target-libjava: configure-target-libjava
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libjava; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  all)
+
+.PHONY: check-target-libjava
+check-target-libjava:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libjava; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  check)
+
+
+.PHONY: install-target-libjava maybe-install-target-libjava
+maybe-install-target-libjava:
+install-target-libjava: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libjava; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-zlib maybe-configure-target-zlib
+maybe-configure-target-zlib:
+configure-target-zlib: $(TARGET_SUBDIR)/zlib/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/zlib/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/zlib ] || mkdir $(TARGET_SUBDIR)/zlib;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for zlib"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/zlib/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/zlib/Makefile: config.status $(TARGET_SUBDIR)/zlib/multilib.out
+       @[ -d $(TARGET_SUBDIR)/zlib ] || mkdir $(TARGET_SUBDIR)/zlib;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/zlib; \
+           cd "$(TARGET_SUBDIR)/zlib" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/zlib "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/zlib"; \
+             libsrcdir="$$s/zlib"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-zlib maybe-all-target-zlib
+maybe-all-target-zlib:
+all-target-zlib: configure-target-zlib
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/zlib; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-zlib
+check-target-zlib:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/zlib; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
+
+.PHONY: install-target-zlib maybe-install-target-zlib
+maybe-install-target-zlib:
+install-target-zlib: installdirs
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/zlib; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+
+.PHONY: configure-target-boehm-gc maybe-configure-target-boehm-gc
+maybe-configure-target-boehm-gc:
+configure-target-boehm-gc: $(TARGET_SUBDIR)/boehm-gc/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/boehm-gc/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/boehm-gc ] || mkdir $(TARGET_SUBDIR)/boehm-gc;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for boehm-gc"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/boehm-gc/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/boehm-gc/Makefile: config.status $(TARGET_SUBDIR)/boehm-gc/multilib.out
+       @[ -d $(TARGET_SUBDIR)/boehm-gc ] || mkdir $(TARGET_SUBDIR)/boehm-gc;\
+           r=`${PWD}`; export r; \
+           s=`cd $(srcdir); ${PWD}`; export s; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/boehm-gc; \
+           cd "$(TARGET_SUBDIR)/boehm-gc" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(TARGET_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/boehm-gc "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/boehm-gc"; \
+             libsrcdir="$$s/boehm-gc"; \
+           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-boehm-gc maybe-all-target-boehm-gc
+maybe-all-target-boehm-gc:
+all-target-boehm-gc: configure-target-boehm-gc
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/boehm-gc; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
+
+.PHONY: check-target-boehm-gc
+check-target-boehm-gc:
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/boehm-gc; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-# Install the gcc headers files, but not the fixed include files,
-# which Cygnus is not allowed to distribute.  This rule is very
-# dependent on the workings of the gcc Makefile.in.
-.PHONY: gcc-no-fixedincludes
-gcc-no-fixedincludes:
-       @if [ -f ./gcc/Makefile ]; then \
-         rm -rf gcc/tmp-include; \
-         mv gcc/include gcc/tmp-include 2>/dev/null; \
-         mkdir gcc/include; \
-         cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
-         touch gcc/stmp-fixinc gcc/include/fixed; \
-         rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
-         r=`${PWD}`; export r; \
-         s=`cd $(srcdir); ${PWD}` ; export s; \
-         $(SET_LIB_PATH) \
-         (cd ./gcc; \
-          $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
-         rm -rf gcc/include; \
-         mv gcc/tmp-include gcc/include 2>/dev/null; \
-       else true; fi
 
-# This rule is used to build the modules which are built with the
-# build machine's native compiler.
-.PHONY: $(ALL_BUILD_MODULES)
-$(ALL_BUILD_MODULES):
-       dir=`echo $@ | sed -e 's/all-build-//'`; \
-       if [ -f ./$${dir}/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: install-target-boehm-gc maybe-install-target-boehm-gc
+maybe-install-target-boehm-gc:
+install-target-boehm-gc: installdirs
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
-         (cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \
-       else \
-         true; \
-       fi
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/boehm-gc; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
-# This rule is used to configure the modules which are built with the
-# native tools.
-.PHONY: $(CONFIGURE_BUILD_MODULES)
-$(CONFIGURE_BUILD_MODULES):
-       @dir=`echo $@ | sed -e 's/configure-build-//'`; \
-       if [ ! -d $(BUILD_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(BUILD_SUBDIR)/$${dir}/Makefile ] ; then \
-         true; \
-       elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/$${dir} ]; then \
-           [ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\
+
+.PHONY: configure-target-qthreads maybe-configure-target-qthreads
+maybe-configure-target-qthreads:
+configure-target-qthreads: $(TARGET_SUBDIR)/qthreads/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/qthreads/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/qthreads ] || mkdir $(TARGET_SUBDIR)/qthreads;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for qthreads"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/qthreads/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/qthreads/Makefile: config.status $(TARGET_SUBDIR)/qthreads/multilib.out
+       @[ -d $(TARGET_SUBDIR)/qthreads ] || mkdir $(TARGET_SUBDIR)/qthreads;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
-           AR="$(AR_FOR_BUILD)"; export AR; \
-           AS="$(AS_FOR_BUILD)"; export AS; \
-           CC="$(CC_FOR_BUILD)"; export CC; \
-           CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
-           CXX="$(CXX_FOR_BUILD)"; export CXX; \
-           CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
-           GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
-           DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
-           LD="$(LD_FOR_BUILD)"; export LD; \
-            LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
-           NM="$(NM_FOR_BUILD)"; export NM; \
-           RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \
-           WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \
-           echo Configuring in $(BUILD_SUBDIR)/$${dir}; \
-           cd "$(BUILD_SUBDIR)/$${dir}" || exit 1; \
+           $(SET_LIB_PATH) \
+           AR="$(AR_FOR_TARGET)"; export AR; \
+           AS="$(AS_FOR_TARGET)"; export AS; \
+           CC="$(CC_FOR_TARGET)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+           LD="$(LD_FOR_TARGET)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+           NM="$(NM_FOR_TARGET)"; export NM; \
+           RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
+           echo Configuring in $(TARGET_SUBDIR)/qthreads; \
+           cd "$(TARGET_SUBDIR)/qthreads" || exit 1; \
            case $(srcdir) in \
            /* | [A-Za-z]:[\\/]*) \
              topdir=$(srcdir) ;; \
            *) \
-             case "$(BUILD_SUBDIR)" in \
+             case "$(TARGET_SUBDIR)" in \
              .) topdir="../$(srcdir)" ;; \
              *) topdir="../../$(srcdir)" ;; \
              esac ;; \
            esac; \
            if [ "$(srcdir)" = "." ] ; then \
-             if [ "$(BUILD_SUBDIR)" != "." ] ; then \
-               if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \
+             if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/qthreads "no-such-file" ; then \
                  if [ -f Makefile ]; then \
                    if $(MAKE) distclean; then \
                      true; \
@@ -1228,121 +7275,57 @@ $(CONFIGURE_BUILD_MODULES):
              srcdiroption="--srcdir=."; \
              libsrcdir="."; \
            else \
-             srcdiroption="--srcdir=$${topdir}/$${dir}"; \
-             libsrcdir="$$s/$${dir}"; \
+             srcdiroption="--srcdir=$${topdir}/qthreads"; \
+             libsrcdir="$$s/qthreads"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(BUILD_CONFIGARGS) $${srcdiroption} \
-               --with-build-subdir="$(BUILD_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(BUILD_CONFIGARGS) $${srcdiroption} \
-               --with-build-subdir="$(BUILD_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir $${dir} || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-# This rule is used to build the modules which use FLAGS_TO_PASS.  To
-# build a target all-X means to cd to X and make all.
-.PHONY: $(ALL_MODULES)
-$(ALL_MODULES):
-       @dir=`echo $@ | sed -e 's/all-//'`; \
-       if [ -f ./$${dir}/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-qthreads maybe-all-target-qthreads
+maybe-all-target-qthreads:
+all-target-qthreads: configure-target-qthreads
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
-
-# These rules are used to check the modules which use FLAGS_TO_PASS.
-# To build a target check-X means to cd to X and make check.  Some
-# modules are only tested in a native toolchain.
-
-.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
-$(NATIVE_CHECK_MODULES):
-       @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
-         dir=`echo $@ | sed -e 's/check-//'`; \
-         if [ -f ./$${dir}/Makefile ] ; then \
-           r=`${PWD}`; export r; \
-           s=`cd $(srcdir); ${PWD}`; export s; \
-           $(SET_LIB_PATH) \
-           (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
-         else \
-           true; \
-         fi; \
-       fi
+         (cd $(TARGET_SUBDIR)/qthreads; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
-$(CROSS_CHECK_MODULES):
-       @dir=`echo $@ | sed -e 's/check-//'`; \
-       if [ -f ./$${dir}/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: check-target-qthreads
+check-target-qthreads:
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd $(TARGET_SUBDIR)/qthreads; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-# This rule is used to install the modules which use FLAGS_TO_PASS.
-# To build a target install-X means to cd to X and make install.
-.PHONY: $(INSTALL_MODULES)
-$(INSTALL_MODULES): installdirs
-       @dir=`echo $@ | sed -e 's/install-//'`; \
-       if [ -f ./$${dir}/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+
+.PHONY: install-target-qthreads maybe-install-target-qthreads
+maybe-install-target-qthreads:
+install-target-qthreads: installdirs
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd $(TARGET_SUBDIR)/qthreads; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
-# This rule is used to configure the modules which are built with the
-# target tools.
-.PHONY: $(CONFIGURE_TARGET_MODULES)
-$(CONFIGURE_TARGET_MODULES):
-       @dir=`echo $@ | sed -e 's/configure-target-//'`; \
-       if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for $${dir}, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/Makefile; \
-               mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=`echo $@ | sed -e 's/configure-target-//'`; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/$${dir} ]; then \
-           [ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\
+
+.PHONY: configure-target-rda maybe-configure-target-rda
+maybe-configure-target-rda:
+configure-target-rda: $(TARGET_SUBDIR)/rda/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/rda/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/rda ] || mkdir $(TARGET_SUBDIR)/rda;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for rda"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/rda/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/rda/Makefile: config.status $(TARGET_SUBDIR)/rda/multilib.out
+       @[ -d $(TARGET_SUBDIR)/rda ] || mkdir $(TARGET_SUBDIR)/rda;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -1359,8 +7342,8 @@ $(CONFIGURE_TARGET_MODULES):
            NM="$(NM_FOR_TARGET)"; export NM; \
            RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
            WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
-           echo Configuring in $(TARGET_SUBDIR)/$${dir}; \
-           cd "$(TARGET_SUBDIR)/$${dir}" || exit 1; \
+           echo Configuring in $(TARGET_SUBDIR)/rda; \
+           cd "$(TARGET_SUBDIR)/rda" || exit 1; \
            case $(srcdir) in \
            /* | [A-Za-z]:[\\/]*) \
              topdir=$(srcdir) ;; \
@@ -1372,7 +7355,7 @@ $(CONFIGURE_TARGET_MODULES):
            esac; \
            if [ "$(srcdir)" = "." ] ; then \
              if [ "$(TARGET_SUBDIR)" != "." ] ; then \
-               if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/rda "no-such-file" ; then \
                  if [ -f Makefile ]; then \
                    if $(MAKE) distclean; then \
                      true; \
@@ -1391,135 +7374,110 @@ $(CONFIGURE_TARGET_MODULES):
              srcdiroption="--srcdir=."; \
              libsrcdir="."; \
            else \
-             srcdiroption="--srcdir=$${topdir}/$${dir}"; \
-             libsrcdir="$$s/$${dir}"; \
-           fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir $${dir} || true; \
-           else \
-             true; \
+             srcdiroption="--srcdir=$${topdir}/rda"; \
+             libsrcdir="$$s/rda"; \
            fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-# This rule is used to build the modules which use TARGET_FLAGS_TO_PASS.
-# To build a target all-X means to cd to X and make all.
-.PHONY: $(ALL_TARGET_MODULES)
-$(ALL_TARGET_MODULES):
-       @dir=`echo $@ | sed -e 's/all-target-//'`; \
-       if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-rda maybe-all-target-rda
+maybe-all-target-rda:
+all-target-rda: configure-target-rda
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd $(TARGET_SUBDIR)/$${dir}; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd $(TARGET_SUBDIR)/rda; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
-# This rule is used to check the modules which use TARGET_FLAGS_TO_PASS.
-# To build a target install-X means to cd to X and make install.
-.PHONY: $(CHECK_TARGET_MODULES)
-$(CHECK_TARGET_MODULES):
-       @dir=`echo $@ | sed -e 's/check-target-//'`; \
-       if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: check-target-rda
+check-target-rda:
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd $(TARGET_SUBDIR)/$${dir}; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+         (cd $(TARGET_SUBDIR)/rda; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-# This rule is used to install the modules which use
-# TARGET_FLAGS_TO_PASS.  To build a target install-X means to cd to X
-# and make install.
-.PHONY: $(INSTALL_TARGET_MODULES)
-$(INSTALL_TARGET_MODULES): installdirs
-       @dir=`echo $@ | sed -e 's/install-target-//'`; \
-       if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
-         r=`${PWD}`; export r; \
-         s=`cd $(srcdir); ${PWD}`; export s; \
-         $(SET_LIB_PATH) \
-         (cd $(TARGET_SUBDIR)/$${dir}; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
 
-# This rule is used to build the modules which use X11_FLAGS_TO_PASS.
-# To build a target all-X means to cd to X and make all.
-.PHONY: $(ALL_X11_MODULES)
-$(ALL_X11_MODULES):
-       @dir=`echo $@ | sed -e 's/all-//'`; \
-       if [ -f ./$${dir}/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: install-target-rda maybe-install-target-rda
+maybe-install-target-rda:
+install-target-rda: installdirs
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd $${dir}; \
-          $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd $(TARGET_SUBDIR)/rda; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
-# This rule is used to check the modules which use X11_FLAGS_TO_PASS.
-# To build a target check-X means to cd to X and make all.
-.PHONY: $(CHECK_X11_MODULES)
-$(CHECK_X11_MODULES):
-       @dir=`echo $@ | sed -e 's/check-//'`; \
-       if [ -f ./$${dir}/Makefile ] ; then \
-         r=`${PWD}`; export r; \
-         s=`cd $(srcdir); ${PWD}`; export s; \
-         $(SET_LIB_PATH) \
-         (cd $${dir}; \
-          $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
 
-# This rule is used to install the modules which use X11_FLAGS_TO_PASS.
-# To build a target install-X means to cd to X and make install.
-.PHONY: $(INSTALL_X11_MODULES)
-$(INSTALL_X11_MODULES): installdirs
-       @dir=`echo $@ | sed -e 's/install-//'`; \
-       if [ -f ./$${dir}/Makefile ] ; then \
+
+# ----------
+# GCC module
+# ----------
+
+# Unfortunately, while gcc _should_ be a host module,
+# libgcc is a target module, and gen* programs are
+# build modules.  So GCC is a sort of hybrid.
+
+# gcc is the only module which uses GCC_FLAGS_TO_PASS.
+.PHONY: configure-gcc maybe-configure-gcc
+maybe-configure-gcc:
+configure-gcc: gcc/Makefile
+
+gcc/Makefile: config.status
+       @[ -d gcc ] || mkdir gcc; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gcc; \
+       cd gcc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+# Don't 'make all' in gcc if it's already been made by 'bootstrap'; that
+# causes trouble.  This wart will be fixed eventually by moving
+# the bootstrap behavior to this file.
+.PHONY: all-gcc maybe-all-gcc
+maybe-all-gcc:
+all-gcc: configure-gcc
+       @if [ -f gcc/stage_last ] ; then \
          r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd $${dir}; \
-          $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
+         (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) quickstrap); \
        else \
-         true; \
-       fi
-
-# gcc is the only module which uses GCC_FLAGS_TO_PASS.
-.PHONY: all-gcc
-all-gcc:
-       @if [ -f ./gcc/Makefile ] ; then \
          r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
-       else \
-         true; \
        fi
 
 # Building GCC uses some tools for rebuilding "source" files
@@ -1533,7 +7491,7 @@ all-gcc:
 # in parallel.
 #
 .PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap
-bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap
+bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap configure-gcc
        @r=`${PWD}`; export r; \
        s=`cd $(srcdir); ${PWD}`; export s; \
        $(SET_LIB_PATH) \
@@ -1586,19 +7544,22 @@ check-gcc:
          true; \
        fi
 
-.PHONY: check-c++
-check-c++:
+.PHONY: check-gcc-c++
+check-gcc-c++:
        @if [ -f ./gcc/Makefile ] ; then \
          r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
-         $(MAKE) check-target-libstdc++-v3; \
        else \
          true; \
-       fi 
+       fi
 
-.PHONY: install-gcc
+.PHONY: check-c++
+check-c++: check-target-libstdc++-v3 check-gcc-c++
+
+.PHONY: install-gcc maybe-install-gcc
+maybe-install-gcc:
 install-gcc:
        @if [ -f ./gcc/Makefile ] ; then \
          r=`${PWD}`; export r; \
@@ -1609,196 +7570,156 @@ install-gcc:
          true; \
        fi
 
-.PHONY: install-gcc-cross
-install-gcc-cross:
-       @if [ -f ./gcc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
-         s=`cd $(srcdir); ${PWD}`; export s; \
-         $(SET_LIB_PATH) \
-         (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \
-       else \
-         true; \
-       fi
-# EXPERIMENTAL STUFF
-# This rule is used to install the modules which use FLAGS_TO_PASS.
-# To build a target install-X means to cd to X and make install.
-.PHONY: install-dosrel
-install-dosrel: installdirs info
-       @dir=`echo $@ | sed -e 's/install-//'`; \
-       if [ -f ./$${dir}/Makefile ] ; then \
+# Install the gcc headers files, but not the fixed include files,
+# which Cygnus is not allowed to distribute.  This rule is very
+# dependent on the workings of the gcc Makefile.in.
+.PHONY: gcc-no-fixedincludes
+gcc-no-fixedincludes:
+       @if [ -f ./gcc/Makefile ]; then \
+         rm -rf gcc/tmp-include; \
+         mv gcc/include gcc/tmp-include 2>/dev/null; \
+         mkdir gcc/include; \
+         cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
+         touch gcc/stmp-fixinc gcc/include/fixed; \
+         rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
          r=`${PWD}`; export r; \
-         s=`cd $(srcdir); ${PWD}`; export s; \
+         s=`cd $(srcdir); ${PWD}` ; export s; \
          $(SET_LIB_PATH) \
-         (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd ./gcc; \
+          $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
+         rm -rf gcc/include; \
+         mv gcc/tmp-include gcc/include 2>/dev/null; \
+       else true; fi
 
-install-dosrel-fake:
-
-ALL_GCC = all-gcc
-ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss
-ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3
-
-# This is a list of inter-dependencies among modules.
-all-ash:
-all-autoconf: all-m4 all-texinfo
-all-automake: all-m4 all-texinfo
-all-bash:
-all-bfd: all-libiberty all-intl
-all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl
-all-bison: all-texinfo
-configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads
-all-byacc:
-all-bzip2:
-all-db:
-all-dejagnu: all-tcl all-expect all-tk
-all-diff: all-libiberty
-all-etc:
-configure-target-examples: $(ALL_GCC_C)
-all-expect: all-tcl all-tk
-all-fileutils: all-libiberty
-all-findutils:
-all-find:
-all-flex: all-libiberty all-bison all-byacc
-all-gas: all-libiberty all-opcodes all-bfd all-intl
-all-gawk:
-all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib
-all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib
+# --------------------------------------
+# Dependencies between different modules
+# --------------------------------------
+
+# There are two types of dependencies here: 'hard' dependencies, where one
+# module simply won't build without the other; and 'soft' dependencies, where
+# if the depended-on module is missing, the depending module will do without
+# or find a substitute somewhere (perhaps installed).  Soft dependencies
+# are specified by depending on a 'maybe-' target.  If you're not sure,
+# it's safer to use a soft dependency.
+
+# Host modules specific to gcc.
+# GCC needs to identify certain tools.
+configure-gcc: maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex
+all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
+# This is a slightly kludgy method of getting dependencies on 
+# all-build-libiberty correct; it would be better to build it every time.
+all-gcc: maybe-all-build-libiberty
+all-bootstrap: maybe-all-libiberty maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
+
+# Host modules specific to gdb.
+# GDB needs to know that the simulator is being built.
+configure-gdb: maybe-configure-tcl maybe-configure-tk maybe-configure-sim
 GDB_TK = @GDB_TK@
-all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK)
-all-gettext:
-all-gnuserv:
-configure-target-gperf: $(ALL_GCC_CXX)
-all-target-gperf: all-target-libiberty all-target-libstdc++-v3
-all-gprof: all-libiberty all-bfd all-opcodes all-intl
-all-grep: all-libiberty
-all-guile:
-all-gzip: all-libiberty
-all-hello: all-libiberty
-all-indent:
-all-intl:
-all-itcl: all-tcl all-tk
-all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl
-configure-target-libgloss: $(ALL_GCC)
-all-target-libgloss: configure-target-newlib
-all-libgui: all-tcl all-tk all-itcl
-all-libiberty:
-
-all-build-libiberty: configure-build-libiberty
-
-configure-target-libffi: $(ALL_GCC_C) 
-configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi
-all-target-libjava: all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi
-configure-target-libstdc++-v3: $(ALL_GCC_C)
-all-target-libstdc++-v3: all-target-libiberty
-all-libtool:
-configure-target-libf2c: $(ALL_GCC_C)
-all-target-libf2c: all-target-libiberty
-configure-target-libobjc: $(ALL_GCC_C)
-all-target-libobjc: all-target-libiberty
-all-m4: all-libiberty all-texinfo
-all-make: all-libiberty
-all-mmalloc:
-configure-target-newlib: $(ALL_GCC)
-configure-target-libtermcap: $(ALL_GCC_C)
-all-opcodes: all-bfd all-libiberty
-all-patch: all-libiberty
-all-perl:
-all-prms: all-libiberty
-configure-target-qthreads: $(ALL_GCC_C)
-all-rcs:
-all-readline:
-all-recode: all-libiberty
-all-sed: all-libiberty
-all-send-pr: all-prms
-all-shellutils:
-all-sid: all-tcl all-tk
-all-sim: all-libiberty all-bfd all-opcodes all-readline
-all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui
-all-tar: all-libiberty
-all-tcl:
-all-tclX: all-tcl all-tk
-all-tk: all-tcl
-all-texinfo: all-libiberty
-all-textutils:
-all-time:
-all-tix: all-tcl all-tk
-all-wdiff:
-configure-target-winsup: $(ALL_GCC_C)
-all-target-winsup: all-target-libiberty all-target-libtermcap
-all-uudecode: all-libiberty
-all-zip:
-all-zlib:
-configure-target-zlib: $(ALL_GCC_C)
-all-fastjar: all-zlib all-libiberty
-configure-target-fastjar: configure-target-zlib
-all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty
-configure-target-libiberty: $(ALL_GCC_C)
-configure-target: $(CONFIGURE_TARGET_MODULES)
-all-target: $(ALL_TARGET_MODULES)
-install-target: $(INSTALL_TARGET_MODULES)
-install-gdb: install-tcl install-tk install-itcl install-tix install-libgui
-install-sid: install-tcl install-tk
-
+all-gdb: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK)
+install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui
+configure-libgui: maybe-configure-tcl maybe-configure-tk
+all-libgui: maybe-all-tcl maybe-all-tk maybe-all-itcl
+
+# Host modules specific to binutils.
+configure-bfd: configure-libiberty
+all-bfd: maybe-all-libiberty maybe-all-intl
+all-binutils: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-flex maybe-all-bison maybe-all-byacc maybe-all-intl
 # We put install-opcodes before install-binutils because the installed
 # binutils might be on PATH, and they might need the shared opcodes
 # library.
-install-binutils: install-opcodes
-
+install-binutils: maybe-install-opcodes
+all-gas: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-intl
+all-gprof: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-intl
+all-ld: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl
+all-opcodes: maybe-all-bfd maybe-all-libiberty
+
+# Other host modules in the 'src' repository.
+all-dejagnu: maybe-all-tcl maybe-all-expect maybe-all-tk
+configure-expect: maybe-configure-tcl maybe-configure-tk
+all-expect: maybe-all-tcl maybe-all-tk
+configure-itcl: maybe-configure-tcl maybe-configure-tk
+all-itcl: maybe-all-tcl maybe-all-tk
 # We put install-tcl before install-itcl because itcl wants to run a
 # program on installation which uses the Tcl libraries.
-install-itcl: install-tcl
-
-
-# Dependencies of all-target-foo on configure-target-foo.
-all-target-libstdc++-v3: configure-target-libstdc++-v3
-all-target-newlib: configure-target-newlib
-all-target-libf2c: configure-target-libf2c
-all-target-libobjc: configure-target-libobjc
-all-target-libtermcap: configure-target-libtermcap
-all-target-winsup: configure-target-winsup
-all-target-libgloss: configure-target-libgloss
-all-target-libiberty: configure-target-libiberty
-all-target-gperf: configure-target-gperf
-all-target-examples: configure-target-examples
-all-target-libffi: configure-target-libffi
-all-target-libjava: configure-target-libjava
-all-target-zlib: configure-target-zlib
-all-target-boehm-gc: configure-target-boehm-gc
-all-target-qthreads: configure-target-qthreads
-all-target-rda: configure-target-rda
-
-
-### other supporting targets
+install-itcl: maybe-install-tcl
+all-sid: maybe-all-tcl maybe-all-tk
+install-sid: maybe-install-tcl maybe-install-tk
+all-sim: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-readline maybe-configure-gdb
+configure-tk: maybe-configure-tcl
+all-tk: maybe-all-tcl
+configure-tix: maybe-configure-tcl maybe-configure-tk
+all-tix: maybe-all-tcl maybe-all-tk
+all-texinfo: maybe-all-libiberty
+
+# Other host modules.  Warning, these are not well tested.
+all-autoconf: maybe-all-m4 maybe-all-texinfo
+all-automake: maybe-all-m4 maybe-all-texinfo
+all-bison: maybe-all-texinfo
+all-diff: maybe-all-libiberty
+all-fastjar: maybe-all-zlib maybe-all-libiberty
+all-fileutils: maybe-all-libiberty
+all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc
+all-grep: maybe-all-libiberty
+all-gzip: maybe-all-libiberty
+all-hello: maybe-all-libiberty
+all-m4: maybe-all-libiberty maybe-all-texinfo
+all-make: maybe-all-libiberty
+all-patch: maybe-all-libiberty
+all-prms: maybe-all-libiberty
+all-recode: maybe-all-libiberty
+all-sed: maybe-all-libiberty
+all-send-pr: maybe-all-prms
+all-snavigator: maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-db maybe-all-grep maybe-all-libgui
+all-tar: maybe-all-libiberty
+all-uudecode: maybe-all-libiberty
+
+ALL_GCC = maybe-all-gcc
+ALL_GCC_C = $(ALL_GCC) maybe-all-target-newlib maybe-all-target-libgloss
+ALL_GCC_CXX = $(ALL_GCC_C) maybe-all-target-libstdc++-v3
+
+# Target modules specific to gcc.
+configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads
+configure-target-fastjar: maybe-configure-target-zlib
+all-target-fastjar: maybe-all-target-zlib maybe-all-target-libiberty
+configure-target-libf2c: $(ALL_GCC_C)
+all-target-libf2c: maybe-all-target-libiberty
+configure-target-libffi: $(ALL_GCC_C) 
+configure-target-libjava: $(ALL_GCC_C) maybe-configure-target-zlib maybe-configure-target-boehm-gc maybe-configure-target-qthreads maybe-configure-target-libffi
+all-target-libjava: maybe-all-fastjar maybe-all-target-zlib maybe-all-target-boehm-gc maybe-all-target-qthreads maybe-all-target-libffi
+configure-target-libobjc: $(ALL_GCC_C)
+all-target-libobjc: maybe-all-target-libiberty
+configure-target-libstdc++-v3: $(ALL_GCC_C)
+all-target-libstdc++-v3: maybe-all-target-libiberty
+configure-target-zlib: $(ALL_GCC_C)
 
-MAKEDIRS= \
-       $(DESTDIR)$(prefix) \
-       $(DESTDIR)$(exec_prefix)
-.PHONY: installdirs
-installdirs: mkinstalldirs
-       $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS)
+# Target modules in the 'src' repository.
+configure-target-examples: $(ALL_GCC_C)
+configure-target-libgloss: $(ALL_GCC)
+all-target-libgloss: maybe-configure-target-newlib
+configure-target-libiberty: $(ALL_GCC_C)
+configure-target-libtermcap: $(ALL_GCC_C)
+configure-target-newlib: $(ALL_GCC)
+configure-target-rda: $(ALL_GCC_C)
+configure-target-winsup: $(ALL_GCC_C)
+all-target-winsup: maybe-all-target-libiberty maybe-all-target-libtermcap
 
-dir.info: do-install-info
-       if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
-         $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
-         mv -f dir.info.new dir.info ; \
-       else true ; \
-       fi
+# Other target modules.  Warning, these are not well tested.
+configure-target-gperf: $(ALL_GCC_CXX)
+all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3
+configure-target-qthreads: $(ALL_GCC_C)
 
-dist:
-       @echo "Building a full distribution of this tree isn't done"
-       @echo "via 'make dist'.  Check out the etc/ subdirectory" 
+# Dependencies of maybe-foo on foo.  These are used because, for example,
+# all-gcc only depends on all-gas if gas is present and being configured.
+@maybe_dependencies@
 
-etags tags: TAGS
+# Serialization dependencies.  Host configures don't work well in parallel to
+# each other, due to contention over config.cache.  Target configures and 
+# build configures are similar.
+@serialization_dependencies@
 
-# Right now this just builds TAGS in each subdirectory.  emacs19 has the
-# ability to use several tags files at once, so there is probably no need
-# to combine them into one big TAGS file (like CVS 1.3 does).  We could
-# (if we felt like it) have this Makefile write a piece of elisp which
-# the user could load to tell emacs19 where all the TAGS files we just
-# built are.
-TAGS: do-TAGS
+# --------------------------------
+# Regenerating top level configury
+# --------------------------------
 
 # Rebuilding Makefile.in, using autogen.
 $(srcdir)/Makefile.in: # $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def
@@ -1806,6 +7727,9 @@ $(srcdir)/Makefile.in: # $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def
 
 # with the gnu make, this is done automatically.
 
+host_makefile_frag=@host_makefile_frag@
+target_makefile_frag=@target_makefile_frag@
+
 Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger)
        $(SHELL) ./config.status
 
index 479674b6c6b381609ebb47bbf5b317b865709124..df7a736b37bee6fd5e6671c57ee01571efce3cb3 100644 (file)
@@ -1,3 +1,458 @@
+2002-12-23  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.h (elf_link_output_extsym): Heed strip_discarded.
+
+2002-12-23  Nick Clifton  <nickc@redhat.com>
+
+       * archures.c (bfd_arch_get_compatible): Add third parameter
+       'accept_unknowns'.  Only accept unknown format BFDs if
+       accept_unknowns is true, or if the format is "binary".
+        * bfd-in2.h: Regenerate.
+
+2002-12-21  Nick Clifton  <nickc@redhat.com>
+
+       * coff-arm.c (coff_arm_relocate_section): Disable WINCE workaround
+       that subtracted 8 from pc relative relocations.
+
+2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * coff-h8300.c: Fix comment typos.
+       * coffcode.h: Likewise.
+       * cpu-cris.c: Likewise.
+       * elf32-vax.c: Likewise.
+       * genlink.h: Likewise.
+       * linker.c: Likewise.
+       * som.c: Likewise.
+       * tekhex.c: Likewise.
+       * vms-misc.c: Likewise.
+
+2002-12-20  DJ Delorie  <dj@redhat.com>
+
+       * reloc.c: Add BFD_RELOC_XSTORMY16_12.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+       * elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_12.
+       (xstormy16_reloc_map): Add R_XSTORMY16_12.
+       
+2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * doc/bfdint.texi: Fix typos.
+
+2002-12-20  Paul Eggert  <eggert@twinsun.com>
+
+       Port to POSIX 1003.1-2001.
+       * acinclude.m4 (AM_INSTALL_LIBBFD): Do not rely on "test -o".
+       * configure.in (build-warnings): Likewise.
+       (Horrible hacks to build DLLs on Windows): Do not rely on "tail -1".
+       * aclocal.m4: Regenerate.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+
+2002-12-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * coff-h8300.c: Include libiberty.h.
+       (h8300_reloc16_extra_cases): Check the hash table creator before
+       referencing h8300 specific fields.  Stash the hash table pointer
+       in a local var.  Comment typo fixes.
+       (h8300_bfd_link_add_symbols): Likewise.
+
+       * bfd/reloc.c (struct reloc_howto_struct): Revise src_mask and
+       dst_mask comments.
+       * bfd-in2.h: Regenerate.
+
+2002-12-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Reorganize dynamic reloc
+       code a little.  Comment on dynamic relocs against section symbols.
+
+2002-12-17  Roger Sayle  <roger@eyesopen.com>
+
+       * configure.host (ia64-*-hpux*): Support 64 bit targets using
+       the HP compiler's "long long".
+
+2002-12-16  Andrew MacLeod  <amacleod@redhat.com>
+
+       * elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_LO16
+       and R_XSTORMY16_HI16) howto entries.
+       (xstormy16_reloc_map): Map R_XSTORMY16_{LO,HI}16 to BFD_RELOC_{LO,HI}16.
+       (xstormy16_info_to_howto_rela): Use R_XSTORMY16_GNU_VTINHERIT to
+       determine the start of the second reloc table.
+
+2002-12-16  Nathan Tallent  <eraxxon@alumni.rice.edu>
+
+       * ecofflink.c: Fix the reading of the debugging information
+       of Tru64/Alpha binaries that are produced by recent Compaq
+       compilers.
+       (mk_fdrtab): Fix error in creating the FDR (file descriptor)
+       table.
+       (lookup_line): Because of the strange information sometimes
+       generated by Compaq's recent compilers, change how the FDR
+       table is searched so that PDRs (procedure descriptors) are
+       correctly found.  Note that this change is really more of a hack;
+       however, I have included extensive documentation as to why
+       this is the best solution short of an extensive rewrite or
+       another hack.
+       (fdrtab_lookup): Add comments to explain the algorithm.
+
+2002-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-m10300.c (elf32_mn10300_link_hash_newfunc): Reorder
+       initializers to match struct declaration.
+
+2002-12-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * dwarf2.c (comp_unit_contains_address): Comment typo fix.
+       * elf.c (get_program_header_size): Likewise.
+       * elf32-m32r.c (m32r_elf_lo16_reloc): Likewise.
+       (m32r_elf_generic_reloc): Likewise.
+       * elf32-ppc.c (ppc_elf_howto_init): Likewise.
+       * elflink.h (elf_bfd_discard_info): Likewise.
+
+2002-12-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-i386.c (elf_i386_finish_dynamic_sections): Add output_offset
+       to DT_JMPREL.  Use srelplt input section size for DT_PLTRELSZ and
+       DT_RELSZ adjustment, not output section.  Avoid writing tags when
+       unchanged.  Don't assume linker script is sane, adjust DT_REL too.
+       * elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Just use raw
+       size of srelplt for DT_PLTRELSZ.  Use srelplt input section size for
+       DT_RELASZ adjustment, not output section.  Avoid writing tags when
+       unchanged.  Adjust DT_RELA.
+       * elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Tweaks for better
+       formatting.  Avoid writing tags when unchanged.  Adjust DT_RELA.
+
+2002-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Don't divide
+       addend by 4.
+
+2002-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (struct mips_got_entry): New.
+       (struct mips_got_info): Added got_entries field.
+       (mips_elf_got_entry_hash, mips_elf_got_entry_eq): New functions.
+       (mips_elf_local_got_index, mips_elf_got_page,
+       mips_elf_got16_entry): Re-implement in terms of new...
+       (mips_elf_create_local_got_entry): Rewrite to use got_entries.
+       Change return type.
+       (mips_elf_highest): Warning clean-up.
+       (mips_elf_create_got_section): Initialize got_entries.
+       (_bfd_mips_elf_check_relocs): Use got_entries to estimate
+       local got size.
+       (_bfd_mips_elf_size_dynamic_sections): Do not account for
+       GOT_PAGE entries, since we now reuse GOT16 entries.
+
+2002-12-10  Jason Thorpe  <thorpej@wasabisystems.com>
+
+       * aoutx.h (set_section_contents): Allow an otherwise unrepresentable
+       read-only section that lies after .text and before .data to be
+       written into the output file and included in a_text.
+       (translate_to_native_sym_flags): If an otherwise unrepresentable
+       section was merged with .text, convert its symbols to N_TEXT
+       symbols.
+       * libaout.h (aout_section_merge_with_text_p): New macro.
+
+2002-12-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h: Comment typo fix.  Formatting.
+       * bfd-in2.h: Regenerate.
+       * coff64-rs6000.c (xcoff64_openr_next_archived_file): Warning fix.
+       * elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): Prototype.
+       * elf64-mmix.c (mmix_dump_bpo_gregs): Warning fix.
+
+2002-12-05  Richard Henderson  <rth@redhat.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21BI.
+       Only send PCREL21B though the plt.  Fix installed reloc type.
+       (elfNN_ia64_relocate_section): Give error for dynamic reloc
+       against PCREL22 or PCREL64I; clean up error messages for
+       branch relocs.
+
+2002-12-04  Kevin Buettner  <kevinb@redhat.com>
+
+       * elf64-mips.c (elf64_mips_grok_prstatus, elf64_mips_grok_psinfo):
+       New functions.
+       (elf_backend_grok_prstatus, elf_backend_grok_psinfo): Define.
+
+2002-12-04  David Mosberger  <davidm@hpl.hp.com>
+
+       * cpu-ia64-opc.c: Add operand constant "ar.csd".
+
+2002-12-04  H.J. Lu <hjl@gnu.org>
+
+       * elfxx-ia64.c (get_local_sym_hash): Use section ID instead of
+       BFD address when constructing local name.
+
+2002-12-04  Andreas Schwab  <schwab@suse.de>
+
+       * elf32-m68k.c (struct elf_m68k_link_hash_table): Add sym_sec
+       member.
+       (elf_m68k_link_hash_table_create): Initialize it.
+       (elf_m68k_check_relocs): Handle symbols that are forced to be
+       local due to visibility changes.
+       (elf_m68k_adjust_dynamic_symbol): Likewise.
+       (elf_m68k_size_dynamic_sections): Likewise.
+       (elf_m68k_discard_copies): Likewise.
+       (elf_m68k_relocate_section): Likewise.
+
+2002-12-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_edit_opd): Correct typo.
+
+2002-12-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * srec.c (srec_write_symbols): Restore '$' prefix to address
+       accidentally removed in 2002-04-04 change.
+       (srec_get_symtab): Use 0 instead of `(long) FALSE'.
+
+2002-12-03  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-ppc.c (apuinfo_list_init): New function.
+       (apuinfo_list_add): New function: Add a value to the list.
+       (apuinfo_list_length): New function: Return the number of
+       values on the list.
+       (apuinfo_list_element): New function: Return a value on the
+       list.
+       (apuinfo_list_finish): New function: Free the resources used
+       by the list.
+       (ppc_elf_begin_write_processing): New function.  Scan the
+       input bfds for apuinfo sections.
+       (ppc_elf_write_section): New function: Delay the creation of
+       the contents of an apuinfo section in an output bfd.
+       (ppc_elf_final_write_processing): New function.  Create the
+       contents of an apuinfo section in an output bfd.
+       (elf_backend_begin_write_processing): Define.
+       (elf_backend_final_write_processing): Define.
+       (elf_backend_write_section): Define.
+
+2002-12-03  Richard Henderson  <rth@redhat.com>
+
+       * cpu-ia64-opc.c (elf64_ia64_operands): Add ldxmov entry.
+
+2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
+
+       Fix PR savannah/1417:
+       * elf32-m68hc11.c (m68hc11_elf_relax_delete_bytes): Don't adjust
+       branch if it goes to the start of the deleted region.
+
+2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * bfd-in2.h (bfd_mach_m6812): Rebuild.
+       * archures.c (bfd_mach_m6812_default, bfd_mach_m6812,
+       bfd_mach_m6812s): Declare.
+
+       * elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): New function.
+       (_bfd_m68hc12_elf_set_private_flags): Call it.
+       (_bfd_m68hc12_elf_print_private_bfd_data): Report processor version.
+       (_bfd_m68hc12_elf_merge_private_bfd_data): Merge the flags and
+       report microcontroller incompatibilities (HC12 vs HCS12).
+       (elf_backend_object_p): Update.
+
+2002-11-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h (TRUE_FALSE_ALREADY_DEFINED, BFD_TRUE_FALSE): Delete.
+       (enum bfd_boolean, boolean): Delete.
+       (bfd_boolean): Typedef to an int.
+       (FALSE, TRUE): Define.
+       * aix386-core.c, aix5ppc-core.c, aout-adobe.c, aout-arm.c, aout-cris.c,
+       aout-encap.c, aout-ns32k.c, aout-target.h, aout-tic30.c, aoutf1.h,
+       aoutx.h, archive.c, archive64.c, archures.c, bfd-in.h, bfd.c, bfdwin.c,
+       binary.c, bout.c, cache.c, cisco-core.c, coff-a29k.c, coff-alpha.c,
+       coff-apollo.c, coff-arm.c, coff-aux.c, coff-h8300.c, coff-h8500.c,
+       coff-i386.c, coff-i860.c, coff-i960.c, coff-ia64.c, coff-m68k.c,
+       coff-m88k.c, coff-mcore.c, coff-mips.c, coff-or32.c, coff-ppc.c,
+       coff-rs6000.c, coff-sh.c, coff-sparc.c, coff-stgo32.c, coff-tic30.c,
+       coff-tic4x.c, coff-tic54x.c, coff-tic80.c, coff-w65.c, coff-we32k.c,
+       coff-z8k.c, coff64-rs6000.c, coffcode.h, coffgen.c, cofflink.c,
+       corefile.c, cpu-a29k.c, cpu-alpha.c, cpu-arc.c, cpu-arm.c, cpu-avr.c,
+       cpu-cris.c, cpu-d10v.c, cpu-d30v.c, cpu-dlx.c, cpu-fr30.c, cpu-frv.c,
+       cpu-h8300.c, cpu-h8500.c, cpu-hppa.c, cpu-i370.c, cpu-i386.c,
+       cpu-i860.c, cpu-i960.c, cpu-ia64.c, cpu-ip2k.c, cpu-m10200.c,
+       cpu-m10300.c, cpu-m32r.c, cpu-m68hc11.c, cpu-m68hc12.c, cpu-m68k.c,
+       cpu-m88k.c, cpu-mcore.c, cpu-mips.c, cpu-mmix.c, cpu-ns32k.c,
+       cpu-openrisc.c, cpu-or32.c, cpu-pdp11.c, cpu-pj.c, cpu-powerpc.c,
+       cpu-rs6000.c, cpu-s390.c, cpu-sh.c, cpu-sparc.c, cpu-tic30.c,
+       cpu-tic4x.c, cpu-tic54x.c, cpu-tic80.c, cpu-v850.c, cpu-vax.c,
+       cpu-w65.c, cpu-we32k.c, cpu-xstormy16.c, cpu-z8k.c, dwarf1.c,
+       dwarf2.c, ecoff.c, ecofflink.c, efi-app-ia32.c, efi-app-ia64.c,
+       elf-bfd.h, elf-eh-frame.c, elf-hppa.h, elf-m10200.c, elf-m10300.c,
+       elf-strtab.c, elf.c, elf32-arc.c, elf32-arm.h, elf32-avr.c,
+       elf32-cris.c, elf32-d10v.c, elf32-d30v.c, elf32-dlx.c, elf32-fr30.c,
+       elf32-frv.c, elf32-gen.c, elf32-h8300.c, elf32-hppa.c, elf32-hppa.h,
+       elf32-i370.c, elf32-i386.c, elf32-i860.c, elf32-i960.c, elf32-ip2k.c,
+       elf32-m32r.c, elf32-m68hc11.c, elf32-m68hc12.c, elf32-m68k.c,
+       elf32-mcore.c, elf32-mips.c, elf32-openrisc.c, elf32-or32.c,
+       elf32-pj.c, elf32-ppc.c, elf32-s390.c, elf32-sh.c, elf32-sh64-com.c,
+       elf32-sh64.c, elf32-sparc.c, elf32-v850.c, elf32-vax.c,
+       elf32-xstormy16.c, elf64-alpha.c, elf64-gen.c, elf64-hppa.c,
+       elf64-mips.c, elf64-mmix.c, elf64-ppc.c, elf64-ppc.h, elf64-s390.c,
+       elf64-sh64.c, elf64-sparc.c, elf64-x86-64.c, elfarm-nabi.c,
+       elfarm-oabi.c, elfcode.h, elfcore.h, elflink.c, elflink.h,
+       elfn32-mips.c, elfxx-ia64.c, elfxx-mips.c, elfxx-mips.h,
+       elfxx-target.h, format.c, freebsd.h, genlink.h, hash.c, hp300hpux.c,
+       hppabsd-core.c, hpux-core.c, i386aout.c, i386linux.c, i386lynx.c,
+       i386mach3.c, i386msdos.c, i386os9k.c, ieee.c, ihex.c, irix-core.c,
+       libaout.h, libbfd-in.h, libbfd.c, libcoff-in.h, libecoff.h, libieee.h,
+       libnlm.h, liboasys.h, libpei.h, libxcoff.h, linker.c, lynx-core.c,
+       m68klinux.c, m68klynx.c, mach-o.c, mach-o.h, merge.c, mipsbsd.c,
+       mmo.c, netbsd-core.c, netbsd.h, nlm.c, nlm32-alpha.c, nlm32-i386.c,
+       nlm32-ppc.c, nlm32-sparc.c, nlmcode.h, oasys.c, opncls.c, osf-core.c,
+       pc532-mach.c, pdp11.c, pe-arm.c, pe-i386.c, pe-mcore.c, pe-mips.c,
+       pe-sh.c, peXXigen.c, pef.c, pei-arm.c, pei-i386.c, pei-mcore.c,
+       pei-mips.c, pei-sh.c, peicode.h, ppcboot.c, ptrace-core.c, reloc.c,
+       reloc16.c, riscix.c, rs6000-core.c, sco5-core.c, section.c, simple.c,
+       som.c, som.h, sparclinux.c, sparclynx.c, srec.c, stabs.c, sunos.c,
+       syms.c, targets.c, tekhex.c, ticoff.h, trad-core.c, versados.c,
+       vms-gsd.c, vms-hdr.c, vms-misc.c, vms-tir.c, vms.c, vms.h,
+       xcoff-target.h, xcofflink.c, xsym.c, xsym.h: Replace boolean with
+       bfd_boolean, true with TRUE, false with FALSE.  Simplify comparisons
+       of bfd_boolean vars with TRUE/FALSE.  Formatting.
+       * bfd-in2.h, libbfd.h, libcoff.h: Regenerate
+
+2002-11-28  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h: Replace occurrences of Elf32_Internal_* and
+       Elf64_Internal_* with Elf_Internal_*.  Replace Elf_Internal_Rel
+       with Elf_Internal_Rela.
+       * elf-hppa.h, elf-m10200.c, elf-m10300.c, elf32-arc.c, elf32-arm.h,
+       elf32-avr.c, elf32-cris.c, elf32-d10v.c, elf32-d30v.c, elf32-dlx.c,
+       elf32-fr30.c, elf32-frv.c, elf32-gen.c, elf32-h8300.c, elf32-hppa.c,
+       elf32-i370.c, elf32-i386.c, elf32-i860.c, elf32-i960.c, elf32-ip2k.c,
+       elf32-m32r.c, elf32-m68hc11.c, elf32-m68hc12.c, elf32-m68k.c,
+       elf32-mcore.c, elf32-mips.c, elf32-openrisc.c, elf32-or32.c,
+       elf32-ppc.c, elf32-s390.c, elf32-sh.c, elf32-v850.c, elf32-vax.c,
+       elf32-xstormy16.c, elf64-alpha.c, elf64-gen.c, elf64-hppa.c,
+       elf64-mips.c, elf64-mmix.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c,
+       elf64-sparc.c, elf64-x86-64.c, elfarm-nabi.c, elfarm-oabi.c,
+       elfcode.h, elflink.h, elfn32-mips.c, elfxx-ia64.c, elfxx-mips.c: Ditto.
+       * elf-hppa.h (elf_hppa_internal_shdr): Delete.  Use Elf_Internal_Shdr
+       throughout instead.
+       * elf.c (_bfd_elf_no_info_to_howto_rel): Delete.
+       * elfcode.h (elf_swap_reloca_in): Pass source operand as a bfd_byte *.
+       Remove INLINE keyword.
+       (elf_swap_reloc_in): Likewise.  Also clear r_addend.
+       (elf_swap_reloc_out, elf_swap_reloca_out): Pass destination operand
+       as a bfd_byte *.
+       (elf_write_relocs): Consolidate REL and RELA code.
+       (elf_slurp_reloc_table_from_section): Simplify REL code.
+       (NAME(_bfd_elf,size_info)): Populate reloc swap entries.
+       * elf-bfd.h (MAX_INT_RELS_PER_EXT_REL): Define.
+       * elflink.h (elf_link_read_relocs_from_section): Consolidate REL and
+       RELA code.
+       (elf_link_adjust_relocs): Likewise.  Don't malloc space for temp
+       reloc array, use a fixed size of MAX_INT_RELS_PER_EXT_REL.
+       (elf_link_output_relocs): Likewise.
+       (elf_reloc_link_order): Likewise.
+       (elf_finish_pointer_linker_section): Likewise.
+       (struct elf_link_sort_rela): Remove union.
+       (elf_link_sort_cmp1): Update to suit.
+       (elf_link_sort_cmp2): Here too.
+       (elf_link_sort_relocs): Consolidate REL and RELA code.  Fix memory
+       over-allocation for int_rels_per_ext_rel != 1 case.
+       * elf32-arm.h: Update all bfd_elf32_swap_reloc_out calls.
+       * elf32-i386.c: Likewise.
+       * elf32-cris.c: Likewise for bfd_elf32_swap_reloca_out.
+       * elf32-hppa.c, elf32-i370.c, elf32-m68k.c, elf32-ppc.c, elf32-s390.c,
+       elf32-sh.c, elf32-vax.c, elfxx-mips.c: Likewise.
+       * elf64-alpha.c: Likewise for bfd_elf64_swap_reloca_out.
+       * elf64-hppa.c, elf64-mips.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c,
+       elf64-sparc.c, elf64-x86-64.c: Likewise.
+       * elfxx-ia64.c: Likewise for bfd_elfNN_swap_reloca_out.
+       * elfxx-mips.c (sort_dynamic_relocs): Likewise for
+       bfd_elf32_swap_reloc_in.
+
+       * elf32-arm.h: Update elf32_arm_info_to_howto calls.
+       * elf32-mips.c: Likewise for mips_info_to_howto_rel.
+       (mips_elf64_swap_reloc_in): Zero r_addend.
+       (mips_elf64_be_swap_reloc_in): Likewise.
+       (mips_elf64_slurp_one_reloc_table): Simplify.
+
+       * elf64-alpha.c (alpha_elf_size_info): Populate reloc swap entries.
+       * elf64-hppa.c (hppa64_elf_size_info): Likewise.
+       * elf64-sparc.c (sparc64_elf_size_info): Likewise.
+
+2002-11-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * elf32-sh.c (sh_elf_relocate_section): Don't complain about
+       unresolved debugging relocs in dynamic applications.
+       * elf64-sh64.c (sh_elf64_relocate_section): Likewise.
+
+2002-11-26  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-eh-frame.c (ENSURE_NO_RELOCS): Disregard R_*_NONE relocs.
+       (_bfd_elf_discard_section_eh_frame): Don't discard duplicate CIEs
+       on a relocatable link.  Comment typos.
+       * elf.c (_bfd_elf_link_hash_newfunc): Assign elements of structure
+       in the order they are declared.  Clear elf_hash_value too.
+       (_bfd_elf_link_hash_table_init): Likewise assign in order.  Clear
+       eh_info and tls_segment.
+       * elflink.h (elf_link_input_bfd <emit_relocs>): Keep reloc offsets
+       sorted when discarding relocs by turning them into R_*_NONE.
+
+       * libbfd.c (warn_deprecated): Comment spelling.
+       * po/SRC-POTFILES.in: Regenerate.
+
+2002-11-21  Richard Henderson  <rth@redhat.com>
+
+       * elflink.h (elf_link_add_object_symbols): Don't overwrite the
+       arch's st_other bits when merging visibilities.
+       (elf_link_output_extsym): Tidy clearing of visibility field.
+
+2002-11-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * coff-mcore.c (SWAP_IN_RELOC_OFFSET): Define.
+       (SWAP_OUT_RELOC_OFFSET): Define.
+
+2002-11-20  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf.c (_bfd_elf_link_hash_table_init): Make sure
+       can_refcount is properly extended to the type of
+       init_refcount.
+
+2002-11-19  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (MIPS_RELOC_RELA_P): New macro.
+       (_bfd_mips_elf_relocate_section): Use it.
+
+       * elfxx-mips.c (MNAME): New macro.
+       (_bfd_mips_elf_check_relocs): Use it.
+       (_bfd_mips_elf_discard_info): Likewise.
+       (_bfd_mips_elf_final_link): Likewise.
+
+2002-11-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_edit_opd): When deleting relocs, adjust
+       rel_hdr.sh_size too.
+
+2002-11-18  Klee Dienes  <kdienes@apple.com>
+
+       * Makefile.am (BFD32_LIBS): Add bfdwin.lo, bfdio.lo.
+       (BFD32_LIBS_CFILES): Add bfdwin.c, bfdio.c.
+       (BFD_H_FILES): Add bfdwin.c, bfdio.c.
+       (LIBBFD_H_FILES): Add bfdwin.c, bfdio.c.
+       Add dependencies for bfdwin.c, bfdio.c.
+       * bfd.c: Remove bfd_get_mtime, bfd_get_size.
+       * libbfd.c: Remove real_read, bfd_bread, _bfd_window_internal,
+       bfd_init_window, bfd_free_window, bfd_get_file_window, bfd_bwrite,
+       bfd_tell, bfd_flush, bfd_stat, bfd_seek.
+       * bfdio.c: New file.  Contains real_read, bfd_bread, bfd_write,
+       bfd_tell, bfd_flush, bfd_stat, bfd_seek, bfd_ge_mtime,
+       bfd_get_size (moved from libbfd.c and bfd.c).
+       * bfdwin.c New file.  Contains _bfd_window_internal,
+       bfd_init_window, bfd_free_window, bfd_get_file_window (moved from
+       libbfd.c and bfd.c).
+       * po/SRC-POTFILES.in: Regenerate.
+       * po/bfd.pot: Regenerate.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+       * aclocal.m4: Regenerate.
+       * Makefile.in: Regenerate.
+       * configure: Regenerate.
+
+2002-11-18  Klee Dienes  <kdienes@apple.com>
+
+       * bfd.c (bfd_preserve_save): Don't zero BFD_IN_MEMORY.
+
 2002-11-15  Kazu Hirata  <kazu@cs.umass.edu>
 
        * coff-h8300.c (h8300_reloc16_estimate): Do not optimize away
 
 2002-11-06  Klee Dienes  <kdienes@apple.com>
 
-         * coff-stgo32.c (stub_bytes): Mark as const.
+        * coff-stgo32.c (stub_bytes): Mark as const.
         Fix comment formatting.
 
 2002-11-06  Klee Dienes  <kdienes@apple.com>
 
-       * Makefile.am (BFD32_BACKENDS): Add mach-o.lo, pef.lo, and 
+       * Makefile.am (BFD32_BACKENDS): Add mach-o.lo, pef.lo, and
        xsym.lo.
        (BFD32_BACKENDS_CFILES): Add mach-o.c, pef.c, and xsym.c.
        (SOURCE_HFILES): Add mach-o.h, pef.h, pef-traceback.h, xsym.h
        * bfd.c (struct bfd): Add private data for mach-o, pef, and sym.
        * targets.c (enum bfd_flavour): Add flavours for mach-o, pef, and
        sym.
-        (_bfd_target_vector): Add target vectors for mach-o, pef, and sym.
+       (_bfd_target_vector): Add target vectors for mach-o, pef, and sym.
        * Makefile.in: Regenerate.
        * doc/Makefile.in: Regenerate.
-        * bfd-in2.h: Regenerate.
+       * bfd-in2.h: Regenerate.
        * xsym.c: New file.  Contains support for the Apple/Metrowerks
        xSYM debugging format.
        * xsym.h: New file.
        * pef-traceback.h: New file.  Contains support for parsing PowerPC
        traceback tables as used by PEF executables (and perhaps other
        systems as well).
-        * mach-o.c: New file.  Contains support for the Mach-O object file
+       * mach-o.c: New file.  Contains support for the Mach-O object file
        format.
        * mach-o.h: New file.
        * mach-o-target.c: New file.  Declares the mach-o targets
        themselves.  Included three times by mach-o.c; each time with a
        different set of macros set.
-       
+
 2002-11-06  Graeme Peterson  <gp@qnx.com>
 
        * Makefile.am: Remove entries for elf32-qnx.[ch].
index 0c1a798044071761bdc4823f87d3ff3f71817529..73739fdc57d6b65a287a074ae13d94b815b51df1 100644 (file)
@@ -28,7 +28,8 @@ BFD_H = bfd.h
 # need two copies of the executable, one to download and one for the
 # debugger).
 BFD32_LIBS = \
-       archive.lo archures.lo bfd.lo cache.lo coffgen.lo corefile.lo \
+       archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo \
+       cache.lo coffgen.lo corefile.lo \
        format.lo init.lo libbfd.lo opncls.lo reloc.lo \
        section.lo syms.lo targets.lo hash.lo linker.lo \
        srec.lo binary.lo tekhex.lo ihex.lo stabs.lo stab-syms.lo \
@@ -37,7 +38,8 @@ BFD32_LIBS = \
 BFD64_LIBS = archive64.lo
 
 BFD32_LIBS_CFILES = \
-       archive.c archures.c bfd.c cache.c coffgen.c corefile.c \
+       archive.c archures.c bfd.c bfdio.c bfdwin.c \
+       cache.c coffgen.c corefile.c \
        format.c init.c libbfd.c opncls.c reloc.c \
        section.c syms.c targets.c hash.c linker.c \
        srec.c binary.c tekhex.c ihex.c stabs.c stab-syms.c \
@@ -794,9 +796,11 @@ stmp-bfd-h: bfd-in3.h
        touch stmp-bfd-h
 
 BFD_H_FILES = bfd-in.h init.c opncls.c libbfd.c section.c archures.c \
-       reloc.c syms.c bfd.c archive.c corefile.c targets.c format.c
+       reloc.c syms.c bfd.c bfdio.c bfdwin.c \
+       archive.c corefile.c targets.c format.c
 BFD64_H_FILES = archive64.c
-LIBBFD_H_FILES = libbfd-in.h init.c libbfd.c cache.c reloc.c archures.c elf.c
+LIBBFD_H_FILES = libbfd-in.h init.c libbfd.c bfdio.c bfdwin.c \
+       cache.c reloc.c archures.c elf.c
 LIBCOFF_H_FILES = libcoff-in.h coffcode.h
 
 # Could really use a "copy-if-change"...
@@ -856,6 +860,8 @@ bfd.lo: bfd.c bfdver.h $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
   $(INCDIR)/coff/sym.h libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h \
   elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
   $(INCDIR)/elf/external.h
+bfdio.lo: bfdio.c $(INCDIR)/filenames.h
+bfdwin.lo: bfdwin.c $(INCDIR)/filenames.h
 cache.lo: cache.c $(INCDIR)/filenames.h
 coffgen.lo: coffgen.c $(INCDIR)/filenames.h $(INCDIR)/coff/internal.h \
   libcoff.h $(INCDIR)/bfdlink.h
index 0104743b6fa1d9ba82f811e4594bedb6f23fb931..2bd807c04eb1818c3db5916babd51356fd452d62 100644 (file)
@@ -151,7 +151,8 @@ BFD_H = bfd.h
 # need two copies of the executable, one to download and one for the
 # debugger).
 BFD32_LIBS = \
-       archive.lo archures.lo bfd.lo cache.lo coffgen.lo corefile.lo \
+       archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo \
+       cache.lo coffgen.lo corefile.lo \
        format.lo init.lo libbfd.lo opncls.lo reloc.lo \
        section.lo syms.lo targets.lo hash.lo linker.lo \
        srec.lo binary.lo tekhex.lo ihex.lo stabs.lo stab-syms.lo \
@@ -161,7 +162,8 @@ BFD32_LIBS = \
 BFD64_LIBS = archive64.lo
 
 BFD32_LIBS_CFILES = \
-       archive.c archures.c bfd.c cache.c coffgen.c corefile.c \
+       archive.c archures.c bfd.c bfdio.c bfdwin.c \
+       cache.c coffgen.c corefile.c \
        format.c init.c libbfd.c opncls.c reloc.c \
        section.c syms.c targets.c hash.c linker.c \
        srec.c binary.c tekhex.c ihex.c stabs.c stab-syms.c \
@@ -741,10 +743,13 @@ BFD_H_DEPS = $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h
 LOCAL_H_DEPS = libbfd.h sysdep.h config.h
 
 BFD_H_FILES = bfd-in.h init.c opncls.c libbfd.c section.c archures.c \
-       reloc.c syms.c bfd.c archive.c corefile.c targets.c format.c
+       reloc.c syms.c bfd.c bfdio.c bfdwin.c \
+       archive.c corefile.c targets.c format.c
 
 BFD64_H_FILES = archive64.c
-LIBBFD_H_FILES = libbfd-in.h init.c libbfd.c cache.c reloc.c archures.c elf.c
+LIBBFD_H_FILES = libbfd-in.h init.c libbfd.c bfdio.c bfdwin.c \
+       cache.c reloc.c archures.c elf.c
+
 LIBCOFF_H_FILES = libcoff-in.h coffcode.h
 
 MOSTLYCLEANFILES = ofiles stamp-ofiles
@@ -769,10 +774,11 @@ libbfd_a_LIBADD =
 libbfd_a_OBJECTS = 
 LTLIBRARIES =  $(bfdlib_LTLIBRARIES)
 
-libbfd_la_OBJECTS =  archive.lo archures.lo bfd.lo cache.lo coffgen.lo \
-corefile.lo format.lo init.lo libbfd.lo opncls.lo reloc.lo section.lo \
-syms.lo targets.lo hash.lo linker.lo srec.lo binary.lo tekhex.lo \
-ihex.lo stabs.lo stab-syms.lo merge.lo dwarf2.lo simple.lo archive64.lo
+libbfd_la_OBJECTS =  archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo \
+cache.lo coffgen.lo corefile.lo format.lo init.lo libbfd.lo opncls.lo \
+reloc.lo section.lo syms.lo targets.lo hash.lo linker.lo srec.lo \
+binary.lo tekhex.lo ihex.lo stabs.lo stab-syms.lo merge.lo dwarf2.lo \
+simple.lo archive64.lo
 CFLAGS = @CFLAGS@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -1387,6 +1393,8 @@ bfd.lo: bfd.c bfdver.h $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
   $(INCDIR)/coff/sym.h libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h \
   elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
   $(INCDIR)/elf/external.h
+bfdio.lo: bfdio.c $(INCDIR)/filenames.h
+bfdwin.lo: bfdwin.c $(INCDIR)/filenames.h
 cache.lo: cache.c $(INCDIR)/filenames.h
 coffgen.lo: coffgen.c $(INCDIR)/filenames.h $(INCDIR)/coff/internal.h \
   libcoff.h $(INCDIR)/bfdlink.h
index b3c6ccffb6c5a351030dc1f02d8b898f28c65dad..7c2902c133010eb9cd1a72c6b3a04ef86d579ebb 100644 (file)
@@ -129,7 +129,7 @@ AC_DEFUN([AM_INSTALL_LIBBFD],
   AC_ARG_ENABLE(install-libbfd,
 [  --install-libbfd controls installation of libbfd and related headers],
       install_libbfd_p=$enableval,
-      if test "${host}" = "${target}" -o "$enable_shared" = "yes"; then
+      if test "${host}" = "${target}" || test "$enable_shared" = "yes"; then
         install_libbfd_p=yes
       else
         install_libbfd_p=no
index b6dfcbe31d0caf682f605a75548e7f829fb85ae0..fd54b1b00705e56a1942e57c269cf3f6fbf832c3 100644 (file)
@@ -141,7 +141,7 @@ AC_DEFUN([AM_INSTALL_LIBBFD],
   AC_ARG_ENABLE(install-libbfd,
 [  --install-libbfd controls installation of libbfd and related headers],
       install_libbfd_p=$enableval,
-      if test "${host}" = "${target}" -o "$enable_shared" = "yes"; then
+      if test "${host}" = "${target}" || test "$enable_shared" = "yes"; then
         install_libbfd_p=yes
       else
         install_libbfd_p=no
index 591397e4a2e4b7bf65f26f12b88504d08e8364b2..7725b342652606f56815a22bd52c0c321a856514 100644 (file)
@@ -204,13 +204,13 @@ aix386_core_file_failing_signal (abfd)
   return core_hdr (abfd)->cd_cursig;
 }
 
-static boolean
+static bfd_boolean
 aix386_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd;
      bfd *exec_bfd;
 {
   /* FIXME: We have no way of telling at this point.  */
-  return true;
+  return TRUE;
 }
 
 /* If somebody calls any byte-swapping routines, shoot them.  */
index 9db4f5468c458098fc3214e69c83b02d4bbff812..b0a9c5e715efab75b49e9684177cad439d998570 100644 (file)
 #include "sysdep.h"
 #include "libbfd.h"
 
-const bfd_target * xcoff64_core_p PARAMS ((bfd *));
-boolean            xcoff64_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
-char *             xcoff64_core_file_failing_command PARAMS ((bfd *));
-int                xcoff64_core_file_failing_signal PARAMS ((bfd *));
+const bfd_target *xcoff64_core_p
+  PARAMS ((bfd *));
+bfd_boolean xcoff64_core_file_matches_executable_p
+  PARAMS ((bfd *, bfd *));
+char *xcoff64_core_file_failing_command
+  PARAMS ((bfd *));
+int xcoff64_core_file_failing_signal
+  PARAMS ((bfd *));
 
 /* Aix 5.1 system include file.  */
 
@@ -62,11 +66,11 @@ xcoff64_core_p (abfd)
   if (bfd_seek (abfd, 0, SEEK_SET) != 0)
     goto xcoff64_core_p_error;
 
-  if (sizeof (struct core_dumpxx) 
+  if (sizeof (struct core_dumpxx)
       != bfd_bread (&core, sizeof (struct core_dumpxx), abfd))
     goto xcoff64_core_p_error;
 
-  if (bfd_stat (abfd, &statbuf) < 0) 
+  if (bfd_stat (abfd, &statbuf) < 0)
     goto xcoff64_core_p_error;
 
   /* Sanity checks
@@ -82,24 +86,24 @@ xcoff64_core_p (abfd)
      See rs6000-core.c for comment on size of core
      If there isn't enough of a real core file, bail.  */
 
-  if ((CORE_VERSION_1 != (core.c_flag & CORE_VERSION_1)) 
-      || (0 != core.c_entries) 
-      || (! (IS_PROC64 (&core.c_u.U_proc))) 
-      || ((CHECK_FILE_OFFSET (statbuf, core.c_fdsinfox))) 
-      || ((CHECK_FILE_OFFSET (statbuf, core.c_loader))) 
-      || ((CHECK_FILE_OFFSET (statbuf, core.c_loader + core.c_lsize))) 
-      || ((CHECK_FILE_OFFSET (statbuf, core.c_thr))) 
-      || ((CHECK_FILE_OFFSET (statbuf, core.c_segregion))) 
-      || ((CHECK_FILE_OFFSET (statbuf, core.c_stack))) 
-      || ((CHECK_FILE_OFFSET (statbuf, core.c_stack + core.c_size))) 
-      || ((CHECK_FILE_OFFSET (statbuf, core.c_data))) 
-      || ((CHECK_FILE_OFFSET (statbuf, core.c_data + core.c_datasize))) 
-      || (! (core.c_flag & UBLOCK_VALID)) 
-      || (! (core.c_flag & LE_VALID))) 
+  if ((CORE_VERSION_1 != (core.c_flag & CORE_VERSION_1))
+      || (0 != core.c_entries)
+      || (! (IS_PROC64 (&core.c_u.U_proc)))
+      || ((CHECK_FILE_OFFSET (statbuf, core.c_fdsinfox)))
+      || ((CHECK_FILE_OFFSET (statbuf, core.c_loader)))
+      || ((CHECK_FILE_OFFSET (statbuf, core.c_loader + core.c_lsize)))
+      || ((CHECK_FILE_OFFSET (statbuf, core.c_thr)))
+      || ((CHECK_FILE_OFFSET (statbuf, core.c_segregion)))
+      || ((CHECK_FILE_OFFSET (statbuf, core.c_stack)))
+      || ((CHECK_FILE_OFFSET (statbuf, core.c_stack + core.c_size)))
+      || ((CHECK_FILE_OFFSET (statbuf, core.c_data)))
+      || ((CHECK_FILE_OFFSET (statbuf, core.c_data + core.c_datasize)))
+      || (! (core.c_flag & UBLOCK_VALID))
+      || (! (core.c_flag & LE_VALID)))
     goto xcoff64_core_p_error;
 
   /* Check for trucated stack or general truncating.  */
-  if ((! (core.c_flag & USTACK_VALID)) 
+  if ((! (core.c_flag & USTACK_VALID))
       || (core.c_flag & CORE_TRUNC))
     {
       bfd_set_error (bfd_error_file_truncated);
@@ -109,7 +113,7 @@ xcoff64_core_p (abfd)
 
   new_core_hdr = (struct core_dumpxx *)
     bfd_zalloc (abfd, sizeof (struct core_dumpxx));
-  if (NULL == new_core_hdr) 
+  if (NULL == new_core_hdr)
     return return_value;
 
   memcpy (new_core_hdr, &core, sizeof (struct core_dumpxx));
@@ -117,7 +121,7 @@ xcoff64_core_p (abfd)
 
   /* .stack section.  */
   sec = bfd_make_section_anyway (abfd, ".stack");
-  if (NULL == sec) 
+  if (NULL == sec)
     return return_value;
 
   sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS;
@@ -127,7 +131,7 @@ xcoff64_core_p (abfd)
 
   /* .reg section for all registers.  */
   sec = bfd_make_section_anyway (abfd, ".reg");
-  if (NULL == sec) 
+  if (NULL == sec)
     return return_value;
 
   sec->flags = SEC_HAS_CONTENTS | SEC_IN_MEMORY;
@@ -138,7 +142,7 @@ xcoff64_core_p (abfd)
 
   /* .ldinfo section.
      To actually find out how long this section is in this particular
-     core dump would require going down the whole list of struct 
+     core dump would require going down the whole list of struct
      ld_info's.   See if we can just fake it.  */
   sec = bfd_make_section_anyway (abfd, ".ldinfo");
   if (NULL == sec)
@@ -152,10 +156,10 @@ xcoff64_core_p (abfd)
   /* AIX 4 adds data sections from loaded objects to the core file,
      which can be found by examining ldinfo, and anonymously mmapped
      regions.  */
-  
+
   /* .data section from executable.  */
   sec = bfd_make_section_anyway (abfd, ".data");
-  if (NULL == sec) 
+  if (NULL == sec)
     return return_value;
 
   sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS;
@@ -165,20 +169,20 @@ xcoff64_core_p (abfd)
 
   /* .data sections from loaded objects.  */
   ld_offset = core.c_loader;
-       
-  while (1) 
+
+  while (1)
     {
-      if (bfd_seek (abfd, ld_offset, SEEK_SET) != 0) 
+      if (bfd_seek (abfd, ld_offset, SEEK_SET) != 0)
        return return_value;
 
       if (sizeof (struct __ld_info64) !=
-         bfd_bread (&ldinfo, sizeof (struct __ld_info64), abfd)) 
+         bfd_bread (&ldinfo, sizeof (struct __ld_info64), abfd))
        return return_value;
 
-      if (ldinfo.ldinfo_core) 
+      if (ldinfo.ldinfo_core)
        {
          sec = bfd_make_section_anyway (abfd, ".data");
-         if (NULL == sec) 
+         if (NULL == sec)
            return return_value;
 
          sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS;
@@ -193,20 +197,20 @@ xcoff64_core_p (abfd)
     }
 
   /* .vmdata sections from anonymously mmapped regions.  */
-  if (core.c_vmregions) 
+  if (core.c_vmregions)
     {
-      if (bfd_seek (abfd, core.c_vmm, SEEK_SET) != 0) 
+      if (bfd_seek (abfd, core.c_vmm, SEEK_SET) != 0)
        return return_value;
 
-      for (i = 0; i < core.c_vmregions; i++) 
+      for (i = 0; i < core.c_vmregions; i++)
        if (sizeof (struct vm_infox) !=
-           bfd_bread (&vminfo, sizeof (struct vm_infox), abfd)) 
+           bfd_bread (&vminfo, sizeof (struct vm_infox), abfd))
          return return_value;
 
-      if (vminfo.vminfo_offset) 
+      if (vminfo.vminfo_offset)
        {
          sec = bfd_make_section_anyway (abfd, ".vmdata");
-         if (NULL == sec) 
+         if (NULL == sec)
            return return_value;
 
          sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS;
@@ -217,17 +221,17 @@ xcoff64_core_p (abfd)
     }
 
   return_value = abfd->xvec;   /* This is garbage for now.  */
-       
+
  xcoff64_core_p_error:
-  if (bfd_get_error () != bfd_error_system_call) 
+  if (bfd_get_error () != bfd_error_system_call)
     bfd_set_error (bfd_error_wrong_format);
-  
+
   return return_value;
 }
 
-/* Return `true' if given core is from the given executable.  */
+/* Return `TRUE' if given core is from the given executable.  */
 
-boolean
+bfd_boolean
 xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd;
      bfd *exec_bfd;
@@ -236,22 +240,22 @@ xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd)
   char *path, *s;
   size_t alloc;
   const char *str1, *str2;
-  boolean return_value = false;
+  bfd_boolean return_value = FALSE;
 
   /* Get the header.  */
-  if (bfd_seek (core_bfd, 0, SEEK_SET) != 0) 
+  if (bfd_seek (core_bfd, 0, SEEK_SET) != 0)
     return return_value;
-       
+
   if (sizeof (struct core_dumpxx) !=
-      bfd_bread (&core, sizeof (struct core_dumpxx), core_bfd)) 
+      bfd_bread (&core, sizeof (struct core_dumpxx), core_bfd))
     return return_value;
 
-  if (bfd_seek (core_bfd, core.c_loader, SEEK_SET) != 0) 
+  if (bfd_seek (core_bfd, core.c_loader, SEEK_SET) != 0)
     return return_value;
 
   alloc = 100;
   path = bfd_malloc (alloc);
-  if (path == NULL) 
+  if (path == NULL)
     return return_value;
 
   s = path;
@@ -264,13 +268,13 @@ xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd)
       if (*s == '\0')
        break;
       ++s;
-      if (s == path + alloc) 
+      if (s == path + alloc)
        {
          char *n;
 
          alloc *= 2;
          n = bfd_realloc (path, alloc);
-         if (n == NULL) 
+         if (n == NULL)
            goto xcoff64_core_file_matches_executable_p_end_1;
 
          s = n + (path - s);
@@ -285,8 +289,8 @@ xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd)
   str1 = str1 != NULL ? str1 + 1 : path;
   str2 = str2 != NULL ? str2 + 1 : exec_bfd->filename;
 
-  if (strcmp (str1, str2) == 0) 
-    return_value = true;
+  if (strcmp (str1, str2) == 0)
+    return_value = TRUE;
 
  xcoff64_core_file_matches_executable_p_end_1:
   free (path);
@@ -300,7 +304,7 @@ xcoff64_core_file_failing_command (abfd)
   struct core_dumpxx *c = core_hdr (abfd);
   char *return_value = 0;
 
-  if (NULL != c) 
+  if (NULL != c)
     return_value = c->c_u.U_proc.pi_comm;
 
   return return_value;
@@ -313,7 +317,7 @@ xcoff64_core_file_failing_signal (abfd)
   struct core_dumpxx *c = core_hdr (abfd);
   int return_value = 0;
 
-  if (NULL != c) 
+  if (NULL != c)
     return_value = c->c_signo;
 
   return return_value;
@@ -321,10 +325,14 @@ xcoff64_core_file_failing_signal (abfd)
 
 #else /* AIX_5_CORE */
 
-const bfd_target * xcoff64_core_p PARAMS ((bfd *));
-boolean            xcoff64_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
-char *             xcoff64_core_file_failing_command PARAMS ((bfd *));
-int                xcoff64_core_file_failing_signal PARAMS ((bfd *));
+const bfd_target *xcoff64_core_p
+  PARAMS ((bfd *));
+bfd_boolean xcoff64_core_file_matches_executable_p
+  PARAMS ((bfd *, bfd *));
+char *xcoff64_core_file_failing_command
+  PARAMS ((bfd *));
+int xcoff64_core_file_failing_signal
+  PARAMS ((bfd *));
 
 const bfd_target *
 xcoff64_core_p (abfd)
@@ -334,12 +342,12 @@ xcoff64_core_p (abfd)
   return 0;
 }
 
-boolean
+bfd_boolean
 xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
-  return false;
+  return FALSE;
 }
 
 char *
index 11f1ca33241a0953564006bd0f5b6b76fbe49f10..b06465059c4dc86c9f54c902cb781f066fc55f3b 100644 (file)
@@ -32,19 +32,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* Forward decl.  */
 extern const bfd_target a_out_adobe_vec;
 
-static const bfd_target *aout_adobe_callback PARAMS ((bfd *));
-
-extern boolean aout_32_slurp_symbol_table PARAMS ((bfd *abfd));
-extern boolean aout_32_write_syms PARAMS ((bfd *));
-static void    aout_adobe_write_section PARAMS ((bfd *abfd, sec_ptr sect));
-static const bfd_target * aout_adobe_object_p PARAMS ((bfd *));
-static boolean aout_adobe_mkobject PARAMS ((bfd *));
-static boolean aout_adobe_write_object_contents PARAMS ((bfd *));
-static boolean aout_adobe_set_section_contents
+static const bfd_target *aout_adobe_callback
+  PARAMS ((bfd *));
+extern bfd_boolean aout_32_slurp_symbol_table
+  PARAMS ((bfd *abfd));
+extern bfd_boolean aout_32_write_syms
+  PARAMS ((bfd *));
+static void aout_adobe_write_section
+  PARAMS ((bfd *abfd, sec_ptr sect));
+static const bfd_target * aout_adobe_object_p
+  PARAMS ((bfd *));
+static bfd_boolean aout_adobe_mkobject
+  PARAMS ((bfd *));
+static bfd_boolean aout_adobe_write_object_contents
+  PARAMS ((bfd *));
+static bfd_boolean aout_adobe_set_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-static boolean aout_adobe_set_arch_mach
+static bfd_boolean aout_adobe_set_arch_mach
   PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-static int     aout_adobe_sizeof_headers PARAMS ((bfd *, boolean));
+static int     aout_adobe_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
 
 /* Swaps the information in an executable header taken from a raw byte
    stream memory image, into the internal exec_header structure.  */
@@ -271,7 +278,7 @@ struct bout_data_struct
     struct internal_exec e;
   };
 
-static boolean
+static bfd_boolean
 aout_adobe_mkobject (abfd)
      bfd *abfd;
 {
@@ -280,7 +287,7 @@ aout_adobe_mkobject (abfd)
 
   rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, amt);
   if (rawptr == NULL)
-    return false;
+    return FALSE;
 
   abfd->tdata.bout_data = rawptr;
   exec_hdr (abfd) = &rawptr->e;
@@ -291,10 +298,10 @@ aout_adobe_mkobject (abfd)
   adata (abfd).segment_size = 1; /* Not applicable.  */
   adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 aout_adobe_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -342,7 +349,7 @@ aout_adobe_write_object_contents (abfd)
   amt = EXEC_BYTES_SIZE;
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0
       || bfd_bwrite ((PTR) &swapped_hdr, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Now write out the section information.  Text first, data next, rest
      afterward.  */
@@ -362,38 +369,38 @@ aout_adobe_write_object_contents (abfd)
   /* Write final `sentinel` section header (with type of 0).  */
   amt = sizeof (*sentinel);
   if (bfd_bwrite ((PTR) sentinel, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Now write out reloc info, followed by syms and strings.  */
   if (bfd_get_symcount (abfd) != 0)
     {
       if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*exec_hdr (abfd))), SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
 
       if (! aout_32_write_syms (abfd))
-       return false;
+       return FALSE;
 
       if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (*exec_hdr (abfd))), SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
 
       for (sect = abfd->sections; sect; sect = sect->next)
        if (sect->flags & SEC_CODE)
          if (!aout_32_squirt_out_relocs (abfd, sect))
-           return false;
+           return FALSE;
 
       if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*exec_hdr (abfd))), SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
 
       for (sect = abfd->sections; sect; sect = sect->next)
        if (sect->flags & SEC_DATA)
          if (!aout_32_squirt_out_relocs (abfd, sect))
-           return false;
+           return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 static void
@@ -404,7 +411,7 @@ aout_adobe_write_section (abfd, sect)
   /* FIXME XXX */
 }
 \f
-static boolean
+static bfd_boolean
 aout_adobe_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -457,34 +464,34 @@ aout_adobe_set_section_contents (abfd, section, location, offset, count)
   /* Regardless, once we know what we're doing, we might as well get
      going.  */
   if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (count == 0)
-    return true;
+    return TRUE;
 
   return bfd_bwrite ((PTR) location, count, abfd) == count;
 }
 
-static boolean
+static bfd_boolean
 aout_adobe_set_arch_mach (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
      unsigned long machine;
 {
   if (! bfd_default_set_arch_mach (abfd, arch, machine))
-    return false;
+    return FALSE;
 
   if (arch == bfd_arch_unknown
       || arch == bfd_arch_m68k)
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 static int
 aout_adobe_sizeof_headers (ignore_abfd, ignore)
      bfd *ignore_abfd ATTRIBUTE_UNUSED;
-     boolean ignore ATTRIBUTE_UNUSED;
+     bfd_boolean ignore ATTRIBUTE_UNUSED;
 {
   return sizeof (struct internal_exec);
 }
index b87e09cfccdb611ee14f2f1ebe73da5b2a690cb2..34a235a806a8a6873b419474773cc07f66a275c3 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for raw ARM a.out binaries.
-   Copyright 1994, 1995, 1997, 1998, 1999, 2000, 2001
+   Copyright 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
 
@@ -54,7 +54,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "libaout.h"
 #include "aout/aout64.h"
 
-static boolean MY(write_object_contents)
+static bfd_boolean MY(write_object_contents)
   PARAMS ((bfd *));
 static bfd_reloc_status_type MY(fix_pcrel_26_done)
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
@@ -80,28 +80,28 @@ reloc_howto_type MY(howto_table)[] =
   {
     /* Type rs size bsz pcrel bitpos ovrf sf name part_inpl
        readmask setmask pcdone.  */
-    HOWTO (0, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, "8", true,
-          0x000000ff, 0x000000ff, false),
-    HOWTO (1, 0, 1, 16, false, 0, complain_overflow_bitfield, 0, "16", true,
-          0x0000ffff, 0x0000ffff, false),
-    HOWTO (2, 0, 2, 32, false, 0, complain_overflow_bitfield, 0, "32", true,
-          0xffffffff, 0xffffffff, false),
-    HOWTO (3, 2, 2, 26, true, 0, complain_overflow_signed, MY(fix_pcrel_26),
-          "ARM26", true, 0x00ffffff, 0x00ffffff, true),
-    HOWTO (4, 0, 0, 8, true, 0, complain_overflow_signed, 0, "DISP8", true,
-          0x000000ff, 0x000000ff, true),
-    HOWTO (5, 0, 1, 16, true, 0, complain_overflow_signed, 0, "DISP16", true,
-          0x0000ffff, 0x0000ffff, true),
-    HOWTO (6, 0, 2, 32, true, 0, complain_overflow_signed, 0, "DISP32", true,
-          0xffffffff, 0xffffffff, true),
-    HOWTO (7, 2, 2, 26, false, 0, complain_overflow_signed,
-          MY(fix_pcrel_26_done), "ARM26D", true, 0x0, 0x0,
-          false),
+    HOWTO (0, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "8", TRUE,
+          0x000000ff, 0x000000ff, FALSE),
+    HOWTO (1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "16", TRUE,
+          0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO (2, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "32", TRUE,
+          0xffffffff, 0xffffffff, FALSE),
+    HOWTO (3, 2, 2, 26, TRUE, 0, complain_overflow_signed, MY(fix_pcrel_26),
+          "ARM26", TRUE, 0x00ffffff, 0x00ffffff, TRUE),
+    HOWTO (4, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, "DISP8", TRUE,
+          0x000000ff, 0x000000ff, TRUE),
+    HOWTO (5, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "DISP16", TRUE,
+          0x0000ffff, 0x0000ffff, TRUE),
+    HOWTO (6, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "DISP32", TRUE,
+          0xffffffff, 0xffffffff, TRUE),
+    HOWTO (7, 2, 2, 26, FALSE, 0, complain_overflow_signed,
+          MY(fix_pcrel_26_done), "ARM26D", TRUE, 0x0, 0x0,
+          FALSE),
     EMPTY_HOWTO (-1),
-    HOWTO (9, 0, -1, 16, false, 0, complain_overflow_bitfield, 0, "NEG16", true,
-          0x0000ffff, 0x0000ffff, false),
-    HOWTO (10, 0, -2, 32, false, 0, complain_overflow_bitfield, 0, "NEG32", true,
-          0xffffffff, 0xffffffff, false)
+    HOWTO (9, 0, -1, 16, FALSE, 0, complain_overflow_bitfield, 0, "NEG16", TRUE,
+          0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO (10, 0, -2, 32, FALSE, 0, complain_overflow_bitfield, 0, "NEG32", TRUE,
+          0xffffffff, 0xffffffff, FALSE)
   };
 
 #define RELOC_ARM_BITS_NEG_BIG      ((unsigned int) 0x08)
index 5c2f3452e5b27b7bf8586d60a9269e33d05bc37a..7027b173ca0597da560ac0ce17c4f3061b2c9ca9 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD backend for CRIS a.out binaries.
-   Copyright 2000, 2001 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Axis Communications AB.
    Written by Hans-Peter Nilsson.
 
@@ -76,7 +76,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define MY_exec_hdr_flags 1
 
 #define MY_write_object_contents MY(write_object_contents)
-static boolean MY(write_object_contents) PARAMS ((bfd *));
+static bfd_boolean MY(write_object_contents) PARAMS ((bfd *));
 
 /* Forward this, so we can use a pointer to it in PARAMS.  */
 struct reloc_ext_external;
@@ -92,7 +92,7 @@ static void MY(swap_ext_reloc_in) PARAMS ((bfd *, struct
                                           bfd_size_type));
 
 #define MY_set_sizes MY(set_sizes)
-static boolean MY(set_sizes) PARAMS ((bfd *));
+static bfd_boolean MY(set_sizes) PARAMS ((bfd *));
 
 /* To set back reloc_size to ext, we make MY(set_sizes) be called
    through this construct.  Note that MY_set_arch_mach is only called
@@ -121,7 +121,7 @@ static boolean MY(set_sizes) PARAMS ((bfd *));
 
 /* We need our own version to set header flags.  */
 
-static boolean
+static bfd_boolean
 MY(write_object_contents) (abfd)
      bfd *abfd;
 {
@@ -143,7 +143,7 @@ MY(write_object_contents) (abfd)
 
   WRITE_HEADERS (abfd, execp);
 
-  return true;
+  return TRUE;
 }
 
 /* We need our own for these reasons:
@@ -279,7 +279,7 @@ MY(swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
    "obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;", to avoid changing
    NAME (aout, set_arch_mach) in aoutx.  */
 
-static boolean
+static bfd_boolean
 MY(set_sizes) (abfd)
      bfd *abfd;
 {
@@ -297,7 +297,7 @@ MY(set_sizes) (abfd)
 
   obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
 
-  return true;
+  return TRUE;
 }
 
 /*
index 84c46c6075622093d1e587e4e49093cb287dce22..1a794ec978b2779038b48deec7866cae2098ea2c 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for a.out files encapsulated with COFF headers.
-   Copyright 1990, 1991, 1994, 1995, 2000, 2001
+   Copyright 1990, 1991, 1994, 1995, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -123,7 +123,7 @@ encap_real_callback (abfd)
    Section contents have already been written.  We write the
    file header, symbols, and relocation.  */
 
-boolean
+bfd_boolean
 encap_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -230,7 +230,7 @@ encap_write_object_contents (abfd)
 
   text_size -= N_TXTOFF (outheader);
   WRITE_HEADERS(abfd, execp);
-  return true;
+  return TRUE;
 }
 
 #define MY_write_object_content encap_write_object_contents
index 8456e80d8598a89c55ad745f4cfcc6161b586820..4809ffb89b3c8abdd29c4bd168ae43a824daee9f 100644 (file)
@@ -35,7 +35,7 @@ MYNS(bfd_reloc_type_lookup)
   PARAMS((bfd *abfd AND
          bfd_reloc_code_real_type code));
 
-boolean
+bfd_boolean
 MYNS(write_object_contents)
   PARAMS((bfd *abfd));
 
@@ -100,58 +100,58 @@ reloc_howto_type MY(howto_table)[] =
   {
     /* type           rs   size bsz  pcrel bitpos ovrf                  sf name          part_inpl readmask setmask pcdone */
     /* ns32k immediate operands.  */
-    HOWTO (BFD_RELOC_NS32K_IMM_8, 0, 0, 8, false, 0, complain_overflow_signed,
+    HOWTO (BFD_RELOC_NS32K_IMM_8, 0, 0, 8, FALSE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_imm, "NS32K_IMM_8",
-          true, 0x000000ff,0x000000ff, false),
-    HOWTO (BFD_RELOC_NS32K_IMM_16, 0, 1, 16, false, 0, complain_overflow_signed,
+          TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_IMM_16, 0, 1, 16, FALSE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_imm,  "NS32K_IMM_16",
-          true, 0x0000ffff,0x0000ffff, false),
-    HOWTO (BFD_RELOC_NS32K_IMM_32, 0, 2, 32, false, 0, complain_overflow_signed,
+          TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_IMM_32, 0, 2, 32, FALSE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_imm, "NS32K_IMM_32",
-          true, 0xffffffff,0xffffffff, false),
-    HOWTO (BFD_RELOC_NS32K_IMM_8_PCREL, 0, 0, 8, true, 0, complain_overflow_signed,
+          TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_IMM_8_PCREL, 0, 0, 8, TRUE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_imm, "PCREL_NS32K_IMM_8",
-          true, 0x000000ff, 0x000000ff, false),
-    HOWTO (BFD_RELOC_NS32K_IMM_16_PCREL, 0, 1, 16, true, 0, complain_overflow_signed,
+          TRUE, 0x000000ff, 0x000000ff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_IMM_16_PCREL, 0, 1, 16, TRUE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_imm, "PCREL_NS32K_IMM_16",
-          true, 0x0000ffff,0x0000ffff, false),
-    HOWTO (BFD_RELOC_NS32K_IMM_32_PCREL, 0, 2, 32, true, 0, complain_overflow_signed,
+          TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_IMM_32_PCREL, 0, 2, 32, TRUE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_imm, "PCREL_NS32K_IMM_32",
-          true, 0xffffffff,0xffffffff, false),
+          TRUE, 0xffffffff,0xffffffff, FALSE),
 
     /* ns32k displacements.  */
-    HOWTO (BFD_RELOC_NS32K_DISP_8, 0, 0, 7, false, 0, complain_overflow_signed,
+    HOWTO (BFD_RELOC_NS32K_DISP_8, 0, 0, 7, FALSE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_disp, "NS32K_DISP_8",
-          true, 0x000000ff,0x000000ff, false),
-    HOWTO (BFD_RELOC_NS32K_DISP_16, 0, 1, 14, false, 0, complain_overflow_signed,
+          TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_DISP_16, 0, 1, 14, FALSE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_disp, "NS32K_DISP_16",
-          true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO (BFD_RELOC_NS32K_DISP_32, 0, 2, 30, false, 0, complain_overflow_signed,
+          TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_DISP_32, 0, 2, 30, FALSE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_disp, "NS32K_DISP_32",
-          true, 0xffffffff, 0xffffffff, false),
-    HOWTO (BFD_RELOC_NS32K_DISP_8_PCREL, 0, 0, 7, true, 0, complain_overflow_signed,
+          TRUE, 0xffffffff, 0xffffffff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_DISP_8_PCREL, 0, 0, 7, TRUE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_disp, "PCREL_NS32K_DISP_8",
-          true, 0x000000ff,0x000000ff, false),
-    HOWTO (BFD_RELOC_NS32K_DISP_16_PCREL, 0, 1, 14, true, 0, complain_overflow_signed,
+          TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_DISP_16_PCREL, 0, 1, 14, TRUE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_disp, "PCREL_NS32K_DISP_16",
-          true, 0x0000ffff,0x0000ffff, false),
-    HOWTO (BFD_RELOC_NS32K_DISP_32_PCREL, 0, 2, 30, true, 0, complain_overflow_signed,
+          TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (BFD_RELOC_NS32K_DISP_32_PCREL, 0, 2, 30, TRUE, 0, complain_overflow_signed,
           _bfd_ns32k_reloc_disp, "PCREL_NS32K_DISP_32",
-          true, 0xffffffff,0xffffffff, false),
+          TRUE, 0xffffffff,0xffffffff, FALSE),
 
     /* Normal 2's complement.  */
-    HOWTO (BFD_RELOC_8, 0, 0, 8, false, 0, complain_overflow_bitfield,0,
-          "8", true, 0x000000ff,0x000000ff, false),
-    HOWTO (BFD_RELOC_16, 0, 1, 16, false, 0, complain_overflow_bitfield,0,
-          "16", true, 0x0000ffff,0x0000ffff, false),
-    HOWTO (BFD_RELOC_32, 0, 2, 32, false, 0, complain_overflow_bitfield,0,
-          "32", true, 0xffffffff,0xffffffff, false),
-    HOWTO (BFD_RELOC_8_PCREL, 0, 0, 8, true, 0, complain_overflow_signed, 0,
-          "PCREL_8", true, 0x000000ff,0x000000ff, false),
-    HOWTO (BFD_RELOC_16_PCREL, 0, 1, 16, true, 0, complain_overflow_signed, 0,
-          "PCREL_16", true, 0x0000ffff,0x0000ffff, false),
-    HOWTO (BFD_RELOC_32_PCREL, 0, 2, 32, true, 0, complain_overflow_signed, 0,
-          "PCREL_32", true, 0xffffffff,0xffffffff, false),
+    HOWTO (BFD_RELOC_8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,0,
+          "8", TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (BFD_RELOC_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,0,
+          "16", TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (BFD_RELOC_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,
+          "32", TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (BFD_RELOC_8_PCREL, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0,
+          "PCREL_8", TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (BFD_RELOC_16_PCREL, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0,
+          "PCREL_16", TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (BFD_RELOC_32_PCREL, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0,
+          "PCREL_32", TRUE, 0xffffffff,0xffffffff, FALSE),
   };
 
 #define CTOR_TABLE_RELOC_HOWTO(BFD) (MY(howto_table) + 14)
index b2acc090887b72bba97f424b31fed6ad0920838f..cc4a4f50df872d6eb9be811fa0e0efb04948a36f 100644 (file)
@@ -201,21 +201,21 @@ MY(object_p) (abfd)
 
 #ifndef MY_mkobject
 
-static boolean MY(mkobject) PARAMS ((bfd *));
+static bfd_boolean MY(mkobject) PARAMS ((bfd *));
 
-static boolean
+static bfd_boolean
 MY(mkobject) (abfd)
      bfd *abfd;
 {
   if (! NAME(aout,mkobject) (abfd))
-    return false;
+    return FALSE;
 #if 0 /* Sizes get set in set_sizes callback, later, after we know
         the architecture and machine.  */
   adata(abfd).page_size = TARGET_PAGE_SIZE;
   adata(abfd).segment_size = SEGMENT_SIZE;
   adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE;
 #endif
-  return true;
+  return TRUE;
 }
 #define MY_mkobject MY(mkobject)
 #endif
@@ -228,10 +228,10 @@ MY(mkobject) (abfd)
    section contents, and copy_private_bfd_data is not called until
    after the section contents have been set.  */
 
-static boolean MY_bfd_copy_private_section_data
+static bfd_boolean MY_bfd_copy_private_section_data
   PARAMS ((bfd *, asection *, bfd *, asection *));
 
-static boolean
+static bfd_boolean
 MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
      bfd *ibfd;
      asection *isec ATTRIBUTE_UNUSED;
@@ -241,7 +241,7 @@ MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
   if (bfd_get_flavour (ibfd) == bfd_target_aout_flavour
       && bfd_get_flavour (obfd) == bfd_target_aout_flavour)
     obj_aout_subformat (obfd) = obj_aout_subformat (ibfd);
-  return true;
+  return TRUE;
 }
 
 #endif
@@ -251,9 +251,9 @@ MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
    file header, symbols, and relocation.  */
 
 #ifndef MY_write_object_contents
-static boolean MY(write_object_contents) PARAMS ((bfd *));
+static bfd_boolean MY(write_object_contents) PARAMS ((bfd *));
 
-static boolean
+static bfd_boolean
 MY(write_object_contents) (abfd)
      bfd *abfd;
 {
@@ -264,16 +264,16 @@ MY(write_object_contents) (abfd)
 
   WRITE_HEADERS(abfd, execp);
 
-  return true;
+  return TRUE;
 }
 #define MY_write_object_contents MY(write_object_contents)
 #endif
 
 #ifndef MY_set_sizes
 
-static boolean MY(set_sizes) PARAMS ((bfd *));
+static bfd_boolean MY(set_sizes) PARAMS ((bfd *));
 
-static boolean
+static bfd_boolean
 MY(set_sizes) (abfd)
      bfd *abfd;
 {
@@ -287,7 +287,7 @@ MY(set_sizes) (abfd)
 #endif
 
   adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE;
-  return true;
+  return TRUE;
 }
 #define MY_set_sizes MY(set_sizes)
 #endif
@@ -375,9 +375,9 @@ MY_final_link_callback (abfd, ptreloff, pdreloff, psymoff)
 /* Final link routine.  We need to use a call back to get the correct
    offsets in the output file.  */
 
-static boolean MY_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean MY_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *));
 
-static boolean
+static bfd_boolean
 MY_bfd_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
index a39a5b1fb885398251d032e9222fdd40682ed754..6d5f48ca42d88947415aef50231fe97f06ca65a4 100644 (file)
@@ -56,18 +56,23 @@ static bfd_reloc_status_type tic30_aout_relocate_contents
 static bfd_reloc_status_type tic30_aout_final_link_relocate
   PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, bfd_vma,
           bfd_vma, bfd_vma));
-static const bfd_target *tic30_aout_object_p PARAMS ((bfd *));
-static boolean tic30_aout_write_object_contents PARAMS ((bfd *));
-static boolean tic30_aout_set_sizes PARAMS ((bfd *));
-static const bfd_target * tic30_aout_callback PARAMS ((bfd *));
-static boolean MY_bfd_copy_private_section_data
+static const bfd_target *tic30_aout_object_p
+  PARAMS ((bfd *));
+static bfd_boolean tic30_aout_write_object_contents
+  PARAMS ((bfd *));
+static bfd_boolean tic30_aout_set_sizes
+  PARAMS ((bfd *));
+static const bfd_target * tic30_aout_callback
+  PARAMS ((bfd *));
+static bfd_boolean MY_bfd_copy_private_section_data
   PARAMS ((bfd *, asection *, bfd *, asection *));
-static boolean MY_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean MY_bfd_final_link
+  PARAMS ((bfd *, struct bfd_link_info *));
 reloc_howto_type * tic30_aout_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 enum machine_type tic30_aout_machine_type
-  PARAMS ((enum bfd_architecture, unsigned long, boolean *));
-boolean tic30_aout_set_arch_mach
+  PARAMS ((enum bfd_architecture, unsigned long, bfd_boolean *));
+bfd_boolean tic30_aout_set_arch_mach
   PARAMS ((bfd *, enum bfd_architecture, unsigned long));
 
 #define MY_reloc_howto(BFD, REL, IN, EX, PC) \
@@ -146,16 +151,16 @@ static const struct aout_backend_data tic30_aout_backend_data =
 reloc_howto_type tic30_aout_howto_table[] =
   {
     EMPTY_HOWTO (-1),
-    HOWTO (1, 2, 1, 16, false, 0, 0, tic30_aout_fix_16,
-          "16", false, 0x0000FFFF, 0x0000FFFF, false),
-    HOWTO (2, 2, 2, 24, false, 0, complain_overflow_bitfield, NULL,
-          "24", false, 0x00FFFFFF, 0x00FFFFFF, false),
-    HOWTO (3, 18, 3, 24, false, 0, complain_overflow_bitfield, NULL,
-          "LDP", false, 0x00FF0000, 0x000000FF, false),
-    HOWTO (4, 2, 4, 32, false, 0, complain_overflow_bitfield, tic30_aout_fix_32,
-          "32", false, 0xFFFFFFFF, 0xFFFFFFFF, false),
-    HOWTO (5, 2, 1, 16, true, 0, complain_overflow_signed,
-          tic30_aout_fix_pcrel_16, "PCREL", true, 0x0000FFFF, 0x0000FFFF, true),
+    HOWTO (1, 2, 1, 16, FALSE, 0, 0, tic30_aout_fix_16,
+          "16", FALSE, 0x0000FFFF, 0x0000FFFF, FALSE),
+    HOWTO (2, 2, 2, 24, FALSE, 0, complain_overflow_bitfield, NULL,
+          "24", FALSE, 0x00FFFFFF, 0x00FFFFFF, FALSE),
+    HOWTO (3, 18, 3, 24, FALSE, 0, complain_overflow_bitfield, NULL,
+          "LDP", FALSE, 0x00FF0000, 0x000000FF, FALSE),
+    HOWTO (4, 2, 4, 32, FALSE, 0, complain_overflow_bitfield, tic30_aout_fix_32,
+          "32", FALSE, 0xFFFFFFFF, 0xFFFFFFFF, FALSE),
+    HOWTO (5, 2, 1, 16, TRUE, 0, complain_overflow_signed,
+          tic30_aout_fix_pcrel_16, "PCREL", TRUE, 0x0000FFFF, 0x0000FFFF, TRUE),
     EMPTY_HOWTO (-1),
     EMPTY_HOWTO (-1),
     EMPTY_HOWTO (-1),
@@ -164,7 +169,7 @@ reloc_howto_type tic30_aout_howto_table[] =
   };
 
 extern reloc_howto_type *NAME (aout, reloc_type_lookup)
-     PARAMS ((bfd *, bfd_reloc_code_real_type));
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
 
 reloc_howto_type *
 tic30_aout_reloc_type_lookup (abfd, code)
@@ -420,7 +425,7 @@ tic30_aout_relocate_contents (howto, input_bfd, relocation, location)
      bfd_byte *location;
 {
   bfd_vma x;
-  boolean overflow;
+  bfd_boolean overflow;
 
   if (howto->size < 0)
     relocation = -relocation;
@@ -445,7 +450,7 @@ tic30_aout_relocate_contents (howto, input_bfd, relocation, location)
       break;
     }
 
-  overflow = false;
+  overflow = FALSE;
 
   if (howto->complain_on_overflow != complain_overflow_dont)
     {
@@ -491,14 +496,14 @@ tic30_aout_relocate_contents (howto, input_bfd, relocation, location)
            bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1;
            bfd_signed_vma reloc_signed_min = ~reloc_signed_max;
            if (signed_check > reloc_signed_max || signed_check < reloc_signed_min)
-             overflow = true;
+             overflow = TRUE;
          }
          break;
        case complain_overflow_unsigned:
          {
            bfd_vma reloc_unsigned_max = (((1 << (howto->bitsize - 1)) - 1) << 1) | 1;
            if (check > reloc_unsigned_max)
-             overflow = true;
+             overflow = TRUE;
          }
          break;
        case complain_overflow_bitfield:
@@ -507,7 +512,7 @@ tic30_aout_relocate_contents (howto, input_bfd, relocation, location)
            if ((check & ~reloc_bits) != 0
                && (((bfd_vma) signed_check & ~reloc_bits)
                    != ((bfd_vma) -1 & ~reloc_bits)))
-             overflow = true;
+             overflow = TRUE;
          }
          break;
        default:
@@ -607,7 +612,7 @@ tic30_aout_object_p (abfd)
    section contents, and copy_private_bfd_data is not called until
    after the section contents have been set.  */
 
-static boolean
+static bfd_boolean
 MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
      bfd *ibfd;
      asection *isec ATTRIBUTE_UNUSED;
@@ -616,14 +621,14 @@ MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
 {
   if (bfd_get_flavour (obfd) == bfd_target_aout_flavour)
     obj_aout_subformat (obfd) = obj_aout_subformat (ibfd);
-  return true;
+  return TRUE;
 }
 
 /* Write an object file.
    Section contents have already been written.  We write the
    file header, symbols, and relocation.  */
 
-static boolean
+static bfd_boolean
 tic30_aout_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -650,10 +655,10 @@ tic30_aout_write_object_contents (abfd)
       {
        bfd_size_type amt;
        if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
-         return false;
+         return FALSE;
        amt = adata (abfd).exec_bytes_size;
        if (bfd_bwrite ((PTR) &exec_bytes, amt, abfd) != amt)
-         return false;
+         return FALSE;
       }
 
     /* Now write out reloc info, followed by syms and strings.  */
@@ -661,27 +666,27 @@ tic30_aout_write_object_contents (abfd)
        && bfd_get_symcount (abfd) != 0)
       {
        if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*execp)), SEEK_SET) != 0)
-         return false;
+         return FALSE;
 
        if (!NAME (aout, write_syms) (abfd))
-         return false;
+         return FALSE;
       }
 
     if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (*execp)), SEEK_SET) != 0)
-      return false;
+      return FALSE;
     if (!NAME (aout, squirt_out_relocs) (abfd, obj_textsec (abfd)))
-      return false;
+      return FALSE;
 
     if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp)), SEEK_SET) != 0)
-      return false;
+      return FALSE;
     if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd)))
-      return false;
+      return FALSE;
   }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 tic30_aout_set_sizes (abfd)
      bfd *abfd;
 {
@@ -701,7 +706,7 @@ tic30_aout_set_sizes (abfd)
 
   adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
 
-  return true;
+  return TRUE;
 }
 
 #ifndef MY_final_link_callback
@@ -732,7 +737,7 @@ MY_final_link_callback (abfd, ptreloff, pdreloff, psymoff)
 /* Final link routine.  We need to use a call back to get the correct
    offsets in the output file.  */
 
-static boolean
+static bfd_boolean
 MY_bfd_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -800,40 +805,40 @@ enum machine_type
 tic30_aout_machine_type (arch, machine, unknown)
      enum bfd_architecture arch;
      unsigned long machine ATTRIBUTE_UNUSED;
-     boolean *unknown;
+     bfd_boolean *unknown;
 {
   enum machine_type arch_flags;
 
   arch_flags = M_UNKNOWN;
-  *unknown = true;
+  *unknown = TRUE;
 
   switch (arch)
     {
     case bfd_arch_tic30:
-      *unknown = false;
+      *unknown = FALSE;
       break;
     default:
       arch_flags = M_UNKNOWN;
     }
   if (arch_flags != M_UNKNOWN)
-    *unknown = false;
+    *unknown = FALSE;
   return arch_flags;
 }
 
-boolean
+bfd_boolean
 tic30_aout_set_arch_mach (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
      unsigned long machine;
 {
   if (!bfd_default_set_arch_mach (abfd, arch, machine))
-    return false;
+    return FALSE;
   if (arch != bfd_arch_unknown)
     {
-      boolean unknown;
+      bfd_boolean unknown;
       tic30_aout_machine_type (arch, machine, &unknown);
       if (unknown)
-       return false;
+       return FALSE;
     }
   obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
   return (*aout_backend_info (abfd)->set_sizes) (abfd);
index 80d69d9135eca56f213c9adcd663c29b229174b5..4d66d87bc870c871e7c156b573e805a5743ea1ef 100644 (file)
@@ -75,15 +75,24 @@ The name put into the target vector.
 #define sunos_write_object_contents aout_32_sunos4_write_object_contents
 #endif
 
-static boolean sunos_merge_private_bfd_data PARAMS ((bfd *, bfd *));
-static void sunos_set_arch_mach PARAMS ((bfd *, enum machine_type));
-static void choose_reloc_size PARAMS ((bfd *));
-static boolean sunos_write_object_contents PARAMS ((bfd *));
-static const bfd_target *sunos4_core_file_p PARAMS ((bfd *));
-static char *sunos4_core_file_failing_command PARAMS ((bfd *));
-static int sunos4_core_file_failing_signal PARAMS ((bfd *));
-static boolean sunos4_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
-static boolean sunos4_set_sizes PARAMS ((bfd *));
+static bfd_boolean sunos_merge_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+static void sunos_set_arch_mach
+  PARAMS ((bfd *, enum machine_type));
+static void choose_reloc_size
+  PARAMS ((bfd *));
+static bfd_boolean sunos_write_object_contents
+  PARAMS ((bfd *));
+static const bfd_target *sunos4_core_file_p
+  PARAMS ((bfd *));
+static char *sunos4_core_file_failing_command
+  PARAMS ((bfd *));
+static int sunos4_core_file_failing_signal
+  PARAMS ((bfd *));
+static bfd_boolean sunos4_core_file_matches_executable_p
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean sunos4_set_sizes
+  PARAMS ((bfd *));
 
 /* Merge backend data into the output file.
    This is necessary on sparclet-aout where we want the resultant machine
@@ -91,13 +100,13 @@ static boolean sunos4_set_sizes PARAMS ((bfd *));
 
 #define MY_bfd_merge_private_bfd_data sunos_merge_private_bfd_data
 
-static boolean
+static bfd_boolean
 sunos_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd, *obfd;
 {
   if (bfd_get_flavour (ibfd) != bfd_target_aout_flavour
       || bfd_get_flavour (obfd) != bfd_target_aout_flavour)
-    return true;
+    return TRUE;
 
   if (bfd_get_arch (obfd) == bfd_arch_sparc)
     {
@@ -105,7 +114,7 @@ sunos_merge_private_bfd_data (ibfd, obfd)
        bfd_set_arch_mach (obfd, bfd_arch_sparc, bfd_get_mach (ibfd));
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This is either sunos_32_set_arch_mach or sunos_64_set_arch_mach,
@@ -207,7 +216,7 @@ choose_reloc_size (abfd)
    aout_64_sunos4_write_object_contents or
    aout_32_sunos4_write_object_contents, depending upon ARCH_SIZE.  */
 
-static boolean
+static bfd_boolean
 sunos_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -264,7 +273,7 @@ sunos_write_object_contents (abfd)
 
   WRITE_HEADERS (abfd, execp);
 
-  return true;
+  return TRUE;
 }
 \f
 /* core files */
@@ -731,7 +740,7 @@ sunos4_core_file_failing_signal (abfd)
   return core_hdr (abfd)->hdr->c_signo;
 }
 
-static boolean
+static bfd_boolean
 sunos4_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd;
      bfd *exec_bfd;
@@ -739,12 +748,12 @@ sunos4_core_file_matches_executable_p (core_bfd, exec_bfd)
   if (core_bfd->xvec != exec_bfd->xvec)
     {
       bfd_set_error (bfd_error_system_call);
-      return false;
+      return FALSE;
     }
 
   /* Solaris core files do not include an aouthdr.  */
   if ((core_hdr (core_bfd)->hdr)->c_len == SOLARIS_BCP_CORE_LEN)
-    return true;
+    return TRUE;
 
   return (memcmp ((char *) &((core_hdr (core_bfd)->hdr)->c_aouthdr),
                  (char *) exec_hdr (exec_bfd),
@@ -752,24 +761,24 @@ sunos4_core_file_matches_executable_p (core_bfd, exec_bfd)
 }
 
 #define MY_set_sizes sunos4_set_sizes
-static boolean
+static bfd_boolean
 sunos4_set_sizes (abfd)
      bfd *abfd;
 {
   switch (bfd_get_arch (abfd))
     {
     default:
-      return false;
+      return FALSE;
     case bfd_arch_sparc:
       adata (abfd).page_size = 0x2000;
       adata (abfd).segment_size = 0x2000;
       adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
-      return true;
+      return TRUE;
     case bfd_arch_m68k:
       adata (abfd).page_size = 0x2000;
       adata (abfd).segment_size = 0x20000;
       adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
-      return true;
+      return TRUE;
     }
 }
 
index 107772dfc328f3ded9ad83c1d1bfe922caef0b07..d8b465c47b8c2a3ba0148b01e7f6df25d73c3613 100644 (file)
@@ -131,14 +131,18 @@ DESCRIPTION
 #include "aout/stab_gnu.h"
 #include "aout/ar.h"
 
-static boolean aout_get_external_symbols PARAMS ((bfd *));
-static boolean translate_from_native_sym_flags
+static bfd_boolean aout_get_external_symbols
+  PARAMS ((bfd *));
+static bfd_boolean translate_from_native_sym_flags
   PARAMS ((bfd *, aout_symbol_type *));
-static boolean translate_to_native_sym_flags
+static bfd_boolean translate_to_native_sym_flags
   PARAMS ((bfd *, asymbol *, struct external_nlist *));
-static void adjust_o_magic PARAMS ((bfd *, struct internal_exec *));
-static void adjust_z_magic PARAMS ((bfd *, struct internal_exec *));
-static void adjust_n_magic PARAMS ((bfd *, struct internal_exec *));
+static void adjust_o_magic
+  PARAMS ((bfd *, struct internal_exec *));
+static void adjust_z_magic
+  PARAMS ((bfd *, struct internal_exec *));
+static void adjust_n_magic
+  PARAMS ((bfd *, struct internal_exec *));
 reloc_howto_type * NAME(aout,reloc_type_lookup)
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 
@@ -194,57 +198,57 @@ DESCRIPTION
 reloc_howto_type howto_table_ext[] =
 {
   /* type           rs   size bsz  pcrel bitpos ovrf                  sf name          part_inpl readmask setmask pcdone.  */
-  HOWTO(RELOC_8,      0,  0,   8,  false, 0, complain_overflow_bitfield,0,"8",        false, 0,0x000000ff, false),
-  HOWTO(RELOC_16,     0,  1,   16, false, 0, complain_overflow_bitfield,0,"16",       false, 0,0x0000ffff, false),
-  HOWTO(RELOC_32,     0,  2,   32, false, 0, complain_overflow_bitfield,0,"32",       false, 0,0xffffffff, false),
-  HOWTO(RELOC_DISP8,  0,  0,   8,  true,  0, complain_overflow_signed,0,"DISP8",       false, 0,0x000000ff, false),
-  HOWTO(RELOC_DISP16, 0,  1,   16, true,  0, complain_overflow_signed,0,"DISP16",      false, 0,0x0000ffff, false),
-  HOWTO(RELOC_DISP32, 0,  2,   32, true,  0, complain_overflow_signed,0,"DISP32",      false, 0,0xffffffff, false),
-  HOWTO(RELOC_WDISP30,2,  2,   30, true,  0, complain_overflow_signed,0,"WDISP30",     false, 0,0x3fffffff, false),
-  HOWTO(RELOC_WDISP22,2,  2,   22, true,  0, complain_overflow_signed,0,"WDISP22",     false, 0,0x003fffff, false),
-  HOWTO(RELOC_HI22,   10, 2,   22, false, 0, complain_overflow_bitfield,0,"HI22",      false, 0,0x003fffff, false),
-  HOWTO(RELOC_22,     0,  2,   22, false, 0, complain_overflow_bitfield,0,"22",       false, 0,0x003fffff, false),
-  HOWTO(RELOC_13,     0,  2,   13, false, 0, complain_overflow_bitfield,0,"13",       false, 0,0x00001fff, false),
-  HOWTO(RELOC_LO10,   0,  2,   10, false, 0, complain_overflow_dont,0,"LO10",     false, 0,0x000003ff, false),
-  HOWTO(RELOC_SFA_BASE,0, 2,   32, false, 0, complain_overflow_bitfield,0,"SFA_BASE", false, 0,0xffffffff, false),
-  HOWTO(RELOC_SFA_OFF13,0,2,   32, false, 0, complain_overflow_bitfield,0,"SFA_OFF13",false, 0,0xffffffff, false),
-  HOWTO(RELOC_BASE10, 0,  2,   10, false, 0, complain_overflow_dont,0,"BASE10",   false, 0,0x000003ff, false),
-  HOWTO(RELOC_BASE13, 0,  2,   13, false, 0, complain_overflow_signed,0,"BASE13",   false, 0,0x00001fff, false),
-  HOWTO(RELOC_BASE22, 10, 2,   22, false, 0, complain_overflow_bitfield,0,"BASE22",   false, 0,0x003fffff, false),
-  HOWTO(RELOC_PC10,   0,  2,   10, true,  0, complain_overflow_dont,0,"PC10",  false, 0,0x000003ff, true),
-  HOWTO(RELOC_PC22,   10,  2,  22, true,  0, complain_overflow_signed,0,"PC22", false, 0,0x003fffff, true),
-  HOWTO(RELOC_JMP_TBL,2,  2,   30, true,  0, complain_overflow_signed,0,"JMP_TBL",     false, 0,0x3fffffff, false),
-  HOWTO(RELOC_SEGOFF16,0, 2,   0,  false, 0, complain_overflow_bitfield,0,"SEGOFF16",  false, 0,0x00000000, false),
-  HOWTO(RELOC_GLOB_DAT,0, 2,   0,  false, 0, complain_overflow_bitfield,0,"GLOB_DAT",  false, 0,0x00000000, false),
-  HOWTO(RELOC_JMP_SLOT,0, 2,   0,  false, 0, complain_overflow_bitfield,0,"JMP_SLOT",  false, 0,0x00000000, false),
-  HOWTO(RELOC_RELATIVE,0, 2,   0,  false, 0, complain_overflow_bitfield,0,"RELATIVE",  false, 0,0x00000000, false),
-  HOWTO(0,  0, 0,    0,  false, 0, complain_overflow_dont, 0, "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(0,  0, 0,    0,  false, 0, complain_overflow_dont, 0, "R_SPARC_NONE",    false,0,0x00000000,true),
+  HOWTO(RELOC_8,      0,  0,   8,  FALSE, 0, complain_overflow_bitfield,0,"8",        FALSE, 0,0x000000ff, FALSE),
+  HOWTO(RELOC_16,     0,  1,   16, FALSE, 0, complain_overflow_bitfield,0,"16",       FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(RELOC_32,     0,  2,   32, FALSE, 0, complain_overflow_bitfield,0,"32",       FALSE, 0,0xffffffff, FALSE),
+  HOWTO(RELOC_DISP8,  0,  0,   8,  TRUE,  0, complain_overflow_signed,0,"DISP8",       FALSE, 0,0x000000ff, FALSE),
+  HOWTO(RELOC_DISP16, 0,  1,   16, TRUE,  0, complain_overflow_signed,0,"DISP16",      FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(RELOC_DISP32, 0,  2,   32, TRUE,  0, complain_overflow_signed,0,"DISP32",      FALSE, 0,0xffffffff, FALSE),
+  HOWTO(RELOC_WDISP30,2,  2,   30, TRUE,  0, complain_overflow_signed,0,"WDISP30",     FALSE, 0,0x3fffffff, FALSE),
+  HOWTO(RELOC_WDISP22,2,  2,   22, TRUE,  0, complain_overflow_signed,0,"WDISP22",     FALSE, 0,0x003fffff, FALSE),
+  HOWTO(RELOC_HI22,   10, 2,   22, FALSE, 0, complain_overflow_bitfield,0,"HI22",      FALSE, 0,0x003fffff, FALSE),
+  HOWTO(RELOC_22,     0,  2,   22, FALSE, 0, complain_overflow_bitfield,0,"22",       FALSE, 0,0x003fffff, FALSE),
+  HOWTO(RELOC_13,     0,  2,   13, FALSE, 0, complain_overflow_bitfield,0,"13",       FALSE, 0,0x00001fff, FALSE),
+  HOWTO(RELOC_LO10,   0,  2,   10, FALSE, 0, complain_overflow_dont,0,"LO10",     FALSE, 0,0x000003ff, FALSE),
+  HOWTO(RELOC_SFA_BASE,0, 2,   32, FALSE, 0, complain_overflow_bitfield,0,"SFA_BASE", FALSE, 0,0xffffffff, FALSE),
+  HOWTO(RELOC_SFA_OFF13,0,2,   32, FALSE, 0, complain_overflow_bitfield,0,"SFA_OFF13",FALSE, 0,0xffffffff, FALSE),
+  HOWTO(RELOC_BASE10, 0,  2,   10, FALSE, 0, complain_overflow_dont,0,"BASE10",   FALSE, 0,0x000003ff, FALSE),
+  HOWTO(RELOC_BASE13, 0,  2,   13, FALSE, 0, complain_overflow_signed,0,"BASE13",   FALSE, 0,0x00001fff, FALSE),
+  HOWTO(RELOC_BASE22, 10, 2,   22, FALSE, 0, complain_overflow_bitfield,0,"BASE22",   FALSE, 0,0x003fffff, FALSE),
+  HOWTO(RELOC_PC10,   0,  2,   10, TRUE,  0, complain_overflow_dont,0,"PC10",  FALSE, 0,0x000003ff, TRUE),
+  HOWTO(RELOC_PC22,   10,  2,  22, TRUE,  0, complain_overflow_signed,0,"PC22", FALSE, 0,0x003fffff, TRUE),
+  HOWTO(RELOC_JMP_TBL,2,  2,   30, TRUE,  0, complain_overflow_signed,0,"JMP_TBL",     FALSE, 0,0x3fffffff, FALSE),
+  HOWTO(RELOC_SEGOFF16,0, 2,   0,  FALSE, 0, complain_overflow_bitfield,0,"SEGOFF16",  FALSE, 0,0x00000000, FALSE),
+  HOWTO(RELOC_GLOB_DAT,0, 2,   0,  FALSE, 0, complain_overflow_bitfield,0,"GLOB_DAT",  FALSE, 0,0x00000000, FALSE),
+  HOWTO(RELOC_JMP_SLOT,0, 2,   0,  FALSE, 0, complain_overflow_bitfield,0,"JMP_SLOT",  FALSE, 0,0x00000000, FALSE),
+  HOWTO(RELOC_RELATIVE,0, 2,   0,  FALSE, 0, complain_overflow_bitfield,0,"RELATIVE",  FALSE, 0,0x00000000, FALSE),
+  HOWTO(0,  0, 0,    0,  FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(0,  0, 0,    0,  FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
 #define RELOC_SPARC_REV32 RELOC_WDISP19
-  HOWTO(RELOC_SPARC_REV32,    0,  2,   32, false, 0, complain_overflow_dont,0,"R_SPARC_REV32",       false, 0,0xffffffff, false),
+  HOWTO(RELOC_SPARC_REV32,    0,  2,   32, FALSE, 0, complain_overflow_dont,0,"R_SPARC_REV32",       FALSE, 0,0xffffffff, FALSE),
 };
 
 /* Convert standard reloc records to "arelent" format (incl byte swap).  */
 
 reloc_howto_type howto_table_std[] = {
   /* type              rs size bsz  pcrel bitpos ovrf                     sf name     part_inpl readmask  setmask    pcdone.  */
-HOWTO ( 0,            0,  0,   8,  false, 0, complain_overflow_bitfield,0,"8",         true, 0x000000ff,0x000000ff, false),
-HOWTO ( 1,            0,  1,   16, false, 0, complain_overflow_bitfield,0,"16",        true, 0x0000ffff,0x0000ffff, false),
-HOWTO ( 2,            0,  2,   32, false, 0, complain_overflow_bitfield,0,"32",        true, 0xffffffff,0xffffffff, false),
-HOWTO ( 3,            0,  4,   64, false, 0, complain_overflow_bitfield,0,"64",        true, 0xdeaddead,0xdeaddead, false),
-HOWTO ( 4,            0,  0,   8,  true,  0, complain_overflow_signed,  0,"DISP8",     true, 0x000000ff,0x000000ff, false),
-HOWTO ( 5,            0,  1,   16, true,  0, complain_overflow_signed,  0,"DISP16",    true, 0x0000ffff,0x0000ffff, false),
-HOWTO ( 6,            0,  2,   32, true,  0, complain_overflow_signed,  0,"DISP32",    true, 0xffffffff,0xffffffff, false),
-HOWTO ( 7,            0,  4,   64, true,  0, complain_overflow_signed,  0,"DISP64",    true, 0xfeedface,0xfeedface, false),
-HOWTO ( 8,            0,  2,    0, false, 0, complain_overflow_bitfield,0,"GOT_REL",   false,         0,0x00000000, false),
-HOWTO ( 9,            0,  1,   16, false, 0, complain_overflow_bitfield,0,"BASE16",    false,0xffffffff,0xffffffff, false),
-HOWTO (10,            0,  2,   32, false, 0, complain_overflow_bitfield,0,"BASE32",    false,0xffffffff,0xffffffff, false),
+HOWTO ( 0,            0,  0,   8,  FALSE, 0, complain_overflow_bitfield,0,"8",         TRUE, 0x000000ff,0x000000ff, FALSE),
+HOWTO ( 1,            0,  1,   16, FALSE, 0, complain_overflow_bitfield,0,"16",        TRUE, 0x0000ffff,0x0000ffff, FALSE),
+HOWTO ( 2,            0,  2,   32, FALSE, 0, complain_overflow_bitfield,0,"32",        TRUE, 0xffffffff,0xffffffff, FALSE),
+HOWTO ( 3,            0,  4,   64, FALSE, 0, complain_overflow_bitfield,0,"64",        TRUE, 0xdeaddead,0xdeaddead, FALSE),
+HOWTO ( 4,            0,  0,   8,  TRUE,  0, complain_overflow_signed,  0,"DISP8",     TRUE, 0x000000ff,0x000000ff, FALSE),
+HOWTO ( 5,            0,  1,   16, TRUE,  0, complain_overflow_signed,  0,"DISP16",    TRUE, 0x0000ffff,0x0000ffff, FALSE),
+HOWTO ( 6,            0,  2,   32, TRUE,  0, complain_overflow_signed,  0,"DISP32",    TRUE, 0xffffffff,0xffffffff, FALSE),
+HOWTO ( 7,            0,  4,   64, TRUE,  0, complain_overflow_signed,  0,"DISP64",    TRUE, 0xfeedface,0xfeedface, FALSE),
+HOWTO ( 8,            0,  2,    0, FALSE, 0, complain_overflow_bitfield,0,"GOT_REL",   FALSE,         0,0x00000000, FALSE),
+HOWTO ( 9,            0,  1,   16, FALSE, 0, complain_overflow_bitfield,0,"BASE16",    FALSE,0xffffffff,0xffffffff, FALSE),
+HOWTO (10,            0,  2,   32, FALSE, 0, complain_overflow_bitfield,0,"BASE32",    FALSE,0xffffffff,0xffffffff, FALSE),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
-  HOWTO (16,          0,  2,    0, false, 0, complain_overflow_bitfield,0,"JMP_TABLE", false,         0,0x00000000, false),
+  HOWTO (16,          0,  2,    0, FALSE, 0, complain_overflow_bitfield,0,"JMP_TABLE", FALSE,         0,0x00000000, FALSE),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
@@ -260,7 +264,7 @@ EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
-  HOWTO (32,          0,  2,    0, false, 0, complain_overflow_bitfield,0,"RELATIVE",  false,         0,0x00000000, false),
+  HOWTO (32,          0,  2,    0, FALSE, 0, complain_overflow_bitfield,0,"RELATIVE",  FALSE,         0,0x00000000, FALSE),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
@@ -268,7 +272,7 @@ EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
-  HOWTO (40,          0,  2,    0, false, 0, complain_overflow_bitfield,0,"BASEREL",   false,         0,0x00000000, false),
+  HOWTO (40,          0,  2,    0, FALSE, 0, complain_overflow_bitfield,0,"BASEREL",   FALSE,         0,0x00000000, FALSE),
 };
 
 #define TABLE_SIZE(TABLE)      (sizeof (TABLE) / sizeof (TABLE[0]))
@@ -419,20 +423,20 @@ NAME(aout,swap_exec_header_out) (abfd, execp, raw_bytes)
 
 /* Make all the section for an a.out file.  */
 
-boolean
+bfd_boolean
 NAME(aout,make_sections) (abfd)
      bfd *abfd;
 {
   if (obj_textsec (abfd) == (asection *) NULL
       && bfd_make_section (abfd, ".text") == (asection *) NULL)
-    return false;
+    return FALSE;
   if (obj_datasec (abfd) == (asection *) NULL
       && bfd_make_section (abfd, ".data") == (asection *) NULL)
-    return false;
+    return FALSE;
   if (obj_bsssec (abfd) == (asection *) NULL
       && bfd_make_section (abfd, ".bss") == (asection *) NULL)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /*
@@ -673,13 +677,13 @@ FUNCTION
        aout_@var{size}_mkobject
 
 SYNOPSIS
-       boolean aout_@var{size}_mkobject, (bfd *abfd);
+       bfd_boolean aout_@var{size}_mkobject, (bfd *abfd);
 
 DESCRIPTION
        Initialize BFD @var{abfd} for use with a.out files.
 */
 
-boolean
+bfd_boolean
 NAME(aout,mkobject) (abfd)
      bfd *abfd;
 {
@@ -690,7 +694,7 @@ NAME(aout,mkobject) (abfd)
 
   rawptr = (struct aout_data_struct *) bfd_zalloc (abfd, amt);
   if (rawptr == NULL)
-    return false;
+    return FALSE;
 
   abfd->tdata.aout_data = rawptr;
   exec_hdr (abfd) = &(rawptr->e);
@@ -699,7 +703,7 @@ NAME(aout,mkobject) (abfd)
   obj_datasec (abfd) = (asection *) NULL;
   obj_bsssec (abfd) = (asection *) NULL;
 
-  return true;
+  return TRUE;
 }
 
 /*
@@ -725,12 +729,12 @@ enum machine_type
 NAME(aout,machine_type) (arch, machine, unknown)
      enum bfd_architecture arch;
      unsigned long machine;
-     boolean *unknown;
+     bfd_boolean *unknown;
 {
   enum machine_type arch_flags;
 
   arch_flags = M_UNKNOWN;
-  *unknown = true;
+  *unknown = TRUE;
 
   switch (arch)
     {
@@ -749,7 +753,7 @@ NAME(aout,machine_type) (arch, machine, unknown)
       switch (machine)
        {
        case 0:               arch_flags = M_68010; break;
-       case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = false; break;
+       case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = FALSE; break;
        case bfd_mach_m68010: arch_flags = M_68010; break;
        case bfd_mach_m68020: arch_flags = M_68020; break;
        default:              arch_flags = M_UNKNOWN; break;
@@ -819,7 +823,7 @@ NAME(aout,machine_type) (arch, machine, unknown)
       break;
 
     case bfd_arch_vax:
-      *unknown = false;
+      *unknown = FALSE;
       break;
 
     case bfd_arch_cris:
@@ -832,7 +836,7 @@ NAME(aout,machine_type) (arch, machine, unknown)
     }
 
   if (arch_flags != M_UNKNOWN)
-    *unknown = false;
+    *unknown = FALSE;
 
   return arch_flags;
 }
@@ -842,7 +846,7 @@ FUNCTION
        aout_@var{size}_set_arch_mach
 
 SYNOPSIS
-       boolean aout_@var{size}_set_arch_mach,
+       bfd_boolean aout_@var{size}_set_arch_mach,
         (bfd *,
          enum bfd_architecture arch,
          unsigned long machine));
@@ -853,22 +857,22 @@ DESCRIPTION
        can support the architecture required.
 */
 
-boolean
+bfd_boolean
 NAME(aout,set_arch_mach) (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
      unsigned long machine;
 {
   if (! bfd_default_set_arch_mach (abfd, arch, machine))
-    return false;
+    return FALSE;
 
   if (arch != bfd_arch_unknown)
     {
-      boolean unknown;
+      bfd_boolean unknown;
 
       NAME(aout,machine_type) (arch, machine, &unknown);
       if (unknown)
-       return false;
+       return FALSE;
     }
 
   /* Determine the size of a relocation entry.  */
@@ -1116,7 +1120,7 @@ adjust_n_magic (abfd, execp)
   N_SET_MAGIC (*execp, NMAGIC);
 }
 
-boolean
+bfd_boolean
 NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
      bfd *abfd;
      bfd_size_type *text_size;
@@ -1125,10 +1129,10 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
   struct internal_exec *execp = exec_hdr (abfd);
 
   if (! NAME(aout,make_sections) (abfd))
-    return false;
+    return FALSE;
 
   if (adata (abfd).magic != undecided_magic)
-    return true;
+    return TRUE;
 
   obj_textsec (abfd)->_raw_size =
     align_power (obj_textsec (abfd)->_raw_size,
@@ -1205,7 +1209,7 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
           obj_bsssec (abfd)->vma, obj_bsssec (abfd)->_raw_size);
 #endif
 
-  return true;
+  return TRUE;
 }
 
 /*
@@ -1213,7 +1217,7 @@ FUNCTION
        aout_@var{size}_new_section_hook
 
 SYNOPSIS
-        boolean aout_@var{size}_new_section_hook,
+        bfd_boolean aout_@var{size}_new_section_hook,
           (bfd *abfd,
            asection *newsect));
 
@@ -1221,7 +1225,7 @@ DESCRIPTION
        Called by the BFD in response to a @code{bfd_make_section}
        request.
 */
-boolean
+bfd_boolean
 NAME(aout,new_section_hook) (abfd, newsect)
      bfd *abfd;
      asection *newsect;
@@ -1235,29 +1239,29 @@ NAME(aout,new_section_hook) (abfd, newsect)
        {
          obj_textsec (abfd)= newsect;
          newsect->target_index = N_TEXT;
-         return true;
+         return TRUE;
        }
 
       if (obj_datasec (abfd) == NULL && !strcmp (newsect->name, ".data"))
        {
          obj_datasec (abfd) = newsect;
          newsect->target_index = N_DATA;
-         return true;
+         return TRUE;
        }
 
       if (obj_bsssec (abfd) == NULL && !strcmp (newsect->name, ".bss"))
        {
          obj_bsssec (abfd) = newsect;
          newsect->target_index = N_BSS;
-         return true;
+         return TRUE;
        }
     }
 
   /* We allow more than three sections internally.  */
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 NAME(aout,set_section_contents) (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -1271,38 +1275,44 @@ NAME(aout,set_section_contents) (abfd, section, location, offset, count)
   if (! abfd->output_has_begun)
     {
       if (! NAME(aout,adjust_sizes_and_vmas) (abfd, &text_size, &text_end))
-       return false;
+       return FALSE;
     }
 
   if (section == obj_bsssec (abfd))
     {
       bfd_set_error (bfd_error_no_contents);
-      return false;
+      return FALSE;
     }
 
   if (section != obj_textsec (abfd)
       && section != obj_datasec (abfd))
     {
-      (*_bfd_error_handler)
-       (_("%s: can not represent section `%s' in a.out object file format"),
-        bfd_get_filename (abfd), bfd_get_section_name (abfd, section));
-      bfd_set_error (bfd_error_nonrepresentable_section);
-      return false;
+      if (aout_section_merge_with_text_p (abfd, section))
+       section->filepos = obj_textsec (abfd)->filepos +
+                          (section->vma - obj_textsec (abfd)->vma);
+      else
+       {
+          (*_bfd_error_handler)
+          (_("%s: can not represent section `%s' in a.out object file format"),
+            bfd_get_filename (abfd), bfd_get_section_name (abfd, section));
+          bfd_set_error (bfd_error_nonrepresentable_section);
+          return FALSE;
+       }
     }
 
   if (count != 0)
     {
       if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
          || bfd_bwrite (location, count, abfd) != count)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Read the external symbols from an a.out file.  */
 
-static boolean
+static bfd_boolean
 aout_get_external_symbols (abfd)
      bfd *abfd;
 {
@@ -1317,8 +1327,8 @@ aout_get_external_symbols (abfd)
 #ifdef USE_MMAP
       if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd),
                                 exec_hdr (abfd)->a_syms,
-                                &obj_aout_sym_window (abfd), true))
-       return false;
+                                &obj_aout_sym_window (abfd), TRUE))
+       return FALSE;
       syms = (struct external_nlist *) obj_aout_sym_window (abfd).data;
 #else
       /* We allocate using malloc to make the values easy to free
@@ -1327,14 +1337,14 @@ aout_get_external_symbols (abfd)
       syms = ((struct external_nlist *)
              bfd_malloc (count * EXTERNAL_NLIST_SIZE));
       if (syms == (struct external_nlist *) NULL && count != 0)
-       return false;
+       return FALSE;
 
       amt = exec_hdr (abfd)->a_syms;
       if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
          || bfd_bread (syms, amt, abfd) != amt)
        {
          free (syms);
-         return false;
+         return FALSE;
        }
 #endif
 
@@ -1353,18 +1363,18 @@ aout_get_external_symbols (abfd)
       /* Get the size of the strings.  */
       if (bfd_seek (abfd, obj_str_filepos (abfd), SEEK_SET) != 0
          || bfd_bread ((PTR) string_chars, amt, abfd) != amt)
-       return false;
+       return FALSE;
       stringsize = GET_WORD (abfd, string_chars);
 
 #ifdef USE_MMAP
       if (! bfd_get_file_window (abfd, obj_str_filepos (abfd), stringsize,
-                                &obj_aout_string_window (abfd), true))
-       return false;
+                                &obj_aout_string_window (abfd), TRUE))
+       return FALSE;
       strings = (char *) obj_aout_string_window (abfd).data;
 #else
       strings = (char *) bfd_malloc (stringsize + 1);
       if (strings == NULL)
-       return false;
+       return FALSE;
 
       /* Skip space for the string count in the buffer for convenience
         when using indexes.  */
@@ -1372,7 +1382,7 @@ aout_get_external_symbols (abfd)
       if (bfd_bread (strings + BYTES_IN_WORD, amt, abfd) != amt)
        {
          free (strings);
-         return false;
+         return FALSE;
        }
 #endif
 
@@ -1385,7 +1395,7 @@ aout_get_external_symbols (abfd)
       obj_aout_external_string_size (abfd) = stringsize;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Translate an a.out symbol into a BFD symbol.  The desc, other, type
@@ -1393,7 +1403,7 @@ aout_get_external_symbols (abfd)
    nlist structure.  This function is responsible for setting
    symbol->flags and symbol->section, and adjusting symbol->value.  */
 
-static boolean
+static bfd_boolean
 translate_from_native_sym_flags (abfd, cache_ptr)
      bfd *abfd;
      aout_symbol_type *cache_ptr;
@@ -1430,7 +1440,7 @@ translate_from_native_sym_flags (abfd, cache_ptr)
       cache_ptr->symbol.section = sec;
       cache_ptr->symbol.value -= sec->vma;
 
-      return true;
+      return TRUE;
     }
 
   /* Get the default visibility.  This does not apply to all types, so
@@ -1519,18 +1529,18 @@ translate_from_native_sym_flags (abfd, cache_ptr)
            amt = strlen (cache_ptr->symbol.name) + 1;
            copy = bfd_alloc (abfd, amt);
            if (copy == NULL)
-             return false;
+             return FALSE;
 
            strcpy (copy, cache_ptr->symbol.name);
            section = bfd_make_section (abfd, copy);
            if (section == NULL)
-             return false;
+             return FALSE;
          }
 
        amt = sizeof (arelent_chain);
        reloc = (arelent_chain *) bfd_alloc (abfd, amt);
        if (reloc == NULL)
-         return false;
+         return FALSE;
 
        /* Build a relocation entry for the constructor.  */
        switch (cache_ptr->type & N_TYPE)
@@ -1643,12 +1653,12 @@ translate_from_native_sym_flags (abfd, cache_ptr)
       break;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the fields of SYM_POINTER according to CACHE_PTR.  */
 
-static boolean
+static bfd_boolean
 translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
      bfd *abfd;
      asymbol *cache_ptr;
@@ -1674,7 +1684,7 @@ translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
         bfd_get_filename (abfd),
         cache_ptr->name != NULL ? cache_ptr->name : _("*unknown*"));
       bfd_set_error (bfd_error_nonrepresentable_section);
-      return false;
+      return FALSE;
     }
 
   if (sec->output_section != NULL)
@@ -1699,11 +1709,16 @@ translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
     sym_pointer->e_type[0] = N_UNDF | N_EXT;
   else
     {
-      (*_bfd_error_handler)
-       (_("%s: can not represent section `%s' in a.out object file format"),
-        bfd_get_filename (abfd), bfd_get_section_name (abfd, sec));
-      bfd_set_error (bfd_error_nonrepresentable_section);
-      return false;
+      if (aout_section_merge_with_text_p (abfd, sec))
+       sym_pointer->e_type[0] |= N_TEXT;
+      else
+       {
+          (*_bfd_error_handler)
+          (_("%s: can not represent section `%s' in a.out object file format"),
+            bfd_get_filename (abfd), bfd_get_section_name (abfd, sec));
+          bfd_set_error (bfd_error_nonrepresentable_section);
+          return FALSE;
+       }
     }
 
   /* Turn the symbol from section relative to absolute again.  */
@@ -1751,7 +1766,7 @@ translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
 
   PUT_WORD (abfd, value, sym_pointer->e_value);
 
-  return true;
+  return TRUE;
 }
 \f
 /* Native-level interface to symbols.  */
@@ -1771,7 +1786,7 @@ NAME(aout,make_empty_symbol) (abfd)
 
 /* Translate a set of internal symbols into external symbols.  */
 
-boolean
+bfd_boolean
 NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
      bfd *abfd;
      aout_symbol_type *in;
@@ -1779,7 +1794,7 @@ NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
      bfd_size_type count;
      char *str;
      bfd_size_type strsize;
-     boolean dynamic;
+     bfd_boolean dynamic;
 {
   struct external_nlist *ext_end;
 
@@ -1801,7 +1816,7 @@ NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
       else if (x < strsize)
        in->symbol.name = str + x;
       else
-       return false;
+       return FALSE;
 
       in->symbol.value = GET_SWORD (abfd,  ext->e_value);
       in->desc = H_GET_16 (abfd, ext->e_desc);
@@ -1810,20 +1825,20 @@ NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
       in->symbol.udata.p = NULL;
 
       if (! translate_from_native_sym_flags (abfd, in))
-       return false;
+       return FALSE;
 
       if (dynamic)
        in->symbol.flags |= BSF_DYNAMIC;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We read the symbols into a buffer, which is discarded when this
    function exits.  We read the strings into a buffer large enough to
    hold them all plus all the cached symbol entries.  */
 
-boolean
+bfd_boolean
 NAME(aout,slurp_symbol_table) (abfd)
      bfd *abfd;
 {
@@ -1833,18 +1848,18 @@ NAME(aout,slurp_symbol_table) (abfd)
 
   /* If there's no work to be done, don't do any.  */
   if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL)
-    return true;
+    return TRUE;
 
   old_external_syms = obj_aout_external_syms (abfd);
 
   if (! aout_get_external_symbols (abfd))
-    return false;
+    return FALSE;
 
   cached_size = obj_aout_external_sym_count (abfd);
   cached_size *= sizeof (aout_symbol_type);
   cached = (aout_symbol_type *) bfd_zmalloc (cached_size);
   if (cached == NULL && cached_size != 0)
-    return false;
+    return FALSE;
 
   /* Convert from external symbol information to internal.  */
   if (! (NAME(aout,translate_symbol_table)
@@ -1853,10 +1868,10 @@ NAME(aout,slurp_symbol_table) (abfd)
          obj_aout_external_sym_count (abfd),
          obj_aout_external_strings (abfd),
          obj_aout_external_string_size (abfd),
-         false)))
+         FALSE)))
     {
       free (cached);
-      return false;
+      return FALSE;
     }
 
   bfd_get_symcount (abfd) = obj_aout_external_sym_count (abfd);
@@ -1878,7 +1893,7 @@ NAME(aout,slurp_symbol_table) (abfd)
       obj_aout_external_syms (abfd) = NULL;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* We use a hash table when writing out symbols so that we only write
@@ -1891,8 +1906,9 @@ NAME(aout,slurp_symbol_table) (abfd)
    if BFD_TRADITIONAL_FORMAT is set.  */
 
 static bfd_size_type add_to_stringtab
-  PARAMS ((bfd *, struct bfd_strtab_hash *, const char *, boolean));
-static boolean emit_stringtab PARAMS ((bfd *, struct bfd_strtab_hash *));
+  PARAMS ((bfd *, struct bfd_strtab_hash *, const char *, bfd_boolean));
+static bfd_boolean emit_stringtab
+  PARAMS ((bfd *, struct bfd_strtab_hash *));
 
 /* Get the index of a string in a strtab, adding it if it is not
    already present.  */
@@ -1902,9 +1918,9 @@ add_to_stringtab (abfd, tab, str, copy)
      bfd *abfd;
      struct bfd_strtab_hash *tab;
      const char *str;
-     boolean copy;
+     bfd_boolean copy;
 {
-  boolean hash;
+  bfd_boolean hash;
   bfd_size_type index;
 
   /* An index of 0 always means the empty string.  */
@@ -1913,9 +1929,9 @@ add_to_stringtab (abfd, tab, str, copy)
 
   /* Don't hash if BFD_TRADITIONAL_FORMAT is set, because SunOS dbx
      doesn't understand a hashed string table.  */
-  hash = true;
+  hash = TRUE;
   if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
-    hash = false;
+    hash = FALSE;
 
   index = _bfd_stringtab_add (tab, str, hash, copy);
 
@@ -1932,7 +1948,7 @@ add_to_stringtab (abfd, tab, str, copy)
 /* Write out a strtab.  ABFD is already at the right location in the
    file.  */
 
-static boolean
+static bfd_boolean
 emit_stringtab (abfd, tab)
      register bfd *abfd;
      struct bfd_strtab_hash *tab;
@@ -1943,12 +1959,12 @@ emit_stringtab (abfd, tab)
   /* The string table starts with the size.  */
   PUT_WORD (abfd, _bfd_stringtab_size (tab) + BYTES_IN_WORD, buffer);
   if (bfd_bwrite ((PTR) buffer, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   return _bfd_stringtab_emit (abfd, tab);
 }
 \f
-boolean
+bfd_boolean
 NAME(aout,write_syms) (abfd)
      bfd *abfd;
 {
@@ -1958,7 +1974,7 @@ NAME(aout,write_syms) (abfd)
 
   strtab = _bfd_stringtab_init ();
   if (strtab == NULL)
-    return false;
+    return FALSE;
 
   for (count = 0; count < bfd_get_symcount (abfd); count++)
     {
@@ -1967,7 +1983,7 @@ NAME(aout,write_syms) (abfd)
       struct external_nlist nsp;
       bfd_size_type amt;
 
-      indx = add_to_stringtab (abfd, strtab, g->name, false);
+      indx = add_to_stringtab (abfd, strtab, g->name, FALSE);
       if (indx == (bfd_size_type) -1)
        goto error_return;
       PUT_WORD (abfd, indx, (bfd_byte *) nsp.e_strx);
@@ -2002,11 +2018,11 @@ NAME(aout,write_syms) (abfd)
 
   _bfd_stringtab_free (strtab);
 
-  return true;
+  return TRUE;
 
 error_return:
   _bfd_stringtab_free (strtab);
-  return false;
+  return FALSE;
 }
 \f
 long
@@ -2370,7 +2386,7 @@ NAME(aout,swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
 
 /* Read and swap the relocs for a section.  */
 
-boolean
+bfd_boolean
 NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
      bfd *abfd;
      sec_ptr asect;
@@ -2386,10 +2402,10 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
   bfd_size_type amt;
 
   if (asect->relocation)
-    return true;
+    return TRUE;
 
   if (asect->flags & SEC_CONSTRUCTOR)
-    return true;
+    return TRUE;
 
   if (asect == obj_datasec (abfd))
     reloc_size = exec_hdr (abfd)->a_drsize;
@@ -2400,11 +2416,11 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
   else
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   each_size = obj_reloc_entry_size (abfd);
 
@@ -2413,20 +2429,20 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
   amt = count * sizeof (arelent);
   reloc_cache = (arelent *) bfd_zmalloc (amt);
   if (reloc_cache == NULL && count != 0)
-    return false;
+    return FALSE;
 
   relocs = bfd_malloc (reloc_size);
   if (relocs == NULL && reloc_size != 0)
     {
       free (reloc_cache);
-      return false;
+      return FALSE;
     }
 
   if (bfd_bread (relocs, reloc_size, abfd) != reloc_size)
     {
       free (relocs);
       free (reloc_cache);
-      return false;
+      return FALSE;
     }
 
   cache_ptr = reloc_cache;
@@ -2452,12 +2468,12 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
   asect->relocation = reloc_cache;
   asect->reloc_count = cache_ptr - reloc_cache;
 
-  return true;
+  return TRUE;
 }
 
 /* Write out a relocation section into an object file.  */
 
-boolean
+bfd_boolean
 NAME(aout,squirt_out_relocs) (abfd, section)
      bfd *abfd;
      asection *section;
@@ -2470,13 +2486,13 @@ NAME(aout,squirt_out_relocs) (abfd, section)
   bfd_size_type natsize;
 
   if (count == 0 || section->orelocation == NULL)
-    return true;
+    return TRUE;
 
   each_size = obj_reloc_entry_size (abfd);
   natsize = (bfd_size_type) each_size * count;
   native = (unsigned char *) bfd_zalloc (abfd, natsize);
   if (!native)
-    return false;
+    return FALSE;
 
   generic = section->orelocation;
 
@@ -2500,11 +2516,11 @@ NAME(aout,squirt_out_relocs) (abfd, section)
   if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize)
     {
       bfd_release (abfd, native);
-      return false;
+      return FALSE;
     }
   bfd_release (abfd, native);
 
-  return true;
+  return TRUE;
 }
 
 /* This is stupid.  This function should be a boolean predicate.  */
@@ -2681,7 +2697,7 @@ NAME(aout,print_symbol) (abfd, afile, symbol, how)
 long
 NAME(aout,read_minisymbols) (abfd, dynamic, minisymsp, sizep)
      bfd *abfd;
-     boolean dynamic;
+     bfd_boolean dynamic;
      PTR *minisymsp;
      unsigned int *sizep;
 {
@@ -2717,7 +2733,7 @@ NAME(aout,read_minisymbols) (abfd, dynamic, minisymsp, sizep)
 asymbol *
 NAME(aout,minisymbol_to_symbol) (abfd, dynamic, minisym, sym)
      bfd *abfd;
-     boolean dynamic;
+     bfd_boolean dynamic;
      const PTR minisym;
      asymbol *sym;
 {
@@ -2735,7 +2751,7 @@ NAME(aout,minisymbol_to_symbol) (abfd, dynamic, minisym, sym)
          (bfd_size_type) 1,
          obj_aout_external_strings (abfd),
          obj_aout_external_string_size (abfd),
-         false)))
+         FALSE)))
     return NULL;
 
   return sym;
@@ -2745,7 +2761,7 @@ NAME(aout,minisymbol_to_symbol) (abfd, dynamic, minisym, sym)
    and return the name of the source file and the line nearest to the
    wanted location.  */
 
-boolean
+bfd_boolean
 NAME(aout,find_nearest_line)
      (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr)
      bfd *abfd;
@@ -2904,7 +2920,7 @@ NAME(aout,find_nearest_line)
       buf = (char *) bfd_malloc (filelen + funclen + 3);
       adata (abfd).line_buf = buf;
       if (buf == NULL)
-       return false;
+       return FALSE;
     }
 
   if (main_file_name != NULL)
@@ -2941,13 +2957,13 @@ NAME(aout,find_nearest_line)
       *functionname_ptr = buf;
     }
 
-  return true;
+  return TRUE;
 }
 
 int
 NAME(aout,sizeof_headers) (abfd, execable)
      bfd *abfd;
-     boolean execable ATTRIBUTE_UNUSED;
+     bfd_boolean execable ATTRIBUTE_UNUSED;
 {
   return adata (abfd).exec_bytes_size;
 }
@@ -2955,7 +2971,7 @@ NAME(aout,sizeof_headers) (abfd, execable)
 /* Free all information we have cached for this BFD.  We can always
    read it again later if we need it.  */
 
-boolean
+bfd_boolean
 NAME(aout,bfd_free_cached_info) (abfd)
      bfd *abfd;
 {
@@ -2963,7 +2979,7 @@ NAME(aout,bfd_free_cached_info) (abfd)
 
   if (bfd_get_format (abfd) != bfd_object
       || abfd->tdata.aout_data == NULL)
-    return true;
+    return TRUE;
 
 #define BFCI_FREE(x) if (x != NULL) { free (x); x = NULL; }
   BFCI_FREE (obj_aout_symbols (abfd));
@@ -2980,19 +2996,20 @@ NAME(aout,bfd_free_cached_info) (abfd)
     BFCI_FREE (o->relocation);
 #undef BFCI_FREE
 
-  return true;
+  return TRUE;
 }
 \f
 /* a.out link code.  */
 
-static boolean aout_link_add_object_symbols
+static bfd_boolean aout_link_add_object_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean aout_link_check_archive_element
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *));
-static boolean aout_link_free_symbols PARAMS ((bfd *));
-static boolean aout_link_check_ar_symbols
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded));
-static boolean aout_link_add_symbols
+static bfd_boolean aout_link_check_archive_element
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean aout_link_free_symbols
+  PARAMS ((bfd *));
+static bfd_boolean aout_link_check_ar_symbols
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded));
+static bfd_boolean aout_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Routine to create an entry in an a.out link hash table.  */
@@ -3020,7 +3037,7 @@ NAME(aout,link_hash_newfunc) (entry, table, string)
   if (ret)
     {
       /* Set local fields.  */
-      ret->written = false;
+      ret->written = FALSE;
       ret->indx = -1;
     }
 
@@ -3029,13 +3046,13 @@ NAME(aout,link_hash_newfunc) (entry, table, string)
 
 /* Initialize an a.out link hash table.  */
 
-boolean
+bfd_boolean
 NAME(aout,link_hash_table_init) (table, abfd, newfunc)
      struct aout_link_hash_table *table;
      bfd *abfd;
-     struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
-                                               struct bfd_hash_table *,
-                                               const char *));
+     struct bfd_hash_entry *(*newfunc)
+       PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
+               const char *));
 {
   return _bfd_link_hash_table_init (&table->root, abfd, newfunc);
 }
@@ -3064,7 +3081,7 @@ NAME(aout,link_hash_table_create) (abfd)
 /* Given an a.out BFD, add symbols to the global hash table as
    appropriate.  */
 
-boolean
+bfd_boolean
 NAME(aout,link_add_symbols) (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3078,27 +3095,27 @@ NAME(aout,link_add_symbols) (abfd, info)
        (abfd, info, aout_link_check_archive_element);
     default:
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 }
 
 /* Add symbols from an a.out object file.  */
 
-static boolean
+static bfd_boolean
 aout_link_add_object_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   if (! aout_get_external_symbols (abfd))
-    return false;
+    return FALSE;
   if (! aout_link_add_symbols (abfd, info))
-    return false;
+    return FALSE;
   if (! info->keep_memory)
     {
       if (! aout_link_free_symbols (abfd))
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Check a single archive element to see if we need to include it in
@@ -3106,36 +3123,36 @@ aout_link_add_object_symbols (abfd, info)
    needed in the link or not.  This is called from
    _bfd_generic_link_add_archive_symbols.  */
 
-static boolean
+static bfd_boolean
 aout_link_check_archive_element (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
   if (! aout_get_external_symbols (abfd))
-    return false;
+    return FALSE;
 
   if (! aout_link_check_ar_symbols (abfd, info, pneeded))
-    return false;
+    return FALSE;
 
   if (*pneeded)
     {
       if (! aout_link_add_symbols (abfd, info))
-       return false;
+       return FALSE;
     }
 
   if (! info->keep_memory || ! *pneeded)
     {
       if (! aout_link_free_symbols (abfd))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Free up the internal symbols read from an a.out file.  */
 
-static boolean
+static bfd_boolean
 aout_link_free_symbols (abfd)
      bfd *abfd;
 {
@@ -3157,7 +3174,7 @@ aout_link_free_symbols (abfd)
 #endif
       obj_aout_external_strings (abfd) = (char *) NULL;
     }
-  return true;
+  return TRUE;
 }
 
 /* Look through the internal symbols to see if this object file should
@@ -3167,17 +3184,17 @@ aout_link_free_symbols (abfd)
    known symbol but we do not include the object file in the link
    (unless there is some other reason to include it).  */
 
-static boolean
+static bfd_boolean
 aout_link_check_ar_symbols (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
   register struct external_nlist *p;
   struct external_nlist *pend;
   char *strings;
 
-  *pneeded = false;
+  *pneeded = FALSE;
 
   /* Look through all the symbols.  */
   p = obj_aout_external_syms (abfd);
@@ -3207,7 +3224,7 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
        }
 
       name = strings + GET_WORD (abfd, p->e_strx);
-      h = bfd_link_hash_lookup (info->hash, name, false, false, true);
+      h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
 
       /* We are only interested in symbols that are currently
         undefined or common.  */
@@ -3266,9 +3283,9 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
            }
 
          if (! (*info->callbacks->add_archive_element) (info, abfd, name))
-           return false;
-         *pneeded = true;
-         return true;
+           return FALSE;
+         *pneeded = TRUE;
+         return TRUE;
        }
 
       if (type == (N_UNDF | N_EXT))
@@ -3295,9 +3312,9 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
                      if (! (*info->callbacks->add_archive_element) (info,
                                                                     abfd,
                                                                     name))
-                       return false;
-                     *pneeded = true;
-                     return true;
+                       return FALSE;
+                     *pneeded = TRUE;
+                     return TRUE;
                    }
                  /* Turn the current link symbol into a common
                     symbol.  It is already on the undefs list.  */
@@ -3306,7 +3323,7 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
                              bfd_hash_allocate (&info->hash->table,
                                  sizeof (struct bfd_link_hash_common_entry)));
                  if (h->u.c.p == NULL)
-                   return false;
+                   return FALSE;
 
                  h->u.c.size = value;
 
@@ -3343,33 +3360,32 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
          if (h->type == bfd_link_hash_undefined)
            {
              if (! (*info->callbacks->add_archive_element) (info, abfd, name))
-               return false;
-             *pneeded = true;
-             return true;
+               return FALSE;
+             *pneeded = TRUE;
+             return TRUE;
            }
        }
     }
 
   /* We do not need this object file.  */
-  return true;
+  return TRUE;
 }
 
 /* Add all symbols from an object file to the hash table.  */
 
-static boolean
+static bfd_boolean
 aout_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
-  boolean (*add_one_symbol) PARAMS ((struct bfd_link_info *, bfd *,
-                                    const char *, flagword, asection *,
-                                    bfd_vma, const char *, boolean,
-                                    boolean,
-                                    struct bfd_link_hash_entry **));
+  bfd_boolean (*add_one_symbol)
+    PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *,
+            bfd_vma, const char *, bfd_boolean, bfd_boolean,
+            struct bfd_link_hash_entry **));
   struct external_nlist *syms;
   bfd_size_type sym_count;
   char *strings;
-  boolean copy;
+  bfd_boolean copy;
   struct aout_link_hash_entry **sym_hash;
   register struct external_nlist *p;
   struct external_nlist *pend;
@@ -3379,15 +3395,15 @@ aout_link_add_symbols (abfd, info)
   sym_count = obj_aout_external_sym_count (abfd);
   strings = obj_aout_external_strings (abfd);
   if (info->keep_memory)
-    copy = false;
+    copy = FALSE;
   else
-    copy = true;
+    copy = TRUE;
 
   if (aout_backend_info (abfd)->add_dynamic_symbols != NULL)
     {
       if (! ((*aout_backend_info (abfd)->add_dynamic_symbols)
             (abfd, info, &syms, &sym_count, &strings)))
-       return false;
+       return FALSE;
     }
 
   /* We keep a list of the linker hash table entries that correspond
@@ -3397,7 +3413,7 @@ aout_link_add_symbols (abfd, info)
   amt = sym_count * sizeof (struct aout_link_hash_entry *);
   sym_hash = (struct aout_link_hash_entry **) bfd_alloc (abfd, amt);
   if (sym_hash == NULL && sym_count != 0)
-    return false;
+    return FALSE;
   obj_aout_sym_hashes (abfd) = sym_hash;
 
   add_one_symbol = aout_backend_info (abfd)->add_one_symbol;
@@ -3543,9 +3559,9 @@ aout_link_add_symbols (abfd, info)
        }
 
       if (! ((*add_one_symbol)
-            (info, abfd, name, flags, section, value, string, copy, false,
+            (info, abfd, name, flags, section, value, string, copy, FALSE,
              (struct bfd_link_hash_entry **) sym_hash)))
-       return false;
+       return FALSE;
 
       /* Restrict the maximum alignment of a common symbol based on
         the architecture, since a.out has no way to represent
@@ -3571,7 +3587,7 @@ aout_link_add_symbols (abfd, info)
        ++sym_hash;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* A hash table used for header files with N_BINCL entries.  */
@@ -3634,27 +3650,27 @@ struct aout_final_link_info
 
 static struct bfd_hash_entry *aout_link_includes_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static boolean aout_link_input_bfd
+static bfd_boolean aout_link_input_bfd
   PARAMS ((struct aout_final_link_info *, bfd *input_bfd));
-static boolean aout_link_write_symbols
+static bfd_boolean aout_link_write_symbols
   PARAMS ((struct aout_final_link_info *, bfd *input_bfd));
-static boolean aout_link_write_other_symbol
+static bfd_boolean aout_link_write_other_symbol
   PARAMS ((struct aout_link_hash_entry *, PTR));
-static boolean aout_link_input_section
+static bfd_boolean aout_link_input_section
   PARAMS ((struct aout_final_link_info *, bfd *input_bfd,
           asection *input_section, file_ptr *reloff_ptr,
           bfd_size_type rel_size));
-static boolean aout_link_input_section_std
+static bfd_boolean aout_link_input_section_std
   PARAMS ((struct aout_final_link_info *, bfd *input_bfd,
           asection *input_section, struct reloc_std_external *,
           bfd_size_type rel_size, bfd_byte *contents));
-static boolean aout_link_input_section_ext
+static bfd_boolean aout_link_input_section_ext
   PARAMS ((struct aout_final_link_info *, bfd *input_bfd,
           asection *input_section, struct reloc_ext_external *,
           bfd_size_type rel_size, bfd_byte *contents));
 static INLINE asection *aout_reloc_index_to_section
   PARAMS ((bfd *, int));
-static boolean aout_link_reloc_link_order
+static bfd_boolean aout_link_reloc_link_order
   PARAMS ((struct aout_final_link_info *, asection *,
           struct bfd_link_order *));
 
@@ -3697,14 +3713,14 @@ aout_link_includes_newfunc (entry, table, string)
    of bfd_link_order structures which list all the input sections for
    the output section.  */
 
-boolean
+bfd_boolean
 NAME(aout,final_link) (abfd, info, callback)
      bfd *abfd;
      struct bfd_link_info *info;
      void (*callback) PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *));
 {
   struct aout_final_link_info aout_info;
-  boolean includes_hash_initialized = false;
+  bfd_boolean includes_hash_initialized = FALSE;
   register bfd *sub;
   bfd_size_type trsize, drsize;
   bfd_size_type max_contents_size;
@@ -3714,7 +3730,7 @@ NAME(aout,final_link) (abfd, info, callback)
   file_ptr text_end;
   register struct bfd_link_order *p;
   asection *o;
-  boolean have_link_order_relocs;
+  bfd_boolean have_link_order_relocs;
 
   if (info->shared)
     abfd->flags |= DYNAMIC;
@@ -3730,7 +3746,7 @@ NAME(aout,final_link) (abfd, info, callback)
                               aout_link_includes_newfunc,
                               251))
     goto error_return;
-  includes_hash_initialized = true;
+  includes_hash_initialized = TRUE;
 
   /* Figure out the largest section size.  Also, if generating
      relocateable output, count the relocs.  */
@@ -3853,7 +3869,7 @@ NAME(aout,final_link) (abfd, info, callback)
     struct aout_link_hash_entry *h;
 
     h = aout_link_hash_lookup (aout_hash_table (info), "__DYNAMIC",
-                              false, false, false);
+                              FALSE, FALSE, FALSE);
     if (h != NULL)
       aout_link_write_other_symbol (h, &aout_info);
   }
@@ -3880,7 +3896,7 @@ NAME(aout,final_link) (abfd, info, callback)
      We use the output_has_begun field of the input BFDs to see
      whether we have already handled it.  */
   for (sub = info->input_bfds; sub != (bfd *) NULL; sub = sub->link_next)
-    sub->output_has_begun = false;
+    sub->output_has_begun = FALSE;
 
   /* Mark all sections which are to be included in the link.  This
      will normally be every section.  We need to do this so that we
@@ -3891,11 +3907,11 @@ NAME(aout,final_link) (abfd, info, callback)
       for (p = o->link_order_head; p != NULL; p = p->next)
        {
          if (p->type == bfd_indirect_link_order)
-           p->u.indirect.section->linker_mark = (unsigned int) true;
+           p->u.indirect.section->linker_mark = TRUE;
        }
     }
 
-  have_link_order_relocs = false;
+  have_link_order_relocs = FALSE;
   for (o = abfd->sections; o != (asection *) NULL; o = o->next)
     {
       for (p = o->link_order_head;
@@ -3913,14 +3929,14 @@ NAME(aout,final_link) (abfd, info, callback)
                {
                  if (! aout_link_input_bfd (&aout_info, input_bfd))
                    goto error_return;
-                 input_bfd->output_has_begun = true;
+                 input_bfd->output_has_begun = TRUE;
                }
            }
          else if (p->type == bfd_section_reloc_link_order
                   || p->type == bfd_symbol_reloc_link_order)
            {
              /* These are handled below.  */
-             have_link_order_relocs = true;
+             have_link_order_relocs = TRUE;
            }
          else
            {
@@ -3980,7 +3996,7 @@ NAME(aout,final_link) (abfd, info, callback)
   if (includes_hash_initialized)
     {
       bfd_hash_table_free (&aout_info.includes.root);
-      includes_hash_initialized = false;
+      includes_hash_initialized = FALSE;
     }
 
   /* Finish up any dynamic linking we may be doing.  */
@@ -4019,7 +4035,7 @@ NAME(aout,final_link) (abfd, info, callback)
        goto error_return;
     }
 
-  return true;
+  return TRUE;
 
  error_return:
   if (aout_info.contents != NULL)
@@ -4032,12 +4048,12 @@ NAME(aout,final_link) (abfd, info, callback)
     free (aout_info.output_syms);
   if (includes_hash_initialized)
     bfd_hash_table_free (&aout_info.includes.root);
-  return false;
+  return FALSE;
 }
 
 /* Link an a.out input BFD into the output file.  */
 
-static boolean
+static bfd_boolean
 aout_link_input_bfd (finfo, input_bfd)
      struct aout_final_link_info *finfo;
      bfd *input_bfd;
@@ -4055,16 +4071,16 @@ aout_link_input_bfd (finfo, input_bfd)
     }
 
   /* Get the symbols.  We probably have them already, unless
-     finfo->info->keep_memory is false.  */
+     finfo->info->keep_memory is FALSE.  */
   if (! aout_get_external_symbols (input_bfd))
-    return false;
+    return FALSE;
 
   sym_count = obj_aout_external_sym_count (input_bfd);
 
   /* Write out the symbols and get a map of the new indices.  The map
      is placed into finfo->symbol_map.  */
   if (! aout_link_write_symbols (finfo, input_bfd))
-    return false;
+    return FALSE;
 
   /* Relocate and write out the sections.  These functions use the
      symbol map created by aout_link_write_symbols.  The linker_mark
@@ -4076,7 +4092,7 @@ aout_link_input_bfd (finfo, input_bfd)
                                     obj_textsec (input_bfd),
                                     &finfo->treloff,
                                     exec_hdr (input_bfd)->a_trsize))
-       return false;
+       return FALSE;
     }
   if (obj_datasec (input_bfd)->linker_mark)
     {
@@ -4084,7 +4100,7 @@ aout_link_input_bfd (finfo, input_bfd)
                                     obj_datasec (input_bfd),
                                     &finfo->dreloff,
                                     exec_hdr (input_bfd)->a_drsize))
-       return false;
+       return FALSE;
     }
 
   /* If we are not keeping memory, we don't need the symbols any
@@ -4093,16 +4109,16 @@ aout_link_input_bfd (finfo, input_bfd)
   if (! finfo->info->keep_memory)
     {
       if (! aout_link_free_symbols (input_bfd))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust and write out the symbols for an a.out file.  Set the new
    symbol indices into a symbol_map.  */
 
-static boolean
+static bfd_boolean
 aout_link_write_symbols (finfo, input_bfd)
      struct aout_final_link_info *finfo;
      bfd *input_bfd;
@@ -4118,8 +4134,8 @@ aout_link_write_symbols (finfo, input_bfd)
   struct external_nlist *sym_end;
   struct aout_link_hash_entry **sym_hash;
   int *symbol_map;
-  boolean pass;
-  boolean skip_next;
+  bfd_boolean pass;
+  bfd_boolean skip_next;
 
   output_bfd = finfo->output_bfd;
   sym_count = obj_aout_external_sym_count (input_bfd);
@@ -4133,16 +4149,16 @@ aout_link_write_symbols (finfo, input_bfd)
   if (strip != strip_all
       && (strip != strip_some
          || bfd_hash_lookup (finfo->info->keep_hash, input_bfd->filename,
-                             false, false) != NULL)
+                             FALSE, FALSE) != NULL)
       && discard != discard_all)
     {
       H_PUT_8 (output_bfd, N_TEXT, outsym->e_type);
       H_PUT_8 (output_bfd, 0, outsym->e_other);
       H_PUT_16 (output_bfd, 0, outsym->e_desc);
       strtab_index = add_to_stringtab (output_bfd, finfo->strtab,
-                                      input_bfd->filename, false);
+                                      input_bfd->filename, FALSE);
       if (strtab_index == (bfd_size_type) -1)
-       return false;
+       return FALSE;
       PUT_WORD (output_bfd, strtab_index, outsym->e_strx);
       PUT_WORD (output_bfd,
                (bfd_get_section_vma (output_bfd,
@@ -4153,8 +4169,8 @@ aout_link_write_symbols (finfo, input_bfd)
       ++outsym;
     }
 
-  pass = false;
-  skip_next = false;
+  pass = FALSE;
+  skip_next = FALSE;
   sym = obj_aout_external_syms (input_bfd);
   sym_end = sym + sym_count;
   sym_hash = obj_aout_sym_hashes (input_bfd);
@@ -4165,10 +4181,10 @@ aout_link_write_symbols (finfo, input_bfd)
       const char *name;
       int type;
       struct aout_link_hash_entry *h;
-      boolean skip;
+      bfd_boolean skip;
       asection *symsec;
       bfd_vma val = 0;
-      boolean copy;
+      bfd_boolean copy;
 
       /* We set *symbol_map to 0 above for all symbols.  If it has
          already been set to -1 for this symbol, it means that we are
@@ -4192,14 +4208,14 @@ aout_link_write_symbols (finfo, input_bfd)
          /* Pass this symbol through.  It is the target of an
             indirect or warning symbol.  */
          val = GET_WORD (input_bfd, sym->e_value);
-         pass = false;
+         pass = FALSE;
        }
       else if (skip_next)
        {
          /* Skip this symbol, which is the target of an indirect
             symbol that we have changed to no longer be an indirect
             symbol.  */
-         skip_next = false;
+         skip_next = FALSE;
          continue;
        }
       else
@@ -4241,34 +4257,34 @@ aout_link_write_symbols (finfo, input_bfd)
            {
              if ((type & N_TYPE) == N_INDR
                  || type == N_WARNING)
-               skip_next = true;
+               skip_next = TRUE;
              *symbol_map = h->indx;
              continue;
            }
 
          /* See if we are stripping this symbol.  */
-         skip = false;
+         skip = FALSE;
          switch (strip)
            {
            case strip_none:
              break;
            case strip_debugger:
              if ((type & N_STAB) != 0)
-               skip = true;
+               skip = TRUE;
              break;
            case strip_some:
-             if (bfd_hash_lookup (finfo->info->keep_hash, name, false, false)
+             if (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, FALSE)
                  == NULL)
-               skip = true;
+               skip = TRUE;
              break;
            case strip_all:
-             skip = true;
+             skip = TRUE;
              break;
            }
          if (skip)
            {
              if (h != (struct aout_link_hash_entry *) NULL)
-               h->written = true;
+               h->written = TRUE;
              continue;
            }
 
@@ -4297,7 +4313,7 @@ aout_link_write_symbols (finfo, input_bfd)
                 the indirect symbol was defined, we output it with
                 the correct definition so the debugger will
                 understand it.  */
-             pass = true;
+             pass = TRUE;
              val = GET_WORD (input_bfd, sym->e_value);
              symsec = NULL;
            }
@@ -4313,7 +4329,7 @@ aout_link_write_symbols (finfo, input_bfd)
                 a case we do not want to output the next symbol,
                 which is the target of the indirection.  */
              if ((type & N_TYPE) == N_INDR)
-               skip_next = true;
+               skip_next = TRUE;
 
              symsec = NULL;
 
@@ -4405,7 +4421,7 @@ aout_link_write_symbols (finfo, input_bfd)
             it is a local symbol see if we should discard it.  */
          if (h != (struct aout_link_hash_entry *) NULL)
            {
-             h->written = true;
+             h->written = TRUE;
              h->indx = obj_aout_external_sym_count (output_bfd);
            }
          else if ((type & N_TYPE) != N_SETT
@@ -4421,15 +4437,15 @@ aout_link_write_symbols (finfo, input_bfd)
                case discard_l:
                  if ((type & N_STAB) == 0
                      && bfd_is_local_label_name (input_bfd, name))
-                   skip = true;
+                   skip = TRUE;
                  break;
                case discard_all:
-                 skip = true;
+                 skip = TRUE;
                  break;
                }
              if (skip)
                {
-                 pass = false;
+                 pass = FALSE;
                  continue;
                }
            }
@@ -4485,11 +4501,11 @@ aout_link_write_symbols (finfo, input_bfd)
              /* If we have already included a header file with the
                  same value, then replace this one with an N_EXCL
                  symbol.  */
-             copy = (boolean) (! finfo->info->keep_memory);
+             copy = (bfd_boolean) (! finfo->info->keep_memory);
              incl_entry = aout_link_includes_lookup (&finfo->includes,
-                                                     name, true, copy);
+                                                     name, TRUE, copy);
              if (incl_entry == NULL)
-               return false;
+               return FALSE;
              for (t = incl_entry->totals; t != NULL; t = t->next)
                if (t->total == val)
                  break;
@@ -4501,7 +4517,7 @@ aout_link_write_symbols (finfo, input_bfd)
                       bfd_hash_allocate (&finfo->includes.root,
                                          sizeof *t));
                  if (t == NULL)
-                   return false;
+                   return FALSE;
                  t->total = val;
                  t->next = incl_entry->totals;
                  incl_entry->totals = t;
@@ -4546,7 +4562,7 @@ aout_link_write_symbols (finfo, input_bfd)
       H_PUT_8 (output_bfd, type, outsym->e_type);
       H_PUT_8 (output_bfd, H_GET_8 (input_bfd, sym->e_other), outsym->e_other);
       H_PUT_16 (output_bfd, H_GET_16 (input_bfd, sym->e_desc), outsym->e_desc);
-      copy = false;
+      copy = FALSE;
       if (! finfo->info->keep_memory)
        {
          /* name points into a string table which we are going to
@@ -4555,12 +4571,12 @@ aout_link_write_symbols (finfo, input_bfd)
          if (h != (struct aout_link_hash_entry *) NULL)
            name = h->root.root.string;
          else
-           copy = true;
+           copy = TRUE;
        }
       strtab_index = add_to_stringtab (output_bfd, finfo->strtab,
                                       name, copy);
       if (strtab_index == (bfd_size_type) -1)
-       return false;
+       return FALSE;
       PUT_WORD (output_bfd, strtab_index, outsym->e_strx);
       PUT_WORD (output_bfd, val, outsym->e_value);
       *symbol_map = obj_aout_external_sym_count (output_bfd);
@@ -4574,22 +4590,22 @@ aout_link_write_symbols (finfo, input_bfd)
       bfd_size_type outsym_size;
 
       if (bfd_seek (output_bfd, finfo->symoff, SEEK_SET) != 0)
-       return false;
+       return FALSE;
       outsym_size = outsym - finfo->output_syms;
       outsym_size *= EXTERNAL_NLIST_SIZE;
       if (bfd_bwrite ((PTR) finfo->output_syms, outsym_size, output_bfd)
          != outsym_size)
-       return false;
+       return FALSE;
       finfo->symoff += outsym_size;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write out a symbol that was not associated with an a.out input
    object.  */
 
-static boolean
+static bfd_boolean
 aout_link_write_other_symbol (h, data)
      struct aout_link_hash_entry *h;
      PTR data;
@@ -4606,7 +4622,7 @@ aout_link_write_other_symbol (h, data)
     {
       h = (struct aout_link_hash_entry *) h->root.u.i.link;
       if (h->root.type == bfd_link_hash_new)
-       return true;
+       return TRUE;
     }
 
   output_bfd = finfo->output_bfd;
@@ -4622,17 +4638,17 @@ aout_link_write_other_symbol (h, data)
     }
 
   if (h->written)
-    return true;
+    return TRUE;
 
-  h->written = true;
+  h->written = TRUE;
 
   /* An indx of -2 means the symbol must be written.  */
   if (h->indx != -2
       && (finfo->info->strip == strip_all
          || (finfo->info->strip == strip_some
              && bfd_hash_lookup (finfo->info->keep_hash, h->root.root.string,
-                                 false, false) == NULL)))
-    return true;
+                                 FALSE, FALSE) == NULL)))
+    return TRUE;
 
   switch (h->root.type)
     {
@@ -4640,11 +4656,11 @@ aout_link_write_other_symbol (h, data)
     case bfd_link_hash_warning:
       abort ();
       /* Avoid variable not initialized warnings.  */
-      return true;
+      return TRUE;
     case bfd_link_hash_new:
       /* This can happen for set symbols when sets are not being
          built.  */
-      return true;
+      return TRUE;
     case bfd_link_hash_undefined:
       type = N_UNDF | N_EXT;
       val = 0;
@@ -4681,14 +4697,14 @@ aout_link_write_other_symbol (h, data)
     case bfd_link_hash_indirect:
       /* We ignore these symbols, since the indirected symbol is
         already in the hash table.  */
-      return true;
+      return TRUE;
     }
 
   H_PUT_8 (output_bfd, type, outsym.e_type);
   H_PUT_8 (output_bfd, 0, outsym.e_other);
   H_PUT_16 (output_bfd, 0, outsym.e_desc);
   indx = add_to_stringtab (output_bfd, finfo->strtab, h->root.root.string,
-                          false);
+                          FALSE);
   if (indx == - (bfd_size_type) 1)
     {
       /* FIXME: No way to handle errors.  */
@@ -4709,12 +4725,12 @@ aout_link_write_other_symbol (h, data)
   h->indx = obj_aout_external_sym_count (output_bfd);
   ++obj_aout_external_sym_count (output_bfd);
 
-  return true;
+  return TRUE;
 }
 
 /* Link an a.out section into the output file.  */
 
-static boolean
+static bfd_boolean
 aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
                         rel_size)
      struct aout_final_link_info *finfo;
@@ -4731,7 +4747,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
   if (! bfd_get_section_contents (input_bfd, input_section,
                                  (PTR) finfo->contents,
                                  (file_ptr) 0, input_size))
-    return false;
+    return FALSE;
 
   /* Read in the relocs if we haven't already done it.  */
   if (aout_section_data (input_section) != NULL
@@ -4744,7 +4760,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
        {
          if (bfd_seek (input_bfd, input_section->rel_filepos, SEEK_SET) != 0
              || bfd_bread (relocs, rel_size, input_bfd) != rel_size)
-           return false;
+           return FALSE;
        }
     }
 
@@ -4754,14 +4770,14 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
       if (! aout_link_input_section_std (finfo, input_bfd, input_section,
                                         (struct reloc_std_external *) relocs,
                                         rel_size, finfo->contents))
-       return false;
+       return FALSE;
     }
   else
     {
       if (! aout_link_input_section_ext (finfo, input_bfd, input_section,
                                         (struct reloc_ext_external *) relocs,
                                         rel_size, finfo->contents))
-       return false;
+       return FALSE;
     }
 
   /* Write out the section contents.  */
@@ -4770,16 +4786,16 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
                                  (PTR) finfo->contents,
                                  (file_ptr) input_section->output_offset,
                                  input_size))
-    return false;
+    return FALSE;
 
   /* If we are producing relocateable output, the relocs were
      modified, and we now write them out.  */
   if (finfo->info->relocateable && rel_size > 0)
     {
       if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0)
-       return false;
+       return FALSE;
       if (bfd_bwrite (relocs, rel_size, finfo->output_bfd) != rel_size)
-       return false;
+       return FALSE;
       *reloff_ptr += rel_size;
 
       /* Assert that the relocs have not run into the symbols, and
@@ -4791,7 +4807,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
                          <= obj_datasec (finfo->output_bfd)->rel_filepos)));
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Get the section corresponding to a reloc index.  */
@@ -4821,7 +4837,7 @@ aout_reloc_index_to_section (abfd, indx)
 
 /* Relocate an a.out section using standard a.out relocs.  */
 
-static boolean
+static bfd_boolean
 aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
                             rel_size, contents)
      struct aout_final_link_info *finfo;
@@ -4831,13 +4847,12 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
      bfd_size_type rel_size;
      bfd_byte *contents;
 {
-  boolean (*check_dynamic_reloc) PARAMS ((struct bfd_link_info *,
-                                         bfd *, asection *,
-                                         struct aout_link_hash_entry *,
-                                         PTR, bfd_byte *, boolean *,
-                                         bfd_vma *));
+  bfd_boolean (*check_dynamic_reloc)
+    PARAMS ((struct bfd_link_info *, bfd *, asection *,
+            struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
+            bfd_vma *));
   bfd *output_bfd;
-  boolean relocateable;
+  bfd_boolean relocateable;
   struct external_nlist *syms;
   char *strings;
   struct aout_link_hash_entry **sym_hashes;
@@ -4979,10 +4994,10 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
                          if (h->indx < 0)
                            {
                              h->indx = -2;
-                             h->written = false;
+                             h->written = FALSE;
                              if (! aout_link_write_other_symbol (h,
                                                                  (PTR) finfo))
-                               return false;
+                               return FALSE;
                            }
                          r_index = h->indx;
                        }
@@ -4995,7 +5010,7 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
                          if (! ((*finfo->info->callbacks->unattached_reloc)
                                 (finfo->info, name, input_bfd, input_section,
                                  r_addr)))
-                           return false;
+                           return FALSE;
                          r_index = 0;
                        }
                    }
@@ -5055,11 +5070,11 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
        }
       else
        {
-         boolean hundef;
+         bfd_boolean hundef;
 
          /* We are generating an executable, and must do a full
             relocation.  */
-         hundef = false;
+         hundef = FALSE;
 
          if (r_extern)
            {
@@ -5078,7 +5093,7 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
                relocation = 0;
              else
                {
-                 hundef = true;
+                 hundef = TRUE;
                  relocation = 0;
                }
            }
@@ -5096,12 +5111,12 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
 
          if (check_dynamic_reloc != NULL)
            {
-             boolean skip;
+             bfd_boolean skip;
 
              if (! ((*check_dynamic_reloc)
                     (finfo->info, input_bfd, input_section, h,
                      (PTR) rel, contents, &skip, &relocation)))
-               return false;
+               return FALSE;
              if (skip)
                continue;
            }
@@ -5119,8 +5134,8 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
                name = strings + GET_WORD (input_bfd, syms[r_index].e_strx);
              if (! ((*finfo->info->callbacks->undefined_symbol)
                     (finfo->info, name, input_bfd, input_section,
-                    r_addr, true)))
-               return false;
+                    r_addr, TRUE)))
+               return FALSE;
            }
 
          r = MY_final_link_relocate (howto,
@@ -5155,19 +5170,19 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
                if (! ((*finfo->info->callbacks->reloc_overflow)
                       (finfo->info, name, howto->name,
                        (bfd_vma) 0, input_bfd, input_section, r_addr)))
-                 return false;
+                 return FALSE;
              }
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Relocate an a.out section using extended a.out relocs.  */
 
-static boolean
+static bfd_boolean
 aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
                             rel_size, contents)
      struct aout_final_link_info *finfo;
@@ -5177,13 +5192,12 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
      bfd_size_type rel_size;
      bfd_byte *contents;
 {
-  boolean (*check_dynamic_reloc) PARAMS ((struct bfd_link_info *,
-                                         bfd *, asection *,
-                                         struct aout_link_hash_entry *,
-                                         PTR, bfd_byte *, boolean *,
-                                         bfd_vma *));
+  bfd_boolean (*check_dynamic_reloc)
+    PARAMS ((struct bfd_link_info *, bfd *, asection *,
+            struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
+            bfd_vma *));
   bfd *output_bfd;
-  boolean relocateable;
+  bfd_boolean relocateable;
   struct external_nlist *syms;
   char *strings;
   struct aout_link_hash_entry **sym_hashes;
@@ -5317,10 +5331,10 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
                          if (h->indx < 0)
                            {
                              h->indx = -2;
-                             h->written = false;
+                             h->written = FALSE;
                              if (! aout_link_write_other_symbol (h,
                                                                  (PTR) finfo))
-                               return false;
+                               return FALSE;
                            }
                          r_index = h->indx;
                        }
@@ -5333,7 +5347,7 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
                          if (! ((*finfo->info->callbacks->unattached_reloc)
                                 (finfo->info, name, input_bfd, input_section,
                                  r_addr)))
-                           return false;
+                           return FALSE;
                          r_index = 0;
                        }
                    }
@@ -5398,12 +5412,12 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
        }
       else
        {
-         boolean hundef;
+         bfd_boolean hundef;
          bfd_reloc_status_type r;
 
          /* We are generating an executable, and must do a full
             relocation.  */
-         hundef = false;
+         hundef = FALSE;
 
          if (r_extern)
            {
@@ -5422,7 +5436,7 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
                relocation = 0;
              else
                {
-                 hundef = true;
+                 hundef = TRUE;
                  relocation = 0;
                }
            }
@@ -5495,12 +5509,12 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
 
          if (check_dynamic_reloc != NULL)
            {
-             boolean skip;
+             bfd_boolean skip;
 
              if (! ((*check_dynamic_reloc)
                     (finfo->info, input_bfd, input_section, h,
                      (PTR) rel, contents, &skip, &relocation)))
-               return false;
+               return FALSE;
              if (skip)
                continue;
            }
@@ -5522,8 +5536,8 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
                name = strings + GET_WORD (input_bfd, syms[r_index].e_strx);
              if (! ((*finfo->info->callbacks->undefined_symbol)
                     (finfo->info, name, input_bfd, input_section,
-                    r_addr, true)))
-               return false;
+                    r_addr, TRUE)))
+               return FALSE;
            }
 
          if (r_type != (unsigned int) RELOC_SPARC_REV32)
@@ -5570,7 +5584,7 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
                    if (! ((*finfo->info->callbacks->reloc_overflow)
                           (finfo->info, name, howto_table_ext[r_type].name,
                            r_addend, input_bfd, input_section, r_addr)))
-                     return false;
+                     return FALSE;
                  }
                  break;
                }
@@ -5578,12 +5592,12 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Handle a link order which is supposed to generate a reloc.  */
 
-static boolean
+static bfd_boolean
 aout_link_reloc_link_order (finfo, o, p)
      struct aout_final_link_info *finfo;
      asection *o;
@@ -5620,7 +5634,7 @@ aout_link_reloc_link_order (finfo, o, p)
       r_extern = 1;
       h = ((struct aout_link_hash_entry *)
           bfd_wrapped_link_hash_lookup (finfo->output_bfd, finfo->info,
-                                        pr->u.name, false, false, true));
+                                        pr->u.name, FALSE, FALSE, TRUE));
       if (h != (struct aout_link_hash_entry *) NULL
          && h->indx >= 0)
        r_index = h->indx;
@@ -5631,9 +5645,9 @@ aout_link_reloc_link_order (finfo, o, p)
             here.  I don't think that will ever matter for a global
             symbol.  */
          h->indx = -2;
-         h->written = false;
+         h->written = FALSE;
          if (! aout_link_write_other_symbol (h, (PTR) finfo))
-           return false;
+           return FALSE;
          r_index = h->indx;
        }
       else
@@ -5641,7 +5655,7 @@ aout_link_reloc_link_order (finfo, o, p)
          if (! ((*finfo->info->callbacks->unattached_reloc)
                 (finfo->info, pr->u.name, (bfd *) NULL,
                  (asection *) NULL, (bfd_vma) 0)))
-           return false;
+           return FALSE;
          r_index = 0;
        }
     }
@@ -5650,7 +5664,7 @@ aout_link_reloc_link_order (finfo, o, p)
   if (howto == 0)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   if (o == obj_textsec (finfo->output_bfd))
@@ -5720,12 +5734,12 @@ aout_link_reloc_link_order (finfo, o, p)
          bfd_size_type size;
          bfd_reloc_status_type r;
          bfd_byte *buf;
-         boolean ok;
+         bfd_boolean ok;
 
          size = bfd_get_reloc_size (howto);
          buf = (bfd_byte *) bfd_zmalloc (size);
          if (buf == (bfd_byte *) NULL)
-           return false;
+           return FALSE;
          r = MY_relocate_contents (howto, finfo->output_bfd,
                                    (bfd_vma) pr->addend, buf);
          switch (r)
@@ -5746,7 +5760,7 @@ aout_link_reloc_link_order (finfo, o, p)
                      (asection *) NULL, (bfd_vma) 0)))
                {
                  free (buf);
-                 return false;
+                 return FALSE;
                }
              break;
            }
@@ -5754,7 +5768,7 @@ aout_link_reloc_link_order (finfo, o, p)
                                         (file_ptr) p->offset, size);
          free (buf);
          if (! ok)
-           return false;
+           return FALSE;
        }
     }
   else
@@ -5793,7 +5807,7 @@ aout_link_reloc_link_order (finfo, o, p)
   amt = obj_reloc_entry_size (finfo->output_bfd);
   if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0
       || bfd_bwrite (rel_ptr, amt, finfo->output_bfd) != amt)
-    return false;
+    return FALSE;
 
   *reloff_ptr += obj_reloc_entry_size (finfo->output_bfd);
 
@@ -5804,5 +5818,5 @@ aout_link_reloc_link_order (finfo, o, p)
                  || (*reloff_ptr
                      <= obj_datasec (finfo->output_bfd)->rel_filepos)));
 
-  return true;
+  return TRUE;
 }
index bfbd6de116ca5b9201cbf915799657ed1925aa5c..ffb0bd4c8756afc7e67c353007a2bd2fc4b73b8b 100644 (file)
@@ -160,17 +160,20 @@ struct ar_cache {
 #define arch_eltdata(bfd) ((struct areltdata *) ((bfd)->arelt_data))
 #define arch_hdr(bfd) ((struct ar_hdr *)arch_eltdata(bfd)->arch_header)
 
-static char *get_extended_arelt_filename PARAMS ((bfd *arch,
-                                                 const char *name));
-static boolean do_slurp_bsd_armap PARAMS ((bfd *abfd));
-static boolean do_slurp_coff_armap PARAMS ((bfd *abfd));
-boolean bfd_elf64_archive_slurp_armap PARAMS ((bfd *abfd));
-static const char *normalize PARAMS ((bfd *, const char *file));
-static struct areltdata *bfd_ar_hdr_from_filesystem PARAMS ((bfd *abfd,
-                                                            const char *,
-                                                            bfd *member));
+static char *get_extended_arelt_filename
+  PARAMS ((bfd *arch, const char *name));
+static bfd_boolean do_slurp_bsd_armap
+  PARAMS ((bfd *abfd));
+static bfd_boolean do_slurp_coff_armap
+  PARAMS ((bfd *abfd));
+bfd_boolean bfd_elf64_archive_slurp_armap
+  PARAMS ((bfd *abfd));
+static const char *normalize
+  PARAMS ((bfd *, const char *file));
+static struct areltdata *bfd_ar_hdr_from_filesystem
+  PARAMS ((bfd *abfd, const char *, bfd *member));
 \f
-boolean
+bfd_boolean
 _bfd_generic_mkarchive (abfd)
      bfd *abfd;
 {
@@ -178,7 +181,7 @@ _bfd_generic_mkarchive (abfd)
 
   abfd->tdata.aout_ar_data = (struct artdata *) bfd_zalloc (abfd, amt);
   if (bfd_ardata (abfd) == NULL)
-    return false;
+    return FALSE;
 
   bfd_ardata (abfd)->cache = NULL;
   bfd_ardata (abfd)->archive_head = NULL;
@@ -186,7 +189,7 @@ _bfd_generic_mkarchive (abfd)
   bfd_ardata (abfd)->extended_names = NULL;
   bfd_ardata (abfd)->tdata = NULL;
 
-  return true;
+  return TRUE;
 }
 
 /*
@@ -247,21 +250,21 @@ FUNCTION
        bfd_set_archive_head
 
 SYNOPSIS
-       boolean bfd_set_archive_head(bfd *output, bfd *new_head);
+       bfd_boolean bfd_set_archive_head(bfd *output, bfd *new_head);
 
 DESCRIPTION
        Set the head of the chain of
        BFDs contained in the archive @var{output} to @var{new_head}.
 */
 
-boolean
+bfd_boolean
 bfd_set_archive_head (output_archive, new_head)
      bfd *output_archive;
      bfd *new_head;
 {
 
   output_archive->archive_head = new_head;
-  return true;
+  return TRUE;
 }
 
 bfd *
@@ -280,7 +283,7 @@ _bfd_look_for_bfd_in_cache (arch_bfd, filepos)
 }
 
 /* Kind of stupid to call cons for each one, but we don't do too many */
-boolean
+bfd_boolean
 _bfd_add_bfd_to_archive_cache (arch_bfd, filepos, new_elt)
      bfd *arch_bfd, *new_elt;
      file_ptr filepos;
@@ -289,7 +292,7 @@ _bfd_add_bfd_to_archive_cache (arch_bfd, filepos, new_elt)
 
   struct ar_cache *new_cache = (struct ar_cache *) bfd_zalloc (arch_bfd, amt);
   if (new_cache == NULL)
-    return false;
+    return FALSE;
 
   new_cache->ptr = filepos;
   new_cache->arelt = new_elt;
@@ -305,7 +308,7 @@ _bfd_add_bfd_to_archive_cache (arch_bfd, filepos, new_elt)
       current->next = new_cache;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* The name begins with space.  Hence the rest of the name is an index into
@@ -664,10 +667,10 @@ bfd_generic_archive_p (abfd)
       first = bfd_openr_next_archived_file (abfd, (bfd *) NULL);
       if (first != NULL)
        {
-         boolean fail;
+         bfd_boolean fail;
 
-         first->target_defaulted = false;
-         fail = false;
+         first->target_defaulted = FALSE;
+         fail = FALSE;
          if (bfd_check_format (first, bfd_object)
              && first->xvec != abfd->xvec)
            {
@@ -707,9 +710,9 @@ bfd_generic_archive_p (abfd)
 /* The size of the string count.  */
 #define BSD_STRING_COUNT_SIZE 4
 
-/* Returns false on error, true otherwise */
+/* Returns FALSE on error, TRUE otherwise */
 
-static boolean
+static bfd_boolean
 do_slurp_bsd_armap (abfd)
      bfd *abfd;
 {
@@ -723,13 +726,13 @@ do_slurp_bsd_armap (abfd)
 
   mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
   if (mapdata == NULL)
-    return false;
+    return FALSE;
   parsed_size = mapdata->parsed_size;
   bfd_release (abfd, (PTR) mapdata);   /* Don't need it any more.  */
 
   raw_armap = (bfd_byte *) bfd_zalloc (abfd, parsed_size);
   if (raw_armap == (bfd_byte *) NULL)
-    return false;
+    return FALSE;
 
   if (bfd_bread ((PTR) raw_armap, parsed_size, abfd) != parsed_size)
     {
@@ -737,7 +740,7 @@ do_slurp_bsd_armap (abfd)
        bfd_set_error (bfd_error_malformed_archive);
     byebye:
       bfd_release (abfd, (PTR) raw_armap);
-      return false;
+      return FALSE;
     }
 
   ardata->symdef_count = H_GET_32 (abfd, raw_armap) / BSD_SYMDEF_SIZE;
@@ -758,7 +761,7 @@ do_slurp_bsd_armap (abfd)
   amt = (bfd_size_type) ardata->symdef_count * sizeof (carsym);
   ardata->symdefs = (carsym *) bfd_alloc (abfd, amt);
   if (!ardata->symdefs)
-    return false;
+    return FALSE;
 
   for (counter = 0, set = ardata->symdefs;
        counter < ardata->symdef_count;
@@ -774,13 +777,13 @@ do_slurp_bsd_armap (abfd)
   /* FIXME, we should provide some way to free raw_ardata when
      we are done using the strings from it.  For now, it seems
      to be allocated on an objalloc anyway...  */
-  bfd_has_map (abfd) = true;
-  return true;
+  bfd_has_map (abfd) = TRUE;
+  return TRUE;
 }
 
-/* Returns false on error, true otherwise.  */
+/* Returns FALSE on error, TRUE otherwise.  */
 
-static boolean
+static bfd_boolean
 do_slurp_coff_armap (abfd)
      bfd *abfd;
 {
@@ -799,7 +802,7 @@ do_slurp_coff_armap (abfd)
 
   mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
   if (mapdata == NULL)
-    return false;
+    return FALSE;
   parsed_size = mapdata->parsed_size;
   bfd_release (abfd, (PTR) mapdata);   /* Don't need it any more.  */
 
@@ -807,7 +810,7 @@ do_slurp_coff_armap (abfd)
     {
       if (bfd_get_error () != bfd_error_system_call)
        bfd_set_error (bfd_error_malformed_archive);
-      return false;
+      return FALSE;
     }
   /* It seems that all numeric information in a coff archive is always
      in big endian format, nomatter the host or target.  */
@@ -840,7 +843,7 @@ do_slurp_coff_armap (abfd)
 
   ardata->symdefs = (carsym *) bfd_zalloc (abfd, carsym_size + stringsize + 1);
   if (ardata->symdefs == NULL)
-    return false;
+    return FALSE;
   carsyms = ardata->symdefs;
   stringbase = ((char *) ardata->symdefs) + carsym_size;
 
@@ -872,7 +875,7 @@ do_slurp_coff_armap (abfd)
   /* Pad to an even boundary if you have to.  */
   ardata->first_file_filepos += (ardata->first_file_filepos) % 2;
 
-  bfd_has_map (abfd) = true;
+  bfd_has_map (abfd) = TRUE;
   bfd_release (abfd, (PTR) raw_armap);
 
   /* Check for a second archive header (as used by PE).  */
@@ -893,19 +896,19 @@ do_slurp_coff_armap (abfd)
       }
   }
 
-  return true;
+  return TRUE;
 
 release_raw_armap:
   bfd_release (abfd, (PTR) raw_armap);
 release_symdefs:
   bfd_release (abfd, (PTR) (ardata)->symdefs);
-  return false;
+  return FALSE;
 }
 
 /* This routine can handle either coff-style or bsd-style armaps.
-   Returns false on error, true otherwise */
+   Returns FALSE on error, TRUE otherwise */
 
-boolean
+bfd_boolean
 bfd_slurp_armap (abfd)
      bfd *abfd;
 {
@@ -913,12 +916,12 @@ bfd_slurp_armap (abfd)
   int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd);
 
   if (i == 0)
-    return true;
+    return TRUE;
   if (i != 16)
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
-    return false;
+    return FALSE;
 
   if (!strncmp (nextname, "__.SYMDEF       ", 16)
       || !strncmp (nextname, "__.SYMDEF/      ", 16)) /* old Linux archives */
@@ -932,22 +935,22 @@ bfd_slurp_armap (abfd)
       return bfd_elf64_archive_slurp_armap (abfd);
 #else
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
 #endif
     }
 
-  bfd_has_map (abfd) = false;
-  return true;
+  bfd_has_map (abfd) = FALSE;
+  return TRUE;
 }
 \f
-/* Returns false on error, true otherwise */
+/* Returns FALSE on error, TRUE otherwise */
 /* flavor 2 of a bsd armap, similar to bfd_slurp_bsd_armap except the
    header is in a slightly different order and the map name is '/'.
    This flavour is used by hp300hpux.  */
 
 #define HPUX_SYMDEF_COUNT_SIZE 2
 
-boolean
+bfd_boolean
 bfd_slurp_bsd_armap_f2 (abfd)
      bfd *abfd;
 {
@@ -963,13 +966,13 @@ bfd_slurp_bsd_armap_f2 (abfd)
   int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd);
 
   if (i == 0)
-    return true;
+    return TRUE;
   if (i != 16)
-    return false;
+    return FALSE;
 
   /* The archive has at least 16 bytes in it.  */
   if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
-    return false;
+    return FALSE;
 
   if (!strncmp (nextname, "__.SYMDEF       ", 16)
       || !strncmp (nextname, "__.SYMDEF/      ", 16)) /* old Linux archives */
@@ -977,13 +980,13 @@ bfd_slurp_bsd_armap_f2 (abfd)
 
   if (strncmp (nextname, "/               ", 16))
     {
-      bfd_has_map (abfd) = false;
-      return true;
+      bfd_has_map (abfd) = FALSE;
+      return TRUE;
     }
 
   mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
   if (mapdata == NULL)
-    return false;
+    return FALSE;
 
   amt = mapdata->parsed_size;
   raw_armap = (bfd_byte *) bfd_zalloc (abfd, amt);
@@ -991,7 +994,7 @@ bfd_slurp_bsd_armap_f2 (abfd)
     {
     byebye:
       bfd_release (abfd, (PTR) mapdata);
-      return false;
+      return FALSE;
     }
 
   if (bfd_bread ((PTR) raw_armap, amt, abfd) != amt)
@@ -1024,7 +1027,7 @@ bfd_slurp_bsd_armap_f2 (abfd)
   amt = (bfd_size_type) ardata->symdef_count * BSD_SYMDEF_SIZE;
   ardata->symdefs = (carsym *) bfd_alloc (abfd, amt);
   if (!ardata->symdefs)
-    return false;
+    return FALSE;
 
   for (counter = 0, set = ardata->symdefs;
        counter < ardata->symdef_count;
@@ -1040,8 +1043,8 @@ bfd_slurp_bsd_armap_f2 (abfd)
   /* FIXME, we should provide some way to free raw_ardata when
      we are done using the strings from it.  For now, it seems
      to be allocated on an objalloc anyway...  */
-  bfd_has_map (abfd) = true;
-  return true;
+  bfd_has_map (abfd) = TRUE;
+  return TRUE;
 }
 \f
 /** Extended name table.
@@ -1054,9 +1057,9 @@ bfd_slurp_bsd_armap_f2 (abfd)
   element>.  Index is the P.R. of an int (decimal).  Data General have
   extended the format by using the prefix // for the special element.  */
 
-/* Returns false on error, true otherwise.  */
+/* Returns FALSE on error, TRUE otherwise.  */
 
-boolean
+bfd_boolean
 _bfd_slurp_extended_name_table (abfd)
      bfd *abfd;
 {
@@ -1065,23 +1068,23 @@ _bfd_slurp_extended_name_table (abfd)
   bfd_size_type amt;
 
   /* FIXME:  Formatting sucks here, and in case of failure of BFD_READ,
-     we probably don't want to return true.  */
+     we probably don't want to return TRUE.  */
   bfd_seek (abfd, bfd_ardata (abfd)->first_file_filepos, SEEK_SET);
   if (bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd) == 16)
     {
       if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
-       return false;
+       return FALSE;
 
       if (strncmp (nextname, "ARFILENAMES/    ", 16) != 0 &&
          strncmp (nextname, "//              ", 16) != 0)
        {
          bfd_ardata (abfd)->extended_names = NULL;
-         return true;
+         return TRUE;
        }
 
       namedata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
       if (namedata == NULL)
-       return false;
+       return FALSE;
 
       amt = namedata->parsed_size;
       bfd_ardata (abfd)->extended_names = bfd_zalloc (abfd, amt);
@@ -1089,7 +1092,7 @@ _bfd_slurp_extended_name_table (abfd)
        {
        byebye:
          bfd_release (abfd, (PTR) namedata);
-         return false;
+         return FALSE;
        }
 
       if (bfd_bread ((PTR) bfd_ardata (abfd)->extended_names, amt, abfd) != amt)
@@ -1129,7 +1132,7 @@ _bfd_slurp_extended_name_table (abfd)
       bfd_release (abfd, namedata);
 #endif
     }
-  return true;
+  return TRUE;
 }
 
 #ifdef VMS
@@ -1199,7 +1202,7 @@ normalize (abfd, file)
 
 /* Build a BFD style extended name table.  */
 
-boolean
+bfd_boolean
 _bfd_archive_bsd_construct_extended_name_table (abfd, tabloc, tablen, name)
      bfd *abfd;
      char **tabloc;
@@ -1207,12 +1210,12 @@ _bfd_archive_bsd_construct_extended_name_table (abfd, tabloc, tablen, name)
      const char **name;
 {
   *name = "ARFILENAMES/";
-  return _bfd_construct_extended_name_table (abfd, false, tabloc, tablen);
+  return _bfd_construct_extended_name_table (abfd, FALSE, tabloc, tablen);
 }
 
 /* Build an SVR4 style extended name table.  */
 
-boolean
+bfd_boolean
 _bfd_archive_coff_construct_extended_name_table (abfd, tabloc, tablen, name)
      bfd *abfd;
      char **tabloc;
@@ -1220,21 +1223,21 @@ _bfd_archive_coff_construct_extended_name_table (abfd, tabloc, tablen, name)
      const char **name;
 {
   *name = "//";
-  return _bfd_construct_extended_name_table (abfd, true, tabloc, tablen);
+  return _bfd_construct_extended_name_table (abfd, TRUE, tabloc, tablen);
 }
 
 /* Follows archive_head and produces an extended name table if
    necessary.  Returns (in tabloc) a pointer to an extended name
    table, and in tablen the length of the table.  If it makes an entry
    it clobbers the filename so that the element may be written without
-   further massage.  Returns true if it ran successfully, false if
+   further massage.  Returns TRUE if it ran successfully, FALSE if
    something went wrong.  A successful return may still involve a
    zero-length tablen!  */
 
-boolean
+bfd_boolean
 _bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen)
      bfd *abfd;
-     boolean trailing_slash;
+     bfd_boolean trailing_slash;
      char **tabloc;
      bfd_size_type *tablen;
 {
@@ -1253,7 +1256,7 @@ _bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen)
 
       normal = normalize (current, current->filename);
       if (normal == NULL)
-       return false;
+       return FALSE;
 
       thislen = strlen (normal);
 
@@ -1289,11 +1292,11 @@ _bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen)
     }
 
   if (total_namelen == 0)
-    return true;
+    return TRUE;
 
   *tabloc = bfd_zalloc (abfd, total_namelen);
   if (*tabloc == NULL)
-    return false;
+    return FALSE;
 
   *tablen = total_namelen;
   strptr = *tabloc;
@@ -1306,7 +1309,7 @@ _bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen)
 
       normal = normalize (current, current->filename);
       if (normal == NULL)
-       return false;
+       return FALSE;
 
       thislen = strlen (normal);
       if (thislen > maxname)
@@ -1341,7 +1344,7 @@ _bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /** A couple of functions for creating ar_hdrs */
@@ -1458,7 +1461,8 @@ bfd_ar_hdr_from_filesystem (abfd, filename, member)
    a strong stomach to write this, and it does, but it takes even a
    stronger stomach to try to code around such a thing!  */
 
-struct ar_hdr *bfd_special_undocumented_glue PARAMS ((bfd *, const char *));
+struct ar_hdr *bfd_special_undocumented_glue
+  PARAMS ((bfd *, const char *));
 
 struct ar_hdr *
 bfd_special_undocumented_glue (abfd, filename)
@@ -1669,7 +1673,7 @@ bfd_gnu_truncate_arname (abfd, pathname, arhdr)
 \f
 /* The BFD is open for write and has its format set to bfd_archive.  */
 
-boolean
+bfd_boolean
 _bfd_write_archive_contents (arch)
      bfd *arch;
 {
@@ -1677,8 +1681,9 @@ _bfd_write_archive_contents (arch)
   char *etable = NULL;
   bfd_size_type elength = 0;
   const char *ename = NULL;
-  boolean makemap = bfd_has_map (arch);
-  boolean hasobjects = false;  /* If no .o's, don't bother to make a map.  */
+  bfd_boolean makemap = bfd_has_map (arch);
+  /* If no .o's, don't bother to make a map.  */
+  bfd_boolean hasobjects = FALSE;
   bfd_size_type wrote;
   unsigned int i;
   int tries;
@@ -1696,14 +1701,14 @@ _bfd_write_archive_contents (arch)
       if (bfd_write_p (current))
        {
          bfd_set_error (bfd_error_invalid_operation);
-         return false;
+         return FALSE;
        }
       if (!current->arelt_data)
        {
          current->arelt_data =
            (PTR) bfd_ar_hdr_from_filesystem (arch, current->filename, current);
          if (!current->arelt_data)
-           return false;
+           return FALSE;
 
          /* Put in the file name.  */
          BFD_SEND (arch, _bfd_truncate_arname, (arch,
@@ -1718,28 +1723,28 @@ _bfd_write_archive_contents (arch)
              && ((bfd_get_file_flags (current) & HAS_SYMS))
 #endif
            )
-           hasobjects = true;
+           hasobjects = TRUE;
        }
     }
 
   if (!BFD_SEND (arch, _bfd_construct_extended_name_table,
                 (arch, &etable, &elength, &ename)))
-    return false;
+    return FALSE;
 
   if (bfd_seek (arch, (file_ptr) 0, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 #ifdef GNU960
   wrote = bfd_bwrite (BFD_GNU960_ARMAG (arch), (bfd_size_type) SARMAG, arch);
 #else
   wrote = bfd_bwrite (ARMAG, (bfd_size_type) SARMAG, arch);
 #endif
   if (wrote != SARMAG)
-    return false;
+    return FALSE;
 
   if (makemap && hasobjects)
     {
       if (! _bfd_compute_and_write_armap (arch, (unsigned int) elength))
-       return false;
+       return FALSE;
     }
 
   if (elength != 0)
@@ -1758,11 +1763,11 @@ _bfd_write_archive_contents (arch)
       if ((bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch)
           != sizeof (struct ar_hdr))
          || bfd_bwrite (etable, elength, arch) != elength)
-       return false;
+       return FALSE;
       if ((elength % 2) == 1)
        {
          if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1)
-           return false;
+           return FALSE;
        }
     }
 
@@ -1775,9 +1780,9 @@ _bfd_write_archive_contents (arch)
       /* Write ar header.  */
       if (bfd_bwrite ((PTR) hdr, (bfd_size_type) sizeof (*hdr), arch)
          != sizeof (*hdr))
-       return false;
+       return FALSE;
       if (bfd_seek (current, (file_ptr) 0, SEEK_SET) != 0)
-       return false;
+       return FALSE;
       while (remaining)
        {
          unsigned int amt = DEFAULT_BUFFERSIZE;
@@ -1788,16 +1793,16 @@ _bfd_write_archive_contents (arch)
            {
              if (bfd_get_error () != bfd_error_system_call)
                bfd_set_error (bfd_error_malformed_archive);
-             return false;
+             return FALSE;
            }
          if (bfd_bwrite (buffer, (bfd_size_type) amt, arch) != amt)
-           return false;
+           return FALSE;
          remaining -= amt;
        }
       if ((arelt_size (current) % 2) == 1)
        {
          if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1)
-           return false;
+           return FALSE;
        }
     }
 
@@ -1820,12 +1825,12 @@ _bfd_write_archive_contents (arch)
       while (++tries < 6);
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Note that the namidx for the first symbol is 0.  */
 
-boolean
+bfd_boolean
 _bfd_compute_and_write_armap (arch, elength)
      bfd *arch;
      unsigned int elength;
@@ -1839,7 +1844,7 @@ _bfd_compute_and_write_armap (arch, elength)
   int stridx = 0;              /* string index */
   asymbol **syms = NULL;
   long syms_max = 0;
-  boolean ret;
+  bfd_boolean ret;
   bfd_size_type amt;
 
   /* Dunno if this is the best place for this info...  */
@@ -1968,10 +1973,10 @@ _bfd_compute_and_write_armap (arch, elength)
   if (first_name != NULL)
     bfd_release (arch, first_name);
 
-  return false;
+  return FALSE;
 }
 
-boolean
+bfd_boolean
 bsd_write_armap (arch, elength, map, orl_count, stridx)
      bfd *arch;
      unsigned int elength;
@@ -2012,10 +2017,10 @@ bsd_write_armap (arch, elength, map, orl_count, stridx)
       (((char *) (&hdr))[i]) = ' ';
   if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch)
       != sizeof (struct ar_hdr))
-    return false;
+    return FALSE;
   H_PUT_32 (arch, ranlibsize, temp);
   if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp))
-    return false;
+    return FALSE;
 
   for (count = 0; count < orl_count; count++)
     {
@@ -2037,19 +2042,19 @@ bsd_write_armap (arch, elength, map, orl_count, stridx)
       H_PUT_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE);
       if (bfd_bwrite (buf, (bfd_size_type) BSD_SYMDEF_SIZE, arch)
          != BSD_SYMDEF_SIZE)
-       return false;
+       return FALSE;
     }
 
   /* Now write the strings themselves.  */
   H_PUT_32 (arch, stringsize, temp);
   if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp))
-    return false;
+    return FALSE;
   for (count = 0; count < orl_count; count++)
     {
       size_t len = strlen (*map[count].name) + 1;
 
       if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len)
-       return false;
+       return FALSE;
     }
 
   /* The spec sez this should be a newline.  But in order to be
@@ -2057,19 +2062,19 @@ bsd_write_armap (arch, elength, map, orl_count, stridx)
   if (padit)
     {
       if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* At the end of archive file handling, update the timestamp in the
    file, so the linker will accept it.
 
-   Return true if the timestamp was OK, or an unusual problem happened.
-   Return false if we updated the timestamp.  */
+   Return TRUE if the timestamp was OK, or an unusual problem happened.
+   Return FALSE if we updated the timestamp.  */
 
-boolean
+bfd_boolean
 _bfd_archive_bsd_update_armap_timestamp (arch)
      bfd *arch;
 {
@@ -2085,11 +2090,11 @@ _bfd_archive_bsd_update_armap_timestamp (arch)
       bfd_perror (_("Reading archive file mod timestamp"));
 
       /* Can't read mod time for some reason.  */
-      return true;
+      return TRUE;
     }
   if (archstat.st_mtime <= bfd_ardata (arch)->armap_timestamp)
     /* OK by the linker's rules.  */
-    return true;
+    return TRUE;
 
   /* Update the timestamp.  */
   bfd_ardata (arch)->armap_timestamp = archstat.st_mtime + ARMAP_TIME_OFFSET;
@@ -2111,11 +2116,11 @@ _bfd_archive_bsd_update_armap_timestamp (arch)
       bfd_perror (_("Writing updated armap timestamp"));
 
       /* Some error while writing.  */
-      return true;
+      return TRUE;
     }
 
   /* We updated the timestamp successfully.  */
-  return false;
+  return FALSE;
 }
 \f
 /* A coff armap looks like :
@@ -2132,7 +2137,7 @@ _bfd_archive_bsd_update_armap_timestamp (arch)
    symbol name n-1
 */
 
-boolean
+bfd_boolean
 coff_write_armap (arch, elength, map, symbol_count, stridx)
      bfd *arch;
      unsigned int elength;
@@ -2179,10 +2184,10 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
 
   if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch)
       != sizeof (struct ar_hdr))
-    return false;
+    return FALSE;
 
   if (!bfd_write_bigendian_4byte_int (arch, symbol_count))
-    return false;
+    return FALSE;
 
   /* Two passes, first write the file offsets for each symbol -
      remembering that each offset is on a two byte boundary.  */
@@ -2200,7 +2205,7 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
       while (count < symbol_count && map[count].u.abfd == current)
        {
          if (!bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr))
-           return false;
+           return FALSE;
          count++;
        }
       /* Add size of this archive entry.  */
@@ -2217,7 +2222,7 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
       size_t len = strlen (*map[count].name) + 1;
 
       if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len)
-       return false;
+       return FALSE;
     }
 
   /* The spec sez this should be a newline.  But in order to be
@@ -2225,8 +2230,8 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
   if (padit)
     {
       if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
index ea94c6ae86e5bb91849ba92a5bef7bf44a494fcb..6267e68b3e218e15b2f5ac24fbeb316457e752fa 100644 (file)
@@ -1,5 +1,5 @@
 /* MIPS-specific support for 64-bit ELF
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Ian Lance Taylor, Cygnus Support
    Linker support added by Mark Mitchell, CodeSourcery, LLC.
@@ -31,13 +31,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* Irix 6 defines a 64bit archive map format, so that they can
    have archives more than 4 GB in size.  */
 
-boolean bfd_elf64_archive_slurp_armap PARAMS ((bfd *));
-boolean bfd_elf64_archive_write_armap
+bfd_boolean bfd_elf64_archive_slurp_armap PARAMS ((bfd *));
+bfd_boolean bfd_elf64_archive_write_armap
   PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
 
 /* Read an Irix 6 armap.  */
 
-boolean
+bfd_boolean
 bfd_elf64_archive_slurp_armap (abfd)
      bfd *abfd;
 {
@@ -58,12 +58,12 @@ bfd_elf64_archive_slurp_armap (abfd)
   arhdrpos = bfd_tell (abfd);
   i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd);
   if (i == 0)
-    return true;
+    return TRUE;
   if (i != 16)
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, (file_ptr) - 16, SEEK_CUR) != 0)
-    return false;
+    return FALSE;
 
   /* Archives with traditional armaps are still permitted.  */
   if (strncmp (nextname, "/               ", 16) == 0)
@@ -71,13 +71,13 @@ bfd_elf64_archive_slurp_armap (abfd)
 
   if (strncmp (nextname, "/SYM64/         ", 16) != 0)
     {
-      bfd_has_map (abfd) = false;
-      return true;
+      bfd_has_map (abfd) = FALSE;
+      return TRUE;
     }
 
   mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
   if (mapdata == NULL)
-    return false;
+    return FALSE;
   parsed_size = mapdata->parsed_size;
   bfd_release (abfd, (PTR) mapdata);
 
@@ -85,7 +85,7 @@ bfd_elf64_archive_slurp_armap (abfd)
     {
       if (bfd_get_error () != bfd_error_system_call)
        bfd_set_error (bfd_error_malformed_archive);
-      return false;
+      return FALSE;
     }
 
   nsymz = bfd_getb64 (int_buf);
@@ -97,7 +97,7 @@ bfd_elf64_archive_slurp_armap (abfd)
   amt = carsym_size + stringsize + 1;
   ardata->symdefs = (carsym *) bfd_zalloc (abfd, amt);
   if (ardata->symdefs == NULL)
-    return false;
+    return FALSE;
   carsyms = ardata->symdefs;
   stringbase = ((char *) ardata->symdefs) + carsym_size;
 
@@ -127,23 +127,23 @@ bfd_elf64_archive_slurp_armap (abfd)
   /* Pad to an even boundary if you have to.  */
   ardata->first_file_filepos += (ardata->first_file_filepos) % 2;
 
-  bfd_has_map (abfd) = true;
+  bfd_has_map (abfd) = TRUE;
   bfd_release (abfd, raw_armap);
 
-  return true;
+  return TRUE;
 
 release_raw_armap:
   bfd_release (abfd, raw_armap);
 release_symdefs:
   bfd_release (abfd, ardata->symdefs);
-  return false;
+  return FALSE;
 }
 
 /* Write out an Irix 6 armap.  The Irix 6 tools are supposed to be
    able to handle ordinary ELF armaps, but at least on Irix 6.2 the
    linker crashes.  */
 
-boolean
+bfd_boolean
 bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
      bfd *arch;
      unsigned int elength;
@@ -189,11 +189,11 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
 
   if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch)
       != sizeof (struct ar_hdr))
-    return false;
+    return FALSE;
 
   bfd_putb64 ((bfd_vma) symbol_count, buf);
   if (bfd_bwrite (buf, (bfd_size_type) 8, arch) != 8)
-    return false;
+    return FALSE;
 
   /* Two passes, first write the file offsets for each symbol -
      remembering that each offset is on a two byte boundary.  */
@@ -212,7 +212,7 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
        {
          bfd_putb64 ((bfd_vma) archive_member_file_ptr, buf);
          if (bfd_bwrite (buf, (bfd_size_type) 8, arch) != 8)
-           return false;
+           return FALSE;
          count++;
        }
       /* Add size of this archive entry */
@@ -229,7 +229,7 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
       size_t len = strlen (*map[count].name) + 1;
 
       if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len)
-       return false;
+       return FALSE;
     }
 
   /* The spec says that this should be padded to an 8 byte boundary.
@@ -237,9 +237,9 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
   while (padding != 0)
     {
       if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1)
-       return false;
+       return FALSE;
       --padding;
     }
 
-  return true;
+  return TRUE;
 }
index 485fef27401a1447d23577bd8086bb2461d79256..b73766f775fb9a78148a6b532fbb75af2da6c351 100644 (file)
@@ -201,6 +201,9 @@ DESCRIPTION
 .  bfd_arch_dlx,       {* DLX *}
 .  bfd_arch_m68hc11,   {* Motorola 68HC11 *}
 .  bfd_arch_m68hc12,   {* Motorola 68HC12 *}
+.#define bfd_mach_m6812_default 0
+.#define bfd_mach_m6812         1
+.#define bfd_mach_m6812s        2
 .  bfd_arch_z8k,       {* Zilog Z8000 *}
 .#define bfd_mach_z8001                1
 .#define bfd_mach_z8002                2
@@ -306,15 +309,15 @@ DESCRIPTION
 .  const char *arch_name;
 .  const char *printable_name;
 .  unsigned int section_align_power;
-.  {* True if this is the default machine for the architecture.
+.  {* TRUE if this is the default machine for the architecture.
 .     The default arch should be the first entry for an arch so that
 .     all the entries for that arch can be accessed via <<next>>.  *}
-.  boolean the_default;
+.  bfd_boolean the_default;
 .  const struct bfd_arch_info * (*compatible)
 .      PARAMS ((const struct bfd_arch_info *a,
 .               const struct bfd_arch_info *b));
 .
-.  boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
+.  bfd_boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
 .
 .  const struct bfd_arch_info *next;
 .}
@@ -544,27 +547,39 @@ FUNCTION
 SYNOPSIS
        const bfd_arch_info_type *bfd_arch_get_compatible(
                const bfd *abfd,
-               const bfd *bbfd);
+               const bfd *bbfd,
+               bfd_boolean accept_unknowns);
 
 DESCRIPTION
-       Determine whether two BFDs'
-       architectures and machine types are compatible.  Calculates
-       the lowest common denominator between the two architectures
-       and machine types implied by the BFDs and returns a pointer to
-       an <<arch_info>> structure describing the compatible machine.
+       Determine whether two BFDs' architectures and machine types
+       are compatible.  Calculates the lowest common denominator
+       between the two architectures and machine types implied by
+       the BFDs and returns a pointer to an <<arch_info>> structure
+       describing the compatible machine.
 */
 
 const bfd_arch_info_type *
-bfd_arch_get_compatible (abfd, bbfd)
+bfd_arch_get_compatible (abfd, bbfd, accept_unknowns)
      const bfd *abfd;
      const bfd *bbfd;
+     bfd_boolean accept_unknowns;
 {
-  /* If either architecture is unknown, then all we can do is assume
-     the user knows what he's doing.  */
-  if (abfd->arch_info->arch == bfd_arch_unknown)
-    return bbfd->arch_info;
-  if (bbfd->arch_info->arch == bfd_arch_unknown)
-    return abfd->arch_info;
+  const bfd * ubfd = NULL;
+
+  /* Look for an unknown architecture.  */
+  if (((ubfd = abfd) && ubfd->arch_info->arch == bfd_arch_unknown)
+      || ((ubfd = bbfd) && ubfd->arch_info->arch == bfd_arch_unknown))
+    {
+      /* We can allow an unknown architecture if accept_unknowns
+        is true, or if the target is the "binary" format, which
+        has an unknown architecture.  Since the binary format can
+        only be set by explicit request from the user, it is safe
+        to assume that they know what they are doing.  */
+      if (accept_unknowns
+         || strcmp (bfd_get_target (ubfd), "binary") == 0)
+       return ubfd->arch_info;
+      return NULL;
+    }
 
   /* Otherwise architecture-specific code has to decide.  */
   return abfd->arch_info->compatible (abfd->arch_info, bbfd->arch_info);
@@ -585,7 +600,7 @@ DESCRIPTION
 */
 
 const bfd_arch_info_type bfd_default_arch_struct = {
-  32, 32, 8, bfd_arch_unknown, 0, "unknown", "unknown", 2, true,
+  32, 32, 8, bfd_arch_unknown, 0, "unknown", "unknown", 2, TRUE,
   bfd_default_compatible,
   bfd_default_scan,
   0,
@@ -615,7 +630,7 @@ INTERNAL_FUNCTION
        bfd_default_set_arch_mach
 
 SYNOPSIS
-       boolean bfd_default_set_arch_mach(bfd *abfd,
+       bfd_boolean bfd_default_set_arch_mach(bfd *abfd,
                enum bfd_architecture arch,
                unsigned long mach);
 
@@ -626,7 +641,7 @@ DESCRIPTION
        pointer.
 */
 
-boolean
+bfd_boolean
 bfd_default_set_arch_mach (abfd, arch, mach)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -634,11 +649,11 @@ bfd_default_set_arch_mach (abfd, arch, mach)
 {
   abfd->arch_info = bfd_lookup_arch (arch, mach);
   if (abfd->arch_info != NULL)
-    return true;
+    return TRUE;
 
   abfd->arch_info = &bfd_default_arch_struct;
   bfd_set_error (bfd_error_bad_value);
-  return false;
+  return FALSE;
 }
 
 /*
@@ -755,14 +770,14 @@ INTERNAL_FUNCTION
        bfd_default_scan
 
 SYNOPSIS
-       boolean bfd_default_scan(const struct bfd_arch_info *info, const char *string);
+       bfd_boolean bfd_default_scan(const struct bfd_arch_info *info, const char *string);
 
 DESCRIPTION
        The default function for working out whether this is an
        architecture hit and a machine hit.
 */
 
-boolean
+bfd_boolean
 bfd_default_scan (info, string)
      const bfd_arch_info_type *info;
      const char *string;
@@ -777,11 +792,11 @@ bfd_default_scan (info, string)
      default architecture?  */
   if (strcasecmp (string, info->arch_name) == 0
       && info->the_default)
-    return true;
+    return TRUE;
 
   /* Exact match of the machine name (PRINTABLE_NAME)?  */
   if (strcasecmp (string, info->printable_name) == 0)
-    return true;
+    return TRUE;
 
   /* Given that printable_name contains no colon, attempt to match:
      ARCH_NAME [ ":" ] PRINTABLE_NAME?  */
@@ -795,13 +810,13 @@ bfd_default_scan (info, string)
            {
              if (strcasecmp (string + strlen_arch_name + 1,
                              info->printable_name) == 0)
-               return true;
+               return TRUE;
            }
          else
            {
              if (strcasecmp (string + strlen_arch_name,
                              info->printable_name) == 0)
-               return true;
+               return TRUE;
            }
        }
     }
@@ -814,7 +829,7 @@ bfd_default_scan (info, string)
       if (strncasecmp (string, info->printable_name, colon_index) == 0
          && strcasecmp (string + colon_index,
                         info->printable_name + colon_index + 1) == 0)
-       return true;
+       return TRUE;
     }
 
   /* Given that PRINTABLE_NAME has the form: <arch> ":" <mach>; Do not
@@ -957,16 +972,16 @@ bfd_default_scan (info, string)
       break;
 
     default:
-      return false;
+      return FALSE;
     }
 
   if (arch != info->arch)
-    return false;
+    return FALSE;
 
   if (number != info->mach)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /*
index f41e3fbf69dee9a0eb3a0d56581949ce5d822075..3b1f9abfd65118efb000940b774f4a0f09f3c361 100644 (file)
@@ -70,42 +70,27 @@ extern "C" {
 /* Forward declaration.  */
 typedef struct _bfd bfd;
 
-/* To squelch erroneous compiler warnings ("illegal pointer
-   combination") from the SVR3 compiler, we would like to typedef
-   boolean to int (it doesn't like functions which return boolean.
-   Making sure they are never implicitly declared to return int
-   doesn't seem to help).  But this file is not configured based on
-   the host.  */
-/* General rules: functions which are boolean return true on success
-   and false on failure (unless they're a predicate).   -- bfd.doc */
-/* I'm sure this is going to break something and someone is going to
-   force me to change it.  */
-/* typedef enum boolean {false, true} boolean; */
-/* Yup, SVR4 has a "typedef enum boolean" in <sys/types.h>  -fnf */
-/* It gets worse if the host also defines a true/false enum... -sts */
-/* And even worse if your compiler has built-in boolean types... -law */
-/* And even worse if your compiler provides a stdbool.h that conflicts
-   with these definitions... gcc 2.95 and later do.  If so, it must
-   be included first.  -drow */
-#if defined (__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6))
-#define TRUE_FALSE_ALREADY_DEFINED
-#else
-#if defined (__bool_true_false_are_defined)
-/* We have <stdbool.h>.  */
-#define TRUE_FALSE_ALREADY_DEFINED
-#endif
-#endif
-#ifdef MPW
-/* Pre-emptive strike - get the file with the enum.  */
-#include <Types.h>
-#define TRUE_FALSE_ALREADY_DEFINED
-#endif /* MPW */
-#ifndef TRUE_FALSE_ALREADY_DEFINED
-typedef enum bfd_boolean {false, true} boolean;
-#define BFD_TRUE_FALSE
-#else
-/* Use enum names that will appear nowhere else.  */
-typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean;
+/* Boolean type used in bfd.  Too many systems define their own
+   versions of "boolean" for us to safely typedef a "boolean" of
+   our own.  Using an enum for "bfd_boolean" has its own set of
+   problems, with strange looking casts required to avoid warnings
+   on some older compilers.  Thus we just use an int.
+
+   General rule: Functions which are bfd_boolean return TRUE on
+   success and FALSE on failure (unless they're a predicate).  */
+
+typedef int bfd_boolean;
+#undef FALSE
+#undef TRUE
+#define FALSE 0
+#define TRUE 1
+
+#if 0
+/* Poison.  */
+#undef false
+#undef true
+#define false dont_use_false_in_bfd
+#define true dont_use_true_in_bfd
 #endif
 
 /* Support for different sizes of target format ints and addresses.
@@ -186,8 +171,10 @@ typedef unsigned long bfd_size_type;
 typedef bfd_signed_vma file_ptr;
 typedef bfd_vma ufile_ptr;
 
-extern void bfd_sprintf_vma PARAMS ((bfd *, char *, bfd_vma));
-extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
+extern void bfd_sprintf_vma
+  PARAMS ((bfd *, char *, bfd_vma));
+extern void bfd_fprintf_vma
+  PARAMS ((bfd *, PTR, bfd_vma));
 
 #define printf_vma(x) fprintf_vma(stdout,x)
 #define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
@@ -263,7 +250,7 @@ bfd_format;
 /* This flag indicates that the BFD contents are actually cached in
    memory.  If this is set, iostream points to a bfd_in_memory struct.  */
 #define BFD_IN_MEMORY 0x800
+
 /* The sections in this BFD specify a memory page.  */
 #define HAS_LOAD_PAGE 0x1000
 \f
@@ -345,9 +332,9 @@ typedef struct sec *sec_ptr;
 
 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 
-#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (unsigned int)true), true)
-#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true)
-#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true)
+#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
+#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
+#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
 
 typedef struct stat stat_type;
 \f
@@ -373,7 +360,8 @@ typedef struct _symbol_info
 
 /* Get the name of a stabs type code.  */
 
-extern const char *bfd_get_stab_name PARAMS ((int));
+extern const char *bfd_get_stab_name
+  PARAMS ((int));
 \f
 /* Hash table routines.  There is no way to free up a hash table.  */
 
@@ -406,23 +394,22 @@ struct bfd_hash_table
      built each of which calls the function in the superclass.  Thus
      each function should be written to allocate a new block of memory
      only if the argument is NULL.  */
-  struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
-                                            struct bfd_hash_table *,
-                                            const char *));
+  struct bfd_hash_entry *(*newfunc)
+    PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
    /* An objalloc for this hash table.  This is a struct objalloc *,
      but we use PTR to avoid requiring the inclusion of objalloc.h.  */
   PTR memory;
 };
 
 /* Initialize a hash table.  */
-extern boolean bfd_hash_table_init
+extern bfd_boolean bfd_hash_table_init
   PARAMS ((struct bfd_hash_table *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
                                       const char *)));
 
 /* Initialize a hash table specifying a size.  */
-extern boolean bfd_hash_table_init_n
+extern bfd_boolean bfd_hash_table_init_n
   PARAMS ((struct bfd_hash_table *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
@@ -430,15 +417,16 @@ extern boolean bfd_hash_table_init_n
           unsigned int size));
 
 /* Free up a hash table.  */
-extern void bfd_hash_table_free PARAMS ((struct bfd_hash_table *));
+extern void bfd_hash_table_free
+  PARAMS ((struct bfd_hash_table *));
 
-/* Look up a string in a hash table.  If CREATE is true, a new entry
+/* Look up a string in a hash table.  If CREATE is TRUE, a new entry
    will be created for this string if one does not already exist.  The
-   COPY argument must be true if this routine should copy the string
+   COPY argument must be TRUE if this routine should copy the string
    into newly allocated memory when adding an entry.  */
 extern struct bfd_hash_entry *bfd_hash_lookup
-  PARAMS ((struct bfd_hash_table *, const char *, boolean create,
-          boolean copy));
+  PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create,
+          bfd_boolean copy));
 
 /* Replace an entry in a hash table.  */
 extern void bfd_hash_replace
@@ -451,16 +439,16 @@ extern struct bfd_hash_entry *bfd_hash_newfunc
           const char *));
 
 /* Grab some space for a hash table entry.  */
-extern PTR bfd_hash_allocate PARAMS ((struct bfd_hash_table *,
-                                     unsigned int));
+extern PTR bfd_hash_allocate
+  PARAMS ((struct bfd_hash_table *, unsigned int));
 
 /* Traverse a hash table in a random order, calling a function on each
-   element.  If the function returns false, the traversal stops.  The
+   element.  If the function returns FALSE, the traversal stops.  The
    INFO argument is passed to the function.  */
-extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *,
-                                      boolean (*) (struct bfd_hash_entry *,
-                                                   PTR),
-                                      PTR info));
+extern void bfd_hash_traverse
+  PARAMS ((struct bfd_hash_table *,
+          bfd_boolean (*) (struct bfd_hash_entry *, PTR),
+          PTR info));
 
 #define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
 
@@ -469,12 +457,18 @@ extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *,
 /* Direct I/O routines, for programs which know more about the object
    file than BFD does.  Use higher level routines if possible.  */
 
-extern bfd_size_type bfd_bread PARAMS ((PTR, bfd_size_type, bfd *));
-extern bfd_size_type bfd_bwrite PARAMS ((const PTR, bfd_size_type, bfd *));
-extern int bfd_seek PARAMS ((bfd *, file_ptr, int));
-extern ufile_ptr bfd_tell PARAMS ((bfd *));
-extern int bfd_flush PARAMS ((bfd *));
-extern int bfd_stat PARAMS ((bfd *, struct stat *));
+extern bfd_size_type bfd_bread
+  PARAMS ((PTR, bfd_size_type, bfd *));
+extern bfd_size_type bfd_bwrite
+  PARAMS ((const PTR, bfd_size_type, bfd *));
+extern int bfd_seek
+  PARAMS ((bfd *, file_ptr, int));
+extern ufile_ptr bfd_tell
+  PARAMS ((bfd *));
+extern int bfd_flush
+  PARAMS ((bfd *));
+extern int bfd_stat
+  PARAMS ((bfd *, struct stat *));
 
 /* Deprecated old routines.  */
 #if __GNUC__
@@ -529,40 +523,61 @@ extern void warn_deprecated
 
 #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
 
-#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (boolean) (bool)), true)
+#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
 
-extern boolean bfd_cache_close PARAMS ((bfd *abfd));
+extern bfd_boolean bfd_cache_close
+  PARAMS ((bfd *abfd));
 /* NB: This declaration should match the autogenerated one in libbfd.h.  */
 
-extern boolean bfd_record_phdr
-  PARAMS ((bfd *, unsigned long, boolean, flagword, boolean, bfd_vma,
-          boolean, boolean, unsigned int, struct sec **));
+extern bfd_boolean bfd_record_phdr
+  PARAMS ((bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
+          bfd_boolean, bfd_boolean, unsigned int, struct sec **));
 
 /* Byte swapping routines.  */
 
-bfd_vma                bfd_getb64         PARAMS ((const unsigned char *));
-bfd_vma        bfd_getl64         PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_64 PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_64 PARAMS ((const unsigned char *));
-bfd_vma                bfd_getb32         PARAMS ((const unsigned char *));
-bfd_vma                bfd_getl32         PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_32 PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_32 PARAMS ((const unsigned char *));
-bfd_vma                bfd_getb16         PARAMS ((const unsigned char *));
-bfd_vma                bfd_getl16         PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_16 PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_16 PARAMS ((const unsigned char *));
-void           bfd_putb64         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putl64         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putb32         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putl32         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putb16         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putl16         PARAMS ((bfd_vma, unsigned char *));
+bfd_vma bfd_getb64
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getl64
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getb_signed_64
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getl_signed_64
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getb32
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getl32
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getb_signed_32
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getl_signed_32
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getb16
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getl16
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getb_signed_16
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getl_signed_16
+  PARAMS ((const unsigned char *));
+void bfd_putb64
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putl64
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putb32
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putl32
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putb16
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putl16
+  PARAMS ((bfd_vma, unsigned char *));
 
 /* Byte swapping routines which take size and endiannes as arguments.  */
 
-bfd_vma         bfd_get_bits       PARAMS ((bfd_byte *, int, boolean));
-void            bfd_put_bits       PARAMS ((bfd_vma, bfd_byte *, int, boolean));
+bfd_vma bfd_get_bits
+  PARAMS ((bfd_byte *, int, bfd_boolean));
+void bfd_put_bits
+  PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean));
 \f
 /* Externally visible ECOFF routines.  */
 
@@ -575,9 +590,11 @@ struct bfd_link_info;
 struct bfd_link_hash_entry;
 struct bfd_elf_version_tree;
 #endif
-extern bfd_vma bfd_ecoff_get_gp_value PARAMS ((bfd * abfd));
-extern boolean bfd_ecoff_set_gp_value PARAMS ((bfd *abfd, bfd_vma gp_value));
-extern boolean bfd_ecoff_set_regmasks
+extern bfd_vma bfd_ecoff_get_gp_value
+  PARAMS ((bfd * abfd));
+extern bfd_boolean bfd_ecoff_set_gp_value
+  PARAMS ((bfd *abfd, bfd_vma gp_value));
+extern bfd_boolean bfd_ecoff_set_regmasks
   PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask,
           unsigned long *cprmask));
 extern PTR bfd_ecoff_debug_init
@@ -588,39 +605,39 @@ extern void bfd_ecoff_debug_free
   PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
           const struct ecoff_debug_swap *output_swap,
           struct bfd_link_info *));
-extern boolean bfd_ecoff_debug_accumulate
+extern bfd_boolean bfd_ecoff_debug_accumulate
   PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
           const struct ecoff_debug_swap *output_swap,
           bfd *input_bfd, struct ecoff_debug_info *input_debug,
           const struct ecoff_debug_swap *input_swap,
           struct bfd_link_info *));
-extern boolean bfd_ecoff_debug_accumulate_other
+extern bfd_boolean bfd_ecoff_debug_accumulate_other
   PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
           const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
           struct bfd_link_info *));
-extern boolean bfd_ecoff_debug_externals
+extern bfd_boolean bfd_ecoff_debug_externals
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap,
-          boolean relocateable,
-          boolean (*get_extr) (struct symbol_cache_entry *,
-                               struct ecoff_extr *),
+          bfd_boolean relocateable,
+          bfd_boolean (*get_extr) (struct symbol_cache_entry *,
+                                   struct ecoff_extr *),
           void (*set_index) (struct symbol_cache_entry *,
                              bfd_size_type)));
-extern boolean bfd_ecoff_debug_one_external
+extern bfd_boolean bfd_ecoff_debug_one_external
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap,
           const char *name, struct ecoff_extr *esym));
 extern bfd_size_type bfd_ecoff_debug_size
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap));
-extern boolean bfd_ecoff_write_debug
+extern bfd_boolean bfd_ecoff_write_debug
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap, file_ptr where));
-extern boolean bfd_ecoff_write_accumulated_debug
+extern bfd_boolean bfd_ecoff_write_accumulated_debug
   PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap,
           struct bfd_link_info *info, file_ptr where));
-extern boolean bfd_mips_ecoff_create_embedded_relocs
+extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs
   PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
           char **));
 
@@ -633,36 +650,40 @@ struct bfd_link_needed_list
   const char *name;
 };
 
-extern boolean bfd_elf32_record_link_assignment
-  PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean));
-extern boolean bfd_elf64_record_link_assignment
-  PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean));
+extern bfd_boolean bfd_elf32_record_link_assignment
+  PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean));
+extern bfd_boolean bfd_elf64_record_link_assignment
+  PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean));
 extern struct bfd_link_needed_list *bfd_elf_get_needed_list
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_elf_get_bfd_needed_list
+extern bfd_boolean bfd_elf_get_bfd_needed_list
   PARAMS ((bfd *, struct bfd_link_needed_list **));
-extern boolean bfd_elf32_size_dynamic_sections
+extern bfd_boolean bfd_elf32_size_dynamic_sections
   PARAMS ((bfd *, const char *, const char *, const char *,
           const char * const *, struct bfd_link_info *, struct sec **,
           struct bfd_elf_version_tree *));
-extern boolean bfd_elf64_size_dynamic_sections
+extern bfd_boolean bfd_elf64_size_dynamic_sections
   PARAMS ((bfd *, const char *, const char *, const char *,
           const char * const *, struct bfd_link_info *, struct sec **,
           struct bfd_elf_version_tree *));
-extern void bfd_elf_set_dt_needed_name PARAMS ((bfd *, const char *));
-extern void bfd_elf_set_dt_needed_soname PARAMS ((bfd *, const char *));
-extern const char *bfd_elf_get_dt_soname PARAMS ((bfd *));
+extern void bfd_elf_set_dt_needed_name
+  PARAMS ((bfd *, const char *));
+extern void bfd_elf_set_dt_needed_soname
+  PARAMS ((bfd *, const char *));
+extern const char *bfd_elf_get_dt_soname
+  PARAMS ((bfd *));
 extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_elf32_discard_info
+extern bfd_boolean bfd_elf32_discard_info
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_elf64_discard_info
+extern bfd_boolean bfd_elf64_discard_info
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Return an upper bound on the number of bytes required to store a
    copy of ABFD's program header table entries.  Return -1 if an error
    occurs; bfd_get_error will return an appropriate code.  */
-extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd));
+extern long bfd_get_elf_phdr_upper_bound
+  PARAMS ((bfd *abfd));
 
 /* Copy ABFD's program header table entries to *PHDRS.  The entries
    will be stored as an array of Elf_Internal_Phdr structures, as
@@ -671,18 +692,21 @@ extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd));
 
    Return the number of program header table entries read, or -1 if an
    error occurs; bfd_get_error will return an appropriate code.  */
-extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs));
+extern int bfd_get_elf_phdrs
+  PARAMS ((bfd *abfd, void *phdrs));
 
 /* Return the arch_size field of an elf bfd, or -1 if not elf.  */
-extern int bfd_get_arch_size PARAMS ((bfd *));
+extern int bfd_get_arch_size
+  PARAMS ((bfd *));
 
-/* Return true if address "naturally" sign extends, or -1 if not elf.  */
-extern int bfd_get_sign_extend_vma PARAMS ((bfd *));
+/* Return TRUE if address "naturally" sign extends, or -1 if not elf.  */
+extern int bfd_get_sign_extend_vma
+  PARAMS ((bfd *));
 
-extern boolean bfd_m68k_elf32_create_embedded_relocs
+extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
   PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
           char **));
-extern boolean bfd_mips_elf32_create_embedded_relocs
+extern bfd_boolean bfd_mips_elf32_create_embedded_relocs
   PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
           char **));
 
@@ -690,19 +714,19 @@ extern boolean bfd_mips_elf32_create_embedded_relocs
 
 extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_sunos_record_link_assignment
+extern bfd_boolean bfd_sunos_record_link_assignment
   PARAMS ((bfd *, struct bfd_link_info *, const char *));
-extern boolean bfd_sunos_size_dynamic_sections
+extern bfd_boolean bfd_sunos_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **,
           struct sec **));
 
 /* Linux shared library support routines for the linker.  */
 
-extern boolean bfd_i386linux_size_dynamic_sections
+extern bfd_boolean bfd_i386linux_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_m68klinux_size_dynamic_sections
+extern bfd_boolean bfd_m68klinux_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_sparclinux_size_dynamic_sections
+extern bfd_boolean bfd_sparclinux_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* mmap hacks */
@@ -725,34 +749,37 @@ typedef struct _bfd_window
 }
 bfd_window;
 
-extern void bfd_init_window PARAMS ((bfd_window *));
-extern void bfd_free_window PARAMS ((bfd_window *));
-extern boolean bfd_get_file_window
-  PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, boolean));
+extern void bfd_init_window
+  PARAMS ((bfd_window *));
+extern void bfd_free_window
+  PARAMS ((bfd_window *));
+extern bfd_boolean bfd_get_file_window
+  PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean));
 
 /* XCOFF support routines for the linker.  */
 
-extern boolean bfd_xcoff_link_record_set
+extern bfd_boolean bfd_xcoff_link_record_set
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *,
           bfd_size_type));
-extern boolean bfd_xcoff_import_symbol
+extern bfd_boolean bfd_xcoff_import_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *,
           bfd_vma, const char *, const char *, const char *, unsigned int));
-extern boolean bfd_xcoff_export_symbol
+extern bfd_boolean bfd_xcoff_export_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *));
-extern boolean bfd_xcoff_link_count_reloc
+extern bfd_boolean bfd_xcoff_link_count_reloc
   PARAMS ((bfd *, struct bfd_link_info *, const char *));
-extern boolean bfd_xcoff_record_link_assignment
+extern bfd_boolean bfd_xcoff_record_link_assignment
   PARAMS ((bfd *, struct bfd_link_info *, const char *));
-extern boolean bfd_xcoff_size_dynamic_sections
+extern bfd_boolean bfd_xcoff_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *,
-          unsigned long, unsigned long, unsigned long, boolean,
-          int, boolean, boolean, struct sec **, boolean));
-extern boolean bfd_xcoff_link_generate_rtinit
-  PARAMS ((bfd *, const char *, const char *, boolean));
+          unsigned long, unsigned long, unsigned long, bfd_boolean,
+          int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean));
+extern bfd_boolean bfd_xcoff_link_generate_rtinit
+  PARAMS ((bfd *, const char *, const char *, bfd_boolean));
 
 /* XCOFF support routines for ar.  */
-extern boolean bfd_xcoff_ar_archive_set_magic PARAMS ((bfd *, char *));
+extern bfd_boolean bfd_xcoff_ar_archive_set_magic
+  PARAMS ((bfd *, char *));
 
 /* Externally visible COFF routines.  */
 
@@ -761,50 +788,50 @@ struct internal_syment;
 union internal_auxent;
 #endif
 
-extern boolean bfd_coff_get_syment
+extern bfd_boolean bfd_coff_get_syment
   PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *));
 
-extern boolean bfd_coff_get_auxent
+extern bfd_boolean bfd_coff_get_auxent
   PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *));
 
-extern boolean bfd_coff_set_symbol_class
+extern bfd_boolean bfd_coff_set_symbol_class
   PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int));
 
-extern boolean bfd_m68k_coff_create_embedded_relocs
+extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
   PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
           char **));
 
 /* ARM Interworking support.  Called from linker.  */
-extern boolean bfd_arm_allocate_interworking_sections
+extern bfd_boolean bfd_arm_allocate_interworking_sections
   PARAMS ((struct bfd_link_info *));
 
-extern boolean bfd_arm_process_before_allocation
+extern bfd_boolean bfd_arm_process_before_allocation
   PARAMS ((bfd *, struct bfd_link_info *, int));
 
-extern boolean bfd_arm_get_bfd_for_interworking
+extern bfd_boolean bfd_arm_get_bfd_for_interworking
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* PE ARM Interworking support.  Called from linker.  */
-extern boolean bfd_arm_pe_allocate_interworking_sections
+extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
   PARAMS ((struct bfd_link_info *));
 
-extern boolean bfd_arm_pe_process_before_allocation
+extern bfd_boolean bfd_arm_pe_process_before_allocation
   PARAMS ((bfd *, struct bfd_link_info *, int));
 
-extern boolean bfd_arm_pe_get_bfd_for_interworking
+extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* ELF ARM Interworking support.  Called from linker.  */
-extern boolean bfd_elf32_arm_allocate_interworking_sections
+extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
   PARAMS ((struct bfd_link_info *));
 
-extern boolean bfd_elf32_arm_process_before_allocation
+extern bfd_boolean bfd_elf32_arm_process_before_allocation
   PARAMS ((bfd *, struct bfd_link_info *, int));
 
-extern boolean bfd_elf32_arm_get_bfd_for_interworking
+extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
   PARAMS ((bfd *, struct bfd_link_info *));
 
-extern boolean bfd_elf32_arm_add_glue_sections_to_bfd
+extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* TI COFF load page support.  */
index 8f4a48ba4569b8ab9140de606cdd22a4dd5aee65..362cc8f04f4133ac22957a4014d729e38f16d504 100644 (file)
@@ -1,7 +1,8 @@
 /* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
    generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", 
-   "section.c", "archures.c", "reloc.c", "syms.c", "bfd.c", "archive.c", 
-   "corefile.c", "targets.c", "format.c", "linker.c" and "simple.c".
+   "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", 
+   "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", 
+   "linker.c" and "simple.c".
    Run "make headers" in your build bfd/ to regenerate.  */
 
 /* Main header file for the bfd library -- portable access to object files.
@@ -76,42 +77,27 @@ extern "C" {
 /* Forward declaration.  */
 typedef struct _bfd bfd;
 
-/* To squelch erroneous compiler warnings ("illegal pointer
-   combination") from the SVR3 compiler, we would like to typedef
-   boolean to int (it doesn't like functions which return boolean.
-   Making sure they are never implicitly declared to return int
-   doesn't seem to help).  But this file is not configured based on
-   the host.  */
-/* General rules: functions which are boolean return true on success
-   and false on failure (unless they're a predicate).   -- bfd.doc */
-/* I'm sure this is going to break something and someone is going to
-   force me to change it.  */
-/* typedef enum boolean {false, true} boolean; */
-/* Yup, SVR4 has a "typedef enum boolean" in <sys/types.h>  -fnf */
-/* It gets worse if the host also defines a true/false enum... -sts */
-/* And even worse if your compiler has built-in boolean types... -law */
-/* And even worse if your compiler provides a stdbool.h that conflicts
-   with these definitions... gcc 2.95 and later do.  If so, it must
-   be included first.  -drow */
-#if defined (__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6))
-#define TRUE_FALSE_ALREADY_DEFINED
-#else
-#if defined (__bool_true_false_are_defined)
-/* We have <stdbool.h>.  */
-#define TRUE_FALSE_ALREADY_DEFINED
-#endif
-#endif
-#ifdef MPW
-/* Pre-emptive strike - get the file with the enum.  */
-#include <Types.h>
-#define TRUE_FALSE_ALREADY_DEFINED
-#endif /* MPW */
-#ifndef TRUE_FALSE_ALREADY_DEFINED
-typedef enum bfd_boolean {false, true} boolean;
-#define BFD_TRUE_FALSE
-#else
-/* Use enum names that will appear nowhere else.  */
-typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean;
+/* Boolean type used in bfd.  Too many systems define their own
+   versions of "boolean" for us to safely typedef a "boolean" of
+   our own.  Using an enum for "bfd_boolean" has its own set of
+   problems, with strange looking casts required to avoid warnings
+   on some older compilers.  Thus we just use an int.
+
+   General rule: Functions which are bfd_boolean return TRUE on
+   success and FALSE on failure (unless they're a predicate).  */
+
+typedef int bfd_boolean;
+#undef FALSE
+#undef TRUE
+#define FALSE 0
+#define TRUE 1
+
+#if 0
+/* Poison.  */
+#undef false
+#undef true
+#define false dont_use_false_in_bfd
+#define true dont_use_true_in_bfd
 #endif
 
 /* Support for different sizes of target format ints and addresses.
@@ -192,8 +178,10 @@ typedef unsigned long bfd_size_type;
 typedef bfd_signed_vma file_ptr;
 typedef bfd_vma ufile_ptr;
 
-extern void bfd_sprintf_vma PARAMS ((bfd *, char *, bfd_vma));
-extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
+extern void bfd_sprintf_vma
+  PARAMS ((bfd *, char *, bfd_vma));
+extern void bfd_fprintf_vma
+  PARAMS ((bfd *, PTR, bfd_vma));
 
 #define printf_vma(x) fprintf_vma(stdout,x)
 #define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
@@ -269,7 +257,7 @@ bfd_format;
 /* This flag indicates that the BFD contents are actually cached in
    memory.  If this is set, iostream points to a bfd_in_memory struct.  */
 #define BFD_IN_MEMORY 0x800
+
 /* The sections in this BFD specify a memory page.  */
 #define HAS_LOAD_PAGE 0x1000
 \f
@@ -351,9 +339,9 @@ typedef struct sec *sec_ptr;
 
 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 
-#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (unsigned int)true), true)
-#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true)
-#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true)
+#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
+#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
+#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
 
 typedef struct stat stat_type;
 \f
@@ -379,7 +367,8 @@ typedef struct _symbol_info
 
 /* Get the name of a stabs type code.  */
 
-extern const char *bfd_get_stab_name PARAMS ((int));
+extern const char *bfd_get_stab_name
+  PARAMS ((int));
 \f
 /* Hash table routines.  There is no way to free up a hash table.  */
 
@@ -412,23 +401,22 @@ struct bfd_hash_table
      built each of which calls the function in the superclass.  Thus
      each function should be written to allocate a new block of memory
      only if the argument is NULL.  */
-  struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
-                                            struct bfd_hash_table *,
-                                            const char *));
+  struct bfd_hash_entry *(*newfunc)
+    PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
    /* An objalloc for this hash table.  This is a struct objalloc *,
      but we use PTR to avoid requiring the inclusion of objalloc.h.  */
   PTR memory;
 };
 
 /* Initialize a hash table.  */
-extern boolean bfd_hash_table_init
+extern bfd_boolean bfd_hash_table_init
   PARAMS ((struct bfd_hash_table *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
                                       const char *)));
 
 /* Initialize a hash table specifying a size.  */
-extern boolean bfd_hash_table_init_n
+extern bfd_boolean bfd_hash_table_init_n
   PARAMS ((struct bfd_hash_table *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
@@ -436,15 +424,16 @@ extern boolean bfd_hash_table_init_n
           unsigned int size));
 
 /* Free up a hash table.  */
-extern void bfd_hash_table_free PARAMS ((struct bfd_hash_table *));
+extern void bfd_hash_table_free
+  PARAMS ((struct bfd_hash_table *));
 
-/* Look up a string in a hash table.  If CREATE is true, a new entry
+/* Look up a string in a hash table.  If CREATE is TRUE, a new entry
    will be created for this string if one does not already exist.  The
-   COPY argument must be true if this routine should copy the string
+   COPY argument must be TRUE if this routine should copy the string
    into newly allocated memory when adding an entry.  */
 extern struct bfd_hash_entry *bfd_hash_lookup
-  PARAMS ((struct bfd_hash_table *, const char *, boolean create,
-          boolean copy));
+  PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create,
+          bfd_boolean copy));
 
 /* Replace an entry in a hash table.  */
 extern void bfd_hash_replace
@@ -457,16 +446,16 @@ extern struct bfd_hash_entry *bfd_hash_newfunc
           const char *));
 
 /* Grab some space for a hash table entry.  */
-extern PTR bfd_hash_allocate PARAMS ((struct bfd_hash_table *,
-                                     unsigned int));
+extern PTR bfd_hash_allocate
+  PARAMS ((struct bfd_hash_table *, unsigned int));
 
 /* Traverse a hash table in a random order, calling a function on each
-   element.  If the function returns false, the traversal stops.  The
+   element.  If the function returns FALSE, the traversal stops.  The
    INFO argument is passed to the function.  */
-extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *,
-                                      boolean (*) (struct bfd_hash_entry *,
-                                                   PTR),
-                                      PTR info));
+extern void bfd_hash_traverse
+  PARAMS ((struct bfd_hash_table *,
+          bfd_boolean (*) (struct bfd_hash_entry *, PTR),
+          PTR info));
 
 #define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
 
@@ -475,12 +464,18 @@ extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *,
 /* Direct I/O routines, for programs which know more about the object
    file than BFD does.  Use higher level routines if possible.  */
 
-extern bfd_size_type bfd_bread PARAMS ((PTR, bfd_size_type, bfd *));
-extern bfd_size_type bfd_bwrite PARAMS ((const PTR, bfd_size_type, bfd *));
-extern int bfd_seek PARAMS ((bfd *, file_ptr, int));
-extern ufile_ptr bfd_tell PARAMS ((bfd *));
-extern int bfd_flush PARAMS ((bfd *));
-extern int bfd_stat PARAMS ((bfd *, struct stat *));
+extern bfd_size_type bfd_bread
+  PARAMS ((PTR, bfd_size_type, bfd *));
+extern bfd_size_type bfd_bwrite
+  PARAMS ((const PTR, bfd_size_type, bfd *));
+extern int bfd_seek
+  PARAMS ((bfd *, file_ptr, int));
+extern ufile_ptr bfd_tell
+  PARAMS ((bfd *));
+extern int bfd_flush
+  PARAMS ((bfd *));
+extern int bfd_stat
+  PARAMS ((bfd *, struct stat *));
 
 /* Deprecated old routines.  */
 #if __GNUC__
@@ -535,40 +530,61 @@ extern void warn_deprecated
 
 #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
 
-#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (boolean) (bool)), true)
+#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
 
-extern boolean bfd_cache_close PARAMS ((bfd *abfd));
+extern bfd_boolean bfd_cache_close
+  PARAMS ((bfd *abfd));
 /* NB: This declaration should match the autogenerated one in libbfd.h.  */
 
-extern boolean bfd_record_phdr
-  PARAMS ((bfd *, unsigned long, boolean, flagword, boolean, bfd_vma,
-          boolean, boolean, unsigned int, struct sec **));
+extern bfd_boolean bfd_record_phdr
+  PARAMS ((bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
+          bfd_boolean, bfd_boolean, unsigned int, struct sec **));
 
 /* Byte swapping routines.  */
 
-bfd_vma                bfd_getb64         PARAMS ((const unsigned char *));
-bfd_vma        bfd_getl64         PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_64 PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_64 PARAMS ((const unsigned char *));
-bfd_vma                bfd_getb32         PARAMS ((const unsigned char *));
-bfd_vma                bfd_getl32         PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_32 PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_32 PARAMS ((const unsigned char *));
-bfd_vma                bfd_getb16         PARAMS ((const unsigned char *));
-bfd_vma                bfd_getl16         PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_16 PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_16 PARAMS ((const unsigned char *));
-void           bfd_putb64         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putl64         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putb32         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putl32         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putb16         PARAMS ((bfd_vma, unsigned char *));
-void           bfd_putl16         PARAMS ((bfd_vma, unsigned char *));
+bfd_vma bfd_getb64
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getl64
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getb_signed_64
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getl_signed_64
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getb32
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getl32
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getb_signed_32
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getl_signed_32
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getb16
+  PARAMS ((const unsigned char *));
+bfd_vma bfd_getl16
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getb_signed_16
+  PARAMS ((const unsigned char *));
+bfd_signed_vma bfd_getl_signed_16
+  PARAMS ((const unsigned char *));
+void bfd_putb64
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putl64
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putb32
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putl32
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putb16
+  PARAMS ((bfd_vma, unsigned char *));
+void bfd_putl16
+  PARAMS ((bfd_vma, unsigned char *));
 
 /* Byte swapping routines which take size and endiannes as arguments.  */
 
-bfd_vma         bfd_get_bits       PARAMS ((bfd_byte *, int, boolean));
-void            bfd_put_bits       PARAMS ((bfd_vma, bfd_byte *, int, boolean));
+bfd_vma bfd_get_bits
+  PARAMS ((bfd_byte *, int, bfd_boolean));
+void bfd_put_bits
+  PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean));
 \f
 /* Externally visible ECOFF routines.  */
 
@@ -581,9 +597,11 @@ struct bfd_link_info;
 struct bfd_link_hash_entry;
 struct bfd_elf_version_tree;
 #endif
-extern bfd_vma bfd_ecoff_get_gp_value PARAMS ((bfd * abfd));
-extern boolean bfd_ecoff_set_gp_value PARAMS ((bfd *abfd, bfd_vma gp_value));
-extern boolean bfd_ecoff_set_regmasks
+extern bfd_vma bfd_ecoff_get_gp_value
+  PARAMS ((bfd * abfd));
+extern bfd_boolean bfd_ecoff_set_gp_value
+  PARAMS ((bfd *abfd, bfd_vma gp_value));
+extern bfd_boolean bfd_ecoff_set_regmasks
   PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask,
           unsigned long *cprmask));
 extern PTR bfd_ecoff_debug_init
@@ -594,39 +612,39 @@ extern void bfd_ecoff_debug_free
   PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
           const struct ecoff_debug_swap *output_swap,
           struct bfd_link_info *));
-extern boolean bfd_ecoff_debug_accumulate
+extern bfd_boolean bfd_ecoff_debug_accumulate
   PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
           const struct ecoff_debug_swap *output_swap,
           bfd *input_bfd, struct ecoff_debug_info *input_debug,
           const struct ecoff_debug_swap *input_swap,
           struct bfd_link_info *));
-extern boolean bfd_ecoff_debug_accumulate_other
+extern bfd_boolean bfd_ecoff_debug_accumulate_other
   PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
           const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
           struct bfd_link_info *));
-extern boolean bfd_ecoff_debug_externals
+extern bfd_boolean bfd_ecoff_debug_externals
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap,
-          boolean relocateable,
-          boolean (*get_extr) (struct symbol_cache_entry *,
-                               struct ecoff_extr *),
+          bfd_boolean relocateable,
+          bfd_boolean (*get_extr) (struct symbol_cache_entry *,
+                                   struct ecoff_extr *),
           void (*set_index) (struct symbol_cache_entry *,
                              bfd_size_type)));
-extern boolean bfd_ecoff_debug_one_external
+extern bfd_boolean bfd_ecoff_debug_one_external
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap,
           const char *name, struct ecoff_extr *esym));
 extern bfd_size_type bfd_ecoff_debug_size
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap));
-extern boolean bfd_ecoff_write_debug
+extern bfd_boolean bfd_ecoff_write_debug
   PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap, file_ptr where));
-extern boolean bfd_ecoff_write_accumulated_debug
+extern bfd_boolean bfd_ecoff_write_accumulated_debug
   PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug,
           const struct ecoff_debug_swap *swap,
           struct bfd_link_info *info, file_ptr where));
-extern boolean bfd_mips_ecoff_create_embedded_relocs
+extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs
   PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
           char **));
 
@@ -639,36 +657,40 @@ struct bfd_link_needed_list
   const char *name;
 };
 
-extern boolean bfd_elf32_record_link_assignment
-  PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean));
-extern boolean bfd_elf64_record_link_assignment
-  PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean));
+extern bfd_boolean bfd_elf32_record_link_assignment
+  PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean));
+extern bfd_boolean bfd_elf64_record_link_assignment
+  PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean));
 extern struct bfd_link_needed_list *bfd_elf_get_needed_list
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_elf_get_bfd_needed_list
+extern bfd_boolean bfd_elf_get_bfd_needed_list
   PARAMS ((bfd *, struct bfd_link_needed_list **));
-extern boolean bfd_elf32_size_dynamic_sections
+extern bfd_boolean bfd_elf32_size_dynamic_sections
   PARAMS ((bfd *, const char *, const char *, const char *,
           const char * const *, struct bfd_link_info *, struct sec **,
           struct bfd_elf_version_tree *));
-extern boolean bfd_elf64_size_dynamic_sections
+extern bfd_boolean bfd_elf64_size_dynamic_sections
   PARAMS ((bfd *, const char *, const char *, const char *,
           const char * const *, struct bfd_link_info *, struct sec **,
           struct bfd_elf_version_tree *));
-extern void bfd_elf_set_dt_needed_name PARAMS ((bfd *, const char *));
-extern void bfd_elf_set_dt_needed_soname PARAMS ((bfd *, const char *));
-extern const char *bfd_elf_get_dt_soname PARAMS ((bfd *));
+extern void bfd_elf_set_dt_needed_name
+  PARAMS ((bfd *, const char *));
+extern void bfd_elf_set_dt_needed_soname
+  PARAMS ((bfd *, const char *));
+extern const char *bfd_elf_get_dt_soname
+  PARAMS ((bfd *));
 extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_elf32_discard_info
+extern bfd_boolean bfd_elf32_discard_info
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_elf64_discard_info
+extern bfd_boolean bfd_elf64_discard_info
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Return an upper bound on the number of bytes required to store a
    copy of ABFD's program header table entries.  Return -1 if an error
    occurs; bfd_get_error will return an appropriate code.  */
-extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd));
+extern long bfd_get_elf_phdr_upper_bound
+  PARAMS ((bfd *abfd));
 
 /* Copy ABFD's program header table entries to *PHDRS.  The entries
    will be stored as an array of Elf_Internal_Phdr structures, as
@@ -677,18 +699,21 @@ extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd));
 
    Return the number of program header table entries read, or -1 if an
    error occurs; bfd_get_error will return an appropriate code.  */
-extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs));
+extern int bfd_get_elf_phdrs
+  PARAMS ((bfd *abfd, void *phdrs));
 
 /* Return the arch_size field of an elf bfd, or -1 if not elf.  */
-extern int bfd_get_arch_size PARAMS ((bfd *));
+extern int bfd_get_arch_size
+  PARAMS ((bfd *));
 
-/* Return true if address "naturally" sign extends, or -1 if not elf.  */
-extern int bfd_get_sign_extend_vma PARAMS ((bfd *));
+/* Return TRUE if address "naturally" sign extends, or -1 if not elf.  */
+extern int bfd_get_sign_extend_vma
+  PARAMS ((bfd *));
 
-extern boolean bfd_m68k_elf32_create_embedded_relocs
+extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
   PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
           char **));
-extern boolean bfd_mips_elf32_create_embedded_relocs
+extern bfd_boolean bfd_mips_elf32_create_embedded_relocs
   PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
           char **));
 
@@ -696,19 +721,19 @@ extern boolean bfd_mips_elf32_create_embedded_relocs
 
 extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_sunos_record_link_assignment
+extern bfd_boolean bfd_sunos_record_link_assignment
   PARAMS ((bfd *, struct bfd_link_info *, const char *));
-extern boolean bfd_sunos_size_dynamic_sections
+extern bfd_boolean bfd_sunos_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **,
           struct sec **));
 
 /* Linux shared library support routines for the linker.  */
 
-extern boolean bfd_i386linux_size_dynamic_sections
+extern bfd_boolean bfd_i386linux_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_m68klinux_size_dynamic_sections
+extern bfd_boolean bfd_m68klinux_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_sparclinux_size_dynamic_sections
+extern bfd_boolean bfd_sparclinux_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* mmap hacks */
@@ -731,34 +756,37 @@ typedef struct _bfd_window
 }
 bfd_window;
 
-extern void bfd_init_window PARAMS ((bfd_window *));
-extern void bfd_free_window PARAMS ((bfd_window *));
-extern boolean bfd_get_file_window
-  PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, boolean));
+extern void bfd_init_window
+  PARAMS ((bfd_window *));
+extern void bfd_free_window
+  PARAMS ((bfd_window *));
+extern bfd_boolean bfd_get_file_window
+  PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean));
 
 /* XCOFF support routines for the linker.  */
 
-extern boolean bfd_xcoff_link_record_set
+extern bfd_boolean bfd_xcoff_link_record_set
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *,
           bfd_size_type));
-extern boolean bfd_xcoff_import_symbol
+extern bfd_boolean bfd_xcoff_import_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *,
           bfd_vma, const char *, const char *, const char *, unsigned int));
-extern boolean bfd_xcoff_export_symbol
+extern bfd_boolean bfd_xcoff_export_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *));
-extern boolean bfd_xcoff_link_count_reloc
+extern bfd_boolean bfd_xcoff_link_count_reloc
   PARAMS ((bfd *, struct bfd_link_info *, const char *));
-extern boolean bfd_xcoff_record_link_assignment
+extern bfd_boolean bfd_xcoff_record_link_assignment
   PARAMS ((bfd *, struct bfd_link_info *, const char *));
-extern boolean bfd_xcoff_size_dynamic_sections
+extern bfd_boolean bfd_xcoff_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *,
-          unsigned long, unsigned long, unsigned long, boolean,
-          int, boolean, boolean, struct sec **, boolean));
-extern boolean bfd_xcoff_link_generate_rtinit
-  PARAMS ((bfd *, const char *, const char *, boolean));
+          unsigned long, unsigned long, unsigned long, bfd_boolean,
+          int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean));
+extern bfd_boolean bfd_xcoff_link_generate_rtinit
+  PARAMS ((bfd *, const char *, const char *, bfd_boolean));
 
 /* XCOFF support routines for ar.  */
-extern boolean bfd_xcoff_ar_archive_set_magic PARAMS ((bfd *, char *));
+extern bfd_boolean bfd_xcoff_ar_archive_set_magic
+  PARAMS ((bfd *, char *));
 
 /* Externally visible COFF routines.  */
 
@@ -767,50 +795,50 @@ struct internal_syment;
 union internal_auxent;
 #endif
 
-extern boolean bfd_coff_get_syment
+extern bfd_boolean bfd_coff_get_syment
   PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *));
 
-extern boolean bfd_coff_get_auxent
+extern bfd_boolean bfd_coff_get_auxent
   PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *));
 
-extern boolean bfd_coff_set_symbol_class
+extern bfd_boolean bfd_coff_set_symbol_class
   PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int));
 
-extern boolean bfd_m68k_coff_create_embedded_relocs
+extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
   PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
           char **));
 
 /* ARM Interworking support.  Called from linker.  */
-extern boolean bfd_arm_allocate_interworking_sections
+extern bfd_boolean bfd_arm_allocate_interworking_sections
   PARAMS ((struct bfd_link_info *));
 
-extern boolean bfd_arm_process_before_allocation
+extern bfd_boolean bfd_arm_process_before_allocation
   PARAMS ((bfd *, struct bfd_link_info *, int));
 
-extern boolean bfd_arm_get_bfd_for_interworking
+extern bfd_boolean bfd_arm_get_bfd_for_interworking
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* PE ARM Interworking support.  Called from linker.  */
-extern boolean bfd_arm_pe_allocate_interworking_sections
+extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
   PARAMS ((struct bfd_link_info *));
 
-extern boolean bfd_arm_pe_process_before_allocation
+extern bfd_boolean bfd_arm_pe_process_before_allocation
   PARAMS ((bfd *, struct bfd_link_info *, int));
 
-extern boolean bfd_arm_pe_get_bfd_for_interworking
+extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* ELF ARM Interworking support.  Called from linker.  */
-extern boolean bfd_elf32_arm_allocate_interworking_sections
+extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
   PARAMS ((struct bfd_link_info *));
 
-extern boolean bfd_elf32_arm_process_before_allocation
+extern bfd_boolean bfd_elf32_arm_process_before_allocation
   PARAMS ((bfd *, struct bfd_link_info *, int));
 
-extern boolean bfd_elf32_arm_get_bfd_for_interworking
+extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
   PARAMS ((bfd *, struct bfd_link_info *));
 
-extern boolean bfd_elf32_arm_add_glue_sections_to_bfd
+extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* TI COFF load page support.  */
@@ -837,19 +865,19 @@ bfd_openstreamr PARAMS ((const char *, const char *, PTR));
 bfd *
 bfd_openw PARAMS ((const char *filename, const char *target));
 
-boolean
+bfd_boolean
 bfd_close PARAMS ((bfd *abfd));
 
-boolean
+bfd_boolean
 bfd_close_all_done PARAMS ((bfd *));
 
 bfd *
 bfd_create PARAMS ((const char *filename, bfd *templ));
 
-boolean
+bfd_boolean
 bfd_make_writable PARAMS ((bfd *abfd));
 
-boolean
+bfd_boolean
 bfd_make_readable PARAMS ((bfd *abfd));
 
 /* Extracted from libbfd.c.  */
@@ -993,6 +1021,14 @@ bfd_make_readable PARAMS ((bfd *abfd));
 #define H_GET_S8 bfd_h_get_signed_8
 
 
+/* Extracted from bfdio.c.  */
+long
+bfd_get_mtime PARAMS ((bfd *abfd));
+
+long
+bfd_get_size PARAMS ((bfd *abfd));
+
+/* Extracted from bfdwin.c.  */
 /* Extracted from section.c.  */
 /* This structure is used for a comdat section, as in PE.  A comdat
    section is associated with a particular symbol.  When the linker
@@ -1421,7 +1457,7 @@ bfd_make_section_anyway PARAMS ((bfd *abfd, const char *name));
 asection *
 bfd_make_section PARAMS ((bfd *, const char *name));
 
-boolean
+bfd_boolean
 bfd_set_section_flags PARAMS ((bfd *abfd, asection *sec, flagword flags));
 
 void
@@ -1431,20 +1467,20 @@ bfd_map_over_sections PARAMS ((bfd *abfd,
     PTR obj),
     PTR obj));
 
-boolean
+bfd_boolean
 bfd_set_section_size PARAMS ((bfd *abfd, asection *sec, bfd_size_type val));
 
-boolean
+bfd_boolean
 bfd_set_section_contents PARAMS ((bfd *abfd, asection *section,
     PTR data, file_ptr offset,
     bfd_size_type count));
 
-boolean
+bfd_boolean
 bfd_get_section_contents PARAMS ((bfd *abfd, asection *section,
     PTR location, file_ptr offset,
     bfd_size_type count));
 
-boolean
+bfd_boolean
 bfd_copy_private_section_data PARAMS ((bfd *ibfd, asection *isec,
     bfd *obfd, asection *osec));
 
@@ -1454,7 +1490,7 @@ bfd_copy_private_section_data PARAMS ((bfd *ibfd, asection *isec,
 void
 _bfd_strip_section_from_output PARAMS ((struct bfd_link_info *info, asection *section));
 
-boolean
+bfd_boolean
 bfd_generic_discard_group PARAMS ((bfd *abfd, asection *group));
 
 /* Extracted from archures.c.  */
@@ -1592,6 +1628,9 @@ enum bfd_architecture
   bfd_arch_dlx,       /* DLX */
   bfd_arch_m68hc11,   /* Motorola 68HC11 */
   bfd_arch_m68hc12,   /* Motorola 68HC12 */
+#define bfd_mach_m6812_default 0
+#define bfd_mach_m6812         1
+#define bfd_mach_m6812s        2
   bfd_arch_z8k,       /* Zilog Z8000 */
 #define bfd_mach_z8001         1
 #define bfd_mach_z8002         2
@@ -1687,15 +1726,15 @@ typedef struct bfd_arch_info
   const char *arch_name;
   const char *printable_name;
   unsigned int section_align_power;
-  /* True if this is the default machine for the architecture.
+  /* TRUE if this is the default machine for the architecture.
      The default arch should be the first entry for an arch so that
      all the entries for that arch can be accessed via <<next>>.  */
-  boolean the_default;
+  bfd_boolean the_default;
   const struct bfd_arch_info * (*compatible)
        PARAMS ((const struct bfd_arch_info *a,
                 const struct bfd_arch_info *b));
 
-  boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
+  bfd_boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
 
   const struct bfd_arch_info *next;
 }
@@ -1713,7 +1752,8 @@ bfd_arch_list PARAMS ((void));
 const bfd_arch_info_type *
 bfd_arch_get_compatible PARAMS ((
     const bfd *abfd,
-    const bfd *bbfd));
+    const bfd *bbfd,
+    bfd_boolean accept_unknowns));
 
 void
 bfd_set_arch_info PARAMS ((bfd *abfd, const bfd_arch_info_type *arg));
@@ -1843,7 +1883,7 @@ struct reloc_howto_struct
       data section of the addend.  The relocation function will
       subtract from the relocation value the address of the location
       being relocated.  */
-  boolean pc_relative;
+  bfd_boolean pc_relative;
 
   /*  The bit position of the reloc value in the destination.
       The relocated value is left shifted by this amount.  */
@@ -1879,21 +1919,20 @@ struct reloc_howto_struct
      USE_REL targets set this field to TRUE.  Why this is so is peculiar
      to each particular target.  For relocs that aren't used in partial
      links (e.g. GOT stuff) it doesn't matter what this is set to.  */
-  boolean partial_inplace;
-
-  /* The src_mask selects which parts of the read in data
-     are to be used in the relocation sum.  E.g., if this was an 8 bit
-     byte of data which we read and relocated, this would be
-     0x000000ff.  When we have relocs which have an addend, such as
-     sun4 extended relocs, the value in the offset part of a
-     relocating field is garbage so we never use it.  In this case
-     the mask would be 0x00000000.  */
+  bfd_boolean partial_inplace;
+
+  /* src_mask selects the part of the instruction (or data) to be used
+     in the relocation sum.  If the target relocations don't have an
+     addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
+     dst_mask to extract the addend from the section contents.  If
+     relocations do have an addend in the reloc, eg. ELF USE_RELA, this
+     field should be zero.  Non-zero values for ELF USE_RELA targets are
+     bogus as in those cases the value in the dst_mask part of the
+     section contents should be treated as garbage.  */
   bfd_vma src_mask;
 
-  /* The dst_mask selects which parts of the instruction are replaced
-     into the instruction.  In most cases src_mask == dst_mask,
-     except in the above special case, where dst_mask would be
-     0x000000ff, and src_mask would be 0x00000000.  */
+  /* dst_mask selects which parts of the instruction (or data) are
+     replaced with a relocated value.  */
   bfd_vma dst_mask;
 
   /* When some formats create PC relative instructions, they leave
@@ -1902,18 +1941,18 @@ struct reloc_howto_struct
      be made just by adding in an ordinary offset (e.g., sun3 a.out).
      Some formats leave the displacement part of an instruction
      empty (e.g., m88k bcs); this flag signals the fact.  */
-  boolean pcrel_offset;
+  bfd_boolean pcrel_offset;
 };
 
 #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
   { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
 #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
   HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
-         NAME, false, 0, 0, IN)
+         NAME, FALSE, 0, 0, IN)
 
 #define EMPTY_HOWTO(C) \
-  HOWTO ((C), 0, 0, 0, false, 0, complain_overflow_dont, NULL, \
-         NULL, false, 0, 0, false)
+  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
+         NULL, FALSE, 0, 0, FALSE)
 
 #define HOWTO_PREPARE(relocation, symbol)               \
   {                                                     \
@@ -2170,7 +2209,7 @@ GP register.  */
   BFD_RELOC_ALPHA_GPREL_LO16,
 
 /* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
-share a common GP, and the target address is adjusted for 
+share a common GP, and the target address is adjusted for
 STO_ALPHA_STD_GPLOAD.  */
   BFD_RELOC_ALPHA_BRSGP,
 
@@ -3199,6 +3238,7 @@ to follow the 16K memory bank of 68HC12 (seen as mapped in the window).  */
 
 /* Sony Xstormy16 Relocations.  */
   BFD_RELOC_XSTORMY16_REL_12,
+  BFD_RELOC_XSTORMY16_12,
   BFD_RELOC_XSTORMY16_24,
   BFD_RELOC_XSTORMY16_FPTR16,
 
@@ -3343,10 +3383,10 @@ asymbol;
 #define bfd_get_symtab_upper_bound(abfd) \
      BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 
-boolean
+bfd_boolean
 bfd_is_local_label PARAMS ((bfd *abfd, asymbol *sym));
 
-boolean
+bfd_boolean
 bfd_is_local_label_name PARAMS ((bfd *abfd, const char *name));
 
 #define bfd_is_local_label_name(abfd, name) \
@@ -3356,7 +3396,7 @@ bfd_is_local_label_name PARAMS ((bfd *abfd, const char *name));
      BFD_SEND (abfd, _bfd_canonicalize_symtab,\
                   (abfd, location))
 
-boolean
+bfd_boolean
 bfd_set_symtab PARAMS ((bfd *abfd, asymbol **location, unsigned int count));
 
 void
@@ -3374,13 +3414,13 @@ _bfd_generic_make_empty_symbol PARAMS ((bfd *));
 int
 bfd_decode_symclass PARAMS ((asymbol *symbol));
 
-boolean
+bfd_boolean
 bfd_is_undefined_symclass PARAMS ((int symclass));
 
 void
 bfd_symbol_info PARAMS ((asymbol *symbol, symbol_info *ret));
 
-boolean
+bfd_boolean
 bfd_copy_private_symbol_data PARAMS ((bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym));
 
 #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
@@ -3407,12 +3447,12 @@ struct _bfd
 
   /* Is the file descriptor being cached?  That is, can it be closed as
      needed, and re-opened when accessed later?  */
-  boolean cacheable;
+  bfd_boolean cacheable;
 
   /* Marks whether there was a default target specified when the
      BFD was opened. This is used to select which matching algorithm
      to use to choose the back end.  */
-  boolean target_defaulted;
+  bfd_boolean target_defaulted;
 
   /* The caching routines use these to maintain a
      least-recently-used list of BFDs.  */
@@ -3423,13 +3463,13 @@ struct _bfd
   ufile_ptr where;
 
   /* ... and here: (``once'' means at least once).  */
-  boolean opened_once;
+  bfd_boolean opened_once;
 
   /* Set if we have a locally maintained mtime value, rather than
      getting it from the file each time.  */
-  boolean mtime_set;
+  bfd_boolean mtime_set;
 
-  /* File modified time, if mtime_set is true.  */
+  /* File modified time, if mtime_set is TRUE.  */
   long mtime;
 
   /* Reserved for an unimplemented file locking extension.  */
@@ -3458,7 +3498,7 @@ struct _bfd
 
   /* Remember when output has begun, to stop strange things
      from happening.  */
-  boolean output_has_begun;
+  bfd_boolean output_has_begun;
 
   /* A hash table for section names.  */
   struct bfd_hash_table section_htab;
@@ -3493,7 +3533,7 @@ struct _bfd
   struct _bfd *my_archive;     /* The containing archive BFD.  */
   struct _bfd *next;           /* The next BFD in the archive.  */
   struct _bfd *archive_head;   /* The first BFD in the archive.  */
-  boolean has_armap;
+  bfd_boolean has_armap;
 
   /* A chain of BFD structures involved in a link.  */
   struct _bfd *link_next;
@@ -3615,7 +3655,7 @@ bfd_canonicalize_reloc PARAMS ((bfd *abfd,
 void
 bfd_set_reloc PARAMS ((bfd *abfd, asection *sec, arelent **rel, unsigned int count));
 
-boolean
+bfd_boolean
 bfd_set_file_flags PARAMS ((bfd *abfd, flagword flags));
 
 int
@@ -3624,15 +3664,9 @@ bfd_get_arch_size PARAMS ((bfd *abfd));
 int
 bfd_get_sign_extend_vma PARAMS ((bfd *abfd));
 
-boolean
+bfd_boolean
 bfd_set_start_address PARAMS ((bfd *abfd, bfd_vma vma));
 
-long
-bfd_get_mtime PARAMS ((bfd *abfd));
-
-long
-bfd_get_size PARAMS ((bfd *abfd));
-
 unsigned int
 bfd_get_gp_size PARAMS ((bfd *abfd));
 
@@ -3642,19 +3676,19 @@ bfd_set_gp_size PARAMS ((bfd *abfd, unsigned int i));
 bfd_vma
 bfd_scan_vma PARAMS ((const char *string, const char **end, int base));
 
-boolean
+bfd_boolean
 bfd_copy_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd));
 
 #define bfd_copy_private_bfd_data(ibfd, obfd) \
      BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
                (ibfd, obfd))
-boolean
+bfd_boolean
 bfd_merge_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd));
 
 #define bfd_merge_private_bfd_data(ibfd, obfd) \
      BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
                (ibfd, obfd))
-boolean
+bfd_boolean
 bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags));
 
 #define bfd_set_private_flags(abfd, flags) \
@@ -3734,9 +3768,9 @@ bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags));
 extern bfd_byte *bfd_get_relocated_section_contents
        PARAMS ((bfd *, struct bfd_link_info *,
                  struct bfd_link_order *, bfd_byte *,
-                 boolean, asymbol **));
+                 bfd_boolean, asymbol **));
 
-boolean
+bfd_boolean
 bfd_alt_mach_code PARAMS ((bfd *abfd, int alternative));
 
 struct bfd_preserve
@@ -3751,7 +3785,7 @@ struct bfd_preserve
   struct bfd_hash_table section_htab;
 };
 
-boolean
+bfd_boolean
 bfd_preserve_save PARAMS ((bfd *, struct bfd_preserve *));
 
 void
@@ -3764,7 +3798,7 @@ bfd_preserve_finish PARAMS ((bfd *, struct bfd_preserve *));
 symindex
 bfd_get_next_mapent PARAMS ((bfd *abfd, symindex previous, carsym **sym));
 
-boolean
+bfd_boolean
 bfd_set_archive_head PARAMS ((bfd *output, bfd *new_head));
 
 bfd *
@@ -3777,7 +3811,7 @@ bfd_core_file_failing_command PARAMS ((bfd *abfd));
 int
 bfd_core_file_failing_signal PARAMS ((bfd *abfd));
 
-boolean
+bfd_boolean
 core_file_matches_executable_p PARAMS ((bfd *core_bfd, bfd *exec_bfd));
 
 /* Extracted from targets.c.  */
@@ -3898,10 +3932,10 @@ typedef struct bfd_target
   const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *));
 
   /* Set the format of a file being written.  */
-  boolean  (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
+  bfd_boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
 
   /* Write cached information into a file being written, at <<bfd_close>>.  */
-  boolean  (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
+  bfd_boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
 
 
   /* Generic entry points.  */
@@ -3913,15 +3947,15 @@ CONCAT2 (NAME,_get_section_contents), \
 CONCAT2 (NAME,_get_section_contents_in_window)
 
   /* Called when the BFD is being closed to do any necessary cleanup.  */
-  boolean  (*_close_and_cleanup) PARAMS ((bfd *));
+  bfd_boolean (*_close_and_cleanup) PARAMS ((bfd *));
   /* Ask the BFD to free all cached information.  */
-  boolean  (*_bfd_free_cached_info) PARAMS ((bfd *));
+  bfd_boolean (*_bfd_free_cached_info) PARAMS ((bfd *));
   /* Called when a new section is created.  */
-  boolean  (*_new_section_hook) PARAMS ((bfd *, sec_ptr));
+  bfd_boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr));
   /* Read the contents of a section.  */
-  boolean  (*_bfd_get_section_contents) PARAMS ((bfd *, sec_ptr, PTR,
-                                                 file_ptr, bfd_size_type));
-  boolean  (*_bfd_get_section_contents_in_window)
+  bfd_boolean (*_bfd_get_section_contents)
+    PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+  bfd_boolean (*_bfd_get_section_contents_in_window)
     PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type));
 
   /* Entry points to copy private data.  */
@@ -3934,32 +3968,32 @@ CONCAT2 (NAME,_bfd_set_private_flags), \
 CONCAT2 (NAME,_bfd_print_private_bfd_data) \
   /* Called to copy BFD general private data from one object file
      to another.  */
-  boolean  (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
+  bfd_boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
   /* Called to merge BFD general private data from one object file
      to a common output file when linking.  */
-  boolean  (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *));
+  bfd_boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *));
   /* Called to copy BFD private section data from one object file
      to another.  */
-  boolean  (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr,
-                                                      bfd *, sec_ptr));
+  bfd_boolean (*_bfd_copy_private_section_data)
+    PARAMS ((bfd *, sec_ptr, bfd *, sec_ptr));
   /* Called to copy BFD private symbol data from one symbol
      to another.  */
-  boolean  (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *,
-                                                     bfd *, asymbol *));
+  bfd_boolean (*_bfd_copy_private_symbol_data)
+    PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
   /* Called to set private backend flags.  */
-  boolean  (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
+  bfd_boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
 
   /* Called to print private BFD data.  */
-  boolean  (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
+  bfd_boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
 
   /* Core file entry points.  */
 #define BFD_JUMP_TABLE_CORE(NAME) \
 CONCAT2 (NAME,_core_file_failing_command), \
 CONCAT2 (NAME,_core_file_failing_signal), \
 CONCAT2 (NAME,_core_file_matches_executable_p)
-  char *   (*_core_file_failing_command) PARAMS ((bfd *));
-  int      (*_core_file_failing_signal) PARAMS ((bfd *));
-  boolean  (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *));
+  char *      (*_core_file_failing_command) PARAMS ((bfd *));
+  int         (*_core_file_failing_signal) PARAMS ((bfd *));
+  bfd_boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *));
 
   /* Archive entry points.  */
 #define BFD_JUMP_TABLE_ARCHIVE(NAME) \
@@ -3973,19 +4007,19 @@ CONCAT2 (NAME,_openr_next_archived_file), \
 CONCAT2 (NAME,_get_elt_at_index), \
 CONCAT2 (NAME,_generic_stat_arch_elt), \
 CONCAT2 (NAME,_update_armap_timestamp)
-  boolean  (*_bfd_slurp_armap) PARAMS ((bfd *));
-  boolean  (*_bfd_slurp_extended_name_table) PARAMS ((bfd *));
-  boolean  (*_bfd_construct_extended_name_table)
+  bfd_boolean (*_bfd_slurp_armap) PARAMS ((bfd *));
+  bfd_boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *));
+  bfd_boolean (*_bfd_construct_extended_name_table)
     PARAMS ((bfd *, char **, bfd_size_type *, const char **));
-  void     (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *));
-  boolean  (*write_armap)
+  void        (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *));
+  bfd_boolean (*write_armap)
     PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
-  PTR      (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *));
-  bfd *    (*openr_next_archived_file) PARAMS ((bfd *, bfd *));
+  PTR         (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *));
+  bfd *       (*openr_next_archived_file) PARAMS ((bfd *, bfd *));
 #define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i))
-  bfd *    (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex));
-  int      (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *));
-  boolean  (*_bfd_update_armap_timestamp) PARAMS ((bfd *));
+  bfd *       (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex));
+  int         (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *));
+  bfd_boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *));
 
   /* Entry points used for symbols.  */
 #define BFD_JUMP_TABLE_SYMBOLS(NAME) \
@@ -4000,59 +4034,57 @@ CONCAT2 (NAME,_find_nearest_line), \
 CONCAT2 (NAME,_bfd_make_debug_symbol), \
 CONCAT2 (NAME,_read_minisymbols), \
 CONCAT2 (NAME,_minisymbol_to_symbol)
-  long     (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *));
-  long     (*_bfd_canonicalize_symtab) PARAMS ((bfd *,
+  long        (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *));
+  long        (*_bfd_canonicalize_symtab) PARAMS ((bfd *,
                                                 struct symbol_cache_entry **));
   struct symbol_cache_entry *
-           (*_bfd_make_empty_symbol) PARAMS ((bfd *));
-  void     (*_bfd_print_symbol) PARAMS ((bfd *, PTR,
-                                         struct symbol_cache_entry *,
-                                         bfd_print_symbol_type));
+              (*_bfd_make_empty_symbol) PARAMS ((bfd *));
+  void        (*_bfd_print_symbol)
+    PARAMS ((bfd *, PTR, struct symbol_cache_entry *, bfd_print_symbol_type));
 #define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e))
-  void     (*_bfd_get_symbol_info) PARAMS ((bfd *,
-                                            struct symbol_cache_entry *,
-                                            symbol_info *));
+  void        (*_bfd_get_symbol_info)
+    PARAMS ((bfd *, struct symbol_cache_entry *, symbol_info *));
 #define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e))
-  boolean  (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *));
+  bfd_boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *));
 
-  alent *  (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
-  boolean  (*_bfd_find_nearest_line)
+  alent *     (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
+  bfd_boolean (*_bfd_find_nearest_line)
     PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma,
              const char **, const char **, unsigned int *));
  /* Back-door to allow format-aware applications to create debug symbols
     while using BFD for everything else.  Currently used by the assembler
     when creating COFF files.  */
-  asymbol *(*_bfd_make_debug_symbol) PARAMS ((bfd *, void *,
-                                              unsigned long size));
+  asymbol *   (*_bfd_make_debug_symbol)
+    PARAMS ((bfd *, void *, unsigned long size));
 #define bfd_read_minisymbols(b, d, m, s) \
   BFD_SEND (b, _read_minisymbols, (b, d, m, s))
-  long     (*_read_minisymbols) PARAMS ((bfd *, boolean, PTR *,
-                                         unsigned int *));
+  long        (*_read_minisymbols)
+    PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *));
 #define bfd_minisymbol_to_symbol(b, d, m, f) \
   BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
-  asymbol *(*_minisymbol_to_symbol) PARAMS ((bfd *, boolean, const PTR,
-                                             asymbol *));
+  asymbol *   (*_minisymbol_to_symbol)
+    PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *));
 
   /* Routines for relocs.  */
 #define BFD_JUMP_TABLE_RELOCS(NAME) \
 CONCAT2 (NAME,_get_reloc_upper_bound), \
 CONCAT2 (NAME,_canonicalize_reloc), \
 CONCAT2 (NAME,_bfd_reloc_type_lookup)
-  long     (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr));
-  long     (*_bfd_canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **,
-                                               struct symbol_cache_entry **));
+  long        (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr));
+  long        (*_bfd_canonicalize_reloc)
+    PARAMS ((bfd *, sec_ptr, arelent **, struct symbol_cache_entry **));
   /* See documentation on reloc types.  */
   reloc_howto_type *
-           (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type));
+              (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type));
 
   /* Routines used when writing an object file.  */
 #define BFD_JUMP_TABLE_WRITE(NAME) \
 CONCAT2 (NAME,_set_arch_mach), \
 CONCAT2 (NAME,_set_section_contents)
-  boolean  (*_bfd_set_arch_mach) PARAMS ((bfd *, enum bfd_architecture,
-                                          unsigned long));
-  boolean  (*_bfd_set_section_contents) PARAMS ((bfd *, sec_ptr, PTR,
-                                                 file_ptr, bfd_size_type));
+  bfd_boolean (*_bfd_set_arch_mach)
+    PARAMS ((bfd *, enum bfd_architecture, unsigned long));
+  bfd_boolean (*_bfd_set_section_contents)
+    PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
 
   /* Routines used by the linker.  */
 #define BFD_JUMP_TABLE_LINK(NAME) \
@@ -4068,42 +4100,46 @@ CONCAT2 (NAME,_bfd_link_split_section), \
 CONCAT2 (NAME,_bfd_gc_sections), \
 CONCAT2 (NAME,_bfd_merge_sections), \
 CONCAT2 (NAME,_bfd_discard_group)
-  int      (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean));
-  bfd_byte *(*_bfd_get_relocated_section_contents)
+  int         (*_bfd_sizeof_headers) PARAMS ((bfd *, bfd_boolean));
+  bfd_byte *  (*_bfd_get_relocated_section_contents)
     PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-             bfd_byte *, boolean, struct symbol_cache_entry **));
+             bfd_byte *, bfd_boolean, struct symbol_cache_entry **));
 
-  boolean  (*_bfd_relax_section)
-    PARAMS ((bfd *, struct sec *, struct bfd_link_info *, boolean *));
+  bfd_boolean (*_bfd_relax_section)
+    PARAMS ((bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *));
 
   /* Create a hash table for the linker.  Different backends store
      different information in this table.  */
-  struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *));
+  struct bfd_link_hash_table *
+              (*_bfd_link_hash_table_create) PARAMS ((bfd *));
 
   /* Release the memory associated with the linker hash table.  */
-  void (*_bfd_link_hash_table_free) PARAMS ((struct bfd_link_hash_table *));
+  void        (*_bfd_link_hash_table_free)
+    PARAMS ((struct bfd_link_hash_table *));
 
   /* Add symbols from this object file into the hash table.  */
-  boolean  (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *));
+  bfd_boolean (*_bfd_link_add_symbols)
+    PARAMS ((bfd *, struct bfd_link_info *));
 
   /* Indicate that we are only retrieving symbol values from this section.  */
-  void     (*_bfd_link_just_syms) PARAMS ((asection *, struct bfd_link_info *));
+  void        (*_bfd_link_just_syms)
+    PARAMS ((asection *, struct bfd_link_info *));
 
   /* Do a link based on the link_order structures attached to each
      section of the BFD.  */
-  boolean  (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
+  bfd_boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
 
   /* Should this section be split up into smaller pieces during linking.  */
-  boolean  (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *));
+  bfd_boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *));
 
   /* Remove sections that are not referenced from the output.  */
-  boolean  (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *));
+  bfd_boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *));
 
   /* Attempt to merge SEC_MERGE sections.  */
-  boolean  (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *));
+  bfd_boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *));
 
   /* Discard members of a group.  */
-  boolean  (*_bfd_discard_group) PARAMS ((bfd *, struct sec *));
+  bfd_boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *));
 
   /* Routines to handle dynamic symbols and relocs.  */
 #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
@@ -4112,14 +4148,14 @@ CONCAT2 (NAME,_canonicalize_dynamic_symtab), \
 CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \
 CONCAT2 (NAME,_canonicalize_dynamic_reloc)
   /* Get the amount of memory required to hold the dynamic symbols.  */
-  long     (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
+  long        (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
   /* Read in the dynamic symbols.  */
-  long     (*_bfd_canonicalize_dynamic_symtab)
+  long        (*_bfd_canonicalize_dynamic_symtab)
     PARAMS ((bfd *, struct symbol_cache_entry **));
   /* Get the amount of memory required to hold the dynamic relocs.  */
-  long     (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *));
+  long        (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *));
   /* Read in the dynamic relocs.  */
-  long     (*_bfd_canonicalize_dynamic_reloc)
+  long        (*_bfd_canonicalize_dynamic_reloc)
     PARAMS ((bfd *, arelent **, struct symbol_cache_entry **));
 
   /* Opposite endian version of this target.  */
@@ -4131,7 +4167,7 @@ CONCAT2 (NAME,_canonicalize_dynamic_reloc)
 
 } bfd_target;
 
-boolean
+bfd_boolean
 bfd_set_default_target PARAMS ((const char *name));
 
 const bfd_target *
@@ -4144,20 +4180,20 @@ const bfd_target *
 bfd_search_for_target PARAMS ((int (* search_func) (const bfd_target *, void *), void *));
 
 /* Extracted from format.c.  */
-boolean
+bfd_boolean
 bfd_check_format PARAMS ((bfd *abfd, bfd_format format));
 
-boolean
+bfd_boolean
 bfd_check_format_matches PARAMS ((bfd *abfd, bfd_format format, char ***matching));
 
-boolean
+bfd_boolean
 bfd_set_format PARAMS ((bfd *abfd, bfd_format format));
 
 const char *
 bfd_format_string PARAMS ((bfd_format format));
 
 /* Extracted from linker.c.  */
-boolean
+bfd_boolean
 bfd_link_split_section PARAMS ((bfd *abfd, asection *sec));
 
 #define bfd_link_split_section(abfd, sec) \
index 5412ac8bfc9ce724f785d1661fb973d00a154c8f..f9051c0d585d9999a6d2334a18b872f1f2acfa54 100644 (file)
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -53,12 +53,12 @@ CODE_FRAGMENT
 .
 .  {* Is the file descriptor being cached?  That is, can it be closed as
 .     needed, and re-opened when accessed later?  *}
-.  boolean cacheable;
+.  bfd_boolean cacheable;
 .
 .  {* Marks whether there was a default target specified when the
 .     BFD was opened. This is used to select which matching algorithm
 .     to use to choose the back end.  *}
-.  boolean target_defaulted;
+.  bfd_boolean target_defaulted;
 .
 .  {* The caching routines use these to maintain a
 .     least-recently-used list of BFDs.  *}
@@ -69,13 +69,13 @@ CODE_FRAGMENT
 .  ufile_ptr where;
 .
 .  {* ... and here: (``once'' means at least once).  *}
-.  boolean opened_once;
+.  bfd_boolean opened_once;
 .
 .  {* Set if we have a locally maintained mtime value, rather than
 .     getting it from the file each time.  *}
-.  boolean mtime_set;
+.  bfd_boolean mtime_set;
 .
-.  {* File modified time, if mtime_set is true.  *}
+.  {* File modified time, if mtime_set is TRUE.  *}
 .  long mtime;
 .
 .  {* Reserved for an unimplemented file locking extension.  *}
@@ -104,7 +104,7 @@ CODE_FRAGMENT
 .
 .  {* Remember when output has begun, to stop strange things
 .     from happening.  *}
-.  boolean output_has_begun;
+.  bfd_boolean output_has_begun;
 .
 .  {* A hash table for section names.  *}
 .  struct bfd_hash_table section_htab;
@@ -139,7 +139,7 @@ CODE_FRAGMENT
 .  struct _bfd *my_archive;     {* The containing archive BFD.  *}
 .  struct _bfd *next;           {* The next BFD in the archive.  *}
 .  struct _bfd *archive_head;   {* The first BFD in the archive.  *}
-.  boolean has_armap;
+.  bfd_boolean has_armap;
 .
 .  {* A chain of BFD structures involved in a link.  *}
 .  struct _bfd *link_next;
@@ -659,7 +659,7 @@ FUNCTION
        bfd_set_file_flags
 
 SYNOPSIS
-       boolean bfd_set_file_flags(bfd *abfd, flagword flags);
+       bfd_boolean bfd_set_file_flags(bfd *abfd, flagword flags);
 
 DESCRIPTION
        Set the flag word in the BFD @var{abfd} to the value @var{flags}.
@@ -674,7 +674,7 @@ DESCRIPTION
 
 */
 
-boolean
+bfd_boolean
 bfd_set_file_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
@@ -682,23 +682,23 @@ bfd_set_file_flags (abfd, flags)
   if (abfd->format != bfd_object)
     {
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 
   if (bfd_read_p (abfd))
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   bfd_get_file_flags (abfd) = flags;
   if ((flags & bfd_applicable_file_flags (abfd)) != flags)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 void
@@ -810,103 +810,22 @@ FUNCTION
        bfd_set_start_address
 
 SYNOPSIS
-       boolean bfd_set_start_address(bfd *abfd, bfd_vma vma);
+       bfd_boolean bfd_set_start_address(bfd *abfd, bfd_vma vma);
 
 DESCRIPTION
        Make @var{vma} the entry point of output BFD @var{abfd}.
 
 RETURNS
-       Returns <<true>> on success, <<false>> otherwise.
+       Returns <<TRUE>> on success, <<FALSE>> otherwise.
 */
 
-boolean
+bfd_boolean
 bfd_set_start_address (abfd, vma)
      bfd *abfd;
      bfd_vma vma;
 {
   abfd->start_address = vma;
-  return true;
-}
-
-/*
-FUNCTION
-       bfd_get_mtime
-
-SYNOPSIS
-       long bfd_get_mtime(bfd *abfd);
-
-DESCRIPTION
-       Return the file modification time (as read from the file system, or
-       from the archive header for archive members).
-
-*/
-
-long
-bfd_get_mtime (abfd)
-     bfd *abfd;
-{
-  FILE *fp;
-  struct stat buf;
-
-  if (abfd->mtime_set)
-    return abfd->mtime;
-
-  fp = bfd_cache_lookup (abfd);
-  if (0 != fstat (fileno (fp), &buf))
-    return 0;
-
-  abfd->mtime = buf.st_mtime;          /* Save value in case anyone wants it */
-  return buf.st_mtime;
-}
-
-/*
-FUNCTION
-       bfd_get_size
-
-SYNOPSIS
-       long bfd_get_size(bfd *abfd);
-
-DESCRIPTION
-       Return the file size (as read from file system) for the file
-       associated with BFD @var{abfd}.
-
-       The initial motivation for, and use of, this routine is not
-       so we can get the exact size of the object the BFD applies to, since
-       that might not be generally possible (archive members for example).
-       It would be ideal if someone could eventually modify
-       it so that such results were guaranteed.
-
-       Instead, we want to ask questions like "is this NNN byte sized
-       object I'm about to try read from file offset YYY reasonable?"
-       As as example of where we might do this, some object formats
-       use string tables for which the first <<sizeof (long)>> bytes of the
-       table contain the size of the table itself, including the size bytes.
-       If an application tries to read what it thinks is one of these
-       string tables, without some way to validate the size, and for
-       some reason the size is wrong (byte swapping error, wrong location
-       for the string table, etc.), the only clue is likely to be a read
-       error when it tries to read the table, or a "virtual memory
-       exhausted" error when it tries to allocate 15 bazillon bytes
-       of space for the 15 bazillon byte table it is about to read.
-       This function at least allows us to answer the quesion, "is the
-       size reasonable?".
-*/
-
-long
-bfd_get_size (abfd)
-     bfd *abfd;
-{
-  FILE *fp;
-  struct stat buf;
-
-  if ((abfd->flags & BFD_IN_MEMORY) != 0)
-    return ((struct bfd_in_memory *) abfd->iostream)->size;
-
-  fp = bfd_cache_lookup (abfd);
-  if (0 != fstat (fileno (fp), & buf))
-    return 0;
-
-  return buf.st_size;
+  return TRUE;
 }
 
 /*
@@ -1094,11 +1013,11 @@ FUNCTION
        bfd_copy_private_bfd_data
 
 SYNOPSIS
-       boolean bfd_copy_private_bfd_data(bfd *ibfd, bfd *obfd);
+       bfd_boolean bfd_copy_private_bfd_data(bfd *ibfd, bfd *obfd);
 
 DESCRIPTION
        Copy private BFD information from the BFD @var{ibfd} to the
-       the BFD @var{obfd}.  Return <<true>> on success, <<false>> on error.
+       the BFD @var{obfd}.  Return <<TRUE>> on success, <<FALSE>> on error.
        Possible error returns are:
 
        o <<bfd_error_no_memory>> -
@@ -1115,12 +1034,12 @@ FUNCTION
        bfd_merge_private_bfd_data
 
 SYNOPSIS
-       boolean bfd_merge_private_bfd_data(bfd *ibfd, bfd *obfd);
+       bfd_boolean bfd_merge_private_bfd_data(bfd *ibfd, bfd *obfd);
 
 DESCRIPTION
        Merge private BFD information from the BFD @var{ibfd} to the
-       the output file BFD @var{obfd} when linking.  Return <<true>>
-       on success, <<false>> on error.  Possible error returns are:
+       the output file BFD @var{obfd} when linking.  Return <<TRUE>>
+       on success, <<FALSE>> on error.  Possible error returns are:
 
        o <<bfd_error_no_memory>> -
        Not enough memory exists to create private data for @var{obfd}.
@@ -1136,11 +1055,11 @@ FUNCTION
        bfd_set_private_flags
 
 SYNOPSIS
-       boolean bfd_set_private_flags(bfd *abfd, flagword flags);
+       bfd_boolean bfd_set_private_flags(bfd *abfd, flagword flags);
 
 DESCRIPTION
        Set private BFD flag information in the BFD @var{abfd}.
-       Return <<true>> on success, <<false>> on error.  Possible error
+       Return <<TRUE>> on success, <<FALSE>> on error.  Possible error
        returns are:
 
        o <<bfd_error_no_memory>> -
@@ -1233,7 +1152,7 @@ DESCRIPTION
 .extern bfd_byte *bfd_get_relocated_section_contents
 .      PARAMS ((bfd *, struct bfd_link_info *,
 .                struct bfd_link_order *, bfd_byte *,
-.                boolean, asymbol **));
+.                bfd_boolean, asymbol **));
 .
 
 */
@@ -1245,12 +1164,12 @@ bfd_get_relocated_section_contents (abfd, link_info, link_order, data,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   bfd *abfd2;
   bfd_byte *(*fn) PARAMS ((bfd *, struct bfd_link_info *,
-                          struct bfd_link_order *, bfd_byte *, boolean,
+                          struct bfd_link_order *, bfd_byte *, bfd_boolean,
                           asymbol **));
 
   if (link_order->type == bfd_indirect_link_order)
@@ -1269,17 +1188,17 @@ bfd_get_relocated_section_contents (abfd, link_info, link_order, data,
 
 /* Record information about an ELF program header.  */
 
-boolean
+bfd_boolean
 bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at,
                 includes_filehdr, includes_phdrs, count, secs)
      bfd *abfd;
      unsigned long type;
-     boolean flags_valid;
+     bfd_boolean flags_valid;
      flagword flags;
-     boolean at_valid;
+     bfd_boolean at_valid;
      bfd_vma at;
-     boolean includes_filehdr;
-     boolean includes_phdrs;
+     bfd_boolean includes_filehdr;
+     bfd_boolean includes_phdrs;
      unsigned int count;
      asection **secs;
 {
@@ -1287,13 +1206,13 @@ bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at,
   bfd_size_type amt;
 
   if (bfd_get_flavour (abfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   amt = sizeof (struct elf_segment_map);
   amt += ((bfd_size_type) count - 1) * sizeof (asection *);
   m = (struct elf_segment_map *) bfd_alloc (abfd, amt);
   if (m == NULL)
-    return false;
+    return FALSE;
 
   m->next = NULL;
   m->p_type = type;
@@ -1311,7 +1230,7 @@ bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at,
     ;
   *pm = m;
 
-  return true;
+  return TRUE;
 }
 
 void
@@ -1343,7 +1262,7 @@ FUNCTION
        bfd_alt_mach_code
 
 SYNOPSIS
-       boolean bfd_alt_mach_code(bfd *abfd, int alternative);
+       bfd_boolean bfd_alt_mach_code(bfd *abfd, int alternative);
 
 DESCRIPTION
 
@@ -1354,7 +1273,7 @@ DESCRIPTION
        machine codes.
 */
 
-boolean
+bfd_boolean
 bfd_alt_mach_code (abfd, alternative)
      bfd *abfd;
      int alternative;
@@ -1372,25 +1291,25 @@ bfd_alt_mach_code (abfd, alternative)
        case 1:
          code = get_elf_backend_data (abfd)->elf_machine_alt1;
          if (code == 0)
-           return false;
+           return FALSE;
          break;
 
        case 2:
          code = get_elf_backend_data (abfd)->elf_machine_alt2;
          if (code == 0)
-           return false;
+           return FALSE;
          break;
 
        default:
-         return false;
+         return FALSE;
        }
 
       elf_elfheader (abfd)->e_machine = code;
 
-      return true;
+      return TRUE;
     }
 
-  return false;
+  return FALSE;
 }
 
 /*
@@ -1415,7 +1334,7 @@ FUNCTION
        bfd_preserve_save
 
 SYNOPSIS
-       boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
+       bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
 
 DESCRIPTION
        When testing an object for compatibility with a particular
@@ -1430,7 +1349,7 @@ DESCRIPTION
 
 */
 
-boolean
+bfd_boolean
 bfd_preserve_save (abfd, preserve)
      bfd *abfd;
      struct bfd_preserve *preserve;
@@ -1438,24 +1357,22 @@ bfd_preserve_save (abfd, preserve)
   preserve->tdata = abfd->tdata.any;
   preserve->arch_info = abfd->arch_info;
   preserve->flags = abfd->flags;
-
   preserve->sections = abfd->sections;
   preserve->section_tail = abfd->section_tail;
   preserve->section_count = abfd->section_count;
   preserve->section_htab = abfd->section_htab;
 
   if (! bfd_hash_table_init (&abfd->section_htab, bfd_section_hash_newfunc))
-    return false;
+    return FALSE;
 
   abfd->tdata.any = NULL;
   abfd->arch_info = &bfd_default_arch_struct;
-  abfd->flags = 0;
-
+  abfd->flags &= BFD_IN_MEMORY;
   abfd->sections = NULL;
   abfd->section_tail = &abfd->sections;
   abfd->section_count = 0;
 
-  return true;
+  return TRUE;
 }
 
 /*
@@ -1482,7 +1399,6 @@ bfd_preserve_restore (abfd, preserve)
   abfd->tdata.any = preserve->tdata;
   abfd->arch_info = preserve->arch_info;
   abfd->flags = preserve->flags;
-
   abfd->section_htab = preserve->section_htab;
   abfd->sections = preserve->sections;
   abfd->section_tail = preserve->section_tail;
index 7bddabf5fa818c6f5df8bb75fdc3aba88bc9b78c..a27eb95f5993415482b93fb2335546d7b35b7b7e 100644 (file)
@@ -41,17 +41,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    a start symbol, an end symbol, and an absolute length symbol.  */
 #define BIN_SYMS 3
 
-static boolean binary_mkobject PARAMS ((bfd *));
+static bfd_boolean binary_mkobject PARAMS ((bfd *));
 static const bfd_target *binary_object_p PARAMS ((bfd *));
-static boolean binary_get_section_contents
+static bfd_boolean binary_get_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
 static long binary_get_symtab_upper_bound PARAMS ((bfd *));
 static char *mangle_name PARAMS ((bfd *, char *));
 static long binary_get_symtab PARAMS ((bfd *, asymbol **));
 static void binary_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
-static boolean binary_set_section_contents
+static bfd_boolean binary_set_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-static int binary_sizeof_headers PARAMS ((bfd *, boolean));
+static int binary_sizeof_headers PARAMS ((bfd *, bfd_boolean));
 
 /* Set by external programs - specifies the BFD architecture
    to use when creating binary BFDs.  */
@@ -59,11 +59,11 @@ enum bfd_architecture bfd_external_binary_architecture = bfd_arch_unknown;
 
 /* Create a binary object.  Invoked via bfd_set_format.  */
 
-static boolean
+static bfd_boolean
 binary_mkobject (abfd)
      bfd *abfd ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Any file may be considered to be a binary file, provided the target
@@ -119,7 +119,7 @@ binary_object_p (abfd)
 
 /* Get contents of the only section.  */
 
-static boolean
+static bfd_boolean
 binary_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section ATTRIBUTE_UNUSED;
@@ -129,8 +129,8 @@ binary_get_section_contents (abfd, section, location, offset, count)
 {
   if (bfd_seek (abfd, offset, SEEK_SET) != 0
       || bfd_bread (location, count, abfd) != count)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Return the amount of memory needed to read the symbol table.  */
@@ -185,7 +185,7 @@ binary_get_symtab (abfd, alocation)
 
   syms = (asymbol *) bfd_alloc (abfd, amt);
   if (syms == NULL)
-    return (long) false;
+    return 0;
 
   /* Start symbol.  */
   syms[0].the_bfd = abfd;
@@ -250,7 +250,7 @@ binary_get_symbol_info (ignore_abfd, symbol, ret)
 
 /* Write section contents of a binary file.  */
 
-static boolean
+static bfd_boolean
 binary_set_section_contents (abfd, sec, data, offset, size)
      bfd *abfd;
      asection *sec;
@@ -259,18 +259,18 @@ binary_set_section_contents (abfd, sec, data, offset, size)
      bfd_size_type size;
 {
   if (size == 0)
-    return true;
+    return TRUE;
 
   if (! abfd->output_has_begun)
     {
-      boolean found_low;
+      bfd_boolean found_low;
       bfd_vma low;
       asection *s;
 
       /* The lowest section LMA sets the virtual address of the start
          of the file.  We use this to set the file position of all the
          sections.  */
-      found_low = false;
+      found_low = FALSE;
       low = 0;
       for (s = abfd->sections; s != NULL; s = s->next)
        if (((s->flags
@@ -280,7 +280,7 @@ binary_set_section_contents (abfd, sec, data, offset, size)
            && (! found_low || s->lma < low))
          {
            low = s->lma;
-           found_low = true;
+           found_low = TRUE;
          }
 
       for (s = abfd->sections; s != NULL; s = s->next)
@@ -308,16 +308,16 @@ binary_set_section_contents (abfd, sec, data, offset, size)
               (unsigned long) s->filepos);
        }
 
-      abfd->output_has_begun = true;
+      abfd->output_has_begun = TRUE;
     }
 
   /* We don't want to output anything for a section that is neither
      loaded nor allocated.  The contents of such a section are not
      meaningful in the binary format.  */
   if ((sec->flags & (SEC_LOAD | SEC_ALLOC)) == 0)
-    return true;
+    return TRUE;
   if ((sec->flags & SEC_NEVER_LOAD) != 0)
-    return true;
+    return TRUE;
 
   return _bfd_generic_set_section_contents (abfd, sec, data, offset, size);
 }
@@ -327,7 +327,7 @@ binary_set_section_contents (abfd, sec, data, offset, size)
 static int
 binary_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return 0;
 }
index 37afbb9423e53fa0d4dfd6519a8a501d27c68794..b839929c38f0c41658aa4ae7ad14b604412ee6a6 100644 (file)
@@ -30,30 +30,59 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "aout/stab_gnu.h"
 #include "libaout.h"           /* BFD a.out internal data structures.  */
 
-static int                   aligncode PARAMS ((bfd *abfd, asection *input_section, arelent *r, unsigned int shrink));
-static void                  perform_slip PARAMS ((bfd *abfd, unsigned int slip, asection *input_section, bfd_vma value));
-static boolean               b_out_squirt_out_relocs PARAMS ((bfd *abfd, asection *section));
-static const bfd_target *    b_out_callback PARAMS ((bfd *));
-static bfd_reloc_status_type calljx_callback PARAMS ((bfd *, struct bfd_link_info *, arelent *, PTR src, PTR dst, asection *));
-static bfd_reloc_status_type callj_callback PARAMS ((bfd *, struct bfd_link_info *, arelent *, PTR data, unsigned int srcidx, unsigned int dstidx, asection *, boolean));
-static bfd_vma               get_value PARAMS ((arelent *, struct bfd_link_info *, asection *));
-static int                   abs32code PARAMS ((bfd *, asection *, arelent *, unsigned int, struct bfd_link_info *));
-static boolean               b_out_bfd_relax_section PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
-static bfd_byte *            b_out_bfd_get_relocated_section_contents  PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, boolean, asymbol **));
-static int                   b_out_sizeof_headers PARAMS ((bfd *, boolean));
-static boolean               b_out_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-static boolean               b_out_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-static long                  b_out_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr));
-static long                  b_out_canonicalize_reloc PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
-static boolean               b_out_slurp_reloc_table PARAMS ((bfd *, sec_ptr, asymbol **));
-static reloc_howto_type *    b_out_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type));
-static boolean               b_out_write_object_contents PARAMS ((bfd *));
-static int                   b_out_symbol_cmp PARAMS ((const void *, const void *));
-static boolean               b_out_mkobject PARAMS ((bfd *));
-static const bfd_target *    b_out_object_p PARAMS ((bfd *));
-
-void bout_swap_exec_header_in  PARAMS ((bfd *, struct external_exec *, struct internal_exec *));
-void bout_swap_exec_header_out PARAMS ((bfd *, struct internal_exec *, struct external_exec *));
+static int aligncode
+  PARAMS ((bfd *abfd, asection *input_section, arelent *r,
+          unsigned int shrink));
+static void perform_slip
+  PARAMS ((bfd *abfd, unsigned int slip, asection *input_section,
+          bfd_vma value));
+static bfd_boolean b_out_squirt_out_relocs
+  PARAMS ((bfd *abfd, asection *section));
+static const bfd_target *b_out_callback
+  PARAMS ((bfd *));
+static bfd_reloc_status_type calljx_callback
+  PARAMS ((bfd *, struct bfd_link_info *, arelent *, PTR src, PTR dst,
+          asection *));
+static bfd_reloc_status_type callj_callback
+  PARAMS ((bfd *, struct bfd_link_info *, arelent *, PTR data,
+          unsigned int srcidx, unsigned int dstidx, asection *, bfd_boolean));
+static bfd_vma get_value
+  PARAMS ((arelent *, struct bfd_link_info *, asection *));
+static int abs32code
+  PARAMS ((bfd *, asection *, arelent *, unsigned int,
+          struct bfd_link_info *));
+static bfd_boolean b_out_bfd_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+static bfd_byte *b_out_bfd_get_relocated_section_contents
+  PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
+          bfd_boolean, asymbol **));
+static int b_out_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean b_out_set_arch_mach
+  PARAMS ((bfd *, enum bfd_architecture, unsigned long));
+static bfd_boolean b_out_set_section_contents
+  PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
+static long b_out_get_reloc_upper_bound
+  PARAMS ((bfd *, sec_ptr));
+static long b_out_canonicalize_reloc
+  PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
+static bfd_boolean b_out_slurp_reloc_table
+  PARAMS ((bfd *, sec_ptr, asymbol **));
+static reloc_howto_type *b_out_bfd_reloc_type_lookup
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
+static bfd_boolean b_out_write_object_contents
+  PARAMS ((bfd *));
+static int b_out_symbol_cmp
+  PARAMS ((const void *, const void *));
+static bfd_boolean b_out_mkobject
+  PARAMS ((bfd *));
+static const bfd_target *b_out_object_p
+  PARAMS ((bfd *));
+
+void bout_swap_exec_header_in
+  PARAMS ((bfd *, struct external_exec *, struct internal_exec *));
+void bout_swap_exec_header_out
+  PARAMS ((bfd *, struct internal_exec *, struct external_exec *));
 
 /* Swaps the information in an executable header taken from a raw byte
    stream memory image, into the internal exec_header structure.  */
@@ -201,7 +230,7 @@ struct bout_data_struct
     struct internal_exec e;
   };
 
-static boolean
+static bfd_boolean
 b_out_mkobject (abfd)
      bfd *abfd;
 {
@@ -210,7 +239,7 @@ b_out_mkobject (abfd)
 
   rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, amt);
   if (rawptr == NULL)
-    return false;
+    return FALSE;
 
   abfd->tdata.bout_data = rawptr;
   exec_hdr (abfd) = &rawptr->e;
@@ -219,7 +248,7 @@ b_out_mkobject (abfd)
   obj_datasec (abfd) = (asection *) NULL;
   obj_bsssec (abfd) = (asection *) NULL;
 
-  return true;
+  return TRUE;
 }
 
 static int
@@ -253,7 +282,7 @@ b_out_symbol_cmp (a_ptr, b_ptr)
   return 0;
 }
 
-static boolean
+static bfd_boolean
 b_out_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -261,7 +290,7 @@ b_out_write_object_contents (abfd)
   bfd_size_type amt;
 
   if (! aout_32_make_sections (abfd))
-    return false;
+    return FALSE;
 
   exec_hdr (abfd)->a_info = BMAGIC;
 
@@ -287,7 +316,7 @@ b_out_write_object_contents (abfd)
   amt = EXEC_BYTES_SIZE;
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0
       || bfd_bwrite ((PTR) &swapped_hdr, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Now write out reloc info, followed by syms and strings */
   if (bfd_get_symcount (abfd) != 0)
@@ -319,23 +348,25 @@ b_out_write_object_contents (abfd)
       /* Back to your regularly scheduled program.  */
       if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*exec_hdr(abfd))), SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
 
       if (! aout_32_write_syms (abfd))
-       return false;
+       return FALSE;
 
       if (bfd_seek (abfd, (file_ptr) (N_TROFF(*exec_hdr(abfd))), SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
 
-      if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd))) return false;
+      if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd)))
+       return FALSE;
       if (bfd_seek (abfd, (file_ptr) (N_DROFF(*exec_hdr(abfd))), SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
 
-      if (!b_out_squirt_out_relocs (abfd, obj_datasec (abfd))) return false;
+      if (!b_out_squirt_out_relocs (abfd, obj_datasec (abfd)))
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 \f
 /* Some reloc hackery.  */
@@ -400,7 +431,7 @@ callj_callback (abfd, link_info, reloc_entry,  data, srcidx, dstidx,
      unsigned int srcidx;
      unsigned int dstidx;
      asection *input_section;
-     boolean shrinking;
+     bfd_boolean shrinking;
 {
   int word = bfd_get_32 (abfd, (bfd_byte *) data + srcidx);
   asymbol *symbol_in = *(reloc_entry->sym_ptr_ptr);
@@ -467,33 +498,33 @@ callj_callback (abfd, link_info, reloc_entry,  data, srcidx, dstidx,
 #define ALIGNER 10
 #define ALIGNDONE 11
 static reloc_howto_type howto_reloc_callj =
-HOWTO(CALLJ, 0, 2, 24, true, 0, complain_overflow_signed, 0,"callj", true, 0x00ffffff, 0x00ffffff,false);
+HOWTO(CALLJ, 0, 2, 24, TRUE, 0, complain_overflow_signed, 0,"callj", TRUE, 0x00ffffff, 0x00ffffff,FALSE);
 static  reloc_howto_type howto_reloc_abs32 =
-HOWTO(ABS32, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"abs32", true, 0xffffffff,0xffffffff,false);
+HOWTO(ABS32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"abs32", TRUE, 0xffffffff,0xffffffff,FALSE);
 static reloc_howto_type howto_reloc_pcrel24 =
-HOWTO(PCREL24, 0, 2, 24, true, 0, complain_overflow_signed,0,"pcrel24", true, 0x00ffffff,0x00ffffff,false);
+HOWTO(PCREL24, 0, 2, 24, TRUE, 0, complain_overflow_signed,0,"pcrel24", TRUE, 0x00ffffff,0x00ffffff,FALSE);
 
 static reloc_howto_type howto_reloc_pcrel13 =
-HOWTO(PCREL13, 0, 2, 13, true, 0, complain_overflow_signed,0,"pcrel13", true, 0x00001fff,0x00001fff,false);
+HOWTO(PCREL13, 0, 2, 13, TRUE, 0, complain_overflow_signed,0,"pcrel13", TRUE, 0x00001fff,0x00001fff,FALSE);
 
 static reloc_howto_type howto_reloc_abs32codeshrunk =
-HOWTO(ABS32CODE_SHRUNK, 0, 2, 24, true, 0, complain_overflow_signed, 0,"callx->callj", true, 0x00ffffff, 0x00ffffff,false);
+HOWTO(ABS32CODE_SHRUNK, 0, 2, 24, TRUE, 0, complain_overflow_signed, 0,"callx->callj", TRUE, 0x00ffffff, 0x00ffffff,FALSE);
 
 static  reloc_howto_type howto_reloc_abs32code =
-HOWTO(ABS32CODE, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"callx", true, 0xffffffff,0xffffffff,false);
+HOWTO(ABS32CODE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"callx", TRUE, 0xffffffff,0xffffffff,FALSE);
 
 static reloc_howto_type howto_align_table[] = {
-  HOWTO (ALIGNER, 0, 0x1, 0, false, 0, complain_overflow_dont, 0, "align16", false, 0, 0, false),
-  HOWTO (ALIGNER, 0, 0x3, 0, false, 0, complain_overflow_dont, 0, "align32", false, 0, 0, false),
-  HOWTO (ALIGNER, 0, 0x7, 0, false, 0, complain_overflow_dont, 0, "align64", false, 0, 0, false),
-  HOWTO (ALIGNER, 0, 0xf, 0, false, 0, complain_overflow_dont, 0, "align128", false, 0, 0, false),
+  HOWTO (ALIGNER, 0, 0x1, 0, FALSE, 0, complain_overflow_dont, 0, "align16", FALSE, 0, 0, FALSE),
+  HOWTO (ALIGNER, 0, 0x3, 0, FALSE, 0, complain_overflow_dont, 0, "align32", FALSE, 0, 0, FALSE),
+  HOWTO (ALIGNER, 0, 0x7, 0, FALSE, 0, complain_overflow_dont, 0, "align64", FALSE, 0, 0, FALSE),
+  HOWTO (ALIGNER, 0, 0xf, 0, FALSE, 0, complain_overflow_dont, 0, "align128", FALSE, 0, 0, FALSE),
 };
 
 static reloc_howto_type howto_done_align_table[] = {
-  HOWTO (ALIGNDONE, 0x1, 0x1, 0, false, 0, complain_overflow_dont, 0, "donealign16", false, 0, 0, false),
-  HOWTO (ALIGNDONE, 0x3, 0x3, 0, false, 0, complain_overflow_dont, 0, "donealign32", false, 0, 0, false),
-  HOWTO (ALIGNDONE, 0x7, 0x7, 0, false, 0, complain_overflow_dont, 0, "donealign64", false, 0, 0, false),
-  HOWTO (ALIGNDONE, 0xf, 0xf, 0, false, 0, complain_overflow_dont, 0, "donealign128", false, 0, 0, false),
+  HOWTO (ALIGNDONE, 0x1, 0x1, 0, FALSE, 0, complain_overflow_dont, 0, "donealign16", FALSE, 0, 0, FALSE),
+  HOWTO (ALIGNDONE, 0x3, 0x3, 0, FALSE, 0, complain_overflow_dont, 0, "donealign32", FALSE, 0, 0, FALSE),
+  HOWTO (ALIGNDONE, 0x7, 0x7, 0, FALSE, 0, complain_overflow_dont, 0, "donealign64", FALSE, 0, 0, FALSE),
+  HOWTO (ALIGNDONE, 0xf, 0xf, 0, FALSE, 0, complain_overflow_dont, 0, "donealign128", FALSE, 0, 0, FALSE),
 };
 
 static reloc_howto_type *
@@ -517,7 +548,7 @@ b_out_bfd_reloc_type_lookup (abfd, code)
 
 /* Allocate enough room for all the reloc entries, plus pointers to them all.  */
 
-static boolean
+static bfd_boolean
 b_out_slurp_reloc_table (abfd, asect, symbols)
      bfd *abfd;
      sec_ptr asect;
@@ -536,10 +567,10 @@ b_out_slurp_reloc_table (abfd, asect, symbols)
   arelent *reloc_cache;
 
   if (asect->relocation)
-    return true;
+    return TRUE;
 
   if (!aout_32_slurp_symbol_table (abfd))
-    return false;
+    return FALSE;
 
   if (asect == obj_datasec (abfd))
     {
@@ -560,16 +591,16 @@ b_out_slurp_reloc_table (abfd, asect, symbols)
     }
 
   bfd_set_error (bfd_error_invalid_operation);
-  return false;
+  return FALSE;
 
  doit:
   if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0)
-    return false;
+    return FALSE;
   count = reloc_size / sizeof (struct relocation_info);
 
   relocs = (struct relocation_info *) bfd_malloc (reloc_size);
   if (!relocs && reloc_size != 0)
-    return false;
+    return FALSE;
 
   amt = ((bfd_size_type) count + 1) * sizeof (arelent);
   reloc_cache = (arelent *) bfd_malloc (amt);
@@ -577,7 +608,7 @@ b_out_slurp_reloc_table (abfd, asect, symbols)
     {
       if (relocs != NULL)
        free (relocs);
-      return false;
+      return FALSE;
     }
 
   if (bfd_bread ((PTR) relocs, reloc_size, abfd) != reloc_size)
@@ -585,7 +616,7 @@ b_out_slurp_reloc_table (abfd, asect, symbols)
       free (reloc_cache);
       if (relocs != NULL)
        free (relocs);
-      return false;
+      return FALSE;
     }
 
   if (bfd_header_big_endian (abfd))
@@ -740,10 +771,10 @@ b_out_slurp_reloc_table (abfd, asect, symbols)
   asect->relocation = reloc_cache;
   asect->reloc_count = count;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 b_out_squirt_out_relocs (abfd, section)
      bfd *abfd;
      asection *section;
@@ -759,13 +790,13 @@ b_out_squirt_out_relocs (abfd, section)
   int extern_mask, pcrel_mask, len_2, callj_mask;
 
   if (count == 0)
-    return true;
+    return TRUE;
 
   generic = section->orelocation;
   natsize = (bfd_size_type) count * sizeof (struct relocation_info);
   native = ((struct relocation_info *) bfd_malloc (natsize));
   if (!native && natsize != 0)
-    return false;
+    return FALSE;
 
   if (bfd_header_big_endian (abfd))
     {
@@ -870,12 +901,12 @@ b_out_squirt_out_relocs (abfd, section)
   if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize)
     {
       free ((PTR)native);
-      return false;
+      return FALSE;
     }
 
   free ((PTR)native);
 
-  return true;
+  return TRUE;
 }
 
 /* This is stupid.  This function should be a boolean predicate.  */
@@ -948,7 +979,7 @@ b_out_get_reloc_upper_bound (abfd, asect)
 }
 
 \f
-static boolean
+static bfd_boolean
 b_out_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -960,7 +991,7 @@ b_out_set_section_contents (abfd, section, location, offset, count)
     {
       /* Set by bfd.c handler.  */
       if (! aout_32_make_sections (abfd))
-       return false;
+       return FALSE;
 
       obj_textsec (abfd)->filepos = sizeof (struct internal_exec);
       obj_datasec(abfd)->filepos = obj_textsec(abfd)->filepos
@@ -969,15 +1000,15 @@ b_out_set_section_contents (abfd, section, location, offset, count)
 
   /* Regardless, once we know what we're doing, we might as well get going.  */
   if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (count == 0)
-    return true;
+    return TRUE;
 
   return bfd_bwrite ((PTR) location, count, abfd) == count;
 }
 
-static boolean
+static bfd_boolean
 b_out_set_arch_mach (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -986,7 +1017,7 @@ b_out_set_arch_mach (abfd, arch, machine)
   bfd_default_set_arch_mach(abfd, arch, machine);
 
   if (arch == bfd_arch_unknown)        /* Unknown machine arch is OK.  */
-    return true;
+    return TRUE;
 
   if (arch == bfd_arch_i960)   /* i960 default is OK.  */
     switch (machine)
@@ -1000,18 +1031,18 @@ b_out_set_arch_mach (abfd, arch, machine)
       case bfd_mach_i960_jx:
       case bfd_mach_i960_hx:
       case 0:
-       return true;
+       return TRUE;
       default:
-       return false;
+       return FALSE;
       }
 
-  return false;
+  return FALSE;
 }
 
 static int
 b_out_sizeof_headers (ignore_abfd, ignore)
      bfd *ignore_abfd ATTRIBUTE_UNUSED;
-     boolean ignore ATTRIBUTE_UNUSED;
+     bfd_boolean ignore ATTRIBUTE_UNUSED;
 {
   return sizeof (struct internal_exec);
 }
@@ -1040,7 +1071,7 @@ get_value (reloc, link_info, input_section)
         generic symbols.  */
       h = bfd_wrapped_link_hash_lookup (input_section->owner, link_info,
                                        bfd_asymbol_name (symbol),
-                                       false, false, true);
+                                       FALSE, FALSE, TRUE);
       if (h != (struct bfd_link_hash_entry *) NULL
          && (h->type == bfd_link_hash_defined
              || h->type == bfd_link_hash_defweak))
@@ -1053,7 +1084,7 @@ get_value (reloc, link_info, input_section)
          if (! ((*link_info->callbacks->undefined_symbol)
                 (link_info, bfd_asymbol_name (symbol),
                  input_section->owner, input_section, reloc->address,
-                 true)))
+                 TRUE)))
            abort ();
          value = 0;
        }
@@ -1192,12 +1223,12 @@ aligncode (abfd, input_section, r, shrink)
   return shrink;
 }
 
-static boolean
+static bfd_boolean
 b_out_bfd_relax_section (abfd, i, link_info, again)
      bfd *abfd;
      asection *i;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   /* Get enough memory to hold the stuff.  */
   bfd *input_bfd = i->owner;
@@ -1208,11 +1239,11 @@ b_out_bfd_relax_section (abfd, i, link_info, again)
                                               input_section);
 
   if (reloc_size < 0)
-    return false;
+    return FALSE;
 
   /* We only run this relaxation once.  It might work to run it
      multiple times, but it hasn't been tested.  */
-  *again = false;
+  *again = FALSE;
 
   if (reloc_size)
     {
@@ -1258,11 +1289,11 @@ b_out_bfd_relax_section (abfd, i, link_info, again)
 
   if (reloc_vector != NULL)
     free (reloc_vector);
-  return true;
+  return TRUE;
  error_return:
   if (reloc_vector != NULL)
     free (reloc_vector);
-  return false;
+  return FALSE;
 }
 
 static bfd_byte *
@@ -1272,7 +1303,7 @@ b_out_bfd_get_relocated_section_contents (output_bfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   /* Get enough memory to hold the stuff.  */
@@ -1300,11 +1331,11 @@ b_out_bfd_get_relocated_section_contents (output_bfd, link_info, link_order,
   input_section->reloc_done = 1;
 
   /* Read in the section.  */
-  BFD_ASSERT (true == bfd_get_section_contents (input_bfd,
-                                               input_section,
-                                               data,
-                                               (bfd_vma) 0,
-                                               input_section->_raw_size));
+  BFD_ASSERT (bfd_get_section_contents (input_bfd,
+                                       input_section,
+                                       data,
+                                       (bfd_vma) 0,
+                                       input_section->_raw_size));
 
   reloc_count = bfd_canonicalize_reloc (input_bfd,
                                        input_section,
@@ -1366,7 +1397,7 @@ b_out_bfd_get_relocated_section_contents (output_bfd, link_info, link_order,
                case CALLJ:
                  callj_callback (input_bfd, link_info, reloc, data,
                                  src_address, dst_address, input_section,
-                                 false);
+                                 FALSE);
                  src_address += 4;
                  dst_address += 4;
                  break;
@@ -1383,7 +1414,7 @@ b_out_bfd_get_relocated_section_contents (output_bfd, link_info, link_order,
                     callj will reach, so do the right thing.  */
                  callj_callback (input_bfd, link_info, reloc, data,
                                  src_address + 4, dst_address, input_section,
-                                 true);
+                                 TRUE);
                  dst_address += 4;
                  src_address += 8;
                  break;
index df01a1f990a11b397e62027f5376a19914825e52..98a1c72e88437141498d60169c9e6071b465f99d 100644 (file)
@@ -42,8 +42,8 @@ SECTION
 
 static void insert PARAMS ((bfd *));
 static void snip PARAMS ((bfd *));
-static boolean close_one PARAMS ((void));
-static boolean bfd_cache_delete PARAMS ((bfd *));
+static bfd_boolean close_one PARAMS ((void));
+static bfd_boolean bfd_cache_delete PARAMS ((bfd *));
 
 /*
 INTERNAL_FUNCTION
@@ -133,7 +133,7 @@ snip (abfd)
 /* We need to open a new file, and the cache is full.  Find the least
    recently used cacheable BFD and close it.  */
 
-static boolean
+static bfd_boolean
 close_one ()
 {
   register bfd *kill;
@@ -157,7 +157,7 @@ close_one ()
   if (kill == NULL)
     {
       /* There are no open cacheable BFD's.  */
-      return true;
+      return TRUE;
     }
 
   kill->where = ftell ((FILE *) kill->iostream);
@@ -167,17 +167,17 @@ close_one ()
 
 /* Close a BFD and remove it from the cache.  */
 
-static boolean
+static bfd_boolean
 bfd_cache_delete (abfd)
      bfd *abfd;
 {
-  boolean ret;
+  bfd_boolean ret;
 
   if (fclose ((FILE *) abfd->iostream) == 0)
-    ret = true;
+    ret = TRUE;
   else
     {
-      ret = false;
+      ret = FALSE;
       bfd_set_error (bfd_error_system_call);
     }
 
@@ -194,13 +194,13 @@ INTERNAL_FUNCTION
        bfd_cache_init
 
 SYNOPSIS
-       boolean bfd_cache_init (bfd *abfd);
+       bfd_boolean bfd_cache_init (bfd *abfd);
 
 DESCRIPTION
        Add a newly opened BFD to the cache.
 */
 
-boolean
+bfd_boolean
 bfd_cache_init (abfd)
      bfd *abfd;
 {
@@ -208,11 +208,11 @@ bfd_cache_init (abfd)
   if (open_files >= BFD_CACHE_MAX_OPEN)
     {
       if (! close_one ())
-       return false;
+       return FALSE;
     }
   insert (abfd);
   ++open_files;
-  return true;
+  return TRUE;
 }
 
 /*
@@ -220,24 +220,24 @@ INTERNAL_FUNCTION
        bfd_cache_close
 
 SYNOPSIS
-       boolean bfd_cache_close (bfd *abfd);
+       bfd_boolean bfd_cache_close (bfd *abfd);
 
 DESCRIPTION
        Remove the BFD @var{abfd} from the cache. If the attached file is open,
        then close it too.
 
 RETURNS
-       <<false>> is returned if closing the file fails, <<true>> is
+       <<FALSE>> is returned if closing the file fails, <<TRUE>> is
        returned if all is well.
 */
 
-boolean
+bfd_boolean
 bfd_cache_close (abfd)
      bfd *abfd;
 {
   if (abfd->iostream == NULL
       || (abfd->flags & BFD_IN_MEMORY) != 0)
-    return true;
+    return TRUE;
 
   return bfd_cache_delete (abfd);
 }
@@ -261,7 +261,7 @@ FILE *
 bfd_open_file (abfd)
      bfd *abfd;
 {
-  abfd->cacheable = true;      /* Allow it to be closed later.  */
+  abfd->cacheable = TRUE;      /* Allow it to be closed later.  */
 
   if (open_files >= BFD_CACHE_MAX_OPEN)
     {
@@ -312,7 +312,7 @@ bfd_open_file (abfd)
            unlink (abfd->filename);
 #endif
          abfd->iostream = (PTR) fopen (abfd->filename, FOPEN_WUB);
-         abfd->opened_once = true;
+         abfd->opened_once = TRUE;
        }
       break;
     }
index db87466ff311185a6043c0761def912e8c0a525d..6b3a71b0ab3ee4dd3cfb60fbcfaf4325844f2340 100644 (file)
@@ -75,7 +75,7 @@ static const bfd_target *cisco_core_file_validate PARAMS ((bfd *, int));
 static const bfd_target *cisco_core_file_p PARAMS ((bfd *));
 char *cisco_core_file_failing_command PARAMS ((bfd *));
 int cisco_core_file_failing_signal PARAMS ((bfd *));
-boolean cisco_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
+bfd_boolean cisco_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
 \f
 /* Examine the file for a crash info struct at the offset given by
    CRASH_INFO_LOC.  */
@@ -318,12 +318,12 @@ cisco_core_file_failing_signal (abfd)
   return abfd->tdata.cisco_core_data->sig;
 }
 
-boolean
+bfd_boolean
 cisco_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 \f
 extern const bfd_target cisco_core_little_vec;
index 7c921ca387feb09bcc75e85bfb5529d5be7dfc83..fd547315feaec66f6eb3df420d54bddc082f3dea 100644 (file)
@@ -31,12 +31,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static long get_symbol_value PARAMS ((asymbol *));
 static bfd_reloc_status_type a29k_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean coff_a29k_relocate_section
+static bfd_boolean coff_a29k_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
-static boolean coff_a29k_adjust_symndx
+static bfd_boolean coff_a29k_adjust_symndx
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
-          struct internal_reloc *, boolean *));
+          struct internal_reloc *, bfd_boolean *));
 static void reloc_processing
   PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *));
 
@@ -82,7 +82,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
 {
   /* The consth relocation comes in two parts, we have to remember
      the state between calls, in these variables.  */
-  static boolean part1_consth_active = false;
+  static bfd_boolean part1_consth_active = FALSE;
   static unsigned long part1_consth_value;
   unsigned long insn;
   unsigned long sym_value;
@@ -107,7 +107,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
       /* Keep the state machine happy in case we're called again.  */
       if (r_type == R_IHIHALF)
        {
-         part1_consth_active = true;
+         part1_consth_active = TRUE;
          part1_consth_value  = 0;
        }
       return bfd_reloc_undefined;
@@ -115,7 +115,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
 
   if ((part1_consth_active) && (r_type != R_IHCONST))
     {
-      part1_consth_active = false;
+      part1_consth_active = FALSE;
       *error_message = (char *) _("Missing IHCONST");
 
       return bfd_reloc_dangerous;
@@ -167,7 +167,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
       insn = bfd_get_32 (abfd, hit_data);
       /* consth, part 1
         Just get the symbol value that is referenced.  */
-      part1_consth_active = true;
+      part1_consth_active = TRUE;
       part1_consth_value = sym_value + reloc_entry->addend;
       /* Don't modify insn until R_IHCONST.  */
       break;
@@ -186,7 +186,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
       unsigned_value += part1_consth_value;
       unsigned_value = unsigned_value >> 16;
       insn = INSERT_HWORD(insn, unsigned_value);
-      part1_consth_active = false;
+      part1_consth_active = FALSE;
       bfd_put_32 (abfd, (bfd_vma) insn, hit_data);
       break;
     case R_BYTE:
@@ -219,7 +219,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
 /*FIXME: I'm not real sure about this table.  */
 static reloc_howto_type howto_table[] =
   {
-    {R_ABS,     0, 3, 32, false, 0, complain_overflow_bitfield,a29k_reloc,"ABS",     true, 0xffffffff,0xffffffff, false},
+    {R_ABS,     0, 3, 32, FALSE, 0, complain_overflow_bitfield,a29k_reloc,"ABS",     TRUE, 0xffffffff,0xffffffff, FALSE},
     EMPTY_HOWTO (1),
     EMPTY_HOWTO (2),
     EMPTY_HOWTO (3),
@@ -243,14 +243,14 @@ static reloc_howto_type howto_table[] =
     EMPTY_HOWTO (21),
     EMPTY_HOWTO (22),
     EMPTY_HOWTO (23),
-    {R_IREL,    0, 3, 32, true,  0, complain_overflow_signed,a29k_reloc,"IREL",    true, 0xffffffff,0xffffffff, false},
-    {R_IABS,    0, 3, 32, false, 0, complain_overflow_bitfield, a29k_reloc,"IABS",    true, 0xffffffff,0xffffffff, false},
-    {R_ILOHALF, 0, 3, 16, true,  0, complain_overflow_signed, a29k_reloc,"ILOHALF", true, 0x0000ffff,0x0000ffff, false},
-    {R_IHIHALF, 0, 3, 16, true,  16, complain_overflow_signed, a29k_reloc,"IHIHALF", true, 0xffff0000,0xffff0000, false},
-    {R_IHCONST, 0, 3, 16, true,  0, complain_overflow_signed, a29k_reloc,"IHCONST", true, 0xffff0000,0xffff0000, false},
-    {R_BYTE,    0, 0, 8, false, 0, complain_overflow_bitfield, a29k_reloc,"BYTE",    true, 0x000000ff,0x000000ff, false},
-    {R_HWORD,   0, 1, 16, false, 0, complain_overflow_bitfield, a29k_reloc,"HWORD",   true, 0x0000ffff,0x0000ffff, false},
-    {R_WORD,    0, 2, 32, false, 0, complain_overflow_bitfield, a29k_reloc,"WORD",    true, 0xffffffff,0xffffffff, false},
+    {R_IREL,    0, 3, 32, TRUE,  0, complain_overflow_signed,a29k_reloc,"IREL",    TRUE, 0xffffffff,0xffffffff, FALSE},
+    {R_IABS,    0, 3, 32, FALSE, 0, complain_overflow_bitfield, a29k_reloc,"IABS",    TRUE, 0xffffffff,0xffffffff, FALSE},
+    {R_ILOHALF, 0, 3, 16, TRUE,  0, complain_overflow_signed, a29k_reloc,"ILOHALF", TRUE, 0x0000ffff,0x0000ffff, FALSE},
+    {R_IHIHALF, 0, 3, 16, TRUE,  16, complain_overflow_signed, a29k_reloc,"IHIHALF", TRUE, 0xffff0000,0xffff0000, FALSE},
+    {R_IHCONST, 0, 3, 16, TRUE,  0, complain_overflow_signed, a29k_reloc,"IHCONST", TRUE, 0xffff0000,0xffff0000, FALSE},
+    {R_BYTE,    0, 0, 8, FALSE, 0, complain_overflow_bitfield, a29k_reloc,"BYTE",    TRUE, 0x000000ff,0x000000ff, FALSE},
+    {R_HWORD,   0, 1, 16, FALSE, 0, complain_overflow_bitfield, a29k_reloc,"HWORD",   TRUE, 0x0000ffff,0x0000ffff, FALSE},
+    {R_WORD,    0, 2, 32, FALSE, 0, complain_overflow_bitfield, a29k_reloc,"WORD",    TRUE, 0xffffffff,0xffffffff, FALSE},
   };
 
 #define BADMAG(x) A29KBADMAG(x)
@@ -310,7 +310,7 @@ reloc_processing (relent,reloc, symbols, abfd, section)
 
 /* The reloc processing routine for the optimized COFF linker.  */
 
-static boolean
+static bfd_boolean
 coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
                            contents, relocs, syms, sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -324,16 +324,16 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
 {
   struct internal_reloc *rel;
   struct internal_reloc *relend;
-  boolean hihalf;
+  bfd_boolean hihalf;
   bfd_vma hihalf_val;
 
   /* If we are performing a relocateable link, we don't need to do a
      thing.  The caller will take care of adjusting the reloc
      addresses and symbol indices.  */
   if (info->relocateable)
-    return true;
+    return TRUE;
 
-  hihalf = false;
+  hihalf = FALSE;
   hihalf_val = 0;
 
   rel = relocs;
@@ -346,7 +346,7 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
       struct internal_syment *sym;
       asection *sec;
       bfd_vma val;
-      boolean overflow;
+      bfd_boolean overflow;
       unsigned long insn;
       long signed_value;
       unsigned long unsigned_value;
@@ -397,8 +397,8 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
                {
                  if (! ((*info->callbacks->undefined_symbol)
                         (info, h->root.root.string, input_bfd, input_section,
-                         rel->r_vaddr - input_section->vma, true)))
-                   return false;
+                         rel->r_vaddr - input_section->vma, TRUE)))
+                   return FALSE;
                }
            }
 
@@ -407,18 +407,18 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_dangerous)
                     (info, _("missing IHCONST reloc"), input_bfd,
                      input_section, rel->r_vaddr - input_section->vma)))
-               return false;
-             hihalf = false;
+               return FALSE;
+             hihalf = FALSE;
            }
        }
 
-      overflow = false;
+      overflow = FALSE;
 
       switch (rel->r_type)
        {
        default:
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
 
        case R_IREL:
          insn = bfd_get_32 (input_bfd, loc);
@@ -465,7 +465,7 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
                               + (rel->r_vaddr - input_section->vma));
              if (signed_value > 0x1ffff || signed_value < - 0x20000)
                {
-                 overflow = true;
+                 overflow = TRUE;
                  signed_value = 0;
                }
            }
@@ -487,7 +487,7 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
 
        case R_IHIHALF:
          /* Save the value for the R_IHCONST reloc.  */
-         hihalf = true;
+         hihalf = TRUE;
          hihalf_val = val;
          break;
 
@@ -497,7 +497,7 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_dangerous)
                     (info, _("missing IHIHALF reloc"), input_bfd,
                      input_section, rel->r_vaddr - input_section->vma)))
-               return false;
+               return FALSE;
              hihalf_val = 0;
            }
 
@@ -507,7 +507,7 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
          insn = INSERT_HWORD (insn, unsigned_value);
          bfd_put_32 (input_bfd, (bfd_vma) insn, loc);
 
-         hihalf = false;
+         hihalf = FALSE;
 
          break;
 
@@ -517,7 +517,7 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
          rstat = _bfd_relocate_contents (howto_table + rel->r_type,
                                          input_bfd, val, loc);
          if (rstat == bfd_reloc_overflow)
-           overflow = true;
+           overflow = TRUE;
          else if (rstat != bfd_reloc_ok)
            abort ();
          break;
@@ -548,11 +548,11 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
                 (info, name, howto_table[rel->r_type].name, (bfd_vma) 0,
                  input_bfd, input_section,
                  rel->r_vaddr - input_section->vma)))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 #define coff_relocate_section coff_a29k_relocate_section
@@ -560,20 +560,20 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
 /* We don't want to change the symndx of a R_IHCONST reloc, since it
    is actually an addend, not a symbol index at all.  */
 
-static boolean
+static bfd_boolean
 coff_a29k_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp)
      bfd *obfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      bfd *ibfd ATTRIBUTE_UNUSED;
      asection *sec ATTRIBUTE_UNUSED;
      struct internal_reloc *irel;
-     boolean *adjustedp;
+     bfd_boolean *adjustedp;
 {
   if (irel->r_type == R_IHCONST)
-    *adjustedp = true;
+    *adjustedp = TRUE;
   else
-    *adjustedp = false;
-  return true;
+    *adjustedp = FALSE;
+  return TRUE;
 }
 
 #define coff_adjust_symndx coff_a29k_adjust_symndx
index 6d5ac17eea34f2b766b9c5d9609880a159fb7b38..14e0ee15c5ef5332f239b910646ae7157d1d6767 100644 (file)
@@ -35,36 +35,40 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 \f
 /* Prototypes for static functions.  */
 
-static const bfd_target *alpha_ecoff_object_p PARAMS ((bfd *));
-static boolean alpha_ecoff_bad_format_hook PARAMS ((bfd *abfd, PTR filehdr));
-static PTR alpha_ecoff_mkobject_hook PARAMS ((bfd *, PTR filehdr, PTR aouthdr));
-static void alpha_ecoff_swap_reloc_in PARAMS ((bfd *, PTR,
-                                             struct internal_reloc *));
-static void alpha_ecoff_swap_reloc_out PARAMS ((bfd *,
-                                              const struct internal_reloc *,
-                                              PTR));
-static void alpha_adjust_reloc_in PARAMS ((bfd *,
-                                          const struct internal_reloc *,
-                                          arelent *));
-static void alpha_adjust_reloc_out PARAMS ((bfd *, const arelent *,
-                                           struct internal_reloc *));
+static const bfd_target *alpha_ecoff_object_p
+  PARAMS ((bfd *));
+static bfd_boolean alpha_ecoff_bad_format_hook
+  PARAMS ((bfd *abfd, PTR filehdr));
+static PTR alpha_ecoff_mkobject_hook
+  PARAMS ((bfd *, PTR filehdr, PTR aouthdr));
+static void alpha_ecoff_swap_reloc_in
+  PARAMS ((bfd *, PTR, struct internal_reloc *));
+static void alpha_ecoff_swap_reloc_out
+  PARAMS ((bfd *, const struct internal_reloc *, PTR));
+static void alpha_adjust_reloc_in
+  PARAMS ((bfd *, const struct internal_reloc *, arelent *));
+static void alpha_adjust_reloc_out
+  PARAMS ((bfd *, const arelent *, struct internal_reloc *));
 static reloc_howto_type *alpha_bfd_reloc_type_lookup
- PARAMS ((bfd *, bfd_reloc_code_real_type));
 PARAMS ((bfd *, bfd_reloc_code_real_type));
 static bfd_byte *alpha_ecoff_get_relocated_section_contents
   PARAMS ((bfd *abfd, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *data, boolean relocateable, asymbol **symbols));
+          bfd_byte *data, bfd_boolean relocateable, asymbol **symbols));
 static bfd_vma alpha_convert_external_reloc
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, struct external_reloc *,
           struct ecoff_link_hash_entry *));
-static boolean alpha_relocate_section PARAMS ((bfd *, struct bfd_link_info *,
-                                              bfd *, asection *,
-                                              bfd_byte *, PTR));
-static boolean alpha_adjust_headers
+static bfd_boolean alpha_relocate_section
+  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, PTR));
+static bfd_boolean alpha_adjust_headers
   PARAMS ((bfd *, struct internal_filehdr *, struct internal_aouthdr *));
-static PTR alpha_ecoff_read_ar_hdr PARAMS ((bfd *));
-static bfd *alpha_ecoff_get_elt_at_filepos PARAMS ((bfd *, file_ptr));
-static bfd *alpha_ecoff_openr_next_archived_file PARAMS ((bfd *, bfd *));
-static bfd *alpha_ecoff_get_elt_at_index PARAMS ((bfd *, symindex));
+static PTR alpha_ecoff_read_ar_hdr
+  PARAMS ((bfd *));
+static bfd *alpha_ecoff_get_elt_at_filepos
+  PARAMS ((bfd *, file_ptr));
+static bfd *alpha_ecoff_openr_next_archived_file
+  PARAMS ((bfd *, bfd *));
+static bfd *alpha_ecoff_get_elt_at_index
+  PARAMS ((bfd *, symindex));
 \f
 /* ECOFF has COFF sections, but the debugging information is stored in
    a completely different format.  ECOFF targets use some of the
@@ -122,9 +126,8 @@ static bfd *alpha_ecoff_get_elt_at_index PARAMS ((bfd *, symindex));
 \f
 /* How to process the various reloc types.  */
 
-static bfd_reloc_status_type
-reloc_nil PARAMS ((bfd *, arelent *, asymbol *, PTR,
-                  asection *, bfd *, char **));
+static bfd_reloc_status_type reloc_nil
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 
 static bfd_reloc_status_type
 reloc_nil (abfd, reloc, sym, data, sec, output_bfd, error_message)
@@ -152,45 +155,45 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "IGNORE",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 32 bit reference to a symbol.  */
   HOWTO (ALPHA_R_REFLONG,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "REFLONG",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 64 bit reference to a symbol.  */
   HOWTO (ALPHA_R_REFQUAD,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "REFQUAD",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit GP relative offset.  This is just like REFLONG except
      that when the value is used the value of the gp register will be
@@ -199,15 +202,15 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "GPREL32",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used for an instruction that refers to memory off the GP
      register.  The offset is 16 bits of the 32 bit instruction.  This
@@ -216,15 +219,15 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "LITERAL",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* This reloc only appears immediately following a LITERAL reloc.
      It identifies a use of the literal.  It seems that the linker can
@@ -239,15 +242,15 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "LITUSE",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Load the gp register.  This is always used for a ldah instruction
      which loads the upper 16 bits of the gp register.  The next reloc
@@ -264,15 +267,15 @@ static reloc_howto_type alpha_howto_table[] =
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "GPDISP",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 21 bit branch.  The native assembler generates these for
      branches within the text segment, and also fills in the PC
@@ -281,90 +284,90 @@ static reloc_howto_type alpha_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         21,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "BRADDR",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x1fffff,              /* src_mask */
         0x1fffff,              /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A hint for a jump to a register.  */
   HOWTO (ALPHA_R_HINT,         /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         14,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "HINT",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3fff,                /* src_mask */
         0x3fff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit PC relative offset.  */
   HOWTO (ALPHA_R_SREL16,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SREL16",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit PC relative offset.  */
   HOWTO (ALPHA_R_SREL32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SREL32",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 64 bit PC relative offset.  */
   HOWTO (ALPHA_R_SREL64,       /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SREL64",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Push a value on the reloc evaluation stack.  */
   HOWTO (ALPHA_R_OP_PUSH,      /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "OP_PUSH",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Store the value from the stack at the given address.  Store it in
      a bitfield of size r_size starting at bit position r_offset.  */
@@ -372,15 +375,15 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "OP_STORE",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Subtract the reloc address from the value on the top of the
      relocation stack.  */
@@ -388,15 +391,15 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "OP_PSUB",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Shift the value on the top of the relocation stack right by the
      given value.  */
@@ -404,30 +407,30 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "OP_PRSHIFT",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Adjust the GP value for a new range in the object file.  */
   HOWTO (ALPHA_R_GPVALUE,      /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "GPVALUE",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false)                 /* pcrel_offset */
+        FALSE)                 /* pcrel_offset */
 };
 \f
 /* Recognize an Alpha ECOFF file.  */
@@ -471,7 +474,7 @@ alpha_ecoff_object_p (abfd)
 
 /* See whether the magic number matches.  */
 
-static boolean
+static bfd_boolean
 alpha_ecoff_bad_format_hook (abfd, filehdr)
      bfd *abfd ATTRIBUTE_UNUSED;
      PTR filehdr;
@@ -479,9 +482,9 @@ alpha_ecoff_bad_format_hook (abfd, filehdr)
   struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
 
   if (ALPHA_ECOFF_BADMAG (*internal_f))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* This is a hook called by coff_real_object_p to create any backend
@@ -755,7 +758,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   bfd *input_bfd = link_order->u.indirect.section->owner;
@@ -765,7 +768,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
   long reloc_count;
   bfd *output_bfd = relocateable ? abfd : (bfd *) NULL;
   bfd_vma gp;
-  boolean gp_undefined;
+  bfd_boolean gp_undefined;
   bfd_vma stack[RELOC_STACKSIZE];
   int tos = 0;
 
@@ -781,7 +784,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
 
   /* The section size is not going to change.  */
   input_section->_cooked_size = input_section->_raw_size;
-  input_section->reloc_done = true;
+  input_section->reloc_done = TRUE;
 
   reloc_count = bfd_canonicalize_reloc (input_bfd, input_section,
                                        reloc_vector, symbols);
@@ -791,7 +794,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
     goto successful_return;
 
   /* Get the GP value for the output BFD.  */
-  gp_undefined = false;
+  gp_undefined = FALSE;
   gp = _bfd_get_gp_value (abfd);
   if (gp == 0)
     {
@@ -819,11 +822,11 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
        {
          struct bfd_link_hash_entry *h;
 
-         h = bfd_link_hash_lookup (link_info->hash, "_gp", false, false,
-                                   true);
+         h = bfd_link_hash_lookup (link_info->hash, "_gp", FALSE, FALSE,
+                                   TRUE);
          if (h == (struct bfd_link_hash_entry *) NULL
              || h->type != bfd_link_hash_defined)
-           gp_undefined = true;
+           gp_undefined = TRUE;
          else
            {
              gp = (h->u.def.value
@@ -1111,7 +1114,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
        case ALPHA_R_GPVALUE:
          /* I really don't know if this does the right thing.  */
          gp = rel->addend;
-         gp_undefined = false;
+         gp_undefined = FALSE;
          break;
 
        default:
@@ -1134,7 +1137,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
            case bfd_reloc_undefined:
              if (! ((*link_info->callbacks->undefined_symbol)
                     (link_info, bfd_asymbol_name (*rel->sym_ptr_ptr),
-                     input_bfd, input_section, rel->address, true)))
+                     input_bfd, input_section, rel->address, TRUE)))
                goto error_return;
              break;
            case bfd_reloc_dangerous:
@@ -1365,7 +1368,7 @@ alpha_convert_external_reloc (output_bfd, info, input_bfd, ext_rel, h)
    quite similar to get_relocated_section_contents.  Perhaps they
    could be combined somehow.  */
 
-static boolean
+static bfd_boolean
 alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                        contents, external_relocs)
      bfd *output_bfd;
@@ -1378,7 +1381,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
   asection **symndx_to_section, *lita_sec;
   struct ecoff_link_hash_entry **sym_hashes;
   bfd_vma gp;
-  boolean gp_undefined;
+  bfd_boolean gp_undefined;
   bfd_vma stack[RELOC_STACKSIZE];
   int tos = 0;
   struct external_reloc *ext_rel;
@@ -1394,7 +1397,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
       amt = NUM_RELOC_SECTIONS * sizeof (asection *);
       symndx_to_section = (asection **) bfd_alloc (input_bfd, amt);
       if (!symndx_to_section)
-       return false;
+       return FALSE;
 
       symndx_to_section[RELOC_SECTION_NONE] = NULL;
       symndx_to_section[RELOC_SECTION_TEXT] =
@@ -1485,7 +1488,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                                               _("using multiple gp values"),
                                               (char *) NULL, output_bfd,
                                               (asection *) NULL, (bfd_vma) 0);
-                 ecoff_data (output_bfd)->issued_multiple_gp_warning = true;
+                 ecoff_data (output_bfd)->issued_multiple_gp_warning = TRUE;
                }
              if (lita_vma < gp - 0x8000)
                gp = lita_vma + lita_size - 0x8000;
@@ -1515,9 +1518,9 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
       int r_extern;
       int r_offset;
       int r_size;
-      boolean relocatep;
-      boolean adjust_addrp;
-      boolean gp_usedp;
+      bfd_boolean relocatep;
+      bfd_boolean adjust_addrp;
+      bfd_boolean gp_usedp;
       bfd_vma addend;
 
       r_vaddr = H_GET_64 (input_bfd, ext_rel->r_vaddr);
@@ -1532,9 +1535,9 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
       r_size = ((ext_rel->r_bits[3] & RELOC_BITS3_SIZE_LITTLE)
                >> RELOC_BITS3_SIZE_SH_LITTLE);
 
-      relocatep = false;
-      adjust_addrp = true;
-      gp_usedp = false;
+      relocatep = FALSE;
+      adjust_addrp = TRUE;
+      gp_usedp = FALSE;
       addend = 0;
 
       switch (r_type)
@@ -1552,13 +1555,13 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
          if (info->relocateable)
            H_PUT_64 (input_bfd, input_section->output_offset + r_vaddr,
                      ext_rel->r_vaddr);
-         adjust_addrp = false;
+         adjust_addrp = FALSE;
          break;
 
        case ALPHA_R_REFLONG:
        case ALPHA_R_REFQUAD:
        case ALPHA_R_HINT:
-         relocatep = true;
+         relocatep = TRUE;
          break;
 
        case ALPHA_R_BRADDR:
@@ -1567,7 +1570,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
        case ALPHA_R_SREL64:
          if (r_extern)
            addend += - (r_vaddr + 4);
-         relocatep = true;
+         relocatep = TRUE;
          break;
 
        case ALPHA_R_GPREL32:
@@ -1575,9 +1578,9 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
             bit offset from the current GP value.  We must adjust it
             by the different between the original GP value and the
             current GP value.  */
-         relocatep = true;
+         relocatep = TRUE;
          addend = ecoff_data (input_bfd)->gp - gp;
-         gp_usedp = true;
+         gp_usedp = TRUE;
          break;
 
        case ALPHA_R_LITERAL:
@@ -1608,9 +1611,9 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                        || ((insn >> 26) & 0x3f) == 0x28);
          }
 
-         relocatep = true;
+         relocatep = TRUE;
          addend = ecoff_data (input_bfd)->gp - gp;
-         gp_usedp = true;
+         gp_usedp = TRUE;
          break;
 
        case ALPHA_R_LITUSE:
@@ -1674,7 +1677,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
            bfd_put_32 (input_bfd, (bfd_vma) insn2,
                        contents + r_vaddr - input_section->vma + r_symndx);
 
-           gp_usedp = true;
+           gp_usedp = TRUE;
          }
          break;
 
@@ -1717,8 +1720,8 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                         relocated.  */
                      if (! ((*info->callbacks->undefined_symbol)
                             (info, h->root.root.string, input_bfd,
-                             input_section, (bfd_vma) 0, true)))
-                       return false;
+                             input_section, (bfd_vma) 0, TRUE)))
+                       return FALSE;
                      addend = 0;
                    }
                }
@@ -1734,7 +1737,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                      if (! ((*info->callbacks->unattached_reloc)
                             (info, h->root.root.string, input_bfd,
                              input_section, (bfd_vma) 0)))
-                       return false;
+                       return FALSE;
                    }
 
                  addend = alpha_convert_external_reloc (output_bfd, info,
@@ -1774,7 +1777,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                }
            }
 
-         adjust_addrp = false;
+         adjust_addrp = FALSE;
          break;
 
        case ALPHA_R_OP_STORE:
@@ -1811,7 +1814,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
        case ALPHA_R_GPVALUE:
          /* I really don't know if this does the right thing.  */
          gp = ecoff_data (input_bfd)->gp + r_symndx;
-         gp_undefined = false;
+         gp_undefined = FALSE;
          break;
        }
 
@@ -1861,7 +1864,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                      if (! ((*info->callbacks->unattached_reloc)
                             (info, h->root.root.string, input_bfd,
                              input_section, r_vaddr - input_section->vma)))
-                       return false;
+                       return FALSE;
                    }
 
                  relocation = alpha_convert_external_reloc (output_bfd,
@@ -1918,8 +1921,8 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                      if (! ((*info->callbacks->undefined_symbol)
                             (info, h->root.root.string, input_bfd,
                              input_section,
-                             r_vaddr - input_section->vma, true)))
-                       return false;
+                             r_vaddr - input_section->vma, TRUE)))
+                       return FALSE;
                      relocation = 0;
                    }
                }
@@ -1965,7 +1968,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                           (info, name, alpha_howto_table[r_type].name,
                            (bfd_vma) 0, input_bfd, input_section,
                            r_vaddr - input_section->vma)))
-                     return false;
+                     return FALSE;
                  }
                  break;
                }
@@ -1988,24 +1991,24 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
          if (! ((*info->callbacks->reloc_dangerous)
                 (info, _("GP relative relocation used when GP not defined"),
                  input_bfd, input_section, r_vaddr - input_section->vma)))
-           return false;
+           return FALSE;
          /* Only give the error once per link.  */
          gp = 4;
          _bfd_set_gp_value (output_bfd, gp);
-         gp_undefined = false;
+         gp_undefined = FALSE;
        }
     }
 
   if (tos != 0)
     abort ();
 
-  return true;
+  return TRUE;
 }
 \f
 /* Do final adjustments to the filehdr and the aouthdr.  This routine
    sets the dynamic bits in the file header.  */
 
-static boolean
+static bfd_boolean
 alpha_adjust_headers (abfd, fhdr, ahdr)
      bfd *abfd;
      struct internal_filehdr *fhdr;
@@ -2015,7 +2018,7 @@ alpha_adjust_headers (abfd, fhdr, ahdr)
     fhdr->f_flags |= F_ALPHA_CALL_SHARED;
   else if ((abfd->flags & DYNAMIC) != 0)
     fhdr->f_flags |= F_ALPHA_SHARABLE;
-  return true;
+  return TRUE;
 }
 \f
 /* Archive handling.  In OSF/1 (or Digital Unix) v3.2, Digital
@@ -2185,7 +2188,7 @@ alpha_ecoff_get_elt_at_filepos (archive, filepos)
   bim->size = size;
   bim->buffer = buf;
 
-  nbfd->mtime_set = true;
+  nbfd->mtime_set = TRUE;
   nbfd->mtime = strtol (hdr->ar_date, (char **) NULL, 10);
 
   nbfd->flags |= BFD_IN_MEMORY;
@@ -2262,7 +2265,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data =
     (unsigned (*) PARAMS ((bfd *,PTR,PTR))) bfd_void, /* reloc_out */
     alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out,
     alpha_ecoff_swap_scnhdr_out,
-    FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, true, false, 4, false, 2,
+    FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, FALSE, 4, FALSE, 2,
     alpha_ecoff_swap_filehdr_in, alpha_ecoff_swap_aouthdr_in,
     alpha_ecoff_swap_scnhdr_in, NULL,
     alpha_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook,
@@ -2278,10 +2281,10 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data =
   /* The page boundary used to align sections in a demand-paged
      executable file.  E.g., 0x1000.  */
   0x2000,
-  /* True if the .rdata section is part of the text segment, as on the
-     Alpha.  False if .rdata is part of the data segment, as on the
+  /* TRUE if the .rdata section is part of the text segment, as on the
+     Alpha.  FALSE if .rdata is part of the data segment, as on the
      MIPS.  */
-  true,
+  TRUE,
   /* Bitsize of constructor entries.  */
   64,
   /* Reloc to use for constructor entries.  */
index e8abcb7c6fb49b6139b50bb7675be5287eeed8e8..d7b921260bbacfc902b7ed271b7562945aa5ee09 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Apollo 68000 COFF binaries.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1999, 2000, 2001
+   Copyright 1990, 1991, 1992, 1993, 1994, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    By Troy Rollo (troy@cbme.unsw.edu.au)
    Based on m68k standard COFF version Written by Cygnus Support.
@@ -34,13 +34,13 @@ extern reloc_howto_type apollocoff_howto_table[];
 #else
 reloc_howto_type apollocoff_howto_table[] =
   {
-    HOWTO (R_RELBYTE,         0,  0,   8,  false, 0, complain_overflow_bitfield, 0, "8",       true, 0x000000ff,0x000000ff, false),
-    HOWTO (R_RELWORD,         0,  1,   16, false, 0, complain_overflow_bitfield, 0, "16",      true, 0x0000ffff,0x0000ffff, false),
-    HOWTO (R_RELLONG,         0,  2,   32, false, 0, complain_overflow_bitfield, 0, "32",      true, 0xffffffff,0xffffffff, false),
-    HOWTO (R_PCRBYTE,         0,  0,   8,  true,  0, complain_overflow_signed,   0, "DISP8",   true, 0x000000ff,0x000000ff, false),
-    HOWTO (R_PCRWORD,         0,  1,   16, true,  0, complain_overflow_signed,   0, "DISP16",  true, 0x0000ffff,0x0000ffff, false),
-    HOWTO (R_PCRLONG,         0,  2,   32, true,  0, complain_overflow_signed,   0, "DISP32",  true, 0xffffffff,0xffffffff, false),
-    HOWTO (R_RELLONG_NEG,      0,  -2,         32, false, 0, complain_overflow_bitfield, 0, "-32",     true, 0xffffffff,0xffffffff, false),
+    HOWTO (R_RELBYTE,         0,  0,   8,  FALSE, 0, complain_overflow_bitfield, 0, "8",       TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (R_RELWORD,         0,  1,   16, FALSE, 0, complain_overflow_bitfield, 0, "16",      TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (R_RELLONG,         0,  2,   32, FALSE, 0, complain_overflow_bitfield, 0, "32",      TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_PCRBYTE,         0,  0,   8,  TRUE,  0, complain_overflow_signed,   0, "DISP8",   TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (R_PCRWORD,         0,  1,   16, TRUE,  0, complain_overflow_signed,   0, "DISP16",  TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (R_PCRLONG,         0,  2,   32, TRUE,  0, complain_overflow_signed,   0, "DISP32",  TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_RELLONG_NEG,      0,  -2,         32, FALSE, 0, complain_overflow_bitfield, 0, "-32",     TRUE, 0xffffffff,0xffffffff, FALSE),
   };
 #endif /* not ONLY_DECLARE_RELOCS */
 
index 25256a8b7bb38734c2dabc208556a90408f761b4..2fadcbef557456787475ca5181c65256713602ce 100644 (file)
@@ -80,7 +80,7 @@ typedef unsigned long int insn32;
 typedef unsigned short int insn16;
 
      /* Forward declarations for stupid compilers.  */
-static boolean coff_arm_relocate_section
+static bfd_boolean coff_arm_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
            struct internal_reloc *, struct internal_syment *, asection **));
 static bfd_reloc_status_type aoutarm_fix_pcrel_26_done
@@ -99,9 +99,9 @@ static bfd_reloc_status_type coff_thumb_pcrel_12
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type coff_arm_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean coff_arm_adjust_symndx
+static bfd_boolean coff_arm_adjust_symndx
   PARAMS ((bfd *, struct bfd_link_info *, bfd *,
-          asection *, struct internal_reloc *, boolean *));
+          asection *, struct internal_reloc *, bfd_boolean *));
 static reloc_howto_type * coff_arm_rtype_to_howto
   PARAMS ((bfd *, asection *, struct internal_reloc *,
           struct coff_link_hash_entry *, struct internal_syment *,
@@ -125,19 +125,19 @@ static void record_thumb_to_arm_glue
   PARAMS ((struct bfd_link_info *, struct coff_link_hash_entry *));
 #endif
 #endif
-static boolean coff_arm_merge_private_bfd_data
+static bfd_boolean coff_arm_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
-static boolean coff_arm_print_private_bfd_data
+static bfd_boolean coff_arm_print_private_bfd_data
   PARAMS ((bfd *, PTR));
-static boolean _bfd_coff_arm_set_private_flags
+static bfd_boolean _bfd_coff_arm_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean coff_arm_copy_private_bfd_data
+static bfd_boolean coff_arm_copy_private_bfd_data
   PARAMS ((bfd *, bfd *));
-static boolean coff_arm_is_local_label_name
+static bfd_boolean coff_arm_is_local_label_name
   PARAMS ((bfd *, const char *));
-static boolean coff_arm_link_output_has_begun
+static bfd_boolean coff_arm_link_output_has_begun
   PARAMS ((bfd *, struct coff_final_link_info *));
-static boolean coff_arm_final_link_postscript
+static bfd_boolean coff_arm_final_link_postscript
   PARAMS ((bfd *, struct coff_final_link_info *));
 static void arm_emit_base_file_entry
   PARAMS ((struct bfd_link_info *, bfd *, asection *, bfd_vma));
@@ -224,7 +224,7 @@ coff_arm_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
 #endif
 
 #ifndef PCRELOFFSET
-#define PCRELOFFSET true
+#define PCRELOFFSET TRUE
 #endif
 
 /* These most certainly belong somewhere else. Just had to get rid of
@@ -269,12 +269,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           0,
           2,
           32,
-          false,
+          FALSE,
           0,
           complain_overflow_bitfield,
           coff_arm_reloc,
           "ARM_32",
-          true,
+          TRUE,
           0xffffffff,
           0xffffffff,
           PCRELOFFSET),
@@ -282,12 +282,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           0,
           2,
           32,
-          false,
+          FALSE,
           0,
           complain_overflow_bitfield,
           coff_arm_reloc,
           "ARM_RVA32",
-          true,
+          TRUE,
           0xffffffff,
           0xffffffff,
           PCRELOFFSET),
@@ -295,12 +295,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           2,
           2,
           24,
-          true,
+          TRUE,
           0,
           complain_overflow_signed,
           aoutarm_fix_pcrel_26 ,
           "ARM_26",
-          false,
+          FALSE,
           0x00ffffff,
           0x00ffffff,
           PCRELOFFSET),
@@ -308,12 +308,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           1,
           1,
           11,
-          true,
+          TRUE,
           0,
           complain_overflow_signed,
           coff_thumb_pcrel_12 ,
           "ARM_THUMB12",
-          false,
+          FALSE,
           0x000007ff,
           0x000007ff,
           PCRELOFFSET),
@@ -321,15 +321,15 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           2,
           2,
           24,
-          false,
+          FALSE,
           0,
           complain_overflow_dont,
           aoutarm_fix_pcrel_26_done,
           "ARM_26D",
-          true,
+          TRUE,
           0x00ffffff,
           0x0,
-          false),
+          FALSE),
     EMPTY_HOWTO (-1),
     EMPTY_HOWTO (-1),
     EMPTY_HOWTO (-1),
@@ -342,12 +342,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           0,
           1,
           16,
-          false,
+          FALSE,
           0,
           complain_overflow_bitfield,
           coff_arm_reloc,
           "ARM_16",
-          true,
+          TRUE,
           0x0000ffff,
           0x0000ffff,
           PCRELOFFSET),
@@ -355,26 +355,26 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           0,
           2,
           32,
-          false,
+          FALSE,
           0,
           complain_overflow_bitfield,
           coff_arm_reloc,
           "ARM_32",
-          true,
+          TRUE,
           0xffffffff,
           0xffffffff,
           PCRELOFFSET),
 #else /* not ARM_WINCE */
-    HOWTO (ARM_8,                      /* type */
+    HOWTO (ARM_8,              /* type */
           0,                   /* rightshift */
           0,                   /* size */
           8,                   /* bitsize */
-          false,                       /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield, /* complain_on_overflow */
-          coff_arm_reloc,              /* special_function */
+          coff_arm_reloc,      /* special_function */
           "ARM_8",             /* name */
-          true,                        /* partial_inplace */
+          TRUE,                /* partial_inplace */
           0x000000ff,          /* src_mask */
           0x000000ff,          /* dst_mask */
           PCRELOFFSET          /* pcrel_offset */),
@@ -382,12 +382,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           0,
           1,
           16,
-          false,
+          FALSE,
           0,
           complain_overflow_bitfield,
           coff_arm_reloc,
           "ARM_16",
-          true,
+          TRUE,
           0x0000ffff,
           0x0000ffff,
           PCRELOFFSET),
@@ -395,12 +395,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           0,
           2,
           32,
-          false,
+          FALSE,
           0,
           complain_overflow_bitfield,
           coff_arm_reloc,
           "ARM_32",
-          true,
+          TRUE,
           0xffffffff,
           0xffffffff,
           PCRELOFFSET),
@@ -408,12 +408,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           2,
           2,
           24,
-          true,
+          TRUE,
           0,
           complain_overflow_signed,
           aoutarm_fix_pcrel_26 ,
           "ARM_26",
-          false,
+          FALSE,
           0x00ffffff,
           0x00ffffff,
           PCRELOFFSET),
@@ -421,92 +421,92 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           0,
           0,
           8,
-          true,
+          TRUE,
           0,
           complain_overflow_signed,
           coff_arm_reloc,
           "ARM_DISP8",
-          true,
+          TRUE,
           0x000000ff,
           0x000000ff,
-          true),
+          TRUE),
     HOWTO (ARM_DISP16,
           0,
           1,
           16,
-          true,
+          TRUE,
           0,
           complain_overflow_signed,
           coff_arm_reloc,
           "ARM_DISP16",
-          true,
+          TRUE,
           0x0000ffff,
           0x0000ffff,
-          true),
+          TRUE),
     HOWTO (ARM_DISP32,
           0,
           2,
           32,
-          true,
+          TRUE,
           0,
           complain_overflow_signed,
           coff_arm_reloc,
           "ARM_DISP32",
-          true,
+          TRUE,
           0xffffffff,
           0xffffffff,
-          true),
+          TRUE),
     HOWTO (ARM_26D,
           2,
           2,
           24,
-          false,
+          FALSE,
           0,
           complain_overflow_dont,
           aoutarm_fix_pcrel_26_done,
           "ARM_26D",
-          true,
+          TRUE,
           0x00ffffff,
           0x0,
-          false),
+          FALSE),
     /* 8 is unused */
     EMPTY_HOWTO (-1),
     HOWTO (ARM_NEG16,
           0,
           -1,
           16,
-          false,
+          FALSE,
           0,
           complain_overflow_bitfield,
           coff_arm_reloc,
           "ARM_NEG16",
-          true,
+          TRUE,
           0x0000ffff,
           0x0000ffff,
-          false),
+          FALSE),
     HOWTO (ARM_NEG32,
           0,
           -2,
           32,
-          false,
+          FALSE,
           0,
           complain_overflow_bitfield,
           coff_arm_reloc,
           "ARM_NEG32",
-          true,
+          TRUE,
           0xffffffff,
           0xffffffff,
-          false),
+          FALSE),
     HOWTO (ARM_RVA32,
           0,
           2,
           32,
-          false,
+          FALSE,
           0,
           complain_overflow_bitfield,
           coff_arm_reloc,
           "ARM_RVA32",
-          true,
+          TRUE,
           0xffffffff,
           0xffffffff,
           PCRELOFFSET),
@@ -514,12 +514,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           1,
           1,
           8,
-          true,
+          TRUE,
           0,
           complain_overflow_signed,
           coff_thumb_pcrel_9 ,
           "ARM_THUMB9",
-          false,
+          FALSE,
           0x000000ff,
           0x000000ff,
           PCRELOFFSET),
@@ -527,12 +527,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           1,
           1,
           11,
-          true,
+          TRUE,
           0,
           complain_overflow_signed,
           coff_thumb_pcrel_12 ,
           "ARM_THUMB12",
-          false,
+          FALSE,
           0x000007ff,
           0x000007ff,
           PCRELOFFSET),
@@ -540,12 +540,12 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
           1,
           2,
           22,
-          true,
+          TRUE,
           0,
           complain_overflow_signed,
           coff_thumb_pcrel_23 ,
           "ARM_THUMB23",
-          false,
+          FALSE,
           0x07ff07ff,
           0x07ff07ff,
           PCRELOFFSET)
@@ -555,11 +555,11 @@ static reloc_howto_type aoutarm_std_reloc_howto[] =
 #define NUM_RELOCS NUM_ELEM (aoutarm_std_reloc_howto)
 
 #ifdef COFF_WITH_PE
-static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
-/* Return true if this relocation should
+static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
+/* Return TRUE if this relocation should
    appear in the output .reloc section.  */
 
-static boolean
+static bfd_boolean
 in_reloc_p (abfd, howto)
      bfd * abfd ATTRIBUTE_UNUSED;
      reloc_howto_type * howto;
@@ -1059,7 +1059,7 @@ find_thumb_glue (info, name, input_bfd)
   sprintf (tmp_name, THUMB2ARM_GLUE_ENTRY_NAME, name);
 
   myh = coff_link_hash_lookup
-    (coff_hash_table (info), tmp_name, false, false, true);
+    (coff_hash_table (info), tmp_name, FALSE, FALSE, TRUE);
 
   if (myh == NULL)
     /* xgettext:c-format */
@@ -1089,7 +1089,7 @@ find_arm_glue (info, name, input_bfd)
   sprintf (tmp_name, ARM2THUMB_GLUE_ENTRY_NAME, name);
 
   myh = coff_link_hash_lookup
-    (coff_hash_table (info), tmp_name, false, false, true);
+    (coff_hash_table (info), tmp_name, FALSE, FALSE, TRUE);
 
   if (myh == NULL)
     /* xgettext:c-format */
@@ -1188,7 +1188,7 @@ static const insn32 t2a6_bx_insn    = 0xe12fff1e;
    ARM/Thumb builds.  It is only the code marked THUMBEXTENSION that
    is different from the original.  */
 
-static boolean
+static bfd_boolean
 coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
                            contents, relocs, syms, sections)
      bfd *output_bfd;
@@ -1244,7 +1244,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
       howto = coff_rtype_to_howto (input_bfd, input_section, rel, h,
                                       sym, &addend);
       if (howto == NULL)
-       return false;
+       return FALSE;
 
       /* The relocation_section function will skip pcrel_offset relocs
          when doing a relocateable link.  However, we want to convert
@@ -1264,15 +1264,15 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
               2,
               2,
               24,
-              true,
+              TRUE,
               0,
               complain_overflow_signed,
               aoutarm_fix_pcrel_26 ,
               "ARM_26",
-              false,
+              FALSE,
               0x00ffffff,
               0x00ffffff,
-              false);
+              FALSE);
 
           addend -= rel->r_vaddr - input_section->vma;
           howto = &fake_arm26_reloc;
@@ -1281,8 +1281,11 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
 #ifdef ARM_WINCE
       /* MS ARM-CE makes the reloc relative to the opcode's pc, not
         the next opcode's pc, so is off by one.  */
+#if 0 /* This appears to have been true for WINCE 2.0, but it is not
+        true for WINCE 3.0.  */
       if (howto->pc_relative && !info->relocateable)
        addend -= 8;
+#endif
 #endif
 
       /* If we are doing a relocateable link, then we can just ignore
@@ -1365,7 +1368,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
 
                      myh = find_arm_glue (info, name, input_bfd);
                      if (myh == NULL)
-                       return false;
+                       return FALSE;
 
                      globals = coff_arm_hash_table (info);
 
@@ -1458,7 +1461,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
 
                      myh = find_thumb_glue (info, name, input_bfd);
                      if (myh == NULL)
-                       return false;
+                       return FALSE;
 
                      globals = coff_arm_hash_table (info);
 
@@ -1596,8 +1599,8 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd, input_section,
-                     rel->r_vaddr - input_section->vma, true)))
-               return false;
+                     rel->r_vaddr - input_section->vma, TRUE)))
+               return FALSE;
            }
        }
 
@@ -1631,18 +1634,18 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
            rstat = bfd_reloc_outofrange;
           else
             {
-              bfd_vma         relocation       = val + addend;
-             int             size             = bfd_get_reloc_size (howto);
-             boolean         overflow         = false;
-             bfd_byte *      location         = contents + address;
-             bfd_vma         x                = bfd_get_32 (input_bfd, location);
-             bfd_vma         src_mask         = 0x007FFFFE;
-             bfd_signed_vma  reloc_signed_max = (1 << (howto->bitsize - 1)) - 1;
-             bfd_signed_vma  reloc_signed_min = ~reloc_signed_max;
-             bfd_vma         check;
-             bfd_signed_vma  signed_check;
-             bfd_vma         add;
-             bfd_signed_vma  signed_add;
+              bfd_vma relocation = val + addend;
+             int size = bfd_get_reloc_size (howto);
+             bfd_boolean overflow = FALSE;
+             bfd_byte *location = contents + address;
+             bfd_vma x = bfd_get_32 (input_bfd, location);
+             bfd_vma src_mask = 0x007FFFFE;
+             bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1;
+             bfd_signed_vma reloc_signed_min = ~reloc_signed_max;
+             bfd_vma check;
+             bfd_signed_vma signed_check;
+             bfd_vma add;
+             bfd_signed_vma signed_add;
 
              BFD_ASSERT (size == 4);
 
@@ -1699,7 +1702,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
              /* Assumes two's complement.  */
              if (   signed_check > reloc_signed_max
                  || signed_check < reloc_signed_min)
-               overflow = true;
+               overflow = TRUE;
 
              /* Put the relocation into the correct bits.
                 For a BLX instruction, make sure that the relocation is rounded up
@@ -1746,13 +1749,13 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
          /* Determine if we need to set the bottom bit of a relocated address
             because the address is the address of a Thumb code symbol.  */
 
-         int patchit = false;
+         int patchit = FALSE;
 
          if (h != NULL
              && (   h->class == C_THUMBSTATFUNC
                  || h->class == C_THUMBEXTFUNC))
            {
-             patchit = true;
+             patchit = TRUE;
            }
          else if (sym != NULL
                   && sym->n_scnum > N_UNDEF)
@@ -1761,7 +1764,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
 
              if (   sym->n_sclass == C_THUMBSTATFUNC
                  || sym->n_sclass == C_THUMBEXTFUNC)
-               patchit = true;
+               patchit = TRUE;
            }
 
          if (patchit)
@@ -1786,7 +1789,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
             bfd_archive_filename (input_bfd),
             (unsigned long) rel->r_vaddr,
             bfd_get_section_name (input_bfd, input_section));
-         return false;
+         return FALSE;
        case bfd_reloc_overflow:
          {
            const char *name;
@@ -1800,23 +1803,23 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
              {
                name = _bfd_coff_internal_syment_name (input_bfd, sym, buf);
                if (name == NULL)
-                 return false;
+                 return FALSE;
              }
 
            if (! ((*info->callbacks->reloc_overflow)
                   (info, name, howto->name, (bfd_vma) 0, input_bfd,
                    input_section, rel->r_vaddr - input_section->vma)))
-             return false;
+             return FALSE;
          }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 #ifndef COFF_IMAGE_WITH_PE
 
-boolean
+bfd_boolean
 bfd_arm_allocate_interworking_sections (info)
      struct bfd_link_info * info;
 {
@@ -1869,7 +1872,7 @@ bfd_arm_allocate_interworking_sections (info)
       s->contents = foo;
     }
 
-  return true;
+  return TRUE;
 }
 
 static void
@@ -1904,7 +1907,7 @@ record_arm_to_thumb_glue (info, h)
   sprintf (tmp_name, ARM2THUMB_GLUE_ENTRY_NAME, name);
 
   myh = coff_link_hash_lookup
-    (coff_hash_table (info), tmp_name, false, false, true);
+    (coff_hash_table (info), tmp_name, FALSE, FALSE, TRUE);
 
   if (myh != NULL)
     {
@@ -1919,7 +1922,7 @@ record_arm_to_thumb_glue (info, h)
   bh = NULL;
   val = globals->arm_glue_size + 1;
   bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name,
-                               BSF_GLOBAL, s, val, NULL, true, false, &bh);
+                               BSF_GLOBAL, s, val, NULL, TRUE, FALSE, &bh);
 
   free (tmp_name);
 
@@ -1961,7 +1964,7 @@ record_thumb_to_arm_glue (info, h)
   sprintf (tmp_name, THUMB2ARM_GLUE_ENTRY_NAME, name);
 
   myh = coff_link_hash_lookup
-    (coff_hash_table (info), tmp_name, false, false, true);
+    (coff_hash_table (info), tmp_name, FALSE, FALSE, TRUE);
 
   if (myh != NULL)
     {
@@ -1972,7 +1975,7 @@ record_thumb_to_arm_glue (info, h)
   bh = NULL;
   val = globals->thumb_glue_size + 1;
   bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name,
-                               BSF_GLOBAL, s, val, NULL, true, false, &bh);
+                               BSF_GLOBAL, s, val, NULL, TRUE, FALSE, &bh);
 
   /* If we mark it 'thumb', the disassembler will do a better job.  */
   myh = (struct coff_link_hash_entry *) bh;
@@ -1995,7 +1998,7 @@ record_thumb_to_arm_glue (info, h)
   bh = NULL;
   val = globals->thumb_glue_size + (globals->support_old_code ? 8 : 4);
   bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name,
-                               BSF_LOCAL, s, val, NULL, true, false, &bh);
+                               BSF_LOCAL, s, val, NULL, TRUE, FALSE, &bh);
 
   free (tmp_name);
 
@@ -2009,7 +2012,7 @@ record_thumb_to_arm_glue (info, h)
    This function is called from the linker scripts in ld/emultempl/
    {armcoff/pe}.em  */
 
-boolean
+bfd_boolean
 bfd_arm_get_bfd_for_interworking (abfd, info)
      bfd *                 abfd;
      struct bfd_link_info * info;
@@ -2021,14 +2024,14 @@ bfd_arm_get_bfd_for_interworking (abfd, info)
   /* If we are only performing a partial link do not bother
      getting a bfd to hold the glue.  */
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   globals = coff_arm_hash_table (info);
 
   BFD_ASSERT (globals != NULL);
 
   if (globals->bfd_of_glue_owner != NULL)
-    return true;
+    return TRUE;
 
   sec = bfd_get_section_by_name (abfd, ARM2THUMB_GLUE_SECTION_NAME);
 
@@ -2041,7 +2044,7 @@ bfd_arm_get_bfd_for_interworking (abfd, info)
       if (sec == NULL
          || ! bfd_set_section_flags (abfd, sec, flags)
          || ! bfd_set_section_alignment (abfd, sec, 2))
-       return false;
+       return FALSE;
     }
 
   sec = bfd_get_section_by_name (abfd, THUMB2ARM_GLUE_SECTION_NAME);
@@ -2055,16 +2058,16 @@ bfd_arm_get_bfd_for_interworking (abfd, info)
       if (sec == NULL
          || ! bfd_set_section_flags (abfd, sec, flags)
          || ! bfd_set_section_alignment (abfd, sec, 2))
-       return false;
+       return FALSE;
     }
 
   /* Save the bfd for later use.  */
   globals->bfd_of_glue_owner = abfd;
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 bfd_arm_process_before_allocation (abfd, info, support_old_code)
      bfd *                   abfd;
      struct bfd_link_info *  info;
@@ -2076,7 +2079,7 @@ bfd_arm_process_before_allocation (abfd, info, support_old_code)
   /* If we are only performing a partial link do not bother
      to construct any glue.  */
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   /* Here we have a bfd that is to be included on the link.  We have a hook
      to do reloc rummaging, before section sizes are nailed down.  */
@@ -2094,7 +2097,7 @@ bfd_arm_process_before_allocation (abfd, info, support_old_code)
   sec = abfd->sections;
 
   if (sec == NULL)
-    return true;
+    return TRUE;
 
   for (; sec != NULL; sec = sec->next)
     {
@@ -2178,7 +2181,7 @@ bfd_arm_process_before_allocation (abfd, info, support_old_code)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 #endif /* ! defined (COFF_IMAGE_WITH_PE) */
@@ -2198,14 +2201,14 @@ bfd_arm_process_before_allocation (abfd, info, support_old_code)
 /* When doing a relocateable link, we want to convert ARM26 relocs
    into ARM26D relocs.  */
 
-static boolean
+static bfd_boolean
 coff_arm_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp)
      bfd *obfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      bfd *ibfd;
      asection *sec;
      struct internal_reloc *irel;
-     boolean *adjustedp;
+     bfd_boolean *adjustedp;
 {
   if (irel->r_type == 3)
     {
@@ -2218,8 +2221,8 @@ coff_arm_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp)
          && h->root.u.def.section->output_section == sec->output_section)
        irel->r_type = 7;
     }
-  *adjustedp = false;
-  return true;
+  *adjustedp = FALSE;
+  return TRUE;
 }
 
 /* Called when merging the private data areas of two BFDs.
@@ -2227,7 +2230,7 @@ coff_arm_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp)
    attempting to merge binaries compiled for different ARM
    targets, eg different CPUs or differents APCS's.     */
 
-static boolean
+static bfd_boolean
 coff_arm_merge_private_bfd_data (ibfd, obfd)
      bfd *   ibfd;
      bfd *   obfd;
@@ -2235,14 +2238,14 @@ coff_arm_merge_private_bfd_data (ibfd, obfd)
   BFD_ASSERT (ibfd != NULL && obfd != NULL);
 
   if (ibfd == obfd)
-    return true;
+    return TRUE;
 
   /* If the two formats are different we cannot merge anything.
      This is not an error, since it is permissable to change the
      input and output formats.  */
   if (   ibfd->xvec->flavour != bfd_target_coff_flavour
       || obfd->xvec->flavour != bfd_target_coff_flavour)
-    return true;
+    return TRUE;
 
   /* Verify that the APCS is the same for the two BFDs */
   if (APCS_SET (ibfd))
@@ -2260,7 +2263,7 @@ coff_arm_merge_private_bfd_data (ibfd, obfd)
                 );
 
              bfd_set_error (bfd_error_wrong_format);
-             return false;
+             return FALSE;
            }
 
          if (APCS_FLOAT_FLAG (obfd) != APCS_FLOAT_FLAG (ibfd))
@@ -2278,7 +2281,7 @@ coff_arm_merge_private_bfd_data (ibfd, obfd)
                                  bfd_get_filename (obfd));
 
              bfd_set_error (bfd_error_wrong_format);
-             return false;
+             return FALSE;
            }
 
          if (PIC_FLAG (obfd) != PIC_FLAG (ibfd))
@@ -2295,7 +2298,7 @@ coff_arm_merge_private_bfd_data (ibfd, obfd)
                                  bfd_get_filename (obfd));
 
              bfd_set_error (bfd_error_wrong_format);
-             return false;
+             return FALSE;
            }
        }
       else
@@ -2334,12 +2337,12 @@ coff_arm_merge_private_bfd_data (ibfd, obfd)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Display the flags field.  */
 
-static boolean
+static bfd_boolean
 coff_arm_print_private_bfd_data (abfd, ptr)
      bfd *   abfd;
      PTR     ptr;
@@ -2376,7 +2379,7 @@ coff_arm_print_private_bfd_data (abfd, ptr)
 
   fputc ('\n', file);
 
-  return true;
+  return TRUE;
 }
 
 /* Copies the given flags into the coff_tdata.flags field.
@@ -2386,7 +2389,7 @@ coff_arm_print_private_bfd_data (abfd, ptr)
    Note: Although this function is static, it is explicitly
    called from both coffcode.h and peicode.h.  */
 
-static boolean
+static bfd_boolean
 _bfd_coff_arm_set_private_flags (abfd, flags)
        bfd *      abfd;
        flagword   flags;
@@ -2404,7 +2407,7 @@ _bfd_coff_arm_set_private_flags (abfd, flags)
          || (APCS_FLOAT_FLAG (abfd) != (flags & F_APCS_FLOAT))
          || (PIC_FLAG        (abfd) != (flags & F_PIC))
          ))
-    return false;
+    return FALSE;
 
   flag |= (flags & (F_APCS_FLOAT | F_PIC));
 
@@ -2431,13 +2434,13 @@ _bfd_coff_arm_set_private_flags (abfd, flags)
 
   SET_INTERWORK_FLAG (abfd, flag);
 
-  return true;
+  return TRUE;
 }
 
 /* Copy the important parts of the target specific data
    from one instance of a BFD to another.  */
 
-static boolean
+static bfd_boolean
 coff_arm_copy_private_bfd_data (src, dest)
      bfd *  src;
      bfd *  dest;
@@ -2445,12 +2448,12 @@ coff_arm_copy_private_bfd_data (src, dest)
   BFD_ASSERT (src != NULL && dest != NULL);
 
   if (src == dest)
-    return true;
+    return TRUE;
 
   /* If the destination is not in the same format as the source, do not do
      the copy.  */
   if (src->xvec != dest->xvec)
-    return true;
+    return TRUE;
 
   /* copy the flags field */
   if (APCS_SET (src))
@@ -2459,13 +2462,13 @@ coff_arm_copy_private_bfd_data (src, dest)
        {
          /* If the src and dest have different APCS flag bits set, fail.  */
          if (APCS_26_FLAG (dest) != APCS_26_FLAG (src))
-           return false;
+           return FALSE;
 
          if (APCS_FLOAT_FLAG (dest) != APCS_FLOAT_FLAG (src))
-           return false;
+           return FALSE;
 
          if (PIC_FLAG (dest) != PIC_FLAG (src))
-           return false;
+           return FALSE;
        }
       else
        SET_APCS_FLAGS (dest, APCS_26_FLAG (src) | APCS_FLOAT_FLAG (src)
@@ -2498,7 +2501,7 @@ Warning: Clearing the interworking flag of %s because non-interworking code in %
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Note:  the definitions here of LOCAL_LABEL_PREFIX and USER_LABEL_PREIFX
@@ -2513,7 +2516,7 @@ Warning: Clearing the interworking flag of %s because non-interworking code in %
       non-local.
    b) Allow other prefixes than ".", e.g. an empty prefix would cause all
       labels of the form Lxxx to be stripped.  */
-static boolean
+static bfd_boolean
 coff_arm_is_local_label_name (abfd, name)
      bfd *        abfd ATTRIBUTE_UNUSED;
      const char * name;
@@ -2522,7 +2525,7 @@ coff_arm_is_local_label_name (abfd, name)
   if (USER_LABEL_PREFIX[0] != 0)
     {
       if (strncmp (name, USER_LABEL_PREFIX, strlen (USER_LABEL_PREFIX)) == 0)
-       return false;
+       return FALSE;
     }
 #endif
 
@@ -2535,7 +2538,7 @@ coff_arm_is_local_label_name (abfd, name)
       size_t len = strlen (LOCAL_LABEL_PREFIX);
 
       if (strncmp (name, LOCAL_LABEL_PREFIX, len) != 0)
-       return false;
+       return FALSE;
 
       /* Perform the checks below for the rest of the name.  */
       name += len;
@@ -2553,7 +2556,7 @@ coff_arm_is_local_label_name (abfd, name)
 
    krk@cygnus.com  */
 
-static boolean
+static bfd_boolean
 coff_arm_link_output_has_begun (sub, info)
      bfd * sub;
      struct coff_final_link_info * info;
@@ -2562,7 +2565,7 @@ coff_arm_link_output_has_begun (sub, info)
          || sub == coff_arm_hash_table (info->info)->bfd_of_glue_owner);
 }
 
-static boolean
+static bfd_boolean
 coff_arm_final_link_postscript (abfd, pfinfo)
      bfd * abfd ATTRIBUTE_UNUSED;
      struct coff_final_link_info * pfinfo;
@@ -2576,12 +2579,12 @@ coff_arm_final_link_postscript (abfd, pfinfo)
   if (globals->bfd_of_glue_owner != NULL)
     {
       if (! _bfd_coff_link_input_bfd (pfinfo, globals->bfd_of_glue_owner))
-       return false;
+       return FALSE;
 
-      globals->bfd_of_glue_owner->output_has_begun = true;
+      globals->bfd_of_glue_owner->output_has_begun = TRUE;
     }
 
-  return true;
+  return TRUE;
 }
 
 #include "coffcode.h"
index 53822f04ed713920c92045e34c1572345aac5919..4d7cde55571f663af5093b4101c8e61cf8a6db88 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Apple M68K COFF A/UX 3.x files.
-   Copyright 1996, 1997, 2000 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
    Written by Richard Henderson <rth@tamu.edu>.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -40,9 +40,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "bfd.h"
 #include "sysdep.h"
 
-static boolean coff_m68k_aux_link_add_one_symbol
+static bfd_boolean coff_m68k_aux_link_add_one_symbol
   PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword,
-           asection *, bfd_vma, const char *, boolean, boolean,
+           asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
            struct bfd_link_hash_entry **));
 
 #define coff_link_add_one_symbol coff_m68k_aux_link_add_one_symbol
@@ -56,7 +56,7 @@ static boolean coff_m68k_aux_link_add_one_symbol
    shared libraries work here, but can work if you are careful with
    what you include in the shared object.  */
 
-static boolean
+static bfd_boolean
 coff_m68k_aux_link_add_one_symbol (info, abfd, name, flags, section, value,
                                   string, copy, collect, hashp)
      struct bfd_link_info *info;
@@ -66,8 +66,8 @@ coff_m68k_aux_link_add_one_symbol (info, abfd, name, flags, section, value,
      asection *section;
      bfd_vma value;
      const char *string;
-     boolean copy;
-     boolean collect;
+     bfd_boolean copy;
+     bfd_boolean collect;
      struct bfd_link_hash_entry **hashp;
 {
   struct bfd_link_hash_entry *h;
@@ -86,21 +86,21 @@ coff_m68k_aux_link_add_one_symbol (info, abfd, name, flags, section, value,
        }
       else
        {
-         h = bfd_link_hash_lookup (info->hash, name, true, copy, false);
+         h = bfd_link_hash_lookup (info->hash, name, TRUE, copy, FALSE);
          if (h == NULL)
            {
              if (hashp != NULL)
                *hashp = NULL;
-             return false;
+             return FALSE;
            }
        }
 
       if (info->notice_hash != (struct bfd_hash_table *) NULL
-         && (bfd_hash_lookup (info->notice_hash, name, false, false)
+         && (bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE)
              != (struct bfd_hash_entry *) NULL))
        {
          if (! (*info->callbacks->notice) (info, name, abfd, section, value))
-           return false;
+           return FALSE;
        }
 
       if (hashp != (struct bfd_link_hash_entry **) NULL)
@@ -121,10 +121,10 @@ coff_m68k_aux_link_add_one_symbol (info, abfd, name, flags, section, value,
            {
              h->u.def.section = section;
              h->u.def.value = value;
-             return true;
+             return TRUE;
            }
          else if (bfd_is_abs_section (section) && !bfd_is_abs_section (msec))
-           return true;
+           return TRUE;
        }
     }
 
index c83015e4efbe2f715994962d637b451bd97828c9..e21c5b5484227487c56d0cced49cc5dd53de36e9 100644 (file)
@@ -28,6 +28,7 @@
 #include "coff/h8300.h"
 #include "coff/internal.h"
 #include "libcoff.h"
+#include "libiberty.h"
 
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1)
 
@@ -62,21 +63,31 @@ static struct bfd_hash_entry *
 funcvec_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 
-static boolean
+static bfd_boolean
 funcvec_hash_table_init
   PARAMS ((struct funcvec_hash_table *, bfd *,
-           struct bfd_hash_entry *(*) PARAMS ((struct bfd_hash_entry *,
-                                               struct bfd_hash_table *,
-                                               const char *))));
-
-static bfd_reloc_status_type special PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static int select_reloc PARAMS ((reloc_howto_type *));
-static void rtype2howto PARAMS ((arelent *, struct internal_reloc *));
-static void reloc_processing PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *));
-static boolean h8300_symbol_address_p PARAMS ((bfd *, asection *, bfd_vma));
-static int h8300_reloc16_estimate PARAMS ((bfd *, asection *, arelent *, unsigned int, struct bfd_link_info *));
-static void h8300_reloc16_extra_cases PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, bfd_byte *, unsigned int *, unsigned int *));
-static boolean h8300_bfd_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *));
+          struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
+                                      struct bfd_hash_table *,
+                                      const char *)));
+
+static bfd_reloc_status_type special
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static int select_reloc
+  PARAMS ((reloc_howto_type *));
+static void rtype2howto
+  PARAMS ((arelent *, struct internal_reloc *));
+static void reloc_processing
+  PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *));
+static bfd_boolean h8300_symbol_address_p
+  PARAMS ((bfd *, asection *, bfd_vma));
+static int h8300_reloc16_estimate
+  PARAMS ((bfd *, asection *, arelent *, unsigned int,
+    struct bfd_link_info *));
+static void h8300_reloc16_extra_cases
+  PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
+    bfd_byte *, unsigned int *, unsigned int *));
+static bfd_boolean h8300_bfd_link_add_symbols
+  PARAMS ((bfd *, struct bfd_link_info *));
 
 /* To lookup a value in the function vector hash table.  */
 #define funcvec_hash_lookup(table, string, create, copy) \
@@ -127,8 +138,8 @@ funcvec_hash_newfunc (entry, gen_table, string)
      subclass.  */
   if (ret == NULL)
     ret = ((struct funcvec_hash_entry *)
-           bfd_hash_allocate (gen_table,
-                              sizeof (struct funcvec_hash_entry)));
+          bfd_hash_allocate (gen_table,
+                             sizeof (struct funcvec_hash_entry)));
   if (ret == NULL)
     return NULL;
 
@@ -159,13 +170,13 @@ funcvec_hash_newfunc (entry, gen_table, string)
 
 /* Initialize the function vector hash table.  */
 
-static boolean
+static bfd_boolean
 funcvec_hash_table_init (table, abfd, newfunc)
      struct funcvec_hash_table *table;
      bfd *abfd;
-     struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
-                                               struct bfd_hash_table *,
-                                               const char *));
+     struct bfd_hash_entry *(*newfunc)
+       PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
+               const char *));
 {
   /* Initialize our local fields, then call the generic initialization
      routine.  */
@@ -175,7 +186,7 @@ funcvec_hash_table_init (table, abfd, newfunc)
 }
 
 /* Create the derived linker hash table.  We use a derived hash table
-   basically to hold "static" information during an h8/300 coff link
+   basically to hold "static" information during an H8/300 coff link
    without using static variables.  */
 
 static struct bfd_link_hash_table *
@@ -232,37 +243,37 @@ special (abfd, reloc_entry, symbol, data, input_section, output_bfd,
 }
 
 static reloc_howto_type howto_table[] = {
-  HOWTO (R_RELBYTE, 0, 0, 8, false, 0, complain_overflow_bitfield, special, "8", false, 0x000000ff, 0x000000ff, false),
-  HOWTO (R_RELWORD, 0, 1, 16, false, 0, complain_overflow_bitfield, special, "16", false, 0x0000ffff, 0x0000ffff, false),
-  HOWTO (R_RELLONG, 0, 2, 32, false, 0, complain_overflow_bitfield, special, "32", false, 0xffffffff, 0xffffffff, false),
-  HOWTO (R_PCRBYTE, 0, 0, 8, true, 0, complain_overflow_signed, special, "DISP8", false, 0x000000ff, 0x000000ff, true),
-  HOWTO (R_PCRWORD, 0, 1, 16, true, 0, complain_overflow_signed, special, "DISP16", false, 0x0000ffff, 0x0000ffff, true),
-  HOWTO (R_PCRLONG, 0, 2, 32, true, 0, complain_overflow_signed, special, "DISP32", false, 0xffffffff, 0xffffffff, true),
-  HOWTO (R_MOV16B1, 0, 1, 16, false, 0, complain_overflow_bitfield, special, "relaxable mov.b:16", false, 0x0000ffff, 0x0000ffff, false),
-  HOWTO (R_MOV16B2, 0, 1, 8, false, 0, complain_overflow_bitfield, special, "relaxed mov.b:16", false, 0x000000ff, 0x000000ff, false),
-  HOWTO (R_JMP1, 0, 1, 16, false, 0, complain_overflow_bitfield, special, "16/pcrel", false, 0x0000ffff, 0x0000ffff, false),
-  HOWTO (R_JMP2, 0, 0, 8, false, 0, complain_overflow_bitfield, special, "pcrecl/16", false, 0x000000ff, 0x000000ff, false),
-  HOWTO (R_JMPL1, 0, 2, 32, false, 0, complain_overflow_bitfield, special, "24/pcrell", false, 0x00ffffff, 0x00ffffff, false),
-  HOWTO (R_JMPL2, 0, 0, 8, false, 0, complain_overflow_bitfield, special, "pc8/24", false, 0x000000ff, 0x000000ff, false),
-  HOWTO (R_MOV24B1, 0, 1, 32, false, 0, complain_overflow_bitfield, special, "relaxable mov.b:24", false, 0xffffffff, 0xffffffff, false),
-  HOWTO (R_MOV24B2, 0, 1, 8, false, 0, complain_overflow_bitfield, special, "relaxed mov.b:24", false, 0x0000ffff, 0x0000ffff, false),
+  HOWTO (R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "8", FALSE, 0x000000ff, 0x000000ff, FALSE),
+  HOWTO (R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "16", FALSE, 0x0000ffff, 0x0000ffff, FALSE),
+  HOWTO (R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, special, "32", FALSE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO (R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, special, "DISP8", FALSE, 0x000000ff, 0x000000ff, TRUE),
+  HOWTO (R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, special, "DISP16", FALSE, 0x0000ffff, 0x0000ffff, TRUE),
+  HOWTO (R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, special, "DISP32", FALSE, 0xffffffff, 0xffffffff, TRUE),
+  HOWTO (R_MOV16B1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "relaxable mov.b:16", FALSE, 0x0000ffff, 0x0000ffff, FALSE),
+  HOWTO (R_MOV16B2, 0, 1, 8, FALSE, 0, complain_overflow_bitfield, special, "relaxed mov.b:16", FALSE, 0x000000ff, 0x000000ff, FALSE),
+  HOWTO (R_JMP1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "16/pcrel", FALSE, 0x0000ffff, 0x0000ffff, FALSE),
+  HOWTO (R_JMP2, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "pcrecl/16", FALSE, 0x000000ff, 0x000000ff, FALSE),
+  HOWTO (R_JMPL1, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, special, "24/pcrell", FALSE, 0x00ffffff, 0x00ffffff, FALSE),
+  HOWTO (R_JMPL2, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "pc8/24", FALSE, 0x000000ff, 0x000000ff, FALSE),
+  HOWTO (R_MOV24B1, 0, 1, 32, FALSE, 0, complain_overflow_bitfield, special, "relaxable mov.b:24", FALSE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO (R_MOV24B2, 0, 1, 8, FALSE, 0, complain_overflow_bitfield, special, "relaxed mov.b:24", FALSE, 0x0000ffff, 0x0000ffff, FALSE),
 
   /* An indirect reference to a function.  This causes the function's address
      to be added to the function vector in lo-mem and puts the address of
      the function vector's entry in the jsr instruction.  */
-  HOWTO (R_MEM_INDIRECT, 0, 0, 8, false, 0, complain_overflow_bitfield, special, "8/indirect", false, 0x000000ff, 0x000000ff, false),
+  HOWTO (R_MEM_INDIRECT, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "8/indirect", FALSE, 0x000000ff, 0x000000ff, FALSE),
 
   /* Internal reloc for relaxing.  This is created when a 16bit pc-relative
      branch is turned into an 8bit pc-relative branch.  */
-  HOWTO (R_PCRWORD_B, 0, 0, 8, true, 0, complain_overflow_bitfield, special, "relaxed bCC:16", false, 0x000000ff, 0x000000ff, false),
+  HOWTO (R_PCRWORD_B, 0, 0, 8, TRUE, 0, complain_overflow_bitfield, special, "relaxed bCC:16", FALSE, 0x000000ff, 0x000000ff, FALSE),
 
-  HOWTO (R_MOVL1, 0, 2, 32, false, 0, complain_overflow_bitfield,special, "32/24 relaxable move", false, 0xffffffff, 0xffffffff, false),
+  HOWTO (R_MOVL1, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,special, "32/24 relaxable move", FALSE, 0xffffffff, 0xffffffff, FALSE),
 
-  HOWTO (R_MOVL2, 0, 1, 16, false, 0, complain_overflow_bitfield, special, "32/24 relaxed move", false, 0x0000ffff, 0x0000ffff, false),
+  HOWTO (R_MOVL2, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "32/24 relaxed move", FALSE, 0x0000ffff, 0x0000ffff, FALSE),
 
-  HOWTO (R_BCC_INV, 0, 0, 8, true, 0, complain_overflow_signed, special, "DISP8 inverted", false, 0x000000ff, 0x000000ff, true),
+  HOWTO (R_BCC_INV, 0, 0, 8, TRUE, 0, complain_overflow_signed, special, "DISP8 inverted", FALSE, 0x000000ff, 0x000000ff, TRUE),
 
-  HOWTO (R_JMP_DEL, 0, 0, 8, true, 0, complain_overflow_signed, special, "Deleted jump", false, 0x000000ff, 0x000000ff, true),
+  HOWTO (R_JMP_DEL, 0, 0, 8, TRUE, 0, complain_overflow_signed, special, "Deleted jump", FALSE, 0x000000ff, 0x000000ff, TRUE),
 };
 
 /* Turn a howto into a reloc number.  */
@@ -401,7 +412,7 @@ reloc_processing (relent, reloc, symbols, abfd, section)
 #endif
 }
 
-static boolean
+static bfd_boolean
 h8300_symbol_address_p (abfd, input_section, address)
      bfd *abfd;
      asection *input_section;
@@ -421,10 +432,10 @@ h8300_symbol_address_p (abfd, input_section, address)
          && (input_section->output_section->vma
              + input_section->output_offset
              + p->value) == address)
-       return true;
+       return TRUE;
       s++;
     }
-  return false;
+  return FALSE;
 }
 
 /* If RELOC represents a relaxable instruction/reloc, change it into
@@ -505,18 +516,18 @@ h8300_reloc16_estimate (abfd, input_section, reloc, shrink, link_info)
 
             Only perform this optimisation for jumps (code 0x5a) not
             subroutine calls, as otherwise it could transform:
-            
-                            mov.w   r0,r0
-                            beq     .L1
-                            jsr     @_bar
-                     .L1:   rts
-                     _bar:  rts
+
+                            mov.w   r0,r0
+                            beq     .L1
+                            jsr     @_bar
+                     .L1:   rts
+                     _bar:  rts
             into:
-                            mov.w   r0,r0
-                            bne     _bar
-                            rts
-                     _bar:  rts
-            
+                            mov.w   r0,r0
+                            bne     _bar
+                            rts
+                     _bar:  rts
+
             which changes the call (jsr) into a branch (bne).  */
          if (code == 0x5a
              && gap <= 126
@@ -554,7 +565,7 @@ h8300_reloc16_estimate (abfd, input_section, reloc, shrink, link_info)
        pc-relative branch.  */
     case R_PCRWORD:
       /* Get the address of the target of this branch, add one to the value
-         because the addend field in PCrel jumps is off by -1.  */
+        because the addend field in PCrel jumps is off by -1.  */
       value = bfd_coff_reloc16_get_value (reloc, link_info, input_section) + 1;
 
       /* Get the address of the next instruction if we were to relax.  */
@@ -639,7 +650,7 @@ h8300_reloc16_estimate (abfd, input_section, reloc, shrink, link_info)
       value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
 
       /* If this address is in 0x0000..0x7fff inclusive or
-         0xff8000..0xffffff inclusive, then it can be relaxed.  */
+        0xff8000..0xffffff inclusive, then it can be relaxed.  */
       if (value <= 0x7fff || value >= 0xff8000)
        {
          /* Change the reloc type.  */
@@ -1081,7 +1092,25 @@ h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
        const char *name;
        struct funcvec_hash_table *ftab;
        struct funcvec_hash_entry *h;
-       asection *vectors_sec = h8300_coff_hash_table (link_info)->vectors_sec;
+       struct h8300_coff_link_hash_table *htab;
+       asection *vectors_sec;
+
+       if (link_info->hash->creator != abfd->xvec)
+         {
+           (*_bfd_error_handler)
+             (_("cannot handle R_MEM_INDIRECT reloc when using %s output"),
+              link_info->hash->creator->name);
+
+           /* What else can we do?  This function doesn't allow return
+              of an error, and we don't want to call abort as that
+              indicates an internal error.  */
+#ifndef EXIT_FAILURE
+#define EXIT_FAILURE 1
+#endif
+           xexit (EXIT_FAILURE);
+         }
+       htab = h8300_coff_hash_table (link_info);
+       vectors_sec = htab->vectors_sec;
 
        /* First see if this is a reloc against the absolute symbol
           or against a symbol with a nonnegative value <= 0xff.  */
@@ -1130,12 +1159,12 @@ h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
            name = new_name;
          }
 
-       ftab = h8300_coff_hash_table (link_info)->funcvec_hash_table;
-       h = funcvec_hash_lookup (ftab, name, false, false);
+       ftab = htab->funcvec_hash_table;
+       h = funcvec_hash_lookup (ftab, name, FALSE, FALSE);
 
        /* This shouldn't ever happen.  If it does that means we've got
           data corruption of some kind.  Aborting seems like a reasonable
-          think to do here.  */
+          thing to do here.  */
        if (h == NULL || vectors_sec == NULL)
          abort ();
 
@@ -1196,7 +1225,7 @@ h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
    from this BFD to the bfd linker hash table.  It may add a few
    selected static symbols to the bfd linker hash table.  */
 
-static boolean
+static bfd_boolean
 h8300_bfd_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1204,50 +1233,53 @@ h8300_bfd_link_add_symbols (abfd, info)
   asection *sec;
   struct funcvec_hash_table *funcvec_hash_table;
   bfd_size_type amt;
+  struct h8300_coff_link_hash_table *htab;
+
+  /* Add the symbols using the generic code.  */
+  _bfd_generic_link_add_symbols (abfd, info);
+
+  if (info->hash->creator != abfd->xvec)
+    return TRUE;
+
+  htab = h8300_coff_hash_table (info);
 
   /* If we haven't created a vectors section, do so now.  */
-  if (!h8300_coff_hash_table (info)->vectors_sec)
+  if (!htab->vectors_sec)
     {
       flagword flags;
 
       /* Make sure the appropriate flags are set, including SEC_IN_MEMORY.  */
       flags = (SEC_ALLOC | SEC_LOAD
               | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_READONLY);
-      h8300_coff_hash_table (info)->vectors_sec = bfd_make_section (abfd,
-                                                                   ".vectors");
+      htab->vectors_sec = bfd_make_section (abfd, ".vectors");
 
       /* If the section wasn't created, or we couldn't set the flags,
-        quit quickly now, rather than dieing a painful death later.  */
-      if (! h8300_coff_hash_table (info)->vectors_sec
-         || ! bfd_set_section_flags (abfd,
-                                     h8300_coff_hash_table(info)->vectors_sec,
-                                     flags))
-       return false;
+        quit quickly now, rather than dying a painful death later.  */
+      if (!htab->vectors_sec
+         || !bfd_set_section_flags (abfd, htab->vectors_sec, flags))
+       return FALSE;
 
       /* Also create the vector hash table.  */
       amt = sizeof (struct funcvec_hash_table);
       funcvec_hash_table = (struct funcvec_hash_table *) bfd_alloc (abfd, amt);
 
       if (!funcvec_hash_table)
-       return false;
+       return FALSE;
 
       /* And initialize the funcvec hash table.  */
       if (!funcvec_hash_table_init (funcvec_hash_table, abfd,
                                    funcvec_hash_newfunc))
        {
          bfd_release (abfd, funcvec_hash_table);
-         return false;
+         return FALSE;
        }
 
       /* Store away a pointer to the funcvec hash table.  */
-      h8300_coff_hash_table (info)->funcvec_hash_table = funcvec_hash_table;
+      htab->funcvec_hash_table = funcvec_hash_table;
     }
 
   /* Load up the function vector hash table.  */
-  funcvec_hash_table = h8300_coff_hash_table (info)->funcvec_hash_table;
-
-  /* Add the symbols using the generic code.  */
-  _bfd_generic_link_add_symbols (abfd, info);
+  funcvec_hash_table = htab->funcvec_hash_table;
 
   /* Now scan the relocs for all the sections in this bfd; create
      additional space in the .vectors section as needed.  */
@@ -1264,7 +1296,7 @@ h8300_bfd_link_add_symbols (abfd, info)
 
       relocs = (arelent **) bfd_malloc ((bfd_size_type) reloc_size);
       if (!relocs)
-       return false;
+       return FALSE;
 
       /* The symbols should have been read in by _bfd_generic link_add_symbols
         call abovec, so we can cheat and use the pointer to them that was
@@ -1312,27 +1344,27 @@ h8300_bfd_link_add_symbols (abfd, info)
                }
 
              /* Look this symbol up in the function vector hash table.  */
-             ftab = h8300_coff_hash_table (info)->funcvec_hash_table;
-             h = funcvec_hash_lookup (ftab, name, false, false);
+             ftab = htab->funcvec_hash_table;
+             h = funcvec_hash_lookup (ftab, name, FALSE, FALSE);
 
              /* If this symbol isn't already in the hash table, add
                 it and bump up the size of the hash table.  */
              if (h == NULL)
                {
-                 h = funcvec_hash_lookup (ftab, name, true, true);
+                 h = funcvec_hash_lookup (ftab, name, TRUE, TRUE);
                  if (h == NULL)
                    {
                      free (relocs);
-                     return false;
+                     return FALSE;
                    }
 
                  /* Bump the size of the vectors section.  Each vector
                     takes 2 bytes on the h8300 and 4 bytes on the h8300h.  */
                  if (bfd_get_mach (abfd) == bfd_mach_h8300)
-                   h8300_coff_hash_table (info)->vectors_sec->_raw_size += 2;
+                   htab->vectors_sec->_raw_size += 2;
                  else if (bfd_get_mach (abfd) == bfd_mach_h8300h
                           || bfd_get_mach (abfd) == bfd_mach_h8300s)
-                   h8300_coff_hash_table (info)->vectors_sec->_raw_size += 4;
+                   htab->vectors_sec->_raw_size += 4;
                }
            }
        }
@@ -1343,7 +1375,7 @@ h8300_bfd_link_add_symbols (abfd, info)
 
   /* Now actually allocate some space for the function vector.  It's
      wasteful to do this more than once, but this is easier.  */
-  sec = h8300_coff_hash_table (info)->vectors_sec;
+  sec = htab->vectors_sec;
   if (sec->_raw_size != 0)
     {
       /* Free the old contents.  */
@@ -1354,7 +1386,7 @@ h8300_bfd_link_add_symbols (abfd, info)
       sec->contents = bfd_malloc (sec->_raw_size);
     }
 
-  return true;
+  return TRUE;
 }
 
 #define coff_reloc16_extra_cases h8300_reloc16_extra_cases
index 05a84015bff40dd2f289478352de32f705f02540..c54d977f26b49d131a15f6379964e00631fd9072 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Hitachi H8/500 COFF binaries.
-   Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2001
+   Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Contributed by Cygnus Support.
    Written by Steve Chamberlain, <sac@cygnus.com>.
@@ -36,38 +36,38 @@ static void extra_case       PARAMS ((bfd *, struct bfd_link_info *, struct bfd_
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1)
 
 static reloc_howto_type r_imm8 =
-HOWTO (R_H8500_IMM8, 0, 1, 8, false, 0,
-       complain_overflow_bitfield, 0, "r_imm8", true, 0x000000ff, 0x000000ff, false);
+HOWTO (R_H8500_IMM8, 0, 1, 8, FALSE, 0,
+       complain_overflow_bitfield, 0, "r_imm8", TRUE, 0x000000ff, 0x000000ff, FALSE);
 
 static reloc_howto_type r_imm16 =
-HOWTO (R_H8500_IMM16, 0, 1, 16, false, 0,
-       complain_overflow_bitfield, 0, "r_imm16", true, 0x0000ffff, 0x0000ffff, false);
+HOWTO (R_H8500_IMM16, 0, 1, 16, FALSE, 0,
+       complain_overflow_bitfield, 0, "r_imm16", TRUE, 0x0000ffff, 0x0000ffff, FALSE);
 
 static reloc_howto_type r_imm24 =
-HOWTO (R_H8500_IMM24, 0, 1, 24, false, 0,
-       complain_overflow_bitfield, 0, "r_imm24", true, 0x00ffffff, 0x00ffffff, false);
+HOWTO (R_H8500_IMM24, 0, 1, 24, FALSE, 0,
+       complain_overflow_bitfield, 0, "r_imm24", TRUE, 0x00ffffff, 0x00ffffff, FALSE);
 
 static reloc_howto_type r_imm32 =
-HOWTO (R_H8500_IMM32, 0, 1, 32, false, 0,
-       complain_overflow_bitfield, 0, "r_imm32", true, 0xffffffff, 0xffffffff, false);
+HOWTO (R_H8500_IMM32, 0, 1, 32, FALSE, 0,
+       complain_overflow_bitfield, 0, "r_imm32", TRUE, 0xffffffff, 0xffffffff, FALSE);
 
 static reloc_howto_type r_high8 =
-HOWTO (R_H8500_HIGH8, 0, 1, 8, false, 0,
-       complain_overflow_dont, 0, "r_high8", true, 0x000000ff, 0x000000ff, false);
+HOWTO (R_H8500_HIGH8, 0, 1, 8, FALSE, 0,
+       complain_overflow_dont, 0, "r_high8", TRUE, 0x000000ff, 0x000000ff, FALSE);
 
 static reloc_howto_type r_low16 =
-HOWTO (R_H8500_LOW16, 0, 1, 16, false, 0,
-       complain_overflow_dont, 0, "r_low16", true, 0x0000ffff, 0x0000ffff, false);
+HOWTO (R_H8500_LOW16, 0, 1, 16, FALSE, 0,
+       complain_overflow_dont, 0, "r_low16", TRUE, 0x0000ffff, 0x0000ffff, FALSE);
 
 static reloc_howto_type r_pcrel8 =
-HOWTO (R_H8500_PCREL8, 0, 1, 8, true, 0, complain_overflow_signed, 0, "r_pcrel8", true, 0, 0, true);
+HOWTO (R_H8500_PCREL8, 0, 1, 8, TRUE, 0, complain_overflow_signed, 0, "r_pcrel8", TRUE, 0, 0, TRUE);
 
 static reloc_howto_type r_pcrel16 =
-HOWTO (R_H8500_PCREL16, 0, 1, 16, true, 0, complain_overflow_signed, 0, "r_pcrel16", true, 0, 0, true);
+HOWTO (R_H8500_PCREL16, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "r_pcrel16", TRUE, 0, 0, TRUE);
 
 static reloc_howto_type r_high16 =
-HOWTO (R_H8500_HIGH16, 0, 1, 8, false, 0,
-       complain_overflow_dont, 0, "r_high16", true, 0x000ffff, 0x0000ffff, false);
+HOWTO (R_H8500_HIGH16, 0, 1, 8, FALSE, 0,
+       complain_overflow_dont, 0, "r_high16", TRUE, 0x000ffff, 0x0000ffff, FALSE);
 \f
 /* Turn a howto into a reloc number.  */
 
index dbeaef1535e41f3fc8470dd2cf772d8632741817..f083ae15a0f134b2ba97f4bff5c2d02794f86b77 100644 (file)
@@ -179,12 +179,12 @@ coff_i386_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
 }
 
 #ifdef COFF_WITH_PE
-/* Return true if this relocation should appear in the output .reloc
+/* Return TRUE if this relocation should appear in the output .reloc
    section.  */
 
-static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
+static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
 
-static boolean in_reloc_p (abfd, howto)
+static bfd_boolean in_reloc_p (abfd, howto)
      bfd * abfd ATTRIBUTE_UNUSED;
      reloc_howto_type *howto;
 {
@@ -193,7 +193,7 @@ static boolean in_reloc_p (abfd, howto)
 #endif /* COFF_WITH_PE */
 
 #ifndef PCRELOFFSET
-#define PCRELOFFSET false
+#define PCRELOFFSET FALSE
 #endif
 
 static reloc_howto_type howto_table[] =
@@ -208,29 +208,29 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i386_reloc,       /* special_function */
         "dir32",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
   /* PE IMAGE_REL_I386_DIR32NB relocation (7). */
   HOWTO (R_IMAGEBASE,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i386_reloc,       /* special_function */
         "rva32",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   EMPTY_HOWTO (010),
   EMPTY_HOWTO (011),
   EMPTY_HOWTO (012),
@@ -243,12 +243,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i386_reloc,       /* special_function */
         "8",                   /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -257,12 +257,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i386_reloc,       /* special_function */
         "16",                  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -271,12 +271,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i386_reloc,       /* special_function */
         "32",                  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -285,12 +285,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         coff_i386_reloc,       /* special_function */
         "DISP8",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -299,12 +299,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         coff_i386_reloc,       /* special_function */
         "DISP16",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -313,12 +313,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         coff_i386_reloc,       /* special_function */
         "DISP32",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
         PCRELOFFSET)           /* pcrel_offset */
@@ -388,11 +388,11 @@ static reloc_howto_type howto_table[] =
    and the regular routine is that we don't want to do anything for a
    relocateable link.  */
 
-static boolean coff_pe_i386_relocate_section
+static bfd_boolean coff_pe_i386_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
 
-static boolean
+static bfd_boolean
 coff_pe_i386_relocate_section (output_bfd, info, input_bfd,
                               input_section, contents, relocs, syms,
                               sections)
@@ -406,7 +406,7 @@ coff_pe_i386_relocate_section (output_bfd, info, input_bfd,
      asection **sections;
 {
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   return _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
                                             input_section, contents,
@@ -539,15 +539,16 @@ coff_i386_reloc_type_lookup (abfd, code)
    a leading dot for local labels, so if TARGET_UNDERSCORE is defined
    we treat all symbols starting with L as local.  */
 
-static boolean coff_i386_is_local_label_name PARAMS ((bfd *, const char *));
+static bfd_boolean coff_i386_is_local_label_name
+  PARAMS ((bfd *, const char *));
 
-static boolean
+static bfd_boolean
 coff_i386_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
 {
   if (name[0] == 'L')
-    return true;
+    return TRUE;
 
   return _bfd_coff_is_local_label_name (abfd, name);
 }
index 1355d49d58276d2ae4e23cb57384718d8749c1d8..767692dc61e3e3076a2b989baaf85ace5066275a 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 860 COFF files.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Created mostly by substituting "860" for "386" in coff-i386.c
    Harry Dolan <dolan@ssd.intel.com>, October 1995
@@ -136,7 +136,7 @@ coff_i860_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
 }
 
 #ifndef PCRELOFFSET
-#define PCRELOFFSET false
+#define PCRELOFFSET FALSE
 #endif
 
 static reloc_howto_type howto_table[] =
@@ -151,29 +151,29 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i860_reloc,       /* special_function */
         "dir32",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                /* pcrel_offset */
+        TRUE),                /* pcrel_offset */
   /* {7}, */
   HOWTO (R_IMAGEBASE,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i860_reloc,       /* special_function */
         "rva32",                  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   EMPTY_HOWTO (010),
   EMPTY_HOWTO (011),
   EMPTY_HOWTO (012),
@@ -185,12 +185,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i860_reloc,       /* special_function */
         "8",                   /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -198,12 +198,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i860_reloc,       /* special_function */
         "16",                  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -211,12 +211,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_i860_reloc,       /* special_function */
         "32",                  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -224,12 +224,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         coff_i860_reloc,       /* special_function */
         "DISP8",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -237,12 +237,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         coff_i860_reloc,       /* special_function */
         "DISP16",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
         PCRELOFFSET),          /* pcrel_offset */
@@ -250,12 +250,12 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         coff_i860_reloc,       /* special_function */
         "DISP32",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
         PCRELOFFSET)           /* pcrel_offset */
index d8948be6fa06b980fae598b899a8537b82159e21..eee6718a5ef0a8a90c174a146f5ed7697c526552 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for Intel 960 COFF files.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001
-   Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001,
+   2002 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -29,21 +29,22 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "coff/internal.h"
 #include "libcoff.h"           /* to allow easier abstraction-breaking */
 
-static boolean coff_i960_is_local_label_name PARAMS ((bfd *, const char *));
+static bfd_boolean coff_i960_is_local_label_name
+  PARAMS ((bfd *, const char *));
 static bfd_reloc_status_type optcall_callback
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type coff_i960_relocate
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static reloc_howto_type *coff_i960_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
-static boolean coff_i960_start_final_link
+static bfd_boolean coff_i960_start_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean coff_i960_relocate_section
+static bfd_boolean coff_i960_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
-static boolean coff_i960_adjust_symndx
+static bfd_boolean coff_i960_adjust_symndx
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
-          struct internal_reloc *, boolean *));
+          struct internal_reloc *, bfd_boolean *));
 
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (3)
 #define COFF_ALIGN_IN_SECTION_HEADER 1
@@ -59,7 +60,7 @@ static boolean coff_i960_adjust_symndx
 
 /* This set of local label names is taken from gas.  */
 
-static boolean
+static bfd_boolean
 coff_i960_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
@@ -266,15 +267,15 @@ coff_i960_relocate (abfd, reloc_entry, symbol, data, input_section,
 }
 
 static reloc_howto_type howto_rellong =
-  HOWTO ((unsigned int) R_RELLONG, 0, 2, 32,false, 0,
-        complain_overflow_bitfield, coff_i960_relocate,"rellong", true,
+  HOWTO ((unsigned int) R_RELLONG, 0, 2, 32,FALSE, 0,
+        complain_overflow_bitfield, coff_i960_relocate,"rellong", TRUE,
         0xffffffff, 0xffffffff, 0);
 static reloc_howto_type howto_iprmed =
-  HOWTO (R_IPRMED, 0, 2, 24,true,0, complain_overflow_signed,
-        coff_i960_relocate, "iprmed ", true, 0x00ffffff, 0x00ffffff, 0);
+  HOWTO (R_IPRMED, 0, 2, 24,TRUE,0, complain_overflow_signed,
+        coff_i960_relocate, "iprmed ", TRUE, 0x00ffffff, 0x00ffffff, 0);
 static reloc_howto_type howto_optcall =
-  HOWTO (R_OPTCALL, 0,2,24,true,0, complain_overflow_signed,
-        optcall_callback, "optcall", true, 0x00ffffff, 0x00ffffff, 0);
+  HOWTO (R_OPTCALL, 0,2,24,TRUE,0, complain_overflow_signed,
+        optcall_callback, "optcall", TRUE, 0x00ffffff, 0x00ffffff, 0);
 
 static reloc_howto_type *
 coff_i960_reloc_type_lookup (abfd, code)
@@ -318,7 +319,7 @@ coff_i960_reloc_type_lookup (abfd, code)
    called at the start of the linking process, and it creates the
    necessary symbols.  */
 
-static boolean
+static bfd_boolean
 coff_i960_start_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -328,14 +329,14 @@ coff_i960_start_final_link (abfd, info)
   bfd_byte *esym;
 
   if (! info->relocateable)
-    return true;
+    return TRUE;
 
   esym = (bfd_byte *) bfd_malloc (symesz);
   if (esym == NULL)
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   for (o = abfd->sections; o != NULL; o = o->next)
     {
@@ -353,7 +354,7 @@ coff_i960_start_final_link (abfd, info)
       if (bfd_bwrite (esym, symesz, abfd) != symesz)
        {
          free (esym);
-         return false;
+         return FALSE;
        }
 
       obj_raw_syment_count (abfd) += 1;
@@ -361,12 +362,12 @@ coff_i960_start_final_link (abfd, info)
 
   free (esym);
 
-  return true;
+  return TRUE;
 }
 
 /* The reloc processing routine for the optimized COFF linker.  */
 
-static boolean
+static bfd_boolean
 coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
                            contents, relocs, syms, sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -392,7 +393,7 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
       bfd_vma val;
       reloc_howto_type *howto;
       bfd_reloc_status_type rstat = bfd_reloc_ok;
-      boolean done;
+      bfd_boolean done;
 
       symndx = rel->r_symndx;
 
@@ -419,7 +420,7 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
        case 27: howto = &howto_optcall; break;
        default:
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       val = 0;
@@ -458,12 +459,12 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd, input_section,
-                     rel->r_vaddr - input_section->vma, true)))
-               return false;
+                     rel->r_vaddr - input_section->vma, TRUE)))
+               return FALSE;
            }
        }
 
-      done = false;
+      done = FALSE;
 
       if (howto->type == R_OPTCALL && ! info->relocateable && symndx != -1)
        {
@@ -485,7 +486,7 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
                      _("uncertain calling convention for non-COFF symbol"),
                      input_bfd, input_section,
                      rel->r_vaddr - input_section->vma)))
-               return false;
+               return FALSE;
              break;
            case C_LEAFSTAT:
            case C_LEAFEXT:
@@ -521,7 +522,7 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
                bfd_put_32 (input_bfd,
                            (bfd_vma) word,
                            contents + (rel->r_vaddr - input_section->vma));
-               done = true;
+               done = TRUE;
              }
              break;
            case C_SCALL:
@@ -559,47 +560,47 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
              {
                name = _bfd_coff_internal_syment_name (input_bfd, sym, buf);
                if (name == NULL)
-                 return false;
+                 return FALSE;
              }
 
            if (! ((*info->callbacks->reloc_overflow)
                   (info, name, howto->name, (bfd_vma) 0, input_bfd,
                    input_section, rel->r_vaddr - input_section->vma)))
-             return false;
+             return FALSE;
          }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust the symbol index of any reloc against a global symbol to
    instead be a reloc against the internal symbol we created specially
    for the section.  */
 
-static boolean
+static bfd_boolean
 coff_i960_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp)
      bfd *obfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      bfd *ibfd;
      asection *sec ATTRIBUTE_UNUSED;
      struct internal_reloc *irel;
-     boolean *adjustedp;
+     bfd_boolean *adjustedp;
 {
   struct coff_link_hash_entry *h;
 
-  *adjustedp = false;
+  *adjustedp = FALSE;
 
   h = obj_coff_sym_hashes (ibfd)[irel->r_symndx];
   if (h == NULL
       || (h->root.type != bfd_link_hash_defined
          && h->root.type != bfd_link_hash_defweak))
-    return true;
+    return TRUE;
 
   irel->r_symndx = h->root.u.def.section->output_section->target_index - 1;
-  *adjustedp = true;
+  *adjustedp = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 #define coff_bfd_is_local_label_name coff_i960_is_local_label_name
index 76d1bf6cc5e578221245ca4b3f25b7cfa2b1f757..2b5b557ddbba74cc38466d6ed96b78b943baa09e 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for HP/Intel IA-64 COFF files.
-   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by David Mosberger <davidm@hpl.hp.com>
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -49,17 +49,17 @@ static reloc_howto_type howto_table[] =
            (cache_ptr)->howto = howto_table + (dst)->r_type;
 
 #ifdef COFF_WITH_PE
-/* Return true if this relocation should
+/* Return TRUE if this relocation should
    appear in the output .reloc section.  */
 
-static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
+static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
 
-static boolean
+static bfd_boolean
 in_reloc_p(abfd, howto)
      bfd * abfd ATTRIBUTE_UNUSED;
      reloc_howto_type *howto ATTRIBUTE_UNUSED;
 {
-  return 0;                    /* We don't do relocs for now...  */
+  return FALSE;                        /* We don't do relocs for now...  */
 }
 #endif
 
index 397d98378d77315a67349f8efccaf68abb68485d..c2c1c295c86825ad7f6cd04d0cd9aefd0f789d7d 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for Motorola 68000 COFF binaries.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
-   2000, 2001
+   2000, 2001, 2002
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -67,19 +67,20 @@ static reloc_howto_type *m68kcoff_common_addend_rtype_to_howto
 #define RELOC_SPECIAL_FN m68kcoff_common_addend_special_fn
 #endif
 
-static boolean m68k_coff_is_local_label_name PARAMS ((bfd *, const char *));
+static bfd_boolean m68k_coff_is_local_label_name
+  PARAMS ((bfd *, const char *));
 
 /* On the delta, a symbol starting with L% is local.  We won't see
    such a symbol on other platforms, so it should be safe to always
    consider it local here.  */
 
-static boolean
+static bfd_boolean
 m68k_coff_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
 {
   if (name[0] == 'L' && name[1] == '%')
-    return true;
+    return TRUE;
 
   return _bfd_coff_is_local_label_name (abfd, name);
 }
@@ -100,13 +101,13 @@ static
 #endif
 reloc_howto_type m68kcoff_howto_table[] =
   {
-    HOWTO (R_RELBYTE,         0,  0,   8,  false, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "8",        true, 0x000000ff,0x000000ff, false),
-    HOWTO (R_RELWORD,         0,  1,   16, false, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "16",       true, 0x0000ffff,0x0000ffff, false),
-    HOWTO (R_RELLONG,         0,  2,   32, false, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "32",       true, 0xffffffff,0xffffffff, false),
-    HOWTO (R_PCRBYTE,         0,  0,   8,  true,  0, complain_overflow_signed,   RELOC_SPECIAL_FN, "DISP8",    true, 0x000000ff,0x000000ff, false),
-    HOWTO (R_PCRWORD,         0,  1,   16, true,  0, complain_overflow_signed,   RELOC_SPECIAL_FN, "DISP16",   true, 0x0000ffff,0x0000ffff, false),
-    HOWTO (R_PCRLONG,         0,  2,   32, true,  0, complain_overflow_signed,   RELOC_SPECIAL_FN, "DISP32",   true, 0xffffffff,0xffffffff, false),
-    HOWTO (R_RELLONG_NEG,      0, -2,  32, false, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "-32",      true, 0xffffffff,0xffffffff, false),
+    HOWTO (R_RELBYTE,         0,  0,   8,  FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "8",        TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (R_RELWORD,         0,  1,   16, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "16",       TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (R_RELLONG,         0,  2,   32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "32",       TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_PCRBYTE,         0,  0,   8,  TRUE,  0, complain_overflow_signed,   RELOC_SPECIAL_FN, "DISP8",    TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (R_PCRWORD,         0,  1,   16, TRUE,  0, complain_overflow_signed,   RELOC_SPECIAL_FN, "DISP16",   TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (R_PCRLONG,         0,  2,   32, TRUE,  0, complain_overflow_signed,   RELOC_SPECIAL_FN, "DISP32",   TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_RELLONG_NEG,      0, -2,  32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "-32",      TRUE, 0xffffffff,0xffffffff, FALSE),
   };
 #endif /* not ONLY_DECLARE_RELOCS */
 
@@ -430,7 +431,7 @@ m68kcoff_common_addend_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
    after the add_symbols entry point has been called for all the
    objects, and before the final_link entry point is called.  */
 
-boolean
+bfd_boolean
 bfd_m68k_coff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -449,19 +450,19 @@ bfd_m68k_coff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
   *errmsg = NULL;
 
   if (datasec->reloc_count == 0)
-    return true;
+    return TRUE;
 
   extsyms = obj_coff_external_syms (abfd);
   symesz = bfd_coff_symesz (abfd);
 
-  irel = _bfd_coff_read_internal_relocs (abfd, datasec, true, NULL, false,
+  irel = _bfd_coff_read_internal_relocs (abfd, datasec, TRUE, NULL, FALSE,
                                         NULL);
   irelend = irel + datasec->reloc_count;
 
   amt = (bfd_size_type) datasec->reloc_count * 12;
   relsec->contents = (bfd_byte *) bfd_alloc (abfd, amt);
   if (relsec->contents == NULL)
-    return false;
+    return FALSE;
 
   p = relsec->contents;
 
@@ -480,7 +481,7 @@ bfd_m68k_coff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
        {
          *errmsg = _("unsupported reloc type");
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       if (irel->r_symndx == -1)
@@ -512,7 +513,7 @@ bfd_m68k_coff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
        strncpy (p + 4, targetsec->output_section->name, 8);
     }
 
-  return true;
+  return TRUE;
 }
 #endif /* neither ONLY_DECLARE_RELOCS not STATIC_RELOCS  */
 \f
index 05c47cc9d0b1917294de521ac825a965cb1f5c8f..f2d7ecc353f5a4f815bb22e784e982db09335102 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for Motorola 88000 COFF "Binary Compatability Standard" files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000,
-   2001
+   2001, 2002
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "coff/internal.h"
 #include "libcoff.h"
 
-static boolean m88k_is_local_label_name PARAMS ((bfd *, const char *));
+static bfd_boolean m88k_is_local_label_name PARAMS ((bfd *, const char *));
 static bfd_reloc_status_type m88k_special_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static void rtype2howto PARAMS ((arelent *, struct internal_reloc *));
@@ -44,7 +44,7 @@ static void reloc_processing
 
 #define coff_bfd_is_local_label_name m88k_is_local_label_name
 
-static boolean
+static bfd_boolean
 m88k_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
@@ -152,85 +152,85 @@ static reloc_howto_type howto_table[] =
         02,                            /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        true,                          /* pc_relative */
+        TRUE,                          /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_signed,      /* complain_on_overflow */
         m88k_special_reloc,            /* special_function */
         "PCR16L",                      /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x0000ffff,                    /* src_mask */
         0x0000ffff,                    /* dst_mask */
-        true),                         /* pcrel_offset */
+        TRUE),                         /* pcrel_offset */
 
   HOWTO (R_PCR26L,                     /* type */
         02,                            /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         26,                            /* bitsize */
-        true,                          /* pc_relative */
+        TRUE,                          /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_signed,      /* complain_on_overflow */
         m88k_special_reloc,            /* special_function */
         "PCR26L",                      /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x03ffffff,                    /* src_mask */
         0x03ffffff,                    /* dst_mask */
-        true),                         /* pcrel_offset */
+        TRUE),                         /* pcrel_offset */
 
   HOWTO (R_VRT16,                      /* type */
         00,                            /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         m88k_special_reloc,            /* special_function */
         "VRT16",                       /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x0000ffff,                    /* src_mask */
         0x0000ffff,                    /* dst_mask */
-        true),                         /* pcrel_offset */
+        TRUE),                         /* pcrel_offset */
 
   HOWTO (R_HVRT16,                     /* type */
         16,                            /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         m88k_special_reloc,            /* special_function */
         "HVRT16",                      /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x0000ffff,                    /* src_mask */
         0x0000ffff,                    /* dst_mask */
-        true),                         /* pcrel_offset */
+        TRUE),                         /* pcrel_offset */
 
   HOWTO (R_LVRT16,                     /* type */
         00,                            /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         m88k_special_reloc,            /* special_function */
         "LVRT16",                      /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x0000ffff,                    /* src_mask */
         0x0000ffff,                    /* dst_mask */
-        true),                         /* pcrel_offset */
+        TRUE),                         /* pcrel_offset */
 
   HOWTO (R_VRT32,                      /* type */
         00,                            /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         32,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         m88k_special_reloc,            /* special_function */
         "VRT32",                       /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffffffff,                    /* src_mask */
         0xffffffff,                    /* dst_mask */
-        true),                         /* pcrel_offset */
+        TRUE),                         /* pcrel_offset */
 };
 
 /* Code to turn an external r_type into a pointer to an entry in the
index f15102dff1c882ad637abb8e4b310500708a2e26..7847bb751b5a95abb40bef8680e64a63ba79e1b4 100644 (file)
@@ -37,25 +37,26 @@ Boston, MA 02111-1307, USA.  */
 
 /* This file is compiled more than once, but we only compile the
    final_link routine once.  */
-extern boolean mcore_bfd_coff_final_link
+extern bfd_boolean mcore_bfd_coff_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 #if 0
-static struct bfd_link_hash_table * coff_mcore_link_hash_table_create
+static struct bfd_link_hash_table *coff_mcore_link_hash_table_create
   PARAMS ((bfd *));
 #endif
-static bfd_reloc_status_type        mcore_coff_unsupported_reloc
+static bfd_reloc_status_type mcore_coff_unsupported_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean                      coff_mcore_relocate_section
+static bfd_boolean coff_mcore_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
-static reloc_howto_type *           mcore_coff_reloc_type_lookup
+static reloc_howto_type *mcore_coff_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
-static reloc_howto_type *           coff_mcore_rtype_to_howto
+static reloc_howto_type *coff_mcore_rtype_to_howto
   PARAMS ((bfd *, asection *, struct internal_reloc *,
-          struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *));
+          struct coff_link_hash_entry *, struct internal_syment *,
+          bfd_vma *));
 static void mcore_emit_base_file_entry
   PARAMS ((struct bfd_link_info *, bfd *, asection *, bfd_vma));
-static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
+static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
 \f
 /* The NT loader points the toc register to &toc + 32768, in order to
    use the complete range of a 16-bit displacement. We have to adjust
@@ -77,29 +78,29 @@ static reloc_howto_type mcore_coff_howto_table[] =
         0,                      /* rightshift */
         0,                      /* size (0 = byte, 1 = short, 2 = long) */
         0,                      /* bitsize */
-        false,                  /* pc_relative */
+        FALSE,                  /* pc_relative */
         0,                      /* bitpos */
         complain_overflow_dont, /* dont complain_on_overflow */
         NULL,                   /* special_function */
         "ABSOLUTE",             /* name */
-        false,                  /* partial_inplace */
+        FALSE,                  /* partial_inplace */
         0x00,                   /* src_mask */
         0x00,                   /* dst_mask */
-        false),                 /* pcrel_offset */
+        FALSE),                 /* pcrel_offset */
 
   HOWTO (IMAGE_REL_MCORE_ADDR32,/* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         NULL,                  /* special_function */
         "ADDR32",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 8 bits + 2 zero bits; jmpi/jsri/lrw instructions.
      Should not appear in object files.  */
@@ -107,15 +108,15 @@ static reloc_howto_type mcore_coff_howto_table[] =
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mcore_coff_unsupported_reloc, /* special_function */
         "IMM8BY4",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* bsr/bt/bf/br instructions; 11 bits + 1 zero bit
      Span 2k instructions == 4k bytes.
@@ -124,45 +125,45 @@ static reloc_howto_type mcore_coff_howto_table[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         11,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         NULL,                  /* special_function */
         "IMM11BY2",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0,                   /* src_mask */
         0x7ff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 4 bits + 1 zero bit; 'loopt' instruction only; unsupported.  */
   HOWTO (IMAGE_REL_MCORE_PCREL_IMM4BY2,        /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         4,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mcore_coff_unsupported_reloc, /* special_function */
         "IMM4BY2",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 32-bit pc-relative. Eventually this will help support PIC code.  */
   HOWTO (IMAGE_REL_MCORE_PCREL_32,/* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         NULL,                  /* special_function */
         "PCREL_32",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0,                   /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Like PCREL_IMM11BY2, this relocation indicates that there is a
      'jsri' at the specified address. There is a separate relocation
@@ -175,29 +176,29 @@ static reloc_howto_type mcore_coff_howto_table[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         11,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         NULL,                  /* special_function */
         "JSR_IMM11BY2",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0,                   /* src_mask */
         0x7ff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (IMAGE_REL_MCORE_RVA,   /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         NULL,                  /* special_function */
         "MCORE_RVA",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true)                  /* pcrel_offset */
+        TRUE)                  /* pcrel_offset */
 };
 \f
 /* Extend the coff_link_hash_table structure with a few M*Core specific fields.
@@ -358,10 +359,10 @@ coff_mcore_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
   return howto;
 }
 
-/* Return true if this relocation should appear in the output .reloc section.
+/* Return TRUE if this relocation should appear in the output .reloc section.
    This function is referenced in pe_mkobject in peicode.h.  */
 
-static boolean
+static bfd_boolean
 in_reloc_p (abfd, howto)
      bfd * abfd ATTRIBUTE_UNUSED;
      reloc_howto_type * howto;
@@ -370,7 +371,7 @@ in_reloc_p (abfd, howto)
 }
 \f
 /* The reloc processing routine for the optimized COFF linker.  */
-static boolean
+static bfd_boolean
 coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, syms, sections)
      bfd * output_bfd;
@@ -384,14 +385,14 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
 {
   struct internal_reloc * rel;
   struct internal_reloc * relend;
-  boolean hihalf;
+  bfd_boolean hihalf;
   bfd_vma hihalf_val;
 
   /* If we are performing a relocateable link, we don't need to do a
      thing.  The caller will take care of adjusting the reloc
      addresses and symbol indices.  */
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   /* Check if we have the same endianess */
   if (   input_bfd->xvec->byteorder != output_bfd->xvec->byteorder
@@ -404,10 +405,10 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
          bfd_big_endian (output_bfd) ? _("big endian") : _("little endian"));
 
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 
-  hihalf = false;
+  hihalf = FALSE;
   hihalf_val = 0;
 
   rel = relocs;
@@ -446,7 +447,7 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
       howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h,
                                       sym, & addend);
       if (howto == NULL)
-       return false;
+       return FALSE;
 
       val = 0;
 
@@ -492,8 +493,8 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd, input_section,
-                     rel->r_vaddr - input_section->vma, true)))
-               return false;
+                     rel->r_vaddr - input_section->vma, TRUE)))
+               return FALSE;
            }
 
          my_name = h->root.root.string;
@@ -508,7 +509,7 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
          _bfd_error_handler (_("%s: unsupported relocation type 0x%02x"),
                              bfd_archive_filename (input_bfd), r_type);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
 
        case IMAGE_REL_MCORE_ABSOLUTE:
          fprintf (stderr,
@@ -560,11 +561,11 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
                 (info, my_name, howto->name,
                  (bfd_vma) 0, input_bfd,
                  input_section, rel->r_vaddr - input_section->vma)))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Tailor coffcode.h -- macro heaven.  */
@@ -577,6 +578,11 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
 
 #define SELECT_RELOC(internal, howto) {internal.r_type = howto->type;}
 
+/* Make sure that the 'r_offset' field is copied properly
+   so that identical binaries will compare the same.  */
+#define SWAP_IN_RELOC_OFFSET         H_GET_32
+#define SWAP_OUT_RELOC_OFFSET        H_PUT_32
+
 #define COFF_PAGE_SIZE               0x1000
 
 #include "coffcode.h"
index 69fcc69aa68dc9e698739a54657bb5ca245b0f09..6bb1b9f3ab9b2b6fd7c17445523db69364d28415 100644 (file)
@@ -35,85 +35,50 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 \f
 /* Prototypes for static functions.  */
 
-static boolean mips_ecoff_bad_format_hook PARAMS ((bfd *abfd, PTR filehdr));
-static void mips_ecoff_swap_reloc_in PARAMS ((bfd *, PTR,
-                                             struct internal_reloc *));
-static void mips_ecoff_swap_reloc_out PARAMS ((bfd *,
-                                              const struct internal_reloc *,
-                                              PTR));
-static void mips_adjust_reloc_in PARAMS ((bfd *,
-                                         const struct internal_reloc *,
-                                         arelent *));
-static void mips_adjust_reloc_out PARAMS ((bfd *, const arelent *,
-                                          struct internal_reloc *));
-static bfd_reloc_status_type mips_generic_reloc PARAMS ((bfd *abfd,
-                                                        arelent *reloc,
-                                                        asymbol *symbol,
-                                                        PTR data,
-                                                        asection *section,
-                                                        bfd *output_bfd,
-                                                        char **error));
-static bfd_reloc_status_type mips_refhi_reloc PARAMS ((bfd *abfd,
-                                                      arelent *reloc,
-                                                      asymbol *symbol,
-                                                      PTR data,
-                                                      asection *section,
-                                                      bfd *output_bfd,
-                                                      char **error));
-static bfd_reloc_status_type mips_reflo_reloc PARAMS ((bfd *abfd,
-                                                      arelent *reloc,
-                                                      asymbol *symbol,
-                                                      PTR data,
-                                                      asection *section,
-                                                      bfd *output_bfd,
-                                                      char **error));
-static bfd_reloc_status_type mips_gprel_reloc PARAMS ((bfd *abfd,
-                                                      arelent *reloc,
-                                                      asymbol *symbol,
-                                                      PTR data,
-                                                      asection *section,
-                                                      bfd *output_bfd,
-                                                      char **error));
-static bfd_reloc_status_type mips_relhi_reloc PARAMS ((bfd *abfd,
-                                                      arelent *reloc,
-                                                      asymbol *symbol,
-                                                      PTR data,
-                                                      asection *section,
-                                                      bfd *output_bfd,
-                                                      char **error));
-static bfd_reloc_status_type mips_rello_reloc PARAMS ((bfd *abfd,
-                                                      arelent *reloc,
-                                                      asymbol *symbol,
-                                                      PTR data,
-                                                      asection *section,
-                                                      bfd *output_bfd,
-                                                      char **error));
-static bfd_reloc_status_type mips_switch_reloc PARAMS ((bfd *abfd,
-                                                       arelent *reloc,
-                                                       asymbol *symbol,
-                                                       PTR data,
-                                                       asection *section,
-                                                       bfd *output_bfd,
-                                                       char **error));
-static void mips_relocate_hi PARAMS ((struct internal_reloc *refhi,
-                                     struct internal_reloc *reflo,
-                                     bfd *input_bfd,
-                                     asection *input_section,
-                                     bfd_byte *contents,
-                                     size_t adjust,
-                                     bfd_vma relocation,
-                                     boolean pcrel));
-static boolean mips_relocate_section PARAMS ((bfd *, struct bfd_link_info *,
-                                             bfd *, asection *,
-                                             bfd_byte *, PTR));
-static boolean mips_read_relocs PARAMS ((bfd *, asection *));
-static boolean mips_relax_section PARAMS ((bfd *, asection *,
-                                          struct bfd_link_info *,
-                                          boolean *));
-static boolean mips_relax_pcrel16 PARAMS ((struct bfd_link_info *, bfd *,
-                                          asection *,
-                                          struct ecoff_link_hash_entry *,
-                                          bfd_byte *, bfd_vma));
+static bfd_boolean mips_ecoff_bad_format_hook
+  PARAMS ((bfd *abfd, PTR filehdr));
+static void mips_ecoff_swap_reloc_in
+  PARAMS ((bfd *, PTR, struct internal_reloc *));
+static void mips_ecoff_swap_reloc_out
+  PARAMS ((bfd *, const struct internal_reloc *, PTR));
+static void mips_adjust_reloc_in
+  PARAMS ((bfd *, const struct internal_reloc *, arelent *));
+static void mips_adjust_reloc_out
+  PARAMS ((bfd *, const arelent *, struct internal_reloc *));
+static bfd_reloc_status_type mips_generic_reloc
+  PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data,
+          asection *section, bfd *output_bfd, char **error));
+static bfd_reloc_status_type mips_refhi_reloc
+  PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data,
+          asection *section, bfd *output_bfd, char **error));
+static bfd_reloc_status_type mips_reflo_reloc
+  PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data,
+          asection *section, bfd *output_bfd, char **error));
+static bfd_reloc_status_type mips_gprel_reloc
+  PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data,
+          asection *section, bfd *output_bfd, char **error));
+static bfd_reloc_status_type mips_relhi_reloc
+  PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data,
+          asection *section, bfd *output_bfd, char **error));
+static bfd_reloc_status_type mips_rello_reloc
+  PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data,
+          asection *section, bfd *output_bfd, char **error));
+static bfd_reloc_status_type mips_switch_reloc
+  PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data,
+          asection *section, bfd *output_bfd, char **error));
+static void mips_relocate_hi
+  PARAMS ((struct internal_reloc *refhi, struct internal_reloc *reflo,
+          bfd *input_bfd, asection *input_section, bfd_byte *contents,
+          size_t adjust, bfd_vma relocation, bfd_boolean pcrel));
+static bfd_boolean mips_relocate_section
+  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, PTR));
+static bfd_boolean mips_read_relocs
+  PARAMS ((bfd *, asection *));
+static bfd_boolean mips_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean mips_relax_pcrel16
+  PARAMS ((struct bfd_link_info *, bfd *, asection *,
+          struct ecoff_link_hash_entry *, bfd_byte *, bfd_vma));
 static reloc_howto_type *mips_bfd_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 \f
@@ -152,52 +117,52 @@ static reloc_howto_type mips_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "IGNORE",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit reference to a symbol, normally from a data section.  */
   HOWTO (MIPS_R_REFHALF,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_generic_reloc,    /* special_function */
         "REFHALF",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit reference to a symbol, normally from a data section.  */
   HOWTO (MIPS_R_REFWORD,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_generic_reloc,    /* special_function */
         "REFWORD",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 26 bit absolute jump address.  */
   HOWTO (MIPS_R_JMPADDR,       /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -205,10 +170,10 @@ static reloc_howto_type mips_howto_table[] =
                                   bits must match the PC.  */
         mips_generic_reloc,    /* special_function */
         "JMPADDR",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3ffffff,             /* src_mask */
         0x3ffffff,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The high 16 bits of a symbol value.  Handled by the function
      mips_refhi_reloc.  */
@@ -216,30 +181,30 @@ static reloc_howto_type mips_howto_table[] =
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_refhi_reloc,      /* special_function */
         "REFHI",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The low 16 bits of a symbol value.  */
   HOWTO (MIPS_R_REFLO,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_reflo_reloc,      /* special_function */
         "REFLO",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A reference to an offset from the gp register.  Handled by the
      function mips_gprel_reloc.  */
@@ -247,15 +212,15 @@ static reloc_howto_type mips_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_gprel_reloc,      /* special_function */
         "GPREL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A reference to a literal using an offset from the gp register.
      Handled by the function mips_gprel_reloc.  */
@@ -263,15 +228,15 @@ static reloc_howto_type mips_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_gprel_reloc,      /* special_function */
         "LITERAL",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (8),
   EMPTY_HOWTO (9),
@@ -286,15 +251,15 @@ static reloc_howto_type mips_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_generic_reloc,    /* special_function */
         "PCREL16",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* This reloc is a Cygnus extension used when generating position
      independent code for embedded systems.  It represents the high 16
@@ -307,15 +272,15 @@ static reloc_howto_type mips_howto_table[] =
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_relhi_reloc,      /* special_function */
         "RELHI",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* This reloc is a Cygnus extension used when generating position
      independent code for embedded systems.  It represents the low 16
@@ -324,15 +289,15 @@ static reloc_howto_type mips_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_rello_reloc,      /* special_function */
         "RELLO",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   EMPTY_HOWTO (15),
   EMPTY_HOWTO (16),
@@ -352,15 +317,15 @@ static reloc_howto_type mips_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_switch_reloc,     /* special_function */
         "SWITCH",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true)                  /* pcrel_offset */
+        TRUE)                  /* pcrel_offset */
 };
 
 #define MIPS_HOWTO_COUNT \
@@ -384,7 +349,7 @@ static reloc_howto_type mips_howto_table[] =
 \f
 /* See whether the magic number matches.  */
 
-static boolean
+static bfd_boolean
 mips_ecoff_bad_format_hook (abfd, filehdr)
      bfd *abfd;
      PTR filehdr;
@@ -395,7 +360,7 @@ mips_ecoff_bad_format_hook (abfd, filehdr)
     {
     case MIPS_MAGIC_1:
       /* I don't know what endianness this implies.  */
-      return true;
+      return TRUE;
 
     case MIPS_MAGIC_BIG:
     case MIPS_MAGIC_BIG2:
@@ -408,7 +373,7 @@ mips_ecoff_bad_format_hook (abfd, filehdr)
       return bfd_little_endian (abfd);
 
     default:
-      return false;
+      return FALSE;
     }
 }
 \f
@@ -793,7 +758,7 @@ mips_gprel_reloc (abfd,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_vma gp;
   bfd_vma relocation;
   unsigned long val;
@@ -812,10 +777,10 @@ mips_gprel_reloc (abfd,
     }
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = true;
+    relocateable = TRUE;
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -1185,7 +1150,7 @@ mips_relocate_hi (refhi, reflo, input_bfd, input_section, contents, adjust,
      bfd_byte *contents;
      size_t adjust;
      bfd_vma relocation;
-     boolean pcrel;
+     bfd_boolean pcrel;
 {
   unsigned long insn;
   unsigned long val;
@@ -1229,7 +1194,7 @@ mips_relocate_hi (refhi, reflo, input_bfd, input_section, contents, adjust,
 
 /* Relocate a section while linking a MIPS ECOFF file.  */
 
-static boolean
+static bfd_boolean
 mips_relocate_section (output_bfd, info, input_bfd, input_section,
                       contents, external_relocs)
      bfd *output_bfd;
@@ -1242,13 +1207,13 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
   asection **symndx_to_section;
   struct ecoff_link_hash_entry **sym_hashes;
   bfd_vma gp;
-  boolean gp_undefined;
+  bfd_boolean gp_undefined;
   size_t adjust;
   long *offsets;
   struct external_reloc *ext_rel;
   struct external_reloc *ext_rel_end;
   unsigned int i;
-  boolean got_lo;
+  bfd_boolean got_lo;
   struct internal_reloc lo_int_rel;
   bfd_size_type amt;
 
@@ -1264,7 +1229,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
       amt = NUM_RELOC_SECTIONS * sizeof (asection *);
       symndx_to_section = (asection **) bfd_alloc (input_bfd, amt);
       if (!symndx_to_section)
-       return false;
+       return FALSE;
 
       symndx_to_section[RELOC_SECTION_NONE] = NULL;
       symndx_to_section[RELOC_SECTION_TEXT] =
@@ -1299,11 +1264,11 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
 
   gp = _bfd_get_gp_value (output_bfd);
   if (gp == 0)
-    gp_undefined = true;
+    gp_undefined = TRUE;
   else
-    gp_undefined = false;
+    gp_undefined = FALSE;
 
-  got_lo = false;
+  got_lo = FALSE;
 
   adjust = 0;
 
@@ -1317,7 +1282,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
   for (i = 0; ext_rel < ext_rel_end; ext_rel++, i++)
     {
       struct internal_reloc int_rel;
-      boolean use_lo = false;
+      bfd_boolean use_lo = FALSE;
       bfd_vma addend;
       reloc_howto_type *howto;
       struct ecoff_link_hash_entry *h = NULL;
@@ -1330,7 +1295,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
       else
        {
          int_rel = lo_int_rel;
-         got_lo = false;
+         got_lo = FALSE;
        }
 
       BFD_ASSERT (int_rel.r_type
@@ -1365,9 +1330,9 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
              && int_rel.r_extern == lo_int_rel.r_extern
              && int_rel.r_symndx == lo_int_rel.r_symndx)
            {
-             use_lo = true;
+             use_lo = TRUE;
              if (lo_ext_rel == ext_rel + 1)
-               got_lo = true;
+               got_lo = TRUE;
            }
        }
 
@@ -1432,11 +1397,11 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
                     (info, _("GP relative relocation used when GP not defined"),
                      input_bfd, input_section,
                      int_rel.r_vaddr - input_section->vma)))
-               return false;
+               return FALSE;
              /* Only give the error once per link.  */
              gp = 4;
              _bfd_set_gp_value (output_bfd, gp);
-             gp_undefined = false;
+             gp_undefined = FALSE;
            }
          if (! int_rel.r_extern)
            {
@@ -1511,7 +1476,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
                                         + (int_rel.r_vaddr
                                            - input_section->vma)
                                         + adjust)))
-               return false;
+               return FALSE;
 
              /* We must adjust everything else up a notch.  */
              adjust += PCREL16_EXPANSION_ADJUSTMENT;
@@ -1694,7 +1659,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
                             (info, h->root.root.string, input_bfd,
                              input_section,
                              int_rel.r_vaddr - input_section->vma)))
-                       return false;
+                       return FALSE;
                      int_rel.r_symndx = 0;
                    }
                  relocation = 0;
@@ -1778,8 +1743,8 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
                  if (! ((*info->callbacks->undefined_symbol)
                         (info, h->root.root.string, input_bfd,
                          input_section,
-                         int_rel.r_vaddr - input_section->vma, true)))
-                   return false;
+                         int_rel.r_vaddr - input_section->vma, TRUE)))
+                   return FALSE;
                  relocation = 0;
                }
            }
@@ -1860,19 +1825,19 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
                       (info, name, howto->name, (bfd_vma) 0,
                        input_bfd, input_section,
                        int_rel.r_vaddr - input_section->vma)))
-                 return false;
+                 return FALSE;
              }
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Read in the relocs for a section.  */
 
-static boolean
+static bfd_boolean
 mips_read_relocs (abfd, sec)
      bfd *abfd;
      asection *sec;
@@ -1886,7 +1851,7 @@ mips_read_relocs (abfd, sec)
       amt = sizeof (struct ecoff_section_tdata);
       sec->used_by_bfd = (PTR) bfd_alloc (abfd, amt);
       if (sec->used_by_bfd == NULL)
-       return false;
+       return FALSE;
 
       section_tdata = ecoff_section_data (abfd, sec);
       section_tdata->external_relocs = NULL;
@@ -1900,14 +1865,14 @@ mips_read_relocs (abfd, sec)
       amt *= sec->reloc_count;
       section_tdata->external_relocs = (PTR) bfd_alloc (abfd, amt);
       if (section_tdata->external_relocs == NULL && amt != 0)
-       return false;
+       return FALSE;
 
       if (bfd_seek (abfd, sec->rel_filepos, SEEK_SET) != 0
          || bfd_bread (section_tdata->external_relocs, amt, abfd) != amt)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Relax a section when linking a MIPS ECOFF file.  This is used for
@@ -1934,12 +1899,12 @@ mips_read_relocs (abfd, sec)
    routine and the mips_relocate_section routine is the table of
    offsets.  */
 
-static boolean
+static bfd_boolean
 mips_relax_section (abfd, sec, info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *info;
-     boolean *again;
+     bfd_boolean *again;
 {
   struct ecoff_section_tdata *section_tdata;
   bfd_byte *contents = NULL;
@@ -1949,21 +1914,21 @@ mips_relax_section (abfd, sec, info, again)
   unsigned int i;
 
   /* Assume we are not going to need another pass.  */
-  *again = false;
+  *again = FALSE;
 
   /* If we are not generating an ECOFF file, this is much too
      confusing to deal with.  */
   if (info->hash->creator->flavour != bfd_get_flavour (abfd))
-    return true;
+    return TRUE;
 
   /* If there are no relocs, there is nothing to do.  */
   if (sec->reloc_count == 0)
-    return true;
+    return TRUE;
 
   /* We are only interested in PC relative relocs, and why would there
      ever be one from anything but the .text section?  */
   if (strcmp (bfd_get_section_name (abfd, sec), ".text") != 0)
-    return true;
+    return TRUE;
 
   /* Read in the relocs, if we haven't already got them.  */
   section_tdata = ecoff_section_data (abfd, sec);
@@ -2108,7 +2073,7 @@ mips_relax_section (abfd, sec, info, again)
         symbols in the object file following this location.  */
 
       sec->_cooked_size += PCREL16_EXPANSION_ADJUSTMENT;
-      *again = true;
+      *again = TRUE;
 
       if (offsets == (long *) NULL)
        {
@@ -2306,12 +2271,12 @@ mips_relax_section (abfd, sec, info, again)
   if (contents != (bfd_byte *) NULL && ! info->keep_memory)
     free (contents);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (contents != (bfd_byte *) NULL && ! info->keep_memory)
     free (contents);
-  return false;
+  return FALSE;
 }
 
 /* This routine is called from mips_relocate_section when a PC
@@ -2319,7 +2284,7 @@ mips_relax_section (abfd, sec, info, again)
    It handles all the details of the expansion, including resolving
    the reloc.  */
 
-static boolean
+static bfd_boolean
 mips_relax_pcrel16 (info, input_bfd, input_section, h, location, address)
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      bfd *input_bfd;
@@ -2356,7 +2321,7 @@ mips_relax_pcrel16 (info, input_bfd, input_section, h, location, address)
   bfd_put_32 (input_bfd,
              (bfd_vma) 0x0020f809, location + 16); /* jalr $at */
 
-  return true;
+  return TRUE;
 }
 
 /* Given a .sdata section and a .rel.sdata in-memory section, store
@@ -2368,7 +2333,7 @@ mips_relax_pcrel16 (info, input_bfd, input_section, h, location, address)
    function presumes that the object was compiled using
    -membedded-pic.  */
 
-boolean
+bfd_boolean
 bfd_mips_ecoff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2388,17 +2353,17 @@ bfd_mips_ecoff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
   *errmsg = NULL;
 
   if (datasec->reloc_count == 0)
-    return true;
+    return TRUE;
 
   sym_hashes = ecoff_data (abfd)->sym_hashes;
 
   if (! mips_read_relocs (abfd, datasec))
-    return false;
+    return FALSE;
 
   amt = (bfd_size_type) datasec->reloc_count * 4;
   relsec->contents = (bfd_byte *) bfd_alloc (abfd, amt);
   if (relsec->contents == NULL)
-    return false;
+    return FALSE;
 
   p = relsec->contents;
 
@@ -2408,7 +2373,7 @@ bfd_mips_ecoff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
   for (; ext_rel < ext_rel_end; ext_rel++, p += 4)
     {
       struct internal_reloc int_rel;
-      boolean text_relative;
+      bfd_boolean text_relative;
 
       mips_ecoff_swap_reloc_in (abfd, (PTR) ext_rel, &int_rel);
 
@@ -2428,7 +2393,7 @@ bfd_mips_ecoff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
        {
          *errmsg = _("unsupported reloc type");
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       if (int_rel.r_extern)
@@ -2444,28 +2409,28 @@ bfd_mips_ecoff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
          if ((h->root.type == bfd_link_hash_defined
               || h->root.type == bfd_link_hash_defweak)
              && (h->root.u.def.section->flags & SEC_CODE) != 0)
-           text_relative = true;
+           text_relative = TRUE;
          else
-           text_relative = false;
+           text_relative = FALSE;
        }
       else
        {
          switch (int_rel.r_symndx)
            {
            case RELOC_SECTION_TEXT:
-             text_relative = true;
+             text_relative = TRUE;
              break;
            case RELOC_SECTION_SDATA:
            case RELOC_SECTION_SBSS:
            case RELOC_SECTION_LIT8:
-             text_relative = false;
+             text_relative = FALSE;
              break;
            default:
              /* No other sections should appear in -membedded-pic
                  code.  */
              *errmsg = _("reloc against unsupported section");
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
        }
 
@@ -2473,7 +2438,7 @@ bfd_mips_ecoff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
        {
          *errmsg = _("reloc not properly aligned");
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       bfd_put_32 (abfd,
@@ -2482,7 +2447,7 @@ bfd_mips_ecoff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
                  p);
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* This is the ECOFF backend structure.  The backend field of the
@@ -2501,7 +2466,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
     (unsigned (*) PARAMS ((bfd *,PTR,PTR))) bfd_void, /* reloc_out */
     mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out,
     mips_ecoff_swap_scnhdr_out,
-    FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, true, false, 4, false, 2,
+    FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, FALSE, 4, FALSE, 2,
     mips_ecoff_swap_filehdr_in, mips_ecoff_swap_aouthdr_in,
     mips_ecoff_swap_scnhdr_in, NULL,
     mips_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook,
@@ -2517,10 +2482,10 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
   /* The page boundary used to align sections in a demand-paged
      executable file.  E.g., 0x1000.  */
   0x1000,
-  /* True if the .rdata section is part of the text segment, as on the
-     Alpha.  False if .rdata is part of the data segment, as on the
+  /* TRUE if the .rdata section is part of the text segment, as on the
+     Alpha.  FALSE if .rdata is part of the data segment, as on the
      MIPS.  */
-  false,
+  FALSE,
   /* Bitsize of constructor entries.  */
   32,
   /* Reloc to use for constructor entries.  */
index c82b9af68f19fac0c129dd278f05c66eac817189..6bec813e13f323cd42053233bee5edb2f592bbb5 100644 (file)
 #include "coff/internal.h"
 #include "libcoff.h"
 
-static long                   get_symbol_value           PARAMS ((asymbol *));
-static bfd_reloc_status_type  or32_reloc                 PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean                coff_or32_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **));
-static boolean                coff_or32_adjust_symndx    PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, struct internal_reloc *, boolean *));
-static void                   reloc_processing           PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *));
+static long get_symbol_value
+  PARAMS ((asymbol *));
+static bfd_reloc_status_type or32_reloc
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static bfd_boolean coff_or32_relocate_section
+  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+          struct internal_reloc *, struct internal_syment *, asection **));
+static bfd_boolean coff_or32_adjust_symndx
+  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
+          struct internal_reloc *, bfd_boolean *));
+static void reloc_processing
+  PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *));
 
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2)
 
@@ -52,14 +59,14 @@ static void                   reloc_processing           PARAMS ((arelent *, str
 /* Provided the symbol, returns the value reffed.  */
 
 static long
-get_symbol_value (symbol)       
+get_symbol_value (symbol)
      asymbol *symbol;
-{                                             
+{
   long relocation = 0;
 
   if (bfd_is_com_section (symbol->section))
-    relocation = 0;                           
-  else 
+    relocation = 0;
+  else
     relocation = symbol->value +
       symbol->section->output_section->vma +
       symbol->section->output_offset;
@@ -82,7 +89,7 @@ or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
 {
   /* The consth relocation comes in two parts, we have to remember
      the state between calls, in these variables.  */
-  static boolean part1_consth_active = false;
+  static bfd_boolean part1_consth_active = FALSE;
   static unsigned long part1_consth_value;
 
   unsigned long insn;
@@ -93,10 +100,10 @@ or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
 
   unsigned long addr = reloc_entry->address ;   /*+ input_section->vma*/
   bfd_byte *hit_data =addr + (bfd_byte *)(data);
-  
+
   r_type = reloc_entry->howto->type;
 
-  if (output_bfd) 
+  if (output_bfd)
     {
       /* Partial linking - do nothing.  */
       reloc_entry->address += input_section->output_offset;
@@ -107,18 +114,18 @@ or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
       && bfd_is_und_section (symbol_in->section))
     {
       /* Keep the state machine happy in case we're called again.  */
-      if (r_type == R_IHIHALF) 
+      if (r_type == R_IHIHALF)
         {
-          part1_consth_active = true;
+          part1_consth_active = TRUE;
           part1_consth_value  = 0;
         }
 
       return bfd_reloc_undefined;
     }
 
-  if ((part1_consth_active) && (r_type != R_IHCONST)) 
+  if ((part1_consth_active) && (r_type != R_IHCONST))
     {
-      part1_consth_active = false;
+      part1_consth_active = FALSE;
       *error_message = (char *) "Missing IHCONST";
 
       return bfd_reloc_dangerous;
@@ -126,10 +133,10 @@ or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
 
   sym_value = get_symbol_value (symbol_in);
 
-  switch (r_type) 
+  switch (r_type)
     {
-    case R_IREL:  
-      insn = bfd_get_32(abfd, hit_data); 
+    case R_IREL:
+      insn = bfd_get_32(abfd, hit_data);
 
       /* Take the value in the field and sign extend it.  */
       signed_value = EXTRACT_JUMPTARG (insn);
@@ -146,8 +153,8 @@ or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
         {                     /* Absolute jmp/call.  */
           insn |= (1<<24);    /* Make it absolute.  */
           /* FIXME: Should we change r_type to R_IABS.  */
-        } 
-      else 
+        }
+      else
 #endif
         {
           /* Relative jmp/call, so subtract from the value the
@@ -155,39 +162,39 @@ or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
           signed_value -= (reloc_entry->address
                            + input_section->output_section->vma
                            + input_section->output_offset);
-          if (signed_value > 0x7ffffff || signed_value < -0x8000000) 
+          if (signed_value > 0x7ffffff || signed_value < -0x8000000)
             return bfd_reloc_overflow;
         }
       signed_value >>= 2;
       insn = INSERT_JUMPTARG (insn, signed_value);
-      bfd_put_32 (abfd, insn, hit_data); 
+      bfd_put_32 (abfd, insn, hit_data);
       break;
 
-    case R_ILOHALF: 
-      insn = bfd_get_32 (abfd, hit_data); 
+    case R_ILOHALF:
+      insn = bfd_get_32 (abfd, hit_data);
       unsigned_value = EXTRACT_HWORD (insn);
       unsigned_value +=  sym_value + reloc_entry->addend;
       insn = INSERT_HWORD (insn, unsigned_value);
-      bfd_put_32 (abfd, insn, hit_data); 
+      bfd_put_32 (abfd, insn, hit_data);
       break;
 
     case R_IHIHALF:
-      insn = bfd_get_32 (abfd, hit_data); 
+      insn = bfd_get_32 (abfd, hit_data);
 
-      /* consth, part 1 
+      /* consth, part 1
          Just get the symbol value that is referenced.  */
-      part1_consth_active = true;
+      part1_consth_active = TRUE;
       part1_consth_value = sym_value + reloc_entry->addend;
 
       /* Don't modify insn until R_IHCONST.  */
       break;
 
-    case R_IHCONST: 
-      insn = bfd_get_32 (abfd, hit_data); 
+    case R_IHCONST:
+      insn = bfd_get_32 (abfd, hit_data);
 
-      /* consth, part 2 
+      /* consth, part 2
          Now relocate the reference.  */
-      if (! part1_consth_active) 
+      if (! part1_consth_active)
         {
           *error_message = (char *) "Missing IHIHALF";
           return bfd_reloc_dangerous;
@@ -199,29 +206,29 @@ or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
       unsigned_value += part1_consth_value;
       unsigned_value = unsigned_value >> 16;
       insn = INSERT_HWORD (insn, unsigned_value);
-      part1_consth_active = false;
-      bfd_put_32 (abfd, insn, hit_data); 
+      part1_consth_active = FALSE;
+      bfd_put_32 (abfd, insn, hit_data);
       break;
 
     case R_BYTE:
-      insn = bfd_get_8 (abfd, hit_data); 
-      unsigned_value = insn + sym_value + reloc_entry->addend;  
+      insn = bfd_get_8 (abfd, hit_data);
+      unsigned_value = insn + sym_value + reloc_entry->addend;
       if (unsigned_value & 0xffffff00)
         return bfd_reloc_overflow;
-      bfd_put_8 (abfd, unsigned_value, hit_data); 
+      bfd_put_8 (abfd, unsigned_value, hit_data);
       break;
 
     case R_HWORD:
-      insn = bfd_get_16 (abfd, hit_data); 
-      unsigned_value = insn + sym_value + reloc_entry->addend;  
+      insn = bfd_get_16 (abfd, hit_data);
+      unsigned_value = insn + sym_value + reloc_entry->addend;
       if (unsigned_value & 0xffff0000)
         return bfd_reloc_overflow;
-      bfd_put_16 (abfd, insn, hit_data); 
+      bfd_put_16 (abfd, insn, hit_data);
       break;
 
     case R_WORD:
-      insn = bfd_get_32 (abfd, hit_data); 
-      insn += sym_value + reloc_entry->addend;  
+      insn = bfd_get_32 (abfd, hit_data);
+      insn += sym_value + reloc_entry->addend;
       bfd_put_32 (abfd, insn, hit_data);
       break;
 
@@ -242,14 +249,14 @@ or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
                complain_on_overflow
               special_function
                 relocation name
-                     partial_inplace 
+                     partial_inplace
                       src_mask
 */
 
 /* FIXME: I'm not real sure about this table.  */
-static reloc_howto_type howto_table[] = 
+static reloc_howto_type howto_table[] =
 {
-  { R_ABS,      0, 3, 32, false,  0, complain_overflow_bitfield,  or32_reloc, "ABS",     true, 0xffffffff,0xffffffff, false },
+  { R_ABS,      0, 3, 32, FALSE,  0, complain_overflow_bitfield,  or32_reloc, "ABS",     TRUE, 0xffffffff,0xffffffff, FALSE },
     EMPTY_HOWTO (1),
     EMPTY_HOWTO (2),
     EMPTY_HOWTO (3),
@@ -273,14 +280,14 @@ static reloc_howto_type howto_table[] =
     EMPTY_HOWTO (21),
     EMPTY_HOWTO (22),
     EMPTY_HOWTO (23),
-  { R_IREL,     0, 3, 32, true,   0, complain_overflow_signed,    or32_reloc, "IREL",    true, 0xffffffff,0xffffffff, false },
-  { R_IABS,     0, 3, 32, false,  0, complain_overflow_bitfield,  or32_reloc, "IABS",    true, 0xffffffff,0xffffffff, false },
-  { R_ILOHALF,  0, 3, 16, true,   0, complain_overflow_signed,    or32_reloc, "ILOHALF", true, 0x0000ffff,0x0000ffff, false },
-  { R_IHIHALF,  0, 3, 16, true,   16,complain_overflow_signed,    or32_reloc, "IHIHALF", true, 0xffff0000,0xffff0000, false },
-  { R_IHCONST,  0, 3, 16, true,   0, complain_overflow_signed,    or32_reloc, "IHCONST", true, 0xffff0000,0xffff0000, false },
-  { R_BYTE,     0, 0, 8,  false,  0, complain_overflow_bitfield,  or32_reloc, "BYTE",    true, 0x000000ff,0x000000ff, false },
-  { R_HWORD,    0, 1, 16, false,  0, complain_overflow_bitfield,  or32_reloc, "HWORD",   true, 0x0000ffff,0x0000ffff, false },
-  { R_WORD,     0, 2, 32, false,  0, complain_overflow_bitfield,  or32_reloc, "WORD",    true, 0xffffffff,0xffffffff, false },
+  { R_IREL,     0, 3, 32, TRUE,   0, complain_overflow_signed,    or32_reloc, "IREL",    TRUE, 0xffffffff,0xffffffff, FALSE },
+  { R_IABS,     0, 3, 32, FALSE,  0, complain_overflow_bitfield,  or32_reloc, "IABS",    TRUE, 0xffffffff,0xffffffff, FALSE },
+  { R_ILOHALF,  0, 3, 16, TRUE,   0, complain_overflow_signed,    or32_reloc, "ILOHALF", TRUE, 0x0000ffff,0x0000ffff, FALSE },
+  { R_IHIHALF,  0, 3, 16, TRUE,   16,complain_overflow_signed,    or32_reloc, "IHIHALF", TRUE, 0xffff0000,0xffff0000, FALSE },
+  { R_IHCONST,  0, 3, 16, TRUE,   0, complain_overflow_signed,    or32_reloc, "IHCONST", TRUE, 0xffff0000,0xffff0000, FALSE },
+  { R_BYTE,     0, 0, 8,  FALSE,  0, complain_overflow_bitfield,  or32_reloc, "BYTE",    TRUE, 0x000000ff,0x000000ff, FALSE },
+  { R_HWORD,    0, 1, 16, FALSE,  0, complain_overflow_bitfield,  or32_reloc, "HWORD",   TRUE, 0x0000ffff,0x0000ffff, FALSE },
+  { R_WORD,     0, 2, 32, FALSE,  0, complain_overflow_bitfield,  or32_reloc, "WORD",    TRUE, 0xffffffff,0xffffffff, FALSE },
 };
 
 #define BADMAG(x) OR32BADMAG (x)
@@ -298,11 +305,11 @@ reloc_processing (relent,reloc, symbols, abfd, section)
 {
   static bfd_vma ihihalf_vaddr = (bfd_vma) -1;
 
-  relent->address = reloc->r_vaddr;   
+  relent->address = reloc->r_vaddr;
   relent->howto = howto_table + reloc->r_type;
 
-  if (reloc->r_type == R_IHCONST) 
-    {   
+  if (reloc->r_type == R_IHCONST)
+    {
       /* The address of an R_IHCONST should always be the address of
         the immediately preceding R_IHIHALF.  relocs generated by gas
         are correct, but relocs generated by High C are different (I
@@ -336,7 +343,7 @@ reloc_processing (relent,reloc, symbols, abfd, section)
 
 /* The reloc processing routine for the optimized COFF linker.  */
 
-static boolean
+static bfd_boolean
 coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
                             contents, relocs, syms, sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -350,16 +357,16 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
 {
   struct internal_reloc *rel;
   struct internal_reloc *relend;
-  boolean hihalf;
+  bfd_boolean hihalf;
   bfd_vma hihalf_val;
 
   /* If we are performing a relocateable link, we don't need to do a
      thing.  The caller will take care of adjusting the reloc
      addresses and symbol indices.  */
   if (info->relocateable)
-    return true;
+    return TRUE;
 
-  hihalf = false;
+  hihalf = FALSE;
   hihalf_val = 0;
 
   rel = relocs;
@@ -373,7 +380,7 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
       struct internal_syment *sym;
       asection *sec;
       bfd_vma val;
-      boolean overflow;
+      bfd_boolean overflow;
       unsigned long insn;
       long signed_value;
       unsigned long unsigned_value;
@@ -424,8 +431,8 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
                 {
                   if (! ((*info->callbacks->undefined_symbol)
                          (info, h->root.root.string, input_bfd, input_section,
-                          rel->r_vaddr - input_section->vma, true)))
-                    return false;
+                          rel->r_vaddr - input_section->vma, TRUE)))
+                    return FALSE;
                 }
             }
 
@@ -434,18 +441,18 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
               if (! ((*info->callbacks->reloc_dangerous)
                      (info, "missing IHCONST reloc", input_bfd,
                       input_section, rel->r_vaddr - input_section->vma)))
-                return false;
-              hihalf = false;
+                return FALSE;
+              hihalf = FALSE;
             }
         }
 
-      overflow = false;
+      overflow = FALSE;
 
       switch (rel->r_type)
         {
         default:
           bfd_set_error (bfd_error_bad_value);
-          return false;
+          return FALSE;
 
         case R_IREL:
           insn = bfd_get_32 (input_bfd, loc);
@@ -473,7 +480,7 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
                                + (rel->r_vaddr - input_section->vma));
               if (signed_value > 0x7ffffff || signed_value < - 0x8000000)
                 {
-                  overflow = true;
+                  overflow = TRUE;
                   signed_value = 0;
                 }
             }
@@ -495,7 +502,7 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
 
         case R_IHIHALF:
           /* Save the value for the R_IHCONST reloc.  */
-          hihalf = true;
+          hihalf = TRUE;
           hihalf_val = val;
           break;
 
@@ -505,7 +512,7 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
               if (! ((*info->callbacks->reloc_dangerous)
                      (info, "missing IHIHALF reloc", input_bfd,
                       input_section, rel->r_vaddr - input_section->vma)))
-                return false;
+                return FALSE;
               hihalf_val = 0;
             }
 
@@ -515,7 +522,7 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
           insn = INSERT_HWORD (insn, unsigned_value);
           bfd_put_32 (input_bfd, (bfd_vma) insn, loc);
 
-          hihalf = false;
+          hihalf = FALSE;
           break;
 
         case R_BYTE:
@@ -524,7 +531,7 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
           rstat = _bfd_relocate_contents (howto_table + rel->r_type,
                                           input_bfd, val, loc);
           if (rstat == bfd_reloc_overflow)
-            overflow = true;
+            overflow = TRUE;
           else if (rstat != bfd_reloc_ok)
             abort ();
           break;
@@ -555,11 +562,11 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
                  (info, name, howto_table[rel->r_type].name, (bfd_vma) 0,
                   input_bfd, input_section,
                   rel->r_vaddr - input_section->vma)))
-            return false;
+            return FALSE;
         }
-    }   
+    }
 
-  return true;
+  return TRUE;
 }
 
 #define coff_relocate_section coff_or32_relocate_section
@@ -567,20 +574,20 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
 /* We don't want to change the symndx of a R_IHCONST reloc, since it
    is actually an addend, not a symbol index at all.  */
 
-static boolean
+static bfd_boolean
 coff_or32_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp)
      bfd *obfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      bfd *ibfd ATTRIBUTE_UNUSED;
      asection *sec ATTRIBUTE_UNUSED;
      struct internal_reloc *irel;
-     boolean *adjustedp;
+     bfd_boolean *adjustedp;
 {
   if (irel->r_type == R_IHCONST)
-    *adjustedp = true;
+    *adjustedp = TRUE;
   else
-    *adjustedp = false;
-  return true;
+    *adjustedp = FALSE;
+  return TRUE;
 }
 
 #define coff_adjust_symndx coff_or32_adjust_symndx
@@ -599,7 +606,7 @@ const bfd_target or32coff_big_vec =
    HAS_SYMS   | HAS_LOCALS | WP_TEXT),
 
   (SEC_HAS_CONTENTS | SEC_ALLOC | /* Section flags.  */
-   SEC_LOAD | SEC_RELOC | 
+   SEC_LOAD | SEC_RELOC |
    SEC_READONLY ),
   '_',        /* Leading underscore.  */
   '/',        /* ar_pad_char.  */
@@ -615,7 +622,7 @@ const bfd_target or32coff_big_vec =
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,
   bfd_getb16, bfd_getb_signed_16, bfd_putb16,
 
-  { 
+  {
     _bfd_dummy_target,
     coff_object_p,
     bfd_generic_archive_p,
@@ -643,7 +650,7 @@ const bfd_target or32coff_big_vec =
   BFD_JUMP_TABLE_WRITE (coff),
   BFD_JUMP_TABLE_LINK (coff),
   BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
-   
+
  /* Alternative_target.  */
 #ifdef TARGET_LITTLE_SYM
   & TARGET_LITTLE_SYM,
index 4f8b15e177e4ccc66b4bbb0ef8347638563a21b2..f0c82a6dfa3dc19fb905791350b12ae709a5ca1d 100644 (file)
@@ -54,7 +54,7 @@ Boston, MA 02111-1307, USA.  */
 
 /* This file is compiled more than once, but we only compile the
    final_link routine once.  */
-extern boolean ppc_bfd_coff_final_link
+extern bfd_boolean ppc_bfd_coff_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 extern void dump_toc PARAMS ((PTR));
 
@@ -128,14 +128,14 @@ struct ppc_coff_link_hash_table
 static struct bfd_hash_entry *ppc_coff_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
           const char *));
-static boolean ppc_coff_link_hash_table_init
+static bfd_boolean ppc_coff_link_hash_table_init
   PARAMS ((struct ppc_coff_link_hash_table *, bfd *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
                                       const char *)));
 static struct bfd_link_hash_table *ppc_coff_link_hash_table_create
   PARAMS ((bfd *));
-static boolean coff_ppc_relocate_section
+static bfd_boolean coff_ppc_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
 static reloc_howto_type *coff_ppc_rtype_to_howto
@@ -184,7 +184,7 @@ ppc_coff_link_hash_newfunc (entry, table, string)
 
 /* Initialize a PE linker hash table.  */
 
-static boolean
+static bfd_boolean
 ppc_coff_link_hash_table_init (table, abfd, newfunc)
      struct ppc_coff_link_hash_table *table;
      bfd *abfd;
@@ -385,7 +385,7 @@ static bfd_reloc_status_type ppc_imglue_reloc PARAMS ((bfd *abfd,
                                                       bfd *output_bfd,
                                                       char **error));
 
-static boolean in_reloc_p PARAMS((bfd *abfd, reloc_howto_type *howto));
+static bfd_boolean in_reloc_p PARAMS((bfd *abfd, reloc_howto_type *howto));
 \f
 /* FIXME: It'll take a while to get through all of these. I only need a few to
    get us started, so those I'll make sure work. Those marked FIXME are either
@@ -433,15 +433,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                      /* rightshift */
         0,                      /* size (0 = byte, 1 = short, 2 = long) */
         0,                      /* bitsize */
-        false,                  /* pc_relative */
+        FALSE,                  /* pc_relative */
         0,                      /* bitpos */
         complain_overflow_dont, /* dont complain_on_overflow */
         0,                      /* special_function */
         "ABSOLUTE",             /* name */
-        false,                  /* partial_inplace */
+        FALSE,                  /* partial_inplace */
         0x00,                   /* src_mask */
         0x00,                   /* dst_mask */
-        false),                 /* pcrel_offset */
+        FALSE),                 /* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR64 0x0001  64-bit address */
   /* Unused: */
@@ -449,15 +449,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
        0,                       /* rightshift */
        3,                       /* size (0 = byte, 1 = short, 2 = long) */
        64,                      /* bitsize */
-       false,                   /* pc_relative */
+       FALSE,                   /* pc_relative */
        0,                       /* bitpos */
        complain_overflow_bitfield,      /* complain_on_overflow */
        0,                       /* special_function */
        "ADDR64",               /* name */
-       true,                    /* partial_inplace */
+       TRUE,                    /* partial_inplace */
        MINUS_ONE,               /* src_mask */
        MINUS_ONE,               /* dst_mask */
-       false),                 /* pcrel_offset */
+       FALSE),                 /* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR32 0x0002  32-bit address */
   /* Used: */
@@ -465,15 +465,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "ADDR32",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR24 0x0003  26-bit address, shifted left 2 (branch absolute) */
   /* the LI field is in bit 6 through bit 29 is 24 bits, + 2 for the shift */
@@ -484,15 +484,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "ADDR24",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x07fffffc,            /* src_mask */
         0x07fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR16 0x0004  16-bit address */
   /* Used: */
@@ -500,15 +500,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "ADDR16",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR14 0x0005 */
   /*  16-bit address, shifted left 2 (load doubleword) */
@@ -518,15 +518,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "ADDR16",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_REL24 0x0006 */
   /*   26-bit PC-relative offset, shifted left 2 (branch relative) */
@@ -535,15 +535,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "REL24",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3fffffc,             /* src_mask */
         0x3fffffc,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_REL14 0x0007 */
   /*   16-bit PC-relative offset, shifted left 2 (br cond relative) */
@@ -554,15 +554,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "ADDR16",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* IMAGE_REL_PPC_TOCREL16 0x0008 */
   /*   16-bit offset from TOC base */
@@ -571,15 +571,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc_toc16_reloc,       /* special_function */
         "TOCREL16",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_TOCREL14 0x0009 */
   /*   16-bit offset from TOC base, shifted left 2 (load doubleword) */
@@ -588,15 +588,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "TOCREL14",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR32NB 0x000A */
   /*   32-bit addr w/ image base */
@@ -605,15 +605,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "ADDR32NB",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                 /* pcrel_offset */
+        FALSE),                 /* pcrel_offset */
 
   /* IMAGE_REL_PPC_SECREL 0x000B */
   /*   va of containing section (as in an image sectionhdr) */
@@ -622,15 +622,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc_secrel_reloc,      /* special_function */
         "SECREL",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* IMAGE_REL_PPC_SECTION 0x000C */
   /*   sectionheader number */
@@ -639,15 +639,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc_section_reloc,     /* special_function */
         "SECTION",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* IMAGE_REL_PPC_IFGLUE 0x000D */
   /*   substitute TOC restore instruction iff symbol is glue code */
@@ -656,15 +656,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "IFGLUE",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_IMGLUE 0x000E */
   /*   symbol is glue code; virtual address is TOC restore instruction */
@@ -673,15 +673,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc_imglue_reloc,      /* special_function */
         "IMGLUE",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                 /* pcrel_offset */
+        FALSE),                 /* pcrel_offset */
 
   /* IMAGE_REL_PPC_SECREL16 0x000F */
   /*   va of containing section (limited to 16 bits) */
@@ -690,15 +690,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SECREL16",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* IMAGE_REL_PPC_REFHI             0x0010 */
   /* Unused: */
@@ -706,15 +706,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc_refhi_reloc,       /* special_function */
         "REFHI",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                 /* pcrel_offset */
+        FALSE),                 /* pcrel_offset */
 
   /* IMAGE_REL_PPC_REFLO             0x0011 */
   /* Unused: */
@@ -722,15 +722,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc_refhi_reloc,       /* special_function */
         "REFLO",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_PAIR              0x0012 */
   /* Unused: */
@@ -738,15 +738,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc_pair_reloc,        /* special_function */
         "PAIR",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* IMAGE_REL_PPC_TOCREL16_DEFN 0x0013 */
   /*   16-bit offset from TOC base, without causing a definition */
@@ -755,15 +755,15 @@ static reloc_howto_type ppc_coff_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "TOCREL16, TOCDEFN",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 };
 \f
@@ -884,13 +884,13 @@ record_toc (toc_section, our_toc_offset, cat, name)
 
 #ifdef COFF_IMAGE_WITH_PE
 
-static boolean ppc_record_toc_entry
+static bfd_boolean ppc_record_toc_entry
   PARAMS ((bfd *, struct bfd_link_info *, asection *, int, enum toc_type));
 static void ppc_mark_symbol_as_glue
   PARAMS ((bfd *, int, struct internal_reloc *));
 
 /* record a toc offset against a symbol */
-static boolean
+static bfd_boolean
 ppc_record_toc_entry(abfd, info, sec, sym, toc_kind)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -922,7 +922,7 @@ ppc_record_toc_entry(abfd, info, sec, sym, toc_kind)
          amt = (bfd_size_type) obj_raw_syment_count (abfd) * sizeof (int);
          local_syms = (int *) bfd_zalloc (abfd, amt);
          if (local_syms == 0)
-           return false;
+           return FALSE;
          obj_coff_local_toc_table (abfd) = local_syms;
          for (i = 0; i < obj_raw_syment_count (abfd); ++i)
            {
@@ -940,7 +940,7 @@ ppc_record_toc_entry(abfd, info, sec, sym, toc_kind)
            {
              (*_bfd_error_handler) (_("TOC overflow"));
              bfd_set_error (bfd_error_file_too_big);
-             return false;
+             return FALSE;
            }
        }
     }
@@ -960,12 +960,12 @@ ppc_record_toc_entry(abfd, info, sec, sym, toc_kind)
            {
              (*_bfd_error_handler) (_("TOC overflow"));
              bfd_set_error (bfd_error_file_too_big);
-             return false;
+             return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* record a toc offset against a symbol */
@@ -989,10 +989,10 @@ ppc_mark_symbol_as_glue(abfd, sym, rel)
 
 #endif /* COFF_IMAGE_WITH_PE */
 \f
-/* Return true if this relocation should
+/* Return TRUE if this relocation should
    appear in the output .reloc section.  */
 
-static boolean in_reloc_p(abfd, howto)
+static bfd_boolean in_reloc_p(abfd, howto)
      bfd * abfd ATTRIBUTE_UNUSED;
      reloc_howto_type *howto;
 {
@@ -1030,7 +1030,7 @@ pe_ppc_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
 {
   /* the consth relocation comes in two parts, we have to remember
      the state between calls, in these variables */
-  static boolean part1_consth_active = false;
+  static bfd_boolean part1_consth_active = FALSE;
   static unsigned long part1_consth_value;
 
   unsigned long sym_value;
@@ -1052,7 +1052,7 @@ pe_ppc_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
       /* Keep the state machine happy in case we're called again */
       if (r_type == IMAGE_REL_PPC_REFHI)
        {
-         part1_consth_active = true;
+         part1_consth_active = TRUE;
          part1_consth_value  = 0;
        }
       return(bfd_reloc_undefined);
@@ -1060,7 +1060,7 @@ pe_ppc_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
 
   if ((part1_consth_active) && (r_type != IMAGE_REL_PPC_PAIR))
     {
-      part1_consth_active = false;
+      part1_consth_active = FALSE;
       *error_message = (char *) _("Missing PAIR");
       return(bfd_reloc_dangerous);
     }
@@ -1074,7 +1074,7 @@ pe_ppc_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
 
 /* The reloc processing routine for the optimized COFF linker.  */
 
-static boolean
+static bfd_boolean
 coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, syms, sections)
      bfd *output_bfd;
@@ -1088,7 +1088,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
 {
   struct internal_reloc *rel;
   struct internal_reloc *relend;
-  boolean hihalf;
+  bfd_boolean hihalf;
   bfd_vma hihalf_val;
   asection *toc_section = 0;
   bfd_vma relocation;
@@ -1098,9 +1098,9 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
      thing.  The caller will take care of adjusting the reloc
      addresses and symbol indices.  */
   if (info->relocateable)
-    return true;
+    return TRUE;
 
-  hihalf = false;
+  hihalf = FALSE;
   hihalf_val = 0;
 
   rel = relocs;
@@ -1182,8 +1182,8 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.root.string, input_bfd, input_section,
-                     rel->r_vaddr - input_section->vma, true)))
-               return false;
+                     rel->r_vaddr - input_section->vma, TRUE)))
+               return FALSE;
            }
        }
 
@@ -1197,7 +1197,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
            (_("%s: unsupported relocation type 0x%02x"),
             bfd_archive_filename (input_bfd), r_type);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        case IMAGE_REL_PPC_TOCREL16:
          {
            bfd_signed_vma our_toc_offset;
@@ -1224,7 +1224,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
             *  the 1 bit to tell us if we've written this particular toc
             *  entry out.
             */
-           fixit = false;
+           fixit = FALSE;
            if (h == 0)
              { /* it is a file local symbol */
                int *local_toc_table;
@@ -1254,7 +1254,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                               toc_section->contents + our_toc_offset);
 
                    MARK_AS_WRITTEN(local_toc_table[symndx]);
-                   fixit = true;
+                   fixit = TRUE;
                  }
              }
            else
@@ -1291,7 +1291,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                           bfd_archive_filename (input_bfd), name,
                           (unsigned long) our_toc_offset);
                        bfd_set_error (bfd_error_bad_value);
-                       return false;
+                       return FALSE;
                      }
 
                    record_toc (toc_section, our_toc_offset, pub,
@@ -1317,7 +1317,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                    MARK_AS_WRITTEN(h->toc_offset);
                    /* The tricky part is that this is the address that */
                    /* needs a .reloc entry for it */
-                   fixit = true;
+                   fixit = TRUE;
                  }
              }
 
@@ -1348,7 +1348,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                   bfd_archive_filename (input_bfd),
                   (unsigned long) toc_section->_raw_size);
                bfd_set_error (bfd_error_bad_value);
-               return false;
+               return FALSE;
              }
 
            /* Now we know the relocation for this toc reference */
@@ -1423,7 +1423,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
              (_("%s: Out of order IMGLUE reloc for %s"),
               bfd_archive_filename (input_bfd), my_name);
            bfd_set_error (bfd_error_bad_value);
-           return false;
+           return FALSE;
          }
 
        case IMAGE_REL_PPC_ADDR32NB:
@@ -1438,7 +1438,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                struct coff_link_hash_entry *myh;
                myh = coff_link_hash_lookup (coff_hash_table (info),
                                             "__idata5_magic__",
-                                            false, false, true);
+                                            FALSE, FALSE, TRUE);
                first_thunk_address = myh->root.u.def.value +
                  sec->output_section->vma +
                    sec->output_offset -
@@ -1447,12 +1447,12 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                idata5offset = myh->root.u.def.value;
                myh = coff_link_hash_lookup (coff_hash_table (info),
                                             "__idata6_magic__",
-                                            false, false, true);
+                                            FALSE, FALSE, TRUE);
 
                thunk_size = myh->root.u.def.value - idata5offset;
                myh = coff_link_hash_lookup (coff_hash_table (info),
                                             "__idata4_magic__",
-                                            false, false, true);
+                                            FALSE, FALSE, TRUE);
                import_table_size = myh->root.u.def.value;
              }
 
@@ -1479,7 +1479,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
 
                    myh = coff_link_hash_lookup (coff_hash_table (info),
                                                 target,
-                                                false, false, true);
+                                                FALSE, FALSE, TRUE);
                    if (myh == 0)
                      {
                        /* Missing magic cookies. Something is very wrong.  */
@@ -1493,7 +1493,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                        int idata5offset;
                        myh = coff_link_hash_lookup (coff_hash_table (info),
                                                     "__idata5_magic__",
-                                                    false, false, true);
+                                                    FALSE, FALSE, TRUE);
                        first_thunk_address = myh->root.u.def.value +
                          sec->output_section->vma +
                            sec->output_offset -
@@ -1502,12 +1502,12 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                        idata5offset = myh->root.u.def.value;
                        myh = coff_link_hash_lookup (coff_hash_table (info),
                                                     "__idata6_magic__",
-                                                    false, false, true);
+                                                    FALSE, FALSE, TRUE);
 
                        thunk_size = myh->root.u.def.value - idata5offset;
                        myh = coff_link_hash_lookup (coff_hash_table (info),
                                                     "__idata4_magic__",
-                                                    false, false, true);
+                                                    FALSE, FALSE, TRUE);
                        import_table_size = myh->root.u.def.value;
                      }
                  }
@@ -1596,14 +1596,14 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
                    (bfd_vma) 0, input_bfd,
                    input_section, rel->r_vaddr - input_section->vma)))
              {
-               return false;
+               return FALSE;
              }
          }
        }
 
     }
 
-  return true;
+  return TRUE;
 }
 
 #ifdef COFF_IMAGE_WITH_PE
@@ -1677,7 +1677,7 @@ dump_toc (vfile)
   fprintf (file, "\n");
 }
 
-boolean
+bfd_boolean
 ppc_allocate_toc_section (info)
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
 {
@@ -1687,7 +1687,7 @@ ppc_allocate_toc_section (info)
   static char test_char = '1';
 
   if ( global_toc_size == 0 ) /* FIXME: does this get me in trouble? */
-    return true;
+    return TRUE;
 
   if (bfd_of_toc_owner == 0)
     {
@@ -1709,10 +1709,10 @@ ppc_allocate_toc_section (info)
   s->_raw_size = s->_cooked_size = global_toc_size;
   s->contents = foo;
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 ppc_process_before_allocation (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1730,7 +1730,7 @@ ppc_process_before_allocation (abfd, info)
 
   if (sec == 0)
     {
-      return true;
+      return TRUE;
     }
 
   for (; sec != 0; sec = sec->next)
@@ -1749,7 +1749,7 @@ ppc_process_before_allocation (abfd, info)
       {
        unsigned short r_type  = EXTRACT_TYPE (rel->r_type);
        unsigned short r_flags = EXTRACT_FLAGS(rel->r_type);
-       boolean ok = true;
+       bfd_boolean ok = TRUE;
 
        DUMP_RELOC2(ppc_coff_howto_table[r_type].name, rel);
 
@@ -1762,7 +1762,7 @@ ppc_process_before_allocation (abfd, info)
              ok = ppc_record_toc_entry(abfd, info, sec,
                                        rel->r_symndx, default_toc);
            if (!ok)
-             return false;
+             return FALSE;
            break;
          case IMAGE_REL_PPC_IMGLUE:
            ppc_mark_symbol_as_glue(abfd, rel->r_symndx, rel);
@@ -1773,7 +1773,7 @@ ppc_process_before_allocation (abfd, info)
       }
   }
 
-  return true;
+  return TRUE;
 }
 
 #endif
@@ -2278,17 +2278,17 @@ ppc_coff_swap_sym_in_hook (abfd, ext1, in1)
 
 #ifndef COFF_IMAGE_WITH_PE
 
-static boolean ppc_do_last PARAMS ((bfd *));
+static bfd_boolean ppc_do_last PARAMS ((bfd *));
 static bfd *ppc_get_last PARAMS ((void));
 
-static boolean
+static bfd_boolean
 ppc_do_last (abfd)
      bfd *abfd;
 {
   if (abfd == bfd_of_toc_owner)
-    return true;
+    return TRUE;
   else
-    return false;
+    return FALSE;
 }
 
 static bfd *
@@ -2311,14 +2311,14 @@ ppc_get_last()
 
 /* Do the final link step.  */
 
-boolean
+bfd_boolean
 ppc_bfd_coff_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   bfd_size_type symesz;
   struct coff_final_link_info finfo;
-  boolean debug_merge_allocated;
+  bfd_boolean debug_merge_allocated;
   asection *o;
   struct bfd_link_order *p;
   bfd_size_type max_sym_count;
@@ -2351,7 +2351,7 @@ ppc_bfd_coff_final_link (abfd, info)
   finfo.contents = NULL;
   finfo.external_relocs = NULL;
   finfo.internal_relocs = NULL;
-  debug_merge_allocated = false;
+  debug_merge_allocated = FALSE;
 
   coff_data (abfd)->link_info = info;
 
@@ -2361,13 +2361,13 @@ ppc_bfd_coff_final_link (abfd, info)
 
   if (! coff_debug_merge_hash_table_init (&finfo.debug_merge))
     goto error_return;
-  debug_merge_allocated = true;
+  debug_merge_allocated = TRUE;
 
   /* Compute the file positions for all the sections.  */
   if (! abfd->output_has_begun)
     {
       if (! bfd_coff_compute_section_file_positions (abfd))
-       return false;
+       return FALSE;
     }
 
   /* Count the line numbers and relocation entries required for the
@@ -2395,7 +2395,7 @@ ppc_bfd_coff_final_link (abfd, info)
                 link.  This will normally be every section.  We need
                 to do this so that we can identify any sections which
                 the linker has decided to not include.  */
-             sec->linker_mark = true;
+             sec->linker_mark = TRUE;
 
              if (info->strip == strip_none
                  || info->strip == strip_some)
@@ -2509,7 +2509,7 @@ ppc_bfd_coff_final_link (abfd, info)
     {
       bfd_size_type sz;
 
-      sub->output_has_begun = false;
+      sub->output_has_begun = FALSE;
       sz = obj_raw_syment_count (sub);
       if (sz > max_sym_count)
        max_sym_count = sz;
@@ -2575,7 +2575,7 @@ ppc_bfd_coff_final_link (abfd, info)
                {
                  if (! _bfd_coff_link_input_bfd (&finfo, sub))
                    goto error_return;
-                 sub->output_has_begun = true;
+                 sub->output_has_begun = TRUE;
                }
            }
          else if (p->type == bfd_section_reloc_link_order
@@ -2600,14 +2600,14 @@ ppc_bfd_coff_final_link (abfd, info)
        if (! _bfd_coff_link_input_bfd (&finfo, last_one))
          goto error_return;
       }
-    last_one->output_has_begun = true;
+    last_one->output_has_begun = TRUE;
   }
 #endif
 
   /* Free up the buffers used by _bfd_coff_link_input_bfd.  */
 
   coff_debug_merge_hash_table_free (&finfo.debug_merge);
-  debug_merge_allocated = false;
+  debug_merge_allocated = FALSE;
 
   if (finfo.internal_syms != NULL)
     {
@@ -2659,11 +2659,11 @@ ppc_bfd_coff_final_link (abfd, info)
       pos = obj_sym_filepos (abfd) + finfo.last_file_index * symesz;
       if (bfd_seek (abfd, pos, SEEK_SET) != 0
          || bfd_bwrite (finfo.outsyms, symesz, abfd) != symesz)
-       return false;
+       return FALSE;
     }
 
   /* Write out the global symbols.  */
-  finfo.failed = false;
+  finfo.failed = FALSE;
   coff_link_hash_traverse (coff_hash_table (info), _bfd_coff_write_global_sym,
                           (PTR) &finfo);
   if (finfo.failed)
@@ -2740,7 +2740,7 @@ ppc_bfd_coff_final_link (abfd, info)
   if (coff_hash_table (info)->stab_info != NULL)
     {
       if (! _bfd_write_stab_strings (abfd, &coff_hash_table (info)->stab_info))
-       return false;
+       return FALSE;
     }
 
   /* Write out the string table.  */
@@ -2750,7 +2750,7 @@ ppc_bfd_coff_final_link (abfd, info)
 
       pos = obj_sym_filepos (abfd) + obj_raw_syment_count (abfd) * symesz;
       if (bfd_seek (abfd, pos, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
 #if STRING_SIZE_SIZE == 4
       H_PUT_32 (abfd,
@@ -2762,10 +2762,10 @@ ppc_bfd_coff_final_link (abfd, info)
 
       if (bfd_bwrite (strbuf, (bfd_size_type) STRING_SIZE_SIZE, abfd)
          != STRING_SIZE_SIZE)
-       return false;
+       return FALSE;
 
       if (! _bfd_stringtab_emit (abfd, finfo.strtab))
-       return false;
+       return FALSE;
     }
 
   _bfd_stringtab_free (finfo.strtab);
@@ -2774,7 +2774,7 @@ ppc_bfd_coff_final_link (abfd, info)
      not try to write out the symbols.  */
   bfd_get_symcount (abfd) = 0;
 
-  return true;
+  return TRUE;
 
  error_return:
   if (debug_merge_allocated)
@@ -2812,7 +2812,7 @@ ppc_bfd_coff_final_link (abfd, info)
     free (finfo.internal_relocs);
   if (external_relocs != NULL)
     free (external_relocs);
-  return false;
+  return FALSE;
 }
 #endif
 \f
index ebed743843376a7e4493a1a15c50331f2939bbc1..87b80b6a89401fe58bfc413e5e4eb0b1bc006ead 100644 (file)
@@ -36,29 +36,46 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "libcoff.h"
 #include "libxcoff.h"
 
-extern boolean _bfd_xcoff_mkobject PARAMS ((bfd *));
-extern boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *));
-extern boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *));
+extern bfd_boolean _bfd_xcoff_mkobject
+  PARAMS ((bfd *));
+extern bfd_boolean _bfd_xcoff_copy_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+extern bfd_boolean _bfd_xcoff_is_local_label_name
+  PARAMS ((bfd *, const char *));
 extern reloc_howto_type *_bfd_xcoff_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
-extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *));
-extern const bfd_target *_bfd_xcoff_archive_p PARAMS ((bfd *));
-extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *));
-extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *));
-extern int _bfd_xcoff_stat_arch_elt PARAMS ((bfd *, struct stat *));
-extern boolean _bfd_xcoff_write_armap
+extern bfd_boolean _bfd_xcoff_slurp_armap
+  PARAMS ((bfd *));
+extern const bfd_target *_bfd_xcoff_archive_p
+  PARAMS ((bfd *));
+extern PTR _bfd_xcoff_read_ar_hdr
+  PARAMS ((bfd *));
+extern bfd *_bfd_xcoff_openr_next_archived_file
+  PARAMS ((bfd *, bfd *));
+extern int _bfd_xcoff_stat_arch_elt
+  PARAMS ((bfd *, struct stat *));
+extern bfd_boolean _bfd_xcoff_write_armap
   PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
-extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *));
-extern int _bfd_xcoff_sizeof_headers PARAMS ((bfd *, boolean));
-extern void _bfd_xcoff_swap_sym_in PARAMS ((bfd *, PTR, PTR));
-extern unsigned int _bfd_xcoff_swap_sym_out PARAMS ((bfd *, PTR, PTR));
-extern void _bfd_xcoff_swap_aux_in PARAMS ((bfd *, PTR, int, int, int, int, PTR));
-extern unsigned int _bfd_xcoff_swap_aux_out PARAMS ((bfd *, PTR, int, int, int, int, PTR));
-static void xcoff_swap_reloc_in PARAMS ((bfd *, PTR, PTR));
-static unsigned int xcoff_swap_reloc_out PARAMS ((bfd *, PTR, PTR));
+extern bfd_boolean _bfd_xcoff_write_archive_contents
+  PARAMS ((bfd *));
+extern int _bfd_xcoff_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
+extern void _bfd_xcoff_swap_sym_in
+  PARAMS ((bfd *, PTR, PTR));
+extern unsigned int _bfd_xcoff_swap_sym_out
+  PARAMS ((bfd *, PTR, PTR));
+extern void _bfd_xcoff_swap_aux_in
+  PARAMS ((bfd *, PTR, int, int, int, int, PTR));
+extern unsigned int _bfd_xcoff_swap_aux_out
+  PARAMS ((bfd *, PTR, int, int, int, int, PTR));
+static void xcoff_swap_reloc_in
+  PARAMS ((bfd *, PTR, PTR));
+static unsigned int xcoff_swap_reloc_out
+  PARAMS ((bfd *, PTR, PTR));
 
 /* Forward declare xcoff_rtype2howto for coffcode.h macro.  */
-void xcoff_rtype2howto PARAMS ((arelent *, struct internal_reloc *));
+void xcoff_rtype2howto
+  PARAMS ((arelent *, struct internal_reloc *));
 
 /* coffcode.h needs these to be defined.  */
 #define RS6000COFF_C 1
@@ -82,11 +99,14 @@ void xcoff_rtype2howto PARAMS ((arelent *, struct internal_reloc *));
 #define coff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name
 #define coff_bfd_reloc_type_lookup _bfd_xcoff_reloc_type_lookup
 #ifdef AIX_CORE
-extern const bfd_target * rs6000coff_core_p PARAMS ((bfd *abfd));
-extern boolean rs6000coff_core_file_matches_executable_p
+extern const bfd_target * rs6000coff_core_p
+  PARAMS ((bfd *abfd));
+extern bfd_boolean rs6000coff_core_file_matches_executable_p
   PARAMS ((bfd *cbfd, bfd *ebfd));
-extern char *rs6000coff_core_file_failing_command PARAMS ((bfd *abfd));
-extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd));
+extern char *rs6000coff_core_file_failing_command
+  PARAMS ((bfd *abfd));
+extern int rs6000coff_core_file_failing_signal
+  PARAMS ((bfd *abfd));
 #define CORE_FILE_P rs6000coff_core_p
 #define coff_core_file_failing_command \
   rs6000coff_core_file_failing_command
@@ -115,13 +135,16 @@ extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd));
 
 /* The main body of code is in coffcode.h.  */
 
-static const char *normalize_filename PARAMS ((bfd *));
-static boolean xcoff_write_armap_old
+static const char *normalize_filename
+  PARAMS ((bfd *));
+static bfd_boolean xcoff_write_armap_old
   PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
-static boolean xcoff_write_armap_big
+static bfd_boolean xcoff_write_armap_big
   PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
-static boolean xcoff_write_archive_contents_old PARAMS ((bfd *));
-static boolean xcoff_write_archive_contents_big PARAMS ((bfd *));
+static bfd_boolean xcoff_write_archive_contents_old
+  PARAMS ((bfd *));
+static bfd_boolean xcoff_write_archive_contents_big
+  PARAMS ((bfd *));
 static void xcoff_swap_ldhdr_in
   PARAMS ((bfd *, const PTR, struct internal_ldhdr *));
 static void xcoff_swap_ldhdr_out
@@ -134,39 +157,45 @@ static void xcoff_swap_ldrel_in
   PARAMS ((bfd *, const PTR, struct internal_ldrel *));
 static void xcoff_swap_ldrel_out
   PARAMS ((bfd *, const struct internal_ldrel *, PTR));
-static boolean xcoff_ppc_relocate_section
+static bfd_boolean xcoff_ppc_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
-static boolean _bfd_xcoff_put_ldsymbol_name
+static bfd_boolean _bfd_xcoff_put_ldsymbol_name
   PARAMS ((bfd *, struct xcoff_loader_info *, struct internal_ldsym *,
           const char *));
 static asection *xcoff_create_csect_from_smclas
   PARAMS ((bfd *, union internal_auxent *, const char *));
-static boolean xcoff_is_lineno_count_overflow PARAMS ((bfd *, bfd_vma));
-static boolean xcoff_is_reloc_count_overflow PARAMS ((bfd *, bfd_vma));
+static bfd_boolean xcoff_is_lineno_count_overflow
+  PARAMS ((bfd *, bfd_vma));
+static bfd_boolean xcoff_is_reloc_count_overflow
+  PARAMS ((bfd *, bfd_vma));
 static bfd_vma xcoff_loader_symbol_offset
   PARAMS ((bfd *, struct internal_ldhdr *));
 static bfd_vma xcoff_loader_reloc_offset
   PARAMS ((bfd *, struct internal_ldhdr *));
-static boolean xcoff_generate_rtinit
-  PARAMS ((bfd *, const char *, const char *, boolean));
-static boolean do_pad PARAMS ((bfd *, unsigned int));
-static boolean do_copy PARAMS ((bfd *, bfd *));
-static boolean do_shared_object_padding PARAMS ((bfd *, bfd *, ufile_ptr *, int));
+static bfd_boolean xcoff_generate_rtinit
+  PARAMS ((bfd *, const char *, const char *, bfd_boolean));
+static bfd_boolean do_pad
+  PARAMS ((bfd *, unsigned int));
+static bfd_boolean do_copy
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean do_shared_object_padding
+  PARAMS ((bfd *, bfd *, ufile_ptr *, int));
 
 /* Relocation functions */
-static boolean xcoff_reloc_type_br PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+static bfd_boolean xcoff_reloc_type_br
+  PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
 
-static boolean xcoff_complain_overflow_dont_func
+static bfd_boolean xcoff_complain_overflow_dont_func
   PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS));
-static boolean xcoff_complain_overflow_bitfield_func
+static bfd_boolean xcoff_complain_overflow_bitfield_func
   PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS));
-static boolean xcoff_complain_overflow_signed_func
+static bfd_boolean xcoff_complain_overflow_signed_func
   PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS));
-static boolean xcoff_complain_overflow_unsigned_func
+static bfd_boolean xcoff_complain_overflow_unsigned_func
   PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS));
 
-boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
+bfd_boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
   PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)) =
 {
   xcoff_reloc_type_pos,         /* R_POS   (0x00) */
@@ -199,7 +228,7 @@ boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
   xcoff_reloc_type_ba,  /* R_RBRC  (0x1b) */
 };
 
-boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW])
+bfd_boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW])
   PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS)) =
 {
   xcoff_complain_overflow_dont_func,
@@ -211,7 +240,7 @@ boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW])
 /* We use our own tdata type.  Its first field is the COFF tdata type,
    so the COFF routines are compatible.  */
 
-boolean
+bfd_boolean
 _bfd_xcoff_mkobject (abfd)
      bfd *abfd;
 {
@@ -220,7 +249,7 @@ _bfd_xcoff_mkobject (abfd)
 
   abfd->tdata.xcoff_obj_data = (struct xcoff_tdata *) bfd_zalloc (abfd, amt);
   if (abfd->tdata.xcoff_obj_data == NULL)
-    return false;
+    return FALSE;
   coff = coff_data (abfd);
   coff->symbols = (coff_symbol_type *) NULL;
   coff->conversion_table = (unsigned int *) NULL;
@@ -239,12 +268,12 @@ _bfd_xcoff_mkobject (abfd)
   /* text section alignment is different than the default */
   bfd_xcoff_text_align_power (abfd) = 2;
 
-  return true;
+  return TRUE;
 }
 
 /* Copy XCOFF data from one BFD to another.  */
 
-boolean
+bfd_boolean
 _bfd_xcoff_copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -253,7 +282,7 @@ _bfd_xcoff_copy_private_bfd_data (ibfd, obfd)
   asection *sec;
 
   if (ibfd->xvec != obfd->xvec)
-    return true;
+    return TRUE;
   ix = xcoff_data (ibfd);
   ox = xcoff_data (obfd);
   ox->full_aouthdr = ix->full_aouthdr;
@@ -284,7 +313,7 @@ _bfd_xcoff_copy_private_bfd_data (ibfd, obfd)
   ox->cputype = ix->cputype;
   ox->maxdata = ix->maxdata;
   ox->maxstack = ix->maxstack;
-  return true;
+  return TRUE;
 }
 
 /* I don't think XCOFF really has a notion of local labels based on
@@ -292,12 +321,12 @@ _bfd_xcoff_copy_private_bfd_data (ibfd, obfd)
    The AIX native linker does not have a -X option, and it ignores the
    -x option.  */
 
-boolean
+bfd_boolean
 _bfd_xcoff_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name ATTRIBUTE_UNUSED;
 {
-  return false;
+  return FALSE;
 }
 \f
 void
@@ -468,7 +497,8 @@ _bfd_xcoff_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
 }
 
 
-unsigned int _bfd_xcoff_swap_aux_out PARAMS ((bfd *, PTR, int, int, int, int, PTR));
+unsigned int _bfd_xcoff_swap_aux_out
+  PARAMS ((bfd *, PTR, int, int, int, int, PTR));
 
 unsigned int
 _bfd_xcoff_swap_aux_out (abfd, inp, type, class, indx, numaux, extp)
@@ -582,105 +612,105 @@ reloc_howto_type xcoff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_POS",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit relocation, but store negative value.  */
   HOWTO (R_NEG,                        /* type */
         0,                     /* rightshift */
         -2,                    /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_NEG",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit PC relative relocation.  */
   HOWTO (R_REL,                        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_REL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit TOC relative relocation.  */
   HOWTO (R_TOC,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TOC",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* I don't really know what this is.  */
   HOWTO (R_RTB,                        /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RTB",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* External TOC relative symbol.  */
   HOWTO (R_GL,                 /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_GL",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Local TOC relative symbol.         */
   HOWTO (R_TCL,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TCL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (7),
 
@@ -689,15 +719,15 @@ reloc_howto_type xcoff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_BA_26",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03fffffc,            /* src_mask */
         0x03fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (9),
 
@@ -706,15 +736,15 @@ reloc_howto_type xcoff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_BR",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03fffffc,            /* src_mask */
         0x03fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (0xb),
 
@@ -723,30 +753,30 @@ reloc_howto_type xcoff_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RL",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Load address.  */
   HOWTO (R_RLA,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RLA",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (0xe),
 
@@ -755,15 +785,15 @@ reloc_howto_type xcoff_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "R_REF",               /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (0x10),
   EMPTY_HOWTO (0x11),
@@ -773,195 +803,195 @@ reloc_howto_type xcoff_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TRL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* TOC relative load address.  */
   HOWTO (R_TRLA,               /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TRLA",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable relative branch.  */
   HOWTO (R_RRTBI,               /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RRTBI",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable absolute branch.  */
   HOWTO (R_RRTBA,               /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RRTBA",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable call absolute indirect.  */
   HOWTO (R_CAI,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_CAI",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable call relative.  */
   HOWTO (R_CREL,               /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_CREL",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (R_RBA,                        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBA",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03fffffc,            /* src_mask */
         0x03fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (R_RBAC,               /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBAC",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch relative.  */
   HOWTO (R_RBR,                        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBR_26",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03fffffc,            /* src_mask */
         0x03fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (R_RBRC,               /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBRC",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit Non modifiable absolute branch.  */
   HOWTO (R_BA,                 /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_BA_16",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xfffc,                /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch relative.  */
   HOWTO (R_RBR,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBR_16",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch relative.  */
   HOWTO (R_RBA,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBA_16",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 };
 
@@ -1069,19 +1099,19 @@ _bfd_xcoff_reloc_type_lookup (abfd, code)
 
 /* Set the magic for archive.  */
 
-boolean
+bfd_boolean
 bfd_xcoff_ar_archive_set_magic (abfd, magic)
      bfd *abfd ATTRIBUTE_UNUSED;
      char *magic ATTRIBUTE_UNUSED;
 {
   /* Not supported yet.  */
-  return false;
+  return FALSE;
  /* bfd_xcoff_archive_set_magic (abfd, magic); */
 }
 
 /* Read in the armap of an XCOFF archive.  */
 
-boolean
+bfd_boolean
 _bfd_xcoff_slurp_armap (abfd)
      bfd *abfd;
 {
@@ -1095,8 +1125,8 @@ _bfd_xcoff_slurp_armap (abfd)
 
   if (xcoff_ardata (abfd) == NULL)
     {
-      bfd_has_map (abfd) = false;
-      return true;
+      bfd_has_map (abfd) = FALSE;
+      return TRUE;
     }
 
   if (! xcoff_big_format_p (abfd))
@@ -1107,32 +1137,32 @@ _bfd_xcoff_slurp_armap (abfd)
       off = strtol (xcoff_ardata (abfd)->symoff, (char **) NULL, 10);
       if (off == 0)
        {
-         bfd_has_map (abfd) = false;
-         return true;
+         bfd_has_map (abfd) = FALSE;
+         return TRUE;
        }
 
       if (bfd_seek (abfd, off, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       /* The symbol table starts with a normal archive header.  */
       if (bfd_bread ((PTR) &hdr, (bfd_size_type) SIZEOF_AR_HDR, abfd)
          != SIZEOF_AR_HDR)
-       return false;
+       return FALSE;
 
       /* Skip the name (normally empty).  */
       namlen = strtol (hdr.namlen, (char **) NULL, 10);
       off = ((namlen + 1) & ~ (size_t) 1) + SXCOFFARFMAG;
       if (bfd_seek (abfd, off, SEEK_CUR) != 0)
-       return false;
+       return FALSE;
 
       sz = strtol (hdr.size, (char **) NULL, 10);
 
       /* Read in the entire symbol table.  */
       contents = (bfd_byte *) bfd_alloc (abfd, sz);
       if (contents == NULL)
-       return false;
+       return FALSE;
       if (bfd_bread ((PTR) contents, sz, abfd) != sz)
-       return false;
+       return FALSE;
 
       /* The symbol table starts with a four byte count.  */
       c = H_GET_32 (abfd, contents);
@@ -1140,13 +1170,13 @@ _bfd_xcoff_slurp_armap (abfd)
       if (c * 4 >= sz)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       bfd_ardata (abfd)->symdefs =
        ((carsym *) bfd_alloc (abfd, c * sizeof (carsym)));
       if (bfd_ardata (abfd)->symdefs == NULL)
-       return false;
+       return FALSE;
 
       /* After the count comes a list of four byte file offsets.  */
       for (i = 0, arsym = bfd_ardata (abfd)->symdefs, p = contents + 4;
@@ -1162,23 +1192,23 @@ _bfd_xcoff_slurp_armap (abfd)
       off = strtol (xcoff_ardata_big (abfd)->symoff, (char **) NULL, 10);
       if (off == 0)
        {
-         bfd_has_map (abfd) = false;
-         return true;
+         bfd_has_map (abfd) = FALSE;
+         return TRUE;
        }
 
       if (bfd_seek (abfd, off, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       /* The symbol table starts with a normal archive header.  */
       if (bfd_bread ((PTR) &hdr, (bfd_size_type) SIZEOF_AR_HDR_BIG, abfd)
          != SIZEOF_AR_HDR_BIG)
-       return false;
+       return FALSE;
 
       /* Skip the name (normally empty).  */
       namlen = strtol (hdr.namlen, (char **) NULL, 10);
       off = ((namlen + 1) & ~ (size_t) 1) + SXCOFFARFMAG;
       if (bfd_seek (abfd, off, SEEK_CUR) != 0)
-       return false;
+       return FALSE;
 
       /* XXX This actually has to be a call to strtoll (at least on 32-bit
         machines) since the field width is 20 and there numbers with more
@@ -1188,9 +1218,9 @@ _bfd_xcoff_slurp_armap (abfd)
       /* Read in the entire symbol table.  */
       contents = (bfd_byte *) bfd_alloc (abfd, sz);
       if (contents == NULL)
-       return false;
+       return FALSE;
       if (bfd_bread ((PTR) contents, sz, abfd) != sz)
-       return false;
+       return FALSE;
 
       /* The symbol table starts with an eight byte count.  */
       c = H_GET_64 (abfd, contents);
@@ -1198,13 +1228,13 @@ _bfd_xcoff_slurp_armap (abfd)
       if (c * 8 >= sz)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       bfd_ardata (abfd)->symdefs =
        ((carsym *) bfd_alloc (abfd, c * sizeof (carsym)));
       if (bfd_ardata (abfd)->symdefs == NULL)
-       return false;
+       return FALSE;
 
       /* After the count comes a list of eight byte file offsets.  */
       for (i = 0, arsym = bfd_ardata (abfd)->symdefs, p = contents + 8;
@@ -1222,15 +1252,15 @@ _bfd_xcoff_slurp_armap (abfd)
       if (p >= cend)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       arsym->name = (char *) p;
     }
 
   bfd_ardata (abfd)->symdef_count = c;
-  bfd_has_map (abfd) = true;
+  bfd_has_map (abfd) = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* See if this is an XCOFF archive.  */
@@ -1546,7 +1576,7 @@ normalize_filename (abfd)
 /* Write out an XCOFF armap.  */
 
 /*ARGSUSED*/
-static boolean
+static bfd_boolean
 xcoff_write_armap_old (abfd, elength, map, orl_count, stridx)
      bfd *abfd;
      unsigned int elength ATTRIBUTE_UNUSED;
@@ -1580,11 +1610,11 @@ xcoff_write_armap_old (abfd, elength, map, orl_count, stridx)
       != SIZEOF_AR_HDR
       || (bfd_bwrite (XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG, abfd)
          != SXCOFFARFMAG))
-    return false;
+    return FALSE;
 
   H_PUT_32 (abfd, orl_count, buf);
   if (bfd_bwrite (buf, (bfd_size_type) 4, abfd) != 4)
-    return false;
+    return FALSE;
 
   sub = abfd->archive_head;
   fileoff = SIZEOF_AR_FILE_HDR;
@@ -1597,7 +1627,7 @@ xcoff_write_armap_old (abfd, elength, map, orl_count, stridx)
        {
          H_PUT_32 (abfd, fileoff, buf);
          if (bfd_bwrite (buf, (bfd_size_type) 4, abfd) != 4)
-           return false;
+           return FALSE;
          ++i;
        }
       namlen = strlen (normalize_filename (sub));
@@ -1618,7 +1648,7 @@ xcoff_write_armap_old (abfd, elength, map, orl_count, stridx)
       name = *map[i].name;
       namlen = strlen (name);
       if (bfd_bwrite (name, (bfd_size_type) (namlen + 1), abfd) != namlen + 1)
-       return false;
+       return FALSE;
     }
 
   if ((stridx & 1) != 0)
@@ -1627,10 +1657,10 @@ xcoff_write_armap_old (abfd, elength, map, orl_count, stridx)
 
       b = '\0';
       if (bfd_bwrite (&b, (bfd_size_type) 1, abfd) != 1)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 static char buff20[XCOFFARMAGBIG_ELEMENT_SIZE + 1];
@@ -1659,7 +1689,7 @@ static char buff20[XCOFFARMAGBIG_ELEMENT_SIZE + 1];
   memcpy (buff20, (d), 20), \
   (v) = bfd_scan_vma (buff20, (const char **) NULL, 10)
 
-static boolean
+static bfd_boolean
 do_pad (abfd, number)
      bfd *abfd;
      unsigned int number;
@@ -1668,16 +1698,16 @@ do_pad (abfd, number)
 
   /* Limit pad to <= 4096.  */
   if (number > 4096)
-    return false;
+    return FALSE;
 
   while (number--)
     if (bfd_bwrite (&b, (bfd_size_type) 1, abfd) != 1)
-      return false;
+      return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 do_copy (out_bfd, in_bfd)
      bfd *out_bfd;
      bfd *in_bfd;
@@ -1686,7 +1716,7 @@ do_copy (out_bfd, in_bfd)
   bfd_byte buffer[DEFAULT_BUFFERSIZE];
 
   if (bfd_seek (in_bfd, (file_ptr) 0, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   remaining = arelt_size (in_bfd);
 
@@ -1694,7 +1724,7 @@ do_copy (out_bfd, in_bfd)
     {
       if (bfd_bread (buffer, DEFAULT_BUFFERSIZE, in_bfd) != DEFAULT_BUFFERSIZE
          || bfd_bwrite (buffer, DEFAULT_BUFFERSIZE, out_bfd) != DEFAULT_BUFFERSIZE)
-       return false;
+       return FALSE;
 
       remaining -= DEFAULT_BUFFERSIZE;
     }
@@ -1703,13 +1733,13 @@ do_copy (out_bfd, in_bfd)
     {
       if (bfd_bread (buffer, remaining, in_bfd) != remaining
          || bfd_bwrite (buffer, remaining, out_bfd) != remaining)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 do_shared_object_padding (out_bfd, in_bfd, offset, ar_header_size)
      bfd *out_bfd;
      bfd *in_bfd;
@@ -1729,15 +1759,15 @@ do_shared_object_padding (out_bfd, in_bfd, offset, ar_header_size)
       pad -= (*offset + ar_header_size) & (pad - 1);
 
       if (! do_pad (out_bfd, pad))
-       return false;
+       return FALSE;
 
       *offset += pad;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
      bfd *abfd;
      unsigned int elength ATTRIBUTE_UNUSED;
@@ -1834,7 +1864,7 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
       symbol_table = NULL;
       symbol_table = (bfd_byte *) bfd_zmalloc (symbol_table_size);
       if (symbol_table == NULL)
-       return false;
+       return FALSE;
 
       hdr = (struct xcoff_ar_hdr_big *) symbol_table;
 
@@ -1937,7 +1967,7 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
       symbol_table = NULL;
       symbol_table = (bfd_byte *) bfd_zmalloc (symbol_table_size);
       if (symbol_table == NULL)
-       return false;
+       return FALSE;
 
       hdr = (struct xcoff_ar_hdr_big *) symbol_table;
 
@@ -2017,10 +2047,10 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
   else
     PRINT20 (fhdr->symoff64, 0);
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 _bfd_xcoff_write_armap (abfd, elength, map, orl_count, stridx)
      bfd *abfd;
      unsigned int elength ATTRIBUTE_UNUSED;
@@ -2037,7 +2067,7 @@ _bfd_xcoff_write_armap (abfd, elength, map, orl_count, stridx)
 /* Write out an XCOFF archive.  We always write an entire archive,
    rather than fussing with the freelist and so forth.  */
 
-static boolean
+static bfd_boolean
 xcoff_write_archive_contents_old (abfd)
      bfd *abfd;
 {
@@ -2045,8 +2075,8 @@ xcoff_write_archive_contents_old (abfd)
   bfd_size_type count;
   bfd_size_type total_namlen;
   file_ptr *offsets;
-  boolean makemap;
-  boolean hasobjects;
+  bfd_boolean makemap;
+  bfd_boolean hasobjects;
   ufile_ptr prevoff, nextoff;
   bfd *sub;
   size_t i;
@@ -2069,13 +2099,13 @@ xcoff_write_archive_contents_old (abfd)
     }
   offsets = (file_ptr *) bfd_alloc (abfd, count * sizeof (file_ptr));
   if (offsets == NULL)
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, (file_ptr) SIZEOF_AR_FILE_HDR, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   makemap = bfd_has_map (abfd);
-  hasobjects = false;
+  hasobjects = FALSE;
   prevoff = 0;
   nextoff = SIZEOF_AR_FILE_HDR;
   for (sub = abfd->archive_head, i = 0; sub != NULL; sub = sub->next, i++)
@@ -2088,7 +2118,7 @@ xcoff_write_archive_contents_old (abfd)
       if (makemap && ! hasobjects)
        {
          if (bfd_check_format (sub, bfd_object))
-           hasobjects = true;
+           hasobjects = TRUE;
        }
 
       name = normalize_filename (sub);
@@ -2108,7 +2138,7 @@ xcoff_write_archive_contents_old (abfd)
          if (stat (bfd_get_filename (sub), &s) != 0)
            {
              bfd_set_error (bfd_error_system_call);
-             return false;
+             return FALSE;
            }
 
          sprintf (ahdrp->size, "%ld", (long) s.st_size);
@@ -2122,7 +2152,7 @@ xcoff_write_archive_contents_old (abfd)
              size = sizeof (struct areltdata);
              sub->arelt_data = bfd_alloc (sub, size);
              if (sub->arelt_data == NULL)
-               return false;
+               return FALSE;
            }
 
          arch_eltdata (sub)->parsed_size = s.st_size;
@@ -2157,19 +2187,19 @@ xcoff_write_archive_contents_old (abfd)
 
       if ((bfd_bwrite ((PTR) ahdrp, (bfd_size_type) SIZEOF_AR_HDR, abfd)
           != SIZEOF_AR_HDR)
-         || (bfd_bwrite ((PTR) name, namlen, abfd) != namlen)
-         || (bfd_bwrite ((PTR) XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG, abfd)
-             != SXCOFFARFMAG))
-       return false;
+         || bfd_bwrite ((PTR) name, namlen, abfd) != namlen
+         || bfd_bwrite ((PTR) XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG,
+                        abfd) != SXCOFFARFMAG)
+       return FALSE;
 
       if (bfd_seek (sub, (file_ptr) 0, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       if (! do_copy (abfd, sub))
-       return false;
+       return FALSE;
 
       if (! do_pad (abfd, size & 1))
-       return false;
+       return FALSE;
     }
 
   sprintf (fhdr.lastmemoff, "%ld", (long) prevoff);
@@ -2213,18 +2243,18 @@ xcoff_write_archive_contents_old (abfd)
        != SIZEOF_AR_HDR)
       || (bfd_bwrite ((PTR) XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG, abfd)
          != SXCOFFARFMAG))
-    return false;
+    return FALSE;
 
   sprintf (decbuf, "%-12ld", (long) count);
   if (bfd_bwrite ((PTR) decbuf, (bfd_size_type) XCOFFARMAG_ELEMENT_SIZE, abfd)
       != XCOFFARMAG_ELEMENT_SIZE)
-    return false;
+    return FALSE;
   for (i = 0; i < (size_t) count; i++)
     {
       sprintf (decbuf, "%-12ld", (long) offsets[i]);
       if (bfd_bwrite ((PTR) decbuf, (bfd_size_type) XCOFFARMAG_ELEMENT_SIZE,
                      abfd) != XCOFFARMAG_ELEMENT_SIZE)
-       return false;
+       return FALSE;
     }
   for (sub = abfd->archive_head; sub != NULL; sub = sub->next)
     {
@@ -2234,11 +2264,11 @@ xcoff_write_archive_contents_old (abfd)
       name = normalize_filename (sub);
       namlen = strlen (name);
       if (bfd_bwrite ((PTR) name, namlen + 1, abfd) != namlen + 1)
-       return false;
+       return FALSE;
     }
 
   if (! do_pad (abfd, size & 1))
-    return false;
+    return FALSE;
 
   /* Write out the armap, if appropriate.  */
   if (! makemap || ! hasobjects)
@@ -2249,7 +2279,7 @@ xcoff_write_archive_contents_old (abfd)
       sprintf (fhdr.symoff, "%ld", (long) nextoff);
       bfd_ardata (abfd)->tdata = (PTR) &fhdr;
       if (! _bfd_compute_and_write_armap (abfd, 0))
-       return false;
+       return FALSE;
     }
 
   /* Write out the archive file header.  */
@@ -2262,12 +2292,12 @@ xcoff_write_archive_contents_old (abfd)
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0
       || (bfd_bwrite ((PTR) &fhdr, (bfd_size_type) SIZEOF_AR_FILE_HDR, abfd)
          != SIZEOF_AR_FILE_HDR))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 xcoff_write_archive_contents_big (abfd)
      bfd *abfd;
 {
@@ -2275,8 +2305,8 @@ xcoff_write_archive_contents_big (abfd)
   bfd_size_type count;
   bfd_size_type total_namlen;
   file_ptr *offsets;
-  boolean makemap;
-  boolean hasobjects;
+  bfd_boolean makemap;
+  bfd_boolean hasobjects;
   ufile_ptr prevoff, nextoff;
   bfd *current_bfd;
   size_t i;
@@ -2289,11 +2319,11 @@ xcoff_write_archive_contents_big (abfd)
   memcpy (fhdr.magic, XCOFFARMAGBIG, SXCOFFARMAG);
 
   if (bfd_seek (abfd, (file_ptr) SIZEOF_AR_FILE_HDR_BIG, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   /* Calculate count and total_namlen.  */
   makemap = bfd_has_map (abfd);
-  hasobjects = false;
+  hasobjects = FALSE;
   for (current_bfd = abfd->archive_head, count = 0, total_namlen = 0;
        current_bfd != NULL;
        current_bfd = current_bfd->next, count++)
@@ -2303,7 +2333,7 @@ xcoff_write_archive_contents_big (abfd)
       if (makemap
          && ! hasobjects
          && bfd_check_format (current_bfd, bfd_object))
-       hasobjects = true;
+       hasobjects = TRUE;
     }
 
   offsets = NULL;
@@ -2311,7 +2341,7 @@ xcoff_write_archive_contents_big (abfd)
     {
       offsets = (file_ptr *) bfd_malloc (count * sizeof (file_ptr));
       if (offsets == NULL)
-       return false;
+       return FALSE;
     }
 
   prevoff = 0;
@@ -2344,7 +2374,7 @@ xcoff_write_archive_contents_big (abfd)
          if (stat (bfd_get_filename (current_bfd), &s) != 0)
            {
              bfd_set_error (bfd_error_system_call);
-             return false;
+             return FALSE;
            }
 
          PRINT20 (ahdrp->size, s.st_size);
@@ -2358,7 +2388,7 @@ xcoff_write_archive_contents_big (abfd)
              size = sizeof (struct areltdata);
              current_bfd->arelt_data = bfd_alloc (current_bfd, size);
              if (current_bfd->arelt_data == NULL)
-               return false;
+               return FALSE;
            }
 
          arch_eltdata (current_bfd)->parsed_size = s.st_size;
@@ -2385,7 +2415,7 @@ xcoff_write_archive_contents_big (abfd)
       if (! do_shared_object_padding (abfd, current_bfd, & nextoff,
                                      SIZEOF_AR_HDR_BIG + namlen
                                      + SXCOFFARFMAG))
-       return false;
+       return FALSE;
 
       offsets[i] = nextoff;
 
@@ -2399,16 +2429,16 @@ xcoff_write_archive_contents_big (abfd)
          || bfd_bwrite ((PTR) name, (bfd_size_type) namlen, abfd) != namlen
          || (bfd_bwrite ((PTR) XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG,
                          abfd) != SXCOFFARFMAG))
-       return false;
+       return FALSE;
 
       if (bfd_seek (current_bfd, (file_ptr) 0, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       if (! do_copy (abfd, current_bfd))
-       return false;
+       return FALSE;
 
       if (! do_pad (abfd, size & 1))
-       return false;
+       return FALSE;
     }
 
   if (count)
@@ -2450,7 +2480,7 @@ xcoff_write_archive_contents_big (abfd)
   member_table = NULL;
   member_table = (bfd_byte *) bfd_zmalloc (member_table_size);
   if (member_table == NULL)
-    return false;
+    return FALSE;
 
   hdr = (struct xcoff_ar_hdr_big *) member_table;
 
@@ -2498,7 +2528,7 @@ xcoff_write_archive_contents_big (abfd)
     }
 
   if (bfd_bwrite (member_table, member_table_size, abfd) != member_table_size)
-    return false;
+    return FALSE;
 
   free (member_table);
   member_table = NULL;
@@ -2521,7 +2551,7 @@ xcoff_write_archive_contents_big (abfd)
 
       bfd_ardata (abfd)->tdata = (PTR) &fhdr;
       if (! _bfd_compute_and_write_armap (abfd, 0))
-       return false;
+       return FALSE;
     }
 
   /* Write out the archive file header.  */
@@ -2529,12 +2559,12 @@ xcoff_write_archive_contents_big (abfd)
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0
       || (bfd_bwrite ((PTR) &fhdr, (bfd_size_type) SIZEOF_AR_FILE_HDR_BIG,
                      abfd) != SIZEOF_AR_FILE_HDR_BIG))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 _bfd_xcoff_write_archive_contents (abfd)
      bfd *abfd;
 {
@@ -2550,7 +2580,7 @@ _bfd_xcoff_write_archive_contents (abfd)
 int
 _bfd_xcoff_sizeof_headers (abfd, reloc)
      bfd *abfd;
-     boolean reloc ATTRIBUTE_UNUSED;
+     bfd_boolean reloc ATTRIBUTE_UNUSED;
 {
   int size;
 
@@ -2725,7 +2755,7 @@ xcoff_swap_ldrel_out (abfd, src, d)
 }
 \f
 
-boolean
+bfd_boolean
 xcoff_reloc_type_noop (input_bfd, input_section, output_bfd, rel, sym, howto,
                       val, addend, relocation, contents)
      bfd *input_bfd ATTRIBUTE_UNUSED;
@@ -2739,10 +2769,10 @@ xcoff_reloc_type_noop (input_bfd, input_section, output_bfd, rel, sym, howto,
      bfd_vma *relocation ATTRIBUTE_UNUSED;
      bfd_byte *contents ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 xcoff_reloc_type_fail (input_bfd, input_section, output_bfd, rel, sym, howto,
                       val, addend, relocation, contents)
      bfd *input_bfd;
@@ -2760,10 +2790,10 @@ xcoff_reloc_type_fail (input_bfd, input_section, output_bfd, rel, sym, howto,
     (_("%s: unsupported relocation type 0x%02x"),
      bfd_get_filename (input_bfd), (unsigned int) rel->r_type);
   bfd_set_error (bfd_error_bad_value);
-  return false;
+  return FALSE;
 }
 
-boolean
+bfd_boolean
 xcoff_reloc_type_pos (input_bfd, input_section, output_bfd, rel, sym, howto,
                      val, addend, relocation, contents)
      bfd *input_bfd ATTRIBUTE_UNUSED;
@@ -2778,10 +2808,10 @@ xcoff_reloc_type_pos (input_bfd, input_section, output_bfd, rel, sym, howto,
      bfd_byte *contents ATTRIBUTE_UNUSED;
 {
   *relocation = val + addend;
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 xcoff_reloc_type_neg (input_bfd, input_section, output_bfd, rel, sym, howto,
                      val, addend, relocation, contents)
      bfd *input_bfd ATTRIBUTE_UNUSED;
@@ -2796,10 +2826,10 @@ xcoff_reloc_type_neg (input_bfd, input_section, output_bfd, rel, sym, howto,
      bfd_byte *contents ATTRIBUTE_UNUSED;
 {
   *relocation = addend - val;
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 xcoff_reloc_type_rel (input_bfd, input_section, output_bfd, rel, sym, howto,
                      val, addend, relocation, contents)
      bfd *input_bfd ATTRIBUTE_UNUSED;
@@ -2813,7 +2843,7 @@ xcoff_reloc_type_rel (input_bfd, input_section, output_bfd, rel, sym, howto,
      bfd_vma *relocation;
      bfd_byte *contents ATTRIBUTE_UNUSED;
 {
-  howto->pc_relative = true;
+  howto->pc_relative = TRUE;
 
   /* A PC relative reloc includes the section address.  */
   addend += input_section->vma;
@@ -2821,10 +2851,10 @@ xcoff_reloc_type_rel (input_bfd, input_section, output_bfd, rel, sym, howto,
   *relocation = val + addend;
   *relocation -= (input_section->output_section->vma
                  + input_section->output_offset);
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 xcoff_reloc_type_toc (input_bfd, input_section, output_bfd, rel, sym, howto,
                      val, addend, relocation, contents)
      bfd *input_bfd;
@@ -2841,7 +2871,7 @@ xcoff_reloc_type_toc (input_bfd, input_section, output_bfd, rel, sym, howto,
   struct xcoff_link_hash_entry *h;
 
   if (0 > rel->r_symndx)
-    return false;
+    return FALSE;
 
   h = obj_xcoff_sym_hashes (input_bfd)[rel->r_symndx];
 
@@ -2854,7 +2884,7 @@ xcoff_reloc_type_toc (input_bfd, input_section, output_bfd, rel, sym, howto,
             bfd_get_filename (input_bfd), rel->r_vaddr,
             h->root.root.string);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       BFD_ASSERT ((h->flags & XCOFF_SET_TOC) == 0);
@@ -2864,10 +2894,10 @@ xcoff_reloc_type_toc (input_bfd, input_section, output_bfd, rel, sym, howto,
 
   *relocation = ((val - xcoff_data (output_bfd)->toc)
                 - (sym->n_value - xcoff_data (input_bfd)->toc));
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 xcoff_reloc_type_ba (input_bfd, input_section, output_bfd, rel, sym, howto,
                     val, addend, relocation, contents)
      bfd *input_bfd ATTRIBUTE_UNUSED;
@@ -2886,10 +2916,10 @@ xcoff_reloc_type_ba (input_bfd, input_section, output_bfd, rel, sym, howto,
 
   *relocation = val + addend;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 xcoff_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
                     val, addend, relocation, contents)
      bfd *input_bfd;
@@ -2906,7 +2936,7 @@ xcoff_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
   struct xcoff_link_hash_entry *h;
 
   if (0 > rel->r_symndx)
-    return false;
+    return FALSE;
 
   h = obj_xcoff_sym_hashes (input_bfd)[rel->r_symndx];
 
@@ -2956,7 +2986,7 @@ xcoff_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
       howto->complain_on_overflow = complain_overflow_dont;
     }
 
-  howto->pc_relative = true;
+  howto->pc_relative = TRUE;
   howto->src_mask &= ~3;
   howto->dst_mask = howto->src_mask;
 
@@ -2966,10 +2996,10 @@ xcoff_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
   *relocation = val + addend;
   *relocation -= (input_section->output_section->vma
                  + input_section->output_offset);
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 xcoff_reloc_type_crel (input_bfd, input_section, output_bfd, rel, sym, howto,
                       val, addend, relocation, contents)
      bfd *input_bfd ATTRIBUTE_UNUSED;
@@ -2983,7 +3013,7 @@ xcoff_reloc_type_crel (input_bfd, input_section, output_bfd, rel, sym, howto,
      bfd_vma *relocation;
      bfd_byte *contents ATTRIBUTE_UNUSED;
 {
-  howto->pc_relative = true;
+  howto->pc_relative = TRUE;
   howto->src_mask &= ~3;
   howto->dst_mask = howto->src_mask;
 
@@ -2993,20 +3023,20 @@ xcoff_reloc_type_crel (input_bfd, input_section, output_bfd, rel, sym, howto,
   *relocation = val + addend;
   *relocation -= (input_section->output_section->vma
                  + input_section->output_offset);
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 xcoff_complain_overflow_dont_func (input_bfd, val, relocation, howto)
      bfd *input_bfd ATTRIBUTE_UNUSED;
      bfd_vma val ATTRIBUTE_UNUSED;
      bfd_vma relocation ATTRIBUTE_UNUSED;
      struct reloc_howto_struct *howto ATTRIBUTE_UNUSED;
 {
-  return false;
+  return FALSE;
 }
 
-static boolean
+static bfd_boolean
 xcoff_complain_overflow_bitfield_func (input_bfd, val, relocation, howto)
      bfd *input_bfd;
      bfd_vma val;
@@ -3054,7 +3084,7 @@ xcoff_complain_overflow_bitfield_func (input_bfd, val, relocation, howto)
         ones, we are OK, assuming a signed bitfield.  */
       ss = (signmask << howto->rightshift) - 1;
       if ((ss | relocation) != ~ (bfd_vma) 0)
-       return true;
+       return TRUE;
       a &= fieldmask;
     }
 
@@ -3067,7 +3097,7 @@ xcoff_complain_overflow_bitfield_func (input_bfd, val, relocation, howto)
      away from the location at which it is linked.  */
   if (howto->bitsize + howto->rightshift
       == bfd_arch_bits_per_address (input_bfd))
-    return false;
+    return FALSE;
 
   sum = a + b;
   if (sum < a || (sum & ~ fieldmask) != 0)
@@ -3076,13 +3106,13 @@ xcoff_complain_overflow_bitfield_func (input_bfd, val, relocation, howto)
         for signed operands again.  Here is the overflow test
         is as for complain_overflow_signed.  */
       if (((~ (a ^ b)) & (a ^ sum)) & signmask)
-       return true;
+       return TRUE;
     }
 
-  return false;
+  return FALSE;
 }
 
-static boolean
+static bfd_boolean
 xcoff_complain_overflow_signed_func (input_bfd, val, relocation, howto)
      bfd *input_bfd;
      bfd_vma val;
@@ -3109,7 +3139,7 @@ xcoff_complain_overflow_signed_func (input_bfd, val, relocation, howto)
   signmask = ~ (fieldmask >> 1);
   ss = a & signmask;
   if (ss != 0 && ss != ((addrmask >> howto->rightshift) & signmask))
-    return true;
+    return TRUE;
 
   /* We only need this next bit of code if the sign bit of B
      is below the sign bit of A.  This would only happen if
@@ -3139,12 +3169,12 @@ xcoff_complain_overflow_signed_func (input_bfd, val, relocation, howto)
   */
   signmask = (fieldmask >> 1) + 1;
   if (((~ (a ^ b)) & (a ^ sum)) & signmask)
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
-static boolean
+static bfd_boolean
 xcoff_complain_overflow_unsigned_func (input_bfd, val, relocation, howto)
      bfd *input_bfd;
      bfd_vma val;
@@ -3178,9 +3208,9 @@ xcoff_complain_overflow_unsigned_func (input_bfd, val, relocation, howto)
   b = (b & addrmask) >> howto->bitpos;
   sum = (a + b) & addrmask;
   if ((a | b | sum) & ~ fieldmask)
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 /* This is the relocation function for the RS/6000/POWER/PowerPC.
@@ -3296,7 +3326,7 @@ xcoff_complain_overflow_unsigned_func (input_bfd, val, relocation, howto)
    this is the same as R_POS.
 */
 
-boolean
+bfd_boolean
 xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
                            input_section, contents, relocs, syms,
                            sections)
@@ -3338,16 +3368,16 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
       howto.rightshift = 0;
       howto.bitsize = (rel->r_size & 0x1f) + 1;
       howto.size = howto.bitsize > 16 ? 2 : 1;
-      howto.pc_relative = false;
+      howto.pc_relative = FALSE;
       howto.bitpos = 0;
       howto.complain_on_overflow = (rel->r_size & 0x80
                                    ? complain_overflow_signed
                                    : complain_overflow_bitfield);
       howto.special_function = NULL;
       howto.name = "internal";
-      howto.partial_inplace = true;
+      howto.partial_inplace = TRUE;
       howto.src_mask = howto.dst_mask = N_ONES (howto.bitsize);
-      howto.pcrel_offset = false;
+      howto.pcrel_offset = FALSE;
 
       /* symbol */
       val = 0;
@@ -3400,8 +3430,8 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
                {
                  if (! ((*info->callbacks->undefined_symbol)
                         (info, h->root.root.string, input_bfd, input_section,
-                         rel->r_vaddr - input_section->vma, true)))
-                   return false;
+                         rel->r_vaddr - input_section->vma, TRUE)))
+                   return FALSE;
 
                  /* Don't try to process the reloc.  It can't help, and
                     it may generate another error.  */
@@ -3414,7 +3444,7 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
          || !((*xcoff_calculate_relocation[rel->r_type])
               (input_bfd, input_section, output_bfd, rel, sym, &howto, val,
                addend, &relocation, contents)))
-       return false;
+       return FALSE;
 
       /* address */
       address = rel->r_vaddr - input_section->vma;
@@ -3466,7 +3496,7 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
          if (! ((*info->callbacks->reloc_overflow)
                 (info, name, reloc_type_name, (bfd_vma) 0, input_bfd,
                  input_section, rel->r_vaddr - input_section->vma)))
-           return false;
+           return FALSE;
        }
 
       /* Add RELOCATION to the right bits of VALUE_TO_RELOCATE.  */
@@ -3481,10 +3511,10 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
        bfd_put_32 (input_bfd, value_to_relocate, location);
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 _bfd_xcoff_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
      bfd *abfd ATTRIBUTE_UNUSED;
         struct xcoff_loader_info *ldinfo;
@@ -3513,8 +3543,8 @@ _bfd_xcoff_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
                        bfd_realloc ((PTR) ldinfo->strings, newalc));
          if (newstrings == NULL)
            {
-             ldinfo->failed = true;
-             return false;
+             ldinfo->failed = TRUE;
+             return FALSE;
            }
          ldinfo->string_alc = newalc;
          ldinfo->strings = newstrings;
@@ -3528,10 +3558,10 @@ _bfd_xcoff_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
       ldinfo->string_size += len + 3;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 _bfd_xcoff_put_symbol_name (bfd *abfd, struct bfd_strtab_hash *strtab,
                            struct internal_syment *sym,
                            const char *name)
@@ -3542,19 +3572,19 @@ _bfd_xcoff_put_symbol_name (bfd *abfd, struct bfd_strtab_hash *strtab,
     }
   else
     {
-      boolean hash;
+      bfd_boolean hash;
       bfd_size_type indx;
 
-      hash = true;
+      hash = TRUE;
       if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
-       hash = false;
-      indx = _bfd_stringtab_add (strtab, name, hash, false);
+       hash = FALSE;
+      indx = _bfd_stringtab_add (strtab, name, hash, FALSE);
       if (indx == (bfd_size_type) -1)
-       return false;
+       return FALSE;
       sym->_n._n_n._n_zeroes = 0;
       sym->_n._n_n._n_offset = STRING_SIZE_SIZE + indx;
     }
-  return true;
+  return TRUE;
 }
 
 static asection *
@@ -3591,26 +3621,26 @@ xcoff_create_csect_from_smclas (abfd, aux, symbol_name)
   return return_value;
 }
 
-static boolean
+static bfd_boolean
 xcoff_is_lineno_count_overflow (abfd, value)
     bfd *abfd ATTRIBUTE_UNUSED;
        bfd_vma value;
 {
   if (0xffff <= value)
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
-static boolean
+static bfd_boolean
 xcoff_is_reloc_count_overflow (abfd, value)
     bfd *abfd ATTRIBUTE_UNUSED;
        bfd_vma value;
 {
   if (0xffff <= value)
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 static bfd_vma
@@ -3629,12 +3659,12 @@ xcoff_loader_reloc_offset (abfd, ldhdr)
   return bfd_xcoff_ldhdrsz (abfd) + ldhdr->l_nsyms * bfd_xcoff_ldsymsz (abfd);
 }
 
-static boolean
+static bfd_boolean
 xcoff_generate_rtinit  (abfd, init, fini, rtld)
      bfd *abfd;
      const char *init;
      const char *fini;
-     boolean rtld;
+     bfd_boolean rtld;
 {
   bfd_byte filehdr_ext[FILHSZ];
   bfd_byte scnhdr_ext[SCNHSZ];
@@ -3657,7 +3687,7 @@ xcoff_generate_rtinit  (abfd, init, fini, rtld)
   char *rtld_name = "__rtld";
 
   if (! bfd_xcoff_rtinit_size (abfd))
-    return false;
+    return FALSE;
 
   initsz = (init == NULL ? 0 : 1 + strlen (init));
   finisz = (fini == NULL ? 0 : 1 + strlen (fini));
@@ -3712,7 +3742,7 @@ xcoff_generate_rtinit  (abfd, init, fini, rtld)
   data_buffer = NULL;
   data_buffer = (bfd_byte *) bfd_zmalloc (data_buffer_size);
   if (data_buffer == NULL)
-    return false;
+    return FALSE;
 
   if (initsz)
     {
@@ -3748,7 +3778,7 @@ xcoff_generate_rtinit  (abfd, init, fini, rtld)
       string_table_size += 4;
       string_table = (bfd_byte *) bfd_zmalloc (string_table_size);
       if (string_table == NULL)
-       return false;
+       return FALSE;
 
       val = string_table_size;
       bfd_h_put_32 (abfd, val, &string_table[0]);
@@ -3909,7 +3939,7 @@ xcoff_generate_rtinit  (abfd, init, fini, rtld)
   free (data_buffer);
   data_buffer = NULL;
 
-  return true;
+  return TRUE;
 }
 
 
@@ -3918,15 +3948,15 @@ HOWTO (0,                       /* type */
        0,                      /* rightshift */
        2,                      /* size (0 = byte, 1 = short, 2 = long) */
        32,                     /* bitsize */
-       false,                  /* pc_relative */
+       FALSE,                  /* pc_relative */
        0,                      /* bitpos */
        complain_overflow_bitfield, /* complain_on_overflow */
        0,                      /* special_function */
        "R_POS",                        /* name */
-       true,                   /* partial_inplace */
+       TRUE,                   /* partial_inplace */
        0xffffffff,             /* src_mask */
        0xffffffff,             /* dst_mask */
-       false);                 /* pcrel_offset */
+       FALSE);                 /* pcrel_offset */
 
 /*  glink
 
@@ -3968,10 +3998,10 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
       RELSZ,
       LINESZ,
       FILNMLEN,
-      true,                    /* _bfd_coff_long_filenames */
-      false,                   /* _bfd_coff_long_section_names */
+      TRUE,                    /* _bfd_coff_long_filenames */
+      FALSE,                   /* _bfd_coff_long_section_names */
       3,                       /* _bfd_coff_default_section_alignment_power */
-      false,                   /* _bfd_coff_force_symnames_in_strings */
+      FALSE,                   /* _bfd_coff_force_symnames_in_strings */
       2,                       /* _bfd_coff_debug_string_prefix_length */
       coff_swap_filehdr_in,
       coff_swap_aouthdr_in,
@@ -4110,11 +4140,11 @@ const bfd_target rs6000coff_vec =
 
     /* Copy */
     _bfd_xcoff_copy_private_bfd_data,
-    ((boolean (*) (bfd *, bfd *)) bfd_true),
-    ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
-    ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
-    ((boolean (*) (bfd *, flagword)) bfd_true),
-    ((boolean (*) (bfd *, void * )) bfd_true),
+    ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, flagword)) bfd_true),
+    ((bfd_boolean (*) (bfd *, void * )) bfd_true),
 
     /* Core */
     coff_core_file_failing_command,
@@ -4124,7 +4154,7 @@ const bfd_target rs6000coff_vec =
     /* Archive */
     _bfd_xcoff_slurp_armap,
     bfd_false,
-    ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
+    ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
     bfd_dont_truncate_arname,
     _bfd_xcoff_write_armap,
     _bfd_xcoff_read_ar_hdr,
@@ -4210,10 +4240,10 @@ static const struct xcoff_backend_data_rec bfd_pmac_xcoff_backend_data =
       RELSZ,
       LINESZ,
       FILNMLEN,
-      true,                    /* _bfd_coff_long_filenames */
-      false,                   /* _bfd_coff_long_section_names */
+      TRUE,                    /* _bfd_coff_long_filenames */
+      FALSE,                   /* _bfd_coff_long_section_names */
       3,                       /* _bfd_coff_default_section_alignment_power */
-      false,                   /* _bfd_coff_force_symnames_in_strings */
+      FALSE,                   /* _bfd_coff_force_symnames_in_strings */
       2,                       /* _bfd_coff_debug_string_prefix_length */
       coff_swap_filehdr_in,
       coff_swap_aouthdr_in,
@@ -4352,11 +4382,11 @@ const bfd_target pmac_xcoff_vec =
 
     /* Copy */
     _bfd_xcoff_copy_private_bfd_data,
-    ((boolean (*) (bfd *, bfd *)) bfd_true),
-    ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
-    ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
-    ((boolean (*) (bfd *, flagword)) bfd_true),
-    ((boolean (*) (bfd *, void * )) bfd_true),
+    ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, flagword)) bfd_true),
+    ((bfd_boolean (*) (bfd *, void * )) bfd_true),
 
     /* Core */
     coff_core_file_failing_command,
@@ -4366,7 +4396,7 @@ const bfd_target pmac_xcoff_vec =
     /* Archive */
     _bfd_xcoff_slurp_armap,
     bfd_false,
-    ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
+    ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
     bfd_dont_truncate_arname,
     _bfd_xcoff_write_armap,
     _bfd_xcoff_read_ar_hdr,
index d1dc4fdbcf720057335a5ba0b9afad503cda71e2..8a4723fb064d799d5d8c75dc8b6e9b17267443f4 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Hitachi Super-H COFF binaries.
-   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Contributed by Cygnus Support.
    Written by Steve Chamberlain, <sac@cygnus.com>.
@@ -33,10 +33,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "coff/pe.h"
 
 #ifndef COFF_IMAGE_WITH_PE
-static boolean sh_align_load_span
+static bfd_boolean sh_align_load_span
   PARAMS ((bfd *, asection *, bfd_byte *,
-          boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
-          PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *));
+          bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
+          PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *));
 
 #define _bfd_sh_align_load_span sh_align_load_span
 #endif
@@ -48,23 +48,24 @@ static boolean sh_align_load_span
 static bfd_reloc_status_type sh_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static long get_symbol_value PARAMS ((asymbol *));
-static boolean sh_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
-static boolean sh_relax_delete_bytes
+static bfd_boolean sh_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean sh_relax_delete_bytes
   PARAMS ((bfd *, asection *, bfd_vma, int));
 #ifndef COFF_IMAGE_WITH_PE
 static const struct sh_opcode *sh_insn_info PARAMS ((unsigned int));
 #endif
-static boolean sh_align_loads
-  PARAMS ((bfd *, asection *, struct internal_reloc *, bfd_byte *, boolean *));
-static boolean sh_swap_insns
+static bfd_boolean sh_align_loads
+  PARAMS ((bfd *, asection *, struct internal_reloc *, bfd_byte *,
+          bfd_boolean *));
+static bfd_boolean sh_swap_insns
   PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma));
-static boolean sh_relocate_section
+static bfd_boolean sh_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
 static bfd_byte *sh_coff_get_relocated_section_contents
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, boolean, asymbol **));
+          bfd_byte *, bfd_boolean, asymbol **));
 static reloc_howto_type * sh_coff_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type));
 
 #ifdef COFF_WITH_PE
@@ -84,10 +85,10 @@ static reloc_howto_type * sh_coff_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_co
 #define COFF_LONG_FILENAMES
 
 #ifdef COFF_WITH_PE
-static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
-/* Return true if this relocation should
+static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
+/* Return TRUE if this relocation should
    appear in the output .reloc section.  */
-static boolean in_reloc_p (abfd, howto)
+static bfd_boolean in_reloc_p (abfd, howto)
      bfd * abfd ATTRIBUTE_UNUSED;
      reloc_howto_type * howto;
 {
@@ -107,15 +108,15 @@ static reloc_howto_type sh_coff_howtos[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_imm32ce",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #else
   EMPTY_HOWTO (2),
 #endif
@@ -131,15 +132,15 @@ static reloc_howto_type sh_coff_howtos[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_pcdisp8by2",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   EMPTY_HOWTO (11), /* R_SH_PCDISP8 */
 
@@ -147,15 +148,15 @@ static reloc_howto_type sh_coff_howtos[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_pcdisp12by2",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xfff,                 /* src_mask */
         0xfff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   EMPTY_HOWTO (13),
 
@@ -163,15 +164,15 @@ static reloc_howto_type sh_coff_howtos[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_imm32",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (15),
 #ifdef COFF_WITH_PE
@@ -179,15 +180,15 @@ static reloc_howto_type sh_coff_howtos[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "rva32",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #else
   EMPTY_HOWTO (16), /* R_SH_IMM8 */
 #endif
@@ -201,169 +202,169 @@ static reloc_howto_type sh_coff_howtos[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_pcrelimm8by2",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_SH_PCRELIMM8BY4,    /* type */
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_pcrelimm8by4",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_SH_IMM16,           /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_imm16",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_SWITCH16,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_switch16",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_SWITCH32,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_switch32",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_USES,            /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_uses",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_COUNT,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_count",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_ALIGN,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_align",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_CODE,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_code",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_DATA,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_data",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_LABEL,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_label",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_SWITCH8,         /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_reloc,              /* special_function */
         "r_switch8",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        false)                 /* pcrel_offset */
+        FALSE)                 /* pcrel_offset */
 };
 
 #define SH_COFF_HOWTO_COUNT (sizeof sh_coff_howtos / sizeof sh_coff_howtos[0])
@@ -689,26 +690,26 @@ sh_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
    align load and store instructions on four byte boundaries if we
    can, by swapping them with one of the adjacent instructions.  */
 
-static boolean
+static bfd_boolean
 sh_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   struct internal_reloc *internal_relocs;
   struct internal_reloc *free_relocs = NULL;
-  boolean have_code;
+  bfd_boolean have_code;
   struct internal_reloc *irel, *irelend;
   bfd_byte *contents = NULL;
   bfd_byte *free_contents = NULL;
 
-  *again = false;
+  *again = FALSE;
 
   if (link_info->relocateable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -717,14 +718,14 @@ sh_relax_section (abfd, sec, link_info, again)
 
   internal_relocs = (_bfd_coff_read_internal_relocs
                     (abfd, sec, link_info->keep_memory,
-                     (bfd_byte *) NULL, false,
+                     (bfd_byte *) NULL, FALSE,
                      (struct internal_reloc *) NULL));
   if (internal_relocs == NULL)
     goto error_return;
   if (! link_info->keep_memory)
     free_relocs = internal_relocs;
 
-  have_code = false;
+  have_code = FALSE;
 
   irelend = internal_relocs + sec->reloc_count;
   for (irel = internal_relocs; irel < irelend; irel++)
@@ -736,7 +737,7 @@ sh_relax_section (abfd, sec, link_info, again)
       bfd_signed_vma foff;
 
       if (irel->r_type == R_SH_CODE)
-       have_code = true;
+       have_code = TRUE;
 
       if (irel->r_type != R_SH_USES)
        continue;
@@ -902,14 +903,14 @@ sh_relax_section (abfd, sec, link_info, again)
        }
 
       coff_section_data (abfd, sec)->relocs = internal_relocs;
-      coff_section_data (abfd, sec)->keep_relocs = true;
+      coff_section_data (abfd, sec)->keep_relocs = TRUE;
       free_relocs = NULL;
 
       coff_section_data (abfd, sec)->contents = contents;
-      coff_section_data (abfd, sec)->keep_contents = true;
+      coff_section_data (abfd, sec)->keep_contents = TRUE;
       free_contents = NULL;
 
-      obj_coff_keep_syms (abfd) = true;
+      obj_coff_keep_syms (abfd) = TRUE;
 
       /* Replace the jsr with a bsr.  */
 
@@ -965,7 +966,7 @@ sh_relax_section (abfd, sec, link_info, again)
       /* That will change things, so, just in case it permits some
          other function call to come within range, we should relax
          again.  Note that this is not required, and it may be slow.  */
-      *again = true;
+      *again = TRUE;
 
       /* Now check whether we got a COUNT reloc.  */
       if (irelcount >= irelend)
@@ -1005,7 +1006,7 @@ sh_relax_section (abfd, sec, link_info, again)
      byte boundaries.  */
   if (have_code)
     {
-      boolean swapped;
+      bfd_boolean swapped;
 
       /* Get the section contents.  */
       if (contents == NULL)
@@ -1040,14 +1041,14 @@ sh_relax_section (abfd, sec, link_info, again)
            }
 
          coff_section_data (abfd, sec)->relocs = internal_relocs;
-         coff_section_data (abfd, sec)->keep_relocs = true;
+         coff_section_data (abfd, sec)->keep_relocs = TRUE;
          free_relocs = NULL;
 
          coff_section_data (abfd, sec)->contents = contents;
-         coff_section_data (abfd, sec)->keep_contents = true;
+         coff_section_data (abfd, sec)->keep_contents = TRUE;
          free_contents = NULL;
 
-         obj_coff_keep_syms (abfd) = true;
+         obj_coff_keep_syms (abfd) = TRUE;
        }
     }
 
@@ -1076,19 +1077,19 @@ sh_relax_section (abfd, sec, link_info, again)
        }
     }
 
-  return true;
+  return TRUE;
 
  error_return:
   if (free_relocs != NULL)
     free (free_relocs);
   if (free_contents != NULL)
     free (free_contents);
-  return false;
+  return FALSE;
 }
 
 /* Delete some bytes from a section while relaxing.  */
 
-static boolean
+static bfd_boolean
 sh_relax_delete_bytes (abfd, sec, addr, count)
      bfd *abfd;
      asection *sec;
@@ -1151,7 +1152,7 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
       struct internal_syment sym;
       int off, adjust, oinsn;
       bfd_signed_vma voff = 0;
-      boolean overflow;
+      bfd_boolean overflow;
 
       /* Get the new reloc address.  */
       nraddr = irel->r_vaddr - sec->vma;
@@ -1313,7 +1314,7 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
       if (adjust != 0)
        {
          oinsn = insn;
-         overflow = false;
+         overflow = FALSE;
          switch (irel->r_type)
            {
            default:
@@ -1324,14 +1325,14 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
            case R_SH_PCRELIMM8BY2:
              insn += adjust / 2;
              if ((oinsn & 0xff00) != (insn & 0xff00))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr);
              break;
 
            case R_SH_PCDISP:
              insn += adjust / 2;
              if ((oinsn & 0xf000) != (insn & 0xf000))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr);
              break;
 
@@ -1345,21 +1346,21 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
                    ++insn;
                }
              if ((oinsn & 0xff00) != (insn & 0xff00))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr);
              break;
 
            case R_SH_SWITCH8:
              voff += adjust;
              if (voff < 0 || voff >= 0xff)
-               overflow = true;
+               overflow = TRUE;
              bfd_put_8 (abfd, (bfd_vma) voff, contents + nraddr);
              break;
 
            case R_SH_SWITCH16:
              voff += adjust;
              if (voff < - 0x8000 || voff >= 0x8000)
-               overflow = true;
+               overflow = TRUE;
              bfd_put_signed_16 (abfd, (bfd_vma) voff, contents + nraddr);
              break;
 
@@ -1379,7 +1380,7 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
               ("%s: 0x%lx: fatal: reloc overflow while relaxing",
                bfd_archive_filename (abfd), (unsigned long) irel->r_vaddr));
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
        }
 
@@ -1401,13 +1402,13 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
        continue;
 
       /* We always cache the relocs.  Perhaps, if info->keep_memory is
-         false, we should free them, if we are permitted to, when we
+         FALSE, we should free them, if we are permitted to, when we
          leave sh_coff_relax_section.  */
       internal_relocs = (_bfd_coff_read_internal_relocs
-                        (abfd, o, true, (bfd_byte *) NULL, false,
+                        (abfd, o, TRUE, (bfd_byte *) NULL, FALSE,
                          (struct internal_reloc *) NULL));
       if (internal_relocs == NULL)
-       return false;
+       return FALSE;
 
       ocontents = NULL;
       irelscanend = internal_relocs + o->reloc_count;
@@ -1443,16 +1444,16 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
                  else
                    {
                      /* We always cache the section contents.
-                         Perhaps, if info->keep_memory is false, we
+                         Perhaps, if info->keep_memory is FALSE, we
                          should free them, if we are permitted to,
                          when we leave sh_coff_relax_section.  */
                      ocontents = (bfd_byte *) bfd_malloc (o->_raw_size);
                      if (ocontents == NULL)
-                       return false;
+                       return FALSE;
                      if (! bfd_get_section_contents (abfd, o, ocontents,
                                                      (file_ptr) 0,
                                                      o->_raw_size))
-                       return false;
+                       return FALSE;
                      coff_section_data (abfd, o)->contents = ocontents;
                    }
                }
@@ -1463,7 +1464,7 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
                bfd_put_32 (abfd, val - count,
                            ocontents + irelscan->r_vaddr - o->vma);
 
-             coff_section_data (abfd, o)->keep_contents = true;
+             coff_section_data (abfd, o)->keep_contents = TRUE;
            }
        }
     }
@@ -1479,7 +1480,7 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
        ("%s: fatal: generic symbols retrieved before relaxing",
        bfd_archive_filename (abfd)));
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   /* Adjust all the symbols.  */
@@ -1532,7 +1533,7 @@ sh_relax_delete_bytes (abfd, sec, addr, count)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* This is yet another version of the SH opcode table, used to rapidly
@@ -1647,22 +1648,22 @@ struct sh_opcode
 #define SETSAS_REG(x) USESAS_REG (x)
 
 #ifndef COFF_IMAGE_WITH_PE
-static boolean sh_insn_uses_reg
+static bfd_boolean sh_insn_uses_reg
   PARAMS ((unsigned int, const struct sh_opcode *, unsigned int));
-static boolean sh_insn_sets_reg
+static bfd_boolean sh_insn_sets_reg
   PARAMS ((unsigned int, const struct sh_opcode *, unsigned int));
-static boolean sh_insn_uses_or_sets_reg
+static bfd_boolean sh_insn_uses_or_sets_reg
   PARAMS ((unsigned int, const struct sh_opcode *, unsigned int));
-static boolean sh_insn_uses_freg
+static bfd_boolean sh_insn_uses_freg
   PARAMS ((unsigned int, const struct sh_opcode *, unsigned int));
-static boolean sh_insn_sets_freg
+static bfd_boolean sh_insn_sets_freg
   PARAMS ((unsigned int, const struct sh_opcode *, unsigned int));
-static boolean sh_insn_uses_or_sets_freg
+static bfd_boolean sh_insn_uses_or_sets_freg
   PARAMS ((unsigned int, const struct sh_opcode *, unsigned int));
-static boolean sh_insns_conflict
+static bfd_boolean sh_insns_conflict
   PARAMS ((unsigned int, const struct sh_opcode *, unsigned int,
           const struct sh_opcode *));
-static boolean sh_load_use
+static bfd_boolean sh_load_use
   PARAMS ((unsigned int, const struct sh_opcode *, unsigned int,
           const struct sh_opcode *));
 #endif
@@ -2166,21 +2167,21 @@ sh_insn_info (insn)
 
 /* See whether an instruction uses or sets a general purpose register */
 
-static boolean
+static bfd_boolean
 sh_insn_uses_or_sets_reg (insn, op, reg)
      unsigned int insn;
      const struct sh_opcode *op;
      unsigned int reg;
 {
   if (sh_insn_uses_reg (insn, op, reg))
-    return true;
+    return TRUE;
 
   return sh_insn_sets_reg (insn, op, reg);
 }
 
 /* See whether an instruction uses a general purpose register.  */
 
-static boolean
+static bfd_boolean
 sh_insn_uses_reg (insn, op, reg)
      unsigned int insn;
      const struct sh_opcode *op;
@@ -2192,24 +2193,24 @@ sh_insn_uses_reg (insn, op, reg)
 
   if ((f & USES1) != 0
       && USES1_REG (insn) == reg)
-    return true;
+    return TRUE;
   if ((f & USES2) != 0
       && USES2_REG (insn) == reg)
-    return true;
+    return TRUE;
   if ((f & USESR0) != 0
       && reg == 0)
-    return true;
+    return TRUE;
   if ((f & USESAS) && reg == USESAS_REG (insn))
-    return true;
+    return TRUE;
   if ((f & USESR8) && reg == 8)
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 /* See whether an instruction sets a general purpose register.  */
 
-static boolean
+static bfd_boolean
 sh_insn_sets_reg (insn, op, reg)
      unsigned int insn;
      const struct sh_opcode *op;
@@ -2221,36 +2222,36 @@ sh_insn_sets_reg (insn, op, reg)
 
   if ((f & SETS1) != 0
       && SETS1_REG (insn) == reg)
-    return true;
+    return TRUE;
   if ((f & SETS2) != 0
       && SETS2_REG (insn) == reg)
-    return true;
+    return TRUE;
   if ((f & SETSR0) != 0
       && reg == 0)
-    return true;
+    return TRUE;
   if ((f & SETSAS) && reg == SETSAS_REG (insn))
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 /* See whether an instruction uses or sets a floating point register */
 
-static boolean
+static bfd_boolean
 sh_insn_uses_or_sets_freg (insn, op, reg)
      unsigned int insn;
      const struct sh_opcode *op;
      unsigned int reg;
 {
   if (sh_insn_uses_freg (insn, op, reg))
-    return true;
+    return TRUE;
 
   return sh_insn_sets_freg (insn, op, reg);
 }
 
 /* See whether an instruction uses a floating point register.  */
 
-static boolean
+static bfd_boolean
 sh_insn_uses_freg (insn, op, freg)
      unsigned int insn;
      const struct sh_opcode *op;
@@ -2271,20 +2272,20 @@ sh_insn_uses_freg (insn, op, freg)
 
   if ((f & USESF1) != 0
       && (USESF1_REG (insn) & 0xe) == (freg & 0xe))
-    return true;
+    return TRUE;
   if ((f & USESF2) != 0
       && (USESF2_REG (insn) & 0xe) == (freg & 0xe))
-    return true;
+    return TRUE;
   if ((f & USESF0) != 0
       && freg == 0)
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 /* See whether an instruction sets a floating point register.  */
 
-static boolean
+static bfd_boolean
 sh_insn_sets_freg (insn, op, freg)
      unsigned int insn;
      const struct sh_opcode *op;
@@ -2305,17 +2306,17 @@ sh_insn_sets_freg (insn, op, freg)
 
   if ((f & SETSF1) != 0
       && (SETSF1_REG (insn) & 0xe) == (freg & 0xe))
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 /* See whether instructions I1 and I2 conflict, assuming I1 comes
    before I2.  OP1 and OP2 are the corresponding sh_opcode structures.
-   This should return true if there is a conflict, or false if the
+   This should return TRUE if there is a conflict, or FALSE if the
    instructions can be swapped safely.  */
 
-static boolean
+static bfd_boolean
 sh_insns_conflict (i1, op1, i2, op2)
      unsigned int i1;
      const struct sh_opcode *op1;
@@ -2331,57 +2332,57 @@ sh_insns_conflict (i1, op1, i2, op2)
      FIXME: shouldn't test raw opcodes here.  */
   if (((i1 & 0xf0ff) == 0x4066 && (i2 & 0xf000) == 0xf000)
       || ((i2 & 0xf0ff) == 0x4066 && (i1 & 0xf000) == 0xf000))
-    return true;
+    return TRUE;
 
   if ((f1 & (BRANCH | DELAY)) != 0
       || (f2 & (BRANCH | DELAY)) != 0)
-    return true;
+    return TRUE;
 
   if (((f1 | f2) & SETSSP)
       && (f1 & (SETSSP | USESSP))
       && (f2 & (SETSSP | USESSP)))
-    return true;
+    return TRUE;
 
   if ((f1 & SETS1) != 0
       && sh_insn_uses_or_sets_reg (i2, op2, SETS1_REG (i1)))
-    return true;
+    return TRUE;
   if ((f1 & SETS2) != 0
       && sh_insn_uses_or_sets_reg (i2, op2, SETS2_REG (i1)))
-    return true;
+    return TRUE;
   if ((f1 & SETSR0) != 0
       && sh_insn_uses_or_sets_reg (i2, op2, 0))
-    return true;
+    return TRUE;
   if ((f1 & SETSAS)
       && sh_insn_uses_or_sets_reg (i2, op2, SETSAS_REG (i1)))
-    return true;
+    return TRUE;
   if ((f1 & SETSF1) != 0
       && sh_insn_uses_or_sets_freg (i2, op2, SETSF1_REG (i1)))
-    return true;
+    return TRUE;
 
   if ((f2 & SETS1) != 0
       && sh_insn_uses_or_sets_reg (i1, op1, SETS1_REG (i2)))
-    return true;
+    return TRUE;
   if ((f2 & SETS2) != 0
       && sh_insn_uses_or_sets_reg (i1, op1, SETS2_REG (i2)))
-    return true;
+    return TRUE;
   if ((f2 & SETSR0) != 0
       && sh_insn_uses_or_sets_reg (i1, op1, 0))
-    return true;
+    return TRUE;
   if ((f2 & SETSAS)
       && sh_insn_uses_or_sets_reg (i1, op1, SETSAS_REG (i2)))
-    return true;
+    return TRUE;
   if ((f2 & SETSF1) != 0
       && sh_insn_uses_or_sets_freg (i1, op1, SETSF1_REG (i2)))
-    return true;
+    return TRUE;
 
   /* The instructions do not conflict.  */
-  return false;
+  return FALSE;
 }
 
 /* I1 is a load instruction, and I2 is some other instruction.  Return
-   true if I1 loads a register which I2 uses.  */
+   TRUE if I1 loads a register which I2 uses.  */
 
-static boolean
+static bfd_boolean
 sh_load_use (i1, op1, i2, op2)
      unsigned int i1;
      const struct sh_opcode *op1;
@@ -2393,7 +2394,7 @@ sh_load_use (i1, op1, i2, op2)
   f1 = op1->flags;
 
   if ((f1 & LOAD) == 0)
-    return false;
+    return FALSE;
 
   /* If both SETS1 and SETSSP are set, that means a load to a special
      register using postincrement addressing mode, which we don't care
@@ -2401,17 +2402,17 @@ sh_load_use (i1, op1, i2, op2)
   if ((f1 & SETS1) != 0
       && (f1 & SETSSP) == 0
       && sh_insn_uses_reg (i2, op2, (i1 & 0x0f00) >> 8))
-    return true;
+    return TRUE;
 
   if ((f1 & SETSR0) != 0
       && sh_insn_uses_reg (i2, op2, 0))
-    return true;
+    return TRUE;
 
   if ((f1 & SETSF1) != 0
       && sh_insn_uses_freg (i2, op2, (i1 & 0x0f00) >> 8))
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 /* Try to align loads and stores within a span of memory.  This is
@@ -2422,24 +2423,24 @@ sh_load_use (i1, op1, i2, op2)
    passed to SWAP.  PLABEL is a pointer to the current label in a
    sorted list of labels; LABEL_END is the end of the list.  START and
    STOP are the range of memory to examine.  If a swap is made,
-   *PSWAPPED is set to true.  */
+   *PSWAPPED is set to TRUE.  */
 
 #ifdef COFF_WITH_PE
 static
 #endif
-boolean
+bfd_boolean
 _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
                         plabel, label_end, start, stop, pswapped)
      bfd *abfd;
      asection *sec;
      bfd_byte *contents;
-     boolean (*swap) PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma));
+     bfd_boolean (*swap) PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma));
      PTR relocs;
      bfd_vma **plabel;
      bfd_vma *label_end;
      bfd_vma start;
      bfd_vma stop;
-     boolean *pswapped;
+     bfd_boolean *pswapped;
 {
   int dsp = (abfd->arch_info->mach == bfd_mach_sh_dsp
             || abfd->arch_info->mach == bfd_mach_sh3_dsp);
@@ -2449,7 +2450,7 @@ _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
      desirable.  In fact, it is counter-productive, since it interferes
      with the schedules generated by the compiler.  */
   if (abfd->arch_info->mach == bfd_mach_sh4)
-    return true;
+    return TRUE;
 
   /* If we are linking sh[3]-dsp code, swap the FPU instructions for DSP
      instructions.  */
@@ -2523,14 +2524,14 @@ _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
          && (prev_op->flags & (LOAD | STORE)) == 0
          && ! sh_insns_conflict (prev_insn, prev_op, insn, op))
        {
-         boolean ok;
+         bfd_boolean ok;
 
          /* The load/store instruction does not have a label, and
             there is a previous instruction; PREV_INSN is not
             itself a load/store instruction, and PREV_INSN and
             INSN do not conflict.  */
 
-         ok = true;
+         ok = TRUE;
 
          if (i >= start + 4)
            {
@@ -2545,7 +2546,7 @@ _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
                 can not swap.  */
              if (prev2_op == NULL
                  || (prev2_op->flags & DELAY) != 0)
-               ok = false;
+               ok = FALSE;
 
              /* If the instruction before PREV_INSN is a load,
                 and it sets a register which INSN uses, then
@@ -2555,14 +2556,14 @@ _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
              if (ok
                  && (prev2_op->flags & LOAD) != 0
                  && sh_load_use (prev2_insn, prev2_op, insn, op))
-               ok = false;
+               ok = FALSE;
            }
 
          if (ok)
            {
              if (! (*swap) (abfd, sec, relocs, contents, i - 2))
-               return false;
-             *pswapped = true;
+               return FALSE;
+             *pswapped = TRUE;
              continue;
            }
        }
@@ -2584,12 +2585,12 @@ _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
              && (next_op->flags & (LOAD | STORE)) == 0
              && ! sh_insns_conflict (insn, op, next_insn, next_op))
            {
-             boolean ok;
+             bfd_boolean ok;
 
              /* NEXT_INSN is not itself a load/store instruction,
                 and it does not conflict with INSN.  */
 
-             ok = true;
+             ok = TRUE;
 
              /* If PREV_INSN is a load, and it sets a register
                 which NEXT_INSN uses, then putting NEXT_INSN
@@ -2598,7 +2599,7 @@ _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
              if (prev_op != NULL
                  && (prev_op->flags & LOAD) != 0
                  && sh_load_use (prev_insn, prev_op, next_insn, next_op))
-               ok = false;
+               ok = FALSE;
 
              /* If INSN is a load, and it sets a register which
                 the insn after NEXT_INSN uses, then doing the
@@ -2620,21 +2621,21 @@ _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
                  next2_op = sh_insn_info (next2_insn);
                  if ((next2_op->flags & (LOAD | STORE)) == 0
                      && sh_load_use (insn, op, next2_insn, next2_op))
-                   ok = false;
+                   ok = FALSE;
                }
 
              if (ok)
                {
                  if (! (*swap) (abfd, sec, relocs, contents, i))
-                   return false;
-                 *pswapped = true;
+                   return FALSE;
+                 *pswapped = TRUE;
                  continue;
                }
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 #endif /* not COFF_IMAGE_WITH_PE */
 
@@ -2643,20 +2644,20 @@ _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs,
    this is desirable.  This sets *PSWAPPED if some instruction was
    swapped.  */
 
-static boolean
+static bfd_boolean
 sh_align_loads (abfd, sec, internal_relocs, contents, pswapped)
      bfd *abfd;
      asection *sec;
      struct internal_reloc *internal_relocs;
      bfd_byte *contents;
-     boolean *pswapped;
+     bfd_boolean *pswapped;
 {
   struct internal_reloc *irel, *irelend;
   bfd_vma *labels = NULL;
   bfd_vma *label, *label_end;
   bfd_size_type amt;
 
-  *pswapped = false;
+  *pswapped = FALSE;
 
   irelend = internal_relocs + sec->reloc_count;
 
@@ -2706,17 +2707,17 @@ sh_align_loads (abfd, sec, internal_relocs, contents, pswapped)
 
   free (labels);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (labels != NULL)
     free (labels);
-  return false;
+  return FALSE;
 }
 
 /* Swap two SH instructions.  */
 
-static boolean
+static bfd_boolean
 sh_swap_insns (abfd, sec, relocs, contents, addr)
      bfd *abfd;
      asection *sec;
@@ -2784,10 +2785,10 @@ sh_swap_insns (abfd, sec, relocs, contents, addr)
        {
          bfd_byte *loc;
          unsigned short insn, oinsn;
-         boolean overflow;
+         bfd_boolean overflow;
 
          loc = contents + irel->r_vaddr - sec->vma;
-         overflow = false;
+         overflow = FALSE;
          switch (type)
            {
            default:
@@ -2799,7 +2800,7 @@ sh_swap_insns (abfd, sec, relocs, contents, addr)
              oinsn = insn;
              insn += add / 2;
              if ((oinsn & 0xff00) != (insn & 0xff00))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, loc);
              break;
 
@@ -2808,7 +2809,7 @@ sh_swap_insns (abfd, sec, relocs, contents, addr)
              oinsn = insn;
              insn += add / 2;
              if ((oinsn & 0xf000) != (insn & 0xf000))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, loc);
              break;
 
@@ -2825,7 +2826,7 @@ sh_swap_insns (abfd, sec, relocs, contents, addr)
                  oinsn = insn;
                  insn += add / 2;
                  if ((oinsn & 0xff00) != (insn & 0xff00))
-                   overflow = true;
+                   overflow = TRUE;
                  bfd_put_16 (abfd, (bfd_vma) insn, loc);
                }
 
@@ -2838,18 +2839,18 @@ sh_swap_insns (abfd, sec, relocs, contents, addr)
               ("%s: 0x%lx: fatal: reloc overflow while relaxing",
                bfd_archive_filename (abfd), (unsigned long) irel->r_vaddr));
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* This is a modification of _bfd_coff_generic_relocate_section, which
    will handle SH relaxing.  */
 
-static boolean
+static bfd_boolean
 sh_relocate_section (output_bfd, info, input_bfd, input_section, contents,
                     relocs, syms, sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -2902,7 +2903,7 @@ sh_relocate_section (output_bfd, info, input_bfd, input_section, contents,
                ("%s: illegal symbol index %ld in relocs",
                 bfd_archive_filename (input_bfd), symndx);
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
          h = obj_coff_sym_hashes (input_bfd)[symndx];
          sym = syms + symndx;
@@ -2924,7 +2925,7 @@ sh_relocate_section (output_bfd, info, input_bfd, input_section, contents,
       if (howto == NULL)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
 #ifdef COFF_WITH_PE
@@ -2972,8 +2973,8 @@ sh_relocate_section (output_bfd, info, input_bfd, input_section, contents,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd, input_section,
-                     rel->r_vaddr - input_section->vma, true)))
-               return false;
+                     rel->r_vaddr - input_section->vma, TRUE)))
+               return FALSE;
            }
        }
 
@@ -3010,12 +3011,12 @@ sh_relocate_section (output_bfd, info, input_bfd, input_section, contents,
            if (! ((*info->callbacks->reloc_overflow)
                   (info, name, howto->name, (bfd_vma) 0, input_bfd,
                    input_section, rel->r_vaddr - input_section->vma)))
-             return false;
+             return FALSE;
          }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This is a version of bfd_generic_get_relocated_section_contents
@@ -3028,7 +3029,7 @@ sh_coff_get_relocated_section_contents (output_bfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   asection *input_section = link_order->u.indirect.section;
@@ -3063,8 +3064,8 @@ sh_coff_get_relocated_section_contents (output_bfd, link_info, link_order,
        goto error_return;
 
       internal_relocs = (_bfd_coff_read_internal_relocs
-                        (input_bfd, input_section, false, (bfd_byte *) NULL,
-                         false, (struct internal_reloc *) NULL));
+                        (input_bfd, input_section, FALSE, (bfd_byte *) NULL,
+                         FALSE, (struct internal_reloc *) NULL));
       if (internal_relocs == NULL)
        goto error_return;
 
@@ -3154,7 +3155,7 @@ CREATE_LITTLE_COFF_TARGET_VEC (TARGET_SYM, TARGET_SHL_NAME, BFD_IS_RELAXABLE,
 
 #ifndef TARGET_SHL_SYM
 static const bfd_target * coff_small_object_p PARAMS ((bfd *));
-static boolean coff_small_new_section_hook PARAMS ((bfd *, asection *));
+static bfd_boolean coff_small_new_section_hook PARAMS ((bfd *, asection *));
 /* Some people want versions of the SH COFF target which do not align
    to 16 byte boundaries.  We implement that by adding a couple of new
    target vectors.  These are just like the ones above, but they
@@ -3183,20 +3184,20 @@ coff_small_object_p (abfd)
 
 /* Set the section alignment for the small versions.  */
 
-static boolean
+static bfd_boolean
 coff_small_new_section_hook (abfd, section)
      bfd *abfd;
      asection *section;
 {
   if (! coff_new_section_hook (abfd, section))
-    return false;
+    return FALSE;
 
   /* We must align to at least a four byte boundary, because longword
      accesses must be on a four byte boundary.  */
   if (section->alignment_power == COFF_DEFAULT_SECTION_ALIGNMENT_POWER)
     section->alignment_power = 2;
 
-  return true;
+  return TRUE;
 }
 
 /* This is copied from bfd_coff_std_swap_table so that we can change
@@ -3211,20 +3212,20 @@ static const bfd_coff_backend_data bfd_coff_small_swap_table =
   coff_swap_scnhdr_out,
   FILHSZ, AOUTSZ, SCNHSZ, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN,
 #ifdef COFF_LONG_FILENAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_LONG_SECTION_NAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
   2,
 #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_DEBUG_STRING_WIDE_PREFIX
   4,
index 35c23df521f6f83adf502a992d9c452d4b162da2..4053a6d5f4b3d464757a7eee1ab09e90388e090d 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Sparc COFF files.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -103,30 +103,30 @@ bfd_coff_generic_reloc (abfd, reloc_entry, symbol, data, input_section,
 
 static reloc_howto_type coff_sparc_howto_table[] =
 {
-  HOWTO(R_SPARC_NONE,    0,0, 0,false,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_8,       0,0, 8,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_8",       false,0,0x000000ff,true),
-  HOWTO(R_SPARC_16,      0,1,16,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_16",      false,0,0x0000ffff,true),
-  HOWTO(R_SPARC_32,      0,2,32,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_32",      false,0,0xffffffff,true),
-  HOWTO(R_SPARC_DISP8,   0,0, 8,true, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_DISP8",   false,0,0x000000ff,true),
-  HOWTO(R_SPARC_DISP16,  0,1,16,true, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_DISP16",  false,0,0x0000ffff,true),
-  HOWTO(R_SPARC_DISP32,  0,2,32,true, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_DISP32",  false,0,0x00ffffff,true),
-  HOWTO(R_SPARC_WDISP30, 2,2,30,true, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_WDISP30", false,0,0x3fffffff,true),
-  HOWTO(R_SPARC_WDISP22, 2,2,22,true, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_WDISP22", false,0,0x003fffff,true),
-  HOWTO(R_SPARC_HI22,   10,2,22,false,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_HI22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_22,      0,2,22,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_22",      false,0,0x003fffff,true),
-  HOWTO(R_SPARC_13,      0,2,13,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_13",      false,0,0x00001fff,true),
-  HOWTO(R_SPARC_LO10,    0,2,10,false,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_LO10",    false,0,0x000003ff,true),
-  HOWTO(R_SPARC_GOT10,   0,2,10,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT10",   false,0,0x000003ff,true),
-  HOWTO(R_SPARC_GOT13,   0,2,13,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT13",   false,0,0x00001fff,true),
-  HOWTO(R_SPARC_GOT22,  10,2,22,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT22",   false,0,0x003fffff,true),
-  HOWTO(R_SPARC_PC10,    0,2,10,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC10",    false,0,0x000003ff,true),
-  HOWTO(R_SPARC_PC22,    0,2,22,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_WPLT30,  0,0,00,false,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_WPLT30",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_COPY,    0,0,00,false,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_COPY",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_GLOB_DAT,0,0,00,false,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_GLOB_DAT",false,0,0x00000000,true),
-  HOWTO(R_SPARC_JMP_SLOT,0,0,00,false,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_JMP_SLOT",false,0,0x00000000,true),
-  HOWTO(R_SPARC_RELATIVE,0,0,00,false,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_RELATIVE",false,0,0x00000000,true),
-  HOWTO(R_SPARC_UA32,    0,0,00,false,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_UA32",    false,0,0x00000000,true),
+  HOWTO(R_SPARC_NONE,    0,0, 0,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_8,       0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_8",       FALSE,0,0x000000ff,TRUE),
+  HOWTO(R_SPARC_16,      0,1,16,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_16",      FALSE,0,0x0000ffff,TRUE),
+  HOWTO(R_SPARC_32,      0,2,32,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_32",      FALSE,0,0xffffffff,TRUE),
+  HOWTO(R_SPARC_DISP8,   0,0, 8,TRUE, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_DISP8",   FALSE,0,0x000000ff,TRUE),
+  HOWTO(R_SPARC_DISP16,  0,1,16,TRUE, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_DISP16",  FALSE,0,0x0000ffff,TRUE),
+  HOWTO(R_SPARC_DISP32,  0,2,32,TRUE, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_DISP32",  FALSE,0,0x00ffffff,TRUE),
+  HOWTO(R_SPARC_WDISP30, 2,2,30,TRUE, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE),
+  HOWTO(R_SPARC_WDISP22, 2,2,22,TRUE, 0,complain_overflow_signed,  bfd_coff_generic_reloc,"R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_HI22,   10,2,22,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_HI22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_22,      0,2,22,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_22",      FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_13,      0,2,13,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_13",      FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_LO10,    0,2,10,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_LO10",    FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_GOT10,   0,2,10,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT10",   FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_GOT13,   0,2,13,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT13",   FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_GOT22,  10,2,22,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT22",   FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_PC10,    0,2,10,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC10",    FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_PC22,    0,2,22,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_WPLT30,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_WPLT30",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_COPY,    0,0,00,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_COPY",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_GLOB_DAT,0,0,00,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_JMP_SLOT,0,0,00,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_RELATIVE,0,0,00,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_UA32,    0,0,00,FALSE,0,complain_overflow_dont,    bfd_coff_generic_reloc,"R_SPARC_UA32",    FALSE,0,0x00000000,TRUE),
 };
 
 struct coff_reloc_map {
index 5c80b11b5d393275525a804718d89a1102e3b88c..c4264ca3811ae06eaa987e2e8360b3a47236025c 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 386 COFF files (DJGPP variant with a stub).
-   Copyright 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    Written by Robert Hoehne.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -93,7 +93,7 @@ create_go32_stub PARAMS ((bfd *));
 #define COFF_ADJUST_AUX_OUT_PRE adjust_aux_out_pre
 #define COFF_ADJUST_AUX_OUT_POST adjust_aux_out_post
 
-static boolean
+static bfd_boolean
   go32_stubbed_coff_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
 
 #define coff_bfd_copy_private_bfd_data go32_stubbed_coff_bfd_copy_private_bfd_data
@@ -392,22 +392,22 @@ stub_end:
 /* If ibfd was a stubbed coff image, copy the stub from that bfd
    to the new obfd.  */
 
-static boolean
+static bfd_boolean
 go32_stubbed_coff_bfd_copy_private_bfd_data  (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   /* Check if both are the same targets.  */
   if (ibfd->xvec != obfd->xvec)
-    return true;
+    return TRUE;
 
   /* Check if both have a valid stub.  */
   if (bfd_coff_go32stub (ibfd) == NULL
       || bfd_coff_go32stub (obfd) == NULL)
-    return true;
+    return TRUE;
 
   /* Now copy the stub.  */
   memcpy (bfd_coff_go32stub (obfd), bfd_coff_go32stub (ibfd), STUBSIZE);
 
-  return true;
+  return TRUE;
 }
index a3bbc4c8d23be377da718c59d583d62011f6538e..ef2f3dceed4b68c74b9a63ad3df553cca2bbd47a 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for TMS320C30 coff binaries.
-   Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -37,16 +37,16 @@ reloc_howto_type * tic30_coff_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_r
 
 reloc_howto_type tic30_coff_howto_table[] =
   {
-    HOWTO (R_TIC30_ABS16, 2, 1, 16, false, 0, 0, NULL,
-          "16", false, 0x0000FFFF, 0x0000FFFF, false),
-    HOWTO (R_TIC30_ABS24, 2, 2, 24, false, 8, complain_overflow_bitfield, NULL,
-          "24", false, 0xFFFFFF00, 0xFFFFFF00, false),
-    HOWTO (R_TIC30_LDP, 18, 0, 24, false, 0, complain_overflow_bitfield, NULL,
-          "LDP", false, 0x00FF0000, 0x000000FF, false),
-    HOWTO (R_TIC30_ABS32, 2, 2, 32, false, 0, complain_overflow_bitfield, NULL,
-          "32", false, 0xFFFFFFFF, 0xFFFFFFFF, false),
-    HOWTO (R_TIC30_PC16, 2, 1, 16, true, 0, complain_overflow_signed, NULL,
-          "PCREL", false, 0x0000FFFF, 0x0000FFFF, false),
+    HOWTO (R_TIC30_ABS16, 2, 1, 16, FALSE, 0, 0, NULL,
+          "16", FALSE, 0x0000FFFF, 0x0000FFFF, FALSE),
+    HOWTO (R_TIC30_ABS24, 2, 2, 24, FALSE, 8, complain_overflow_bitfield, NULL,
+          "24", FALSE, 0xFFFFFF00, 0xFFFFFF00, FALSE),
+    HOWTO (R_TIC30_LDP, 18, 0, 24, FALSE, 0, complain_overflow_bitfield, NULL,
+          "LDP", FALSE, 0x00FF0000, 0x000000FF, FALSE),
+    HOWTO (R_TIC30_ABS32, 2, 2, 32, FALSE, 0, complain_overflow_bitfield, NULL,
+          "32", FALSE, 0xFFFFFFFF, 0xFFFFFFFF, FALSE),
+    HOWTO (R_TIC30_PC16, 2, 1, 16, TRUE, 0, complain_overflow_signed, NULL,
+          "PCREL", FALSE, 0x0000FFFF, 0x0000FFFF, FALSE),
     EMPTY_HOWTO (-1)
   };
 
index 8afd04a614dc81811bf3a842772199d7a4093de9..3062b9f86f787dc86a6a5029e06c7d14650a779c 100644 (file)
 #undef  F_LSYMS
 #define        F_LSYMS         F_LSYMS_TICOFF
 
-static boolean ticoff0_bad_format_hook
+static bfd_boolean ticoff0_bad_format_hook
     PARAMS ((bfd *, PTR ));
-static boolean ticoff1_bad_format_hook
+static bfd_boolean ticoff1_bad_format_hook
     PARAMS ((bfd *, PTR ));
-static boolean ticoff_bfd_is_local_label_name
+static bfd_boolean ticoff_bfd_is_local_label_name
     PARAMS ((bfd *, const char *));
 static bfd_reloc_status_type tic4x_relocation
     PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char ** ));
@@ -49,7 +49,7 @@ static void tic4x_reloc_processing
     PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection * ));
 
 
-static boolean
+static bfd_boolean
 ticoff0_bad_format_hook (abfd, filehdr)
      bfd *abfd ATTRIBUTE_UNUSED;
      PTR filehdr;
@@ -57,12 +57,12 @@ ticoff0_bad_format_hook (abfd, filehdr)
   struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
 
   if (COFF0_BADMAG (*internal_f))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 ticoff1_bad_format_hook (abfd, filehdr)
      bfd *abfd ATTRIBUTE_UNUSED;
      PTR filehdr;
@@ -70,21 +70,21 @@ ticoff1_bad_format_hook (abfd, filehdr)
   struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
 
   if (COFF1_BADMAG (*internal_f))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Replace the stock _bfd_coff_is_local_label_name to recognize TI COFF local
    labels.  */
-static boolean 
+static bfd_boolean
 ticoff_bfd_is_local_label_name (abfd, name)
   bfd *abfd ATTRIBUTE_UNUSED;
   const char *name;
 {
   if (TICOFF_LOCAL_LABEL_P(name))
-    return true;
-  return false;
+    return TRUE;
+  return FALSE;
 }
 
 #define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name
@@ -100,7 +100,7 @@ ticoff_bfd_is_local_label_name (abfd, name)
 #include "coffcode.h"
 
 static bfd_reloc_status_type
-tic4x_relocation (abfd, reloc_entry, symbol, data, input_section, 
+tic4x_relocation (abfd, reloc_entry, symbol, data, input_section,
                  output_bfd, error_message)
   bfd *abfd ATTRIBUTE_UNUSED;
   arelent *reloc_entry;
@@ -109,7 +109,7 @@ tic4x_relocation (abfd, reloc_entry, symbol, data, input_section,
   asection *input_section;
   bfd *output_bfd;
   char **error_message ATTRIBUTE_UNUSED;
-{  
+{
   if (output_bfd != (bfd *) NULL)
     {
       /* This is a partial relocation, and we want to apply the
@@ -121,22 +121,22 @@ tic4x_relocation (abfd, reloc_entry, symbol, data, input_section,
   return bfd_reloc_continue;
 }
 
-reloc_howto_type tic4x_howto_table[] = 
+reloc_howto_type tic4x_howto_table[] =
 {
-    HOWTO(R_RELWORD,    0,  2, 16, false, 0, complain_overflow_signed,   tic4x_relocation, "RELWORD",   true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO(R_REL24,      0,  2, 24, false, 0, complain_overflow_bitfield, tic4x_relocation, "REL24",     true, 0x00ffffff, 0x00ffffff, false),
-    HOWTO(R_RELLONG,    0,  2, 32, false, 0, complain_overflow_dont,     tic4x_relocation, "RELLONG",   true, 0xffffffff, 0xffffffff, false),
-    HOWTO(R_PCRWORD,    0,  2, 16, true,  0, complain_overflow_signed,   tic4x_relocation, "PCRWORD",   true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO(R_PCR24,      0,  2, 24, true,  0, complain_overflow_signed,   tic4x_relocation, "PCR24",     true, 0x00ffffff, 0x00ffffff, false),
-    HOWTO(R_PARTLS16,   0,  2, 16, false, 0, complain_overflow_dont,     tic4x_relocation, "PARTLS16",  true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO(R_PARTMS8,   16,  2, 16, false, 0, complain_overflow_dont,     tic4x_relocation, "PARTMS8",   true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO(R_RELWORD,    0,  2, 16, false, 0, complain_overflow_signed,   tic4x_relocation, "ARELWORD",  true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO(R_REL24,      0,  2, 24, false, 0, complain_overflow_signed,   tic4x_relocation, "AREL24",    true, 0x00ffffff, 0x00ffffff, false),
-    HOWTO(R_RELLONG,    0,  2, 32, false, 0, complain_overflow_signed,   tic4x_relocation, "ARELLONG",  true, 0xffffffff, 0xffffffff, false),
-    HOWTO(R_PCRWORD,    0,  2, 16, true,  0, complain_overflow_signed,   tic4x_relocation, "APCRWORD",  true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO(R_PCR24,      0,  2, 24, true,  0, complain_overflow_signed,   tic4x_relocation, "APCR24",    true, 0x00ffffff, 0x00ffffff, false),
-    HOWTO(R_PARTLS16,   0,  2, 16, false, 0, complain_overflow_dont,     tic4x_relocation, "APARTLS16", true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO(R_PARTMS8,   16,  2, 16, false, 0, complain_overflow_dont,     tic4x_relocation, "APARTMS8",  true, 0x0000ffff, 0x0000ffff, false),
+    HOWTO(R_RELWORD,    0,  2, 16, FALSE, 0, complain_overflow_signed,   tic4x_relocation, "RELWORD",   TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO(R_REL24,      0,  2, 24, FALSE, 0, complain_overflow_bitfield, tic4x_relocation, "REL24",     TRUE, 0x00ffffff, 0x00ffffff, FALSE),
+    HOWTO(R_RELLONG,    0,  2, 32, FALSE, 0, complain_overflow_dont,     tic4x_relocation, "RELLONG",   TRUE, 0xffffffff, 0xffffffff, FALSE),
+    HOWTO(R_PCRWORD,    0,  2, 16, TRUE,  0, complain_overflow_signed,   tic4x_relocation, "PCRWORD",   TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO(R_PCR24,      0,  2, 24, TRUE,  0, complain_overflow_signed,   tic4x_relocation, "PCR24",     TRUE, 0x00ffffff, 0x00ffffff, FALSE),
+    HOWTO(R_PARTLS16,   0,  2, 16, FALSE, 0, complain_overflow_dont,     tic4x_relocation, "PARTLS16",  TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO(R_PARTMS8,   16,  2, 16, FALSE, 0, complain_overflow_dont,     tic4x_relocation, "PARTMS8",   TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO(R_RELWORD,    0,  2, 16, FALSE, 0, complain_overflow_signed,   tic4x_relocation, "ARELWORD",  TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO(R_REL24,      0,  2, 24, FALSE, 0, complain_overflow_signed,   tic4x_relocation, "AREL24",    TRUE, 0x00ffffff, 0x00ffffff, FALSE),
+    HOWTO(R_RELLONG,    0,  2, 32, FALSE, 0, complain_overflow_signed,   tic4x_relocation, "ARELLONG",  TRUE, 0xffffffff, 0xffffffff, FALSE),
+    HOWTO(R_PCRWORD,    0,  2, 16, TRUE,  0, complain_overflow_signed,   tic4x_relocation, "APCRWORD",  TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO(R_PCR24,      0,  2, 24, TRUE,  0, complain_overflow_signed,   tic4x_relocation, "APCR24",    TRUE, 0x00ffffff, 0x00ffffff, FALSE),
+    HOWTO(R_PARTLS16,   0,  2, 16, FALSE, 0, complain_overflow_dont,     tic4x_relocation, "APARTLS16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO(R_PARTMS8,   16,  2, 16, FALSE, 0, complain_overflow_dont,     tic4x_relocation, "APARTMS8",  TRUE, 0x0000ffff, 0x0000ffff, FALSE),
 };
 #define HOWTO_SIZE (sizeof(tic4x_howto_table) / sizeof(tic4x_howto_table[0]))
 
@@ -153,7 +153,7 @@ tic4x_coff_reloc_type_lookup (abfd, code)
 {
   unsigned int type;
   unsigned int i;
-    
+
   switch (code)
     {
     case BFD_RELOC_32:         type = R_RELLONG; break;
@@ -166,7 +166,7 @@ tic4x_coff_reloc_type_lookup (abfd, code)
     default:
       return NULL;
     }
-    
+
   for (i = 0; i < HOWTO_SIZE; i++)
     {
       if (tic4x_howto_table[i].type == type)
@@ -238,7 +238,7 @@ tic4x_reloc_processing (relent, reloc, symbols, abfd, section)
   asymbol *ptr;
 
   relent->address = reloc->r_vaddr;
-  
+
   if (reloc->r_symndx != -1)
     {
       if (reloc->r_symndx < 0 || reloc->r_symndx >= obj_conv_table_size (abfd))
@@ -261,26 +261,26 @@ tic4x_reloc_processing (relent, reloc, symbols, abfd, section)
       relent->sym_ptr_ptr = section->symbol_ptr_ptr;
       ptr = *(relent->sym_ptr_ptr);
     }
-  
+
   /* The symbols definitions that we have read in have been relocated
      as if their sections started at 0.  But the offsets refering to
      the symbols in the raw data have not been modified, so we have to
      have a negative addend to compensate.
-     
+
      Note that symbols which used to be common must be left alone.  */
-  
+
   /* Calculate any reloc addend by looking at the symbol.  */
   CALC_ADDEND (abfd, ptr, *reloc, relent);
-  
+
   relent->address -= section->vma;
   /* !!     relent->section = (asection *) NULL;  */
-  
+
   /* Fill in the relent->howto field from reloc->r_type.  */
   tic4x_lookup_howto (relent, reloc);
 }
 
 
-static const bfd_coff_backend_data ticoff0_swap_table = 
+static const bfd_coff_backend_data ticoff0_swap_table =
 {
   coff_SWAP_aux_in, coff_SWAP_sym_in, coff_SWAP_lineno_in,
   coff_SWAP_aux_out, coff_SWAP_sym_out,
@@ -289,19 +289,19 @@ static const bfd_coff_backend_data ticoff0_swap_table =
   coff_SWAP_scnhdr_out,
   FILHSZ_V0, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ_V0, LINESZ, FILNMLEN,
 #ifdef COFF_LONG_FILENAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_LONG_SECTION_NAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_DEBUG_STRING_WIDE_PREFIX
   4,
@@ -321,7 +321,7 @@ static const bfd_coff_backend_data ticoff0_swap_table =
 };
 
 /* COFF1 differs in section header size.  */
-static const bfd_coff_backend_data ticoff1_swap_table = 
+static const bfd_coff_backend_data ticoff1_swap_table =
 {
   coff_SWAP_aux_in, coff_SWAP_sym_in, coff_SWAP_lineno_in,
   coff_SWAP_aux_out, coff_SWAP_sym_out,
@@ -330,19 +330,19 @@ static const bfd_coff_backend_data ticoff1_swap_table =
   coff_SWAP_scnhdr_out,
   FILHSZ, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN,
 #ifdef COFF_LONG_FILENAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_LONG_SECTION_NAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_DEBUG_STRING_WIDE_PREFIX
   4,
index 5f36f0a446d0c86afa5f59074f03c344ca144d93..cf7227c8261f5fd6c2dd806c6728362016451d9d 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for TMS320C54X coff binaries.
-   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Timothy Wall (twall@cygnus.com)
 
    This file is part of BFD, the Binary File Descriptor library.
 #undef  F_LSYMS
 #define        F_LSYMS         F_LSYMS_TICOFF
 
-static void                  tic54x_reloc_processing        PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *));
-static bfd_reloc_status_type tic54x_relocation              PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean               tic54x_set_section_contents    PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
-static reloc_howto_type *    coff_tic54x_rtype_to_howto     PARAMS ((bfd *, asection *, struct internal_reloc *,  struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *));
-static bfd_vma               tic54x_getl32                  PARAMS ((const bfd_byte *));
-static void                  tic54x_putl32                  PARAMS ((bfd_vma, bfd_byte *));
-static bfd_signed_vma        tic54x_getl_signed_32          PARAMS ((const bfd_byte *));
-static boolean               tic54x_set_arch_mach           PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-static reloc_howto_type *    tic54x_coff_reloc_type_lookup  PARAMS ((bfd *, bfd_reloc_code_real_type));
-static void                  tic54x_lookup_howto            PARAMS ((arelent *, struct internal_reloc *));
-static boolean               ticoff0_bad_format_hook        PARAMS ((bfd *, PTR));
-static boolean               ticoff1_bad_format_hook        PARAMS ((bfd *, PTR));
-static boolean               ticoff_bfd_is_local_label_name PARAMS ((bfd *, const char *));
+static void tic54x_reloc_processing
+  PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *));
+static bfd_reloc_status_type tic54x_relocation
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static bfd_boolean tic54x_set_section_contents
+  PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+static reloc_howto_type *coff_tic54x_rtype_to_howto
+  PARAMS ((bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *));
+static bfd_vma tic54x_getl32
+  PARAMS ((const bfd_byte *));
+static void tic54x_putl32
+  PARAMS ((bfd_vma, bfd_byte *));
+static bfd_signed_vma tic54x_getl_signed_32
+  PARAMS ((const bfd_byte *));
+static bfd_boolean tic54x_set_arch_mach
+  PARAMS ((bfd *, enum bfd_architecture, unsigned long));
+static reloc_howto_type * tic54x_coff_reloc_type_lookup
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
+static void tic54x_lookup_howto
+  PARAMS ((arelent *, struct internal_reloc *));
+static bfd_boolean ticoff0_bad_format_hook
+  PARAMS ((bfd *, PTR));
+static bfd_boolean ticoff1_bad_format_hook
+  PARAMS ((bfd *, PTR));
+static bfd_boolean ticoff_bfd_is_local_label_name
+  PARAMS ((bfd *, const char *));
 
 /* 32-bit operations
    The octet order is screwy.  words are LSB first (LS octet, actually), but
@@ -125,7 +138,7 @@ bfd_ticoff_get_section_load_page (sect)
 /* Set the architecture appropriately.  Allow unkown architectures
    (e.g. binary).  */
 
-static boolean
+static bfd_boolean
 tic54x_set_arch_mach (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -135,7 +148,7 @@ tic54x_set_arch_mach (abfd, arch, machine)
     arch = bfd_arch_tic54x;
 
   else if (arch != bfd_arch_tic54x)
-    return false;
+    return FALSE;
 
   return bfd_default_set_arch_mach (abfd, arch, machine);
 }
@@ -170,59 +183,59 @@ reloc_howto_type tic54x_howto_table[] =
 
     /* NORMAL BANK */
     /* 16-bit direct reference to symbol's address.  */
-    HOWTO (R_RELWORD,0,1,16,false,0,complain_overflow_dont,
-          tic54x_relocation,"REL16",false,0xFFFF,0xFFFF,false),
+    HOWTO (R_RELWORD,0,1,16,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"REL16",FALSE,0xFFFF,0xFFFF,FALSE),
 
     /* 7 LSBs of an address */
-    HOWTO (R_PARTLS7,0,1,7,false,0,complain_overflow_dont,
-          tic54x_relocation,"LS7",false,0x007F,0x007F,false),
+    HOWTO (R_PARTLS7,0,1,7,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"LS7",FALSE,0x007F,0x007F,FALSE),
 
     /* 9 MSBs of an address */
     /* TI assembler doesn't shift its encoding, and is thus incompatible */
-    HOWTO (R_PARTMS9,7,1,9,false,0,complain_overflow_dont,
-          tic54x_relocation,"MS9",false,0x01FF,0x01FF,false),
+    HOWTO (R_PARTMS9,7,1,9,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"MS9",FALSE,0x01FF,0x01FF,FALSE),
 
     /* 23-bit relocation */
-    HOWTO (R_EXTWORD,0,2,23,false,0,complain_overflow_dont,
-          tic54x_relocation,"RELEXT",false,0x7FFFFF,0x7FFFFF,false),
+    HOWTO (R_EXTWORD,0,2,23,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"RELEXT",FALSE,0x7FFFFF,0x7FFFFF,FALSE),
 
     /* 16 bits of 23-bit extended address */
-    HOWTO (R_EXTWORD16,0,1,16,false,0,complain_overflow_dont,
-          tic54x_relocation,"RELEXT16",false,0x7FFFFF,0x7FFFFF,false),
+    HOWTO (R_EXTWORD16,0,1,16,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"RELEXT16",FALSE,0x7FFFFF,0x7FFFFF,FALSE),
 
     /* upper 7 bits of 23-bit extended address */
-    HOWTO (R_EXTWORDMS7,16,1,7,false,0,complain_overflow_dont,
-          tic54x_relocation,"RELEXTMS7",false,0x7F,0x7F,false),
+    HOWTO (R_EXTWORDMS7,16,1,7,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"RELEXTMS7",FALSE,0x7F,0x7F,FALSE),
 
     /* ABSOLUTE BANK */
     /* 16-bit direct reference to symbol's address, absolute */
-    HOWTO (R_RELWORD,0,1,16,false,0,complain_overflow_dont,
-          tic54x_relocation,"AREL16",false,0xFFFF,0xFFFF,false),
+    HOWTO (R_RELWORD,0,1,16,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"AREL16",FALSE,0xFFFF,0xFFFF,FALSE),
 
     /* 7 LSBs of an address, absolute */
-    HOWTO (R_PARTLS7,0,1,7,false,0,complain_overflow_dont,
-          tic54x_relocation,"ALS7",false,0x007F,0x007F,false),
+    HOWTO (R_PARTLS7,0,1,7,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"ALS7",FALSE,0x007F,0x007F,FALSE),
 
     /* 9 MSBs of an address, absolute */
     /* TI assembler doesn't shift its encoding, and is thus incompatible */
-    HOWTO (R_PARTMS9,7,1,9,false,0,complain_overflow_dont,
-          tic54x_relocation,"AMS9",false,0x01FF,0x01FF,false),
+    HOWTO (R_PARTMS9,7,1,9,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"AMS9",FALSE,0x01FF,0x01FF,FALSE),
 
     /* 23-bit direct reference, absolute */
-    HOWTO (R_EXTWORD,0,2,23,false,0,complain_overflow_dont,
-          tic54x_relocation,"ARELEXT",false,0x7FFFFF,0x7FFFFF,false),
+    HOWTO (R_EXTWORD,0,2,23,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"ARELEXT",FALSE,0x7FFFFF,0x7FFFFF,FALSE),
 
     /* 16 bits of 23-bit extended address, absolute */
-    HOWTO (R_EXTWORD16,0,1,16,false,0,complain_overflow_dont,
-          tic54x_relocation,"ARELEXT16",false,0x7FFFFF,0x7FFFFF,false),
+    HOWTO (R_EXTWORD16,0,1,16,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"ARELEXT16",FALSE,0x7FFFFF,0x7FFFFF,FALSE),
 
     /* upper 7 bits of 23-bit extended address, absolute */
-    HOWTO (R_EXTWORDMS7,16,1,7,false,0,complain_overflow_dont,
-          tic54x_relocation,"ARELEXTMS7",false,0x7F,0x7F,false),
+    HOWTO (R_EXTWORDMS7,16,1,7,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"ARELEXTMS7",FALSE,0x7F,0x7F,FALSE),
 
     /* 32-bit relocation exclusively for stabs */
-    HOWTO (R_RELLONG,0,2,32,false,0,complain_overflow_dont,
-          tic54x_relocation,"STAB",false,0xFFFFFFFF,0xFFFFFFFF,false),
+    HOWTO (R_RELLONG,0,2,32,FALSE,0,complain_overflow_dont,
+          tic54x_relocation,"STAB",FALSE,0xFFFFFFFF,0xFFFFFFFF,FALSE),
   };
 
 #define coff_bfd_reloc_type_lookup tic54x_coff_reloc_type_lookup
@@ -310,7 +323,7 @@ coff_tic54x_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
   return genrel.howto;
 }
 
-static boolean
+static bfd_boolean
 ticoff0_bad_format_hook (abfd, filehdr)
      bfd * abfd ATTRIBUTE_UNUSED;
      PTR filehdr;
@@ -318,12 +331,12 @@ ticoff0_bad_format_hook (abfd, filehdr)
   struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
 
   if (COFF0_BADMAG (*internal_f))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 ticoff1_bad_format_hook (abfd, filehdr)
      bfd * abfd ATTRIBUTE_UNUSED;
      PTR filehdr;
@@ -331,22 +344,22 @@ ticoff1_bad_format_hook (abfd, filehdr)
   struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
 
   if (COFF1_BADMAG (*internal_f))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Replace the stock _bfd_coff_is_local_label_name to recognize TI COFF local
    labels.  */
 
-static boolean
+static bfd_boolean
 ticoff_bfd_is_local_label_name (abfd, name)
   bfd *abfd ATTRIBUTE_UNUSED;
   const char *name;
 {
   if (TICOFF_LOCAL_LABEL_P(name))
-    return true;
-  return false;
+    return TRUE;
+  return FALSE;
 }
 
 #define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name
@@ -358,7 +371,7 @@ ticoff_bfd_is_local_label_name (abfd, name)
 #define BADMAG(x) COFF2_BADMAG(x)
 #include "coffcode.h"
 
-static boolean
+static bfd_boolean
 tic54x_set_section_contents (abfd, section, location, offset, bytes_to_do)
      bfd *abfd;
      sec_ptr section;
@@ -432,19 +445,19 @@ static const bfd_coff_backend_data ticoff0_swap_table =
     coff_SWAP_scnhdr_out,
     FILHSZ_V0, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ_V0, LINESZ, FILNMLEN,
 #ifdef COFF_LONG_FILENAMES
-    true,
+    TRUE,
 #else
-    false,
+    FALSE,
 #endif
 #ifdef COFF_LONG_SECTION_NAMES
-    true,
+    TRUE,
 #else
-    false,
+    FALSE,
 #endif
 #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS
-    true,
+    TRUE,
 #else
-    false,
+    FALSE,
 #endif
 #ifdef COFF_DEBUG_STRING_WIDE_PREFIX
     4,
@@ -473,20 +486,20 @@ static const bfd_coff_backend_data ticoff1_swap_table =
     coff_SWAP_scnhdr_out,
     FILHSZ, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN,
 #ifdef COFF_LONG_FILENAMES
-    true,
+    TRUE,
 #else
-    false,
+    FALSE,
 #endif
 #ifdef COFF_LONG_SECTION_NAMES
-    true,
+    TRUE,
 #else
-    false,
+    FALSE,
 #endif
     COFF_DEFAULT_SECTION_ALIGNMENT_POWER,
 #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS
-    true,
+    TRUE,
 #else
-    false,
+    FALSE,
 #endif
 #ifdef COFF_DEBUG_STRING_WIDE_PREFIX
     4,
index de69ecbab6a4303240ba6cbcc90cf09dd85e9f03..4185e7b18d81f615a242c639d64e278d38d98617 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP).
-   Copyright 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
    Written by Fred Fish (fnf@cygnus.com)
 
@@ -48,7 +48,7 @@ static bfd_reloc_status_type glob16_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type local16_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean coff_tic80_relocate_section
+static bfd_boolean coff_tic80_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
 static reloc_howto_type * coff_tic80_rtype_to_howto
@@ -63,295 +63,295 @@ static reloc_howto_type tic80_howto_table[] =
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         32,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         NULL,                          /* special_function */
         "RELLONG",                     /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0xffffffff,                    /* src_mask */
         0xffffffff,                    /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_MPPCR,                      /* type */
         2,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         32,                            /* bitsize */
-        true,                          /* pc_relative */
+        TRUE,                          /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_signed,      /* complain_on_overflow */
         NULL,                          /* special_function */
         "MPPCR",                       /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0xffffffff,                    /* src_mask */
         0xffffffff,                    /* dst_mask */
-        true),                         /* pcrel_offset */
+        TRUE),                         /* pcrel_offset */
 
   HOWTO (R_ABS,                                /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         32,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         NULL,                          /* special_function */
         "ABS",                         /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0xffffffff,                    /* src_mask */
         0xffffffff,                    /* dst_mask */
-        false),                                /* pcrel_offset */
+        FALSE),                                /* pcrel_offset */
 
   HOWTO (R_PPBASE,                     /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         32,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         ppbase_reloc,                  /* special_function */
         "PPBASE",                      /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0xffffffff,                    /* src_mask */
         0xffffffff,                    /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPLBASE,                    /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         32,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         ppbase_reloc,                  /* special_function */
         "PPLBASE",                     /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0xffffffff,                    /* src_mask */
         0xffffffff,                    /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PP15,                       /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         6,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         glob15_reloc,                  /* special_function */
         "PP15",                        /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x1ffc0,                       /* src_mask */
         0x1ffc0,                       /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PP15W,                      /* type */
         2,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         6,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         glob15_reloc,                  /* special_function */
         "PP15W",                       /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x1ffc0,                       /* src_mask */
         0x1ffc0,                       /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PP15H,                      /* type */
         1,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         6,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         glob15_reloc,                  /* special_function */
         "PP15H",                       /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x1ffc0,                       /* src_mask */
         0x1ffc0,                       /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PP16B,                      /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         6,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         glob16_reloc,                  /* special_function */
         "PP16B",                       /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x3ffc0,                       /* src_mask */
         0x3ffc0,                       /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPL15,                      /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         NULL,                          /* special_function */
         "PPL15",                       /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x7fff,                        /* src_mask */
         0x7fff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPL15W,                     /* type */
         2,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         NULL,                          /* special_function */
         "PPL15W",                      /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x7fff,                        /* src_mask */
         0x7fff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPL15H,                     /* type */
         1,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         NULL,                          /* special_function */
         "PPL15H",                      /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x7fff,                        /* src_mask */
         0x7fff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPL16B,                     /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         local16_reloc,                 /* special_function */
         "PPL16B",                      /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPN15,                      /* type */
         0,                             /* rightshift */
         -2,                            /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         6,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         glob15_reloc,                  /* special_function */
         "PPN15",                       /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x1ffc0,                       /* src_mask */
         0x1ffc0,                       /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPN15W,                     /* type */
         2,                             /* rightshift */
         -2,                            /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         6,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         glob15_reloc,                  /* special_function */
         "PPN15W",                      /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x1ffc0,                       /* src_mask */
         0x1ffc0,                       /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPN15H,                     /* type */
         1,                             /* rightshift */
         -2,                            /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         6,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         glob15_reloc,                  /* special_function */
         "PPN15H",                      /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x1ffc0,                       /* src_mask */
         0x1ffc0,                       /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPN16B,                     /* type */
         0,                             /* rightshift */
         -2,                            /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         6,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         glob16_reloc,                  /* special_function */
         "PPN16B",                      /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x3ffc0,                       /* src_mask */
         0x3ffc0,                       /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPLN15,                     /* type */
         0,                             /* rightshift */
         -2,                            /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         NULL,                          /* special_function */
         "PPLN15",                      /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x7fff,                        /* src_mask */
         0x7fff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPLN15W,                    /* type */
         2,                             /* rightshift */
         -2,                            /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         NULL,                          /* special_function */
         "PPLN15W",                     /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x7fff,                        /* src_mask */
         0x7fff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPLN15H,                    /* type */
         1,                             /* rightshift */
         -2,                            /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         NULL,                          /* special_function */
         "PPLN15H",                     /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0x7fff,                        /* src_mask */
         0x7fff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   HOWTO (R_PPLN16B,                    /* type */
         0,                             /* rightshift */
         -2,                            /* size (0 = byte, 1 = short, 2 = long) */
         15,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         local16_reloc,                 /* special_function */
         "PPLN16B",                     /* name */
-        true,                          /* partial_inplace */
+        TRUE,                          /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                        /* dst_mask */
-        false)                         /* pcrel_offset */
+        FALSE)                         /* pcrel_offset */
 };
 \f
 /* Special relocation functions, used when the output file is not
@@ -485,7 +485,7 @@ coff_tic80_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
 /* We need a special relocation routine to handle the PP relocs.  Most
    of this is a copy of _bfd_coff_generic_relocate_section.  */
 
-static boolean
+static bfd_boolean
 coff_tic80_relocate_section (output_bfd, info, input_bfd,
                             input_section, contents, relocs, syms,
                             sections)
@@ -540,7 +540,7 @@ coff_tic80_relocate_section (output_bfd, info, input_bfd,
       howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h,
                                       sym, &addend);
       if (howto == NULL)
-       return false;
+       return FALSE;
 
       val = 0;
 
@@ -580,8 +580,8 @@ coff_tic80_relocate_section (output_bfd, info, input_bfd,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd, input_section,
-                     rel->r_vaddr - input_section->vma, true)))
-               return false;
+                     rel->r_vaddr - input_section->vma, TRUE)))
+               return FALSE;
            }
        }
 
@@ -687,7 +687,7 @@ coff_tic80_relocate_section (output_bfd, info, input_bfd,
             bfd_archive_filename (input_bfd),
             (unsigned long) rel->r_vaddr,
             bfd_get_section_name (input_bfd, input_section));
-         return false;
+         return FALSE;
        case bfd_reloc_overflow:
          {
            const char *name;
@@ -701,17 +701,17 @@ coff_tic80_relocate_section (output_bfd, info, input_bfd,
              {
                name = _bfd_coff_internal_syment_name (input_bfd, sym, buf);
                if (name == NULL)
-                 return false;
+                 return FALSE;
              }
 
            if (! ((*info->callbacks->reloc_overflow)
                   (info, name, howto->name, (bfd_vma) 0, input_bfd,
                    input_section, rel->r_vaddr - input_section->vma)))
-             return false;
+             return FALSE;
          }
        }
     }
-  return true;
+  return TRUE;
 }
 \f
 #define TIC80COFF 1            /* Customize coffcode.h */
index 774d270d22b5d2530c4d7366cc20104dedb927d7..093764a0da0aec4182217588a9a477301b78c73e 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD back-end for WDC 65816 COFF binaries.
-   Copyright 1995, 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1995, 1996, 1997, 1999, 2000, 2001, 2002
+   Free Software Foundation, Inc.
    Written by Steve Chamberlain, <sac@cygnus.com>.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -35,16 +36,16 @@ static void w65_reloc16_extra_cases PARAMS ((bfd *,struct bfd_link_info *, struc
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1)
 static reloc_howto_type howto_table[] =
   {
-    HOWTO (R_W65_ABS8,    0,  0, 8,  false, 0, complain_overflow_bitfield, 0, "abs8", true, 0x000000ff, 0x000000ff, false),
-    HOWTO (R_W65_ABS16,   1,  0, 16, false, 0, complain_overflow_bitfield, 0, "abs16", true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO (R_W65_ABS24,   0,  2, 32, false, 0, complain_overflow_bitfield, 0, "abs24", true, 0x00ffffff, 0x00ffffff, false),
-    HOWTO (R_W65_ABS8S8,  0,  0, 8,  false, 0, complain_overflow_bitfield, 0, ">abs8", true, 0x000000ff, 0x000000ff, false),
-    HOWTO (R_W65_ABS8S16, 0,  0, 8,  false, 0, complain_overflow_bitfield, 0, "^abs8", true, 0x000000ff, 0x000000ff, false),
-    HOWTO (R_W65_ABS16S8, 1,  0, 16, false, 0, complain_overflow_bitfield, 0, ">abs16", true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO (R_W65_ABS16S16,1,  0, 16, false, 0, complain_overflow_bitfield, 0, "^abs16", true, 0x0000ffff, 0x0000ffff, false),
-    HOWTO (R_W65_PCR8,    0,  0, 8,  false, 0, complain_overflow_bitfield, 0, "pcrel8", true, 0x000000ff, 0x000000ff, true),
-    HOWTO (R_W65_PCR16,   1,  0, 16, false, 0, complain_overflow_bitfield, 0, "pcrel16", true, 0x0000ffff, 0x0000ffff, true),
-    HOWTO (R_W65_DP,      0,  0, 8,  false, 0, complain_overflow_bitfield, 0, "dp", true, 0x000000ff, 0x000000ff, false),
+    HOWTO (R_W65_ABS8,    0,  0, 8,  FALSE, 0, complain_overflow_bitfield, 0, "abs8", TRUE, 0x000000ff, 0x000000ff, FALSE),
+    HOWTO (R_W65_ABS16,   1,  0, 16, FALSE, 0, complain_overflow_bitfield, 0, "abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO (R_W65_ABS24,   0,  2, 32, FALSE, 0, complain_overflow_bitfield, 0, "abs24", TRUE, 0x00ffffff, 0x00ffffff, FALSE),
+    HOWTO (R_W65_ABS8S8,  0,  0, 8,  FALSE, 0, complain_overflow_bitfield, 0, ">abs8", TRUE, 0x000000ff, 0x000000ff, FALSE),
+    HOWTO (R_W65_ABS8S16, 0,  0, 8,  FALSE, 0, complain_overflow_bitfield, 0, "^abs8", TRUE, 0x000000ff, 0x000000ff, FALSE),
+    HOWTO (R_W65_ABS16S8, 1,  0, 16, FALSE, 0, complain_overflow_bitfield, 0, ">abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO (R_W65_ABS16S16,1,  0, 16, FALSE, 0, complain_overflow_bitfield, 0, "^abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+    HOWTO (R_W65_PCR8,    0,  0, 8,  FALSE, 0, complain_overflow_bitfield, 0, "pcrel8", TRUE, 0x000000ff, 0x000000ff, TRUE),
+    HOWTO (R_W65_PCR16,   1,  0, 16, FALSE, 0, complain_overflow_bitfield, 0, "pcrel16", TRUE, 0x0000ffff, 0x0000ffff, TRUE),
+    HOWTO (R_W65_DP,      0,  0, 8,  FALSE, 0, complain_overflow_bitfield, 0, "dp", TRUE, 0x000000ff, 0x000000ff, FALSE),
   };
 
 /* Turn a howto into a reloc number.  */
index 5f77b5e6a97c8b32bbe898b89a5ca62298219a9a..fb674a95806d35cc36e5aed30844c1a13bcffb37 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD back-end for we32k COFF files.
-   Copyright 1992, 1993, 1994, 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1992, 1993, 1994, 1999, 2000, 2002
+   Free Software Foundation, Inc.
    Contributed by Brendan Kehoe (brendan@cs.widener.edu).
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -35,7 +36,7 @@ static reloc_howto_type howto_table[] =
     EMPTY_HOWTO (3),
     EMPTY_HOWTO (4),
     EMPTY_HOWTO (5),
-  HOWTO(R_DIR32,              0,  2,   32, false, 0,complain_overflow_bitfield, 0, "dir32",    true, 0xffffffff,0xffffffff, false),
+  HOWTO(R_DIR32,              0,  2,   32, FALSE, 0,complain_overflow_bitfield, 0, "dir32",    TRUE, 0xffffffff,0xffffffff, FALSE),
     EMPTY_HOWTO (7),
     EMPTY_HOWTO (010),
     EMPTY_HOWTO (011),
@@ -44,12 +45,12 @@ static reloc_howto_type howto_table[] =
     EMPTY_HOWTO (014),
     EMPTY_HOWTO (015),
     EMPTY_HOWTO (016),
-  HOWTO(R_RELBYTE,            0,  0,   8,  false, 0, complain_overflow_bitfield, 0, "8",       true, 0x000000ff,0x000000ff, false),
-  HOWTO(R_RELWORD,            0,  1,   16, false, 0, complain_overflow_bitfield, 0, "16",      true, 0x0000ffff,0x0000ffff, false),
-  HOWTO(R_RELLONG,            0,  2,   32, false, 0, complain_overflow_bitfield, 0, "32",      true, 0xffffffff,0xffffffff, false),
-  HOWTO(R_PCRBYTE,            0,  0,   8,  true,  0, complain_overflow_signed, 0, "DISP8",    true, 0x000000ff,0x000000ff, false),
-  HOWTO(R_PCRWORD,            0,  1,   16, true,  0, complain_overflow_signed, 0, "DISP16",   true, 0x0000ffff,0x0000ffff, false),
-  HOWTO(R_PCRLONG,            0,  2,   32, true,  0, complain_overflow_signed, 0, "DISP32",   true, 0xffffffff,0xffffffff, false),
+  HOWTO(R_RELBYTE,            0,  0,   8,  FALSE, 0, complain_overflow_bitfield, 0, "8",       TRUE, 0x000000ff,0x000000ff, FALSE),
+  HOWTO(R_RELWORD,            0,  1,   16, FALSE, 0, complain_overflow_bitfield, 0, "16",      TRUE, 0x0000ffff,0x0000ffff, FALSE),
+  HOWTO(R_RELLONG,            0,  2,   32, FALSE, 0, complain_overflow_bitfield, 0, "32",      TRUE, 0xffffffff,0xffffffff, FALSE),
+  HOWTO(R_PCRBYTE,            0,  0,   8,  TRUE,  0, complain_overflow_signed, 0, "DISP8",    TRUE, 0x000000ff,0x000000ff, FALSE),
+  HOWTO(R_PCRWORD,            0,  1,   16, TRUE,  0, complain_overflow_signed, 0, "DISP16",   TRUE, 0x0000ffff,0x0000ffff, FALSE),
+  HOWTO(R_PCRLONG,            0,  2,   32, TRUE,  0, complain_overflow_signed, 0, "DISP32",   TRUE, 0xffffffff,0xffffffff, FALSE),
 };
 
 /* Turn a howto into a reloc  nunmber */
index c1d6a88fbbb5edda26531613c54712006c911a46..068cfac7b6b89e244c8e5c9fd97331cd9985e943 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Zilog Z800n COFF binaries.
-   Copyright 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001
+   Copyright 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Contributed by Cygnus Support.
    Written by Steve Chamberlain, <sac@cygnus.com>.
@@ -36,40 +36,40 @@ static int coff_z8k_select_reloc PARAMS ((reloc_howto_type *));
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1)
 
 static reloc_howto_type r_imm32 =
-HOWTO (R_IMM32, 0, 2, 32, false, 0,
-       complain_overflow_bitfield, 0, "r_imm32", true, 0xffffffff,
-       0xffffffff, false);
+HOWTO (R_IMM32, 0, 2, 32, FALSE, 0,
+       complain_overflow_bitfield, 0, "r_imm32", TRUE, 0xffffffff,
+       0xffffffff, FALSE);
 
 static reloc_howto_type r_imm4l =
-HOWTO (R_IMM4L, 0, 0, 4, false, 0,
-       complain_overflow_bitfield, 0, "r_imm4l", true, 0xf, 0xf, false);
+HOWTO (R_IMM4L, 0, 0, 4, FALSE, 0,
+       complain_overflow_bitfield, 0, "r_imm4l", TRUE, 0xf, 0xf, FALSE);
 
 static reloc_howto_type r_da =
-HOWTO (R_IMM16, 0, 1, 16, false, 0,
-       complain_overflow_bitfield, 0, "r_da", true, 0x0000ffff, 0x0000ffff,
-       false);
+HOWTO (R_IMM16, 0, 1, 16, FALSE, 0,
+       complain_overflow_bitfield, 0, "r_da", TRUE, 0x0000ffff, 0x0000ffff,
+       FALSE);
 
 static reloc_howto_type r_imm8 =
-HOWTO (R_IMM8, 0, 0, 8, false, 0,
-       complain_overflow_bitfield, 0, "r_imm8", true, 0x000000ff, 0x000000ff,
-       false);
+HOWTO (R_IMM8, 0, 0, 8, FALSE, 0,
+       complain_overflow_bitfield, 0, "r_imm8", TRUE, 0x000000ff, 0x000000ff,
+       FALSE);
 
 static reloc_howto_type r_rel16 =
-HOWTO (R_REL16, 0, 1, 16, false, 0,
-       complain_overflow_bitfield, 0, "r_rel16", true, 0x0000ffff, 0x0000ffff,
-       true);
+HOWTO (R_REL16, 0, 1, 16, FALSE, 0,
+       complain_overflow_bitfield, 0, "r_rel16", TRUE, 0x0000ffff, 0x0000ffff,
+       TRUE);
 
 static reloc_howto_type r_jr =
-HOWTO (R_JR, 0, 0, 8, true, 0, complain_overflow_signed, 0,
-       "r_jr", true, 0, 0, true);
+HOWTO (R_JR, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0,
+       "r_jr", TRUE, 0, 0, TRUE);
 
 static reloc_howto_type r_disp7 =
-HOWTO (R_DISP7, 0, 0, 7, true, 0, complain_overflow_bitfield, 0,
-       "r_disp7", true, 0, 0, true);
+HOWTO (R_DISP7, 0, 0, 7, TRUE, 0, complain_overflow_bitfield, 0,
+       "r_disp7", TRUE, 0, 0, TRUE);
 
 static reloc_howto_type r_callr =
-HOWTO (R_CALLR, 0, 1, 12, true, 0, complain_overflow_signed, 0,
-       "r_callr", true, 0xfff, 0xfff, true);
+HOWTO (R_CALLR, 0, 1, 12, TRUE, 0, complain_overflow_signed, 0,
+       "r_callr", TRUE, 0xfff, 0xfff, TRUE);
 
 /* Turn a howto into a reloc number */
 
index 61553bea81a90846ec3045705cd74687a7fb86eb..c13d54b77434fcd05101ee54b4388faad3348dd9 100644 (file)
 #define coff_SWAP_lineno_in _bfd_xcoff64_swap_lineno_in
 #define coff_SWAP_lineno_out _bfd_xcoff64_swap_lineno_out
 
-static void _bfd_xcoff64_swap_lineno_in PARAMS ((bfd *, PTR, PTR));
-static unsigned int _bfd_xcoff64_swap_lineno_out PARAMS ((bfd *, PTR, PTR));
-static boolean _bfd_xcoff64_put_symbol_name
+static void _bfd_xcoff64_swap_lineno_in
+  PARAMS ((bfd *, PTR, PTR));
+static unsigned int _bfd_xcoff64_swap_lineno_out
+  PARAMS ((bfd *, PTR, PTR));
+static bfd_boolean _bfd_xcoff64_put_symbol_name
   PARAMS ((bfd *, struct bfd_strtab_hash *, struct internal_syment *,
           const char *));
-static boolean _bfd_xcoff64_put_ldsymbol_name
+static bfd_boolean _bfd_xcoff64_put_ldsymbol_name
   PARAMS ((bfd *, struct xcoff_loader_info *, struct internal_ldsym *,
           const char *));
-static void _bfd_xcoff64_swap_sym_in PARAMS ((bfd *, PTR, PTR));
-static unsigned int _bfd_xcoff64_swap_sym_out PARAMS ((bfd *, PTR, PTR));
+static void _bfd_xcoff64_swap_sym_in
+  PARAMS ((bfd *, PTR, PTR));
+static unsigned int _bfd_xcoff64_swap_sym_out
+  PARAMS ((bfd *, PTR, PTR));
 static void _bfd_xcoff64_swap_aux_in
   PARAMS ((bfd *, PTR, int, int, int, int, PTR));
 static unsigned int _bfd_xcoff64_swap_aux_out
   PARAMS ((bfd *, PTR, int, int, int, int, PTR));
-static void xcoff64_swap_reloc_in PARAMS ((bfd *, PTR, PTR));
-static unsigned int xcoff64_swap_reloc_out PARAMS ((bfd *, PTR, PTR));
-extern boolean _bfd_xcoff_mkobject PARAMS ((bfd *));
-extern boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *));
-extern boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *));
+static void xcoff64_swap_reloc_in
+  PARAMS ((bfd *, PTR, PTR));
+static unsigned int xcoff64_swap_reloc_out
+  PARAMS ((bfd *, PTR, PTR));
+extern bfd_boolean _bfd_xcoff_mkobject
+  PARAMS ((bfd *));
+extern bfd_boolean _bfd_xcoff_copy_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+extern bfd_boolean _bfd_xcoff_is_local_label_name
+  PARAMS ((bfd *, const char *));
 extern void xcoff64_rtype2howto
   PARAMS ((arelent *, struct internal_reloc *));
 extern reloc_howto_type * xcoff64_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
-extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *));
-extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *));
-extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *));
-extern int _bfd_xcoff_stat_arch_elt PARAMS ((bfd *, struct stat *));
-extern boolean _bfd_xcoff_write_armap
+extern bfd_boolean _bfd_xcoff_slurp_armap
+  PARAMS ((bfd *));
+extern PTR _bfd_xcoff_read_ar_hdr
+  PARAMS ((bfd *));
+extern bfd *_bfd_xcoff_openr_next_archived_file
+  PARAMS ((bfd *, bfd *));
+extern int _bfd_xcoff_stat_arch_elt
+  PARAMS ((bfd *, struct stat *));
+extern bfd_boolean _bfd_xcoff_write_armap
   PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
-extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *));
-extern int _bfd_xcoff_sizeof_headers PARAMS ((bfd *, boolean));
-extern void _bfd_xcoff_swap_sym_in PARAMS ((bfd *, PTR, PTR));
-extern unsigned int _bfd_xcoff_swap_sym_out PARAMS ((bfd *, PTR, PTR));
+extern bfd_boolean _bfd_xcoff_write_archive_contents
+  PARAMS ((bfd *));
+extern int _bfd_xcoff_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
+extern void _bfd_xcoff_swap_sym_in
+  PARAMS ((bfd *, PTR, PTR));
+extern unsigned int _bfd_xcoff_swap_sym_out
+  PARAMS ((bfd *, PTR, PTR));
 extern void _bfd_xcoff_swap_aux_in
   PARAMS ((bfd *, PTR, int, int, int, int, PTR));
 extern unsigned int _bfd_xcoff_swap_aux_out
@@ -131,31 +148,40 @@ static void xcoff64_swap_ldrel_in
   PARAMS ((bfd *, const PTR, struct internal_ldrel *));
 static void xcoff64_swap_ldrel_out
   PARAMS ((bfd *, const struct internal_ldrel *, PTR d));
-static boolean xcoff64_write_object_contents PARAMS ((bfd *));
-static boolean xcoff64_ppc_relocate_section
+static bfd_boolean xcoff64_write_object_contents
+  PARAMS ((bfd *));
+static bfd_boolean xcoff64_ppc_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *,
           asection **));
-static boolean xcoff64_slurp_armap PARAMS ((bfd *));
-static const bfd_target *xcoff64_archive_p PARAMS ((bfd *));
-static bfd *xcoff64_openr_next_archived_file PARAMS ((bfd *, bfd *));
-static int xcoff64_sizeof_headers PARAMS ((bfd *, boolean));
+static bfd_boolean xcoff64_slurp_armap
+  PARAMS ((bfd *));
+static const bfd_target *xcoff64_archive_p
+  PARAMS ((bfd *));
+static bfd *xcoff64_openr_next_archived_file
+  PARAMS ((bfd *, bfd *));
+static int xcoff64_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
 static asection *xcoff64_create_csect_from_smclas
   PARAMS ((bfd *, union internal_auxent *, const char *));
-static boolean xcoff64_is_lineno_count_overflow PARAMS ((bfd *, bfd_vma));
-static boolean xcoff64_is_reloc_count_overflow PARAMS ((bfd *, bfd_vma));
+static bfd_boolean xcoff64_is_lineno_count_overflow
+  PARAMS ((bfd *, bfd_vma));
+static bfd_boolean xcoff64_is_reloc_count_overflow
+  PARAMS ((bfd *, bfd_vma));
 static bfd_vma xcoff64_loader_symbol_offset
   PARAMS ((bfd *, struct internal_ldhdr *));
 static bfd_vma xcoff64_loader_reloc_offset
   PARAMS ((bfd *, struct internal_ldhdr *));
-static boolean xcoff64_generate_rtinit
-  PARAMS ((bfd *, const char *, const char *, boolean));
-static boolean xcoff64_bad_format_hook PARAMS ((bfd *, PTR ));
+static bfd_boolean xcoff64_generate_rtinit
+  PARAMS ((bfd *, const char *, const char *, bfd_boolean));
+static bfd_boolean xcoff64_bad_format_hook
+  PARAMS ((bfd *, PTR ));
 
 /* Relocation functions */
-static boolean xcoff64_reloc_type_br PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+static bfd_boolean xcoff64_reloc_type_br
+  PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
 
-boolean (*xcoff64_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
+bfd_boolean (*xcoff64_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
   PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)) =
 {
   xcoff_reloc_type_pos,         /* R_POS   (0x00) */
@@ -212,11 +238,14 @@ boolean (*xcoff64_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
 #define coff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name
 #define coff_bfd_reloc_type_lookup xcoff64_reloc_type_lookup
 #ifdef AIX_CORE
-extern const bfd_target * rs6000coff_core_p PARAMS ((bfd *abfd));
-extern boolean rs6000coff_core_file_matches_executable_p
+extern const bfd_target * rs6000coff_core_p
+  PARAMS ((bfd *abfd));
+extern bfd_boolean rs6000coff_core_file_matches_executable_p
   PARAMS ((bfd *cbfd, bfd *ebfd));
-extern char *rs6000coff_core_file_failing_command PARAMS ((bfd *abfd));
-extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd));
+extern char *rs6000coff_core_file_failing_command
+  PARAMS ((bfd *abfd));
+extern int rs6000coff_core_file_failing_signal
+  PARAMS ((bfd *abfd));
 #define CORE_FILE_P rs6000coff_core_p
 #define coff_core_file_failing_command \
   rs6000coff_core_file_failing_command
@@ -496,33 +525,33 @@ _bfd_xcoff64_swap_aux_out (abfd, inp, type, class, indx, numaux, extp)
   return bfd_coff_auxesz (abfd);
 }
 
-static boolean
+static bfd_boolean
 _bfd_xcoff64_put_symbol_name (abfd, strtab, sym, name)
      bfd *abfd;
      struct bfd_strtab_hash *strtab;
      struct internal_syment *sym;
      const char *name;
 {
-  boolean hash;
+  bfd_boolean hash;
   bfd_size_type indx;
 
-  hash = true;
+  hash = TRUE;
 
   if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
-    hash = false;
+    hash = FALSE;
 
-  indx = _bfd_stringtab_add (strtab, name, hash, false);
+  indx = _bfd_stringtab_add (strtab, name, hash, FALSE);
 
   if (indx == (bfd_size_type) -1)
-    return false;
+    return FALSE;
 
   sym->_n._n_n._n_zeroes = 0;
   sym->_n._n_n._n_offset = STRING_SIZE_SIZE + indx;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 _bfd_xcoff64_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct xcoff_loader_info *ldinfo;
@@ -547,8 +576,8 @@ _bfd_xcoff64_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
                    bfd_realloc ((PTR) ldinfo->strings, newalc));
       if (newstrings == NULL)
        {
-         ldinfo->failed = true;
-         return false;
+         ldinfo->failed = TRUE;
+         return FALSE;
        }
       ldinfo->string_alc = newalc;
       ldinfo->strings = newstrings;
@@ -561,7 +590,7 @@ _bfd_xcoff64_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
   ldsym->_l._l_l._l_offset = ldinfo->string_size + 2;
   ldinfo->string_size += len + 3;
 
-  return true;
+  return TRUE;
 }
 
 /* Routines to swap information in the XCOFF .loader section.  If we
@@ -720,20 +749,20 @@ xcoff64_swap_ldrel_out (abfd, src, d)
   bfd_put_32 (abfd, src->l_symndx, dst->l_symndx);
 }
 
-static boolean
+static bfd_boolean
 xcoff64_write_object_contents (abfd)
      bfd *abfd;
 {
   asection *current;
-  boolean hasrelocs = false;
-  boolean haslinno = false;
+  bfd_boolean hasrelocs = FALSE;
+  bfd_boolean haslinno = FALSE;
   file_ptr scn_base;
   file_ptr reloc_base;
   file_ptr lineno_base;
   file_ptr sym_base;
   unsigned long reloc_size = 0;
   unsigned long lnno_size = 0;
-  boolean long_section_names;
+  bfd_boolean long_section_names;
   asection *text_sec = ((void *) 0);
   asection *data_sec = ((void *) 0);
   asection *bss_sec = ((void *) 0);
@@ -745,7 +774,7 @@ xcoff64_write_object_contents (abfd)
   if (! abfd->output_has_begun)
     {
       if (! bfd_coff_compute_section_file_positions (abfd))
-       return false;
+       return FALSE;
     }
 
   /* Work out the size of the reloc and linno areas.  */
@@ -801,9 +830,9 @@ xcoff64_write_object_contents (abfd)
   internal_f.f_nscns = 0;
 
   if (bfd_seek (abfd, scn_base, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
-  long_section_names = false;
+  long_section_names = FALSE;
   for (current = abfd->sections; current != NULL; current = current->next)
     {
       struct internal_scnhdr section;
@@ -836,9 +865,9 @@ xcoff64_write_object_contents (abfd)
 
       section.s_nlnno = current->lineno_count;
       if (current->reloc_count != 0)
-       hasrelocs = true;
+       hasrelocs = TRUE;
       if (current->lineno_count != 0)
-       haslinno = true;
+       haslinno = TRUE;
 
       section.s_flags = sec_to_styp_flags (current->name, current->flags);
 
@@ -858,7 +887,7 @@ xcoff64_write_object_contents (abfd)
       amount = bfd_coff_scnhsz (abfd);
       if (bfd_coff_swap_scnhdr_out (abfd, &section, &buff) == 0
          || bfd_bwrite ((PTR) (&buff), amount, abfd) != amount)
-       return false;
+       return FALSE;
     }
 
   internal_f.f_timdat = 0;
@@ -909,14 +938,14 @@ xcoff64_write_object_contents (abfd)
       int firstundef;
 
       if (!coff_renumber_symbols (abfd, &firstundef))
-       return false;
+       return FALSE;
       coff_mangle_symbols (abfd);
       if (! coff_write_symbols (abfd))
-       return false;
+       return FALSE;
       if (! coff_write_linenumbers (abfd))
-       return false;
+       return FALSE;
       if (! coff_write_relocs (abfd, firstundef))
-       return false;
+       return FALSE;
 
       internal_f.f_symptr = sym_base;
       internal_f.f_nsyms = bfd_get_symcount (abfd);
@@ -1028,7 +1057,7 @@ xcoff64_write_object_contents (abfd)
     }
 
   if (bfd_seek (abfd, (file_ptr) 0, 0) != 0)
-    return false;
+    return FALSE;
 
   {
     char * buff;
@@ -1036,7 +1065,7 @@ xcoff64_write_object_contents (abfd)
 
     buff = bfd_malloc (amount);
     if (buff == NULL)
-      return false;
+      return FALSE;
 
     bfd_coff_swap_filehdr_out (abfd, (PTR) &internal_f, (PTR) buff);
     amount = bfd_bwrite ((PTR) buff, amount, abfd);
@@ -1044,7 +1073,7 @@ xcoff64_write_object_contents (abfd)
     free (buff);
 
     if (amount != bfd_coff_filhsz (abfd))
-      return false;
+      return FALSE;
   }
 
   if (abfd->flags & EXEC_P)
@@ -1054,7 +1083,7 @@ xcoff64_write_object_contents (abfd)
 
       buff = bfd_malloc (amount);
       if (buff == NULL)
-       return false;
+       return FALSE;
 
       bfd_coff_swap_aouthdr_out (abfd, (PTR) &internal_a, (PTR) buff);
       amount = bfd_bwrite ((PTR) buff, amount, abfd);
@@ -1062,13 +1091,13 @@ xcoff64_write_object_contents (abfd)
       free (buff);
 
       if (amount != bfd_coff_aoutsz (abfd))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 xcoff64_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
                       val, addend, relocation, contents)
      bfd *input_bfd;
@@ -1085,7 +1114,7 @@ xcoff64_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
   struct xcoff_link_hash_entry *h;
 
   if (0 > rel->r_symndx)
-    return false;
+    return FALSE;
 
   h = obj_xcoff_sym_hashes (input_bfd)[rel->r_symndx];
 
@@ -1133,7 +1162,7 @@ xcoff64_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
       howto->complain_on_overflow = complain_overflow_dont;
     }
 
-  howto->pc_relative = true;
+  howto->pc_relative = TRUE;
   howto->src_mask &= ~3;
   howto->dst_mask = howto->src_mask;
 
@@ -1143,13 +1172,13 @@ xcoff64_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
   *relocation = val + addend;
   *relocation -= (input_section->output_section->vma
                  + input_section->output_offset);
-  return true;
+  return TRUE;
 }
 
 /* This is the relocation function for the PowerPC64.
    See xcoff_ppc_relocation_section for more information. */
 
-boolean
+bfd_boolean
 xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
                              input_section, contents, relocs, syms,
                              sections)
@@ -1191,16 +1220,16 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
       howto.rightshift = 0;
       howto.bitsize = (rel->r_size & 0x3f) + 1;
       howto.size = howto.bitsize > 16 ? (howto.bitsize > 32 ? 4 : 2) : 1;
-      howto.pc_relative = false;
+      howto.pc_relative = FALSE;
       howto.bitpos = 0;
       howto.complain_on_overflow = (rel->r_size & 0x80
                                    ? complain_overflow_signed
                                    : complain_overflow_bitfield);
       howto.special_function = NULL;
       howto.name = "internal";
-      howto.partial_inplace = true;
+      howto.partial_inplace = TRUE;
       howto.src_mask = howto.dst_mask = N_ONES (howto.bitsize);
-      howto.pcrel_offset = false;
+      howto.pcrel_offset = FALSE;
 
       /* symbol */
       val = 0;
@@ -1252,8 +1281,8 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
                {
                  if (! ((*info->callbacks->undefined_symbol)
                         (info, h->root.root.string, input_bfd, input_section,
-                         rel->r_vaddr - input_section->vma, true)))
-                   return false;
+                         rel->r_vaddr - input_section->vma, TRUE)))
+                   return FALSE;
 
                  /* Don't try to process the reloc.  It can't help, and
                     it may generate another error.  */
@@ -1266,7 +1295,7 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
          || ((*xcoff64_calculate_relocation[rel->r_type])
              (input_bfd, input_section, output_bfd, rel, sym, &howto, val,
               addend, &relocation, contents)))
-       return false;
+       return FALSE;
 
       /* address */
       address = rel->r_vaddr - input_section->vma;
@@ -1320,7 +1349,7 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
          if (! ((*info->callbacks->reloc_overflow)
                 (info, name, reloc_type_name, (bfd_vma) 0, input_bfd,
                  input_section, rel->r_vaddr - input_section->vma)))
-           return false;
+           return FALSE;
        }
 
       /* Add RELOCATION to the right bits of VALUE_TO_RELOCATE.  */
@@ -1337,7 +1366,7 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
        bfd_put_64 (input_bfd, value_to_relocate, location);
 
     }
-  return true;
+  return TRUE;
 }
 
 \f
@@ -1354,105 +1383,105 @@ reloc_howto_type xcoff64_howto_table[] =
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_POS_64",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit relocation, but store negative value.  */
   HOWTO (R_NEG,                        /* type */
         0,                     /* rightshift */
         -4,                    /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_NEG",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit PC relative relocation.  */
   HOWTO (R_REL,                        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_REL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit TOC relative relocation.  */
   HOWTO (R_TOC,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TOC",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* I don't really know what this is. */
   HOWTO (R_RTB,                        /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RTB",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* External TOC relative symbol.  */
   HOWTO (R_GL,                 /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_GL",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Local TOC relative symbol.         */
   HOWTO (R_TCL,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TCL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (7),
 
@@ -1461,15 +1490,15 @@ reloc_howto_type xcoff64_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_BA_26",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03fffffc,            /* src_mask */
         0x03fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (9),
 
@@ -1478,15 +1507,15 @@ reloc_howto_type xcoff64_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_BR",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03fffffc,            /* src_mask */
         0x03fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (0xb),
 
@@ -1495,30 +1524,30 @@ reloc_howto_type xcoff64_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RL",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Load address.  */
   HOWTO (R_RLA,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RLA",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (0xe),
 
@@ -1527,15 +1556,15 @@ reloc_howto_type xcoff64_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "R_REF",               /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (0x10),
   EMPTY_HOWTO (0x11),
@@ -1545,209 +1574,209 @@ reloc_howto_type xcoff64_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TRL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* TOC relative load address.         */
   HOWTO (R_TRLA,               /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TRLA",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable relative branch.  */
   HOWTO (R_RRTBI,              /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RRTBI",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable absolute branch.  */
   HOWTO (R_RRTBA,              /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RRTBA",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable call absolute indirect.         */
   HOWTO (R_CAI,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_CAI",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable call relative. */
   HOWTO (R_CREL,               /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_CREL",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (R_RBA,                        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBA",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03fffffc,            /* src_mask */
         0x03fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (R_RBAC,               /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBAC",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch relative.  */
   HOWTO (R_RBR,                        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBR_26",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03fffffc,            /* src_mask */
         0x03fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (R_RBRC,               /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBRC",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_POS,                        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_POS_32",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit Non modifiable absolute branch.  */
   HOWTO (R_BA,                 /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_BA_16",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xfffc,                /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch relative.  */
   HOWTO (R_RBR,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBR_16",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (R_RBA,                        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBA_16",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 };
 
@@ -1817,7 +1846,7 @@ xcoff64_reloc_type_lookup (abfd, code)
 
 /* Read in the armap of an XCOFF archive.  */
 
-static boolean
+static bfd_boolean
 xcoff64_slurp_armap (abfd)
      bfd *abfd;
 {
@@ -1835,40 +1864,40 @@ xcoff64_slurp_armap (abfd)
 
   if (xcoff_ardata (abfd) == NULL)
     {
-      bfd_has_map (abfd) = false;
-      return true;
+      bfd_has_map (abfd) = FALSE;
+      return TRUE;
     }
 
   off = bfd_scan_vma (xcoff_ardata_big (abfd)->symoff64,
                      (const char **) NULL, 10);
   if (off == 0)
     {
-      bfd_has_map (abfd) = false;
-      return true;
+      bfd_has_map (abfd) = FALSE;
+      return TRUE;
     }
 
   if (bfd_seek (abfd, off, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   /* The symbol table starts with a normal archive header.  */
   if (bfd_bread ((PTR) &hdr, (bfd_size_type) SIZEOF_AR_HDR_BIG, abfd)
       != SIZEOF_AR_HDR_BIG)
-    return false;
+    return FALSE;
 
   /* Skip the name (normally empty).  */
   namlen = strtol (hdr.namlen, (char **) NULL, 10);
   pos = ((namlen + 1) & ~(size_t) 1) + SXCOFFARFMAG;
   if (bfd_seek (abfd, pos, SEEK_CUR) != 0)
-    return false;
+    return FALSE;
 
   sz = bfd_scan_vma (hdr.size, (const char **) NULL, 10);
 
   /* Read in the entire symbol table.  */
   contents = (bfd_byte *) bfd_alloc (abfd, sz);
   if (contents == NULL)
-    return false;
+    return FALSE;
   if (bfd_bread ((PTR) contents, sz, abfd) != sz)
-    return false;
+    return FALSE;
 
   /* The symbol table starts with an eight byte count.  */
   c = H_GET_64 (abfd, contents);
@@ -1876,13 +1905,13 @@ xcoff64_slurp_armap (abfd)
   if (c * 8 >= sz)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
   amt = c;
   amt *= sizeof (carsym);
   bfd_ardata (abfd)->symdefs = (carsym *) bfd_alloc (abfd, amt);
   if (bfd_ardata (abfd)->symdefs == NULL)
-    return false;
+    return FALSE;
 
   /* After the count comes a list of eight byte file offsets.  */
   for (i = 0, arsym = bfd_ardata (abfd)->symdefs, p = contents + 8;
@@ -1899,15 +1928,15 @@ xcoff64_slurp_armap (abfd)
       if (p >= cend)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       arsym->name = (char *) p;
     }
 
   bfd_ardata (abfd)->symdef_count = c;
-  bfd_has_map (abfd) = true;
+  bfd_has_map (abfd) = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 
@@ -1990,7 +2019,7 @@ xcoff64_openr_next_archived_file (archive, last_file)
      bfd *archive;
      bfd *last_file;
 {
-  file_ptr filestart;
+  bfd_vma filestart;
 
   if ((xcoff_ardata (archive) == NULL)
       || ! xcoff_big_format_p (archive))
@@ -2019,7 +2048,7 @@ xcoff64_openr_next_archived_file (archive, last_file)
       return NULL;
     }
 
-  return _bfd_get_elt_at_filepos (archive, filestart);
+  return _bfd_get_elt_at_filepos (archive, (file_ptr) filestart);
 }
 
 /* We can't use the usual coff_sizeof_headers routine, because AIX
@@ -2029,7 +2058,7 @@ xcoff64_openr_next_archived_file (archive, last_file)
 static int
 xcoff64_sizeof_headers (abfd, reloc)
      bfd *abfd;
-     boolean reloc ATTRIBUTE_UNUSED;
+     bfd_boolean reloc ATTRIBUTE_UNUSED;
 {
   int size;
 
@@ -2085,20 +2114,20 @@ xcoff64_create_csect_from_smclas (abfd, aux, symbol_name)
   return return_value;
 }
 
-static boolean
+static bfd_boolean
 xcoff64_is_lineno_count_overflow (abfd, value)
      bfd *abfd ATTRIBUTE_UNUSED;
      bfd_vma value ATTRIBUTE_UNUSED;
 {
-  return false;
+  return FALSE;
 }
 
-static boolean
+static bfd_boolean
 xcoff64_is_reloc_count_overflow (abfd, value)
      bfd *abfd ATTRIBUTE_UNUSED;
      bfd_vma value ATTRIBUTE_UNUSED;
 {
-  return false;
+  return FALSE;
 }
 
 static bfd_vma
@@ -2117,7 +2146,7 @@ xcoff64_loader_reloc_offset (abfd, ldhdr)
   return (ldhdr->l_rldoff);
 }
 
-static boolean
+static bfd_boolean
 xcoff64_bad_format_hook (abfd, filehdr)
      bfd * abfd;
      PTR filehdr;
@@ -2126,20 +2155,20 @@ xcoff64_bad_format_hook (abfd, filehdr)
 
   /* Check flavor first.  */
   if (bfd_get_flavour (abfd) != bfd_target_xcoff_flavour)
-    return false;
+    return FALSE;
 
   if (bfd_xcoff_magic_number (abfd) != internal_f->f_magic)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 xcoff64_generate_rtinit (abfd, init, fini, rtld)
      bfd *abfd;
      const char *init;
      const char *fini;
-     boolean rtld;
+     bfd_boolean rtld;
 {
   bfd_byte filehdr_ext[FILHSZ];
   bfd_byte scnhdr_ext[SCNHSZ * 3];
@@ -2166,7 +2195,7 @@ xcoff64_generate_rtinit (abfd, init, fini, rtld)
   char *rtld_name = "__rtld";
 
   if (! bfd_xcoff_rtinit_size (abfd))
-    return false;
+    return FALSE;
 
   initsz = (init == NULL ? 0 : 1 + strlen (init));
   finisz = (fini == NULL ? 0 : 1 + strlen (fini));
@@ -2255,7 +2284,7 @@ xcoff64_generate_rtinit (abfd, init, fini, rtld)
   data_buffer = NULL;
   data_buffer = (bfd_byte *) bfd_zmalloc (data_buffer_size);
   if (data_buffer == NULL)
-    return false;
+    return FALSE;
 
   if (initsz)
     {
@@ -2291,7 +2320,7 @@ xcoff64_generate_rtinit (abfd, init, fini, rtld)
 
   string_table = (bfd_byte *) bfd_zmalloc (string_table_size);
   if (string_table == NULL)
-    return false;
+    return FALSE;
 
   val = string_table_size;
   bfd_put_32 (abfd, val, &string_table[0]);
@@ -2455,7 +2484,7 @@ xcoff64_generate_rtinit (abfd, init, fini, rtld)
   free (data_buffer);
   data_buffer = NULL;
 
-  return true;
+  return TRUE;
 }
 
 /* The typical dynamic reloc.  */
@@ -2465,15 +2494,15 @@ HOWTO (0,                       /* type */
        0,                      /* rightshift */
        4,                      /* size (0 = byte, 1 = short, 2 = long) */
        64,                     /* bitsize */
-       false,                  /* pc_relative */
+       FALSE,                  /* pc_relative */
        0,                      /* bitpos */
        complain_overflow_bitfield, /* complain_on_overflow */
        0,                      /* special_function */
        "R_POS",                        /* name */
-       true,                   /* partial_inplace */
+       TRUE,                   /* partial_inplace */
        MINUS_ONE,              /* src_mask */
        MINUS_ONE,              /* dst_mask */
-       false);                 /* pcrel_offset */
+       FALSE);                 /* pcrel_offset */
 
 static unsigned long xcoff64_glink_code[10] =
 {
@@ -2510,10 +2539,10 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
       RELSZ,
       LINESZ,
       FILNMLEN,
-      true,                    /* _bfd_coff_long_filenames */
-      false,                   /* _bfd_coff_long_section_names */
+      TRUE,                    /* _bfd_coff_long_filenames */
+      FALSE,                   /* _bfd_coff_long_section_names */
       3,                       /* _bfd_coff_default_section_alignment_power */
-      true,                    /* _bfd_coff_force_symnames_in_strings */
+      TRUE,                    /* _bfd_coff_force_symnames_in_strings */
       4,                       /* _bfd_coff_debug_string_prefix_length */
       coff_swap_filehdr_in,
       coff_swap_aouthdr_in,
@@ -2652,11 +2681,11 @@ const bfd_target rs6000coff64_vec =
 
     /* Copy */
     _bfd_xcoff_copy_private_bfd_data,
-    ((boolean (*) (bfd *, bfd *)) bfd_true),
-    ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
-    ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
-    ((boolean (*) (bfd *, flagword)) bfd_true),
-    ((boolean (*) (bfd *, void * )) bfd_true),
+    ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, flagword)) bfd_true),
+    ((bfd_boolean (*) (bfd *, void * )) bfd_true),
 
     /* Core */
     coff_core_file_failing_command,
@@ -2666,7 +2695,7 @@ const bfd_target rs6000coff64_vec =
     /* Archive */
     xcoff64_slurp_armap,
     bfd_false,
-    ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
+    ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
     bfd_dont_truncate_arname,
     _bfd_xcoff_write_armap,
     _bfd_xcoff_read_ar_hdr,
@@ -2723,10 +2752,14 @@ const bfd_target rs6000coff64_vec =
     (void *) &bfd_xcoff_backend_data,
   };
 
-extern const bfd_target *xcoff64_core_p PARAMS ((bfd *));
-extern boolean xcoff64_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
-extern char *xcoff64_core_file_failing_command PARAMS ((bfd *));
-extern int xcoff64_core_file_failing_signal PARAMS ((bfd *));
+extern const bfd_target *xcoff64_core_p
+  PARAMS ((bfd *));
+extern bfd_boolean xcoff64_core_file_matches_executable_p
+  PARAMS ((bfd *, bfd *));
+extern char *xcoff64_core_file_failing_command
+  PARAMS ((bfd *));
+extern int xcoff64_core_file_failing_signal
+  PARAMS ((bfd *));
 
 /* AIX 5 */
 static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data =
@@ -2750,10 +2783,10 @@ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data =
       RELSZ,
       LINESZ,
       FILNMLEN,
-      true,                    /* _bfd_coff_long_filenames */
-      false,                   /* _bfd_coff_long_section_names */
+      TRUE,                    /* _bfd_coff_long_filenames */
+      FALSE,                   /* _bfd_coff_long_section_names */
       3,                       /* _bfd_coff_default_section_alignment_power */
-      true,                    /* _bfd_coff_force_symnames_in_strings */
+      TRUE,                    /* _bfd_coff_force_symnames_in_strings */
       4,                       /* _bfd_coff_debug_string_prefix_length */
       coff_swap_filehdr_in,
       coff_swap_aouthdr_in,
@@ -2891,11 +2924,11 @@ const bfd_target aix5coff64_vec =
 
     /* Copy */
     _bfd_xcoff_copy_private_bfd_data,
-    ((boolean (*) (bfd *, bfd *)) bfd_true),
-    ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
-    ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
-    ((boolean (*) (bfd *, flagword)) bfd_true),
-    ((boolean (*) (bfd *, void * )) bfd_true),
+    ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
+    ((bfd_boolean (*) (bfd *, flagword)) bfd_true),
+    ((bfd_boolean (*) (bfd *, void * )) bfd_true),
 
     /* Core */
     xcoff64_core_file_failing_command,
@@ -2905,7 +2938,7 @@ const bfd_target aix5coff64_vec =
     /* Archive */
     xcoff64_slurp_armap,
     bfd_false,
-    ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
+    ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
     bfd_dont_truncate_arname,
     _bfd_xcoff_write_armap,
     _bfd_xcoff_read_ar_hdr,
index 694fb12f4d869f2546bfbcb0ffdee74116c3b9b7..36ae1a9807f0baf851d9eefbec093b2a7fb7c3ca 100644 (file)
@@ -296,7 +296,7 @@ CODE_FRAGMENT
 .  struct lineno_cache_entry *lineno;
 .
 .  {* Have the line numbers been relocated yet ? *}
-.  boolean done_lineno;
+.  bfd_boolean done_lineno;
 .} coff_symbol_type;
 
 */
@@ -309,42 +309,58 @@ CODE_FRAGMENT
 
 #define STRING_SIZE_SIZE (4)
 
-static long sec_to_styp_flags PARAMS ((const char *, flagword));
-static boolean styp_to_sec_flags
+static long sec_to_styp_flags
+  PARAMS ((const char *, flagword));
+static bfd_boolean styp_to_sec_flags
   PARAMS ((bfd *, PTR, const char *, asection *, flagword *));
-static boolean coff_bad_format_hook PARAMS ((bfd *, PTR));
+static bfd_boolean coff_bad_format_hook
+  PARAMS ((bfd *, PTR));
 static void coff_set_custom_section_alignment
   PARAMS ((bfd *, asection *, const struct coff_section_alignment_entry *,
           const unsigned int));
-static boolean coff_new_section_hook PARAMS ((bfd *, asection *));
-static boolean coff_set_arch_mach_hook PARAMS ((bfd *, PTR));
-static boolean coff_write_relocs PARAMS ((bfd *, int));
-static boolean coff_set_flags
+static bfd_boolean coff_new_section_hook
+  PARAMS ((bfd *, asection *));
+static bfd_boolean coff_set_arch_mach_hook
+  PARAMS ((bfd *, PTR));
+static bfd_boolean coff_write_relocs
+  PARAMS ((bfd *, int));
+static bfd_boolean coff_set_flags
   PARAMS ((bfd *, unsigned int *, unsigned short *));
-static boolean coff_set_arch_mach
+static bfd_boolean coff_set_arch_mach
   PARAMS ((bfd *, enum bfd_architecture, unsigned long)) ATTRIBUTE_UNUSED;
-static boolean coff_compute_section_file_positions PARAMS ((bfd *));
-static boolean coff_write_object_contents PARAMS ((bfd *)) ATTRIBUTE_UNUSED;
-static boolean coff_set_section_contents
+static bfd_boolean coff_compute_section_file_positions
+  PARAMS ((bfd *));
+static bfd_boolean coff_write_object_contents
+  PARAMS ((bfd *)) ATTRIBUTE_UNUSED;
+static bfd_boolean coff_set_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-static PTR buy_and_read PARAMS ((bfd *, file_ptr, bfd_size_type));
-static boolean coff_slurp_line_table PARAMS ((bfd *, asection *));
-static boolean coff_slurp_symbol_table PARAMS ((bfd *));
+static PTR buy_and_read
+  PARAMS ((bfd *, file_ptr, bfd_size_type));
+static bfd_boolean coff_slurp_line_table
+  PARAMS ((bfd *, asection *));
+static bfd_boolean coff_slurp_symbol_table
+  PARAMS ((bfd *));
 static enum coff_symbol_classification coff_classify_symbol
   PARAMS ((bfd *, struct internal_syment *));
-static boolean coff_slurp_reloc_table PARAMS ((bfd *, asection *, asymbol **));
+static bfd_boolean coff_slurp_reloc_table
+  PARAMS ((bfd *, asection *, asymbol **));
 static long coff_canonicalize_reloc
   PARAMS ((bfd *, asection *, arelent **, asymbol **));
 #ifndef coff_mkobject_hook
-static PTR coff_mkobject_hook PARAMS ((bfd *, PTR,  PTR));
+static PTR coff_mkobject_hook
+  PARAMS ((bfd *, PTR,  PTR));
 #endif
 #ifdef COFF_WITH_PE
-static flagword handle_COMDAT PARAMS ((bfd *, flagword, PTR, const char *, asection *));
+static flagword handle_COMDAT
+  PARAMS ((bfd *, flagword, PTR, const char *, asection *));
 #endif
 #ifdef COFF_IMAGE_WITH_PE
-static boolean coff_read_word PARAMS ((bfd *, unsigned int *));
-static unsigned int coff_compute_checksum PARAMS ((bfd *));
-static boolean coff_apply_checksum PARAMS ((bfd *));
+static bfd_boolean coff_read_word
+  PARAMS ((bfd *, unsigned int *));
+static unsigned int coff_compute_checksum
+  PARAMS ((bfd *));
+static bfd_boolean coff_apply_checksum
+  PARAMS ((bfd *));
 #endif
 \f
 /* void warning(); */
@@ -564,7 +580,7 @@ sec_to_styp_flags (sec_name, sec_flags)
 
 #ifndef COFF_WITH_PE
 
-static boolean
+static bfd_boolean
 styp_to_sec_flags (abfd, hdr, name, section, flags_ptr)
      bfd *abfd ATTRIBUTE_UNUSED;
      PTR hdr;
@@ -699,10 +715,10 @@ styp_to_sec_flags (abfd, hdr, name, section, flags_ptr)
 #endif
 
   if (flags_ptr == NULL)
-    return false;
+    return FALSE;
 
   * flags_ptr = sec_flags;
-  return true;
+  return TRUE;
 }
 
 #else /* COFF_WITH_PE */
@@ -973,7 +989,7 @@ handle_COMDAT (abfd, sec_flags, hdr, name, section)
    required information.  FIXME: Is the COMDAT symbol index used for
    any purpose other than objdump?  */
 
-static boolean
+static bfd_boolean
 styp_to_sec_flags (abfd, hdr, name, section, flags_ptr)
      bfd *abfd;
      PTR hdr;
@@ -984,7 +1000,7 @@ styp_to_sec_flags (abfd, hdr, name, section, flags_ptr)
   struct internal_scnhdr *internal_s = (struct internal_scnhdr *) hdr;
   long styp_flags = internal_s->s_flags;
   flagword sec_flags;
-  boolean result = true;
+  bfd_boolean result = TRUE;
 
   /* Assume read only unless IMAGE_SCN_MEM_WRITE is specified.  */
   sec_flags = SEC_READONLY;
@@ -1085,7 +1101,7 @@ styp_to_sec_flags (abfd, hdr, name, section, flags_ptr)
          (*_bfd_error_handler)
            (_("%s (%s): Section flag %s (0x%x) ignored"),
             bfd_archive_filename (abfd), name, unhandled, flag);
-         result = false;
+         result = FALSE;
        }
     }
 
@@ -1173,10 +1189,10 @@ Special entry points for gdb to swap in coff symbol table parts:
 .  unsigned int _bfd_relsz;
 .  unsigned int _bfd_linesz;
 .  unsigned int _bfd_filnmlen;
-.  boolean _bfd_coff_long_filenames;
-.  boolean _bfd_coff_long_section_names;
+.  bfd_boolean _bfd_coff_long_filenames;
+.  bfd_boolean _bfd_coff_long_section_names;
 .  unsigned int _bfd_coff_default_section_alignment_power;
-.  boolean _bfd_coff_force_symnames_in_strings;
+.  bfd_boolean _bfd_coff_force_symnames_in_strings;
 .  unsigned int _bfd_coff_debug_string_prefix_length;
 .
 .  void (*_bfd_coff_swap_filehdr_in)
@@ -1191,32 +1207,32 @@ Special entry points for gdb to swap in coff symbol table parts:
 .  void (*_bfd_coff_swap_reloc_in)
 .    PARAMS ((bfd *abfd, PTR, PTR));
 .
-.  boolean (*_bfd_coff_bad_format_hook)
+.  bfd_boolean (*_bfd_coff_bad_format_hook)
 .    PARAMS ((bfd *, PTR));
 .
-.  boolean (*_bfd_coff_set_arch_mach_hook)
+.  bfd_boolean (*_bfd_coff_set_arch_mach_hook)
 .    PARAMS ((bfd *, PTR));
 .
 .  PTR (*_bfd_coff_mkobject_hook)
 .    PARAMS ((bfd *, PTR, PTR));
 .
-.  boolean (*_bfd_styp_to_sec_flags_hook)
+.  bfd_boolean (*_bfd_styp_to_sec_flags_hook)
 .    PARAMS ((bfd *, PTR, const char *, asection *, flagword *));
 .
 .  void (*_bfd_set_alignment_hook)
 .    PARAMS ((bfd *, asection *, PTR));
 .
-.  boolean (*_bfd_coff_slurp_symbol_table)
+.  bfd_boolean (*_bfd_coff_slurp_symbol_table)
 .    PARAMS ((bfd *));
 .
-.  boolean (*_bfd_coff_symname_in_debug)
+.  bfd_boolean (*_bfd_coff_symname_in_debug)
 .    PARAMS ((bfd *, struct internal_syment *));
 .
-.  boolean (*_bfd_coff_pointerize_aux_hook)
+.  bfd_boolean (*_bfd_coff_pointerize_aux_hook)
 .    PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
 .           unsigned int, combined_entry_type *));
 .
-.  boolean (*_bfd_coff_print_aux)
+.  bfd_boolean (*_bfd_coff_print_aux)
 .    PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *,
 .           combined_entry_type *, unsigned int));
 .
@@ -1231,13 +1247,13 @@ Special entry points for gdb to swap in coff symbol table parts:
 .  enum coff_symbol_classification (*_bfd_coff_classify_symbol)
 .    PARAMS ((bfd *, struct internal_syment *));
 .
-.  boolean (*_bfd_coff_compute_section_file_positions)
+.  bfd_boolean (*_bfd_coff_compute_section_file_positions)
 .    PARAMS ((bfd *));
 .
-.  boolean (*_bfd_coff_start_final_link)
+.  bfd_boolean (*_bfd_coff_start_final_link)
 .    PARAMS ((bfd *, struct bfd_link_info *));
 .
-.  boolean (*_bfd_coff_relocate_section)
+.  bfd_boolean (*_bfd_coff_relocate_section)
 .    PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
 .           struct internal_reloc *, struct internal_syment *, asection **));
 .
@@ -1246,19 +1262,19 @@ Special entry points for gdb to swap in coff symbol table parts:
 .           struct coff_link_hash_entry *, struct internal_syment *,
 .           bfd_vma *));
 .
-.  boolean (*_bfd_coff_adjust_symndx)
+.  bfd_boolean (*_bfd_coff_adjust_symndx)
 .    PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
-.           struct internal_reloc *, boolean *));
+.           struct internal_reloc *, bfd_boolean *));
 .
-.  boolean (*_bfd_coff_link_add_one_symbol)
+.  bfd_boolean (*_bfd_coff_link_add_one_symbol)
 .    PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword,
-.           asection *, bfd_vma, const char *, boolean, boolean,
+.           asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
 .           struct bfd_link_hash_entry **));
 .
-.  boolean (*_bfd_coff_link_output_has_begun)
+.  bfd_boolean (*_bfd_coff_link_output_has_begun)
 .    PARAMS ((bfd *, struct coff_final_link_info *));
 .
-.  boolean (*_bfd_coff_final_link_postscript)
+.  bfd_boolean (*_bfd_coff_final_link_postscript)
 .    PARAMS ((bfd *, struct coff_final_link_info *));
 .
 .} bfd_coff_backend_data;
@@ -1394,7 +1410,7 @@ Special entry points for gdb to swap in coff symbol table parts:
 
 /* See whether the magic number matches.  */
 
-static boolean
+static bfd_boolean
 coff_bad_format_hook (abfd, filehdr)
      bfd * abfd ATTRIBUTE_UNUSED;
      PTR filehdr;
@@ -1402,7 +1418,7 @@ coff_bad_format_hook (abfd, filehdr)
   struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
 
   if (BADMAG (*internal_f))
-    return false;
+    return FALSE;
 
   /* if the optional header is NULL or not the correct size then
      quit; the only difference I can see between m88k dgux headers (MC88DMAGIC)
@@ -1415,10 +1431,10 @@ coff_bad_format_hook (abfd, filehdr)
 
 #if defined(M88) || defined(I960)
   if (internal_f->f_opthdr != 0 && bfd_coff_aoutsz (abfd) != internal_f->f_opthdr)
-    return false;
+    return FALSE;
 #endif
 
-  return true;
+  return TRUE;
 }
 
 /* Check whether this section uses an alignment other than the
@@ -1487,7 +1503,7 @@ static const unsigned int coff_section_alignment_table_size =
 /* Initialize a section structure with information peculiar to this
    particular implementation of COFF.  */
 
-static boolean
+static bfd_boolean
 coff_new_section_hook (abfd, section)
      bfd * abfd;
      asection * section;
@@ -1514,7 +1530,7 @@ coff_new_section_hook (abfd, section)
   amt = sizeof (combined_entry_type) * 10;
   native = (combined_entry_type *) bfd_zalloc (abfd, amt);
   if (native == NULL)
-    return false;
+    return FALSE;
 
   /* We don't need to set up n_name, n_value, or n_scnum in the native
      symbol information, since they'll be overriden by the BFD symbol
@@ -1531,7 +1547,7 @@ coff_new_section_hook (abfd, section)
                                     coff_section_alignment_table,
                                     coff_section_alignment_table_size);
 
-  return true;
+  return TRUE;
 }
 
 #ifdef COFF_ALIGN_IN_SECTION_HEADER
@@ -1703,9 +1719,9 @@ coff_set_alignment_hook (abfd, section, scnhdr)
 
 #ifndef coff_mkobject
 
-static boolean coff_mkobject PARAMS ((bfd *));
+static bfd_boolean coff_mkobject PARAMS ((bfd *));
 
-static boolean
+static bfd_boolean
 coff_mkobject (abfd)
      bfd * abfd;
 {
@@ -1714,7 +1730,7 @@ coff_mkobject (abfd)
 
   abfd->tdata.coff_obj_data = (struct coff_tdata *) bfd_zalloc (abfd, amt);
   if (abfd->tdata.coff_obj_data == 0)
-    return false;
+    return FALSE;
   coff = coff_data (abfd);
   coff->symbols = (coff_symbol_type *) NULL;
   coff->conversion_table = (unsigned int *) NULL;
@@ -1724,7 +1740,7 @@ coff_mkobject (abfd)
 
 /*  make_abs_section(abfd);*/
 
-  return true;
+  return TRUE;
 }
 #endif
 
@@ -1778,7 +1794,7 @@ coff_mkobject_hook (abfd, filehdr, aouthdr)
 # else
       xcoff->xcoff64 = 0;
 # endif
-      xcoff->full_aouthdr = true;
+      xcoff->full_aouthdr = TRUE;
       xcoff->toc = internal_a->o_toc;
       xcoff->sntoc = internal_a->o_sntoc;
       xcoff->snentry = internal_a->o_snentry;
@@ -1815,7 +1831,7 @@ coff_mkobject_hook (abfd, filehdr, aouthdr)
    would be target independent and would also be much more successful
    at linking together COFF files for different architectures.  */
 
-static boolean
+static bfd_boolean
 coff_set_arch_mach_hook (abfd, filehdr)
      bfd *abfd;
      PTR filehdr;
@@ -1917,7 +1933,7 @@ coff_set_arch_mach_hook (abfd, filehdr)
          machine = bfd_mach_z8002;
          break;
        default:
-         return false;
+         return FALSE;
        }
       break;
 #endif
@@ -1996,7 +2012,7 @@ coff_set_arch_mach_hook (abfd, filehdr)
                    || bfd_bread (buf, amt, abfd) != amt)
                  {
                    free (buf);
-                   return false;
+                   return FALSE;
                  }
                bfd_coff_swap_sym_in (abfd, (PTR) buf, (PTR) &sym);
                if (sym.n_sclass == C_FILE)
@@ -2162,15 +2178,15 @@ coff_set_arch_mach_hook (abfd, filehdr)
     }
 
   bfd_default_set_arch_mach (abfd, arch, machine);
-  return true;
+  return TRUE;
 }
 
 #ifdef SYMNAME_IN_DEBUG
 
-static boolean symname_in_debug_hook
+static bfd_boolean symname_in_debug_hook
   PARAMS ((bfd *, struct internal_syment *));
 
-static boolean
+static bfd_boolean
 symname_in_debug_hook (abfd, sym)
      bfd * abfd ATTRIBUTE_UNUSED;
      struct internal_syment *sym;
@@ -2181,7 +2197,7 @@ symname_in_debug_hook (abfd, sym)
 #else
 
 #define symname_in_debug_hook \
-  (boolean (*) PARAMS ((bfd *, struct internal_syment *))) bfd_false
+  (bfd_boolean (*) PARAMS ((bfd *, struct internal_syment *))) bfd_false
 
 #endif
 
@@ -2193,12 +2209,12 @@ symname_in_debug_hook (abfd, sym)
 
 /* Handle the csect auxent of a C_EXT or C_HIDEXT symbol.  */
 
-static boolean coff_pointerize_aux_hook
+static bfd_boolean coff_pointerize_aux_hook
   PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
           unsigned int, combined_entry_type *));
 
 /*ARGSUSED*/
-static boolean
+static bfd_boolean
 coff_pointerize_aux_hook (abfd, table_base, symbol, indaux, aux)
      bfd *abfd ATTRIBUTE_UNUSED;
      combined_entry_type *table_base;
@@ -2218,14 +2234,14 @@ coff_pointerize_aux_hook (abfd, table_base, symbol, indaux, aux)
          aux->fix_scnlen = 1;
        }
 
-      /* Return true to indicate that the caller should not do any
+      /* Return TRUE to indicate that the caller should not do any
          further work on this auxent.  */
-      return true;
+      return TRUE;
     }
 
-  /* Return false to indicate that this auxent should be handled by
+  /* Return FALSE to indicate that this auxent should be handled by
      the caller.  */
-  return false;
+  return FALSE;
 }
 
 #else
@@ -2233,12 +2249,12 @@ coff_pointerize_aux_hook (abfd, table_base, symbol, indaux, aux)
 
 /* We don't want to pointerize bal entries.  */
 
-static boolean coff_pointerize_aux_hook
+static bfd_boolean coff_pointerize_aux_hook
   PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
           unsigned int, combined_entry_type *));
 
 /*ARGSUSED*/
-static boolean
+static bfd_boolean
 coff_pointerize_aux_hook (abfd, table_base, symbol, indaux, aux)
      bfd *abfd ATTRIBUTE_UNUSED;
      combined_entry_type *table_base ATTRIBUTE_UNUSED;
@@ -2246,7 +2262,7 @@ coff_pointerize_aux_hook (abfd, table_base, symbol, indaux, aux)
      unsigned int indaux;
      combined_entry_type *aux ATTRIBUTE_UNUSED;
 {
-  /* Return true if we don't want to pointerize this aux entry, which
+  /* Return TRUE if we don't want to pointerize this aux entry, which
      is the case for the lastfirst aux entry for a C_LEAFPROC symbol.  */
   return (indaux == 1
          && (symbol->u.syment.n_sclass == C_LEAFPROC
@@ -2261,13 +2277,13 @@ coff_pointerize_aux_hook (abfd, table_base, symbol, indaux, aux)
 #endif /* ! I960 */
 #endif /* ! RS6000COFF_C */
 
-/* Print an aux entry.  This returns true if it has printed it.  */
+/* Print an aux entry.  This returns TRUE if it has printed it.  */
 
-static boolean coff_print_aux
+static bfd_boolean coff_print_aux
   PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *,
           combined_entry_type *, unsigned int));
 
-static boolean
+static bfd_boolean
 coff_print_aux (abfd, file, table_base, symbol, aux, indaux)
      bfd *abfd ATTRIBUTE_UNUSED;
      FILE *file ATTRIBUTE_UNUSED;
@@ -2314,12 +2330,12 @@ coff_print_aux (abfd, file, table_base, symbol, aux, indaux)
               (unsigned int) aux->u.auxent.x_csect.x_smclas,
               aux->u.auxent.x_csect.x_stab,
               (unsigned int) aux->u.auxent.x_csect.x_snstab);
-      return true;
+      return TRUE;
     }
 #endif
 
-  /* Return false to indicate that no special action was taken.  */
-  return false;
+  /* Return FALSE to indicate that no special action was taken.  */
+  return FALSE;
 }
 
 /*
@@ -2358,7 +2374,7 @@ compare_arelent_ptr (x, y)
 
 #endif /* TARG_AUX */
 
-static boolean
+static bfd_boolean
 coff_write_relocs (abfd, first_undef)
      bfd * abfd;
      int first_undef;
@@ -2382,14 +2398,14 @@ coff_write_relocs (abfd, first_undef)
        amt *= sizeof (arelent *);
        p = (arelent **) bfd_malloc (amt);
        if (p == NULL && s->reloc_count > 0)
-         return false;
+         return FALSE;
        memcpy (p, s->orelocation, (size_t) amt);
        qsort (p, s->reloc_count, sizeof (arelent *), compare_arelent_ptr);
       }
 #endif
 
       if (bfd_seek (abfd, s->rel_filepos, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
 #ifdef COFF_WITH_PE
       if (obj_pe (abfd) && s->reloc_count >= 0xffff)
@@ -2402,7 +2418,7 @@ coff_write_relocs (abfd, first_undef)
          coff_swap_reloc_out (abfd, &n, &dst);
          if (bfd_bwrite ((PTR) & dst, (bfd_size_type) bfd_coff_relsz (abfd),
                         abfd) != bfd_coff_relsz (abfd))
-           return false;
+           return FALSE;
        }
 #endif
 
@@ -2482,7 +2498,7 @@ coff_write_relocs (abfd, first_undef)
          coff_swap_reloc_out (abfd, &n, &dst);
          if (bfd_bwrite ((PTR) & dst, (bfd_size_type) bfd_coff_relsz (abfd),
                         abfd) != bfd_coff_relsz (abfd))
-           return false;
+           return FALSE;
        }
 
 #ifdef TARG_AUX
@@ -2491,13 +2507,13 @@ coff_write_relocs (abfd, first_undef)
 #endif
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set flags and magic number of a coff file from architecture and machine
-   type.  Result is true if we can represent the arch&type, false if not.  */
+   type.  Result is TRUE if we can represent the arch&type, FALSE if not.  */
 
-static boolean
+static bfd_boolean
 coff_set_flags (abfd, magicp, flagsp)
      bfd * abfd;
      unsigned int *magicp ATTRIBUTE_UNUSED;
@@ -2517,9 +2533,9 @@ coff_set_flags (abfd, magicp, flagsp)
          *flagsp = F_Z8002;
          break;
        default:
-         return false;
+         return FALSE;
        }
-      return true;
+      return TRUE;
 #endif
 #ifdef I960ROMAGIC
 
@@ -2559,10 +2575,10 @@ coff_set_flags (abfd, magicp, flagsp)
            flags = F_I960HX;
            break;
          default:
-           return false;
+           return FALSE;
          }
        *flagsp = flags;
-       return true;
+       return TRUE;
       }
       break;
 #endif
@@ -2570,7 +2586,7 @@ coff_set_flags (abfd, magicp, flagsp)
 #ifdef TIC30MAGIC
     case bfd_arch_tic30:
       *magicp = TIC30MAGIC;
-      return true;
+      return TRUE;
 #endif
 
 #ifdef TICOFF_DEFAULT_MAGIC
@@ -2593,16 +2609,16 @@ coff_set_flags (abfd, magicp, flagsp)
               *magicp = TICOFF2MAGIC;
               break;
             default:
-              return false;
+              return FALSE;
             }
         }
-      return true;
+      return TRUE;
 #endif
 
 #ifdef TIC80_ARCH_MAGIC
     case bfd_arch_tic80:
       *magicp = TIC80_ARCH_MAGIC;
-      return true;
+      return TRUE;
 #endif
 #ifdef ARMMAGIC
     case bfd_arch_arm:
@@ -2640,12 +2656,12 @@ coff_set_flags (abfd, magicp, flagsp)
        case bfd_mach_arm_5TE: * flagsp |= F_ARM_5; break;
        case bfd_mach_arm_XScale: * flagsp |= F_ARM_5; break;
        }
-      return true;
+      return TRUE;
 #endif
 #ifdef PPCMAGIC
     case bfd_arch_powerpc:
       *magicp = PPCMAGIC;
-      return true;
+      return TRUE;
       break;
 #endif
 #ifdef I386MAGIC
@@ -2655,19 +2671,19 @@ coff_set_flags (abfd, magicp, flagsp)
       /* Just overwrite the usual value if we're doing Lynx.  */
       *magicp = LYNXCOFFMAGIC;
 #endif
-      return true;
+      return TRUE;
       break;
 #endif
 #ifdef I860MAGIC
     case bfd_arch_i860:
       *magicp = I860MAGIC;
-      return true;
+      return TRUE;
       break;
 #endif
 #ifdef IA64MAGIC
     case bfd_arch_ia64:
       *magicp = IA64MAGIC;
-      return true;
+      return TRUE;
       break;
 #endif
 #ifdef MC68MAGIC
@@ -2686,14 +2702,14 @@ coff_set_flags (abfd, magicp, flagsp)
       /* Just overwrite the usual value if we're doing Lynx.  */
       *magicp = LYNXCOFFMAGIC;
 #endif
-      return true;
+      return TRUE;
       break;
 #endif
 
 #ifdef MC88MAGIC
     case bfd_arch_m88k:
       *magicp = MC88OMAGIC;
-      return true;
+      return TRUE;
       break;
 #endif
 #ifdef H8300MAGIC
@@ -2702,13 +2718,13 @@ coff_set_flags (abfd, magicp, flagsp)
        {
        case bfd_mach_h8300:
          *magicp = H8300MAGIC;
-         return true;
+         return TRUE;
        case bfd_mach_h8300h:
          *magicp = H8300HMAGIC;
-         return true;
+         return TRUE;
        case bfd_mach_h8300s:
          *magicp = H8300SMAGIC;
-         return true;
+         return TRUE;
        }
       break;
 #endif
@@ -2723,14 +2739,14 @@ coff_set_flags (abfd, magicp, flagsp)
       else
        *magicp = SH_ARCH_MAGIC_LITTLE;
 #endif
-      return true;
+      return TRUE;
       break;
 #endif
 
 #ifdef MIPS_ARCH_MAGIC_WINCE
     case bfd_arch_mips:
       *magicp = MIPS_ARCH_MAGIC_WINCE;
-      return true;
+      return TRUE;
       break;
 #endif
 
@@ -2741,14 +2757,14 @@ coff_set_flags (abfd, magicp, flagsp)
       /* Just overwrite the usual value if we're doing Lynx.  */
       *magicp = LYNXCOFFMAGIC;
 #endif
-      return true;
+      return TRUE;
       break;
 #endif
 
 #ifdef H8500MAGIC
     case bfd_arch_h8500:
       *magicp = H8500MAGIC;
-      return true;
+      return TRUE;
       break;
 #endif
 #ifdef A29K_MAGIC_BIG
@@ -2757,14 +2773,14 @@ coff_set_flags (abfd, magicp, flagsp)
        *magicp = A29K_MAGIC_BIG;
       else
        *magicp = A29K_MAGIC_LITTLE;
-      return true;
+      return TRUE;
       break;
 #endif
 
 #ifdef WE32KMAGIC
     case bfd_arch_we32k:
       *magicp = WE32KMAGIC;
-      return true;
+      return TRUE;
       break;
 #endif
 
@@ -2775,20 +2791,20 @@ coff_set_flags (abfd, magicp, flagsp)
 #endif
       BFD_ASSERT (bfd_get_flavour (abfd) == bfd_target_xcoff_flavour);
       *magicp = bfd_xcoff_magic_number (abfd);
-      return true;
+      return TRUE;
       break;
 #endif
 
 #ifdef MCOREMAGIC
     case bfd_arch_mcore:
       * magicp = MCOREMAGIC;
-      return true;
+      return TRUE;
 #endif
 
 #ifdef W65MAGIC
     case bfd_arch_w65:
       *magicp = W65MAGIC;
-      return true;
+      return TRUE;
 #endif
 
 #ifdef OR32_MAGIC_BIG
@@ -2797,19 +2813,19 @@ coff_set_flags (abfd, magicp, flagsp)
         * magicp = OR32_MAGIC_BIG;
       else
         * magicp = OR32_MAGIC_LITTLE;
-      return true;
+      return TRUE;
 #endif
 
     default:                   /* Unknown architecture.  */
-      /* Fall through to "return false" below, to avoid
+      /* Fall through to "return FALSE" below, to avoid
         "statement never reached" errors on the one below.  */
       break;
     }
 
-  return false;
+  return FALSE;
 }
 
-static boolean
+static bfd_boolean
 coff_set_arch_mach (abfd, arch, machine)
      bfd * abfd;
      enum bfd_architecture arch;
@@ -2819,13 +2835,13 @@ coff_set_arch_mach (abfd, arch, machine)
   unsigned short dummy2;
 
   if (! bfd_default_set_arch_mach (abfd, arch, machine))
-    return false;
+    return FALSE;
 
   if (arch != bfd_arch_unknown
       && ! coff_set_flags (abfd, &dummy1, &dummy2))
-    return false;              /* We can't represent this type */
+    return FALSE;              /* We can't represent this type */
 
-  return true;                 /* We're easy ...  */
+  return TRUE;                 /* We're easy ...  */
 }
 
 #ifdef COFF_IMAGE_WITH_PE
@@ -2862,14 +2878,14 @@ sort_by_secaddr (arg1, arg2)
 #undef ALIGN_SECTIONS_IN_FILE
 #endif
 
-static boolean
+static bfd_boolean
 coff_compute_section_file_positions (abfd)
      bfd * abfd;
 {
   asection *current;
   asection *previous = (asection *) NULL;
   file_ptr sofar = bfd_coff_filhsz (abfd);
-  boolean align_adjust;
+  bfd_boolean align_adjust;
 #ifdef ALIGN_SECTIONS_IN_FILE
   file_ptr old_sofar;
 #endif
@@ -2975,7 +2991,7 @@ coff_compute_section_file_positions (abfd)
     amt = sizeof (struct asection *) * (count + 1);
     section_list = bfd_malloc (amt);
     if (section_list == NULL)
-      return false;
+      return FALSE;
 
     i = 0;
     for (current = abfd->sections; current != NULL; current = current->next)
@@ -3028,7 +3044,7 @@ coff_compute_section_file_positions (abfd)
   }
 #endif /* ! COFF_IMAGE_WITH_PE */
 
-  align_adjust = false;
+  align_adjust = FALSE;
   for (current = abfd->sections;
        current != (asection *) NULL;
        current = current->next)
@@ -3041,7 +3057,7 @@ coff_compute_section_file_positions (abfd)
          bfd_size_type amt = sizeof (struct coff_section_tdata);
          current->used_by_bfd = (PTR) bfd_zalloc (abfd, amt);
          if (current->used_by_bfd == NULL)
-           return false;
+           return FALSE;
        }
       if (pei_section_data (abfd, current) == NULL)
        {
@@ -3049,7 +3065,7 @@ coff_compute_section_file_positions (abfd)
          coff_section_data (abfd, current)->tdata
            = (PTR) bfd_zalloc (abfd, amt);
          if (coff_section_data (abfd, current)->tdata == NULL)
-           return false;
+           return FALSE;
        }
       if (pei_section_data (abfd, current)->virt_size == 0)
        pei_section_data (abfd, current)->virt_size = current->_raw_size;
@@ -3079,14 +3095,14 @@ coff_compute_section_file_positions (abfd)
 #ifdef RS6000COFF_C
          /* AIX loader checks the text section alignment of (vma - filepos)
             So even though the filepos may be aligned wrt the o_algntext, for
-            AIX executables, this check fails. This shows up when an native 
+            AIX executables, this check fails. This shows up when a native
             AIX executable is stripped with gnu strip because the default vma
             of native is 0x10000150 but default for gnu is 0x10000140.  Gnu
-            stripped gnu excutable passes this check because the filepos is 
+            stripped gnu excutable passes this check because the filepos is
             0x0140.  This problem also show up with 64 bit shared objects. The
             data section must also be aligned.  */
-         if (!strcmp (current->name, _TEXT) 
-             || !strcmp (current->name, _DATA)) 
+         if (!strcmp (current->name, _TEXT)
+             || !strcmp (current->name, _DATA))
            {
              bfd_vma pad;
              bfd_vma align;
@@ -3095,8 +3111,8 @@ coff_compute_section_file_positions (abfd)
 
              align = 1 << current->alignment_power;
              pad = abs (current->vma - sofar) % align;
-             
-             if (pad) 
+
+             if (pad)
                {
                  pad = align - pad;
                  sofar += pad;
@@ -3158,7 +3174,7 @@ coff_compute_section_file_positions (abfd)
          _raw_size, in case the caller only writes out data to the
          unaligned _raw_size.  */
       if (pei_section_data (abfd, current)->virt_size < current->_raw_size)
-       align_adjust = true;
+       align_adjust = TRUE;
 #endif
 
 #ifdef _LIB
@@ -3184,7 +3200,7 @@ coff_compute_section_file_positions (abfd)
       b = 0;
       if (bfd_seek (abfd, sofar - 1, SEEK_SET) != 0
          || bfd_bwrite (&b, (bfd_size_type) 1, abfd) != 1)
-       return false;
+       return FALSE;
     }
 
   /* Make sure the relocations are aligned.  We don't need to make
@@ -3193,9 +3209,9 @@ coff_compute_section_file_positions (abfd)
   sofar = BFD_ALIGN (sofar, 1 << COFF_DEFAULT_SECTION_ALIGNMENT_POWER);
 
   obj_relocbase (abfd) = sofar;
-  abfd->output_has_begun = true;
+  abfd->output_has_begun = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 #if 0
@@ -3207,7 +3223,7 @@ coff_compute_section_file_positions (abfd)
 /* If .file, .text, .data, .bss symbols are missing, add them.  */
 /* @@ Should we only be adding missing symbols, or overriding the aux
    values for existing section symbols?  */
-static boolean
+static bfd_boolean
 coff_add_missing_symbols (abfd)
      bfd *abfd;
 {
@@ -3251,13 +3267,13 @@ coff_add_missing_symbols (abfd)
   need_file = 0;
 
   if (!need_text && !need_data && !need_bss && !need_file)
-    return true;
+    return TRUE;
   nsyms += need_text + need_data + need_bss + need_file;
   amt = nsyms;
   amt *= sizeof (asymbol *);
   sympp2 = (asymbol **) bfd_alloc (abfd, amt);
   if (!sympp2)
-    return false;
+    return FALSE;
   memcpy (sympp2, sympp, i * sizeof (asymbol *));
   if (need_file)
     {
@@ -3272,7 +3288,7 @@ coff_add_missing_symbols (abfd)
     sympp2[i++] = coff_section_symbol (abfd, _BSS);
   BFD_ASSERT (i == nsyms);
   bfd_set_symtab (abfd, sympp2, nsyms);
-  return true;
+  return TRUE;
 }
 
 #endif /* 0 */
@@ -3282,7 +3298,7 @@ coff_add_missing_symbols (abfd)
 static unsigned int pelength;
 static unsigned int peheader;
 
-static boolean
+static bfd_boolean
 coff_read_word (abfd, value)
   bfd *abfd;
   unsigned int *value;
@@ -3294,7 +3310,7 @@ coff_read_word (abfd, value)
   if (status < 1)
     {
       *value = 0;
-      return false;
+      return FALSE;
     }
 
   if (status == 1)
@@ -3304,14 +3320,14 @@ coff_read_word (abfd, value)
 
   pelength += (unsigned int) status;
 
-  return true;
+  return TRUE;
 }
 
 static unsigned int
 coff_compute_checksum (abfd)
   bfd *abfd;
 {
-  boolean more_data;
+  bfd_boolean more_data;
   file_ptr filepos;
   unsigned int value;
   unsigned int total;
@@ -3335,7 +3351,7 @@ coff_compute_checksum (abfd)
   return (0xffff & (total + (total >> 0x10)));
 }
 
-static boolean
+static bfd_boolean
 coff_apply_checksum (abfd)
   bfd *abfd;
 {
@@ -3343,51 +3359,51 @@ coff_apply_checksum (abfd)
   unsigned int checksum = 0;
 
   if (bfd_seek (abfd, 0x3c, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (!coff_read_word (abfd, &peheader))
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, peheader + 0x58, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   checksum = 0;
   bfd_bwrite (&checksum, (bfd_size_type) 4, abfd);
 
   if (bfd_seek (abfd, peheader, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   computed = coff_compute_checksum (abfd);
 
   checksum = computed + pelength;
 
   if (bfd_seek (abfd, peheader + 0x58, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   bfd_bwrite (&checksum, (bfd_size_type) 4, abfd);
 
-  return true;
+  return TRUE;
 }
 
 #endif /* COFF_IMAGE_WITH_PE */
 
 /* SUPPRESS 558 */
 /* SUPPRESS 529 */
-static boolean
+static bfd_boolean
 coff_write_object_contents (abfd)
      bfd * abfd;
 {
   asection *current;
-  boolean hasrelocs = false;
-  boolean haslinno = false;
-  boolean hasdebug = false;
+  bfd_boolean hasrelocs = FALSE;
+  bfd_boolean haslinno = FALSE;
+  bfd_boolean hasdebug = FALSE;
   file_ptr scn_base;
   file_ptr reloc_base;
   file_ptr lineno_base;
   file_ptr sym_base;
   unsigned long reloc_size = 0, reloc_count = 0;
   unsigned long lnno_size = 0;
-  boolean long_section_names;
+  bfd_boolean long_section_names;
   asection *text_sec = NULL;
   asection *data_sec = NULL;
   asection *bss_sec = NULL;
@@ -3407,7 +3423,7 @@ coff_write_object_contents (abfd)
   if (! abfd->output_has_begun)
     {
       if (! coff_compute_section_file_positions (abfd))
-       return false;
+       return FALSE;
     }
 
   reloc_base = obj_relocbase (abfd);
@@ -3479,21 +3495,21 @@ coff_write_object_contents (abfd)
     }
 
   if (bfd_seek (abfd, scn_base, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
-  long_section_names = false;
+  long_section_names = FALSE;
   for (current = abfd->sections;
        current != NULL;
        current = current->next)
     {
       struct internal_scnhdr section;
-      boolean is_reloc_section = false;
+      bfd_boolean is_reloc_section = FALSE;
 
 #ifdef COFF_IMAGE_WITH_PE
       if (strcmp (current->name, ".reloc") == 0)
        {
-         is_reloc_section = true;
-         hasrelocs = true;
+         is_reloc_section = TRUE;
+         hasrelocs = TRUE;
          pe_data (abfd)->has_reloc_section = 1;
        }
 #endif
@@ -3514,7 +3530,7 @@ coff_write_object_contents (abfd)
            memset (section.s_name, 0, SCNNMLEN);
            sprintf (section.s_name, "/%lu", (unsigned long) string_size);
            string_size += len + 1;
-           long_section_names = true;
+           long_section_names = TRUE;
          }
       }
 #endif
@@ -3565,13 +3581,13 @@ coff_write_object_contents (abfd)
 #ifndef COFF_IMAGE_WITH_PE
       /* In PEI, relocs come in the .reloc section.  */
       if (current->reloc_count != 0)
-       hasrelocs = true;
+       hasrelocs = TRUE;
 #endif
       if (current->lineno_count != 0)
-       haslinno = true;
+       haslinno = TRUE;
       if ((current->flags & SEC_DEBUGGING) != 0
          && ! is_reloc_section)
-       hasdebug = true;
+       hasdebug = TRUE;
 
 #ifdef RS6000COFF_C
 #ifndef XCOFF64
@@ -3628,7 +3644,7 @@ coff_write_object_contents (abfd)
 
          if (coff_swap_scnhdr_out (abfd, &section, &buff) == 0
              || bfd_bwrite ((PTR) &buff, amt, abfd) != amt)
-           return false;
+           return FALSE;
        }
 
 #ifdef COFF_WITH_PE
@@ -3752,7 +3768,7 @@ coff_write_object_contents (abfd)
          amt = bfd_coff_scnhsz (abfd);
          if (coff_swap_scnhdr_out (abfd, &scnhdr, &buff) == 0
              || bfd_bwrite ((PTR) &buff, amt, abfd) != amt)
-           return false;
+           return FALSE;
        }
     }
 #endif
@@ -3971,17 +3987,17 @@ coff_write_object_contents (abfd)
       int firstundef;
 #if 0
       if (!coff_add_missing_symbols (abfd))
-       return false;
+       return FALSE;
 #endif
       if (!coff_renumber_symbols (abfd, &firstundef))
-       return false;
+       return FALSE;
       coff_mangle_symbols (abfd);
       if (! coff_write_symbols (abfd))
-       return false;
+       return FALSE;
       if (! coff_write_linenumbers (abfd))
-       return false;
+       return FALSE;
       if (! coff_write_relocs (abfd, firstundef))
-       return false;
+       return FALSE;
     }
 #ifdef COFF_LONG_SECTION_NAMES
   else if (long_section_names && ! obj_coff_strings_written (abfd))
@@ -3989,7 +4005,7 @@ coff_write_object_contents (abfd)
       /* If we have long section names we have to write out the string
          table even if there are no symbols.  */
       if (! coff_write_symbols (abfd))
-       return false;
+       return FALSE;
     }
 #endif
 #ifdef COFF_IMAGE_WITH_PE
@@ -4005,7 +4021,7 @@ coff_write_object_contents (abfd)
                    (file_ptr) BFD_ALIGN (sym_base, COFF_PAGE_SIZE) - 1,
                    SEEK_SET) != 0
          || bfd_bwrite (&b, (bfd_size_type) 1, abfd) != 1)
-       return false;
+       return FALSE;
     }
 #endif
 #endif
@@ -4124,7 +4140,7 @@ coff_write_object_contents (abfd)
 
   /* now write them */
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   {
     char * buff;
@@ -4132,7 +4148,7 @@ coff_write_object_contents (abfd)
 
     buff = bfd_malloc (amount);
     if (buff == NULL)
-      return false;
+      return FALSE;
 
     bfd_coff_swap_filehdr_out (abfd, (PTR) &internal_f, (PTR) buff);
     amount = bfd_bwrite ((PTR) buff, amount, abfd);
@@ -4140,7 +4156,7 @@ coff_write_object_contents (abfd)
     free (buff);
 
     if (amount != bfd_coff_filhsz (abfd))
-      return false;
+      return FALSE;
   }
 
   if (abfd->flags & EXEC_P)
@@ -4152,7 +4168,7 @@ coff_write_object_contents (abfd)
 
       buff = bfd_malloc (amount);
       if (buff == NULL)
-       return false;
+       return FALSE;
 
       coff_swap_aouthdr_out (abfd, (PTR) &internal_a, (PTR) buff);
       amount = bfd_bwrite ((PTR) buff, amount, abfd);
@@ -4160,11 +4176,11 @@ coff_write_object_contents (abfd)
       free (buff);
 
       if (amount != bfd_coff_aoutsz (abfd))
-       return false;
+       return FALSE;
 
 #ifdef COFF_IMAGE_WITH_PE
       if (! coff_apply_checksum (abfd))
-       return false;
+       return FALSE;
 #endif
     }
 #ifdef RS6000COFF_C
@@ -4180,14 +4196,14 @@ coff_write_object_contents (abfd)
       else
        size = SMALL_AOUTSZ;
       if (bfd_bwrite ((PTR) &buff, (bfd_size_type) size, abfd) != size)
-       return false;
+       return FALSE;
     }
 #endif
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 coff_set_section_contents (abfd, section, location, offset, count)
      bfd * abfd;
      sec_ptr section;
@@ -4198,7 +4214,7 @@ coff_set_section_contents (abfd, section, location, offset, count)
   if (! abfd->output_has_begun)        /* set by bfd.c handler */
     {
       if (! coff_compute_section_file_positions (abfd))
-       return false;
+       return FALSE;
     }
 
 #if defined(_LIB) && !defined(TARG_AUX)
@@ -4244,18 +4260,18 @@ coff_set_section_contents (abfd, section, location, offset, count)
   /* Don't write out bss sections - one way to do this is to
        see if the filepos has not been set.  */
   if (section->filepos == 0)
-    return true;
+    return TRUE;
 
   if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (count == 0)
-    return true;
+    return TRUE;
 
   return bfd_bwrite (location, count, abfd) == count;
 }
 #if 0
-static boolean
+static bfd_boolean
 coff_close_and_cleanup (abfd)
      bfd *abfd;
 {
@@ -4264,19 +4280,19 @@ coff_close_and_cleanup (abfd)
       {
       case bfd_archive:
        if (!_bfd_write_archive_contents (abfd))
-         return false;
+         return FALSE;
        break;
       case bfd_object:
        if (!coff_write_object_contents (abfd))
-         return false;
+         return FALSE;
        break;
       default:
        bfd_set_error (bfd_error_invalid_operation);
-       return false;
+       return FALSE;
       }
 
   /* We depend on bfd_close to free all the memory on the objalloc.  */
-  return true;
+  return TRUE;
 }
 
 #endif
@@ -4320,7 +4336,7 @@ SUBSUBSECTION
 
 */
 
-static boolean
+static bfd_boolean
 coff_slurp_line_table (abfd, asect)
      bfd *abfd;
      asection *asect;
@@ -4336,7 +4352,7 @@ coff_slurp_line_table (abfd, asect)
   amt = ((bfd_size_type) asect->lineno_count + 1) * sizeof (alent);
   lineno_cache = (alent *) bfd_alloc (abfd, amt);
   if (lineno_cache == NULL)
-    return false;
+    return FALSE;
   else
     {
       unsigned int counter = 0;
@@ -4351,11 +4367,11 @@ coff_slurp_line_table (abfd, asect)
 
          if (cache_ptr->line_number == 0)
            {
-             boolean warned;
+             bfd_boolean warned;
              bfd_signed_vma symndx;
              coff_symbol_type *sym;
 
-             warned = false;
+             warned = FALSE;
              symndx = dst.l_addr.l_symndx;
              if (symndx < 0
                  || (bfd_vma) symndx >= obj_raw_syment_count (abfd))
@@ -4364,7 +4380,7 @@ coff_slurp_line_table (abfd, asect)
                    (_("%s: warning: illegal symbol index %ld in line numbers"),
                     bfd_archive_filename (abfd), dst.l_addr.l_symndx);
                  symndx = 0;
-                 warned = true;
+                 warned = TRUE;
                }
              /* FIXME: We should not be casting between ints and
                  pointers like this.  */
@@ -4396,14 +4412,14 @@ coff_slurp_line_table (abfd, asect)
     }
   asect->lineno = lineno_cache;
   /* FIXME, free native_lineno here, or use alloca or something.  */
-  return true;
+  return TRUE;
 }
 
 /* Slurp in the symbol table, converting it to generic form.  Note
    that if coff_relocate_section is defined, the linker will read
    symbols via coff_link_add_symbols, rather than via this routine.  */
 
-static boolean
+static bfd_boolean
 coff_slurp_symbol_table (abfd)
      bfd * abfd;
 {
@@ -4415,12 +4431,12 @@ coff_slurp_symbol_table (abfd)
   unsigned int number_of_symbols = 0;
 
   if (obj_symbols (abfd))
-    return true;
+    return TRUE;
 
   /* Read in the symbol table */
   if ((native_symbols = coff_get_normalized_symtab (abfd)) == NULL)
     {
-      return (false);
+      return FALSE;
     }                          /* on error */
 
   /* Allocate enough room for all the symbols in cached form */
@@ -4428,14 +4444,14 @@ coff_slurp_symbol_table (abfd)
   amt *= sizeof (coff_symbol_type);
   cached_area = (coff_symbol_type *) bfd_alloc (abfd, amt);
   if (cached_area == NULL)
-    return false;
+    return FALSE;
 
   amt = obj_raw_syment_count (abfd);
   amt *= sizeof (unsigned int);
   table_ptr = (unsigned int *) bfd_alloc (abfd, amt);
 
   if (table_ptr == NULL)
-    return false;
+    return FALSE;
   else
     {
       coff_symbol_type *dst = cached_area;
@@ -4453,7 +4469,7 @@ coff_slurp_symbol_table (abfd)
          dst->symbol.section = coff_section_from_bfd_index (abfd,
                                                     src->u.syment.n_scnum);
          dst->symbol.flags = 0;
-         dst->done_lineno = false;
+         dst->done_lineno = FALSE;
 
          switch (src->u.syment.n_sclass)
            {
@@ -4767,7 +4783,7 @@ coff_slurp_symbol_table (abfd)
        p = p->next;
       }
   }
-  return true;
+  return TRUE;
 }                              /* coff_slurp_symbol_table() */
 
 /* Classify a COFF symbol.  A couple of targets have globally visible
@@ -4919,7 +4935,7 @@ SUBSUBSECTION
   }
 #endif
 
-static boolean
+static bfd_boolean
 coff_slurp_reloc_table (abfd, asect, symbols)
      bfd * abfd;
      sec_ptr asect;
@@ -4932,20 +4948,20 @@ coff_slurp_reloc_table (abfd, asect, symbols)
   bfd_size_type amt;
 
   if (asect->relocation)
-    return true;
+    return TRUE;
   if (asect->reloc_count == 0)
-    return true;
+    return TRUE;
   if (asect->flags & SEC_CONSTRUCTOR)
-    return true;
+    return TRUE;
   if (!coff_slurp_symbol_table (abfd))
-    return false;
+    return FALSE;
   amt = (bfd_size_type) bfd_coff_relsz (abfd) * asect->reloc_count;
   native_relocs = (RELOC *) buy_and_read (abfd, asect->rel_filepos, amt);
   amt = (bfd_size_type) asect->reloc_count * sizeof (arelent);
   reloc_cache = (arelent *) bfd_alloc (abfd, amt);
 
   if (reloc_cache == NULL)
-    return false;
+    return FALSE;
 
   for (idx = 0; idx < asect->reloc_count; idx++)
     {
@@ -5011,12 +5027,12 @@ coff_slurp_reloc_table (abfd, asect, symbols)
            (_("%s: illegal relocation type %d at address 0x%lx"),
             bfd_archive_filename (abfd), dst.r_type, (long) dst.r_vaddr);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
     }
 
   asect->relocation = reloc_cache;
-  return true;
+  return TRUE;
 }
 
 #ifndef coff_rtype_to_howto
@@ -5193,10 +5209,10 @@ dummy_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
 
 #ifndef coff_link_output_has_begun
 
-static boolean coff_link_output_has_begun
+static bfd_boolean coff_link_output_has_begun
   PARAMS ((bfd *, struct coff_final_link_info *));
 
-static boolean
+static bfd_boolean
 coff_link_output_has_begun (abfd, info)
      bfd * abfd;
      struct coff_final_link_info * info ATTRIBUTE_UNUSED;
@@ -5207,15 +5223,15 @@ coff_link_output_has_begun (abfd, info)
 
 #ifndef coff_final_link_postscript
 
-static boolean coff_final_link_postscript
+static bfd_boolean coff_final_link_postscript
   PARAMS ((bfd *, struct coff_final_link_info *));
 
-static boolean
+static bfd_boolean
 coff_final_link_postscript (abfd, pfinfo)
      bfd * abfd ATTRIBUTE_UNUSED;
      struct coff_final_link_info * pfinfo ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 #endif
 
@@ -5271,20 +5287,20 @@ static const bfd_coff_backend_data bfd_coff_std_swap_table =
   coff_SWAP_scnhdr_out,
   FILHSZ, AOUTSZ, SCNHSZ, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN,
 #ifdef COFF_LONG_FILENAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_LONG_SECTION_NAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
   COFF_DEFAULT_SECTION_ALIGNMENT_POWER,
 #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_DEBUG_STRING_WIDE_PREFIX
   4,
index 21589c6945a9d8cc22e22399c87edb0930e2ae15..c905ab17eec77e5ebfcdb8bc18c007f50d4474ca 100644 (file)
@@ -46,19 +46,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static void coff_fix_symbol_name
   PARAMS ((bfd *, asymbol *, combined_entry_type *, bfd_size_type *,
           asection **, bfd_size_type *));
-static boolean coff_write_symbol
+static bfd_boolean coff_write_symbol
   PARAMS ((bfd *, asymbol *, combined_entry_type *, bfd_vma *,
           bfd_size_type *, asection **, bfd_size_type *));
-static boolean coff_write_alien_symbol
+static bfd_boolean coff_write_alien_symbol
   PARAMS ((bfd *, asymbol *, bfd_vma *, bfd_size_type *,
           asection **, bfd_size_type *));
-static boolean coff_write_native_symbol
+static bfd_boolean coff_write_native_symbol
   PARAMS ((bfd *, coff_symbol_type *, bfd_vma *, bfd_size_type *,
           asection **, bfd_size_type *));
 static void coff_pointerize_aux
   PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
           unsigned int, combined_entry_type *));
-static boolean make_a_section_from_file
+static bfd_boolean make_a_section_from_file
   PARAMS ((bfd *, struct internal_scnhdr *, unsigned int));
 static const bfd_target *coff_real_object_p
   PARAMS ((bfd *, unsigned, struct internal_filehdr *,
@@ -74,7 +74,7 @@ static char *copy_name
 
 /* Take a section header read from a coff file (in HOST byte order),
    and make a BFD "section" out of it.  This is used by ECOFF.  */
-static boolean
+static bfd_boolean
 make_a_section_from_file (abfd, hdr, target_index)
      bfd *abfd;
      struct internal_scnhdr *hdr;
@@ -82,7 +82,7 @@ make_a_section_from_file (abfd, hdr, target_index)
 {
   asection *return_section;
   char *name;
-  boolean result = true;
+  bfd_boolean result = TRUE;
   flagword flags;
 
   name = NULL;
@@ -103,14 +103,14 @@ make_a_section_from_file (abfd, hdr, target_index)
        {
          strings = _bfd_coff_read_string_table (abfd);
          if (strings == NULL)
-           return false;
+           return FALSE;
          /* FIXME: For extra safety, we should make sure that
              strindex does not run us past the end, but right now we
              don't know the length of the string table.  */
          strings += strindex;
          name = bfd_alloc (abfd, (bfd_size_type) strlen (strings) + 1);
          if (name == NULL)
-           return false;
+           return FALSE;
          strcpy (name, strings);
        }
     }
@@ -120,14 +120,14 @@ make_a_section_from_file (abfd, hdr, target_index)
       /* Assorted wastage to null-terminate the name, thanks AT&T! */
       name = bfd_alloc (abfd, (bfd_size_type) sizeof (hdr->s_name) + 1);
       if (name == NULL)
-       return false;
+       return FALSE;
       strncpy (name, (char *) &hdr->s_name[0], sizeof (hdr->s_name));
       name[sizeof (hdr->s_name)] = 0;
     }
 
   return_section = bfd_make_section_anyway (abfd, name);
   if (return_section == NULL)
-    return false;
+    return FALSE;
 
   return_section->vma = hdr->s_vaddr;
   return_section->lma = hdr->s_paddr;
@@ -147,7 +147,7 @@ make_a_section_from_file (abfd, hdr, target_index)
 
   if (! bfd_coff_styp_to_sec_flags_hook (abfd, hdr, name, return_section,
                                         & flags))
-    result = false;
+    result = FALSE;
 
   return_section->flags = flags;
 
@@ -423,12 +423,12 @@ _bfd_coff_internal_syment_name (abfd, sym, buf)
 }
 
 /* Read in and swap the relocs.  This returns a buffer holding the
-   relocs for section SEC in file ABFD.  If CACHE is true and
+   relocs for section SEC in file ABFD.  If CACHE is TRUE and
    INTERNAL_RELOCS is NULL, the relocs read in will be saved in case
    the function is called again.  If EXTERNAL_RELOCS is not NULL, it
    is a buffer large enough to hold the unswapped relocs.  If
    INTERNAL_RELOCS is not NULL, it is a buffer large enough to hold
-   the swapped relocs.  If REQUIRE_INTERNAL is true, then the return
+   the swapped relocs.  If REQUIRE_INTERNAL is TRUE, then the return
    value must be INTERNAL_RELOCS.  The function returns NULL on error.  */
 
 struct internal_reloc *
@@ -436,9 +436,9 @@ _bfd_coff_read_internal_relocs (abfd, sec, cache, external_relocs,
                                require_internal, internal_relocs)
      bfd *abfd;
      asection *sec;
-     boolean cache;
+     bfd_boolean cache;
      bfd_byte *external_relocs;
-     boolean require_internal;
+     bfd_boolean require_internal;
      struct internal_reloc *internal_relocs;
 {
   bfd_size_type relsz;
@@ -565,7 +565,7 @@ coff_count_linenumbers (abfd)
              do
                {
                  asection * sec = q->symbol.section->output_section;
-                 
+
                  /* Do not try to update fields in read-only sections.  */
                  if (! bfd_is_const_section (sec))
                    sec->lineno_count ++;
@@ -656,7 +656,7 @@ fixup_symbol_value (abfd, coff_symbol_ptr, syment)
    chain, and that the last one points to the first external symbol. We
    do that here too.  */
 
-boolean
+bfd_boolean
 coff_renumber_symbols (bfd_ptr, first_undef)
      bfd *bfd_ptr;
      int *first_undef;
@@ -685,7 +685,7 @@ coff_renumber_symbols (bfd_ptr, first_undef)
     amt = sizeof (asymbol *) * ((bfd_size_type) symbol_count + 1);
     newsyms = (asymbol **) bfd_alloc (bfd_ptr, amt);
     if (!newsyms)
-      return false;
+      return FALSE;
     bfd_ptr->outsymbols = newsyms;
     for (i = 0; i < symbol_count; i++)
       if ((symbol_ptr_ptr[i]->flags & BSF_NOT_AT_END) != 0
@@ -748,7 +748,7 @@ coff_renumber_symbols (bfd_ptr, first_undef)
     }
   obj_conv_table_size (bfd_ptr) = native_index;
 
-  return true;
+  return TRUE;
 }
 
 /* Run thorough the symbol table again, and fix it so that all
@@ -943,7 +943,7 @@ coff_fix_symbol_name (abfd, symbol, native, string_size_p,
 
 /* Write a symbol out to a COFF file.  */
 
-static boolean
+static bfd_boolean
 coff_write_symbol (abfd, symbol, native, written, string_size_p,
                   debug_string_section_p, debug_string_size_p)
      bfd *abfd;
@@ -988,10 +988,10 @@ coff_write_symbol (abfd, symbol, native, written, string_size_p,
   symesz = bfd_coff_symesz (abfd);
   buf = bfd_alloc (abfd, symesz);
   if (!buf)
-    return false;
+    return FALSE;
   bfd_coff_swap_sym_out (abfd, &native->u.syment, buf);
   if (bfd_bwrite (buf, symesz, abfd) != symesz)
-    return false;
+    return FALSE;
   bfd_release (abfd, buf);
 
   if (native->u.syment.n_numaux > 0)
@@ -1002,7 +1002,7 @@ coff_write_symbol (abfd, symbol, native, written, string_size_p,
       auxesz = bfd_coff_auxesz (abfd);
       buf = bfd_alloc (abfd, auxesz);
       if (!buf)
-       return false;
+       return FALSE;
       for (j = 0; j < native->u.syment.n_numaux; j++)
        {
          bfd_coff_swap_aux_out (abfd,
@@ -1013,7 +1013,7 @@ coff_write_symbol (abfd, symbol, native, written, string_size_p,
                                 native->u.syment.n_numaux,
                                 buf);
          if (bfd_bwrite (buf, auxesz, abfd) != auxesz)
-           return false;
+           return FALSE;
        }
       bfd_release (abfd, buf);
     }
@@ -1022,14 +1022,14 @@ coff_write_symbol (abfd, symbol, native, written, string_size_p,
   set_index (symbol, *written);
 
   *written += numaux + 1;
-  return true;
+  return TRUE;
 }
 
 /* Write out a symbol to a COFF file that does not come from a COFF
    file originally.  This symbol may have been created by the linker,
    or we may be linking a non COFF file to a COFF file.  */
 
-static boolean
+static bfd_boolean
 coff_write_alien_symbol (abfd, symbol, written, string_size_p,
                         debug_string_section_p, debug_string_size_p)
      bfd *abfd;
@@ -1062,7 +1062,7 @@ coff_write_alien_symbol (abfd, symbol, written, string_size_p,
          format.  So, we just ignore them.  We must clobber the symbol
          name to keep it from being put in the string table.  */
       symbol->name = "";
-      return true;
+      return TRUE;
     }
   else
     {
@@ -1097,7 +1097,7 @@ coff_write_alien_symbol (abfd, symbol, written, string_size_p,
 
 /* Write a native symbol to a COFF file.  */
 
-static boolean
+static bfd_boolean
 coff_write_native_symbol (abfd, symbol, written, string_size_p,
                          debug_string_section_p, debug_string_size_p)
      bfd *abfd;
@@ -1153,7 +1153,7 @@ coff_write_native_symbol (abfd, symbol, written, string_size_p,
 #endif
          count++;
        }
-      symbol->done_lineno = true;
+      symbol->done_lineno = TRUE;
 
       if (! bfd_is_const_section (symbol->symbol.section->output_section))
        symbol->symbol.section->output_section->moving_line_filepos +=
@@ -1167,7 +1167,7 @@ coff_write_native_symbol (abfd, symbol, written, string_size_p,
 
 /* Write out the COFF symbols.  */
 
-boolean
+bfd_boolean
 coff_write_symbols (abfd)
      bfd *abfd;
 {
@@ -1203,7 +1203,7 @@ coff_write_symbols (abfd)
 
   /* Seek to the right place */
   if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   /* Output all the symbols we have */
 
@@ -1219,14 +1219,14 @@ coff_write_symbols (abfd)
          if (!coff_write_alien_symbol (abfd, symbol, &written, &string_size,
                                        &debug_string_section,
                                        &debug_string_size))
-           return false;
+           return FALSE;
        }
       else
        {
          if (!coff_write_native_symbol (abfd, c_symbol, &written,
                                         &string_size, &debug_string_section,
                                         &debug_string_size))
-           return false;
+           return FALSE;
        }
     }
 
@@ -1246,7 +1246,7 @@ coff_write_symbols (abfd)
 #endif
       if (bfd_bwrite ((PTR) buffer, (bfd_size_type) sizeof (buffer), abfd)
          != sizeof (buffer))
-       return false;
+       return FALSE;
 
       /* Handle long section names.  This code must handle section
         names just as they are handled in coff_write_object_contents.  */
@@ -1263,7 +1263,7 @@ coff_write_symbols (abfd)
                {
                  if (bfd_bwrite (o->name, (bfd_size_type) (len + 1), abfd)
                      != len + 1)
-                   return false;
+                   return FALSE;
                }
            }
        }
@@ -1304,7 +1304,7 @@ coff_write_symbols (abfd)
              if (bfd_coff_force_symnames_in_strings (abfd))
                {
                  if (bfd_bwrite (".file", (bfd_size_type) 6, abfd) != 6)
-                   return false;
+                   return FALSE;
                }
              maxlen = bfd_coff_filnmlen (abfd);
            }
@@ -1315,7 +1315,7 @@ coff_write_symbols (abfd)
            {
              if (bfd_bwrite ((PTR) (q->name), (bfd_size_type) name_length + 1,
                             abfd) != name_length + 1)
-               return false;
+               return FALSE;
            }
        }
     }
@@ -1334,7 +1334,7 @@ coff_write_symbols (abfd)
 #endif
       if (bfd_bwrite ((PTR) buffer, (bfd_size_type) STRING_SIZE_SIZE, abfd)
          != STRING_SIZE_SIZE)
-       return false;
+       return FALSE;
     }
 
   /* Make sure the .debug section was created to be the correct size.
@@ -1348,10 +1348,10 @@ coff_write_symbols (abfd)
                                 1 << debug_string_section->alignment_power)
                      == bfd_section_size (abfd, debug_string_section))));
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 coff_write_linenumbers (abfd)
      bfd *abfd;
 {
@@ -1362,14 +1362,14 @@ coff_write_linenumbers (abfd)
   linesz = bfd_coff_linesz (abfd);
   buff = bfd_alloc (abfd, linesz);
   if (!buff)
-    return false;
+    return FALSE;
   for (s = abfd->sections; s != (asection *) NULL; s = s->next)
     {
       if (s->lineno_count)
        {
          asymbol **q = abfd->outsymbols;
          if (bfd_seek (abfd, s->line_filepos, SEEK_SET) != 0)
-           return false;
+           return FALSE;
          /* Find all the linenumbers in this section */
          while (*q)
            {
@@ -1389,7 +1389,7 @@ coff_write_linenumbers (abfd)
                      bfd_coff_swap_lineno_out (abfd, &out, buff);
                      if (bfd_bwrite (buff, (bfd_size_type) linesz, abfd)
                          != linesz)
-                       return false;
+                       return FALSE;
                      l++;
                      while (l->line_number)
                        {
@@ -1398,7 +1398,7 @@ coff_write_linenumbers (abfd)
                          bfd_coff_swap_lineno_out (abfd, &out, buff);
                          if (bfd_bwrite (buff, (bfd_size_type) linesz, abfd)
                              != linesz)
-                           return false;
+                           return FALSE;
                          l++;
                        }
                    }
@@ -1408,7 +1408,7 @@ coff_write_linenumbers (abfd)
        }
     }
   bfd_release (abfd, buff);
-  return true;
+  return TRUE;
 }
 
 alent *
@@ -1585,7 +1585,7 @@ copy_name (abfd, name, maxlen)
 
 /* Read in the external symbols.  */
 
-boolean
+bfd_boolean
 _bfd_coff_get_external_symbols (abfd)
      bfd *abfd;
 {
@@ -1594,7 +1594,7 @@ _bfd_coff_get_external_symbols (abfd)
   PTR syms;
 
   if (obj_coff_external_syms (abfd) != NULL)
-    return true;
+    return TRUE;
 
   symesz = bfd_coff_symesz (abfd);
 
@@ -1602,19 +1602,19 @@ _bfd_coff_get_external_symbols (abfd)
 
   syms = (PTR) bfd_malloc (size);
   if (syms == NULL && size != 0)
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
       || bfd_bread (syms, size, abfd) != size)
     {
       if (syms != NULL)
        free (syms);
-      return false;
+      return FALSE;
     }
 
   obj_coff_external_syms (abfd) = syms;
 
-  return true;
+  return TRUE;
 }
 
 /* Read in the external strings.  The strings are not loaded until
@@ -1689,7 +1689,7 @@ _bfd_coff_read_string_table (abfd)
 
 /* Free up the external symbols and strings read from a COFF file.  */
 
-boolean
+bfd_boolean
 _bfd_coff_free_symbols (abfd)
      bfd *abfd;
 {
@@ -1705,7 +1705,7 @@ _bfd_coff_free_symbols (abfd)
       free (obj_coff_strings (abfd));
       obj_coff_strings (abfd) = NULL;
     }
-  return true;
+  return TRUE;
 }
 
 /* Read a symbol table into freshly bfd_allocated memory, swap it, and
@@ -1777,7 +1777,7 @@ coff_get_normalized_symtab (abfd)
     }
 
   /* Free the raw symbols, but not the strings (if we have them).  */
-  obj_coff_keep_strings (abfd) = true;
+  obj_coff_keep_strings (abfd) = TRUE;
   if (! _bfd_coff_free_symbols (abfd))
     return NULL;
 
@@ -1909,7 +1909,7 @@ coff_make_empty_symbol (abfd)
   new->symbol.section = 0;
   new->native = 0;
   new->lineno = (alent *) NULL;
-  new->done_lineno = false;
+  new->done_lineno = FALSE;
   new->symbol.the_bfd = abfd;
   return &new->symbol;
 }
@@ -1935,7 +1935,7 @@ coff_bfd_make_debug_symbol (abfd, ptr, sz)
   new->symbol.section = bfd_abs_section_ptr;
   new->symbol.flags = BSF_DEBUGGING;
   new->lineno = (alent *) NULL;
-  new->done_lineno = false;
+  new->done_lineno = FALSE;
   new->symbol.the_bfd = abfd;
   return &new->symbol;
 }
@@ -1957,7 +1957,7 @@ coff_get_symbol_info (abfd, symbol, ret)
 
 /* Return the COFF syment for a symbol.  */
 
-boolean
+bfd_boolean
 bfd_coff_get_syment (abfd, symbol, psyment)
      bfd *abfd;
      asymbol *symbol;
@@ -1969,7 +1969,7 @@ bfd_coff_get_syment (abfd, symbol, psyment)
   if (csym == NULL || csym->native == NULL)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   *psyment = csym->native->u.syment;
@@ -1980,12 +1980,12 @@ bfd_coff_get_syment (abfd, symbol, psyment)
 
   /* FIXME: We should handle fix_line here.  */
 
-  return true;
+  return TRUE;
 }
 
 /* Return the COFF auxent for a symbol.  */
 
-boolean
+bfd_boolean
 bfd_coff_get_auxent (abfd, symbol, indx, pauxent)
      bfd *abfd;
      asymbol *symbol;
@@ -2002,7 +2002,7 @@ bfd_coff_get_auxent (abfd, symbol, indx, pauxent)
       || indx >= csym->native->u.syment.n_numaux)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   ent = csym->native + indx + 1;
@@ -2024,7 +2024,7 @@ bfd_coff_get_auxent (abfd, symbol, indx, pauxent)
       ((combined_entry_type *) pauxent->x_csect.x_scnlen.p
        - obj_raw_syments (abfd));
 
-  return true;
+  return TRUE;
 }
 
 /* Print out information about COFF symbol.  */
@@ -2191,19 +2191,19 @@ coff_print_symbol (abfd, filep, symbol, how)
    function for the is_local_label_name entry point, but some may
    override it.  */
 
-boolean
+bfd_boolean
 _bfd_coff_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
 {
-  return (boolean) (name[0] == '.' && name[1] == 'L');
+  return name[0] == '.' && name[1] == 'L';
 }
 
 /* Provided a BFD, a section and an offset (in bytes, not octets) into the
    section, calculate and return the name of the source file and the line
    nearest to the wanted location.  */
 
-boolean
+bfd_boolean
 coff_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
                        functionname_ptr, line_ptr)
      bfd *abfd;
@@ -2214,7 +2214,7 @@ coff_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
      const char **functionname_ptr;
      unsigned int *line_ptr;
 {
-  boolean found;
+  bfd_boolean found;
   unsigned int i;
   unsigned int line_base;
   coff_data_type *cof = coff_data (abfd);
@@ -2231,17 +2231,17 @@ coff_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
                                             &found, filename_ptr,
                                             functionname_ptr, line_ptr,
                                             &coff_data(abfd)->line_info))
-    return false;
+    return FALSE;
 
   if (found)
-    return true;
+    return TRUE;
 
   /* Also try examining DWARF2 debugging information.  */
   if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
                                     filename_ptr, functionname_ptr,
                                     line_ptr, 0,
                                     &coff_data(abfd)->dwarf2_find_line_info))
-    return true;
+    return TRUE;
 
   *filename_ptr = 0;
   *functionname_ptr = 0;
@@ -2249,15 +2249,15 @@ coff_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
 
   /* Don't try and find line numbers in a non coff file */
   if (!bfd_family_coff (abfd))
-    return false;
+    return FALSE;
 
   if (cof == NULL)
-    return false;
+    return FALSE;
 
   /* Find the first C_FILE symbol.  */
   p = cof->raw_syments;
   if (!p)
-    return false;
+    return FALSE;
 
   pend = p + cof->raw_syment_count;
   while (p < pend)
@@ -2410,13 +2410,13 @@ coff_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
       sec_data->line_base = line_base;
     }
 
-  return true;
+  return TRUE;
 }
 
 int
 coff_sizeof_headers (abfd, reloc)
      bfd *abfd;
-     boolean reloc;
+     bfd_boolean reloc;
 {
   size_t size;
 
@@ -2434,7 +2434,7 @@ coff_sizeof_headers (abfd, reloc)
 }
 
 /* Change the class of a coff symbol held by BFD.  */
-boolean
+bfd_boolean
 bfd_coff_set_symbol_class (abfd, symbol, class)
      bfd *         abfd;
      asymbol *     symbol;
@@ -2446,7 +2446,7 @@ bfd_coff_set_symbol_class (abfd, symbol, class)
   if (csym == NULL)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
   else if (csym->native == NULL)
     {
@@ -2460,7 +2460,7 @@ bfd_coff_set_symbol_class (abfd, symbol, class)
 
       native = (combined_entry_type *) bfd_zalloc (abfd, amt);
       if (native == NULL)
-       return false;
+       return FALSE;
 
       native->u.syment.n_type   = T_NULL;
       native->u.syment.n_sclass = class;
@@ -2496,5 +2496,5 @@ bfd_coff_set_symbol_class (abfd, symbol, class)
       csym->native->u.syment.n_sclass = class;
     }
 
-  return true;
+  return TRUE;
 }
index c1302ee878a28d0dc9dfbe6845ee04c47815a1c1..4e6138812425c9445857dbe1eeb46ba61d2578c7 100644 (file)
@@ -28,25 +28,29 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "coff/internal.h"
 #include "libcoff.h"
 
-static boolean coff_link_add_object_symbols
+static bfd_boolean coff_link_add_object_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean coff_link_check_archive_element
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *));
-static boolean coff_link_check_ar_symbols
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *));
-static boolean coff_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *));
-static char *dores_com PARAMS ((char *, bfd *, int));
-static char *get_name PARAMS ((char *, char **));
+static bfd_boolean coff_link_check_archive_element
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean coff_link_check_ar_symbols
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean coff_link_add_symbols
+  PARAMS ((bfd *, struct bfd_link_info *));
+static char *dores_com
+  PARAMS ((char *, bfd *, int));
+static char *get_name
+  PARAMS ((char *, char **));
 static int process_embedded_commands
   PARAMS ((bfd *, struct bfd_link_info *, bfd *));
-static void mark_relocs PARAMS ((struct coff_final_link_info *, bfd *));
+static void mark_relocs
+  PARAMS ((struct coff_final_link_info *, bfd *));
 
-/* Return true if SYM is a weak, external symbol.  */
+/* Return TRUE if SYM is a weak, external symbol.  */
 #define IS_WEAK_EXTERNAL(abfd, sym)                    \
   ((sym).n_sclass == C_WEAKEXT                         \
    || (obj_pe (abfd) && (sym).n_sclass == C_NT_WEAK))
 
-/* Return true if SYM is an external symbol.  */
+/* Return TRUE if SYM is an external symbol.  */
 #define IS_EXTERNAL(abfd, sym)                         \
   ((sym).n_sclass == C_EXT || IS_WEAK_EXTERNAL (abfd, sym))
 
@@ -98,7 +102,7 @@ _bfd_coff_link_hash_newfunc (entry, table, string)
 
 /* Initialize a COFF linker hash table.  */
 
-boolean
+bfd_boolean
 _bfd_coff_link_hash_table_init (table, abfd, newfunc)
      struct coff_link_hash_table *table;
      bfd *abfd;
@@ -166,7 +170,7 @@ _bfd_coff_debug_merge_hash_newfunc (entry, table, string)
 /* Given a COFF BFD, add symbols to the global hash table as
    appropriate.  */
 
-boolean
+bfd_boolean
 _bfd_coff_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -180,28 +184,28 @@ _bfd_coff_link_add_symbols (abfd, info)
              (abfd, info, coff_link_check_archive_element));
     default:
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 }
 
 /* Add symbols from a COFF object file.  */
 
-static boolean
+static bfd_boolean
 coff_link_add_object_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   if (! _bfd_coff_get_external_symbols (abfd))
-    return false;
+    return FALSE;
   if (! coff_link_add_symbols (abfd, info))
-    return false;
+    return FALSE;
 
   if (! info->keep_memory)
     {
       if (! _bfd_coff_free_symbols (abfd))
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Check a single archive element to see if we need to include it in
@@ -209,47 +213,47 @@ coff_link_add_object_symbols (abfd, info)
    needed in the link or not.  This is called via
    _bfd_generic_link_add_archive_symbols.  */
 
-static boolean
+static bfd_boolean
 coff_link_check_archive_element (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
   if (! _bfd_coff_get_external_symbols (abfd))
-    return false;
+    return FALSE;
 
   if (! coff_link_check_ar_symbols (abfd, info, pneeded))
-    return false;
+    return FALSE;
 
   if (*pneeded)
     {
       if (! coff_link_add_symbols (abfd, info))
-       return false;
+       return FALSE;
     }
 
   if (! info->keep_memory || ! *pneeded)
     {
       if (! _bfd_coff_free_symbols (abfd))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Look through the symbols to see if this object file should be
    included in the link.  */
 
-static boolean
+static bfd_boolean
 coff_link_check_ar_symbols (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
   bfd_size_type symesz;
   bfd_byte *esym;
   bfd_byte *esym_end;
 
-  *pneeded = false;
+  *pneeded = FALSE;
 
   symesz = bfd_coff_symesz (abfd);
   esym = (bfd_byte *) obj_coff_external_syms (abfd);
@@ -274,8 +278,8 @@ coff_link_check_ar_symbols (abfd, info, pneeded)
 
          name = _bfd_coff_internal_syment_name (abfd, &sym, buf);
          if (name == NULL)
-           return false;
-         h = bfd_link_hash_lookup (info->hash, name, false, false, true);
+           return FALSE;
+         h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
 
          /* auto import */
          if (!h && info->pei386_auto_import)
@@ -283,8 +287,8 @@ coff_link_check_ar_symbols (abfd, info, pneeded)
              if (!strncmp (name,"__imp_", 6))
                {
                  h =
-                    bfd_link_hash_lookup (info->hash, name + 6, false, false,
-                                          true);
+                    bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE,
+                                          TRUE);
                }
            }
          /* We are only interested in symbols that are currently
@@ -295,9 +299,9 @@ coff_link_check_ar_symbols (abfd, info, pneeded)
              && h->type == bfd_link_hash_undefined)
            {
              if (! (*info->callbacks->add_archive_element) (info, abfd, name))
-               return false;
-             *pneeded = true;
-             return true;
+               return FALSE;
+             *pneeded = TRUE;
+             return TRUE;
            }
        }
 
@@ -305,12 +309,12 @@ coff_link_check_ar_symbols (abfd, info, pneeded)
     }
 
   /* We do not need this object file.  */
-  return true;
+  return TRUE;
 }
 
 /* Add all the symbols from an object file to the hash table.  */
 
-static boolean
+static bfd_boolean
 coff_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -318,8 +322,8 @@ coff_link_add_symbols (abfd, info)
   unsigned int n_tmask = coff_data (abfd)->local_n_tmask;
   unsigned int n_btshft = coff_data (abfd)->local_n_btshft;
   unsigned int n_btmask = coff_data (abfd)->local_n_btmask;
-  boolean keep_syms;
-  boolean default_copy;
+  bfd_boolean keep_syms;
+  bfd_boolean default_copy;
   bfd_size_type symcount;
   struct coff_link_hash_entry **sym_hash;
   bfd_size_type symesz;
@@ -330,12 +334,12 @@ coff_link_add_symbols (abfd, info)
   /* Keep the symbols during this function, in case the linker needs
      to read the generic symbols in order to report an error message.  */
   keep_syms = obj_coff_keep_syms (abfd);
-  obj_coff_keep_syms (abfd) = true;
+  obj_coff_keep_syms (abfd) = TRUE;
 
   if (info->keep_memory)
-    default_copy = false;
+    default_copy = FALSE;
   else
-    default_copy = true;
+    default_copy = TRUE;
 
   symcount = obj_raw_syment_count (abfd);
 
@@ -355,7 +359,7 @@ coff_link_add_symbols (abfd, info)
     {
       struct internal_syment sym;
       enum coff_symbol_classification classification;
-      boolean copy;
+      bfd_boolean copy;
 
       bfd_coff_swap_sym_in (abfd, (PTR) esym, (PTR) &sym);
 
@@ -367,7 +371,7 @@ coff_link_add_symbols (abfd, info)
          flagword flags;
          asection *section;
          bfd_vma value;
-         boolean addit;
+         bfd_boolean addit;
 
          /* This symbol is externally visible.  */
 
@@ -380,7 +384,7 @@ coff_link_add_symbols (abfd, info)
          copy = default_copy;
          if (sym._n._n_n._n_zeroes != 0
              || sym._n._n_n._n_offset == 0)
-           copy = true;
+           copy = TRUE;
 
          value = sym.n_value;
 
@@ -415,7 +419,7 @@ coff_link_add_symbols (abfd, info)
          if (IS_WEAK_EXTERNAL (abfd, sym))
            flags = BSF_WEAK;
 
-         addit = true;
+         addit = TRUE;
 
          /* In the PE format, section symbols actually refer to the
              start of the output section.  We handle them specially
@@ -423,7 +427,7 @@ coff_link_add_symbols (abfd, info)
          if (obj_pe (abfd) && (flags & BSF_SECTION_SYM) != 0)
            {
              *sym_hash = coff_link_hash_lookup (coff_hash_table (info),
-                                                name, false, copy, false);
+                                                name, FALSE, copy, FALSE);
              if (*sym_hash != NULL)
                {
                  if (((*sym_hash)->coff_link_hash_flags
@@ -434,7 +438,7 @@ coff_link_add_symbols (abfd, info)
                      ("Warning: symbol `%s' is both section and non-section",
                       name);
 
-                 addit = false;
+                 addit = FALSE;
                }
            }
 
@@ -469,20 +473,20 @@ coff_link_add_symbols (abfd, info)
            {
              if (*sym_hash == NULL)
                *sym_hash = coff_link_hash_lookup (coff_hash_table (info),
-                                                  name, false, copy, false);
+                                                  name, FALSE, copy, FALSE);
              if (*sym_hash != NULL
                  && (*sym_hash)->root.type == bfd_link_hash_defined
                  && (*sym_hash)->root.u.def.section->comdat != NULL
                  && strcmp ((*sym_hash)->root.u.def.section->comdat->name,
                             section->comdat->name) == 0)
-               addit = false;
+               addit = FALSE;
            }
 
          if (addit)
            {
              if (! (bfd_coff_link_add_one_symbol
                     (info, abfd, name, flags, section, value,
-                     (const char *) NULL, copy, false,
+                     (const char *) NULL, copy, FALSE,
                      (struct bfd_link_hash_entry **) sym_hash)))
                goto error_return;
            }
@@ -634,24 +638,24 @@ coff_link_add_symbols (abfd, info)
 
   obj_coff_keep_syms (abfd) = keep_syms;
 
-  return true;
+  return TRUE;
 
  error_return:
   obj_coff_keep_syms (abfd) = keep_syms;
-  return false;
+  return FALSE;
 }
 \f
 /* Do the final link step.  */
 
-boolean
+bfd_boolean
 _bfd_coff_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   bfd_size_type symesz;
   struct coff_final_link_info finfo;
-  boolean debug_merge_allocated;
-  boolean long_section_names;
+  bfd_boolean debug_merge_allocated;
+  bfd_boolean long_section_names;
   asection *o;
   struct bfd_link_order *p;
   bfd_size_type max_sym_count;
@@ -684,8 +688,8 @@ _bfd_coff_final_link (abfd, info)
   finfo.contents = NULL;
   finfo.external_relocs = NULL;
   finfo.internal_relocs = NULL;
-  finfo.global_to_static = false;
-  debug_merge_allocated = false;
+  finfo.global_to_static = FALSE;
+  debug_merge_allocated = FALSE;
 
   coff_data (abfd)->link_info = info;
 
@@ -695,7 +699,7 @@ _bfd_coff_final_link (abfd, info)
 
   if (! coff_debug_merge_hash_table_init (&finfo.debug_merge))
     goto error_return;
-  debug_merge_allocated = true;
+  debug_merge_allocated = TRUE;
 
   /* Compute the file positions for all the sections.  */
   if (! abfd->output_has_begun)
@@ -712,7 +716,7 @@ _bfd_coff_final_link (abfd, info)
   max_lineno_count = 0;
   max_reloc_count = 0;
 
-  long_section_names = false;
+  long_section_names = FALSE;
   for (o = abfd->sections; o != NULL; o = o->next)
     {
       o->reloc_count = 0;
@@ -729,7 +733,7 @@ _bfd_coff_final_link (abfd, info)
                 link.  This will normally be every section.  We need
                 to do this so that we can identify any sections which
                 the linker has decided to not include.  */
-             sec->linker_mark = true;
+             sec->linker_mark = TRUE;
 
              if (info->strip == strip_none
                  || info->strip == strip_some)
@@ -770,11 +774,11 @@ _bfd_coff_final_link (abfd, info)
              table.  This must correspond to the code in
              coff_write_object_contents which puts the string index
              into the s_name field of the section header.  That is why
-             we pass hash as false.  */
-         if (_bfd_stringtab_add (finfo.strtab, o->name, false, false)
+             we pass hash as FALSE.  */
+         if (_bfd_stringtab_add (finfo.strtab, o->name, FALSE, FALSE)
              == (bfd_size_type) -1)
            goto error_return;
-         long_section_names = true;
+         long_section_names = TRUE;
        }
     }
 
@@ -861,7 +865,7 @@ _bfd_coff_final_link (abfd, info)
     {
       size_t sz;
 
-      sub->output_has_begun = false;
+      sub->output_has_begun = FALSE;
       sz = obj_raw_syment_count (sub);
       if (sz > max_sym_count)
        max_sym_count = sz;
@@ -922,7 +926,7 @@ _bfd_coff_final_link (abfd, info)
                {
                  if (! _bfd_coff_link_input_bfd (&finfo, sub))
                    goto error_return;
-                 sub->output_has_begun = true;
+                 sub->output_has_begun = TRUE;
                }
            }
          else if (p->type == bfd_section_reloc_link_order
@@ -945,7 +949,7 @@ _bfd_coff_final_link (abfd, info)
   /* Free up the buffers used by _bfd_coff_link_input_bfd.  */
 
   coff_debug_merge_hash_table_free (&finfo.debug_merge);
-  debug_merge_allocated = false;
+  debug_merge_allocated = FALSE;
 
   if (finfo.internal_syms != NULL)
     {
@@ -998,7 +1002,7 @@ _bfd_coff_final_link (abfd, info)
       pos = obj_sym_filepos (abfd) + finfo.last_file_index * symesz;
       if (bfd_seek (abfd, pos, SEEK_SET) != 0
          || bfd_bwrite (finfo.outsyms, symesz, abfd) != symesz)
-       return false;
+       return FALSE;
     }
 
   /* If doing task linking (ld --task-link) then make a pass through the
@@ -1006,7 +1010,7 @@ _bfd_coff_final_link (abfd, info)
      static.  */
   if (info->task_link)
     {
-      finfo.failed = false;
+      finfo.failed = FALSE;
       coff_link_hash_traverse (coff_hash_table (info),
                               _bfd_coff_write_task_globals,
                               (PTR) &finfo);
@@ -1015,7 +1019,7 @@ _bfd_coff_final_link (abfd, info)
     }
 
   /* Write out the global symbols.  */
-  finfo.failed = false;
+  finfo.failed = FALSE;
   coff_link_hash_traverse (coff_hash_table (info),
                           _bfd_coff_write_global_sym,
                           (PTR) &finfo);
@@ -1094,7 +1098,7 @@ _bfd_coff_final_link (abfd, info)
   if (coff_hash_table (info)->stab_info != NULL)
     {
       if (! _bfd_write_stab_strings (abfd, &coff_hash_table (info)->stab_info))
-       return false;
+       return FALSE;
     }
 
   /* Write out the string table.  */
@@ -1104,7 +1108,7 @@ _bfd_coff_final_link (abfd, info)
 
       pos = obj_sym_filepos (abfd) + obj_raw_syment_count (abfd) * symesz;
       if (bfd_seek (abfd, pos, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
 #if STRING_SIZE_SIZE == 4
       H_PUT_32 (abfd,
@@ -1116,12 +1120,12 @@ _bfd_coff_final_link (abfd, info)
 
       if (bfd_bwrite (strbuf, (bfd_size_type) STRING_SIZE_SIZE, abfd)
          != STRING_SIZE_SIZE)
-       return false;
+       return FALSE;
 
       if (! _bfd_stringtab_emit (abfd, finfo.strtab))
-       return false;
+       return FALSE;
 
-      obj_coff_strings_written (abfd) = true;
+      obj_coff_strings_written (abfd) = TRUE;
     }
 
   _bfd_stringtab_free (finfo.strtab);
@@ -1130,7 +1134,7 @@ _bfd_coff_final_link (abfd, info)
      not try to write out the symbols.  */
   bfd_get_symcount (abfd) = 0;
 
-  return true;
+  return TRUE;
 
  error_return:
   if (debug_merge_allocated)
@@ -1168,7 +1172,7 @@ _bfd_coff_final_link (abfd, info)
     free (finfo.internal_relocs);
   if (external_relocs != NULL)
     free (external_relocs);
-  return false;
+  return FALSE;
 }
 
 /* parse out a -heap <reserved>,<commit> line */
@@ -1328,7 +1332,7 @@ mark_relocs (finfo, input_bfd)
 
       /* Read in the relocs.  */
       internal_relocs = _bfd_coff_read_internal_relocs
-       (input_bfd, a, false,
+       (input_bfd, a, FALSE,
         finfo->external_relocs,
         finfo->info->relocateable,
         (finfo->info->relocateable
@@ -1357,7 +1361,7 @@ mark_relocs (finfo, input_bfd)
 /* Link an input file into the linker output file.  This function
    handles all the sections and relocations of the input file at once.  */
 
-boolean
+bfd_boolean
 _bfd_coff_link_input_bfd (finfo, input_bfd)
      struct coff_final_link_info *finfo;
      bfd *input_bfd;
@@ -1367,13 +1371,13 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
 #if 0
   unsigned int n_btmask = coff_data (input_bfd)->local_n_btmask;
 #endif
-  boolean (*adjust_symndx) PARAMS ((bfd *, struct bfd_link_info *, bfd *,
-                                   asection *, struct internal_reloc *,
-                                   boolean *));
+  bfd_boolean (*adjust_symndx)
+    PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
+            struct internal_reloc *, bfd_boolean *));
   bfd *output_bfd;
   const char *strings;
   bfd_size_type syment_base;
-  boolean copy, hash;
+  bfd_boolean copy, hash;
   bfd_size_type isymesz;
   bfd_size_type osymesz;
   bfd_size_type linesz;
@@ -1397,15 +1401,15 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
   linesz = bfd_coff_linesz (input_bfd);
   BFD_ASSERT (linesz == bfd_coff_linesz (output_bfd));
 
-  copy = false;
+  copy = FALSE;
   if (! finfo->info->keep_memory)
-    copy = true;
-  hash = true;
+    copy = TRUE;
+  hash = TRUE;
   if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
-    hash = false;
+    hash = FALSE;
 
   if (! _bfd_coff_get_external_symbols (input_bfd))
-    return false;
+    return FALSE;
 
   esym = (bfd_byte *) obj_coff_external_syms (input_bfd);
   esym_end = esym + obj_raw_syment_count (input_bfd) * isymesz;
@@ -1418,7 +1422,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
   if (coff_data (output_bfd)->pe)
     {
       if (! process_embedded_commands (output_bfd, finfo->info, input_bfd))
-       return false;
+       return FALSE;
     }
 
   /* If we are going to perform relocations and also strip/discard some symbols
@@ -1438,9 +1442,9 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
     {
       struct internal_syment isym;
       enum coff_symbol_classification classification;
-      boolean skip;
-      boolean global;
-      boolean dont_skip_symbol;
+      bfd_boolean skip;
+      bfd_boolean global;
+      bfd_boolean dont_skip_symbol;
       int add;
 
       bfd_coff_swap_sym_in (input_bfd, (PTR) esym, (PTR) isymp);
@@ -1476,17 +1480,17 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
          && finfo->info->relocateable)
        dont_skip_symbol = *indexp;
       else
-       dont_skip_symbol = false;
+       dont_skip_symbol = FALSE;
 
       *indexp = -1;
 
-      skip = false;
-      global = false;
+      skip = FALSE;
+      global = FALSE;
       add = 1 + isym.n_numaux;
 
       /* If we are stripping all symbols, we want to skip this one.  */
       if (finfo->info->strip == strip_all && ! dont_skip_symbol)
-       skip = true;
+       skip = TRUE;
 
       if (! skip)
        {
@@ -1501,22 +1505,22 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                 end of the symbol table, so skip them for now.
                 Locally defined function symbols, however, are an
                 exception, and are not moved to the end.  */
-             global = true;
+             global = TRUE;
              if (! ISFCN (isym.n_type))
-               skip = true;
+               skip = TRUE;
              break;
 
            case COFF_SYMBOL_UNDEFINED:
              /* Undefined symbols are left for the end.  */
-             global = true;
-             skip = true;
+             global = TRUE;
+             skip = TRUE;
              break;
 
            case COFF_SYMBOL_LOCAL:
              /* This is a local symbol.  Skip it if we are discarding
                  local symbols.  */
              if (finfo->info->discard == discard_all && ! dont_skip_symbol)
-               skip = true;
+               skip = TRUE;
              break;
            }
        }
@@ -1530,7 +1534,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
           && isym.n_numaux > 0)
         {
           if ((*secpp)->output_section == bfd_abs_section_ptr)
-            skip = true;
+            skip = TRUE;
         }
 #endif
 
@@ -1552,7 +1556,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                      || isym.n_sclass == C_REGPARM
                      || isym.n_sclass == C_FIELD
                      || isym.n_sclass == C_EOS))))
-       skip = true;
+       skip = TRUE;
 
       /* If some symbols are stripped based on the name, work out the
         name and decide whether to skip this symbol.  */
@@ -1565,16 +1569,16 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
 
          name = _bfd_coff_internal_syment_name (input_bfd, &isym, buf);
          if (name == NULL)
-           return false;
+           return FALSE;
 
          if (! dont_skip_symbol
              && ((finfo->info->strip == strip_some
-                  && (bfd_hash_lookup (finfo->info->keep_hash, name, false,
-                                   false) == NULL))
+                  && (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE,
+                                   FALSE) == NULL))
                   || (! global
                       && finfo->info->discard == discard_l
                       && bfd_is_local_label_name (input_bfd, name))))
-           skip = true;
+           skip = TRUE;
        }
 
       /* If this is an enum, struct, or union tag, see if we have
@@ -1598,7 +1602,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
 
          name = _bfd_coff_internal_syment_name (input_bfd, &isym, buf);
          if (name == NULL)
-           return false;
+           return FALSE;
 
          /* Ignore fake names invented by compiler; treat them all as
              the same name.  */
@@ -1608,9 +1612,9 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
            name = "";
 
          mh = coff_debug_merge_hash_lookup (&finfo->debug_merge, name,
-                                            true, true);
+                                            TRUE, TRUE);
          if (mh == NULL)
-           return false;
+           return FALSE;
 
          /* Allocate memory to hold type information.  If this turns
              out to be a duplicate, we pass this address to
@@ -1618,7 +1622,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
          amt = sizeof (struct coff_debug_merge_type);
          mt = (struct coff_debug_merge_type *) bfd_alloc (input_bfd, amt);
          if (mt == NULL)
-           return false;
+           return FALSE;
          mt->class = isym.n_sclass;
 
          /* Pick up the aux entry, which points to the end of the tag
@@ -1646,17 +1650,17 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
              *epp = ((struct coff_debug_merge_element *)
                      bfd_alloc (input_bfd, amt));
              if (*epp == NULL)
-               return false;
+               return FALSE;
 
              elename = _bfd_coff_internal_syment_name (input_bfd, islp,
                                                        elebuf);
              if (elename == NULL)
-               return false;
+               return FALSE;
 
              amt = strlen (elename) + 1;
              name_copy = (char *) bfd_alloc (input_bfd, amt);
              if (name_copy == NULL)
-               return false;
+               return FALSE;
              strcpy (name_copy, elename);
 
              (*epp)->name = name_copy;
@@ -1740,7 +1744,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                  bfd_release (input_bfd, (PTR) mt);
                  *indexp = mtl->indx;
                  add = (eslend - esym) / isymesz;
-                 skip = true;
+                 skip = TRUE;
                }
            }
        }
@@ -1764,10 +1768,10 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
              name = _bfd_coff_internal_syment_name (input_bfd, &isym,
                                                     (char *) NULL);
              if (name == NULL)
-               return false;
+               return FALSE;
              indx = _bfd_stringtab_add (finfo->strtab, name, hash, copy);
              if (indx == (bfd_size_type) -1)
-               return false;
+               return FALSE;
              isym._n._n_n._n_offset = STRING_SIZE_SIZE + indx;
            }
 
@@ -1866,7 +1870,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                      pos += finfo->last_file_index * osymesz;
                      if (bfd_seek (output_bfd, pos, SEEK_SET) != 0
                          || bfd_bwrite (outsym, osymesz, output_bfd) != osymesz)
-                       return false;
+                       return FALSE;
                    }
                }
 
@@ -1899,7 +1903,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                  /* This can happen if there were errors earlier in
                      the link.  */
                  bfd_set_error (bfd_error_bad_value);
-                 return false;
+                 return FALSE;
                }
              h->indx = output_index;
            }
@@ -1995,13 +1999,13 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                        {
                          strings = _bfd_coff_read_string_table (input_bfd);
                          if (strings == NULL)
-                           return false;
+                           return FALSE;
                        }
                      filename = strings + auxp->x_file.x_n.x_offset;
                      indx = _bfd_stringtab_add (finfo->strtab, filename,
                                                 hash, copy);
                      if (indx == (bfd_size_type) -1)
-                       return false;
+                       return FALSE;
                      auxp->x_file.x_n.x_offset = STRING_SIZE_SIZE + indx;
                    }
                }
@@ -2105,7 +2109,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                              if (bfd_seek (output_bfd, pos, SEEK_SET) != 0
                                  || (bfd_bwrite (outsym, osymesz, output_bfd)
                                      != osymesz))
-                               return false;
+                               return FALSE;
                            }
                        }
 
@@ -2151,7 +2155,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
          bfd_byte *eline;
          bfd_byte *elineend;
          bfd_byte *oeline;
-         boolean skipping;
+         bfd_boolean skipping;
          file_ptr pos;
          bfd_size_type amt;
 
@@ -2171,13 +2175,13 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
          if (bfd_seek (input_bfd, o->line_filepos, SEEK_SET) != 0
              || bfd_bread (finfo->linenos, linesz * o->lineno_count,
                           input_bfd) != linesz * o->lineno_count)
-           return false;
+           return FALSE;
 
          offset = o->output_section->vma + o->output_offset - o->vma;
          eline = finfo->linenos;
          oeline = finfo->linenos;
          elineend = eline + linesz * o->lineno_count;
-         skipping = false;
+         skipping = FALSE;
          for (; eline < elineend; eline += linesz)
            {
              struct internal_lineno iline;
@@ -2203,7 +2207,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                         with symbol #0) will fail.  We can't regain
                         the space in the output file, but at least
                         they're dense.  */
-                     skipping = true;
+                     skipping = TRUE;
                    }
                  else
                    {
@@ -2243,7 +2247,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                                                 is.n_numaux, auxptr);
                        }
 
-                     skipping = false;
+                     skipping = FALSE;
                    }
 
                  iline.l_addr.l_symndx = indx;
@@ -2262,7 +2266,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
          amt = oeline - finfo->linenos;
          if (bfd_seek (output_bfd, pos, SEEK_SET) != 0
              || bfd_bwrite (finfo->linenos, amt, output_bfd) != amt)
-           return false;
+           return FALSE;
 
          o->output_section->lineno_count += amt / linesz;
        }
@@ -2292,7 +2296,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
       amt = outsym - finfo->outsyms;
       if (bfd_seek (output_bfd, pos, SEEK_SET) != 0
          || bfd_bwrite (finfo->outsyms, amt, output_bfd) != amt)
-       return false;
+       return FALSE;
 
       BFD_ASSERT ((obj_raw_syment_count (output_bfd)
                   + (outsym - finfo->outsyms) / osymesz)
@@ -2325,7 +2329,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                bfd_archive_filename (input_bfd),
                bfd_get_section_name (input_bfd, o)));
              bfd_set_error (bfd_error_no_contents);
-             return false;
+             return FALSE;
            }
 
          continue;
@@ -2338,7 +2342,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
        {
          if (! bfd_get_section_contents (input_bfd, o, finfo->contents,
                                          (file_ptr) 0, o->_raw_size))
-           return false;
+           return FALSE;
          contents = finfo->contents;
        }
 
@@ -2351,14 +2355,14 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
          /* Read in the relocs.  */
          target_index = o->output_section->target_index;
          internal_relocs = (_bfd_coff_read_internal_relocs
-                            (input_bfd, o, false, finfo->external_relocs,
+                            (input_bfd, o, FALSE, finfo->external_relocs,
                              finfo->info->relocateable,
                              (finfo->info->relocateable
                               ? (finfo->section_info[target_index].relocs
                                  + o->output_section->reloc_count)
                               : finfo->internal_relocs)));
          if (internal_relocs == NULL)
-           return false;
+           return FALSE;
 
          /* Call processor specific code to relocate the section
              contents.  */
@@ -2368,7 +2372,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                                           internal_relocs,
                                           finfo->internal_syms,
                                           finfo->sec_ptrs))
-           return false;
+           return FALSE;
 
          if (finfo->info->relocateable)
            {
@@ -2384,7 +2388,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
              for (; irel < irelend; irel++, rel_hash++)
                {
                  struct coff_link_hash_entry *h;
-                 boolean adjusted;
+                 bfd_boolean adjusted;
 
                  *rel_hash = NULL;
 
@@ -2400,7 +2404,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                      if (! (*adjust_symndx) (output_bfd, finfo->info,
                                              input_bfd, o, irel,
                                              &adjusted))
-                       return false;
+                       return FALSE;
                      if (adjusted)
                        continue;
                    }
@@ -2446,12 +2450,12 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                          name = (_bfd_coff_internal_syment_name
                                  (input_bfd, is, buf));
                          if (name == NULL)
-                           return false;
+                           return FALSE;
 
                          if (! ((*finfo->info->callbacks->unattached_reloc)
                                 (finfo->info, name, input_bfd, o,
                                  irel->r_vaddr)))
-                           return false;
+                           return FALSE;
                        }
                    }
                }
@@ -2468,29 +2472,29 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
                               ? o->_cooked_size : o->_raw_size);
          if (! bfd_set_section_contents (output_bfd, o->output_section,
                                          contents, loc, amt))
-           return false;
+           return FALSE;
        }
       else
        {
          if (! (_bfd_write_section_stabs
                 (output_bfd, &coff_hash_table (finfo->info)->stab_info,
                  o, &secdata->stab_info, contents)))
-           return false;
+           return FALSE;
        }
     }
 
   if (! finfo->info->keep_memory)
     {
       if (! _bfd_coff_free_symbols (input_bfd))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write out a global symbol.  Called via coff_link_hash_traverse.  */
 
-boolean
+bfd_boolean
 _bfd_coff_write_global_sym (h, data)
      struct coff_link_hash_entry *h;
      PTR data;
@@ -2508,19 +2512,19 @@ _bfd_coff_write_global_sym (h, data)
     {
       h = (struct coff_link_hash_entry *) h->root.u.i.link;
       if (h->root.type == bfd_link_hash_new)
-       return true;
+       return TRUE;
     }
 
   if (h->indx >= 0)
-    return true;
+    return TRUE;
 
   if (h->indx != -2
       && (finfo->info->strip == strip_all
          || (finfo->info->strip == strip_some
              && (bfd_hash_lookup (finfo->info->keep_hash,
-                                  h->root.root.string, false, false)
+                                  h->root.root.string, FALSE, FALSE)
                  == NULL))))
-    return true;
+    return TRUE;
 
   switch (h->root.type)
     {
@@ -2528,7 +2532,7 @@ _bfd_coff_write_global_sym (h, data)
     case bfd_link_hash_new:
     case bfd_link_hash_warning:
       abort ();
-      return false;
+      return FALSE;
 
     case bfd_link_hash_undefined:
     case bfd_link_hash_undefweak:
@@ -2560,25 +2564,25 @@ _bfd_coff_write_global_sym (h, data)
 
     case bfd_link_hash_indirect:
       /* Just ignore these.  They can't be handled anyhow.  */
-      return true;
+      return TRUE;
     }
 
   if (strlen (h->root.root.string) <= SYMNMLEN)
     strncpy (isym._n._n_name, h->root.root.string, SYMNMLEN);
   else
     {
-      boolean hash;
+      bfd_boolean hash;
       bfd_size_type indx;
 
-      hash = true;
+      hash = TRUE;
       if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
-       hash = false;
+       hash = FALSE;
       indx = _bfd_stringtab_add (finfo->strtab, h->root.root.string, hash,
-                                false);
+                                FALSE);
       if (indx == (bfd_size_type) -1)
        {
-         finfo->failed = true;
-         return false;
+         finfo->failed = TRUE;
+         return FALSE;
        }
       isym._n._n_n._n_zeroes = 0;
       isym._n._n_n._n_offset = STRING_SIZE_SIZE + indx;
@@ -2597,7 +2601,7 @@ _bfd_coff_write_global_sym (h, data)
   if (finfo->global_to_static)
     {
       if (! IS_EXTERNAL (output_bfd, isym))
-       return true;
+       return TRUE;
 
       isym.n_sclass = C_STAT;
     }
@@ -2621,8 +2625,8 @@ _bfd_coff_write_global_sym (h, data)
   if (bfd_seek (output_bfd, pos, SEEK_SET) != 0
       || bfd_bwrite (finfo->outsyms, symesz, output_bfd) != symesz)
     {
-      finfo->failed = true;
-      return false;
+      finfo->failed = TRUE;
+      return FALSE;
     }
 
   h->indx = obj_raw_syment_count (output_bfd);
@@ -2691,27 +2695,27 @@ _bfd_coff_write_global_sym (h, data)
                             (PTR) finfo->outsyms);
       if (bfd_bwrite (finfo->outsyms, symesz, output_bfd) != symesz)
        {
-         finfo->failed = true;
-         return false;
+         finfo->failed = TRUE;
+         return FALSE;
        }
       ++obj_raw_syment_count (output_bfd);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write out task global symbols, converting them to statics.  Called
    via coff_link_hash_traverse.  Calls bfd_coff_write_global_sym to do
    the dirty work, if the symbol we are processing needs conversion.  */
 
-boolean
+bfd_boolean
 _bfd_coff_write_task_globals (h, data)
      struct coff_link_hash_entry *h;
      PTR data;
 {
   struct coff_final_link_info *finfo = (struct coff_final_link_info *) data;
-  boolean rtnval = true;
-  boolean save_global_to_static;
+  bfd_boolean rtnval = TRUE;
+  bfd_boolean save_global_to_static;
 
   if (h->root.type == bfd_link_hash_warning)
     h = (struct coff_link_hash_entry *) h->root.u.i.link;
@@ -2723,7 +2727,7 @@ _bfd_coff_write_task_globals (h, data)
        case bfd_link_hash_defined:
        case bfd_link_hash_defweak:
          save_global_to_static = finfo->global_to_static;
-         finfo->global_to_static = true;
+         finfo->global_to_static = TRUE;
          rtnval = _bfd_coff_write_global_sym (h, data);
          finfo->global_to_static = save_global_to_static;
          break;
@@ -2736,7 +2740,7 @@ _bfd_coff_write_task_globals (h, data)
 
 /* Handle a link order which is supposed to generate a reloc.  */
 
-boolean
+bfd_boolean
 _bfd_coff_reloc_link_order (output_bfd, finfo, output_section, link_order)
      bfd *output_bfd;
      struct coff_final_link_info *finfo;
@@ -2751,7 +2755,7 @@ _bfd_coff_reloc_link_order (output_bfd, finfo, output_section, link_order)
   if (howto == NULL)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   if (link_order->u.reloc.p->addend != 0)
@@ -2759,13 +2763,13 @@ _bfd_coff_reloc_link_order (output_bfd, finfo, output_section, link_order)
       bfd_size_type size;
       bfd_byte *buf;
       bfd_reloc_status_type rstat;
-      boolean ok;
+      bfd_boolean ok;
       file_ptr loc;
 
       size = bfd_get_reloc_size (howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
       if (buf == NULL)
-       return false;
+       return FALSE;
 
       rstat = _bfd_relocate_contents (howto, output_bfd,
                                      (bfd_vma) link_order->u.reloc.p->addend,\
@@ -2788,7 +2792,7 @@ _bfd_coff_reloc_link_order (output_bfd, finfo, output_section, link_order)
                  (bfd *) NULL, (asection *) NULL, (bfd_vma) 0)))
            {
              free (buf);
-             return false;
+             return FALSE;
            }
          break;
        }
@@ -2797,7 +2801,7 @@ _bfd_coff_reloc_link_order (output_bfd, finfo, output_section, link_order)
                                      loc, size);
       free (buf);
       if (! ok)
-       return false;
+       return FALSE;
     }
 
   /* Store the reloc information in the right place.  It will get
@@ -2830,7 +2834,7 @@ _bfd_coff_reloc_link_order (output_bfd, finfo, output_section, link_order)
       h = ((struct coff_link_hash_entry *)
           bfd_wrapped_link_hash_lookup (output_bfd, finfo->info,
                                         link_order->u.reloc.p->u.name,
-                                        false, false, true));
+                                        FALSE, FALSE, TRUE));
       if (h != NULL)
        {
          if (h->indx >= 0)
@@ -2849,7 +2853,7 @@ _bfd_coff_reloc_link_order (output_bfd, finfo, output_section, link_order)
          if (! ((*finfo->info->callbacks->unattached_reloc)
                 (finfo->info, link_order->u.reloc.p->u.name, (bfd *) NULL,
                  (asection *) NULL, (bfd_vma) 0)))
-           return false;
+           return FALSE;
          irel->r_symndx = 0;
        }
     }
@@ -2864,13 +2868,13 @@ _bfd_coff_reloc_link_order (output_bfd, finfo, output_section, link_order)
 
   ++output_section->reloc_count;
 
-  return true;
+  return TRUE;
 }
 
 /* A basic reloc handling routine which may be used by processors with
    simple relocs.  */
 
-boolean
+bfd_boolean
 _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
                                    input_section, contents, relocs, syms,
                                    sections)
@@ -2911,7 +2915,7 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
          (*_bfd_error_handler)
            ("%s: illegal symbol index %ld in relocs",
             bfd_archive_filename (input_bfd), symndx);
-         return false;
+         return FALSE;
        }
       else
        {
@@ -2932,7 +2936,7 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
       howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h,
                                       sym, &addend);
       if (howto == NULL)
-       return false;
+       return FALSE;
 
       /* If we are doing a relocateable link, then we can just ignore
          a PC relative reloc that is pcrel_offset.  It will already
@@ -2987,8 +2991,8 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd, input_section,
-                     rel->r_vaddr - input_section->vma, true)))
-               return false;
+                     rel->r_vaddr - input_section->vma, TRUE)))
+               return FALSE;
            }
        }
 
@@ -3013,7 +3017,7 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
                  != sizeof (long))
                {
                  bfd_set_error (bfd_error_system_call);
-                 return false;
+                 return FALSE;
                }
            }
        }
@@ -3035,7 +3039,7 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
             bfd_archive_filename (input_bfd),
             (unsigned long) rel->r_vaddr,
             bfd_get_section_name (input_bfd, input_section));
-         return false;
+         return FALSE;
        case bfd_reloc_overflow:
          {
            const char *name;
@@ -3049,15 +3053,15 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
              {
                name = _bfd_coff_internal_syment_name (input_bfd, sym, buf);
                if (name == NULL)
-                 return false;
+                 return FALSE;
              }
 
            if (! ((*info->callbacks->reloc_overflow)
                   (info, name, howto->name, (bfd_vma) 0, input_bfd,
                    input_section, rel->r_vaddr - input_section->vma)))
-             return false;
+             return FALSE;
          }
        }
     }
-  return true;
+  return TRUE;
 }
index 6eb4abbd3f858f546adf3f32e30144e1be23dbcc..74fe037d5e00bc1bb43734b2ac667fa88ad99af6 100755 (executable)
@@ -2326,7 +2326,7 @@ if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
 fi
 fi
 WARN_CFLAGS=""
-if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
+if test "x${build_warnings}" != x && test "x$GCC" = xyes ; then
     WARN_CFLAGS="${build_warnings}"
 fi
 
@@ -2369,7 +2369,7 @@ if test "${enable_install_libbfd+set}" = set; then
   enableval="$enable_install_libbfd"
   install_libbfd_p=$enableval
 else
-  if test "${host}" = "${target}" -o "$enable_shared" = "yes"; then
+  if test "${host}" = "${target}" || test "$enable_shared" = "yes"; then
         install_libbfd_p=yes
       else
         install_libbfd_p=no
@@ -5945,7 +5945,7 @@ case "${host}" in
     fi
     ;;
   *)
-    x=`sed -n -e 's/^[         ]*PICFLAG[      ]*=[    ]*//p' < ../libiberty/Makefile | tail -1`
+    x=`sed -n -e 's/^[         ]*PICFLAG[      ]*=[    ]*//p' < ../libiberty/Makefile | sed -n '$p'`
     if test -n "$x"; then
       WIN32LIBADD="-L../libiberty/pic -liberty"
     fi
@@ -6215,6 +6215,9 @@ do
     m68ksysvcoff_vec)          tb="$tb coff-svm68k.lo cofflink.lo" ;;
     m88kbcs_vec)               tb="$tb coff-m88k.lo" ;;
     m88kmach3_vec)             tb="$tb m88kmach3.lo aout32.lo" ;;
+    mach_o_be_vec)              tb="$tb mach-o.lo" ;;
+    mach_o_le_vec)              tb="$tb mach-o.lo" ;;
+    mach_o_fat_vec)             tb="$tb mach-o.lo" ;;
     mcore_pe_big_vec)          tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
     mcore_pe_little_vec)       tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
     mcore_pei_big_vec)         tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
@@ -6229,6 +6232,8 @@ do
     or32coff_big_vec)          tb="$tb coff-or32.lo cofflink.lo" ;;
     pc532machaout_vec)         tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
     pc532netbsd_vec)           tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
+    pef_vec)                    tb="$tb pef.lo" ;;
+    pef_xlib_vec)               tb="$tb pef.lo" ;;
     pdp11_aout_vec)            tb="$tb pdp11.lo" ;;
     pmac_xcoff_vec)            tb="$tb coff-rs6000.lo xcofflink.lo" ;;
     ppcboot_vec)               tb="$tb ppcboot.lo" ;;
@@ -6249,6 +6254,7 @@ do
     sparclynx_coff_vec)                tb="$tb cf-sparclynx.lo lynx-core.lo" ;;
     sparcnetbsd_vec)           tb="$tb sparcnetbsd.lo aout32.lo" ;;
     sunos_big_vec)             tb="$tb sunos.lo aout32.lo" ;;
+    sym_vec)                    tb="$tb xsym.lo" ;;
     tic30_aout_vec)            tb="$tb aout-tic30.lo" ;;
     tic30_coff_vec)            tb="$tb coff-tic30.lo" ;;
     tic4x_coff0_vec)            tb="$tb coff-tic4x.lo" ;;
@@ -6352,10 +6358,10 @@ case ${host64}-${target64}-${want64} in
     if test -n "$GCC" ; then
        bad_64bit_gcc=no;
        echo $ac_n "checking for gcc version with buggy 64-bit support""... $ac_c" 1>&6
-echo "configure:6356: checking for gcc version with buggy 64-bit support" >&5
+echo "configure:6362: checking for gcc version with buggy 64-bit support" >&5
        # Add more tests for gcc versions with non-working 64-bit support here.
        cat > conftest.$ac_ext <<EOF
-#line 6359 "configure"
+#line 6365 "configure"
 #include "confdefs.h"
 :__GNUC__:__GNUC_MINOR__:__i386__:
 EOF
@@ -6401,17 +6407,17 @@ for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6405: checking for $ac_hdr" >&5
+echo "configure:6411: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6410 "configure"
+#line 6416 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6440,12 +6446,12 @@ done
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6444: checking for $ac_func" >&5
+echo "configure:6450: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6449 "configure"
+#line 6455 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6468,7 +6474,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6493,7 +6499,7 @@ fi
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:6497: checking for working mmap" >&5
+echo "configure:6503: checking for working mmap" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6501,7 +6507,7 @@ else
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 6505 "configure"
+#line 6511 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -6654,7 +6660,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:6658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
@@ -6679,12 +6685,12 @@ fi
 for ac_func in madvise mprotect
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6683: checking for $ac_func" >&5
+echo "configure:6689: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6688 "configure"
+#line 6694 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6707,7 +6713,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
index 207e4c007ce516938c95bf9e4b76095397d774b2..634b0b12376de4ccf29c82328d95e1f451187f17 100644 (file)
@@ -32,6 +32,10 @@ hppa*-*-osf*)                HDEFINES=-DHOST_HPPAOSF ;;
 
 ia64-*-linux*)         host64=true; HOST_64BIT_TYPE=long ;;
 ia64-*-aix*)           host64=true; HOST_64BIT_TYPE=long ;;
+ia64-*-hpux*)          host64=true
+                       HOST_64BIT_TYPE="long long";
+                       HOST_U_64BIT_TYPE="unsigned long long";
+                       ;;
 
 i[3456]86-sequent-bsd*)        HDEFINES=-Dshared=genshared ;;
 i[3456]86-sequent-sysv4*) ;;
index cb39e8fdbd089c73dc2d7decdbdce03536b619fb..aa34e7da4b18354d30b960859fac2ac6826c1866 100644 (file)
@@ -80,7 +80,7 @@ if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
   echo "Setting warning flags = $build_warnings" 6>&1
 fi])dnl
 WARN_CFLAGS=""
-if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
+if test "x${build_warnings}" != x && test "x$GCC" = xyes ; then
     WARN_CFLAGS="${build_warnings}"
 fi
 AC_SUBST(WARN_CFLAGS)
@@ -440,7 +440,7 @@ case "${host}" in
     ;;
   *)
 changequote(,)dnl
-    x=`sed -n -e 's/^[         ]*PICFLAG[      ]*=[    ]*//p' < ../libiberty/Makefile | tail -1`
+    x=`sed -n -e 's/^[         ]*PICFLAG[      ]*=[    ]*//p' < ../libiberty/Makefile | sed -n '$p'`
 changequote([,])dnl
     if test -n "$x"; then
       WIN32LIBADD="-L../libiberty/pic -liberty"
@@ -711,6 +711,9 @@ do
     m68ksysvcoff_vec)          tb="$tb coff-svm68k.lo cofflink.lo" ;;
     m88kbcs_vec)               tb="$tb coff-m88k.lo" ;;
     m88kmach3_vec)             tb="$tb m88kmach3.lo aout32.lo" ;;
+    mach_o_be_vec)              tb="$tb mach-o.lo" ;;
+    mach_o_le_vec)              tb="$tb mach-o.lo" ;;
+    mach_o_fat_vec)             tb="$tb mach-o.lo" ;;
     mcore_pe_big_vec)          tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
     mcore_pe_little_vec)       tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
     mcore_pei_big_vec)         tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
@@ -725,6 +728,8 @@ do
     or32coff_big_vec)          tb="$tb coff-or32.lo cofflink.lo" ;;
     pc532machaout_vec)         tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
     pc532netbsd_vec)           tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
+    pef_vec)                    tb="$tb pef.lo" ;;
+    pef_xlib_vec)               tb="$tb pef.lo" ;;
     pdp11_aout_vec)            tb="$tb pdp11.lo" ;;
     pmac_xcoff_vec)            tb="$tb coff-rs6000.lo xcofflink.lo" ;;
     ppcboot_vec)               tb="$tb ppcboot.lo" ;;
@@ -745,6 +750,7 @@ do
     sparclynx_coff_vec)                tb="$tb cf-sparclynx.lo lynx-core.lo" ;;
     sparcnetbsd_vec)           tb="$tb sparcnetbsd.lo aout32.lo" ;;
     sunos_big_vec)             tb="$tb sunos.lo aout32.lo" ;;
+    sym_vec)                    tb="$tb xsym.lo" ;;
     tic30_aout_vec)            tb="$tb aout-tic30.lo" ;;
     tic30_coff_vec)            tb="$tb coff-tic30.lo" ;;
     tic4x_coff0_vec)            tb="$tb coff-tic4x.lo" ;;
index 24142254eed0d8b143220358b5cf501df9ecee97..da9d4d739dc5d4310af99267ba0775e466de432a 100644 (file)
@@ -83,21 +83,21 @@ FUNCTION
        core_file_matches_executable_p
 
 SYNOPSIS
-       boolean core_file_matches_executable_p
+       bfd_boolean core_file_matches_executable_p
                (bfd *core_bfd, bfd *exec_bfd);
 
 DESCRIPTION
-       Return <<true>> if the core file attached to @var{core_bfd}
+       Return <<TRUE>> if the core file attached to @var{core_bfd}
        was generated by a run of the executable file attached to
-       @var{exec_bfd}, <<false>> otherwise.
+       @var{exec_bfd}, <<FALSE>> otherwise.
 */
-boolean
+bfd_boolean
 core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd, *exec_bfd;
 {
     if ((core_bfd->format != bfd_core) || (exec_bfd->format != bfd_object)) {
            bfd_set_error (bfd_error_wrong_format);
-           return false;
+           return FALSE;
        }
 
     return BFD_SEND (core_bfd, _core_file_matches_executable_p,
index eaef4794eaefd5bbbddf32cbc61ebe637463dbba..d6352b199c4b3c23cc8c6d4ba12371ed5f66caf7 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the AMD 29000 architecture.
-   Copyright 1992, 2000 Free Software Foundation, Inc.
+   Copyright 1992, 2000, 2002 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_a29k_arch =
     "a29k",
     "a29k",
     4,
-    true, /* the one and only */
+    TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan ,
     0,
index 93fc69ce61709c90d7aea2dae756003545f90144..7b1dde98221fb7cd471954fb9526c63654668cef 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Alpha architecture.
-   Copyright 1992, 1993, 1998, 2000 Free Software Foundation, Inc.
+   Copyright 1992, 1993, 1998, 2000, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -42,10 +42,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* These exist only so that we can resonably disassemble PALcode.  */
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (64, 64, bfd_mach_alpha_ev4, "alpha:ev4", false, NN(1)),
-  N (64, 64, bfd_mach_alpha_ev5, "alpha:ev5", false, NN(2)),
-  N (64, 64, bfd_mach_alpha_ev6, "alpha:ev6", false, 0),
+  N (64, 64, bfd_mach_alpha_ev4, "alpha:ev4", FALSE, NN(1)),
+  N (64, 64, bfd_mach_alpha_ev5, "alpha:ev5", FALSE, NN(2)),
+  N (64, 64, bfd_mach_alpha_ev6, "alpha:ev6", FALSE, 0),
 };
 
 const bfd_arch_info_type bfd_alpha_arch =
-  N (64, 64, 0, "alpha", true, NN(0));
+  N (64, 64, 0, "alpha", TRUE, NN(0));
index 204eb4833784352e0fd32a97fd059015020cb863..c69df0e715cef7115c703d39aed9a4fc65bd99ec 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the ARC processor
-   Copyright 1994, 1995, 1997, 2001 Free Software Foundation, Inc.
+   Copyright 1994, 1995, 1997, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Doug Evans (dje@cygnus.com).
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -40,15 +40,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  ARC ( bfd_mach_arc_5, "arc5", false, &arch_info_struct[1] ),
-  ARC ( bfd_mach_arc_5, "base", false, &arch_info_struct[2] ),
-  ARC ( bfd_mach_arc_6, "arc6", false, &arch_info_struct[3] ),
-  ARC ( bfd_mach_arc_7, "arc7", false, &arch_info_struct[4] ),
-  ARC ( bfd_mach_arc_8, "arc8", false, NULL ),
+  ARC ( bfd_mach_arc_5, "arc5", FALSE, &arch_info_struct[1] ),
+  ARC ( bfd_mach_arc_5, "base", FALSE, &arch_info_struct[2] ),
+  ARC ( bfd_mach_arc_6, "arc6", FALSE, &arch_info_struct[3] ),
+  ARC ( bfd_mach_arc_7, "arc7", FALSE, &arch_info_struct[4] ),
+  ARC ( bfd_mach_arc_8, "arc8", FALSE, NULL ),
 };
 
 const bfd_arch_info_type bfd_arc_arch =
-  ARC ( bfd_mach_arc_6, "arc", true, &arch_info_struct[0] );
+  ARC ( bfd_mach_arc_6, "arc", TRUE, &arch_info_struct[0] );
 
 /* Utility routines.  */
 
index 9faf648e164a40f31fa2acfdd72c078fbad98474..cd4bf14eaa8996109eaf093a7fdf60dcaa663dca 100644 (file)
@@ -24,7 +24,7 @@
 
 static const bfd_arch_info_type * compatible
   PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *));
-static boolean scan
+static bfd_boolean scan
   PARAMS ((const struct bfd_arch_info *, const char *));
 
 /* This routine is provided two arch_infos and works out which ARM
@@ -98,7 +98,7 @@ processors[] =
   { bfd_mach_arm_XScale, "xscale" }
 };
 
-static boolean
+static bfd_boolean
 scan (info, string)
      const struct bfd_arch_info * info;
      const char * string;
@@ -107,7 +107,7 @@ scan (info, string)
 
   /* First test for an exact match.  */
   if (strcasecmp (string, info->printable_name) == 0)
-    return true;
+    return TRUE;
 
   /* Next check for a processor name instead of an Architecture name.  */
   for (i = sizeof (processors) / sizeof (processors[0]); i--;)
@@ -117,13 +117,13 @@ scan (info, string)
     }
 
   if (i != -1 && info->mach == processors [i].mach)
-    return true;
+    return TRUE;
 
   /* Finally check for the default architecture.  */
   if (strcasecmp (string, "arm") == 0)
     return info->the_default;
 
-  return false;
+  return FALSE;
 }
 
 #define N(number, print, default, next)  \
@@ -131,17 +131,17 @@ scan (info, string)
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (bfd_mach_arm_2,      "armv2",   false, & arch_info_struct[1]),
-  N (bfd_mach_arm_2a,     "armv2a",  false, & arch_info_struct[2]),
-  N (bfd_mach_arm_3,      "armv3",   false, & arch_info_struct[3]),
-  N (bfd_mach_arm_3M,     "armv3m",  false, & arch_info_struct[4]),
-  N (bfd_mach_arm_4,      "armv4",   false, & arch_info_struct[5]),
-  N (bfd_mach_arm_4T,     "armv4t",  false, & arch_info_struct[6]),
-  N (bfd_mach_arm_5,      "armv5",   false, & arch_info_struct[7]),
-  N (bfd_mach_arm_5T,     "armv5t",  false, & arch_info_struct[8]),
-  N (bfd_mach_arm_5TE,    "armv5te", false, & arch_info_struct[9]),
-  N (bfd_mach_arm_XScale, "xscale",  false, NULL)
+  N (bfd_mach_arm_2,      "armv2",   FALSE, & arch_info_struct[1]),
+  N (bfd_mach_arm_2a,     "armv2a",  FALSE, & arch_info_struct[2]),
+  N (bfd_mach_arm_3,      "armv3",   FALSE, & arch_info_struct[3]),
+  N (bfd_mach_arm_3M,     "armv3m",  FALSE, & arch_info_struct[4]),
+  N (bfd_mach_arm_4,      "armv4",   FALSE, & arch_info_struct[5]),
+  N (bfd_mach_arm_4T,     "armv4t",  FALSE, & arch_info_struct[6]),
+  N (bfd_mach_arm_5,      "armv5",   FALSE, & arch_info_struct[7]),
+  N (bfd_mach_arm_5T,     "armv5t",  FALSE, & arch_info_struct[8]),
+  N (bfd_mach_arm_5TE,    "armv5te", FALSE, & arch_info_struct[9]),
+  N (bfd_mach_arm_XScale, "xscale",  FALSE, NULL)
 };
 
 const bfd_arch_info_type bfd_arm_arch =
-  N (0, "arm", true, & arch_info_struct[0]);
+  N (0, "arm", TRUE, & arch_info_struct[0]);
index b623790cac1739845be1386466e3f62b1bd1a925..ba11c70a7a57c1f0eedf8db1ffd1326b007560cc 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD library support routines for the AVR architecture.
-   Copyright 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2002 Free Software Foundation, Inc.
    Contributed by Denis Chertykov <denisc@overta.ru>
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -44,23 +44,23 @@ static const bfd_arch_info_type *compatible
 static const bfd_arch_info_type arch_info_struct[] =
 {
   /* AT90S1200, ATtiny1x, ATtiny28 */
-  N (16, bfd_mach_avr1, "avr:1", false, & arch_info_struct[1]),
+  N (16, bfd_mach_avr1, "avr:1", FALSE, & arch_info_struct[1]),
 
   /* AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22 */
-  N (16, bfd_mach_avr2, "avr:2", false, & arch_info_struct[2]),
+  N (16, bfd_mach_avr2, "avr:2", FALSE, & arch_info_struct[2]),
 
   /* ATmega103, ATmega603 */
-  N (22, bfd_mach_avr3, "avr:3", false, & arch_info_struct[3]),
+  N (22, bfd_mach_avr3, "avr:3", FALSE, & arch_info_struct[3]),
 
   /* ATmega83, ATmega85 */
-  N (16, bfd_mach_avr4, "avr:4", false, & arch_info_struct[4]),
+  N (16, bfd_mach_avr4, "avr:4", FALSE, & arch_info_struct[4]),
 
   /* ATmega161, ATmega163, ATmega32, AT94K */
-  N (22, bfd_mach_avr5, "avr:5", false, NULL)
+  N (22, bfd_mach_avr5, "avr:5", FALSE, NULL)
 };
 
 const bfd_arch_info_type bfd_avr_arch =
-  N (16, bfd_mach_avr2, "avr", true, & arch_info_struct[0]);
+  N (16, bfd_mach_avr2, "avr", TRUE, & arch_info_struct[0]);
 
 /* This routine is provided two arch_infos and works out which AVR
    machine which would be compatible with both and returns a pointer
index 10d779f6c9dfd66da45fee6925c2471b5379ffd6..9e60ff062f3058f2c49d3a64dbc826f3c8a9603b 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Axis CRIS architecture.
-   Copyright 2000 Free Software Foundation, Inc.
+   Copyright 2000, 2002 Free Software Foundation, Inc.
    Contributed by Axis Communications AB.
    Written by Hans-Peter Nilsson.
 
@@ -38,12 +38,12 @@ bfd_cris_arch =
   "cris",                      /* The printable name is the same.  */
   1,                           /* Section alignment power; each section
                                   is aligned to (only) 2^1 bytes.  */
-  true,                                /* This is the default "machine", since
+  TRUE,                                /* This is the default "machine", since
                                   there's only one.  */
   bfd_default_compatible,      /* A default function for testing
                                   "machine" compatibility of two
                                   bfd_arch_info_type.  */
-  bfd_default_scan,            /* Check if an bfd_arch_info_type is a
+  bfd_default_scan,            /* Check if a bfd_arch_info_type is a
                                   match.  */
   NULL                         /* Pointer to next bfd_arch_info_type in
                                   the same family.  */
index 96946633a516af4358decf2fb0661fe4fe5f9d1d..2be72d84163e84ad43040c256d0e95c06a5927c3 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the D10V processor
-   Copyright 1996, 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1996, 1999, 2000, 2002 Free Software Foundation, Inc.
    Contributed by Martin Hunt (hunt@cygnus.com).
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ static const bfd_arch_info_type d10v_ts3_info =
   "d10v",
   "d10v:ts3",
   4, /* section alignment power */
-  false,
+  FALSE,
   bfd_default_compatible,
   bfd_default_scan,
   0,
@@ -48,7 +48,7 @@ static const bfd_arch_info_type d10v_ts2_info =
   "d10v",
   "d10v:ts2",
   4, /* section alignment power */
-  false,
+  FALSE,
   bfd_default_compatible,
   bfd_default_scan,
   &d10v_ts3_info,
@@ -64,7 +64,7 @@ const bfd_arch_info_type bfd_d10v_arch =
   "d10v",
   "d10v",
   4, /* section alignment power */
-  true,
+  TRUE,
   bfd_default_compatible,
   bfd_default_scan,
   &d10v_ts2_info,
index 6eadfee271a0b7ab124cb8c5702dd87474e9b4c7..f884310062bed7c75b0a0ee2228f699ce1f9fb4f 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Mitsubishi D30V processor
-   Copyright 1997 Free Software Foundation, Inc.
+   Copyright 1997, 2002 Free Software Foundation, Inc.
    Contributed by Martin Hunt (hunt@cygnus.com).
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_d30v_arch =
     "d30v",
     "d30v",
     4, /* section alignment power */
-    true,
+    TRUE,
     bfd_default_compatible,
     bfd_default_scan,
     0,
index 2023ff531218f534d3631dde4e5f7a5ed9d33218..358a97bfa649fa073fe78501b9b7786275b156d3 100644 (file)
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_dlx_arch =
     "dlx",
     "dlx",
     4,
-    true, /* The one and only.  */
+    TRUE, /* The one and only.  */
     bfd_default_compatible,
     bfd_default_scan ,
     0,
index b649edb3ee427f74f3940fa4e236ca8dad7f88e0..759f4d4b676b471d3d42d48c4d48a996b25e1303 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the FR30 processor.
-   Copyright 1998 Free Software Foundation, Inc.
+   Copyright 1998, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_fr30_arch =
   "fr30",                      /* architecture name */
   "fr30",                      /* printable name */
   4,                           /* section align power */
-  true,                                /* the default ? */
+  TRUE,                                /* the default ? */
   bfd_default_compatible,      /* architecture comparison fn */
   bfd_default_scan,            /* string to architecture convert fn */
   NULL                         /* next in list */
index cd9ff1ef5c6f8d2ea31f58c3995109d722d160a1..e87289aec03fca9afc70ea0ad64f9e9824b60358 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the FRV processor.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -45,20 +45,20 @@ enum {
 }
 
 static const bfd_arch_info_type arch_info_300
-  = FRV_ARCH (bfd_mach_fr300,   "fr300",   false, (bfd_arch_info_type *)0);
+  = FRV_ARCH (bfd_mach_fr300,   "fr300",   FALSE, (bfd_arch_info_type *)0);
 
 static const bfd_arch_info_type arch_info_400
-  = FRV_ARCH (bfd_mach_fr400, "fr400", false, &arch_info_300);
+  = FRV_ARCH (bfd_mach_fr400, "fr400", FALSE, &arch_info_300);
 
 static const bfd_arch_info_type arch_info_500
-  = FRV_ARCH (bfd_mach_fr500, "fr500", false, &arch_info_400);
+  = FRV_ARCH (bfd_mach_fr500, "fr500", FALSE, &arch_info_400);
 
 static const bfd_arch_info_type arch_info_simple
-  = FRV_ARCH (bfd_mach_frvsimple, "simple", false, &arch_info_500);
+  = FRV_ARCH (bfd_mach_frvsimple, "simple", FALSE, &arch_info_500);
 
 static const bfd_arch_info_type arch_info_tomcat
-  = FRV_ARCH (bfd_mach_frvtomcat, "tomcat", false, &arch_info_simple);
+  = FRV_ARCH (bfd_mach_frvtomcat, "tomcat", FALSE, &arch_info_simple);
 
 const bfd_arch_info_type bfd_frv_arch
-  = FRV_ARCH (bfd_mach_frv, "frv", true, &arch_info_tomcat);
+  = FRV_ARCH (bfd_mach_frv, "frv", TRUE, &arch_info_tomcat);
 
index 10ca3fdfc2b8b9e9d3447296f0f82d9edb0a8df1..eafcb9806dcaf26bd5acd247f5c3338de81f6b13 100644 (file)
@@ -23,35 +23,35 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "sysdep.h"
 #include "libbfd.h"
 
-static boolean h8300_scan
+static bfd_boolean h8300_scan
   PARAMS ((const struct bfd_arch_info *, const char *));
 static const bfd_arch_info_type * compatible
   PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *));
 
-static boolean
+static bfd_boolean
 h8300_scan (info, string)
      const struct bfd_arch_info *info;
      const char *string;
 {
   if (*string != 'h' && *string != 'H')
-    return false;
+    return FALSE;
 
   string++;
   if (*string != '8')
-    return false;
+    return FALSE;
 
   string++;
   if (*string == '/')
     string++;
 
   if (*string != '3')
-    return false;
+    return FALSE;
   string++;
   if (*string != '0')
-    return false;
+    return FALSE;
   string++;
   if (*string != '0')
-    return false;
+    return FALSE;
   string++;
   if (*string == '-')
     string++;
@@ -107,7 +107,7 @@ static const bfd_arch_info_type h8300s_info_struct =
   "h8300s",                    /* arch_name  */
   "h8300s",                    /* printable name */
   1,
-  false,                       /* the default machine */
+  FALSE,                       /* the default machine */
   compatible,
   h8300_scan,
   0
@@ -123,7 +123,7 @@ static const bfd_arch_info_type h8300h_info_struct =
   "h8300h",                    /* arch_name  */
   "h8300h",                    /* printable name */
   1,
-  false,                       /* the default machine */
+  FALSE,                       /* the default machine */
   compatible,
   h8300_scan,
   &h8300s_info_struct
@@ -139,7 +139,7 @@ const bfd_arch_info_type bfd_h8300_arch =
   "h8300",                     /* arch_name  */
   "h8300",                     /* printable name */
   1,
-  true,                                /* the default machine */
+  TRUE,                                /* the default machine */
   compatible,
   h8300_scan,
   &h8300h_info_struct
index 6a1fae05ee6b727dc2052a11ddc11f26a97d39b7..08fb359868b4656e8a2b33ba5a2397b44efa7b67 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD library support routines for the H8/500 architecture.
-   Copyright 1993, 1995, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1993, 1995, 2000, 2001, 2002 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -22,7 +22,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "sysdep.h"
 #include "libbfd.h"
 
-static boolean scan_mach PARAMS ((const struct bfd_arch_info *, const char *));
+static bfd_boolean scan_mach
+  PARAMS ((const struct bfd_arch_info *, const char *));
 
 #if 0
 /*
@@ -119,15 +120,15 @@ howto8_pcrel_callback (abfd, reloc_entry, symbol_in, data,
 }
 
 static reloc_howto_type howto_16
-  = NEWHOWTO(howto16_callback,"abs16",1,false,false);
+  = NEWHOWTO (howto16_callback, "abs16", 1, FALSE, FALSE);
 static reloc_howto_type howto_8
-  = NEWHOWTO(howto8_callback,"abs8",0,false,false);
+  = NEWHOWTO (howto8_callback, "abs8", 0, FALSE, FALSE);
 
 static reloc_howto_type howto_8_FFnn
-  = NEWHOWTO(howto8_FFnn_callback,"ff00+abs8",0,false,false);
+  = NEWHOWTO (howto8_FFnn_callback, "ff00+abs8", 0, FALSE, FALSE);
 
 static reloc_howto_type howto_8_pcrel
-  = NEWHOWTO(howto8_pcrel_callback,"pcrel8",0,false,true);
+  = NEWHOWTO (howto8_pcrel_callback, "pcrel8", 0, FALSE, TRUE);
 
 static reloc_howto_type *
 local_bfd_reloc_type_lookup (arch, code)
@@ -148,16 +149,20 @@ local_bfd_reloc_type_lookup (arch, code)
 }
 #endif
 
-static boolean
+static bfd_boolean
 scan_mach (info, string)
      const struct bfd_arch_info *info ATTRIBUTE_UNUSED;
      const char *string;
 {
-  if (strcmp(string,"h8/500") == 0) return true;
-  if (strcmp(string,"H8/500") == 0) return true;
-  if (strcmp(string,"h8500") == 0) return true;
-  if (strcmp(string,"H8500") == 0) return true;
-  return false;
+  if (strcmp (string,"h8/500") == 0)
+    return TRUE;
+  if (strcmp (string,"H8/500") == 0)
+    return TRUE;
+  if (strcmp (string,"h8500") == 0)
+    return TRUE;
+  if (strcmp (string,"H8500") == 0)
+    return TRUE;
+  return FALSE;
 }
 
 #if 0 /* not used currently */
@@ -185,7 +190,7 @@ const bfd_arch_info_type bfd_h8500_arch =
   "h8500",                     /* arch_name  */
   "h8500",                     /* printable name */
   1,
-  true,                                /* the default machine */
+  TRUE,                                /* the default machine */
   bfd_default_compatible,
   scan_mach,
   0,
index 0c22b8c443679e0065952e10adb999e23df2cfb2..5757e49fe63cc17e740000ea28af214882be7390 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD support for the HP Precision Architecture architecture.
-   Copyright 1992, 1995, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1992, 1995, 1998, 1999, 2000, 2002
+   Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +32,7 @@ static const bfd_arch_info_type bfd_hppa10_arch =
   "hppa",
   "hppa1.0",
   3,
-  true,                                /* Unless we use 1.1 specific features */
+  TRUE,                                /* Unless we use 1.1 specific features */
   bfd_default_compatible,
   bfd_default_scan ,
   0,
@@ -48,7 +49,7 @@ static const bfd_arch_info_type bfd_hppa20_arch =
   "hppa",
   "hppa2.0",
   3,
-  false,                       /* Unless we use 1.1 specific features */
+  FALSE,                       /* Unless we use 1.1 specific features */
   bfd_default_compatible,
   bfd_default_scan ,
   &bfd_hppa10_arch,
@@ -65,7 +66,7 @@ static const bfd_arch_info_type bfd_hppa20w_arch =
   "hppa",
   "hppa2.0w",
   3,
-  false,                       /* Unless we use 1.1 specific features */
+  FALSE,                       /* Unless we use 1.1 specific features */
   bfd_default_compatible,
   bfd_default_scan ,
   &bfd_hppa20_arch,
@@ -81,7 +82,7 @@ const bfd_arch_info_type bfd_hppa_arch =
   "hppa",
   "hppa1.1",
   3,
-  false,                       /* 1.1 specific features used */
+  FALSE,                       /* 1.1 specific features used */
   bfd_default_compatible,
   bfd_default_scan ,
   &bfd_hppa20w_arch,
index d68211320531b9a98b7d4995fed054454b4e6916..2bb2229f93f4ec23bb6cdd97a6b8e4ba7a3c0be6 100644 (file)
@@ -36,7 +36,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "i370",
     "i370:360",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[1]
@@ -50,7 +50,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "i370",
     "i370:370",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     bfd_default_compatible,
     bfd_default_scan,
     0
@@ -67,7 +67,7 @@ const bfd_arch_info_type bfd_i370_arch =
     "i370",
     "i370:common",
     3,
-    true, /* the default */
+    TRUE, /* the default */
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[0]
index f4928275727c8482a4645d79ead3bab4aa4ddae4..272c7196242f762da0ec7b5634cf0791f4407fdd 100644 (file)
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_i386_arch_intel_syntax =
   "i386:intel",
   "i386:intel",
   3,
-  true,
+  TRUE,
   bfd_default_compatible,
   bfd_default_scan ,
   0,
@@ -47,7 +47,7 @@ const bfd_arch_info_type bfd_x86_64_arch_intel_syntax =
   "i386:intel",
   "i386:x86-64:intel",
   3,
-  true,
+  TRUE,
   bfd_default_compatible,
   bfd_default_scan ,
   &bfd_i386_arch_intel_syntax,
@@ -62,7 +62,7 @@ static const bfd_arch_info_type i8086_arch =
   "i8086",
   "i8086",
   3,
-  false,
+  FALSE,
   bfd_default_compatible,
   bfd_default_scan ,
   &bfd_x86_64_arch_intel_syntax,
@@ -78,7 +78,7 @@ const bfd_arch_info_type bfd_x86_64_arch =
   "i386",
   "i386:x86-64",
   3,
-  true,
+  TRUE,
   bfd_default_compatible,
   bfd_default_scan ,
   &i8086_arch,
@@ -94,7 +94,7 @@ const bfd_arch_info_type bfd_i386_arch =
   "i386",
   "i386",
   3,
-  true,
+  TRUE,
   bfd_default_compatible,
   bfd_default_scan ,
   &bfd_x86_64_arch
index 7445e5ffbae416617f49ca900e3934d2155ccb8a..0ee0c5a60bc24c77a95999a38ab61d5bee06e29e 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Intel 860 architecture.
-   Copyright 1992, 1995, 2000 Free Software Foundation, Inc.
+   Copyright 1992, 1995, 2000, 2002 Free Software Foundation, Inc.
    Created mostly by substituting "860" for "386" in cpu-i386.c
    Harry Dolan <dolan@ssd.intel.com>, October 1995
 
@@ -33,7 +33,7 @@ const bfd_arch_info_type bfd_i860_arch =
     "i860",                    /* Architecture name */
     "i860",                    /* Printable name */
     3,                         /* Section alignment exponent */
-    true,                      /* Is this the default architecture? */
+    TRUE,                      /* Is this the default architecture? */
     bfd_default_compatible,
     bfd_default_scan,
     0,                         /* Next in list */
index a7c45002ea1af2d80aa0e056faa0ff7add919273..e77a411adb902f3289573a16e3369337e166fafa 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD library support routines for the i960 architecture.
-   Copyright 1990, 1991, 1993, 1994, 1996, 1999, 2000, 2001
+   Copyright 1990, 1991, 1993, 1994, 1996, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
@@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "sysdep.h"
 #include "libbfd.h"
 
-static boolean scan_960_mach
+static bfd_boolean scan_960_mach
   PARAMS ((const bfd_arch_info_type *, const char *));
 static const bfd_arch_info_type *compatible
   PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *));
@@ -32,13 +32,13 @@ static const bfd_arch_info_type *compatible
    could possibly refer to the i960 machine pointed at in the
    info_struct pointer */
 
-static boolean
+static bfd_boolean
 scan_960_mach (ap, string)
      const bfd_arch_info_type *ap;
      const char *string;
 {
   unsigned long machine;
-  int fail_because_not_80960 = false;
+  int fail_because_not_80960 = FALSE;
 
   /* Look for the string i960 at the front of the string.  */
   if (strncasecmp ("i960", string, 4) == 0)
@@ -51,7 +51,7 @@ scan_960_mach (ap, string)
 
       /* "i960:*" is valid, anything else is not.  */
       if (* string != ':')
-       return false;
+       return FALSE;
 
       string ++;
     }
@@ -61,16 +61,16 @@ scan_960_mach (ap, string)
     {
       string += 5;
 
-      /* Sett his to true here.  If a correct matching postfix
-        is detected below it will be reset to false.  */
-      fail_because_not_80960 = true;
+      /* Set this to TRUE here.  If a correct matching postfix
+        is detected below it will be reset to FALSE.  */
+      fail_because_not_80960 = TRUE;
     }
   /* No match, can't be us.  */
   else
-    return false;
+    return FALSE;
 
   if (* string == '\0')
-    return false;
+    return FALSE;
 
   if (string[0] == 'c' && string[1] == 'o' && string[2] == 'r' &&
       string[3] == 'e' && string[4] == '\0')
@@ -80,19 +80,19 @@ scan_960_mach (ap, string)
   else if (strcasecmp (string, "kb_sb") == 0)
     machine = bfd_mach_i960_kb_sb;
   else if (string[1] == '\0' || string[2] != '\0') /* rest are 2-char.  */
-    return false;
+    return FALSE;
   else if (string[0] == 'k' && string[1] == 'b')
-    { machine = bfd_mach_i960_kb_sb; fail_because_not_80960 = false; }
+    { machine = bfd_mach_i960_kb_sb; fail_because_not_80960 = FALSE; }
   else if (string[0] == 's' && string[1] == 'b')
     machine = bfd_mach_i960_kb_sb;
   else if (string[0] == 'm' && string[1] == 'c')
-    { machine = bfd_mach_i960_mc; fail_because_not_80960 = false; }
+    { machine = bfd_mach_i960_mc; fail_because_not_80960 = FALSE; }
   else if (string[0] == 'x' && string[1] == 'a')
     machine = bfd_mach_i960_xa;
   else if (string[0] == 'c' && string[1] == 'a')
-    { machine = bfd_mach_i960_ca; fail_because_not_80960 = false; }
+    { machine = bfd_mach_i960_ca; fail_because_not_80960 = FALSE; }
   else if (string[0] == 'k' && string[1] == 'a')
-    { machine = bfd_mach_i960_ka_sa; fail_because_not_80960 = false; }
+    { machine = bfd_mach_i960_ka_sa; fail_because_not_80960 = FALSE; }
   else if (string[0] == 's' && string[1] == 'a')
     machine = bfd_mach_i960_ka_sa;
   else if (string[0] == 'j' && string[1] == 'x')
@@ -100,15 +100,15 @@ scan_960_mach (ap, string)
   else if (string[0] == 'h' && string[1] == 'x')
     machine = bfd_mach_i960_hx;
   else
-    return false;
+    return FALSE;
 
   if (fail_because_not_80960)
-    return false;
+    return FALSE;
 
   if (machine == ap->mach)
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 /* This routine is provided two arch_infos and works out the i960
@@ -169,14 +169,14 @@ compatible (a,b)
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N(bfd_mach_i960_ka_sa,"i960:ka_sa",false, &arch_info_struct[1]),
-  N(bfd_mach_i960_kb_sb,"i960:kb_sb",false, &arch_info_struct[2]),
-  N(bfd_mach_i960_mc,   "i960:mc",   false, &arch_info_struct[3]),
-  N(bfd_mach_i960_xa,   "i960:xa",   false, &arch_info_struct[4]),
-  N(bfd_mach_i960_ca,   "i960:ca",   false, &arch_info_struct[5]),
-  N(bfd_mach_i960_jx,   "i960:jx",   false, &arch_info_struct[6]),
-  N(bfd_mach_i960_hx,  "i960:hx",   false, 0),
+  N(bfd_mach_i960_ka_sa,"i960:ka_sa",FALSE, &arch_info_struct[1]),
+  N(bfd_mach_i960_kb_sb,"i960:kb_sb",FALSE, &arch_info_struct[2]),
+  N(bfd_mach_i960_mc,   "i960:mc",   FALSE, &arch_info_struct[3]),
+  N(bfd_mach_i960_xa,   "i960:xa",   FALSE, &arch_info_struct[4]),
+  N(bfd_mach_i960_ca,   "i960:ca",   FALSE, &arch_info_struct[5]),
+  N(bfd_mach_i960_jx,   "i960:jx",   FALSE, &arch_info_struct[6]),
+  N(bfd_mach_i960_hx,  "i960:hx",   FALSE, 0),
 };
 
 const bfd_arch_info_type bfd_i960_arch =
-  N(bfd_mach_i960_core, "i960:core", true, &arch_info_struct[0]);
+  N(bfd_mach_i960_core, "i960:core", TRUE, &arch_info_struct[0]);
index a228b1ca00a58363ee8fec3cb37bf98518bc2740..1025256490e568d3a578e2409dc54723189d5687 100644 (file)
@@ -418,6 +418,7 @@ const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT] =
   {
     /* constants: */
     { CST, ins_const, ext_const, "NIL",                {{ 0, 0}}, 0, "<none>" },
+    { CST, ins_const, ext_const, "ar.csd",     {{ 0, 0}}, 0, "ar.csd" },
     { CST, ins_const, ext_const, "ar.ccv",     {{ 0, 0}}, 0, "ar.ccv" },
     { CST, ins_const, ext_const, "ar.pfs",     {{ 0, 0}}, 0, "ar.pfs" },
     { CST, ins_const, ext_const, "1",          {{ 0, 0}}, 0, "1" },
@@ -586,4 +587,7 @@ const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT] =
       "a branch target" },
     { REL, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0,                  /* TGT64  */
       "a branch target" },
+
+    { ABS, ins_const, ext_const, 0, {{0, 0}}, 0,               /* LDXMOV */
+      "ldxmov target" },
   };
index 1f36568dfa6b0658600ebb4004690921f8719cb8..2185241e486781e10c721a258dfcd9a201ed586a 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the ia64 architecture.
-   Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_ia64_elf32_arch =
     "ia64",
     "ia64-elf32",
     3, /* log2 of section alignment */
-    true, /* the one and only */
+    TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan ,
     0,
@@ -48,7 +48,7 @@ const bfd_arch_info_type bfd_ia64_arch =
     "ia64",
     "ia64-elf64",
     3, /* log2 of section alignment */
-    true, /* the one and only */
+    TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan ,
     &bfd_ia64_elf32_arch,
index 6afb7fe57f69fc224eb800a7093b22532f95d126..a953149a474647066c5038963ea3c443c0c794d5 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Scenix IP2xxx processor.
-   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+   Copyright 2000, 2002 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_ip2k_nonext_arch =
   "ip2k",                      /* Architecture name.  */
   "ip2022",                    /* Machine name.  */
   1,                           /* Section align power.  */
-  false,                       /* The default ?  */
+  FALSE,                       /* The default ?  */
   bfd_default_compatible,      /* Architecture comparison fn.  */
   bfd_default_scan,            /* String to architecture convert fn.  */
   NULL                         /* Next in list.  */
@@ -47,7 +47,7 @@ const bfd_arch_info_type bfd_ip2k_arch =
   "ip2k",                      /* Architecture name.  */
   "ip2022ext",                 /* Machine name.  */
   1,                           /* Section align power.  */
-  true,                                /* The default ?  */
+  TRUE,                                /* The default ?  */
   bfd_default_compatible,      /* Architecture comparison fn.  */
   bfd_default_scan,            /* String to architecture convert fn.  */
   & bfd_ip2k_nonext_arch       /* Next in list.  */
index 3f8a678beec0566d66245ae5c6a25dc876e0c207..2d0adcd6bc22b0c2265db32403bc822187b20418 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Matsushita 10200 processor
-   Copyright 1996, 1997 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_mn10200_arch =
     "mn10200",
     "mn10200",
     2,
-    true, /* the one and only */
+    TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan ,
     0,
index 4add3c1aa420ca225d0c9f854f9d75b327f3031a..a67c48b68796ddd4e80f3b4d5a98b4cbe0fdbf0d 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Matsushita 10300 processor
-   Copyright 1996, 1997, 1999 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_am33_arch =
     "am33",
     "am33",
     2,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     0,
@@ -47,7 +47,7 @@ const bfd_arch_info_type bfd_mn10300_arch =
     "mn10300",
     "mn10300",
     2,
-    true, /* the one and only */
+    TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan,
     &bfd_am33_arch,
index c28b7da41eb64bf3a7c937b3a82cb8c20a8497ed..bebc2ed4b7ea1aa2d188ac4f49d8ed12edffb4cd 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the M32R processor.
-   Copyright 1996, 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1996, 1999, 2000, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -29,11 +29,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (bfd_mach_m32rx, "m32rx", false, NULL)
+  N (bfd_mach_m32rx, "m32rx", FALSE, NULL)
 };
 
 #undef NEXT
 #define NEXT &arch_info_struct[0]
 
 const bfd_arch_info_type bfd_m32r_arch =
-  N (bfd_mach_m32r, "m32r", true, NEXT);
+  N (bfd_mach_m32r, "m32r", TRUE, NEXT);
index 12329ebde1c0556e86d4cda7ba96141b62ce5bb3..beea627c50c18be15bbe419f96dbc1e25391bfa7 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Motorola 68HC11 processor
-   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_m68hc11_arch =
     "m68hc11",
     "m68hc11",
     4, /* section alignment power */
-    true,
+    TRUE,
     bfd_default_compatible,
     bfd_default_scan,
     0,
index 1810438b291ac559d4e4b5aa0340ff84f6f7f551..d43eb95fc17c2c98b033e5437874e3cdcf9cf185 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Motorola 68HC12 processor
-   Copyright 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_m68hc12_arch =
     "m68hc12",
     "m68hc12",
     4, /* section alignment power */
-    true,
+    TRUE,
     bfd_default_compatible,
     bfd_default_scan,
     0,
index c6820de15e5ecc54dd3cd9cd6a8c82bec76313e5..1648340fa54fc9e9aa7ecbd0b7fa6f41dec951fe 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD library support routines for architectures.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1997, 1998, 2000, 2001
+   Copyright 1990, 1991, 1992, 1993, 1994, 1997, 1998, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
@@ -28,19 +28,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 static const bfd_arch_info_type arch_info_struct[] =
   {
-    N(bfd_mach_m68000, "m68k:68000", false, &arch_info_struct[1]),
-    N(bfd_mach_m68008, "m68k:68008", false, &arch_info_struct[2]),
-    N(bfd_mach_m68010, "m68k:68010", false, &arch_info_struct[3]),
-    N(bfd_mach_m68020, "m68k:68020", false, &arch_info_struct[4]),
-    N(bfd_mach_m68030, "m68k:68030", false, &arch_info_struct[5]),
-    N(bfd_mach_m68040, "m68k:68040", false, &arch_info_struct[6]),
-    N(bfd_mach_cpu32,  "m68k:cpu32", false, &arch_info_struct[7]),
-    N(bfd_mach_mcf5200,"m68k:5200",  false, &arch_info_struct[8]),
-    N(bfd_mach_mcf5206e,"m68k:5206e",false, &arch_info_struct[9]),
-    N(bfd_mach_mcf5307, "m68k:5307", false, &arch_info_struct[10]),
-    N(bfd_mach_mcf5407, "m68k:5407", false, &arch_info_struct[11]),
-    N(bfd_mach_m68060, "m68k:68060", false, 0),
+    N(bfd_mach_m68000, "m68k:68000", FALSE, &arch_info_struct[1]),
+    N(bfd_mach_m68008, "m68k:68008", FALSE, &arch_info_struct[2]),
+    N(bfd_mach_m68010, "m68k:68010", FALSE, &arch_info_struct[3]),
+    N(bfd_mach_m68020, "m68k:68020", FALSE, &arch_info_struct[4]),
+    N(bfd_mach_m68030, "m68k:68030", FALSE, &arch_info_struct[5]),
+    N(bfd_mach_m68040, "m68k:68040", FALSE, &arch_info_struct[6]),
+    N(bfd_mach_cpu32,  "m68k:cpu32", FALSE, &arch_info_struct[7]),
+    N(bfd_mach_mcf5200,"m68k:5200",  FALSE, &arch_info_struct[8]),
+    N(bfd_mach_mcf5206e,"m68k:5206e",FALSE, &arch_info_struct[9]),
+    N(bfd_mach_mcf5307, "m68k:5307", FALSE, &arch_info_struct[10]),
+    N(bfd_mach_mcf5407, "m68k:5407", FALSE, &arch_info_struct[11]),
+    N(bfd_mach_m68060, "m68k:68060", FALSE, 0),
   };
 
 const bfd_arch_info_type bfd_m68k_arch =
-  N(0, "m68k", true, &arch_info_struct[0]);
+  N(0, "m68k", TRUE, &arch_info_struct[0]);
index ec698ed2c251118c91eb954db1d4934424bfe409..6e0012d4fe6032ba38b92849876042d6cc6a94fa 100644 (file)
@@ -1,5 +1,5 @@
 /* bfd back-end for m88k support
-   Copyright 1990, 1991, 1994, 2000 Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1994, 2000, 2002 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_m88k_arch =
     "m88k",
     "m88k:88100",
     3,
-    true, /* the one and only */
+    TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan ,
     0,
index 624f2723c2940e77971113249e6858e772a9bbd7..f7a2389dce7364f4250e246099d3292961d4e1df 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD library support routines for Motorola's MCore architecture
-   Copyright 1993, 1999 Free Software Foundation, Inc.
+   Copyright 1993, 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_mcore_arch =
   "MCore",                     /* Architecture name */
   "MCore",                     /* Printable name */
   3,                           /* Section align power */
-  true,                                /* Is this the default architecture ? */
+  TRUE,                                /* Is this the default architecture ? */
   bfd_default_compatible,      /* Architecture comparison function */
   bfd_default_scan,            /* String to architecture conversion */
   NULL                         /* Next in list */
index 75e84c227c6a4cf23eee702c8962387687710709..e587535e28b6739d94e442ba61480823c24bb323 100644 (file)
@@ -90,29 +90,29 @@ enum
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (32, 32, bfd_mach_mips3000, "mips:3000",      false, NN(I_mips3000)),
-  N (32, 32, bfd_mach_mips3900, "mips:3900",      false, NN(I_mips3900)),
-  N (64, 64, bfd_mach_mips4000, "mips:4000",      false, NN(I_mips4000)),
-  N (64, 64, bfd_mach_mips4010, "mips:4010",      false, NN(I_mips4010)),
-  N (64, 64, bfd_mach_mips4100, "mips:4100",      false, NN(I_mips4100)),
-  N (64, 64, bfd_mach_mips4111, "mips:4111",      false, NN(I_mips4111)),
-  N (64, 64, bfd_mach_mips4120, "mips:4120",      false, NN(I_mips4120)),
-  N (64, 64, bfd_mach_mips4300, "mips:4300",      false, NN(I_mips4300)),
-  N (64, 64, bfd_mach_mips4400, "mips:4400",      false, NN(I_mips4400)),
-  N (64, 64, bfd_mach_mips4600, "mips:4600",      false, NN(I_mips4600)),
-  N (64, 64, bfd_mach_mips4650, "mips:4650",      false, NN(I_mips4650)),
-  N (64, 64, bfd_mach_mips5000, "mips:5000",      false, NN(I_mips5000)),
-  N (64, 64, bfd_mach_mips5400, "mips:5400",      false, NN(I_mips5400)),
-  N (64, 64, bfd_mach_mips5500, "mips:5500",      false, NN(I_mips5500)),
-  N (32, 32, bfd_mach_mips6000, "mips:6000",      false, NN(I_mips6000)),
-  N (64, 64, bfd_mach_mips8000, "mips:8000",      false, NN(I_mips8000)),
-  N (64, 64, bfd_mach_mips10000,"mips:10000",     false, NN(I_mips10000)),
-  N (64, 64, bfd_mach_mips12000,"mips:12000",     false, NN(I_mips12000)),
-  N (64, 64, bfd_mach_mips16,   "mips:16",        false, NN(I_mips16)),
-  N (64, 64, bfd_mach_mips5,    "mips:mips5",     false, NN(I_mips5)),
-  N (32, 32, bfd_mach_mipsisa32,  "mips:isa32",   false, NN(I_mipsisa32)),
-  N (64, 64, bfd_mach_mipsisa64,  "mips:isa64",   false, NN(I_mipsisa64)),
-  N (64, 64, bfd_mach_mips_sb1, "mips:sb1",       false, 0),
+  N (32, 32, bfd_mach_mips3000, "mips:3000",      FALSE, NN(I_mips3000)),
+  N (32, 32, bfd_mach_mips3900, "mips:3900",      FALSE, NN(I_mips3900)),
+  N (64, 64, bfd_mach_mips4000, "mips:4000",      FALSE, NN(I_mips4000)),
+  N (64, 64, bfd_mach_mips4010, "mips:4010",      FALSE, NN(I_mips4010)),
+  N (64, 64, bfd_mach_mips4100, "mips:4100",      FALSE, NN(I_mips4100)),
+  N (64, 64, bfd_mach_mips4111, "mips:4111",      FALSE, NN(I_mips4111)),
+  N (64, 64, bfd_mach_mips4120, "mips:4120",      FALSE, NN(I_mips4120)),
+  N (64, 64, bfd_mach_mips4300, "mips:4300",      FALSE, NN(I_mips4300)),
+  N (64, 64, bfd_mach_mips4400, "mips:4400",      FALSE, NN(I_mips4400)),
+  N (64, 64, bfd_mach_mips4600, "mips:4600",      FALSE, NN(I_mips4600)),
+  N (64, 64, bfd_mach_mips4650, "mips:4650",      FALSE, NN(I_mips4650)),
+  N (64, 64, bfd_mach_mips5000, "mips:5000",      FALSE, NN(I_mips5000)),
+  N (64, 64, bfd_mach_mips5400, "mips:5400",      FALSE, NN(I_mips5400)),
+  N (64, 64, bfd_mach_mips5500, "mips:5500",      FALSE, NN(I_mips5500)),
+  N (32, 32, bfd_mach_mips6000, "mips:6000",      FALSE, NN(I_mips6000)),
+  N (64, 64, bfd_mach_mips8000, "mips:8000",      FALSE, NN(I_mips8000)),
+  N (64, 64, bfd_mach_mips10000,"mips:10000",     FALSE, NN(I_mips10000)),
+  N (64, 64, bfd_mach_mips12000,"mips:12000",     FALSE, NN(I_mips12000)),
+  N (64, 64, bfd_mach_mips16,   "mips:16",        FALSE, NN(I_mips16)),
+  N (64, 64, bfd_mach_mips5,    "mips:mips5",     FALSE, NN(I_mips5)),
+  N (32, 32, bfd_mach_mipsisa32,  "mips:isa32",   FALSE, NN(I_mipsisa32)),
+  N (64, 64, bfd_mach_mipsisa64,  "mips:isa64",   FALSE, NN(I_mipsisa64)),
+  N (64, 64, bfd_mach_mips_sb1, "mips:sb1",       FALSE, 0),
 };
 
 /* The default architecture is mips:3000, but with a machine number of
@@ -120,4 +120,4 @@ static const bfd_arch_info_type arch_info_struct[] =
    of mips, and an explicit setting of mips:3000.  */
 
 const bfd_arch_info_type bfd_mips_arch =
-N (32, 32, 0, "mips", true, &arch_info_struct[0]);
+N (32, 32, 0, "mips", TRUE, &arch_info_struct[0]);
index a21473ce4d4b23d4bf891c06b119230a27296bac..57b28c585bbc61da30019810e7c0616b9bafe3c7 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD library support routines for MMIX.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright 2001, 2002 Free Software Foundation, Inc.
    Contributed by Hans-Peter Nilsson (hp@bitrange.com)
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -34,7 +34,7 @@ bfd_mmix_arch =
    "mmix",                     /* Architecture name.  */
    "mmix",                     /* Printable name.  */
    3,                          /* Section align power.  */
-   true,                       /* This is the default architecture.  */
+   TRUE,                       /* This is the default architecture.  */
    bfd_default_compatible,     /* Architecture comparison function.  */
    bfd_default_scan,           /* String to architecture conversion.  */
    NULL                                /* Next in list.  */
index acc081a153c35795c7ddb18bca0f0dbec00ec4ca..1fe67d9ffce2c450059692836a2a544aed7f37d6 100644 (file)
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N(32532,"ns32k:32532",true, 0), /* The word ns32k will match this too.  */
+  N(32532,"ns32k:32532",TRUE, 0), /* The word ns32k will match this too.  */
 };
 
 const bfd_arch_info_type bfd_ns32k_arch =
-  N(32032,"ns32k:32032",false, &arch_info_struct[0]);
+  N(32032,"ns32k:32032",FALSE, &arch_info_struct[0]);
 
 static bfd_reloc_status_type do_ns32k_reloc
   PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR, asection *,
@@ -232,16 +232,16 @@ do_ns32k_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
         of the location within the section.  Some targets arrange for
         the addend to be the negative of the position of the location
         within the section; for example, i386-aout does this.  For
-        i386-aout, pcrel_offset is false.  Some other targets do not
+        i386-aout, pcrel_offset is FALSE.  Some other targets do not
         include the position of the location; for example, m88kbcs,
-        or ELF.  For those targets, pcrel_offset is true.
+        or ELF.  For those targets, pcrel_offset is TRUE.
 
         If we are producing relocateable output, then we must ensure
         that this reloc will be correctly computed when the final
-        relocation is done.  If pcrel_offset is false we want to wind
+        relocation is done.  If pcrel_offset is FALSE we want to wind
         up with the negative of the location within the section,
         which means we must adjust the existing addend by the change
-        in the location within the section.  If pcrel_offset is true
+        in the location within the section.  If pcrel_offset is TRUE
         we do not want to adjust the existing addend at all.
 
         FIXME: This seems logical to me, but for the case of
@@ -594,7 +594,7 @@ _bfd_do_ns32k_reloc_contents (howto, input_bfd, relocation, location,
 {
   int size;
   bfd_vma x;
-  boolean overflow;
+  bfd_boolean overflow;
 
   /* If the size is negative, negate RELOCATION.  This isn't very
      general.  */
@@ -622,7 +622,7 @@ _bfd_do_ns32k_reloc_contents (howto, input_bfd, relocation, location,
      which we don't check for.  We must either check at every single
      operation, which would be tedious, or we must do the computations
      in a type larger than bfd_vma, which would be inefficient.  */
-  overflow = false;
+  overflow = FALSE;
   if (howto->complain_on_overflow != complain_overflow_dont)
     {
       bfd_vma check;
@@ -697,7 +697,7 @@ _bfd_do_ns32k_reloc_contents (howto, input_bfd, relocation, location,
 
            if (signed_check > reloc_signed_max
                || signed_check < reloc_signed_min)
-             overflow = true;
+             overflow = TRUE;
          }
          break;
        case complain_overflow_unsigned:
@@ -709,7 +709,7 @@ _bfd_do_ns32k_reloc_contents (howto, input_bfd, relocation, location,
            (((1 << (howto->bitsize - 1)) - 1) << 1) | 1;
 
            if (check > reloc_unsigned_max)
-             overflow = true;
+             overflow = TRUE;
          }
          break;
        case complain_overflow_bitfield:
@@ -722,7 +722,7 @@ _bfd_do_ns32k_reloc_contents (howto, input_bfd, relocation, location,
            if ((check & ~reloc_bits) != 0
                && (((bfd_vma) signed_check & ~reloc_bits)
                    != (-(bfd_vma) 1 & ~reloc_bits)))
-             overflow = true;
+             overflow = TRUE;
          }
          break;
        default:
@@ -818,9 +818,9 @@ _bfd_ns32k_final_link_relocate (howto, input_bfd, input_section, contents,
      location we are relocating.  Some targets (e.g., i386-aout)
      arrange for the contents of the section to be the negative of the
      offset of the location within the section; for such targets
-     pcrel_offset is false.  Other targets (e.g., m88kbcs or ELF)
+     pcrel_offset is FALSE.  Other targets (e.g., m88kbcs or ELF)
      simply leave the contents of the section as zero; for such
-     targets pcrel_offset is true.  If pcrel_offset is false we do not
+     targets pcrel_offset is TRUE.  If pcrel_offset is FALSE we do not
      need to subtract out the offset of the location within the
      section (which is just ADDRESS).  */
   if (howto->pc_relative)
index ffd8e5e6cafabe8137a477c077eb383235e8378e..0ddd68c523c8ae20a96056ee6105deb889d65aa2 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the OpenRISC architecture.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright 2001, 2002 Free Software Foundation, Inc.
    Contributed by Johan Rydberg, jrydberg@opencores.org
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -39,4 +39,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
   }
 
 const bfd_arch_info_type bfd_openrisc_arch =
-  N (32, 32, 0, "openrisc", true, 0);
+  N (32, 32, 0, "openrisc", TRUE, 0);
index 8a523280c843cb7f08c0f983573f315398949464..e2f1d05f288da2faa12722495144ab8c5d42988e 100644 (file)
@@ -32,8 +32,8 @@ const bfd_arch_info_type bfd_or32_arch =
     "or32",
     "or32",
     4,
-    true,         /* The one and only.  */
-    bfd_default_compatible, 
+    TRUE,         /* The one and only.  */
+    bfd_default_compatible,
     bfd_default_scan ,
     0,
   };
index 13e0e90d0d69d5492b28aedc741d9e5047ca821b..1ad036ee1fcc09eda3719cd0a5c7cd3606793ce1 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for PDP-11 support.
-   Copyright 2001 Free Software Foundation, Inc.
+   Copyright 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_pdp11_arch =
     "pdp11",
     "pdp11",
     1,         /* aligment = 16 bit */
-    true, /* the one and only */
+    TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan ,
     0,
index 8e58c89fbd72758519ff59294f06227e71d147ad..a2a4cd476de1fbb2c43c1baf2f6b0a60145724d0 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD library support routines for the Pico Java architecture.
-   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Transmeta. sac@pobox.com
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_pj_arch =
   "pj",                                /* arch_name  */
   "pj",                                /* printable name */
   1,
-  true,                                /* the default machine */
+  TRUE,                                /* the default machine */
   bfd_default_compatible,
   bfd_default_scan,
   0
index 017442571c898ec4145ee012cc81036e5374392e..20b490941986dc42fbec53f1697252f356449f21 100644 (file)
@@ -61,7 +61,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:common64",
     3,
-    true, /* default for 64 bit target */
+    TRUE, /* default for 64 bit target */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[1]
@@ -77,7 +77,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:common",
     3,
-    false,
+    FALSE,
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[2],
@@ -93,7 +93,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:common",
     3,
-    true, /* default for 32 bit target */
+    TRUE, /* default for 32 bit target */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[1],
@@ -109,7 +109,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:common64",
     3,
-    false,
+    FALSE,
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[2]
@@ -124,7 +124,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:603",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[3]
@@ -138,7 +138,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:EC603e",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[4]
@@ -152,7 +152,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:604",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[5]
@@ -166,7 +166,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:403",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[6]
@@ -180,7 +180,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:601",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[7]
@@ -194,7 +194,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:620",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[8]
@@ -208,7 +208,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:630",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[9]
@@ -222,7 +222,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:a35",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[10]
@@ -236,7 +236,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:rs64ii",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[11]
@@ -250,7 +250,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:rs64iii",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[12]
@@ -264,7 +264,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:7400",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[13]
@@ -278,7 +278,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:e500",
     3,
-    false,
+    FALSE,
     powerpc_compatible,
     bfd_default_scan,
     &bfd_powerpc_archs[14]
@@ -292,7 +292,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     "powerpc",
     "powerpc:MPC8XX",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     powerpc_compatible,
     bfd_default_scan,
     0
index 777611e603aa07b30e013305a69b129f1688c4ec..63df554dca65b67e66a8c3b5d8de75d87dcd0848 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD back-end for rs6000 support
-   Copyright 1990, 1991, 1993, 1995, 2000 Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1993, 1995, 2000, 2002
+   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
@@ -64,7 +65,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "rs6000",
     "rs6000:rs1",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     rs6000_compatible,
     bfd_default_scan,
     &arch_info_struct[1]
@@ -78,7 +79,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "rs6000",
     "rs6000:rsc",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     rs6000_compatible,
     bfd_default_scan,
     &arch_info_struct[2]
@@ -92,7 +93,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "rs6000",
     "rs6000:rs2",
     3,
-    false, /* not the default */
+    FALSE, /* not the default */
     rs6000_compatible,
     bfd_default_scan,
     0
@@ -109,7 +110,7 @@ const bfd_arch_info_type bfd_rs6000_arch =
     "rs6000",
     "rs6000:6000",
     3,
-    true, /* the default */
+    TRUE, /* the default */
     rs6000_compatible,
     bfd_default_scan,
     &arch_info_struct[0]
index ac0d45e0c75dcd9b4e5d4b72fdeb2ed08d89c159..66fd2461f2e1f3fcd22f69381a8433423bd40612 100644 (file)
@@ -33,7 +33,7 @@ const bfd_arch_info_type bfd_s390_64_arch =
     "s390",
     "s390:64-bit",
     3, /* section alignment power */
-    true, /* the default */
+    TRUE, /* the default */
     bfd_default_compatible,
     bfd_default_scan,
     NULL
@@ -49,7 +49,7 @@ const bfd_arch_info_type bfd_s390_arch =
     "s390",
     "s390:31-bit",
     3, /* section alignment power */
-    true, /* the default */
+    TRUE, /* the default */
     bfd_default_compatible,
     bfd_default_scan,
     &bfd_s390_64_arch
index dff2f88ebe1c300d52701531a1db2da472377294..3331c27cc388f119b6dd9ea13b986ce1b7ddc669 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD library support routines for the Hitachi-SH architecture.
-   Copyright 1993, 1994, 1997, 1998, 2000, 2001
+   Copyright 1993, 1994, 1997, 1998, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
@@ -60,7 +60,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sh",                      /* arch_name  */
     "sh2",                     /* printable name */
     1,
-    false,                     /* not the default */
+    FALSE,                     /* not the default */
     bfd_default_compatible,
     bfd_default_scan,
     SH2_NEXT
@@ -74,7 +74,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sh",                      /* arch_name  */
     "sh-dsp",                  /* printable name */
     1,
-    false,                     /* not the default */
+    FALSE,                     /* not the default */
     bfd_default_compatible,
     bfd_default_scan,
     SH_DSP_NEXT
@@ -88,7 +88,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sh",                      /* arch_name  */
     "sh3",                     /* printable name */
     1,
-    false,                     /* not the default */
+    FALSE,                     /* not the default */
     bfd_default_compatible,
     bfd_default_scan,
     SH3_NEXT
@@ -102,7 +102,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sh",                      /* arch_name  */
     "sh3-dsp",                 /* printable name */
     1,
-    false,                     /* not the default */
+    FALSE,                     /* not the default */
     bfd_default_compatible,
     bfd_default_scan,
     SH3_DSP_NEXT
@@ -116,7 +116,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sh",                      /* arch_name  */
     "sh3e",                    /* printable name */
     1,
-    false,                     /* not the default */
+    FALSE,                     /* not the default */
     bfd_default_compatible,
     bfd_default_scan,
     SH3E_NEXT
@@ -130,7 +130,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sh",                      /* arch_name  */
     "sh4",                     /* printable name */
     1,
-    false,                     /* not the default */
+    FALSE,                     /* not the default */
     bfd_default_compatible,
     bfd_default_scan,
     SH4_NEXT
@@ -144,7 +144,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sh",                      /* arch_name  */
     "sh5",                     /* printable name */
     1,
-    false,                     /* not the default */
+    FALSE,                     /* not the default */
     bfd_default_compatible,
     bfd_default_scan,
     SH64_NEXT
@@ -161,7 +161,7 @@ const bfd_arch_info_type bfd_sh_arch =
   "sh",                                /* arch_name  */
   "sh",                                /* printable name */
   1,
-  true,                                /* the default machine */
+  TRUE,                                /* the default machine */
   bfd_default_compatible,
   bfd_default_scan,
   SH_NEXT
index e3b8ecbbe223c489e612a05a51fa22440b852f13..3c0eae50fada1ee151e59bc85fb35b8068f98e74 100644 (file)
@@ -33,7 +33,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sparc",
     "sparc:sparclet",
     3,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[1],
@@ -47,7 +47,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sparc",
     "sparc:sparclite",
     3,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[2],
@@ -61,7 +61,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sparc",
     "sparc:v8plus",
     3,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[3],
@@ -75,7 +75,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sparc",
     "sparc:v8plusa",
     3,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[4],
@@ -89,7 +89,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sparc",
     "sparc:sparclite_le",
     3,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[5],
@@ -103,7 +103,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sparc",
     "sparc:v9",
     3,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[6],
@@ -117,7 +117,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sparc",
     "sparc:v9a",
     3,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[7],
@@ -131,7 +131,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sparc",
     "sparc:v8plusb",
     3,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[8],
@@ -145,7 +145,7 @@ static const bfd_arch_info_type arch_info_struct[] =
     "sparc",
     "sparc:v9b",
     3,
-    false,
+    FALSE,
     bfd_default_compatible,
     bfd_default_scan,
     0,
@@ -162,7 +162,7 @@ const bfd_arch_info_type bfd_sparc_arch =
     "sparc",
     "sparc",
     3,
-    true, /* the default */
+    TRUE, /* the default */
     bfd_default_compatible,
     bfd_default_scan,
     &arch_info_struct[0],
index dd723f7b4a59f69676795928e50d8130895a6d9a..71bfc0dd2f45779532901ecfeb5137d56699295b 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Texas Instruments TMS320C30 architecture.
-   Copyright 1998 Free Software Foundation, Inc.
+   Copyright 1998, 2002 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_tic30_arch =
   "tic30",
   "tms320c30",
   2,
-  true,                                /* the one and only */
+  TRUE,                                /* the one and only */
   bfd_default_compatible,
   bfd_default_scan,
   0,
index 75a8a240c380a82ec6ce4d4c54d35e6b4fa4adab..2260f7033436f69deae1fe09f29705419d16eeb0 100644 (file)
@@ -1,5 +1,5 @@
 /* bfd back-end for TMS320C[34]x support
-   Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 2002 Free Software Foundation, Inc.
 
    Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz)
 
 #include "sysdep.h"
 #include "libbfd.h"
 
-static boolean c4x_scan
+static bfd_boolean c4x_scan
     PARAMS ((const struct bfd_arch_info *, const char * ));
 
 
-static boolean
+static bfd_boolean
 c4x_scan (info, string)
      const struct bfd_arch_info *info;
      const char *string;
@@ -39,14 +39,14 @@ c4x_scan (info, string)
   if (*string == 'C' || *string == 'c')
     string++;
   if (string[1] < '0' && string[1] > '9')
-    return false;
+    return FALSE;
 
   if (*string == '3')
     return (info->mach == bfd_mach_c3x);
   else if (*string == '4')
     return info->mach == bfd_mach_c4x;
 
-  return false;
+  return FALSE;
 }
 
 
@@ -60,8 +60,8 @@ const bfd_arch_info_type bfd_tic3x_arch =
     "c3x",                     /* Architecture name.  */
     "tms320c3x",               /* Printable name.  */
     0,                         /* Alignment power.  */
-    false,                     /* Not the default architecture.  */
-    bfd_default_compatible, 
+    FALSE,                     /* Not the default architecture.  */
+    bfd_default_compatible,
     c4x_scan,
     0
   };
@@ -76,8 +76,8 @@ const bfd_arch_info_type bfd_tic4x_arch =
     "c4x",                     /* Architecture name.  */
     "tms320c4x",               /* Printable name.  */
     0,                         /* Alignment power.  */
-    true,                      /* The default architecture.  */
-    bfd_default_compatible, 
+    TRUE,                      /* The default architecture.  */
+    bfd_default_compatible,
     c4x_scan,
     &bfd_tic3x_arch,
   };
index 12f5029f2195813bee9248f0ecafb4ea13e1f371..b6962aacc015a3f0fd9b3f0a8d58ec2da0fd8a2c 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the Texas Instruments TMS320C54X architecture.
-   Copyright 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2002 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_tic54x_arch =
   "tic54x",
   "tms320c54x",
   1,
-  true,                                /* the one and only */
+  TRUE,                                /* the one and only */
   bfd_default_compatible,
   bfd_default_scan,
   0,
index 8e7af21f88368168aaf88fdc90e081098e2cee5f..487bcb154f89be3d46293281e1fe771c63c788cd 100644 (file)
@@ -1,5 +1,5 @@
 /* bfd back-end for TI TMS320C80 (MVP) support
-   Copyright 1996 Free Software Foundation, Inc.
+   Copyright 1996, 2002 Free Software Foundation, Inc.
    Written by Fred Fish at Cygnus support (fnf@cygnus.com)
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_tic80_arch =
     "tic80",                   /* architecture name */
     "tic80",                   /* printable name */
     2,                         /* section alignment power */
-    true,                      /* default machine for architecture */
+    TRUE,                      /* default machine for architecture */
     bfd_default_compatible,
     bfd_default_scan ,
     NULL,                              /* Pointer to next in chain */
index 38333c8c153baaefb58cf6d3821e5cb7d80c32a8..fe96656765099da8663c3b7907d91c4aba8e1a7f 100644 (file)
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (bfd_mach_v850e,  "v850e",  false, NULL)
+  N (bfd_mach_v850e,  "v850e",  FALSE, NULL)
 };
 
 #undef  NEXT
 #define NEXT & arch_info_struct[0]
 
 const bfd_arch_info_type bfd_v850_arch =
-  N (bfd_mach_v850, "v850", true, NEXT);
+  N (bfd_mach_v850, "v850", TRUE, NEXT);
index 8449a63dc643a397ce8a09cdd8098350743b0fff..98f868c44f54835aa8f2045ba322e8ed3bdb3c23 100644 (file)
@@ -1,5 +1,5 @@
 /* bfd back-end for vax support
-   Copyright 1990, 1991, 1994, 2000 Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1994, 2000, 2002 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_vax_arch =
     "vax",
     "vax",
     3,
-    true, /* the one and only */
+    TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan ,
     0,
index a73444da69fb01be2f3247ea6089a00f13612341..ed54687d4a28c8f3d930fa6293e4e7dd5942093d 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD library support routines for the WDC 65816 architecture.
-   Copyright 1995, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1995, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -22,17 +22,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "sysdep.h"
 #include "libbfd.h"
 
-static boolean scan_mach
+static bfd_boolean scan_mach
   PARAMS ((const struct bfd_arch_info *, const char *));
 
-static boolean
+static bfd_boolean
 scan_mach (info, string)
      const struct bfd_arch_info *info ATTRIBUTE_UNUSED;
      const char *string;
 {
-  if (strcmp(string,"w65") == 0) return true;
-  if (strcmp(string,"w65816") == 0) return true;
-  return false;
+  if (strcmp(string,"w65") == 0)
+    return TRUE;
+  if (strcmp(string,"w65816") == 0)
+    return TRUE;
+  return FALSE;
 }
 
 const bfd_arch_info_type bfd_w65_arch =
@@ -45,7 +47,7 @@ const bfd_arch_info_type bfd_w65_arch =
   "w65",                       /* arch_name  */
   "w65",                       /* printable name */
   1,
-  true,                                /* the default machine */
+  TRUE,                                /* the default machine */
   bfd_default_compatible,
   scan_mach,
   0,
index dc87d0a95cc3f90d247fe817f60ccf37be83c09f..09bf97ae34cfbc2c313aee0a1ed549160ffd857d 100644 (file)
@@ -1,5 +1,5 @@
 /* bfd back-end for we32k support
-   Copyright 1992, 2000 Free Software Foundation, Inc.
+   Copyright 1992, 2000, 2002 Free Software Foundation, Inc.
    Contributed by Brendan Kehoe (brendan@cs.widener.edu).
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_we32k_arch =
     "we32k",
     "we32k:32000",
     3,
-    true, /* the one and only */
+    TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan ,
     0,
index 827e16b792aca2fb60806226d7c389a2f6e27b17..776a4831fdd1266a52cbe5648f94710dd7e64dd7 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the XSTORMY16 processor.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_xstormy16_arch =
   "xstormy16",                 /* architecture name */
   "xstormy16",                 /* printable name */
   2,                           /* section align power */
-  true,                                /* the default ? */
+  TRUE,                                /* the default ? */
   bfd_default_compatible,      /* architecture comparison fn */
   bfd_default_scan,            /* string to architecture convert fn */
   NULL                         /* next in list */
index b75eaeafd54ee1e3fe4ec27e6370d8333e3cbcb4..60d82ef62aa0bdf723b396725970c94d9763b351 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD library support routines for the Z800n architecture.
-   Copyright 1992, 1993, 1994, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1992, 1993, 1994, 2000, 2001, 2002
+   Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -120,15 +121,15 @@ howto8_pcrel_callback (abfd, reloc_entry, symbol_in, data,
 }
 
 static reloc_howto_type howto_16
-= NEWHOWTO (howto16_callback, "abs16", 1, false, false);
+= NEWHOWTO (howto16_callback, "abs16", 1, FALSE, FALSE);
 static reloc_howto_type howto_8
-= NEWHOWTO (howto8_callback, "abs8", 0, false, false);
+= NEWHOWTO (howto8_callback, "abs8", 0, FALSE, FALSE);
 
 static reloc_howto_type howto_8_FFnn
-= NEWHOWTO (howto8_FFnn_callback, "ff00+abs8", 0, false, false);
+= NEWHOWTO (howto8_FFnn_callback, "ff00+abs8", 0, FALSE, FALSE);
 
 static reloc_howto_type howto_8_pcrel
-= NEWHOWTO (howto8_pcrel_callback, "pcrel8", 0, false, true);
+= NEWHOWTO (howto8_pcrel_callback, "pcrel8", 0, FALSE, TRUE);
 
 static reloc_howto_type *
 local_bfd_reloc_type_lookup (arch, code)
@@ -166,12 +167,12 @@ compatible (a, b)
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  { 32, 16, 8, bfd_arch_z8k, bfd_mach_z8002, "z8k", "z8002", 1, false,
+  { 32, 16, 8, bfd_arch_z8k, bfd_mach_z8002, "z8k", "z8002", 1, FALSE,
     compatible, bfd_default_scan, 0 }
 };
 
 const bfd_arch_info_type bfd_z8k_arch =
 {
-  32, 32, 8, bfd_arch_z8k, bfd_mach_z8001, "z8k", "z8001", 1, true,
+  32, 32, 8, bfd_arch_z8k, bfd_mach_z8001, "z8k", "z8001", 1, TRUE,
   compatible, bfd_default_scan, &arch_info_struct[0]
 };
index a236bfb32fd2c448c5ff6d44326627429aeb7233..2af10b0ce761bf881c3bd4353553090a7d6ed82a 100644 (file)
@@ -1,3 +1,15 @@
+2002-11-18  Klee Dienes  <kdienes@apple.com>
+
+       * Makefile.am (DOCFILES): Add bfdwin.texi, bfdio.texi.
+       (PROTOS): Add bfdio.p, bfdwin.p.
+       (SRCDOC): Add bfdio.c, bfdwin.c.
+       (SRCPROT): Add bfdio.c, bfdwin.c.
+       (SRCIPROT): Add bfdio.c, bfdwin.c.
+       (LIBBFD_H_DEP): Add bfdio.c, bfdwin.c.
+       (BFD_H_DEP): Add bfdio.c, bfdwin.c.
+       Add rules for bfdio.texi, bfdwin.text.
+       * bfd.texinfo: Include bfdio.texi.
+
 2002-10-14  Alan Modra  <amodra@bigpond.net.au>
 
        * Makefile.in: Regenerate.
index da51daf9cd915c95f0eb3c16e524c732f65219e5..4202b8a6af7b338f352f0a980638c01f40a2c5b5 100644 (file)
@@ -4,13 +4,15 @@ AUTOMAKE_OPTIONS = cygnus
 
 DOCFILES = aoutx.texi  archive.texi archures.texi \
        bfdt.texi  cache.texi coffcode.texi \
-       core.texi elf.texi elfcode.texi  format.texi  libbfd.texi  \
+       core.texi elf.texi elfcode.texi  format.texi \
+       libbfd.texi bfdwin.texi bfdio.texi \
        opncls.texi  reloc.texi  section.texi  \
        syms.texi  targets.texi init.texi hash.texi linker.texi \
        mmo.texi
 
 PROTOS = archive.p archures.p bfd.p \
         core.p format.p \
+       bfdio.p bfdwin.p \
        libbfd.p opncls.p reloc.p \
        section.p syms.p targets.p  \
        format.p  core.p init.p
@@ -22,6 +24,7 @@ IPROTOS = cache.ip libbfd.ip reloc.ip init.ip archures.ip coffcode.ip
 # you don't need these three:
 SRCDOC = $(srcdir)/../aoutx.h  $(srcdir)/../archive.c \
        $(srcdir)/../archures.c $(srcdir)/../bfd.c \
+       $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \
        $(srcdir)/../cache.c $(srcdir)/../coffcode.h \
        $(srcdir)/../corefile.c $(srcdir)/../elf.c \
        $(srcdir)/../elfcode.h  $(srcdir)/../format.c \
@@ -34,11 +37,13 @@ SRCDOC = $(srcdir)/../aoutx.h  $(srcdir)/../archive.c \
 SRCPROT = $(srcdir)/../archive.c $(srcdir)/../archures.c \
        $(srcdir)/../bfd.c $(srcdir)/../coffcode.h $(srcdir)/../corefile.c \
        $(srcdir)/../format.c $(srcdir)/../libbfd.c \
+       $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \
        $(srcdir)/../opncls.c $(srcdir)/../reloc.c \
        $(srcdir)/../section.c $(srcdir)/../syms.c \
        $(srcdir)/../targets.c $(srcdir)/../init.c
 
 SRCIPROT = $(srcdir)/../cache.c $(srcdir)/../libbfd.c \
+       $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \
        $(srcdir)/../reloc.c $(srcdir)/../cpu-h8300.c \
        $(srcdir)/../cpu-i960.c $(srcdir)/../archures.c \
        $(srcdir)/../init.c
@@ -143,6 +148,18 @@ s-libbfd: $(MKDOC) $(srcdir)/../libbfd.c $(srcdir)/doc.str
        touch s-libbfd
 libbfd.texi: s-libbfd
 
+s-bfdio: $(MKDOC) $(srcdir)/../bfdio.c $(srcdir)/doc.str
+       ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdio.c >bfdio.tmp
+       $(srcdir)/../../move-if-change bfdio.tmp bfdio.texi
+       touch s-bfdio
+bfdio.texi: s-bfdio
+
+s-bfdwin: $(MKDOC) $(srcdir)/../bfdwin.c $(srcdir)/doc.str
+       ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdwin.c >bfdwin.tmp
+       $(srcdir)/../../move-if-change bfdwin.tmp bfdwin.texi
+       touch s-bfdwin
+bfdwin.texi: s-bfdwin
+
 s-opncls: $(MKDOC) $(srcdir)/../opncls.c $(srcdir)/doc.str
        ./$(MKDOC) -f $(srcdir)/doc.str  <$(srcdir)/../opncls.c >opncls.tmp
        $(srcdir)/../../move-if-change opncls.tmp opncls.texi
@@ -195,6 +212,8 @@ LIBBFD_H_DEP = \
        $(srcdir)/../libbfd-in.h        \
        $(srcdir)/../init.c             \
        $(srcdir)/../libbfd.c           \
+       $(srcdir)/../bfdio.c            \
+       $(srcdir)/../bfdwin.c           \
        $(srcdir)/../cache.c            \
        $(srcdir)/../reloc.c            \
        $(srcdir)/../archures.c         \
@@ -239,6 +258,8 @@ BFD_H_DEP = \
        $(srcdir)/../init.c             \
        $(srcdir)/../opncls.c           \
        $(srcdir)/../libbfd.c           \
+       $(srcdir)/../bfdio.c            \
+       $(srcdir)/../bfdwin.c           \
        $(srcdir)/../section.c          \
        $(srcdir)/../archures.c         \
        $(srcdir)/../reloc.c            \
index ec09ffb70fc1878164f8f941f7a213a529f0b7d8..1bca51ecf82dec3354ce7ce313e37a94786682d8 100644 (file)
@@ -130,7 +130,8 @@ AUTOMAKE_OPTIONS = cygnus
 
 DOCFILES = aoutx.texi  archive.texi archures.texi \
        bfdt.texi  cache.texi coffcode.texi \
-       core.texi elf.texi elfcode.texi  format.texi  libbfd.texi  \
+       core.texi elf.texi elfcode.texi  format.texi \
+       libbfd.texi bfdwin.texi bfdio.texi \
        opncls.texi  reloc.texi  section.texi  \
        syms.texi  targets.texi init.texi hash.texi linker.texi \
        mmo.texi
@@ -138,6 +139,7 @@ DOCFILES = aoutx.texi  archive.texi archures.texi \
 
 PROTOS = archive.p archures.p bfd.p \
         core.p format.p \
+       bfdio.p bfdwin.p \
        libbfd.p opncls.p reloc.p \
        section.p syms.p targets.p  \
        format.p  core.p init.p
@@ -150,6 +152,7 @@ IPROTOS = cache.ip libbfd.ip reloc.ip init.ip archures.ip coffcode.ip
 # you don't need these three:
 SRCDOC = $(srcdir)/../aoutx.h  $(srcdir)/../archive.c \
        $(srcdir)/../archures.c $(srcdir)/../bfd.c \
+       $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \
        $(srcdir)/../cache.c $(srcdir)/../coffcode.h \
        $(srcdir)/../corefile.c $(srcdir)/../elf.c \
        $(srcdir)/../elfcode.h  $(srcdir)/../format.c \
@@ -163,12 +166,14 @@ SRCDOC = $(srcdir)/../aoutx.h  $(srcdir)/../archive.c \
 SRCPROT = $(srcdir)/../archive.c $(srcdir)/../archures.c \
        $(srcdir)/../bfd.c $(srcdir)/../coffcode.h $(srcdir)/../corefile.c \
        $(srcdir)/../format.c $(srcdir)/../libbfd.c \
+       $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \
        $(srcdir)/../opncls.c $(srcdir)/../reloc.c \
        $(srcdir)/../section.c $(srcdir)/../syms.c \
        $(srcdir)/../targets.c $(srcdir)/../init.c
 
 
 SRCIPROT = $(srcdir)/../cache.c $(srcdir)/../libbfd.c \
+       $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \
        $(srcdir)/../reloc.c $(srcdir)/../cpu-h8300.c \
        $(srcdir)/../cpu-i960.c $(srcdir)/../archures.c \
        $(srcdir)/../init.c
@@ -184,6 +189,8 @@ LIBBFD_H_DEP = \
        $(srcdir)/../libbfd-in.h        \
        $(srcdir)/../init.c             \
        $(srcdir)/../libbfd.c           \
+       $(srcdir)/../bfdio.c            \
+       $(srcdir)/../bfdwin.c           \
        $(srcdir)/../cache.c            \
        $(srcdir)/../reloc.c            \
        $(srcdir)/../archures.c         \
@@ -206,6 +213,8 @@ BFD_H_DEP = \
        $(srcdir)/../init.c             \
        $(srcdir)/../opncls.c           \
        $(srcdir)/../libbfd.c           \
+       $(srcdir)/../bfdio.c            \
+       $(srcdir)/../bfdwin.c           \
        $(srcdir)/../section.c          \
        $(srcdir)/../archures.c         \
        $(srcdir)/../reloc.c            \
@@ -553,6 +562,18 @@ s-libbfd: $(MKDOC) $(srcdir)/../libbfd.c $(srcdir)/doc.str
        touch s-libbfd
 libbfd.texi: s-libbfd
 
+s-bfdio: $(MKDOC) $(srcdir)/../bfdio.c $(srcdir)/doc.str
+       ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdio.c >bfdio.tmp
+       $(srcdir)/../../move-if-change bfdio.tmp bfdio.texi
+       touch s-bfdio
+bfdio.texi: s-bfdio
+
+s-bfdwin: $(MKDOC) $(srcdir)/../bfdwin.c $(srcdir)/doc.str
+       ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdwin.c >bfdwin.tmp
+       $(srcdir)/../../move-if-change bfdwin.tmp bfdwin.texi
+       touch s-bfdwin
+bfdwin.texi: s-bfdwin
+
 s-opncls: $(MKDOC) $(srcdir)/../opncls.c $(srcdir)/doc.str
        ./$(MKDOC) -f $(srcdir)/doc.str  <$(srcdir)/../opncls.c >opncls.tmp
        $(srcdir)/../../move-if-change opncls.tmp opncls.texi
index d4291175ef23be4fd6d139b632b5c8f08de245a3..f12222e9b39fa92c0958e5e7e8c406646ed41569 100644 (file)
@@ -64,7 +64,7 @@ notice identical to this one except for the removal of this paragraph
 
 @tex
 \def\$#1${{#1}}  % Kluge: collect RCS revision info without $...$
-\xdef\manvers{\$Revision$}  % For use in headers, footers too
+\xdef\manvers{\1.5}  % For use in headers, footers too
 {\parskip=0pt
 \hfill Free Software Foundation\par
 \hfill sac\@www.gnu.org\par
@@ -207,6 +207,7 @@ IEEE-695.
 @node BFD front end, BFD back ends, Overview, Top
 @chapter BFD front end
 @include bfdt.texi
+@include bfdio.texi
 
 @menu
 * Memory Usage::
index d2996dcfcb3dd55162ff310411668883028b813c..27375cd4802a33cc8ef7b8d6d4104706c8397a71 100644 (file)
@@ -1611,7 +1611,7 @@ called @file{@var{cpu}.h}.  This file should define any target specific
 information which may be needed outside of the BFD code.  In particular
 it should use the @samp{START_RELOC_NUMBERS}, @samp{RELOC_NUMBER},
 @samp{FAKE_RELOC}, @samp{EMPTY_RELOC} and @samp{END_RELOC_NUMBERS}
-macros to create a table mapping the number used to indentify a
+macros to create a table mapping the number used to identify a
 relocation to a name describing that relocation.
 
 While not a BFD component, you probably also want to make the binutils
@@ -1788,7 +1788,7 @@ The implementation within BFD of a particular object file format.  The
 set of functions which appear in a particular target vector.
 
 @item BFD
-The BFD library itself.  Also, each object file, archive, or exectable
+The BFD library itself.  Also, each object file, archive, or executable
 opened by the BFD library has the type @samp{bfd *}, and is sometimes
 referred to as a bfd.
 
index 65319861a1c0a06a6702ef042e24b6d160664471..1047ebfc2e997775956577f724afbbee0f224e98 100644 (file)
@@ -1,5 +1,5 @@
 /* DWARF 1 find nearest line (_bfd_dwarf1_find_nearest_line).
-   Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 Written by Gavin Romig-Koch of Cygnus Solutions (gavin@cygnus.com).
 
@@ -126,15 +126,17 @@ struct linenumber {
 /* Find the form of an attr, from the attr field.  */
 #define FORM_FROM_ATTR(attr)   ((attr) & 0xF)  /* Implicitly specified */
 
-static struct dwarf1_unit *alloc_dwarf1_unit PARAMS ((struct dwarf1_debug *));
+static struct dwarf1_unit *alloc_dwarf1_unit
+  PARAMS ((struct dwarf1_debug *));
 static struct dwarf1_func *alloc_dwarf1_func
   PARAMS ((struct dwarf1_debug *, struct dwarf1_unit *));
-static boolean parse_die PARAMS ((bfd *, struct die_info *, char *, char *));
-static boolean parse_line_table
+static bfd_boolean parse_die
+  PARAMS ((bfd *, struct die_info *, char *, char *));
+static bfd_boolean parse_line_table
   PARAMS ((struct dwarf1_debug *, struct dwarf1_unit *));
-static boolean parse_functions_in_unit
+static bfd_boolean parse_functions_in_unit
   PARAMS ((struct dwarf1_debug *, struct dwarf1_unit *));
-static boolean dwarf1_unit_find_nearest_line
+static bfd_boolean dwarf1_unit_find_nearest_line
   PARAMS ((struct dwarf1_debug *, struct dwarf1_unit *, unsigned long,
           const char **, const char **, unsigned int *));
 
@@ -176,9 +178,9 @@ alloc_dwarf1_func (stash, aUnit)
    'abfd' must be the bfd from which the section that 'aDiePtr'
    points to was pulled from.
 
-   Return false if the die is invalidly formatted; true otherwise.  */
+   Return FALSE if the die is invalidly formatted; TRUE otherwise.  */
 
-static boolean
+static bfd_boolean
 parse_die (abfd, aDieInfo, aDiePtr, aDiePtrEnd)
      bfd* abfd;
      struct die_info* aDieInfo;
@@ -195,12 +197,12 @@ parse_die (abfd, aDieInfo, aDiePtr, aDiePtrEnd)
   xptr += 4;
   if (aDieInfo->length == 0
       || (this_die + aDieInfo->length) >= aDiePtrEnd)
-    return false;
+    return FALSE;
   if (aDieInfo->length < 6)
     {
       /* Just padding bytes.  */
       aDieInfo->tag = TAG_padding;
-      return true;
+      return TRUE;
     }
 
   /* Then the tag.  */
@@ -259,14 +261,14 @@ parse_die (abfd, aDieInfo, aDiePtr, aDiePtrEnd)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Parse a dwarf1 line number table for 'aUnit->stmt_list_offset'
-   into 'aUnit->linenumber_table'.  Return false if an error
-   occurs; true otherwise.  */
+   into 'aUnit->linenumber_table'.  Return FALSE if an error
+   occurs; TRUE otherwise.  */
 
-static boolean
+static bfd_boolean
 parse_line_table (stash, aUnit)
   struct dwarf1_debug* stash;
   struct dwarf1_unit* aUnit;
@@ -281,19 +283,19 @@ parse_line_table (stash, aUnit)
 
       msec = bfd_get_section_by_name (stash->abfd, ".line");
       if (! msec)
-       return false;
+       return FALSE;
 
       size = bfd_get_section_size_before_reloc (msec);
       stash->line_section = (char *) bfd_alloc (stash->abfd, size);
 
       if (! stash->line_section)
-       return false;
+       return FALSE;
 
       if (! bfd_get_section_contents (stash->abfd, msec, stash->line_section,
                                      (bfd_vma) 0, size))
        {
          stash->line_section = 0;
-         return false;
+         return FALSE;
        }
 
       stash->line_section_end = stash->line_section + size;
@@ -341,15 +343,15 @@ parse_line_table (stash, aUnit)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Parse each function die in a compilation unit 'aUnit'.
    The first child die of 'aUnit' should be in 'aUnit->first_child',
    the result is placed in 'aUnit->func_list'.
-   Return false if error; true otherwise.  */
+   Return FALSE if error; TRUE otherwise.  */
 
-static boolean
+static bfd_boolean
 parse_functions_in_unit (stash, aUnit)
      struct dwarf1_debug* stash;
      struct dwarf1_unit* aUnit;
@@ -365,7 +367,7 @@ parse_functions_in_unit (stash, aUnit)
 
        if (! parse_die (stash->abfd, &eachDieInfo, eachDie,
                         stash->debug_section_end))
-         return false;
+         return FALSE;
 
        if (eachDieInfo.tag == TAG_global_subroutine
            || eachDieInfo.tag == TAG_subroutine
@@ -386,13 +388,13 @@ parse_functions_in_unit (stash, aUnit)
          break;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Find the nearest line to 'addr' in 'aUnit'.
    Return whether we found the line (or a function) without error.  */
 
-static boolean
+static bfd_boolean
 dwarf1_unit_find_nearest_line (stash, aUnit, addr,
                       filename_ptr, functionname_ptr,
                       linenumber_ptr)
@@ -403,8 +405,8 @@ dwarf1_unit_find_nearest_line (stash, aUnit, addr,
   const char **functionname_ptr;
   unsigned int *linenumber_ptr;
 {
-  int line_p = false;
-  int func_p = false;
+  int line_p = FALSE;
+  int func_p = FALSE;
 
   if (aUnit->low_pc <= addr && addr < aUnit->high_pc)
     {
@@ -416,13 +418,13 @@ dwarf1_unit_find_nearest_line (stash, aUnit, addr,
          if (! aUnit->linenumber_table)
            {
              if (! parse_line_table (stash, aUnit))
-               return false;
+               return FALSE;
            }
 
          if (! aUnit->func_list)
            {
              if (! parse_functions_in_unit (stash, aUnit))
-               return false;
+               return FALSE;
            }
 
          for (i = 0; i < aUnit->line_count; i++)
@@ -432,7 +434,7 @@ dwarf1_unit_find_nearest_line (stash, aUnit, addr,
                {
                  *filename_ptr = aUnit->name;
                  *linenumber_ptr = aUnit->linenumber_table[i].linenumber;
-                 line_p = true;
+                 line_p = TRUE;
                  break;
                }
            }
@@ -445,7 +447,7 @@ dwarf1_unit_find_nearest_line (stash, aUnit, addr,
                  && addr < eachFunc->high_pc)
                {
                  *functionname_ptr = eachFunc->name;
-                 func_p = true;
+                 func_p = TRUE;
                  break;
                }
            }
@@ -456,9 +458,9 @@ dwarf1_unit_find_nearest_line (stash, aUnit, addr,
 }
 
 /* The DWARF 1 version of find_nearest line.
-   Return true if the line is found without error.  */
+   Return TRUE if the line is found without error.  */
 
-boolean
+bfd_boolean
 _bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset,
                               filename_ptr, functionname_ptr, linenumber_ptr)
      bfd *abfd;
@@ -489,7 +491,7 @@ _bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset,
        = (struct dwarf1_debug *) bfd_zalloc (abfd, size);
 
       if (! stash)
-       return false;
+       return FALSE;
 
       msec = bfd_get_section_by_name (abfd, ".debug");
       if (! msec)
@@ -497,20 +499,20 @@ _bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset,
          /* No dwarf1 info.  Note that at this point the stash
             has been allocated, but contains zeros, this lets
             future calls to this function fail quicker.  */
-         return false;
+         return FALSE;
        }
 
       size = bfd_get_section_size_before_reloc (msec);
       stash->debug_section = (char *) bfd_alloc (abfd, size);
 
       if (! stash->debug_section)
-       return false;
+       return FALSE;
 
       if (! bfd_get_section_contents (abfd, msec, stash->debug_section,
                                      (bfd_vma) 0, size))
        {
          stash->debug_section = 0;
-         return false;
+         return FALSE;
        }
 
       stash->debug_section_end = stash->debug_section + size;
@@ -522,7 +524,7 @@ _bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset,
      or that an error occured while setting up the stash.  */
 
   if (! stash->debug_section)
-    return false;
+    return FALSE;
 
   /* Look at the previously parsed units to see if any contain
      the addr.  */
@@ -541,7 +543,7 @@ _bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset,
 
       if (! parse_die (stash->abfd, &aDieInfo, stash->currentDie,
                       stash->debug_section_end))
-       return false;
+       return FALSE;
 
       if (aDieInfo.tag == TAG_compile_unit)
        {
@@ -578,7 +580,7 @@ _bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset,
        stash->currentDie += aDieInfo.length;
     }
 
-  return false;
+  return FALSE;
 }
 
 /* EOF */
index 063982662bc7582bf1379e37cab654c6e06741d8..e7077a1b4c4f3c11f09b3462dd949532fbaf7929 100644 (file)
@@ -157,7 +157,7 @@ struct comp_unit
   /* The DW_AT_comp_dir attribute.  */
   char* comp_dir;
 
-  /* True if there is a line number table associated with this comp. unit.  */
+  /* TRUE if there is a line number table associated with this comp. unit.  */
   int stmtlist;
 
   /* The offset into .debug_line of the line number table.  */
@@ -239,19 +239,19 @@ static char *concat_filename PARAMS ((struct line_info_table *, unsigned int));
 static void arange_add PARAMS ((struct comp_unit *, bfd_vma, bfd_vma));
 static struct line_info_table *decode_line_info
   PARAMS ((struct comp_unit *, struct dwarf2_debug *));
-static boolean lookup_address_in_line_info_table
+static bfd_boolean lookup_address_in_line_info_table
   PARAMS ((struct line_info_table *, bfd_vma, struct funcinfo *,
           const char **, unsigned int *));
-static boolean lookup_address_in_function_table
+static bfd_boolean lookup_address_in_function_table
   PARAMS ((struct funcinfo *, bfd_vma, struct funcinfo **, const char **));
-static boolean scan_unit_for_functions PARAMS ((struct comp_unit *));
+static bfd_boolean scan_unit_for_functions PARAMS ((struct comp_unit *));
 static bfd_vma find_rela_addend
   PARAMS ((bfd *, asection *, bfd_size_type, asymbol**));
 static struct comp_unit *parse_comp_unit
   PARAMS ((bfd *, struct dwarf2_debug *, bfd_vma, unsigned int));
-static boolean comp_unit_contains_address
+static bfd_boolean comp_unit_contains_address
   PARAMS ((struct comp_unit *, bfd_vma));
-static boolean comp_unit_find_nearest_line
+static bfd_boolean comp_unit_find_nearest_line
   PARAMS ((struct comp_unit *, bfd_vma, const char **, const char **,
           unsigned int *, struct dwarf2_debug *));
 static asection *find_debug_info PARAMS ((bfd *, asection *));
@@ -1310,11 +1310,11 @@ decode_line_info (unit, stash)
   return table;
 }
 
-/* If ADDR is within TABLE set the output parameters and return true,
-   otherwise return false.  The output parameters, FILENAME_PTR and
+/* If ADDR is within TABLE set the output parameters and return TRUE,
+   otherwise return FALSE.  The output parameters, FILENAME_PTR and
    LINENUMBER_PTR, are pointers to the objects to be filled in.  */
 
-static boolean
+static bfd_boolean
 lookup_address_in_line_info_table (table, addr, function, filename_ptr,
                                   linenumber_ptr)
      struct line_info_table* table;
@@ -1329,7 +1329,7 @@ lookup_address_in_line_info_table (table, addr, function, filename_ptr,
   *filename_ptr = NULL;
 
   if (!next_line)
-    return false;
+    return FALSE;
 
   each_line = next_line->prev_line;
 
@@ -1343,10 +1343,10 @@ lookup_address_in_line_info_table (table, addr, function, filename_ptr,
       /* If we have an address match, save this info.  This allows us
         to return as good as results as possible for strange debugging
         info.  */
-      boolean addr_match = false;
+      bfd_boolean addr_match = FALSE;
       if (each_line->address <= addr && addr <= next_line->address)
        {
-         addr_match = true;
+         addr_match = TRUE;
 
          /* If this line appears to span functions, and addr is in the
             later function, return the first line of that function instead
@@ -1367,7 +1367,7 @@ lookup_address_in_line_info_table (table, addr, function, filename_ptr,
        }
 
       if (addr_match && !each_line->end_sequence)
-       return true; /* we have definitely found what we want */
+       return TRUE; /* we have definitely found what we want */
 
       next_line = each_line;
       each_line = each_line->prev_line;
@@ -1383,17 +1383,17 @@ lookup_address_in_line_info_table (table, addr, function, filename_ptr,
     {
       *filename_ptr = next_line->filename;
       *linenumber_ptr = next_line->line;
-      return true;
+      return TRUE;
     }
 
-  return false;
+  return FALSE;
 }
 
 /* Function table functions.  */
 
-/* If ADDR is within TABLE, set FUNCTIONNAME_PTR, and return true.  */
+/* If ADDR is within TABLE, set FUNCTIONNAME_PTR, and return TRUE.  */
 
-static boolean
+static bfd_boolean
 lookup_address_in_function_table (table, addr, function_ptr,
                                  functionname_ptr)
      struct funcinfo* table;
@@ -1411,11 +1411,11 @@ lookup_address_in_function_table (table, addr, function_ptr,
        {
          *functionname_ptr = each_func->name;
          *function_ptr = each_func;
-         return true;
+         return TRUE;
        }
     }
 
-  return false;
+  return FALSE;
 }
 
 /* DWARF2 Compilation unit functions.  */
@@ -1423,7 +1423,7 @@ lookup_address_in_function_table (table, addr, function_ptr,
 /* Scan over each die in a comp. unit looking for functions to add
    to the function table.  */
 
-static boolean
+static bfd_boolean
 scan_unit_for_functions (unit)
      struct comp_unit *unit;
 {
@@ -1454,7 +1454,7 @@ scan_unit_for_functions (unit)
          (*_bfd_error_handler) (_("Dwarf Error: Could not find abbrev number %u."),
                             abbrev_number);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       if (abbrev->tag == DW_TAG_subprogram)
@@ -1518,7 +1518,7 @@ scan_unit_for_functions (unit)
        nesting_level++;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Look for a RELA relocation to be applied on OFFSET of section SEC,
@@ -1727,9 +1727,9 @@ parse_comp_unit (abfd, stash, unit_length, offset_size)
   return unit;
 }
 
-/* Return true if UNIT contains the address given by ADDR.  */
+/* Return TRUE if UNIT contains the address given by ADDR.  */
 
-static boolean
+static bfd_boolean
 comp_unit_contains_address (unit, addr)
      struct comp_unit* unit;
      bfd_vma addr;
@@ -1737,18 +1737,18 @@ comp_unit_contains_address (unit, addr)
   struct arange *arange;
 
   if (unit->error)
-    return false;
+    return FALSE;
 
   arange = &unit->arange;
   do
     {
       if (addr >= arange->low && addr < arange->high)
-       return true;
+       return TRUE;
       arange = arange->next;
     }
   while (arange);
 
-  return false;
+  return FALSE;
 }
 
 /* If UNIT contains ADDR, set the output parameters to the values for
@@ -1756,10 +1756,10 @@ comp_unit_contains_address (unit, addr)
    FUNCTIONNAME_PTR, and LINENUMBER_PTR, are pointers to the objects
    to be filled in.
 
-   Return true of UNIT contains ADDR, and no errors were encountered;
-   false otherwise.  */
+   Return TRUE if UNIT contains ADDR, and no errors were encountered;
+   FALSE otherwise.  */
 
-static boolean
+static bfd_boolean
 comp_unit_find_nearest_line (unit, addr, filename_ptr, functionname_ptr,
                             linenumber_ptr, stash)
      struct comp_unit* unit;
@@ -1769,19 +1769,19 @@ comp_unit_find_nearest_line (unit, addr, filename_ptr, functionname_ptr,
      unsigned int *linenumber_ptr;
      struct dwarf2_debug *stash;
 {
-  boolean line_p;
-  boolean func_p;
+  bfd_boolean line_p;
+  bfd_boolean func_p;
   struct funcinfo *function;
 
   if (unit->error)
-    return false;
+    return FALSE;
 
   if (! unit->line_table)
     {
       if (! unit->stmtlist)
        {
          unit->error = 1;
-         return false;
+         return FALSE;
        }
 
       unit->line_table = decode_line_info (unit, stash);
@@ -1789,14 +1789,14 @@ comp_unit_find_nearest_line (unit, addr, filename_ptr, functionname_ptr,
       if (! unit->line_table)
        {
          unit->error = 1;
-         return false;
+         return FALSE;
        }
 
       if (unit->first_child_die_ptr < unit->end_ptr
          && ! scan_unit_for_functions (unit))
        {
          unit->error = 1;
-         return false;
+         return FALSE;
        }
     }
 
@@ -1806,7 +1806,7 @@ comp_unit_find_nearest_line (unit, addr, filename_ptr, functionname_ptr,
   line_p = lookup_address_in_line_info_table (unit->line_table, addr,
                                              function, filename_ptr,
                                              linenumber_ptr);
-  return (boolean) (line_p || func_p);
+  return line_p || func_p;
 }
 
 /* Locate a section in a BFD containing debugging info.  The search starts
@@ -1847,13 +1847,13 @@ find_debug_info (abfd, after_sec)
   return NULL;
 }
 
-/* The DWARF2 version of find_nearest line.  Return true if the line
+/* The DWARF2 version of find_nearest line.  Return TRUE if the line
    is found without error.  ADDR_SIZE is the number of bytes in the
    initial .debug_info length field and in the abbreviation offset.
    You may use zero to indicate that the default value should be
    used.  */
 
-boolean
+bfd_boolean
 _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
                               filename_ptr, functionname_ptr,
                               linenumber_ptr, addr_size, pinfo)
@@ -1901,7 +1901,7 @@ _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
 
       stash = (struct dwarf2_debug*) bfd_zalloc (abfd, amt);
       if (! stash)
-       return false;
+       return FALSE;
 
       *pinfo = (PTR) stash;
 
@@ -1910,7 +1910,7 @@ _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
        /* No dwarf2 info.  Note that at this point the stash
           has been allocated, but contains zeros, this lets
           future calls to this function fail quicker.  */
-        return false;
+        return FALSE;
 
       /* There can be more than one DWARF2 info section in a BFD these days.
         Read them all in and produce one large stash.  We do this in two
@@ -1922,7 +1922,7 @@ _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
 
       stash->info_ptr = (char *) bfd_alloc (abfd, total_size);
       if (stash->info_ptr == NULL)
-       return false;
+       return FALSE;
 
       stash->info_ptr_end = stash->info_ptr;
 
@@ -1971,7 +1971,7 @@ _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
   /* A null info_ptr indicates that there is no dwarf2 info
      (or that an error occured while setting up the stash).  */
   if (! stash->info_ptr)
-    return false;
+    return FALSE;
 
   /* Check the previously read comp. units first.  */
   for (each = stash->all_comp_units; each; each = each->next_unit)
@@ -1984,7 +1984,7 @@ _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
   while (stash->info_ptr < stash->info_ptr_end)
     {
       bfd_vma length;
-      boolean found;
+      bfd_boolean found;
       unsigned int offset_size = addr_size;
 
       if (addr_size == 4)
@@ -2047,11 +2047,11 @@ _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
                                                       linenumber_ptr,
                                                       stash);
                  if (found)
-                   return true;
+                   return TRUE;
                }
            }
        }
     }
 
-  return false;
+  return FALSE;
 }
index 4f129f602f6eafa2c38ffa26c58369e6b20b2788..752752f3e681d494b68d1454c423821b1a86ce95 100644 (file)
 \f
 /* Prototypes for static functions.  */
 
-static int ecoff_get_magic PARAMS ((bfd *));
-static long ecoff_sec_to_styp_flags PARAMS ((const char *, flagword));
-static boolean ecoff_slurp_symbolic_header PARAMS ((bfd *));
-static boolean ecoff_set_symbol_info PARAMS ((bfd *, SYMR *, asymbol *, int, int));
-static void ecoff_emit_aggregate PARAMS ((bfd *, FDR *, char *, RNDXR *, long, const char *));
-static char *ecoff_type_to_string PARAMS ((bfd *, FDR *, unsigned int));
-static boolean ecoff_slurp_reloc_table PARAMS ((bfd *, asection *, asymbol **));
-static int ecoff_sort_hdrs PARAMS ((const PTR, const PTR));
-static boolean ecoff_compute_section_file_positions PARAMS ((bfd *));
-static bfd_size_type ecoff_compute_reloc_file_positions PARAMS ((bfd *));
-static boolean ecoff_get_extr PARAMS ((asymbol *, EXTR *));
-static void ecoff_set_index PARAMS ((asymbol *, bfd_size_type));
-static unsigned int ecoff_armap_hash PARAMS ((const char *, unsigned int *, unsigned int, unsigned int));
+static int ecoff_get_magic
+  PARAMS ((bfd *));
+static long ecoff_sec_to_styp_flags
+  PARAMS ((const char *, flagword));
+static bfd_boolean ecoff_slurp_symbolic_header
+  PARAMS ((bfd *));
+static bfd_boolean ecoff_set_symbol_info
+  PARAMS ((bfd *, SYMR *, asymbol *, int, int));
+static void ecoff_emit_aggregate
+  PARAMS ((bfd *, FDR *, char *, RNDXR *, long, const char *));
+static char *ecoff_type_to_string
+  PARAMS ((bfd *, FDR *, unsigned int));
+static bfd_boolean ecoff_slurp_reloc_table
+  PARAMS ((bfd *, asection *, asymbol **));
+static int ecoff_sort_hdrs
+  PARAMS ((const PTR, const PTR));
+static bfd_boolean ecoff_compute_section_file_positions
+  PARAMS ((bfd *));
+static bfd_size_type ecoff_compute_reloc_file_positions
+  PARAMS ((bfd *));
+static bfd_boolean ecoff_get_extr
+  PARAMS ((asymbol *, EXTR *));
+static void ecoff_set_index
+  PARAMS ((asymbol *, bfd_size_type));
+static unsigned int ecoff_armap_hash
+  PARAMS ((const char *, unsigned int *, unsigned int, unsigned int));
 \f
 /* This stuff is somewhat copied from coffcode.h.  */
 
@@ -90,7 +103,7 @@ static asection bfd_debug_section =
 
 /* Create an ECOFF object.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_mkobject (abfd)
      bfd *abfd;
 {
@@ -98,9 +111,9 @@ _bfd_ecoff_mkobject (abfd)
 
   abfd->tdata.ecoff_obj_data = (struct ecoff_tdata *) bfd_zalloc (abfd, amt);
   if (abfd->tdata.ecoff_obj_data == NULL)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* This is a hook called by coff_real_object_p to create any backend
@@ -151,7 +164,7 @@ _bfd_ecoff_mkobject_hook (abfd, filehdr, aouthdr)
 
 /* Initialize a new section.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_new_section_hook (abfd, section)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section;
@@ -182,7 +195,7 @@ _bfd_ecoff_new_section_hook (abfd, section)
      uncertain about .init on some systems and I don't know how shared
      libraries work.  */
 
-  return true;
+  return TRUE;
 }
 
 /* Determine the machine architecture and type.  This is called from
@@ -190,7 +203,7 @@ _bfd_ecoff_new_section_hook (abfd, section)
    below.  This could be an ECOFF backend routine, with one version
    for each target, but there aren't all that many ECOFF targets.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_set_arch_mach_hook (abfd, filehdr)
      bfd *abfd;
      PTR filehdr;
@@ -360,7 +373,7 @@ ecoff_sec_to_styp_flags (name, flags)
 
 /* Get the BFD flags to use for a section.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_styp_to_sec_flags (abfd, hdr, name, section, flags_ptr)
      bfd *abfd ATTRIBUTE_UNUSED;
      PTR hdr;
@@ -425,12 +438,12 @@ _bfd_ecoff_styp_to_sec_flags (abfd, hdr, name, section, flags_ptr)
     sec_flags |= SEC_ALLOC | SEC_LOAD;
 
   * flags_ptr = sec_flags;
-  return true;
+  return TRUE;
 }
 \f
 /* Read in the symbolic header for an ECOFF object file.  */
 
-static boolean
+static bfd_boolean
 ecoff_slurp_symbolic_header (abfd)
      bfd *abfd;
 {
@@ -442,13 +455,13 @@ ecoff_slurp_symbolic_header (abfd)
   /* See if we've already read it in.  */
   if (ecoff_data (abfd)->debug_info.symbolic_header.magic ==
       backend->debug_swap.sym_magic)
-    return true;
+    return TRUE;
 
   /* See whether there is a symbolic header.  */
   if (ecoff_data (abfd)->sym_filepos == 0)
     {
       bfd_get_symcount (abfd) = 0;
-      return true;
+      return TRUE;
     }
 
   /* At this point bfd_get_symcount (abfd) holds the number of symbols
@@ -459,7 +472,7 @@ ecoff_slurp_symbolic_header (abfd)
   if (bfd_get_symcount (abfd) != external_hdr_size)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   /* Read the symbolic information header.  */
@@ -485,18 +498,18 @@ ecoff_slurp_symbolic_header (abfd)
 
   if (raw != NULL)
     free (raw);
-  return true;
+  return TRUE;
  error_return:
   if (raw != NULL)
     free (raw);
-  return false;
+  return FALSE;
 }
 
 /* Read in and swap the important symbolic information for an ECOFF
    object file.  This is called by gdb via the read_debug_info entry
    point in the backend structure.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_slurp_symbolic_info (abfd, ignore, debug)
      bfd *abfd;
      asection *ignore ATTRIBUTE_UNUSED;
@@ -521,15 +534,15 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ignore, debug)
   /* Check whether we've already gotten it, and whether there's any to
      get.  */
   if (ecoff_data (abfd)->raw_syments != (PTR) NULL)
-    return true;
+    return TRUE;
   if (ecoff_data (abfd)->sym_filepos == 0)
     {
       bfd_get_symcount (abfd) = 0;
-      return true;
+      return TRUE;
     }
 
   if (! ecoff_slurp_symbolic_header (abfd))
-    return false;
+    return FALSE;
 
   internal_symhdr = &debug->symbolic_header;
 
@@ -569,11 +582,11 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ignore, debug)
   if (raw_size == 0)
     {
       ecoff_data (abfd)->sym_filepos = 0;
-      return true;
+      return TRUE;
     }
   raw = (PTR) bfd_alloc (abfd, raw_size);
   if (raw == NULL)
-    return false;
+    return FALSE;
 
   pos = ecoff_data (abfd)->sym_filepos;
   pos += backend->debug_swap.external_hdr_size;
@@ -581,7 +594,7 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ignore, debug)
       || bfd_bread (raw, raw_size, abfd) != raw_size)
     {
       bfd_release (abfd, raw);
-      return false;
+      return FALSE;
     }
 
   ecoff_data (abfd)->raw_syments = raw;
@@ -620,7 +633,7 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ignore, debug)
   amt *= sizeof (struct fdr);
   debug->fdr = (struct fdr *) bfd_alloc (abfd, amt);
   if (debug->fdr == NULL)
-    return false;
+    return FALSE;
   external_fdr_size = backend->debug_swap.external_fdr_size;
   fdr_ptr = debug->fdr;
   fraw_src = (char *) debug->external_fdr;
@@ -628,7 +641,7 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ignore, debug)
   for (; fraw_src < fraw_end; fraw_src += external_fdr_size, fdr_ptr++)
     (*backend->debug_swap.swap_fdr_in) (abfd, (PTR) fraw_src, fdr_ptr);
 
-  return true;
+  return TRUE;
 }
 \f
 /* ECOFF symbol table routines.  The ECOFF symbol table is described
@@ -657,7 +670,7 @@ _bfd_ecoff_make_empty_symbol (abfd)
     return (asymbol *) NULL;
   new->symbol.section = (asection *) NULL;
   new->fdr = (FDR *) NULL;
-  new->local = false;
+  new->local = FALSE;
   new->native = NULL;
   new->symbol.the_bfd = abfd;
   return &new->symbol;
@@ -665,7 +678,7 @@ _bfd_ecoff_make_empty_symbol (abfd)
 
 /* Set the BFD flags and section for an ECOFF symbol.  */
 
-static boolean
+static bfd_boolean
 ecoff_set_symbol_info (abfd, ecoff_sym, asym, ext, weak)
      bfd *abfd;
      SYMR *ecoff_sym;
@@ -691,12 +704,12 @@ ecoff_set_symbol_info (abfd, ecoff_sym, asym, ext, weak)
       if (ECOFF_IS_STAB (ecoff_sym))
        {
          asym->flags = BSF_DEBUGGING;
-         return true;
+         return TRUE;
        }
       break;
     default:
       asym->flags = BSF_DEBUGGING;
-      return true;
+      return TRUE;
     }
 
   if (weak)
@@ -877,7 +890,7 @@ ecoff_set_symbol_info (abfd, ecoff_sym, asym, ext, weak)
                amt = strlen (name) + 1;
                copy = (char *) bfd_alloc (abfd, amt);
                if (!copy)
-                 return false;
+                 return FALSE;
                strcpy (copy, name);
                section = bfd_make_section (abfd, copy);
              }
@@ -886,7 +899,7 @@ ecoff_set_symbol_info (abfd, ecoff_sym, asym, ext, weak)
            amt = sizeof (arelent_chain);
            reloc_chain = (arelent_chain *) bfd_alloc (abfd, amt);
            if (!reloc_chain)
-             return false;
+             return FALSE;
            reloc_chain->relent.sym_ptr_ptr =
              bfd_get_section (asym)->symbol_ptr_ptr;
            reloc_chain->relent.address = section->_raw_size;
@@ -919,12 +932,12 @@ ecoff_set_symbol_info (abfd, ecoff_sym, asym, ext, weak)
          break;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Read an ECOFF symbol table.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_slurp_symbol_table (abfd)
      bfd *abfd;
 {
@@ -947,20 +960,20 @@ _bfd_ecoff_slurp_symbol_table (abfd)
 
   /* If we've already read in the symbol table, do nothing.  */
   if (ecoff_data (abfd)->canonical_symbols != NULL)
-    return true;
+    return TRUE;
 
   /* Get the symbolic information.  */
   if (! _bfd_ecoff_slurp_symbolic_info (abfd, (asection *) NULL,
                                        &ecoff_data (abfd)->debug_info))
-    return false;
+    return FALSE;
   if (bfd_get_symcount (abfd) == 0)
-    return true;
+    return TRUE;
 
   internal_size = bfd_get_symcount (abfd);
   internal_size *= sizeof (ecoff_symbol_type);
   internal = (ecoff_symbol_type *) bfd_alloc (abfd, internal_size);
   if (internal == NULL)
-    return false;
+    return FALSE;
 
   internal_ptr = internal;
   eraw_src = (char *) ecoff_data (abfd)->debug_info.external_ext;
@@ -977,14 +990,14 @@ _bfd_ecoff_slurp_symbol_table (abfd)
       if (!ecoff_set_symbol_info (abfd, &internal_esym.asym,
                                  &internal_ptr->symbol, 1,
                                  internal_esym.weakext))
-       return false;
+       return FALSE;
       /* The alpha uses a negative ifd field for section symbols.  */
       if (internal_esym.ifd >= 0)
        internal_ptr->fdr = (ecoff_data (abfd)->debug_info.fdr
                             + internal_esym.ifd);
       else
        internal_ptr->fdr = NULL;
-      internal_ptr->local = false;
+      internal_ptr->local = FALSE;
       internal_ptr->native = (PTR) eraw_src;
     }
 
@@ -1012,16 +1025,16 @@ _bfd_ecoff_slurp_symbol_table (abfd)
                                       + internal_sym.iss);
          if (!ecoff_set_symbol_info (abfd, &internal_sym,
                                      &internal_ptr->symbol, 0, 0))
-           return false;
+           return FALSE;
          internal_ptr->fdr = fdr_ptr;
-         internal_ptr->local = true;
+         internal_ptr->local = TRUE;
          internal_ptr->native = (PTR) lraw_src;
        }
     }
 
   ecoff_data (abfd)->canonical_symbols = internal;
 
-  return true;
+  return TRUE;
 }
 
 /* Return the amount of space needed for the canonical symbols.  */
@@ -1443,7 +1456,7 @@ _bfd_ecoff_get_symbol_info (abfd, symbol, ret)
 
 /* Return whether this is a local label.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_bfd_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
@@ -1642,7 +1655,7 @@ _bfd_ecoff_print_symbol (abfd, filep, symbol, how)
 \f
 /* Read in the relocs for a section.  */
 
-static boolean
+static bfd_boolean
 ecoff_slurp_reloc_table (abfd, section, symbols)
      bfd *abfd;
      asection *section;
@@ -1659,10 +1672,10 @@ ecoff_slurp_reloc_table (abfd, section, symbols)
   if (section->relocation != (arelent *) NULL
       || section->reloc_count == 0
       || (section->flags & SEC_CONSTRUCTOR) != 0)
-    return true;
+    return TRUE;
 
   if (! _bfd_ecoff_slurp_symbol_table (abfd))
-    return false;
+    return FALSE;
 
   amt = section->reloc_count;
   amt *= sizeof (arelent);
@@ -1673,11 +1686,11 @@ ecoff_slurp_reloc_table (abfd, section, symbols)
   external_relocs = (char *) bfd_alloc (abfd, amt);
   if (internal_relocs == (arelent *) NULL
       || external_relocs == (char *) NULL)
-    return false;
+    return FALSE;
   if (bfd_seek (abfd, section->rel_filepos, SEEK_SET) != 0)
-    return false;
+    return FALSE;
   if (bfd_bread (external_relocs, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   for (i = 0, rptr = internal_relocs; i < section->reloc_count; i++, rptr++)
     {
@@ -1747,7 +1760,7 @@ ecoff_slurp_reloc_table (abfd, section, symbols)
 
   section->relocation = internal_relocs;
 
-  return true;
+  return TRUE;
 }
 
 /* Get a canonical list of relocs.  */
@@ -1795,7 +1808,7 @@ _bfd_ecoff_canonicalize_reloc (abfd, section, relptr, symbols)
    and return the name of the source file and the line nearest to the
    wanted location.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_find_nearest_line (abfd, section, ignore_symbols, offset,
                              filename_ptr, functionname_ptr, retline_ptr)
      bfd *abfd;
@@ -1814,7 +1827,7 @@ _bfd_ecoff_find_nearest_line (abfd, section, ignore_symbols, offset,
   /* Make sure we have the FDR's.  */
   if (! _bfd_ecoff_slurp_symbolic_info (abfd, (asection *) NULL, debug_info)
       || bfd_get_symcount (abfd) == 0)
-    return false;
+    return FALSE;
 
   if (ecoff_data (abfd)->find_line_info == NULL)
     {
@@ -1822,7 +1835,7 @@ _bfd_ecoff_find_nearest_line (abfd, section, ignore_symbols, offset,
       ecoff_data (abfd)->find_line_info
        = (struct ecoff_find_line *) bfd_zalloc (abfd, amt);
       if (ecoff_data (abfd)->find_line_info == NULL)
-       return false;
+       return FALSE;
     }
   line_info = ecoff_data (abfd)->find_line_info;
 
@@ -1844,7 +1857,7 @@ _bfd_ecoff_find_nearest_line (abfd, section, ignore_symbols, offset,
    the symbol table, so this function only handles the other debugging
    information.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_bfd_copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -1854,13 +1867,13 @@ _bfd_ecoff_bfd_copy_private_bfd_data (ibfd, obfd)
   register int i;
   asymbol **sym_ptr_ptr;
   size_t c;
-  boolean local;
+  bfd_boolean local;
 
   /* We only want to copy information over if both BFD's use ECOFF
      format.  */
   if (bfd_get_flavour (ibfd) != bfd_target_ecoff_flavour
       || bfd_get_flavour (obfd) != bfd_target_ecoff_flavour)
-    return true;
+    return TRUE;
 
   /* Copy the GP value and the register masks.  */
   ecoff_data (obfd)->gp = ecoff_data (ibfd)->gp;
@@ -1876,15 +1889,15 @@ _bfd_ecoff_bfd_copy_private_bfd_data (ibfd, obfd)
   c = bfd_get_symcount (obfd);
   sym_ptr_ptr = bfd_get_outsymbols (obfd);
   if (c == 0 || sym_ptr_ptr == (asymbol **) NULL)
-    return true;
+    return TRUE;
 
   /* See if there are any local symbols.  */
-  local = false;
+  local = FALSE;
   for (; c > 0; c--, sym_ptr_ptr++)
     {
       if (ecoffsymbol (*sym_ptr_ptr)->local)
        {
-         local = true;
+         local = TRUE;
          break;
        }
     }
@@ -1947,14 +1960,14 @@ _bfd_ecoff_bfd_copy_private_bfd_data (ibfd, obfd)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Set the architecture.  The supported architecture is stored in the
    backend pointer.  We always set the architecture anyhow, since many
    callers ignore the return value.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_set_arch_mach (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -1969,7 +1982,7 @@ _bfd_ecoff_set_arch_mach (abfd, arch, machine)
 int
 _bfd_ecoff_sizeof_headers (abfd, reloc)
      bfd *abfd;
-     boolean reloc ATTRIBUTE_UNUSED;
+     bfd_boolean reloc ATTRIBUTE_UNUSED;
 {
   asection *current;
   int c;
@@ -1989,7 +2002,7 @@ _bfd_ecoff_sizeof_headers (abfd, reloc)
 
 /* Get the contents of a section.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -2033,7 +2046,7 @@ ecoff_sort_hdrs (arg1, arg2)
 /* Calculate the file position for each section, and set
    reloc_filepos.  */
 
-static boolean
+static bfd_boolean
 ecoff_compute_section_file_positions (abfd)
      bfd *abfd;
 {
@@ -2042,12 +2055,12 @@ ecoff_compute_section_file_positions (abfd)
   asection *current;
   unsigned int i;
   file_ptr old_sofar;
-  boolean rdata_in_text;
-  boolean first_data, first_nonalloc;
+  bfd_boolean rdata_in_text;
+  bfd_boolean first_data, first_nonalloc;
   const bfd_vma round = ecoff_backend (abfd)->round;
   bfd_size_type amt;
 
-  sofar = _bfd_ecoff_sizeof_headers (abfd, false);
+  sofar = _bfd_ecoff_sizeof_headers (abfd, FALSE);
   file_sofar = sofar;
 
   /* Sort the sections by VMA.  */
@@ -2055,7 +2068,7 @@ ecoff_compute_section_file_positions (abfd)
   amt *= sizeof (asection *);
   sorted_hdrs = (asection **) bfd_malloc (amt);
   if (sorted_hdrs == NULL)
-    return false;
+    return FALSE;
   for (current = abfd->sections, i = 0;
        current != NULL;
        current = current->next, i++)
@@ -2079,15 +2092,15 @@ ecoff_compute_section_file_positions (abfd)
              && strcmp (current->name, _PDATA) != 0
              && strcmp (current->name, _RCONST) != 0)
            {
-             rdata_in_text = false;
+             rdata_in_text = FALSE;
              break;
            }
        }
     }
   ecoff_data (abfd)->rdata_in_text = rdata_in_text;
 
-  first_data = true;
-  first_nonalloc = true;
+  first_data = TRUE;
+  first_nonalloc = TRUE;
   for (i = 0; i < abfd->section_count; i++)
     {
       unsigned int alignment_power;
@@ -2120,7 +2133,7 @@ ecoff_compute_section_file_positions (abfd)
        {
          sofar = (sofar + round - 1) &~ (round - 1);
          file_sofar = (file_sofar + round - 1) &~ (round - 1);
-         first_data = false;
+         first_data = FALSE;
        }
       else if (strcmp (current->name, _LIB) == 0)
        {
@@ -2138,7 +2151,7 @@ ecoff_compute_section_file_positions (abfd)
          /* Skip up to the next page for an unallocated section, such
              as the .comment section on the Alpha.  This leaves room
              for the .bss section.  */
-         first_nonalloc = false;
+         first_nonalloc = FALSE;
          sofar = (sofar + round - 1) &~ (round - 1);
          file_sofar = (file_sofar + round - 1) &~ (round - 1);
        }
@@ -2177,7 +2190,7 @@ ecoff_compute_section_file_positions (abfd)
 
   ecoff_data (abfd)->reloc_filepos = file_sofar;
 
-  return true;
+  return TRUE;
 }
 
 /* Determine the location of the relocs for all the sections in the
@@ -2199,7 +2212,7 @@ ecoff_compute_reloc_file_positions (abfd)
     {
       if (! ecoff_compute_section_file_positions (abfd))
        abort ();
-      abfd->output_has_begun = true;
+      abfd->output_has_begun = TRUE;
     }
 
   reloc_base = ecoff_data (abfd)->reloc_filepos;
@@ -2239,7 +2252,7 @@ ecoff_compute_reloc_file_positions (abfd)
 
 /* Set the contents of a section.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -2250,11 +2263,11 @@ _bfd_ecoff_set_section_contents (abfd, section, location, offset, count)
   file_ptr pos;
 
   /* This must be done first, because bfd_set_section_contents is
-     going to set output_has_begun to true.  */
+     going to set output_has_begun to TRUE.  */
   if (! abfd->output_has_begun)
     {
       if (! ecoff_compute_section_file_positions (abfd))
-       return false;
+       return FALSE;
     }
 
   /* Handle the .lib section specially so that Irix 4 shared libraries
@@ -2275,14 +2288,14 @@ _bfd_ecoff_set_section_contents (abfd, section, location, offset, count)
     }
 
   if (count == 0)
-    return true;
+    return TRUE;
 
   pos = section->filepos + offset;
   if (bfd_seek (abfd, pos, SEEK_SET) != 0
       || bfd_bwrite (location, count, abfd) != count)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Get the GP value for an ECOFF file.  This is a hook used by
@@ -2305,7 +2318,7 @@ bfd_ecoff_get_gp_value (abfd)
 /* Set the GP value for an ECOFF file.  This is a hook used by the
    assembler.  */
 
-boolean
+bfd_boolean
 bfd_ecoff_set_gp_value (abfd, gp_value)
      bfd *abfd;
      bfd_vma gp_value;
@@ -2314,18 +2327,18 @@ bfd_ecoff_set_gp_value (abfd, gp_value)
       || bfd_get_format (abfd) != bfd_object)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   ecoff_data (abfd)->gp = gp_value;
 
-  return true;
+  return TRUE;
 }
 
 /* Set the register masks for an ECOFF file.  This is a hook used by
    the assembler.  */
 
-boolean
+bfd_boolean
 bfd_ecoff_set_regmasks (abfd, gprmask, fprmask, cprmask)
      bfd *abfd;
      unsigned long gprmask;
@@ -2338,7 +2351,7 @@ bfd_ecoff_set_regmasks (abfd, gprmask, fprmask, cprmask)
       || bfd_get_format (abfd) != bfd_object)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   tdata = ecoff_data (abfd);
@@ -2352,13 +2365,13 @@ bfd_ecoff_set_regmasks (abfd, gprmask, fprmask, cprmask)
        tdata->cprmask[i] = cprmask[i];
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Get ECOFF EXTR information for an external symbol.  This function
    is passed to bfd_ecoff_debug_externals.  */
 
-static boolean
+static bfd_boolean
 ecoff_get_extr (sym, esym)
      asymbol *sym;
      EXTR *esym;
@@ -2373,7 +2386,7 @@ ecoff_get_extr (sym, esym)
       if ((sym->flags & BSF_DEBUGGING) != 0
          || (sym->flags & BSF_LOCAL) != 0
          || (sym->flags & BSF_SECTION_SYM) != 0)
-       return false;
+       return FALSE;
 
       esym->jmptbl = 0;
       esym->cobol_main = 0;
@@ -2385,13 +2398,13 @@ ecoff_get_extr (sym, esym)
       esym->asym.sc = scAbs;
       esym->asym.reserved = 0;
       esym->asym.index = indexNil;
-      return true;
+      return TRUE;
     }
 
   ecoff_sym_ptr = ecoffsymbol (sym);
 
   if (ecoff_sym_ptr->local)
-    return false;
+    return FALSE;
 
   input_bfd = bfd_asymbol_bfd (sym);
   (*(ecoff_backend (input_bfd)->debug_swap.swap_ext_in))
@@ -2417,7 +2430,7 @@ ecoff_get_extr (sym, esym)
        esym->ifd = input_debug->ifdmap[esym->ifd];
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the external symbol index.  This routine is passed to
@@ -2433,7 +2446,7 @@ ecoff_set_index (sym, indx)
 
 /* Write out an ECOFF file.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -2445,13 +2458,11 @@ _bfd_ecoff_write_object_contents (abfd)
   const bfd_size_type external_hdr_size
     = backend->debug_swap.external_hdr_size;
   const bfd_size_type external_reloc_size = backend->external_reloc_size;
-  void (* const adjust_reloc_out) PARAMS ((bfd *,
-                                          const arelent *,
-                                          struct internal_reloc *))
+  void (* const adjust_reloc_out)
+  PARAMS ((bfd *, const arelent *, struct internal_reloc *))
     = backend->adjust_reloc_out;
-  void (* const swap_reloc_out) PARAMS ((bfd *,
-                                        const struct internal_reloc *,
-                                        PTR))
+  void (* const swap_reloc_out)
+  PARAMS ((bfd *, const struct internal_reloc *, PTR))
     = backend->swap_reloc_out;
   struct ecoff_debug_info * const debug = &ecoff_data (abfd)->debug_info;
   HDRR * const symhdr = &debug->symbolic_header;
@@ -2460,10 +2471,10 @@ _bfd_ecoff_write_object_contents (abfd)
   bfd_size_type reloc_size;
   bfd_size_type text_size;
   bfd_vma text_start;
-  boolean set_text_start;
+  bfd_boolean set_text_start;
   bfd_size_type data_size;
   bfd_vma data_start;
-  boolean set_data_start;
+  bfd_boolean set_data_start;
   bfd_size_type bss_size;
   PTR buff = NULL;
   PTR reloc_buff = NULL;
@@ -2485,14 +2496,14 @@ _bfd_ecoff_write_object_contents (abfd)
     }
 
   if ((abfd->flags & D_PAGED) != 0)
-    text_size = _bfd_ecoff_sizeof_headers (abfd, false);
+    text_size = _bfd_ecoff_sizeof_headers (abfd, FALSE);
   else
     text_size = 0;
   text_start = 0;
-  set_text_start = false;
+  set_text_start = FALSE;
   data_size = 0;
   data_start = 0;
-  set_data_start = false;
+  set_data_start = FALSE;
   bss_size = 0;
 
   /* Write section headers to the file.  */
@@ -2588,7 +2599,7 @@ _bfd_ecoff_write_object_contents (abfd)
          if (! set_text_start || text_start > vma)
            {
              text_start = vma;
-             set_text_start = true;
+             set_text_start = TRUE;
            }
        }
       else if ((section.s_flags & STYP_RDATA) != 0
@@ -2604,7 +2615,7 @@ _bfd_ecoff_write_object_contents (abfd)
          if (! set_data_start || data_start > vma)
            {
              data_start = vma;
-             set_data_start = true;
+             set_data_start = TRUE;
            }
        }
       else if ((section.s_flags & STYP_BSS) != 0
@@ -2870,13 +2881,13 @@ _bfd_ecoff_write_object_contents (abfd)
     bfd_release (abfd, reloc_buff);
   if (buff != NULL)
     free (buff);
-  return true;
+  return TRUE;
  error_return:
   if (reloc_buff != NULL)
     bfd_release (abfd, reloc_buff);
   if (buff != NULL)
     free (buff);
-  return false;
+  return FALSE;
 }
 \f
 /* Archive handling.  ECOFF uses what appears to be a unique type of
@@ -2949,7 +2960,7 @@ ecoff_armap_hash (s, rehash, size, hlog)
 
 /* Read in the armap.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_slurp_armap (abfd)
      bfd *abfd;
 {
@@ -2968,12 +2979,12 @@ _bfd_ecoff_slurp_armap (abfd)
   /* Get the name of the first element.  */
   i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd);
   if (i == 0)
-      return true;
+      return TRUE;
   if (i != 16)
-      return false;
+      return FALSE;
 
   if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
-    return false;
+    return FALSE;
 
   /* Irix 4.0.5F apparently can use either an ECOFF armap or a
      standard COFF armap.  We could move the ECOFF armap stuff into
@@ -2995,8 +3006,8 @@ _bfd_ecoff_slurp_armap (abfd)
       || strncmp (nextname + ARMAP_END_INDEX,
                  ARMAP_END, sizeof ARMAP_END - 1) != 0)
     {
-      bfd_has_map (abfd) = false;
-      return true;
+      bfd_has_map (abfd) = FALSE;
+      return TRUE;
     }
 
   /* Make sure we have the right byte ordering.  */
@@ -3006,27 +3017,27 @@ _bfd_ecoff_slurp_armap (abfd)
          ^ (bfd_big_endian (abfd))))
     {
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 
   /* Read in the armap.  */
   ardata = bfd_ardata (abfd);
   mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
   if (mapdata == (struct areltdata *) NULL)
-    return false;
+    return FALSE;
   parsed_size = mapdata->parsed_size;
   bfd_release (abfd, (PTR) mapdata);
 
   raw_armap = (char *) bfd_alloc (abfd, parsed_size);
   if (raw_armap == (char *) NULL)
-    return false;
+    return FALSE;
 
   if (bfd_bread ((PTR) raw_armap, parsed_size, abfd) != parsed_size)
     {
       if (bfd_get_error () != bfd_error_system_call)
        bfd_set_error (bfd_error_malformed_archive);
       bfd_release (abfd, (PTR) raw_armap);
-      return false;
+      return FALSE;
     }
 
   ardata->tdata = (PTR) raw_armap;
@@ -3086,7 +3097,7 @@ _bfd_ecoff_slurp_armap (abfd)
   amt *= sizeof (struct symdef);
   symdef_ptr = (struct symdef *) bfd_alloc (abfd, amt);
   if (!symdef_ptr)
-    return false;
+    return FALSE;
 
   ardata->symdefs = (carsym *) symdef_ptr;
 
@@ -3108,14 +3119,14 @@ _bfd_ecoff_slurp_armap (abfd)
   /* Pad to an even boundary.  */
   ardata->first_file_filepos += ardata->first_file_filepos % 2;
 
-  bfd_has_map (abfd) = true;
+  bfd_has_map (abfd) = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* Write out an armap.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_write_armap (abfd, elength, map, orl_count, stridx)
      bfd *abfd;
      unsigned int elength;
@@ -3199,15 +3210,15 @@ _bfd_ecoff_write_armap (abfd, elength, map, orl_count, stridx)
 
   if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), abfd)
       != sizeof (struct ar_hdr))
-    return false;
+    return FALSE;
 
   H_PUT_32 (abfd, hashsize, temp);
   if (bfd_bwrite ((PTR) temp, (bfd_size_type) 4, abfd) != 4)
-    return false;
+    return FALSE;
 
   hashtable = (bfd_byte *) bfd_zalloc (abfd, symdefsize);
   if (!hashtable)
-    return false;
+    return FALSE;
 
   current = abfd->archive_head;
   last_elt = current;
@@ -3252,21 +3263,21 @@ _bfd_ecoff_write_armap (abfd, elength, map, orl_count, stridx)
     }
 
   if (bfd_bwrite ((PTR) hashtable, symdefsize, abfd) != symdefsize)
-    return false;
+    return FALSE;
 
   bfd_release (abfd, hashtable);
 
   /* Now write the strings.  */
   H_PUT_32 (abfd, stringsize, temp);
   if (bfd_bwrite ((PTR) temp, (bfd_size_type) 4, abfd) != 4)
-    return false;
+    return FALSE;
   for (i = 0; i < orl_count; i++)
     {
       bfd_size_type len;
 
       len = strlen (*map[i].name) + 1;
       if (bfd_bwrite ((PTR) (*map[i].name), len, abfd) != len)
-       return false;
+       return FALSE;
     }
 
   /* The spec sez this should be a newline.  But in order to be
@@ -3274,10 +3285,10 @@ _bfd_ecoff_write_armap (abfd, elength, map, orl_count, stridx)
   if (padit)
     {
       if (bfd_bwrite ("", (bfd_size_type) 1, abfd) != 1)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* See whether this BFD is an archive.  If it is, read in the armap
@@ -3343,7 +3354,7 @@ _bfd_ecoff_archive_p (abfd)
       first = bfd_openr_next_archived_file (abfd, (bfd *) NULL);
       if (first != NULL)
        {
-         first->target_defaulted = false;
+         first->target_defaulted = FALSE;
          if (bfd_check_format (first, bfd_object)
              && first->xvec != abfd->xvec)
            {
@@ -3372,13 +3383,13 @@ static struct bfd_hash_entry *ecoff_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *entry,
           struct bfd_hash_table *table,
           const char *string));
-static boolean ecoff_link_add_archive_symbols
+static bfd_boolean ecoff_link_add_archive_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean ecoff_link_check_archive_element
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded));
-static boolean ecoff_link_add_object_symbols
+static bfd_boolean ecoff_link_check_archive_element
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded));
+static bfd_boolean ecoff_link_add_object_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean ecoff_link_add_externals
+static bfd_boolean ecoff_link_add_externals
   PARAMS ((bfd *, struct bfd_link_info *, PTR, char *));
 
 /* Routine to create an entry in an ECOFF link hash table.  */
@@ -3449,7 +3460,7 @@ _bfd_ecoff_bfd_link_hash_table_create (abfd)
 #define ecoff_link_hash_traverse(table, func, info)                    \
   (bfd_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the ECOFF link hash table from the info structure.  This is
@@ -3460,7 +3471,7 @@ _bfd_ecoff_bfd_link_hash_table_create (abfd)
 /* Given an ECOFF BFD, add symbols to the global hash table as
    appropriate.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_bfd_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3473,7 +3484,7 @@ _bfd_ecoff_bfd_link_add_symbols (abfd, info)
       return ecoff_link_add_archive_symbols (abfd, info);
     default:
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 }
 
@@ -3484,7 +3495,7 @@ _bfd_ecoff_bfd_link_add_symbols (abfd, info)
    already have a hash table, so there is no reason to construct
    another one.  */
 
-static boolean
+static bfd_boolean
 ecoff_link_add_archive_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3502,9 +3513,9 @@ ecoff_link_add_archive_symbols (abfd, info)
     {
       /* An empty archive is a special case.  */
       if (bfd_openr_next_archived_file (abfd, (bfd *) NULL) == NULL)
-       return true;
+       return TRUE;
       bfd_set_error (bfd_error_no_armap);
-      return false;
+      return FALSE;
     }
 
   /* If we don't have any raw data for this archive, as can happen on
@@ -3582,10 +3593,10 @@ ecoff_link_add_archive_symbols (abfd, info)
          || strcmp (name, h->root.string) != 0)
        {
          unsigned int srch;
-         boolean found;
+         bfd_boolean found;
 
          /* That was the wrong symbol.  Try rehashing.  */
-         found = false;
+         found = FALSE;
          for (srch = (hash + rehash) & (armap_count - 1);
               srch != hash;
               srch = (srch + rehash) & (armap_count - 1))
@@ -3597,7 +3608,7 @@ ecoff_link_add_archive_symbols (abfd, info)
              if (name[0] == h->root.string[0]
                  && strcmp (name, h->root.string) == 0)
                {
-                 found = true;
+                 found = TRUE;
                  break;
                }
            }
@@ -3613,33 +3624,33 @@ ecoff_link_add_archive_symbols (abfd, info)
 
       element = (*backend->get_elt_at_filepos) (abfd, (file_ptr) file_offset);
       if (element == (bfd *) NULL)
-       return false;
+       return FALSE;
 
       if (! bfd_check_format (element, bfd_object))
-       return false;
+       return FALSE;
 
       /* Unlike the generic linker, we know that this element provides
         a definition for an undefined symbol and we know that we want
         to include it.  We don't need to check anything.  */
       if (! (*info->callbacks->add_archive_element) (info, element, name))
-       return false;
+       return FALSE;
       if (! ecoff_link_add_object_symbols (element, info))
-       return false;
+       return FALSE;
 
       pundef = &(*pundef)->next;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This is called if we used _bfd_generic_link_add_archive_symbols
    because we were not dealing with an ECOFF archive.  */
 
-static boolean
+static bfd_boolean
 ecoff_link_check_archive_element (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
   const struct ecoff_backend_data * const backend = ecoff_backend (abfd);
   void (* const swap_ext_in) PARAMS ((bfd *, PTR, EXTR *))
@@ -3652,7 +3663,7 @@ ecoff_link_check_archive_element (abfd, info, pneeded)
   char *ext_ptr;
   char *ext_end;
 
-  *pneeded = false;
+  *pneeded = FALSE;
 
   if (! ecoff_slurp_symbolic_header (abfd))
     goto error_return;
@@ -3690,7 +3701,7 @@ ecoff_link_check_archive_element (abfd, info, pneeded)
   for (; ext_ptr < ext_end; ext_ptr += external_ext_size)
     {
       EXTR esym;
-      boolean def;
+      bfd_boolean def;
       const char *name;
       struct bfd_link_hash_entry *h;
 
@@ -3716,10 +3727,10 @@ ecoff_link_check_archive_element (abfd, info, pneeded)
        case scInit:
        case scFini:
        case scRConst:
-         def = true;
+         def = TRUE;
          break;
        default:
-         def = false;
+         def = FALSE;
          break;
        }
 
@@ -3727,7 +3738,7 @@ ecoff_link_check_archive_element (abfd, info, pneeded)
        continue;
 
       name = ssext + esym.asym.iss;
-      h = bfd_link_hash_lookup (info->hash, name, false, false, true);
+      h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
 
       /* Unlike the generic linker, we do not pull in elements because
         of common symbols.  */
@@ -3741,7 +3752,7 @@ ecoff_link_check_archive_element (abfd, info, pneeded)
       if (! ecoff_link_add_externals (abfd, info, external_ext, ssext))
        goto error_return;
 
-      *pneeded = true;
+      *pneeded = TRUE;
       goto successful_return;
     }
 
@@ -3750,19 +3761,19 @@ ecoff_link_check_archive_element (abfd, info, pneeded)
     free (external_ext);
   if (ssext != NULL)
     free (ssext);
-  return true;
+  return TRUE;
  error_return:
   if (external_ext != NULL)
     free (external_ext);
   if (ssext != NULL)
     free (ssext);
-  return false;
+  return FALSE;
 }
 
 /* Add symbols from an ECOFF object file to the global linker hash
    table.  */
 
-static boolean
+static bfd_boolean
 ecoff_link_add_object_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3772,14 +3783,14 @@ ecoff_link_add_object_symbols (abfd, info)
   PTR external_ext = NULL;
   bfd_size_type esize;
   char *ssext = NULL;
-  boolean result;
+  bfd_boolean result;
 
   if (! ecoff_slurp_symbolic_header (abfd))
-    return false;
+    return FALSE;
 
   /* If there are no symbols, we don't want it.  */
   if (bfd_get_symcount (abfd) == 0)
-    return true;
+    return TRUE;
 
   symhdr = &ecoff_data (abfd)->debug_info.symbolic_header;
 
@@ -3816,7 +3827,7 @@ ecoff_link_add_object_symbols (abfd, info)
     free (ssext);
   if (external_ext != NULL)
     free (external_ext);
-  return false;
+  return FALSE;
 }
 
 /* Add the external symbols of an object file to the global linker
@@ -3825,7 +3836,7 @@ ecoff_link_add_object_symbols (abfd, info)
    explicitly save any information we may need later on in the link.
    We do not want to read the external symbol information again.  */
 
-static boolean
+static bfd_boolean
 ecoff_link_add_externals (abfd, info, external_ext, ssext)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3848,7 +3859,7 @@ ecoff_link_add_externals (abfd, info, external_ext, ssext)
   amt *= sizeof (struct bfd_link_hash_entry *);
   sym_hash = (struct bfd_link_hash_entry **) bfd_alloc (abfd, amt);
   if (!sym_hash)
-    return false;
+    return FALSE;
   ecoff_data (abfd)->sym_hashes = (struct ecoff_link_hash_entry **) sym_hash;
 
   ext_ptr = (char *) external_ext;
@@ -3856,7 +3867,7 @@ ecoff_link_add_externals (abfd, info, external_ext, ssext)
   for (; ext_ptr < ext_end; ext_ptr += external_ext_size, sym_hash++)
     {
       EXTR esym;
-      boolean skip;
+      bfd_boolean skip;
       bfd_vma value;
       asection *section;
       const char *name;
@@ -3867,7 +3878,7 @@ ecoff_link_add_externals (abfd, info, external_ext, ssext)
       (*swap_ext_in) (abfd, (PTR) ext_ptr, &esym);
 
       /* Skip debugging symbols.  */
-      skip = false;
+      skip = FALSE;
       switch (esym.asym.st)
        {
        case stGlobal:
@@ -3877,7 +3888,7 @@ ecoff_link_add_externals (abfd, info, external_ext, ssext)
        case stStaticProc:
          break;
        default:
-         skip = true;
+         skip = TRUE;
          break;
        }
 
@@ -3983,8 +3994,8 @@ ecoff_link_add_externals (abfd, info, external_ext, ssext)
       if (! (_bfd_generic_link_add_one_symbol
             (info, abfd, name,
              (flagword) (esym.weakext ? BSF_WEAK : BSF_GLOBAL),
-             section, value, (const char *) NULL, true, true, sym_hash)))
-       return false;
+             section, value, (const char *) NULL, TRUE, TRUE, sym_hash)))
+       return FALSE;
 
       h = (struct ecoff_link_hash_entry *) *sym_hash;
 
@@ -4024,20 +4035,20 @@ ecoff_link_add_externals (abfd, info, external_ext, ssext)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* ECOFF final link routines.  */
 
-static boolean ecoff_final_link_debug_accumulate
+static bfd_boolean ecoff_final_link_debug_accumulate
   PARAMS ((bfd *output_bfd, bfd *input_bfd, struct bfd_link_info *,
           PTR handle));
-static boolean ecoff_link_write_external
+static bfd_boolean ecoff_link_write_external
   PARAMS ((struct ecoff_link_hash_entry *, PTR));
-static boolean ecoff_indirect_link_order
+static bfd_boolean ecoff_indirect_link_order
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           struct bfd_link_order *));
-static boolean ecoff_reloc_link_order
+static bfd_boolean ecoff_reloc_link_order
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           struct bfd_link_order *));
 
@@ -4054,7 +4065,7 @@ struct extsym_info
    processes all the link order information.  This may cause it to
    close and reopen some input BFDs; I'll see how bad this is.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_bfd_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -4101,14 +4112,14 @@ _bfd_ecoff_bfd_final_link (abfd, info)
 
   handle = bfd_ecoff_debug_init (abfd, debug, &backend->debug_swap, info);
   if (handle == (PTR) NULL)
-    return false;
+    return FALSE;
 
   /* Accumulate the debugging symbols from each input BFD.  */
   for (input_bfd = info->input_bfds;
        input_bfd != (bfd *) NULL;
        input_bfd = input_bfd->link_next)
     {
-      boolean ret;
+      bfd_boolean ret;
 
       if (bfd_get_flavour (input_bfd) == bfd_target_ecoff_flavour)
        {
@@ -4125,7 +4136,7 @@ _bfd_ecoff_bfd_final_link (abfd, info)
                                                debug, &backend->debug_swap,
                                                input_bfd, info);
       if (! ret)
-       return false;
+       return FALSE;
 
       /* Combine the register masks.  */
       ecoff_data (abfd)->gprmask |= ecoff_data (input_bfd)->gprmask;
@@ -4169,7 +4180,7 @@ _bfd_ecoff_bfd_final_link (abfd, info)
   if (! bfd_ecoff_write_accumulated_debug (handle, abfd, debug,
                                           &backend->debug_swap, info,
                                           ecoff_data (abfd)->sym_filepos))
-    return false;
+    return FALSE;
 
   bfd_ecoff_debug_free (handle, abfd, debug, &backend->debug_swap, info);
 
@@ -4187,7 +4198,7 @@ _bfd_ecoff_bfd_final_link (abfd, info)
     {
       struct bfd_link_hash_entry *h;
 
-      h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true);
+      h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE);
       if (h != (struct bfd_link_hash_entry *) NULL
          && h->type == bfd_link_hash_defined)
        ecoff_data (abfd)->gp = (h->u.def.value
@@ -4230,34 +4241,34 @@ _bfd_ecoff_bfd_final_link (abfd, info)
                  == bfd_target_ecoff_flavour))
            {
              if (! ecoff_indirect_link_order (abfd, info, o, p))
-               return false;
+               return FALSE;
            }
          else if (p->type == bfd_section_reloc_link_order
                   || p->type == bfd_symbol_reloc_link_order)
            {
              if (! ecoff_reloc_link_order (abfd, info, o, p))
-               return false;
+               return FALSE;
            }
          else
            {
              if (! _bfd_default_link_order (abfd, info, o, p))
-               return false;
+               return FALSE;
            }
        }
     }
 
   bfd_get_symcount (abfd) = symhdr->iextMax + symhdr->isymMax;
 
-  ecoff_data (abfd)->linker = true;
+  ecoff_data (abfd)->linker = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* Accumulate the debugging information for an input BFD into the
    output BFD.  This must read in the symbolic information of the
    input BFD.  */
 
-static boolean
+static bfd_boolean
 ecoff_final_link_debug_accumulate (output_bfd, input_bfd, info, handle)
      bfd *output_bfd;
      bfd *input_bfd;
@@ -4268,7 +4279,7 @@ ecoff_final_link_debug_accumulate (output_bfd, input_bfd, info, handle)
   const struct ecoff_debug_swap * const swap =
     &ecoff_backend (input_bfd)->debug_swap;
   HDRR *symhdr = &debug->symbolic_header;
-  boolean ret;
+  bfd_boolean ret;
 
 #define READ(ptr, offset, count, size, type)                            \
   if (symhdr->count == 0)                                               \
@@ -4279,13 +4290,13 @@ ecoff_final_link_debug_accumulate (output_bfd, input_bfd, info, handle)
       debug->ptr = (type) bfd_malloc (amt);                             \
       if (debug->ptr == NULL)                                           \
        {                                                                \
-          ret = false;                                                  \
+          ret = FALSE;                                                  \
           goto return_something;                                        \
        }                                                                \
       if (bfd_seek (input_bfd, (file_ptr) symhdr->offset, SEEK_SET) != 0 \
          || bfd_bread (debug->ptr, amt, input_bfd) != amt)              \
        {                                                                \
-          ret = false;                                                  \
+          ret = FALSE;                                                  \
           goto return_something;                                        \
        }                                                                \
     }
@@ -4356,37 +4367,37 @@ ecoff_final_link_debug_accumulate (output_bfd, input_bfd, info, handle)
 /* Put out information for an external symbol.  These come only from
    the hash table.  */
 
-static boolean
+static bfd_boolean
 ecoff_link_write_external (h, data)
      struct ecoff_link_hash_entry *h;
      PTR data;
 {
   struct extsym_info *einfo = (struct extsym_info *) data;
   bfd *output_bfd = einfo->abfd;
-  boolean strip;
+  bfd_boolean strip;
 
   if (h->root.type == bfd_link_hash_warning)
     {
       h = (struct ecoff_link_hash_entry *) h->root.u.i.link;
       if (h->root.type == bfd_link_hash_new)
-       return true;
+       return TRUE;
     }
 
   /* We need to check if this symbol is being stripped.  */
   if (h->root.type == bfd_link_hash_undefined
       || h->root.type == bfd_link_hash_undefweak)
-    strip = false;
+    strip = FALSE;
   else if (einfo->info->strip == strip_all
           || (einfo->info->strip == strip_some
               && bfd_hash_lookup (einfo->info->keep_hash,
                                   h->root.root.string,
-                                  false, false) == NULL))
-    strip = true;
+                                  FALSE, FALSE) == NULL))
+    strip = TRUE;
   else
-    strip = false;
+    strip = FALSE;
 
   if (strip || h->written)
-    return true;
+    return TRUE;
 
   if (h->abfd == (bfd *) NULL)
     {
@@ -4484,7 +4495,7 @@ ecoff_link_write_external (h, data)
     case bfd_link_hash_indirect:
       /* We ignore these symbols, since the indirected symbol is
         already in the hash table.  */
-      return true;
+      return TRUE;
     }
 
   /* bfd_ecoff_debug_one_external uses iextMax to keep track of the
@@ -4500,7 +4511,7 @@ ecoff_link_write_external (h, data)
 
 /* Relocate and write an ECOFF section into an ECOFF output file.  */
 
-static boolean
+static bfd_boolean
 ecoff_indirect_link_order (output_bfd, info, output_section, link_order)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -4521,7 +4532,7 @@ ecoff_indirect_link_order (output_bfd, info, output_section, link_order)
   BFD_ASSERT ((output_section->flags & SEC_HAS_CONTENTS) != 0);
 
   if (link_order->size == 0)
-    return true;
+    return TRUE;
 
   input_section = link_order->u.indirect.section;
   input_bfd = input_section->owner;
@@ -4610,14 +4621,14 @@ ecoff_indirect_link_order (output_bfd, info, output_section, link_order)
     free (contents);
   if (external_relocs != NULL && section_tdata == NULL)
     free (external_relocs);
-  return true;
+  return TRUE;
 
  error_return:
   if (contents != NULL)
     free (contents);
   if (external_relocs != NULL && section_tdata == NULL)
     free (external_relocs);
-  return false;
+  return FALSE;
 }
 
 /* Generate a reloc when linking an ECOFF file.  This is a reloc
@@ -4625,7 +4636,7 @@ ecoff_indirect_link_order (output_bfd, info, output_section, link_order)
    is used to build constructor and destructor tables when linking
    with -Ur.  */
 
-static boolean
+static bfd_boolean
 ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -4639,7 +4650,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
   struct internal_reloc in;
   bfd_size_type external_reloc_size;
   bfd_byte *rbuf;
-  boolean ok;
+  bfd_boolean ok;
   file_ptr pos;
 
   type = link_order->type;
@@ -4654,7 +4665,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
   if (rel.howto == 0)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   if (type == bfd_section_reloc_link_order)
@@ -4670,7 +4681,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
          actually against the section.  */
       h = bfd_wrapped_link_hash_lookup (output_bfd, info,
                                        link_order->u.reloc.p->u.name,
-                                       false, false, false);
+                                       FALSE, FALSE, FALSE);
       if (h != NULL
          && (h->type == bfd_link_hash_defined
              || h->type == bfd_link_hash_defweak))
@@ -4704,7 +4715,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
       size = bfd_get_reloc_size (rel.howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
       if (buf == (bfd_byte *) NULL)
-       return false;
+       return FALSE;
       rstat = _bfd_relocate_contents (rel.howto, output_bfd,
                                      (bfd_vma) addend, buf);
       switch (rstat)
@@ -4724,7 +4735,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
                  (asection *) NULL, (bfd_vma) 0)))
            {
              free (buf);
-             return false;
+             return FALSE;
            }
          break;
        }
@@ -4732,7 +4743,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
                                     (file_ptr) link_order->offset, size);
       free (buf);
       if (! ok)
-       return false;
+       return FALSE;
     }
 
   rel.addend = 0;
@@ -4749,7 +4760,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
       h = ((struct ecoff_link_hash_entry *)
           bfd_wrapped_link_hash_lookup (output_bfd, info,
                                         link_order->u.reloc.p->u.name,
-                                        false, false, true));
+                                        FALSE, FALSE, TRUE));
       if (h != (struct ecoff_link_hash_entry *) NULL
          && h->indx != -1)
        in.r_symndx = h->indx;
@@ -4758,7 +4769,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
          if (! ((*info->callbacks->unattached_reloc)
                 (info, link_order->u.reloc.p->u.name, (bfd *) NULL,
                  (asection *) NULL, (bfd_vma) 0)))
-           return false;
+           return FALSE;
          in.r_symndx = 0;
        }
       in.r_extern = 1;
@@ -4810,7 +4821,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
   external_reloc_size = ecoff_backend (output_bfd)->external_reloc_size;
   rbuf = (bfd_byte *) bfd_malloc (external_reloc_size);
   if (rbuf == (bfd_byte *) NULL)
-    return false;
+    return FALSE;
 
   (*ecoff_backend (output_bfd)->swap_reloc_out) (output_bfd, &in, (PTR) rbuf);
 
index 5b854af78e33fdbb883619f1cafe2a168d219b23..b74f18a52dffc04755d49b6f1184774514a9ff2a 100644 (file)
@@ -3,21 +3,21 @@
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>.
 
-This file is part of BFD, the Binary File Descriptor library.
+   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 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.
+   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.  */
+   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.  */
 
 #include "bfd.h"
 #include "sysdep.h"
@@ -32,24 +32,25 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "libcoff.h"
 #include "libecoff.h"
 \f
-static boolean ecoff_add_bytes PARAMS ((char **buf, char **bufend,
-                                       size_t need));
+static bfd_boolean ecoff_add_bytes
+  PARAMS ((char **buf, char **bufend, size_t need));
 static struct bfd_hash_entry *string_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
           const char *));
-static void ecoff_align_debug PARAMS ((bfd *abfd,
-                                      struct ecoff_debug_info *debug,
-                                      const struct ecoff_debug_swap *swap));
-static boolean ecoff_write_symhdr PARAMS ((bfd *, struct ecoff_debug_info *,
-                                          const struct ecoff_debug_swap *,
-                                          file_ptr where));
-static int cmp_fdrtab_entry PARAMS ((const PTR, const PTR));
-static boolean mk_fdrtab PARAMS ((bfd *,
-                                 struct ecoff_debug_info * const,
-                                 const struct ecoff_debug_swap * const,
-                                 struct ecoff_find_line *));
-static long fdrtab_lookup PARAMS ((struct ecoff_find_line *, bfd_vma));
-static boolean lookup_line
+static void ecoff_align_debug
+  PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
+          const struct ecoff_debug_swap *swap));
+static bfd_boolean ecoff_write_symhdr
+  PARAMS ((bfd *, struct ecoff_debug_info *, const struct ecoff_debug_swap *,
+          file_ptr where));
+static int cmp_fdrtab_entry
+  PARAMS ((const PTR, const PTR));
+static bfd_boolean mk_fdrtab
+  PARAMS ((bfd *, struct ecoff_debug_info * const,
+          const struct ecoff_debug_swap * const, struct ecoff_find_line *));
+static long fdrtab_lookup
+  PARAMS ((struct ecoff_find_line *, bfd_vma));
+static bfd_boolean lookup_line
   PARAMS ((bfd *, struct ecoff_debug_info * const,
           const struct ecoff_debug_swap * const, struct ecoff_find_line *));
 \f
@@ -253,7 +254,7 @@ _bfd_ecoff_swap_rndx_out (bigend, intern_copy, ext)
 
 /* Add bytes to a buffer.  Return success.  */
 
-static boolean
+static bfd_boolean
 ecoff_add_bytes (buf, bufend, need)
      char **buf;
      char **bufend;
@@ -274,10 +275,10 @@ ecoff_add_bytes (buf, bufend, need)
     }
   newbuf = (char *) bfd_realloc (*buf, (bfd_size_type) have + want);
   if (newbuf == NULL)
-    return false;
+    return FALSE;
   *buf = newbuf;
   *bufend = *buf + have + want;
-  return true;
+  return TRUE;
 }
 
 /* We keep a hash table which maps strings to numbers.  We use it to
@@ -347,7 +348,7 @@ struct shuffle
   /* The length of the information.  */
   unsigned long size;
   /* Whether this information comes from a file or not.  */
-  boolean filep;
+  bfd_boolean filep;
   union
     {
       struct
@@ -400,12 +401,11 @@ struct accumulate
 
 /* Add a file entry to a shuffle list.  */
 
-static boolean add_file_shuffle PARAMS ((struct accumulate *,
-                                     struct shuffle **,
-                                     struct shuffle **, bfd *, file_ptr,
-                                     unsigned long));
+static bfd_boolean add_file_shuffle
+  PARAMS ((struct accumulate *, struct shuffle **, struct shuffle **,
+          bfd *, file_ptr, unsigned long));
 
-static boolean
+static bfd_boolean
 add_file_shuffle (ainfo, head, tail, input_bfd, offset, size)
      struct accumulate *ainfo;
      struct shuffle **head;
@@ -425,7 +425,7 @@ add_file_shuffle (ainfo, head, tail, input_bfd, offset, size)
       (*tail)->size += size;
       if ((*tail)->size > ainfo->largest_file_shuffle)
        ainfo->largest_file_shuffle = (*tail)->size;
-      return true;
+      return TRUE;
     }
 
   n = (struct shuffle *) objalloc_alloc (ainfo->memory,
@@ -433,11 +433,11 @@ add_file_shuffle (ainfo, head, tail, input_bfd, offset, size)
   if (!n)
     {
       bfd_set_error (bfd_error_no_memory);
-      return false;
+      return FALSE;
     }
   n->next = NULL;
   n->size = size;
-  n->filep = true;
+  n->filep = TRUE;
   n->u.file.input_bfd = input_bfd;
   n->u.file.offset = offset;
   if (*head == (struct shuffle *) NULL)
@@ -447,17 +447,16 @@ add_file_shuffle (ainfo, head, tail, input_bfd, offset, size)
   *tail = n;
   if (size > ainfo->largest_file_shuffle)
     ainfo->largest_file_shuffle = size;
-  return true;
+  return TRUE;
 }
 
 /* Add a memory entry to a shuffle list.  */
 
-static boolean add_memory_shuffle PARAMS ((struct accumulate *,
-                                          struct shuffle **head,
-                                          struct shuffle **tail,
-                                          bfd_byte *data, unsigned long size));
+static bfd_boolean add_memory_shuffle
+  PARAMS ((struct accumulate *, struct shuffle **head, struct shuffle **tail,
+          bfd_byte *data, unsigned long size));
 
-static boolean
+static bfd_boolean
 add_memory_shuffle (ainfo, head, tail, data, size)
      struct accumulate *ainfo;
      struct shuffle **head;
@@ -472,18 +471,18 @@ add_memory_shuffle (ainfo, head, tail, data, size)
   if (!n)
     {
       bfd_set_error (bfd_error_no_memory);
-      return false;
+      return FALSE;
     }
   n->next = NULL;
   n->size = size;
-  n->filep = false;
+  n->filep = FALSE;
   n->u.memory = (PTR) data;
   if (*head == (struct shuffle *) NULL)
     *head = n;
   if (*tail != (struct shuffle *) NULL)
     (*tail)->next = n;
   *tail = n;
-  return true;
+  return TRUE;
 }
 
 /* Initialize the FDR hash table.  This returns a handle which is then
@@ -576,7 +575,7 @@ bfd_ecoff_debug_free (handle, output_bfd, output_debug, output_swap, info)
    linker information structure.  HANDLE is returned by
    bfd_ecoff_debug_init.  */
 
-boolean
+bfd_boolean
 bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
                            input_bfd, input_debug, input_swap,
                            info)
@@ -672,10 +671,10 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
   if (!input_debug->ifdmap || !rfd_out)
     {
       bfd_set_error (bfd_error_no_memory);
-      return false;
+      return FALSE;
     }
   if (!add_memory_shuffle (ainfo, &ainfo->rfd, &ainfo->rfd_end, rfd_out, sz))
-    return false;
+    return FALSE;
 
   copied = 0;
 
@@ -716,13 +715,13 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
 
          lookup = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 20);
          if (lookup == NULL)
-           return false;
+           return FALSE;
          sprintf (lookup, "%s %lx %lx", name, fdr.csym, fdr.caux);
 
-         fh = string_hash_lookup (&ainfo->fdr_hash, lookup, true, true);
+         fh = string_hash_lookup (&ainfo->fdr_hash, lookup, TRUE, TRUE);
          free (lookup);
          if (fh == (struct string_hash_entry *) NULL)
-           return false;
+           return FALSE;
 
          if (fh->val != -1)
            {
@@ -773,10 +772,10 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
   if (!fdr_out)
     {
       bfd_set_error (bfd_error_no_memory);
-      return false;
+      return FALSE;
     }
   if (!add_memory_shuffle (ainfo, &ainfo->fdr, &ainfo->fdr_end, fdr_out, sz))
-    return false;
+    return FALSE;
   for (fdr_ptr = fdr_start, i = 0;
        fdr_ptr < fdr_end;
        fdr_ptr += fdr_add, i++)
@@ -786,7 +785,7 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
       bfd_byte *sym_out;
       bfd_byte *lraw_src;
       bfd_byte *lraw_end;
-      boolean fgotfilename;
+      bfd_boolean fgotfilename;
 
       if (input_debug->ifdmap[i] < output_symhdr->ifdMax)
        {
@@ -822,17 +821,17 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
 
       /* Swap in the local symbols, adjust their values, and swap them
         out again.  */
-      fgotfilename = false;
+      fgotfilename = FALSE;
       sz = fdr.csym * external_sym_size;
       sym_out = (bfd_byte *) objalloc_alloc (ainfo->memory, sz);
       if (!sym_out)
        {
          bfd_set_error (bfd_error_no_memory);
-         return false;
+         return FALSE;
        }
       if (!add_memory_shuffle (ainfo, &ainfo->sym, &ainfo->sym_end, sym_out,
                               sz))
-       return false;
+       return FALSE;
       lraw_src = ((bfd_byte *) input_debug->external_sym
                  + fdr.isymBase * input_swap->external_sym_size);
       lraw_end = lraw_src + fdr.csym * input_swap->external_sym_size;
@@ -884,13 +883,13 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
             prevent us from easily merging different FDR's.  */
          if (! info->relocateable)
            {
-             boolean ffilename;
+             bfd_boolean ffilename;
              const char *name;
 
              if (! fgotfilename && internal_sym.iss == fdr.rss)
-               ffilename = true;
+               ffilename = TRUE;
              else
-               ffilename = false;
+               ffilename = FALSE;
 
              /* Hash the name into the string table.  */
              name = input_debug->ss + fdr.issBase + internal_sym.iss;
@@ -900,9 +899,9 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
                {
                  struct string_hash_entry *sh;
 
-                 sh = string_hash_lookup (&ainfo->str_hash, name, true, true);
+                 sh = string_hash_lookup (&ainfo->str_hash, name, TRUE, TRUE);
                  if (sh == (struct string_hash_entry *) NULL)
-                   return false;
+                   return FALSE;
                  if (sh->val == -1)
                    {
                      sh->val = output_symhdr->issMax;
@@ -920,7 +919,7 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
              if (ffilename)
                {
                  fdr.rss = internal_sym.iss;
-                 fgotfilename = true;
+                 fgotfilename = TRUE;
                }
            }
 
@@ -942,7 +941,7 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
          file_ptr pos = input_symhdr->cbLineOffset + fdr.cbLineOffset;
          if (!add_file_shuffle (ainfo, &ainfo->line, &ainfo->line_end,
                                 input_bfd, pos, (unsigned long) fdr.cbLine))
-           return false;
+           return FALSE;
          fdr.ilineBase = output_symhdr->ilineMax;
          fdr.cbLineOffset = output_symhdr->cbLine;
          output_symhdr->ilineMax += fdr.cline;
@@ -955,7 +954,7 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
          if (!add_file_shuffle (ainfo, &ainfo->aux, &ainfo->aux_end,
                                 input_bfd, pos,
                                 fdr.caux * sizeof (union aux_ext)))
-           return false;
+           return FALSE;
          fdr.iauxBase = output_symhdr->iauxMax;
          output_symhdr->iauxMax += fdr.caux;
        }
@@ -974,7 +973,7 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
          file_ptr pos = input_symhdr->cbSsOffset + fdr.issBase;
          if (!add_file_shuffle (ainfo, &ainfo->ss, &ainfo->ss_end,
                                 input_bfd, pos, (unsigned long) fdr.cbSs))
-           return false;
+           return FALSE;
          fdr.issBase = output_symhdr->issMax;
          output_symhdr->issMax += fdr.cbSs;
        }
@@ -994,7 +993,7 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
              unsigned long size = fdr.cpd * external_pdr_size;
              if (!add_file_shuffle (ainfo, &ainfo->pdr, &ainfo->pdr_end,
                                     input_bfd, pos, size))
-               return false;
+               return FALSE;
            }
          BFD_ASSERT (external_opt_size == input_swap->external_opt_size);
          if (fdr.copt > 0)
@@ -1004,7 +1003,7 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
              unsigned long size = fdr.copt * external_opt_size;
              if (!add_file_shuffle (ainfo, &ainfo->opt, &ainfo->opt_end,
                                     input_bfd, pos, size))
-               return false;
+               return FALSE;
            }
        }
       else
@@ -1027,11 +1026,11 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
          if (!out)
            {
              bfd_set_error (bfd_error_no_memory);
-             return false;
+             return FALSE;
            }
          if (!add_memory_shuffle (ainfo, &ainfo->pdr, &ainfo->pdr_end, out,
                                   sz))
-           return false;
+           return FALSE;
          for (; in < end; in += insz, out += outsz)
            {
              PDR pdr;
@@ -1068,11 +1067,11 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
          if (!out)
            {
              bfd_set_error (bfd_error_no_memory);
-             return false;
+             return FALSE;
            }
          if (!add_memory_shuffle (ainfo, &ainfo->opt, &ainfo->opt_end, out,
                                   sz))
-           return false;
+           return FALSE;
          for (; in < end; in += insz, out += outsz)
            {
              OPTR opt;
@@ -1104,16 +1103,15 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
       ++output_symhdr->ifdMax;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Add a string to the debugging information we are accumulating.
    Return the offset from the fdr string base.  */
 
-static long ecoff_add_string PARAMS ((struct accumulate *,
-                                     struct bfd_link_info *,
-                                     struct ecoff_debug_info *,
-                                     FDR *fdr, const char *string));
+static long ecoff_add_string
+  PARAMS ((struct accumulate *, struct bfd_link_info *,
+          struct ecoff_debug_info *, FDR *fdr, const char *string));
 
 static long
 ecoff_add_string (ainfo, info, debug, fdr, string)
@@ -1142,7 +1140,7 @@ ecoff_add_string (ainfo, info, debug, fdr, string)
     {
       struct string_hash_entry *sh;
 
-      sh = string_hash_lookup (&ainfo->str_hash, string, true, true);
+      sh = string_hash_lookup (&ainfo->str_hash, string, TRUE, TRUE);
       if (sh == (struct string_hash_entry *) NULL)
        return -1;
       if (sh->val == -1)
@@ -1164,7 +1162,7 @@ ecoff_add_string (ainfo, info, debug, fdr, string)
 
 /* Add debugging information from a non-ECOFF file.  */
 
-boolean
+bfd_boolean
 bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
                                  output_swap, input_bfd, info)
      PTR handle;
@@ -1203,19 +1201,19 @@ bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
   fdr.rss = ecoff_add_string (ainfo, info, output_debug, &fdr,
                              bfd_archive_filename (input_bfd));
   if (fdr.rss == -1)
-    return false;
+    return FALSE;
   fdr.isymBase = output_symhdr->isymMax;
 
   /* Get the local symbols from the input BFD.  */
   symsize = bfd_get_symtab_upper_bound (input_bfd);
   if (symsize < 0)
-    return false;
+    return FALSE;
   symbols = (asymbol **) bfd_alloc (output_bfd, (bfd_size_type) symsize);
   if (symbols == (asymbol **) NULL)
-    return false;
+    return FALSE;
   symcount = bfd_canonicalize_symtab (input_bfd, symbols);
   if (symcount < 0)
-    return false;
+    return FALSE;
   sym_end = symbols + symcount;
 
   /* Handle the local symbols.  Any external symbols are handled
@@ -1233,7 +1231,7 @@ bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
                                           (*sym_ptr)->name);
 
       if (internal_sym.iss == -1)
-       return false;
+       return FALSE;
       if (bfd_is_com_section ((*sym_ptr)->section)
          || bfd_is_und_section ((*sym_ptr)->section))
        internal_sym.value = (*sym_ptr)->value;
@@ -1250,7 +1248,7 @@ bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
       if (!external_sym)
        {
          bfd_set_error (bfd_error_no_memory);
-         return false;
+         return FALSE;
        }
       (*swap_sym_out) (output_bfd, &internal_sym, external_sym);
       add_memory_shuffle (ainfo, &ainfo->sym, &ainfo->sym_end,
@@ -1271,7 +1269,7 @@ bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
   if (!external_fdr)
     {
       bfd_set_error (bfd_error_no_memory);
-      return false;
+      return FALSE;
     }
   (*output_swap->swap_fdr_out) (output_bfd, &fdr, external_fdr);
   add_memory_shuffle (ainfo, &ainfo->fdr, &ainfo->fdr_end,
@@ -1280,7 +1278,7 @@ bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
 
   ++output_symhdr->ifdMax;
 
-  return true;
+  return TRUE;
 }
 
 /* Set up ECOFF debugging information for the external symbols.
@@ -1288,14 +1286,14 @@ bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
    probably be changed to use a shuffle structure.  The assembler uses
    this interface, so that must be changed to do something else.  */
 
-boolean
+bfd_boolean
 bfd_ecoff_debug_externals (abfd, debug, swap, relocateable, get_extr,
                           set_index)
      bfd *abfd;
      struct ecoff_debug_info *debug;
      const struct ecoff_debug_swap *swap;
-     boolean relocateable;
-     boolean (*get_extr) PARAMS ((asymbol *, EXTR *));
+     bfd_boolean relocateable;
+     bfd_boolean (*get_extr) PARAMS ((asymbol *, EXTR *));
      void (*set_index) PARAMS ((asymbol *, bfd_size_type));
 {
   HDRR * const symhdr = &debug->symbolic_header;
@@ -1304,7 +1302,7 @@ bfd_ecoff_debug_externals (abfd, debug, swap, relocateable, get_extr,
 
   sym_ptr_ptr = bfd_get_outsymbols (abfd);
   if (sym_ptr_ptr == NULL)
-    return true;
+    return TRUE;
 
   for (c = bfd_get_symcount (abfd); c > 0; c--, sym_ptr_ptr++)
     {
@@ -1349,15 +1347,15 @@ bfd_ecoff_debug_externals (abfd, debug, swap, relocateable, get_extr,
 
       if (! bfd_ecoff_debug_one_external (abfd, debug, swap,
                                          sym_ptr->name, &esym))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Add a single external symbol to the debugging information.  */
 
-boolean
+bfd_boolean
 bfd_ecoff_debug_one_external (abfd, debug, swap, name, esym)
      bfd *abfd;
      struct ecoff_debug_info *debug;
@@ -1379,7 +1377,7 @@ bfd_ecoff_debug_one_external (abfd, debug, swap, name, esym)
       if (! ecoff_add_bytes ((char **) &debug->ssext,
                             (char **) &debug->ssext_end,
                             symhdr->issExtMax + namelen + 1))
-       return false;
+       return FALSE;
     }
   if ((size_t) ((char *) debug->external_ext_end
                - (char *) debug->external_ext)
@@ -1388,7 +1386,7 @@ bfd_ecoff_debug_one_external (abfd, debug, swap, name, esym)
       if (! ecoff_add_bytes ((char **) &debug->external_ext,
                             (char **) &debug->external_ext_end,
                             (symhdr->iextMax + 1) * (size_t) external_ext_size))
-       return false;
+       return FALSE;
     }
 
   esym->asym.iss = symhdr->issExtMax;
@@ -1402,7 +1400,7 @@ bfd_ecoff_debug_one_external (abfd, debug, swap, name, esym)
   strcpy (debug->ssext + symhdr->issExtMax, name);
   symhdr->issExtMax += namelen + 1;
 
-  return true;
+  return TRUE;
 }
 
 /* Align the ECOFF debugging information.  */
@@ -1503,7 +1501,7 @@ bfd_ecoff_debug_size (abfd, debug, swap)
    going to be placed at.  This assumes that the counts are set
    correctly.  */
 
-static boolean
+static bfd_boolean
 ecoff_write_symhdr (abfd, debug, swap, where)
      bfd *abfd;
      struct ecoff_debug_info *debug;
@@ -1517,7 +1515,7 @@ ecoff_write_symhdr (abfd, debug, swap, where)
 
   /* Go to the right location in the file.  */
   if (bfd_seek (abfd, where, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   where += swap->external_hdr_size;
 
@@ -1557,11 +1555,11 @@ ecoff_write_symhdr (abfd, debug, swap, where)
 
   if (buff != NULL)
     free (buff);
-  return true;
+  return TRUE;
  error_return:
   if (buff != NULL)
     free (buff);
-  return false;
+  return FALSE;
 }
 
 /* Write out the ECOFF debugging information.  This function assumes
@@ -1570,7 +1568,7 @@ ecoff_write_symhdr (abfd, debug, swap, where)
    information to.  This function fills in the file offsets in the
    symbolic header.  */
 
-boolean
+bfd_boolean
 bfd_ecoff_write_debug (abfd, debug, swap, where)
      bfd *abfd;
      struct ecoff_debug_info *debug;
@@ -1580,14 +1578,14 @@ bfd_ecoff_write_debug (abfd, debug, swap, where)
   HDRR * const symhdr = &debug->symbolic_header;
 
   if (! ecoff_write_symhdr (abfd, debug, swap, where))
-    return false;
+    return FALSE;
 
 #define WRITE(ptr, count, size, offset) \
   BFD_ASSERT (symhdr->offset == 0 \
              || (bfd_vma) bfd_tell (abfd) == symhdr->offset); \
   if (bfd_bwrite ((PTR) debug->ptr, (bfd_size_type) size * symhdr->count, abfd)\
       != size * symhdr->count) \
-    return false;
+    return FALSE;
 
   WRITE (line, cbLine, sizeof (unsigned char), cbLineOffset);
   WRITE (external_dnr, idnMax, swap->external_dnr_size, cbDnOffset);
@@ -1603,16 +1601,16 @@ bfd_ecoff_write_debug (abfd, debug, swap, where)
   WRITE (external_ext, iextMax, swap->external_ext_size, cbExtOffset);
 #undef WRITE
 
-  return true;
+  return TRUE;
 }
 
 /* Write out a shuffle list.  */
 
-static boolean ecoff_write_shuffle PARAMS ((bfd *,
-                                           const struct ecoff_debug_swap *,
-                                           struct shuffle *, PTR space));
+static bfd_boolean ecoff_write_shuffle
+  PARAMS ((bfd *, const struct ecoff_debug_swap *, struct shuffle *,
+          PTR space));
 
-static boolean
+static bfd_boolean
 ecoff_write_shuffle (abfd, swap, shuffle, space)
      bfd *abfd;
      const struct ecoff_debug_swap *swap;
@@ -1629,7 +1627,7 @@ ecoff_write_shuffle (abfd, swap, shuffle, space)
        {
          if (bfd_bwrite (l->u.memory, (bfd_size_type) l->size, abfd)
              != l->size)
-           return false;
+           return FALSE;
        }
       else
        {
@@ -1637,7 +1635,7 @@ ecoff_write_shuffle (abfd, swap, shuffle, space)
              || bfd_bread (space, (bfd_size_type) l->size,
                           l->u.file.input_bfd) != l->size
              || bfd_bwrite (space, (bfd_size_type) l->size, abfd) != l->size)
-           return false;
+           return FALSE;
        }
       total += l->size;
     }
@@ -1650,23 +1648,23 @@ ecoff_write_shuffle (abfd, swap, shuffle, space)
       i = swap->debug_align - (total & (swap->debug_align - 1));
       s = (bfd_byte *) bfd_zmalloc ((bfd_size_type) i);
       if (s == NULL && i != 0)
-       return false;
+       return FALSE;
 
       if (bfd_bwrite ((PTR) s, (bfd_size_type) i, abfd) != i)
        {
          free (s);
-         return false;
+         return FALSE;
        }
       free (s);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write out debugging information using accumulated linker
    information.  */
 
-boolean
+bfd_boolean
 bfd_ecoff_write_accumulated_debug (handle, abfd, debug, swap, info, where)
      PTR handle;
      bfd *abfd;
@@ -1784,12 +1782,12 @@ bfd_ecoff_write_accumulated_debug (handle, abfd, debug, swap, info, where)
 
   if (space != NULL)
     free (space);
-  return true;
+  return TRUE;
 
  error_return:
   if (space != NULL)
     free (space);
-  return false;
+  return FALSE;
 }
 \f
 /* Handle the find_nearest_line function for both ECOFF and MIPS ELF
@@ -1820,7 +1818,7 @@ cmp_fdrtab_entry (leftp, rightp)
    table will be sorted by address so we can look it up via binary
    search.  */
 
-static boolean
+static bfd_boolean
 mk_fdrtab (abfd, debug_info, debug_swap, line_info)
      bfd *abfd;
      struct ecoff_debug_info * const debug_info;
@@ -1831,27 +1829,26 @@ mk_fdrtab (abfd, debug_info, debug_swap, line_info)
   FDR *fdr_ptr;
   FDR *fdr_start;
   FDR *fdr_end;
-  boolean stabs;
+  bfd_boolean stabs;
   long len;
   bfd_size_type amt;
 
   fdr_start = debug_info->fdr;
   fdr_end = fdr_start + debug_info->symbolic_header.ifdMax;
 
-  /* First, let's see how long the table needs to be: */
+  /* First, let's see how long the table needs to be */
   for (len = 0, fdr_ptr = fdr_start; fdr_ptr < fdr_end; fdr_ptr++)
     {
-      if (fdr_ptr->cpd == 0)   /* skip FDRs that have no PDRs */
+      if (fdr_ptr->cpd == 0)   /* Skip FDRs that have no PDRs.  */
        continue;
       ++len;
     }
 
-  /* Now, create and fill in the table: */
-
+  /* Now, create and fill in the table.  */
   amt = (bfd_size_type) len * sizeof (struct ecoff_fdrtab_entry);
   line_info->fdrtab = (struct ecoff_fdrtab_entry*) bfd_zalloc (abfd, amt);
   if (line_info->fdrtab == NULL)
-    return false;
+    return FALSE;
   line_info->fdrtab_len = len;
 
   tab = line_info->fdrtab;
@@ -1863,39 +1860,53 @@ mk_fdrtab (abfd, debug_info, debug_swap, line_info)
       /* Check whether this file has stabs debugging information.  In
         a file with stabs debugging information, the second local
         symbol is named @stabs.  */
-      stabs = false;
+      stabs = FALSE;
       if (fdr_ptr->csym >= 2)
        {
          char *sym_ptr;
          SYMR sym;
 
          sym_ptr = ((char *) debug_info->external_sym
-                    + (fdr_ptr->isymBase + 1)*debug_swap->external_sym_size);
+                    + (fdr_ptr->isymBase + 1) * debug_swap->external_sym_size);
          (*debug_swap->swap_sym_in) (abfd, sym_ptr, &sym);
          if (strcmp (debug_info->ss + fdr_ptr->issBase + sym.iss,
                      STABS_SYMBOL) == 0)
-           stabs = true;
+           stabs = TRUE;
        }
 
       if (!stabs)
        {
-         bfd_size_type external_pdr_size;
-         char *pdr_ptr;
-         PDR pdr;
-
-         external_pdr_size = debug_swap->external_pdr_size;
-
-         pdr_ptr = ((char *) debug_info->external_pdr
-                    + fdr_ptr->ipdFirst * external_pdr_size);
-         (*debug_swap->swap_pdr_in) (abfd, (PTR) pdr_ptr, &pdr);
+         /* eraxxon: There are at least two problems with this computation:
+            1) PDRs do *not* contain offsets but full vma's; and typically the
+            address of the first PDR is the address of the FDR, which will
+            make (most) of the results of the original computation 0!
+            2) Once in a wacky while, the Compaq compiler generated PDR
+            addresses do not equal the FDR vma, but they (the PDR address)
+            are still vma's and not offsets.  Cf. comments in
+            'lookup_line'.  */
+#if 0
+           bfd_size_type external_pdr_size;
+           char *pdr_ptr;
+           PDR pdr;
+           
+           external_pdr_size = debug_swap->external_pdr_size;
+           
+           pdr_ptr = ((char *) debug_info->external_pdr
+                     + fdr_ptr->ipdFirst * external_pdr_size);
+           (*debug_swap->swap_pdr_in) (abfd, (PTR) pdr_ptr, &pdr);
+         /* The address of the first PDR is the offset of that
+            procedure relative to the beginning of file FDR.  */
+           tab->base_addr = fdr_ptr->adr - pdr.adr;
+#else
          /* The address of the first PDR is the offset of that
             procedure relative to the beginning of file FDR.  */
-         tab->base_addr = fdr_ptr->adr - pdr.adr;
+         tab->base_addr = fdr_ptr->adr; 
+#endif
        }
       else
        {
          /* XXX I don't know about stabs, so this is a guess
-            (davidm@cs.arizona.edu): */
+            (davidm@cs.arizona.edu) */
          tab->base_addr = fdr_ptr->adr;
        }
       tab->fdr = fdr_ptr;
@@ -1909,7 +1920,7 @@ mk_fdrtab (abfd, debug_info, debug_swap, line_info)
   qsort ((PTR) line_info->fdrtab, (size_t) len,
         sizeof (struct ecoff_fdrtab_entry), cmp_fdrtab_entry);
 
-  return true;
+  return TRUE;
 }
 
 /* Return index of first FDR that covers to OFFSET.  */
@@ -1939,14 +1950,22 @@ fdrtab_lookup (line_info, offset)
       else
        low = mid + 1;
     }
+
+  /* eraxxon: at this point 'offset' is either lower than the lowest entry or
+     higher than the highest entry. In the former case high = low = mid = 0;
+     we want to return -1.  In the latter case, low = high and mid = low - 1;
+     we want to return the index of the highest entry.  Only in former case
+     will the following 'catch-all' test be true.  */
   ++mid;
 
-  /* last entry is catch-all for all higher addresses: */
+  /* Last entry is catch-all for all higher addresses.  */
   if (offset < tab[mid].base_addr)
     return -1;
 
  find_min:
 
+  /* eraxxon: There may be multiple FDRs in the table with the
+     same base_addr; make sure that we are at the first one.  */
   while (mid > 0 && tab[mid - 1].base_addr == tab[mid].base_addr)
     --mid;
 
@@ -1956,7 +1975,7 @@ fdrtab_lookup (line_info, offset)
 /* Look up a line given an address, storing the information in
    LINE_INFO->cache.  */
 
-static boolean
+static bfd_boolean
 lookup_line (abfd, debug_info, debug_swap, line_info)
      bfd *abfd;
      struct ecoff_debug_info * const debug_info;
@@ -1965,30 +1984,101 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
 {
   struct ecoff_fdrtab_entry *tab;
   bfd_vma offset;
-  boolean stabs;
+  bfd_boolean stabs;
   FDR *fdr_ptr;
   int i;
 
+  /* eraxxon: note that 'offset' is the full vma, not a section offset.  */
   offset = line_info->cache.start;
 
   /* Build FDR table (sorted by object file's base-address) if we
      don't have it already.  */
   if (line_info->fdrtab == NULL
       && !mk_fdrtab (abfd, debug_info, debug_swap, line_info))
-    return false;
+    return FALSE;
 
   tab = line_info->fdrtab;
 
-  /* find first FDR for address OFFSET */
+  /* Find first FDR for address OFFSET.  */
   i = fdrtab_lookup (line_info, offset);
   if (i < 0)
-    return false;              /* no FDR, no fun...  */
+    return FALSE;              /* no FDR, no fun...  */
+  
+  /* eraxxon: 'fdrtab_lookup' doesn't give what we want, at least for Compaq's
+     C++ compiler 6.2.  Consider three FDRs with starting addresses of x, y,
+     and z, respectively, such that x < y < z.  Assume further that
+     y < 'offset' < z.  It is possble at times that the PDR for 'offset' is
+     associated with FDR x and *not* with FDR y.  Erg!!
+
+     From a binary dump of my C++ test case 'moo' using Compaq's coffobjanl
+     (output format has been edited for our purposes):
+
+     FDR [2]: (main.C): First instruction: 0x12000207c <x>
+       PDR [5] for File [2]: LoopTest__Xv                 <0x1200020a0> (a)
+       PDR [7] for File [2]: foo__Xv                      <0x120002168>
+     FDR [1]: (-1):     First instruction: 0x1200020e8 <y>
+       PDR [3] for File [1]:                              <0x120001ad0> (b)
+     FDR [6]: (-1):     First instruction: 0x1200026f0 <z>
+
+     (a) In the case of PDR5, the vma is such that the first few instructions
+     of the procedure can be found.  But since the size of this procedure is
+     160b, the vma will soon cross into the 'address space' of FDR1 and no
+     debugging info will be found.  How repugnant!
+
+     (b) It is also possible for a PDR to have a *lower* vma than its associated
+     FDR; see FDR1 and PDR3.  Gross!
+
+     Since the FDRs that are causing so much havok (in this case) 1) do not
+     describe actual files (fdr.rss == -1), and 2) contain only compiler
+     genarated routines, I thought a simple fix would be to exclude them from
+     the FDR table in 'mk_fdrtab'.  But, besides not knowing for certain
+     whether this would be correct, it creates an additional problem.  If we
+     happen to ask for source file info on a compiler generated (procedure)
+     symbol -- which is still in the symbol table -- the result can be
+     information from a real procedure!  This is because compiler generated
+     procedures with vma's higher than the last FDR in the fdr table will be
+     associated with a PDR from this FDR, specifically the PDR with the
+     highest vma.  This wasn't a problem before, because each procedure had a
+     PDR.  (Yes, this problem could be eliminated if we kept the size of the
+     last PDR around, but things are already getting ugly).
+
+     Probably, a better solution would be to have a sorted PDR table.  Each
+     PDR would have a pointer to its FDR so file information could still be
+     obtained.  A FDR table could still be constructed if necessary -- since
+     it only contains pointers, not much extra memory would be used -- but
+     the PDR table would be searched to locate debugging info.
+
+     There is still at least one remaining issue.  Sometimes a FDR can have a
+     bogus name, but contain PDRs that should belong to another FDR with a
+     real name.  E.g:
+
+     FDR [3]: 0000000120001b50 (/home/.../Array.H~alt~deccxx_5E5A62AD)
+       PDR [a] for File [3]: 0000000120001b50
+       PDR [b] for File [3]: 0000000120001cf0
+       PDR [c] for File [3]: 0000000120001dc8
+       PDR [d] for File [3]: 0000000120001e40
+       PDR [e] for File [3]: 0000000120001eb8
+       PDR [f] for File [3]: 0000000120001f4c
+     FDR [4]: 0000000120001b50 (/home/.../Array.H)
+
+     Here, FDR4 has the correct name, but should (seemingly) contain PDRa-f.
+     The symbol table for PDR4 does contain symbols for PDRa-f, but so does
+     the symbol table for FDR3.  However the former is different; perhaps this
+     can be detected easily. (I'm not sure at this point.)  This problem only
+     seems to be associated with files with templates.  I am assuming the idea
+     is that there is a 'fake' FDR (with PDRs) for each differently typed set
+     of templates that must be generated.  Currently, FDR4 is completely
+     excluded from the FDR table in 'mk_fdrtab' because it contains no PDRs.
+
+     Since I don't have time to prepare a real fix for this right now, be
+     prepared for 'A Horrible Hack' to force the inspection of all non-stabs
+     FDRs.  It's coming...  */
   fdr_ptr = tab[i].fdr;
 
   /* Check whether this file has stabs debugging information.  In a
      file with stabs debugging information, the second local symbol is
      named @stabs.  */
-  stabs = false;
+  stabs = FALSE;
   if (fdr_ptr->csym >= 2)
     {
       char *sym_ptr;
@@ -1999,7 +2089,7 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
       (*debug_swap->swap_sym_in) (abfd, sym_ptr, &sym);
       if (strcmp (debug_info->ss + fdr_ptr->issBase + sym.iss,
                  STABS_SYMBOL) == 0)
-       stabs = true;
+       stabs = TRUE;
     }
 
   if (!stabs)
@@ -2008,7 +2098,7 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
       char *pdr_ptr;
       char *best_pdr = NULL;
       FDR *best_fdr;
-      bfd_vma best_dist = ~(bfd_vma) 0;
+      bfd_signed_vma best_dist = -1;
       PDR pdr;
       unsigned char *line_ptr;
       unsigned char *line_end;
@@ -2070,14 +2160,29 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
          considerably, which is undesirable.  */
       external_pdr_size = debug_swap->external_pdr_size;
 
-      /* Make offset relative to object file's start-address: */
+#if 0 /* eraxxon: PDR addresses (pdr.adr) are not relative to FDRs!
+        Leave 'offset' alone.  */
+      /* Make offset relative to object file's start-address.  */
       offset -= tab[i].base_addr;
+#endif
+      /* eraxxon: The Horrible Hack: Because of the problems above, set 'i'
+        to 0 so we look through all FDRs.
+
+        Because FDR's without any symbols are assumed to be non-stabs,
+        searching through all FDRs may cause the following code to try to
+        read stabs FDRs as ECOFF ones.  However, I don't think this will
+        harm anything.  */
+      i = 0;
+      
       /* Search FDR list starting at tab[i] for the PDR that best matches
          OFFSET.  Normally, the FDR list is only one entry long.  */
       best_fdr = NULL;
       do
        {
-         bfd_vma dist, min_dist = 0;
+         /* eraxxon: 'dist' and 'min_dist' can be negative now
+             because we iterate over every FDR rather than just ones
+             with a base address less than or equal to 'offset'.  */
+         bfd_signed_vma dist = -1, min_dist = -1;
          char *pdr_hold;
          char *pdr_end;
 
@@ -2100,7 +2205,10 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
              if (offset >= (pdr.adr - 0x10 * pdr.prof))
                {
                  dist = offset - (pdr.adr - 0x10 * pdr.prof);
-                 if (!pdr_hold || dist < min_dist)
+
+                 /* eraxxon: 'dist' can be negative now.  Note that
+                     'min_dist' can be negative if 'pdr_hold' below is NULL.  */
+                 if (!pdr_hold || (dist >= 0 && dist < min_dist))
                    {
                      min_dist = dist;
                      pdr_hold = pdr_ptr;
@@ -2108,21 +2216,22 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
                }
            }
 
-         if (!best_pdr || min_dist < best_dist)
+         if (!best_pdr || (min_dist >= 0 && min_dist < best_dist))
            {
-             best_dist = min_dist;
+             best_dist = (bfd_vma) min_dist;  
              best_fdr = fdr_ptr;
              best_pdr = pdr_hold;
            }
-         /* continue looping until base_addr of next entry is different: */
+         /* Continue looping until base_addr of next entry is different.  */
        }
-      while (++i < line_info->fdrtab_len
-            && tab[i].base_addr == tab[i - 1].base_addr);
+      /* eraxxon: We want to iterate over all FDRs.
+        See previous comment about 'fdrtab_lookup'.  */
+      while (++i < line_info->fdrtab_len);
 
       if (!best_fdr || !best_pdr)
-       return false;                   /* shouldn't happen...  */
+       return FALSE;                   /* Shouldn't happen...  */
 
-      /* phew, finally we got something that we can hold onto: */
+      /* Phew, finally we got something that we can hold onto.  */
       fdr_ptr = best_fdr;
       pdr_ptr = best_pdr;
       (*debug_swap->swap_pdr_in) (abfd, (PTR) pdr_ptr, &pdr);
@@ -2132,7 +2241,7 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
          number entries.  */
       line_end = debug_info->line + fdr_ptr->cbLineOffset + fdr_ptr->cbLine;
 
-      /* Make offset relative to procedure entry: */
+      /* Make offset relative to procedure entry */
       offset -= pdr.adr - 0x10 * pdr.prof;
       lineno = pdr.lnLow;
       line_ptr = debug_info->line + fdr_ptr->cbLineOffset + pdr.cbLineOffset;
@@ -2213,8 +2322,8 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
       const char *line_file_name;
       bfd_vma low_func_vma;
       bfd_vma low_line_vma;
-      boolean past_line;
-      boolean past_fn;
+      bfd_boolean past_line;
+      bfd_boolean past_fn;
       char *sym_ptr, *sym_ptr_end;
       size_t len, funclen;
       char *buffer = NULL;
@@ -2240,8 +2349,8 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
       line_file_name = NULL;
       low_func_vma = 0;
       low_line_vma = 0;
-      past_line = false;
-      past_fn = false;
+      past_line = FALSE;
+      past_fn = FALSE;
 
       external_sym_size = debug_swap->external_sym_size;
 
@@ -2291,7 +2400,7 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
 
                case N_FUN:
                  if (sym.value > offset)
-                   past_fn = true;
+                   past_fn = TRUE;
                  else if (sym.value >= low_func_vma)
                    {
                      low_func_vma = sym.value;
@@ -2304,7 +2413,7 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
          else if (sym.st == stLabel && sym.index != indexNil)
            {
              if (sym.value > offset)
-               past_line = true;
+               past_line = TRUE;
              else if (sym.value >= low_line_vma)
                {
                  low_line_vma = sym.value;
@@ -2336,7 +2445,7 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
            free (line_info->find_buffer);
          buffer = (char *) bfd_malloc ((bfd_size_type) len);
          if (buffer == NULL)
-           return false;
+           return FALSE;
          line_info->find_buffer = buffer;
        }
 
@@ -2364,12 +2473,12 @@ lookup_line (abfd, debug_info, debug_swap, line_info)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Do the work of find_nearest_line.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_locate_line (abfd, section, offset, debug_info, debug_swap,
                        line_info, filename_ptr, functionname_ptr, retline_ptr)
      bfd *abfd;
@@ -2395,7 +2504,7 @@ _bfd_ecoff_locate_line (abfd, section, offset, debug_info, debug_swap,
       if (! lookup_line (abfd, debug_info, debug_swap, line_info))
        {
          line_info->cache.sect = NULL;
-         return false;
+         return FALSE;
        }
     }
 
@@ -2403,7 +2512,7 @@ _bfd_ecoff_locate_line (abfd, section, offset, debug_info, debug_swap,
   *functionname_ptr = line_info->cache.functionname;
   *retline_ptr = line_info->cache.line_num;
 
-  return true;
+  return TRUE;
 }
 \f
 /* These routines copy symbolic information into a memory buffer.
@@ -2416,9 +2525,10 @@ _bfd_ecoff_locate_line (abfd, section, offset, debug_info, debug_swap,
 
 /* Collect a shuffle into a memory buffer.  */
 
-static boolean ecoff_collect_shuffle PARAMS ((struct shuffle *, bfd_byte *));
+static bfd_boolean ecoff_collect_shuffle
+  PARAMS ((struct shuffle *, bfd_byte *));
 
-static boolean
+static bfd_boolean
 ecoff_collect_shuffle (l, buff)
      struct shuffle *l;
      bfd_byte *buff;
@@ -2435,18 +2545,18 @@ ecoff_collect_shuffle (l, buff)
          if (bfd_seek (l->u.file.input_bfd, l->u.file.offset, SEEK_SET) != 0
              || (bfd_bread (buff, (bfd_size_type) l->size, l->u.file.input_bfd)
                  != l->size))
-           return false;
+           return FALSE;
        }
       total += l->size;
       buff += l->size;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Copy PDR information into a memory buffer.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_get_accumulated_pdr (handle, buff)
      PTR handle;
      bfd_byte *buff;
@@ -2458,7 +2568,7 @@ _bfd_ecoff_get_accumulated_pdr (handle, buff)
 
 /* Copy symbol information into a memory buffer.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_get_accumulated_sym (handle, buff)
      PTR handle;
      bfd_byte *buff;
@@ -2470,7 +2580,7 @@ _bfd_ecoff_get_accumulated_sym (handle, buff)
 
 /* Copy the string table into a memory buffer.  */
 
-boolean
+bfd_boolean
 _bfd_ecoff_get_accumulated_ss (handle, buff)
      PTR handle;
      bfd_byte *buff;
@@ -2497,5 +2607,5 @@ _bfd_ecoff_get_accumulated_ss (handle, buff)
       buff += len + 1;
     }
 
-  return true;
+  return TRUE;
 }
index 8519f99a0ba845806095de8ac9a491d59cf518d8..03152213adaef16ef06718eedc6b53dbdd1bef9c 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel IA-32 EFI application files.
-   Copyright 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2002 Free Software Foundation, Inc.
    Contributed by David Mosberger <davidm@hpl.hp.com>
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define TARGET_NAME "efi-app-ia32"
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
-#define PCRELOFFSET true
+#define PCRELOFFSET TRUE
 #define TARGET_UNDERSCORE '_'
 #define COFF_LONG_SECTION_NAMES
 #define PEI_TARGET_SUBSYSTEM   IMAGE_SUBSYSTEM_EFI_APPLICATION
index 61045682ee8895f37a0f4d5bba090d521ab3f10b..c7e9bcfc33c7558b78aa1f20a86abf4bf1c42f88 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for HP/Intel IA-64 EFI application files.
-   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by David Mosberger <davidm@hpl.hp.com>
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -26,7 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
 #define COFF_WITH_pep
-#define PCRELOFFSET true
+#define PCRELOFFSET TRUE
 #define TARGET_UNDERSCORE '_'
 #define COFF_LONG_SECTION_NAMES
 #define PEI_TARGET_SUBSYSTEM           IMAGE_SUBSYSTEM_EFI_APPLICATION
index 2fae2b4486d9bacbaf4555561f23fb2ca9e8e4f6..8e5e024edc1b57590c0225356d2d5946e218a1e2 100644 (file)
@@ -139,7 +139,7 @@ struct elf_link_hash_entry
      and track a size while the symbol is still undefined.  It is indexed
      via offset/sizeof(target_void_pointer).  */
   size_t vtable_entries_size;
-  boolean *vtable_entries_used;
+  bfd_boolean *vtable_entries_used;
 
   /* Virtual table derivation info.  */
   struct elf_link_hash_entry *vtable_parent;
@@ -305,7 +305,7 @@ struct eh_frame_hdr_info
   /* TRUE if .eh_frame_hdr should contain the sorted search table.
      We build it if we successfully read all .eh_frame input sections
      and recognize them.  */
-  boolean table;
+  bfd_boolean table;
 };
 
 /* Cached start, size and alignment of PT_TLS segment.  */
@@ -324,7 +324,7 @@ struct elf_link_hash_table
 
   /* Whether we have created the special dynamic sections required
      when linking against or generating a shared object.  */
-  boolean dynamic_sections_created;
+  bfd_boolean dynamic_sections_created;
 
   /* The BFD used to hold special sections created by the linker.
      This will be the first BFD found which requires these sections to
@@ -391,14 +391,14 @@ struct elf_link_hash_table
 #define elf_link_hash_traverse(table, func, info)                      \
   (bfd_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the ELF linker hash table from a link_info structure.  */
 
 #define elf_hash_table(p) ((struct elf_link_hash_table *) ((p)->hash))
 
-/* Returns true if the hash table is a struct elf_link_hash_table.  */
+/* Returns TRUE if the hash table is a struct elf_link_hash_table.  */
 #define is_elf_hash_table(p)                                           \
   ((p)->hash->type == bfd_link_elf_hash_table)
 
@@ -424,12 +424,15 @@ struct elf_size_info {
   /* The number of internal relocations to allocate per external
      relocation entry.  */
   unsigned char int_rels_per_ext_rel;
+  /* We use some fixed size arrays.  This should be large enough to
+     handle all back-ends.  */
+#define MAX_INT_RELS_PER_EXT_REL 3
 
   unsigned char arch_size, file_align;
   unsigned char elfclass, ev_current;
   int (*write_out_phdrs)
     PARAMS ((bfd *, const Elf_Internal_Phdr *, unsigned int));
-  boolean (*write_shdrs_and_ehdr)
+  bfd_boolean (*write_shdrs_and_ehdr)
     PARAMS ((bfd *));
   void (*write_relocs)
     PARAMS ((bfd *, asection *, PTR));
@@ -437,39 +440,34 @@ struct elf_size_info {
     PARAMS ((bfd *, const PTR, const PTR, Elf_Internal_Sym *));
   void (*swap_symbol_out)
     PARAMS ((bfd *, const Elf_Internal_Sym *, PTR, PTR));
-  boolean (*slurp_reloc_table)
-    PARAMS ((bfd *, asection *, asymbol **, boolean));
+  bfd_boolean (*slurp_reloc_table)
+    PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
   long (*slurp_symbol_table)
-    PARAMS ((bfd *, asymbol **, boolean));
+    PARAMS ((bfd *, asymbol **, bfd_boolean));
   void (*swap_dyn_in)
     PARAMS ((bfd *, const PTR, Elf_Internal_Dyn *));
   void (*swap_dyn_out)
     PARAMS ((bfd *, const Elf_Internal_Dyn *, PTR));
 
-  /* This function, if defined, is called to swap in a REL
-     relocation.  If an external relocation corresponds to more than
-     one internal relocation, then all relocations are swapped in at
-     once.  */
+  /* This function is called to swap in a REL relocation.  If an
+     external relocation corresponds to more than one internal
+     relocation, then all relocations are swapped in at once.  */
   void (*swap_reloc_in)
-    PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rel *));
+    PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
 
-  /* This function, if defined, is called to swap out a REL
-     relocation.  */
+  /* This function is called to swap out a REL relocation.  */
   void (*swap_reloc_out)
-    PARAMS ((bfd *, const Elf_Internal_Rel *, bfd_byte *));
+    PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
 
-  /* This function, if defined, is called to swap in a RELA
-     relocation.  If an external relocation corresponds to more than
-     one internal relocation, then all relocations are swapped in at
-     once.  */
+  /* This function is called to swap in a RELA relocation.  If an
+     external relocation corresponds to more than one internal
+     relocation, then all relocations are swapped in at once.  */
   void (*swap_reloca_in)
     PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
 
-  /* This function, if defined, is called to swap out a RELA
-     relocation.  */
+  /* This function is called to swap out a RELA relocation.  */
   void (*swap_reloca_out)
     PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
-
 };
 
 #define elf_symbol_from(ABFD,S) \
@@ -493,7 +491,7 @@ struct elf_reloc_cookie
   size_t locsymcount;
   size_t extsymoff;
   struct elf_link_hash_entry **sym_hashes;
-  boolean bad_symtab;
+  bfd_boolean bad_symtab;
 };
 
 /* The level of IRIX compatibility we're striving for.  */
@@ -523,14 +521,14 @@ struct elf_backend_data
   /* A function to translate an ELF REL relocation to a BFD arelent
      structure.  */
   void (*elf_info_to_howto_rel)
-    PARAMS ((bfd *, arelent *, Elf_Internal_Rel *));
+    PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
   /* A function to determine whether a symbol is global when
      partitioning the symbol table into local and global symbols.
      This should be NULL for most targets, in which case the correct
      thing will be done.  MIPS ELF, at least on the Irix 5, has
      special requirements.  */
-  boolean (*elf_backend_sym_is_global)
+  bfd_boolean (*elf_backend_sym_is_global)
     PARAMS ((bfd *, asymbol *));
 
   /* The remaining functions are hooks which are called only if they
@@ -540,9 +538,9 @@ struct elf_backend_data
      particular BFD format is relevant for an object file, and to
      permit the backend to set any global information it wishes.  When
      this is called elf_elfheader is set, but anything else should be
-     used with caution.  If this returns false, the check_format
+     used with caution.  If this returns FALSE, the check_format
      routine will return a bfd_error_wrong_format error.  */
-  boolean (*elf_backend_object_p)
+  bfd_boolean (*elf_backend_object_p)
     PARAMS ((bfd *));
 
   /* A function to do additional symbol processing when reading the
@@ -553,7 +551,7 @@ struct elf_backend_data
 
   /* A function to do additional symbol processing after reading the
      entire ELF symbol table.  */
-  boolean (*elf_backend_symbol_table_processing)
+  bfd_boolean (*elf_backend_symbol_table_processing)
     PARAMS ((bfd *, elf_symbol_type *, unsigned int));
 
    /* A function to set the type of the info field.  Processor-specific
@@ -565,35 +563,35 @@ struct elf_backend_data
      just before writing it out.  This is used to set the flags and
      type fields for some sections, or to actually write out data for
      unusual sections.  */
-  boolean (*elf_backend_section_processing)
-    PARAMS ((bfd *, Elf32_Internal_Shdr *));
+  bfd_boolean (*elf_backend_section_processing)
+    PARAMS ((bfd *, Elf_Internal_Shdr *));
 
   /* A function to handle unusual section types when creating BFD
      sections from ELF sections.  */
-  boolean (*elf_backend_section_from_shdr)
-    PARAMS ((bfd *, Elf32_Internal_Shdr *, const char *));
+  bfd_boolean (*elf_backend_section_from_shdr)
+    PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
 
   /* A function to convert machine dependent section header flags to
      BFD internal section header flags.  */
-  boolean (*elf_backend_section_flags)
-    PARAMS ((flagword *, Elf32_Internal_Shdr *));
+  bfd_boolean (*elf_backend_section_flags)
+    PARAMS ((flagword *, Elf_Internal_Shdr *));
 
   /* A function to handle unusual program segment types when creating BFD
      sections from ELF program segments.  */
-  boolean (*elf_backend_section_from_phdr)
-    PARAMS ((bfd *, Elf32_Internal_Phdr *, int));
+  bfd_boolean (*elf_backend_section_from_phdr)
+    PARAMS ((bfd *, Elf_Internal_Phdr *, int));
 
   /* A function to set up the ELF section header for a BFD section in
      preparation for writing it out.  This is where the flags and type
      fields are set for unusual sections.  */
-  boolean (*elf_backend_fake_sections)
-    PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *));
+  bfd_boolean (*elf_backend_fake_sections)
+    PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
 
   /* A function to get the ELF section index for a BFD section.  If
-     this returns true, the section was found.  If it is a normal ELF
+     this returns TRUE, the section was found.  If it is a normal ELF
      section, *RETVAL should be left unchanged.  If it is not a normal
      ELF section *RETVAL should be set to the SHN_xxxx index.  */
-  boolean (*elf_backend_section_from_bfd_section)
+  bfd_boolean (*elf_backend_section_from_bfd_section)
     PARAMS ((bfd *, asection *, int *retval));
 
   /* If this field is not NULL, it is called by the add_symbols phase
@@ -604,14 +602,14 @@ struct elf_backend_data
      handling all processor dependent symbol bindings and section
      indices, and must set at least *FLAGS and *SEC for each processor
      dependent case; failure to do so will cause a link error.  */
-  boolean (*elf_add_symbol_hook)
+  bfd_boolean (*elf_add_symbol_hook)
     PARAMS ((bfd *abfd, struct bfd_link_info *info,
             const Elf_Internal_Sym *, const char **name,
             flagword *flags, asection **sec, bfd_vma *value));
 
   /* If this field is not NULL, it is called by the elf_link_output_sym
      phase of a link for each symbol which will appear in the object file.  */
-  boolean (*elf_backend_link_output_symbol_hook)
+  bfd_boolean (*elf_backend_link_output_symbol_hook)
     PARAMS ((bfd *, struct bfd_link_info *info, const char *,
             Elf_Internal_Sym *, asection *));
 
@@ -623,7 +621,7 @@ struct elf_backend_data
      created, and this function may modify the section flags if
      desired.  This function will normally create the .got and .plt
      sections, but different backends have different requirements.  */
-  boolean (*elf_backend_create_dynamic_sections)
+  bfd_boolean (*elf_backend_create_dynamic_sections)
     PARAMS ((bfd *abfd, struct bfd_link_info *info));
 
   /* The CHECK_RELOCS function is called by the add_symbols phase of
@@ -636,7 +634,7 @@ struct elf_backend_data
      relocs are always passed as Rela structures; if the section
      actually uses Rel structures, the r_addend field will always be
      zero.  */
-  boolean (*check_relocs)
+  bfd_boolean (*check_relocs)
     PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *o,
             const Elf_Internal_Rela *relocs));
 
@@ -652,14 +650,14 @@ struct elf_backend_data
      the link can deal with.  This will normally involve adding an
      entry to the .plt or .got or some such section, and setting the
      symbol to point to that.  */
-  boolean (*elf_backend_adjust_dynamic_symbol)
+  bfd_boolean (*elf_backend_adjust_dynamic_symbol)
     PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *h));
 
   /* The ALWAYS_SIZE_SECTIONS function is called by the backend linker
      after all the linker input files have been seen but before the
      section sizes have been set.  This is called after
      ADJUST_DYNAMIC_SYMBOL, but before SIZE_DYNAMIC_SECTIONS.  */
-  boolean (*elf_backend_always_size_sections)
+  bfd_boolean (*elf_backend_always_size_sections)
     PARAMS ((bfd *output_bfd, struct bfd_link_info *info));
 
   /* The SIZE_DYNAMIC_SECTIONS function is called by the ELF backend
@@ -672,7 +670,7 @@ struct elf_backend_data
      .dynstr and .hash sections.  This function must handle the
      .interp section and any sections created by the
      CREATE_DYNAMIC_SECTIONS entry point.  */
-  boolean (*elf_backend_size_dynamic_sections)
+  bfd_boolean (*elf_backend_size_dynamic_sections)
     PARAMS ((bfd *output_bfd, struct bfd_link_info *info));
 
   /* The RELOCATE_SECTION function is called by the ELF backend linker
@@ -703,7 +701,7 @@ struct elf_backend_data
      going to be the section symbol corresponding to the output
      section, which means that the addend must be adjusted
      accordingly.  */
-  boolean (*elf_backend_relocate_section)
+  bfd_boolean (*elf_backend_relocate_section)
     PARAMS ((bfd *output_bfd, struct bfd_link_info *info,
             bfd *input_bfd, asection *input_section, bfd_byte *contents,
             Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms,
@@ -716,7 +714,7 @@ struct elf_backend_data
      dynamic sections.  Note that FINISH_DYNAMIC_SYMBOL is called on
      all .dynsym symbols, while ADJUST_DYNAMIC_SYMBOL is only called
      on those symbols which are defined by a dynamic object.  */
-  boolean (*elf_backend_finish_dynamic_symbol)
+  bfd_boolean (*elf_backend_finish_dynamic_symbol)
     PARAMS ((bfd *output_bfd, struct bfd_link_info *info,
             struct elf_link_hash_entry *h, Elf_Internal_Sym *sym));
 
@@ -724,7 +722,7 @@ struct elf_backend_data
      linker just before it writes all the dynamic sections out to the
      output file.  The FINISH_DYNAMIC_SYMBOL will have been called on
      all dynamic symbols.  */
-  boolean (*elf_backend_finish_dynamic_sections)
+  bfd_boolean (*elf_backend_finish_dynamic_sections)
     PARAMS ((bfd *output_bfd, struct bfd_link_info *info));
 
   /* A function to do any beginning processing needed for the ELF file
@@ -733,10 +731,10 @@ struct elf_backend_data
     PARAMS ((bfd *, struct bfd_link_info *));
 
   /* A function to do any final processing needed for the ELF file
-     before writing it out.  The LINKER argument is true if this BFD
+     before writing it out.  The LINKER argument is TRUE if this BFD
      was created by the ELF backend linker.  */
   void (*elf_backend_final_write_processing)
-    PARAMS ((bfd *, boolean linker));
+    PARAMS ((bfd *, bfd_boolean linker));
 
   /* This function is called by get_program_header_size.  It should
      return the number of additional program segments which this BFD
@@ -746,7 +744,7 @@ struct elf_backend_data
 
   /* This function is called to modify an existing segment map in a
      backend specific fashion.  */
-  boolean (*elf_backend_modify_segment_map)
+  bfd_boolean (*elf_backend_modify_segment_map)
     PARAMS ((bfd *));
 
   /* This function is called during section gc to discover the section a
@@ -758,7 +756,7 @@ struct elf_backend_data
   /* This function, if defined, is called during the sweep phase of gc
      in order that a backend might update any data structures it might
      be maintaining.  */
-  boolean (*gc_sweep_hook)
+  bfd_boolean (*gc_sweep_hook)
     PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *o,
             const Elf_Internal_Rela *relocs));
 
@@ -778,9 +776,9 @@ struct elf_backend_data
      global symbols converted to locals are emited into the symtab
      section.  It allows the backend to emit special global symbols
      not handled in the hash table.  */
-  boolean (*elf_backend_output_arch_syms)
+  bfd_boolean (*elf_backend_output_arch_syms)
     PARAMS ((bfd *, struct bfd_link_info *, PTR,
-           boolean (*) (PTR, const char *, Elf_Internal_Sym *, asection *)));
+           bfd_boolean (*) (PTR, const char *, Elf_Internal_Sym *, asection *)));
 
   /* Copy any information related to dynamic linking from a pre-existing
      symbol to a newly created symbol.  Also called to copy flags and
@@ -794,11 +792,11 @@ struct elf_backend_data
   /* Modify any information related to dynamic linking such that the
      symbol is not exported.  */
   void (*elf_backend_hide_symbol)
-    PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean));
+    PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
 
   /* Emit relocations.  Overrides default routine for emitting relocs,
      except during a relocatable link, or if all relocs are being emitted.  */
-  boolean (*elf_backend_emit_relocs)
+  bfd_boolean (*elf_backend_emit_relocs)
     PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *));
 
   /* Count relocations.  Not called for relocatable links
@@ -808,12 +806,12 @@ struct elf_backend_data
 
   /* This function, if defined, is called when an NT_PRSTATUS note is found
      in a core file. */
-  boolean (*elf_backend_grok_prstatus)
+  bfd_boolean (*elf_backend_grok_prstatus)
     PARAMS ((bfd *, Elf_Internal_Note *));
 
   /* This function, if defined, is called when an NT_PSINFO or NT_PRPSINFO
      note is found in a core file. */
-  boolean (*elf_backend_grok_psinfo)
+  bfd_boolean (*elf_backend_grok_psinfo)
     PARAMS ((bfd *, Elf_Internal_Note *));
 
   /* Functions to print VMAs.  Special code to handle 64 bit ELF files.  */
@@ -828,17 +826,17 @@ struct elf_backend_data
 
   /* This function, if defined, removes information about discarded functions
      from other sections which mention them.  */
-  boolean (*elf_backend_discard_info)
+  bfd_boolean (*elf_backend_discard_info)
     PARAMS ((bfd *, struct elf_reloc_cookie *, struct bfd_link_info *));
 
   /* This function, if defined, signals that the function above has removed
      the discarded relocations for this section.  */
-  boolean (*elf_backend_ignore_discarded_relocs)
+  bfd_boolean (*elf_backend_ignore_discarded_relocs)
     PARAMS ((asection *));
 
   /* This function, if defined, may write out the given section.
-     Returns true if it did so and false if the caller should.  */
-  boolean (*elf_backend_write_section)
+     Returns TRUE if it did so and FALSE if the caller should.  */
+  bfd_boolean (*elf_backend_write_section)
     PARAMS ((bfd *, asection *, bfd_byte *));
 
   /* The level of IRIX compatibility we're striving for.
@@ -847,7 +845,7 @@ struct elf_backend_data
     PARAMS ((bfd *));
 
   reloc_howto_type *(*elf_backend_mips_rtype_to_howto)
-    PARAMS ((unsigned int, boolean));
+    PARAMS ((unsigned int, bfd_boolean));
 
   /* The swapping table to use when dealing with ECOFF information.
      Used for the MIPS ELF .mdebug section.  */
@@ -868,14 +866,14 @@ struct elf_backend_data
   bfd_vma got_header_size;
   bfd_vma plt_header_size;
 
-  /* This is true if the linker should act like collect and gather
-     global constructors and destructors by name.  This is true for
+  /* This is TRUE if the linker should act like collect and gather
+     global constructors and destructors by name.  This is TRUE for
      MIPS ELF because the Irix 5 tools can not handle the .init
      section.  */
   unsigned collect : 1;
 
-  /* This is true if the linker should ignore changes to the type of a
-     symbol.  This is true for MIPS ELF because some Irix 5 objects
+  /* This is TRUE if the linker should ignore changes to the type of a
+     symbol.  This is TRUE for MIPS ELF because some Irix 5 objects
      record undefined functions as STT_OBJECT although the definitions
      are STT_FUNC.  */
   unsigned type_change_ok : 1;
@@ -902,7 +900,7 @@ struct elf_backend_data
      backend relocate_section routine for relocatable linking.  */
   unsigned rela_normal : 1;
 
-  /* True if addresses "naturally" sign extend.  This is used when
+  /* TRUE if addresses "naturally" sign extend.  This is used when
      swapping in from Elf32 when BFD64.  */
   unsigned sign_extend_vma : 1;
 
@@ -1011,7 +1009,7 @@ struct bfd_elf_section_data
 #define elf_next_in_group(sec) (elf_section_data(sec)->next_in_group)
 #define elf_linkonce_p(sec)    (elf_section_data(sec)->linkonce_p)
 
-/* Return true if section has been discarded.  */
+/* Return TRUE if section has been discarded.  */
 #define elf_discarded_section(sec)                                     \
   (!bfd_is_abs_section(sec)                                            \
    && bfd_is_abs_section((sec)->output_section)                                \
@@ -1050,7 +1048,7 @@ typedef struct elf_linker_section
   bfd_vma hole_offset;                 /* current offset for the hole */
   bfd_vma max_hole_offset;             /* maximum offset for the hole */
   elf_linker_section_enum_t which;     /* which section this is */
-  boolean hole_written_p;              /* whether the hole has been initialized */
+  bfd_boolean hole_written_p;          /* whether the hole has been initialized */
   unsigned int alignment;              /* alignment for the section */
   flagword flags;                      /* flags to use to create the section */
 } elf_linker_section_t;
@@ -1064,7 +1062,7 @@ typedef struct elf_linker_section_pointers
   bfd_vma offset;                              /* offset of pointer from beginning of section */
   bfd_vma addend;                              /* addend used */
   elf_linker_section_enum_t which;             /* which linker section this is */
-  boolean written_address_p;                   /* whether address was written yet */
+  bfd_boolean written_address_p;               /* whether address was written yet */
 } elf_linker_section_pointers_t;
 
 /* Some private data is stashed away for future use using the tdata pointer
@@ -1115,9 +1113,9 @@ struct elf_obj_tdata
   char* core_program;
   char* core_command;
 
-  /* This is set to true if the object was created by the backend
+  /* This is set to TRUE if the object was created by the backend
      linker.  */
-  boolean linker;
+  bfd_boolean linker;
 
   /* A mapping from external symbols to entries in the linker hash
      table, used when linking.  This is indexed by the symbol index
@@ -1164,7 +1162,7 @@ struct elf_obj_tdata
      this BFD appears to be screwed up.  If it is, we ignore the
      sh_info field in the symbol table header, and always read all the
      symbols.  */
-  boolean bad_symtab;
+  bfd_boolean bad_symtab;
 
   /* Records the result of `get_program_header_size'.  */
   bfd_size_type program_header_size;
@@ -1194,7 +1192,7 @@ struct elf_obj_tdata
   asection *eh_frame_hdr;
 
   /* Used to determine if the e_flags field has been initialized */
-  boolean flags_init;
+  bfd_boolean flags_init;
 
   /* Number of symbol version definitions we are about to emit.  */
   unsigned int cverdefs;
@@ -1279,9 +1277,9 @@ extern Elf_Internal_Sym *bfd_elf_get_elf_syms
   PARAMS ((bfd *, Elf_Internal_Shdr *, size_t, size_t,
           Elf_Internal_Sym *, PTR, Elf_External_Sym_Shndx *));
 
-extern boolean _bfd_elf_copy_private_bfd_data
+extern bfd_boolean _bfd_elf_copy_private_bfd_data
   PARAMS ((bfd *, bfd *));
-extern boolean _bfd_elf_print_private_bfd_data
+extern bfd_boolean _bfd_elf_print_private_bfd_data
   PARAMS ((bfd *, PTR));
 extern void bfd_elf_print_symbol
   PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
@@ -1312,15 +1310,15 @@ extern unsigned long bfd_elf_hash
 
 extern bfd_reloc_status_type bfd_elf_generic_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-extern boolean bfd_elf_mkobject
+extern bfd_boolean bfd_elf_mkobject
   PARAMS ((bfd *));
-extern boolean bfd_elf_mkcorefile
+extern bfd_boolean bfd_elf_mkcorefile
   PARAMS ((bfd *));
 extern Elf_Internal_Shdr *bfd_elf_find_section
   PARAMS ((bfd *, char *));
-extern boolean _bfd_elf_make_section_from_shdr
+extern bfd_boolean _bfd_elf_make_section_from_shdr
   PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
-extern boolean _bfd_elf_make_section_from_phdr
+extern bfd_boolean _bfd_elf_make_section_from_phdr
   PARAMS ((bfd *, Elf_Internal_Phdr *, int, const char *));
 extern struct bfd_hash_entry *_bfd_elf_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
@@ -1330,31 +1328,31 @@ extern void _bfd_elf_link_hash_copy_indirect
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
           struct elf_link_hash_entry *));
 extern void _bfd_elf_link_hash_hide_symbol
-  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean));
-extern boolean _bfd_elf_link_hash_table_init
+  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
+extern bfd_boolean _bfd_elf_link_hash_table_init
   PARAMS ((struct elf_link_hash_table *, bfd *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
                                       const char *)));
-extern boolean _bfd_elf_slurp_version_tables
+extern bfd_boolean _bfd_elf_slurp_version_tables
   PARAMS ((bfd *));
-extern boolean _bfd_elf_merge_sections
+extern bfd_boolean _bfd_elf_merge_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_elf_discard_group
+extern bfd_boolean bfd_elf_discard_group
   PARAMS ((bfd *, struct sec *));
 extern void bfd_elf_set_group_contents
   PARAMS ((bfd *, asection *, PTR));
 extern void _bfd_elf_link_just_syms
   PARAMS ((asection *, struct bfd_link_info *));
-extern boolean _bfd_elf_copy_private_symbol_data
+extern bfd_boolean _bfd_elf_copy_private_symbol_data
   PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
-extern boolean _bfd_elf_copy_private_section_data
+extern bfd_boolean _bfd_elf_copy_private_section_data
   PARAMS ((bfd *, asection *, bfd *, asection *));
-extern boolean _bfd_elf_write_object_contents
+extern bfd_boolean _bfd_elf_write_object_contents
   PARAMS ((bfd *));
-extern boolean _bfd_elf_write_corefile_contents
+extern bfd_boolean _bfd_elf_write_corefile_contents
   PARAMS ((bfd *));
-extern boolean _bfd_elf_set_section_contents
+extern bfd_boolean _bfd_elf_set_section_contents
   PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
 extern long _bfd_elf_get_symtab_upper_bound
   PARAMS ((bfd *));
@@ -1376,31 +1374,31 @@ extern asymbol *_bfd_elf_make_empty_symbol
   PARAMS ((bfd *));
 extern void _bfd_elf_get_symbol_info
   PARAMS ((bfd *, asymbol *, symbol_info *));
-extern boolean _bfd_elf_is_local_label_name
+extern bfd_boolean _bfd_elf_is_local_label_name
   PARAMS ((bfd *, const char *));
 extern alent *_bfd_elf_get_lineno
   PARAMS ((bfd *, asymbol *));
-extern boolean _bfd_elf_set_arch_mach
+extern bfd_boolean _bfd_elf_set_arch_mach
   PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-extern boolean _bfd_elf_find_nearest_line
+extern bfd_boolean _bfd_elf_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *));
 #define _bfd_elf_read_minisymbols _bfd_generic_read_minisymbols
 #define _bfd_elf_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
 extern int _bfd_elf_sizeof_headers
-  PARAMS ((bfd *, boolean));
-extern boolean _bfd_elf_new_section_hook
+  PARAMS ((bfd *, bfd_boolean));
+extern bfd_boolean _bfd_elf_new_section_hook
   PARAMS ((bfd *, asection *));
-extern boolean _bfd_elf_init_reloc_shdr
-  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *, boolean));
+extern bfd_boolean _bfd_elf_init_reloc_shdr
+  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *, bfd_boolean));
 
 /* If the target doesn't have reloc handling written yet:  */
 extern void _bfd_elf_no_info_to_howto
   PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
-extern boolean bfd_section_from_shdr
+extern bfd_boolean bfd_section_from_shdr
   PARAMS ((bfd *, unsigned int shindex));
-extern boolean bfd_section_from_phdr
+extern bfd_boolean bfd_section_from_phdr
   PARAMS ((bfd *, Elf_Internal_Phdr *, int));
 
 extern int _bfd_elf_symbol_from_bfd_symbol
@@ -1410,7 +1408,7 @@ extern asection *bfd_section_from_r_symndx
   PARAMS ((bfd *, struct sym_sec_cache *, asection *, unsigned long));
 extern asection *bfd_section_from_elf_index
   PARAMS ((bfd *, unsigned int));
-extern boolean _bfd_elf_create_dynamic_sections
+extern bfd_boolean _bfd_elf_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 extern struct bfd_strtab_hash *_bfd_elf_stringtab_init
   PARAMS ((void));
@@ -1420,7 +1418,7 @@ extern struct elf_strtab_hash * _bfd_elf_strtab_init
 extern void _bfd_elf_strtab_free
   PARAMS ((struct elf_strtab_hash *));
 extern bfd_size_type _bfd_elf_strtab_add
-  PARAMS ((struct elf_strtab_hash *, const char *, boolean));
+  PARAMS ((struct elf_strtab_hash *, const char *, bfd_boolean));
 extern void _bfd_elf_strtab_addref
   PARAMS ((struct elf_strtab_hash *, bfd_size_type));
 extern void _bfd_elf_strtab_delref
@@ -1431,47 +1429,47 @@ extern bfd_size_type _bfd_elf_strtab_size
   PARAMS ((struct elf_strtab_hash *));
 extern bfd_size_type _bfd_elf_strtab_offset
   PARAMS ((struct elf_strtab_hash *, bfd_size_type));
-extern boolean _bfd_elf_strtab_emit
+extern bfd_boolean _bfd_elf_strtab_emit
   PARAMS ((bfd *, struct elf_strtab_hash *));
 extern void _bfd_elf_strtab_finalize
   PARAMS ((struct elf_strtab_hash *));
 
-extern boolean _bfd_elf_discard_section_eh_frame
+extern bfd_boolean _bfd_elf_discard_section_eh_frame
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
-          boolean (*) (bfd_vma, PTR), struct elf_reloc_cookie *));
-extern boolean _bfd_elf_discard_section_eh_frame_hdr
+          bfd_boolean (*) (bfd_vma, PTR), struct elf_reloc_cookie *));
+extern bfd_boolean _bfd_elf_discard_section_eh_frame_hdr
   PARAMS ((bfd *, struct bfd_link_info *));
 extern bfd_vma _bfd_elf_eh_frame_section_offset
   PARAMS ((bfd *, asection *, bfd_vma));
-extern boolean _bfd_elf_write_section_eh_frame
+extern bfd_boolean _bfd_elf_write_section_eh_frame
   PARAMS ((bfd *, struct bfd_link_info *, asection *, bfd_byte *));
-extern boolean _bfd_elf_write_section_eh_frame_hdr
+extern bfd_boolean _bfd_elf_write_section_eh_frame_hdr
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_elf_maybe_strip_eh_frame_hdr
+extern bfd_boolean _bfd_elf_maybe_strip_eh_frame_hdr
   PARAMS ((struct bfd_link_info *));
 
-extern boolean _bfd_elf_link_record_dynamic_symbol
+extern bfd_boolean _bfd_elf_link_record_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
 extern long _bfd_elf_link_lookup_local_dynindx
   PARAMS ((struct bfd_link_info *, bfd *, long));
-extern boolean _bfd_elf_compute_section_file_positions
+extern bfd_boolean _bfd_elf_compute_section_file_positions
   PARAMS ((bfd *, struct bfd_link_info *));
 extern void _bfd_elf_assign_file_positions_for_relocs
   PARAMS ((bfd *));
 extern file_ptr _bfd_elf_assign_file_position_for_section
-  PARAMS ((Elf_Internal_Shdr *, file_ptr, boolean));
+  PARAMS ((Elf_Internal_Shdr *, file_ptr, bfd_boolean));
 
-extern boolean _bfd_elf_validate_reloc
+extern bfd_boolean _bfd_elf_validate_reloc
   PARAMS ((bfd *, arelent *));
 
-extern boolean _bfd_elf_create_dynamic_sections
+extern bfd_boolean _bfd_elf_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_elf_create_got_section
+extern bfd_boolean _bfd_elf_create_got_section
   PARAMS ((bfd *, struct bfd_link_info *));
 extern unsigned long _bfd_elf_link_renumber_dynsyms
   PARAMS ((bfd *, struct bfd_link_info *));
 
-extern boolean _bfd_elfcore_make_pseudosection
+extern bfd_boolean _bfd_elfcore_make_pseudosection
   PARAMS ((bfd *, char *, size_t, ufile_ptr));
 extern char *_bfd_elfcore_strndup
   PARAMS ((bfd *, char *, size_t));
@@ -1484,25 +1482,25 @@ extern elf_linker_section_pointers_t *_bfd_elf_find_pointer_linker_section
   PARAMS ((elf_linker_section_pointers_t *, bfd_vma,
           elf_linker_section_enum_t));
 
-extern boolean bfd_elf32_create_pointer_linker_section
+extern bfd_boolean bfd_elf32_create_pointer_linker_section
   PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *,
-          struct elf_link_hash_entry *, const Elf32_Internal_Rela *));
+          struct elf_link_hash_entry *, const Elf_Internal_Rela *));
 
 extern bfd_vma bfd_elf32_finish_pointer_linker_section
   PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *,
           struct elf_link_hash_entry *, bfd_vma,
-          const Elf32_Internal_Rela *, int));
+          const Elf_Internal_Rela *, int));
 
-extern boolean bfd_elf64_create_pointer_linker_section
+extern bfd_boolean bfd_elf64_create_pointer_linker_section
   PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *,
-          struct elf_link_hash_entry *, const Elf64_Internal_Rela *));
+          struct elf_link_hash_entry *, const Elf_Internal_Rela *));
 
 extern bfd_vma bfd_elf64_finish_pointer_linker_section
   PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *,
           struct elf_link_hash_entry *, bfd_vma,
-          const Elf64_Internal_Rela *, int));
+          const Elf_Internal_Rela *, int));
 
-extern boolean _bfd_elf_make_linker_section_rela
+extern bfd_boolean _bfd_elf_make_linker_section_rela
   PARAMS ((bfd *, elf_linker_section_t *, int));
 
 extern const bfd_target *bfd_elf32_object_p
@@ -1513,12 +1511,12 @@ extern char *bfd_elf32_core_file_failing_command
   PARAMS ((bfd *));
 extern int bfd_elf32_core_file_failing_signal
   PARAMS ((bfd *));
-extern boolean bfd_elf32_core_file_matches_executable_p
+extern bfd_boolean bfd_elf32_core_file_matches_executable_p
   PARAMS ((bfd *, bfd *));
 
-extern boolean bfd_elf32_bfd_link_add_symbols
+extern bfd_boolean bfd_elf32_bfd_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_elf32_bfd_final_link
+extern bfd_boolean bfd_elf32_bfd_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
 extern void bfd_elf32_swap_symbol_in
@@ -1526,13 +1524,13 @@ extern void bfd_elf32_swap_symbol_in
 extern void bfd_elf32_swap_symbol_out
   PARAMS ((bfd *, const Elf_Internal_Sym *, PTR, PTR));
 extern void bfd_elf32_swap_reloc_in
-  PARAMS ((bfd *, const Elf32_External_Rel *, Elf_Internal_Rel *));
+  PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
 extern void bfd_elf32_swap_reloc_out
-  PARAMS ((bfd *, const Elf_Internal_Rel *, Elf32_External_Rel *));
+  PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
 extern void bfd_elf32_swap_reloca_in
-  PARAMS ((bfd *, const Elf32_External_Rela *, Elf_Internal_Rela *));
+  PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
 extern void bfd_elf32_swap_reloca_out
-  PARAMS ((bfd *, const Elf_Internal_Rela *, Elf32_External_Rela *));
+  PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
 extern void bfd_elf32_swap_phdr_in
   PARAMS ((bfd *, const Elf32_External_Phdr *, Elf_Internal_Phdr *));
 extern void bfd_elf32_swap_phdr_out
@@ -1542,21 +1540,21 @@ extern void bfd_elf32_swap_dyn_in
 extern void bfd_elf32_swap_dyn_out
   PARAMS ((bfd *, const Elf_Internal_Dyn *, PTR));
 extern long bfd_elf32_slurp_symbol_table
-  PARAMS ((bfd *, asymbol **, boolean));
-extern boolean bfd_elf32_write_shdrs_and_ehdr
+  PARAMS ((bfd *, asymbol **, bfd_boolean));
+extern bfd_boolean bfd_elf32_write_shdrs_and_ehdr
   PARAMS ((bfd *));
 extern int bfd_elf32_write_out_phdrs
   PARAMS ((bfd *, const Elf_Internal_Phdr *, unsigned int));
 extern void bfd_elf32_write_relocs
   PARAMS ((bfd *, asection *, PTR));
-extern boolean bfd_elf32_slurp_reloc_table
-  PARAMS ((bfd *, asection *, asymbol **, boolean));
-extern boolean bfd_elf32_add_dynamic_entry
+extern bfd_boolean bfd_elf32_slurp_reloc_table
+  PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
+extern bfd_boolean bfd_elf32_add_dynamic_entry
   PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma));
-extern boolean bfd_elf32_link_create_dynamic_sections
+extern bfd_boolean bfd_elf32_link_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 extern Elf_Internal_Rela *_bfd_elf32_link_read_relocs
-  PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, boolean));
+  PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, bfd_boolean));
 
 extern const bfd_target *bfd_elf64_object_p
   PARAMS ((bfd *));
@@ -1566,11 +1564,11 @@ extern char *bfd_elf64_core_file_failing_command
   PARAMS ((bfd *));
 extern int bfd_elf64_core_file_failing_signal
   PARAMS ((bfd *));
-extern boolean bfd_elf64_core_file_matches_executable_p
+extern bfd_boolean bfd_elf64_core_file_matches_executable_p
   PARAMS ((bfd *, bfd *));
-extern boolean bfd_elf64_bfd_link_add_symbols
+extern bfd_boolean bfd_elf64_bfd_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean bfd_elf64_bfd_final_link
+extern bfd_boolean bfd_elf64_bfd_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
 extern void bfd_elf64_swap_symbol_in
@@ -1578,13 +1576,13 @@ extern void bfd_elf64_swap_symbol_in
 extern void bfd_elf64_swap_symbol_out
   PARAMS ((bfd *, const Elf_Internal_Sym *, PTR, PTR));
 extern void bfd_elf64_swap_reloc_in
-  PARAMS ((bfd *, const Elf64_External_Rel *, Elf_Internal_Rel *));
+  PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
 extern void bfd_elf64_swap_reloc_out
-  PARAMS ((bfd *, const Elf_Internal_Rel *, Elf64_External_Rel *));
+  PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
 extern void bfd_elf64_swap_reloca_in
-  PARAMS ((bfd *, const Elf64_External_Rela *, Elf_Internal_Rela *));
+  PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
 extern void bfd_elf64_swap_reloca_out
-  PARAMS ((bfd *, const Elf_Internal_Rela *, Elf64_External_Rela *));
+  PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
 extern void bfd_elf64_swap_phdr_in
   PARAMS ((bfd *, const Elf64_External_Phdr *, Elf_Internal_Phdr *));
 extern void bfd_elf64_swap_phdr_out
@@ -1594,21 +1592,21 @@ extern void bfd_elf64_swap_dyn_in
 extern void bfd_elf64_swap_dyn_out
   PARAMS ((bfd *, const Elf_Internal_Dyn *, PTR));
 extern long bfd_elf64_slurp_symbol_table
-  PARAMS ((bfd *, asymbol **, boolean));
-extern boolean bfd_elf64_write_shdrs_and_ehdr
+  PARAMS ((bfd *, asymbol **, bfd_boolean));
+extern bfd_boolean bfd_elf64_write_shdrs_and_ehdr
   PARAMS ((bfd *));
 extern int bfd_elf64_write_out_phdrs
   PARAMS ((bfd *, const Elf_Internal_Phdr *, unsigned int));
 extern void bfd_elf64_write_relocs
   PARAMS ((bfd *, asection *, PTR));
-extern boolean bfd_elf64_slurp_reloc_table
-  PARAMS ((bfd *, asection *, asymbol **, boolean));
-extern boolean bfd_elf64_add_dynamic_entry
+extern bfd_boolean bfd_elf64_slurp_reloc_table
+  PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
+extern bfd_boolean bfd_elf64_add_dynamic_entry
   PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma));
-extern boolean bfd_elf64_link_create_dynamic_sections
+extern bfd_boolean bfd_elf64_link_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 extern Elf_Internal_Rela *_bfd_elf64_link_read_relocs
-  PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, boolean));
+  PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, bfd_boolean));
 
 #define bfd_elf32_link_record_dynamic_symbol \
   _bfd_elf_link_record_dynamic_symbol
@@ -1622,37 +1620,37 @@ extern int elf_link_record_local_dynamic_symbol
 #define _bfd_elf64_link_record_local_dynamic_symbol \
   elf_link_record_local_dynamic_symbol
 
-extern boolean _bfd_elf_close_and_cleanup
+extern bfd_boolean _bfd_elf_close_and_cleanup
   PARAMS ((bfd *));
 extern bfd_reloc_status_type _bfd_elf_rel_vtable_reloc_fn
   PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR,
            asection *, bfd *, char **));
 
-extern boolean _bfd_elf32_gc_sections
+extern bfd_boolean _bfd_elf32_gc_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_elf32_gc_common_finalize_got_offsets
+extern bfd_boolean _bfd_elf32_gc_common_finalize_got_offsets
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_elf32_gc_common_final_link
+extern bfd_boolean _bfd_elf32_gc_common_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_elf32_gc_record_vtinherit
+extern bfd_boolean _bfd_elf32_gc_record_vtinherit
   PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma));
-extern boolean _bfd_elf32_gc_record_vtentry
+extern bfd_boolean _bfd_elf32_gc_record_vtentry
   PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma));
 
-extern boolean _bfd_elf64_gc_sections
+extern bfd_boolean _bfd_elf64_gc_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_elf64_gc_common_finalize_got_offsets
+extern bfd_boolean _bfd_elf64_gc_common_finalize_got_offsets
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_elf64_gc_common_final_link
+extern bfd_boolean _bfd_elf64_gc_common_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_elf64_gc_record_vtinherit
+extern bfd_boolean _bfd_elf64_gc_record_vtinherit
   PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma));
-extern boolean _bfd_elf64_gc_record_vtentry
+extern bfd_boolean _bfd_elf64_gc_record_vtentry
   PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma));
 
-extern boolean _bfd_elf32_reloc_symbol_deleted_p
+extern bfd_boolean _bfd_elf32_reloc_symbol_deleted_p
   PARAMS ((bfd_vma, PTR));
-extern boolean _bfd_elf64_reloc_symbol_deleted_p
+extern bfd_boolean _bfd_elf64_reloc_symbol_deleted_p
   PARAMS ((bfd_vma, PTR));
 
 /* Exported interface for writing elf corefile notes. */
@@ -1673,7 +1671,7 @@ extern char *elfcore_write_lwpstatus
 
 /* SH ELF specific routine.  */
 
-extern boolean _sh_elf_set_mach_from_flags
+extern bfd_boolean _sh_elf_set_mach_from_flags
   PARAMS ((bfd *));
 
 #endif /* _LIBELF_H_ */
index fa152abd9af71e3d8bf29273c359ffacd156446b..7c126743d94df1a4e03ba7efc22fac3b5faf305e 100644 (file)
@@ -161,7 +161,7 @@ read_value (abfd, buf, width)
 
   return value;
 }
-    
+
 /* Store a width sized value to memory.  */
 
 static void
@@ -210,16 +210,16 @@ int cie_compare (c1, c2)
 
 /* This function is called for each input file before the .eh_frame
    section is relocated.  It discards duplicate CIEs and FDEs for discarded
-   functions.  The function returns true iff any entries have been
+   functions.  The function returns TRUE iff any entries have been
    deleted.  */
 
-boolean
+bfd_boolean
 _bfd_elf_discard_section_eh_frame (abfd, info, sec,
                                   reloc_symbol_deleted_p, cookie)
      bfd *abfd;
      struct bfd_link_info *info;
      asection *sec;
-     boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR));
+     bfd_boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR));
      struct elf_reloc_cookie *cookie;
 {
   bfd_byte *ehbuf = NULL, *buf;
@@ -238,7 +238,7 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec,
   if (sec->_raw_size == 0)
     {
       /* This file does not contain .eh_frame information.  */
-      return false;
+      return FALSE;
     }
 
   if ((sec->output_section != NULL
@@ -246,7 +246,7 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec,
     {
       /* At least one of the sections is being discarded from the
          link, so we should just ignore them.  */
-      return false;
+      return FALSE;
     }
 
   htab = elf_hash_table (info);
@@ -268,7 +268,7 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec,
     {
       /* Empty .eh_frame section.  */
       free (ehbuf);
-      return false;
+      return FALSE;
     }
 
   /* If .eh_frame section size doesn't fit into int, we cannot handle
@@ -295,7 +295,8 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec,
 #define ENSURE_NO_RELOCS(buf)                          \
   if (cookie->rel < cookie->relend                     \
       && (cookie->rel->r_offset                                \
-         < (bfd_size_type) ((buf) - ehbuf)))           \
+         < (bfd_size_type) ((buf) - ehbuf))            \
+      && cookie->rel->r_info != 0)                     \
     goto free_no_table
 
 #define SKIP_RELOCS(buf)                               \
@@ -378,11 +379,12 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec,
          /* CIE  */
          if (last_cie != NULL)
            {
-             /* Now check if this CIE is identical to last CIE, in which case
-                we can remove it, provided we adjust all FDEs.
-                Also, it can be removed if we have removed all FDEs using
-                that. */
-             if (cie_compare (&cie, &hdr_info->last_cie) == 0
+             /* Now check if this CIE is identical to the last CIE,
+                in which case we can remove it provided we adjust
+                all FDEs.  Also, it can be removed if we have removed
+                all FDEs using it.  */
+             if ((!info->relocateable
+                  && cie_compare (&cie, &hdr_info->last_cie) == 0)
                  || cie_usage_count == 0)
                {
                  new_size -= cie.hdr.length + 4;
@@ -560,7 +562,7 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec,
            goto free_no_table;
          if ((*reloc_symbol_deleted_p) (buf - ehbuf, cookie))
            {
-             /* This is a FDE against discarded section, it should
+             /* This is a FDE against a discarded section.  It should
                 be deleted.  */
              new_size -= hdr.length + 4;
              sec_info->entry[sec_info->count].removed = 1;
@@ -572,11 +574,11 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec,
                       && cie.make_relative == 0)
                      || (cie.fde_encoding & 0xf0) == DW_EH_PE_aligned))
                {
-                 /* If shared library uses absolute pointers
+                 /* If shared library uses absolute pointers
                     which we cannot turn into PC relative,
                     don't create the binary search table,
                     since it is affected by runtime relocations.  */
-                 hdr_info->table = false;
+                 hdr_info->table = FALSE;
                }
              cie_usage_count++;
              hdr_info->fde_count++;
@@ -661,16 +663,16 @@ free_no_table:
     free (ehbuf);
   if (sec_info)
     free (sec_info);
-  hdr_info->table = false;
+  hdr_info->table = FALSE;
   hdr_info->last_cie.hdr.length = 0;
-  return false;
+  return FALSE;
 }
 
 /* This function is called for .eh_frame_hdr section after
    _bfd_elf_discard_section_eh_frame has been called on all .eh_frame
    input sections.  It finalizes the size of .eh_frame_hdr section.  */
 
-boolean
+bfd_boolean
 _bfd_elf_discard_section_eh_frame_hdr (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -683,7 +685,7 @@ _bfd_elf_discard_section_eh_frame_hdr (abfd, info)
   hdr_info = &htab->eh_info;
   sec = hdr_info->hdr_sec;
   if (sec == NULL)
-    return false;
+    return FALSE;
 
   sec->_cooked_size = EH_FRAME_HDR_SIZE;
   if (hdr_info->table)
@@ -692,7 +694,7 @@ _bfd_elf_discard_section_eh_frame_hdr (abfd, info)
   /* Request program headers to be recalculated.  */
   elf_tdata (abfd)->program_header_size = 0;
   elf_tdata (abfd)->eh_frame_hdr = sec;
-  return true;
+  return TRUE;
 }
 
 /* This function is called from size_dynamic_sections.
@@ -700,7 +702,7 @@ _bfd_elf_discard_section_eh_frame_hdr (abfd, info)
    because later on it is too late for calling _bfd_strip_section_from_output,
    since dynamic symbol table has been sized.  */
 
-boolean
+bfd_boolean
 _bfd_elf_maybe_strip_eh_frame_hdr (info)
      struct bfd_link_info *info;
 {
@@ -712,12 +714,12 @@ _bfd_elf_maybe_strip_eh_frame_hdr (info)
   htab = elf_hash_table (info);
   hdr_info = &htab->eh_info;
   if (hdr_info->hdr_sec == NULL)
-    return true;
+    return TRUE;
 
   if (bfd_is_abs_section (hdr_info->hdr_sec->output_section))
     {
       hdr_info->hdr_sec = NULL;
-      return true;
+      return TRUE;
     }
 
   abfd = NULL;
@@ -735,11 +737,11 @@ _bfd_elf_maybe_strip_eh_frame_hdr (info)
     {
       _bfd_strip_section_from_output (info, hdr_info->hdr_sec);
       hdr_info->hdr_sec = NULL;
-      return true;
+      return TRUE;
     }
 
-  hdr_info->table = true;
-  return true;
+  hdr_info->table = TRUE;
+  return TRUE;
 }
 
 /* Adjust an address in the .eh_frame section.  Given OFFSET within
@@ -807,7 +809,7 @@ _bfd_elf_eh_frame_section_offset (output_bfd, sec, offset)
 /* Write out .eh_frame section.  This is called with the relocated
    contents.  */
 
-boolean
+bfd_boolean
 _bfd_elf_write_section_eh_frame (abfd, info, sec, contents)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -952,7 +954,7 @@ _bfd_elf_write_section_eh_frame (abfd, info, sec, contents)
          unsigned int width;
 
          buf = contents + sec_info->entry[i].offset;
-         /* Skip length.  */   
+         /* Skip length.  */
          buf += 4;
          bfd_put_32 (abfd,
                      sec_info->entry[i].new_offset + 4 - cie_offset, buf);
@@ -1086,7 +1088,7 @@ vma_compare (a, b)
                                 FDE initial_location field and FDE address,
                                 sorted by increasing initial_loc)  */
 
-boolean
+bfd_boolean
 _bfd_elf_write_section_eh_frame_hdr (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1102,18 +1104,18 @@ _bfd_elf_write_section_eh_frame_hdr (abfd, info)
   hdr_info = &htab->eh_info;
   sec = hdr_info->hdr_sec;
   if (sec == NULL)
-    return true;
+    return TRUE;
 
   size = EH_FRAME_HDR_SIZE;
   if (hdr_info->array && hdr_info->array_count == hdr_info->fde_count)
     size += 4 + hdr_info->fde_count * 8;
   contents = bfd_malloc (size);
   if (contents == NULL)
-    return false;
+    return FALSE;
 
   eh_frame_sec = bfd_get_section_by_name (abfd, ".eh_frame");
   if (eh_frame_sec == NULL)
-    return false;
+    return FALSE;
 
   memset (contents, 0, EH_FRAME_HDR_SIZE);
   contents[0] = 1;                             /* Version  */
index 263e9ac5033a4e2035373fa753535e56225237db..5e4458c1170666da7dde058697f6a35ca1e6ba46 100644 (file)
@@ -28,7 +28,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #if ARCH_SIZE == 64
 #define ELF_R_TYPE(X)   ELF64_R_TYPE(X)
 #define ELF_R_SYM(X)   ELF64_R_SYM(X)
-#define elf_hppa_internal_shdr Elf64_Internal_Shdr
 #define elf_hppa_reloc_final_type elf64_hppa_reloc_final_type
 #define _bfd_elf_hppa_gen_reloc_type _bfd_elf64_hppa_gen_reloc_type
 #define elf_hppa_relocate_section elf64_hppa_relocate_section
@@ -38,7 +37,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #if ARCH_SIZE == 32
 #define ELF_R_TYPE(X)   ELF32_R_TYPE(X)
 #define ELF_R_SYM(X)   ELF32_R_SYM(X)
-#define elf_hppa_internal_shdr Elf32_Internal_Shdr
 #define elf_hppa_reloc_final_type elf32_hppa_reloc_final_type
 #define _bfd_elf_hppa_gen_reloc_type _bfd_elf32_hppa_gen_reloc_type
 #define elf_hppa_relocate_section elf32_hppa_relocate_section
@@ -50,47 +48,47 @@ static void elf_hppa_info_to_howto
   PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
 static void elf_hppa_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
 static reloc_howto_type * elf_hppa_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 
-static boolean elf_hppa_is_local_label_name
+static bfd_boolean elf_hppa_is_local_label_name
   PARAMS ((bfd *, const char *));
 
-static boolean elf_hppa_fake_sections
-  PARAMS ((bfd *abfd, elf_hppa_internal_shdr *, asection *));
+static bfd_boolean elf_hppa_fake_sections
+  PARAMS ((bfd *abfd, Elf_Internal_Shdr *, asection *));
 
 static void elf_hppa_final_write_processing
-  PARAMS ((bfd *, boolean));
+  PARAMS ((bfd *, bfd_boolean));
 
 static int hppa_unwind_entry_compare
   PARAMS ((const PTR, const PTR));
 
-static boolean elf_hppa_sort_unwind
+static bfd_boolean elf_hppa_sort_unwind
   PARAMS ((bfd *));
 
 #if ARCH_SIZE == 64
-static boolean elf_hppa_add_symbol_hook
+static bfd_boolean elf_hppa_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
 
-static boolean elf_hppa_unmark_useless_dynamic_symbols
+static bfd_boolean elf_hppa_unmark_useless_dynamic_symbols
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean elf_hppa_remark_useless_dynamic_symbols
+static bfd_boolean elf_hppa_remark_useless_dynamic_symbols
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean elf_hppa_is_dynamic_loader_symbol
+static bfd_boolean elf_hppa_is_dynamic_loader_symbol
   PARAMS ((const char *));
 
 static void elf_hppa_record_segment_addrs
   PARAMS ((bfd *, asection *, PTR));
 
-static boolean elf_hppa_final_link
+static bfd_boolean elf_hppa_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
-static boolean elf_hppa_relocate_section
+static bfd_boolean elf_hppa_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
           bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 
@@ -108,506 +106,506 @@ static int elf_hppa_relocate_insn
 
 static reloc_howto_type elf_hppa_howto_table[ELF_HOWTO_TABLE_SIZE] =
 {
-  { R_PARISC_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_NONE", false, 0, 0, false },
+  { R_PARISC_NONE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_NONE", FALSE, 0, 0, FALSE },
 
   /* The values in DIR32 are to placate the check in
      _bfd_stab_section_find_nearest_line.  */
-  { R_PARISC_DIR32, 0, 2, 32, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR32", false, 0, 0xffffffff, false },
-  { R_PARISC_DIR21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR21L", false, 0, 0, false },
-  { R_PARISC_DIR17R, 0, 0, 17, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR17R", false, 0, 0, false },
-  { R_PARISC_DIR17F, 0, 0, 17, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR17F", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DIR14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR14R", false, 0, 0, false },
-  { R_PARISC_DIR14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR14F", false, 0, 0, false },
+  { R_PARISC_DIR32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR32", FALSE, 0, 0xffffffff, FALSE },
+  { R_PARISC_DIR21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_DIR17R, 0, 0, 17, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR17R", FALSE, 0, 0, FALSE },
+  { R_PARISC_DIR17F, 0, 0, 17, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR17F", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DIR14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_DIR14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR14F", FALSE, 0, 0, FALSE },
   /* 8 */
-  { R_PARISC_PCREL12F, 0, 0, 12, true, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL12F", false, 0, 0, false },
-  { R_PARISC_PCREL32, 0, 0, 32, true, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL32", false, 0, 0, false },
-  { R_PARISC_PCREL21L, 0, 0, 21, true, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL21L", false, 0, 0, false },
-  { R_PARISC_PCREL17R, 0, 0, 17, true, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL17R", false, 0, 0, false },
-  { R_PARISC_PCREL17F, 0, 0, 17, true, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL17F", false, 0, 0, false },
-  { R_PARISC_PCREL17C, 0, 0, 17, true, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL17C", false, 0, 0, false },
-  { R_PARISC_PCREL14R, 0, 0, 14, true, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL14R", false, 0, 0, false },
-  { R_PARISC_PCREL14F, 0, 0, 14, true, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL14F", false, 0, 0, false },
+  { R_PARISC_PCREL12F, 0, 0, 12, TRUE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL12F", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL32, 0, 0, 32, TRUE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL32", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL21L, 0, 0, 21, TRUE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL17R, 0, 0, 17, TRUE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL17R", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL17F, 0, 0, 17, TRUE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL17F", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL17C, 0, 0, 17, TRUE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL17C", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL14R, 0, 0, 14, TRUE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL14F, 0, 0, 14, TRUE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL14F", FALSE, 0, 0, FALSE },
   /* 16 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DPREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DPREL21L", false, 0, 0, false },
-  { R_PARISC_DPREL14WR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DPREL14WR", false, 0, 0, false },
-  { R_PARISC_DPREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DPREL14DR", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DPREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DPREL14R", false, 0, 0, false },
-  { R_PARISC_DPREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DPREL14F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DPREL21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_DPREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_DPREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DPREL14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_DPREL14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DPREL14F", FALSE, 0, 0, FALSE },
   /* 24 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DLTREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTREL21L", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DLTREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTREL14R", false, 0, 0, false },
-  { R_PARISC_DLTREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTREL14F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTREL21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTREL14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTREL14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL14F", FALSE, 0, 0, FALSE },
   /* 32 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DLTIND21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTIND21L", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DLTIND14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTIND14R", false, 0, 0, false },
-  { R_PARISC_DLTIND14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTIND14F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTIND21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTIND14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTIND14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND14F", FALSE, 0, 0, FALSE },
   /* 40 */
-  { R_PARISC_SETBASE, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_SETBASE", false, 0, 0, false },
-  { R_PARISC_SECREL32, 0, 0, 32, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_SECREL32", false, 0, 0, false },
-  { R_PARISC_BASEREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_BASEREL21L", false, 0, 0, false },
-  { R_PARISC_BASEREL17R, 0, 0, 17, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_BASEREL17R", false, 0, 0, false },
-  { R_PARISC_BASEREL17F, 0, 0, 17, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_BASEREL17F", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_BASEREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_BASEREL14R", false, 0, 0, false },
-  { R_PARISC_BASEREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_BASEREL14F", false, 0, 0, false },
+  { R_PARISC_SETBASE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SETBASE", FALSE, 0, 0, FALSE },
+  { R_PARISC_SECREL32, 0, 0, 32, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SECREL32", FALSE, 0, 0, FALSE },
+  { R_PARISC_BASEREL21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_BASEREL17R, 0, 0, 17, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL17R", FALSE, 0, 0, FALSE },
+  { R_PARISC_BASEREL17F, 0, 0, 17, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL17F", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_BASEREL14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_BASEREL14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL14F", FALSE, 0, 0, FALSE },
   /* 48 */
-  { R_PARISC_SEGBASE, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_SEGBASE", false, 0, 0, false },
-  { R_PARISC_SEGREL32, 0, 0, 32, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_SEGREL32", false, 0, 0, false },
-  { R_PARISC_PLTOFF21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLTOFF21L", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_PLTOFF14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14R", false, 0, 0, false },
-  { R_PARISC_PLTOFF14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14F", false, 0, 0, false },
+  { R_PARISC_SEGBASE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SEGBASE", FALSE, 0, 0, FALSE },
+  { R_PARISC_SEGREL32, 0, 0, 32, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SEGREL32", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLTOFF21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLTOFF14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLTOFF14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14F", FALSE, 0, 0, FALSE },
   /* 56 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_LTOFF_FPTR32, 0, 0, 32, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR32", false, 0, 0, false },
-  { R_PARISC_LTOFF_FPTR21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR21L", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_LTOFF_FPTR14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14R", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_FPTR32, 0, 0, 32, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR32", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_FPTR21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_FPTR14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 64 */
-  { R_PARISC_FPTR64, 0, 0, 64, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_FPTR64", false, 0, 0, false },
-  { R_PARISC_PLABEL32, 0, 0, 32, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLABEL32", false, 0, 0, false },
-  { R_PARISC_PLABEL21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLABEL21L", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_PLABEL14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLABEL14R", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_FPTR64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_FPTR64", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLABEL32, 0, 0, 32, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLABEL32", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLABEL21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLABEL21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLABEL14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLABEL14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 72 */
-  { R_PARISC_PCREL64, 0, 0, 64, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL64", false, 0, 0, false },
-  { R_PARISC_PCREL22C, 0, 0, 22, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL22C", false, 0, 0, false },
-  { R_PARISC_PCREL22F, 0, 0, 22, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL22F", false, 0, 0, false },
-  { R_PARISC_PCREL14WR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL14WR", false, 0, 0, false },
-  { R_PARISC_PCREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL14DR", false, 0, 0, false },
-  { R_PARISC_PCREL16F, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL16F", false, 0, 0, false },
-  { R_PARISC_PCREL16WF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL16WF", false, 0, 0, false },
-  { R_PARISC_PCREL16DF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PCREL16DF", false, 0, 0, false },
+  { R_PARISC_PCREL64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL64", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL22C, 0, 0, 22, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL22C", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL22F, 0, 0, 22, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL22F", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL16F", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL16WF", FALSE, 0, 0, FALSE },
+  { R_PARISC_PCREL16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PCREL16DF", FALSE, 0, 0, FALSE },
   /* 80 */
-  { R_PARISC_DIR64, 0, 0, 64, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR64", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DIR14WR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR14WR", false, 0, 0, false },
-  { R_PARISC_DIR14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR14DR", false, 0, 0, false },
-  { R_PARISC_DIR16F, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR16F", false, 0, 0, false },
-  { R_PARISC_DIR16WF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR16WF", false, 0, 0, false },
-  { R_PARISC_DIR16DF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DIR16DF", false, 0, 0, false },
+  { R_PARISC_DIR64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR64", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DIR14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_DIR14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_DIR16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR16F", FALSE, 0, 0, FALSE },
+  { R_PARISC_DIR16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR16WF", FALSE, 0, 0, FALSE },
+  { R_PARISC_DIR16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DIR16DF", FALSE, 0, 0, FALSE },
   /* 88 */
-  { R_PARISC_GPREL64, 0, 0, 64, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_GPREL64", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DLTREL14WR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTREL14WR", false, 0, 0, false },
-  { R_PARISC_DLTREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTREL14DR", false, 0, 0, false },
-  { R_PARISC_GPREL16F, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_GPREL16F", false, 0, 0, false },
-  { R_PARISC_GPREL16WF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_GPREL16WF", false, 0, 0, false },
-  { R_PARISC_GPREL16DF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_GPREL16DF", false, 0, 0, false },
+  { R_PARISC_GPREL64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_GPREL64", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTREL14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_GPREL16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_GPREL16F", FALSE, 0, 0, FALSE },
+  { R_PARISC_GPREL16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_GPREL16WF", FALSE, 0, 0, FALSE },
+  { R_PARISC_GPREL16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_GPREL16DF", FALSE, 0, 0, FALSE },
   /* 96 */
-  { R_PARISC_LTOFF64, 0, 0, 64, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF64", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_DLTIND14WR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTIND14WR", false, 0, 0, false },
-  { R_PARISC_DLTIND14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_DLTIND14DR", false, 0, 0, false },
-  { R_PARISC_LTOFF16F, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF16F", false, 0, 0, false },
-  { R_PARISC_LTOFF16WF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", false, 0, 0, false },
-  { R_PARISC_LTOFF16DF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", false, 0, 0, false },
+  { R_PARISC_LTOFF64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF64", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTIND14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_DLTIND14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_DLTIND14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF16F", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", FALSE, 0, 0, FALSE },
   /* 104 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_BASEREL14WR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_BASEREL14WR", false, 0, 0, false },
-  { R_PARISC_BASEREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_BASEREL14DR", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_BASEREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_BASEREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_BASEREL14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 112 */
-  { R_PARISC_SEGREL64, 0, 0, 64, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_SEGREL64", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_PLTOFF14WR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14WR", false, 0, 0, false },
-  { R_PARISC_PLTOFF14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14DR", false, 0, 0, false },
-  { R_PARISC_PLTOFF16F, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLTOFF16F", false, 0, 0, false },
-  { R_PARISC_PLTOFF16WF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLTOFF16WF", false, 0, 0, false },
-  { R_PARISC_PLTOFF16DF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_PLTOFF16DF", false, 0, 0, false },
+  { R_PARISC_SEGREL64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_SEGREL64", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLTOFF14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLTOFF14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLTOFF16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF16F", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLTOFF16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF16WF", FALSE, 0, 0, FALSE },
+  { R_PARISC_PLTOFF16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_PLTOFF16DF", FALSE, 0, 0, FALSE },
   /* 120 */
-  { R_PARISC_LTOFF_FPTR64, 0, 0, 64, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_LTOFF_FPTR14WR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14WR", false, 0, 0, false },
-  { R_PARISC_LTOFF_FPTR14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14DR", false, 0, 0, false },
-  { R_PARISC_LTOFF_FPTR16F, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16F", false, 0, 0, false },
-  { R_PARISC_LTOFF_FPTR16WF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16WF", false, 0, 0, false },
-  { R_PARISC_LTOFF_FPTR16DF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_LTOFF_FPTR64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_FPTR14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_FPTR14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_FPTR16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16F", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_FPTR16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16WF", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_FPTR16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 128 */
-  { R_PARISC_COPY, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_COPY", false, 0, 0, false },
-  { R_PARISC_IPLT, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_IPLT", false, 0, 0, false },
-  { R_PARISC_EPLT, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_EPLT", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_COPY, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_COPY", FALSE, 0, 0, FALSE },
+  { R_PARISC_IPLT, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_IPLT", FALSE, 0, 0, FALSE },
+  { R_PARISC_EPLT, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_EPLT", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 136 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 144 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 152 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_TPREL32, 0, 0, 32, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_TPREL32", false, 0, 0, false },
-  { R_PARISC_TPREL21L, 0, 0, 21, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_TPREL21L", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_TPREL14R, 0, 0, 14, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_TPREL14R", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_TPREL32, 0, 0, 32, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL32", FALSE, 0, 0, FALSE },
+  { R_PARISC_TPREL21L, 0, 0, 21, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_TPREL14R, 0, 0, 14, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL14R", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 160 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_LTOFF_TP21L, 0, 0, 21, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP21L", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_LTOFF_TP14R, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_LTOFF_TP14F, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14F", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_TP21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP21L", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_TP14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_TP14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14F", FALSE, 0, 0, FALSE },
   /* 168 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 176 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 184 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 192 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 200 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 208 */
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
   /* 216 */
-  { R_PARISC_TPREL64, 0, 0, 64, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_TPREL64", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_TPREL14WR, 0, 0, 14, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_TPREL14WR", false, 0, 0, false },
-  { R_PARISC_TPREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_TPREL14DR", false, 0, 0, false },
-  { R_PARISC_TPREL16F, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_TPREL16F", false, 0, 0, false },
-  { R_PARISC_TPREL16WF, 0, 0, 16, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_TPREL16WF", false, 0, 0, false },
-  { R_PARISC_TPREL16DF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_TPREL16DF", false, 0, 0, false },
+  { R_PARISC_TPREL64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL64", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_TPREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_TPREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_TPREL16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL16F", FALSE, 0, 0, FALSE },
+  { R_PARISC_TPREL16WF, 0, 0, 16, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL16WF", FALSE, 0, 0, FALSE },
+  { R_PARISC_TPREL16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_TPREL16DF", FALSE, 0, 0, FALSE },
   /* 224 */
-  { R_PARISC_LTOFF_TP64, 0, 0, 64, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP64", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false },
-  { R_PARISC_LTOFF_TP14WR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14WR", false, 0, 0, false },
-  { R_PARISC_LTOFF_TP14DR, 0, 0, 14, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14DR", false, 0, 0, false },
-  { R_PARISC_LTOFF_TP16F, 0, 0, 16, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16F", false, 0, 0, false },
-  { R_PARISC_LTOFF_TP16WF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16WF", false, 0, 0, false },
-  { R_PARISC_LTOFF_TP16DF, 0, 0, 16, false, 0, complain_overflow_bitfield,
-    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16DF", false, 0, 0, false },
+  { R_PARISC_LTOFF_TP64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP64", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_TP14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14WR", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_TP14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14DR", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_TP16F, 0, 0, 16, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16F", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_TP16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16WF", FALSE, 0, 0, FALSE },
+  { R_PARISC_LTOFF_TP16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield,
+    bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16DF", FALSE, 0, 0, FALSE },
   /* 232 */
-  { R_PARISC_GNU_VTENTRY, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_GNU_VTENTRY", false, 0, 0, false },
-  { R_PARISC_GNU_VTINHERIT, 0, 0, 0, false, 0, complain_overflow_dont,
-    bfd_elf_generic_reloc, "R_PARISC_GNU_VTINHERIT", false, 0, 0, false },
+  { R_PARISC_GNU_VTENTRY, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_GNU_VTENTRY", FALSE, 0, 0, FALSE },
+  { R_PARISC_GNU_VTINHERIT, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+    bfd_elf_generic_reloc, "R_PARISC_GNU_VTINHERIT", FALSE, 0, 0, FALSE },
 };
 
 #define OFFSET_14R_FROM_21L 4
@@ -937,7 +935,7 @@ static void
 elf_hppa_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     Elf_Internal_Rel *elf_reloc;
+     Elf_Internal_Rela *elf_reloc;
 {
   BFD_ASSERT (ELF_R_TYPE(elf_reloc->r_info)
              < (unsigned int) R_PARISC_UNIMPLEMENTED);
@@ -960,9 +958,9 @@ elf_hppa_reloc_type_lookup (abfd, code)
   return NULL;
 }
 
-/* Return true if SYM represents a local label symbol.  */
+/* Return TRUE if SYM represents a local label symbol.  */
 
-static boolean
+static bfd_boolean
 elf_hppa_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
@@ -975,10 +973,10 @@ elf_hppa_is_local_label_name (abfd, name)
 /* Set the correct type for an ELF section.  We do this by the
    section name, which is a hack, but ought to work.  */
 
-static boolean
+static bfd_boolean
 elf_hppa_fake_sections (abfd, hdr, sec)
      bfd *abfd;
-     elf_hppa_internal_shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      asection *sec;
 {
   register const char *name;
@@ -1015,13 +1013,13 @@ elf_hppa_fake_sections (abfd, hdr, sec)
       /* I have no idea if this is really necessary or what it means.  */
       hdr->sh_entsize = 4;
     }
-  return true;
+  return TRUE;
 }
 
 static void
 elf_hppa_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   int mach = bfd_get_mach (abfd);
 
@@ -1072,7 +1070,7 @@ hppa_unwind_entry_compare (a, b)
   return av < bv ? -1 : av > bv ? 1 : 0;
 }
 
-static boolean elf_hppa_sort_unwind (abfd)
+static bfd_boolean elf_hppa_sort_unwind (abfd)
      bfd *abfd;
 {
   asection *s;
@@ -1090,18 +1088,18 @@ static boolean elf_hppa_sort_unwind (abfd)
       size = s->_raw_size;
       contents = bfd_malloc (size);
       if (contents == NULL)
-       return false;
+       return FALSE;
 
       if (! bfd_get_section_contents (abfd, s, contents, (file_ptr) 0, size))
-       return false;
+       return FALSE;
 
       qsort (contents, (size_t) (size / 16), 16, hppa_unwind_entry_compare);
 
       if (! bfd_set_section_contents (abfd, s, contents, (file_ptr) 0, size))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 #if ARCH_SIZE == 64
@@ -1109,7 +1107,7 @@ static boolean elf_hppa_sort_unwind (abfd)
    file.  HP's libraries define symbols with HP specific section
    indices, which we have to handle.  */
 
-static boolean
+static bfd_boolean
 elf_hppa_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1136,10 +1134,10 @@ elf_hppa_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       break;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf_hppa_unmark_useless_dynamic_symbols (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -1172,10 +1170,10 @@ elf_hppa_unmark_useless_dynamic_symbols (h, data)
       h->elf_link_hash_flags |= 0x8000;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf_hppa_remark_useless_dynamic_symbols (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -1209,10 +1207,10 @@ elf_hppa_remark_useless_dynamic_symbols (h, data)
       h->elf_link_hash_flags &= ~0x8000;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf_hppa_is_dynamic_loader_symbol (name)
      const char * name;
 {
@@ -1259,12 +1257,12 @@ elf_hppa_record_segment_addrs (abfd, section, data)
    We use this hook to (possibly) provide a value for __gp, then we
    fall back to the generic ELF final link routine.  */
 
-static boolean
+static bfd_boolean
 elf_hppa_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
-  boolean retval;
+  bfd_boolean retval;
   struct elf64_hppa_link_hash_table *hppa_info = elf64_hppa_hash_table (info);
 
   if (! info->relocateable)
@@ -1276,8 +1274,8 @@ elf_hppa_final_link (abfd, info)
         by one of the objects being linked.  First try to find the symbol
         in the hash table.  If that fails, just compute the value __gp
         should have had.  */
-      gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", false,
-                                false, false);
+      gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", FALSE,
+                                FALSE, FALSE);
 
       if (gp)
        {
@@ -1315,7 +1313,7 @@ elf_hppa_final_link (abfd, info)
              if (!sec || (sec->flags & SEC_EXCLUDE))
                sec = bfd_get_section_by_name (abfd, ".data");
              if (!sec || (sec->flags & SEC_EXCLUDE))
-               return false;
+               return FALSE;
 
              gp_val = sec->output_offset + sec->output_section->vma;
            }
@@ -1361,7 +1359,7 @@ elf_hppa_final_link (abfd, info)
 
 /* Relocate an HPPA ELF section.  */
 
-static boolean
+static bfd_boolean
 elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -1379,7 +1377,7 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
   struct elf64_hppa_link_hash_table *hppa_info;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   hppa_info = elf64_hppa_hash_table (info);
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1406,7 +1404,7 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
       if (r_type < 0 || r_type >= (int) R_PARISC_UNIMPLEMENTED)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       /* This is a final link.  */
@@ -1426,7 +1424,7 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
          dyn_name = get_dyn_name (input_section, h, rel,
                                   &dynh_buf, &dynh_buflen);
          dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
-                                             dyn_name, false, false);
+                                             dyn_name, FALSE, FALSE);
 
        }
       else
@@ -1449,7 +1447,7 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
              dyn_name = get_dyn_name (input_section, h, rel,
                                       &dynh_buf, &dynh_buflen);
              dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
-                                                 dyn_name, false, false);
+                                                 dyn_name, FALSE, FALSE);
 
              /* If we have a relocation against a symbol defined in a
                 shared library and we have not created an entry in the
@@ -1478,14 +1476,14 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
              if (info->symbolic)
                (*info->callbacks->undefined_symbol)
                  (info, h->root.root.string, input_bfd,
-                  input_section, rel->r_offset, false);
+                  input_section, rel->r_offset, FALSE);
 
              /* If this symbol has an entry in the PA64 dynamic hash
                 table, then get it.  */
              dyn_name = get_dyn_name (input_section, h, rel,
                                       &dynh_buf, &dynh_buflen);
              dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
-                                                 dyn_name, false, false);
+                                                 dyn_name, FALSE, FALSE);
 
              if (dyn_h == NULL)
                {
@@ -1508,8 +1506,8 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                {
                  if (!((*info->callbacks->undefined_symbol)
                        (info, h->root.root.string, input_bfd,
-                        input_section, rel->r_offset, true)))
-                   return false;
+                        input_section, rel->r_offset, TRUE)))
+                   return FALSE;
                  break;
                }
            }
@@ -1523,7 +1521,7 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                                                      symtab_hdr->sh_link,
                                                      sym->st_name);
          if (sym_name == NULL)
-           return false;
+           return FALSE;
          if (*sym_name == '\0')
            sym_name = bfd_section_name (input_bfd, sym_sec);
        }
@@ -1544,13 +1542,13 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                if (!((*info->callbacks->reloc_overflow)
                      (info, sym_name, howto->name, (bfd_vma) 0,
                        input_bfd, input_section, rel->r_offset)))
-                 return false;
+                 return FALSE;
              }
              break;
            }
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Compute the value for a relocation (REL) during a final link stage,
index 37b832aaf0cc80e88cba09a805dc26d11c3183b5..f5f27894c03e2a4a2b1c22cda386e9a3cced77e1 100644 (file)
@@ -26,24 +26,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void mn10200_info_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
-static boolean mn10200_elf_relax_delete_bytes
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean mn10200_elf_relax_delete_bytes
   PARAMS ((bfd *, asection *, bfd_vma, int));
-static boolean mn10200_elf_symbol_address_p
+static bfd_boolean mn10200_elf_symbol_address_p
   PARAMS ((bfd *, asection *, Elf_Internal_Sym *, bfd_vma));
 static bfd_reloc_status_type mn10200_elf_final_link_relocate
   PARAMS ((reloc_howto_type *, bfd *, bfd *, asection *,
           bfd_byte *, bfd_vma, bfd_vma, bfd_vma,
           struct bfd_link_info *, asection *, int));
-static boolean mn10200_elf_relocate_section
-PARAMS (( bfd *, struct bfd_link_info *, bfd *, asection *,
-         bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *,
-         asection **));
-static boolean mn10200_elf_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
+static bfd_boolean mn10200_elf_relocate_section
+  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
+          bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *,
+          asection **));
+static bfd_boolean mn10200_elf_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
 static bfd_byte * mn10200_elf_get_relocated_section_contents
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, boolean, asymbol **));
+          bfd_byte *, bfd_boolean, asymbol **));
 
 enum reloc_type {
   R_MN10200_NONE = 0,
@@ -63,114 +63,114 @@ static reloc_howto_type elf_mn10200_howto_table[] = {
         0,
         2,
         16,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10200_NONE",
-        false,
+        FALSE,
         0,
         0,
-        false),
+        FALSE),
   /* Standard 32 bit reloc.  */
   HOWTO (R_MN10200_32,
         0,
         2,
         32,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10200_32",
-        false,
+        FALSE,
         0xffffffff,
         0xffffffff,
-        false),
+        FALSE),
   /* Standard 16 bit reloc.  */
   HOWTO (R_MN10200_16,
         0,
         1,
         16,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10200_16",
-        false,
+        FALSE,
         0xffff,
         0xffff,
-        false),
+        FALSE),
   /* Standard 8 bit reloc.  */
   HOWTO (R_MN10200_8,
         0,
         0,
         8,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10200_8",
-        false,
+        FALSE,
         0xff,
         0xff,
-        false),
+        FALSE),
   /* Standard 24 bit reloc.  */
   HOWTO (R_MN10200_24,
         0,
         2,
         24,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10200_24",
-        false,
+        FALSE,
         0xffffff,
         0xffffff,
-        false),
+        FALSE),
   /* Simple 8 pc-relative reloc.  */
   HOWTO (R_MN10200_PCREL8,
         0,
         0,
         8,
-        true,
+        TRUE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10200_PCREL8",
-        false,
+        FALSE,
         0xff,
         0xff,
-        true),
+        TRUE),
   /* Simple 16 pc-relative reloc.  */
   HOWTO (R_MN10200_PCREL16,
         0,
         1,
         16,
-        true,
+        TRUE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10200_PCREL16",
-        false,
+        FALSE,
         0xffff,
         0xffff,
-        true),
+        TRUE),
   /* Simple 32bit pc-relative reloc with a 1 byte adjustment
      to get the pc-relative offset correct.  */
   HOWTO (R_MN10200_PCREL24,
         0,
         2,
         24,
-        true,
+        TRUE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10200_PCREL24",
-        false,
+        FALSE,
         0xffffff,
         0xffffff,
-        true),
+        TRUE),
 };
 
 struct mn10200_reloc_map {
@@ -213,7 +213,7 @@ static void
 mn10200_info_to_howto (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -327,7 +327,7 @@ mn10200_elf_final_link_relocate (howto, input_bfd, output_bfd,
 }
 \f
 /* Relocate an MN10200 ELF section.  */
-static boolean
+static bfd_boolean
 mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                              contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -344,7 +344,7 @@ mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *rel, *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -395,8 +395,8 @@ mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -428,14 +428,14 @@ mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
              break;
 
            case bfd_reloc_undefined:
              if (! ((*info->callbacks->undefined_symbol)
                     (info, name, input_bfd, input_section,
-                     rel->r_offset, true)))
-               return false;
+                     rel->r_offset, TRUE)))
+               return FALSE;
              break;
 
            case bfd_reloc_outofrange:
@@ -458,13 +458,13 @@ mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->warning)
                    (info, msg, name, input_bfd, input_section,
                     rel->r_offset)))
-               return false;
+               return FALSE;
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This function handles relaxing for the mn10200.
@@ -496,12 +496,12 @@ mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section,
        We don't handle imm16->imm8 or d16->d8 as they're very rare
        and somewhat more difficult to support.  */
 
-static boolean
+static bfd_boolean
 mn10200_elf_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
@@ -510,7 +510,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
   Elf_Internal_Sym *isymbuf = NULL;
 
   /* Assume nothing changes.  */
-  *again = false;
+  *again = FALSE;
 
   /* We don't have to do anything for a relocateable link, if
      this section does not have relocs, or if this is not a
@@ -519,7 +519,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -679,7 +679,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
 
              /* That will change things, so, we should relax again.
                 Note that this is not required, and it may be slow.  */
-             *again = true;
+             *again = TRUE;
            }
        }
 
@@ -726,7 +726,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
 
              /* That will change things, so, we should relax again.
                 Note that this is not required, and it may be slow.  */
-             *again = true;
+             *again = TRUE;
            }
        }
 
@@ -879,7 +879,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
 
          /* That will change things, so, we should relax again.
             Note that this is not required, and it may be slow.  */
-         *again = true;
+         *again = TRUE;
        }
 
       /* Try to turn a 24bit immediate, displacement or absolute address
@@ -942,7 +942,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
 
                  /* That will change things, so, we should relax again.
                     Note that this is not required, and it may be slow.  */
-                 *again = true;
+                 *again = TRUE;
                  break;
 
                /* mov imm24,an -> mov imm16,an
@@ -993,7 +993,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
 
                  /* That will change things, so, we should relax again.
                     Note that this is not required, and it may be slow.  */
-                 *again = true;
+                 *again = TRUE;
                  break;
 
                /* cmp imm24,dn -> cmp imm16,dn
@@ -1094,7 +1094,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
 
                  /* That will change things, so, we should relax again.
                     Note that this is not required, and it may be slow.  */
-                 *again = true;
+                 *again = TRUE;
                  break;
 
                /* movb (abs24),dn ->movbu (abs16),dn extxb bn */
@@ -1125,7 +1125,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
 
                  /* That will change things, so, we should relax again.
                     Note that this is not required, and it may be slow.  */
-                 *again = true;
+                 *again = TRUE;
                  break;
                }
            }
@@ -1160,7 +1160,7 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (isymbuf != NULL
@@ -1173,12 +1173,12 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return false;
+  return FALSE;
 }
 
 /* Delete some bytes from a section while relaxing.  */
 
-static boolean
+static bfd_boolean
 mn10200_elf_relax_delete_bytes (abfd, sec, addr, count)
      bfd *abfd;
      asection *sec;
@@ -1253,12 +1253,12 @@ mn10200_elf_relax_delete_bytes (abfd, sec, addr, count)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
-/* Return true if a symbol exists at the given address, else return
-   false.  */
-static boolean
+/* Return TRUE if a symbol exists at the given address, else return
+   FALSE.  */
+static bfd_boolean
 mn10200_elf_symbol_address_p (abfd, sec, isym, addr)
      bfd *abfd;
      asection *sec;
@@ -1280,7 +1280,7 @@ mn10200_elf_symbol_address_p (abfd, sec, isym, addr)
     {
       if (isym->st_shndx == sec_shndx
          && isym->st_value == addr)
-       return true;
+       return TRUE;
     }
 
   symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
@@ -1294,10 +1294,10 @@ mn10200_elf_symbol_address_p (abfd, sec, isym, addr)
           || sym_hash->root.type == bfd_link_hash_defweak)
          && sym_hash->root.u.def.section == sec
          && sym_hash->root.u.def.value == addr)
-       return true;
+       return TRUE;
     }
 
-  return false;
+  return FALSE;
 }
 
 /* This is a version of bfd_generic_get_relocated_section_contents
@@ -1310,7 +1310,7 @@ mn10200_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -1344,7 +1344,7 @@ mn10200_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
 
       internal_relocs = (_bfd_elf32_link_read_relocs
                         (input_bfd, input_section, (PTR) NULL,
-                         (Elf_Internal_Rela *) NULL, false));
+                         (Elf_Internal_Rela *) NULL, FALSE));
       if (internal_relocs == NULL)
        goto error_return;
 
index 374e55e7037a060e8ac20eabe34825d716f8fde1..2f0cd905700a0b12d370754be5322e53d192bb77 100644 (file)
@@ -28,19 +28,22 @@ static bfd_reloc_status_type mn10300_elf_final_link_relocate
   PARAMS ((reloc_howto_type *, bfd *, bfd *, asection *, bfd_byte *,
           bfd_vma, bfd_vma, bfd_vma, struct bfd_link_info *,
           asection *, int));
-static boolean mn10300_elf_relocate_section
+static bfd_boolean mn10300_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean mn10300_elf_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
+static bfd_boolean mn10300_elf_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
 static bfd_byte * mn10300_elf_get_relocated_section_contents
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, boolean, asymbol **));
-static unsigned long elf_mn10300_mach PARAMS ((flagword));
-
-void    _bfd_mn10300_elf_final_write_processing PARAMS ((bfd *, boolean));
-boolean _bfd_mn10300_elf_object_p PARAMS ((bfd *));
-boolean _bfd_mn10300_elf_merge_private_bfd_data PARAMS ((bfd *,bfd *));
+          bfd_byte *, bfd_boolean, asymbol **));
+static unsigned long elf_mn10300_mach
+  PARAMS ((flagword));
+void _bfd_mn10300_elf_final_write_processing
+  PARAMS ((bfd *, bfd_boolean));
+bfd_boolean _bfd_mn10300_elf_object_p
+  PARAMS ((bfd *));
+bfd_boolean _bfd_mn10300_elf_merge_private_bfd_data
+  PARAMS ((bfd *,bfd *));
 
 struct elf32_mn10300_link_hash_entry {
   /* The basic elf link hash table entry.  */
@@ -104,7 +107,7 @@ struct elf32_mn10300_link_hash_table {
 #define elf32_mn10300_link_hash_traverse(table, func, info)            \
   (elf_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
     (info)))
 
 static struct bfd_hash_entry *elf32_mn10300_link_hash_newfunc
@@ -117,18 +120,18 @@ static void elf32_mn10300_link_hash_table_free
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void mn10300_info_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
-static boolean mn10300_elf_check_relocs
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean mn10300_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection *mn10300_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *info, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean mn10300_elf_relax_delete_bytes
+static bfd_boolean mn10300_elf_relax_delete_bytes
   PARAMS ((bfd *, asection *, bfd_vma, int));
-static boolean mn10300_elf_symbol_address_p
-PARAMS ((bfd *, asection *, Elf_Internal_Sym *, bfd_vma));
-static boolean elf32_mn10300_finish_hash_table_entry
+static bfd_boolean mn10300_elf_symbol_address_p
+  PARAMS ((bfd *, asection *, Elf_Internal_Sym *, bfd_vma));
+static bfd_boolean elf32_mn10300_finish_hash_table_entry
   PARAMS ((struct bfd_hash_entry *, PTR));
 static void compute_function_info
   PARAMS ((bfd *, struct elf32_mn10300_link_hash_entry *,
@@ -140,144 +143,144 @@ static reloc_howto_type elf_mn10300_howto_table[] = {
         0,
         2,
         16,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10300_NONE",
-        false,
+        FALSE,
         0,
         0,
-        false),
+        FALSE),
   /* Standard 32 bit reloc.  */
   HOWTO (R_MN10300_32,
         0,
         2,
         32,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10300_32",
-        false,
+        FALSE,
         0xffffffff,
         0xffffffff,
-        false),
+        FALSE),
   /* Standard 16 bit reloc.  */
   HOWTO (R_MN10300_16,
         0,
         1,
         16,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10300_16",
-        false,
+        FALSE,
         0xffff,
         0xffff,
-        false),
+        FALSE),
   /* Standard 8 bit reloc.  */
   HOWTO (R_MN10300_8,
         0,
         0,
         8,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10300_8",
-        false,
+        FALSE,
         0xff,
         0xff,
-        false),
+        FALSE),
   /* Standard 32bit pc-relative reloc.  */
   HOWTO (R_MN10300_PCREL32,
         0,
         2,
         32,
-        true,
+        TRUE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10300_PCREL32",
-        false,
+        FALSE,
         0xffffffff,
         0xffffffff,
-        true),
+        TRUE),
   /* Standard 16bit pc-relative reloc.  */
   HOWTO (R_MN10300_PCREL16,
         0,
         1,
         16,
-        true,
+        TRUE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10300_PCREL16",
-        false,
+        FALSE,
         0xffff,
         0xffff,
-        true),
+        TRUE),
   /* Standard 8 pc-relative reloc.  */
   HOWTO (R_MN10300_PCREL8,
         0,
         0,
         8,
-        true,
+        TRUE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10300_PCREL8",
-        false,
+        FALSE,
         0xff,
         0xff,
-        true),
+        TRUE),
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_MN10300_GNU_VTINHERIT, /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_MN10300_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_MN10300_GNU_VTENTRY,        /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_MN10300_GNU_VTENTRY", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Standard 24 bit reloc.  */
   HOWTO (R_MN10300_24,
         0,
         2,
         24,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         bfd_elf_generic_reloc,
         "R_MN10300_24",
-        false,
+        FALSE,
         0xffffff,
         0xffffff,
-        false),
+        FALSE),
 };
 
 struct mn10300_reloc_map {
@@ -322,7 +325,7 @@ static void
 mn10300_info_to_howto (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -335,7 +338,7 @@ mn10300_info_to_howto (abfd, cache_ptr, dst)
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 mn10300_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -348,7 +351,7 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs)
   const Elf_Internal_Rela *rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -374,19 +377,19 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs)
           Reconstruct it for later use during GC.  */
        case R_MN10300_GNU_VTINHERIT:
          if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
        /* This relocation describes which C++ vtable entries are actually
           used.  Record for later use during GC.  */
        case R_MN10300_GNU_VTENTRY:
          if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-           return false;
+           return FALSE;
          break;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -531,7 +534,7 @@ mn10300_elf_final_link_relocate (howto, input_bfd, output_bfd,
 }
 \f
 /* Relocate an MN10300 ELF section.  */
-static boolean
+static bfd_boolean
 mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                              contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -548,7 +551,7 @@ mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *rel, *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = (struct elf32_mn10300_link_hash_entry **)
@@ -605,8 +608,8 @@ mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -638,14 +641,14 @@ mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
              break;
 
            case bfd_reloc_undefined:
              if (! ((*info->callbacks->undefined_symbol)
                     (info, name, input_bfd, input_section,
-                     rel->r_offset, true)))
-               return false;
+                     rel->r_offset, TRUE)))
+               return FALSE;
              break;
 
            case bfd_reloc_outofrange:
@@ -668,17 +671,17 @@ mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->warning)
                    (info, msg, name, input_bfd, input_section,
                     rel->r_offset)))
-               return false;
+               return FALSE;
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish initializing one hash table entry.  */
-static boolean
+static bfd_boolean
 elf32_mn10300_finish_hash_table_entry (gen_entry, in_args)
      struct bfd_hash_entry *gen_entry;
      PTR in_args ATTRIBUTE_UNUSED;
@@ -694,7 +697,7 @@ elf32_mn10300_finish_hash_table_entry (gen_entry, in_args)
   /* If we already know we want to convert "call" to "calls" for calls
      to this symbol, then return now.  */
   if (entry->flags == MN10300_CONVERT_CALL_TO_CALLS)
-    return true;
+    return TRUE;
 
   /* If there are no named calls to this symbol, or there's nothing we
      can move from the function itself into the "call" instruction, then
@@ -706,7 +709,7 @@ elf32_mn10300_finish_hash_table_entry (gen_entry, in_args)
       /* Make a note that we should convert "call" instructions to "calls"
         instructions for calls to this symbol.  */
       entry->flags |= MN10300_CONVERT_CALL_TO_CALLS;
-      return true;
+      return TRUE;
     }
 
   /* We may be able to move some instructions from the function itself into
@@ -729,7 +732,7 @@ elf32_mn10300_finish_hash_table_entry (gen_entry, in_args)
     entry->flags |= MN10300_CONVERT_CALL_TO_CALLS;
 
   /* This routine never fails.  */
-  return true;
+  return TRUE;
 }
 
 /* This function handles relaxing for the mn10300.
@@ -771,12 +774,12 @@ elf32_mn10300_finish_hash_table_entry (gen_entry, in_args)
        We don't handle imm16->imm8 or d16->d8 as they're very rare
        and somewhat more difficult to support.  */
 
-static boolean
+static bfd_boolean
 mn10300_elf_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs = NULL;
@@ -787,7 +790,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
   asection *section = sec;
 
   /* Assume nothing changes.  */
-  *again = false;
+  *again = FALSE;
 
   /* We need a pointer to the mn10300 specific hash table.  */
   hash_table = elf32_mn10300_hash_table (link_info);
@@ -928,7 +931,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
                          elftab = &hash_table->static_hash_table->root;
                          hash = ((struct elf32_mn10300_link_hash_entry *)
                                  elf_link_hash_lookup (elftab, sym_name,
-                                                       true, true, false));
+                                                       TRUE, TRUE, FALSE));
                          free (new_name);
                        }
                      else
@@ -1011,7 +1014,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
                          elftab = &hash_table->static_hash_table->root;
                          hash = ((struct elf32_mn10300_link_hash_entry *)
                                  elf_link_hash_lookup (elftab, sym_name,
-                                                       true, true, false));
+                                                       TRUE, TRUE, FALSE));
                          free (new_name);
                          compute_function_info (input_bfd, hash,
                                                 isym->st_value, contents);
@@ -1191,7 +1194,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
                  elftab = &hash_table->static_hash_table->root;
                  sym_hash = ((struct elf32_mn10300_link_hash_entry *)
                              elf_link_hash_lookup (elftab, sym_name,
-                                                   false, false, false));
+                                                   FALSE, FALSE, FALSE));
 
                  free (new_name);
                  if (sym_hash == NULL)
@@ -1230,7 +1233,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                      /* Something changed.  Not strictly necessary, but
                         may lead to more relaxing opportunities.  */
-                     *again = true;
+                     *again = TRUE;
                    }
                }
 
@@ -1283,7 +1286,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                      /* Something changed.  Not strictly necessary, but
                         may lead to more relaxing opportunities.  */
-                     *again = true;
+                     *again = TRUE;
                    }
                }
 
@@ -1338,7 +1341,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -1387,7 +1390,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
            }
        }
 
-      /* Read this BFD's symbols if we haven't done so already.  */ 
+      /* Read this BFD's symbols if we haven't done so already.  */
       if (isymbuf == NULL && symtab_hdr->sh_info != 0)
        {
          isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
@@ -1435,7 +1438,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
          h = (struct elf32_mn10300_link_hash_entry *)
                elf_link_hash_lookup (&hash_table->static_hash_table->root,
-                                     sym_name, false, false, false);
+                                     sym_name, FALSE, FALSE, FALSE);
          free (new_name);
        }
       else
@@ -1509,7 +1512,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                  /* That will change things, so, we should relax again.
                     Note that this is not required, and it may be slow.  */
-                 *again = true;
+                 *again = TRUE;
                }
            }
          else if (h)
@@ -1573,7 +1576,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
              /* That will change things, so, we should relax again.
                 Note that this is not required, and it may be slow.  */
-             *again = true;
+             *again = TRUE;
            }
        }
 
@@ -1616,7 +1619,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                  /* That will change things, so, we should relax again.
                     Note that this is not required, and it may be slow.  */
-                 *again = true;
+                 *again = TRUE;
                }
            }
          else if (h)
@@ -1673,7 +1676,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
              /* That will change things, so, we should relax again.
                 Note that this is not required, and it may be slow.  */
-             *again = true;
+             *again = TRUE;
            }
        }
 
@@ -1813,7 +1816,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
          /* That will change things, so, we should relax again.
             Note that this is not required, and it may be slow.  */
-         *again = true;
+         *again = TRUE;
        }
 
       /* Try to turn a 24 immediate, displacement or absolute address
@@ -1876,7 +1879,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
                          /* That will change things, so, we should relax
                             again.  Note that this is not required, and it
                             may be slow.  */
-                         *again = true;
+                         *again = TRUE;
                          break;
                        }
                    }
@@ -1947,7 +1950,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
                          /* That will change things, so, we should relax
                             again.  Note that this is not required, and it
                             may be slow.  */
-                         *again = true;
+                         *again = TRUE;
                          break;
                        }
                    }
@@ -2024,7 +2027,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                    /* That will change things, so, we should relax again.
                       Note that this is not required, and it may be slow.  */
-                   *again = true;
+                   *again = TRUE;
                    break;
                  }
              else if ((code & 0xf0) == 0x80
@@ -2069,7 +2072,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                    /* That will change things, so, we should relax again.
                       Note that this is not required, and it may be slow.  */
-                   *again = true;
+                   *again = TRUE;
                    break;
 
                  /* mov am,(abs32)    -> mov am,(abs16)
@@ -2107,7 +2110,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                    /* That will change things, so, we should relax again.
                       Note that this is not required, and it may be slow.  */
-                   *again = true;
+                   *again = TRUE;
                    break;
                  }
              else if ((code & 0xf0) < 0xf0)
@@ -2171,7 +2174,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                    /* That will change things, so, we should relax again.
                       Note that this is not required, and it may be slow.  */
-                   *again = true;
+                   *again = TRUE;
                    break;
 
                  /* mov (abs32),an    -> mov (abs16),an
@@ -2232,7 +2235,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                    /* That will change things, so, we should relax again.
                       Note that this is not required, and it may be slow.  */
-                   *again = true;
+                   *again = TRUE;
                    break;
                  }
              else if (code == 0xfe)
@@ -2259,7 +2262,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
 
                  /* That will change things, so, we should relax again.
                     Note that this is not required, and it may be slow.  */
-                 *again = true;
+                 *again = TRUE;
                  break;
                }
            }
@@ -2294,7 +2297,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (isymbuf != NULL
@@ -2307,7 +2310,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (section)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return false;
+  return FALSE;
 }
 
 /* Compute the stack size and movm arguments for the function
@@ -2412,7 +2415,7 @@ compute_function_info (abfd, hash, addr, contents)
 
 /* Delete some bytes from a section while relaxing.  */
 
-static boolean
+static bfd_boolean
 mn10300_elf_relax_delete_bytes (abfd, sec, addr, count)
      bfd *abfd;
      asection *sec;
@@ -2486,12 +2489,12 @@ mn10300_elf_relax_delete_bytes (abfd, sec, addr, count)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
-/* Return true if a symbol exists at the given address, else return
-   false.  */
-static boolean
+/* Return TRUE if a symbol exists at the given address, else return
+   FALSE.  */
+static bfd_boolean
 mn10300_elf_symbol_address_p (abfd, sec, isym, addr)
      bfd *abfd;
      asection *sec;
@@ -2513,7 +2516,7 @@ mn10300_elf_symbol_address_p (abfd, sec, isym, addr)
     {
       if (isym->st_shndx == sec_shndx
          && isym->st_value == addr)
-       return true;
+       return TRUE;
     }
 
   symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
@@ -2527,10 +2530,10 @@ mn10300_elf_symbol_address_p (abfd, sec, isym, addr)
           || sym_hash->root.type == bfd_link_hash_defweak)
          && sym_hash->root.u.def.section == sec
          && sym_hash->root.u.def.value == addr)
-       return true;
+       return TRUE;
     }
 
-  return false;
+  return FALSE;
 }
 
 /* This is a version of bfd_generic_get_relocated_section_contents
@@ -2543,7 +2546,7 @@ mn10300_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -2576,7 +2579,7 @@ mn10300_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
 
       internal_relocs = (_bfd_elf32_link_read_relocs
                         (input_bfd, input_section, (PTR) NULL,
-                         (Elf_Internal_Rela *) NULL, false));
+                         (Elf_Internal_Rela *) NULL, FALSE));
       if (internal_relocs == NULL)
        goto error_return;
 
@@ -2672,9 +2675,9 @@ elf32_mn10300_link_hash_newfunc (entry, table, string)
     {
       ret->direct_calls = 0;
       ret->stack_size = 0;
+      ret->movm_args = 0;
       ret->movm_stack_size = 0;
       ret->flags = 0;
-      ret->movm_args = 0;
     }
 
   return (struct bfd_hash_entry *) ret;
@@ -2757,7 +2760,7 @@ elf_mn10300_mach (flags)
 void
 _bfd_mn10300_elf_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   unsigned long val;
 
@@ -2777,36 +2780,36 @@ _bfd_mn10300_elf_final_write_processing (abfd, linker)
   elf_elfheader (abfd)->e_flags |= val;
 }
 
-boolean
+bfd_boolean
 _bfd_mn10300_elf_object_p (abfd)
      bfd *abfd;
 {
   bfd_default_set_arch_mach (abfd, bfd_arch_mn10300,
                             elf_mn10300_mach (elf_elfheader (abfd)->e_flags));
-  return true;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
-boolean
+bfd_boolean
 _bfd_mn10300_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (bfd_get_arch (obfd) == bfd_get_arch (ibfd)
       && bfd_get_mach (obfd) < bfd_get_mach (ibfd))
     {
       if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd),
                                bfd_get_mach (ibfd)))
-        return false;
+        return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 #define TARGET_LITTLE_SYM      bfd_elf32_mn10300_vec
index 7a993c252f518daf5c3cb2986f9267673113c962..3bd5531a81d9bf4026b772a00694a14dc8def034 100644 (file)
@@ -148,7 +148,7 @@ bfd_size_type
 _bfd_elf_strtab_add (tab, str, copy)
      struct elf_strtab_hash *tab;
      const char *str;
-     boolean copy;
+     bfd_boolean copy;
 {
   register struct elf_strtab_hash_entry *entry;
 
@@ -159,7 +159,7 @@ _bfd_elf_strtab_add (tab, str, copy)
 
   BFD_ASSERT (tab->sec_size == 0);
   entry = (struct elf_strtab_hash_entry *)
-         bfd_hash_lookup (&tab->table, str, true, copy);
+         bfd_hash_lookup (&tab->table, str, TRUE, copy);
 
   if (entry == NULL)
     return (bfd_size_type) -1;
@@ -243,7 +243,7 @@ _bfd_elf_strtab_offset (tab, idx)
   return tab->array[idx]->u.index;
 }
 
-boolean
+bfd_boolean
 _bfd_elf_strtab_emit (abfd, tab)
      register bfd *abfd;
      struct elf_strtab_hash *tab;
@@ -251,7 +251,7 @@ _bfd_elf_strtab_emit (abfd, tab)
   bfd_size_type off = 1, i;
 
   if (bfd_bwrite ("", 1, abfd) != 1)
-    return false;
+    return FALSE;
 
   for (i = 1; i < tab->size; ++i)
     {
@@ -265,13 +265,13 @@ _bfd_elf_strtab_emit (abfd, tab)
        continue;
 
       if (bfd_bwrite ((PTR) str, (bfd_size_type) len, abfd) != len)
-       return false;
+       return FALSE;
 
       off += len;
     }
 
   BFD_ASSERT (off == tab->sec_size);
-  return true;
+  return TRUE;
 }
 
 /* Compare two elf_strtab_hash_entry structures.  This is called via qsort.  */
index c5987fe6df3eedace3bbca0e38b6d421004155e1..45c7d753cb3d334984828c818c48a8e1b8f88570 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -15,7 +15,7 @@
    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 
+   along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /*  SECTION
 #include "libiberty.h"
 
 static INLINE struct elf_segment_map *make_mapping
-  PARAMS ((bfd *, asection **, unsigned int, unsigned int, boolean));
-static boolean map_sections_to_segments PARAMS ((bfd *));
-static int elf_sort_sections PARAMS ((const PTR, const PTR));
-static boolean assign_file_positions_for_segments PARAMS ((bfd *));
-static boolean assign_file_positions_except_relocs PARAMS ((bfd *));
-static boolean prep_headers PARAMS ((bfd *));
-static boolean swap_out_syms PARAMS ((bfd *, struct bfd_strtab_hash **, int));
-static boolean copy_private_bfd_data PARAMS ((bfd *, bfd *));
-static char *elf_read PARAMS ((bfd *, file_ptr, bfd_size_type));
-static const char *group_signature PARAMS ((bfd *, Elf_Internal_Shdr *));
-static boolean setup_group PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
-static void merge_sections_remove_hook PARAMS ((bfd *, asection *));
-static void elf_fake_sections PARAMS ((bfd *, asection *, PTR));
-static boolean assign_section_numbers PARAMS ((bfd *));
-static INLINE int sym_is_global PARAMS ((bfd *, asymbol *));
-static boolean elf_map_symbols PARAMS ((bfd *));
-static bfd_size_type get_program_header_size PARAMS ((bfd *));
-static boolean elfcore_read_notes PARAMS ((bfd *, file_ptr, bfd_size_type));
-static boolean elf_find_function PARAMS ((bfd *, asection *, asymbol **,
-                                         bfd_vma, const char **,
-                                         const char **));
-static int elfcore_make_pid PARAMS ((bfd *));
-static boolean elfcore_maybe_make_sect PARAMS ((bfd *, char *, asection *));
-static boolean elfcore_make_note_pseudosection PARAMS ((bfd *, char *,
-                                                       Elf_Internal_Note *));
-static boolean elfcore_grok_prfpreg PARAMS ((bfd *, Elf_Internal_Note *));
-static boolean elfcore_grok_prxfpreg PARAMS ((bfd *, Elf_Internal_Note *));
-static boolean elfcore_grok_note PARAMS ((bfd *, Elf_Internal_Note *));
-
-static boolean elfcore_netbsd_get_lwpid PARAMS ((Elf_Internal_Note *, int *));
-static boolean elfcore_grok_netbsd_procinfo PARAMS ((bfd *,
-                                                    Elf_Internal_Note *));
-static boolean elfcore_grok_netbsd_note PARAMS ((bfd *, Elf_Internal_Note *));
+  PARAMS ((bfd *, asection **, unsigned int, unsigned int, bfd_boolean));
+static bfd_boolean map_sections_to_segments
+  PARAMS ((bfd *));
+static int elf_sort_sections
+  PARAMS ((const PTR, const PTR));
+static bfd_boolean assign_file_positions_for_segments
+  PARAMS ((bfd *));
+static bfd_boolean assign_file_positions_except_relocs
+  PARAMS ((bfd *));
+static bfd_boolean prep_headers
+  PARAMS ((bfd *));
+static bfd_boolean swap_out_syms
+  PARAMS ((bfd *, struct bfd_strtab_hash **, int));
+static bfd_boolean copy_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+static char *elf_read
+  PARAMS ((bfd *, file_ptr, bfd_size_type));
+static const char *group_signature
+  PARAMS ((bfd *, Elf_Internal_Shdr *));
+static bfd_boolean setup_group
+  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
+static void merge_sections_remove_hook
+  PARAMS ((bfd *, asection *));
+static void elf_fake_sections
+  PARAMS ((bfd *, asection *, PTR));
+static bfd_boolean assign_section_numbers
+  PARAMS ((bfd *));
+static INLINE int sym_is_global
+  PARAMS ((bfd *, asymbol *));
+static bfd_boolean elf_map_symbols
+  PARAMS ((bfd *));
+static bfd_size_type get_program_header_size
+  PARAMS ((bfd *));
+static bfd_boolean elfcore_read_notes
+  PARAMS ((bfd *, file_ptr, bfd_size_type));
+static bfd_boolean elf_find_function
+  PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
+          const char **));
+static int elfcore_make_pid
+  PARAMS ((bfd *));
+static bfd_boolean elfcore_maybe_make_sect
+  PARAMS ((bfd *, char *, asection *));
+static bfd_boolean elfcore_make_note_pseudosection
+  PARAMS ((bfd *, char *, Elf_Internal_Note *));
+static bfd_boolean elfcore_grok_prfpreg
+  PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elfcore_grok_prxfpreg
+  PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elfcore_grok_note
+  PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elfcore_netbsd_get_lwpid
+  PARAMS ((Elf_Internal_Note *, int *));
+static bfd_boolean elfcore_grok_netbsd_procinfo
+  PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elfcore_grok_netbsd_note
+  PARAMS ((bfd *, Elf_Internal_Note *));
 
 /* Swap version information in and out.  The version information is
    currently size independent.  If that ever changes, this code will
@@ -270,7 +293,7 @@ elf_read (abfd, offset, size)
   return buf;
 }
 
-boolean
+bfd_boolean
 bfd_elf_mkobject (abfd)
      bfd *abfd;
 {
@@ -279,14 +302,14 @@ bfd_elf_mkobject (abfd)
   bfd_size_type amt = sizeof (struct elf_obj_tdata);
   elf_tdata (abfd) = (struct elf_obj_tdata *) bfd_zalloc (abfd, amt);
   if (elf_tdata (abfd) == 0)
-    return false;
+    return FALSE;
   /* Since everything is done at close time, do we need any
      initialization?  */
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 bfd_elf_mkcorefile (abfd)
      bfd *abfd;
 {
@@ -501,7 +524,7 @@ group_signature (abfd, ghdr)
 
 /* Set next_in_group list pointer, and group name for NEWSECT.  */
 
-static boolean
+static bfd_boolean
 setup_group (abfd, hdr, newsect)
      bfd *abfd;
      Elf_Internal_Shdr *hdr;
@@ -537,7 +560,7 @@ setup_group (abfd, hdr, newsect)
          bfd_size_type amt = num_group * sizeof (Elf_Internal_Shdr *);
          elf_tdata (abfd)->group_sect_ptr = bfd_alloc (abfd, amt);
          if (elf_tdata (abfd)->group_sect_ptr == NULL)
-           return false;
+           return FALSE;
 
          num_group = 0;
          for (i = 0; i < shnum; i++)
@@ -560,7 +583,7 @@ setup_group (abfd, hdr, newsect)
                      || bfd_seek (abfd, shdr->sh_offset, SEEK_SET) != 0
                      || (bfd_bread (shdr->contents, shdr->sh_size, abfd)
                          != shdr->sh_size))
-                   return false;
+                   return FALSE;
 
                  /* Translate raw contents, a flag word followed by an
                     array of elf section indices all in target byte order,
@@ -637,7 +660,7 @@ setup_group (abfd, hdr, newsect)
 
                    gname = group_signature (abfd, shdr);
                    if (gname == NULL)
-                     return false;
+                     return FALSE;
                    elf_group_name (newsect) = gname;
 
                    /* Start a circular list with one element.  */
@@ -660,10 +683,10 @@ setup_group (abfd, hdr, newsect)
       (*_bfd_error_handler) (_("%s: no group info for section %s"),
                             bfd_archive_filename (abfd), newsect->name);
     }
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 bfd_elf_discard_group (abfd, group)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *group;
@@ -679,13 +702,13 @@ bfd_elf_discard_group (abfd, group)
       if (s == first)
        break;
     }
-  return true;
+  return TRUE;
 }
 
 /* Make a BFD section from an ELF section.  We store a pointer to the
    BFD section in the bfd_section field of the header.  */
 
-boolean
+bfd_boolean
 _bfd_elf_make_section_from_shdr (abfd, hdr, name)
      bfd *abfd;
      Elf_Internal_Shdr *hdr;
@@ -699,12 +722,12 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name)
     {
       BFD_ASSERT (strcmp (name,
                          bfd_get_section_name (abfd, hdr->bfd_section)) == 0);
-      return true;
+      return TRUE;
     }
 
   newsect = bfd_make_section_anyway (abfd, name);
   if (newsect == NULL)
-    return false;
+    return FALSE;
 
   newsect->filepos = hdr->sh_offset;
 
@@ -712,7 +735,7 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name)
       || ! bfd_set_section_size (abfd, newsect, hdr->sh_size)
       || ! bfd_set_section_alignment (abfd, newsect,
                                      bfd_log2 ((bfd_vma) hdr->sh_addralign)))
-    return false;
+    return FALSE;
 
   flags = SEC_NO_FLAGS;
   if (hdr->sh_type != SHT_NOBITS)
@@ -740,7 +763,7 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name)
     }
   if (hdr->sh_flags & SHF_GROUP)
     if (!setup_group (abfd, hdr, newsect))
-      return false;
+      return FALSE;
   if ((hdr->sh_flags & SHF_TLS) != 0)
     flags |= SEC_THREAD_LOCAL;
 
@@ -777,10 +800,10 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name)
   bed = get_elf_backend_data (abfd);
   if (bed->elf_backend_section_flags)
     if (! bed->elf_backend_section_flags (&flags, hdr))
-      return false;
+      return FALSE;
 
   if (! bfd_set_section_flags (abfd, newsect, flags))
-    return false;
+    return FALSE;
 
   if ((flags & SEC_ALLOC) != 0)
     {
@@ -851,7 +874,7 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name)
   hdr->bfd_section = newsect;
   elf_section_data (newsect)->this_hdr = *hdr;
 
-  return true;
+  return TRUE;
 }
 
 /*
@@ -955,17 +978,17 @@ merge_sections_remove_hook (abfd, sec)
 
 /* Finish SHF_MERGE section merging.  */
 
-boolean
+bfd_boolean
 _bfd_elf_merge_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   if (!is_elf_hash_table (info))
-    return false;
+    return FALSE;
   if (elf_hash_table (info)->merge_info)
     _bfd_merge_sections (abfd, elf_hash_table (info)->merge_info,
                         merge_sections_remove_hook);
-  return true;
+  return TRUE;
 }
 
 void
@@ -984,14 +1007,14 @@ _bfd_elf_link_just_syms (sec, info)
 /* Copy the program header and other data from one object module to
    another.  */
 
-boolean
+bfd_boolean
 _bfd_elf_copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   BFD_ASSERT (!elf_flags_init (obfd)
              || (elf_elfheader (obfd)->e_flags
@@ -999,13 +1022,13 @@ _bfd_elf_copy_private_bfd_data (ibfd, obfd)
 
   elf_gp (obfd) = elf_gp (ibfd);
   elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
+  elf_flags_init (obfd) = TRUE;
+  return TRUE;
 }
 
 /* Print out the program headers.  */
 
-boolean
+bfd_boolean
 _bfd_elf_print_private_bfd_data (abfd, farg)
      bfd *abfd;
      PTR farg;
@@ -1094,14 +1117,14 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
          Elf_Internal_Dyn dyn;
          const char *name;
          char ab[20];
-         boolean stringp;
+         bfd_boolean stringp;
 
          (*swap_dyn_in) (abfd, (PTR) extdyn, &dyn);
 
          if (dyn.d_tag == DT_NULL)
            break;
 
-         stringp = false;
+         stringp = FALSE;
          switch (dyn.d_tag)
            {
            default:
@@ -1109,7 +1132,7 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
              name = ab;
              break;
 
-           case DT_NEEDED: name = "NEEDED"; stringp = true; break;
+           case DT_NEEDED: name = "NEEDED"; stringp = TRUE; break;
            case DT_PLTRELSZ: name = "PLTRELSZ"; break;
            case DT_PLTGOT: name = "PLTGOT"; break;
            case DT_HASH: name = "HASH"; break;
@@ -1122,8 +1145,8 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
            case DT_SYMENT: name = "SYMENT"; break;
            case DT_INIT: name = "INIT"; break;
            case DT_FINI: name = "FINI"; break;
-           case DT_SONAME: name = "SONAME"; stringp = true; break;
-           case DT_RPATH: name = "RPATH"; stringp = true; break;
+           case DT_SONAME: name = "SONAME"; stringp = TRUE; break;
+           case DT_RPATH: name = "RPATH"; stringp = TRUE; break;
            case DT_SYMBOLIC: name = "SYMBOLIC"; break;
            case DT_REL: name = "REL"; break;
            case DT_RELSZ: name = "RELSZ"; break;
@@ -1137,7 +1160,7 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
            case DT_FINI_ARRAY: name = "FINI_ARRAY"; break;
            case DT_INIT_ARRAYSZ: name = "INIT_ARRAYSZ"; break;
            case DT_FINI_ARRAYSZ: name = "FINI_ARRAYSZ"; break;
-           case DT_RUNPATH: name = "RUNPATH"; stringp = true; break;
+           case DT_RUNPATH: name = "RUNPATH"; stringp = TRUE; break;
            case DT_FLAGS: name = "FLAGS"; break;
            case DT_PREINIT_ARRAY: name = "PREINIT_ARRAY"; break;
            case DT_PREINIT_ARRAYSZ: name = "PREINIT_ARRAYSZ"; break;
@@ -1149,9 +1172,9 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
            case DT_POSFLAG_1: name = "POSFLAG_1"; break;
            case DT_SYMINSZ: name = "SYMINSZ"; break;
            case DT_SYMINENT: name = "SYMINENT"; break;
-           case DT_CONFIG: name = "CONFIG"; stringp = true; break;
-           case DT_DEPAUDIT: name = "DEPAUDIT"; stringp = true; break;
-           case DT_AUDIT: name = "AUDIT"; stringp = true; break;
+           case DT_CONFIG: name = "CONFIG"; stringp = TRUE; break;
+           case DT_DEPAUDIT: name = "DEPAUDIT"; stringp = TRUE; break;
+           case DT_AUDIT: name = "AUDIT"; stringp = TRUE; break;
            case DT_PLTPAD: name = "PLTPAD"; break;
            case DT_MOVETAB: name = "MOVETAB"; break;
            case DT_SYMINFO: name = "SYMINFO"; break;
@@ -1163,9 +1186,9 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
            case DT_VERDEFNUM: name = "VERDEFNUM"; break;
            case DT_VERNEED: name = "VERNEED"; break;
            case DT_VERNEEDNUM: name = "VERNEEDNUM"; break;
-           case DT_AUXILIARY: name = "AUXILIARY"; stringp = true; break;
+           case DT_AUXILIARY: name = "AUXILIARY"; stringp = TRUE; break;
            case DT_USED: name = "USED"; break;
-           case DT_FILTER: name = "FILTER"; stringp = true; break;
+           case DT_FILTER: name = "FILTER"; stringp = TRUE; break;
            }
 
          fprintf (f, "  %-11s ", name);
@@ -1192,7 +1215,7 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
       || (elf_dynverref (abfd) != 0 && elf_tdata (abfd)->verref == NULL))
     {
       if (! _bfd_elf_slurp_version_tables (abfd))
-       return false;
+       return FALSE;
     }
 
   if (elf_dynverdef (abfd) != 0)
@@ -1234,12 +1257,12 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
        }
     }
 
-  return true;
+  return TRUE;
 
  error_return:
   if (dynbuf != NULL)
     free (dynbuf);
-  return false;
+  return FALSE;
 }
 
 /* Display ELF-specific fields of a symbol.  */
@@ -1391,17 +1414,18 @@ _bfd_elf_link_hash_newfunc (entry, table, string)
 
       /* Set local fields.  */
       ret->indx = -1;
-      ret->size = 0;
       ret->dynindx = -1;
       ret->dynstr_index = 0;
+      ret->elf_hash_value = 0;
       ret->weakdef = NULL;
-      ret->got.refcount = htab->init_refcount;
-      ret->plt.refcount = htab->init_refcount;
       ret->linker_section_pointer = NULL;
       ret->verinfo.verdef = NULL;
-      ret->vtable_entries_used = NULL;
       ret->vtable_entries_size = 0;
+      ret->vtable_entries_used = NULL;
       ret->vtable_parent = NULL;
+      ret->got.refcount = htab->init_refcount;
+      ret->plt.refcount = htab->init_refcount;
+      ret->size = 0;
       ret->type = STT_NOTYPE;
       ret->other = 0;
       /* Assume that we have been called by a non-ELF symbol reader.
@@ -1473,7 +1497,7 @@ void
 _bfd_elf_link_hash_hide_symbol (info, h, force_local)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
-     boolean force_local;
+     bfd_boolean force_local;
 {
   h->plt.offset = (bfd_vma) -1;
   h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
@@ -1491,31 +1515,37 @@ _bfd_elf_link_hash_hide_symbol (info, h, force_local)
 
 /* Initialize an ELF linker hash table.  */
 
-boolean
+bfd_boolean
 _bfd_elf_link_hash_table_init (table, abfd, newfunc)
      struct elf_link_hash_table *table;
      bfd *abfd;
-     struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
-                                               struct bfd_hash_table *,
-                                               const char *));
+     struct bfd_hash_entry *(*newfunc)
+       PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
+               const char *));
 {
-  boolean ret;
+  bfd_boolean ret;
 
-  table->dynamic_sections_created = false;
+  table->dynamic_sections_created = FALSE;
   table->dynobj = NULL;
-  table->init_refcount = get_elf_backend_data (abfd)->can_refcount - 1;
+  /* Make sure can_refcount is extended to the width and signedness of
+     init_refcount before we subtract one from it.  */
+  table->init_refcount = get_elf_backend_data (abfd)->can_refcount;
+  --table->init_refcount;
   /* The first dynamic symbol is a dummy.  */
   table->dynsymcount = 1;
   table->dynstr = NULL;
   table->bucketcount = 0;
   table->needed = NULL;
-  table->runpath = NULL;
-  table->loaded = NULL;
   table->hgot = NULL;
   table->stab_info = NULL;
   table->merge_info = NULL;
+  memset (&table->eh_info, 0, sizeof (table->eh_info));
   table->dynlocal = NULL;
-  ret = _bfd_link_hash_table_init (& table->root, abfd, newfunc);
+  table->runpath = NULL;
+  table->tls_segment = NULL;
+  table->loaded = NULL;
+
+  ret = _bfd_link_hash_table_init (&table->root, abfd, newfunc);
   table->root.type = bfd_link_elf_hash_table;
 
   return ret;
@@ -1611,7 +1641,7 @@ bfd_elf_get_dt_soname (abfd)
 /* Get the list of DT_NEEDED entries from a BFD.  This is a hook for
    the ELF linker emulation code.  */
 
-boolean
+bfd_boolean
 bfd_elf_get_bfd_needed_list (abfd, pneeded)
      bfd *abfd;
      struct bfd_link_needed_list **pneeded;
@@ -1628,11 +1658,11 @@ bfd_elf_get_bfd_needed_list (abfd, pneeded)
 
   if (bfd_get_flavour (abfd) != bfd_target_elf_flavour
       || bfd_get_format (abfd) != bfd_object)
-    return true;
+    return TRUE;
 
   s = bfd_get_section_by_name (abfd, ".dynamic");
   if (s == NULL || s->_raw_size == 0)
-    return true;
+    return TRUE;
 
   dynbuf = (bfd_byte *) bfd_malloc (s->_raw_size);
   if (dynbuf == NULL)
@@ -1687,12 +1717,12 @@ bfd_elf_get_bfd_needed_list (abfd, pneeded)
 
   free (dynbuf);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (dynbuf != NULL)
     free (dynbuf);
-  return false;
+  return FALSE;
 }
 \f
 /* Allocate an ELF string table--force the first byte to be zero.  */
@@ -1707,7 +1737,7 @@ _bfd_elf_stringtab_init ()
     {
       bfd_size_type loc;
 
-      loc = _bfd_stringtab_add (ret, "", true, false);
+      loc = _bfd_stringtab_add (ret, "", TRUE, FALSE);
       BFD_ASSERT (loc == 0 || loc == (bfd_size_type) -1);
       if (loc == (bfd_size_type) -1)
        {
@@ -1722,7 +1752,7 @@ _bfd_elf_stringtab_init ()
 
 /* Create a new bfd section from an ELF section header.  */
 
-boolean
+bfd_boolean
 bfd_section_from_shdr (abfd, shindex)
      bfd *abfd;
      unsigned int shindex;
@@ -1738,7 +1768,7 @@ bfd_section_from_shdr (abfd, shindex)
     {
     case SHT_NULL:
       /* Inactive section. Throw it away.  */
-      return true;
+      return TRUE;
 
     case SHT_PROGBITS: /* Normal section with contents.  */
     case SHT_NOBITS:   /* .bss section.  */
@@ -1751,7 +1781,7 @@ bfd_section_from_shdr (abfd, shindex)
 
     case SHT_DYNAMIC:  /* Dynamic linking information.  */
       if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-       return false;
+       return FALSE;
       if (elf_elfsections (abfd)[hdr->sh_link]->sh_type != SHT_STRTAB)
        {
          Elf_Internal_Shdr *dynsymhdr;
@@ -1784,7 +1814,7 @@ bfd_section_from_shdr (abfd, shindex)
 
     case SHT_SYMTAB:           /* A symbol table */
       if (elf_onesymtab (abfd) == shindex)
-       return true;
+       return TRUE;
 
       BFD_ASSERT (hdr->sh_entsize == bed->s->sizeof_sym);
       BFD_ASSERT (elf_onesymtab (abfd) == 0);
@@ -1802,13 +1832,13 @@ bfd_section_from_shdr (abfd, shindex)
       if ((hdr->sh_flags & SHF_ALLOC) != 0
          && (abfd->flags & DYNAMIC) != 0
          && ! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-       return false;
+       return FALSE;
 
-      return true;
+      return TRUE;
 
     case SHT_DYNSYM:           /* A dynamic symbol table */
       if (elf_dynsymtab (abfd) == shindex)
-       return true;
+       return TRUE;
 
       BFD_ASSERT (hdr->sh_entsize == bed->s->sizeof_sym);
       BFD_ASSERT (elf_dynsymtab (abfd) == 0);
@@ -1823,26 +1853,26 @@ bfd_section_from_shdr (abfd, shindex)
 
     case SHT_SYMTAB_SHNDX:     /* Symbol section indices when >64k sections */
       if (elf_symtab_shndx (abfd) == shindex)
-       return true;
+       return TRUE;
 
       /* Get the associated symbol table.  */
       if (! bfd_section_from_shdr (abfd, hdr->sh_link)
          || hdr->sh_link != elf_onesymtab (abfd))
-       return false;
+       return FALSE;
 
       elf_symtab_shndx (abfd) = shindex;
       elf_tdata (abfd)->symtab_shndx_hdr = *hdr;
       elf_elfsections (abfd)[shindex] = &elf_tdata (abfd)->symtab_shndx_hdr;
-      return true;
+      return TRUE;
 
     case SHT_STRTAB:           /* A string table */
       if (hdr->bfd_section != NULL)
-       return true;
+       return TRUE;
       if (ehdr->e_shstrndx == shindex)
        {
          elf_tdata (abfd)->shstrtab_hdr = *hdr;
          elf_elfsections (abfd)[shindex] = &elf_tdata (abfd)->shstrtab_hdr;
-         return true;
+         return TRUE;
        }
       {
        unsigned int i, num_sec;
@@ -1854,13 +1884,13 @@ bfd_section_from_shdr (abfd, shindex)
            if (hdr2->sh_link == shindex)
              {
                if (! bfd_section_from_shdr (abfd, i))
-                 return false;
+                 return FALSE;
                if (elf_onesymtab (abfd) == i)
                  {
                    elf_tdata (abfd)->strtab_hdr = *hdr;
                    elf_elfsections (abfd)[shindex] =
                      &elf_tdata (abfd)->strtab_hdr;
-                   return true;
+                   return TRUE;
                  }
                if (elf_dynsymtab (abfd) == i)
                  {
@@ -1940,7 +1970,7 @@ bfd_section_from_shdr (abfd, shindex)
        /* Get the symbol table.  */
        if (elf_elfsections (abfd)[hdr->sh_link]->sh_type == SHT_SYMTAB
            && ! bfd_section_from_shdr (abfd, hdr->sh_link))
-         return false;
+         return FALSE;
 
        /* If this reloc section does not use the main symbol table we
           don't treat it as a reloc section.  BFD can't adequately
@@ -1952,10 +1982,10 @@ bfd_section_from_shdr (abfd, shindex)
          return _bfd_elf_make_section_from_shdr (abfd, hdr, name);
 
        if (! bfd_section_from_shdr (abfd, hdr->sh_info))
-         return false;
+         return FALSE;
        target_sect = bfd_section_from_elf_index (abfd, hdr->sh_info);
        if (target_sect == NULL)
-         return false;
+         return FALSE;
 
        if ((target_sect->flags & SEC_RELOC) == 0
            || target_sect->reloc_count == 0)
@@ -1980,7 +2010,7 @@ bfd_section_from_shdr (abfd, shindex)
          elf_section_data (target_sect)->use_rela_p
            = (hdr->sh_type == SHT_RELA);
        abfd->flags |= HAS_RELOC;
-       return true;
+       return TRUE;
       }
       break;
 
@@ -2003,7 +2033,7 @@ bfd_section_from_shdr (abfd, shindex)
       break;
 
     case SHT_SHLIB:
-      return true;
+      return TRUE;
 
     case SHT_GROUP:
       /* We need a BFD section for objcopy and relocatable linking,
@@ -2011,9 +2041,9 @@ bfd_section_from_shdr (abfd, shindex)
         name.  */
       name = group_signature (abfd, hdr);
       if (name == NULL)
-       return false;
+       return FALSE;
       if (!_bfd_elf_make_section_from_shdr (abfd, hdr, name))
-       return false;
+       return FALSE;
       if (hdr->contents != NULL)
        {
          Elf_Internal_Group *idx = (Elf_Internal_Group *) hdr->contents;
@@ -2043,7 +2073,7 @@ bfd_section_from_shdr (abfd, shindex)
       break;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section for the local symbol specified by ABFD, R_SYMNDX.
@@ -2100,7 +2130,7 @@ bfd_section_from_elf_index (abfd, index)
   return elf_elfsections (abfd)[index]->bfd_section;
 }
 
-boolean
+bfd_boolean
 _bfd_elf_new_section_hook (abfd, sec)
      bfd *abfd;
      asection *sec;
@@ -2110,14 +2140,14 @@ _bfd_elf_new_section_hook (abfd, sec)
 
   sdata = (struct bfd_elf_section_data *) bfd_zalloc (abfd, amt);
   if (!sdata)
-    return false;
+    return FALSE;
   sec->used_by_bfd = (PTR) sdata;
 
   /* Indicate whether or not this section should use RELA relocations.  */
   sdata->use_rela_p
     = get_elf_backend_data (abfd)->default_use_rela_p;
 
-  return true;
+  return TRUE;
 }
 
 /* Create a new bfd section from an ELF program header.
@@ -2142,7 +2172,7 @@ _bfd_elf_new_section_hook (abfd, sec)
 
  */
 
-boolean
+bfd_boolean
 _bfd_elf_make_section_from_phdr (abfd, hdr, index, typename)
      bfd *abfd;
      Elf_Internal_Phdr *hdr;
@@ -2162,11 +2192,11 @@ _bfd_elf_make_section_from_phdr (abfd, hdr, index, typename)
   len = strlen (namebuf) + 1;
   name = bfd_alloc (abfd, (bfd_size_type) len);
   if (!name)
-    return false;
+    return FALSE;
   memcpy (name, namebuf, len);
   newsect = bfd_make_section (abfd, name);
   if (newsect == NULL)
-    return false;
+    return FALSE;
   newsect->vma = hdr->p_vaddr;
   newsect->lma = hdr->p_paddr;
   newsect->_raw_size = hdr->p_filesz;
@@ -2194,11 +2224,11 @@ _bfd_elf_make_section_from_phdr (abfd, hdr, index, typename)
       len = strlen (namebuf) + 1;
       name = bfd_alloc (abfd, (bfd_size_type) len);
       if (!name)
-       return false;
+       return FALSE;
       memcpy (name, namebuf, len);
       newsect = bfd_make_section (abfd, name);
       if (newsect == NULL)
-       return false;
+       return FALSE;
       newsect->vma = hdr->p_vaddr + hdr->p_filesz;
       newsect->lma = hdr->p_paddr + hdr->p_filesz;
       newsect->_raw_size = hdr->p_memsz - hdr->p_filesz;
@@ -2212,10 +2242,10 @@ _bfd_elf_make_section_from_phdr (abfd, hdr, index, typename)
        newsect->flags |= SEC_READONLY;
     }
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 bfd_section_from_phdr (abfd, hdr, index)
      bfd *abfd;
      Elf_Internal_Phdr *hdr;
@@ -2239,10 +2269,10 @@ bfd_section_from_phdr (abfd, hdr, index)
 
     case PT_NOTE:
       if (! _bfd_elf_make_section_from_phdr (abfd, hdr, index, "note"))
-       return false;
+       return FALSE;
       if (! elfcore_read_notes (abfd, (file_ptr) hdr->p_offset, hdr->p_filesz))
-       return false;
-      return true;
+       return FALSE;
+      return TRUE;
 
     case PT_SHLIB:
       return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "shlib");
@@ -2262,15 +2292,15 @@ bfd_section_from_phdr (abfd, hdr, index)
 }
 
 /* Initialize REL_HDR, the section-header for new section, containing
-   relocations against ASECT.  If USE_RELA_P is true, we use RELA
+   relocations against ASECT.  If USE_RELA_P is TRUE, we use RELA
    relocations; otherwise, we use REL relocations.  */
 
-boolean
+bfd_boolean
 _bfd_elf_init_reloc_shdr (abfd, rel_hdr, asect, use_rela_p)
      bfd *abfd;
      Elf_Internal_Shdr *rel_hdr;
      asection *asect;
-     boolean use_rela_p;
+     bfd_boolean use_rela_p;
 {
   char *name;
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
@@ -2278,13 +2308,13 @@ _bfd_elf_init_reloc_shdr (abfd, rel_hdr, asect, use_rela_p)
 
   name = bfd_alloc (abfd, amt);
   if (name == NULL)
-    return false;
+    return FALSE;
   sprintf (name, "%s%s", use_rela_p ? ".rela" : ".rel", asect->name);
   rel_hdr->sh_name =
     (unsigned int) _bfd_elf_strtab_add (elf_shstrtab (abfd), name,
-                                       false);
+                                       FALSE);
   if (rel_hdr->sh_name == (unsigned int) -1)
-    return false;
+    return FALSE;
   rel_hdr->sh_type = use_rela_p ? SHT_RELA : SHT_REL;
   rel_hdr->sh_entsize = (use_rela_p
                         ? bed->s->sizeof_rela
@@ -2295,7 +2325,7 @@ _bfd_elf_init_reloc_shdr (abfd, rel_hdr, asect, use_rela_p)
   rel_hdr->sh_size = 0;
   rel_hdr->sh_offset = 0;
 
-  return true;
+  return TRUE;
 }
 
 /* Set up an ELF internal section header for a section.  */
@@ -2307,7 +2337,7 @@ elf_fake_sections (abfd, asect, failedptrarg)
      PTR failedptrarg;
 {
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  boolean *failedptr = (boolean *) failedptrarg;
+  bfd_boolean *failedptr = (bfd_boolean *) failedptrarg;
   Elf_Internal_Shdr *this_hdr;
 
   if (*failedptr)
@@ -2320,10 +2350,10 @@ elf_fake_sections (abfd, asect, failedptrarg)
   this_hdr = &elf_section_data (asect)->this_hdr;
 
   this_hdr->sh_name = (unsigned long) _bfd_elf_strtab_add (elf_shstrtab (abfd),
-                                                          asect->name, false);
+                                                          asect->name, FALSE);
   if (this_hdr->sh_name == (unsigned long) -1)
     {
-      *failedptr = true;
+      *failedptr = TRUE;
       return;
     }
 
@@ -2450,7 +2480,7 @@ elf_fake_sections (abfd, asect, failedptrarg)
       if (asect->_raw_size == 0 && (asect->flags & SEC_HAS_CONTENTS) == 0)
        {
          struct bfd_link_order *o;
-                                          
+
          this_hdr->sh_size = 0;
          for (o = asect->link_order_head; o != NULL; o = o->next)
            if (this_hdr->sh_size < o->offset + o->size)
@@ -2463,7 +2493,7 @@ elf_fake_sections (abfd, asect, failedptrarg)
   /* Check for processor-specific section types.  */
   if (bed->elf_backend_fake_sections
       && !(*bed->elf_backend_fake_sections) (abfd, this_hdr, asect))
-    *failedptr = true;
+    *failedptr = TRUE;
 
   /* If the section has relocs, set up a section header for the
      SHT_REL[A] section.  If two relocation sections are required for
@@ -2474,7 +2504,7 @@ elf_fake_sections (abfd, asect, failedptrarg)
                                    &elf_section_data (asect)->rel_hdr,
                                    asect,
                                    elf_section_data (asect)->use_rela_p))
-    *failedptr = true;
+    *failedptr = TRUE;
 }
 
 /* Fill in the contents of a SHT_GROUP section.  */
@@ -2485,12 +2515,12 @@ bfd_elf_set_group_contents (abfd, sec, failedptrarg)
      asection *sec;
      PTR failedptrarg;
 {
-  boolean *failedptr = (boolean *) failedptrarg;
+  bfd_boolean *failedptr = (bfd_boolean *) failedptrarg;
   unsigned long symindx;
   asection *elt, *first;
   unsigned char *loc;
   struct bfd_link_order *l;
-  boolean gas;
+  bfd_boolean gas;
 
   if (elf_section_data (sec)->this_hdr.sh_type != SHT_GROUP
       || *failedptr)
@@ -2512,17 +2542,17 @@ bfd_elf_set_group_contents (abfd, sec, failedptrarg)
   elf_section_data (sec)->this_hdr.sh_info = symindx;
 
   /* The contents won't be allocated for "ld -r" or objcopy.  */
-  gas = true;
+  gas = TRUE;
   if (sec->contents == NULL)
     {
-      gas = false;
+      gas = FALSE;
       sec->contents = bfd_alloc (abfd, sec->_raw_size);
 
       /* Arrange for the section to be written out.  */
       elf_section_data (sec)->this_hdr.contents = sec->contents;
       if (sec->contents == NULL)
        {
-         *failedptr = true;
+         *failedptr = TRUE;
          return;
        }
     }
@@ -2588,7 +2618,7 @@ bfd_elf_set_group_contents (abfd, sec, failedptrarg)
    too.  The link/info pointers for the standard section types are filled
    in here too, while we're at it.  */
 
-static boolean
+static bfd_boolean
 assign_section_numbers (abfd)
      bfd *abfd;
 {
@@ -2650,9 +2680,9 @@ assign_section_numbers (abfd)
          t->symtab_shndx_section = section_number++;
          t->symtab_shndx_hdr.sh_name
            = (unsigned int) _bfd_elf_strtab_add (elf_shstrtab (abfd),
-                                                 ".symtab_shndx", false);
+                                                 ".symtab_shndx", FALSE);
          if (t->symtab_shndx_hdr.sh_name == (unsigned int) -1)
-           return false;
+           return FALSE;
        }
       if (section_number == SHN_LORESERVE)
        section_number += SHN_HIRESERVE + 1 - SHN_LORESERVE;
@@ -2673,14 +2703,14 @@ assign_section_numbers (abfd)
   amt = section_number * sizeof (Elf_Internal_Shdr *);
   i_shdrp = (Elf_Internal_Shdr **) bfd_zalloc (abfd, amt);
   if (i_shdrp == NULL)
-    return false;
+    return FALSE;
 
   amt = sizeof (Elf_Internal_Shdr);
   i_shdrp[0] = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt);
   if (i_shdrp[0] == NULL)
     {
       bfd_release (abfd, i_shdrp);
-      return false;
+      return FALSE;
     }
 
   elf_elfsections (abfd) = i_shdrp;
@@ -2764,7 +2794,7 @@ assign_section_numbers (abfd)
              len = strlen (sec->name);
              alc = (char *) bfd_malloc ((bfd_size_type) (len - 2));
              if (alc == NULL)
-               return false;
+               return FALSE;
              memcpy (alc, sec->name, len - 3);
              alc[len - 3] = '\0';
              s = bfd_get_section_by_name (abfd, alc);
@@ -2813,7 +2843,7 @@ assign_section_numbers (abfd)
     else
       i_shdrp[secn]->sh_name = _bfd_elf_strtab_offset (elf_shstrtab (abfd),
                                                       i_shdrp[secn]->sh_name);
-  return true;
+  return TRUE;
 }
 
 /* Map symbol from it's internal number to the external number, moving
@@ -2834,7 +2864,7 @@ sym_is_global (abfd, sym)
          || bfd_is_com_section (bfd_get_section (sym)));
 }
 
-static boolean
+static bfd_boolean
 elf_map_symbols (abfd)
      bfd *abfd;
 {
@@ -2866,7 +2896,7 @@ elf_map_symbols (abfd)
   amt = max_index * sizeof (asymbol *);
   sect_syms = (asymbol **) bfd_zalloc (abfd, amt);
   if (sect_syms == NULL)
-    return false;
+    return FALSE;
   elf_section_syms (abfd) = sect_syms;
   elf_num_section_syms (abfd) = max_index;
 
@@ -2941,7 +2971,7 @@ elf_map_symbols (abfd)
   new_syms = (asymbol **) bfd_alloc (abfd, amt);
 
   if (new_syms == NULL)
-    return false;
+    return FALSE;
 
   for (idx = 0; idx < symcount; idx++)
     {
@@ -2976,13 +3006,14 @@ elf_map_symbols (abfd)
 
   elf_num_locals (abfd) = num_locals;
   elf_num_globals (abfd) = num_globals;
-  return true;
+  return TRUE;
 }
 
 /* Align to the maximum file alignment that could be required for any
    ELF data structure.  */
 
-static INLINE file_ptr align_file_position PARAMS ((file_ptr, int));
+static INLINE file_ptr align_file_position
+  PARAMS ((file_ptr, int));
 static INLINE file_ptr
 align_file_position (off, align)
      file_ptr off;
@@ -2998,7 +3029,7 @@ INLINE file_ptr
 _bfd_elf_assign_file_position_for_section (i_shdrp, offset, align)
      Elf_Internal_Shdr *i_shdrp;
      file_ptr offset;
-     boolean align;
+     bfd_boolean align;
 {
   if (align)
     {
@@ -3020,37 +3051,37 @@ _bfd_elf_assign_file_position_for_section (i_shdrp, offset, align)
    otherwise prepare to begin writing out the ELF file.  If LINK_INFO
    is not NULL, this is being called by the ELF backend linker.  */
 
-boolean
+bfd_boolean
 _bfd_elf_compute_section_file_positions (abfd, link_info)
      bfd *abfd;
      struct bfd_link_info *link_info;
 {
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  boolean failed;
+  bfd_boolean failed;
   struct bfd_strtab_hash *strtab;
   Elf_Internal_Shdr *shstrtab_hdr;
 
   if (abfd->output_has_begun)
-    return true;
+    return TRUE;
 
   /* Do any elf backend specific processing first.  */
   if (bed->elf_backend_begin_write_processing)
     (*bed->elf_backend_begin_write_processing) (abfd, link_info);
 
   if (! prep_headers (abfd))
-    return false;
+    return FALSE;
 
   /* Post process the headers if necessary.  */
   if (bed->elf_backend_post_process_headers)
     (*bed->elf_backend_post_process_headers) (abfd, link_info);
 
-  failed = false;
+  failed = FALSE;
   bfd_map_over_sections (abfd, elf_fake_sections, &failed);
   if (failed)
-    return false;
+    return FALSE;
 
   if (!assign_section_numbers (abfd))
-    return false;
+    return FALSE;
 
   /* The backend linker builds symbol table information itself.  */
   if (link_info == NULL && bfd_get_symcount (abfd) > 0)
@@ -3059,14 +3090,14 @@ _bfd_elf_compute_section_file_positions (abfd, link_info)
       int relocatable_p = ! (abfd->flags & (EXEC_P | DYNAMIC));
 
       if (! swap_out_syms (abfd, &strtab, relocatable_p))
-       return false;
+       return FALSE;
     }
 
   if (link_info == NULL)
     {
       bfd_map_over_sections (abfd, bfd_elf_set_group_contents, &failed);
       if (failed)
-       return false;
+       return FALSE;
     }
 
   shstrtab_hdr = &elf_tdata (abfd)->shstrtab_hdr;
@@ -3082,7 +3113,7 @@ _bfd_elf_compute_section_file_positions (abfd, link_info)
   shstrtab_hdr->sh_addralign = 1;
 
   if (!assign_file_positions_except_relocs (abfd))
-    return false;
+    return FALSE;
 
   if (link_info == NULL && bfd_get_symcount (abfd) > 0)
     {
@@ -3092,14 +3123,14 @@ _bfd_elf_compute_section_file_positions (abfd, link_info)
       off = elf_tdata (abfd)->next_file_pos;
 
       hdr = &elf_tdata (abfd)->symtab_hdr;
-      off = _bfd_elf_assign_file_position_for_section (hdr, off, true);
+      off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE);
 
       hdr = &elf_tdata (abfd)->symtab_shndx_hdr;
       if (hdr->sh_size != 0)
-       off = _bfd_elf_assign_file_position_for_section (hdr, off, true);
+       off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE);
 
       hdr = &elf_tdata (abfd)->strtab_hdr;
-      off = _bfd_elf_assign_file_position_for_section (hdr, off, true);
+      off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE);
 
       elf_tdata (abfd)->next_file_pos = off;
 
@@ -3107,13 +3138,13 @@ _bfd_elf_compute_section_file_positions (abfd, link_info)
          out.  */
       if (bfd_seek (abfd, hdr->sh_offset, SEEK_SET) != 0
          || ! _bfd_stringtab_emit (abfd, strtab))
-       return false;
+       return FALSE;
       _bfd_stringtab_free (strtab);
     }
 
-  abfd->output_has_begun = true;
+  abfd->output_has_begun = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* Create a mapping from a set of sections to a program segment.  */
@@ -3124,7 +3155,7 @@ make_mapping (abfd, sections, from, to, phdr)
      asection **sections;
      unsigned int from;
      unsigned int to;
-     boolean phdr;
+     bfd_boolean phdr;
 {
   struct elf_segment_map *m;
   unsigned int i;
@@ -3154,7 +3185,7 @@ make_mapping (abfd, sections, from, to, phdr)
 
 /* Set up a mapping from BFD sections to program segments.  */
 
-static boolean
+static bfd_boolean
 map_sections_to_segments (abfd)
      bfd *abfd;
 {
@@ -3169,18 +3200,18 @@ map_sections_to_segments (abfd)
   unsigned int phdr_index;
   bfd_vma maxpagesize;
   asection **hdrpp;
-  boolean phdr_in_segment = true;
-  boolean writable;
+  bfd_boolean phdr_in_segment = TRUE;
+  bfd_boolean writable;
   int tls_count = 0;
   asection *first_tls = NULL;
   asection *dynsec, *eh_frame_hdr;
   bfd_size_type amt;
 
   if (elf_tdata (abfd)->segment_map != NULL)
-    return true;
+    return TRUE;
 
   if (bfd_count_sections (abfd) == 0)
-    return true;
+    return TRUE;
 
   /* Select the allocated sections, and sort them.  */
 
@@ -3247,7 +3278,7 @@ map_sections_to_segments (abfd)
   last_hdr = NULL;
   phdr_index = 0;
   maxpagesize = get_elf_backend_data (abfd)->maxpagesize;
-  writable = false;
+  writable = FALSE;
   dynsec = bfd_get_section_by_name (abfd, ".dynamic");
   if (dynsec != NULL
       && (dynsec->flags & SEC_LOAD) == 0)
@@ -3267,13 +3298,13 @@ map_sections_to_segments (abfd)
       if ((abfd->flags & D_PAGED) == 0
          || sections[0]->lma < phdr_size
          || sections[0]->lma % maxpagesize < phdr_size % maxpagesize)
-       phdr_in_segment = false;
+       phdr_in_segment = FALSE;
     }
 
   for (i = 0, hdrpp = sections; i < count; i++, hdrpp++)
     {
       asection *hdr;
-      boolean new_segment;
+      bfd_boolean new_segment;
 
       hdr = *hdrpp;
 
@@ -3284,35 +3315,35 @@ map_sections_to_segments (abfd)
        {
          /* If we don't have a segment yet, then we don't need a new
             one (we build the last one after this loop).  */
-         new_segment = false;
+         new_segment = FALSE;
        }
       else if (last_hdr->lma - last_hdr->vma != hdr->lma - hdr->vma)
        {
          /* If this section has a different relation between the
              virtual address and the load address, then we need a new
              segment.  */
-         new_segment = true;
+         new_segment = TRUE;
        }
       else if (BFD_ALIGN (last_hdr->lma + last_hdr->_raw_size, maxpagesize)
               < BFD_ALIGN (hdr->lma, maxpagesize))
        {
          /* If putting this section in this segment would force us to
              skip a page in the segment, then we need a new segment.  */
-         new_segment = true;
+         new_segment = TRUE;
        }
       else if ((last_hdr->flags & SEC_LOAD) == 0
               && (hdr->flags & SEC_LOAD) != 0)
        {
          /* We don't want to put a loadable section after a
              nonloadable section in the same segment.  */
-         new_segment = true;
+         new_segment = TRUE;
        }
       else if ((abfd->flags & D_PAGED) == 0)
        {
          /* If the file is not demand paged, which means that we
              don't require the sections to be correctly aligned in the
              file, then there is no other reason for a new segment.  */
-         new_segment = false;
+         new_segment = FALSE;
        }
       else if (! writable
               && (hdr->flags & SEC_READONLY) == 0
@@ -3327,18 +3358,18 @@ map_sections_to_segments (abfd)
              only case in which the new section is not on the same
              page as the previous section is when the previous section
              ends precisely on a page boundary.  */
-         new_segment = true;
+         new_segment = TRUE;
        }
       else
        {
          /* Otherwise, we can use the same segment.  */
-         new_segment = false;
+         new_segment = FALSE;
        }
 
       if (! new_segment)
        {
          if ((hdr->flags & SEC_READONLY) == 0)
-           writable = true;
+           writable = TRUE;
          last_hdr = hdr;
          continue;
        }
@@ -3354,13 +3385,13 @@ map_sections_to_segments (abfd)
       pm = &m->next;
 
       if ((hdr->flags & SEC_READONLY) == 0)
-       writable = true;
+       writable = TRUE;
       else
-       writable = false;
+       writable = FALSE;
 
       last_hdr = hdr;
       phdr_index = i;
-      phdr_in_segment = false;
+      phdr_in_segment = FALSE;
     }
 
   /* Create a final PT_LOAD program segment.  */
@@ -3470,12 +3501,12 @@ map_sections_to_segments (abfd)
   sections = NULL;
 
   elf_tdata (abfd)->segment_map = mfirst;
-  return true;
+  return TRUE;
 
  error_return:
   if (sections != NULL)
     free (sections);
-  return false;
+  return FALSE;
 }
 
 /* Sort sections by address.  */
@@ -3538,7 +3569,7 @@ elf_sort_sections (arg1, arg2)
    sections to segments.  This function also sets up some fields in
    the file header, and writes out the program headers.  */
 
-static boolean
+static bfd_boolean
 assign_file_positions_for_segments (abfd)
      bfd *abfd;
 {
@@ -3556,7 +3587,7 @@ assign_file_positions_for_segments (abfd)
   if (elf_tdata (abfd)->segment_map == NULL)
     {
       if (! map_sections_to_segments (abfd))
-       return false;
+       return FALSE;
     }
   else
     {
@@ -3593,7 +3624,7 @@ assign_file_positions_for_segments (abfd)
   if (bed->elf_backend_modify_segment_map)
     {
       if (! (*bed->elf_backend_modify_segment_map) (abfd))
-       return false;
+       return FALSE;
     }
 
   count = 0;
@@ -3605,7 +3636,7 @@ assign_file_positions_for_segments (abfd)
   elf_elfheader (abfd)->e_phnum = count;
 
   if (count == 0)
-    return true;
+    return TRUE;
 
   /* If we already counted the number of program segments, make sure
      that we allocated enough space.  This happens when SIZEOF_HEADERS
@@ -3617,7 +3648,7 @@ assign_file_positions_for_segments (abfd)
        (_("%s: Not enough room for program headers (allocated %u, need %u)"),
        bfd_get_filename (abfd), alloc, count));
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   if (alloc == 0)
@@ -3626,7 +3657,7 @@ assign_file_positions_for_segments (abfd)
   amt = alloc * sizeof (Elf_Internal_Phdr);
   phdrs = (Elf_Internal_Phdr *) bfd_alloc (abfd, amt);
   if (phdrs == NULL)
-    return false;
+    return FALSE;
 
   off = bed->s->sizeof_ehdr;
   off += alloc * bed->s->sizeof_phdr;
@@ -3722,7 +3753,7 @@ assign_file_positions_for_segments (abfd)
                    (_("%s: Not enough room for program headers, try linking with -N"),
                     bfd_get_filename (abfd));
                  bfd_set_error (bfd_error_bad_value);
-                 return false;
+                 return FALSE;
                }
 
              p->p_vaddr -= off;
@@ -3849,7 +3880,7 @@ Error: First section in segment (%s) starts at 0x%x whereas the segment starts a
                                              bfd_section_name (abfd, sec),
                                              sec->lma,
                                              p->p_paddr);
-                     return false;
+                     return FALSE;
                    }
                  p->p_memsz += adjust;
                  off += adjust;
@@ -3972,9 +4003,9 @@ Error: First section in segment (%s) starts at 0x%x whereas the segment starts a
   /* Write out the program headers.  */
   if (bfd_seek (abfd, (bfd_signed_vma) bed->s->sizeof_ehdr, SEEK_SET) != 0
       || bed->s->write_out_phdrs (abfd, phdrs, alloc) != 0)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Get the size of the program header.
@@ -4083,7 +4114,7 @@ get_program_header_size (abfd)
 
    We also don't set the positions of the .symtab and .strtab here.  */
 
-static boolean
+static bfd_boolean
 assign_file_positions_except_relocs (abfd)
      bfd *abfd;
 {
@@ -4120,7 +4151,7 @@ assign_file_positions_except_relocs (abfd)
              hdr->sh_offset = -1;
            }
          else
-           off = _bfd_elf_assign_file_position_for_section (hdr, off, true);
+           off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE);
 
          if (i == SHN_LORESERVE - 1)
            {
@@ -4137,7 +4168,7 @@ assign_file_positions_except_relocs (abfd)
       /* Assign file positions for the loaded sections based on the
          assignment of sections to segments.  */
       if (! assign_file_positions_for_segments (abfd))
-       return false;
+       return FALSE;
 
       /* Assign file positions for the other sections.  */
 
@@ -4163,7 +4194,7 @@ assign_file_positions_except_relocs (abfd)
              else
                off += (hdr->sh_addr - off) % hdr->sh_addralign;
              off = _bfd_elf_assign_file_position_for_section (hdr, off,
-                                                              false);
+                                                              FALSE);
            }
          else if (hdr->sh_type == SHT_REL
                   || hdr->sh_type == SHT_RELA
@@ -4172,7 +4203,7 @@ assign_file_positions_except_relocs (abfd)
                   || hdr == i_shdrpp[tdata->strtab_section])
            hdr->sh_offset = -1;
          else
-           off = _bfd_elf_assign_file_position_for_section (hdr, off, true);
+           off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE);
 
          if (i == SHN_LORESERVE - 1)
            {
@@ -4189,10 +4220,10 @@ assign_file_positions_except_relocs (abfd)
 
   elf_tdata (abfd)->next_file_pos = off;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 prep_headers (abfd)
      bfd *abfd;
 {
@@ -4207,7 +4238,7 @@ prep_headers (abfd)
 
   shstrtab = _bfd_elf_strtab_init ();
   if (shstrtab == NULL)
-    return false;
+    return FALSE;
 
   elf_shstrtab (abfd) = shstrtab;
 
@@ -4285,17 +4316,17 @@ prep_headers (abfd)
     }
 
   elf_tdata (abfd)->symtab_hdr.sh_name =
-    (unsigned int) _bfd_elf_strtab_add (shstrtab, ".symtab", false);
+    (unsigned int) _bfd_elf_strtab_add (shstrtab, ".symtab", FALSE);
   elf_tdata (abfd)->strtab_hdr.sh_name =
-    (unsigned int) _bfd_elf_strtab_add (shstrtab, ".strtab", false);
+    (unsigned int) _bfd_elf_strtab_add (shstrtab, ".strtab", FALSE);
   elf_tdata (abfd)->shstrtab_hdr.sh_name =
-    (unsigned int) _bfd_elf_strtab_add (shstrtab, ".shstrtab", false);
+    (unsigned int) _bfd_elf_strtab_add (shstrtab, ".shstrtab", FALSE);
   if (elf_tdata (abfd)->symtab_hdr.sh_name == (unsigned int) -1
       || elf_tdata (abfd)->symtab_hdr.sh_name == (unsigned int) -1
       || elf_tdata (abfd)->shstrtab_hdr.sh_name == (unsigned int) -1)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Assign file positions for all the reloc sections which are not part
@@ -4319,34 +4350,34 @@ _bfd_elf_assign_file_positions_for_relocs (abfd)
       shdrp = *shdrpp;
       if ((shdrp->sh_type == SHT_REL || shdrp->sh_type == SHT_RELA)
          && shdrp->sh_offset == -1)
-       off = _bfd_elf_assign_file_position_for_section (shdrp, off, true);
+       off = _bfd_elf_assign_file_position_for_section (shdrp, off, TRUE);
     }
 
   elf_tdata (abfd)->next_file_pos = off;
 }
 
-boolean
+bfd_boolean
 _bfd_elf_write_object_contents (abfd)
      bfd *abfd;
 {
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
   Elf_Internal_Ehdr *i_ehdrp;
   Elf_Internal_Shdr **i_shdrp;
-  boolean failed;
+  bfd_boolean failed;
   unsigned int count, num_sec;
 
   if (! abfd->output_has_begun
       && ! _bfd_elf_compute_section_file_positions
              (abfd, (struct bfd_link_info *) NULL))
-    return false;
+    return FALSE;
 
   i_shdrp = elf_elfsections (abfd);
   i_ehdrp = elf_elfheader (abfd);
 
-  failed = false;
+  failed = FALSE;
   bfd_map_over_sections (abfd, bed->s->write_relocs, &failed);
   if (failed)
-    return false;
+    return FALSE;
 
   _bfd_elf_assign_file_positions_for_relocs (abfd);
 
@@ -4362,7 +4393,7 @@ _bfd_elf_write_object_contents (abfd)
 
          if (bfd_seek (abfd, i_shdrp[count]->sh_offset, SEEK_SET) != 0
              || bfd_bwrite (i_shdrp[count]->contents, amt, abfd) != amt)
-           return false;
+           return FALSE;
        }
       if (count == SHN_LORESERVE - 1)
        count += SHN_HIRESERVE + 1 - SHN_LORESERVE;
@@ -4371,7 +4402,7 @@ _bfd_elf_write_object_contents (abfd)
   /* Write out the section header names.  */
   if (bfd_seek (abfd, elf_tdata (abfd)->shstrtab_hdr.sh_offset, SEEK_SET) != 0
       || ! _bfd_elf_strtab_emit (abfd, elf_shstrtab (abfd)))
-    return false;
+    return FALSE;
 
   if (bed->elf_backend_final_write_processing)
     (*bed->elf_backend_final_write_processing) (abfd,
@@ -4380,7 +4411,7 @@ _bfd_elf_write_object_contents (abfd)
   return bed->s->write_shdrs_and_ehdr (abfd);
 }
 
-boolean
+bfd_boolean
 _bfd_elf_write_corefile_contents (abfd)
      bfd *abfd;
 {
@@ -4498,31 +4529,31 @@ _bfd_elf_symbol_from_bfd_symbol (abfd, asym_ptr_ptr)
 
 /* Copy private BFD data.  This copies any program header information.  */
 
-static boolean
+static bfd_boolean
 copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
-  Elf_Internal_Ehdr *       iehdr;
-  struct elf_segment_map *  map;
-  struct elf_segment_map *  map_first;
-  struct elf_segment_map ** pointer_to_map;
-  Elf_Internal_Phdr *       segment;
-  asection *                section;
-  unsigned int              i;
-  unsigned int              num_segments;
-  boolean                   phdr_included = false;
-  bfd_vma                   maxpagesize;
-  struct elf_segment_map *  phdr_adjust_seg = NULL;
-  unsigned int              phdr_adjust_num = 0;
-  struct elf_backend_data * bed;
+  Elf_Internal_Ehdr *iehdr;
+  struct elf_segment_map *map;
+  struct elf_segment_map *map_first;
+  struct elf_segment_map **pointer_to_map;
+  Elf_Internal_Phdr *segment;
+  asection *section;
+  unsigned int i;
+  unsigned int num_segments;
+  bfd_boolean phdr_included = FALSE;
+  bfd_vma maxpagesize;
+  struct elf_segment_map *phdr_adjust_seg = NULL;
+  unsigned int phdr_adjust_num = 0;
+  struct elf_backend_data *bed;
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (elf_tdata (ibfd)->phdr == NULL)
-    return true;
+    return TRUE;
 
   bed = get_elf_backend_data (ibfd);
   iehdr = elf_elfheader (ibfd);
@@ -4538,14 +4569,14 @@ copy_private_bfd_data (ibfd, obfd)
   (start + (segment->p_memsz > segment->p_filesz                       \
            ? segment->p_memsz : segment->p_filesz))
 
-  /* Returns true if the given section is contained within
+  /* Returns TRUE if the given section is contained within
      the given segment.  VMA addresses are compared.  */
 #define IS_CONTAINED_BY_VMA(section, segment)                          \
   (section->vma >= segment->p_vaddr                                    \
    && (section->vma + section->_raw_size                               \
        <= (SEGMENT_END (segment, segment->p_vaddr))))
 
-  /* Returns true if the given section is contained within
+  /* Returns TRUE if the given section is contained within
      the given segment.  LMA addresses are compared.  */
 #define IS_CONTAINED_BY_LMA(section, segment, base)                    \
   (section->lma >= base                                                        \
@@ -4591,18 +4622,18 @@ copy_private_bfd_data (ibfd, obfd)
    && section->output_section != NULL                                  \
    && ! section->segment_mark)
 
-  /* Returns true iff seg1 starts after the end of seg2.  */
+  /* Returns TRUE iff seg1 starts after the end of seg2.  */
 #define SEGMENT_AFTER_SEGMENT(seg1, seg2)                              \
   (seg1->p_vaddr >= SEGMENT_END (seg2, seg2->p_vaddr))
 
-  /* Returns true iff seg1 and seg2 overlap.  */
+  /* Returns TRUE iff seg1 and seg2 overlap.  */
 #define SEGMENT_OVERLAPS(seg1, seg2)                                   \
   (!(SEGMENT_AFTER_SEGMENT (seg1, seg2)                                        \
      || SEGMENT_AFTER_SEGMENT (seg2, seg1)))
 
   /* Initialise the segment mark field.  */
   for (section = ibfd->sections; section != NULL; section = section->next)
-    section->segment_mark = false;
+    section->segment_mark = FALSE;
 
   /* Scan through the segments specified in the program header
      of the input BFD.  For this first scan we look for overlaps
@@ -4707,7 +4738,7 @@ copy_private_bfd_data (ibfd, obfd)
       amt += ((bfd_size_type) section_count - 1) * sizeof (asection *);
       map = (struct elf_segment_map *) bfd_alloc (obfd, amt);
       if (map == NULL)
-       return false;
+       return FALSE;
 
       /* Initialise the fields of the segment map.  Default to
         using the physical address of the segment in the input BFD.  */
@@ -4734,7 +4765,7 @@ copy_private_bfd_data (ibfd, obfd)
                     + iehdr->e_phnum * iehdr->e_phentsize)));
 
          if (segment->p_type == PT_LOAD && map->includes_phdrs)
-           phdr_included = true;
+           phdr_included = TRUE;
        }
 
       if (section_count == 0)
@@ -4788,7 +4819,7 @@ copy_private_bfd_data (ibfd, obfd)
       amt = section_count * sizeof (asection *);
       sections = (asection **) bfd_malloc (amt);
       if (sections == NULL)
-       return false;
+       return FALSE;
 
       /* Step One: Scan for segment vs section LMA conflicts.
         Also add the sections to the section array allocated above.
@@ -4969,7 +5000,7 @@ copy_private_bfd_data (ibfd, obfd)
                  map->sections[map->count++] = output_section;
                  ++isec;
                  sections[j] = NULL;
-                 section->segment_mark = true;
+                 section->segment_mark = TRUE;
                }
              else if (suggested_lma == 0)
                suggested_lma = output_section->lma;
@@ -4990,7 +5021,7 @@ copy_private_bfd_data (ibfd, obfd)
              amt += ((bfd_size_type) section_count - 1) * sizeof (asection *);
              map = (struct elf_segment_map *) bfd_alloc (obfd, amt);
              if (map == NULL)
-               return false;
+               return FALSE;
 
              /* Initialise the fields of the segment map.  Set the physical
                 physical address to the LMA of the first section that has
@@ -5073,13 +5104,13 @@ copy_private_bfd_data (ibfd, obfd)
 #undef INCLUDE_SECTION_IN_SEGMENT
 #undef SEGMENT_AFTER_SEGMENT
 #undef SEGMENT_OVERLAPS
-  return true;
+  return TRUE;
 }
 
 /* Copy private section information.  This copies over the entsize
    field, and sometimes the info field.  */
 
-boolean
+bfd_boolean
 _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
      bfd *ibfd;
      asection *isec;
@@ -5090,7 +5121,7 @@ _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
 
   if (ibfd->xvec->flavour != bfd_target_elf_flavour
       || obfd->xvec->flavour != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (elf_tdata (obfd)->segment_map == NULL && elf_tdata (ibfd)->phdr != NULL)
     {
@@ -5106,7 +5137,7 @@ _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
        if (s == NULL)
          {
            if (! copy_private_bfd_data (ibfd, obfd))
-             return false;
+             return FALSE;
          }
     }
 
@@ -5130,7 +5161,7 @@ _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
   elf_section_data (osec)->use_rela_p
     = elf_section_data (isec)->use_rela_p;
 
-  return true;
+  return TRUE;
 }
 
 /* Copy private symbol information.  If this symbol is in a section
@@ -5145,7 +5176,7 @@ _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
 #define MAP_SHSTRTAB  (SHN_HIOS + 4)
 #define MAP_SYM_SHNDX (SHN_HIOS + 5)
 
-boolean
+bfd_boolean
 _bfd_elf_copy_private_symbol_data (ibfd, isymarg, obfd, osymarg)
      bfd *ibfd;
      asymbol *isymarg;
@@ -5156,7 +5187,7 @@ _bfd_elf_copy_private_symbol_data (ibfd, isymarg, obfd, osymarg)
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   isym = elf_symbol_from (ibfd, isymarg);
   osym = elf_symbol_from (obfd, osymarg);
@@ -5181,12 +5212,12 @@ _bfd_elf_copy_private_symbol_data (ibfd, isymarg, obfd, osymarg)
       osym->internal_elf_sym.st_shndx = shndx;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Swap out the symbols.  */
 
-static boolean
+static bfd_boolean
 swap_out_syms (abfd, sttp, relocatable_p)
      bfd *abfd;
      struct bfd_strtab_hash **sttp;
@@ -5205,12 +5236,12 @@ swap_out_syms (abfd, sttp, relocatable_p)
   bfd_size_type amt;
 
   if (!elf_map_symbols (abfd))
-    return false;
+    return FALSE;
 
   /* Dump out the symtabs.  */
   stt = _bfd_elf_stringtab_init ();
   if (stt == NULL)
-    return false;
+    return FALSE;
 
   bed = get_elf_backend_data (abfd);
   symcount = bfd_get_symcount (abfd);
@@ -5227,7 +5258,7 @@ swap_out_syms (abfd, sttp, relocatable_p)
   amt = (bfd_size_type) (1 + symcount) * bed->s->sizeof_sym;
   outbound_syms = bfd_alloc (abfd, amt);
   if (outbound_syms == NULL)
-    return false;
+    return FALSE;
   symtab_hdr->contents = (PTR) outbound_syms;
 
   outbound_shndx = NULL;
@@ -5237,7 +5268,7 @@ swap_out_syms (abfd, sttp, relocatable_p)
       amt = (bfd_size_type) (1 + symcount) * sizeof (Elf_External_Sym_Shndx);
       outbound_shndx = bfd_zalloc (abfd, amt);
       if (outbound_shndx == NULL)
-       return false;
+       return FALSE;
       symtab_shndx_hdr->contents = outbound_shndx;
       symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX;
       symtab_shndx_hdr->sh_size = amt;
@@ -5279,9 +5310,9 @@ swap_out_syms (abfd, sttp, relocatable_p)
        {
          sym.st_name = (unsigned long) _bfd_stringtab_add (stt,
                                                            syms[idx]->name,
-                                                           true, false);
+                                                           TRUE, FALSE);
          if (sym.st_name == (unsigned long) -1)
-           return false;
+           return FALSE;
        }
 
       type_ptr = elf_symbol_from (abfd, syms[idx]);
@@ -5441,7 +5472,7 @@ swap_out_syms (abfd, sttp, relocatable_p)
   symstrtab_hdr->sh_info = 0;
   symstrtab_hdr->sh_addralign = 1;
 
-  return true;
+  return TRUE;
 }
 
 /* Return the number of bytes required to hold the symtab vector.
@@ -5509,7 +5540,7 @@ _bfd_elf_canonicalize_reloc (abfd, section, relptr, symbols)
   unsigned int i;
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
 
-  if (! bed->s->slurp_reloc_table (abfd, section, symbols, false))
+  if (! bed->s->slurp_reloc_table (abfd, section, symbols, FALSE))
     return -1;
 
   tblptr = section->relocation;
@@ -5527,7 +5558,7 @@ _bfd_elf_get_symtab (abfd, alocation)
      asymbol **alocation;
 {
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  long symcount = bed->s->slurp_symbol_table (abfd, alocation, false);
+  long symcount = bed->s->slurp_symbol_table (abfd, alocation, FALSE);
 
   if (symcount >= 0)
     bfd_get_symcount (abfd) = symcount;
@@ -5540,7 +5571,7 @@ _bfd_elf_canonicalize_dynamic_symtab (abfd, alocation)
      asymbol **alocation;
 {
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  long symcount = bed->s->slurp_symbol_table (abfd, alocation, true);
+  long symcount = bed->s->slurp_symbol_table (abfd, alocation, TRUE);
 
   if (symcount >= 0)
     bfd_get_dynamic_symcount (abfd) = symcount;
@@ -5591,7 +5622,8 @@ _bfd_elf_canonicalize_dynamic_reloc (abfd, storage, syms)
      arelent **storage;
      asymbol **syms;
 {
-  boolean (*slurp_relocs) PARAMS ((bfd *, asection *, asymbol **, boolean));
+  bfd_boolean (*slurp_relocs)
+    PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
   asection *s;
   long ret;
 
@@ -5612,7 +5644,7 @@ _bfd_elf_canonicalize_dynamic_reloc (abfd, storage, syms)
          arelent *p;
          long count, i;
 
-         if (! (*slurp_relocs) (abfd, s, syms, true))
+         if (! (*slurp_relocs) (abfd, s, syms, TRUE))
            return -1;
          count = s->_raw_size / elf_section_data (s)->this_hdr.sh_entsize;
          p = s->relocation;
@@ -5629,7 +5661,7 @@ _bfd_elf_canonicalize_dynamic_reloc (abfd, storage, syms)
 \f
 /* Read in the version information.  */
 
-boolean
+bfd_boolean
 _bfd_elf_slurp_version_tables (abfd)
      bfd *abfd;
 {
@@ -5816,12 +5848,12 @@ _bfd_elf_slurp_version_tables (abfd)
       contents = NULL;
     }
 
-  return true;
+  return TRUE;
 
  error_return:
   if (contents == NULL)
     free (contents);
-  return false;
+  return FALSE;
 }
 \f
 asymbol *
@@ -5854,19 +5886,19 @@ _bfd_elf_get_symbol_info (ignore_abfd, symbol, ret)
    use this function for the is_local_label_name entry point, but some
    override it.  */
 
-boolean
+bfd_boolean
 _bfd_elf_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
 {
   /* Normal local symbols start with ``.L''.  */
   if (name[0] == '.' && name[1] == 'L')
-    return true;
+    return TRUE;
 
   /* At least some SVR4 compilers (e.g., UnixWare 2.1 cc) generate
      DWARF debugging symbols starting with ``..''.  */
   if (name[0] == '.' && name[1] == '.')
-    return true;
+    return TRUE;
 
   /* gcc will sometimes generate symbols beginning with ``_.L_'' when
      emitting DWARF debugging output.  I suspect this is actually a
@@ -5875,9 +5907,9 @@ _bfd_elf_is_local_label_name (abfd, name)
      underscore to be emitted on some ELF targets).  For ease of use,
      we treat such symbols as local.  */
   if (name[0] == '_' && name[1] == '.' && name[2] == 'L' && name[3] == '_')
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 alent *
@@ -5889,7 +5921,7 @@ _bfd_elf_get_lineno (ignore_abfd, symbol)
   return NULL;
 }
 
-boolean
+bfd_boolean
 _bfd_elf_set_arch_mach (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -5900,7 +5932,7 @@ _bfd_elf_set_arch_mach (abfd, arch, machine)
   if (arch != get_elf_backend_data (abfd)->arch
       && arch != bfd_arch_unknown
       && get_elf_backend_data (abfd)->arch != bfd_arch_unknown)
-    return false;
+    return FALSE;
 
   return bfd_default_set_arch_mach (abfd, arch, machine);
 }
@@ -5908,7 +5940,7 @@ _bfd_elf_set_arch_mach (abfd, arch, machine)
 /* Find the function to a particular section and offset,
    for error reporting.  */
 
-static boolean
+static bfd_boolean
 elf_find_function (abfd, section, symbols, offset,
                   filename_ptr, functionname_ptr)
      bfd *abfd ATTRIBUTE_UNUSED;
@@ -5957,20 +5989,20 @@ elf_find_function (abfd, section, symbols, offset,
     }
 
   if (func == NULL)
-    return false;
+    return FALSE;
 
   if (filename_ptr)
     *filename_ptr = filename;
   if (functionname_ptr)
     *functionname_ptr = bfd_asymbol_name (func);
 
-  return true;
+  return TRUE;
 }
 
 /* Find the nearest line to a particular section and offset,
    for error reporting.  */
 
-boolean
+bfd_boolean
 _bfd_elf_find_nearest_line (abfd, section, symbols, offset,
                            filename_ptr, functionname_ptr, line_ptr)
      bfd *abfd;
@@ -5981,7 +6013,7 @@ _bfd_elf_find_nearest_line (abfd, section, symbols, offset,
      const char **functionname_ptr;
      unsigned int *line_ptr;
 {
-  boolean found;
+  bfd_boolean found;
 
   if (_bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset,
                                     filename_ptr, functionname_ptr,
@@ -5992,7 +6024,7 @@ _bfd_elf_find_nearest_line (abfd, section, symbols, offset,
                           *filename_ptr ? NULL : filename_ptr,
                           functionname_ptr);
 
-      return true;
+      return TRUE;
     }
 
   if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
@@ -6005,32 +6037,32 @@ _bfd_elf_find_nearest_line (abfd, section, symbols, offset,
                           *filename_ptr ? NULL : filename_ptr,
                           functionname_ptr);
 
-      return true;
+      return TRUE;
     }
 
   if (! _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset,
                                             &found, filename_ptr,
                                             functionname_ptr, line_ptr,
                                             &elf_tdata (abfd)->line_info))
-    return false;
+    return FALSE;
   if (found && (*functionname_ptr || *line_ptr))
-    return true;
+    return TRUE;
 
   if (symbols == NULL)
-    return false;
+    return FALSE;
 
   if (! elf_find_function (abfd, section, symbols, offset,
                           filename_ptr, functionname_ptr))
-    return false;
+    return FALSE;
 
   *line_ptr = 0;
-  return true;
+  return TRUE;
 }
 
 int
 _bfd_elf_sizeof_headers (abfd, reloc)
      bfd *abfd;
-     boolean reloc;
+     bfd_boolean reloc;
 {
   int ret;
 
@@ -6040,7 +6072,7 @@ _bfd_elf_sizeof_headers (abfd, reloc)
   return ret;
 }
 
-boolean
+bfd_boolean
 _bfd_elf_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -6054,15 +6086,15 @@ _bfd_elf_set_section_contents (abfd, section, location, offset, count)
   if (! abfd->output_has_begun
       && ! (_bfd_elf_compute_section_file_positions
            (abfd, (struct bfd_link_info *) NULL)))
-    return false;
+    return FALSE;
 
   hdr = &elf_section_data (section)->this_hdr;
   pos = hdr->sh_offset + offset;
   if (bfd_seek (abfd, pos, SEEK_SET) != 0
       || bfd_bwrite (location, count, abfd) != count)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 void
@@ -6074,20 +6106,9 @@ _bfd_elf_no_info_to_howto (abfd, cache_ptr, dst)
   abort ();
 }
 
-#if 0
-void
-_bfd_elf_no_info_to_howto_rel (abfd, cache_ptr, dst)
-     bfd *abfd;
-     arelent *cache_ptr;
-     Elf_Internal_Rel *dst;
-{
-  abort ();
-}
-#endif
-
 /* Try to convert a non-ELF reloc into an ELF one.  */
 
-boolean
+bfd_boolean
 _bfd_elf_validate_reloc (abfd, areloc)
      bfd *abfd;
      arelent *areloc;
@@ -6173,17 +6194,17 @@ _bfd_elf_validate_reloc (abfd, areloc)
        goto fail;
     }
 
-  return true;
+  return TRUE;
 
  fail:
   (*_bfd_error_handler)
     (_("%s: unsupported relocation type %s"),
      bfd_archive_filename (abfd), areloc->howto->name);
   bfd_set_error (bfd_error_bad_value);
-  return false;
+  return FALSE;
 }
 
-boolean
+bfd_boolean
 _bfd_elf_close_and_cleanup (abfd)
      bfd *abfd;
 {
@@ -6238,7 +6259,7 @@ elfcore_make_pid (abfd)
    reference to NAME, so you shouldn't deallocate or
    overwrite it.  */
 
-static boolean
+static bfd_boolean
 elfcore_maybe_make_sect (abfd, name, sect)
      bfd *abfd;
      char *name;
@@ -6247,17 +6268,17 @@ elfcore_maybe_make_sect (abfd, name, sect)
   asection *sect2;
 
   if (bfd_get_section_by_name (abfd, name) != NULL)
-    return true;
+    return TRUE;
 
   sect2 = bfd_make_section (abfd, name);
   if (sect2 == NULL)
-    return false;
+    return FALSE;
 
   sect2->_raw_size = sect->_raw_size;
   sect2->filepos = sect->filepos;
   sect2->flags = sect->flags;
   sect2->alignment_power = sect->alignment_power;
-  return true;
+  return TRUE;
 }
 
 /* Create a pseudosection containing SIZE bytes at FILEPOS.  This
@@ -6267,7 +6288,7 @@ elfcore_maybe_make_sect (abfd, name, sect)
    - For the multi-threaded case, a section named "NAME/PID", where
      PID is elfcore_make_pid (abfd).
    Both pseudosections have identical contents. */
-boolean
+bfd_boolean
 _bfd_elfcore_make_pseudosection (abfd, name, size, filepos)
      bfd *abfd;
      char *name;
@@ -6285,12 +6306,12 @@ _bfd_elfcore_make_pseudosection (abfd, name, size, filepos)
   len = strlen (buf) + 1;
   threaded_name = bfd_alloc (abfd, (bfd_size_type) len);
   if (threaded_name == NULL)
-    return false;
+    return FALSE;
   memcpy (threaded_name, buf, len);
 
   sect = bfd_make_section (abfd, threaded_name);
   if (sect == NULL)
-    return false;
+    return FALSE;
   sect->_raw_size = size;
   sect->filepos = filepos;
   sect->flags = SEC_HAS_CONTENTS;
@@ -6306,9 +6327,10 @@ _bfd_elfcore_make_pseudosection (abfd, name, size, filepos)
 */
 
 #if defined (HAVE_PRSTATUS_T)
-static boolean elfcore_grok_prstatus PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elfcore_grok_prstatus
+  PARAMS ((bfd *, Elf_Internal_Note *));
 
-static boolean
+static bfd_boolean
 elfcore_grok_prstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6371,7 +6393,7 @@ elfcore_grok_prstatus (abfd, note)
     {
       /* Fail - we don't know how to handle any other
         note size (ie. data object type).  */
-      return true;
+      return TRUE;
     }
 
   /* Make a ".reg/999" section and a ".reg" section.  */
@@ -6381,7 +6403,7 @@ elfcore_grok_prstatus (abfd, note)
 #endif /* defined (HAVE_PRSTATUS_T) */
 
 /* Create a pseudosection containing the exact contents of NOTE.  */
-static boolean
+static bfd_boolean
 elfcore_make_note_pseudosection (abfd, name, note)
      bfd *abfd;
      char *name;
@@ -6395,7 +6417,7 @@ elfcore_make_note_pseudosection (abfd, name, note)
    but it doesn't matter, because we don't have to pick this
    data structure apart.  */
 
-static boolean
+static bfd_boolean
 elfcore_grok_prfpreg (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6407,7 +6429,7 @@ elfcore_grok_prfpreg (abfd, note)
    type of 5 (NT_PRXFPREG).  Just include the whole note's contents
    literally.  */
 
-static boolean
+static bfd_boolean
 elfcore_grok_prxfpreg (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6459,9 +6481,10 @@ _bfd_elfcore_strndup (abfd, start, max)
 }
 
 #if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T)
-static boolean elfcore_grok_psinfo PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elfcore_grok_psinfo
+  PARAMS ((bfd *, Elf_Internal_Note *));
 
-static boolean
+static bfd_boolean
 elfcore_grok_psinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6502,7 +6525,7 @@ elfcore_grok_psinfo (abfd, note)
     {
       /* Fail - we don't know how to handle any other
         note size (ie. data object type).  */
-      return true;
+      return TRUE;
     }
 
   /* Note that for some reason, a spurious space is tacked
@@ -6517,14 +6540,15 @@ elfcore_grok_psinfo (abfd, note)
       command[n - 1] = '\0';
   }
 
-  return true;
+  return TRUE;
 }
 #endif /* defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) */
 
 #if defined (HAVE_PSTATUS_T)
-static boolean elfcore_grok_pstatus PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elfcore_grok_pstatus
+  PARAMS ((bfd *, Elf_Internal_Note *));
 
-static boolean
+static bfd_boolean
 elfcore_grok_pstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6556,14 +6580,15 @@ elfcore_grok_pstatus (abfd, note)
      lwpstatus_t in pstat.pr_lwp, but we'll catch it all in an
      NT_LWPSTATUS note, presumably.  */
 
-  return true;
+  return TRUE;
 }
 #endif /* defined (HAVE_PSTATUS_T) */
 
 #if defined (HAVE_LWPSTATUS_T)
-static boolean elfcore_grok_lwpstatus PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elfcore_grok_lwpstatus
+  PARAMS ((bfd *, Elf_Internal_Note *));
 
-static boolean
+static bfd_boolean
 elfcore_grok_lwpstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6579,7 +6604,7 @@ elfcore_grok_lwpstatus (abfd, note)
       && note->descsz != sizeof (lwpxstatus_t)
 #endif
       )
-    return true;
+    return TRUE;
 
   memcpy (&lwpstat, note->descdata, sizeof (lwpstat));
 
@@ -6592,12 +6617,12 @@ elfcore_grok_lwpstatus (abfd, note)
   len = strlen (buf) + 1;
   name = bfd_alloc (abfd, (bfd_size_type) len);
   if (name == NULL)
-    return false;
+    return FALSE;
   memcpy (name, buf, len);
 
   sect = bfd_make_section (abfd, name);
   if (sect == NULL)
-    return false;
+    return FALSE;
 
 #if defined (HAVE_LWPSTATUS_T_PR_CONTEXT)
   sect->_raw_size = sizeof (lwpstat.pr_context.uc_mcontext.gregs);
@@ -6614,7 +6639,7 @@ elfcore_grok_lwpstatus (abfd, note)
   sect->alignment_power = 2;
 
   if (!elfcore_maybe_make_sect (abfd, ".reg", sect))
-    return false;
+    return FALSE;
 
   /* Make a ".reg2/999" section */
 
@@ -6622,12 +6647,12 @@ elfcore_grok_lwpstatus (abfd, note)
   len = strlen (buf) + 1;
   name = bfd_alloc (abfd, (bfd_size_type) len);
   if (name == NULL)
-    return false;
+    return FALSE;
   memcpy (name, buf, len);
 
   sect = bfd_make_section (abfd, name);
   if (sect == NULL)
-    return false;
+    return FALSE;
 
 #if defined (HAVE_LWPSTATUS_T_PR_CONTEXT)
   sect->_raw_size = sizeof (lwpstat.pr_context.uc_mcontext.fpregs);
@@ -6648,7 +6673,7 @@ elfcore_grok_lwpstatus (abfd, note)
 #endif /* defined (HAVE_LWPSTATUS_T) */
 
 #if defined (HAVE_WIN32_PSTATUS_T)
-static boolean
+static bfd_boolean
 elfcore_grok_win32pstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6660,7 +6685,7 @@ elfcore_grok_win32pstatus (abfd, note)
   win32_pstatus_t pstatus;
 
   if (note->descsz < sizeof (pstatus))
-    return true;
+    return TRUE;
 
   memcpy (&pstatus, note->descdata, sizeof (pstatus));
 
@@ -6679,13 +6704,13 @@ elfcore_grok_win32pstatus (abfd, note)
       len = strlen (buf) + 1;
       name = bfd_alloc (abfd, (bfd_size_type) len);
       if (name == NULL)
-       return false;
+       return FALSE;
 
       memcpy (name, buf, len);
 
       sect = bfd_make_section (abfd, name);
       if (sect == NULL)
-       return false;
+       return FALSE;
 
       sect->_raw_size = sizeof (pstatus.data.thread_info.thread_context);
       sect->filepos = (note->descpos
@@ -6696,7 +6721,7 @@ elfcore_grok_win32pstatus (abfd, note)
 
       if (pstatus.data.thread_info.is_active_thread)
        if (! elfcore_maybe_make_sect (abfd, ".reg", sect))
-         return false;
+         return FALSE;
       break;
 
     case NOTE_INFO_MODULE:
@@ -6706,14 +6731,14 @@ elfcore_grok_win32pstatus (abfd, note)
       len = strlen (buf) + 1;
       name = bfd_alloc (abfd, (bfd_size_type) len);
       if (name == NULL)
-       return false;
+       return FALSE;
 
       memcpy (name, buf, len);
 
       sect = bfd_make_section (abfd, name);
 
       if (sect == NULL)
-       return false;
+       return FALSE;
 
       sect->_raw_size = note->descsz;
       sect->filepos = note->descpos;
@@ -6722,14 +6747,14 @@ elfcore_grok_win32pstatus (abfd, note)
       break;
 
     default:
-      return true;
+      return TRUE;
     }
 
-  return true;
+  return TRUE;
 }
 #endif /* HAVE_WIN32_PSTATUS_T */
 
-static boolean
+static bfd_boolean
 elfcore_grok_note (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6739,16 +6764,16 @@ elfcore_grok_note (abfd, note)
   switch (note->type)
     {
     default:
-      return true;
+      return TRUE;
 
     case NT_PRSTATUS:
       if (bed->elf_backend_grok_prstatus)
        if ((*bed->elf_backend_grok_prstatus) (abfd, note))
-         return true;
+         return TRUE;
 #if defined (HAVE_PRSTATUS_T)
       return elfcore_grok_prstatus (abfd, note);
 #else
-      return true;
+      return TRUE;
 #endif
 
 #if defined (HAVE_PSTATUS_T)
@@ -6774,22 +6799,22 @@ elfcore_grok_note (abfd, note)
          && strcmp (note->namedata, "LINUX") == 0)
        return elfcore_grok_prxfpreg (abfd, note);
       else
-       return true;
+       return TRUE;
 
     case NT_PRPSINFO:
     case NT_PSINFO:
       if (bed->elf_backend_grok_psinfo)
        if ((*bed->elf_backend_grok_psinfo) (abfd, note))
-         return true;
+         return TRUE;
 #if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T)
       return elfcore_grok_psinfo (abfd, note);
 #else
-      return true;
+      return TRUE;
 #endif
     }
 }
 
-static boolean
+static bfd_boolean
 elfcore_netbsd_get_lwpid (note, lwpidp)
      Elf_Internal_Note *note;
      int *lwpidp;
@@ -6800,12 +6825,12 @@ elfcore_netbsd_get_lwpid (note, lwpidp)
   if (cp != NULL)
     {
       *lwpidp = atoi(cp + 1);
-      return true;
+      return TRUE;
     }
-  return false;
+  return FALSE;
 }
 
-static boolean
+static bfd_boolean
 elfcore_grok_netbsd_procinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6823,10 +6848,10 @@ elfcore_grok_netbsd_procinfo (abfd, note)
   elf_tdata (abfd)->core_command
     = _bfd_elfcore_strndup (abfd, note->descdata + 0x7c, 31);
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elfcore_grok_netbsd_note (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -6852,7 +6877,7 @@ elfcore_grok_netbsd_note (abfd, note)
      understand it.  */
 
   if (note->type < NT_NETBSDCORE_FIRSTMACH)
-    return true;
+    return TRUE;
 
 
   switch (bfd_get_arch (abfd))
@@ -6871,7 +6896,7 @@ elfcore_grok_netbsd_note (abfd, note)
           return elfcore_make_note_pseudosection (abfd, ".reg2", note);
 
         default:
-          return true;
+          return TRUE;
         }
 
     /* On all other arch's, PT_GETREGS == mach+1 and
@@ -6887,7 +6912,7 @@ elfcore_grok_netbsd_note (abfd, note)
           return elfcore_make_note_pseudosection (abfd, ".reg2", note);
 
         default:
-          return true;
+          return TRUE;
         }
     }
     /* NOTREACHED */
@@ -7085,7 +7110,7 @@ elfcore_write_prxfpreg (abfd, buf, bufsiz, xfpregs, size)
                             note_name, NT_PRXFPREG, xfpregs, size);
 }
 
-static boolean
+static bfd_boolean
 elfcore_read_notes (abfd, offset, size)
      bfd *abfd;
      file_ptr offset;
@@ -7095,20 +7120,20 @@ elfcore_read_notes (abfd, offset, size)
   char *p;
 
   if (size <= 0)
-    return true;
+    return TRUE;
 
   if (bfd_seek (abfd, offset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   buf = bfd_malloc (size);
   if (buf == NULL)
-    return false;
+    return FALSE;
 
   if (bfd_bread (buf, size, abfd) != size)
     {
     error:
       free (buf);
-      return false;
+      return FALSE;
     }
 
   p = buf;
@@ -7142,7 +7167,7 @@ elfcore_read_notes (abfd, offset, size)
     }
 
   free (buf);
-  return true;
+  return TRUE;
 }
 \f
 /* Providing external access to the ELF program header table.  */
index fad1a1e86dd0bb99b65ec3dce876e908085c57b5..27c163981a0ad224c761209b3ddadcec0057da4b 100644 (file)
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void arc_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
-static boolean arc_elf_object_p
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean arc_elf_object_p
   PARAMS ((bfd *));
 static void arc_elf_final_write_processing
-  PARAMS ((bfd *, boolean));
+  PARAMS ((bfd *, bfd_boolean));
 static bfd_reloc_status_type arc_elf_b22_pcrel
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 
@@ -49,60 +49,60 @@ static reloc_howto_type elf_arc_howto_table[] =
         0,                     /* rightshift  */
         2,                     /* size (0 = byte, 1 = short, 2 = long)  */
         32,                    /* bitsize  */
-        false,                 /* pc_relative  */
+        FALSE,                 /* pc_relative  */
         0,                     /* bitpos  */
         complain_overflow_bitfield, /* complain_on_overflow  */
         bfd_elf_generic_reloc, /* special_function  */
         "R_ARC_NONE",          /* name  */
-        true,                  /* partial_inplace  */
+        TRUE,                  /* partial_inplace  */
         0,                     /* src_mask  */
         0,                     /* dst_mask  */
-        false),                /* pcrel_offset  */
+        FALSE),                /* pcrel_offset  */
 
   /* A standard 32 bit relocation.  */
   HOWTO (R_ARC_32,             /* type  */
         0,                     /* rightshift  */
         2,                     /* size (0 = byte, 1 = short, 2 = long)  */
         32,                    /* bitsize  */
-        false,                 /* pc_relative  */
+        FALSE,                 /* pc_relative  */
         0,                     /* bitpos  */
         complain_overflow_bitfield, /* complain_on_overflow  */
         bfd_elf_generic_reloc, /* special_function  */
         "R_ARC_32",            /* name  */
-        true,                  /* partial_inplace  */
+        TRUE,                  /* partial_inplace  */
         0xffffffff,            /* src_mask  */
         0xffffffff,            /* dst_mask  */
-        false),                /* pcrel_offset  */
+        FALSE),                /* pcrel_offset  */
 
   /* A 26 bit absolute branch, right shifted by 2.  */
   HOWTO (R_ARC_B26,            /* type  */
         2,                     /* rightshift  */
         2,                     /* size (0 = byte, 1 = short, 2 = long)  */
         26,                    /* bitsize  */
-        false,                 /* pc_relative  */
+        FALSE,                 /* pc_relative  */
         0,                     /* bitpos  */
         complain_overflow_bitfield, /* complain_on_overflow  */
         bfd_elf_generic_reloc, /* special_function  */
         "R_ARC_B26",           /* name  */
-        true,                  /* partial_inplace  */
+        TRUE,                  /* partial_inplace  */
         0x00ffffff,            /* src_mask  */
         0x00ffffff,            /* dst_mask  */
-        false),                /* pcrel_offset  */
+        FALSE),                /* pcrel_offset  */
 
   /* A relative 22 bit branch; bits 21-2 are stored in bits 26-7.  */
   HOWTO (R_ARC_B22_PCREL,      /* type  */
         2,                     /* rightshift  */
         2,                     /* size (0 = byte, 1 = short, 2 = long)  */
         22,                    /* bitsize  */
-        true,                  /* pc_relative  */
+        TRUE,                  /* pc_relative  */
         7,                     /* bitpos  */
         complain_overflow_signed, /* complain_on_overflow  */
         arc_elf_b22_pcrel,     /* special_function  */
         "R_ARC_B22_PCREL",     /* name  */
-        true,                  /* partial_inplace  */
+        TRUE,                  /* partial_inplace  */
         0x07ffff80,            /* src_mask  */
         0x07ffff80,            /* dst_mask  */
-        false),                /* pcrel_offset  */
+        FALSE),                /* pcrel_offset  */
 };
 
 /* Map BFD reloc types to ARC ELF reloc types.  */
@@ -142,7 +142,7 @@ static void
 arc_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -153,7 +153,7 @@ arc_info_to_howto_rel (abfd, cache_ptr, dst)
 
 /* Set the right machine number for an ARC ELF file.  */
 
-static boolean
+static bfd_boolean
 arc_elf_object_p (abfd)
      bfd *abfd;
 {
@@ -189,7 +189,7 @@ arc_elf_object_p (abfd)
 static void
 arc_elf_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   unsigned long val;
 
@@ -226,7 +226,7 @@ arc_elf_b22_pcrel (abfd, reloc_entry, symbol, data, input_section,
 {
   /* If linking, back up the final symbol address by the address of the
      reloc.  This cannot be accomplished by setting the pcrel_offset
-     field to true, as bfd_install_relocation will detect this and refuse
+     field to TRUE, as bfd_install_relocation will detect this and refuse
      to install the offset in the first place, but bfd_perform_relocation
      will still insist on removing it.  */
   if (output_bfd == (bfd *) NULL)
index d0e7085ceca2836937157e111d65ad10ee8428ed..48eb873846eaa48dc5216dfc080fb65659744e85 100644 (file)
 typedef unsigned long int insn32;
 typedef unsigned short int insn16;
 
-static boolean elf32_arm_set_private_flags
+static bfd_boolean elf32_arm_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean elf32_arm_copy_private_bfd_data
+static bfd_boolean elf32_arm_copy_private_bfd_data
   PARAMS ((bfd *, bfd *));
-static boolean elf32_arm_merge_private_bfd_data
+static bfd_boolean elf32_arm_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
-static boolean elf32_arm_print_private_bfd_data
+static bfd_boolean elf32_arm_print_private_bfd_data
   PARAMS ((bfd *, PTR));
 static int elf32_arm_get_symbol_type
   PARAMS (( Elf_Internal_Sym *, int));
@@ -54,29 +54,29 @@ static int elf32_arm_to_thumb_stub
 static int elf32_thumb_to_arm_stub
   PARAMS ((struct bfd_link_info *, const char *, bfd *, bfd *, asection *,
           bfd_byte *, asection *, bfd_vma, bfd_signed_vma, bfd_vma));
-static boolean elf32_arm_relocate_section
+static bfd_boolean elf32_arm_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 static asection * elf32_arm_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf32_arm_gc_sweep_hook
+static bfd_boolean elf32_arm_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf32_arm_check_relocs
+static bfd_boolean elf32_arm_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf32_arm_find_nearest_line
+static bfd_boolean elf32_arm_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *));
-static boolean elf32_arm_adjust_dynamic_symbol
+static bfd_boolean elf32_arm_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean elf32_arm_size_dynamic_sections
+static bfd_boolean elf32_arm_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf32_arm_finish_dynamic_symbol
+static bfd_boolean elf32_arm_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-static boolean elf32_arm_finish_dynamic_sections
+static bfd_boolean elf32_arm_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static struct bfd_hash_entry * elf32_arm_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
@@ -92,11 +92,11 @@ static void record_arm_to_thumb_glue
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
 static void record_thumb_to_arm_glue
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-boolean bfd_elf32_arm_allocate_interworking_sections
+bfd_boolean bfd_elf32_arm_allocate_interworking_sections
   PARAMS ((struct bfd_link_info *));
-boolean bfd_elf32_arm_get_bfd_for_interworking
+bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
   PARAMS ((bfd *, struct bfd_link_info *));
-boolean bfd_elf32_arm_process_before_allocation
+bfd_boolean bfd_elf32_arm_process_before_allocation
   PARAMS ((bfd *, struct bfd_link_info *, int));
 #endif
 
@@ -170,14 +170,14 @@ struct elf32_arm_link_hash_entry
   };
 
 /* Declare this now that the above structures are defined.  */
-static boolean elf32_arm_discard_copies
+static bfd_boolean elf32_arm_discard_copies
   PARAMS ((struct elf32_arm_link_hash_entry *, PTR));
 
 /* Traverse an arm ELF linker hash table.  */
 #define elf32_arm_link_hash_traverse(table, func, info)                        \
   (elf_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the ARM elf linker hash table from a link_info structure.  */
@@ -285,7 +285,7 @@ find_thumb_glue (link_info, name, input_bfd)
   sprintf (tmp_name, THUMB2ARM_GLUE_ENTRY_NAME, name);
 
   hash = elf_link_hash_lookup
-    (&(hash_table)->root, tmp_name, false, false, true);
+    (&(hash_table)->root, tmp_name, FALSE, FALSE, TRUE);
 
   if (hash == NULL)
     /* xgettext:c-format */
@@ -320,7 +320,7 @@ find_arm_glue (link_info, name, input_bfd)
   sprintf (tmp_name, ARM2THUMB_GLUE_ENTRY_NAME, name);
 
   myh = elf_link_hash_lookup
-    (&(hash_table)->root, tmp_name, false, false, true);
+    (&(hash_table)->root, tmp_name, FALSE, FALSE, TRUE);
 
   if (myh == NULL)
     /* xgettext:c-format */
@@ -368,7 +368,7 @@ static const insn16 t2a2_noop_insn = 0x46c0;
 static const insn32 t2a3_b_insn = 0xea000000;
 
 #ifndef ELFARM_NABI_C_INCLUDED
-boolean
+bfd_boolean
 bfd_elf32_arm_allocate_interworking_sections (info)
      struct bfd_link_info * info;
 {
@@ -412,7 +412,7 @@ bfd_elf32_arm_allocate_interworking_sections (info)
       s->contents = foo;
     }
 
-  return true;
+  return TRUE;
 }
 
 static void
@@ -446,7 +446,7 @@ record_arm_to_thumb_glue (link_info, h)
   sprintf (tmp_name, ARM2THUMB_GLUE_ENTRY_NAME, name);
 
   myh = elf_link_hash_lookup
-    (&(globals)->root, tmp_name, false, false, true);
+    (&(globals)->root, tmp_name, FALSE, FALSE, TRUE);
 
   if (myh != NULL)
     {
@@ -462,7 +462,7 @@ record_arm_to_thumb_glue (link_info, h)
   val = globals->arm_glue_size + 1;
   _bfd_generic_link_add_one_symbol (link_info, globals->bfd_of_glue_owner,
                                    tmp_name, BSF_GLOBAL, s, val,
-                                   NULL, true, false, &bh);
+                                   NULL, TRUE, FALSE, &bh);
 
   free (tmp_name);
 
@@ -503,7 +503,7 @@ record_thumb_to_arm_glue (link_info, h)
   sprintf (tmp_name, THUMB2ARM_GLUE_ENTRY_NAME, name);
 
   myh = elf_link_hash_lookup
-    (&(hash_table)->root, tmp_name, false, false, true);
+    (&(hash_table)->root, tmp_name, FALSE, FALSE, TRUE);
 
   if (myh != NULL)
     {
@@ -516,7 +516,7 @@ record_thumb_to_arm_glue (link_info, h)
   val = hash_table->thumb_glue_size + 1;
   _bfd_generic_link_add_one_symbol (link_info, hash_table->bfd_of_glue_owner,
                                    tmp_name, BSF_GLOBAL, s, val,
-                                   NULL, true, false, &bh);
+                                   NULL, TRUE, FALSE, &bh);
 
   /* If we mark it 'Thumb', the disassembler will do a better job.  */
   myh = (struct elf_link_hash_entry *) bh;
@@ -540,7 +540,7 @@ record_thumb_to_arm_glue (link_info, h)
   val = hash_table->thumb_glue_size + 4,
   _bfd_generic_link_add_one_symbol (link_info, hash_table->bfd_of_glue_owner,
                                    tmp_name, BSF_LOCAL, s, val,
-                                   NULL, true, false, &bh);
+                                   NULL, TRUE, FALSE, &bh);
 
   free (tmp_name);
 
@@ -552,7 +552,7 @@ record_thumb_to_arm_glue (link_info, h)
 /* Add the glue sections to ABFD.  This function is called from the
    linker scripts in ld/emultempl/{armelf}.em.  */
 
-boolean
+bfd_boolean
 bfd_elf32_arm_add_glue_sections_to_bfd (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -563,7 +563,7 @@ bfd_elf32_arm_add_glue_sections_to_bfd (abfd, info)
   /* If we are only performing a partial
      link do not bother adding the glue.  */
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   sec = bfd_get_section_by_name (abfd, ARM2THUMB_GLUE_SECTION_NAME);
 
@@ -579,7 +579,7 @@ bfd_elf32_arm_add_glue_sections_to_bfd (abfd, info)
       if (sec == NULL
          || !bfd_set_section_flags (abfd, sec, flags)
          || !bfd_set_section_alignment (abfd, sec, 2))
-       return false;
+       return FALSE;
 
       /* Set the gc mark to prevent the section from being removed by garbage
         collection, despite the fact that no relocs refer to this section.  */
@@ -597,19 +597,19 @@ bfd_elf32_arm_add_glue_sections_to_bfd (abfd, info)
       if (sec == NULL
          || !bfd_set_section_flags (abfd, sec, flags)
          || !bfd_set_section_alignment (abfd, sec, 2))
-       return false;
+       return FALSE;
 
       sec->gc_mark = 1;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Select a BFD to be used to hold the sections used by the glue code.
    This function is called from the linker scripts in ld/emultempl/
    {armelf/pe}.em  */
 
-boolean
+bfd_boolean
 bfd_elf32_arm_get_bfd_for_interworking (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -619,22 +619,22 @@ bfd_elf32_arm_get_bfd_for_interworking (abfd, info)
   /* If we are only performing a partial link
      do not bother getting a bfd to hold the glue.  */
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   globals = elf32_arm_hash_table (info);
 
   BFD_ASSERT (globals != NULL);
 
   if (globals->bfd_of_glue_owner != NULL)
-    return true;
+    return TRUE;
 
   /* Save the bfd for later use.  */
   globals->bfd_of_glue_owner = abfd;
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 bfd_elf32_arm_process_before_allocation (abfd, link_info, no_pipeline_knowledge)
      bfd *abfd;
      struct bfd_link_info *link_info;
@@ -651,7 +651,7 @@ bfd_elf32_arm_process_before_allocation (abfd, link_info, no_pipeline_knowledge)
   /* If we are only performing a partial link do not bother
      to construct any glue.  */
   if (link_info->relocateable)
-    return true;
+    return TRUE;
 
   /* Here we have a bfd that is to be included on the link.  We have a hook
      to do reloc rummaging, before section sizes are nailed down.  */
@@ -666,7 +666,7 @@ bfd_elf32_arm_process_before_allocation (abfd, link_info, no_pipeline_knowledge)
   sec = abfd->sections;
 
   if (sec == NULL)
-    return true;
+    return TRUE;
 
   for (; sec != NULL; sec = sec->next)
     {
@@ -678,7 +678,7 @@ bfd_elf32_arm_process_before_allocation (abfd, link_info, no_pipeline_knowledge)
       /* Load the relocs.  */
       internal_relocs
        = _bfd_elf32_link_read_relocs (abfd, sec, (PTR) NULL,
-                                      (Elf_Internal_Rela *) NULL, false);
+                                      (Elf_Internal_Rela *) NULL, FALSE);
 
       if (internal_relocs == NULL)
        goto error_return;
@@ -769,7 +769,7 @@ bfd_elf32_arm_process_before_allocation (abfd, link_info, no_pipeline_knowledge)
       internal_relocs = NULL;
     }
 
-  return true;
+  return TRUE;
 
 error_return:
   if (contents != NULL
@@ -779,7 +779,7 @@ error_return:
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return false;
+  return FALSE;
 }
 #endif
 
@@ -864,7 +864,7 @@ elf32_thumb_to_arm_stub (info, name, input_bfd, output_bfd, input_section,
 
   myh = find_thumb_glue (info, name, input_bfd);
   if (myh == NULL)
-    return false;
+    return FALSE;
 
   globals = elf32_arm_hash_table (info);
 
@@ -893,7 +893,7 @@ elf32_thumb_to_arm_stub (info, name, input_bfd, output_bfd, input_section,
            (_("  first occurrence: %s: thumb call to arm"),
             bfd_archive_filename (input_bfd));
 
-         return false;
+         return FALSE;
        }
 
       --my_offset;
@@ -942,7 +942,7 @@ elf32_thumb_to_arm_stub (info, name, input_bfd, output_bfd, input_section,
              (bfd_vma) insert_thumb_branch (tmp, ret_offset),
              hit_data - input_section->vma);
 
-  return true;
+  return TRUE;
 }
 
 /* Arm code calling a Thumb function.  */
@@ -970,7 +970,7 @@ elf32_arm_to_thumb_stub (info, name, input_bfd, output_bfd, input_section,
 
   myh = find_arm_glue (info, name, input_bfd);
   if (myh == NULL)
-    return false;
+    return FALSE;
 
   globals = elf32_arm_hash_table (info);
 
@@ -1030,7 +1030,7 @@ elf32_arm_to_thumb_stub (info, name, input_bfd, output_bfd, input_section,
 
   bfd_put_32 (output_bfd, (bfd_vma) tmp, hit_data - input_section->vma);
 
-  return true;
+  return TRUE;
 }
 
 /* Perform a relocation as part of a final link.  */
@@ -1128,8 +1128,9 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
                      || (h->elf_link_hash_flags
                          & ELF_LINK_HASH_DEF_REGULAR) == 0))))
        {
-         Elf_Internal_Rel outrel;
-         boolean skip, relocate;
+         Elf_Internal_Rela outrel;
+         bfd_byte *loc;
+         bfd_boolean skip, relocate;
 
          if (sreloc == NULL)
            {
@@ -1151,16 +1152,16 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
              BFD_ASSERT (sreloc != NULL);
            }
 
-         skip = false;
-         relocate = false;
+         skip = FALSE;
+         relocate = FALSE;
 
          outrel.r_offset =
            _bfd_elf_section_offset (output_bfd, info, input_section,
                                     rel->r_offset);
          if (outrel.r_offset == (bfd_vma) -1)
-           skip = true;
+           skip = TRUE;
          else if (outrel.r_offset == (bfd_vma) -2)
-           skip = true, relocate = true;
+           skip = TRUE, relocate = TRUE;
          outrel.r_offset += (input_section->output_section->vma
                              + input_section->output_offset);
 
@@ -1170,7 +1171,7 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
            {
              BFD_ASSERT (h != NULL && h->dynindx != -1);
              if ((input_section->flags & SEC_ALLOC) == 0)
-               relocate = true;
+               relocate = TRUE;
              outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_PC24);
            }
          else
@@ -1180,23 +1181,21 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
                      && (h->elf_link_hash_flags
                          & ELF_LINK_HASH_DEF_REGULAR) != 0))
                {
-                 relocate = true;
+                 relocate = TRUE;
                  outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE);
                }
              else
                {
                  BFD_ASSERT (h->dynindx != -1);
                  if ((input_section->flags & SEC_ALLOC) == 0)
-                   relocate = true;
+                   relocate = TRUE;
                  outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_ABS32);
                }
            }
 
-         bfd_elf32_swap_reloc_out (output_bfd, &outrel,
-                                   (((Elf32_External_Rel *)
-                                     sreloc->contents)
-                                    + sreloc->reloc_count));
-         ++sreloc->reloc_count;
+         loc = sreloc->contents;
+         loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rel);
+         bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
 
          /* If this reloc is against an external symbol, we do not want to
             fiddle with the addend.  Otherwise, we need to include the symbol
@@ -1390,13 +1389,13 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
     case R_ARM_THM_PC22:
       /* Thumb BL (branch long instruction).  */
       {
-       bfd_vma        relocation;
-       boolean        overflow = false;
-       bfd_vma        upper_insn = bfd_get_16 (input_bfd, hit_data);
-       bfd_vma        lower_insn = bfd_get_16 (input_bfd, hit_data + 2);
+       bfd_vma relocation;
+       bfd_boolean overflow = FALSE;
+       bfd_vma upper_insn = bfd_get_16 (input_bfd, hit_data);
+       bfd_vma lower_insn = bfd_get_16 (input_bfd, hit_data + 2);
        bfd_signed_vma reloc_signed_max = ((1 << (howto->bitsize - 1)) - 1) >> howto->rightshift;
        bfd_signed_vma reloc_signed_min = ~ reloc_signed_max;
-       bfd_vma        check;
+       bfd_vma check;
        bfd_signed_vma signed_check;
 
 #if USE_REL
@@ -1473,7 +1472,7 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
 
        /* Assumes two's complement.  */
        if (signed_check > reloc_signed_max || signed_check < reloc_signed_min)
-         overflow = true;
+         overflow = TRUE;
 
 #ifndef OLD_ARM_ABI
        if (r_type == R_ARM_THM_XPC22
@@ -1657,7 +1656,8 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
              if (info->shared)
                {
                  asection * srelgot;
-                 Elf_Internal_Rel outrel;
+                 Elf_Internal_Rela outrel;
+                 bfd_byte *loc;
 
                  srelgot = bfd_get_section_by_name (dynobj, ".rel.got");
                  BFD_ASSERT (srelgot != NULL);
@@ -1666,11 +1666,9 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
                                     + sgot->output_offset
                                     + off);
                  outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE);
-                 bfd_elf32_swap_reloc_out (output_bfd, &outrel,
-                                           (((Elf32_External_Rel *)
-                                             srelgot->contents)
-                                            + srelgot->reloc_count));
-                 ++srelgot->reloc_count;
+                 loc = srelgot->contents;
+                 loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rel);
+                 bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
                }
 
              local_got_offsets[r_symndx] |= 1;
@@ -1816,27 +1814,27 @@ arm_add_to_rel (abfd, address, howto, increment)
 #endif /* USE_REL */
 
 /* Relocate an ARM ELF section.  */
-static boolean
+static bfd_boolean
 elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
                            contents, relocs, local_syms, local_sections)
-     bfd *                  output_bfd;
-     struct bfd_link_info * info;
-     bfd *                  input_bfd;
-     asection *             input_section;
-     bfd_byte *             contents;
-     Elf_Internal_Rela *    relocs;
-     Elf_Internal_Sym *     local_syms;
-     asection **            local_sections;
+     bfd *output_bfd;
+     struct bfd_link_info *info;
+     bfd *input_bfd;
+     asection *input_section;
+     bfd_byte *contents;
+     Elf_Internal_Rela *relocs;
+     Elf_Internal_Sym *local_syms;
+     asection **local_sections;
 {
-  Elf_Internal_Shdr *           symtab_hdr;
-  struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
-  const char *                  name;
+  Elf_Internal_Shdr *symtab_hdr;
+  struct elf_link_hash_entry **sym_hashes;
+  Elf_Internal_Rela *rel;
+  Elf_Internal_Rela *relend;
+  const char *name;
 
 #if !USE_REL
   if (info->relocateable)
-    return true;
+    return TRUE;
 #endif
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -1863,12 +1861,7 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
           || r_type == R_ARM_GNU_VTINHERIT)
         continue;
 
-#if USE_REL
-      elf32_arm_info_to_howto (input_bfd, & bfd_reloc,
-                              (Elf_Internal_Rel *) rel);
-#else
       elf32_arm_info_to_howto (input_bfd, & bfd_reloc, rel);
-#endif
       howto = bfd_reloc.howto;
 
 #if USE_REL
@@ -1921,7 +1914,7 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
                     bfd_archive_filename (input_bfd),
                     bfd_get_section_name (input_bfd, input_section),
                     (long) rel->r_offset, howto->name);
-                 return false;
+                 return FALSE;
                }
 
              value = bfd_get_32 (input_bfd, contents + rel->r_offset);
@@ -2040,7 +2033,7 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
                     input_section, rel->r_offset,
                     (!info->shared || info->no_undefined
                      || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
@@ -2076,14 +2069,14 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
                  && (!((*info->callbacks->reloc_overflow)
                        (info, name, howto->name, (bfd_vma) 0,
                         input_bfd, input_section, rel->r_offset))))
-                 return false;
+                 return FALSE;
              break;
 
            case bfd_reloc_undefined:
              if (!((*info->callbacks->undefined_symbol)
                    (info, name, input_bfd, input_section,
-                    rel->r_offset, true)))
-               return false;
+                    rel->r_offset, TRUE)))
+               return FALSE;
              break;
 
            case bfd_reloc_outofrange:
@@ -2106,17 +2099,17 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->warning)
                    (info, msg, name, input_bfd, input_section,
                     rel->r_offset)))
-               return false;
+               return FALSE;
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Function to keep ARM specific flags in the ELF header.  */
-static boolean
+static bfd_boolean
 elf32_arm_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
@@ -2139,15 +2132,15 @@ Warning: Clearing the interworking flag of %s due to outside request"),
   else
     {
       elf_elfheader (abfd)->e_flags = flags;
-      elf_flags_init (abfd) = true;
+      elf_flags_init (abfd) = TRUE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Copy backend specific data from one object module to another.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -2157,7 +2150,7 @@ elf32_arm_copy_private_bfd_data (ibfd, obfd)
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   in_flags  = elf_elfheader (ibfd)->e_flags;
   out_flags = elf_elfheader (obfd)->e_flags;
@@ -2168,11 +2161,11 @@ elf32_arm_copy_private_bfd_data (ibfd, obfd)
     {
       /* Cannot mix APCS26 and APCS32 code.  */
       if ((in_flags & EF_ARM_APCS_26) != (out_flags & EF_ARM_APCS_26))
-       return false;
+       return FALSE;
 
       /* Cannot mix float APCS and non-float APCS code.  */
       if ((in_flags & EF_ARM_APCS_FLOAT) != (out_flags & EF_ARM_APCS_FLOAT))
-       return false;
+       return FALSE;
 
       /* If the src and dest have different interworking flags
          then turn off the interworking bit.  */
@@ -2193,32 +2186,32 @@ Warning: Clearing the interworking flag of %s because non-interworking code in %
     }
 
   elf_elfheader (obfd)->e_flags = in_flags;
-  elf_flags_init (obfd) = true;
+  elf_flags_init (obfd) = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_merge_private_bfd_data (ibfd, obfd)
      bfd * ibfd;
      bfd * obfd;
 {
   flagword out_flags;
   flagword in_flags;
-  boolean flags_compatible = true;
-  boolean null_input_bfd = true;
+  bfd_boolean flags_compatible = TRUE;
+  bfd_boolean null_input_bfd = TRUE;
   asection *sec;
 
   /* Check if we have the same endianess.  */
   if (! _bfd_generic_verify_endian_match (ibfd, obfd))
-    return false;
+    return FALSE;
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   /* The input BFD must have had its flags initialised.  */
   /* The following seems bogus to me -- The flags are initialized in
@@ -2239,21 +2232,21 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd)
          to the default values.  */
       if (bfd_get_arch_info (ibfd)->the_default
          && elf_elfheader (ibfd)->e_flags == 0)
-       return true;
+       return TRUE;
 
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = in_flags;
 
       if (bfd_get_arch (obfd) == bfd_get_arch (ibfd)
          && bfd_get_arch_info (obfd)->the_default)
        return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd));
 
-      return true;
+      return TRUE;
     }
 
   /* Identical flags must be compatible.  */
   if (in_flags == out_flags)
-    return true;
+    return TRUE;
 
   /* Check to see if the input BFD actually contains any sections.
      If not, its flags may not have been initialised either, but it cannot
@@ -2264,12 +2257,12 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd)
       if (strcmp (sec->name, ".glue_7")
          && strcmp (sec->name, ".glue_7t"))
        {
-         null_input_bfd = false;
+         null_input_bfd = FALSE;
          break;
        }
     }
   if (null_input_bfd)
-    return true;
+    return TRUE;
 
   /* Complain about various flag mismatches.  */
   if (EF_ARM_EABI_VERSION (in_flags) != EF_ARM_EABI_VERSION (out_flags))
@@ -2280,7 +2273,7 @@ ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d
                          (in_flags & EF_ARM_EABIMASK) >> 24,
                          bfd_get_filename (obfd),
                          (out_flags & EF_ARM_EABIMASK) >> 24);
-      return false;
+      return FALSE;
     }
 
   /* Not sure what needs to be checked for EABI versions >= 1.  */
@@ -2294,7 +2287,7 @@ ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d"),
                              in_flags & EF_ARM_APCS_26 ? 26 : 32,
                              bfd_get_filename (obfd),
                              out_flags & EF_ARM_APCS_26 ? 26 : 32);
-         flags_compatible = false;
+         flags_compatible = FALSE;
        }
 
       if ((in_flags & EF_ARM_APCS_FLOAT) != (out_flags & EF_ARM_APCS_FLOAT))
@@ -2310,7 +2303,7 @@ ERROR: %s passes floats in integer registers, whereas %s passes them in float re
                                bfd_archive_filename (ibfd),
                                bfd_get_filename (obfd));
 
-         flags_compatible = false;
+         flags_compatible = FALSE;
        }
 
       if ((in_flags & EF_ARM_VFP_FLOAT) != (out_flags & EF_ARM_VFP_FLOAT))
@@ -2326,7 +2319,7 @@ ERROR: %s uses FPA instructions, whereas %s uses VFP instructions"),
                                bfd_archive_filename (ibfd),
                                bfd_get_filename (obfd));
 
-         flags_compatible = false;
+         flags_compatible = FALSE;
        }
 
 #ifdef EF_ARM_SOFT_FLOAT
@@ -2351,7 +2344,7 @@ ERROR: %s uses hardware FP, whereas %s uses software FP"),
                                    bfd_archive_filename (ibfd),
                                    bfd_get_filename (obfd));
 
-             flags_compatible = false;
+             flags_compatible = FALSE;
            }
        }
 #endif
@@ -2381,7 +2374,7 @@ Warning: %s does not support interworking, whereas %s does"),
 
 /* Display the flags field.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_print_private_bfd_data (abfd, ptr)
      bfd *abfd;
      PTR ptr;
@@ -2489,7 +2482,7 @@ elf32_arm_print_private_bfd_data (abfd, ptr)
 
   fputc ('\n', file);
 
-  return true;
+  return TRUE;
 }
 
 static int
@@ -2557,7 +2550,7 @@ elf32_arm_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -2565,29 +2558,29 @@ elf32_arm_gc_sweep_hook (abfd, info, sec, relocs)
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   /* We don't support garbage collection of GOT and PLT relocs yet.  */
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_check_relocs (abfd, info, sec, relocs)
-     bfd *                      abfd;
-     struct bfd_link_info *     info;
-     asection *                 sec;
-     const Elf_Internal_Rela *  relocs;
+     bfd *abfd;
+     struct bfd_link_info *info;
+     asection *sec;
+     const Elf_Internal_Rela *relocs;
 {
-  Elf_Internal_Shdr *           symtab_hdr;
-  struct elf_link_hash_entry ** sym_hashes;
-  struct elf_link_hash_entry ** sym_hashes_end;
-  const Elf_Internal_Rela *     rel;
-  const Elf_Internal_Rela *     rel_end;
-  bfd *                         dynobj;
-  asection * sgot, *srelgot, *sreloc;
-  bfd_vma * local_got_offsets;
+  Elf_Internal_Shdr *symtab_hdr;
+  struct elf_link_hash_entry **sym_hashes;
+  struct elf_link_hash_entry **sym_hashes_end;
+  const Elf_Internal_Rela *rel;
+  const Elf_Internal_Rela *rel_end;
+  bfd *dynobj;
+  asection *sgot, *srelgot, *sreloc;
+  bfd_vma *local_got_offsets;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   sgot = srelgot = sreloc = NULL;
 
@@ -2624,7 +2617,7 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
            case R_ARM_GOTPC:
              elf_hash_table (info)->dynobj = dynobj = abfd;
              if (! _bfd_elf_create_got_section (dynobj, info))
-               return false;
+               return FALSE;
              break;
 
            default:
@@ -2661,7 +2654,7 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
                                                     | SEC_LINKER_CREATED
                                                     | SEC_READONLY))
                        || ! bfd_set_section_alignment (dynobj, srelgot, 2))
-                     return false;
+                     return FALSE;
                  }
              }
 
@@ -2676,7 +2669,7 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
                /* Make sure this symbol is output as a dynamic symbol.  */
                if (h->dynindx == -1)
                  if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-                   return false;
+                   return FALSE;
 
                srelgot->_raw_size += sizeof (Elf32_External_Rel);
              }
@@ -2693,7 +2686,7 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
                    size *= sizeof (bfd_vma);
                    local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size);
                    if (local_got_offsets == NULL)
-                     return false;
+                     return FALSE;
                    elf_local_got_offsets (abfd) = local_got_offsets;
                    for (i = 0; i < symtab_hdr->sh_info; i++)
                      local_got_offsets[i] = (bfd_vma) -1;
@@ -2765,7 +2758,7 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
                             elf_elfheader (abfd)->e_shstrndx,
                             elf_section_data (sec)->rel_hdr.sh_name));
                    if (name == NULL)
-                     return false;
+                     return FALSE;
 
                    BFD_ASSERT (strncmp (name, ".rel", 4) == 0
                                && strcmp (bfd_get_section_name (abfd, sec),
@@ -2784,7 +2777,7 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
                        if (sreloc == NULL
                            || ! bfd_set_section_flags (dynobj, sreloc, flags)
                            || ! bfd_set_section_alignment (dynobj, sreloc, 2))
-                         return false;
+                         return FALSE;
                      }
                  if (sec->flags & SEC_READONLY)
                    info->flags |= DF_TEXTREL;
@@ -2816,7 +2809,7 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
                        p = ((struct elf32_arm_pcrel_relocs_copied *)
                             bfd_alloc (dynobj, (bfd_size_type) sizeof * p));
                        if (p == NULL)
-                         return false;
+                         return FALSE;
                        p->next = eh->pcrel_relocs_copied;
                        eh->pcrel_relocs_copied = p;
                        p->section = sreloc;
@@ -2832,59 +2825,59 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_ARM_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_ARM_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
         }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Find the nearest line to a particular section and offset, for error
    reporting.   This code is a duplicate of the code in elf.c, except
    that it also accepts STT_ARM_TFUNC as a symbol that names a function.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_find_nearest_line
   (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr)
-     bfd *          abfd;
-     asection *     section;
-     asymbol **     symbols;
-     bfd_vma        offset;
-     const char **  filename_ptr;
-     const char **  functionname_ptr;
-     unsigned int * line_ptr;
+     bfd *abfd;
+     asection *section;
+     asymbol **symbols;
+     bfd_vma offset;
+     const char **filename_ptr;
+     const char **functionname_ptr;
+     unsigned int *line_ptr;
 {
-  boolean      found;
-  const char * filename;
-  asymbol *    func;
-  bfd_vma      low_func;
-  asymbol **   p;
+  bfd_boolean found;
+  const char *filename;
+  asymbol *func;
+  bfd_vma low_func;
+  asymbol **p;
 
   if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
                                     filename_ptr, functionname_ptr,
                                     line_ptr, 0,
                                     &elf_tdata (abfd)->dwarf2_find_line_info))
-    return true;
+    return TRUE;
 
   if (! _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset,
                                             &found, filename_ptr,
                                             functionname_ptr, line_ptr,
                                             &elf_tdata (abfd)->line_info))
-    return false;
+    return FALSE;
 
   if (found)
-    return true;
+    return TRUE;
 
   if (symbols == NULL)
-    return false;
+    return FALSE;
 
   filename = NULL;
   func = NULL;
@@ -2921,13 +2914,13 @@ elf32_arm_find_nearest_line
     }
 
   if (func == NULL)
-    return false;
+    return FALSE;
 
   *filename_ptr = filename;
   *functionname_ptr = bfd_asymbol_name (func);
   *line_ptr = 0;
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -2936,7 +2929,7 @@ elf32_arm_find_nearest_line
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_adjust_dynamic_symbol (info, h)
      struct bfd_link_info * info;
      struct elf_link_hash_entry * h;
@@ -2980,14 +2973,14 @@ elf32_arm_adjust_dynamic_symbol (info, h)
             instead.  */
          BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0);
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
-         return true;
+         return TRUE;
        }
 
       /* Make sure this symbol is output as a dynamic symbol.  */
       if (h->dynindx == -1)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = bfd_get_section_by_name (dynobj, ".plt");
@@ -3027,7 +3020,7 @@ elf32_arm_adjust_dynamic_symbol (info, h)
       BFD_ASSERT (s != NULL);
       s->_raw_size += sizeof (Elf32_External_Rel);
 
-      return true;
+      return TRUE;
     }
 
   /* If this is a weak symbol, and there is a real definition, the
@@ -3039,7 +3032,7 @@ elf32_arm_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -3050,7 +3043,7 @@ elf32_arm_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -3090,7 +3083,7 @@ elf32_arm_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (! bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -3100,20 +3093,20 @@ elf32_arm_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_size_dynamic_sections (output_bfd, info)
      bfd * output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info * info;
 {
   bfd * dynobj;
   asection * s;
-  boolean plt;
-  boolean relocs;
+  bfd_boolean plt;
+  bfd_boolean relocs;
 
   dynobj = elf_hash_table (info)->dynobj;
   BFD_ASSERT (dynobj != NULL);
@@ -3153,12 +3146,12 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  plt = false;
-  relocs = false;
+  plt = FALSE;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char * name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -3167,7 +3160,7 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      strip = false;
+      strip = FALSE;
 
       if (strcmp (name, ".plt") == 0)
        {
@@ -3175,12 +3168,12 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
            {
              /* Strip this section if we don't need it; see the
                  comment below.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there is a PLT.  */
-             plt = true;
+             plt = TRUE;
            }
        }
       else if (strncmp (name, ".rel", 4) == 0)
@@ -3196,14 +3189,14 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there are any reloc sections other
                  than .rel.plt.  */
              if (strcmp (name, ".rel.plt") != 0)
-               relocs = true;
+               relocs = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -3225,7 +3218,7 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
       /* Allocate memory for the section contents.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -3241,7 +3234,7 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (plt)
@@ -3250,7 +3243,7 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_REL)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -3258,19 +3251,19 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
          if (   !add_dynamic_entry (DT_REL, 0)
              || !add_dynamic_entry (DT_RELSZ, 0)
              || !add_dynamic_entry (DT_RELENT, sizeof (Elf32_External_Rel)))
-           return false;
+           return FALSE;
        }
 
       if ((info->flags & DF_TEXTREL) != 0)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
          info->flags |= DF_TEXTREL;
        }
     }
 #undef add_synamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called via elf32_arm_link_hash_traverse if we are
@@ -3280,7 +3273,7 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
    check_relocs routine, but we won't fill them in in the
    relocate_section routine.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_discard_copies (h, ignore)
      struct elf32_arm_link_hash_entry * h;
      PTR ignore ATTRIBUTE_UNUSED;
@@ -3292,18 +3285,18 @@ elf32_arm_discard_copies (h, ignore)
 
   /* We only discard relocs for symbols defined in a regular object.  */
   if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
-    return true;
+    return TRUE;
 
   for (s = h->pcrel_relocs_copied; s != NULL; s = s->next)
     s->section->_raw_size -= s->count * sizeof (Elf32_External_Rel);
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd * output_bfd;
      struct bfd_link_info * info;
@@ -3321,7 +3314,8 @@ elf32_arm_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection * srel;
       bfd_vma plt_index;
       bfd_vma got_offset;
-      Elf_Internal_Rel rel;
+      Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
         it up.  */
@@ -3371,9 +3365,8 @@ elf32_arm_finish_dynamic_symbol (output_bfd, info, h, sym)
                      + sgot->output_offset
                      + got_offset);
       rel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_JUMP_SLOT);
-      bfd_elf32_swap_reloc_out (output_bfd, &rel,
-                               ((Elf32_External_Rel *) srel->contents
-                                + plt_index));
+      loc = srel->contents + plt_index * sizeof (Elf32_External_Rel);
+      bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
        {
@@ -3394,7 +3387,8 @@ elf32_arm_finish_dynamic_symbol (output_bfd, info, h, sym)
     {
       asection * sgot;
       asection * srel;
-      Elf_Internal_Rel rel;
+      Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -3420,16 +3414,15 @@ elf32_arm_finish_dynamic_symbol (output_bfd, info, h, sym)
          rel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_GLOB_DAT);
        }
 
-      bfd_elf32_swap_reloc_out (output_bfd, &rel,
-                               ((Elf32_External_Rel *) srel->contents
-                                + srel->reloc_count));
-      ++srel->reloc_count;
+      loc = srel->contents + srel->reloc_count++ * sizeof (Elf32_External_Rel);
+      bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       asection * s;
-      Elf_Internal_Rel rel;
+      Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
       BFD_ASSERT (h->dynindx != -1
@@ -3444,10 +3437,8 @@ elf32_arm_finish_dynamic_symbol (output_bfd, info, h, sym)
                      + h->root.u.def.section->output_section->vma
                      + h->root.u.def.section->output_offset);
       rel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_COPY);
-      bfd_elf32_swap_reloc_out (output_bfd, &rel,
-                               ((Elf32_External_Rel *) s->contents
-                                + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rel);
+      bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
     }
 
   /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute.  */
@@ -3455,12 +3446,12 @@ elf32_arm_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf32_arm_finish_dynamic_sections (output_bfd, info)
      bfd * output_bfd;
      struct bfd_link_info * info;
@@ -3557,12 +3548,12 @@ elf32_arm_finish_dynamic_sections (output_bfd, info)
                  struct elf_link_hash_entry * eh;
 
                  eh = elf_link_hash_lookup (elf_hash_table (info), name,
-                                            false, false, true);
+                                            FALSE, FALSE, TRUE);
                  if (eh != (struct elf_link_hash_entry *) NULL
                      && ELF_ST_TYPE (eh->type) == STT_ARM_TFUNC)
                    {
                      dyn.d_un.d_val |= 1;
-                     bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);                
+                     bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
                    }
                }
              break;
@@ -3598,7 +3589,7 @@ elf32_arm_finish_dynamic_sections (output_bfd, info)
 
   elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
 
-  return true;
+  return TRUE;
 }
 
 static void
index 42683682ff5f311a555a1b365024625f0658f15f..a701dc9d00ea670ee31c3b9ab81c1ff75a24b079 100644 (file)
@@ -27,24 +27,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void avr_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static asection *elf32_avr_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf32_avr_gc_sweep_hook
+static bfd_boolean elf32_avr_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf32_avr_check_relocs
+static bfd_boolean elf32_avr_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static bfd_reloc_status_type avr_final_link_relocate
   PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, bfd_vma));
-static boolean elf32_avr_relocate_section
+static bfd_boolean elf32_avr_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static void bfd_elf_avr_final_write_processing PARAMS ((bfd *, boolean));
-static boolean elf32_avr_object_p PARAMS ((bfd *));
+static void bfd_elf_avr_final_write_processing PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean elf32_avr_object_p PARAMS ((bfd *));
 
 static reloc_howto_type elf_avr_howto_table[] =
 {
@@ -52,283 +52,283 @@ static reloc_howto_type elf_avr_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_NONE",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_AVR_32,             /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_32",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 7 bit PC relative relocation.  */
   HOWTO (R_AVR_7_PCREL,                /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         7,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         3,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_7_PCREL",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 13 bit PC relative relocation.  */
   HOWTO (R_AVR_13_PCREL,       /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         13,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_13_PCREL",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xfff,                 /* src_mask */
         0xfff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 16 bit absolute relocation.  */
   HOWTO (R_AVR_16,             /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_16",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit absolute relocation for command address.  */
   HOWTO (R_AVR_16_PM,          /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_16_PM",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A low 8 bit absolute relocation of 16 bit address.
      For LDI command.  */
   HOWTO (R_AVR_LO8_LDI,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_LO8_LDI",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A high 8 bit absolute relocation of 16 bit address.
      For LDI command.  */
   HOWTO (R_AVR_HI8_LDI,                /* type */
         8,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_HI8_LDI",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A high 6 bit absolute relocation of 22 bit address.
      For LDI command.  */
   HOWTO (R_AVR_HH8_LDI,                /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_HH8_LDI",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A negative low 8 bit absolute relocation of 16 bit address.
      For LDI command.  */
   HOWTO (R_AVR_LO8_LDI_NEG,    /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_LO8_LDI_NEG",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A hegative high 8 bit absolute relocation of 16 bit address.
      For LDI command.  */
   HOWTO (R_AVR_HI8_LDI_NEG,    /* type */
         8,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_HI8_LDI_NEG",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A hegative high 6 bit absolute relocation of 22 bit address.
      For LDI command.  */
   HOWTO (R_AVR_HH8_LDI_NEG,    /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_HH8_LDI_NEG",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A low 8 bit absolute relocation of 24 bit program memory address.
      For LDI command.  */
   HOWTO (R_AVR_LO8_LDI_PM,     /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_LO8_LDI_PM",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A high 8 bit absolute relocation of 16 bit program memory address.
      For LDI command.  */
   HOWTO (R_AVR_HI8_LDI_PM,     /* type */
         9,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_HI8_LDI_PM",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A high 8 bit absolute relocation of 24 bit program memory address.
      For LDI command.  */
   HOWTO (R_AVR_HH8_LDI_PM,     /* type */
         17,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_HH8_LDI_PM",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A low 8 bit absolute relocation of a negative 24 bit
      program memory address.  For LDI command.  */
   HOWTO (R_AVR_LO8_LDI_PM_NEG, /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_LO8_LDI_PM_NEG", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A high 8 bit absolute relocation of a negative 16 bit
      program memory address.  For LDI command.  */
   HOWTO (R_AVR_HI8_LDI_PM_NEG, /* type */
         9,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_HI8_LDI_PM_NEG", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* A high 8 bit absolute relocation of a negative 24 bit
      program memory address.  For LDI command.  */
   HOWTO (R_AVR_HH8_LDI_PM_NEG, /* type */
         17,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_HH8_LDI_PM_NEG", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* Relocation for CALL command in ATmega.  */
   HOWTO (R_AVR_CALL,           /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         23,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_AVR_CALL",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false)                 /* pcrel_offset */
+        FALSE)                 /* pcrel_offset */
 };
 
 /* Map BFD reloc types to AVR ELF reloc types.  */
@@ -386,7 +386,7 @@ static void
 avr_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -428,7 +428,7 @@ elf32_avr_gc_mark_hook (sec, info, rel, h, sym)
   return NULL;
 }
 
-static boolean
+static bfd_boolean
 elf32_avr_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -436,14 +436,14 @@ elf32_avr_gc_sweep_hook (abfd, info, sec, relocs)
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   /* We don't use got and plt entries for avr.  */
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 elf32_avr_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -456,7 +456,7 @@ elf32_avr_check_relocs (abfd, info, sec, relocs)
   const Elf_Internal_Rela *rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -477,7 +477,7 @@ elf32_avr_check_relocs (abfd, info, sec, relocs)
         h = sym_hashes[r_symndx - symtab_hdr->sh_info];
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Perform a single relocation.  By default we use the standard BFD
@@ -702,7 +702,7 @@ avr_final_link_relocate (howto, input_bfd, input_section,
 }
 
 /* Relocate an AVR ELF section.  */
-static boolean
+static bfd_boolean
 elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
                            contents, relocs, local_syms, local_sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -720,7 +720,7 @@ elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *           relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -782,8 +782,8 @@ elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -805,7 +805,7 @@ elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
 
            case bfd_reloc_undefined:
              r = info->callbacks->undefined_symbol
-               (info, name, input_bfd, input_section, rel->r_offset, true);
+               (info, name, input_bfd, input_section, rel->r_offset, TRUE);
              break;
 
            case bfd_reloc_outofrange:
@@ -830,11 +830,11 @@ elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
              (info, msg, name, input_bfd, input_section, rel->r_offset);
 
          if (! r)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* The final processing done just before writing out a AVR ELF object
@@ -844,7 +844,7 @@ elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
 static void
 bfd_elf_avr_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   unsigned long val;
 
@@ -879,7 +879,7 @@ bfd_elf_avr_final_write_processing (abfd, linker)
 
 /* Set the right machine number.  */
 
-static boolean
+static bfd_boolean
 elf32_avr_object_p (abfd)
      bfd *abfd;
 {
index dfbdbe75f683c0569ad38f2a718c6f98fa979f21..6b6c90681a77aaf339ee6a8230cc892033e4c4b5 100644 (file)
@@ -31,15 +31,15 @@ static reloc_howto_type * cris_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 
 static void cris_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
-static boolean cris_elf_grok_prstatus
+static bfd_boolean cris_elf_grok_prstatus
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
 
-static boolean cris_elf_grok_psinfo
+static bfd_boolean cris_elf_grok_psinfo
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
 
-static boolean cris_elf_relocate_section
+static bfd_boolean cris_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 
@@ -47,7 +47,7 @@ static bfd_reloc_status_type cris_final_link_relocate
   PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, bfd_vma));
 
-static boolean cris_elf_gc_sweep_hook
+static bfd_boolean cris_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
@@ -55,42 +55,42 @@ static asection * cris_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
 
-static boolean cris_elf_object_p PARAMS ((bfd *));
+static bfd_boolean cris_elf_object_p PARAMS ((bfd *));
 
-static void cris_elf_final_write_processing PARAMS ((bfd *, boolean));
+static void cris_elf_final_write_processing PARAMS ((bfd *, bfd_boolean));
 
-static boolean cris_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
+static bfd_boolean cris_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
 
-static boolean cris_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
+static bfd_boolean cris_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
 
 struct elf_cris_link_hash_entry;
-static boolean elf_cris_discard_excess_dso_dynamics
+static bfd_boolean elf_cris_discard_excess_dso_dynamics
   PARAMS ((struct elf_cris_link_hash_entry *, PTR));
-static boolean elf_cris_discard_excess_program_dynamics
+static bfd_boolean elf_cris_discard_excess_program_dynamics
   PARAMS ((struct elf_cris_link_hash_entry *, PTR));
-static boolean elf_cris_adjust_gotplt_to_got
+static bfd_boolean elf_cris_adjust_gotplt_to_got
   PARAMS ((struct elf_cris_link_hash_entry *, PTR));
-static boolean elf_cris_try_fold_plt_to_got
+static bfd_boolean elf_cris_try_fold_plt_to_got
   PARAMS ((struct elf_cris_link_hash_entry *, PTR));
 static struct bfd_hash_entry *elf_cris_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *elf_cris_link_hash_table_create
   PARAMS ((bfd *));
-static boolean elf_cris_adjust_dynamic_symbol
+static bfd_boolean elf_cris_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean cris_elf_check_relocs
+static bfd_boolean cris_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
-static boolean elf_cris_size_dynamic_sections
+static bfd_boolean elf_cris_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_cris_finish_dynamic_symbol
+static bfd_boolean elf_cris_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-static boolean elf_cris_finish_dynamic_sections
+static bfd_boolean elf_cris_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static void elf_cris_hide_symbol
-  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean));
+  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
 static enum elf_reloc_type_class elf_cris_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
 
@@ -101,135 +101,135 @@ static reloc_howto_type cris_elf_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 8 bit absolute relocation.  */
   HOWTO (R_CRIS_8,             /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_8",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0000,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit absolute relocation.  */
   HOWTO (R_CRIS_16,            /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_16",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  */
   HOWTO (R_CRIS_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_32",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 8 bit PC-relative relocation.  */
   HOWTO (R_CRIS_8_PCREL,       /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_8_PCREL",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0000,                /* src_mask */
         0x00ff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 16 bit PC-relative relocation.  */
   HOWTO (R_CRIS_16_PCREL,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_16_PCREL",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 32 bit PC-relative relocation.  */
   HOWTO (R_CRIS_32_PCREL,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_32_PCREL",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_CRIS_GNU_VTINHERIT, /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_CRIS_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_CRIS_GNU_VTENTRY,   /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
         "R_CRIS_GNU_VTENTRY",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* This is used only by the dynamic linker.  The symbol should exist
      both in the object being run and in some shared library.  The
@@ -240,45 +240,45 @@ static reloc_howto_type cris_elf_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_COPY",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_CRIS_32, but used when setting global offset table entries.  */
   HOWTO (R_CRIS_GLOB_DAT,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_GLOB_DAT",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Marks a procedure linkage table entry for a symbol.  */
   HOWTO (R_CRIS_JUMP_SLOT,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_JUMP_SLOT",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used only by the dynamic linker.  When the object is run, this
      longword is set to the load address of the object, plus the
@@ -287,44 +287,44 @@ static reloc_howto_type cris_elf_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_RELATIVE",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_CRIS_32, but referring to the GOT table entry for the symbol.  */
   HOWTO (R_CRIS_16_GOT,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_16_GOT",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_CRIS_32_GOT,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_32_GOT",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_CRIS_32_GOT, but referring to (and requesting a) PLT part of
      the GOT table for the symbol.  */
@@ -332,29 +332,29 @@ static reloc_howto_type cris_elf_howto_table [] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_16_GOTPLT",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_CRIS_32_GOTPLT,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_32_GOTPLT",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32-bit offset from GOT to (local const) symbol: no GOT entry should
      be necessary.  */
@@ -362,15 +362,15 @@ static reloc_howto_type cris_elf_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_32_GOTREL",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32-bit offset from GOT to entry for this symbol in PLT and request
      to create PLT entry for symbol.  */
@@ -378,15 +378,15 @@ static reloc_howto_type cris_elf_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_32_PLT_GOTREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32-bit offset from PC (location after the relocation) + addend to
      entry for this symbol in PLT and request to create PLT entry for
@@ -395,15 +395,15 @@ static reloc_howto_type cris_elf_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_CRIS_32_PLT_PCREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true)                  /* pcrel_offset */
+        TRUE)                  /* pcrel_offset */
 };
 \f
 /* Map BFD reloc types to CRIS ELF reloc types.  */
@@ -458,7 +458,7 @@ static void
 cris_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd * abfd ATTRIBUTE_UNUSED;
      arelent * cache_ptr;
-     Elf32_Internal_Rela * dst;
+     Elf_Internal_Rela * dst;
 {
   unsigned int r_type;
 
@@ -469,7 +469,7 @@ cris_info_to_howto_rela (abfd, cache_ptr, dst)
 \f
 /* Support for core dump NOTE sections.  */
 
-static boolean
+static bfd_boolean
 cris_elf_grok_prstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -480,7 +480,7 @@ cris_elf_grok_prstatus (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 214:                /* Linux/CRIS */
        /* pr_cursig */
@@ -501,7 +501,7 @@ cris_elf_grok_prstatus (abfd, note)
                                          raw_size, note->descpos + offset);
 }
 
-static boolean
+static bfd_boolean
 cris_elf_grok_psinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -509,7 +509,7 @@ cris_elf_grok_psinfo (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 124:                /* Linux/CRIS elf_prpsinfo */
        elf_tdata (abfd)->core_program
@@ -530,7 +530,7 @@ cris_elf_grok_psinfo (abfd, note)
       command[n - 1] = '\0';
   }
 
-  return true;
+  return TRUE;
 }
 \f
 /* The name of the dynamic interpreter.  This is put in the .interp
@@ -659,7 +659,7 @@ struct elf_cris_link_hash_table
 #define elf_cris_link_hash_traverse(table, func, info)                 \
   (elf_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the CRIS ELF linker hash table from a link_info structure.  */
@@ -777,30 +777,30 @@ cris_final_link_relocate (howto, input_bfd, input_section, contents, rel,
 /* Relocate an CRIS ELF section.  See elf32-fr30.c, from where this was
    copied, for further comments.  */
 
-static boolean
+static bfd_boolean
 cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
-     bfd *                   output_bfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *  info;
-     bfd *                   input_bfd;
-     asection *              input_section;
-     bfd_byte *              contents;
-     Elf_Internal_Rela *     relocs;
-     Elf_Internal_Sym *      local_syms;
-     asection **             local_sections;
+     bfd *output_bfd ATTRIBUTE_UNUSED;
+     struct bfd_link_info *info;
+     bfd *input_bfd;
+     asection *input_section;
+     bfd_byte *contents;
+     Elf_Internal_Rela *relocs;
+     Elf_Internal_Sym *local_syms;
+     asection **local_sections;
 {
   bfd *dynobj;
-  Elf_Internal_Shdr *           symtab_hdr;
-  struct elf_link_hash_entry ** sym_hashes;
+  Elf_Internal_Shdr *symtab_hdr;
+  struct elf_link_hash_entry **sym_hashes;
   bfd_vma *local_got_offsets;
   asection *sgot;
   asection *splt;
   asection *sreloc;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Rela *rel;
+  Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   local_got_offsets = elf_local_got_offsets (input_bfd);
@@ -820,15 +820,15 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
-      struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 symname = NULL;
-      int                          r_type;
+      reloc_howto_type *howto;
+      unsigned long r_symndx;
+      Elf_Internal_Sym *sym;
+      asection *sec;
+      struct elf_link_hash_entry *h;
+      bfd_vma relocation;
+      bfd_reloc_status_type r;
+      const char *symname = NULL;
+      int r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
 
@@ -859,7 +859,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
          /* It seems this can happen with erroneous or unsupported input
             (mixing a.out and elf in an archive, for example.)  */
          if (sym_hashes == NULL)
-           return false;
+           return FALSE;
 
          h = sym_hashes [r_symndx - symtab_hdr->sh_info];
 
@@ -934,7 +934,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                     symname,
                     bfd_get_section_name (input_bfd, input_section));
                  bfd_set_error (bfd_error_bad_value);
-                 return false;
+                 return FALSE;
                }
            }
          else if (h->root.type == bfd_link_hash_undefweak)
@@ -951,7 +951,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                     input_section, rel->r_offset,
                     (!info->shared || info->no_undefined
                      || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
@@ -1001,7 +1001,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                 do; this is probably an internal error.  But it is true
                 that we didn't like that particular input.  */
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
          /* Fall through.  */
 
@@ -1079,22 +1079,21 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
                    if (info->shared)
                      {
-                       asection *srelgot;
+                       asection *s;
                        Elf_Internal_Rela outrel;
+                       bfd_byte *loc;
 
-                       srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
-                       BFD_ASSERT (srelgot != NULL);
+                       s = bfd_get_section_by_name (dynobj, ".rela.got");
+                       BFD_ASSERT (s != NULL);
 
                        outrel.r_offset = (sgot->output_section->vma
                                           + sgot->output_offset
                                           + off);
                        outrel.r_info = ELF32_R_INFO (0, R_CRIS_RELATIVE);
                        outrel.r_addend = relocation;
-                       bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                                  (((Elf32_External_Rela *)
-                                                    srelgot->contents)
-                                                   + srelgot->reloc_count));
-                       ++srelgot->reloc_count;
+                       loc = s->contents;
+                       loc += s->reloc_count++ * sizeof (Elf32_External_Rela);
+                       bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                      }
 
                    local_got_offsets[r_symndx] |= 1;
@@ -1125,7 +1124,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                     bfd_get_section_name (input_bfd, input_section));
 
                bfd_set_error (bfd_error_bad_value);
-               return false;
+               return FALSE;
              }
          }
          break;
@@ -1141,7 +1140,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                 symname,
                 bfd_get_section_name (input_bfd, input_section));
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
 
          /* This can happen if we get a link error with the input ELF
@@ -1155,7 +1154,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                 cris_elf_howto_table[r_type].name,
                 bfd_get_section_name (input_bfd, input_section));
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
 
          /* This relocation is like a PC-relative one, except the
@@ -1237,7 +1236,8 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                          & ELF_LINK_HASH_DEF_REGULAR) == 0)))
            {
              Elf_Internal_Rela outrel;
-             boolean skip, relocate;
+             bfd_byte *loc;
+             bfd_boolean skip, relocate;
 
              /* When generating a shared object, these relocations
                 are copied into the output file to be resolved at run
@@ -1252,7 +1252,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -1273,20 +1273,20 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                         name);
 
                      bfd_set_error (bfd_error_bad_value);
-                     return false;
+                     return FALSE;
                    }
                }
 
-             skip = false;
-             relocate = false;
+             skip = FALSE;
+             relocate = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
              outrel.r_offset += (input_section->output_section->vma
                                  + input_section->output_offset);
 
@@ -1307,7 +1307,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                {
                  if (r_type == R_CRIS_32)
                    {
-                     relocate = true;
+                     relocate = TRUE;
                      outrel.r_info = ELF32_R_INFO (0, R_CRIS_RELATIVE);
                      outrel.r_addend = relocation + rel->r_addend;
                    }
@@ -1329,7 +1329,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      else if (sec == NULL || sec->owner == NULL)
                        {
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      else
                        {
@@ -1345,11 +1345,9 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
 
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* This reloc will be computed at runtime, so there's no
                  need to do anything now, except for R_CRIS_32 relocations
@@ -1379,7 +1377,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            case bfd_reloc_undefined:
              r = info->callbacks->undefined_symbol
                (info, symname, input_bfd, input_section, rel->r_offset,
-                true);
+                TRUE);
              break;
 
            case bfd_reloc_outofrange:
@@ -1404,17 +1402,17 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              (info, msg, symname, input_bfd, input_section, rel->r_offset);
 
          if (! r)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -1437,7 +1435,8 @@ elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_vma gotplt_offset
        = ((struct elf_cris_link_hash_entry *) h)->gotplt_offset;
       Elf_Internal_Rela rela;
-      boolean has_gotplt = gotplt_offset != 0;
+      bfd_byte *loc;
+      bfd_boolean has_gotplt = gotplt_offset != 0;
 
       /* Get the index in the procedure linkage table which
         corresponds to this symbol.  This is the index of this symbol
@@ -1517,9 +1516,8 @@ elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym)
                           + got_offset);
          rela.r_info = ELF32_R_INFO (h->dynindx, R_CRIS_JUMP_SLOT);
          rela.r_addend = 0;
-         bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                    ((Elf32_External_Rela *) srela->contents
-                                     + gotplt_index));
+         loc = srela->contents + gotplt_index * sizeof (Elf32_External_Rela);
+         bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
        }
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
@@ -1554,6 +1552,7 @@ elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *sgot;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
       bfd_byte *where;
 
       /* This symbol has an entry in the global offset table.  Set it up.  */
@@ -1587,16 +1586,16 @@ elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym)
          rela.r_addend = 0;
        }
 
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + srela->reloc_count));
-      ++srela->reloc_count;
+      loc = srela->contents;
+      loc += srela->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       asection *s;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -1613,10 +1612,8 @@ elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_CRIS_COPY);
       rela.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) s->contents
-                                 + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute.  */
@@ -1624,12 +1621,12 @@ elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_cris_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -1749,7 +1746,7 @@ elf_cris_finish_dynamic_sections (output_bfd, info)
 
   elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Return the section that should be marked against GC for a given
@@ -1757,11 +1754,11 @@ elf_cris_finish_dynamic_sections (output_bfd, info)
 
 static asection *
 cris_elf_gc_mark_hook (sec, info, rel, h, sym)
-     asection *                   sec;
-     struct bfd_link_info *       info ATTRIBUTE_UNUSED;
-     Elf_Internal_Rela *          rel;
-     struct elf_link_hash_entry * h;
-     Elf_Internal_Sym *           sym;
+     asection *sec;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *rel;
+     struct elf_link_hash_entry *h;
+     Elf_Internal_Sym *sym;
 {
   if (h != NULL)
     {
@@ -1794,12 +1791,12 @@ cris_elf_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 cris_elf_gc_sweep_hook (abfd, info, sec, relocs)
-     bfd *                     abfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *    info ATTRIBUTE_UNUSED;
-     asection *                sec ATTRIBUTE_UNUSED;
-     const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
+     asection *sec ATTRIBUTE_UNUSED;
+     const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
@@ -1817,7 +1814,7 @@ cris_elf_gc_sweep_hook (abfd, info, sec, relocs)
 
   dynobj = elf_hash_table (info)->dynobj;
   if (dynobj == NULL)
-    return true;
+    return TRUE;
 
   sgot = bfd_get_section_by_name (dynobj, ".got");
   srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
@@ -1895,7 +1892,7 @@ cris_elf_gc_sweep_hook (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Make sure we emit a GOT entry if the symbol was supposed to have a PLT
@@ -1905,7 +1902,7 @@ cris_elf_gc_sweep_hook (abfd, info, sec, relocs)
    or elf_cris_size_dynamic_sections if no dynamic sections will be
    created (we're only linking static objects).  */
 
-static boolean
+static bfd_boolean
 elf_cris_adjust_gotplt_to_got (h, p)
      struct elf_cris_link_hash_entry *h;
      PTR p;
@@ -1920,7 +1917,7 @@ elf_cris_adjust_gotplt_to_got (h, p)
 
   /* If nobody wanted a GOTPLT with this symbol, we're done.  */
   if (h->gotplt_refcount <= 0)
-    return true;
+    return TRUE;
 
   if (h->root.got.refcount > 0)
     {
@@ -1953,7 +1950,7 @@ elf_cris_adjust_gotplt_to_got (h, p)
       srelgot->_raw_size += sizeof (Elf32_External_Rela);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Try to fold PLT entries with GOT entries.  There are two cases when we
@@ -1974,7 +1971,7 @@ elf_cris_adjust_gotplt_to_got (h, p)
    version scripts.  The differing cases are handled by
    elf_cris_hide_symbol.  */
 
-static boolean
+static bfd_boolean
 elf_cris_try_fold_plt_to_got (h, p)
      struct elf_cris_link_hash_entry *h;
      PTR p;
@@ -1985,7 +1982,7 @@ elf_cris_try_fold_plt_to_got (h, p)
      other reference so there's nothing to do.  Likewise if there are no
      PLT references; GOTPLT references included.  */
   if (h->root.got.refcount <= 0 || h->root.plt.refcount <= 0)
-    return true;
+    return TRUE;
 
   /* GOTPLT relocs are supposed to be included into the PLT refcount.  */
   BFD_ASSERT (h->gotplt_refcount <= h->root.plt.refcount);
@@ -1995,13 +1992,13 @@ elf_cris_try_fold_plt_to_got (h, p)
       /* The only PLT references are GOTPLT references, and there are GOT
         references.  Convert PLT to GOT references.  */
       if (! elf_cris_adjust_gotplt_to_got (h, info))
-       return false;
+       return FALSE;
 
       /* Clear the PLT references, so no PLT will be created.  */
       h->root.plt.offset = (bfd_vma) -1;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Our own version of hide_symbol, so that we can adjust a GOTPLT reloc
@@ -2012,7 +2009,7 @@ static void
 elf_cris_hide_symbol (info, h, force_local)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
-     boolean force_local;
+     bfd_boolean force_local;
 {
   elf_cris_adjust_gotplt_to_got ((struct elf_cris_link_hash_entry *) h, info);
 
@@ -2025,7 +2022,7 @@ elf_cris_hide_symbol (info, h, force_local)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf_cris_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -2080,21 +2077,21 @@ elf_cris_adjust_dynamic_symbol (info, h)
         PLT entry, get rid of the PLT.  */
       if (! elf_cris_try_fold_plt_to_got ((struct elf_cris_link_hash_entry *)
                                          h, info))
-       return false;
+       return FALSE;
 
       /* GC or folding may have rendered this entry unused.  */
       if (h->plt.refcount <= 0)
        {
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
          h->plt.offset = (bfd_vma) -1;
-         return true;
+         return TRUE;
        }
 
       /* Make sure this symbol is output as a dynamic symbol.  */
       if (h->dynindx == -1)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = bfd_get_section_by_name (dynobj, ".plt");
@@ -2138,7 +2135,7 @@ elf_cris_adjust_dynamic_symbol (info, h)
          /* Make room for this entry.  */
          s->_raw_size += PLT_ENTRY_SIZE;
 
-         return true;
+         return TRUE;
        }
 
       /* No GOT reference for this symbol; prepare for an ordinary PLT.  */
@@ -2163,7 +2160,7 @@ elf_cris_adjust_dynamic_symbol (info, h)
       BFD_ASSERT (s != NULL);
       s->_raw_size += sizeof (Elf32_External_Rela);
 
-      return true;
+      return TRUE;
     }
 
   /* Reinitialize the plt offset now that it is not used as a reference
@@ -2179,7 +2176,7 @@ elf_cris_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -2190,12 +2187,12 @@ elf_cris_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -2239,7 +2236,7 @@ elf_cris_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (!bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -2249,12 +2246,12 @@ elf_cris_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.  */
 
-static boolean
+static bfd_boolean
 cris_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2272,7 +2269,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -2320,7 +2317,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
              /* Create the .got section, so we can assume it's always
                 present whenever there's a dynobj.  */
              if (!_bfd_elf_create_got_section (dynobj, info))
-               return false;
+               return FALSE;
            }
          break;
 
@@ -2359,7 +2356,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
                                                  | SEC_LINKER_CREATED
                                                  | SEC_READONLY))
                      || !bfd_set_section_alignment (dynobj, srelgot, 2))
-                   return false;
+                   return FALSE;
                }
            }
          /* Fall through.  */
@@ -2380,7 +2377,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
              amt *= sizeof (bfd_signed_vma);
              local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, amt));
              if (local_got_refcounts == NULL)
-               return false;
+               return FALSE;
 
              local_got_refcounts++;
              elf_local_got_refcounts (abfd) = local_got_refcounts;
@@ -2418,7 +2415,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
                  if (h->dynindx == -1)
                    {
                      if (!bfd_elf32_link_record_dynamic_symbol (info, h))
-                       return false;
+                       return FALSE;
                    }
 
                  /* Allocate space in the .got section.  */
@@ -2569,7 +2566,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
                       elf_elfheader (abfd)->e_shstrndx,
                       elf_section_data (sec)->rel_hdr.sh_name));
              if (name == NULL)
-               return false;
+               return FALSE;
 
              BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                          && strcmp (bfd_get_section_name (abfd, sec),
@@ -2588,7 +2585,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
                                                  | SEC_LINKER_CREATED
                                                  | SEC_READONLY))
                      || !bfd_set_section_alignment (dynobj, sreloc, 2))
-                   return false;
+                   return FALSE;
                }
              if (sec->flags & SEC_READONLY)
                info->flags |= DF_TEXTREL;
@@ -2620,7 +2617,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
                  p = ((struct elf_cris_pcrel_relocs_copied *)
                       bfd_alloc (dynobj, (bfd_size_type) sizeof *p));
                  if (p == NULL)
-                   return false;
+                   return FALSE;
                  p->next = eh->pcrel_relocs_copied;
                  eh->pcrel_relocs_copied = p;
                  p->section = sreloc;
@@ -2635,37 +2632,37 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_CRIS_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_CRIS_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
 
        default:
          /* Other relocs do not appear here.  */
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
         }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_cris_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean plt;
-  boolean relocs;
+  bfd_boolean plt;
+  bfd_boolean relocs;
 
   dynobj = elf_hash_table (info)->dynobj;
   BFD_ASSERT (dynobj != NULL);
@@ -2717,12 +2714,12 @@ elf_cris_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  plt = false;
-  relocs = false;
+  plt = FALSE;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -2731,7 +2728,7 @@ elf_cris_size_dynamic_sections (output_bfd, info)
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      strip = false;
+      strip = FALSE;
 
       if (strcmp (name, ".plt") == 0)
        {
@@ -2739,12 +2736,12 @@ elf_cris_size_dynamic_sections (output_bfd, info)
            {
              /* Strip this section if we don't need it; see the
                  comment below.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there is a PLT.  */
-             plt = true;
+             plt = TRUE;
            }
        }
       else if (strncmp (name, ".rela", 5) == 0)
@@ -2760,14 +2757,14 @@ elf_cris_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there are any reloc sections other
                  than .rela.plt.  */
              if (strcmp (name, ".rela.plt") != 0)
-                 relocs = true;
+                 relocs = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -2793,7 +2790,7 @@ elf_cris_size_dynamic_sections (output_bfd, info)
         this will make entries have the type R_CRIS_NONE.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -2809,7 +2806,7 @@ elf_cris_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (plt)
@@ -2818,7 +2815,7 @@ elf_cris_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -2826,19 +2823,19 @@ elf_cris_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_RELA, 0)
              || !add_dynamic_entry (DT_RELASZ, 0)
              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
-           return false;
+           return FALSE;
        }
 
       if ((info->flags & DF_TEXTREL) != 0)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
          info->flags |= DF_TEXTREL;
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called via elf_cris_link_hash_traverse if we are
@@ -2850,7 +2847,7 @@ elf_cris_size_dynamic_sections (output_bfd, info)
    check_relocs routine, but we won't fill them in in the
    relocate_section routine.  */
 
-static boolean
+static bfd_boolean
 elf_cris_discard_excess_dso_dynamics (h, inf)
      struct elf_cris_link_hash_entry *h;
      PTR inf;
@@ -2872,14 +2869,14 @@ elf_cris_discard_excess_dso_dynamics (h, inf)
        s->section->_raw_size -= s->count * sizeof (Elf32_External_Rela);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called via elf_cris_link_hash_traverse if we are *not*
    creating a shared object.  We discard space for relocs for symbols put
    in the .got, but which we found we do not have to resolve at run-time.  */
 
-static boolean
+static bfd_boolean
 elf_cris_discard_excess_program_dynamics (h, inf)
      struct elf_cris_link_hash_entry *h;
      PTR inf;
@@ -2927,13 +2924,13 @@ elf_cris_discard_excess_program_dynamics (h, inf)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Reject a file depending on presence and expectation of prefixed
    underscores on symbols.  */
 
-static boolean
+static bfd_boolean
 cris_elf_object_p (abfd)
      bfd *abfd;
 {
@@ -2948,7 +2945,7 @@ cris_elf_object_p (abfd)
 static void
 cris_elf_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   if (bfd_get_symbol_leading_char (abfd) == '_')
     elf_elfheader (abfd)->e_flags |= EF_CRIS_UNDERSCORE;
@@ -2958,7 +2955,7 @@ cris_elf_final_write_processing (abfd, linker)
 
 /* Display the flags field.  */
 
-static boolean
+static bfd_boolean
 cris_elf_print_private_bfd_data (abfd, ptr)
      bfd *abfd;
      PTR ptr;
@@ -2975,12 +2972,12 @@ cris_elf_print_private_bfd_data (abfd, ptr)
     fprintf (file, _(" [symbols have a _ prefix]"));
 
   fputc ('\n', file);
-  return true;
+  return TRUE;
 }
 
 /* Don't mix files with and without a leading underscore.  */
 
-static boolean
+static bfd_boolean
 cris_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -2988,19 +2985,19 @@ cris_elf_merge_private_bfd_data (ibfd, obfd)
   flagword old_flags, new_flags;
 
   if (! _bfd_generic_verify_endian_match (ibfd, obfd))
-    return false;
+    return FALSE;
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (! elf_flags_init (obfd))
     {
       /* This happens when ld starts out with a 'blank' output file.  */
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
 
       /* Set flags according to current bfd_target.  */
-      cris_elf_final_write_processing (obfd, false);
+      cris_elf_final_write_processing (obfd, FALSE);
     }
 
   old_flags = elf_elfheader (obfd)->e_flags;
@@ -3015,10 +3012,10 @@ cris_elf_merge_private_bfd_data (ibfd, obfd)
         : _("%s: uses non-prefixed symbols, but writing file with _-prefixed symbols"),
         bfd_archive_filename (ibfd));
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 
index fe31b925c0aadd9497092aee23a9f4ce26629b8e..1d6912a0f4c5e9e2ad7f035b4b5c7ccb4e422126 100644 (file)
@@ -27,17 +27,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void d10v_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static asection * elf32_d10v_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf32_d10v_gc_sweep_hook
+static bfd_boolean elf32_d10v_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf32_d10v_check_relocs
+static bfd_boolean elf32_d10v_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf32_d10v_relocate_section
+static bfd_boolean elf32_d10v_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
           bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *,
           asection **));
@@ -52,15 +52,15 @@ static reloc_howto_type elf_d10v_howto_table[] =
           0,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           32,                  /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont, /* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_D10V_NONE",       /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0,                   /* src_mask */
           0,                   /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     /* An PC Relative 10-bit relocation, shifted by 2  */
     /* right container */
@@ -68,15 +68,15 @@ static reloc_howto_type elf_d10v_howto_table[] =
           2,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           7,                   /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield, /* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_D10V_10_PCREL_R", /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0xff,                /* src_mask */
           0xff,                /* dst_mask */
-          true),               /* pcrel_offset */
+          TRUE),               /* pcrel_offset */
 
     /* An PC Relative 10-bit relocation, shifted by 2  */
     /* left container */
@@ -84,105 +84,105 @@ static reloc_howto_type elf_d10v_howto_table[] =
           2,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           7,                   /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           15,                  /* bitpos */
           complain_overflow_bitfield, /* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_D10V_10_PCREL_L", /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0x07f8000,           /* src_mask */
           0x07f8000,           /* dst_mask */
-          true),               /* pcrel_offset */
+          TRUE),               /* pcrel_offset */
 
     /* A 16 bit absolute relocation */
     HOWTO (R_D10V_16,          /* type */
           0,                   /* rightshift */
           1,                   /* size (0 = byte, 1 = short, 2 = long) */
           16,                  /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont, /* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_D10V_16",         /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0xffff,              /* src_mask */
           0xffff,              /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     /* An 18 bit absolute relocation, right shifted 2 */
     HOWTO (R_D10V_18,          /* type */
           2,                   /* rightshift */
           1,                   /* size (0 = byte, 1 = short, 2 = long) */
           16,                  /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont, /* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_D10V_18",         /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0xffff,              /* src_mask */
           0xffff,              /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     /* A relative 18 bit relocation, right shifted by 2  */
     HOWTO (R_D10V_18_PCREL,    /* type */
           2,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           15,                  /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield, /* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_D10V_18_PCREL",   /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0xffff,              /* src_mask */
           0xffff,              /* dst_mask */
-          true),                       /* pcrel_offset */
+          TRUE),                       /* pcrel_offset */
 
     /* A 32 bit absolute relocation */
     HOWTO (R_D10V_32,          /* type */
           0,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           32,                  /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont, /* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_D10V_32",         /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0xffffffff,          /* src_mask */
           0xffffffff,          /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     /* GNU extension to record C++ vtable hierarchy */
     HOWTO (R_D10V_GNU_VTINHERIT, /* type */
           0,                     /* rightshift */
           2,                     /* size (0 = byte, 1 = short, 2 = long) */
           0,                     /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont, /* complain_on_overflow */
           NULL,                  /* special_function */
           "R_D10V_GNU_VTINHERIT", /* name */
-          false,                 /* partial_inplace */
+          FALSE,                 /* partial_inplace */
           0,                     /* src_mask */
           0,                     /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
 
     /* GNU extension to record C++ vtable member usage */
     HOWTO (R_D10V_GNU_VTENTRY,     /* type */
           0,                     /* rightshift */
           2,                     /* size (0 = byte, 1 = short, 2 = long) */
           0,                     /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont, /* complain_on_overflow */
           _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
           "R_D10V_GNU_VTENTRY",   /* name */
-          false,                 /* partial_inplace */
+          FALSE,                 /* partial_inplace */
           0,                     /* src_mask */
           0,                     /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
   };
 
 /* Map BFD reloc types to D10V ELF reloc types.  */
@@ -230,7 +230,7 @@ static void
 d10v_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -276,7 +276,7 @@ elf32_d10v_gc_mark_hook (sec, info, rel, h, sym)
   return NULL;
 }
 
-static boolean
+static bfd_boolean
 elf32_d10v_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -284,14 +284,14 @@ elf32_d10v_gc_sweep_hook (abfd, info, sec, relocs)
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   /* we don't use got and plt entries for d10v */
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 elf32_d10v_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -304,7 +304,7 @@ elf32_d10v_check_relocs (abfd, info, sec, relocs)
   const Elf_Internal_Rela *rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -330,23 +330,23 @@ elf32_d10v_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_D10V_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_D10V_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
         }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Relocate a D10V ELF section.  */
-static boolean
+static bfd_boolean
 elf32_d10v_relocate_section (output_bfd, info, input_bfd, input_section,
                            contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -437,8 +437,8 @@ elf32_d10v_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (!((*info->callbacks->undefined_symbol)
                    (info, h->root.root.string, input_bfd,
-                    input_section, rel->r_offset, true)))
-               return false;
+                    input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -467,14 +467,14 @@ elf32_d10v_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->reloc_overflow)
                    (info, name, howto->name, (bfd_vma) 0,
                     input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
              break;
 
            case bfd_reloc_undefined:
              if (!((*info->callbacks->undefined_symbol)
                    (info, name, input_bfd, input_section,
-                    rel->r_offset, true)))
-               return false;
+                    rel->r_offset, TRUE)))
+               return FALSE;
              break;
 
            case bfd_reloc_outofrange:
@@ -497,13 +497,13 @@ elf32_d10v_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->warning)
                    (info, msg, name, input_bfd, input_section,
                     rel->r_offset)))
-               return false;
+               return FALSE;
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 #define ELF_ARCH               bfd_arch_d10v
 #define ELF_MACHINE_CODE       EM_D10V
index f2f39468c51a02d99292992062f7166f8b8122ef..4b184d635543de3f8e762b361f8ba83747964b5c 100644 (file)
@@ -28,9 +28,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void d30v_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void d30v_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static bfd_reloc_status_type bfd_elf_d30v_reloc PARAMS ((
      bfd *abfd,
      arelent *reloc_entry,
@@ -55,195 +55,195 @@ static reloc_howto_type elf_d30v_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_D30V_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 6 bit absolute relocation */
   HOWTO (R_D30V_6,             /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_D30V_6",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x3f,                  /* src_mask */
         0x3f,                  /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A relative 9 bit relocation, right shifted by 3 */
   HOWTO (R_D30V_9_PCREL,       /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_d30v_reloc_21, /* special_function */
         "R_D30V_9_PCREL",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x3f,                  /* src_mask */
         0x3f,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 9 bit relocation, right shifted by 3 */
   HOWTO (R_D30V_9_PCREL_R,     /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_d30v_reloc_21, /* special_function */
         "R_D30V_9_PCREL_R",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x3f,                  /* src_mask */
         0x3f,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* An absolute 15 bit relocation, right shifted by 3 */
   HOWTO (R_D30V_15,            /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_D30V_15",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xfff,                 /* src_mask */
         0xfff,                 /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A relative 15 bit relocation, right shifted by 3 */
   HOWTO (R_D30V_15_PCREL,      /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_d30v_reloc_21, /* special_function */
         "R_D30V_15_PCREL",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xfff,                 /* src_mask */
         0xfff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 15 bit relocation, right shifted by 3 */
   HOWTO (R_D30V_15_PCREL_R,    /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_d30v_reloc_21, /* special_function */
         "R_D30V_15_PCREL_R",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xfff,                 /* src_mask */
         0xfff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* An absolute 21 bit relocation, right shifted by 3 */
   HOWTO (R_D30V_21,            /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         18,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_D30V_21",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x3ffff,               /* src_mask */
         0x3ffff,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A relative 21 bit relocation, right shifted by 3 */
   HOWTO (R_D30V_21_PCREL,      /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         18,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_d30v_reloc_21, /* special_function */
         "R_D30V_21_PCREL",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x3ffff,               /* src_mask */
         0x3ffff,               /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 21 bit relocation, right shifted by 3, in the Right container */
   HOWTO (R_D30V_21_PCREL_R,    /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         18,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_d30v_reloc_21, /* special_function */
         "R_D30V_21_PCREL_R",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x3ffff,               /* src_mask */
         0x3ffff,               /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A D30V 32 bit absolute relocation */
   HOWTO (R_D30V_32,            /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_d30v_reloc,    /* special_function */
         "R_D30V_32",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A relative 32 bit relocation */
   HOWTO (R_D30V_32_PCREL,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_d30v_reloc,    /* special_function */
         "R_D30V_32_PCREL",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A regular 32 bit absolute relocation */
   HOWTO (R_D30V_32_NORMAL,             /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
-        "R_D30V_32_NORMAL",            /* name */
-        false,                 /* partial_inplace */
+        "R_D30V_32_NORMAL",    /* name */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 };
 
@@ -522,7 +522,7 @@ static void
 d30v_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -537,7 +537,7 @@ static void
 d30v_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
index 91d75f3360ad17fae876302984a90c0d81e0cf7c..a1f7d0d48f18c67096b42a1f1b3414928b9b0320 100644 (file)
 
 int    set_dlx_skip_hi16_flag PARAMS ((int));
 
-static boolean elf32_dlx_check_relocs
-  PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *));
+static bfd_boolean elf32_dlx_check_relocs
+  PARAMS ((bfd *, struct bfd_link_info *, asection *,
+          const Elf_Internal_Rela *));
 static void elf32_dlx_info_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void elf32_dlx_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static bfd_reloc_status_type elf32_dlx_relocate16
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type elf32_dlx_relocate26
@@ -57,45 +58,45 @@ static reloc_howto_type dlx_elf_howto_table[]=
           0,                     /* rightshift */
           0,                     /* size (0 = byte, 1 = short, 2 = long) */
           0,                     /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont,/* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_DLX_NONE",          /* name */
-          false,                 /* partial_inplace */
+          FALSE,                 /* partial_inplace */
           0,                     /* src_mask */
           0,                     /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
 
     /* 8 bit relocation.  */
     HOWTO (R_DLX_RELOC_8,         /* type */
           0,                     /* rightshift */
           0,                     /* size (0 = byte, 1 = short, 2 = long) */
           8,                     /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont,/* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_DLX_RELOC_8",       /* name */
-          true,                  /* partial_inplace */
+          TRUE,                  /* partial_inplace */
           0xff,                  /* src_mask */
           0xff,                  /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
 
     /* 16 bit relocation.  */
     HOWTO (R_DLX_RELOC_16,        /* type */
           0,                     /* rightshift */
           1,                     /* size (0 = byte, 1 = short, 2 = long) */
           16,                    /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont,/* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_DLX_RELOC_16",      /* name */
-          true,                  /* partial_inplace */
+          TRUE,                  /* partial_inplace */
           0xffff,                /* src_mask */
           0xffff,                /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
 
 #if 0
     /* 26 bit jump address.  */
@@ -103,17 +104,17 @@ static reloc_howto_type dlx_elf_howto_table[]=
           0,                     /* rightshift */
           2,                     /* size (0 = byte, 1 = short, 2 = long) */
           26,                    /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont,/* complain_on_overflow */
           /* This needs complex overflow detection, because the upper four
              bits must match the PC + 4.  */
           bfd_elf_generic_reloc, /* special_function */
           "R_DLX_RELOC_26",      /* name */
-          true,                  /* partial_inplace */
+          TRUE,                  /* partial_inplace */
           0x3ffffff,             /* src_mask */
           0x3ffffff,             /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
 #endif
 
     /* 32 bit relocation.  */
@@ -121,45 +122,45 @@ static reloc_howto_type dlx_elf_howto_table[]=
           0,                     /* rightshift */
           2,                     /* size (0 = byte, 1 = short, 2 = long) */
           32,                    /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont,/* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_DLX_RELOC_32",      /* name */
-          true,                  /* partial_inplace */
+          TRUE,                  /* partial_inplace */
           0xffffffff,            /* src_mask */
           0xffffffff,            /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
 
     /* GNU extension to record C++ vtable hierarchy */
     HOWTO (R_DLX_GNU_VTINHERIT,   /* type */
           0,                     /* rightshift */
           2,                     /* size (0 = byte, 1 = short, 2 = long) */
           0,                     /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont,/* complain_on_overflow */
           NULL,                  /* special_function */
           "R_DLX_GNU_VTINHERIT", /* name */
-          false,                 /* partial_inplace */
+          FALSE,                 /* partial_inplace */
           0,                     /* src_mask */
           0,                     /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
 
     /* GNU extension to record C++ vtable member usage */
     HOWTO (R_DLX_GNU_VTENTRY,     /* type */
           0,                     /* rightshift */
           2,                     /* size (0 = byte, 1 = short, 2 = long) */
           0,                     /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont,/* complain_on_overflow */
           _bfd_elf_rel_vtable_reloc_fn,/* special_function */
           "R_DLX_GNU_VTENTRY",   /* name */
-          false,                 /* partial_inplace */
+          FALSE,                 /* partial_inplace */
           0,                     /* src_mask */
           0,                     /* dst_mask */
-          false)                 /* pcrel_offset */
+          FALSE)                 /* pcrel_offset */
   };
 
 /* 16 bit offset for pc-relative branches.  */
@@ -168,15 +169,15 @@ HOWTO (R_DLX_RELOC_16_PCREL,  /* type */
        0,                     /* rightshift */
        1,                     /* size (0 = byte, 1 = short, 2 = long) */
        16,                    /* bitsize */
-       true,                  /* pc_relative */
+       TRUE,                  /* pc_relative */
        0,                     /* bitpos */
        complain_overflow_signed, /* complain_on_overflow */
        elf32_dlx_relocate16,  /* special_function */
        "R_DLX_RELOC_16_PCREL",/* name */
-       true,                  /* partial_inplace */
+       TRUE,                  /* partial_inplace */
        0xffff,                /* src_mask */
        0xffff,                /* dst_mask */
-       true);                 /* pcrel_offset */
+       TRUE);                 /* pcrel_offset */
 
 /* 26 bit offset for pc-relative branches.  */
 static reloc_howto_type elf_dlx_gnu_rel26_s2 =
@@ -184,15 +185,15 @@ HOWTO (R_DLX_RELOC_26_PCREL,  /* type */
        0,                     /* rightshift */
        2,                     /* size (0 = byte, 1 = short, 2 = long) */
        26,                    /* bitsize */
-       true,                  /* pc_relative */
+       TRUE,                  /* pc_relative */
        0,                     /* bitpos */
        complain_overflow_dont,/* complain_on_overflow */
        elf32_dlx_relocate26,  /* special_function */
        "R_DLX_RELOC_26_PCREL",/* name */
-       true,                  /* partial_inplace */
+       TRUE,                  /* partial_inplace */
        0xffff,                /* src_mask */
        0xffff,                /* dst_mask */
-       true);                 /* pcrel_offset */
+       TRUE);                 /* pcrel_offset */
 
 /* High 16 bits of symbol value.  */
 static reloc_howto_type elf_dlx_reloc_16_hi =
@@ -200,15 +201,15 @@ HOWTO (R_DLX_RELOC_16_HI,     /* type */
        16,                    /* rightshift */
        2,                     /* size (0 = byte, 1 = short, 2 = long) */
        32,                    /* bitsize */
-       false,                 /* pc_relative */
+       FALSE,                 /* pc_relative */
        0,                     /* bitpos */
        complain_overflow_dont, /* complain_on_overflow */
        _bfd_dlx_elf_hi16_reloc,/* special_function */
        "R_DLX_RELOC_16_HI",   /* name */
-       true,                  /* partial_inplace */
+       TRUE,                  /* partial_inplace */
        0xFFFF,                /* src_mask */
        0xffff,                /* dst_mask */
-       false);                /* pcrel_offset */
+       FALSE);                /* pcrel_offset */
 
   /* Low 16 bits of symbol value.  */
 static reloc_howto_type elf_dlx_reloc_16_lo =
@@ -216,15 +217,15 @@ HOWTO (R_DLX_RELOC_16_LO,     /* type */
        0,                     /* rightshift */
        1,                     /* size (0 = byte, 1 = short, 2 = long) */
        16,                    /* bitsize */
-       false,                 /* pc_relative */
+       FALSE,                 /* pc_relative */
        0,                     /* bitpos */
        complain_overflow_dont,/* complain_on_overflow */
        bfd_elf_generic_reloc, /* special_function */
        "R_DLX_RELOC_16_LO",   /* name */
-       true,                  /* partial_inplace */
+       TRUE,                  /* partial_inplace */
        0xffff,                /* src_mask */
        0xffff,                /* dst_mask */
-       false);                /* pcrel_offset */
+       FALSE);                /* pcrel_offset */
 
 
 /* The gas default beheaver is not to preform the %hi modifier so that the
@@ -519,7 +520,7 @@ static const struct elf_reloc_map dlx_reloc_map[] =
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 elf32_dlx_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -532,7 +533,7 @@ elf32_dlx_check_relocs (abfd, info, sec, relocs)
   const Elf_Internal_Rela *rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -558,19 +559,19 @@ elf32_dlx_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_DLX_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_DLX_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
         }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Given a BFD reloc type, return a howto structure.  */
@@ -632,7 +633,7 @@ static void
 elf32_dlx_info_to_howto (abfd, cache_ptr, dst)
      bfd * abfd ATTRIBUTE_UNUSED;
      arelent * cache_ptr ATTRIBUTE_UNUSED;
-     Elf32_Internal_Rela * dst ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela * dst ATTRIBUTE_UNUSED;
 {
   abort ();
 }
@@ -641,7 +642,7 @@ static void
 elf32_dlx_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
index 07453cf2bc54b50d6572bf6d5574759a12a005ac..2311316498eb79de777f710ac372c642af6971a0 100644 (file)
@@ -31,20 +31,20 @@ static bfd_reloc_status_type fr30_elf_i32_reloc
 static reloc_howto_type * fr30_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void fr30_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
-static boolean fr30_elf_relocate_section
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean fr30_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 static bfd_reloc_status_type fr30_final_link_relocate
   PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, bfd_vma));
-static boolean fr30_elf_gc_sweep_hook
+static bfd_boolean fr30_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection * fr30_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean fr30_elf_check_relocs
+static bfd_boolean fr30_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
@@ -55,194 +55,194 @@ static reloc_howto_type fr30_elf_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FR30_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 8 bit absolute relocation.  */
   HOWTO (R_FR30_8,             /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         4,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FR30_8",            /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000,                /* src_mask */
         0x0ff0,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 20 bit absolute relocation.  */
   HOWTO (R_FR30_20,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         20,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         fr30_elf_i20_reloc,    /* special_function */
         "R_FR30_20",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x00000000,            /* src_mask */
         0x00f0ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  */
   HOWTO (R_FR30_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FR30_32",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x00000000,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit into 48 bits absolute relocation.  */
   HOWTO (R_FR30_48,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         fr30_elf_i32_reloc,    /* special_function */
         "R_FR30_48",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x00000000,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 6 bit absolute relocation.  */
   HOWTO (R_FR30_6_IN_4,                /* type */
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         4,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FR30_6_IN_4",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000,                /* src_mask */
         0x00f0,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 8 bit absolute relocation.  */
   HOWTO (R_FR30_8_IN_8,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         4,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc,/* special_function */
         "R_FR30_8_IN_8",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000,                /* src_mask */
         0x0ff0,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 9 bit absolute relocation.  */
   HOWTO (R_FR30_9_IN_8,                /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         9,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         4,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc,/* special_function */
         "R_FR30_9_IN_8",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000,                /* src_mask */
         0x0ff0,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 10 bit absolute relocation.  */
   HOWTO (R_FR30_10_IN_8,       /* type */
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         10,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         4,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc,/* special_function */
         "R_FR30_10_IN_8",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000,                /* src_mask */
         0x0ff0,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A PC relative 9 bit relocation, right shifted by 1.  */
   HOWTO (R_FR30_9_PCREL,       /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         9,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FR30_9_PCREL",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0000,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A PC relative 12 bit relocation, right shifted by 1.  */
   HOWTO (R_FR30_12_PCREL,      /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FR30_12_PCREL",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0000,                /* src_mask */
         0x07ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_FR30_GNU_VTINHERIT, /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_FR30_GNU_VTINHERIT", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_FR30_GNU_VTENTRY,     /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_FR30_GNU_VTENTRY",   /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 };
 \f
 /* Utility to actually perform an R_FR30_20 reloc.  */
@@ -250,15 +250,15 @@ static reloc_howto_type fr30_elf_howto_table [] =
 static bfd_reloc_status_type
 fr30_elf_i20_reloc (abfd, reloc_entry, symbol, data,
                    input_section, output_bfd, error_message)
-     bfd *      abfd;
-     arelent *  reloc_entry;
-     asymbol *  symbol;
-     PTR        data;
-     asection * input_section;
-     bfd *      output_bfd;
-     char **    error_message ATTRIBUTE_UNUSED;
+     bfd *abfd;
+     arelent *reloc_entry;
+     asymbol *symbol;
+     PTR data;
+     asection *input_section;
+     bfd *output_bfd;
+     char **error_message ATTRIBUTE_UNUSED;
 {
-  bfd_vma       relocation;
+  bfd_vma relocation;
   unsigned long x;
 
   /* This part is from bfd_elf_generic_reloc.  */
@@ -296,15 +296,15 @@ fr30_elf_i20_reloc (abfd, reloc_entry, symbol, data,
 static bfd_reloc_status_type
 fr30_elf_i32_reloc (abfd, reloc_entry, symbol, data,
                    input_section, output_bfd, error_message)
-     bfd *      abfd;
-     arelent *  reloc_entry;
-     asymbol *  symbol;
-     PTR        data;
-     asection * input_section;
-     bfd *      output_bfd;
-     char **    error_message ATTRIBUTE_UNUSED;
+     bfd *abfd;
+     arelent *reloc_entry;
+     asymbol *symbol;
+     PTR data;
+     asection *input_section;
+     bfd *output_bfd;
+     char **error_message ATTRIBUTE_UNUSED;
 {
-  bfd_vma       relocation;
+  bfd_vma relocation;
 
   /* This part is from bfd_elf_generic_reloc.  */
   if (output_bfd != (bfd *) NULL
@@ -358,7 +358,7 @@ static const struct fr30_reloc_map fr30_reloc_map [] =
 
 static reloc_howto_type *
 fr30_reloc_type_lookup (abfd, code)
-     bfd * abfd ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
      bfd_reloc_code_real_type code;
 {
   unsigned int i;
@@ -375,9 +375,9 @@ fr30_reloc_type_lookup (abfd, code)
 
 static void
 fr30_info_to_howto_rela (abfd, cache_ptr, dst)
-     bfd * abfd ATTRIBUTE_UNUSED;
-     arelent * cache_ptr;
-     Elf32_Internal_Rela * dst;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     arelent *cache_ptr;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -390,17 +390,18 @@ fr30_info_to_howto_rela (abfd, cache_ptr, dst)
    routines, but a few relocs, we have to do them ourselves.  */
 
 static bfd_reloc_status_type
-fr30_final_link_relocate (howto, input_bfd, input_section, contents, rel, relocation)
-     reloc_howto_type *  howto;
-     bfd *               input_bfd;
-     asection *          input_section;
-     bfd_byte *          contents;
-     Elf_Internal_Rela * rel;
-     bfd_vma             relocation;
+fr30_final_link_relocate (howto, input_bfd, input_section, contents, rel,
+                         relocation)
+     reloc_howto_type *howto;
+     bfd *input_bfd;
+     asection *input_section;
+     bfd_byte *contents;
+     Elf_Internal_Rela *rel;
+     bfd_vma relocation;
 {
   bfd_reloc_status_type r = bfd_reloc_ok;
-  bfd_vma               x;
-  bfd_signed_vma       srel;
+  bfd_vma x;
+  bfd_signed_vma srel;
 
   switch (howto->type)
     {
@@ -497,25 +498,25 @@ fr30_final_link_relocate (howto, input_bfd, input_section, contents, rel, reloca
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
-     bfd *                   output_bfd;
-     struct bfd_link_info *  info;
-     bfd *                   input_bfd;
-     asection *              input_section;
-     bfd_byte *              contents;
-     Elf_Internal_Rela *     relocs;
-     Elf_Internal_Sym *      local_syms;
-     asection **             local_sections;
+     bfd *output_bfd;
+     struct bfd_link_info *info;
+     bfd *input_bfd;
+     asection *input_section;
+     bfd_byte *contents;
+     Elf_Internal_Rela *relocs;
+     Elf_Internal_Sym *local_syms;
+     asection **local_sections;
 {
-  Elf_Internal_Shdr *           symtab_hdr;
-  struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Shdr *symtab_hdr;
+  struct elf_link_hash_entry **sym_hashes;
+  Elf_Internal_Rela *rel;
+  Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -523,15 +524,15 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
-      struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type;
+      reloc_howto_type *howto;
+      unsigned long r_symndx;
+      Elf_Internal_Sym *sym;
+      asection *sec;
+      struct elf_link_hash_entry *h;
+      bfd_vma relocation;
+      bfd_reloc_status_type r;
+      const char *name = NULL;
+      int r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
 
@@ -598,8 +599,8 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
 #if 0
              fprintf (stderr, "unknown: name: %s\n", name);
 #endif
@@ -625,7 +626,7 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            case bfd_reloc_undefined:
              r = info->callbacks->undefined_symbol
                (info, name, input_bfd, input_section, rel->r_offset,
-                true);
+                TRUE);
              break;
 
            case bfd_reloc_outofrange:
@@ -650,11 +651,11 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              (info, msg, name, input_bfd, input_section, rel->r_offset);
 
          if (! r)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Return the section that should be marked against GC for a given
@@ -662,11 +663,11 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
 static asection *
 fr30_elf_gc_mark_hook (sec, info, rel, h, sym)
-     asection *                   sec;
-     struct bfd_link_info *       info ATTRIBUTE_UNUSED;
-     Elf_Internal_Rela *          rel;
-     struct elf_link_hash_entry * h;
-     Elf_Internal_Sym *           sym;
+     asection *sec;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *rel;
+     struct elf_link_hash_entry *h;
+     Elf_Internal_Sym * sym;
 {
   if (h != NULL)
     {
@@ -699,21 +700,21 @@ fr30_elf_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 fr30_elf_gc_sweep_hook (abfd, info, sec, relocs)
-     bfd *                     abfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *    info ATTRIBUTE_UNUSED;
-     asection *                sec ATTRIBUTE_UNUSED;
-     const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
+     asection *sec ATTRIBUTE_UNUSED;
+     const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 fr30_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -726,7 +727,7 @@ fr30_elf_check_relocs (abfd, info, sec, relocs)
   const Elf_Internal_Rela *rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -752,19 +753,19 @@ fr30_elf_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_FR30_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_FR30_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
         }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 #define ELF_ARCH               bfd_arch_fr30
index c8187957c4edcb84422b661d4cffc9002a597e8a..08dae266d613c582e87679e5f56144758cac4036 100644 (file)
@@ -1,5 +1,5 @@
 /* FRV-specific support for 32-bit ELF.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,35 +31,51 @@ static bfd_reloc_status_type elf32_frv_relocate_hi16
 static bfd_reloc_status_type elf32_frv_relocate_label24
   PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma));
 static bfd_reloc_status_type elf32_frv_relocate_gprel12
-  PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma));
+  PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *,
+          bfd_byte *, bfd_vma));
 static bfd_reloc_status_type elf32_frv_relocate_gprelu12
-  PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma));
+  PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *,
+          bfd_byte *, bfd_vma));
 static bfd_reloc_status_type elf32_frv_relocate_gprello
-  PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma));
+  PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *,
+          bfd_byte *, bfd_vma));
 static bfd_reloc_status_type elf32_frv_relocate_gprelhi
-  PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma));
+  PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *,
+          bfd_byte *, bfd_vma));
 static reloc_howto_type *frv_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
-static void frv_info_to_howto_rela 
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
-static boolean elf32_frv_relocate_section 
-  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf32_frv_add_symbol_hook
-  PARAMS (( bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *));
+static void frv_info_to_howto_rela
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean elf32_frv_relocate_section
+  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+          Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
+static bfd_boolean elf32_frv_add_symbol_hook
+  PARAMS (( bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
+           const char **, flagword *, asection **, bfd_vma *));
 static bfd_reloc_status_type frv_final_link_relocate
-  PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma));
-static boolean elf32_frv_gc_sweep_hook
-  PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *));
+  PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
+          Elf_Internal_Rela *, bfd_vma));
+static bfd_boolean elf32_frv_gc_sweep_hook
+  PARAMS ((bfd *, struct bfd_link_info *, asection *, const
+          Elf_Internal_Rela *));
 static asection * elf32_frv_gc_mark_hook
-  PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf32_frv_check_relocs
-  PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *));
-static int elf32_frv_machine PARAMS ((bfd *));
-static boolean elf32_frv_object_p PARAMS ((bfd *));
-static boolean frv_elf_set_private_flags PARAMS ((bfd *, flagword));
-static boolean frv_elf_copy_private_bfd_data PARAMS ((bfd *, bfd *));
-static boolean frv_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
-static boolean frv_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
+  PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
+          struct elf_link_hash_entry *, Elf_Internal_Sym *));
+static bfd_boolean elf32_frv_check_relocs
+  PARAMS ((bfd *, struct bfd_link_info *, asection *,
+          const Elf_Internal_Rela *));
+static int elf32_frv_machine
+  PARAMS ((bfd *));
+static bfd_boolean elf32_frv_object_p
+  PARAMS ((bfd *));
+static bfd_boolean frv_elf_set_private_flags
+  PARAMS ((bfd *, flagword));
+static bfd_boolean frv_elf_copy_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean frv_elf_merge_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean frv_elf_print_private_bfd_data
+  PARAMS ((bfd *, PTR));
 
 static reloc_howto_type elf32_frv_howto_table [] =
 {
@@ -68,158 +84,158 @@ static reloc_howto_type elf32_frv_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_NONE",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  */
   HOWTO (R_FRV_32,             /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_32",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit pc-relative relocation.  */
   HOWTO (R_FRV_LABEL16,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_LABEL16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 24-bit pc-relative relocation.  */
   HOWTO (R_FRV_LABEL24,        /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_LABEL24",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x7e03ffff,            /* src_mask */
         0x7e03ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_FRV_LO16,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_LO16",          /* name */
-       false,                  /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_FRV_HI16,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_HI16",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_FRV_GPREL12,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_GPREL12",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xfff,                 /* src_mask */
         0xfff,                 /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_FRV_GPRELU12,        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_GPRELU12",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xfff,                 /* src_mask */
         0x3f03f,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_FRV_GPREL32,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_GPREL32",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_FRV_GPRELHI,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_GPRELHI",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_FRV_GPRELLO,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_FRV_GPRELLO",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 /* GNU extension to record C++ vtable hierarchy.  */
@@ -228,15 +244,15 @@ static reloc_howto_type elf32_frv_vtinherit_howto =
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_FRV_GNU_VTINHERIT", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false);                /* pcrel_offset */
+         FALSE);                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
 static reloc_howto_type elf32_frv_vtentry_howto =
@@ -244,15 +260,15 @@ static reloc_howto_type elf32_frv_vtentry_howto =
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_FRV_GNU_VTENTRY",   /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false);                /* pcrel_offset */
+         FALSE);                /* pcrel_offset */
 \f
 /* Map BFD reloc types to FRV ELF reloc types.  */
 #if 0
@@ -283,7 +299,8 @@ static const struct frv_reloc_map frv_reloc_map [] =
 /* Handle an FRV small data reloc.  */
 
 static bfd_reloc_status_type
-elf32_frv_relocate_gprel12 (info, input_bfd, input_section, relocation, contents, value)
+elf32_frv_relocate_gprel12 (info, input_bfd, input_section, relocation,
+                           contents, value)
      struct bfd_link_info *info;
      bfd *input_bfd;
      asection *input_section;
@@ -295,7 +312,7 @@ elf32_frv_relocate_gprel12 (info, input_bfd, input_section, relocation, contents
   bfd_vma gp;
   struct bfd_link_hash_entry *h;
 
-  h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true);
+  h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE);
 
   gp = (h->u.def.value
        + h->u.def.section->output_section->vma
@@ -321,7 +338,8 @@ elf32_frv_relocate_gprel12 (info, input_bfd, input_section, relocation, contents
 /* Handle an FRV small data reloc. for the u12 field.  */
 
 static bfd_reloc_status_type
-elf32_frv_relocate_gprelu12 (info, input_bfd, input_section, relocation, contents, value)
+elf32_frv_relocate_gprelu12 (info, input_bfd, input_section, relocation,
+                            contents, value)
      struct bfd_link_info *info;
      bfd *input_bfd;
      asection *input_section;
@@ -334,12 +352,12 @@ elf32_frv_relocate_gprelu12 (info, input_bfd, input_section, relocation, content
   struct bfd_link_hash_entry *h;
   bfd_vma mask;
 
-  h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true);
+  h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE);
 
   gp = (h->u.def.value
        + h->u.def.section->output_section->vma
        + h->u.def.section->output_offset);
+
   value -= input_section->output_section->vma;
   value -= (gp - input_section->output_section->vma);
 
@@ -423,7 +441,7 @@ elf32_frv_relocate_label24 (input_bfd, input_section, rello, contents, value)
 
   /* The format for the call instruction is:
 
-    0 000000 0001111 000000000000000000 
+    0 000000 0001111 000000000000000000
       label6 opcode  label18
 
     The branch calculation is: pc + (4*label24)
@@ -453,7 +471,8 @@ elf32_frv_relocate_label24 (input_bfd, input_section, rello, contents, value)
 }
 
 static bfd_reloc_status_type
-elf32_frv_relocate_gprelhi (info, input_bfd, input_section, relocation, contents, value)
+elf32_frv_relocate_gprelhi (info, input_bfd, input_section, relocation,
+                           contents, value)
      struct bfd_link_info *info;
      bfd *input_bfd;
      asection *input_section;
@@ -465,7 +484,7 @@ elf32_frv_relocate_gprelhi (info, input_bfd, input_section, relocation, contents
   bfd_vma gp;
   struct bfd_link_hash_entry *h;
 
-  h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true);
+  h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE);
 
   gp = (h->u.def.value
         + h->u.def.section->output_section->vma
@@ -487,7 +506,8 @@ elf32_frv_relocate_gprelhi (info, input_bfd, input_section, relocation, contents
 }
 
 static bfd_reloc_status_type
-elf32_frv_relocate_gprello (info, input_bfd, input_section, relocation, contents, value)
+elf32_frv_relocate_gprello (info, input_bfd, input_section, relocation,
+                           contents, value)
      struct bfd_link_info *info;
      bfd *input_bfd;
      asection *input_section;
@@ -499,7 +519,7 @@ elf32_frv_relocate_gprello (info, input_bfd, input_section, relocation, contents
   bfd_vma gp;
   struct bfd_link_hash_entry *h;
 
-  h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true);
+  h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE);
 
   gp = (h->u.def.value
         + h->u.def.section->output_section->vma
@@ -523,7 +543,7 @@ elf32_frv_relocate_gprello (info, input_bfd, input_section, relocation, contents
 
 static reloc_howto_type *
 frv_reloc_type_lookup (abfd, code)
-     bfd * abfd ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
      bfd_reloc_code_real_type code;
 {
   switch (code)
@@ -533,7 +553,7 @@ frv_reloc_type_lookup (abfd, code)
 
     case BFD_RELOC_NONE:
       return &elf32_frv_howto_table[ (int) R_FRV_NONE];
-  
+
     case BFD_RELOC_32:
     case BFD_RELOC_CTOR:
       return &elf32_frv_howto_table[ (int) R_FRV_32];
@@ -579,9 +599,9 @@ frv_reloc_type_lookup (abfd, code)
 
 static void
 frv_info_to_howto_rela (abfd, cache_ptr, dst)
-     bfd * abfd ATTRIBUTE_UNUSED;
-     arelent * cache_ptr;
-     Elf32_Internal_Rela * dst;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     arelent *cache_ptr;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -606,13 +626,14 @@ frv_info_to_howto_rela (abfd, cache_ptr, dst)
    routines, but a few relocs, we have to do them ourselves.  */
 
 static bfd_reloc_status_type
-frv_final_link_relocate (howto, input_bfd, input_section, contents, rel, relocation)
-     reloc_howto_type *  howto;
-     bfd *               input_bfd;
-     asection *          input_section;
-     bfd_byte *          contents;
-     Elf_Internal_Rela * rel;
-     bfd_vma             relocation;
+frv_final_link_relocate (howto, input_bfd, input_section, contents, rel,
+                        relocation)
+     reloc_howto_type *howto;
+     bfd *input_bfd;
+     asection *input_section;
+     bfd_byte *contents;
+     Elf_Internal_Rela *rel;
+     bfd_vma relocation;
 {
   return _bfd_final_link_relocate (howto, input_bfd, input_section,
                                   contents, rel->r_offset, relocation,
@@ -650,25 +671,25 @@ frv_final_link_relocate (howto, input_bfd, input_section, contents, rel, relocat
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
                            contents, relocs, local_syms, local_sections)
-     bfd *                   output_bfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *  info;
-     bfd *                   input_bfd;
-     asection *              input_section;
-     bfd_byte *              contents;
-     Elf_Internal_Rela *     relocs;
-     Elf_Internal_Sym *      local_syms;
-     asection **             local_sections;
+     bfd *output_bfd ATTRIBUTE_UNUSED;
+     struct bfd_link_info *info;
+     bfd *input_bfd;
+     asection *input_section;
+     bfd_byte *contents;
+     Elf_Internal_Rela *relocs;
+     Elf_Internal_Sym *local_syms;
+     asection **local_sections;
 {
-  Elf_Internal_Shdr *           symtab_hdr;
-  struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Shdr *symtab_hdr;
+  struct elf_link_hash_entry **sym_hashes;
+  Elf_Internal_Rela *rel;
+  Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -676,29 +697,29 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
-      struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type;
-      
+      reloc_howto_type *howto;
+      unsigned long r_symndx;
+      Elf_Internal_Sym *sym;
+      asection *sec;
+      struct elf_link_hash_entry *h;
+      bfd_vma relocation;
+      bfd_reloc_status_type r;
+      const char * name = NULL;
+      int r_type;
+
       r_type = ELF32_R_TYPE (rel->r_info);
-      
+
       if (   r_type == R_FRV_GNU_VTINHERIT
          || r_type == R_FRV_GNU_VTENTRY)
        continue;
-      
+
       /* This is a final link.  */
       r_symndx = ELF32_R_SYM (rel->r_info);
       howto  = elf32_frv_howto_table + ELF32_R_TYPE (rel->r_info);
       h      = NULL;
       sym    = NULL;
       sec    = NULL;
-      
+
       if (r_symndx < symtab_hdr->sh_info)
        {
          sym = local_syms + r_symndx;
@@ -706,7 +727,7 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
          relocation = (sec->output_section->vma
                        + sec->output_offset
                        + sym->st_value);
-         
+
          name = bfd_elf_string_from_elf_section
            (input_bfd, symtab_hdr->sh_link, sym->st_name);
          name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
@@ -714,13 +735,13 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
       else
        {
          h = sym_hashes [r_symndx - symtab_hdr->sh_info];
-         
+
          while (h->root.type == bfd_link_hash_indirect
                 || h->root.type == bfd_link_hash_warning)
            h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
          name = h->root.root.string;
-         
+
          if (h->root.type == bfd_link_hash_defined
              || h->root.type == bfd_link_hash_defweak)
            {
@@ -737,12 +758,12 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
-      
+
      if (r_type == R_FRV_HI16)
        r = elf32_frv_relocate_hi16 (input_bfd, rel, contents, relocation);
 
@@ -750,22 +771,28 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
        r = elf32_frv_relocate_lo16 (input_bfd, rel, contents, relocation);
 
      else if (r_type == R_FRV_LABEL24)
-       r = elf32_frv_relocate_label24 (input_bfd, input_section, rel, contents, relocation);
+       r = elf32_frv_relocate_label24 (input_bfd, input_section, rel,
+                                      contents, relocation);
 
      else if (r_type == R_FRV_GPREL12)
-       r = elf32_frv_relocate_gprel12 (info, input_bfd, input_section, rel, contents, relocation);
+       r = elf32_frv_relocate_gprel12 (info, input_bfd, input_section, rel,
+                                      contents, relocation);
 
      else if (r_type == R_FRV_GPRELU12)
-       r = elf32_frv_relocate_gprelu12 (info, input_bfd, input_section, rel, contents, relocation);
+       r = elf32_frv_relocate_gprelu12 (info, input_bfd, input_section, rel,
+                                       contents, relocation);
 
      else if (r_type == R_FRV_GPRELLO)
-       r = elf32_frv_relocate_gprello (info, input_bfd, input_section, rel, contents, relocation);
+       r = elf32_frv_relocate_gprello (info, input_bfd, input_section, rel,
+                                      contents, relocation);
 
      else if (r_type == R_FRV_GPRELHI)
-       r = elf32_frv_relocate_gprelhi (info, input_bfd, input_section, rel, contents, relocation);
+       r = elf32_frv_relocate_gprelhi (info, input_bfd, input_section, rel,
+                                      contents, relocation);
 
      else
-       r = frv_final_link_relocate (howto, input_bfd, input_section, contents, rel, relocation);
+       r = frv_final_link_relocate (howto, input_bfd, input_section, contents,
+                                   rel, relocation);
 
       if (r != bfd_reloc_ok)
        {
@@ -778,12 +805,12 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
                (info, name, howto->name, (bfd_vma) 0,
                 input_bfd, input_section, rel->r_offset);
              break;
-             
+
            case bfd_reloc_undefined:
              r = info->callbacks->undefined_symbol
-               (info, name, input_bfd, input_section, rel->r_offset, true);
+               (info, name, input_bfd, input_section, rel->r_offset, TRUE);
              break;
-             
+
            case bfd_reloc_outofrange:
              msg = _("internal error: out of range error");
              break;
@@ -806,11 +833,11 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
              (info, msg, name, input_bfd, input_section, rel->r_offset);
 
          if (! r)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Return the section that should be marked against GC for a given
@@ -818,11 +845,11 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
 
 static asection *
 elf32_frv_gc_mark_hook (sec, info, rel, h, sym)
-     asection *                   sec;
-     struct bfd_link_info *       info ATTRIBUTE_UNUSED;
-     Elf_Internal_Rela *          rel;
-     struct elf_link_hash_entry * h;
-     Elf_Internal_Sym *           sym;
+     asection *sec;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *rel;
+     struct elf_link_hash_entry *h;
+     Elf_Internal_Sym *sym;
 {
   if (h != NULL)
     {
@@ -855,21 +882,21 @@ elf32_frv_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 elf32_frv_gc_sweep_hook (abfd, info, sec, relocs)
-     bfd *                     abfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *    info ATTRIBUTE_UNUSED;
-     asection *                sec ATTRIBUTE_UNUSED;
-     const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
+     asection *sec ATTRIBUTE_UNUSED;
+     const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 \f
 /* Hook called by the linker routine which adds symbols from an object
    file.  We use it to put .comm items in .scomm, and not .comm.  */
 
-static boolean
+static bfd_boolean
 elf32_frv_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -895,20 +922,20 @@ elf32_frv_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
              || !bfd_set_section_flags (abfd, scomm, (SEC_ALLOC
                                                       | SEC_IS_COMMON
                                                       | SEC_LINKER_CREATED)))
-           return false;
+           return FALSE;
        }
 
       *secp = scomm;
       *valp = sym->st_size;
     }
 
-  return true;
+  return TRUE;
 }
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
-static boolean
+
+static bfd_boolean
 elf32_frv_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -919,47 +946,47 @@ elf32_frv_check_relocs (abfd, info, sec, relocs)
   struct elf_link_hash_entry **sym_hashes, **sym_hashes_end;
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
+
   if (info->relocateable)
-    return true;
+    return TRUE;
+
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
   sym_hashes_end = sym_hashes + symtab_hdr->sh_size/sizeof(Elf32_External_Sym);
   if (!elf_bad_symtab (abfd))
     sym_hashes_end -= symtab_hdr->sh_info;
+
   rel_end = relocs + sec->reloc_count;
   for (rel = relocs; rel < rel_end; rel++)
     {
       struct elf_link_hash_entry *h;
       unsigned long r_symndx;
+
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
         h = NULL;
       else
         h = sym_hashes[r_symndx - symtab_hdr->sh_info];
+
       switch (ELF32_R_TYPE (rel->r_info))
         {
         /* This relocation describes the C++ object vtable hierarchy.
            Reconstruct it for later use during GC.  */
         case R_FRV_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
+
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_FRV_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
         }
     }
-  return true;
+
+  return TRUE;
 }
 
 \f
@@ -984,56 +1011,56 @@ elf32_frv_machine (abfd)
 
 /* Set the right machine number for a FRV ELF file.  */
 
-static boolean
+static bfd_boolean
 elf32_frv_object_p (abfd)
      bfd *abfd;
 {
   bfd_default_set_arch_mach (abfd, bfd_arch_frv, elf32_frv_machine (abfd));
-  return true;
+  return TRUE;
 }
 \f
 /* Function to set the ELF flag bits.  */
 
-static boolean
+static bfd_boolean
 frv_elf_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
 {
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Copy backend specific data from one object module to another.  */
 
-static boolean
+static bfd_boolean
 frv_elf_copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   BFD_ASSERT (!elf_flags_init (obfd)
              || elf_elfheader (obfd)->e_flags == elf_elfheader (ibfd)->e_flags);
 
   elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
+  elf_flags_init (obfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
-static boolean
+static bfd_boolean
 frv_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   flagword old_flags, old_partial;
   flagword new_flags, new_partial;
-  boolean error = false;
+  bfd_boolean error = FALSE;
   char new_opt[80];
   char old_opt[80];
 
@@ -1049,7 +1076,7 @@ frv_elf_merge_private_bfd_data (ibfd, obfd)
 
   if (!elf_flags_init (obfd))                  /* First call, no flags set.  */
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       old_flags = new_flags;
     }
 
@@ -1191,7 +1218,7 @@ frv_elf_merge_private_bfd_data (ibfd, obfd)
            {
              old_flags &= ~ EF_FRV_PIC_FLAGS;
 #ifndef FRV_NO_PIC_ERROR
-             error = true;
+             error = TRUE;
              (*_bfd_error_handler)
                (_("%s: compiled with %s and linked with modules that use non-pic relocations"),
                 bfd_get_filename (ibfd),
@@ -1237,11 +1264,11 @@ frv_elf_merge_private_bfd_data (ibfd, obfd)
            case EF_FRV_CPU_TOMCAT:  strcat (old_opt, " -mcpu=tomcat"); break;
            }
        }
-      
+
       /* Print out any mismatches from above.  */
       if (new_opt[0])
        {
-         error = true;
+         error = TRUE;
          (*_bfd_error_handler)
            (_("%s: compiled with %s and linked with modules compiled with %s"),
             bfd_get_filename (ibfd), new_opt, old_opt);
@@ -1253,7 +1280,7 @@ frv_elf_merge_private_bfd_data (ibfd, obfd)
       if (new_partial != old_partial)
        {
          old_flags |= new_partial;
-         error = true;
+         error = TRUE;
          (*_bfd_error_handler)
            (_("%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"),
             bfd_get_filename (ibfd), (long)new_partial, (long)old_partial);
@@ -1277,7 +1304,7 @@ frv_elf_merge_private_bfd_data (ibfd, obfd)
 }
 
 \f
-boolean
+bfd_boolean
 frv_elf_print_private_bfd_data (abfd, ptr)
      bfd *abfd;
      PTR ptr;
@@ -1347,7 +1374,7 @@ frv_elf_print_private_bfd_data (abfd, ptr)
     fprintf (file, " -G0");
 
   fputc ('\n', file);
-  return true;
+  return TRUE;
 }
 
 \f
index 58b5fc6273caee252234a7022ac1e6df99aaee1b..b1ad74486f43524ad92c7aeb229a17c3707d0dee 100644 (file)
@@ -1,5 +1,6 @@
 /* Generic support for 32-bit ELF
-   Copyright 1993, 1995, 1998, 1999, 2001 Free Software Foundation, Inc.
+   Copyright 1993, 1995, 1998, 1999, 2001, 2002
+   Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -30,28 +31,28 @@ static reloc_howto_type dummy =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "UNKNOWN",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 static void elf_generic_info_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void elf_generic_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
-static boolean elf32_generic_link_add_symbols
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean elf32_generic_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
 
 static void
 elf_generic_info_to_howto (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     Elf32_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED;
 {
   bfd_reloc->howto = &dummy;
 }
@@ -60,12 +61,12 @@ static void
 elf_generic_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     Elf32_Internal_Rel *elf_reloc ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED;
 {
   bfd_reloc->howto = &dummy;
 }
 
-static boolean
+static bfd_boolean
 elf32_generic_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -84,7 +85,7 @@ elf32_generic_link_add_symbols (abfd, info)
                               ehdrp->e_machine);
 
        bfd_set_error (bfd_error_wrong_format);
-       return false;
+       return FALSE;
       }
 
   return bfd_elf32_bfd_link_add_symbols (abfd, info);
index 9cb900b8b209fb8856737d5f0462937c896e4da6..09604e78567f53bd1d776303aa363b15cc867a0c 100644 (file)
@@ -29,29 +29,29 @@ static reloc_howto_type *elf32_h8_reloc_type_lookup
 static void elf32_h8_info_to_howto
   PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void elf32_h8_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static unsigned long elf32_h8_mach
   PARAMS ((flagword));
 static void elf32_h8_final_write_processing
-  PARAMS ((bfd *, boolean));
-static boolean elf32_h8_object_p
+  PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean elf32_h8_object_p
   PARAMS ((bfd *));
-static boolean elf32_h8_merge_private_bfd_data
+static bfd_boolean elf32_h8_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
-static boolean elf32_h8_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
-static boolean elf32_h8_relax_delete_bytes
+static bfd_boolean elf32_h8_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean elf32_h8_relax_delete_bytes
   PARAMS ((bfd *, asection *, bfd_vma, int));
-static boolean elf32_h8_symbol_address_p
+static bfd_boolean elf32_h8_symbol_address_p
   PARAMS ((bfd *, asection *, bfd_vma));
 static bfd_byte *elf32_h8_get_relocated_section_contents
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, boolean, asymbol **));
+          bfd_byte *, bfd_boolean, asymbol **));
 static bfd_reloc_status_type elf32_h8_final_link_relocate
   PARAMS ((unsigned long, bfd *, bfd *, asection *,
           bfd_byte *, bfd_vma, bfd_vma, bfd_vma,
           struct bfd_link_info *, asection *, int));
-static boolean elf32_h8_relocate_section
+static bfd_boolean elf32_h8_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
           bfd_byte *, Elf_Internal_Rela *,
           Elf_Internal_Sym *, asection **));
@@ -67,155 +67,155 @@ static reloc_howto_type h8_elf_howto_table[] = {
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_NONE",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #define R_H8_DIR32_X (R_H8_NONE_X + 1)
   HOWTO (R_H8_DIR32,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_DIR32",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #define R_H8_DIR16_X (R_H8_DIR32_X + 1)
   HOWTO (R_H8_DIR16,           /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_DIR16",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #define R_H8_DIR8_X (R_H8_DIR16_X + 1)
   HOWTO (R_H8_DIR8,            /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_DIR16",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x000000ff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #define R_H8_DIR16A8_X (R_H8_DIR8_X + 1)
   HOWTO (R_H8_DIR16A8,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_DIR16A8",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #define R_H8_DIR16R8_X (R_H8_DIR16A8_X + 1)
   HOWTO (R_H8_DIR16R8,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_DIR16R8",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #define R_H8_DIR24A8_X (R_H8_DIR16R8_X + 1)
   HOWTO (R_H8_DIR24A8,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         24,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_DIR24A8",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff000000,            /* src_mask */
         0x00ffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #define R_H8_DIR24R8_X (R_H8_DIR24A8_X + 1)
   HOWTO (R_H8_DIR24R8,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         24,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_DIR24R8",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff000000,            /* src_mask */
         0x00ffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #define R_H8_DIR32A16_X (R_H8_DIR24R8_X + 1)
   HOWTO (R_H8_DIR32A16,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_DIR32",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 #define R_H8_PCREL16_X (R_H8_DIR32A16_X + 1)
   HOWTO (R_H8_PCREL16,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_PCREL16",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 #define R_H8_PCREL8_X (R_H8_PCREL16_X + 1)
   HOWTO (R_H8_PCREL8,          /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         special,                       /* special_function */
         "R_H8_PCREL8",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 };
 
 /* This structure is used to map BFD reloc codes to H8 ELF relocs.  */
@@ -261,7 +261,7 @@ static void
 elf32_h8_info_to_howto (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     Elf32_Internal_Rela *elf_reloc;
+     Elf_Internal_Rela *elf_reloc;
 {
   unsigned int r;
   unsigned int i;
@@ -280,7 +280,7 @@ static void
 elf32_h8_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     Elf32_Internal_Rel *elf_reloc ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED;
 {
   unsigned int r;
 
@@ -410,7 +410,7 @@ elf32_h8_final_link_relocate (r_type, input_bfd, output_bfd,
 }
 \f
 /* Relocate an H8 ELF section.  */
-static boolean
+static bfd_boolean
 elf32_h8_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -427,7 +427,7 @@ elf32_h8_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *rel, *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -476,8 +476,8 @@ elf32_h8_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -514,14 +514,14 @@ elf32_h8_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
              break;
 
            case bfd_reloc_undefined:
              if (! ((*info->callbacks->undefined_symbol)
                     (info, name, input_bfd, input_section,
-                     rel->r_offset, true)))
-               return false;
+                     rel->r_offset, TRUE)))
+               return FALSE;
              break;
 
            case bfd_reloc_outofrange:
@@ -544,13 +544,13 @@ elf32_h8_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->warning)
                    (info, msg, name, input_bfd, input_section,
                     rel->r_offset)))
-               return false;
+               return FALSE;
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Object files encode the specific H8 model they were compiled
@@ -583,7 +583,7 @@ elf32_h8_mach (flags)
 static void
 elf32_h8_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   unsigned long val;
 
@@ -610,37 +610,37 @@ elf32_h8_final_write_processing (abfd, linker)
 /* Return nonzero if ABFD represents a valid H8 ELF object file; also
    record the encoded machine type found in the ELF flags.  */
 
-static boolean
+static bfd_boolean
 elf32_h8_object_p (abfd)
      bfd *abfd;
 {
   bfd_default_set_arch_mach (abfd, bfd_arch_h8300,
                             elf32_h8_mach (elf_elfheader (abfd)->e_flags));
-  return true;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  The only data we need to copy at this
    time is the architecture/machine information.  */
 
-static boolean
+static bfd_boolean
 elf32_h8_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (bfd_get_arch (obfd) == bfd_get_arch (ibfd)
       && bfd_get_mach (obfd) < bfd_get_mach (ibfd))
     {
       if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd),
                                bfd_get_mach (ibfd)))
-        return false;
+        return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This function handles relaxing for the H8..
@@ -660,12 +660,12 @@ elf32_h8_merge_private_bfd_data (ibfd, obfd)
 
      mov.[bwl]:24/32 ->    mov.[bwl]:16           2 bytes */
 
-static boolean
+static bfd_boolean
 elf32_h8_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
@@ -676,7 +676,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
   static Elf_Internal_Rela *last_reloc = NULL;
 
   /* Assume nothing changes.  */
-  *again = false;
+  *again = FALSE;
 
   /* We don't have to do anything for a relocateable link, if
      this section does not have relocs, or if this is not a
@@ -685,7 +685,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -840,7 +840,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
 
                   Only perform this optimisation for jumps (code 0x5a) not
                   subroutine calls, as otherwise it could transform:
-                  
+
                                     mov.w   r0,r0
                                     beq     .L1
                                     jsr     @_bar
@@ -905,7 +905,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
                                                          4))
                          goto error_return;
 
-                       *again = true;
+                       *again = TRUE;
                        break;
                      }
                  }
@@ -928,7 +928,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
 
                /* That will change things, so, we should relax again.
                   Note that this is not required, and it may be slow.  */
-               *again = true;
+               *again = TRUE;
              }
            break;
          }
@@ -991,7 +991,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
 
                /* That will change things, so, we should relax again.
                   Note that this is not required, and it may be slow.  */
-               *again = true;
+               *again = TRUE;
              }
            break;
          }
@@ -1049,7 +1049,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
 
                /* That will change things, so, we should relax again.
                   Note that this is not required, and it may be slow.  */
-               *again = true;
+               *again = TRUE;
              }
            break;
          }
@@ -1106,7 +1106,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
 
                /* That will change things, so, we should relax again.
                   Note that this is not required, and it may be slow.  */
-               *again = true;
+               *again = TRUE;
              }
          }
 
@@ -1147,7 +1147,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
 
                /* That will change things, so, we should relax again.
                   Note that this is not required, and it may be slow.  */
-               *again = true;
+               *again = TRUE;
              }
            break;
          }
@@ -1182,7 +1182,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (isymbuf != NULL
@@ -1194,12 +1194,12 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
   if (internal_relocs != NULL
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
-  return false;
+  return FALSE;
 }
 
 /* Delete some bytes from a section while relaxing.  */
 
-static boolean
+static bfd_boolean
 elf32_h8_relax_delete_bytes (abfd, sec, addr, count)
      bfd *abfd;
      asection *sec;
@@ -1275,12 +1275,12 @@ elf32_h8_relax_delete_bytes (abfd, sec, addr, count)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
-/* Return true if a symbol exists at the given address, else return
-   false.  */
-static boolean
+/* Return TRUE if a symbol exists at the given address, else return
+   FALSE.  */
+static bfd_boolean
 elf32_h8_symbol_address_p (abfd, sec, addr)
      bfd *abfd;
      asection *sec;
@@ -1304,7 +1304,7 @@ elf32_h8_symbol_address_p (abfd, sec, addr)
     {
       if (isym->st_shndx == sec_shndx
          && isym->st_value == addr)
-       return true;
+       return TRUE;
     }
 
   symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
@@ -1318,10 +1318,10 @@ elf32_h8_symbol_address_p (abfd, sec, addr)
           || sym_hash->root.type == bfd_link_hash_defweak)
          && sym_hash->root.u.def.section == sec
          && sym_hash->root.u.def.value == addr)
-       return true;
+       return TRUE;
     }
 
-  return false;
+  return FALSE;
 }
 
 /* This is a version of bfd_generic_get_relocated_section_contents
@@ -1334,7 +1334,7 @@ elf32_h8_get_relocated_section_contents (output_bfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -1367,7 +1367,7 @@ elf32_h8_get_relocated_section_contents (output_bfd, link_info, link_order,
 
       internal_relocs = (_bfd_elf32_link_read_relocs
                         (input_bfd, input_section, (PTR) NULL,
-                         (Elf_Internal_Rela *) NULL, false));
+                         (Elf_Internal_Rela *) NULL, FALSE));
       if (internal_relocs == NULL)
        goto error_return;
 
index 35e6f32f6ac70c162b3ff56cfbbf6e7e69e6a84e..f8c88b15583b455802bb73c11d8ee4ae47ae161f 100644 (file)
@@ -310,27 +310,27 @@ static enum elf32_hppa_stub_type hppa_type_of_stub
   PARAMS ((asection *, const Elf_Internal_Rela *,
           struct elf32_hppa_link_hash_entry *, bfd_vma));
 
-static boolean hppa_build_one_stub
+static bfd_boolean hppa_build_one_stub
   PARAMS ((struct bfd_hash_entry *, PTR));
 
-static boolean hppa_size_one_stub
+static bfd_boolean hppa_size_one_stub
   PARAMS ((struct bfd_hash_entry *, PTR));
 
 /* BFD and elf backend functions.  */
-static boolean elf32_hppa_object_p PARAMS ((bfd *));
+static bfd_boolean elf32_hppa_object_p PARAMS ((bfd *));
 
-static boolean elf32_hppa_add_symbol_hook
+static bfd_boolean elf32_hppa_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
 
-static boolean elf32_hppa_create_dynamic_sections
+static bfd_boolean elf32_hppa_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
 static void elf32_hppa_copy_indirect_symbol
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
           struct elf_link_hash_entry *));
 
-static boolean elf32_hppa_check_relocs
+static bfd_boolean elf32_hppa_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *,
           asection *, const Elf_Internal_Rela *));
 
@@ -338,41 +338,41 @@ static asection *elf32_hppa_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
 
-static boolean elf32_hppa_gc_sweep_hook
+static bfd_boolean elf32_hppa_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *,
           asection *, const Elf_Internal_Rela *));
 
 static void elf32_hppa_hide_symbol
-  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean));
+  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
 
-static boolean elf32_hppa_adjust_dynamic_symbol
+static bfd_boolean elf32_hppa_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
 
-static boolean mark_PIC_calls
+static bfd_boolean mark_PIC_calls
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean allocate_plt_static
+static bfd_boolean allocate_plt_static
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean allocate_dynrelocs
+static bfd_boolean allocate_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean readonly_dynrelocs
+static bfd_boolean readonly_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean clobber_millicode_symbols
+static bfd_boolean clobber_millicode_symbols
   PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *));
 
-static boolean elf32_hppa_size_dynamic_sections
+static bfd_boolean elf32_hppa_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
 static void group_sections
-  PARAMS ((struct elf32_hppa_link_hash_table *, bfd_size_type, boolean));
+  PARAMS ((struct elf32_hppa_link_hash_table *, bfd_size_type, bfd_boolean));
 
 static int get_local_syms
   PARAMS ((bfd *, bfd *, struct bfd_link_info *));
 
-static boolean elf32_hppa_final_link
+static bfd_boolean elf32_hppa_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
 static void hppa_record_segment_addr
@@ -383,18 +383,18 @@ static bfd_reloc_status_type final_link_relocate
           bfd_vma, struct elf32_hppa_link_hash_table *, asection *,
           struct elf32_hppa_link_hash_entry *));
 
-static boolean elf32_hppa_relocate_section
+static bfd_boolean elf32_hppa_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
           bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 
-static boolean elf32_hppa_finish_dynamic_symbol
+static bfd_boolean elf32_hppa_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
 
 static enum elf_reloc_type_class elf32_hppa_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
 
-static boolean elf32_hppa_finish_dynamic_sections
+static bfd_boolean elf32_hppa_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
 static void elf32_hppa_post_process_headers
@@ -614,7 +614,7 @@ hppa_get_stub_entry (input_section, sym_sec, hash, rel, htab)
        return NULL;
 
       stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table,
-                                         stub_name, false, false);
+                                         stub_name, FALSE, FALSE);
       if (hash != NULL)
        hash->stub_cache = stub_entry;
 
@@ -666,7 +666,7 @@ hppa_add_stub (stub_name, section, htab)
 
   /* Enter this entry into the linker stub hash table.  */
   stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table, stub_name,
-                                     true, false);
+                                     TRUE, FALSE);
   if (stub_entry == NULL)
     {
       (*_bfd_error_handler) (_("%s: cannot create stub entry %s"),
@@ -776,7 +776,7 @@ hppa_type_of_stub (input_sec, rel, hash, destination)
 #define LDW_R1_DLT     LDW_R1_DP
 #endif
 
-static boolean
+static bfd_boolean
 hppa_build_one_stub (gen_entry, in_arg)
      struct bfd_hash_entry *gen_entry;
      PTR in_arg;
@@ -960,7 +960,7 @@ hppa_build_one_stub (gen_entry, in_arg)
             (long) stub_entry->stub_offset,
             stub_entry->root.string);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       val = hppa_field_adjust (sym_value, (bfd_signed_vma) -8, e_fsel) >> 2;
@@ -985,11 +985,11 @@ hppa_build_one_stub (gen_entry, in_arg)
 
     default:
       BFD_FAIL ();
-      return false;
+      return FALSE;
     }
 
   stub_sec->_raw_size += size;
-  return true;
+  return TRUE;
 }
 
 #undef LDIL_R1
@@ -1017,7 +1017,7 @@ hppa_build_one_stub (gen_entry, in_arg)
 /* As above, but don't actually build the stub.  Just bump offset so
    we know stub section sizes.  */
 
-static boolean
+static bfd_boolean
 hppa_size_one_stub (gen_entry, in_arg)
      struct bfd_hash_entry *gen_entry;
      PTR in_arg;
@@ -1045,13 +1045,13 @@ hppa_size_one_stub (gen_entry, in_arg)
     }
 
   stub_entry->stub_sec->_raw_size += size;
-  return true;
+  return TRUE;
 }
 
 /* Return nonzero if ABFD represents an HPPA ELF32 file.
    Additionally we set the default architecture and machine.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_object_p (abfd)
      bfd *abfd;
 {
@@ -1062,12 +1062,12 @@ elf32_hppa_object_p (abfd)
   if (strcmp (bfd_get_target (abfd), "elf32-hppa-linux") == 0)
     {
       if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX)
-       return false;
+       return FALSE;
     }
   else
     {
       if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_HPUX)
-       return false;
+       return FALSE;
     }
 
   flags = i_ehdrp->e_flags;
@@ -1082,13 +1082,13 @@ elf32_hppa_object_p (abfd)
     case EFA_PARISC_2_0 | EF_PARISC_WIDE:
       return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 25);
     }
-  return true;
+  return TRUE;
 }
 
 /* Undo the generic ELF code's subtraction of section->vma from the
    value of each external symbol.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1099,13 +1099,13 @@ elf32_hppa_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd_vma *valp;
 {
   *valp += (*secp)->vma;
-  return true;
+  return TRUE;
 }
 
 /* Create the .plt and .got sections, and set up our hash table
    short-cuts to various dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1115,11 +1115,11 @@ elf32_hppa_create_dynamic_sections (abfd, info)
   /* Don't try to create the .plt and .got twice.  */
   htab = hppa_link_hash_table (info);
   if (htab->splt != NULL)
-    return true;
+    return TRUE;
 
   /* Call the generic code to do most of the work.  */
   if (! _bfd_elf_create_dynamic_sections (abfd, info))
-    return false;
+    return FALSE;
 
   htab->splt = bfd_get_section_by_name (abfd, ".plt");
   htab->srelplt = bfd_get_section_by_name (abfd, ".rela.plt");
@@ -1135,12 +1135,12 @@ elf32_hppa_create_dynamic_sections (abfd, info)
                                   | SEC_LINKER_CREATED
                                   | SEC_READONLY))
       || ! bfd_set_section_alignment (abfd, htab->srelgot, 2))
-    return false;
+    return FALSE;
 
   htab->sdynbss = bfd_get_section_by_name (abfd, ".dynbss");
   htab->srelbss = bfd_get_section_by_name (abfd, ".rela.bss");
 
-  return true;
+  return TRUE;
 }
 
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
@@ -1199,7 +1199,7 @@ elf32_hppa_copy_indirect_symbol (bed, dir, ind)
    table, and dynamic reloc sections.  At this point we haven't
    necessarily read all the input files.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1215,7 +1215,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
   asection *stubreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   htab = hppa_link_hash_table (info);
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -1341,7 +1341,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
                 bfd_archive_filename (abfd),
                 elf_hppa_howto_table[r_type].name);
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
          /* Fall through.  */
 
@@ -1374,7 +1374,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
        case R_PARISC_GNU_VTINHERIT:
          if (!_bfd_elf32_gc_record_vtinherit (abfd, sec,
                                               &h->elf, rel->r_offset))
-           return false;
+           return FALSE;
          continue;
 
          /* This relocation describes which C++ vtable entries are actually
@@ -1382,7 +1382,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
        case R_PARISC_GNU_VTENTRY:
          if (!_bfd_elf32_gc_record_vtentry (abfd, sec,
                                             &h->elf, rel->r_addend))
-           return false;
+           return FALSE;
          continue;
 
        default:
@@ -1399,7 +1399,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
              if (htab->elf.dynobj == NULL)
                htab->elf.dynobj = abfd;
              if (!elf32_hppa_create_dynamic_sections (htab->elf.dynobj, info))
-               return false;
+               return FALSE;
            }
 
          if (h != NULL)
@@ -1425,7 +1425,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
                  local_got_refcounts = ((bfd_signed_vma *)
                                         bfd_zalloc (abfd, size));
                  if (local_got_refcounts == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_refcounts (abfd) = local_got_refcounts;
                }
              local_got_refcounts[r_symndx] += 1;
@@ -1472,7 +1472,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
                      local_got_refcounts = ((bfd_signed_vma *)
                                             bfd_zalloc (abfd, size));
                      if (local_got_refcounts == NULL)
-                       return false;
+                       return FALSE;
                      elf_local_got_refcounts (abfd) = local_got_refcounts;
                    }
                  local_plt_refcounts = (local_got_refcounts
@@ -1553,7 +1553,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
                        (_("Could not find relocation section for %s"),
                         sec->name);
                      bfd_set_error (bfd_error_bad_value);
-                     return false;
+                     return FALSE;
                    }
 
                  if (htab->elf.dynobj == NULL)
@@ -1573,7 +1573,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || !bfd_set_section_flags (dynobj, sreloc, flags)
                          || !bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
 
                  elf_section_data (sec)->sreloc = sreloc;
@@ -1595,7 +1595,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
                  s = bfd_section_from_r_symndx (abfd, &htab->sym_sec,
                                                 sec, r_symndx);
                  if (s == NULL)
-                   return false;
+                   return FALSE;
 
                  head = ((struct elf32_hppa_dyn_reloc_entry **)
                          &elf_section_data (s)->local_dynrel);
@@ -1608,7 +1608,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
                       bfd_alloc (htab->elf.dynobj,
                                  (bfd_size_type) sizeof *p));
                  if (p == NULL)
-                   return false;
+                   return FALSE;
                  p->next = *head;
                  *head = p;
                  p->sec = sec;
@@ -1627,7 +1627,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against garbage collection
@@ -1673,7 +1673,7 @@ elf32_hppa_gc_mark_hook (sec, info, rel, h, sym)
 /* Update the got and plt entry reference counts for the section being
    removed.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1701,7 +1701,7 @@ elf32_hppa_gc_sweep_hook (abfd, info, sec, relocs)
   htab = hppa_link_hash_table (info);
   dynobj = htab->elf.dynobj;
   if (dynobj == NULL)
-    return true;
+    return TRUE;
 
   relend = relocs + sec->reloc_count;
   for (rel = relocs; rel < relend; rel++)
@@ -1805,7 +1805,7 @@ elf32_hppa_gc_sweep_hook (abfd, info, sec, relocs)
        break;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Our own version of hide_symbol, so that we can keep plt entries for
@@ -1815,7 +1815,7 @@ static void
 elf32_hppa_hide_symbol (info, h, force_local)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
-     boolean force_local;
+     bfd_boolean force_local;
 {
   if (force_local)
     {
@@ -1852,7 +1852,7 @@ elf32_hppa_hide_symbol (info, h, force_local)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -1896,7 +1896,7 @@ elf32_hppa_adjust_dynamic_symbol (info, h)
            }
        }
 
-      return true;
+      return TRUE;
     }
   else
     h->plt.offset = (bfd_vma) -1;
@@ -1911,7 +1911,7 @@ elf32_hppa_adjust_dynamic_symbol (info, h)
        abort ();
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -1922,12 +1922,12 @@ elf32_hppa_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   eh = (struct elf32_hppa_link_hash_entry *) h;
   for (p = eh->dyn_relocs; p != NULL; p = p->next)
@@ -1942,7 +1942,7 @@ elf32_hppa_adjust_dynamic_symbol (info, h)
   if (p == NULL)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -1980,7 +1980,7 @@ elf32_hppa_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s))
     {
       if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -1990,14 +1990,14 @@ elf32_hppa_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* Called via elf_link_hash_traverse to create .plt entries for an
    application that uses statically linked PIC functions.  Similar to
    the first part of elf32_hppa_adjust_dynamic_symbol.  */
 
-static boolean
+static bfd_boolean
 mark_PIC_calls (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf ATTRIBUTE_UNUSED;
@@ -2012,19 +2012,19 @@ mark_PIC_calls (h, inf)
     {
       h->plt.offset = (bfd_vma) -1;
       h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
-      return true;
+      return TRUE;
     }
 
   h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
   ((struct elf32_hppa_link_hash_entry *) h)->pic_call = 1;
 
-  return true;
+  return TRUE;
 }
 
 /* Allocate space in the .plt for entries that won't have relocations.
    ie. pic_call and plabel entries.  */
 
-static boolean
+static bfd_boolean
 allocate_plt_static (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -2034,7 +2034,7 @@ allocate_plt_static (h, inf)
   asection *s;
 
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -2060,7 +2060,7 @@ allocate_plt_static (h, inf)
          && h->type != STT_PARISC_MILLI)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
@@ -2092,13 +2092,13 @@ allocate_plt_static (h, inf)
       h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Allocate space in .plt, .got and associated reloc sections for
    global syms.  */
 
-static boolean
+static bfd_boolean
 allocate_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -2110,7 +2110,7 @@ allocate_dynrelocs (h, inf)
   struct elf32_hppa_dyn_reloc_entry *p;
 
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -2141,7 +2141,7 @@ allocate_dynrelocs (h, inf)
          && h->type != STT_PARISC_MILLI)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = htab->sgot;
@@ -2160,7 +2160,7 @@ allocate_dynrelocs (h, inf)
 
   eh = (struct elf32_hppa_link_hash_entry *) h;
   if (eh->dyn_relocs == NULL)
-    return true;
+    return TRUE;
 
   /* If this is a -Bsymbolic shared link, then we need to discard all
      space allocated for dynamic pc-relative relocs against symbols
@@ -2207,7 +2207,7 @@ allocate_dynrelocs (h, inf)
              && h->type != STT_PARISC_MILLI)
            {
              if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          /* If that succeeded, we know we'll be keeping all the
@@ -2217,7 +2217,7 @@ allocate_dynrelocs (h, inf)
        }
 
       eh->dyn_relocs = NULL;
-      return true;
+      return TRUE;
 
     keep: ;
     }
@@ -2229,7 +2229,7 @@ allocate_dynrelocs (h, inf)
       sreloc->_raw_size += p->count * sizeof (Elf32_External_Rela);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called via elf_link_hash_traverse to force
@@ -2239,7 +2239,7 @@ allocate_dynrelocs (h, inf)
    for all dynamic symbols.  Arguably, this is a bug in
    elf_adjust_dynamic_symbol.  */
 
-static boolean
+static bfd_boolean
 clobber_millicode_symbols (h, info)
      struct elf_link_hash_entry *h;
      struct bfd_link_info *info;
@@ -2250,14 +2250,14 @@ clobber_millicode_symbols (h, info)
   if (h->type == STT_PARISC_MILLI
       && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
     {
-      elf32_hppa_hide_symbol (info, h, true);
+      elf32_hppa_hide_symbol (info, h, TRUE);
     }
-  return true;
+  return TRUE;
 }
 
 /* Find any dynamic relocs that apply to read-only sections.  */
 
-static boolean
+static bfd_boolean
 readonly_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -2280,15 +2280,15 @@ readonly_dynrelocs (h, inf)
          info->flags |= DF_TEXTREL;
 
          /* Not an error, just cut short the traversal.  */
-         return false;
+         return FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -2297,7 +2297,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
   bfd *dynobj;
   bfd *ibfd;
   asection *s;
-  boolean relocs;
+  bfd_boolean relocs;
 
   htab = hppa_link_hash_table (info);
   dynobj = htab->elf.dynobj;
@@ -2433,7 +2433,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  relocs = false;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
@@ -2465,7 +2465,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
              /* Remember whether there are any reloc sections other
                 than .rela.plt.  */
              if (s != htab->srelplt)
-               relocs = true;
+               relocs = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -2497,7 +2497,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
         we may not fill in all the reloc sections.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (htab->elf.dynamic_sections_created)
@@ -2510,7 +2510,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
   bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
 
       if (!add_dynamic_entry (DT_PLTGOT, 0))
-       return false;
+       return FALSE;
 
       /* Add some entries to the .dynamic section.  We fill in the
         values later, in elf32_hppa_finish_dynamic_sections, but we
@@ -2520,7 +2520,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (htab->srelplt->_raw_size != 0)
@@ -2528,7 +2528,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -2536,7 +2536,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_RELA, 0)
              || !add_dynamic_entry (DT_RELASZ, 0)
              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
-           return false;
+           return FALSE;
 
          /* If any dynamic relocs apply to a read-only section,
             then we need a DT_TEXTREL entry.  */
@@ -2547,13 +2547,13 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
          if ((info->flags & DF_TEXTREL) != 0)
            {
              if (!add_dynamic_entry (DT_TEXTREL, 0))
-               return false;
+               return FALSE;
            }
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* External entry points for sizing and building linker stubs.  */
@@ -2673,7 +2673,7 @@ static void
 group_sections (htab, stub_group_size, stubs_always_before_branch)
      struct elf32_hppa_link_hash_table *htab;
      bfd_size_type stub_group_size;
-     boolean stubs_always_before_branch;
+     bfd_boolean stubs_always_before_branch;
 {
   asection **list = htab->input_list + htab->top_index;
   do
@@ -2839,7 +2839,7 @@ get_local_syms (output_bfd, input_bfd, info)
                  stub_name = hash->elf.root.root.string;
                  stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table,
                                                      stub_name,
-                                                     false, false);
+                                                     FALSE, FALSE);
                  if (stub_entry == NULL)
                    {
                      stub_entry = hppa_add_stub (stub_name, sec, htab);
@@ -2872,20 +2872,20 @@ get_local_syms (output_bfd, input_bfd, info)
    PC-relative calls to a target that is unreachable with a "bl"
    instruction.  */
 
-boolean
+bfd_boolean
 elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
                       add_stub_section, layout_sections_again)
      bfd *output_bfd;
      bfd *stub_bfd;
      struct bfd_link_info *info;
-     boolean multi_subspace;
+     bfd_boolean multi_subspace;
      bfd_signed_vma group_size;
      asection * (*add_stub_section) PARAMS ((const char *, asection *));
      void (*layout_sections_again) PARAMS ((void));
 {
   bfd_size_type stub_group_size;
-  boolean stubs_always_before_branch;
-  boolean stub_changed;
+  bfd_boolean stubs_always_before_branch;
+  bfd_boolean stub_changed;
   struct elf32_hppa_link_hash_table *htab = hppa_link_hash_table (info);
 
   /* Stash our params away.  */
@@ -2915,14 +2915,14 @@ elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
     default:
       if (htab->all_local_syms)
        goto error_ret_free_local;
-      return false;
+      return FALSE;
 
     case 0:
-      stub_changed = false;
+      stub_changed = FALSE;
       break;
 
     case 1:
-      stub_changed = true;
+      stub_changed = TRUE;
       break;
     }
 
@@ -3089,7 +3089,7 @@ elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
 
                  stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table,
                                                      stub_name,
-                                                     false, false);
+                                                     FALSE, FALSE);
                  if (stub_entry != NULL)
                    {
                      /* The proper stub has already been created.  */
@@ -3115,7 +3115,7 @@ elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
                        stub_entry->stub_type = hppa_stub_long_branch_shared;
                    }
                  stub_entry->h = hash;
-                 stub_changed = true;
+                 stub_changed = TRUE;
                }
 
              /* We're done with the internal relocs, free them.  */
@@ -3141,21 +3141,21 @@ elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
 
       /* Ask the linker to do its stuff.  */
       (*htab->layout_sections_again) ();
-      stub_changed = false;
+      stub_changed = FALSE;
     }
 
   free (htab->all_local_syms);
-  return true;
+  return TRUE;
 
  error_ret_free_local:
   free (htab->all_local_syms);
-  return false;
+  return FALSE;
 }
 
 /* For a final link, this function is called after we have sized the
    stubs to provide a value for __gp.  */
 
-boolean
+bfd_boolean
 elf32_hppa_set_gp (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3166,7 +3166,7 @@ elf32_hppa_set_gp (abfd, info)
   struct elf32_hppa_link_hash_table *htab;
 
   htab = hppa_link_hash_table (info);
-  h = bfd_link_hash_lookup (&htab->elf.root, "$global$", false, false, false);
+  h = bfd_link_hash_lookup (&htab->elf.root, "$global$", FALSE, FALSE, FALSE);
 
   if (h != NULL
       && (h->type == bfd_link_hash_defined
@@ -3242,7 +3242,7 @@ elf32_hppa_set_gp (abfd, info)
     gp_val += sec->output_section->vma + sec->output_offset;
 
   elf_gp (abfd) = gp_val;
-  return true;
+  return TRUE;
 }
 
 /* Build all the stubs associated with the current output file.  The
@@ -3251,7 +3251,7 @@ elf32_hppa_set_gp (abfd, info)
    functions here.  This function is called via hppaelf_finish in the
    linker.  */
 
-boolean
+bfd_boolean
 elf32_hppa_build_stubs (info)
      struct bfd_link_info *info;
 {
@@ -3271,7 +3271,7 @@ elf32_hppa_build_stubs (info)
       size = stub_sec->_raw_size;
       stub_sec->contents = (unsigned char *) bfd_zalloc (htab->stub_bfd, size);
       if (stub_sec->contents == NULL && size != 0)
-       return false;
+       return FALSE;
       stub_sec->_raw_size = 0;
     }
 
@@ -3279,19 +3279,19 @@ elf32_hppa_build_stubs (info)
   table = &htab->stub_hash_table;
   bfd_hash_traverse (table, hppa_build_one_stub, info);
 
-  return true;
+  return TRUE;
 }
 
 /* Perform a final link.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   /* Invoke the regular ELF linker to do all the work.  */
   if (!bfd_elf32_bfd_final_link (abfd, info))
-    return false;
+    return FALSE;
 
   /* If we're producing a final executable, sort the contents of the
      unwind section.  */
@@ -3594,7 +3594,7 @@ final_link_relocate (input_section, contents, rel, value, htab, sym_sec, h)
 
 /* Relocate an HPPA ELF section.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                             contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -3613,7 +3613,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
 
@@ -3633,14 +3633,14 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
       bfd_vma relocation;
       bfd_reloc_status_type r;
       const char *sym_name;
-      boolean plabel;
-      boolean warned_undef;
+      bfd_boolean plabel;
+      bfd_boolean warned_undef;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       if (r_type >= (unsigned int) R_PARISC_UNIMPLEMENTED)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       if (r_type == (unsigned int) R_PARISC_GNU_VTENTRY
          || r_type == (unsigned int) R_PARISC_GNU_VTINHERIT)
@@ -3651,7 +3651,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
       h = NULL;
       sym = NULL;
       sym_sec = NULL;
-      warned_undef = false;
+      warned_undef = FALSE;
       if (r_symndx < symtab_hdr->sh_info)
        {
          /* This is a local symbol, h defaults to NULL.  */
@@ -3693,18 +3693,18 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                {
                  if (!((*info->callbacks->undefined_symbol)
                        (info, h->elf.root.root.string, input_bfd,
-                        input_section, rel->r_offset, false)))
-                   return false;
-                 warned_undef = true;
+                        input_section, rel->r_offset, FALSE)))
+                   return FALSE;
+                 warned_undef = TRUE;
                }
            }
          else
            {
              if (!((*info->callbacks->undefined_symbol)
                    (info, h->elf.root.root.string, input_bfd,
-                    input_section, rel->r_offset, true)))
-               return false;
-             warned_undef = true;
+                    input_section, rel->r_offset, TRUE)))
+               return FALSE;
+             warned_undef = TRUE;
            }
        }
 
@@ -3719,13 +3719,13 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_PARISC_DLTIND21L:
          {
            bfd_vma off;
-           boolean do_got = 0;
+           bfd_boolean do_got = 0;
 
            /* Relocation is to the entry for this symbol in the
               global offset table.  */
            if (h != NULL)
              {
-               boolean dyn;
+               bfd_boolean dyn;
 
                off = h->elf.got.offset;
                dyn = htab->elf.dynamic_sections_created;
@@ -3774,16 +3774,16 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                       In this case it is relative to the base of the
                       object because the symbol index is zero.  */
                    Elf_Internal_Rela outrel;
-                   asection *srelgot = htab->srelgot;
-                   Elf32_External_Rela *loc;
+                   bfd_byte *loc;
+                   asection *s = htab->srelgot;
 
                    outrel.r_offset = (off
                                       + htab->sgot->output_offset
                                       + htab->sgot->output_section->vma);
                    outrel.r_info = ELF32_R_INFO (0, R_PARISC_DIR32);
                    outrel.r_addend = relocation;
-                   loc = (Elf32_External_Rela *) srelgot->contents;
-                   loc += srelgot->reloc_count++;
+                   loc = s->contents;
+                   loc += s->reloc_count++ * sizeof (Elf32_External_Rela);
                    bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                  }
                else
@@ -3814,7 +3814,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
          if (htab->elf.dynamic_sections_created)
            {
              bfd_vma off;
-             boolean do_plt = 0;
+             bfd_boolean do_plt = 0;
 
              /* If we have a global symbol with a PLT slot, then
                 redirect this relocation to it.  */
@@ -3864,16 +3864,16 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                      /* Output a dynamic IPLT relocation for this
                         PLT entry.  */
                      Elf_Internal_Rela outrel;
-                     asection *srelplt = htab->srelplt;
-                     Elf32_External_Rela *loc;
+                     bfd_byte *loc;
+                     asection *s = htab->srelplt;
 
                      outrel.r_offset = (off
                                         + htab->splt->output_offset
                                         + htab->splt->output_section->vma);
                      outrel.r_info = ELF32_R_INFO (0, R_PARISC_IPLT);
                      outrel.r_addend = relocation;
-                     loc = (Elf32_External_Rela *) srelplt->contents;
-                     loc += srelplt->reloc_count++;
+                     loc = s->contents;
+                     loc += s->reloc_count++ * sizeof (Elf32_External_Rela);
                      bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                    }
                  else
@@ -3956,9 +3956,9 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                      || h->elf.root.type == bfd_link_hash_undefined)))
            {
              Elf_Internal_Rela outrel;
-             boolean skip;
+             bfd_boolean skip;
              asection *sreloc;
-             Elf32_External_Rela *loc;
+             bfd_byte *loc;
 
              /* When generating a shared object, these relocations
                 are copied into the output file to be resolved at run
@@ -4027,8 +4027,8 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
              if (sreloc == NULL)
                abort ();
 
-             loc = (Elf32_External_Rela *) sreloc->contents;
-             loc += sreloc->reloc_count++;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
              bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
            }
          break;
@@ -4051,7 +4051,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                                                      symtab_hdr->sh_link,
                                                      sym->st_name);
          if (sym_name == NULL)
-           return false;
+           return FALSE;
          if (*sym_name == '\0')
            sym_name = bfd_section_name (input_bfd, sym_sec);
        }
@@ -4070,7 +4070,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
                 howto->name,
                 sym_name);
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
        }
       else
@@ -4078,17 +4078,17 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
          if (!((*info->callbacks->reloc_overflow)
                (info, sym_name, howto->name, (bfd_vma) 0,
                 input_bfd, input_section, rel->r_offset)))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -4126,7 +4126,7 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
       if (! ((struct elf32_hppa_link_hash_entry *) h)->pic_call)
        {
          Elf_Internal_Rela rel;
-         Elf32_External_Rela *loc;
+         bfd_byte *loc;
 
          /* Create a dynamic IPLT relocation for this entry.  */
          rel.r_offset = (h->plt.offset
@@ -4145,8 +4145,8 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
              rel.r_addend = value;
            }
 
-         loc = (Elf32_External_Rela *) htab->srelplt->contents;
-         loc += htab->srelplt->reloc_count++;
+         loc = htab->srelplt->contents;
+         loc += htab->srelplt->reloc_count++ * sizeof (Elf32_External_Rela);
          bfd_elf32_swap_reloca_out (htab->splt->output_section->owner,
                                     &rel, loc);
        }
@@ -4171,7 +4171,7 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
   if (h->got.offset != (bfd_vma) -1)
     {
       Elf_Internal_Rela rel;
-      Elf32_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -4204,8 +4204,8 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
          rel.r_addend = 0;
        }
 
-      loc = (Elf32_External_Rela *) htab->srelgot->contents;
-      loc += htab->srelgot->reloc_count++;
+      loc = htab->srelgot->contents;
+      loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rela);
       bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
     }
 
@@ -4213,7 +4213,7 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
     {
       asection *s;
       Elf_Internal_Rela rel;
-      Elf32_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -4229,7 +4229,7 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
                      + h->root.u.def.section->output_section->vma);
       rel.r_addend = 0;
       rel.r_info = ELF32_R_INFO (h->dynindx, R_PARISC_COPY);
-      loc = (Elf32_External_Rela *) s->contents + s->reloc_count++;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela);
       bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
     }
 
@@ -4241,7 +4241,7 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
       sym->st_shndx = SHN_ABS;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Used to decide how to sort relocs in an optimal manner for the
@@ -4267,7 +4267,7 @@ elf32_hppa_reloc_type_class (rela)
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf32_hppa_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -4314,23 +4314,28 @@ elf32_hppa_finish_dynamic_sections (output_bfd, info)
 
            case DT_PLTRELSZ:
              s = htab->srelplt;
-             if (s->_cooked_size != 0)
-               dyn.d_un.d_val = s->_cooked_size;
-             else
-               dyn.d_un.d_val = s->_raw_size;
+             dyn.d_un.d_val = s->_raw_size;
              break;
 
            case DT_RELASZ:
              /* Don't count procedure linkage table relocs in the
                 overall reloc count.  */
-             if (htab->srelplt != NULL)
-               {
-                 s = htab->srelplt->output_section;
-                 if (s->_cooked_size != 0)
-                   dyn.d_un.d_val -= s->_cooked_size;
-                 else
-                   dyn.d_un.d_val -= s->_raw_size;
-               }
+             s = htab->srelplt;
+             if (s == NULL)
+               continue;
+             dyn.d_un.d_val -= s->_raw_size;
+             break;
+
+           case DT_RELA:
+             /* We may not be using the standard ELF linker script.
+                If .rela.plt is the first .rela section, we adjust
+                DT_RELA to not include it.  */
+             s = htab->srelplt;
+             if (s == NULL)
+               continue;
+             if (dyn.d_un.d_ptr != s->output_section->vma + s->output_offset)
+               continue;
+             dyn.d_un.d_ptr += s->_raw_size;
              break;
            }
 
@@ -4377,12 +4382,12 @@ elf32_hppa_finish_dynamic_sections (output_bfd, info)
            {
              (*_bfd_error_handler)
                (_(".got section not immediately after .plt section"));
-             return false;
+             return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Tweak the OSABI field of the elf header.  */
index 720cd087ae0896fb304f8c92580e11cf4fbe86bf..7c8c687c4993b4b0732d0e6d9b310e8ab826d37f 100644 (file)
@@ -4,8 +4,8 @@
    in the Stratus FTX/Golf Object File Format (SED-1762) dated
    February 1994.
 
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000
-   Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
+   2002 Free Software Foundation, Inc.
 
    Written by:
 
@@ -42,15 +42,15 @@ int elf32_hppa_setup_section_lists
 void elf32_hppa_next_input_section
   PARAMS ((struct bfd_link_info *, asection *));
 
-boolean elf32_hppa_size_stubs
-  PARAMS ((bfd *, bfd *, struct bfd_link_info *, boolean, bfd_signed_vma,
+bfd_boolean elf32_hppa_size_stubs
+  PARAMS ((bfd *, bfd *, struct bfd_link_info *, bfd_boolean, bfd_signed_vma,
           asection * (*) PARAMS ((const char *, asection *)),
           void (*) PARAMS ((void))));
 
-boolean elf32_hppa_set_gp
+bfd_boolean elf32_hppa_set_gp
   PARAMS ((bfd *, struct bfd_link_info *));
 
-boolean elf32_hppa_build_stubs
+bfd_boolean elf32_hppa_build_stubs
   PARAMS ((struct bfd_link_info *));
 
 elf_hppa_reloc_type elf32_hppa_reloc_final_type
index d047f0106e22b408c442e372f7c30db34a0339a9..8b74baa93c4941b289c3a0f9f6020a3460adc919 100644 (file)
@@ -43,150 +43,150 @@ static reloc_howto_type i370_elf_howto_raw[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 31 bit relocation.  */
   HOWTO (R_I370_ADDR31,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         31,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_ADDR31",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x7fffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 32 bit relocation.  */
   HOWTO (R_I370_ADDR32,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_ADDR32",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 16 bit relocation.  */
   HOWTO (R_I370_ADDR16,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_ADDR16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 31-bit PC relative */
   HOWTO (R_I370_REL31,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         31,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_REL31",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x7fffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 32-bit PC relative */
   HOWTO (R_I370_REL32,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_REL32",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A standard 12 bit relocation.  */
   HOWTO (R_I370_ADDR12,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_ADDR12",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfff,                 /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 12-bit PC relative */
   HOWTO (R_I370_REL12,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_REL12",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A standard 8 bit relocation.  */
   HOWTO (R_I370_ADDR8,         /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_ADDR8",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xff,                  /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 8-bit PC relative */
   HOWTO (R_I370_REL8,          /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_I370_REL8",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* This is used only by the dynamic linker.  The symbol should exist
      both in the object being run and in some shared library.  The
@@ -197,15 +197,15 @@ static reloc_howto_type i370_elf_howto_raw[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc,  /* special_function */
         "R_I370_COPY",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used only by the dynamic linker.  When the object is run, this
      longword is set to the load address of the object, plus the
@@ -214,25 +214,26 @@ static reloc_howto_type i370_elf_howto_raw[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc,  /* special_function */
         "R_I370_RELATIVE",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 };
 \f
-static void i370_elf_howto_init PARAMS ((void));
+static void i370_elf_howto_init
+  PARAMS ((void));
 static reloc_howto_type *i370_elf_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
-
-static void i370_elf_info_to_howto PARAMS ((bfd *abfd, arelent *cache_ptr,
-                                           Elf32_Internal_Rela *dst));
-static boolean i370_elf_set_private_flags PARAMS ((bfd *, flagword));
+static void i370_elf_info_to_howto
+  PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst));
+static bfd_boolean i370_elf_set_private_flags
+  PARAMS ((bfd *, flagword));
 \f
 /* Initialize the i370_elf_howto_table, so that linear accesses can be done.  */
 
@@ -275,47 +276,36 @@ i370_elf_reloc_type_lookup (abfd, code)
   return i370_elf_howto_table[ (int)i370_reloc ];
 };
 
-static boolean i370_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
-
-static boolean i370_elf_relocate_section PARAMS ((bfd *,
-                                                 struct bfd_link_info *info,
-                                                 bfd *,
-                                                 asection *,
-                                                 bfd_byte *,
-                                                 Elf_Internal_Rela *relocs,
-                                                 Elf_Internal_Sym *local_syms,
-                                                 asection **));
+static bfd_boolean i370_elf_merge_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean i370_elf_relocate_section
+  PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *,
+          Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms,
+          asection **));
 static void i370_elf_post_process_headers
   PARAMS ((bfd *, struct bfd_link_info *));
-
-static boolean i370_elf_create_dynamic_sections PARAMS ((bfd *,
-                                                        struct bfd_link_info *));
-
-static boolean i370_elf_section_from_shdr PARAMS ((bfd *,
-                                                  Elf32_Internal_Shdr *,
-                                                  const char *));
-static boolean i370_elf_fake_sections PARAMS ((bfd *,
-                                              Elf32_Internal_Shdr *,
-                                              asection *));
+static bfd_boolean i370_elf_create_dynamic_sections
+  PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean i370_elf_section_from_shdr
+  PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
+static bfd_boolean i370_elf_fake_sections
+  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
 #if 0
 static elf_linker_section_t *i370_elf_create_linker_section
-  PARAMS ((bfd *abfd,
-          struct bfd_link_info *info,
+  PARAMS ((bfd *abfd, struct bfd_link_info *info,
           enum elf_linker_section_enum));
 #endif
-static boolean i370_elf_check_relocs PARAMS ((bfd *,
-                                            struct bfd_link_info *,
-                                            asection *,
-                                            const Elf_Internal_Rela *));
-
-static boolean i370_elf_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *,
-                                                     struct elf_link_hash_entry *));
-
-static boolean i370_elf_adjust_dynindx PARAMS ((struct elf_link_hash_entry *, PTR));
-
-static boolean i370_elf_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *));
-
-static boolean i370_elf_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean i370_elf_check_relocs
+  PARAMS ((bfd *, struct bfd_link_info *, asection *,
+          const Elf_Internal_Rela *));
+static bfd_boolean i370_elf_adjust_dynamic_symbol
+  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
+static bfd_boolean i370_elf_adjust_dynindx
+  PARAMS ((struct elf_link_hash_entry *, PTR));
+static bfd_boolean i370_elf_size_dynamic_sections
+  PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean i370_elf_finish_dynamic_sections
+  PARAMS ((bfd *, struct bfd_link_info *));
 
 /* The name of the dynamic interpreter.  This is put in the .interp
     section.  */
@@ -328,7 +318,7 @@ static void
 i370_elf_info_to_howto (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   if (!i370_elf_howto_table[ R_I370_ADDR31 ])  /* Initialize howto table */
     i370_elf_howto_init ();
@@ -341,7 +331,7 @@ i370_elf_info_to_howto (abfd, cache_ptr, dst)
  * why are we bothering with them ???
  */
 /* Function to set whether a module needs the -mrelocatable bit set.  */
-static boolean
+static bfd_boolean
 i370_elf_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
@@ -350,13 +340,13 @@ i370_elf_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking */
-static boolean
+static bfd_boolean
 i370_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -366,13 +356,13 @@ i370_elf_merge_private_bfd_data (ibfd, obfd)
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   new_flags = elf_elfheader (ibfd)->e_flags;
   old_flags = elf_elfheader (obfd)->e_flags;
   if (!elf_flags_init (obfd))  /* First call, no flags set */
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = new_flags;
     }
 
@@ -386,10 +376,10 @@ i370_elf_merge_private_bfd_data (ibfd, obfd)
         bfd_archive_filename (ibfd), (long) new_flags, (long) old_flags);
 
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Handle an i370 specific section when reading an object file.  This
@@ -399,17 +389,17 @@ i370_elf_merge_private_bfd_data (ibfd, obfd)
  * just enough to allow glibc-2.1 ld.so to compile & link.
  */
 
-static boolean
+static bfd_boolean
 i370_elf_section_from_shdr (abfd, hdr, name)
      bfd *abfd;
-     Elf32_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      const char *name;
 {
   asection *newsect;
   flagword flags;
 
   if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-    return false;
+    return FALSE;
 
   newsect = hdr->bfd_section;
   flags = bfd_get_section_flags (abfd, newsect);
@@ -420,7 +410,7 @@ i370_elf_section_from_shdr (abfd, hdr, name)
     flags |= SEC_SORT_ENTRIES;
 
   bfd_set_section_flags (abfd, newsect, flags);
-  return true;
+  return TRUE;
 }
 \f
 /* Set up any other section flags and such that may be necessary.  */
@@ -429,10 +419,10 @@ i370_elf_section_from_shdr (abfd, hdr, name)
  * just enough to allow glibc-2.1 ld.so to compile & link.
  */
 
-static boolean
+static bfd_boolean
 i370_elf_fake_sections (abfd, shdr, asect)
      bfd *abfd ATTRIBUTE_UNUSED;
-     Elf32_Internal_Shdr *shdr;
+     Elf_Internal_Shdr *shdr;
      asection *asect;
 {
   if ((asect->flags & SEC_EXCLUDE) != 0)
@@ -441,7 +431,7 @@ i370_elf_fake_sections (abfd, shdr, asect)
   if ((asect->flags & SEC_SORT_ENTRIES) != 0)
     shdr->sh_type = SHT_ORDERED;
 
-  return true;
+  return TRUE;
 }
 \f
 #if 0
@@ -473,7 +463,7 @@ i370_elf_create_linker_section (abfd, info, which)
 
       defaults = zero_section;
       defaults.which = which;
-      defaults.hole_written_p = false;
+      defaults.hole_written_p = FALSE;
       defaults.alignment = 2;
 
       /* Both of these sections are (technically) created by the user
@@ -530,7 +520,7 @@ i370_elf_create_linker_section (abfd, info, which)
  * just enough to allow glibc-2.1 ld.so to compile & link.
  */
 
-static boolean
+static bfd_boolean
 i370_elf_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -539,7 +529,7 @@ i370_elf_create_dynamic_sections (abfd, info)
   flagword flags;
 
   if (!_bfd_elf_create_dynamic_sections(abfd, info))
-    return false;
+    return FALSE;
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
           | SEC_LINKER_CREATED);
@@ -547,7 +537,7 @@ i370_elf_create_dynamic_sections (abfd, info)
   s = bfd_make_section (abfd, ".dynsbss");
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, SEC_ALLOC))
-    return false;
+    return FALSE;
 
   if (! info->shared)
     {
@@ -555,7 +545,7 @@ i370_elf_create_dynamic_sections (abfd, info)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
     }
 
    /* xxx beats me, seem to need a rela.text ...  */
@@ -563,8 +553,8 @@ i370_elf_create_dynamic_sections (abfd, info)
    if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, s, 2))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -577,7 +567,7 @@ i370_elf_create_dynamic_sections (abfd, info)
  * just enough to allow glibc-2.1 ld.so to compile & link.
  */
 
-static boolean
+static bfd_boolean
 i370_elf_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -615,7 +605,7 @@ i370_elf_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -626,7 +616,7 @@ i370_elf_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -677,7 +667,7 @@ i370_elf_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (! bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -687,7 +677,7 @@ i370_elf_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Increment the index of a dynamic symbol by a given amount.  Called
@@ -697,7 +687,7 @@ i370_elf_adjust_dynamic_symbol (info, h)
  * just enough to allow glibc-2.1 ld.so to compile & link.
  */
 
-static boolean
+static bfd_boolean
 i370_elf_adjust_dynindx (h, cparg)
      struct elf_link_hash_entry *h;
      PTR cparg;
@@ -716,7 +706,7 @@ i370_elf_adjust_dynindx (h, cparg)
   if (h->dynindx != -1)
     h->dynindx += *cp;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Set the sizes of the dynamic sections.  */
@@ -725,16 +715,16 @@ i370_elf_adjust_dynindx (h, cparg)
  * just enough to allow glibc-2.1 ld.so to compile & link.
  */
 
-static boolean
+static bfd_boolean
 i370_elf_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean plt;
-  boolean relocs;
-  boolean reltext;
+  bfd_boolean plt;
+  bfd_boolean relocs;
+  bfd_boolean reltext;
 
 #ifdef DEBUG
   fprintf (stderr, "i370_elf_size_dynamic_sections called\n");
@@ -777,13 +767,13 @@ i370_elf_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  plt = false;
-  relocs = false;
-  reltext = false;
+  plt = FALSE;
+  relocs = FALSE;
+  reltext = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -791,7 +781,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
       /* It's OK to base decisions on the section name, because none
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
-      strip = false;
+      strip = FALSE;
 
       if (strcmp (name, ".plt") == 0)
        {
@@ -799,12 +789,12 @@ i370_elf_size_dynamic_sections (output_bfd, info)
            {
              /* Strip this section if we don't need it; see the
                  comment below.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there is a PLT.  */
-             plt = true;
+             plt = TRUE;
            }
        }
       else if (strncmp (name, ".rela", 5) == 0)
@@ -820,7 +810,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
@@ -828,7 +818,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
              const char *outname;
 
              /* Remember whether there are any relocation sections.  */
-             relocs = true;
+             relocs = TRUE;
 
              /* If this relocation section applies to a read only
                 section, then we probably need a DT_TEXTREL entry.  */
@@ -838,7 +828,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
              if (target != NULL
                  && (target->flags & SEC_READONLY) != 0
                  && (target->flags & SEC_ALLOC) != 0)
-               reltext = true;
+               reltext = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -873,7 +863,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
       /* Allocate memory for the section contents.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -889,7 +879,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (plt)
@@ -898,7 +888,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -906,13 +896,13 @@ i370_elf_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_RELA, 0)
              || !add_dynamic_entry (DT_RELASZ, 0)
              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
-           return false;
+           return FALSE;
        }
 
       if (reltext)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
          info->flags |= DF_TEXTREL;
        }
     }
@@ -955,7 +945,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
       elf_hash_table (info)->dynsymcount += c;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Look through the relocs for a section during the first phase, and
@@ -966,7 +956,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
  * just enough to allow glibc-2.1 ld.so to compile & link.
  */
 
-static boolean
+static bfd_boolean
 i370_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -982,7 +972,7 @@ i370_elf_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
 #ifdef DEBUG
   fprintf (stderr, "i370_elf_check_relocs called for section %s in %s\n",
@@ -1026,7 +1016,7 @@ i370_elf_check_relocs (abfd, info, sec, relocs)
                       elf_elfheader (abfd)->e_shstrndx,
                       elf_section_data (sec)->rel_hdr.sh_name));
              if (name == NULL)
-               return false;
+               return FALSE;
 
              BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                          && strcmp (bfd_get_section_name (abfd, sec), name + 5) == 0);
@@ -1044,7 +1034,7 @@ i370_elf_check_relocs (abfd, info, sec, relocs)
                  if (sreloc == NULL
                      || ! bfd_set_section_flags (dynobj, sreloc, flags)
                      || ! bfd_set_section_alignment (dynobj, sreloc, 2))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -1059,7 +1049,7 @@ i370_elf_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Finish up the dynamic sections.  */
@@ -1068,7 +1058,7 @@ i370_elf_check_relocs (abfd, info, sec, relocs)
  * just enough to allow glibc-2.1 ld.so to compile & link.
  */
 
-static boolean
+static bfd_boolean
 i370_elf_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -1097,16 +1087,16 @@ i370_elf_finish_dynamic_sections (output_bfd, info)
        {
          Elf_Internal_Dyn dyn;
          const char *name;
-         boolean size;
+         bfd_boolean size;
 
          bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
 
          switch (dyn.d_tag)
            {
-           case DT_PLTGOT:   name = ".plt";      size = false; break;
-           case DT_PLTRELSZ: name = ".rela.plt"; size = true;  break;
-           case DT_JMPREL:   name = ".rela.plt"; size = false; break;
-           default:          name = NULL;        size = false; break;
+           case DT_PLTGOT:   name = ".plt";      size = FALSE; break;
+           case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE;  break;
+           case DT_JMPREL:   name = ".rela.plt"; size = FALSE; break;
+           default:          name = NULL;        size = FALSE; break;
            }
 
          if (name != NULL)
@@ -1198,7 +1188,7 @@ i370_elf_finish_dynamic_sections (output_bfd, info)
        maxdindx + 1;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* The RELOCATE_SECTION function is called by the ELF backend linker
@@ -1230,9 +1220,9 @@ i370_elf_finish_dynamic_sections (output_bfd, info)
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
-                         contents, relocs, local_syms, local_sections)
+                          contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
      struct bfd_link_info *info;
      bfd *input_bfd;
@@ -1242,17 +1232,17 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
      Elf_Internal_Sym *local_syms;
      asection **local_sections;
 {
-  Elf_Internal_Shdr *symtab_hdr                  = &elf_tdata (input_bfd)->symtab_hdr;
+  Elf_Internal_Shdr *symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
   struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd);
-  bfd *dynobj                            = elf_hash_table (info)->dynobj;
-  Elf_Internal_Rela *rel                 = relocs;
-  Elf_Internal_Rela *relend              = relocs + input_section->reloc_count;
-  asection *sreloc                       = NULL;
+  bfd *dynobj = elf_hash_table (info)->dynobj;
+  Elf_Internal_Rela *rel = relocs;
+  Elf_Internal_Rela *relend = relocs + input_section->reloc_count;
+  asection *sreloc = NULL;
   bfd_vma *local_got_offsets;
-  boolean ret                            = true;
+  bfd_boolean ret = TRUE;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
 #ifdef DEBUG
   fprintf (stderr, "i370_elf_relocate_section called for %s section %s, %ld relocations%s\n",
@@ -1290,7 +1280,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                 (int) r_type);
 
          bfd_set_error (bfd_error_bad_value);
-         ret = false;
+         ret = FALSE;
          continue;
        }
 
@@ -1349,8 +1339,8 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                                    input_bfd,
                                                    input_section,
                                                    rel->r_offset,
-                                                   true);
-             ret = false;
+                                                   TRUE);
+             ret = FALSE;
              continue;
            }
        }
@@ -1364,7 +1354,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
             (int) r_type, sym_name);
 
          bfd_set_error (bfd_error_bad_value);
-         ret = false;
+         ret = FALSE;
          continue;
 
        case (int)R_I370_NONE:
@@ -1388,6 +1378,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              && r_symndx != 0)
            {
              Elf_Internal_Rela outrel;
+             bfd_byte *loc;
              int skip;
 
 #ifdef DEBUG
@@ -1409,7 +1400,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -1469,7 +1460,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      else if (sec == NULL || sec->owner == NULL)
                        {
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      else
                        {
@@ -1493,11 +1484,9 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
 
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* This reloc will be computed at runtime, so there's no
                  need to do anything now, unless this is a RELATIVE
@@ -1518,7 +1507,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
             sym_name);
 
          bfd_set_error (bfd_error_invalid_operation);
-         ret = false;
+         ret = FALSE;
          continue;
        }
 
@@ -1542,7 +1531,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
       if (r != bfd_reloc_ok)
        {
-         ret = false;
+         ret = FALSE;
          switch (r)
            {
            default:
@@ -1637,7 +1626,8 @@ i370_elf_post_process_headers (abfd, link_info)
 
 #define elf_backend_post_process_headers       i370_elf_post_process_headers
 
-static int i370_noop PARAMS ((void));
+static int i370_noop
+  PARAMS ((void));
 
 static int i370_noop ()
 {
@@ -1647,16 +1637,16 @@ static int i370_noop ()
 /* we need to define these at least as no-ops to link glibc ld.so */
 
 #define elf_backend_add_symbol_hook \
-  (boolean (*) PARAMS ((bfd *, struct bfd_link_info *, \
-                       const Elf_Internal_Sym *, const char **, flagword *, \
-                       asection **, bfd_vma *)))               i370_noop
+  (bfd_boolean (*) \
+     PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, \
+             const char **, flagword *, asection **, bfd_vma *))) i370_noop
 #define elf_backend_finish_dynamic_symbol \
-  (boolean (*) PARAMS ((bfd *, struct bfd_link_info *, \
-                       struct elf_link_hash_entry *, \
-                       Elf_Internal_Sym *)))                   i370_noop
+  (bfd_boolean (*) \
+     PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, \
+             Elf_Internal_Sym *))) i370_noop
 #define elf_backend_additional_program_headers \
-  (int (*) PARAMS ((bfd *)))                                   i370_noop
+  (int (*) PARAMS ((bfd *))) i370_noop
 #define elf_backend_modify_segment_map \
-  (boolean (*) PARAMS ((bfd *)))                               i370_noop
+  (bfd_boolean (*) PARAMS ((bfd *))) i370_noop
 
 #include "elf32-target.h"
index ed601a76647ed978fa26dbec4298011d6372fc25..9c94887b4bfb74f8e35b5031c9e2052d3adb608a 100644 (file)
@@ -27,22 +27,22 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *elf_i386_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void elf_i386_info_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void elf_i386_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
-static boolean elf_i386_is_local_label_name
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean elf_i386_is_local_label_name
   PARAMS ((bfd *, const char *));
-static boolean elf_i386_grok_prstatus
+static bfd_boolean elf_i386_grok_prstatus
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static boolean elf_i386_grok_psinfo
+static bfd_boolean elf_i386_grok_psinfo
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
 static struct bfd_hash_entry *link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *elf_i386_link_hash_table_create
   PARAMS ((bfd *));
-static boolean create_got_section
+static bfd_boolean create_got_section
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean elf_i386_create_dynamic_sections
+static bfd_boolean elf_i386_create_dynamic_sections
   PARAMS((bfd *, struct bfd_link_info *));
 static void elf_i386_copy_indirect_symbol
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
@@ -50,42 +50,42 @@ static void elf_i386_copy_indirect_symbol
 static int elf_i386_tls_transition
   PARAMS ((struct bfd_link_info *, int, int));
 
-static boolean elf_i386_mkobject
+static bfd_boolean elf_i386_mkobject
   PARAMS((bfd *));
-static boolean elf_i386_object_p
+static bfd_boolean elf_i386_object_p
   PARAMS((bfd *));
-static boolean elf_i386_check_relocs
+static bfd_boolean elf_i386_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection *elf_i386_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf_i386_gc_sweep_hook
+static bfd_boolean elf_i386_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf_i386_adjust_dynamic_symbol
+static bfd_boolean elf_i386_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean allocate_dynrelocs
+static bfd_boolean allocate_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean readonly_dynrelocs
+static bfd_boolean readonly_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_i386_fake_sections
-  PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *));
-static boolean elf_i386_size_dynamic_sections
+static bfd_boolean elf_i386_fake_sections
+  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
+static bfd_boolean elf_i386_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static bfd_vma dtpoff_base
   PARAMS ((struct bfd_link_info *));
 static bfd_vma tpoff
   PARAMS ((struct bfd_link_info *, bfd_vma));
-static boolean elf_i386_relocate_section
+static bfd_boolean elf_i386_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf_i386_finish_dynamic_symbol
+static bfd_boolean elf_i386_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
 static enum elf_reloc_type_class elf_i386_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
-static boolean elf_i386_finish_dynamic_sections
+static bfd_boolean elf_i386_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
 #define USE_REL        1               /* 386 uses REL relocations instead of RELA */
@@ -94,39 +94,39 @@ static boolean elf_i386_finish_dynamic_sections
 
 static reloc_howto_type elf_howto_table[]=
 {
-  HOWTO(R_386_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield,
+  HOWTO(R_386_NONE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_NONE",
-       true, 0x00000000, 0x00000000, false),
-  HOWTO(R_386_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0x00000000, 0x00000000, FALSE),
+  HOWTO(R_386_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_32",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_PC32, 0, 2, 32, true, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_PC32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_PC32",
-       true, 0xffffffff, 0xffffffff, true),
-  HOWTO(R_386_GOT32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, TRUE),
+  HOWTO(R_386_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_GOT32",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_PLT32, 0, 2, 32, true, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_PLT32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_PLT32",
-       true, 0xffffffff, 0xffffffff, true),
-  HOWTO(R_386_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, TRUE),
+  HOWTO(R_386_COPY, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_COPY",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_GLOB_DAT, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_GLOB_DAT, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_GLOB_DAT",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_JUMP_SLOT, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_JUMP_SLOT, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_JUMP_SLOT",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_RELATIVE, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_RELATIVE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_RELATIVE",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_GOTOFF, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_GOTOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_GOTOFF",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_GOTPC, 0, 2, 32, true, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_GOTPC, 0, 2, 32, TRUE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_GOTPC",
-       true, 0xffffffff, 0xffffffff, true),
+       TRUE, 0xffffffff, 0xffffffff, TRUE),
 
   /* We have a gap in the reloc numbers here.
      R_386_standard counts the number up to this point, and
@@ -136,58 +136,58 @@ static reloc_howto_type elf_howto_table[]=
 #define R_386_ext_offset ((unsigned int) R_386_TLS_TPOFF - R_386_standard)
 
   /* These relocs are a GNU extension.  */
-  HOWTO(R_386_TLS_TPOFF, 0, 2, 32, false, 0, complain_overflow_bitfield,
+  HOWTO(R_386_TLS_TPOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_TPOFF",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_IE, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_IE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_IE",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_GOTIE, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_GOTIE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_GOTIE",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_LE, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_LE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_LE",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_GD, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_GD, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_GD",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_LDM, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_LDM, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_LDM",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_16",
-       true, 0xffff, 0xffff, false),
-  HOWTO(R_386_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield,
+       TRUE, 0xffff, 0xffff, FALSE),
+  HOWTO(R_386_PC16, 0, 1, 16, TRUE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_PC16",
-       true, 0xffff, 0xffff, true),
-  HOWTO(R_386_8, 0, 0, 8, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffff, 0xffff, TRUE),
+  HOWTO(R_386_8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_8",
-       true, 0xff, 0xff, false),
-  HOWTO(R_386_PC8, 0, 0, 8, true, 0, complain_overflow_signed,
+       TRUE, 0xff, 0xff, FALSE),
+  HOWTO(R_386_PC8, 0, 0, 8, TRUE, 0, complain_overflow_signed,
        bfd_elf_generic_reloc, "R_386_PC8",
-       true, 0xff, 0xff, true),
+       TRUE, 0xff, 0xff, TRUE),
 
 #define R_386_ext ((unsigned int) R_386_PC8 + 1 - R_386_ext_offset)
 #define R_386_tls_offset ((unsigned int) R_386_TLS_LDO_32 - R_386_ext)
   /* These are common with Solaris TLS implementation.  */
-  HOWTO(R_386_TLS_LDO_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+  HOWTO(R_386_TLS_LDO_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_LDO_32",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_IE_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_IE_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_IE_32",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_LE_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_LE_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_LE_32",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_DTPMOD32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_DTPMOD32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_DTPMOD32",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_DTPOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_DTPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_DTPOFF32",
-       true, 0xffffffff, 0xffffffff, false),
-  HOWTO(R_386_TLS_TPOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO(R_386_TLS_TPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_TLS_TPOFF32",
-       true, 0xffffffff, 0xffffffff, false),
+       TRUE, 0xffffffff, 0xffffffff, FALSE),
 
   /* Another gap.  */
 #define R_386_tls ((unsigned int) R_386_TLS_TPOFF32 + 1 - R_386_tls_offset)
@@ -198,30 +198,30 @@ static reloc_howto_type elf_howto_table[]=
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_386_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_386_GNU_VTENTRY,    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn, /* special_function */
         "R_386_GNU_VTENTRY",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false)                 /* pcrel_offset */
+        FALSE)                 /* pcrel_offset */
 
 #define R_386_vt ((unsigned int) R_386_GNU_VTENTRY + 1 - R_386_vt_offset)
 
@@ -374,9 +374,9 @@ elf_i386_reloc_type_lookup (abfd, code)
 
 static void
 elf_i386_info_to_howto (abfd, cache_ptr, dst)
-     bfd               *abfd ATTRIBUTE_UNUSED;
-     arelent           *cache_ptr ATTRIBUTE_UNUSED;
-     Elf32_Internal_Rela *dst ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     arelent *cache_ptr ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *dst ATTRIBUTE_UNUSED;
 {
   abort ();
 }
@@ -385,7 +385,7 @@ static void
 elf_i386_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type = ELF32_R_TYPE (dst->r_info);
   unsigned int indx;
@@ -411,19 +411,19 @@ elf_i386_info_to_howto_rel (abfd, cache_ptr, dst)
    If so, we should move the .X recognition into
    _bfd_elf_is_local_label_name.  */
 
-static boolean
+static bfd_boolean
 elf_i386_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
 {
   if (name[0] == '.' && name[1] == 'X')
-    return true;
+    return TRUE;
 
   return _bfd_elf_is_local_label_name (abfd, name);
 }
 \f
 /* Support for core dump NOTE sections.  */
-static boolean
+static bfd_boolean
 elf_i386_grok_prstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -434,7 +434,7 @@ elf_i386_grok_prstatus (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 144:                /* Linux/i386 */
        /* pr_cursig */
@@ -455,7 +455,7 @@ elf_i386_grok_prstatus (abfd, note)
                                          raw_size, note->descpos + offset);
 }
 
-static boolean
+static bfd_boolean
 elf_i386_grok_psinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -463,7 +463,7 @@ elf_i386_grok_psinfo (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 124:                /* Linux/i386 elf_prpsinfo */
        elf_tdata (abfd)->core_program
@@ -484,7 +484,7 @@ elf_i386_grok_psinfo (abfd, note)
       command[n - 1] = '\0';
   }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Functions for the i386 ELF linker.
@@ -611,18 +611,18 @@ struct elf_i386_obj_tdata
 #define elf_i386_local_got_tls_type(abfd) \
   (elf_i386_tdata (abfd)->local_got_tls_type)
 
-static boolean
+static bfd_boolean
 elf_i386_mkobject (abfd)
      bfd *abfd;
 {
   bfd_size_type amt = sizeof (struct elf_i386_obj_tdata);
   abfd->tdata.any = bfd_zalloc (abfd, amt);
   if (abfd->tdata.any == NULL)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf_i386_object_p (abfd)
   bfd *abfd;
 {
@@ -631,10 +631,10 @@ elf_i386_object_p (abfd)
   bfd_size_type amt = sizeof (struct elf_i386_obj_tdata);
   new_tdata = bfd_zalloc (abfd, amt);
   if (new_tdata == NULL)
-    return false;
+    return FALSE;
   new_tdata->root = *abfd->tdata.elf_obj_data;
   abfd->tdata.any = new_tdata;
-  return true;
+  return TRUE;
 }
 
 /* i386 ELF linker hash table.  */
@@ -733,7 +733,7 @@ elf_i386_link_hash_table_create (abfd)
 /* Create .got, .gotplt, and .rel.got sections in DYNOBJ, and set up
    shortcuts to them in our hash table.  */
 
-static boolean
+static bfd_boolean
 create_got_section (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -741,7 +741,7 @@ create_got_section (dynobj, info)
   struct elf_i386_link_hash_table *htab;
 
   if (! _bfd_elf_create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   htab = elf_i386_hash_table (info);
   htab->sgot = bfd_get_section_by_name (dynobj, ".got");
@@ -756,15 +756,15 @@ create_got_section (dynobj, info)
                                   | SEC_IN_MEMORY | SEC_LINKER_CREATED
                                   | SEC_READONLY))
       || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Create .plt, .rel.plt, .got, .got.plt, .rel.got, .dynbss, and
    .rel.bss sections in DYNOBJ, and set up shortcuts to them in our
    hash table.  */
 
-static boolean
+static bfd_boolean
 elf_i386_create_dynamic_sections (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -773,10 +773,10 @@ elf_i386_create_dynamic_sections (dynobj, info)
 
   htab = elf_i386_hash_table (info);
   if (!htab->sgot && !create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   if (!_bfd_elf_create_dynamic_sections (dynobj, info))
-    return false;
+    return FALSE;
 
   htab->splt = bfd_get_section_by_name (dynobj, ".plt");
   htab->srelplt = bfd_get_section_by_name (dynobj, ".rel.plt");
@@ -788,7 +788,7 @@ elf_i386_create_dynamic_sections (dynobj, info)
       || (!info->shared && !htab->srelbss))
     abort ();
 
-  return true;
+  return TRUE;
 }
 
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
@@ -878,7 +878,7 @@ elf_i386_tls_transition (info, r_type, is_local)
    calculate needed space in the global offset table, procedure linkage
    table, and dynamic reloc sections.  */
 
-static boolean
+static bfd_boolean
 elf_i386_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -893,7 +893,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   htab = elf_i386_hash_table (info);
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -916,7 +916,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
          (*_bfd_error_handler) (_("%s: bad symbol index: %d"),
                                 bfd_archive_filename (abfd),
                                 r_symndx);
-         return false;
+         return FALSE;
        }
 
       if (r_symndx < symtab_hdr->sh_info)
@@ -1000,7 +1000,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
                    local_got_refcounts = ((bfd_signed_vma *)
                                           bfd_zalloc (abfd, size));
                    if (local_got_refcounts == NULL)
-                     return false;
+                     return FALSE;
                    elf_local_got_refcounts (abfd) = local_got_refcounts;
                    elf_i386_local_got_tls_type (abfd)
                      = (char *) (local_got_refcounts + symtab_hdr->sh_info);
@@ -1025,7 +1025,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
                      (_("%s: `%s' accessed both as normal and thread local symbol"),
                       bfd_archive_filename (abfd),
                       h ? h->root.root.string : "<local>");
-                   return false;
+                   return FALSE;
                  }
              }
 
@@ -1047,7 +1047,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
              if (htab->elf.dynobj == NULL)
                htab->elf.dynobj = abfd;
              if (!create_got_section (htab->elf.dynobj, info))
-               return false;
+               return FALSE;
            }
          if (r_type != R_386_TLS_IE)
            break;
@@ -1058,7 +1058,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
          if (!info->shared)
            break;
          info->flags |= DF_STATIC_TLS;
-         /* Fall through */        
+         /* Fall through */
 
        case R_386_32:
        case R_386_PC32:
@@ -1128,7 +1128,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
 
                  name = bfd_elf_string_from_elf_section (abfd, strndx, shnam);
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  if (strncmp (name, ".rel", 4) != 0
                      || strcmp (bfd_get_section_name (abfd, sec),
@@ -1156,7 +1156,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
                  elf_section_data (sec)->sreloc = sreloc;
                }
@@ -1177,7 +1177,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
                  s = bfd_section_from_r_symndx (abfd, &htab->sym_sec,
                                                 sec, r_symndx);
                  if (s == NULL)
-                   return false;
+                   return FALSE;
 
                  head = ((struct elf_i386_dyn_relocs **)
                          &elf_section_data (s)->local_dynrel);
@@ -1190,7 +1190,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
                  p = ((struct elf_i386_dyn_relocs *)
                       bfd_alloc (htab->elf.dynobj, amt));
                  if (p == NULL)
-                   return false;
+                   return FALSE;
                  p->next = *head;
                  *head = p;
                  p->sec = sec;
@@ -1208,14 +1208,14 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
        case R_386_GNU_VTINHERIT:
          if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_386_GNU_VTENTRY:
          if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
        default:
@@ -1223,7 +1223,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -1268,7 +1268,7 @@ elf_i386_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 elf_i386_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1371,7 +1371,7 @@ elf_i386_gc_sweep_hook (abfd, info, sec, relocs)
        break;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -1380,7 +1380,7 @@ elf_i386_gc_sweep_hook (abfd, info, sec, relocs)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf_i386_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -1413,7 +1413,7 @@ elf_i386_adjust_dynamic_symbol (info, h)
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
        }
 
-      return true;
+      return TRUE;
     }
   else
     /* It's possible that we incorrectly decided a .plt reloc was
@@ -1432,7 +1432,7 @@ elf_i386_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -1443,18 +1443,18 @@ elf_i386_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
   if (info->nocopyreloc)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   eh = (struct elf_i386_link_hash_entry *) h;
@@ -1470,7 +1470,7 @@ elf_i386_adjust_dynamic_symbol (info, h)
   if (p == NULL)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -1506,7 +1506,7 @@ elf_i386_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s))
     {
       if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -1516,7 +1516,7 @@ elf_i386_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* This is the condition under which elf_i386_finish_dynamic_symbol
@@ -1533,7 +1533,7 @@ elf_i386_adjust_dynamic_symbol (info, h)
 /* Allocate space in .plt, .got and associated reloc sections for
    dynamic relocs.  */
 
-static boolean
+static bfd_boolean
 allocate_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -1544,7 +1544,7 @@ allocate_dynrelocs (h, inf)
   struct elf_i386_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     /* When warning symbols are created, they **replace** the "real"
@@ -1564,7 +1564,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
@@ -1622,7 +1622,7 @@ allocate_dynrelocs (h, inf)
   else if (h->got.refcount > 0)
     {
       asection *s;
-      boolean dyn;
+      bfd_boolean dyn;
       int tls_type = elf_i386_hash_entry(h)->tls_type;
 
       /* Make sure this symbol is output as a dynamic symbol.
@@ -1631,7 +1631,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = htab->sgot;
@@ -1661,7 +1661,7 @@ allocate_dynrelocs (h, inf)
 
   eh = (struct elf_i386_link_hash_entry *) h;
   if (eh->dyn_relocs == NULL)
-    return true;
+    return TRUE;
 
   /* In the shared -Bsymbolic case, discard space allocated for
      dynamic pc-relative relocs against symbols which turn out to be
@@ -1707,7 +1707,7 @@ allocate_dynrelocs (h, inf)
              && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
            {
              if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          /* If that succeeded, we know we'll be keeping all the
@@ -1728,12 +1728,12 @@ allocate_dynrelocs (h, inf)
       sreloc->_raw_size += p->count * sizeof (Elf32_External_Rel);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Find any dynamic relocs that apply to read-only sections.  */
 
-static boolean
+static bfd_boolean
 readonly_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -1756,15 +1756,15 @@ readonly_dynrelocs (h, inf)
          info->flags |= DF_TEXTREL;
 
          /* Not an error, just cut short the traversal.  */
-         return false;
+         return FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_i386_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -1772,7 +1772,7 @@ elf_i386_size_dynamic_sections (output_bfd, info)
   struct elf_i386_link_hash_table *htab;
   bfd *dynobj;
   asection *s;
-  boolean relocs;
+  bfd_boolean relocs;
   bfd *ibfd;
 
   htab = elf_i386_hash_table (info);
@@ -1885,7 +1885,7 @@ elf_i386_size_dynamic_sections (output_bfd, info)
 
   /* We now have determined the sizes of the various dynamic sections.
      Allocate memory for them.  */
-  relocs = false;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
@@ -1901,7 +1901,7 @@ elf_i386_size_dynamic_sections (output_bfd, info)
       else if (strncmp (bfd_get_section_name (dynobj, s), ".rel", 4) == 0)
        {
          if (s->_raw_size != 0 && s != htab->srelplt)
-           relocs = true;
+           relocs = TRUE;
 
          /* We use the reloc_count field as a counter if we need
             to copy relocs into the output file.  */
@@ -1936,7 +1936,7 @@ elf_i386_size_dynamic_sections (output_bfd, info)
         of garbage.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
     }
 
   if (htab->elf.dynamic_sections_created)
@@ -1952,7 +1952,7 @@ elf_i386_size_dynamic_sections (output_bfd, info)
       if (! info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (htab->splt->_raw_size != 0)
@@ -1961,7 +1961,7 @@ elf_i386_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_REL)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -1969,7 +1969,7 @@ elf_i386_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_REL, 0)
              || !add_dynamic_entry (DT_RELSZ, 0)
              || !add_dynamic_entry (DT_RELENT, sizeof (Elf32_External_Rel)))
-           return false;
+           return FALSE;
 
          /* If any dynamic relocs apply to a read-only section,
             then we need a DT_TEXTREL entry.  */
@@ -1980,22 +1980,22 @@ elf_i386_size_dynamic_sections (output_bfd, info)
          if ((info->flags & DF_TEXTREL) != 0)
            {
              if (!add_dynamic_entry (DT_TEXTREL, 0))
-               return false;
+               return FALSE;
            }
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* Set the correct type for an x86 ELF section.  We do this by the
    section name, which is a hack, but ought to work.  */
 
-static boolean
+static bfd_boolean
 elf_i386_fake_sections (abfd, hdr, sec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     Elf32_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      asection *sec;
 {
   register const char *name;
@@ -2021,7 +2021,7 @@ elf_i386_fake_sections (abfd, hdr, sec)
   if (strcmp (name, ".reloc") == 0)
     hdr->sh_type = SHT_PROGBITS;
 
-  return true;
+  return TRUE;
 }
 
 /* Return the base VMA address which should be subtracted from real addresses
@@ -2058,7 +2058,7 @@ tpoff (info, address)
 
 /* Relocate an i386 ELF section.  */
 
-static boolean
+static bfd_boolean
 elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -2094,7 +2094,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
       asection *sec;
       bfd_vma off;
       bfd_vma relocation;
-      boolean unresolved_reloc;
+      bfd_boolean unresolved_reloc;
       bfd_reloc_status_type r;
       unsigned int indx;
       int tls_type;
@@ -2111,7 +2111,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
              >= R_386_tls - R_386_ext))
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       howto = elf_howto_table + indx;
 
@@ -2164,7 +2164,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
       h = NULL;
       sym = NULL;
       sec = NULL;
-      unresolved_reloc = false;
+      unresolved_reloc = FALSE;
       if (r_symndx < symtab_hdr->sh_info)
        {
          sym = local_syms + r_symndx;
@@ -2252,7 +2252,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                   relocation value for this symbol.  output_section
                   is typically NULL for symbols satisfied by a shared
                   library.  */
-               unresolved_reloc = true;
+               unresolved_reloc = TRUE;
              else
                relocation = (h->root.u.def.value
                              + sec->output_section->vma
@@ -2272,7 +2272,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                      input_section, rel->r_offset,
                      (!info->shared || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
            }
        }
 
@@ -2286,7 +2286,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
 
          if (h != NULL)
            {
-             boolean dyn;
+             bfd_boolean dyn;
 
              off = h->got.offset;
              dyn = htab->elf.dynamic_sections_created;
@@ -2319,7 +2319,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
              else
-               unresolved_reloc = false;
+               unresolved_reloc = FALSE;
            }
          else
            {
@@ -2340,20 +2340,20 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
 
                  if (info->shared)
                    {
-                     asection *srelgot;
-                     Elf_Internal_Rel outrel;
-                     Elf32_External_Rel *loc;
+                     asection *s;
+                     Elf_Internal_Rela outrel;
+                     bfd_byte *loc;
 
-                     srelgot = htab->srelgot;
-                     if (srelgot == NULL)
+                     s = htab->srelgot;
+                     if (s == NULL)
                        abort ();
 
                      outrel.r_offset = (htab->sgot->output_section->vma
                                         + htab->sgot->output_offset
                                         + off);
                      outrel.r_info = ELF32_R_INFO (0, R_386_RELATIVE);
-                     loc = (Elf32_External_Rel *) srelgot->contents;
-                     loc += srelgot->reloc_count++;
+                     loc = s->contents;
+                     loc += s->reloc_count++ * sizeof (Elf32_External_Rel);
                      bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
                    }
 
@@ -2382,7 +2382,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_386_GOTPC:
          /* Use global offset table as symbol value.  */
          relocation = htab->sgot->output_section->vma;
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
          break;
 
        case R_386_PLT32:
@@ -2406,7 +2406,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
          relocation = (htab->splt->output_section->vma
                        + htab->splt->output_offset
                        + h->plt.offset);
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
          break;
 
        case R_386_32:
@@ -2436,25 +2436,25 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                      || h->root.type == bfd_link_hash_undefweak
                      || h->root.type == bfd_link_hash_undefined)))
            {
-             Elf_Internal_Rel outrel;
-             boolean skip, relocate;
+             Elf_Internal_Rela outrel;
+             bfd_byte *loc;
+             bfd_boolean skip, relocate;
              asection *sreloc;
-             Elf32_External_Rel *loc;
 
              /* When generating a shared object, these relocations
                 are copied into the output file to be resolved at run
                 time.  */
 
-             skip = false;
-             relocate = false;
+             skip = FALSE;
+             relocate = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
              outrel.r_offset += (input_section->output_section->vma
                                  + input_section->output_offset);
 
@@ -2471,7 +2471,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
              else
                {
                  /* This symbol is local, or marked to become local.  */
-                 relocate = true;
+                 relocate = TRUE;
                  outrel.r_info = ELF32_R_INFO (0, R_386_RELATIVE);
                }
 
@@ -2479,8 +2479,8 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
              if (sreloc == NULL)
                abort ();
 
-             loc = (Elf32_External_Rel *) sreloc->contents;
-             loc += sreloc->reloc_count++;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rel);
              bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
 
              /* If this reloc is against an external symbol, we do
@@ -2495,9 +2495,9 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_386_TLS_IE:
          if (info->shared)
            {
-             Elf_Internal_Rel outrel;
+             Elf_Internal_Rela outrel;
+             bfd_byte *loc;
              asection *sreloc;
-             Elf32_External_Rel *loc;
 
              outrel.r_offset = rel->r_offset
                                + input_section->output_section->vma
@@ -2506,8 +2506,8 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
              sreloc = elf_section_data (input_section)->sreloc;
              if (sreloc == NULL)
                abort ();
-             loc = (Elf32_External_Rel *) sreloc->contents;
-             loc += sreloc->reloc_count++;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rel);
              bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
            }
          /* Fall through */
@@ -2726,8 +2726,8 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
            off &= ~1;
           else
            {
-             Elf_Internal_Rel outrel;
-             Elf32_External_Rel *loc;
+             Elf_Internal_Rela outrel;
+             bfd_byte *loc;
              int dr_type, indx;
 
              if (htab->srelgot == NULL)
@@ -2753,8 +2753,8 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                bfd_put_32 (output_bfd, 0,
                            htab->sgot->contents + off);
              outrel.r_info = ELF32_R_INFO (indx, dr_type);
-             loc = (Elf32_External_Rel *) htab->srelgot->contents;
-             loc += htab->srelgot->reloc_count++;
+             loc = htab->srelgot->contents;
+             loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rel);
              bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
 
              if (r_type == R_386_TLS_GD)
@@ -2774,9 +2774,8 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                                                    R_386_TLS_DTPOFF32);
                      outrel.r_offset += 4;
                      htab->srelgot->reloc_count++;
-                     loc++;
-                     bfd_elf32_swap_reloc_out (output_bfd, &outrel,
-                                               loc);
+                     loc += sizeof (Elf32_External_Rel);
+                     bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
                    }
                }
              else if (tls_type == GOT_TLS_IE_BOTH)
@@ -2787,7 +2786,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                  outrel.r_info = ELF32_R_INFO (indx, R_386_TLS_TPOFF);
                  outrel.r_offset += 4;
                  htab->srelgot->reloc_count++;
-                 loc++;
+                 loc += sizeof (Elf32_External_Rel);
                  bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
                }
 
@@ -2807,7 +2806,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                relocation += 4;
              if (r_type == R_386_TLS_IE)
                relocation += htab->sgot->output_section->vma;
-             unresolved_reloc = false;
+             unresolved_reloc = FALSE;
            }
          else
            {
@@ -2906,8 +2905,8 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
            off &= ~1;
          else
            {
-             Elf_Internal_Rel outrel;
-             Elf32_External_Rel *loc;
+             Elf_Internal_Rela outrel;
+             bfd_byte *loc;
 
              if (htab->srelgot == NULL)
                abort ();
@@ -2920,13 +2919,13 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
              bfd_put_32 (output_bfd, 0,
                          htab->sgot->contents + off + 4);
              outrel.r_info = ELF32_R_INFO (0, R_386_TLS_DTPMOD32);
-             loc = (Elf32_External_Rel *) htab->srelgot->contents;
-             loc += htab->srelgot->reloc_count++;
+             loc = htab->srelgot->contents;
+             loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rel);
              bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
              htab->tls_ldm_got.offset |= 1;
            }
          relocation = htab->sgot->output_offset + off;
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
          break;
 
        case R_386_TLS_LDO_32:
@@ -2941,9 +2940,9 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_386_TLS_LE:
          if (info->shared)
            {
-             Elf_Internal_Rel outrel;
+             Elf_Internal_Rela outrel;
              asection *sreloc;
-             Elf32_External_Rel *loc;
+             bfd_byte *loc;
              int indx;
 
              outrel.r_offset = rel->r_offset
@@ -2960,8 +2959,8 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
              sreloc = elf_section_data (input_section)->sreloc;
              if (sreloc == NULL)
                abort ();
-             loc = (Elf32_External_Rel *) sreloc->contents;
-             loc += sreloc->reloc_count++;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rel);
              bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
              if (indx)
                continue;
@@ -2993,7 +2992,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
             bfd_get_section_name (input_bfd, input_section),
             (long) rel->r_offset,
             h->root.root.string);
-         return false;
+         return FALSE;
        }
 
       r = _bfd_final_link_relocate (howto, input_bfd, input_section,
@@ -3012,7 +3011,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                                                      symtab_hdr->sh_link,
                                                      sym->st_name);
              if (name == NULL)
-               return false;
+               return FALSE;
              if (*name == '\0')
                name = bfd_section_name (input_bfd, sec);
            }
@@ -3022,7 +3021,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
            }
          else
            {
@@ -3031,18 +3030,18 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
                 bfd_archive_filename (input_bfd),
                 bfd_get_section_name (input_bfd, input_section),
                 (long) rel->r_offset, name, (int) r);
-             return false;
+             return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -3057,8 +3056,8 @@ elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
     {
       bfd_vma plt_index;
       bfd_vma got_offset;
-      Elf_Internal_Rel rel;
-      Elf32_External_Rel *loc;
+      Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
         it up.  */
@@ -3117,7 +3116,7 @@ elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
                      + htab->sgotplt->output_offset
                      + got_offset);
       rel.r_info = ELF32_R_INFO (h->dynindx, R_386_JUMP_SLOT);
-      loc = (Elf32_External_Rel *) htab->srelplt->contents + plt_index;
+      loc = htab->srelplt->contents + plt_index * sizeof (Elf32_External_Rel);
       bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
@@ -3135,8 +3134,8 @@ elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
       && elf_i386_hash_entry(h)->tls_type != GOT_TLS_GD
       && (elf_i386_hash_entry(h)->tls_type & GOT_TLS_IE) == 0)
     {
-      Elf_Internal_Rel rel;
-      Elf32_External_Rel *loc;
+      Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -3170,15 +3169,15 @@ elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
          rel.r_info = ELF32_R_INFO (h->dynindx, R_386_GLOB_DAT);
        }
 
-      loc = (Elf32_External_Rel *) htab->srelgot->contents;
-      loc += htab->srelgot->reloc_count++;
+      loc = htab->srelgot->contents;
+      loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rel);
       bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
-      Elf_Internal_Rel rel;
-      Elf32_External_Rel *loc;
+      Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -3192,8 +3191,8 @@ elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
                      + h->root.u.def.section->output_section->vma
                      + h->root.u.def.section->output_offset);
       rel.r_info = ELF32_R_INFO (h->dynindx, R_386_COPY);
-      loc = (Elf32_External_Rel *) htab->srelbss->contents;
-      loc += htab->srelbss->reloc_count++;
+      loc = htab->srelbss->contents;
+      loc += htab->srelbss->reloc_count++ * sizeof (Elf32_External_Rel);
       bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
     }
 
@@ -3202,7 +3201,7 @@ elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Used to decide how to sort relocs in an optimal manner for the
@@ -3227,7 +3226,7 @@ elf_i386_reloc_type_class (rela)
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_i386_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -3266,15 +3265,13 @@ elf_i386_finish_dynamic_sections (output_bfd, info)
              break;
 
            case DT_JMPREL:
-             dyn.d_un.d_ptr = htab->srelplt->output_section->vma;
+             s = htab->srelplt;
+             dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
              break;
 
            case DT_PLTRELSZ:
-             s = htab->srelplt->output_section;
-             if (s->_cooked_size != 0)
-               dyn.d_un.d_val = s->_cooked_size;
-             else
-               dyn.d_un.d_val = s->_raw_size;
+             s = htab->srelplt;
+             dyn.d_un.d_val = s->_raw_size;
              break;
 
            case DT_RELSZ:
@@ -3283,18 +3280,23 @@ elf_i386_finish_dynamic_sections (output_bfd, info)
                 included in the overall relocs (DT_REL).  This is
                 what Solaris does.  However, UnixWare can not handle
                 that case.  Therefore, we override the DT_RELSZ entry
-                here to make it not include the JMPREL relocs.  Since
-                the linker script arranges for .rel.plt to follow all
-                other relocation sections, we don't have to worry
-                about changing the DT_REL entry.  */
-             if (htab->srelplt != NULL)
-               {
-                 s = htab->srelplt->output_section;
-                 if (s->_cooked_size != 0)
-                   dyn.d_un.d_val -= s->_cooked_size;
-                 else
-                   dyn.d_un.d_val -= s->_raw_size;
-               }
+                here to make it not include the JMPREL relocs.  */
+             s = htab->srelplt;
+             if (s == NULL)
+               continue;
+             dyn.d_un.d_val -= s->_raw_size;
+             break;
+
+           case DT_REL:
+             /* We may not be using the standard ELF linker script.
+                If .rel.plt is the first .rel section, we adjust
+                DT_REL to not include it.  */
+             s = htab->srelplt;
+             if (s == NULL)
+               continue;
+             if (dyn.d_un.d_ptr != s->output_section->vma + s->output_offset)
+               continue;
+             dyn.d_un.d_ptr += s->_raw_size;
              break;
            }
 
@@ -3345,7 +3347,7 @@ elf_i386_finish_dynamic_sections (output_bfd, info)
 
       elf_section_data (htab->sgotplt->output_section)->this_hdr.sh_entsize = 4;
     }
-  return true;
+  return TRUE;
 }
 
 #define TARGET_LITTLE_SYM              bfd_elf32_i386_vec
index f8ab971051836592790462b4d6f700fd8bf4dc2b..d24a29d8a63e8b86b60712cba7fe25160e965356 100644 (file)
@@ -34,7 +34,7 @@ static reloc_howto_type *elf32_i860_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 
 static void elf32_i860_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
 static bfd_reloc_status_type elf32_i860_relocate_splitn
   PARAMS ((bfd *,  Elf_Internal_Rela *, bfd_byte *, bfd_vma));
@@ -48,7 +48,7 @@ static bfd_reloc_status_type elf32_i860_relocate_pc26
 static bfd_reloc_status_type elf32_i860_relocate_highadj
   PARAMS ((bfd *,  Elf_Internal_Rela *, bfd_byte *, bfd_vma));
 
-static boolean elf32_i860_relocate_section
+static bfd_boolean elf32_i860_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 
@@ -56,7 +56,7 @@ static bfd_reloc_status_type i860_final_link_relocate
   PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, bfd_vma));
 
-static boolean elf32_i860_is_local_label_name
+static bfd_boolean elf32_i860_is_local_label_name
   PARAMS ((bfd *, const char *));
 
 /* This howto table is preliminary.  */
@@ -67,480 +67,480 @@ static reloc_howto_type elf32_i860_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_NONE",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32-bit absolute relocation.  */
   HOWTO (R_860_32,             /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_32",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_COPY,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_COPY",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_GLOB_DAT,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_GLOB_DAT",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_JUMP_SLOT,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_JUMP_SLOT",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_RELATIVE,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_RELATIVE",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 26-bit PC-relative relocation.  */
   HOWTO (R_860_PC26,           /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_PC26",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x3ffffff,             /* src_mask */
         0x3ffffff,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_PLT26,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_PLT26",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 16-bit PC-relative relocation.  */
   HOWTO (R_860_PC16,           /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_PC16",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x1f07ff,              /* src_mask */
         0x1f07ff,              /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_LOW0,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOW0",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_SPLIT0,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_SPLIT0",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x1f07ff,              /* src_mask */
         0x1f07ff,              /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_LOW1,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOW1",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xfffe,                /* src_mask */
         0xfffe,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_SPLIT1,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_SPLIT1",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x1f07fe,              /* src_mask */
         0x1f07fe,              /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_LOW2,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOW2",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xfffc,                /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_SPLIT2,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_SPLIT2",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x1f07fc,              /* src_mask */
         0x1f07fc,              /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_LOW3,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOW3",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xfff8,                /* src_mask */
         0xfff8,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_LOGOT0,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOGOT0",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_SPGOT0,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_SPGOT0",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_LOGOT1,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOGOT1",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_SPGOT1,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_SPGOT1",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_LOGOTOFF0,        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOGOTOFF0",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_SPGOTOFF0,        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_SPGOTOFF0",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_LOGOTOFF1,        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOGOTOFF1",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_SPGOTOFF1,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_SPGOTOFF1",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_LOGOTOFF2,        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOGOTOFF2",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_LOGOTOFF3,        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOGOTOFF3",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_LOPC,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_LOPC",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_HIGHADJ,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_HIGHADJ",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_HAGOT,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_HAGOT",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_HAGOTOFF,        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_HAGOTOFF",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_HAPC,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_HAPC",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_HIGH,           /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_HIGH",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_HIGOT,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_HIGOT",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_860_HIGOTOFF,        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_HIGOTOFF",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 \f
 static unsigned char elf_code_to_howto_index[R_860_max + 1];
@@ -694,7 +694,7 @@ static void
 elf32_i860_info_to_howto_rela (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     Elf64_Internal_Rela *elf_reloc;
+     Elf_Internal_Rela *elf_reloc;
 {
   bfd_reloc->howto
     = lookup_howto ((unsigned) ELF32_R_TYPE (elf_reloc->r_info));
@@ -859,25 +859,25 @@ i860_final_link_relocate (howto, input_bfd, input_section, contents, rel, reloca
    going to be the section symbol corresponding to the output
    section, which means that the addend must be adjusted
    accordingly.  */
-static boolean
+static bfd_boolean
 elf32_i860_relocate_section (output_bfd, info, input_bfd, input_section,
                             contents, relocs, local_syms, local_sections)
-     bfd *                   output_bfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *  info;
-     bfd *                   input_bfd;
-     asection *              input_section;
-     bfd_byte *              contents;
-     Elf_Internal_Rela *     relocs;
-     Elf_Internal_Sym *      local_syms;
-     asection **             local_sections;
+     bfd *output_bfd ATTRIBUTE_UNUSED;
+     struct bfd_link_info *info;
+     bfd *input_bfd;
+     asection *input_section;
+     bfd_byte *contents;
+     Elf_Internal_Rela *relocs;
+     Elf_Internal_Sym *local_syms;
+     asection **local_sections;
 {
-  Elf_Internal_Shdr *           symtab_hdr;
-  struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Shdr *symtab_hdr;
+  struct elf_link_hash_entry **sym_hashes;
+  Elf_Internal_Rela *rel;
+  Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -946,8 +946,8 @@ elf32_i860_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -1021,7 +1021,7 @@ elf32_i860_relocate_section (output_bfd, info, input_bfd, input_section,
 
            case bfd_reloc_undefined:
              r = info->callbacks->undefined_symbol
-               (info, name, input_bfd, input_section, rel->r_offset, true);
+               (info, name, input_bfd, input_section, rel->r_offset, TRUE);
              break;
 
            case bfd_reloc_outofrange:
@@ -1046,11 +1046,11 @@ elf32_i860_relocate_section (output_bfd, info, input_bfd, input_section,
              (info, msg, name, input_bfd, input_section, rel->r_offset);
 
          if (! r)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return whether a symbol name implies a local label.  SVR4/860 compilers
@@ -1058,13 +1058,13 @@ elf32_i860_relocate_section (output_bfd, info, input_bfd, input_section,
    function prolog. These should be local.
    ??? Do any other SVR4 compilers have this convention? If so, this should
    be added to the generic routine.  */
-static boolean
+static bfd_boolean
 elf32_i860_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
 {
   if (name[0] == '.' && name[1] == 'e' && name[2] == 'p' && name[3] == '.')
-    return true;
+    return TRUE;
 
   return _bfd_elf_is_local_label_name (abfd, name);
 }
index fcaea20b810a6287c2e6bc037a1348550b0baf52..4a1e931f29337fd5d6f52086c8ac0355610f5ab5 100644 (file)
@@ -1,5 +1,5 @@
 /* Intel 860 specific support for 32-bit ELF
-   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -28,9 +28,9 @@ static bfd_reloc_status_type elf32_i960_relocate
 static reloc_howto_type *elf32_i960_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void elf32_i960_info_to_howto
-  PARAMS ((bfd *, arelent *cache_ptr, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *cache_ptr, Elf_Internal_Rela *));
 static void elf32_i960_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
 #define USE_REL 1
 
@@ -40,16 +40,16 @@ static void elf32_i960_info_to_howto_rel
 
 static reloc_howto_type elf_howto_table[]=
 {
-  HOWTO(R_960_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield,
-       elf32_i960_relocate, "R_960_NONE", true,
-       0x00000000, 0x00000000, false),
+  HOWTO(R_960_NONE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield,
+       elf32_i960_relocate, "R_960_NONE", TRUE,
+       0x00000000, 0x00000000, FALSE),
   EMPTY_HOWTO (1),
-  HOWTO (R_960_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
-       elf32_i960_relocate, "R_960_32", true,
-       0xffffffff, 0xffffffff, false),
-  HOWTO (R_960_IP24, 0, 2, 24, true, 0, complain_overflow_signed,
-       elf32_i960_relocate, "R_960_IP24 ", true,
-       0x00ffffff, 0x00ffffff, false),
+  HOWTO (R_960_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+       elf32_i960_relocate, "R_960_32", TRUE,
+       0xffffffff, 0xffffffff, FALSE),
+  HOWTO (R_960_IP24, 0, 2, 24, TRUE, 0, complain_overflow_signed,
+       elf32_i960_relocate, "R_960_IP24 ", TRUE,
+       0x00ffffff, 0x00ffffff, FALSE),
   EMPTY_HOWTO (4),
   EMPTY_HOWTO (5),
   EMPTY_HOWTO (6),
@@ -77,7 +77,7 @@ static void
 elf32_i960_info_to_howto (abfd, cache_ptr, dst)
      bfd               *abfd ATTRIBUTE_UNUSED;
      arelent           *cache_ptr ATTRIBUTE_UNUSED;
-     Elf32_Internal_Rela *dst ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *dst ATTRIBUTE_UNUSED;
 {
   abort ();
 }
@@ -86,7 +86,7 @@ static void
 elf32_i960_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   enum elf_i960_reloc_type type;
 
index 67da85c058a8bf82f3c14d9e16a9762500aa68fe..dd2bb97f61ff46f795cc10310708754fde6224b9 100644 (file)
@@ -34,25 +34,49 @@ struct misc
 };
 
 /* Prototypes.  */
-static reloc_howto_type *    ip2k_reloc_type_lookup               PARAMS ((bfd *, bfd_reloc_code_real_type));
-static void                  ip2k_info_to_howto_rela              PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
-static asection *            ip2k_elf_gc_mark_hook                PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean               ip2k_elf_gc_sweep_hook               PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *));
-static bfd_vma               symbol_value                         PARAMS ((bfd *, Elf_Internal_Shdr *, Elf32_Internal_Sym *, Elf_Internal_Rela *));
-static void                  adjust_all_relocations               PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, int, int));
-static boolean               ip2k_elf_relax_delete_bytes          PARAMS ((bfd *, asection *, bfd_vma, int));
-static boolean               ip2k_elf_relax_add_bytes             PARAMS ((bfd *, asection *, bfd_vma, const bfd_byte *, int, int));
-static boolean               add_page_insn                        PARAMS ((bfd *, asection *, Elf_Internal_Rela *, struct misc *));
-static boolean               ip2k_elf_relax_section               PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
-static boolean               relax_switch_dispatch_tables_pass1   PARAMS ((bfd *, asection *, bfd_vma, struct misc *));
-static boolean               unrelax_dispatch_table_entries       PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, boolean *, struct misc *));
-static boolean               unrelax_switch_dispatch_tables_passN PARAMS ((bfd *, asection *, bfd_vma, boolean *, struct misc *));
-static boolean               is_switch_128_dispatch_table_p       PARAMS ((bfd *, bfd_vma, boolean, struct misc *));
-static boolean               is_switch_256_dispatch_table_p       PARAMS ((bfd *, bfd_vma, boolean, struct misc *));
-static boolean               ip2k_elf_relax_section_pass1         PARAMS ((bfd *, asection *, boolean *, struct misc *));
-static boolean               ip2k_elf_relax_section_passN         PARAMS ((bfd *, asection *, boolean *, boolean *, struct misc *));
-static bfd_reloc_status_type ip2k_final_link_relocate             PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma));
-static boolean               ip2k_elf_relocate_section            PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
+static reloc_howto_type *ip2k_reloc_type_lookup
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
+static void ip2k_info_to_howto_rela
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static asection * ip2k_elf_gc_mark_hook
+  PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
+          struct elf_link_hash_entry *, Elf_Internal_Sym *));
+static bfd_boolean ip2k_elf_gc_sweep_hook
+  PARAMS ((bfd *, struct bfd_link_info *, asection *,
+          const Elf_Internal_Rela *));
+static bfd_vma symbol_value
+  PARAMS ((bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *,
+          Elf_Internal_Rela *));
+static void adjust_all_relocations
+  PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, int, int));
+static bfd_boolean ip2k_elf_relax_delete_bytes
+  PARAMS ((bfd *, asection *, bfd_vma, int));
+static bfd_boolean ip2k_elf_relax_add_bytes
+  PARAMS ((bfd *, asection *, bfd_vma, const bfd_byte *, int, int));
+static bfd_boolean add_page_insn
+  PARAMS ((bfd *, asection *, Elf_Internal_Rela *, struct misc *));
+static bfd_boolean ip2k_elf_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean relax_switch_dispatch_tables_pass1
+  PARAMS ((bfd *, asection *, bfd_vma, struct misc *));
+static bfd_boolean unrelax_dispatch_table_entries
+  PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, bfd_boolean *, struct misc *));
+static bfd_boolean unrelax_switch_dispatch_tables_passN
+  PARAMS ((bfd *, asection *, bfd_vma, bfd_boolean *, struct misc *));
+static bfd_boolean is_switch_128_dispatch_table_p
+  PARAMS ((bfd *, bfd_vma, bfd_boolean, struct misc *));
+static bfd_boolean is_switch_256_dispatch_table_p
+  PARAMS ((bfd *, bfd_vma, bfd_boolean, struct misc *));
+static bfd_boolean ip2k_elf_relax_section_pass1
+  PARAMS ((bfd *, asection *, bfd_boolean *, struct misc *));
+static bfd_boolean ip2k_elf_relax_section_passN
+  PARAMS ((bfd *, asection *, bfd_boolean *, bfd_boolean *, struct misc *));
+static bfd_reloc_status_type ip2k_final_link_relocate
+  PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
+          Elf_Internal_Rela *, bfd_vma));
+static bfd_boolean ip2k_elf_relocate_section
+  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+          Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 
 #define IS_OPCODE(CODE0,CODE1,OPCODE) \
   ((CODE0) == (OPCODE)[0] && (CODE1) == (OPCODE)[1])
@@ -158,40 +182,40 @@ static reloc_howto_type ip2k_elf_howto_table [] =
           complain_overflow_dont,/* complain_on_overflow */ \
           bfd_elf_generic_reloc,/* special_function */ \
           name,                 /* name */ \
-          false,                /* partial_inplace */ \
+          FALSE,                /* partial_inplace */ \
           sm,                   /* src_mask */ \
           dm,                   /* dst_mask */ \
           pr)                   /* pcrel_offset */
 
   /* This reloc does nothing. */
-  IP2K_HOWTO (R_IP2K_NONE, 0,2,32, false, 0, "R_IP2K_NONE", 0, 0), 
+  IP2K_HOWTO (R_IP2K_NONE, 0,2,32, FALSE, 0, "R_IP2K_NONE", 0, 0),
   /* A 16 bit absolute relocation.  */
-  IP2K_HOWTO (R_IP2K_16, 0,1,16, false, 0, "R_IP2K_16", 0, 0xffff),
+  IP2K_HOWTO (R_IP2K_16, 0,1,16, FALSE, 0, "R_IP2K_16", 0, 0xffff),
   /* A 32 bit absolute relocation.  */
-  IP2K_HOWTO (R_IP2K_32, 0,2,32, false, 0, "R_IP2K_32", 0, 0xffffffff),
+  IP2K_HOWTO (R_IP2K_32, 0,2,32, FALSE, 0, "R_IP2K_32", 0, 0xffffffff),
   /* A 8-bit data relocation for the FR9 field.  Ninth bit is computed specially.  */
-  IP2K_HOWTO (R_IP2K_FR9, 0,1,9, false, 0, "R_IP2K_FR9", 0, 0x00ff),
+  IP2K_HOWTO (R_IP2K_FR9, 0,1,9, FALSE, 0, "R_IP2K_FR9", 0, 0x00ff),
   /* A 4-bit data relocation.  */
-  IP2K_HOWTO (R_IP2K_BANK, 8,1,4, false, 0, "R_IP2K_BANK", 0, 0x000f),
+  IP2K_HOWTO (R_IP2K_BANK, 8,1,4, FALSE, 0, "R_IP2K_BANK", 0, 0x000f),
   /* A 13-bit insn relocation - word address => right-shift 1 bit extra.  */
-  IP2K_HOWTO (R_IP2K_ADDR16CJP, 1,1,13, false, 0, "R_IP2K_ADDR16CJP", 0, 0x1fff),
+  IP2K_HOWTO (R_IP2K_ADDR16CJP, 1,1,13, FALSE, 0, "R_IP2K_ADDR16CJP", 0, 0x1fff),
   /* A 3-bit insn relocation - word address => right-shift 1 bit extra.  */
-  IP2K_HOWTO (R_IP2K_PAGE3, 14,1,3, false, 0, "R_IP2K_PAGE3", 0, 0x0007),
+  IP2K_HOWTO (R_IP2K_PAGE3, 14,1,3, FALSE, 0, "R_IP2K_PAGE3", 0, 0x0007),
   /* Two 8-bit data relocations.  */
-  IP2K_HOWTO (R_IP2K_LO8DATA, 0,1,8, false, 0, "R_IP2K_LO8DATA", 0, 0x00ff),
-  IP2K_HOWTO (R_IP2K_HI8DATA, 8,1,8, false, 0, "R_IP2K_HI8DATA", 0, 0x00ff),
+  IP2K_HOWTO (R_IP2K_LO8DATA, 0,1,8, FALSE, 0, "R_IP2K_LO8DATA", 0, 0x00ff),
+  IP2K_HOWTO (R_IP2K_HI8DATA, 8,1,8, FALSE, 0, "R_IP2K_HI8DATA", 0, 0x00ff),
   /* Two 8-bit insn relocations.  word address => right-shift 1 bit extra.  */
-  IP2K_HOWTO (R_IP2K_LO8INSN, 1,1,8, false, 0, "R_IP2K_LO8INSN", 0, 0x00ff),
-  IP2K_HOWTO (R_IP2K_HI8INSN, 9,1,8, false, 0, "R_IP2K_HI8INSN", 0, 0x00ff),
+  IP2K_HOWTO (R_IP2K_LO8INSN, 1,1,8, FALSE, 0, "R_IP2K_LO8INSN", 0, 0x00ff),
+  IP2K_HOWTO (R_IP2K_HI8INSN, 9,1,8, FALSE, 0, "R_IP2K_HI8INSN", 0, 0x00ff),
 
   /* Special 1 bit relocation for SKIP instructions.  */
-  IP2K_HOWTO (R_IP2K_PC_SKIP, 1,1,1, false, 12, "R_IP2K_PC_SKIP", 0xfffe, 0x1000),
+  IP2K_HOWTO (R_IP2K_PC_SKIP, 1,1,1, FALSE, 12, "R_IP2K_PC_SKIP", 0xfffe, 0x1000),
   /* 16 bit word address.  */
-  IP2K_HOWTO (R_IP2K_TEXT, 1,1,16, false, 0, "R_IP2K_TEXT", 0, 0xffff),
+  IP2K_HOWTO (R_IP2K_TEXT, 1,1,16, FALSE, 0, "R_IP2K_TEXT", 0, 0xffff),
   /* A 7-bit offset relocation for the FR9 field.  Eigth and ninth bit comes from insn.  */
-  IP2K_HOWTO (R_IP2K_FR_OFFSET, 0,1,9, false, 0, "R_IP2K_FR_OFFSET", 0x180, 0x007f),
+  IP2K_HOWTO (R_IP2K_FR_OFFSET, 0,1,9, FALSE, 0, "R_IP2K_FR_OFFSET", 0x180, 0x007f),
   /* Bits 23:16 of an address.  */
-  IP2K_HOWTO (R_IP2K_EX8DATA, 16,1,8, false, 0, "R_IP2K_EX8DATA", 0, 0x00ff),
+  IP2K_HOWTO (R_IP2K_EX8DATA, 16,1,8, FALSE, 0, "R_IP2K_EX8DATA", 0, 0x00ff),
 };
 
 
@@ -256,8 +280,8 @@ static bfd_vma
 symbol_value (abfd, symtab_hdr, isymbuf, irel)
      bfd *abfd;
      Elf_Internal_Shdr *symtab_hdr;
-     Elf32_Internal_Sym *isymbuf;
-     Elf_Internal_Rela *irel;   
+     Elf_Internal_Sym *isymbuf;
+     Elf_Internal_Rela *irel;
 {
   if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
     {
@@ -296,7 +320,7 @@ symbol_value (abfd, symtab_hdr, isymbuf, irel)
 /* Determine if the instruction sequence matches that for
    the prologue of a switch dispatch table with fewer than
    128 entries.
+
           sc
           page    $nnn0
           jmp     $nnn0
@@ -310,7 +334,7 @@ symbol_value (abfd, symtab_hdr, isymbuf, irel)
           ...
           page    $nnnN
           jmp     $nnnN
+
   After relaxation.
           sc
           page    $nnn0
@@ -322,24 +346,24 @@ symbol_value (abfd, symtab_hdr, isymbuf, irel)
           ...
           jmp     $nnnN  */
 
-static boolean 
+static bfd_boolean
 is_switch_128_dispatch_table_p (abfd, addr, relaxed, misc)
-     bfd *abfd ATTRIBUTE_UNUSED;                
+     bfd *abfd ATTRIBUTE_UNUSED;
      bfd_vma addr;
-     boolean relaxed;
+     bfd_boolean relaxed;
      struct misc *misc;
 {
   bfd_byte code0, code1;
 
   if (addr < (3 * 2))
-    return false;
+    return FALSE;
 
   code0 = bfd_get_8 (abfd, misc->contents + addr - 2);
   code1 = bfd_get_8 (abfd, misc->contents + addr - 1);
 
   /* Is it ADD PCL,W */
   if (! IS_ADD_PCL_W_OPCODE (code0, code1))
-    return false;
+    return FALSE;
 
   code0 = bfd_get_8 (abfd, misc->contents + addr - 4);
   code1 = bfd_get_8 (abfd, misc->contents + addr - 3);
@@ -352,25 +376,25 @@ is_switch_128_dispatch_table_p (abfd, addr, relaxed, misc)
     {
       /* Is it ADD W,WREG  */
       if (! IS_ADD_W_WREG_OPCODE (code0, code1))
-       return false;
+       return FALSE;
 
       code0 = bfd_get_8 (abfd, misc->contents + addr - 6);
       code1 = bfd_get_8 (abfd, misc->contents + addr - 5);
 
       /* Is it JMP $nnnn  */
       if (! IS_JMP_OPCODE (code0, code1))
-        return false;
+        return FALSE;
     }
 
   /* It looks like we've found the prologue for
      a 1-127 entry switch dispatch table.  */
-  return true;
+  return TRUE;
 }
 
 /* Determine if the instruction sequence matches that for
    the prologue switch dispatch table with fewer than
    256 entries but more than 127.
+
    Before relaxation.
           push    %lo8insn(label) ; Push address of table
           push    %hi8insn(label)
@@ -391,7 +415,7 @@ is_switch_128_dispatch_table_p (abfd, addr, relaxed, misc)
           ...
           page    $nnnN
           jmp     $nnnN
+
   After relaxation.
           push    %lo8insn(label) ; Push address of table
           push    %hi8insn(label)
@@ -407,38 +431,38 @@ is_switch_128_dispatch_table_p (abfd, addr, relaxed, misc)
           ...
           jmp     $nnnN  */
 
-static boolean 
+static bfd_boolean
 is_switch_256_dispatch_table_p (abfd, addr, relaxed,  misc)
      bfd *abfd ATTRIBUTE_UNUSED;
      bfd_vma addr;
-     boolean relaxed;
+     bfd_boolean relaxed;
      struct misc *misc;
 {
   bfd_byte code0, code1;
 
   if (addr < (8 * 2))
-    return false;
+    return FALSE;
 
   code0 = bfd_get_8 (abfd, misc->contents + addr - 2);
   code1 = bfd_get_8 (abfd, misc->contents + addr - 1);
 
   /* Is it INC 1(SP).  */
   if (! IS_INC_1_SP_OPCODE (code0, code1))
-    return false;
+    return FALSE;
 
   code0 = bfd_get_8 (abfd, misc->contents + addr - 4);
   code1 = bfd_get_8 (abfd, misc->contents + addr - 3);
 
   /* Is it SNC.  */
   if (! IS_SNC_OPCODE (code0, code1))
-    return false;
+    return FALSE;
 
   code0 = bfd_get_8 (abfd, misc->contents + addr - 6);
   code1 = bfd_get_8 (abfd, misc->contents + addr - 5);
 
   /* Is it ADD 2(SP),W.  */
   if (! IS_ADD_2_SP_W_OPCODE (code0, code1))
-    return false;
+    return FALSE;
 
   code0 = bfd_get_8 (abfd, misc->contents + addr - 8);
   code1 = bfd_get_8 (abfd, misc->contents + addr - 7);
@@ -451,29 +475,29 @@ is_switch_256_dispatch_table_p (abfd, addr, relaxed,  misc)
     {
       /* Is it INC 1(SP).  */
       if (! IS_INC_1_SP_OPCODE (code0, code1))
-       return false;
+       return FALSE;
 
       code0 = bfd_get_8 (abfd, misc->contents + addr - 10);
       code1 = bfd_get_8 (abfd, misc->contents + addr - 9);
+
       /* Is it SNC.  */
       if (! IS_SNC_OPCODE (code0, code1))
-        return false;
+        return FALSE;
 
       code0 = bfd_get_8 (abfd, misc->contents + addr - 12);
       code1 = bfd_get_8 (abfd, misc->contents + addr - 11);
 
       /* Is it ADD W,WREG.  */
       if (! IS_ADD_W_WREG_OPCODE (code0, code1))
-       return false;
+       return FALSE;
     }
 
   /* It looks like we've found the prologue for
      a 128-255 entry switch dispatch table.  */
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 relax_switch_dispatch_tables_pass1 (abfd, sec, addr, misc)
      bfd *abfd;
      asection *sec;
@@ -486,32 +510,32 @@ relax_switch_dispatch_tables_pass1 (abfd, sec, addr, misc)
       bfd_byte code1 = bfd_get_8 (abfd, misc->contents + addr + 3);
 
       if (IS_JMP_OPCODE (code0, code1)
-         && is_switch_128_dispatch_table_p (abfd, addr, false, misc))
+         && is_switch_128_dispatch_table_p (abfd, addr, FALSE, misc))
        {
          /* Delete ADD W,WREG from prologue.  */
          ip2k_elf_relax_delete_bytes (abfd, sec, addr - (2 * 2), (1 * 2));
-         return true;
+         return TRUE;
        }
 
       if (IS_JMP_OPCODE (code0, code1)
-         && is_switch_256_dispatch_table_p (abfd, addr, false, misc))
+         && is_switch_256_dispatch_table_p (abfd, addr, FALSE, misc))
        {
          /* Delete ADD W,WREG; SNC ; INC 1(SP) from prologue.  */
          ip2k_elf_relax_delete_bytes (abfd, sec, addr - 6 * 2, 3 * 2);
-         return true;
+         return TRUE;
        }
     }
-  return true;
+
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 unrelax_dispatch_table_entries (abfd, sec, first, last, changed, misc)
      bfd *abfd;
      asection *sec;
      bfd_vma first;
      bfd_vma last;
-     boolean *changed;
+     bfd_boolean *changed;
      struct misc *misc;
 {
   bfd_vma addr = first;
@@ -543,9 +567,9 @@ unrelax_dispatch_table_entries (abfd, sec, first, last, changed, misc)
                     {
                       if (! add_page_insn (abfd, sec, irel, misc))
                        /* Something has gone wrong.  */
-                        return false;
+                        return FALSE;
 
-                     *changed = true;
+                     *changed = TRUE;
                      break;
                     }
                }
@@ -553,7 +577,7 @@ unrelax_dispatch_table_entries (abfd, sec, first, last, changed, misc)
            /* If we fell off the end something has gone wrong.  */
            if (irel >= irelend)
              /* Something has gone wrong.  */
-             return false;
+             return FALSE;
 
            /* Skip the PAGE and JMP isns.  */
            addr += 4;
@@ -562,18 +586,18 @@ unrelax_dispatch_table_entries (abfd, sec, first, last, changed, misc)
           }
        else
         /* Something has gone wrong.  */
-        return false;
+        return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean 
+static bfd_boolean
 unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
      bfd *abfd;
      asection *sec;
      bfd_vma addr;
-     boolean *changed;
+     bfd_boolean *changed;
      struct misc *misc;
 {
   if (2 <= addr && (addr + 3) < sec->_cooked_size)
@@ -594,11 +618,11 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
        }
 
       if (IS_JMP_OPCODE (code0, code1)
-          && is_switch_128_dispatch_table_p (abfd, addr, true, misc))
+          && is_switch_128_dispatch_table_p (abfd, addr, TRUE, misc))
         {
          bfd_vma first = addr;
          bfd_vma last  = first;
-         boolean relaxed = true;
+         bfd_boolean relaxed = TRUE;
 
          /* On the final pass we must check if *all* entries in the
             dispatch table are relaxed. If *any* are not relaxed
@@ -612,7 +636,7 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
                code1 = bfd_get_8 (abfd, misc->contents + last + 1);
 
                if (IS_PAGE_OPCODE (code0, code1))
-                 relaxed = false;
+                 relaxed = FALSE;
                else if (! IS_JMP_OPCODE (code0, code1))
                    break;
 
@@ -625,7 +649,7 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
             cause the link to be aborted.  */
          if (last >= sec->_cooked_size)
            /* Something has gone wrong.  */
-           return false;
+           return FALSE;
 
          /* If we found an unrelaxed entry then
             unlrelax all the switch table entries.  */
@@ -634,12 +658,12 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
              if (! unrelax_dispatch_table_entries (abfd, sec, first,
                                                    last, changed, misc))
                /* Something has gone wrong.  */
-               return false;
+               return FALSE;
 
-             if (! is_switch_128_dispatch_table_p (abfd, addr, true, misc))
+             if (! is_switch_128_dispatch_table_p (abfd, addr, TRUE, misc))
                /* Something has gone wrong.  */
-               return false;
-               
+               return FALSE;
+
               /* Unrelax the prologue.  */
 
               /* Insert an ADD W,WREG insnstruction.  */
@@ -649,18 +673,18 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
                                              sizeof (add_w_wreg_opcode),
                                              0))
                /* Something has gone wrong.  */
-                return false;
+                return FALSE;
            }
 
-          return true;
+          return TRUE;
         }
 
       if (IS_JMP_OPCODE (code0, code1)
-          && is_switch_256_dispatch_table_p (abfd, addr, true, misc))
+          && is_switch_256_dispatch_table_p (abfd, addr, TRUE, misc))
         {
           bfd_vma first = addr;
           bfd_vma last;
-          boolean relaxed = true;
+          bfd_boolean relaxed = TRUE;
 
           /* On the final pass we must check if *all* entries in the
              dispatch table are relaxed. If *any* are not relaxed
@@ -682,10 +706,10 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
 
           if (! IS_JMP_OPCODE (code0, code1))
            /* Something has gone wrong.  */
-           return false;
+           return FALSE;
 
           first += 2;
-         last = first; 
+         last = first;
 
           /* Find the last entry in the dispach table.  */
           while (last < sec->_cooked_size)
@@ -694,7 +718,7 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
                 code1 = bfd_get_8 (abfd, misc->contents + last + 1);
 
                 if (IS_PAGE_OPCODE (code0, code1))
-                  relaxed = false;
+                  relaxed = FALSE;
                 else if (! IS_JMP_OPCODE (code0, code1))
                     break;
 
@@ -706,7 +730,7 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
              reached the end of the section then fail the
             relaxation.  */
           if (last >= sec->_cooked_size)
-            return false;
+            return FALSE;
 
           /* If we found an unrelaxed entry then
               unrelax all the switch table entries.  */
@@ -714,10 +738,10 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
            {
              if (! unrelax_dispatch_table_entries (abfd, sec, first,
                                                    last, changed, misc))
-               return false;
+               return FALSE;
 
-              if (! is_switch_256_dispatch_table_p (abfd, addr, true, misc))
-               return false;
+              if (! is_switch_256_dispatch_table_p (abfd, addr, TRUE, misc))
+               return FALSE;
 
               /* Unrelax the prologue.  */
 
@@ -727,7 +751,7 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
                                               inc_1_sp_opcode,
                                               sizeof (inc_1_sp_opcode),
                                              0))
-               return false;
+               return FALSE;
 
               /* Insert an SNC insnstruction.  */
               if (! ip2k_elf_relax_add_bytes (abfd, sec,
@@ -735,7 +759,7 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
                                              snc_opcode,
                                              sizeof (snc_opcode),
                                              0))
-               return false;
+               return FALSE;
 
              /* Insert an ADD W,WREG insnstruction.  */
               if (! ip2k_elf_relax_add_bytes (abfd, sec,
@@ -743,24 +767,24 @@ unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc)
                                             add_w_wreg_opcode,
                                             sizeof (add_w_wreg_opcode),
                                             0))
-               return false;
+               return FALSE;
            }
 
-          return true;
+          return TRUE;
         }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This function handles relaxing for the ip2k.  */
 
-static boolean
+static bfd_boolean
 ip2k_elf_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
@@ -768,21 +792,21 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
   Elf_Internal_Sym *isymbuf = NULL;
   static asection * first_section = NULL;
   static asection * last_section = NULL;
-  static boolean changed = false;
-  static boolean final_pass = false;
+  static bfd_boolean changed = FALSE;
+  static bfd_boolean final_pass = FALSE;
   static unsigned int pass = 0;
   struct misc misc;
   asection *stab;
 
   /* Assume nothing changes.  */
-  *again = false;
+  *again = FALSE;
 
   if (first_section == NULL)
     first_section = sec;
 
   if (first_section == sec)
     {
-      changed = false;
+      changed = FALSE;
       pass++;
     }
 
@@ -791,7 +815,7 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
      Note if everything is working correctly then the
      relaxation should converge reasonably quickly.  */
   if (pass == 4096)
-    return false;
+    return FALSE;
 
   /* We don't have to do anything for a relocatable link,
      if this section does not have relocs, or if this is
@@ -800,7 +824,7 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
-    return true;
+    return TRUE;
 
   if (pass == 1)
     last_section = sec;
@@ -849,7 +873,7 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
            goto error_return;
        }
     }
-      
+
   /* Read this BFD's symbols cached copy if it exists.  */
   if (isymbuf == NULL && symtab_hdr->sh_info != 0)
     {
@@ -866,7 +890,7 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
   misc.isymbuf = isymbuf;
   misc.irelbase = internal_relocs;
   misc.contents = contents;
-  
+
   /* This is where all the relaxation actually get done.  */
 
   if (pass == 1)
@@ -883,7 +907,7 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
     }
   else
     {
-      /* Add page instructions back in as needed but we ignore 
+      /* Add page instructions back in as needed but we ignore
         the issue with sections (functions) crossing a page
         boundary until we have converged to an approximate
         solution (i.e. nothing has changed on this relaxation
@@ -911,18 +935,18 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
          pass restart the final relaxaton pass.  */
       if (! changed && last_section == sec)
        {
-         /* If this was the final pass and we didn't reset 
+         /* If this was the final pass and we didn't reset
             the final pass flag then we are done, otherwise
             do another final pass.  */
          if (! final_pass)
            {
-             final_pass = true;
-             *again = true;
+             final_pass = TRUE;
+             *again = TRUE;
            }
        }
     }
 
-  /* Perform some house keeping after relaxing the section.  */  
+  /* Perform some house keeping after relaxing the section.  */
 
   if (isymbuf != NULL
       && symtab_hdr->contents != (unsigned char *) isymbuf)
@@ -949,7 +973,7 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (isymbuf != NULL
@@ -961,16 +985,16 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
   if (internal_relocs != NULL
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
-  return false;
+  return FALSE;
 }
 
 /* This function handles relaxation during the first pass.  */
 
-static boolean
+static bfd_boolean
 ip2k_elf_relax_section_pass1 (abfd, sec, again, misc)
      bfd *abfd;
      asection *sec;
-     boolean *again;
+     bfd_boolean *again;
      struct misc * misc;
 {
   Elf_Internal_Rela *irelend = misc->irelbase + sec->reloc_count;
@@ -997,8 +1021,8 @@ ip2k_elf_relax_section_pass1 (abfd, sec, again, misc)
            /* Handle switch dispatch tables/prologues.  */
            if (!  relax_switch_dispatch_tables_pass1 (abfd, sec,
                                                       irel->r_offset, misc))
-             return false;
-           
+             return FALSE;
+
            /* Fix the relocation's type.  */
            irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
                                         R_IP2K_NONE);
@@ -1007,31 +1031,31 @@ ip2k_elf_relax_section_pass1 (abfd, sec, again, misc)
            if (! ip2k_elf_relax_delete_bytes (abfd, sec,
                                               irel->r_offset,
                                               sizeof (page_opcode)))
-             return false;
+             return FALSE;
 
            /* That will change things, so, we should relax again.
               Note that this is not required, and it may be slow.  */
-           *again = true;
+           *again = TRUE;
          }
       }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This function handles relaxation for 2nd and subsequent passes.  */
 
-static boolean
+static bfd_boolean
 ip2k_elf_relax_section_passN (abfd, sec, again, final_pass, misc)
      bfd *abfd;
      asection *sec;
-     boolean *again;
-     boolean *final_pass;
+     bfd_boolean *again;
+     bfd_boolean *final_pass;
      struct misc * misc;
 {
   Elf_Internal_Rela *irelend = misc->irelbase + sec->reloc_count;
   Elf_Internal_Rela *irel;
-  boolean add_all;
+  bfd_boolean add_all;
 
   /* If we are on the final relaxation pass and the section crosses
      then set a flag to indicate that *all* page instructions need
@@ -1055,12 +1079,12 @@ ip2k_elf_relax_section_passN (abfd, sec, again, final_pass, misc)
            {
              sec->userdata = NULL;
              if (! ip2k_elf_relax_section_pass1 (abfd, sec, again, misc))
-               return false;
+               return FALSE;
            }
        }
     }
   else
-    add_all = false;
+    add_all = FALSE;
 
   /* Walk thru the section looking for call/jmp
       instructions which need a page instruction.  */
@@ -1100,10 +1124,10 @@ ip2k_elf_relax_section_passN (abfd, sec, again, final_pass, misc)
                if (! unrelax_switch_dispatch_tables_passN (abfd, sec,
                                                            irel->r_offset,
                                                             again, misc))
-                 return false;
+                 return FALSE;
 
                 if (*again)
-                 add_all = false;
+                 add_all = FALSE;
              }
 
            code0 = bfd_get_8 (abfd, misc->contents + irel->r_offset - 2);
@@ -1117,21 +1141,21 @@ ip2k_elf_relax_section_passN (abfd, sec, again, final_pass, misc)
                if (add_all || PAGENO (addr) != PAGENO (value))
                  {
                    if (! add_page_insn (abfd, sec, irel, misc))
-                     return false;
+                     return FALSE;
 
                    /* That will have changed things, so,  we must relax again.  */
-                   *again = true;
+                   *again = TRUE;
                  }
               }
           }
         }
     }
-      
+
   /* If anything changed reset the final pass flag.  */
   if (*again)
-    *final_pass = false;
+    *final_pass = FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Parts of a Stabs entry.  */
@@ -1162,9 +1186,9 @@ adjust_all_relocations (abfd, sec, addr, endaddr, count, noadj)
   struct elf_link_hash_entry **sym_hashes;
   struct elf_link_hash_entry **end_hashes;
   unsigned int symcount;
-    
+
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  isymbuf = (Elf32_Internal_Sym *) symtab_hdr->contents;
+  isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
 
   shndx = _bfd_elf_section_from_bfd_section (abfd, sec);
 
@@ -1245,7 +1269,7 @@ adjust_all_relocations (abfd, sec, addr, endaddr, count, noadj)
   return;
 }
 
-static boolean
+static bfd_boolean
 add_page_insn (abfd, sec, irel, misc)
       bfd *abfd;
       asection *sec;
@@ -1262,17 +1286,17 @@ add_page_insn (abfd, sec, irel, misc)
                                   page_opcode,
                                   sizeof (page_opcode),
                                  sizeof (page_opcode)))
-    return false;
+    return FALSE;
   else
     {
-       Elf32_Internal_Rela * jrel = irel - 1;
+       Elf_Internal_Rela * jrel = irel - 1;
 
        /* Add relocation for PAGE insn added.  */
        if (ELF32_R_TYPE (jrel->r_info) != R_IP2K_NONE)
         {
           bfd_byte code0, code1;
           char *msg = NULL;
-          
+
           /* Get the opcode.  */
           code0 = bfd_get_8 (abfd, misc->contents + irel->r_offset);
           code1 = bfd_get_8 (abfd, misc->contents + irel->r_offset + 1);
@@ -1289,7 +1313,7 @@ add_page_insn (abfd, sec, irel, misc)
               fprintf (stderr, msg, sec->owner->filename);
             }
 
-          return false;
+          return FALSE;
         }
 
        jrel->r_addend = irel->r_addend;
@@ -1298,12 +1322,12 @@ add_page_insn (abfd, sec, irel, misc)
                                     R_IP2K_PAGE3);
      }
 
-   return true;
+   return TRUE;
 }
 
 /* Insert bytes into a section while relaxing.  */
 
-static boolean
+static bfd_boolean
 ip2k_elf_relax_add_bytes (abfd, sec, addr, bytes, count, noadj)
      bfd *abfd;
      asection *sec;
@@ -1320,16 +1344,16 @@ ip2k_elf_relax_add_bytes (abfd, sec, addr, bytes, count, noadj)
 
   /* Insert the bytes into the section.  */
   memcpy  (contents + addr, bytes, count);
-  
+
   sec->_cooked_size += count;
 
   adjust_all_relocations (abfd, sec, addr, endaddr, count, noadj);
-  return true;
+  return TRUE;
 }
 
 /* Delete some bytes from a section while relaxing.  */
 
-static boolean
+static bfd_boolean
 ip2k_elf_relax_delete_bytes (abfd, sec, addr, count)
      bfd *abfd;
      asection *sec;
@@ -1346,7 +1370,7 @@ ip2k_elf_relax_delete_bytes (abfd, sec, addr, count)
   sec->_cooked_size -= count;
 
   adjust_all_relocations (abfd, sec, addr + count, endaddr, -count, 0);
-  return true;
+  return TRUE;
 }
 
 /* -------------------------------------------------------------------- */
@@ -1360,7 +1384,7 @@ static void
 ip2k_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd * abfd ATTRIBUTE_UNUSED;
      arelent * cache_ptr;
-     Elf32_Internal_Rela * dst;
+     Elf_Internal_Rela * dst;
 {
   unsigned int r_type;
 
@@ -1467,25 +1491,25 @@ ip2k_final_link_relocate (howto, input_bfd, input_section, contents, rel,
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
-     bfd *                   output_bfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *  info;
-     bfd *                   input_bfd;
-     asection *              input_section;
-     bfd_byte *              contents;
-     Elf_Internal_Rela *     relocs;
-     Elf_Internal_Sym *      local_syms;
-     asection **             local_sections;
+     bfd *output_bfd ATTRIBUTE_UNUSED;
+     struct bfd_link_info *info;
+     bfd *input_bfd;
+     asection *input_section;
+     bfd_byte *contents;
+     Elf_Internal_Rela *relocs;
+     Elf_Internal_Sym *local_syms;
+     asection **local_sections;
 {
-  Elf_Internal_Shdr *           symtab_hdr;
-  struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Shdr *symtab_hdr;
+  struct elf_link_hash_entry **sym_hashes;
+  Elf_Internal_Rela *rel;
+  Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -1502,7 +1526,7 @@ ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       bfd_reloc_status_type        r;
       const char *                 name = NULL;
       int                          r_type;
-      
+
       /* This is a final link.  */
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -1510,13 +1534,13 @@ ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       h      = NULL;
       sym    = NULL;
       sec    = NULL;
-      
+
       if (r_symndx < symtab_hdr->sh_info)
        {
          sym = local_syms + r_symndx;
          sec = local_sections [r_symndx];
          relocation = BASEADDR (sec) + sym->st_value;
-         
+
          name = bfd_elf_string_from_elf_section
            (input_bfd, symtab_hdr->sh_link, sym->st_name);
          name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
@@ -1524,13 +1548,13 @@ ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       else
        {
          h = sym_hashes [r_symndx - symtab_hdr->sh_info];
-         
+
          while (h->root.type == bfd_link_hash_indirect
                 || h->root.type == bfd_link_hash_warning)
            h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
          name = h->root.root.string;
-         
+
          if (h->root.type == bfd_link_hash_defined
              || h->root.type == bfd_link_hash_defweak)
            {
@@ -1547,7 +1571,7 @@ ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                     (info, h->root.root.string, input_bfd,
                      input_section, rel->r_offset,
                     (! info->shared || info->no_undefined))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
@@ -1567,12 +1591,12 @@ ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                (info, name, howto->name, (bfd_vma) 0,
                 input_bfd, input_section, rel->r_offset);
              break;
-             
+
            case bfd_reloc_undefined:
              r = info->callbacks->undefined_symbol
-               (info, name, input_bfd, input_section, rel->r_offset, true);
+               (info, name, input_bfd, input_section, rel->r_offset, TRUE);
              break;
-             
+
            case bfd_reloc_outofrange:
              msg = _("internal error: out of range error");
              break;
@@ -1598,11 +1622,11 @@ ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              (info, msg, name, input_bfd, input_section, rel->r_offset);
 
          if (! r)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 static asection *
@@ -1617,7 +1641,7 @@ ip2k_elf_gc_mark_hook (sec, info, rel, h, sym)
     {
       switch (ELF32_R_TYPE (rel->r_info))
       {
-#if 0 
+#if 0
       case R_IP2K_GNU_VTINHERIT:
       case R_IP2K_GNU_VTENTRY:
         break;
@@ -1651,7 +1675,7 @@ ip2k_elf_gc_mark_hook (sec, info, rel, h, sym)
   return NULL;
 }
 
-static boolean
+static bfd_boolean
 ip2k_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1659,7 +1683,7 @@ ip2k_elf_gc_sweep_hook (abfd, info, sec, relocs)
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   /* we don't use got and plt entries for ip2k */
-  return true;
+  return TRUE;
 }
 
 
index 7a7d500c8118d31b386cc0117fe1c7b67829f437..b53f50a89afadb0e012d7e1c6550edcc561da287 100644 (file)
@@ -43,37 +43,37 @@ static bfd_reloc_status_type m32r_elf_sda16_reloc
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void m32r_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
-boolean _bfd_m32r_elf_section_from_bfd_section
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+bfd_boolean _bfd_m32r_elf_section_from_bfd_section
   PARAMS ((bfd *, asection *, int *));
 void _bfd_m32r_elf_symbol_processing
   PARAMS ((bfd *, asymbol *));
-static boolean m32r_elf_add_symbol_hook
+static bfd_boolean m32r_elf_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
-static boolean m32r_elf_relocate_section
+static bfd_boolean m32r_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 #if 0 /* not yet */
-static boolean m32r_elf_relax_delete_bytes
+static bfd_boolean m32r_elf_relax_delete_bytes
   PARAMS ((bfd *, asection *, bfd_vma, int));
 #endif
 static bfd_reloc_status_type m32r_elf_final_sda_base
   PARAMS ((bfd *, struct bfd_link_info *, const char **, bfd_vma *));
-static boolean m32r_elf_object_p
+static bfd_boolean m32r_elf_object_p
   PARAMS ((bfd *));
 static void m32r_elf_final_write_processing
-  PARAMS ((bfd *, boolean));
-static boolean m32r_elf_set_private_flags
+  PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean m32r_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean m32r_elf_merge_private_bfd_data
+static bfd_boolean m32r_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
-static boolean m32r_elf_print_private_bfd_data
+static bfd_boolean m32r_elf_print_private_bfd_data
   PARAMS ((bfd *, PTR));
-static boolean m32r_elf_gc_sweep_hook
+static bfd_boolean m32r_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean m32r_elf_check_relocs
+static bfd_boolean m32r_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
@@ -101,60 +101,60 @@ static reloc_howto_type m32r_elf_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M32R_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit absolute relocation.  */
   HOWTO (R_M32R_16,            /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         m32r_elf_generic_reloc,/* special_function */
         "R_M32R_16",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  */
   HOWTO (R_M32R_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         m32r_elf_generic_reloc,/* special_function */
         "R_M32R_32",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 24 bit address.  */
   HOWTO (R_M32R_24,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         24,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         m32r_elf_generic_reloc,/* special_function */
         "R_M32R_24",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffff,              /* src_mask */
         0xffffff,              /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An PC Relative 10-bit relocation, shifted by 2.
      This reloc is complicated because relocations are relative to pc & -4.
@@ -168,30 +168,30 @@ static reloc_howto_type m32r_elf_howto_table[] =
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         10,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         m32r_elf_10_pcrel_reloc, /* special_function */
         "R_M32R_10_PCREL",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 18 bit relocation, right shifted by 2.  */
   HOWTO (R_M32R_18_PCREL,      /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M32R_18_PCREL",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 26 bit relocation, right shifted by 2.  */
   /* ??? It's not clear whether this should have partial_inplace set or not.
@@ -202,105 +202,105 @@ static reloc_howto_type m32r_elf_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M32R_26_PCREL",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffff,              /* src_mask */
         0xffffff,              /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* High 16 bits of address when lower 16 is or'd in.  */
   HOWTO (R_M32R_HI16_ULO,      /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         m32r_elf_hi16_reloc,   /* special_function */
         "R_M32R_HI16_ULO",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of address when lower 16 is added in.  */
   HOWTO (R_M32R_HI16_SLO,      /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         m32r_elf_hi16_reloc,   /* special_function */
         "R_M32R_HI16_SLO",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Lower 16 bits of address.  */
   HOWTO (R_M32R_LO16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         m32r_elf_lo16_reloc,   /* special_function */
         "R_M32R_LO16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Small data area 16 bits offset.  */
   HOWTO (R_M32R_SDA16,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         m32r_elf_sda16_reloc,  /* special_function */
         "R_M32R_SDA16",        /* name */
-        true,                  /* partial_inplace */  /* FIXME: correct? */
+        TRUE,                  /* partial_inplace */  /* FIXME: correct? */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_M32R_GNU_VTINHERIT, /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_M32R_GNU_VTINHERIT", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_M32R_GNU_VTENTRY,     /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_M32R_GNU_VTENTRY",   /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
 };
 \f
@@ -571,7 +571,7 @@ m32r_elf_lo16_reloc (input_bfd, reloc_entry, symbol, data,
 
   /* Now do the LO16 reloc in the usual way.
      ??? It would be nice to call bfd_elf_generic_reloc here,
-     but we have partial_inplace == TRUE.  bfd_elf_generic_reloc will
+     but we have partial_inplace set.  bfd_elf_generic_reloc will
      pass the handling back to bfd_install_relocation which will install
      a section relative addend which is wrong.  */
   return m32r_elf_generic_reloc (input_bfd, reloc_entry, symbol, data,
@@ -609,7 +609,7 @@ m32r_elf_generic_reloc (input_bfd, reloc_entry, symbol, data,
 
   /* Now do the reloc in the usual way.
      ??? It would be nice to call bfd_elf_generic_reloc here,
-     but we have partial_inplace == TRUE.  bfd_elf_generic_reloc will
+     but we have partial_inplace set.  bfd_elf_generic_reloc will
      pass the handling back to bfd_install_relocation which will install
      a section relative addend which is wrong.  */
 
@@ -756,7 +756,7 @@ static void
 m32r_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -768,7 +768,7 @@ m32r_info_to_howto_rel (abfd, cache_ptr, dst)
 /* Given a BFD section, try to locate the corresponding ELF section
    index.  */
 
-boolean
+bfd_boolean
 _bfd_m32r_elf_section_from_bfd_section (abfd, sec, retval)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec;
@@ -777,9 +777,9 @@ _bfd_m32r_elf_section_from_bfd_section (abfd, sec, retval)
   if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
     {
       *retval = SHN_M32R_SCOMMON;
-      return true;
+      return TRUE;
     }
-  return false;
+  return FALSE;
 }
 
 /* M32R ELF uses two common sections.  One is the usual one, and the other
@@ -830,7 +830,7 @@ _bfd_m32r_elf_symbol_processing (abfd, asym)
    We also keep watching for whether we need to create the sdata special
    linker sections.  */
 
-static boolean
+static bfd_boolean
 m32r_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -863,13 +863,13 @@ m32r_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
 
          s = bfd_make_section_anyway (abfd, ".sdata");
          if (s == NULL)
-           return false;
+           return FALSE;
          bfd_set_section_flags (abfd, s, flags);
          bfd_set_section_alignment (abfd, s, 2);
        }
 
       bh = bfd_link_hash_lookup (info->hash, "_SDA_BASE_",
-                                false, false, false);
+                                FALSE, FALSE, FALSE);
 
       if ((bh == NULL || bh->type == bfd_link_hash_undefined)
          && !(_bfd_generic_link_add_one_symbol (info,
@@ -879,10 +879,10 @@ m32r_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
                                                 s,
                                                 (bfd_vma) 32768,
                                                 (const char *) NULL,
-                                                false,
+                                                FALSE,
                                                 get_elf_backend_data (abfd)->collect,
                                                 &bh)))
-       return false;
+       return FALSE;
       h = (struct elf_link_hash_entry *) bh;
       h->type = STT_OBJECT;
     }
@@ -896,7 +896,7 @@ m32r_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       break;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We have to figure out the SDA_BASE value, so that we can adjust the
@@ -916,7 +916,7 @@ m32r_elf_final_sda_base (output_bfd, info, error_message, psb)
     {
       struct bfd_link_hash_entry *h;
 
-      h = bfd_link_hash_lookup (info->hash, "_SDA_BASE_", false, false, true);
+      h = bfd_link_hash_lookup (info->hash, "_SDA_BASE_", FALSE, FALSE, TRUE);
       if (h != (struct bfd_link_hash_entry *) NULL
          && h->type == bfd_link_hash_defined)
        elf_gp (output_bfd) = (h->u.def.value
@@ -968,7 +968,7 @@ m32r_elf_final_sda_base (output_bfd, info, error_message, psb)
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -984,11 +984,11 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
   struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd);
   Elf_Internal_Rela *rel, *relend;
   /* Assume success.  */
-  boolean ret = true;
+  bfd_boolean ret = TRUE;
 
 #if !USE_REL
   if (info->relocateable)
-    return true;
+    return TRUE;
 #endif
 
   rel = relocs;
@@ -1019,7 +1019,7 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                 bfd_archive_filename (input_bfd),
                                 (int) r_type);
          bfd_set_error (bfd_error_bad_value);
-         ret = false;
+         ret = FALSE;
          continue;
        }
 
@@ -1143,8 +1143,8 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                {
                  if (! ((*info->callbacks->undefined_symbol)
                         (info, h->root.root.string, input_bfd,
-                         input_section, offset, true)))
-                   return false;
+                         input_section, offset, TRUE)))
+                   return FALSE;
                  relocation = 0;
                }
            }
@@ -1211,7 +1211,7 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                                 &sda_base);
                    if (r != bfd_reloc_ok)
                      {
-                       ret = false;
+                       ret = FALSE;
                        goto check_reloc;
                      }
 
@@ -1229,7 +1229,7 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                       m32r_elf_howto_table[(int) r_type].name,
                       bfd_get_section_name (abfd, sec));
                    /*bfd_set_error (bfd_error_bad_value); ??? why? */
-                   ret = false;
+                   ret = FALSE;
                    continue;
                  }
              }
@@ -1269,14 +1269,14 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, offset)))
-               return false;
+               return FALSE;
              break;
 
            case bfd_reloc_undefined:
              if (! ((*info->callbacks->undefined_symbol)
                     (info, name, input_bfd, input_section,
-                     offset, true)))
-               return false;
+                     offset, TRUE)))
+               return FALSE;
              break;
 
            case bfd_reloc_outofrange:
@@ -1299,7 +1299,7 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->warning)
                    (info, errmsg, name, input_bfd, input_section,
                     offset)))
-               return false;
+               return FALSE;
              break;
            }
        }
@@ -1331,12 +1331,12 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
    When the chip supports parallel 16 bit insns, things may change.
 */
 
-static boolean
+static bfd_boolean
 m32r_elf_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   Elf_Internal_Shdr *symtab_hdr;
   /* The Rela structures are used here because that's what
@@ -1348,7 +1348,7 @@ m32r_elf_relax_section (abfd, sec, link_info, again)
   Elf_Internal_Sym *isymbuf = NULL;
 
   /* Assume nothing changes.  */
-  *again = false;
+  *again = FALSE;
 
   /* We don't have to do anything for a relocateable link, if
      this section does not have relocs, or if this is not a
@@ -1358,7 +1358,7 @@ m32r_elf_relax_section (abfd, sec, link_info, again)
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0
       || 0 /* FIXME: check SHF_M32R_CAN_RELAX */)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -1608,7 +1608,7 @@ m32r_elf_relax_section (abfd, sec, link_info, again)
 
          /* That will change things, so we should relax again.
             Note that this is not required, and it may be slow.  */
-         *again = true;
+         *again = TRUE;
 
          continue;
        }
@@ -1644,7 +1644,7 @@ m32r_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (isymbuf != NULL
@@ -1657,12 +1657,12 @@ m32r_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return false;
+  return FALSE;
 }
 
 /* Delete some bytes from a section while relaxing.  */
 
-static boolean
+static bfd_boolean
 m32r_elf_relax_delete_bytes (abfd, sec, addr, count)
      bfd *abfd;
      asection *sec;
@@ -1736,7 +1736,7 @@ m32r_elf_relax_delete_bytes (abfd, sec, addr, count)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This is a version of bfd_generic_get_relocated_section_contents
@@ -1749,7 +1749,7 @@ m32r_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -1783,7 +1783,7 @@ m32r_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
 
       internal_relocs = (_bfd_elf32_link_read_relocs
                         (input_bfd, input_section, (PTR) NULL,
-                         (Elf_Internal_Rela *) NULL, false));
+                         (Elf_Internal_Rela *) NULL, FALSE));
       if (internal_relocs == NULL)
        goto error_return;
 
@@ -1854,7 +1854,7 @@ m32r_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
 #endif /* #if 0 */
 \f
 /* Set the right machine number.  */
-static boolean
+static bfd_boolean
 m32r_elf_object_p (abfd)
      bfd *abfd;
 {
@@ -1864,14 +1864,14 @@ m32r_elf_object_p (abfd)
     case E_M32R_ARCH:   (void) bfd_default_set_arch_mach (abfd, bfd_arch_m32r, bfd_mach_m32r);  break;
     case E_M32RX_ARCH:  (void) bfd_default_set_arch_mach (abfd, bfd_arch_m32r, bfd_mach_m32rx); break;
     }
-  return true;
+  return TRUE;
 }
 
 /* Store the machine number in the flags field.  */
 static void
 m32r_elf_final_write_processing (abfd, linker)
-     bfd *   abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd *abfd;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   unsigned long val;
 
@@ -1887,32 +1887,32 @@ m32r_elf_final_write_processing (abfd, linker)
 }
 
 /* Function to keep M32R specific file flags.  */
-static boolean
+static bfd_boolean
 m32r_elf_set_private_flags (abfd, flags)
-     bfd *    abfd;
+     bfd *abfd;
      flagword flags;
 {
   BFD_ASSERT (!elf_flags_init (abfd)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
-static boolean
+static bfd_boolean
 m32r_elf_merge_private_bfd_data (ibfd, obfd)
-     bfd * ibfd;
-     bfd * obfd;
+     bfd *ibfd;
+     bfd *obfd;
 {
   flagword out_flags;
   flagword in_flags;
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   in_flags  = elf_elfheader (ibfd)->e_flags;
   out_flags = elf_elfheader (obfd)->e_flags;
@@ -1926,9 +1926,9 @@ m32r_elf_merge_private_bfd_data (ibfd, obfd)
         unitialised values, which surprise surprise, correspond
         to the default values.  */
       if (bfd_get_arch_info (ibfd)->the_default)
-       return true;
+       return TRUE;
 
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = in_flags;
 
       if (bfd_get_arch (obfd) == bfd_get_arch (ibfd)
@@ -1937,12 +1937,12 @@ m32r_elf_merge_private_bfd_data (ibfd, obfd)
          return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd));
        }
 
-      return true;
+      return TRUE;
     }
 
   /* Check flag compatibility.  */
   if (in_flags == out_flags)
-    return true;
+    return TRUE;
 
   if ((in_flags & EF_M32R_ARCH) != (out_flags & EF_M32R_ARCH))
     {
@@ -1953,18 +1953,18 @@ m32r_elf_merge_private_bfd_data (ibfd, obfd)
             bfd_archive_filename (ibfd));
 
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Display the flags field */
-static boolean
+static bfd_boolean
 m32r_elf_print_private_bfd_data (abfd, ptr)
-     bfd *   abfd;
-     PTR     ptr;
+     bfd *abfd;
+     PTR ptr;
 {
   FILE * file = (FILE *) ptr;
 
@@ -1983,7 +1983,7 @@ m32r_elf_print_private_bfd_data (abfd, ptr)
 
   fputc ('\n', file);
 
-  return true;
+  return TRUE;
 }
 
 asection *
@@ -2023,7 +2023,7 @@ m32r_elf_gc_mark_hook (sec, info, rel, h, sym)
   return NULL;
 }
 
-static boolean
+static bfd_boolean
 m32r_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -2031,14 +2031,14 @@ m32r_elf_gc_sweep_hook (abfd, info, sec, relocs)
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   /* we don't use got and plt entries for m32r */
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 m32r_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2051,7 +2051,7 @@ m32r_elf_check_relocs (abfd, info, sec, relocs)
   const Elf_Internal_Rela *rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -2077,19 +2077,19 @@ m32r_elf_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_M32R_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_M32R_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
         }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 #define ELF_ARCH               bfd_arch_m32r
index 9f05a9e1d8487851af17adffa8b12aad27a29604..98ea6a69cd5310cb1e687281864806e7c0333451 100644 (file)
@@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void m68hc11_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
 static bfd_reloc_status_type m68hc11_elf_ignore_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
@@ -38,17 +38,17 @@ static bfd_reloc_status_type m68hc11_elf_ignore_reloc
 static asection *elf32_m68hc11_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf32_m68hc11_gc_sweep_hook
+static bfd_boolean elf32_m68hc11_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf32_m68hc11_check_relocs
+static bfd_boolean elf32_m68hc11_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf32_m68hc11_relocate_section
+static bfd_boolean elf32_m68hc11_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean m68hc11_elf_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
+static bfd_boolean m68hc11_elf_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
 static void m68hc11_elf_relax_delete_bytes
   PARAMS ((bfd *, asection *, bfd_vma, int));
 static void m68hc11_relax_group
@@ -57,9 +57,9 @@ static void m68hc11_relax_group
 static int compare_reloc PARAMS ((const void *, const void *));
 
 
-boolean _bfd_m68hc11_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
-boolean _bfd_m68hc11_elf_set_private_flags PARAMS ((bfd *, flagword));
-boolean _bfd_m68hc11_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
+bfd_boolean _bfd_m68hc11_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
+bfd_boolean _bfd_m68hc11_elf_set_private_flags PARAMS ((bfd *, flagword));
+bfd_boolean _bfd_m68hc11_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
 
 /* Use REL instead of RELA to save space */
 #define USE_REL        1
@@ -75,90 +75,90 @@ static reloc_howto_type elf_m68hc11_howto_table[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_NONE",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 8 bit absolute relocation */
   HOWTO (R_M68HC11_8,          /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_8",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 8 bit absolute relocation (upper address) */
   HOWTO (R_M68HC11_HI8,                /* type */
         8,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_HI8",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 8 bit absolute relocation (upper address) */
   HOWTO (R_M68HC11_LO8,                /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_LO8",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 8 bit PC-rel relocation */
   HOWTO (R_M68HC11_PCREL_8,    /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_PCREL_8",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit absolute relocation */
   HOWTO (R_M68HC11_16,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont /*bitfield */ , /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_16",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  This one is never used for the
      code relocation.  It's used by gas for -gstabs generation.  */
@@ -166,120 +166,120 @@ static reloc_howto_type elf_m68hc11_howto_table[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_32",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 3 bit absolute relocation */
   HOWTO (R_M68HC11_3B,         /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         3,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_4B",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x003,                 /* src_mask */
         0x003,                 /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit PC-rel relocation */
   HOWTO (R_M68HC11_PCREL_16,   /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_PCREL_16",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_M68HC11_GNU_VTINHERIT,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_M68HC11_GNU_VTINHERIT",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_M68HC11_GNU_VTENTRY,        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
         "R_M68HC11_GNU_VTENTRY",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 24 bit relocation */
   HOWTO (R_M68HC11_24,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         24,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_24",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
-  
+        FALSE),                /* pcrel_offset */
+
   /* A 16-bit low relocation */
   HOWTO (R_M68HC11_LO16,        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_LO16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A page relocation */
   HOWTO (R_M68HC11_PAGE,        /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC11_PAGE",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (14),
   EMPTY_HOWTO (15),
@@ -287,36 +287,36 @@ static reloc_howto_type elf_m68hc11_howto_table[] = {
   EMPTY_HOWTO (17),
   EMPTY_HOWTO (18),
   EMPTY_HOWTO (19),
-  
+
   /* Mark beginning of a jump instruction (any form).  */
   HOWTO (R_M68HC11_RL_JUMP,    /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         m68hc11_elf_ignore_reloc,      /* special_function */
         "R_M68HC11_RL_JUMP",   /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Mark beginning of Gcc relaxation group instruction.  */
   HOWTO (R_M68HC11_RL_GROUP,   /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         m68hc11_elf_ignore_reloc,      /* special_function */
         "R_M68HC11_RL_GROUP",  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 };
 
 /* Map BFD reloc types to M68HC11 ELF reloc types.  */
@@ -392,7 +392,7 @@ static void
 m68hc11_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -434,7 +434,7 @@ elf32_m68hc11_gc_mark_hook (sec, info, rel, h, sym)
   return NULL;
 }
 
-static boolean
+static bfd_boolean
 elf32_m68hc11_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -442,10 +442,10 @@ elf32_m68hc11_gc_sweep_hook (abfd, info, sec, relocs)
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   /* We don't use got and plt entries for 68hc11/68hc12.  */
-  return true;
+  return TRUE;
 }
 
-struct m68hc11_direct_relax 
+struct m68hc11_direct_relax
 {
   const char *name;
   unsigned char code;
@@ -629,15 +629,15 @@ m68hc11_relax_group (abfd, sec, contents, value, offset, end_group)
 
 /* This function handles relaxing for the 68HC11.
 
-   
+
        and somewhat more difficult to support.  */
 
-static boolean
+static bfd_boolean
 m68hc11_elf_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Shdr *shndx_hdr;
@@ -653,7 +653,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
   Elf_Internal_Sym *isymbuf = NULL;
 
   /* Assume nothing changes.  */
-  *again = false;
+  *again = FALSE;
 
   /* We don't have to do anything for a relocateable link, if
      this section does not have relocs, or if this is not a
@@ -662,7 +662,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -745,7 +745,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
 
           prev_insn_branch = 0;
           prev_insn_group = 0;
-          
+
          /* Do nothing if this reloc is the last byte in the section.  */
          if (irel->r_offset == sec->_cooked_size)
            continue;
@@ -829,7 +829,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
        {
           prev_insn_branch = 0;
           prev_insn_group = 0;
-          
+
          /* Do nothing if this reloc is the last byte in the section.  */
          if (irel->r_offset == sec->_cooked_size)
            continue;
@@ -864,7 +864,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
           prev_insn_branch = 0;
           continue;
         }
-      
+
       value = symval;
       /* Try to turn a far branch to a near branch.  */
       if (ELF32_R_TYPE (irel->r_info) == (int) R_M68HC11_16
@@ -910,7 +910,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
                                               irel->r_offset - 1, 3);
             }
           prev_insn_branch = 0;
-          *again = true;
+          *again = TRUE;
         }
 
       /* Try to turn a 16 bit address into a 8 bit page0 address.  */
@@ -933,7 +933,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
           if (prev_insn_group)
             {
               unsigned long old_sec_size = sec->_cooked_size;
-              
+
               /* Note that we've changed the reldection contents, etc.  */
               elf_section_data (sec)->relocs = internal_relocs;
               free_relocs = NULL;
@@ -952,10 +952,10 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
               irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
                                            R_M68HC11_NONE);
               if (sec->_cooked_size != old_sec_size)
-                *again = true;
+                *again = TRUE;
               continue;
             }
-          
+
           /* Get the opcode.  */
           code = bfd_get_8 (abfd, contents + irel->r_offset - 1);
           rinfo = find_relaxable_insn (code);
@@ -989,7 +989,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
                                        R_M68HC11_8);
 
           /* That will change things, so, we should relax again.  */
-          *again = true;
+          *again = TRUE;
         }
       else if (ELF32_R_TYPE (irel->r_info) == R_M68HC11_16)
         {
@@ -1013,10 +1013,10 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
                   /* Note that we've changed the reldection contents, etc.  */
                   elf_section_data (sec)->relocs = internal_relocs;
                   free_relocs = NULL;
-                  
+
                   elf_section_data (sec)->this_hdr.contents = contents;
                   free_contents = NULL;
-                  
+
                   symtab_hdr->contents = (bfd_byte *) isymbuf;
                   free_extsyms = NULL;
 
@@ -1031,7 +1031,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
                   m68hc11_elf_relax_delete_bytes (abfd, sec,
                                                   irel->r_offset + 1, 1);
                   /* That will change things, so, we should relax again.  */
-                  *again = true;
+                  *again = TRUE;
                 }
             }
         }
@@ -1068,7 +1068,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
       free_extsyms = NULL;
     }
 
-  return true;
+  return TRUE;
 
  error_return:
   if (free_relocs != NULL)
@@ -1077,7 +1077,7 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
     free (free_contents);
   if (free_extsyms != NULL)
     free (free_extsyms);
-  return false;
+  return FALSE;
 }
 
 /* Delete some bytes from a section while relaxing.  */
@@ -1116,7 +1116,7 @@ m68hc11_elf_relax_delete_bytes (abfd, sec, addr, count)
           (size_t) (toaddr - addr - count));
 
   sec->_cooked_size -= count;
-  
+
   /* Adjust all the relocs.  */
   for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++)
     {
@@ -1194,7 +1194,7 @@ m68hc11_elf_relax_delete_bytes (abfd, sec, addr, count)
           offset = bfd_get_8 (abfd, contents + irel->r_offset + branch_pos);
           raddr += old_offset;
           raddr += ((unsigned short) offset | ((offset & 0x80) ? 0xff00 : 0));
-          if (irel->r_offset < addr && raddr >= addr)
+          if (irel->r_offset < addr && raddr > addr)
             {
               offset -= count;
               bfd_put_8 (abfd, offset, contents + irel->r_offset + branch_pos);
@@ -1209,7 +1209,7 @@ m68hc11_elf_relax_delete_bytes (abfd, sec, addr, count)
               /*printf ("Not adjusted 0x%04x [0x%4x 0x%4x]\n", raddr,
                 irel->r_offset, addr);*/
             }
-          
+
           break;
        }
     }
@@ -1247,7 +1247,7 @@ m68hc11_elf_relax_delete_bytes (abfd, sec, addr, count)
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 elf32_m68hc11_check_relocs (abfd, info, sec, relocs)
      bfd * abfd;
      struct bfd_link_info * info;
@@ -1261,7 +1261,7 @@ elf32_m68hc11_check_relocs (abfd, info, sec, relocs)
   const Elf_Internal_Rela *     rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = & elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -1289,23 +1289,23 @@ elf32_m68hc11_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_M68HC11_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_M68HC11_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
         }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Relocate a 68hc11/68hc12 ELF section.  */
-static boolean
+static bfd_boolean
 elf32_m68hc11_relocate_section (output_bfd, info, input_bfd, input_section,
                                 contents, relocs, local_syms, local_sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -1398,8 +1398,8 @@ elf32_m68hc11_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (!((*info->callbacks->undefined_symbol)
                    (info, h->root.root.string, input_bfd,
-                    input_section, rel->r_offset, true)))
-               return false;
+                    input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -1428,14 +1428,14 @@ elf32_m68hc11_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->reloc_overflow)
                    (info, name, howto->name, (bfd_vma) 0,
                     input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
              break;
 
            case bfd_reloc_undefined:
              if (!((*info->callbacks->undefined_symbol)
                    (info, name, input_bfd, input_section,
-                    rel->r_offset, true)))
-               return false;
+                    rel->r_offset, TRUE)))
+               return FALSE;
              break;
 
            case bfd_reloc_outofrange:
@@ -1458,20 +1458,20 @@ elf32_m68hc11_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->warning)
                    (info, msg, name, input_bfd, input_section,
                     rel->r_offset)))
-               return false;
+               return FALSE;
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 
 \f
 /* Set and control ELF flags in ELF header.  */
 
-boolean
+bfd_boolean
 _bfd_m68hc11_elf_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
@@ -1480,29 +1480,29 @@ _bfd_m68hc11_elf_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
-boolean
+bfd_boolean
 _bfd_m68hc11_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   flagword old_flags;
   flagword new_flags;
-  boolean ok = true;
+  bfd_boolean ok = TRUE;
 
   /* Check if we have the same endianess */
-  if (_bfd_generic_verify_endian_match (ibfd, obfd) == false)
-    return false;
+  if (!_bfd_generic_verify_endian_match (ibfd, obfd))
+    return FALSE;
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   new_flags = elf_elfheader (ibfd)->e_flags;
   elf_elfheader (obfd)->e_flags |= new_flags & EF_M68HC11_ABI;
@@ -1510,7 +1510,7 @@ _bfd_m68hc11_elf_merge_private_bfd_data (ibfd, obfd)
 
   if (! elf_flags_init (obfd))
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = new_flags;
       elf_elfheader (obfd)->e_ident[EI_CLASS]
        = elf_elfheader (ibfd)->e_ident[EI_CLASS];
@@ -1520,10 +1520,10 @@ _bfd_m68hc11_elf_merge_private_bfd_data (ibfd, obfd)
        {
          if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd),
                                   bfd_get_mach (ibfd)))
-           return false;
+           return FALSE;
        }
 
-      return true;
+      return TRUE;
     }
 
   /* Check ABI compatibility.  */
@@ -1533,7 +1533,7 @@ _bfd_m68hc11_elf_merge_private_bfd_data (ibfd, obfd)
        (_("%s: linking files compiled for 16-bit integers (-mshort) "
            "and others for 32-bit integers"),
         bfd_archive_filename (ibfd));
-      ok = false;
+      ok = FALSE;
     }
   if ((new_flags & E_M68HC11_F64) != (old_flags & E_M68HC11_F64))
     {
@@ -1541,7 +1541,7 @@ _bfd_m68hc11_elf_merge_private_bfd_data (ibfd, obfd)
        (_("%s: linking files compiled for 32-bit double (-fshort-double) "
            "and others for 64-bit double"),
         bfd_archive_filename (ibfd));
-      ok = false;
+      ok = FALSE;
     }
   new_flags &= ~EF_M68HC11_ABI;
   old_flags &= ~EF_M68HC11_ABI;
@@ -1553,19 +1553,19 @@ _bfd_m68hc11_elf_merge_private_bfd_data (ibfd, obfd)
        (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
         bfd_archive_filename (ibfd), (unsigned long) new_flags,
         (unsigned long) old_flags);
-      ok = false;
+      ok = FALSE;
     }
 
   if (! ok)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 _bfd_m68hc11_elf_print_private_bfd_data (abfd, ptr)
      bfd *abfd;
      PTR ptr;
@@ -1597,7 +1597,7 @@ _bfd_m68hc11_elf_print_private_bfd_data (abfd, ptr)
 
   fputc ('\n', file);
 
-  return true;
+  return TRUE;
 }
 
 /* Below is the only difference between elf32-m68hc12.c and elf32-m68hc11.c.
index ea12e3b999e779c72957db0bc28c66a3fa6b83eb..219fd6b0da331a371d0f452fa0c5f13f746defee 100644 (file)
@@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void m68hc11_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
 static bfd_reloc_status_type m68hc11_elf_ignore_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
@@ -43,13 +43,15 @@ static bfd_vma m68hc12_phys_page PARAMS ((bfd_vma));
 static asection *elf32_m68hc11_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf32_m68hc11_gc_sweep_hook
+static bfd_boolean elf32_m68hc11_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
-boolean _bfd_m68hc12_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
-boolean _bfd_m68hc12_elf_set_private_flags PARAMS ((bfd *, flagword));
-boolean _bfd_m68hc12_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
+static bfd_boolean m68hc12_elf_set_mach_from_flags PARAMS ((bfd *));
+
+bfd_boolean _bfd_m68hc12_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
+bfd_boolean _bfd_m68hc12_elf_set_private_flags PARAMS ((bfd *, flagword));
+bfd_boolean _bfd_m68hc12_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
 
 
 
@@ -120,7 +122,7 @@ boolean _bfd_m68hc12_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
 
 
    The 'call _foo' must be relocated with page 3 and 16-bit address
-   mapped at 0x8000.  
+   mapped at 0x8000.
 
    The 3-bit and 16-bit PC rel relocation is only used by 68HC12.  */
 static reloc_howto_type elf_m68hc11_howto_table[] = {
@@ -129,90 +131,90 @@ static reloc_howto_type elf_m68hc11_howto_table[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC12_NONE",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 8 bit absolute relocation */
   HOWTO (R_M68HC11_8,          /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC12_8",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 8 bit absolute relocation (upper address) */
   HOWTO (R_M68HC11_HI8,                /* type */
         8,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC12_HI8",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 8 bit absolute relocation (upper address) */
   HOWTO (R_M68HC11_LO8,                /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC12_LO8",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 8 bit PC-rel relocation */
   HOWTO (R_M68HC11_PCREL_8,    /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC12_PCREL_8",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit absolute relocation */
   HOWTO (R_M68HC11_16,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont /*bitfield */ , /* complain_on_overflow */
         m68hc12_elf_special_reloc,     /* special_function */
         "R_M68HC12_16",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  This one is never used for the
      code relocation.  It's used by gas for -gstabs generation.  */
@@ -220,120 +222,120 @@ static reloc_howto_type elf_m68hc11_howto_table[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC12_32",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 3 bit absolute relocation */
   HOWTO (R_M68HC11_3B,         /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         3,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC12_4B",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x003,                 /* src_mask */
         0x003,                 /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit PC-rel relocation */
   HOWTO (R_M68HC11_PCREL_16,   /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_M68HC12_PCREL_16",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_M68HC11_GNU_VTINHERIT,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_M68HC11_GNU_VTINHERIT",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_M68HC11_GNU_VTENTRY,        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
         "R_M68HC11_GNU_VTENTRY",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 24 bit relocation */
   HOWTO (R_M68HC11_24,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         24,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         m68hc12_elf_special_reloc,     /* special_function */
         "R_M68HC12_24",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
-  
+        FALSE),                /* pcrel_offset */
+
   /* A 16-bit low relocation */
   HOWTO (R_M68HC11_LO16,        /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         m68hc12_elf_special_reloc,/* special_function */
         "R_M68HC12_LO16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A page relocation */
   HOWTO (R_M68HC11_PAGE,        /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         m68hc12_elf_special_reloc,/* special_function */
         "R_M68HC12_PAGE",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ff,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (14),
   EMPTY_HOWTO (15),
@@ -341,36 +343,36 @@ static reloc_howto_type elf_m68hc11_howto_table[] = {
   EMPTY_HOWTO (17),
   EMPTY_HOWTO (18),
   EMPTY_HOWTO (19),
-  
+
   /* Mark beginning of a jump instruction (any form).  */
   HOWTO (R_M68HC11_RL_JUMP,    /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         m68hc11_elf_ignore_reloc,      /* special_function */
         "R_M68HC12_RL_JUMP",   /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Mark beginning of Gcc relaxation group instruction.  */
   HOWTO (R_M68HC11_RL_GROUP,   /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         m68hc11_elf_ignore_reloc,      /* special_function */
         "R_M68HC12_RL_GROUP",  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 };
 
 /* Map BFD reloc types to M68HC11 ELF reloc types.  */
@@ -495,7 +497,7 @@ m68hc12_elf_special_reloc (abfd, reloc_entry, symbol, data, input_section,
   bfd_vma phys_page;
   bfd_vma insn_page;
   bfd_vma insn_addr;
-  
+
   if (output_bfd != (bfd *) NULL
       && (symbol->flags & BSF_SECTION_SYM) == 0
       && (! reloc_entry->howto->partial_inplace
@@ -551,7 +553,7 @@ m68hc12_elf_special_reloc (abfd, reloc_entry, symbol, data, input_section,
                                "the normal address space");
             return bfd_reloc_dangerous;
          }
-      
+
     case R_M68HC11_LO16:
       bfd_put_16 (abfd, phys_addr, (bfd_byte*) data + reloc_entry->address);
       break;
@@ -569,7 +571,7 @@ m68hc12_elf_special_reloc (abfd, reloc_entry, symbol, data, input_section,
        abort ();
        break;
     }
-  
+
   return bfd_reloc_ok;
 }
 
@@ -579,7 +581,7 @@ static void
 m68hc11_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -621,7 +623,7 @@ elf32_m68hc11_gc_mark_hook (sec, info, rel, h, sym)
   return NULL;
 }
 
-static boolean
+static bfd_boolean
 elf32_m68hc11_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -629,13 +631,37 @@ elf32_m68hc11_gc_sweep_hook (abfd, info, sec, relocs)
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   /* We don't use got and plt entries for 68hc11/68hc12.  */
-  return true;
+  return TRUE;
 }
 
 \f
+static bfd_boolean
+m68hc12_elf_set_mach_from_flags (abfd)
+     bfd *abfd;
+{
+  flagword flags = elf_elfheader (abfd)->e_flags;
+
+  switch (flags & EF_M68HC11_MACH_MASK)
+    {
+    case EF_M68HC12_MACH:
+      bfd_default_set_arch_mach (abfd, bfd_arch_m68hc12, bfd_mach_m6812);
+      break;
+    case EF_M68HCS12_MACH:
+      bfd_default_set_arch_mach (abfd, bfd_arch_m68hc12, bfd_mach_m6812s);
+      break;
+    case EF_M68HC11_GENERIC:
+      bfd_default_set_arch_mach (abfd, bfd_arch_m68hc12,
+                                 bfd_mach_m6812_default);
+      break;
+    default:
+      return FALSE;
+    }
+  return TRUE;
+}
+
 /* Set and control ELF flags in ELF header.  */
 
-boolean
+bfd_boolean
 _bfd_m68hc12_elf_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
@@ -644,37 +670,36 @@ _bfd_m68hc12_elf_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return m68hc12_elf_set_mach_from_flags (abfd);
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
-boolean
+bfd_boolean
 _bfd_m68hc12_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   flagword old_flags;
   flagword new_flags;
-  boolean ok = true;
+  bfd_boolean ok = TRUE;
 
   /* Check if we have the same endianess */
-  if (_bfd_generic_verify_endian_match (ibfd, obfd) == false)
-    return false;
+  if (!_bfd_generic_verify_endian_match (ibfd, obfd))
+    return FALSE;
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   new_flags = elf_elfheader (ibfd)->e_flags;
-  elf_elfheader (obfd)->e_flags |= new_flags & EF_M68HC11_ABI;
   old_flags = elf_elfheader (obfd)->e_flags;
 
   if (! elf_flags_init (obfd))
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = new_flags;
       elf_elfheader (obfd)->e_ident[EI_CLASS]
        = elf_elfheader (ibfd)->e_ident[EI_CLASS];
@@ -684,10 +709,10 @@ _bfd_m68hc12_elf_merge_private_bfd_data (ibfd, obfd)
        {
          if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd),
                                   bfd_get_mach (ibfd)))
-           return false;
+           return FALSE;
        }
 
-      return true;
+      return TRUE;
     }
 
   /* Check ABI compatibility.  */
@@ -697,7 +722,7 @@ _bfd_m68hc12_elf_merge_private_bfd_data (ibfd, obfd)
        (_("%s: linking files compiled for 16-bit integers (-mshort) "
            "and others for 32-bit integers"),
         bfd_archive_filename (ibfd));
-      ok = false;
+      ok = FALSE;
     }
   if ((new_flags & E_M68HC11_F64) != (old_flags & E_M68HC11_F64))
     {
@@ -705,31 +730,45 @@ _bfd_m68hc12_elf_merge_private_bfd_data (ibfd, obfd)
        (_("%s: linking files compiled for 32-bit double (-fshort-double) "
            "and others for 64-bit double"),
         bfd_archive_filename (ibfd));
-      ok = false;
+      ok = FALSE;
+    }
+
+  /* Processor compatibility.  */
+  if (!EF_M68HC11_CAN_MERGE_MACH (new_flags, old_flags))
+    {
+      (*_bfd_error_handler)
+       (_("%s: linking files compiled for HCS12 with "
+           "others compiled for HC12"),
+        bfd_archive_filename (ibfd));
+      ok = FALSE;
     }
-  new_flags &= ~EF_M68HC11_ABI;
-  old_flags &= ~EF_M68HC11_ABI;
+  new_flags = ((new_flags & ~EF_M68HC11_MACH_MASK)
+               | (EF_M68HC11_MERGE_MACH (new_flags, old_flags)));
+
+  elf_elfheader (obfd)->e_flags = new_flags;
 
   /* Warn about any other mismatches */
+  new_flags &= ~(EF_M68HC11_ABI | EF_M68HC11_MACH_MASK);
+  old_flags &= ~(EF_M68HC11_ABI | EF_M68HC11_MACH_MASK);
   if (new_flags != old_flags)
     {
       (*_bfd_error_handler)
        (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
         bfd_archive_filename (ibfd), (unsigned long) new_flags,
         (unsigned long) old_flags);
-      ok = false;
+      ok = FALSE;
     }
 
   if (! ok)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 _bfd_m68hc12_elf_print_private_bfd_data (abfd, ptr)
      bfd *abfd;
      PTR ptr;
@@ -750,17 +789,19 @@ _bfd_m68hc12_elf_print_private_bfd_data (abfd, ptr)
     fprintf (file, _("[abi=16-bit int,"));
 
   if (elf_elfheader (abfd)->e_flags & E_M68HC11_F64)
-    fprintf (file, _(" 64-bit double]"));
+    fprintf (file, _(" 64-bit double,"));
   else
-    fprintf (file, _(" 32-bit double]"));
+    fprintf (file, _(" 32-bit double,"));
 
+  if (elf_elfheader (abfd)->e_flags & EF_M68HCS12_MACH)
+    fprintf (file, _(" cpu=HCS12]"));
+  else
+    fprintf (file, _(" cpu=HC12]"));
   fputc ('\n', file);
 
-  return true;
+  return TRUE;
 }
 
-/* Below is the only difference between elf32-m68hc12.c and elf32-m68hc11.c.
-   The Motorola spec says to use a different Elf machine code.  */
 #define ELF_ARCH               bfd_arch_m68hc12
 #define ELF_MACHINE_CODE       EM_68HC12
 #define ELF_MAXPAGESIZE                0x1000
@@ -772,7 +813,7 @@ _bfd_m68hc12_elf_print_private_bfd_data (abfd, ptr)
 #define elf_info_to_howto_rel  m68hc11_info_to_howto_rel
 #define elf_backend_gc_mark_hook     elf32_m68hc11_gc_mark_hook
 #define elf_backend_gc_sweep_hook    elf32_m68hc11_gc_sweep_hook
-#define elf_backend_object_p   0
+#define elf_backend_object_p           m68hc12_elf_set_mach_from_flags
 #define elf_backend_final_write_processing     0
 /* Disabled as this backend uses the generic linker.  */
 #define elf_backend_can_gc_sections            0
index 2c50ed08b74993e1d8dd9346d17311877e6ebdbd..0875d88bd714c05bf2831bc48d6c051d9fa0981f 100644 (file)
@@ -28,94 +28,94 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void rtype_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static struct bfd_hash_entry *elf_m68k_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *elf_m68k_link_hash_table_create
   PARAMS ((bfd *));
-static boolean elf_m68k_check_relocs
+static bfd_boolean elf_m68k_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection *elf_m68k_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf_m68k_gc_sweep_hook
+static bfd_boolean elf_m68k_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf_m68k_adjust_dynamic_symbol
+static bfd_boolean elf_m68k_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean elf_m68k_size_dynamic_sections
+static bfd_boolean elf_m68k_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_m68k_relocate_section
+static bfd_boolean elf_m68k_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf_m68k_finish_dynamic_symbol
+static bfd_boolean elf_m68k_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-static boolean elf_m68k_finish_dynamic_sections
+static bfd_boolean elf_m68k_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
-static boolean elf32_m68k_set_private_flags
+static bfd_boolean elf32_m68k_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean elf32_m68k_merge_private_bfd_data
+static bfd_boolean elf32_m68k_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
-static boolean elf32_m68k_print_private_bfd_data
+static bfd_boolean elf32_m68k_print_private_bfd_data
   PARAMS ((bfd *, PTR));
 static enum elf_reloc_type_class elf32_m68k_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
 
 static reloc_howto_type howto_table[] = {
-  HOWTO(R_68K_NONE,       0, 0, 0, false,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_NONE",      false, 0, 0x00000000,false),
-  HOWTO(R_68K_32,         0, 2,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_32",        false, 0, 0xffffffff,false),
-  HOWTO(R_68K_16,         0, 1,16, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_16",        false, 0, 0x0000ffff,false),
-  HOWTO(R_68K_8,          0, 0, 8, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_8",         false, 0, 0x000000ff,false),
-  HOWTO(R_68K_PC32,       0, 2,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PC32",      false, 0, 0xffffffff,true),
-  HOWTO(R_68K_PC16,       0, 1,16, true, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PC16",      false, 0, 0x0000ffff,true),
-  HOWTO(R_68K_PC8,        0, 0, 8, true, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PC8",       false, 0, 0x000000ff,true),
-  HOWTO(R_68K_GOT32,      0, 2,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32",     false, 0, 0xffffffff,true),
-  HOWTO(R_68K_GOT16,      0, 1,16, true, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT16",     false, 0, 0x0000ffff,true),
-  HOWTO(R_68K_GOT8,       0, 0, 8, true, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT8",      false, 0, 0x000000ff,true),
-  HOWTO(R_68K_GOT32O,     0, 2,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32O",    false, 0, 0xffffffff,false),
-  HOWTO(R_68K_GOT16O,     0, 1,16, false,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT16O",    false, 0, 0x0000ffff,false),
-  HOWTO(R_68K_GOT8O,      0, 0, 8, false,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT8O",     false, 0, 0x000000ff,false),
-  HOWTO(R_68K_PLT32,      0, 2,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32",     false, 0, 0xffffffff,true),
-  HOWTO(R_68K_PLT16,      0, 1,16, true, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT16",     false, 0, 0x0000ffff,true),
-  HOWTO(R_68K_PLT8,       0, 0, 8, true, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT8",      false, 0, 0x000000ff,true),
-  HOWTO(R_68K_PLT32O,     0, 2,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32O",    false, 0, 0xffffffff,false),
-  HOWTO(R_68K_PLT16O,     0, 1,16, false,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT16O",    false, 0, 0x0000ffff,false),
-  HOWTO(R_68K_PLT8O,      0, 0, 8, false,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT8O",     false, 0, 0x000000ff,false),
-  HOWTO(R_68K_COPY,       0, 0, 0, false,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_COPY",      false, 0, 0xffffffff,false),
-  HOWTO(R_68K_GLOB_DAT,   0, 2,32, false,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_GLOB_DAT",  false, 0, 0xffffffff,false),
-  HOWTO(R_68K_JMP_SLOT,   0, 2,32, false,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_JMP_SLOT",  false, 0, 0xffffffff,false),
-  HOWTO(R_68K_RELATIVE,   0, 2,32, false,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_RELATIVE",  false, 0, 0xffffffff,false),
+  HOWTO(R_68K_NONE,       0, 0, 0, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_NONE",      FALSE, 0, 0x00000000,FALSE),
+  HOWTO(R_68K_32,         0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_32",        FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_16,         0, 1,16, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_16",        FALSE, 0, 0x0000ffff,FALSE),
+  HOWTO(R_68K_8,          0, 0, 8, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_8",         FALSE, 0, 0x000000ff,FALSE),
+  HOWTO(R_68K_PC32,       0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PC32",      FALSE, 0, 0xffffffff,TRUE),
+  HOWTO(R_68K_PC16,       0, 1,16, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PC16",      FALSE, 0, 0x0000ffff,TRUE),
+  HOWTO(R_68K_PC8,        0, 0, 8, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PC8",       FALSE, 0, 0x000000ff,TRUE),
+  HOWTO(R_68K_GOT32,      0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32",     FALSE, 0, 0xffffffff,TRUE),
+  HOWTO(R_68K_GOT16,      0, 1,16, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT16",     FALSE, 0, 0x0000ffff,TRUE),
+  HOWTO(R_68K_GOT8,       0, 0, 8, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT8",      FALSE, 0, 0x000000ff,TRUE),
+  HOWTO(R_68K_GOT32O,     0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32O",    FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_GOT16O,     0, 1,16, FALSE,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT16O",    FALSE, 0, 0x0000ffff,FALSE),
+  HOWTO(R_68K_GOT8O,      0, 0, 8, FALSE,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT8O",     FALSE, 0, 0x000000ff,FALSE),
+  HOWTO(R_68K_PLT32,      0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32",     FALSE, 0, 0xffffffff,TRUE),
+  HOWTO(R_68K_PLT16,      0, 1,16, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT16",     FALSE, 0, 0x0000ffff,TRUE),
+  HOWTO(R_68K_PLT8,       0, 0, 8, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT8",      FALSE, 0, 0x000000ff,TRUE),
+  HOWTO(R_68K_PLT32O,     0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32O",    FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_PLT16O,     0, 1,16, FALSE,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT16O",    FALSE, 0, 0x0000ffff,FALSE),
+  HOWTO(R_68K_PLT8O,      0, 0, 8, FALSE,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT8O",     FALSE, 0, 0x000000ff,FALSE),
+  HOWTO(R_68K_COPY,       0, 0, 0, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_COPY",      FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_GLOB_DAT,   0, 2,32, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_GLOB_DAT",  FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_JMP_SLOT,   0, 2,32, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_JMP_SLOT",  FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_RELATIVE,   0, 2,32, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_RELATIVE",  FALSE, 0, 0xffffffff,FALSE),
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_68K_GNU_VTINHERIT,  /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_68K_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),
+        FALSE),
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_68K_GNU_VTENTRY,    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn, /* special_function */
         "R_68K_GNU_VTENTRY",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),
+        FALSE),
 };
 
 static void
@@ -277,11 +277,14 @@ struct elf_m68k_link_hash_entry
 struct elf_m68k_link_hash_table
 {
   struct elf_link_hash_table root;
+
+  /* Small local sym to section mapping cache.  */
+  struct sym_sec_cache sym_sec;
 };
 
 /* Declare this now that the above structures are defined.  */
 
-static boolean elf_m68k_discard_copies
+static bfd_boolean elf_m68k_discard_copies
   PARAMS ((struct elf_m68k_link_hash_entry *, PTR));
 
 /* Traverse an m68k ELF linker hash table.  */
@@ -289,7 +292,7 @@ static boolean elf_m68k_discard_copies
 #define elf_m68k_link_hash_traverse(table, func, info)                 \
   (elf_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the m68k ELF linker hash table from a link_info structure.  */
@@ -349,23 +352,25 @@ elf_m68k_link_hash_table_create (abfd)
       return NULL;
     }
 
+  ret->sym_sec.abfd = NULL;
+
   return &ret->root.root;
 }
 
 /* Keep m68k-specific flags in the ELF header */
-static boolean
+static bfd_boolean
 elf32_m68k_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
 {
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
-static boolean
+static bfd_boolean
 elf32_m68k_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -375,22 +380,22 @@ elf32_m68k_merge_private_bfd_data (ibfd, obfd)
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   in_flags  = elf_elfheader (ibfd)->e_flags;
   out_flags = elf_elfheader (obfd)->e_flags;
 
   if (!elf_flags_init (obfd))
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = in_flags;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Display the flags field */
-static boolean
+static bfd_boolean
 elf32_m68k_print_private_bfd_data (abfd, ptr)
      bfd *abfd;
      PTR ptr;
@@ -415,13 +420,13 @@ elf32_m68k_print_private_bfd_data (abfd, ptr)
 
   fputc ('\n', file);
 
-  return true;
+  return TRUE;
 }
 /* Look through the relocs for a section during the first phase, and
    allocate space in the global offset table or procedure linkage
    table.  */
 
-static boolean
+static bfd_boolean
 elf_m68k_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -439,7 +444,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -482,7 +487,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
              /* Create the .got section.  */
              elf_hash_table (info)->dynobj = dynobj = abfd;
              if (!_bfd_elf_create_got_section (dynobj, info))
-               return false;
+               return FALSE;
            }
 
          if (sgot == NULL)
@@ -507,7 +512,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
                                                  | SEC_LINKER_CREATED
                                                  | SEC_READONLY))
                      || !bfd_set_section_alignment (dynobj, srelgot, 2))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -516,10 +521,11 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
              if (h->got.refcount == 0)
                {
                  /* Make sure this symbol is output as a dynamic symbol.  */
-                 if (h->dynindx == -1)
+                 if (h->dynindx == -1
+                     && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
                    {
                      if (!bfd_elf32_link_record_dynamic_symbol (info, h))
-                       return false;
+                       return FALSE;
                    }
 
                  /* Allocate space in the .got section.  */
@@ -541,7 +547,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
                  local_got_refcounts = ((bfd_signed_vma *)
                                         bfd_zalloc (abfd, size));
                  if (local_got_refcounts == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_refcounts (abfd) = local_got_refcounts;
                }
              if (local_got_refcounts[r_symndx] == 0)
@@ -589,14 +595,15 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
                 local symbol.  FIXME: does it?  How to handle it if
                 it does make sense?  */
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
 
          /* Make sure this symbol is output as a dynamic symbol.  */
-         if (h->dynindx == -1)
+         if (h->dynindx == -1
+             && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
            {
              if (!bfd_elf32_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
@@ -620,6 +627,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
                && (sec->flags & SEC_ALLOC) != 0
                && h != NULL
                && (!info->symbolic
+                   || h->root.type == bfd_link_hash_defweak
                    || (h->elf_link_hash_flags
                        & ELF_LINK_HASH_DEF_REGULAR) == 0)))
            {
@@ -660,7 +668,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (abfd, sec),
@@ -679,7 +687,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
                                                      | SEC_LINKER_CREATED
                                                      | SEC_READONLY))
                          || !bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
                  if (sec->flags & SEC_READONLY)
                    info->flags |= DF_TEXTREL;
@@ -687,24 +695,41 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
 
              sreloc->_raw_size += sizeof (Elf32_External_Rela);
 
-             /* If we are linking with -Bsymbolic, we count the number of
-                PC relative relocations we have entered for this symbol,
-                so that we can discard them again if the symbol is later
-                defined by a regular object.  Note that this function is
-                only called if we are using an m68kelf linker hash table,
-                which means that h is really a pointer to an
+             /* We count the number of PC relative relocations we have
+                entered for this symbol, so that we can discard them
+                again if, in the -Bsymbolic case, the symbol is later
+                defined by a regular object, or, in the normal shared
+                case, the symbol is forced to be local.  Note that this
+                function is only called if we are using an m68kelf linker
+                hash table, which means that h is really a pointer to an
                 elf_m68k_link_hash_entry.  */
-             if ((ELF32_R_TYPE (rel->r_info) == R_68K_PC8
-                  || ELF32_R_TYPE (rel->r_info) == R_68K_PC16
-                  || ELF32_R_TYPE (rel->r_info) == R_68K_PC32)
-                 && info->symbolic)
+             if (ELF32_R_TYPE (rel->r_info) == R_68K_PC8
+                 || ELF32_R_TYPE (rel->r_info) == R_68K_PC16
+                 || ELF32_R_TYPE (rel->r_info) == R_68K_PC32)
                {
-                 struct elf_m68k_link_hash_entry *eh;
                  struct elf_m68k_pcrel_relocs_copied *p;
+                 struct elf_m68k_pcrel_relocs_copied **head;
 
-                 eh = (struct elf_m68k_link_hash_entry *) h;
+                 if (h != NULL)
+                   {
+                     struct elf_m68k_link_hash_entry *eh
+                       = (struct elf_m68k_link_hash_entry *) h;
+                     head = &eh->pcrel_relocs_copied;
+                   }
+                 else
+                   {
+                     asection *s;
+                     s = (bfd_section_from_r_symndx
+                          (abfd, &elf_m68k_hash_table (info)->sym_sec,
+                           sec, r_symndx));
+                     if (s == NULL)
+                       return FALSE;
+
+                     head = ((struct elf_m68k_pcrel_relocs_copied **)
+                             &elf_section_data (s)->local_dynrel);
+                   }
 
-                 for (p = eh->pcrel_relocs_copied; p != NULL; p = p->next)
+                 for (p = *head; p != NULL; p = p->next)
                    if (p->section == sreloc)
                      break;
 
@@ -713,9 +738,9 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
                      p = ((struct elf_m68k_pcrel_relocs_copied *)
                           bfd_alloc (dynobj, (bfd_size_type) sizeof *p));
                      if (p == NULL)
-                       return false;
-                     p->next = eh->pcrel_relocs_copied;
-                     eh->pcrel_relocs_copied = p;
+                       return FALSE;
+                     p->next = *head;
+                     *head = p;
                      p->section = sreloc;
                      p->count = 0;
                    }
@@ -730,14 +755,14 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
        case R_68K_GNU_VTINHERIT:
          if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_68K_GNU_VTENTRY:
          if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-           return false;
+           return FALSE;
          break;
 
        default:
@@ -745,7 +770,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -790,7 +815,7 @@ elf_m68k_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 elf_m68k_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -813,7 +838,7 @@ elf_m68k_gc_sweep_hook (abfd, info, sec, relocs)
 
   dynobj = elf_hash_table (info)->dynobj;
   if (dynobj == NULL)
-    return true;
+    return TRUE;
 
   sgot = bfd_get_section_by_name (dynobj, ".got");
   srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
@@ -886,7 +911,7 @@ elf_m68k_gc_sweep_hook (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -895,7 +920,7 @@ elf_m68k_gc_sweep_hook (abfd, info, sec, relocs)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf_m68k_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -938,7 +963,7 @@ elf_m68k_adjust_dynamic_symbol (info, h)
             reloc instead.  */
          BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0);
          h->plt.offset = (bfd_vma) -1;
-         return true;
+         return TRUE;
        }
 
       /* GC may have rendered this entry unused.  */
@@ -946,14 +971,15 @@ elf_m68k_adjust_dynamic_symbol (info, h)
        {
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
          h->plt.offset = (bfd_vma) -1;
-         return true;
+         return TRUE;
        }
 
       /* Make sure this symbol is output as a dynamic symbol.  */
-      if (h->dynindx == -1)
+      if (h->dynindx == -1
+         && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = bfd_get_section_by_name (dynobj, ".plt");
@@ -1002,7 +1028,7 @@ elf_m68k_adjust_dynamic_symbol (info, h)
       BFD_ASSERT (s != NULL);
       s->_raw_size += sizeof (Elf32_External_Rela);
 
-      return true;
+      return TRUE;
     }
 
   /* Reinitialize the plt offset now that it is not used as a reference
@@ -1018,7 +1044,7 @@ elf_m68k_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -1029,7 +1055,7 @@ elf_m68k_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -1070,7 +1096,7 @@ elf_m68k_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (!bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -1080,20 +1106,20 @@ elf_m68k_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_m68k_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean plt;
-  boolean relocs;
+  bfd_boolean plt;
+  bfd_boolean relocs;
 
   dynobj = elf_hash_table (info)->dynobj;
   BFD_ASSERT (dynobj != NULL);
@@ -1121,24 +1147,26 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
        s->_raw_size = 0;
     }
 
-  /* If this is a -Bsymbolic shared link, then we need to discard all PC
-     relative relocs against symbols defined in a regular object.  We
-     allocated space for them in the check_relocs routine, but we will not
-     fill them in in the relocate_section routine.  */
-  if (info->shared && info->symbolic)
+  /* If this is a -Bsymbolic shared link, then we need to discard all
+     PC relative relocs against symbols defined in a regular object.
+     For the normal shared case we discard the PC relative relocs
+     against symbols that have become local due to visibility changes.
+     We allocated space for them in the check_relocs routine, but we
+     will not fill them in in the relocate_section routine.  */
+  if (info->shared)
     elf_m68k_link_hash_traverse (elf_m68k_hash_table (info),
                                 elf_m68k_discard_copies,
-                                (PTR) NULL);
+                                (PTR) info);
 
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  plt = false;
-  relocs = false;
+  plt = FALSE;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -1147,7 +1175,7 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      strip = false;
+      strip = FALSE;
 
       if (strcmp (name, ".plt") == 0)
        {
@@ -1155,12 +1183,12 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
            {
              /* Strip this section if we don't need it; see the
                  comment below.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there is a PLT.  */
-             plt = true;
+             plt = TRUE;
            }
        }
       else if (strncmp (name, ".rela", 5) == 0)
@@ -1176,11 +1204,11 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
-             relocs = true;
+             relocs = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -1207,7 +1235,7 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
         contents to zero.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -1223,7 +1251,7 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (plt)
@@ -1232,7 +1260,7 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -1240,49 +1268,54 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_RELA, 0)
              || !add_dynamic_entry (DT_RELASZ, 0)
              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
-           return false;
+           return FALSE;
        }
 
       if ((info->flags & DF_TEXTREL) != 0)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called via elf_m68k_link_hash_traverse if we are
-   creating a shared object with -Bsymbolic.  It discards the space
-   allocated to copy PC relative relocs against symbols which are defined
-   in regular objects.  We allocated space for them in the check_relocs
-   routine, but we won't fill them in in the relocate_section routine.  */
-
-static boolean
-elf_m68k_discard_copies (h, ignore)
+   creating a shared object.  In the -Bsymbolic case it discards the
+   space allocated to copy PC relative relocs against symbols which
+   are defined in regular objects.  For the normal shared case, if
+   discards space for pc-relative relocs that have become local due to
+   symbol visibility changes.  We allocated space for them in the
+   check_relocs routine, but we won't fill them in in the
+   relocate_section routine.  */
+
+static bfd_boolean
+elf_m68k_discard_copies (h, inf)
      struct elf_m68k_link_hash_entry *h;
-     PTR ignore ATTRIBUTE_UNUSED;
+     PTR inf;
 {
+  struct bfd_link_info *info = (struct bfd_link_info *) inf;
   struct elf_m68k_pcrel_relocs_copied *s;
 
   if (h->root.root.type == bfd_link_hash_warning)
     h = (struct elf_m68k_link_hash_entry *) h->root.root.u.i.link;
 
-  /* We only discard relocs for symbols defined in a regular object.  */
-  if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
-    return true;
+  if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
+      || (!info->symbolic
+         && (h->root.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0))
+    return TRUE;
 
   for (s = h->pcrel_relocs_copied; s != NULL; s = s->next)
     s->section->_raw_size -= s->count * sizeof (Elf32_External_Rela);
 
-  return true;
+  return TRUE;
 }
 
 /* Relocate an M68K ELF section.  */
 
-static boolean
+static bfd_boolean
 elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -1305,7 +1338,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1333,7 +1366,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
       if (r_type < 0 || r_type >= (int) R_68K_max)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       howto = howto_table + r_type;
 
@@ -1422,7 +1455,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                     input_section, rel->r_offset,
                     (!info->shared || info->no_undefined
                      || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
@@ -1503,22 +1536,21 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
 
                    if (info->shared)
                      {
-                       asection *srelgot;
+                       asection *s;
                        Elf_Internal_Rela outrel;
+                       bfd_byte *loc;
 
-                       srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
-                       BFD_ASSERT (srelgot != NULL);
+                       s = bfd_get_section_by_name (dynobj, ".rela.got");
+                       BFD_ASSERT (s != NULL);
 
                        outrel.r_offset = (sgot->output_section->vma
                                           + sgot->output_offset
                                           + off);
                        outrel.r_info = ELF32_R_INFO (0, R_68K_RELATIVE);
                        outrel.r_addend = relocation;
-                       bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                                  (((Elf32_External_Rela *)
-                                                    srelgot->contents)
-                                                   + srelgot->reloc_count));
-                       ++srelgot->reloc_count;
+                       loc = s->contents;
+                       loc += s->reloc_count++ * sizeof (Elf32_External_Rela);
+                       bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                      }
 
                    local_got_offsets[r_symndx] |= 1;
@@ -1592,7 +1624,9 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_68K_PC8:
        case R_68K_PC16:
        case R_68K_PC32:
-         if (h == NULL)
+         if (h == NULL
+             || (info->shared
+                 && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
            break;
          /* Fall through.  */
        case R_68K_8:
@@ -1609,7 +1643,8 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                          & ELF_LINK_HASH_DEF_REGULAR) == 0)))
            {
              Elf_Internal_Rela outrel;
-             boolean skip, relocate;
+             bfd_byte *loc;
+             bfd_boolean skip, relocate;
 
              /* When generating a shared object, these relocations
                 are copied into the output file to be resolved at run
@@ -1624,7 +1659,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -1635,16 +1670,16 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                  BFD_ASSERT (sreloc != NULL);
                }
 
-             skip = false;
-             relocate = false;
+             skip = FALSE;
+             relocate = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
              outrel.r_offset += (input_section->output_section->vma
                                  + input_section->output_offset);
 
@@ -1665,7 +1700,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                {
                  if (r_type == R_68K_32)
                    {
-                     relocate = true;
+                     relocate = TRUE;
                      outrel.r_info = ELF32_R_INFO (0, R_68K_RELATIVE);
                      outrel.r_addend = relocation + rel->r_addend;
                    }
@@ -1687,7 +1722,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                      else if (sec == NULL || sec->owner == NULL)
                        {
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      else
                        {
@@ -1703,11 +1738,9 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
 
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* This reloc will be computed at runtime, so there's no
                  need to do anything now, except for R_68K_32
@@ -1751,27 +1784,27 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                                                            symtab_hdr->sh_link,
                                                            sym->st_name);
                    if (name == NULL)
-                     return false;
+                     return FALSE;
                    if (*name == '\0')
                      name = bfd_section_name (input_bfd, sec);
                  }
                if (!(info->callbacks->reloc_overflow
                      (info, name, howto->name, (bfd_vma) 0,
                       input_bfd, input_section, rel->r_offset)))
-                 return false;
+                 return FALSE;
              }
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -1791,6 +1824,7 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_vma plt_index;
       bfd_vma got_offset;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
         it up.  */
@@ -1863,9 +1897,8 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + got_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_68K_JMP_SLOT);
       rela.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + plt_index));
+      loc = srela->contents + plt_index * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
        {
@@ -1880,6 +1913,7 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *sgot;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -1914,16 +1948,16 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
          rela.r_addend = 0;
        }
 
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + srela->reloc_count));
-      ++srela->reloc_count;
+      loc = srela->contents;
+      loc += srela->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       asection *s;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -1940,10 +1974,8 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_68K_COPY);
       rela.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) s->contents
-                                 + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute.  */
@@ -1951,12 +1983,12 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_m68k_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2090,7 +2122,7 @@ elf_m68k_finish_dynamic_sections (output_bfd, info)
 
   elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
 
-  return true;
+  return TRUE;
 }
 
 /* Given a .data section and a .emreloc in-memory section, store
@@ -2100,7 +2132,7 @@ elf_m68k_finish_dynamic_sections (output_bfd, info)
    after the add_symbols entry point has been called for all the
    objects, and before the final_link entry point is called.  */
 
-boolean
+bfd_boolean
 bfd_m68k_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2120,7 +2152,7 @@ bfd_m68k_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
   *errmsg = NULL;
 
   if (datasec->reloc_count == 0)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
 
@@ -2205,7 +2237,7 @@ bfd_m68k_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
   if (internal_relocs != NULL
       && elf_section_data (datasec)->relocs != internal_relocs)
     free (internal_relocs);
-  return true;
+  return TRUE;
 
 error_return:
   if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
@@ -2213,7 +2245,7 @@ error_return:
   if (internal_relocs != NULL
       && elf_section_data (datasec)->relocs != internal_relocs)
     free (internal_relocs);
-  return false;
+  return FALSE;
 }
 
 static enum elf_reloc_type_class
index 789f72508bf19ad79fe72a127a53b3c748b7adfc..927418e03e5144ddade1f01337c61590f0315bfb 100644 (file)
@@ -36,23 +36,23 @@ static void mcore_elf_howto_init
 static reloc_howto_type * mcore_elf_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void mcore_elf_info_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
-static boolean mcore_elf_set_private_flags
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean mcore_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean mcore_elf_merge_private_bfd_data
+static bfd_boolean mcore_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 static bfd_reloc_status_type mcore_elf_unsupported_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean mcore_elf_relocate_section
+static bfd_boolean mcore_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 static asection * mcore_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean mcore_elf_gc_sweep_hook
+static bfd_boolean mcore_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean mcore_elf_check_relocs
+static bfd_boolean mcore_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
@@ -65,30 +65,30 @@ static reloc_howto_type mcore_elf_howto_raw[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,  /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_MCORE_NONE",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 32 bit relocation.  */
   HOWTO (R_MCORE_ADDR32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "ADDR32",              /* name *//* For compatability with coff/pe port.  */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0,                   /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 8 bits + 2 zero bits; jmpi/jsri/lrw instructions.
      Should not appear in object files.  */
@@ -96,15 +96,15 @@ static reloc_howto_type mcore_elf_howto_raw[] =
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mcore_elf_unsupported_reloc,   /* special_function */
         "R_MCORE_PCRELIMM8BY4",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* bsr/bt/bf/br instructions; 11 bits + 1 zero bit
      Span 2k instructions == 4k bytes.
@@ -113,45 +113,45 @@ static reloc_howto_type mcore_elf_howto_raw[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         11,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MCORE_PCRELIMM11BY2",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0,                   /* src_mask */
         0x7ff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 4 bits + 1 zero bit; 'loopt' instruction only; unsupported.  */
   HOWTO (R_MCORE_PCRELIMM4BY2, /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         4,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mcore_elf_unsupported_reloc,/* special_function */
         "R_MCORE_PCRELIMM4BY2",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 32-bit pc-relative. Eventually this will help support PIC code.  */
   HOWTO (R_MCORE_PCREL32,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MCORE_PCREL32",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0,                   /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Like PCRELIMM11BY2, this relocation indicates that there is a
      'jsri' at the specified address. There is a separate relocation
@@ -164,59 +164,59 @@ static reloc_howto_type mcore_elf_howto_raw[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         11,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MCORE_PCRELJSR_IMM11BY2", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0,                   /* src_mask */
         0x7ff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_MCORE_GNU_VTINHERIT, /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_MCORE_GNU_VTINHERIT", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_MCORE_GNU_VTENTRY,   /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont,/* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_MCORE_GNU_VTENTRY", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   HOWTO (R_MCORE_RELATIVE,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_MCORE_RELATIVE",    /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false)                 /* pcrel_offset */
+        FALSE)                 /* pcrel_offset */
 };
 
 #ifndef NUM_ELEM
@@ -275,7 +275,7 @@ static void
 mcore_elf_info_to_howto (abfd, cache_ptr, dst)
      bfd * abfd ATTRIBUTE_UNUSED;
      arelent * cache_ptr;
-     Elf32_Internal_Rela * dst;
+     Elf_Internal_Rela * dst;
 {
   if (! mcore_elf_howto_table [R_MCORE_PCRELIMM8BY4])  /* Initialize howto table if needed */
     mcore_elf_howto_init ();
@@ -286,7 +286,7 @@ mcore_elf_info_to_howto (abfd, cache_ptr, dst)
 }
 
 /* Function to set whether a module needs the -mrelocatable bit set.  */
-static boolean
+static bfd_boolean
 mcore_elf_set_private_flags (abfd, flags)
      bfd * abfd;
      flagword flags;
@@ -295,13 +295,13 @@ mcore_elf_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
-static boolean
+static bfd_boolean
 mcore_elf_merge_private_bfd_data (ibfd, obfd)
      bfd * ibfd;
      bfd * obfd;
@@ -311,18 +311,18 @@ mcore_elf_merge_private_bfd_data (ibfd, obfd)
 
   /* Check if we have the same endianess */
   if (! _bfd_generic_verify_endian_match (ibfd, obfd))
-    return false;
+    return FALSE;
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   new_flags = elf_elfheader (ibfd)->e_flags;
   old_flags = elf_elfheader (obfd)->e_flags;
 
   if (! elf_flags_init (obfd)) /* First call, no flags set */
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = new_flags;
     }
   else if (new_flags == old_flags)     /* Compatible flags are ok */
@@ -332,7 +332,7 @@ mcore_elf_merge_private_bfd_data (ibfd, obfd)
       /* FIXME */
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Don't pretend we can deal with unsupported relocs.  */
@@ -387,9 +387,9 @@ mcore_elf_unsupported_reloc (abfd, reloc_entry, symbol, data, input_section,
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
-                         contents, relocs, local_syms, local_sections)
+                           contents, relocs, local_syms, local_sections)
      bfd * output_bfd;
      struct bfd_link_info * info;
      bfd * input_bfd;
@@ -399,11 +399,11 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
      Elf_Internal_Sym * local_syms;
      asection ** local_sections;
 {
-  Elf_Internal_Shdr *           symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
+  Elf_Internal_Shdr * symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes = elf_sym_hashes (input_bfd);
-  Elf_Internal_Rela *           rel = relocs;
-  Elf_Internal_Rela *           relend = relocs + input_section->reloc_count;
-  boolean ret = true;
+  Elf_Internal_Rela * rel = relocs;
+  Elf_Internal_Rela * relend = relocs + input_section->reloc_count;
+  bfd_boolean ret = TRUE;
 
 #ifdef DEBUG
   fprintf (stderr,
@@ -415,7 +415,7 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 #endif
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   if (! mcore_elf_howto_table [R_MCORE_PCRELIMM8BY4])  /* Initialize howto table if needed */
     mcore_elf_howto_init ();
@@ -443,7 +443,7 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                              (int) r_type);
 
          bfd_set_error (bfd_error_bad_value);
-         ret = false;
+         ret = FALSE;
          continue;
        }
 
@@ -459,7 +459,7 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                              (int)r_type);
 
          bfd_set_error (bfd_error_bad_value);
-         ret = false;
+         ret = FALSE;
          continue;
        }
 
@@ -490,10 +490,10 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                        (info, h->root.root.string, input_bfd,
-                        input_section, rel->r_offset, true)))
-               return false;
+                        input_section, rel->r_offset, TRUE)))
+               return FALSE;
 
-             ret = false;
+             ret = FALSE;
              continue;
            }
        }
@@ -527,7 +527,7 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
       if (r != bfd_reloc_ok)
        {
-         ret = false;
+         ret = FALSE;
 
          switch (r)
            {
@@ -610,35 +610,35 @@ mcore_elf_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 mcore_elf_gc_sweep_hook (abfd, info, sec, relocs)
-     bfd *                     abfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info *    info ATTRIBUTE_UNUSED;
-     asection *                sec ATTRIBUTE_UNUSED;
+     bfd * abfd ATTRIBUTE_UNUSED;
+     struct bfd_link_info * info ATTRIBUTE_UNUSED;
+     asection * sec ATTRIBUTE_UNUSED;
      const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 mcore_elf_check_relocs (abfd, info, sec, relocs)
      bfd * abfd;
      struct bfd_link_info * info;
      asection * sec;
      const Elf_Internal_Rela * relocs;
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr * symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
   struct elf_link_hash_entry ** sym_hashes_end;
-  const Elf_Internal_Rela *     rel;
-  const Elf_Internal_Rela *     rel_end;
+  const Elf_Internal_Rela * rel;
+  const Elf_Internal_Rela * rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = & elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -666,19 +666,19 @@ mcore_elf_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_MCORE_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_MCORE_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
         }
     }
 
-  return true;
+  return TRUE;
 }
 
 #define TARGET_BIG_SYM         bfd_elf32_mcore_big_vec
index f1667321025e18f3c87f0adb45f2f1bdac62fc22..485bd2cc2ff30a1b2d61c1bd12a7f685f2a1dea3 100644 (file)
@@ -60,25 +60,28 @@ static bfd_reloc_status_type mips32_64bit_reloc
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static reloc_howto_type *mips_elf32_rtype_to_howto
-  PARAMS ((unsigned int, boolean));
+  PARAMS ((unsigned int, bfd_boolean));
 static void mips_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void mips_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
-static boolean mips_elf_sym_is_global PARAMS ((bfd *, asymbol *));
-static boolean mips_elf32_object_p PARAMS ((bfd *));
-static boolean mips_elf_is_local_label_name
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean mips_elf_sym_is_global
+  PARAMS ((bfd *, asymbol *));
+static bfd_boolean mips_elf32_object_p
+  PARAMS ((bfd *));
+static bfd_boolean mips_elf_is_local_label_name
   PARAMS ((bfd *, const char *));
 static bfd_reloc_status_type mips16_jump_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type mips16_gprel_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type mips_elf_final_gp
-  PARAMS ((bfd *, asymbol *, boolean, char **, bfd_vma *));
-static boolean mips_elf_assign_gp PARAMS ((bfd *, bfd_vma *));
-static boolean elf32_mips_grok_prstatus
+  PARAMS ((bfd *, asymbol *, bfd_boolean, char **, bfd_vma *));
+static bfd_boolean mips_elf_assign_gp
+  PARAMS ((bfd *, bfd_vma *));
+static bfd_boolean elf32_mips_grok_prstatus
   PARAMS ((bfd *, Elf_Internal_Note *));
-static boolean elf32_mips_grok_psinfo
+static bfd_boolean elf32_mips_grok_psinfo
   PARAMS ((bfd *, Elf_Internal_Note *));
 static irix_compat_t elf32_mips_irix_compat
   PARAMS ((bfd *));
@@ -110,67 +113,67 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit relocation.  */
   HOWTO (R_MIPS_16,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_16",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit relocation.  */
   HOWTO (R_MIPS_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_32",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit symbol relative relocation.  */
   HOWTO (R_MIPS_REL32,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_REL32",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 26 bit jump address.  */
   HOWTO (R_MIPS_26,            /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -178,130 +181,130 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
                                   bits must match the PC + 4.  */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_26",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03ffffff,            /* src_mask */
         0x03ffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of symbol value.  */
   HOWTO (R_MIPS_HI16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_hi16_reloc,   /* special_function */
         "R_MIPS_HI16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of symbol value.  */
   HOWTO (R_MIPS_LO16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_lo16_reloc,   /* special_function */
         "R_MIPS_LO16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GP relative reference.  */
   HOWTO (R_MIPS_GPREL16,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         _bfd_mips_elf32_gprel16_reloc, /* special_function */
         "R_MIPS_GPREL16",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to literal section.  */
   HOWTO (R_MIPS_LITERAL,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         _bfd_mips_elf32_gprel16_reloc, /* special_function */
         "R_MIPS_LITERAL",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to global offset table.  */
   HOWTO (R_MIPS_GOT16,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_got16_reloc,  /* special_function */
         "R_MIPS_GOT16",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit PC relative reference.  */
   HOWTO (R_MIPS_PC16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_PC16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 16 bit call through global offset table.  */
   HOWTO (R_MIPS_CALL16,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL16",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit GP relative reference.  */
   HOWTO (R_MIPS_GPREL32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_gprel32_reloc, /* special_function */
         "R_MIPS_GPREL32",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The remaining relocs are defined on Irix 5, although they are
      not defined by the ABI.  */
@@ -314,15 +317,15 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         5,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SHIFT5",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000007c0,            /* src_mask */
         0x000007c0,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 6 bit shift field.  */
   /* FIXME: This is not handled correctly; a special function is
@@ -331,120 +334,120 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SHIFT6",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000007c4,            /* src_mask */
         0x000007c4,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 64 bit relocation.  */
   HOWTO (R_MIPS_64,            /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips32_64bit_reloc,    /* special_function */
         "R_MIPS_64",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement in the global offset table.  */
   HOWTO (R_MIPS_GOT_DISP,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_DISP",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement to page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_PAGE,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_PAGE",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Offset from page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_OFST,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_OFST",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_HI16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_HI16",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_LO16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_LO16",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit subtraction.  Used in the N32 ABI.  */
   HOWTO (R_MIPS_SUB,           /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SUB",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used to cause the linker to insert and delete instructions?  */
   EMPTY_HOWTO (R_MIPS_INSERT_A),
@@ -456,75 +459,75 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_HIGHER",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Get the highest value of a 64 bit addend.  */
   HOWTO (R_MIPS_HIGHEST,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_HIGHEST",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_HI16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_HI16",    /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_LO16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_LO16",    /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Section displacement.  */
   HOWTO (R_MIPS_SCN_DISP,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SCN_DISP",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (R_MIPS_REL16),
   EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE),
@@ -537,15 +540,15 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_JALR",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0x00000000,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 /* The reloc used for BFD_RELOC_CTOR when doing a 64 bit link.  This
@@ -555,15 +558,15 @@ static reloc_howto_type elf_mips_ctor64_howto =
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips32_64bit_reloc,    /* special_function */
         "R_MIPS_64",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* The reloc used for the mips16 jump instruction.  */
 static reloc_howto_type elf_mips16_jump_howto =
@@ -571,7 +574,7 @@ static reloc_howto_type elf_mips16_jump_howto =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -579,10 +582,10 @@ static reloc_howto_type elf_mips16_jump_howto =
                                   bits must match the PC.  */
         mips16_jump_reloc,     /* special_function */
         "R_MIPS16_26",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3ffffff,             /* src_mask */
         0x3ffffff,             /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* The reloc used for the mips16 gprel instruction.  */
 static reloc_howto_type elf_mips16_gprel_howto =
@@ -590,15 +593,15 @@ static reloc_howto_type elf_mips16_gprel_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips16_gprel_reloc,    /* special_function */
         "R_MIPS16_GPREL",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x07ff001f,            /* src_mask */
         0x07ff001f,            /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* GNU extensions for embedded-pic.  */
 /* High 16 bits of symbol value, pc-relative.  */
@@ -607,15 +610,15 @@ static reloc_howto_type elf_mips_gnu_rel_hi16 =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_hi16_reloc,   /* special_function */
         "R_MIPS_GNU_REL_HI16", /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true);                 /* pcrel_offset */
+        TRUE);                 /* pcrel_offset */
 
 /* Low 16 bits of symbol value, pc-relative.  */
 static reloc_howto_type elf_mips_gnu_rel_lo16 =
@@ -623,15 +626,15 @@ static reloc_howto_type elf_mips_gnu_rel_lo16 =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_lo16_reloc,   /* special_function */
         "R_MIPS_GNU_REL_LO16", /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true);                 /* pcrel_offset */
+        TRUE);                 /* pcrel_offset */
 
 /* 16 bit offset for pc-relative branches.  */
 static reloc_howto_type elf_mips_gnu_rel16_s2 =
@@ -639,15 +642,15 @@ static reloc_howto_type elf_mips_gnu_rel16_s2 =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GNU_REL16_S2", /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true);                 /* pcrel_offset */
+        TRUE);                 /* pcrel_offset */
 
 /* 64 bit pc-relative.  */
 static reloc_howto_type elf_mips_gnu_pcrel64 =
@@ -655,15 +658,15 @@ static reloc_howto_type elf_mips_gnu_pcrel64 =
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_PC64",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        true);                 /* pcrel_offset */
+        TRUE);                 /* pcrel_offset */
 
 /* 32 bit pc-relative.  */
 static reloc_howto_type elf_mips_gnu_pcrel32 =
@@ -671,15 +674,15 @@ static reloc_howto_type elf_mips_gnu_pcrel32 =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_PC32",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true);                 /* pcrel_offset */
+        TRUE);                 /* pcrel_offset */
 
 /* GNU extension to record C++ vtable hierarchy */
 static reloc_howto_type elf_mips_gnu_vtinherit_howto =
@@ -687,15 +690,15 @@ static reloc_howto_type elf_mips_gnu_vtinherit_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_MIPS_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* GNU extension to record C++ vtable member usage */
 static reloc_howto_type elf_mips_gnu_vtentry_howto =
@@ -703,15 +706,15 @@ static reloc_howto_type elf_mips_gnu_vtentry_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn, /* special_function */
         "R_MIPS_GNU_VTENTRY",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* Do a R_MIPS_HI16 relocation.  This has to be done in combination
    with a R_MIPS_LO16 reloc, because there is a carry from the LO16 to
@@ -768,17 +771,17 @@ mips_elf_hi16_reloc (abfd, reloc_entry, symbol, data, input_section,
 
   if (strcmp (bfd_asymbol_name (symbol), "_gp_disp") == 0)
     {
-      boolean relocateable;
+      bfd_boolean relocateable;
       bfd_vma gp;
 
       if (ret == bfd_reloc_undefined)
        abort ();
 
       if (output_bfd != NULL)
-       relocateable = true;
+       relocateable = TRUE;
       else
        {
-         relocateable = false;
+         relocateable = FALSE;
          output_bfd = symbol->section->output_section->owner;
        }
 
@@ -902,7 +905,7 @@ mips_elf_lo16_reloc (abfd, reloc_entry, symbol, data, input_section,
 
       /* FIXME: Does this case ever occur?  */
 
-      ret = mips_elf_final_gp (output_bfd, symbol, true, error_message, &gp);
+      ret = mips_elf_final_gp (output_bfd, symbol, TRUE, error_message, &gp);
       if (ret != bfd_reloc_ok)
        return ret;
 
@@ -969,10 +972,10 @@ mips_elf_got16_reloc (abfd, reloc_entry, symbol, data, input_section,
   abort ();
 }
 
-/* Set the GP value for OUTPUT_BFD.  Returns false if this is a
+/* Set the GP value for OUTPUT_BFD.  Returns FALSE if this is a
    dangerous relocation.  */
 
-static boolean
+static bfd_boolean
 mips_elf_assign_gp (output_bfd, pgp)
      bfd *output_bfd;
      bfd_vma *pgp;
@@ -984,7 +987,7 @@ mips_elf_assign_gp (output_bfd, pgp)
   /* If we've already figured out what GP will be, just return it.  */
   *pgp = _bfd_get_gp_value (output_bfd);
   if (*pgp)
-    return true;
+    return TRUE;
 
   count = bfd_get_symcount (output_bfd);
   sym = bfd_get_outsymbols (output_bfd);
@@ -1014,10 +1017,10 @@ mips_elf_assign_gp (output_bfd, pgp)
       /* Only get the error once.  */
       *pgp = 4;
       _bfd_set_gp_value (output_bfd, *pgp);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We have to figure out the gp value, so that we can adjust the
@@ -1030,7 +1033,7 @@ static bfd_reloc_status_type
 mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
      bfd *output_bfd;
      asymbol *symbol;
-     boolean relocateable;
+     bfd_boolean relocateable;
      char **error_message;
      bfd_vma *pgp;
 {
@@ -1080,7 +1083,7 @@ _bfd_mips_elf32_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1097,10 +1100,10 @@ _bfd_mips_elf32_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
     }
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = true;
+    relocateable = TRUE;
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -1117,9 +1120,9 @@ _bfd_mips_elf32_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
 /* Do a R_MIPS_GPREL32 relocation.  This is a 32 bit value which must
    become the offset from the gp register.  */
 
-static bfd_reloc_status_type gprel32_with_gp PARAMS ((bfd *, asymbol *,
-                                                     arelent *, asection *,
-                                                     boolean, PTR, bfd_vma));
+static bfd_reloc_status_type gprel32_with_gp
+  PARAMS ((bfd *, asymbol *, arelent *, asection *, bfd_boolean, PTR,
+          bfd_vma));
 
 static bfd_reloc_status_type
 mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
@@ -1132,7 +1135,7 @@ mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1151,12 +1154,12 @@ mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
 
   if (output_bfd != (bfd *) NULL)
     {
-      relocateable = true;
+      relocateable = TRUE;
       gp = _bfd_get_gp_value (output_bfd);
     }
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
 
       ret = mips_elf_final_gp (output_bfd, symbol, relocateable,
@@ -1176,7 +1179,7 @@ gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data,
      asymbol *symbol;
      arelent *reloc_entry;
      asection *input_section;
-     boolean relocateable;
+     bfd_boolean relocateable;
      PTR data;
      bfd_vma gp;
 {
@@ -1290,13 +1293,13 @@ mips16_jump_reloc (abfd, reloc_entry, symbol, data, input_section,
 
   /* FIXME.  */
   {
-    static boolean warned;
+    static bfd_boolean warned;
 
     if (! warned)
       (*_bfd_error_handler)
        (_("Linking mips16 objects into %s format is not supported"),
         bfd_get_target (input_section->output_section->owner));
-    warned = true;
+    warned = TRUE;
   }
 
   return bfd_reloc_undefined;
@@ -1315,7 +1318,7 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
   unsigned short extend, insn;
@@ -1334,10 +1337,10 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
     }
 
   if (output_bfd != NULL)
-    relocateable = true;
+    relocateable = TRUE;
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -1464,12 +1467,12 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
     }
 }
 
-/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure.  */
+/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure.  */
 
 static reloc_howto_type *
 mips_elf32_rtype_to_howto (r_type, rela_p)
      unsigned int r_type;
-     boolean rela_p ATTRIBUTE_UNUSED;
+     bfd_boolean rela_p ATTRIBUTE_UNUSED;
 {
   switch (r_type)
     {
@@ -1497,18 +1500,18 @@ mips_elf32_rtype_to_howto (r_type, rela_p)
     }
 }
 
-/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure.  */
+/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure.  */
 
 static void
 mips_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
   r_type = ELF32_R_TYPE (dst->r_info);
-  cache_ptr->howto = mips_elf32_rtype_to_howto (r_type, false);
+  cache_ptr->howto = mips_elf32_rtype_to_howto (r_type, FALSE);
 
   /* The addend for a GPREL16 or LITERAL relocation comes from the GP
      value for the object file.  We get the addend now, rather than
@@ -1520,21 +1523,18 @@ mips_info_to_howto_rel (abfd, cache_ptr, dst)
     cache_ptr->addend = elf_gp (abfd);
 }
 
-/* Given a MIPS Elf32_Internal_Rela, fill in an arelent structure.  */
+/* Given a MIPS Elf_Internal_Rela, fill in an arelent structure.  */
 
 static void
 mips_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd *abfd;
      arelent *cache_ptr;
-     Elf32_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
-  /* Since an Elf32_Internal_Rel is an initial prefix of an
-     Elf32_Internal_Rela, we can just use mips_info_to_howto_rel
-     above.  */
-  mips_info_to_howto_rel (abfd, cache_ptr, (Elf32_Internal_Rel *) dst);
+  mips_info_to_howto_rel (abfd, cache_ptr, dst);
 
   /* If we ever need to do any extra processing with dst->r_addend
-     (the field omitted in an Elf32_Internal_Rel) we can do it here.  */
+     (the field omitted in an Elf_Internal_Rel) we can do it here.  */
 }
 \f
 /* Determine whether a symbol is global for the purposes of splitting
@@ -1543,7 +1543,7 @@ mips_info_to_howto_rela (abfd, cache_ptr, dst)
    symbols.  On most ELF targets the split is between static symbols
    and externally visible symbols.  */
 
-static boolean
+static bfd_boolean
 mips_elf_sym_is_global (abfd, sym)
      bfd *abfd ATTRIBUTE_UNUSED;
      asymbol *sym;
@@ -1558,7 +1558,7 @@ mips_elf_sym_is_global (abfd, sym)
 \f
 /* Set the right machine number for a MIPS ELF file.  */
 
-static boolean
+static bfd_boolean
 mips_elf32_object_p (abfd)
      bfd *abfd;
 {
@@ -1568,26 +1568,26 @@ mips_elf32_object_p (abfd)
      sorted correctly such that local symbols precede global symbols,
      and the sh_info field in the symbol table is not always right.  */
   if (SGI_COMPAT (abfd))
-    elf_bad_symtab (abfd) = true;
+    elf_bad_symtab (abfd) = TRUE;
 
   if (ABI_N32_P (abfd))
-    return false;
+    return FALSE;
 
   mach = _bfd_elf_mips_mach (elf_elfheader (abfd)->e_flags);
   bfd_default_set_arch_mach (abfd, bfd_arch_mips, mach);
 
-  return true;
+  return TRUE;
 }
 \f
 /* MIPS ELF local labels start with '$', not 'L'.  */
 
-static boolean
+static bfd_boolean
 mips_elf_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
 {
   if (name[0] == '$')
-    return true;
+    return TRUE;
 
   /* On Irix 6, the labels go back to starting with '.', so we accept
      the generic ELF local label syntax as well.  */
@@ -1595,7 +1595,7 @@ mips_elf_is_local_label_name (abfd, name)
 }
 \f
 /* Support for core dump NOTE sections.  */
-static boolean
+static bfd_boolean
 elf32_mips_grok_prstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -1606,7 +1606,7 @@ elf32_mips_grok_prstatus (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 256:                /* Linux/MIPS */
        /* pr_cursig */
@@ -1627,7 +1627,7 @@ elf32_mips_grok_prstatus (abfd, note)
                                          raw_size, note->descpos + offset);
 }
 
-static boolean
+static bfd_boolean
 elf32_mips_grok_psinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -1635,7 +1635,7 @@ elf32_mips_grok_psinfo (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 128:                /* Linux/MIPS elf_prpsinfo */
        elf_tdata (abfd)->core_program
@@ -1656,7 +1656,7 @@ elf32_mips_grok_psinfo (abfd, note)
       command[n - 1] = '\0';
   }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Depending on the target vector we generate some version of Irix
@@ -1679,7 +1679,7 @@ elf32_mips_irix_compat (abfd)
    after the add_symbols entry point has been called for all the
    objects, and before the final_link entry point is called.  */
 
-boolean
+bfd_boolean
 bfd_mips_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1698,7 +1698,7 @@ bfd_mips_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
   *errmsg = NULL;
 
   if (datasec->reloc_count == 0)
-    return true;
+    return TRUE;
 
   /* Read this BFD's symbols if we haven't done so already, or get the cached
      copy if it exists.  */
@@ -1797,7 +1797,7 @@ bfd_mips_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
   if (isymbuf != NULL
       && symtab_hdr->contents != (unsigned char *) isymbuf)
     free (isymbuf);
-  return true;
+  return TRUE;
 
  error_return:
   if (internal_relocs != NULL
@@ -1806,7 +1806,7 @@ bfd_mips_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
   if (isymbuf != NULL
       && symtab_hdr->contents != (unsigned char *) isymbuf)
     free (isymbuf);
-  return false;
+  return FALSE;
 }
 \f
 /* ECOFF swapping routines.  These are used when dealing with the
@@ -1858,9 +1858,9 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
    a value of 0x1000, and we are compatible.  */
 #define ELF_MAXPAGESIZE                        0x1000
 
-#define elf_backend_collect            true
-#define elf_backend_type_change_ok     true
-#define elf_backend_can_gc_sections    true
+#define elf_backend_collect            TRUE
+#define elf_backend_type_change_ok     TRUE
+#define elf_backend_can_gc_sections    TRUE
 #define elf_info_to_howto              mips_info_to_howto_rela
 #define elf_info_to_howto_rel          mips_info_to_howto_rel
 #define elf_backend_sym_is_global      mips_elf_sym_is_global
@@ -1907,7 +1907,7 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
 #define elf_backend_may_use_rel_p      1
 #define elf_backend_may_use_rela_p     0
 #define elf_backend_default_use_rela_p 0
-#define elf_backend_sign_extend_vma    true
+#define elf_backend_sign_extend_vma    TRUE
 
 #define elf_backend_discard_info       _bfd_mips_elf_discard_info
 #define elf_backend_ignore_discarded_relocs \
index 7092110ac911ba2334f849c4d2c9864949264b13..8e8d0bc52fa00852b56ab852567f8adee689f146 100644 (file)
@@ -30,26 +30,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *openrisc_reloc_type_lookup
   PARAMS ((bfd * , bfd_reloc_code_real_type));
 static void openrisc_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
-static boolean openrisc_elf_relocate_section
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean openrisc_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 static bfd_reloc_status_type openrisc_final_link_relocate
   PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
            Elf_Internal_Rela *, bfd_vma));
-static boolean openrisc_elf_gc_sweep_hook
+static bfd_boolean openrisc_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
            const Elf_Internal_Rela *));
 static asection * openrisc_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean openrisc_elf_check_relocs
+static bfd_boolean openrisc_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean openrisc_elf_object_p
+static bfd_boolean openrisc_elf_object_p
   PARAMS ((bfd *));
 static void openrisc_elf_final_write_processing
-  PARAMS ((bfd *, boolean));
+  PARAMS ((bfd *, bfd_boolean));
 
 
 static reloc_howto_type openrisc_elf_howto_table[] =
@@ -59,148 +59,148 @@ static reloc_howto_type openrisc_elf_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_OPENRISC_NONE",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A PC relative 26 bit relocation, right shifted by 2.  */
   HOWTO (R_OPENRISC_INSN_REL_26, /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_OPENRISC_INSN_REL_26", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0x03ffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A absolute 26 bit relocation, right shifted by 2.  */
   HOWTO (R_OPENRISC_INSN_ABS_26, /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_OPENRISC_INSN_ABS_26", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0x03ffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_OPENRISC_LO_16_IN_INSN, /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_OPENRISC_LO_16_IN_INSN", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_OPENRISC_HI_16_IN_INSN, /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_OPENRISC_HI_16_IN_INSN",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 8 bit absolute relocation.  */
   HOWTO (R_OPENRISC_8,         /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_OPENRISC_8",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000,                /* src_mask */
         0x00ff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit absolute relocation.  */
   HOWTO (R_OPENRISC_16,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_OPENRISC_16",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x00000000,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  */
   HOWTO (R_OPENRISC_32,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_OPENRISC_32",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x00000000,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_OPENRISC_GNU_VTINHERIT, /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_OPENRISC_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_OPENRISC_GNU_VTENTRY, /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn, /* special_function */
         "R_OPENRISC_GNU_VTENTRY", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 /* Map BFD reloc types to OpenRISC ELF reloc types.  */
@@ -246,7 +246,7 @@ static void
 openrisc_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd * abfd ATTRIBUTE_UNUSED;
      arelent * cache_ptr;
-     Elf32_Internal_Rela * dst;
+     Elf_Internal_Rela * dst;
 {
   unsigned int r_type;
 
@@ -318,7 +318,7 @@ openrisc_final_link_relocate (howto, input_bfd, input_section, contents, rel,
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 openrisc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                               contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -336,7 +336,7 @@ openrisc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -406,8 +406,8 @@ openrisc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (!((*info->callbacks->undefined_symbol)
                    (info, h->root.root.string, input_bfd,
-                    input_section, rel->r_offset, true)))
-               return false;
+                    input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -429,7 +429,7 @@ openrisc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
            case bfd_reloc_undefined:
              r = info->callbacks->undefined_symbol
-               (info, name, input_bfd, input_section, rel->r_offset, true);
+               (info, name, input_bfd, input_section, rel->r_offset, TRUE);
              break;
 
            case bfd_reloc_outofrange:
@@ -454,11 +454,11 @@ openrisc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              (info, msg, name, input_bfd, input_section, rel->r_offset);
 
          if (!r)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -503,21 +503,21 @@ openrisc_elf_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 openrisc_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      asection *sec ATTRIBUTE_UNUSED;
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 openrisc_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -530,7 +530,7 @@ openrisc_elf_check_relocs (abfd, info, sec, relocs)
   const Elf_Internal_Rela *rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -557,24 +557,24 @@ openrisc_elf_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
        case R_OPENRISC_GNU_VTINHERIT:
          if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_OPENRISC_GNU_VTENTRY:
          if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-           return false;
+           return FALSE;
          break;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the right machine number.  */
 
-static boolean
+static bfd_boolean
 openrisc_elf_object_p (abfd)
      bfd *abfd;
 {
@@ -584,7 +584,7 @@ openrisc_elf_object_p (abfd)
       (void) bfd_default_set_arch_mach (abfd, bfd_arch_openrisc, 0);
       break;
     }
-  return true;
+  return TRUE;
 }
 
 /* Store the machine number in the flags field.  */
@@ -592,7 +592,7 @@ openrisc_elf_object_p (abfd)
 static void
 openrisc_elf_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   unsigned long val;
 
index 39219e94b090a848f3362b87f3084841d5771a36..65f8e2617d3fb2055e30a0895aa243c59fac819c 100644 (file)
@@ -1,5 +1,5 @@
 /* OR32-specific support for 32-bit ELF
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright 2002 Free Software Foundation, Inc.
    Contributed by Ivan Guzvinec  <ivang@opencores.org>
 
    This file is part of BFD, the Binary File Descriptor library.
 #include "elf/or32.h"
 #include "libiberty.h"
 
-static reloc_howto_type *     bfd_elf32_bfd_reloc_type_lookup  PARAMS ((bfd *, bfd_reloc_code_real_type));
-static void                   or32_info_to_howto_rel           PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
-static boolean                or32_elf_object_p                PARAMS ((bfd *));
-static void                   or32_elf_final_write_processing  PARAMS ((bfd *, boolean));
-static bfd_reloc_status_type  or32_elf_32_reloc                PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static bfd_reloc_status_type  or32_elf_16_reloc                PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static bfd_reloc_status_type  or32_elf_8_reloc                 PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static bfd_reloc_status_type  or32_elf_const_reloc             PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static bfd_reloc_status_type  or32_elf_consth_reloc            PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static bfd_reloc_status_type  or32_elf_jumptarg_reloc          PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
+static void or32_info_to_howto_rel
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean or32_elf_object_p
+  PARAMS ((bfd *));
+static void or32_elf_final_write_processing
+  PARAMS ((bfd *, bfd_boolean));
+static bfd_reloc_status_type or32_elf_32_reloc
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static bfd_reloc_status_type or32_elf_16_reloc
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static bfd_reloc_status_type or32_elf_8_reloc
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static bfd_reloc_status_type or32_elf_const_reloc
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static bfd_reloc_status_type or32_elf_consth_reloc
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static bfd_reloc_status_type or32_elf_jumptarg_reloc
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 
 /* Try to minimize the amount of space occupied by relocation tables
    on the ROM (not that the ROM won't be swamped by other ELF overhead).  */
@@ -47,135 +57,135 @@ static reloc_howto_type elf_or32_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_OR32_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 32 bit relocation.  */
   HOWTO (R_OR32_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         or32_elf_32_reloc,     /* special_function */
         "R_OR32_32",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 16 bit relocation.  */
   HOWTO (R_OR32_16,            /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         or32_elf_16_reloc,     /* special_function */
         "R_OR32_16",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 8 bit relocation.  */
   HOWTO (R_OR32_8,             /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         or32_elf_8_reloc,      /* special_function */
         "R_OR32_8",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard low 16 bit relocation.  */
   HOWTO (R_OR32_CONST,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         or32_elf_const_reloc,  /* special_function */
         "R_OR32_CONST",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard high 16 bit relocation.  */
   HOWTO (R_OR32_CONSTH,                /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         or32_elf_consth_reloc, /* special_function */
         "R_OR32_CONSTH",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff0000,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard branch relocation.  */
   HOWTO (R_OR32_JUMPTARG,      /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         28,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         or32_elf_jumptarg_reloc,/* special_function */
         "R_OR32_JUMPTARG",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x03ffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_OR32_GNU_VTINHERIT, /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_OR32_GNU_VTINHERIT", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_OR32_GNU_VTENTRY,     /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_OR32_GNU_VTENTRY",   /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 };
 
 /* Map BFD reloc types to OR32 ELF reloc types.  */
@@ -221,7 +231,7 @@ static void
 or32_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -232,12 +242,12 @@ or32_info_to_howto_rel (abfd, cache_ptr, dst)
 
 /* Set the right machine number for an OR32 ELF file.  */
 
-static boolean
+static bfd_boolean
 or32_elf_object_p (abfd)
      bfd *abfd;
 {
   (void) bfd_default_set_arch_mach (abfd, bfd_arch_or32, 0);
-  return true;
+  return TRUE;
 }
 
 /* The final processing done just before writing out an OR32 ELF object file.
@@ -246,7 +256,7 @@ or32_elf_object_p (abfd)
 static void
 or32_elf_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   int mach;
   unsigned long val;
index 5620b5b7830e53aaa0c3fbdaa7daf81d12a71a84..c8127931a2a781288e7226da23bede5c28513c94 100644 (file)
@@ -1,5 +1,5 @@
 /* picoJava specific support for 32-bit ELF
-   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Steve Chamberlan of Transmeta (sac@pobox.com).
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ static reloc_howto_type *pj_elf_reloc_type_lookup
 static void pj_elf_info_to_howto
   PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void pj_elf_final_write_processing
-  PARAMS ((bfd *, boolean));
+  PARAMS ((bfd *, bfd_boolean));
 
 static reloc_howto_type pj_elf_howto_table[] =
 {
@@ -41,76 +41,76 @@ static reloc_howto_type pj_elf_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         pj_elf_reloc,          /* special_function */
         "R_PJ_NONE",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  /* 32 bit absolute relocation.  Setting partial_inplace to true and
+  /* 32 bit absolute relocation.  Setting partial_inplace to TRUE and
      src_mask to a non-zero value is similar to the COFF toolchain.  */
   HOWTO (R_PJ_DATA_DIR32,              /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         pj_elf_reloc,          /* special_function */
         "R_PJ_DIR32",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit PC relative relocation.  */
   HOWTO (R_PJ_CODE_REL32,              /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         pj_elf_reloc,          /* special_function */
         "R_PJ_REL32",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
 /* 16 bit PC relative relocation.  */
   HOWTO (R_PJ_CODE_REL16,              /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overf6w */
         pj_elf_reloc,          /* special_function */
         "R_PJ_REL16",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
   EMPTY_HOWTO (4),
   EMPTY_HOWTO (5),
   HOWTO (R_PJ_CODE_DIR32,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         pj_elf_reloc,          /* special_function */
         "R_PJ_CODE_DIR32",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (7),
   EMPTY_HOWTO (8),
@@ -123,60 +123,59 @@ static reloc_howto_type pj_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         pj_elf_reloc,          /* special_function */
         "R_PJ_LO16",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
     HOWTO (R_PJ_CODE_HI16,     /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         pj_elf_reloc,          /* special_function */
         "R_PJ_HI16",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_PJ_GNU_VTINHERIT,    /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_PJ_GNU_VTINHERIT",  /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_PJ_GNU_VTENTRY,     /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_PJ_GNU_VTENTRY",   /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
-
+         FALSE),                /* pcrel_offset */
 };
 
 /* This function is used for normal relocs.  This is like the COFF
@@ -329,7 +328,7 @@ pj_elf_info_to_howto (abfd, cache_ptr, dst)
 static void
 pj_elf_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
     elf_elfheader (abfd)->e_flags |= EF_PICOJAVA_ARCH;
     elf_elfheader (abfd)->e_flags |= EF_PICOJAVA_GNUCALLS;
index 243ff1445fcf252676aec4bda38939f82c15b5ad..2406c6751b5dcf8c6f33a3f3b3fcc199345ced0a 100644 (file)
@@ -36,85 +36,66 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *ppc_elf_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void ppc_elf_info_to_howto
-  PARAMS ((bfd *abfd, arelent *cache_ptr, Elf32_Internal_Rela *dst));
-static void ppc_elf_howto_init PARAMS ((void));
-static int ppc_elf_sort_rela PARAMS ((const PTR, const PTR));
-static boolean ppc_elf_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
+  PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst));
+static void ppc_elf_howto_init
+  PARAMS ((void));
+static int ppc_elf_sort_rela
+  PARAMS ((const PTR, const PTR));
+static bfd_boolean ppc_elf_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
 static bfd_reloc_status_type ppc_elf_addr16_ha_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean ppc_elf_object_p PARAMS ((bfd *));
-static boolean ppc_elf_set_private_flags PARAMS ((bfd *, flagword));
-static boolean ppc_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
-
-static int ppc_elf_additional_program_headers PARAMS ((bfd *));
-static boolean ppc_elf_modify_segment_map PARAMS ((bfd *));
-
+static bfd_boolean ppc_elf_object_p
+  PARAMS ((bfd *));
+static bfd_boolean ppc_elf_set_private_flags
+  PARAMS ((bfd *, flagword));
+static bfd_boolean ppc_elf_merge_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+static int ppc_elf_additional_program_headers
+  PARAMS ((bfd *));
+static bfd_boolean ppc_elf_modify_segment_map
+  PARAMS ((bfd *));
 static asection *ppc_elf_create_got
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean ppc_elf_create_dynamic_sections
+static bfd_boolean ppc_elf_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-
-static boolean ppc_elf_section_from_shdr PARAMS ((bfd *,
-                                                 Elf32_Internal_Shdr *,
-                                                 const char *));
-static boolean ppc_elf_fake_sections
-  PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *));
-
+static bfd_boolean ppc_elf_section_from_shdr
+  PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
+static bfd_boolean ppc_elf_fake_sections
+  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
 static elf_linker_section_t *ppc_elf_create_linker_section
-  PARAMS ((bfd *abfd,
-          struct bfd_link_info *info,
+  PARAMS ((bfd *abfd, struct bfd_link_info *info,
           enum elf_linker_section_enum));
-
-static boolean ppc_elf_check_relocs PARAMS ((bfd *,
-                                            struct bfd_link_info *,
-                                            asection *,
-                                            const Elf_Internal_Rela *));
-
-static asection * ppc_elf_gc_mark_hook PARAMS ((asection *sec,
-                                               struct bfd_link_info *info,
-                                               Elf_Internal_Rela *rel,
-                                               struct elf_link_hash_entry *h,
-                                               Elf_Internal_Sym *sym));
-
-static boolean ppc_elf_gc_sweep_hook PARAMS ((bfd *abfd,
-                                             struct bfd_link_info *info,
-                                             asection *sec,
-                                             const Elf_Internal_Rela *relocs));
-
-static boolean ppc_elf_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *,
-                                                     struct elf_link_hash_entry *));
-
-static boolean ppc_elf_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *));
-
-static boolean ppc_elf_relocate_section PARAMS ((bfd *,
-                                                struct bfd_link_info *info,
-                                                bfd *,
-                                                asection *,
-                                                bfd_byte *,
-                                                Elf_Internal_Rela *relocs,
-                                                Elf_Internal_Sym *local_syms,
-                                                asection **));
-
-static boolean ppc_elf_add_symbol_hook  PARAMS ((bfd *,
-                                                struct bfd_link_info *,
-                                                const Elf_Internal_Sym *,
-                                                const char **,
-                                                flagword *,
-                                                asection **,
-                                                bfd_vma *));
-
-static boolean ppc_elf_finish_dynamic_symbol PARAMS ((bfd *,
-                                                     struct bfd_link_info *,
-                                                     struct elf_link_hash_entry *,
-                                                     Elf_Internal_Sym *));
-
-static boolean ppc_elf_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean ppc_elf_check_relocs
+  PARAMS ((bfd *, struct bfd_link_info *, asection *,
+          const Elf_Internal_Rela *));
+static asection * ppc_elf_gc_mark_hook
+  PARAMS ((asection *sec, struct bfd_link_info *info, Elf_Internal_Rela *rel,
+          struct elf_link_hash_entry *h, Elf_Internal_Sym *sym));
+static bfd_boolean ppc_elf_gc_sweep_hook
+  PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *sec,
+          const Elf_Internal_Rela *relocs));
+static bfd_boolean ppc_elf_adjust_dynamic_symbol
+  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
+static bfd_boolean ppc_elf_size_dynamic_sections
+  PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean ppc_elf_relocate_section
+  PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *,
+          Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms,
+          asection **));
+static bfd_boolean ppc_elf_add_symbol_hook
+  PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
+          const char **, flagword *, asection **, bfd_vma *));
+static bfd_boolean ppc_elf_finish_dynamic_symbol
+  PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
+          Elf_Internal_Sym *));
+static bfd_boolean ppc_elf_finish_dynamic_sections
+  PARAMS ((bfd *, struct bfd_link_info *));
 static enum elf_reloc_type_class ppc_elf_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
-static boolean ppc_elf_grok_prstatus
+static bfd_boolean ppc_elf_grok_prstatus
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static boolean ppc_elf_grok_psinfo
+static bfd_boolean ppc_elf_grok_psinfo
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
 
 #define BRANCH_PREDICT_BIT 0x200000            /* branch prediction bit for branch taken relocs */
@@ -161,30 +142,30 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_NONE",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 32 bit relocation.  */
   HOWTO (R_PPC_ADDR32,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_ADDR32",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An absolute 26 bit branch; the lower two bits must be zero.
      FIXME: we don't check that, we just clear them.  */
@@ -192,60 +173,60 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_ADDR24",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffffc,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 16 bit relocation.  */
   HOWTO (R_PPC_ADDR16,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_ADDR16",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit relocation without overflow.  */
   HOWTO (R_PPC_ADDR16_LO,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_ADDR16_LO",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The high order 16 bits of an address.  */
   HOWTO (R_PPC_ADDR16_HI,      /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_ADDR16_HI",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The high order 16 bits of an address, plus 1 if the contents of
      the low 16 bits, treated as a signed number, is negative.  */
@@ -253,15 +234,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc_elf_addr16_ha_reloc, /* special_function */
         "R_PPC_ADDR16_HA",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An absolute 16 bit branch; the lower two bits must be zero.
      FIXME: we don't check that, we just clear them.  */
@@ -269,15 +250,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_ADDR14",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An absolute 16 bit branch, for which bit 10 should be set to
      indicate that the branch is expected to be taken. The lower two
@@ -286,15 +267,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_ADDR14_BRTAKEN",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An absolute 16 bit branch, for which bit 10 should be set to
      indicate that the branch is not expected to be taken.  The lower
@@ -303,45 +284,45 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_ADDR14_BRNTAKEN",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A relative 26 bit branch; the lower two bits must be zero.  */
   HOWTO (R_PPC_REL24,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_REL24",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffffc,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 16 bit branch; the lower two bits must be zero.  */
   HOWTO (R_PPC_REL14,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_REL14",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 16 bit branch.  Bit 10 should be set to indicate that
      the branch is expected to be taken.  The lower two bits must be
@@ -350,15 +331,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_REL14_BRTAKEN", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 16 bit branch.  Bit 10 should be set to indicate that
      the branch is not expected to be taken.  The lower two bits must
@@ -367,15 +348,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_REL14_BRNTAKEN",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Like R_PPC_ADDR16, but referring to the GOT table entry for the
      symbol.  */
@@ -383,15 +364,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_GOT16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC_ADDR16_LO, but referring to the GOT table entry for
      the symbol.  */
@@ -399,15 +380,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_GOT16_LO",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC_ADDR16_HI, but referring to the GOT table entry for
      the symbol.  */
@@ -415,15 +396,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_GOT16_HI",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                 /* pcrel_offset */
+        FALSE),                 /* pcrel_offset */
 
   /* Like R_PPC_ADDR16_HA, but referring to the GOT table entry for
      the symbol.  */
@@ -431,15 +412,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         ppc_elf_addr16_ha_reloc, /* special_function */
         "R_PPC_GOT16_HA",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC_REL24, but referring to the procedure linkage table
      entry for the symbol.  */
@@ -447,15 +428,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,  /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_PLTREL24",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffffc,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* This is used only by the dynamic linker.  The symbol should exist
      both in the object being run and in some shared library.  The
@@ -466,15 +447,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc,  /* special_function */
         "R_PPC_COPY",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC_ADDR32, but used when setting global offset table
      entries.  */
@@ -482,30 +463,30 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc,  /* special_function */
         "R_PPC_GLOB_DAT",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Marks a procedure linkage table entry for a symbol.  */
   HOWTO (R_PPC_JMP_SLOT,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc,  /* special_function */
         "R_PPC_JMP_SLOT",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used only by the dynamic linker.  When the object is run, this
      longword is set to the load address of the object, plus the
@@ -514,15 +495,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc,  /* special_function */
         "R_PPC_RELATIVE",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC_REL24, but uses the value of the symbol within the
      object rather than the final value.  Normally used for
@@ -531,60 +512,60 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_LOCAL24PC",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffffc,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Like R_PPC_ADDR32, but may be unaligned.  */
   HOWTO (R_PPC_UADDR32,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_UADDR32",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC_ADDR16, but may be unaligned.  */
   HOWTO (R_PPC_UADDR16,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_UADDR16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32-bit PC relative */
   HOWTO (R_PPC_REL32,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_REL32",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 32-bit relocation to the symbol's procedure linkage table.
      FIXME: not supported.  */
@@ -592,15 +573,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_PLT32",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32-bit PC relative relocation to the symbol's procedure linkage table.
      FIXME: not supported.  */
@@ -608,15 +589,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_PLTREL32",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Like R_PPC_ADDR16_LO, but referring to the PLT table entry for
      the symbol.  */
@@ -624,15 +605,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_PLT16_LO",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC_ADDR16_HI, but referring to the PLT table entry for
      the symbol.  */
@@ -640,15 +621,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_PLT16_HI",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                 /* pcrel_offset */
+        FALSE),                 /* pcrel_offset */
 
   /* Like R_PPC_ADDR16_HA, but referring to the PLT table entry for
      the symbol.  */
@@ -656,15 +637,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         ppc_elf_addr16_ha_reloc, /* special_function */
         "R_PPC_PLT16_HA",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A sign-extended 16 bit value relative to _SDA_BASE_, for use with
      small data items.  */
@@ -672,75 +653,75 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_SDAREL16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16-bit section relative relocation.  */
   HOWTO (R_PPC_SECTOFF,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_SECTOFF",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16-bit lower half section relative relocation.  */
   HOWTO (R_PPC_SECTOFF_LO,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_SECTOFF_LO",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16-bit upper half section relative relocation.  */
   HOWTO (R_PPC_SECTOFF_HI,     /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_SECTOFF_HI",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                 /* pcrel_offset */
+        FALSE),                 /* pcrel_offset */
 
   /* 16-bit upper half adjusted section relative relocation.  */
   HOWTO (R_PPC_SECTOFF_HA,     /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         ppc_elf_addr16_ha_reloc, /* special_function */
         "R_PPC_SECTOFF_HA",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The remaining relocs are from the Embedded ELF ABI, and are not
      in the SVR4 ELF ABI.  */
@@ -750,60 +731,60 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_EMB_NADDR32",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit value resulting from the addend minus the symbol */
   HOWTO (R_PPC_EMB_NADDR16,    /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_EMB_NADDR16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit value resulting from the addend minus the symbol */
   HOWTO (R_PPC_EMB_NADDR16_LO, /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_EMB_ADDR16_LO", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The high order 16 bits of the addend minus the symbol */
   HOWTO (R_PPC_EMB_NADDR16_HI, /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_EMB_NADDR16_HI", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The high order 16 bits of the result of the addend minus the address,
      plus 1 if the contents of the low 16 bits, treated as a signed number,
@@ -812,15 +793,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc_elf_addr16_ha_reloc, /* special_function */
         "R_PPC_EMB_NADDR16_HA", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit value resulting from allocating a 4 byte word to hold an
      address in the .sdata section, and returning the offset from
@@ -829,15 +810,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_EMB_SDAI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit value resulting from allocating a 4 byte word to hold an
      address in the .sdata2 section, and returning the offset from
@@ -846,15 +827,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_EMB_SDA2I16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A sign-extended 16 bit value relative to _SDA2_BASE_, for use with
      small data items.  */
@@ -862,15 +843,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_EMB_SDA2REL",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Relocate against either _SDA_BASE_ or _SDA2_BASE_, filling in the 16 bit
      signed offset from the appropriate base, and filling in the register
@@ -879,15 +860,15 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_EMB_SDA21",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Relocation not handled: R_PPC_EMB_MRKREF */
   /* Relocation not handled: R_PPC_EMB_RELSEC16 */
@@ -903,60 +884,60 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_EMB_RELSDA",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_PPC_GNU_VTINHERIT,  /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_PPC_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_PPC_GNU_VTENTRY,    /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_PPC_GNU_VTENTRY",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Phony reloc to handle AIX style TOC entries */
   HOWTO (R_PPC_TOC16,          /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC_TOC16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 \f
 /* Initialize the ppc_elf_howto_table, so that linear accesses can be done.  */
@@ -1010,12 +991,12 @@ ppc_elf_sort_rela (arg1, arg2)
   return ((*rela1)->r_offset - (*rela2)->r_offset);
 }
 
-static boolean
+static bfd_boolean
 ppc_elf_relax_section (abfd, isec, link_info, again)
      bfd *abfd;
      asection *isec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
 #define PAGESIZE 0x1000
 
@@ -1027,7 +1008,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
   int comb_curr, comb_count;
 
   /* We never have to do this more than once per input section.  */
-  *again = false;
+  *again = FALSE;
 
   /* If needed, initialize this section's cooked size.  */
   if (isec->_cooked_size == 0)
@@ -1038,7 +1019,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
   if (link_info->mpc860c0 && (isec->flags & SEC_CODE) && isec->_cooked_size)
     {
       bfd_vma dot, end_page, end_section;
-      boolean section_modified;
+      bfd_boolean section_modified;
 
       /* Get the section contents.  */
       /* Get cached copy if it exists.  */
@@ -1116,7 +1097,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
       end_section = isec->vma + isec->_cooked_size;
       dot = end_page = (isec->vma | (PAGESIZE - 1)) + 1;
       dot -= link_info->mpc860c0;
-      section_modified = false;
+      section_modified = FALSE;
       if (dot < isec->vma)      /* Increment the start position if this section */
           dot = isec->vma;      /* begins in the middle of its first EOP region.  */
       for (;
@@ -1129,11 +1110,11 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
             {
               bfd_vma isec_offset;
               unsigned long insn;
-              boolean skip, modified;
+              bfd_boolean skip, modified;
 
               /* Don't process this word if there is a relocation for it and
               the relocation indicates the word is not a conditional branch.  */
-              skip = false;
+              skip = FALSE;
               isec_offset = dot - isec->vma;
               for (; comb_curr<comb_count; ++comb_curr)
                 {
@@ -1142,7 +1123,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
                   r_offset = rela_comb[comb_curr]->r_offset;
                   if (r_offset >= isec_offset)
                     {
-                      if (r_offset == isec_offset) skip = true;
+                      if (r_offset == isec_offset) skip = TRUE;
                       break;
                     }
                 }
@@ -1153,7 +1134,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
 #define BO2(insn) ((insn) & 0x00800000)
 #define BO4(insn) ((insn) & 0x00200000)
               insn = (unsigned long) bfd_get_32 (abfd, contents + isec_offset);
-              modified = false;
+              modified = FALSE;
               if ((insn & 0xFc000000) == 0x40000000)
                 {
                   /* Instruction is BCx */
@@ -1170,7 +1151,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
                       if (target > dot)
                         {
                           insn |= 0x00200000;   /* set the prediction bit */
-                          modified = true;
+                          modified = TRUE;
                         }
                     }
                 }
@@ -1184,7 +1165,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
                       Since we can't tell statically if it will branch forward,
                       always set the prediction bit.  */
                       insn |= 0x00200000;   /* set the prediction bit */
-                      modified = true;
+                      modified = TRUE;
                    }
                 }
               else if ((insn & 0xFc00Fffe) == 0x4c000020)
@@ -1197,7 +1178,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
                       Since we can't tell statically if it will branch forward,
                       always set the prediction bit.  */
                       insn |= 0x00200000;   /* set the prediction bit */
-                      modified = true;
+                      modified = TRUE;
                    }
                 }
 #undef BO0
@@ -1206,7 +1187,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
               if (modified)
                {
                   bfd_put_32 (abfd, (bfd_vma) insn, contents + isec_offset);
-                 section_modified = true;
+                 section_modified = TRUE;
                }
             }
         }
@@ -1241,7 +1222,7 @@ ppc_elf_relax_section (abfd, isec, link_info, again)
       free_contents = NULL;
     }
 
-  return true;
+  return TRUE;
 
 error_return:
   if (rela_comb != NULL)
@@ -1250,7 +1231,7 @@ error_return:
     free (free_relocs);
   if (free_contents != NULL)
     free (free_contents);
-  return false;
+  return FALSE;
 }
 \f
 static reloc_howto_type *
@@ -1333,7 +1314,7 @@ static void
 ppc_elf_info_to_howto (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   if (!ppc_elf_howto_table[R_PPC_ADDR32])
     /* Initialize howto table if needed.  */
@@ -1384,7 +1365,7 @@ ppc_elf_addr16_ha_reloc (abfd, reloc_entry, symbol, data, input_section,
 /* Fix bad default arch selected for a 32 bit input bfd when the
    default is 64 bit.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_object_p (abfd)
      bfd *abfd;
 {
@@ -1399,12 +1380,12 @@ ppc_elf_object_p (abfd)
          BFD_ASSERT (abfd->arch_info->bits_per_word == 32);
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Function to set whether a module needs the -mrelocatable bit set.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
@@ -1413,34 +1394,34 @@ ppc_elf_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking */
-static boolean
+static bfd_boolean
 ppc_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   flagword old_flags;
   flagword new_flags;
-  boolean error;
+  bfd_boolean error;
 
   /* Check if we have the same endianess */
   if (! _bfd_generic_verify_endian_match (ibfd, obfd))
-    return false;
+    return FALSE;
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   new_flags = elf_elfheader (ibfd)->e_flags;
   old_flags = elf_elfheader (obfd)->e_flags;
   if (!elf_flags_init (obfd))  /* First call, no flags set */
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = new_flags;
     }
 
@@ -1451,11 +1432,11 @@ ppc_elf_merge_private_bfd_data (ibfd, obfd)
     {
       /* Warn about -mrelocatable mismatch.  Allow -mrelocatable-lib to be linked
          with either.  */
-      error = false;
+      error = FALSE;
       if ((new_flags & EF_PPC_RELOCATABLE) != 0
          && (old_flags & (EF_PPC_RELOCATABLE | EF_PPC_RELOCATABLE_LIB)) == 0)
        {
-         error = true;
+         error = TRUE;
          (*_bfd_error_handler)
            (_("%s: compiled with -mrelocatable and linked with modules compiled normally"),
             bfd_archive_filename (ibfd));
@@ -1463,7 +1444,7 @@ ppc_elf_merge_private_bfd_data (ibfd, obfd)
       else if ((new_flags & (EF_PPC_RELOCATABLE | EF_PPC_RELOCATABLE_LIB)) == 0
               && (old_flags & EF_PPC_RELOCATABLE) != 0)
        {
-         error = true;
+         error = TRUE;
          (*_bfd_error_handler)
            (_("%s: compiled normally and linked with modules compiled with -mrelocatable"),
             bfd_archive_filename (ibfd));
@@ -1489,7 +1470,7 @@ ppc_elf_merge_private_bfd_data (ibfd, obfd)
       /* Warn about any other mismatches */
       if (new_flags != old_flags)
        {
-         error = true;
+         error = TRUE;
          (*_bfd_error_handler)
            (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
             bfd_archive_filename (ibfd), (long) new_flags, (long) old_flags);
@@ -1498,27 +1479,27 @@ ppc_elf_merge_private_bfd_data (ibfd, obfd)
       if (error)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Handle a PowerPC specific section when reading an object file.  This
    is called when elfcode.h finds a section with an unknown type.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_section_from_shdr (abfd, hdr, name)
      bfd *abfd;
-     Elf32_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      const char *name;
 {
   asection *newsect;
   flagword flags;
 
   if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-    return false;
+    return FALSE;
 
   newsect = hdr->bfd_section;
   flags = bfd_get_section_flags (abfd, newsect);
@@ -1529,15 +1510,15 @@ ppc_elf_section_from_shdr (abfd, hdr, name)
     flags |= SEC_SORT_ENTRIES;
 
   bfd_set_section_flags (abfd, newsect, flags);
-  return true;
+  return TRUE;
 }
 \f
 /* Set up any other section flags and such that may be necessary.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_fake_sections (abfd, shdr, asect)
      bfd *abfd ATTRIBUTE_UNUSED;
-     Elf32_Internal_Shdr *shdr;
+     Elf_Internal_Shdr *shdr;
      asection *asect;
 {
   if ((asect->flags & SEC_EXCLUDE) != 0)
@@ -1546,7 +1527,7 @@ ppc_elf_fake_sections (abfd, shdr, asect)
   if ((asect->flags & SEC_SORT_ENTRIES) != 0)
     shdr->sh_type = SHT_ORDERED;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Create a special linker section */
@@ -1572,7 +1553,7 @@ ppc_elf_create_linker_section (abfd, info, which)
 
       defaults = zero_section;
       defaults.which = which;
-      defaults.hole_written_p = false;
+      defaults.hole_written_p = FALSE;
       defaults.alignment = 2;
 
       /* Both of these sections are (technically) created by the user
@@ -1649,11 +1630,11 @@ ppc_elf_additional_program_headers (abfd)
 
 /* Modify the segment map if needed.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_modify_segment_map (abfd)
      bfd *abfd ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 \f
 /* The powerpc .got has a blrl instruction in it.  Mark it executable.  */
@@ -1684,7 +1665,7 @@ ppc_elf_create_got (abfd, info)
    to output sections (just like _bfd_elf_create_dynamic_sections has
    to create .dynbss and .rela.bss).  */
 
-static boolean
+static bfd_boolean
 ppc_elf_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1693,10 +1674,10 @@ ppc_elf_create_dynamic_sections (abfd, info)
   flagword flags;
 
   if (!ppc_elf_create_got (abfd, info))
-    return false;
+    return FALSE;
 
   if (!_bfd_elf_create_dynamic_sections (abfd, info))
-    return false;
+    return FALSE;
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
           | SEC_LINKER_CREATED);
@@ -1704,7 +1685,7 @@ ppc_elf_create_dynamic_sections (abfd, info)
   s = bfd_make_section (abfd, ".dynsbss");
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, SEC_ALLOC))
-    return false;
+    return FALSE;
 
   if (! info->shared)
     {
@@ -1712,7 +1693,7 @@ ppc_elf_create_dynamic_sections (abfd, info)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
     }
 
   s = bfd_get_section_by_name (abfd, ".plt");
@@ -1729,7 +1710,7 @@ ppc_elf_create_dynamic_sections (abfd, info)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -1779,14 +1760,14 @@ ppc_elf_adjust_dynamic_symbol (info, h)
             all uses of the symbol, not just those to the GOT or PLT.  */
          h->plt.offset = (bfd_vma) -1;
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
-         return true;
+         return TRUE;
        }
 
       /* Make sure this symbol is output as a dynamic symbol.  */
       if (h->dynindx == -1)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
       BFD_ASSERT (h->dynindx != -1);
 
@@ -1833,7 +1814,7 @@ ppc_elf_adjust_dynamic_symbol (info, h)
       BFD_ASSERT (s != NULL);
       s->_raw_size += sizeof (Elf32_External_Rela);
 
-      return true;
+      return TRUE;
     }
   else
     h->plt.offset = (bfd_vma) -1;
@@ -1847,7 +1828,7 @@ ppc_elf_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -1858,7 +1839,7 @@ ppc_elf_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -1909,7 +1890,7 @@ ppc_elf_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (! bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -1919,20 +1900,20 @@ ppc_elf_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean plt;
-  boolean relocs;
+  bfd_boolean plt;
+  bfd_boolean relocs;
 
 #ifdef DEBUG
   fprintf (stderr, "ppc_elf_size_dynamic_sections called\n");
@@ -1975,12 +1956,12 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  plt = false;
-  relocs = false;
+  plt = FALSE;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -1989,7 +1970,7 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      strip = false;
+      strip = FALSE;
 
       if (strcmp (name, ".plt") == 0)
        {
@@ -1997,12 +1978,12 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
            {
              /* Strip this section if we don't need it; see the
                  comment below.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there is a PLT.  */
-             plt = true;
+             plt = TRUE;
            }
        }
       else if (strncmp (name, ".rela", 5) == 0)
@@ -2018,12 +1999,12 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there are any relocation sections.  */
-             relocs = true;
+             relocs = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -2047,7 +2028,7 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
       /* Allocate memory for the section contents.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -2063,7 +2044,7 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (plt)
@@ -2072,7 +2053,7 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -2080,26 +2061,26 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_RELA, 0)
              || !add_dynamic_entry (DT_RELASZ, 0)
              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
-           return false;
+           return FALSE;
        }
 
       if ((info->flags & DF_TEXTREL) != 0)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
          info->flags |= DF_TEXTREL;
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 \f
 /* Look through the relocs for a section during the first phase, and
    allocate space in the global offset table or procedure linkage
    table.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2119,7 +2100,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
   asection *srelgot = NULL;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
 #ifdef DEBUG
   fprintf (stderr, "ppc_elf_check_relocs called for section %s in %s\n",
@@ -2134,14 +2115,14 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
     {
       sdata = ppc_elf_create_linker_section (abfd, info, LINKER_SECTION_SDATA);
       if (!sdata)
-       return false;
+       return FALSE;
     }
 
   if ((sdata2 = elf_linker_section (abfd, LINKER_SECTION_SDATA2)) == NULL)
     {
       sdata2 = ppc_elf_create_linker_section (abfd, info, LINKER_SECTION_SDATA2);
       if (!sdata2)
-       return false;
+       return FALSE;
     }
 
   dynobj = elf_hash_table (info)->dynobj;
@@ -2178,7 +2159,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
                elf_hash_table (info)->dynobj = dynobj = abfd;
              sgot = ppc_elf_create_got (dynobj, info);
              if (sgot == NULL)
-               return false;
+               return FALSE;
            }
        }
 
@@ -2197,7 +2178,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
                elf_hash_table (info)->dynobj = dynobj = abfd;
              sgot = ppc_elf_create_got (dynobj, info);
              if (sgot == NULL)
-               return false;
+               return FALSE;
            }
 
          if (srelgot == NULL
@@ -2216,7 +2197,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
                                                   | SEC_LINKER_CREATED
                                                   | SEC_READONLY))
                      || ! bfd_set_section_alignment (dynobj, srelgot, 2))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -2227,7 +2208,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
                  /* Make sure this symbol is output as a dynamic symbol.  */
                  if (h->dynindx == -1)
                    if (!bfd_elf32_link_record_dynamic_symbol (info, h))
-                     return false;
+                     return FALSE;
 
                  /* Allocate space in the .got.  */
                  sgot->_raw_size += 4;
@@ -2248,7 +2229,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
                  local_got_refcounts
                    = (bfd_signed_vma *) bfd_zalloc (abfd, size);
                  if (local_got_refcounts == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_refcounts (abfd) = local_got_refcounts;
                }
              if (local_got_refcounts[r_symndx] == 0)
@@ -2272,7 +2253,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
              ((*_bfd_error_handler)
               (_("%s: relocation %s cannot be used when making a shared object"),
                bfd_archive_filename (abfd), "R_PPC_EMB_SDAI16"));
-             return false;
+             return FALSE;
            }
 
          if (srelgot == NULL && (h != NULL || info->shared))
@@ -2290,12 +2271,12 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
                                                   | SEC_LINKER_CREATED
                                                   | SEC_READONLY))
                      || ! bfd_set_section_alignment (dynobj, srelgot, 2))
-                   return false;
+                   return FALSE;
                }
            }
 
          if (!bfd_elf32_create_pointer_linker_section (abfd, info, sdata, h, rel))
-           return false;
+           return FALSE;
 
          break;
 
@@ -2306,7 +2287,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
              ((*_bfd_error_handler)
               (_("%s: relocation %s cannot be used when making a shared object"),
                bfd_archive_filename (abfd), "R_PPC_EMB_SDA2I16"));
-             return false;
+             return FALSE;
            }
 
          if (srelgot == NULL && (h != NULL || info->shared))
@@ -2324,12 +2305,12 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
                                                   | SEC_LINKER_CREATED
                                                   | SEC_READONLY))
                      || ! bfd_set_section_alignment (dynobj, srelgot, 2))
-                   return false;
+                   return FALSE;
                }
            }
 
          if (!bfd_elf32_create_pointer_linker_section (abfd, info, sdata2, h, rel))
-           return false;
+           return FALSE;
 
          break;
 
@@ -2342,7 +2323,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
               (_("%s: relocation %s cannot be used when making a shared object"),
                bfd_archive_filename (abfd),
                ppc_elf_howto_table[(int) ELF32_R_TYPE (rel->r_info)]->name));
-             return false;
+             return FALSE;
            }
          break;
 
@@ -2365,14 +2346,14 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
              /* It does not make sense to have a procedure linkage
                  table entry for a local symbol.  */
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
 
          /* Make sure this symbol is output as a dynamic symbol.  */
          if (h->dynindx == -1)
            {
              if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
          h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
          h->plt.refcount++;
@@ -2395,14 +2376,14 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
        case R_PPC_GNU_VTINHERIT:
          if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_PPC_GNU_VTENTRY:
          if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-           return false;
+           return FALSE;
          break;
 
          /* When creating a shared object, we must copy these
@@ -2435,7 +2416,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (abfd, sec),
@@ -2454,7 +2435,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
                  if (sec->flags & SEC_READONLY)
                    info->flags |= DF_TEXTREL;
@@ -2474,7 +2455,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -2519,7 +2500,7 @@ ppc_elf_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -2577,13 +2558,13 @@ ppc_elf_gc_sweep_hook (abfd, info, sec, relocs)
        break;
       }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Hook called by the linker routine which adds symbols from an object
    file.  We use it to put .comm items in .sbss, and not .bss.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2614,7 +2595,7 @@ ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
          amt = sizeof (asection);
          sdata->bss_section = (asection *) bfd_zalloc (abfd, amt);
          if (sdata->bss_section == NULL)
-           return false;
+           return FALSE;
          sdata->bss_section->name = sdata->bss_name;
          sdata->bss_section->flags = SEC_IS_COMMON;
          sdata->bss_section->output_section = sdata->bss_section;
@@ -2625,7 +2606,7 @@ ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
            (asymbol **) bfd_zalloc (abfd, amt);
          if (sdata->bss_section->symbol == NULL
              || sdata->bss_section->symbol_ptr_ptr == NULL)
-           return false;
+           return FALSE;
          sdata->bss_section->symbol->name = sdata->bss_name;
          sdata->bss_section->symbol->flags = BSF_SECTION_SYM;
          sdata->bss_section->symbol->section = sdata->bss_section;
@@ -2636,13 +2617,13 @@ ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       *valp = sym->st_size;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2664,6 +2645,7 @@ ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *splt;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
       bfd_vma reloc_index;
 
 #ifdef DEBUG
@@ -2692,9 +2674,8 @@ ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       reloc_index = (h->plt.offset - PLT_INITIAL_ENTRY_SIZE) / PLT_SLOT_SIZE;
       if (reloc_index > PLT_NUM_SINGLE_ENTRIES)
        reloc_index -= (reloc_index - PLT_NUM_SINGLE_ENTRIES) / 2;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + reloc_index));
+      loc = srela->contents + reloc_index * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
        {
@@ -2716,6 +2697,7 @@ ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *sgot;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
          up.  */
@@ -2748,16 +2730,16 @@ ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
        }
 
       bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + srela->reloc_count));
-      ++srela->reloc_count;
+      loc = srela->contents;
+      loc += srela->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       asection *s;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbols needs a copy reloc.  Set it up.  */
 
@@ -2780,10 +2762,8 @@ ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_PPC_COPY);
       rela.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) s->contents
-                                 + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
 #ifdef DEBUG
@@ -2796,12 +2776,12 @@ ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2830,16 +2810,16 @@ ppc_elf_finish_dynamic_sections (output_bfd, info)
        {
          Elf_Internal_Dyn dyn;
          const char *name;
-         boolean size;
+         bfd_boolean size;
 
          bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
 
          switch (dyn.d_tag)
            {
-           case DT_PLTGOT:   name = ".plt";      size = false; break;
-           case DT_PLTRELSZ: name = ".rela.plt"; size = true;  break;
-           case DT_JMPREL:   name = ".rela.plt"; size = false; break;
-           default:          name = NULL;        size = false; break;
+           case DT_PLTGOT:   name = ".plt";      size = FALSE; break;
+           case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE;  break;
+           case DT_JMPREL:   name = ".rela.plt"; size = FALSE; break;
+           default:          name = NULL;        size = FALSE; break;
            }
 
          if (name != NULL)
@@ -2883,7 +2863,7 @@ ppc_elf_finish_dynamic_sections (output_bfd, info)
       elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* The RELOCATE_SECTION function is called by the ELF backend linker
@@ -2915,7 +2895,7 @@ ppc_elf_finish_dynamic_sections (output_bfd, info)
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                          contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -2927,20 +2907,26 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
      Elf_Internal_Sym *local_syms;
      asection **local_sections;
 {
-  Elf_Internal_Shdr *symtab_hdr                  = &elf_tdata (input_bfd)->symtab_hdr;
+  Elf_Internal_Shdr *symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
   struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd);
-  bfd *dynobj                            = elf_hash_table (info)->dynobj;
-  elf_linker_section_t *sdata            = (dynobj) ? elf_linker_section (dynobj, LINKER_SECTION_SDATA)  : NULL;
-  elf_linker_section_t *sdata2           = (dynobj) ? elf_linker_section (dynobj, LINKER_SECTION_SDATA2) : NULL;
-  Elf_Internal_Rela *rel                 = relocs;
-  Elf_Internal_Rela *relend              = relocs + input_section->reloc_count;
-  asection *sreloc                       = NULL;
+  bfd *dynobj = elf_hash_table (info)->dynobj;
+  elf_linker_section_t *sdata = NULL;
+  elf_linker_section_t *sdata2 = NULL;
+  Elf_Internal_Rela *rel = relocs;
+  Elf_Internal_Rela *relend = relocs + input_section->reloc_count;
+  asection *sreloc = NULL;
   asection *splt;
   asection *sgot;
   bfd_vma *local_got_offsets;
-  boolean ret                            = true;
+  bfd_boolean ret = TRUE;
   long insn;
 
+  if (dynobj)
+    {
+      sdata = elf_linker_section (dynobj, LINKER_SECTION_SDATA);
+      sdata2 = elf_linker_section (dynobj, LINKER_SECTION_SDATA2);
+    }
+
 #ifdef DEBUG
   fprintf (stderr, "ppc_elf_relocate_section called for %s section %s, %ld relocations%s\n",
           bfd_archive_filename (input_bfd),
@@ -2950,7 +2936,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 #endif
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   if (!ppc_elf_howto_table[R_PPC_ADDR32])
     /* Initialize howto table if needed.  */
@@ -2989,7 +2975,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                 (int) r_type);
 
          bfd_set_error (bfd_error_bad_value);
-         ret = false;
+         ret = FALSE;
          continue;
        }
 
@@ -3115,7 +3101,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                                         (!info->shared
                                                          || info->no_undefined
                                                          || ELF_ST_VISIBILITY (h->other))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
@@ -3128,7 +3114,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                 (int) r_type, sym_name);
 
          bfd_set_error (bfd_error_bad_value);
-         ret = false;
+         ret = FALSE;
          continue;
 
        case (int) R_PPC_NONE:
@@ -3148,8 +3134,8 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                                          input_bfd,
                                                          input_section,
                                                          rel->r_offset,
-                                                         true))
-               return false;
+                                                         TRUE))
+               return FALSE;
              continue;
            }
          break;
@@ -3181,6 +3167,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
          if (info->shared && r_symndx != 0)
            {
              Elf_Internal_Rela outrel;
+             bfd_byte *loc;
              int skip;
 
 #ifdef DEBUG
@@ -3201,7 +3188,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -3234,11 +3221,10 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                }
              else
                {
+                 outrel.r_addend = relocation + rel->r_addend;
+
                  if (r_type == R_PPC_ADDR32)
-                   {
-                     outrel.r_info = ELF32_R_INFO (0, R_PPC_RELATIVE);
-                     outrel.r_addend = relocation + rel->r_addend;
-                   }
+                   outrel.r_info = ELF32_R_INFO (0, R_PPC_RELATIVE);
                  else
                    {
                      long indx;
@@ -3252,17 +3238,23 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                          == bfd_link_hash_defweak));
                          sec = h->root.u.def.section;
                        }
-                     if (sec != NULL && bfd_is_abs_section (sec))
+
+                     if (bfd_is_abs_section (sec))
                        indx = 0;
                      else if (sec == NULL || sec->owner == NULL)
                        {
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      else
                        {
                          asection *osec;
 
+                         /* We are turning this relocation into one
+                            against a section symbol.  It would be
+                            proper to subtract the symbol's value,
+                            osec->vma, from the emitted reloc addend,
+                            but ld.so expects buggy relocs.  */
                          osec = sec->output_section;
                          indx = elf_section_data (osec)->dynindx;
                          BFD_ASSERT (indx > 0);
@@ -3277,15 +3269,12 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                        }
 
                      outrel.r_info = ELF32_R_INFO (indx, r_type);
-                     outrel.r_addend = relocation + rel->r_addend;
                    }
                }
 
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
              if (skip == -1)
                continue;
@@ -3401,6 +3390,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    {
                      asection *srelgot;
                      Elf_Internal_Rela outrel;
+                     bfd_byte *loc;
 
                      /* We need to generate a R_PPC_RELATIVE reloc
                         for the dynamic linker.  */
@@ -3412,11 +3402,9 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                         + off);
                      outrel.r_info = ELF32_R_INFO (0, R_PPC_RELATIVE);
                      outrel.r_addend = relocation;
-                     bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                                (((Elf32_External_Rela *)
-                                                  srelgot->contents)
-                                                 + srelgot->reloc_count));
-                     ++srelgot->reloc_count;
+                     loc = srelgot->contents;
+                     loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela);
+                     bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                      relocation = 0;
                    }
 
@@ -3517,7 +3505,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                       name);
 
                bfd_set_error (bfd_error_bad_value);
-               ret = false;
+               ret = FALSE;
                continue;
              }
            addend -= (sdata2->sym_hash->root.u.def.value
@@ -3535,7 +3523,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
            BFD_ASSERT (sec != (asection *) 0);
            name = bfd_get_section_name (abfd, sec->output_section);
-           if (((strncmp (name, ".sdata", 6) == 0      
+           if (((strncmp (name, ".sdata", 6) == 0
                  && (name[6] == 0 || name[6] == '.'))
                 || (strncmp (name, ".sbss", 5) == 0
                     && (name[5] == 0 || name[5] == '.'))))
@@ -3570,7 +3558,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                       name);
 
                bfd_set_error (bfd_error_bad_value);
-               ret = false;
+               ret = FALSE;
                continue;
              }
 
@@ -3635,7 +3623,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                 sym_name);
 
          bfd_set_error (bfd_error_invalid_operation);
-         ret = false;
+         ret = FALSE;
          continue;
 
        case (int) R_PPC_GNU_VTINHERIT:
@@ -3702,10 +3690,10 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                                   input_bfd,
                                                   input_section,
                                                   offset))
-           return false;
+           return FALSE;
        }
       else
-       ret = false;
+       ret = FALSE;
     }
 
 #ifdef DEBUG
@@ -3735,7 +3723,7 @@ ppc_elf_reloc_type_class (rela)
 }
 \f
 /* Support for core dump NOTE sections */
-static boolean
+static bfd_boolean
 ppc_elf_grok_prstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -3746,7 +3734,7 @@ ppc_elf_grok_prstatus (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 268:                /* Linux/PPC */
        /* pr_cursig */
@@ -3767,7 +3755,7 @@ ppc_elf_grok_prstatus (abfd, note)
                                          raw_size, note->descpos + offset);
 }
 
-static boolean
+static bfd_boolean
 ppc_elf_grok_psinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -3775,7 +3763,7 @@ ppc_elf_grok_psinfo (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 128:                /* Linux/PPC elf_prpsinfo */
        elf_tdata (abfd)->core_program
@@ -3796,7 +3784,310 @@ ppc_elf_grok_psinfo (abfd, note)
       command[n - 1] = '\0';
   }
 
-  return true;
+  return TRUE;
+}
+\f
+/* Very simple linked list structure for recording apuinfo values.  */
+typedef struct apuinfo_list
+{
+  struct apuinfo_list *        next;
+  unsigned long         value;
+}
+apuinfo_list;
+
+static apuinfo_list * head;
+
+static void          apuinfo_list_init    PARAMS ((void));
+static void          apuinfo_list_add     PARAMS ((unsigned long));
+static unsigned      apuinfo_list_length  PARAMS ((void));
+static unsigned long apuinfo_list_element PARAMS ((unsigned long));
+static void          apuinfo_list_finish  PARAMS ((void));
+
+extern void          ppc_elf_begin_write_processing
+  PARAMS ((bfd *, struct bfd_link_info *));
+extern void          ppc_elf_final_write_processing
+  PARAMS ((bfd *, bfd_boolean));
+extern bfd_boolean   ppc_elf_write_section
+  PARAMS ((bfd *, asection *, bfd_byte *));
+
+
+
+static void
+apuinfo_list_init PARAMS ((void))
+{
+  head = NULL;
+}
+
+static void
+apuinfo_list_add (value)
+     unsigned long value;
+{
+  apuinfo_list * entry = head;
+
+  while (entry != NULL)
+    {
+      if (entry->value == value)
+       return;
+      entry = entry->next;
+    }
+
+  entry = bfd_malloc (sizeof (* entry));
+  if (entry == NULL)
+    return;
+
+  entry->value = value;
+  entry->next  = head;
+  head = entry;
+}
+
+static unsigned
+apuinfo_list_length PARAMS ((void))
+{
+  apuinfo_list * entry;
+  unsigned long count;
+
+  for (entry = head, count = 0;
+       entry;
+       entry = entry->next)
+    ++ count;
+
+  return count;
+}
+
+static inline unsigned long
+apuinfo_list_element (number)
+     unsigned long number;
+{
+  apuinfo_list * entry;
+
+  for (entry = head;
+       entry && number --;
+       entry = entry->next)
+    ;
+
+  return entry ? entry->value : 0;
+}
+
+static void
+apuinfo_list_finish PARAMS ((void))
+{
+  apuinfo_list * entry;
+
+  for (entry = head; entry;)
+    {
+      apuinfo_list * next = entry->next;
+      free (entry);
+      entry = next;
+    }
+
+  head = NULL;
+}
+
+#define APUINFO_SECTION_NAME ".PPC.EMB.apuinfo"
+#define APUINFO_LABEL        "APUinfo"
+
+/* Scan the input BFDs and create a linked list of
+   the APUinfo values that will need to be emitted.  */
+
+void
+ppc_elf_begin_write_processing (abfd, link_info)
+     bfd *abfd;
+     struct bfd_link_info *link_info;
+{
+  bfd *         ibfd;
+  asection *    asec;
+  char *        buffer;
+  unsigned     num_input_sections;
+  bfd_size_type        output_section_size;
+  unsigned      i;
+  unsigned      num_entries;
+  unsigned long        offset;
+  unsigned long length;
+  const char *  error_message = NULL;
+
+  if (link_info == NULL)
+    return;
+
+  /* Scan the input bfds, looking for apuinfo sections.  */
+  num_input_sections = 0;
+  output_section_size = 0;
+
+  for (ibfd = link_info->input_bfds; ibfd; ibfd = ibfd->link_next)
+    {
+      asec = bfd_get_section_by_name (ibfd, APUINFO_SECTION_NAME);
+      if (asec)
+       {
+         ++ num_input_sections;
+         output_section_size += asec->_raw_size;
+       }
+    }
+
+  /* We need at least one input sections
+     in order to make merging worthwhile.  */
+  if (num_input_sections < 1)
+    return;
+
+  /* Just make sure that the output section exists as well.  */
+  asec = bfd_get_section_by_name (abfd, APUINFO_SECTION_NAME);
+  if (asec == NULL)
+    return;
+
+  /* Allocate a buffer for the contents of the input sections.  */
+  buffer = bfd_malloc (output_section_size);
+  if (buffer == NULL)
+    return;
+
+  offset = 0;
+  apuinfo_list_init ();
+
+  /* Read in the input sections contents.  */
+  for (ibfd = link_info->input_bfds; ibfd; ibfd = ibfd->link_next)
+    {
+      unsigned long    datum;
+      char *           ptr;
+
+      
+      asec = bfd_get_section_by_name (ibfd, APUINFO_SECTION_NAME);
+      if (asec == NULL)
+       continue;
+
+      length = asec->_raw_size;
+      if (length < 24)
+       {
+         error_message = _("corrupt or empty %s section in %s");
+         goto fail;
+       }
+      
+      if (bfd_seek (ibfd, asec->filepos, SEEK_SET) != 0
+         || (bfd_bread (buffer + offset, length, ibfd) != length))
+       {
+         error_message = _("unable to read in %s section from %s");
+         goto fail;
+       }
+
+      /* Process the contents of the section.  */
+      ptr = buffer + offset;
+      error_message = _("corrupt %s section in %s");
+
+      /* Verify the contents of the header.  Note - we have to
+        extract the values this way in order to allow for a
+        host whose endian-ness is different from the target.  */
+      datum = bfd_get_32 (ibfd, ptr);
+      if (datum != sizeof APUINFO_LABEL)
+       goto fail;
+
+      datum = bfd_get_32 (ibfd, ptr + 8);
+      if (datum != 0x2)
+       goto fail;
+
+      if (strcmp (ptr + 12, APUINFO_LABEL) != 0)
+       goto fail;
+
+      /* Get the number of apuinfo entries.  */
+      datum = bfd_get_32 (ibfd, ptr + 4);
+      if ((datum * 4 + 20) != length)
+       goto fail;
+
+      /* Make sure that we do not run off the end of the section.  */
+      if (offset + length > output_section_size)
+       goto fail;
+
+      /* Scan the apuinfo section, building a list of apuinfo numbers.  */
+      for (i = 0; i < datum; i++)
+       apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + (i * 4)));
+
+      /* Update the offset.  */
+      offset += length;
+    }
+
+  error_message = NULL;
+
+  /* Compute the size of the output section.  */
+  num_entries = apuinfo_list_length ();
+  output_section_size = 20 + num_entries * 4;
+
+  asec = bfd_get_section_by_name (abfd, APUINFO_SECTION_NAME);
+
+  if (! bfd_set_section_size  (abfd, asec, output_section_size))
+    ibfd = abfd,
+      error_message = _("warning: unable to set size of %s section in %s");
+  
+ fail:
+  free (buffer);
+
+  if (error_message)
+    _bfd_error_handler (error_message, APUINFO_SECTION_NAME,
+                       bfd_archive_filename (ibfd));
+}
+
+
+/* Prevent the output section from accumulating the input sections'
+   contents.  We have already stored this in our linked list structure.  */
+
+bfd_boolean
+ppc_elf_write_section (abfd, asec, contents)
+     bfd * abfd ATTRIBUTE_UNUSED;
+     asection * asec;
+     bfd_byte * contents ATTRIBUTE_UNUSED;
+{
+  return apuinfo_list_length () && strcmp (asec->name, APUINFO_SECTION_NAME) == 0;
+}
+
+
+/* Finally we can generate the output section.  */
+
+void
+ppc_elf_final_write_processing (abfd, linker)
+     bfd * abfd;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
+{
+  bfd_byte *    buffer;
+  asection *    asec;
+  unsigned      i;
+  unsigned      num_entries;
+  bfd_size_type length;
+
+  asec = bfd_get_section_by_name (abfd, APUINFO_SECTION_NAME);
+  if (asec == NULL)
+    return;
+
+  if (apuinfo_list_length () == 0)
+    return;
+
+  length = asec->_raw_size;
+  if (length < 20)
+    return;
+
+  buffer = bfd_malloc (length);
+  if (buffer == NULL)
+    {
+      _bfd_error_handler (_("failed to allocate space for new APUinfo section."));
+      return;
+    }
+
+  /* Create the apuinfo header.  */
+  num_entries = apuinfo_list_length ();
+  bfd_put_32 (abfd, sizeof APUINFO_LABEL, buffer);
+  bfd_put_32 (abfd, num_entries, buffer + 4);
+  bfd_put_32 (abfd, 0x2, buffer + 8);
+  strcpy (buffer + 12, APUINFO_LABEL);
+  
+  length = 20;
+  for (i = 0; i < num_entries; i++)
+    {
+      bfd_put_32 (abfd, apuinfo_list_element (i), buffer + length);
+      length += 4;
+    }
+
+  if (length != asec->_raw_size)
+    _bfd_error_handler (_("failed to compute new APUinfo section."));
+  
+  if (! bfd_set_section_contents (abfd, asec, buffer, (file_ptr) 0, length))
+    _bfd_error_handler (_("failed to install new APUinfo section."));
+    
+  free (buffer);
+
+  apuinfo_list_finish ();
 }
 \f
 #define TARGET_LITTLE_SYM      bfd_elf32_powerpcle_vec
@@ -3848,5 +4139,8 @@ ppc_elf_grok_psinfo (abfd, note)
 #define elf_backend_grok_prstatus              ppc_elf_grok_prstatus
 #define elf_backend_grok_psinfo                        ppc_elf_grok_psinfo
 #define elf_backend_reloc_type_class           ppc_elf_reloc_type_class
+#define elf_backend_begin_write_processing      ppc_elf_begin_write_processing
+#define elf_backend_final_write_processing      ppc_elf_final_write_processing
+#define elf_backend_write_section               ppc_elf_write_section
 
 #include "elf32-target.h"
index bbc2ead947664b848e7c4b10e9631cb10dc43da6..d9859b821d0b0c48e311b7de6ff11a58d330cab7 100644 (file)
@@ -29,48 +29,50 @@ static reloc_howto_type *elf_s390_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void elf_s390_info_to_howto
   PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-static boolean elf_s390_is_local_label_name
+static bfd_boolean elf_s390_is_local_label_name
   PARAMS ((bfd *, const char *));
 static struct bfd_hash_entry *link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *elf_s390_link_hash_table_create
   PARAMS ((bfd *));
-static boolean create_got_section
+static bfd_boolean create_got_section
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean elf_s390_create_dynamic_sections
+static bfd_boolean elf_s390_create_dynamic_sections
   PARAMS((bfd *, struct bfd_link_info *));
 static void elf_s390_copy_indirect_symbol
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
           struct elf_link_hash_entry *));
-static boolean elf_s390_check_relocs
+static bfd_boolean elf_s390_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection *elf_s390_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf_s390_gc_sweep_hook
+static bfd_boolean elf_s390_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf_s390_adjust_dynamic_symbol
+static bfd_boolean elf_s390_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean allocate_dynrelocs
+static bfd_boolean allocate_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean readonly_dynrelocs
+static bfd_boolean readonly_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_s390_size_dynamic_sections
+static bfd_boolean elf_s390_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_s390_relocate_section
+static bfd_boolean elf_s390_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf_s390_finish_dynamic_symbol
+static bfd_boolean elf_s390_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
 static enum elf_reloc_type_class elf_s390_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
-static boolean elf_s390_finish_dynamic_sections
+static bfd_boolean elf_s390_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_s390_object_p PARAMS ((bfd *));
-static boolean elf_s390_grok_prstatus PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elf_s390_object_p
+  PARAMS ((bfd *));
+static bfd_boolean elf_s390_grok_prstatus
+  PARAMS ((bfd *, Elf_Internal_Note *));
 
 #include "elf/s390.h"
 
@@ -82,45 +84,45 @@ static reloc_howto_type elf_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_390_NONE",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
-
-  HOWTO(R_390_8,         0, 0,  8, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_8",       false, 0,0x000000ff, false),
-  HOWTO(R_390_12,        0, 1, 12, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_12",      false, 0,0x00000fff, false),
-  HOWTO(R_390_16,        0, 1, 16, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_16",      false, 0,0x0000ffff, false),
-  HOWTO(R_390_32,        0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_32",      false, 0,0xffffffff, false),
-  HOWTO(R_390_PC32,     0, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32",    false, 0,0xffffffff,  true),
-  HOWTO(R_390_GOT12,    0, 1, 12, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_GOT12",   false, 0,0x00000fff, false),
-  HOWTO(R_390_GOT32,    0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT32",   false, 0,0xffffffff, false),
-  HOWTO(R_390_PLT32,    0, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32",   false, 0,0xffffffff,  true),
-  HOWTO(R_390_COPY,      0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_COPY",    false, 0,0xffffffff, false),
-  HOWTO(R_390_GLOB_DAT,  0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GLOB_DAT",false, 0,0xffffffff, false),
-  HOWTO(R_390_JMP_SLOT,  0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_JMP_SLOT",false, 0,0xffffffff, false),
-  HOWTO(R_390_RELATIVE,  0, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_RELATIVE",false, 0,0xffffffff, false),
-  HOWTO(R_390_GOTOFF,    0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTOFF",  false, 0,0xffffffff, false),
-  HOWTO(R_390_GOTPC,     0, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPC",   false, 0,0xffffffff,  true),
-  HOWTO(R_390_GOT16,     0, 1, 16, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT16",   false, 0,0x0000ffff, false),
-  HOWTO(R_390_PC16,      0, 1, 16,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16",    false, 0,0x0000ffff,  true),
-  HOWTO(R_390_PC16DBL,   1, 1, 16,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16DBL", false, 0,0x0000ffff,  true),
-  HOWTO(R_390_PLT16DBL,  1, 1, 16,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT16DBL", false, 0,0x0000ffff,  true),
-  HOWTO(R_390_PC32DBL,  1, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32DBL", false, 0,0xffffffff,  true),
-  HOWTO(R_390_PLT32DBL,         1, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32DBL", false, 0,0xffffffff,  true),
-  HOWTO(R_390_GOTPCDBL,  1, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPCDBL", false, 0,0xffffffff,  true),
-  HOWTO(R_390_GOTENT,   1, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTENT",   false, 0,0xffffffff,  true),
+        FALSE),                /* pcrel_offset */
+
+  HOWTO(R_390_8,         0, 0,  8, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_8",       FALSE, 0,0x000000ff, FALSE),
+  HOWTO(R_390_12,        0, 1, 12, FALSE, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_12",      FALSE, 0,0x00000fff, FALSE),
+  HOWTO(R_390_16,        0, 1, 16, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_16",      FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(R_390_32,        0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_32",      FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_PC32,     0, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32",    FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_GOT12,    0, 1, 12, FALSE, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_GOT12",   FALSE, 0,0x00000fff, FALSE),
+  HOWTO(R_390_GOT32,    0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT32",   FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_PLT32,    0, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32",   FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_COPY,      0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_COPY",    FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_GLOB_DAT,  0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GLOB_DAT",FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_JMP_SLOT,  0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_JMP_SLOT",FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_RELATIVE,  0, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_RELATIVE",FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_GOTOFF,    0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTOFF",  FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_GOTPC,     0, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPC",   FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_GOT16,     0, 1, 16, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT16",   FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(R_390_PC16,      0, 1, 16,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16",    FALSE, 0,0x0000ffff,  TRUE),
+  HOWTO(R_390_PC16DBL,   1, 1, 16,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16DBL", FALSE, 0,0x0000ffff,  TRUE),
+  HOWTO(R_390_PLT16DBL,  1, 1, 16,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT16DBL", FALSE, 0,0x0000ffff,  TRUE),
+  HOWTO(R_390_PC32DBL,  1, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32DBL", FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_PLT32DBL,         1, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32DBL", FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_GOTPCDBL,  1, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPCDBL", FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_GOTENT,   1, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTENT",   FALSE, 0,0xffffffff,  TRUE),
 };
 
 /* GNU extension to record C++ vtable hierarchy.  */
 static reloc_howto_type elf32_s390_vtinherit_howto =
-  HOWTO (R_390_GNU_VTINHERIT, 0,2,0,false,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", false,0, 0, false);
+  HOWTO (R_390_GNU_VTINHERIT, 0,2,0,FALSE,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", FALSE,0, 0, FALSE);
 static reloc_howto_type elf32_s390_vtentry_howto =
-  HOWTO (R_390_GNU_VTENTRY, 0,2,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", false,0,0, false);
+  HOWTO (R_390_GNU_VTENTRY, 0,2,0,FALSE,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", FALSE,0,0, FALSE);
 
 static reloc_howto_type *
 elf_s390_reloc_type_lookup (abfd, code)
@@ -212,13 +214,13 @@ elf_s390_info_to_howto (abfd, cache_ptr, dst)
     }
 }
 
-static boolean
+static bfd_boolean
 elf_s390_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
 {
   if (name[0] == '.' && (name[1] == 'X' || name[1] == 'L'))
-    return true;
+    return TRUE;
 
   return _bfd_elf_is_local_label_name (abfd, name);
 }
@@ -502,7 +504,7 @@ elf_s390_link_hash_table_create (abfd)
 /* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up
    shortcuts to them in our hash table.  */
 
-static boolean
+static bfd_boolean
 create_got_section (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -510,7 +512,7 @@ create_got_section (dynobj, info)
   struct elf_s390_link_hash_table *htab;
 
   if (! _bfd_elf_create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   htab = elf_s390_hash_table (info);
   htab->sgot = bfd_get_section_by_name (dynobj, ".got");
@@ -525,15 +527,15 @@ create_got_section (dynobj, info)
                                   | SEC_IN_MEMORY | SEC_LINKER_CREATED
                                   | SEC_READONLY))
       || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Create .plt, .rela.plt, .got, .got.plt, .rela.got, .dynbss, and
    .rela.bss sections in DYNOBJ, and set up shortcuts to them in our
    hash table.  */
 
-static boolean
+static bfd_boolean
 elf_s390_create_dynamic_sections (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -542,10 +544,10 @@ elf_s390_create_dynamic_sections (dynobj, info)
 
   htab = elf_s390_hash_table (info);
   if (!htab->sgot && !create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   if (!_bfd_elf_create_dynamic_sections (dynobj, info))
-    return false;
+    return FALSE;
 
   htab->splt = bfd_get_section_by_name (dynobj, ".plt");
   htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt");
@@ -557,7 +559,7 @@ elf_s390_create_dynamic_sections (dynobj, info)
       || (!info->shared && !htab->srelbss))
     abort ();
 
-  return true;
+  return TRUE;
 }
 
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
@@ -613,7 +615,7 @@ elf_s390_copy_indirect_symbol (bed, dir, ind)
    allocate space in the global offset table or procedure linkage
    table.  */
 
-static boolean
+static bfd_boolean
 elf_s390_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -628,7 +630,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   htab = elf_s390_hash_table (info);
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -649,7 +651,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
          (*_bfd_error_handler) (_("%s: bad symbol index: %d"),
                                 bfd_archive_filename (abfd),
                                 r_symndx);
-         return false;
+         return FALSE;
        }
 
       if (r_symndx < symtab_hdr->sh_info)
@@ -683,7 +685,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                  local_got_refcounts = ((bfd_signed_vma *)
                                         bfd_zalloc (abfd, size));
                  if (local_got_refcounts == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_refcounts (abfd) = local_got_refcounts;
                }
              local_got_refcounts[r_symndx] += 1;
@@ -698,7 +700,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
              if (htab->elf.dynobj == NULL)
                htab->elf.dynobj = abfd;
              if (!create_got_section (htab->elf.dynobj, info))
-               return false;
+               return FALSE;
            }
          break;
 
@@ -798,7 +800,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  if (strncmp (name, ".rela", 5) != 0
                      || strcmp (bfd_get_section_name (abfd, sec),
@@ -826,7 +828,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
                  elf_section_data (sec)->sreloc = sreloc;
                }
@@ -847,7 +849,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                  s = bfd_section_from_r_symndx (abfd, &htab->sym_sec,
                                                 sec, r_symndx);
                  if (s == NULL)
-                   return false;
+                   return FALSE;
 
                  head = ((struct elf_s390_dyn_relocs **)
                          &elf_section_data (s)->local_dynrel);
@@ -860,7 +862,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                  p = ((struct elf_s390_dyn_relocs *)
                       bfd_alloc (htab->elf.dynobj, amt));
                  if (p == NULL)
-                   return false;
+                   return FALSE;
                  p->next = *head;
                  *head = p;
                  p->sec = sec;
@@ -881,14 +883,14 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
         case R_390_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
         case R_390_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
 
        default:
@@ -896,7 +898,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -941,7 +943,7 @@ elf_s390_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1040,7 +1042,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
        break;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -1049,7 +1051,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf_s390_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -1082,7 +1084,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
        }
 
-      return true;
+      return TRUE;
     }
   else
     /* It's possible that we incorrectly decided a .plt reloc was
@@ -1101,7 +1103,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -1112,18 +1114,18 @@ elf_s390_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
   if (info->nocopyreloc)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   eh = (struct elf_s390_link_hash_entry *) h;
@@ -1139,7 +1141,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
   if (p == NULL)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -1175,7 +1177,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s))
     {
       if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -1185,7 +1187,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* This is the condition under which elf_s390_finish_dynamic_symbol
@@ -1202,7 +1204,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
 /* Allocate space in .plt, .got and associated reloc sections for
    dynamic relocs.  */
 
-static boolean
+static bfd_boolean
 allocate_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -1213,7 +1215,7 @@ allocate_dynrelocs (h, inf)
   struct elf_s390_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -1230,7 +1232,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
@@ -1281,7 +1283,7 @@ allocate_dynrelocs (h, inf)
   if (h->got.refcount > 0)
     {
       asection *s;
-      boolean dyn;
+      bfd_boolean dyn;
 
       /* Make sure this symbol is output as a dynamic symbol.
         Undefined weak syms won't yet be marked as dynamic.  */
@@ -1289,7 +1291,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = htab->sgot;
@@ -1304,7 +1306,7 @@ allocate_dynrelocs (h, inf)
 
   eh = (struct elf_s390_link_hash_entry *) h;
   if (eh->dyn_relocs == NULL)
-    return true;
+    return TRUE;
 
   /* In the shared -Bsymbolic case, discard space allocated for
      dynamic pc-relative relocs against symbols which turn out to be
@@ -1350,7 +1352,7 @@ allocate_dynrelocs (h, inf)
              && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
            {
              if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          /* If that succeeded, we know we'll be keeping all the
@@ -1371,12 +1373,12 @@ allocate_dynrelocs (h, inf)
       sreloc->_raw_size += p->count * sizeof (Elf32_External_Rela);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Find any dynamic relocs that apply to read-only sections.  */
 
-static boolean
+static bfd_boolean
 readonly_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -1399,15 +1401,15 @@ readonly_dynrelocs (h, inf)
          info->flags |= DF_TEXTREL;
 
          /* Not an error, just cut short the traversal.  */
-         return false;
+         return FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_s390_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -1415,7 +1417,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
   struct elf_s390_link_hash_table *htab;
   bfd *dynobj;
   asection *s;
-  boolean relocs;
+  bfd_boolean relocs;
   bfd *ibfd;
 
   htab = elf_s390_hash_table (info);
@@ -1505,7 +1507,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
 
   /* We now have determined the sizes of the various dynamic sections.
      Allocate memory for them.  */
-  relocs = false;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
@@ -1521,7 +1523,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
       else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
        {
          if (s->_raw_size != 0 && s != htab->srelplt)
-           relocs = true;
+           relocs = TRUE;
 
          /* We use the reloc_count field as a counter if we need
             to copy relocs into the output file.  */
@@ -1556,7 +1558,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
         of garbage.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
     }
 
   if (htab->elf.dynamic_sections_created)
@@ -1572,7 +1574,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
       if (! info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (htab->splt->_raw_size != 0)
@@ -1581,7 +1583,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -1589,7 +1591,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
           if (!add_dynamic_entry (DT_RELA, 0)
               || !add_dynamic_entry (DT_RELASZ, 0)
               || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
-           return false;
+           return FALSE;
 
          /* If any dynamic relocs apply to a read-only section,
             then we need a DT_TEXTREL entry.  */
@@ -1600,18 +1602,18 @@ elf_s390_size_dynamic_sections (output_bfd, info)
          if ((info->flags & DF_TEXTREL) != 0)
            {
              if (!add_dynamic_entry (DT_TEXTREL, 0))
-               return false;
+               return FALSE;
            }
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* Relocate a 390 ELF section.  */
 
-static boolean
+static bfd_boolean
 elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                              contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -1631,7 +1633,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   htab = elf_s390_hash_table (info);
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1650,7 +1652,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
       asection *sec;
       bfd_vma off;
       bfd_vma relocation;
-      boolean unresolved_reloc;
+      bfd_boolean unresolved_reloc;
       bfd_reloc_status_type r;
 
       r_type = ELF32_R_TYPE (rel->r_info);
@@ -1660,7 +1662,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
       if (r_type < 0 || r_type >= (int) R_390_max)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       howto = elf_howto_table + r_type;
@@ -1668,7 +1670,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
       h = NULL;
       sym = NULL;
       sec = NULL;
-      unresolved_reloc = false;
+      unresolved_reloc = FALSE;
       if (r_symndx < symtab_hdr->sh_info)
        {
          sym = local_syms + r_symndx;
@@ -1692,7 +1694,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                     relocation value for this symbol.  output_section
                     is typically NULL for symbols satisfied by a shared
                     library.  */
-                 unresolved_reloc = true;
+                 unresolved_reloc = TRUE;
                  relocation = 0;
                }
              else
@@ -1714,7 +1716,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                      input_section, rel->r_offset,
                      (!info->shared || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
@@ -1732,7 +1734,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
 
           if (h != NULL)
             {
-             boolean dyn;
+             bfd_boolean dyn;
 
               off = h->got.offset;
              dyn = htab->elf.dynamic_sections_created;
@@ -1765,7 +1767,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                     }
                 }
              else
-               unresolved_reloc = false;
+               unresolved_reloc = FALSE;
             }
           else
             {
@@ -1788,7 +1790,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                     {
                       asection *srelgot;
                       Elf_Internal_Rela outrel;
-                     Elf32_External_Rela *loc;
+                     bfd_byte *loc;
 
                       srelgot = htab->srelgot;
                      if (srelgot == NULL)
@@ -1799,8 +1801,8 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                                          + off);
                       outrel.r_info = ELF32_R_INFO (0, R_390_RELATIVE);
                      outrel.r_addend = relocation;
-                     loc = (Elf32_External_Rela *) srelgot->contents;
-                     loc += srelgot->reloc_count++;
+                     loc = srelgot->contents;
+                     loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela);
                       bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                     }
 
@@ -1840,7 +1842,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_390_GOTPCDBL:
           /* Use global offset table as symbol value.  */
           relocation = htab->sgot->output_section->vma;
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
           break;
 
         case R_390_PLT16DBL:
@@ -1866,7 +1868,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
           relocation = (htab->splt->output_section->vma
                         + htab->splt->output_offset
                         + h->plt.offset);
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
           break;
 
         case R_390_8:
@@ -1905,24 +1907,24 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                      || h->root.type == bfd_link_hash_undefined)))
             {
               Elf_Internal_Rela outrel;
-              boolean skip, relocate;
+              bfd_boolean skip, relocate;
              asection *sreloc;
-             Elf32_External_Rela *loc;
+             bfd_byte *loc;
 
              /* When generating a shared object, these relocations
                 are copied into the output file to be resolved at run
                 time.  */
 
-              skip = false;
-              relocate = false;
+              skip = FALSE;
+              relocate = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
               outrel.r_offset += (input_section->output_section->vma
                                   + input_section->output_offset);
 
@@ -1945,7 +1947,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
               else
                 {
                  /* This symbol is local, or marked to become local.  */
-                 relocate = true;
+                 relocate = TRUE;
                  outrel.r_info = ELF32_R_INFO (0, R_390_RELATIVE);
                  outrel.r_addend = relocation + rel->r_addend;
                 }
@@ -1954,8 +1956,8 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
              if (sreloc == NULL)
                abort ();
 
-             loc = (Elf32_External_Rela *) sreloc->contents;
-             loc += sreloc->reloc_count++;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
              bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
               /* If this reloc is against an external symbol, we do
@@ -2000,7 +2002,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                                                      symtab_hdr->sh_link,
                                                      sym->st_name);
              if (name == NULL)
-               return false;
+               return FALSE;
              if (*name == '\0')
                name = bfd_section_name (input_bfd, sec);
            }
@@ -2011,7 +2013,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
            }
          else
            {
@@ -2020,18 +2022,18 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                 bfd_archive_filename (input_bfd),
                 bfd_get_section_name (input_bfd, input_section),
                 (long) rel->r_offset, name, (int) r);
-             return false;
+             return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2047,7 +2049,7 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_vma plt_index;
       bfd_vma got_offset;
       Elf_Internal_Rela rela;
-      Elf32_External_Rela *loc;
+      bfd_byte *loc;
       bfd_vma relative_offset;
 
       /* This symbol has an entry in the procedure linkage table.  Set
@@ -2167,7 +2169,7 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + got_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_390_JMP_SLOT);
       rela.r_addend = 0;
-      loc = (Elf32_External_Rela *) htab->srelplt->contents + plt_index;
+      loc = htab->srelplt->contents + plt_index * sizeof (Elf32_External_Rela);
       bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
@@ -2184,7 +2186,7 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
   if (h->got.offset != (bfd_vma) -1)
     {
       Elf_Internal_Rela rela;
-      Elf32_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
          up.  */
@@ -2221,15 +2223,15 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
           rela.r_addend = 0;
         }
 
-      loc = (Elf32_External_Rela *) htab->srelgot->contents;
-      loc += htab->srelgot->reloc_count++;
+      loc = htab->srelgot->contents;
+      loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rela);
       bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       Elf_Internal_Rela rela;
-      Elf32_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbols needs a copy reloc.  Set it up.  */
 
@@ -2244,8 +2246,8 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_390_COPY);
       rela.r_addend = 0;
-      loc = (Elf32_External_Rela *) htab->srelbss->contents;
-      loc += htab->srelbss->reloc_count++;
+      loc = htab->srelbss->contents;
+      loc += htab->srelbss->reloc_count++ * sizeof (Elf32_External_Rela);
       bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
@@ -2255,7 +2257,7 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Used to decide how to sort relocs in an optimal manner for the
@@ -2280,7 +2282,7 @@ elf_s390_reloc_type_class (rela)
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_s390_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2394,17 +2396,17 @@ elf_s390_finish_dynamic_sections (output_bfd, info)
       elf_section_data (htab->sgotplt->output_section)
        ->this_hdr.sh_entsize = 4;
     }
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf_s390_object_p (abfd)
      bfd *abfd;
 {
   return bfd_default_set_arch_mach (abfd, bfd_arch_s390, bfd_mach_s390_31);
 }
 
-static boolean
+static bfd_boolean
 elf_s390_grok_prstatus (abfd, note)
      bfd * abfd;
      Elf_Internal_Note * note;
@@ -2415,7 +2417,7 @@ elf_s390_grok_prstatus (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 224:                /* S/390 Linux.  */
        /* pr_cursig */
index f52245bcc3409558bb4ea72d23a1ae8df6557c7d..96cd77831a83e60c73705cf0944b38f5a5d2de25 100644 (file)
@@ -34,80 +34,80 @@ static reloc_howto_type *sh_elf_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void sh_elf_info_to_howto
   PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-static boolean sh_elf_set_private_flags
+static bfd_boolean sh_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean sh_elf_copy_private_data
+static bfd_boolean sh_elf_copy_private_data
   PARAMS ((bfd *, bfd *));
-static boolean sh_elf_merge_private_data
+static bfd_boolean sh_elf_merge_private_data
   PARAMS ((bfd *, bfd *));
-static boolean sh_elf_set_mach_from_flags
+static bfd_boolean sh_elf_set_mach_from_flags
   PARAMS ((bfd *));
-static boolean sh_elf_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
-static boolean sh_elf_relax_delete_bytes
+static bfd_boolean sh_elf_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean sh_elf_relax_delete_bytes
   PARAMS ((bfd *, asection *, bfd_vma, int));
-static boolean sh_elf_align_loads
-  PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, boolean *));
-static boolean sh_elf_swap_insns
+static bfd_boolean sh_elf_align_loads
+  PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_boolean *));
+static bfd_boolean sh_elf_swap_insns
   PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma));
-static boolean sh_elf_relocate_section
+static bfd_boolean sh_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 static bfd_byte *sh_elf_get_relocated_section_contents
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, boolean, asymbol **));
+          bfd_byte *, bfd_boolean, asymbol **));
 static void sh_elf_copy_indirect_symbol
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
           struct elf_link_hash_entry *));
 static int sh_elf_optimized_tls_reloc
   PARAMS ((struct bfd_link_info *, int, int));
-static boolean sh_elf_mkobject
+static bfd_boolean sh_elf_mkobject
   PARAMS((bfd *));
-static boolean sh_elf_object_p
+static bfd_boolean sh_elf_object_p
   PARAMS((bfd *));
-static boolean sh_elf_check_relocs
+static bfd_boolean sh_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static struct bfd_hash_entry *sh_elf_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *sh_elf_link_hash_table_create
   PARAMS ((bfd *));
-static boolean sh_elf_adjust_dynamic_symbol
+static bfd_boolean sh_elf_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean sh_elf_size_dynamic_sections
+static bfd_boolean sh_elf_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean sh_elf_finish_dynamic_symbol
+static bfd_boolean sh_elf_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-static boolean sh_elf_finish_dynamic_sections
+static bfd_boolean sh_elf_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static bfd_reloc_status_type sh_elf_reloc_loop
   PARAMS ((int, bfd *, asection *, bfd_byte *, bfd_vma, asection *,
           bfd_vma, bfd_vma));
-static boolean create_got_section
+static bfd_boolean create_got_section
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean sh_elf_create_dynamic_sections
+static bfd_boolean sh_elf_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static bfd_vma dtpoff_base
   PARAMS ((struct bfd_link_info *));
 static asection * sh_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean sh_elf_gc_sweep_hook
+static bfd_boolean sh_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean allocate_dynrelocs
+static bfd_boolean allocate_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean readonly_dynrelocs
+static bfd_boolean readonly_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
 static enum elf_reloc_type_class sh_elf_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
 #ifdef INCLUDE_SHMEDIA
 inline static void movi_shori_putval PARAMS ((bfd *, unsigned long, char *));
 #endif
-static boolean elf32_shlin_grok_prstatus
+static bfd_boolean elf32_shlin_grok_prstatus
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static boolean elf32_shlin_grok_psinfo
+static bfd_boolean elf32_shlin_grok_psinfo
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
 
 /* The name of the dynamic interpreter.  This is put in the .interp
@@ -122,106 +122,106 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_NONE",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  /* 32 bit absolute relocation.  Setting partial_inplace to true and
+  /* 32 bit absolute relocation.  Setting partial_inplace to TRUE and
      src_mask to a non-zero value is similar to the COFF toolchain.  */
   HOWTO (R_SH_DIR32,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_elf_reloc,          /* special_function */
         "R_SH_DIR32",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit PC relative relocation.  */
   HOWTO (R_SH_REL32,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_REL32",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 8 bit PC relative branch divided by 2.  */
   HOWTO (R_SH_DIR8WPN,         /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_DIR8WPN",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 12 bit PC relative branch divided by 2.  */
   HOWTO (R_SH_IND12W,          /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         sh_elf_reloc,          /* special_function */
         "R_SH_IND12W",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xfff,                 /* src_mask */
         0xfff,                 /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 8 bit unsigned PC relative divided by 4.  */
   HOWTO (R_SH_DIR8WPL,         /* type */
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_DIR8WPL",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 8 bit unsigned PC relative divided by 2.  */
   HOWTO (R_SH_DIR8WPZ,         /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_DIR8WPZ",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 8 bit GBR relative.  FIXME: This only makes sense if we have some
      special symbol for the GBR relative area, and that is not
@@ -230,15 +230,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_DIR8BP",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 8 bit GBR relative divided by 2.  FIXME: This only makes sense if
      we have some special symbol for the GBR relative area, and that
@@ -247,15 +247,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_DIR8W",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 8 bit GBR relative divided by 4.  FIXME: This only makes sense if
      we have some special symbol for the GBR relative area, and that
@@ -264,15 +264,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_DIR8L",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   EMPTY_HOWTO (10),
   EMPTY_HOWTO (11),
@@ -302,15 +302,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_SWITCH16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 32 bit switch table entry.  This is generated for an expression
      such as ``.long L1 - L2''.  The offset holds the difference
@@ -319,15 +319,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_SWITCH32",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Indicates a .uses pseudo-op.  The compiler will generate .uses
      pseudo-ops when it finds a function call which can be relaxed.
@@ -337,15 +337,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_USES",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* The assembler will generate this reloc for addresses referred to
      by the register loads associated with USES relocs.  The offset
@@ -355,15 +355,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_COUNT",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Indicates an alignment statement.  The offset field is the power
      of 2 to which subsequent portions of the object file must be
@@ -372,15 +372,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_ALIGN",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* The assembler will generate this reloc before a block of
      instructions.  A section should be processed as assumining it
@@ -389,15 +389,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_CODE",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* The assembler will generate this reloc after a block of
      instructions when it sees data that is not instructions.  */
@@ -405,15 +405,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_DATA",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* The assembler generates this reloc for each label within a block
      of instructions.  This permits the linker to avoid swapping
@@ -422,15 +422,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_LABEL",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* An 8 bit switch table entry.  This is generated for an expression
      such as ``.word L1 - L2''.  The offset holds the difference
@@ -439,75 +439,75 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_SWITCH8",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_SH_GNU_VTINHERIT, /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_SH_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_SH_GNU_VTENTRY,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
         "R_SH_GNU_VTENTRY",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 8 bit PC relative divided by 2 - but specified in a very odd way.  */
   HOWTO (R_SH_LOOP_START,      /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_LOOP_START",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 8 bit PC relative divided by 2 - but specified in a very odd way.  */
   HOWTO (R_SH_LOOP_END,                /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_LOOP_END",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xff,                  /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   EMPTY_HOWTO (38),
   EMPTY_HOWTO (39),
@@ -523,105 +523,105 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         5,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR5U",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfc00,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in SHARI, SHLLI et al.  */
   HOWTO (R_SH_DIR6U,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR6U",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfc00,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in BxxI, LDHI.L et al.  */
   HOWTO (R_SH_DIR6S,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR6S",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfc00,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in ADDI, ANDI et al.  */
   HOWTO (R_SH_DIR10S,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         10,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR10S",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in LD.UW, ST.W et al.         */
   HOWTO (R_SH_DIR10SW, /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         11,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR10SW",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in LD.L, FLD.S et al.         */
   HOWTO (R_SH_DIR10SL, /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR10SL",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in FLD.D, FST.P et al.  */
   HOWTO (R_SH_DIR10SQ, /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         13,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR10SQ",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 #else
   EMPTY_HOWTO (45),
@@ -730,113 +730,113 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_TLS_GD_32",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_TLS_LD_32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_TLS_LD_32",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_TLS_LDO_32,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_TLS_LDO_32",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_TLS_IE_32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_TLS_IE_32",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_TLS_LE_32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_TLS_LE_32",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_TLS_DTPMOD32,    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_TLS_DTPMOD32",   /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_TLS_DTPOFF32,    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_TLS_DTPOFF32",   /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_TLS_TPOFF32,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_TLS_TPOFF32",    /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (152),
   EMPTY_HOWTO (153),
@@ -851,127 +851,127 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_GOT32",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_PLT32,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_PLT32",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_SH_COPY,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_COPY",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_GLOB_DAT,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_GLOB_DAT",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_JMP_SLOT,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_JMP_SLOT",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_RELATIVE,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_RELATIVE",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_GOTOFF,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_GOTOFF",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_GOTPC,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_GOTPC",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_SH_GOTPLT32,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* */
         "R_SH_GOTPLT32",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 #ifdef INCLUDE_SHMEDIA
   /* Used in MOVI and SHORI (x & 65536).  */
@@ -979,416 +979,416 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT_LOW16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOT_MEDLOW16,    /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT_MEDLOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOT_MEDHI16,     /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT_MEDHI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOT_HI16,                /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT_HI16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_GOTPLT_LOW16,    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT_LOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOTPLT_MEDLOW16, /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT_MEDLOW16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOTPLT_MEDHI16,  /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT_MEDHI16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOTPLT_HI16,     /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT_HI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_PLT_LOW16,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PLT_LOW16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_PLT_MEDLOW16,    /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PLT_MEDLOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_PLT_MEDHI16,     /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PLT_MEDHI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_PLT_HI16,                /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PLT_HI16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_GOTOFF_LOW16,    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTOFF_LOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOTOFF_MEDLOW16, /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTOFF_MEDLOW16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOTOFF_MEDHI16,  /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTOFF_MEDHI16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOTOFF_HI16,     /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTOFF_HI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_GOTPC_LOW16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPC_LOW16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOTPC_MEDLOW16,  /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPC_MEDLOW16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOTPC_MEDHI16,   /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPC_MEDHI16",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOTPC_HI16,      /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPC_HI16",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in LD.L, FLD.S et al.         */
   HOWTO (R_SH_GOT10BY4,                /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT10BY4",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in LD.L, FLD.S et al.         */
   HOWTO (R_SH_GOTPLT10BY4,     /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT10BY4",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in FLD.D, FST.P et al.  */
   HOWTO (R_SH_GOT10BY8,                /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         13,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT10BY8",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in FLD.D, FST.P et al.  */
   HOWTO (R_SH_GOTPLT10BY8,     /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         13,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT10BY8",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_COPY64,          /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_COPY64",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_GLOB_DAT64,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GLOB_DAT64",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_JMP_SLOT64,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_JMP_SLOT64",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_RELATIVE64,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_RELATIVE64",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (197),
   EMPTY_HOWTO (198),
@@ -1449,15 +1449,15 @@ static reloc_howto_type sh_elf_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf_ignore_reloc,   /* special_function */
         "R_SH_SHMEDIA_CODE",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The assembler will generate this reloc at a PTA or PTB instruction,
      and the linker checks the right type of target, or changes a PTA to a
@@ -1466,195 +1466,195 @@ static reloc_howto_type sh_elf_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         18,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PT_16",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in unexpanded MOVI.  */
   HOWTO (R_SH_IMMS16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMMS16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in SHORI.  */
   HOWTO (R_SH_IMMU16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMMU16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_IMM_LOW16,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_LOW16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x - $) & 65536).  */
   HOWTO (R_SH_IMM_LOW16_PCREL, /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_LOW16_PCREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_IMM_MEDLOW16,    /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_MEDLOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (((x - $) >> 16) & 65536).  */
   HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_MEDLOW16_PCREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_IMM_MEDHI16,     /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_MEDHI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (((x - $) >> 32) & 65536).  */
   HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_MEDHI16_PCREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_IMM_HI16,                /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_HI16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (((x - $) >> 48) & 65536).  */
   HOWTO (R_SH_IMM_HI16_PCREL,  /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_HI16_PCREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* For the .uaquad pseudo.  */
   HOWTO (R_SH_64,              /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_64",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* For the .uaquad pseudo, (x - $).  */
   HOWTO (R_SH_64_PCREL,                /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_64_PCREL",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
 #endif
 };
@@ -2014,32 +2014,32 @@ sh_elf_info_to_howto (abfd, cache_ptr, dst)
    values; in coff-sh.c they come from include/coff/sh.h, whereas here
    they come from enum elf_sh_reloc_type in include/elf/sh.h.  */
 
-static boolean
+static bfd_boolean
 sh_elf_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
-  boolean have_code;
+  bfd_boolean have_code;
   Elf_Internal_Rela *irel, *irelend;
   bfd_byte *contents = NULL;
   Elf_Internal_Sym *isymbuf = NULL;
 
-  *again = false;
+  *again = FALSE;
 
   if (link_info->relocateable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
-    return true;
+    return TRUE;
 
 #ifdef INCLUDE_SHMEDIA
   if (elf_section_data (sec)->this_hdr.sh_flags
       & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED))
     {
-      return true;
+      return TRUE;
     }
 #endif
 
@@ -2056,7 +2056,7 @@ sh_elf_relax_section (abfd, sec, link_info, again)
   if (internal_relocs == NULL)
     goto error_return;
 
-  have_code = false;
+  have_code = FALSE;
 
   irelend = internal_relocs + sec->reloc_count;
   for (irel = internal_relocs; irel < irelend; irel++)
@@ -2067,7 +2067,7 @@ sh_elf_relax_section (abfd, sec, link_info, again)
       bfd_signed_vma foff;
 
       if (ELF32_R_TYPE (irel->r_info) == (int) R_SH_CODE)
-       have_code = true;
+       have_code = TRUE;
 
       if (ELF32_R_TYPE (irel->r_info) != (int) R_SH_USES)
        continue;
@@ -2279,7 +2279,7 @@ sh_elf_relax_section (abfd, sec, link_info, again)
       /* That will change things, so, just in case it permits some
         other function call to come within range, we should relax
         again.  Note that this is not required, and it may be slow.  */
-      *again = true;
+      *again = TRUE;
 
       /* Now check whether we got a COUNT reloc.  */
       if (irelcount >= irelend)
@@ -2318,7 +2318,7 @@ sh_elf_relax_section (abfd, sec, link_info, again)
      byte boundaries.  */
   if (have_code)
     {
-      boolean swapped;
+      bfd_boolean swapped;
 
       /* Get the section contents.  */
       if (contents == NULL)
@@ -2377,7 +2377,7 @@ sh_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (isymbuf != NULL
@@ -2390,14 +2390,14 @@ sh_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return false;
+  return FALSE;
 }
 
 /* Delete some bytes from a section while relaxing.  FIXME: There is a
    lot of duplication between this function and sh_relax_delete_bytes
    in coff-sh.c.  */
 
-static boolean
+static bfd_boolean
 sh_elf_relax_delete_bytes (abfd, sec, addr, count)
      bfd *abfd;
      asection *sec;
@@ -2467,7 +2467,7 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
       int insn = 0;
       int off, adjust, oinsn;
       bfd_signed_vma voff = 0;
-      boolean overflow;
+      bfd_boolean overflow;
 
       /* Get the new reloc address.  */
       nraddr = irel->r_offset;
@@ -2619,7 +2619,7 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
       if (adjust != 0)
        {
          oinsn = insn;
-         overflow = false;
+         overflow = FALSE;
          switch ((enum elf_sh_reloc_type) ELF32_R_TYPE (irel->r_info))
            {
            default:
@@ -2630,14 +2630,14 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
            case R_SH_DIR8WPZ:
              insn += adjust / 2;
              if ((oinsn & 0xff00) != (insn & 0xff00))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr);
              break;
 
            case R_SH_IND12W:
              insn += adjust / 2;
              if ((oinsn & 0xf000) != (insn & 0xf000))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr);
              break;
 
@@ -2651,21 +2651,21 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
                    ++insn;
                }
              if ((oinsn & 0xff00) != (insn & 0xff00))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr);
              break;
 
            case R_SH_SWITCH8:
              voff += adjust;
              if (voff < 0 || voff >= 0xff)
-               overflow = true;
+               overflow = TRUE;
              bfd_put_8 (abfd, voff, contents + nraddr);
              break;
 
            case R_SH_SWITCH16:
              voff += adjust;
              if (voff < - 0x8000 || voff >= 0x8000)
-               overflow = true;
+               overflow = TRUE;
              bfd_put_signed_16 (abfd, (bfd_vma) voff, contents + nraddr);
              break;
 
@@ -2685,7 +2685,7 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
               (_("%s: 0x%lx: fatal: reloc overflow while relaxing"),
                bfd_archive_filename (abfd), (unsigned long) irel->r_offset));
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
        }
 
@@ -2707,13 +2707,13 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
        continue;
 
       /* We always cache the relocs.  Perhaps, if info->keep_memory is
-        false, we should free them, if we are permitted to, when we
+        FALSE, we should free them, if we are permitted to, when we
         leave sh_coff_relax_section.  */
       internal_relocs = (_bfd_elf32_link_read_relocs
                         (abfd, o, (PTR) NULL, (Elf_Internal_Rela *) NULL,
-                         true));
+                         TRUE));
       if (internal_relocs == NULL)
-       return false;
+       return FALSE;
 
       ocontents = NULL;
       irelscanend = internal_relocs + o->reloc_count;
@@ -2732,16 +2732,16 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
                  else
                    {
                      /* We always cache the section contents.
-                        Perhaps, if info->keep_memory is false, we
+                        Perhaps, if info->keep_memory is FALSE, we
                         should free them, if we are permitted to,
                         when we leave sh_coff_relax_section.  */
                      ocontents = (bfd_byte *) bfd_malloc (o->_raw_size);
                      if (ocontents == NULL)
-                       return false;
+                       return FALSE;
                      if (! bfd_get_section_contents (abfd, o, ocontents,
                                                      (file_ptr) 0,
                                                      o->_raw_size))
-                       return false;
+                       return FALSE;
                      elf_section_data (o)->this_hdr.contents = ocontents;
                    }
                }
@@ -2790,16 +2790,16 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
                  else
                    {
                      /* We always cache the section contents.
-                        Perhaps, if info->keep_memory is false, we
+                        Perhaps, if info->keep_memory is FALSE, we
                         should free them, if we are permitted to,
                         when we leave sh_coff_relax_section.  */
                      ocontents = (bfd_byte *) bfd_malloc (o->_raw_size);
                      if (ocontents == NULL)
-                       return false;
+                       return FALSE;
                      if (! bfd_get_section_contents (abfd, o, ocontents,
                                                      (file_ptr) 0,
                                                      o->_raw_size))
-                       return false;
+                       return FALSE;
                      elf_section_data (o)->this_hdr.contents = ocontents;
                    }
                }
@@ -2858,26 +2858,26 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Look for loads and stores which we can align to four byte
    boundaries.  This is like sh_align_loads in coff-sh.c.  */
 
-static boolean
+static bfd_boolean
 sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec;
      Elf_Internal_Rela *internal_relocs;
      bfd_byte *contents ATTRIBUTE_UNUSED;
-     boolean *pswapped;
+     bfd_boolean *pswapped;
 {
   Elf_Internal_Rela *irel, *irelend;
   bfd_vma *labels = NULL;
   bfd_vma *label, *label_end;
   bfd_size_type amt;
 
-  *pswapped = false;
+  *pswapped = FALSE;
 
   irelend = internal_relocs + sec->reloc_count;
 
@@ -2928,17 +2928,17 @@ sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped)
 
   free (labels);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (labels != NULL)
     free (labels);
-  return false;
+  return FALSE;
 }
 
 /* Swap two SH instructions.  This is like sh_swap_insns in coff-sh.c.  */
 
-static boolean
+static bfd_boolean
 sh_elf_swap_insns (abfd, sec, relocs, contents, addr)
      bfd *abfd;
      asection *sec;
@@ -3007,10 +3007,10 @@ sh_elf_swap_insns (abfd, sec, relocs, contents, addr)
        {
          bfd_byte *loc;
          unsigned short insn, oinsn;
-         boolean overflow;
+         bfd_boolean overflow;
 
          loc = contents + irel->r_offset;
-         overflow = false;
+         overflow = FALSE;
          switch (type)
            {
            default:
@@ -3022,7 +3022,7 @@ sh_elf_swap_insns (abfd, sec, relocs, contents, addr)
              oinsn = insn;
              insn += add / 2;
              if ((oinsn & 0xff00) != (insn & 0xff00))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, loc);
              break;
 
@@ -3031,7 +3031,7 @@ sh_elf_swap_insns (abfd, sec, relocs, contents, addr)
              oinsn = insn;
              insn += add / 2;
              if ((oinsn & 0xf000) != (insn & 0xf000))
-               overflow = true;
+               overflow = TRUE;
              bfd_put_16 (abfd, (bfd_vma) insn, loc);
              break;
 
@@ -3048,7 +3048,7 @@ sh_elf_swap_insns (abfd, sec, relocs, contents, addr)
                  oinsn = insn;
                  insn += add / 2;
                  if ((oinsn & 0xff00) != (insn & 0xff00))
-                   overflow = true;
+                   overflow = TRUE;
                  bfd_put_16 (abfd, (bfd_vma) insn, loc);
                }
 
@@ -3061,12 +3061,12 @@ sh_elf_swap_insns (abfd, sec, relocs, contents, addr)
               (_("%s: 0x%lx: fatal: reloc overflow while relaxing"),
                bfd_archive_filename (abfd), (unsigned long) irel->r_offset));
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 #ifdef INCLUDE_SHMEDIA
@@ -3525,8 +3525,8 @@ struct elf_sh_link_hash_entry
     GOT_UNKNOWN = 0, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE
   } tls_type;
 
-  /* If true, R_SH_TLS_TPOFF32 relocation is generated.  */
-  boolean tls_tpoff32;
+  /* If TRUE, R_SH_TLS_TPOFF32 relocation is generated.  */
+  bfd_boolean tls_tpoff32;
 };
 
 #define sh_elf_hash_entry(ent) ((struct elf_sh_link_hash_entry *)(ent))
@@ -3548,17 +3548,17 @@ struct sh_elf_obj_tdata
 /* Override the generic function because we need to store sh_elf_obj_tdata
    as the specific tdata.  */
 
-static boolean
+static bfd_boolean
 sh_elf_mkobject (abfd)
      bfd *abfd;
 {
   bfd_size_type amt = sizeof (struct sh_elf_obj_tdata);
   abfd->tdata.any = bfd_zalloc (abfd, amt);
   if (abfd->tdata.any == NULL)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
-                 
+
 /* sh ELF linker hash table.  */
 
 struct elf_sh_link_hash_table
@@ -3590,7 +3590,7 @@ struct elf_sh_link_hash_table
 #define sh_elf_link_hash_traverse(table, func, info)                   \
   (elf_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the sh ELF linker hash table from a link_info structure.  */
@@ -3630,7 +3630,7 @@ sh_elf_link_hash_newfunc (entry, table, string)
       ret->datalabel_got.refcount = ret->root.got.refcount;
 #endif
       ret->tls_type = GOT_UNKNOWN;
-      ret->tls_tpoff32 = false;
+      ret->tls_tpoff32 = FALSE;
     }
 
   return (struct bfd_hash_entry *) ret;
@@ -3672,7 +3672,7 @@ sh_elf_link_hash_table_create (abfd)
 /* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up
    shortcuts to them in our hash table.  */
 
-static boolean
+static bfd_boolean
 create_got_section (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -3680,7 +3680,7 @@ create_got_section (dynobj, info)
   struct elf_sh_link_hash_table *htab;
 
   if (! _bfd_elf_create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   htab = sh_elf_hash_table (info);
   htab->sgot = bfd_get_section_by_name (dynobj, ".got");
@@ -3698,13 +3698,13 @@ create_got_section (dynobj, info)
                                   | SEC_LINKER_CREATED
                                   | SEC_READONLY))
       || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Create dynamic sections when linking against a dynamic object.  */
 
-static boolean
+static bfd_boolean
 sh_elf_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3727,7 +3727,7 @@ sh_elf_create_dynamic_sections (abfd, info)
 
     default:
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   htab = sh_elf_hash_table (info);
@@ -3750,7 +3750,7 @@ sh_elf_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, pltflags)
       || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
-    return false;
+    return FALSE;
 
   if (bed->want_plt_sym)
     {
@@ -3761,9 +3761,9 @@ sh_elf_create_dynamic_sections (abfd, info)
 
       if (! (_bfd_generic_link_add_one_symbol
             (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
-             (bfd_vma) 0, (const char *) NULL, false,
+             (bfd_vma) 0, (const char *) NULL, FALSE,
              get_elf_backend_data (abfd)->collect, &bh)))
-       return false;
+       return FALSE;
 
       h = (struct elf_link_hash_entry *) bh;
       h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
@@ -3771,7 +3771,7 @@ sh_elf_create_dynamic_sections (abfd, info)
 
       if (info->shared
          && ! _bfd_elf_link_record_dynamic_symbol (info, h))
-       return false;
+       return FALSE;
     }
 
   s = bfd_make_section (abfd,
@@ -3780,10 +3780,10 @@ sh_elf_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, s, ptralign))
-    return false;
+    return FALSE;
 
   if (! create_got_section (abfd, info))
-    return false;
+    return FALSE;
 
   {
     const char *secname;
@@ -3805,7 +3805,7 @@ sh_elf_create_dynamic_sections (abfd, info)
        if (s == NULL
            || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
            || ! bfd_set_section_alignment (abfd, s, ptralign))
-         return false;
+         return FALSE;
       }
   }
 
@@ -3821,7 +3821,7 @@ sh_elf_create_dynamic_sections (abfd, info)
       htab->sdynbss = s;
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, SEC_ALLOC))
-       return false;
+       return FALSE;
 
       /* The .rel[a].bss section holds copy relocs.  This section is not
         normally needed.  We need to create it here, though, so that the
@@ -3843,11 +3843,11 @@ sh_elf_create_dynamic_sections (abfd, info)
          if (s == NULL
              || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
              || ! bfd_set_section_alignment (abfd, s, ptralign))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -3856,7 +3856,7 @@ sh_elf_create_dynamic_sections (abfd, info)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 sh_elf_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -3903,7 +3903,7 @@ sh_elf_adjust_dynamic_symbol (info, h)
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
        }
 
-      return true;
+      return TRUE;
     }
   else
     h->plt.offset = (bfd_vma) -1;
@@ -3917,7 +3917,7 @@ sh_elf_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -3928,18 +3928,18 @@ sh_elf_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
   if (info->nocopyreloc)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   eh = (struct elf_sh_link_hash_entry *) h;
@@ -3956,7 +3956,7 @@ sh_elf_adjust_dynamic_symbol (info, h)
   if (p == NULL)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -3998,7 +3998,7 @@ sh_elf_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (! bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -4008,7 +4008,7 @@ sh_elf_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* This is the condition under which sh_elf_finish_dynamic_symbol
@@ -4025,7 +4025,7 @@ sh_elf_adjust_dynamic_symbol (info, h)
 /* Allocate space in .plt, .got and associated reloc sections for
    dynamic relocs.  */
 
-static boolean
+static bfd_boolean
 allocate_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -4036,7 +4036,7 @@ allocate_dynrelocs (h, inf)
   struct elf_sh_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     /* When warning symbols are created, they **replace** the "real"
@@ -4068,7 +4068,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
@@ -4119,7 +4119,7 @@ allocate_dynrelocs (h, inf)
   if (h->got.refcount > 0)
     {
       asection *s;
-      boolean dyn;
+      bfd_boolean dyn;
       int tls_type = sh_elf_hash_entry (h)->tls_type;
 
       /* Make sure this symbol is output as a dynamic symbol.
@@ -4128,7 +4128,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = htab->sgot;
@@ -4155,7 +4155,7 @@ allocate_dynrelocs (h, inf)
   if (eh->datalabel_got.refcount > 0)
     {
       asection *s;
-      boolean dyn;
+      bfd_boolean dyn;
 
       /* Make sure this symbol is output as a dynamic symbol.
         Undefined weak syms won't yet be marked as dynamic.  */
@@ -4163,7 +4163,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = htab->sgot;
@@ -4178,7 +4178,7 @@ allocate_dynrelocs (h, inf)
 #endif
 
   if (eh->dyn_relocs == NULL)
-    return true;
+    return TRUE;
 
   /* In the shared -Bsymbolic case, discard space allocated for
      dynamic pc-relative relocs against symbols which turn out to be
@@ -4227,7 +4227,7 @@ allocate_dynrelocs (h, inf)
              && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
            {
              if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          /* If that succeeded, we know we'll be keeping all the
@@ -4248,12 +4248,12 @@ allocate_dynrelocs (h, inf)
       sreloc->_raw_size += p->count * sizeof (Elf32_External_Rela);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Find any dynamic relocs that apply to read-only sections.  */
 
-static boolean
+static bfd_boolean
 readonly_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -4276,15 +4276,15 @@ readonly_dynrelocs (h, inf)
          info->flags |= DF_TEXTREL;
 
          /* Not an error, just cut short the traversal.  */
-         return false;
+         return FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 sh_elf_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -4292,7 +4292,7 @@ sh_elf_size_dynamic_sections (output_bfd, info)
   struct elf_sh_link_hash_table *htab;
   bfd *dynobj;
   asection *s;
-  boolean relocs;
+  bfd_boolean relocs;
   bfd *ibfd;
 
   htab = sh_elf_hash_table (info);
@@ -4400,7 +4400,7 @@ sh_elf_size_dynamic_sections (output_bfd, info)
 
   /* We now have determined the sizes of the various dynamic sections.
      Allocate memory for them.  */
-  relocs = false;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
@@ -4416,7 +4416,7 @@ sh_elf_size_dynamic_sections (output_bfd, info)
       else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
        {
          if (s->_raw_size != 0 && s != htab->srelplt)
-           relocs = true;
+           relocs = TRUE;
 
          /* We use the reloc_count field as a counter if we need
             to copy relocs into the output file.  */
@@ -4451,7 +4451,7 @@ sh_elf_size_dynamic_sections (output_bfd, info)
         of garbage.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
     }
 
   if (htab->root.dynamic_sections_created)
@@ -4467,7 +4467,7 @@ sh_elf_size_dynamic_sections (output_bfd, info)
       if (! info->shared)
        {
          if (! add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (htab->splt->_raw_size != 0)
@@ -4476,7 +4476,7 @@ sh_elf_size_dynamic_sections (output_bfd, info)
              || ! add_dynamic_entry (DT_PLTRELSZ, 0)
              || ! add_dynamic_entry (DT_PLTREL, DT_RELA)
              || ! add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -4485,7 +4485,7 @@ sh_elf_size_dynamic_sections (output_bfd, info)
              || ! add_dynamic_entry (DT_RELASZ, 0)
              || ! add_dynamic_entry (DT_RELAENT,
                                      sizeof (Elf32_External_Rela)))
-           return false;
+           return FALSE;
 
          /* If any dynamic relocs apply to a read-only section,
             then we need a DT_TEXTREL entry.  */
@@ -4496,18 +4496,18 @@ sh_elf_size_dynamic_sections (output_bfd, info)
          if ((info->flags & DF_TEXTREL) != 0)
            {
              if (! add_dynamic_entry (DT_TEXTREL, 0))
-               return false;
+               return FALSE;
            }
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 \f
 /* Relocate an SH ELF section.  */
 
-static boolean
+static bfd_boolean
 sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                         contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -4586,7 +4586,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              && r_type <= (int) R_SH_LAST_INVALID_RELOC_2))
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       howto = sh_elf_howto_table + r_type;
@@ -4668,7 +4668,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                     bfd_archive_filename (input_bfd),
                     bfd_get_section_name (input_bfd, input_section),
                     (long) rel->r_offset, howto->name);
-                 return false;
+                 return FALSE;
                }
 
              addend = bfd_get_32 (input_bfd, contents + rel->r_offset);
@@ -4704,7 +4704,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
          if (h->root.type == bfd_link_hash_defined
              || h->root.type == bfd_link_hash_defweak)
            {
-             boolean dyn;
+             bfd_boolean dyn;
 
              dyn = htab->root.dynamic_sections_created;
              sec = h->root.u.def.section;
@@ -4753,6 +4753,13 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                          || ((input_section->flags & SEC_DEBUGGING) != 0
                              && (h->elf_link_hash_flags
                                  & ELF_LINK_HASH_DEF_DYNAMIC) != 0)))
+                 /* Dynamic relocs are not propagated for SEC_DEBUGGING
+                    sections because such sections are not SEC_ALLOC and
+                    thus ld.so will not process them.  */
+                 || (sec->output_section == NULL
+                     && ((input_section->flags & SEC_DEBUGGING) != 0
+                         && (h->elf_link_hash_flags
+                             & ELF_LINK_HASH_DEF_DYNAMIC) != 0))
                  || (sec->output_section == NULL
                      && (sh_elf_hash_entry (h)->tls_type == GOT_TLS_IE
                          || sh_elf_hash_entry (h)->tls_type == GOT_TLS_GD)))
@@ -4763,7 +4770,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    (_("%s: unresolvable relocation against symbol `%s' from %s section"),
                     bfd_archive_filename (input_bfd), h->root.root.string,
                     bfd_get_section_name (input_bfd, input_section));
-                 return false;
+                 return FALSE;
                }
              else
                relocation = ((h->root.u.def.value
@@ -4789,7 +4796,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      input_section, rel->r_offset,
                      (!info->shared || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
@@ -4838,7 +4845,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    bfd_archive_filename (input_section->owner),
                    (unsigned long) rel->r_offset));
                  bfd_set_error (bfd_error_bad_value);
-                 return false;
+                 return FALSE;
                }
              relocation -= 4;
              goto final_link_relocate;
@@ -4853,7 +4860,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            goto final_link_relocate;
 #endif
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
 
        case R_SH_DIR32:
        case R_SH_REL32:
@@ -4868,7 +4875,8 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                              & ELF_LINK_HASH_DEF_REGULAR) == 0))))
            {
              Elf_Internal_Rela outrel;
-             boolean skip, relocate;
+             bfd_byte *loc;
+             bfd_boolean skip, relocate;
 
              /* When generating a shared object, these relocations
                 are copied into the output file to be resolved at run
@@ -4883,7 +4891,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -4894,16 +4902,16 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                  BFD_ASSERT (sreloc != NULL);
                }
 
-             skip = false;
-             relocate = false;
+             skip = FALSE;
+             relocate = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
              outrel.r_offset += (input_section->output_section->vma
                                  + input_section->output_offset);
 
@@ -4925,7 +4933,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                          && (h->elf_link_hash_flags
                              & ELF_LINK_HASH_DEF_REGULAR) != 0))
                    {
-                     relocate = true;
+                     relocate = TRUE;
                      outrel.r_info = ELF32_R_INFO (0, R_SH_RELATIVE);
                      outrel.r_addend
                        = relocation + bfd_get_32 (input_bfd,
@@ -4941,11 +4949,9 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
 
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* If this reloc is against an external symbol, we do
                 not want to fiddle with the addend.  Otherwise, we
@@ -5008,7 +5014,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
          if (h != NULL)
            {
-             boolean dyn;
+             bfd_boolean dyn;
 
              off = h->got.offset;
 #ifdef INCLUDE_SHMEDIA
@@ -5099,6 +5105,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                  if (info->shared)
                    {
                      Elf_Internal_Rela outrel;
+                     bfd_byte *loc;
 
                      if (srelgot == NULL)
                        {
@@ -5112,11 +5119,9 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                         + off);
                      outrel.r_info = ELF32_R_INFO (0, R_SH_RELATIVE);
                      outrel.r_addend = relocation;
-                     bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                               (((Elf32_External_Rela *)
-                                                 srelgot->contents)
-                                                + srelgot->reloc_count));
-                     ++srelgot->reloc_count;
+                     loc = srelgot->contents;
+                     loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela);
+                     bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                    }
 
 #ifdef INCLUDE_SHMEDIA
@@ -5266,12 +5271,13 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              unsigned short insn;
              int indx;
              Elf_Internal_Rela outrel;
+             bfd_byte *loc;
 
              if (ELF32_R_TYPE (rel->r_info) == R_SH_TLS_GD_32)
                {
                  /* GD->LE transition:
                       mov.l 1f,r4; mova 2f,r0; mov.l 2f,r1; add r0,r1;
-                      jsr @r1; add r12,r4; bra 3f; nop; .align 2; 
+                      jsr @r1; add r12,r4; bra 3f; nop; .align 2;
                       1: .long x$TLSGD; 2: .long __tls_get_addr@PLT; 3:
                     We change it into:
                       mov.l 1f,r4; stc gbr,r0; add r4,r0; nop;
@@ -5351,7 +5357,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -5371,12 +5377,10 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                outrel.r_addend = relocation - dtpoff_base (info);
              else
                outrel.r_addend = 0;
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
 
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
              continue;
            }
 
@@ -5399,7 +5403,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
           else
            {
              Elf_Internal_Rela outrel;
-             Elf32_External_Rela *loc;
+             bfd_byte *loc;
              int dr_type, indx;
 
              if (srelgot == NULL)
@@ -5419,8 +5423,8 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              else
                outrel.r_addend = 0;
              outrel.r_info = ELF32_R_INFO (indx, dr_type);
-             loc = (Elf32_External_Rela *) srelgot->contents;
-             loc += srelgot->reloc_count++;
+             loc = srelgot->contents;
+             loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela);
              bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
              if (r_type == R_SH_TLS_GD_32)
@@ -5438,9 +5442,8 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      outrel.r_offset += 4;
                      outrel.r_addend = 0;
                      srelgot->reloc_count++;
-                     loc++;
-                     bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                               loc);
+                     loc += sizeof (Elf32_External_Rela);
+                     bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                    }
                }
 
@@ -5571,7 +5574,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
          else
            {
              Elf_Internal_Rela outrel;
-             Elf32_External_Rela *loc;
+             bfd_byte *loc;
 
              srelgot = htab->srelgot;
              if (srelgot == NULL)
@@ -5581,8 +5584,8 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                 + sgot->output_offset + off);
              outrel.r_addend = 0;
              outrel.r_info = ELF32_R_INFO (0, R_SH_TLS_DTPMOD32);
-             loc = (Elf32_External_Rela *) srelgot->contents;
-             loc += srelgot->reloc_count++;
+             loc = srelgot->contents;
+             loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela);
              bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
              htab->tls_ldm_got.offset |= 1;
            }
@@ -5597,6 +5600,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              int indx;
              Elf_Internal_Rela outrel;
+             bfd_byte *loc;
 
              if (sreloc == NULL)
                {
@@ -5607,7 +5611,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -5627,12 +5631,10 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                outrel.r_addend = relocation - dtpoff_base (info);
              else
                outrel.r_addend = 0;
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
 
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
              continue;
            }
          else
@@ -5645,6 +5647,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
          {
            int indx;
            Elf_Internal_Rela outrel;
+           bfd_byte *loc;
 
            if (sreloc == NULL)
              {
@@ -5655,7 +5658,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                         elf_elfheader (input_bfd)->e_shstrndx,
                         elf_section_data (input_section)->rel_hdr.sh_name));
                if (name == NULL)
-                 return false;
+                 return FALSE;
 
                BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                            && strcmp (bfd_get_section_name (input_bfd,
@@ -5675,12 +5678,10 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              outrel.r_addend = relocation - dtpoff_base (info);
            else
              outrel.r_addend = 0;
-           bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                      (((Elf32_External_Rela *)
-                                        sreloc->contents)
-                                       + sreloc->reloc_count));
-           ++sreloc->reloc_count;
 
+           loc = sreloc->contents;
+           loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+           bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
            continue;
          }
        }
@@ -5704,21 +5705,21 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    name = (bfd_elf_string_from_elf_section
                            (input_bfd, symtab_hdr->sh_link, sym->st_name));
                    if (name == NULL)
-                     return false;
+                     return FALSE;
                    if (*name == '\0')
                      name = bfd_section_name (input_bfd, sec);
                  }
                if (! ((*info->callbacks->reloc_overflow)
                       (info, name, howto->name, (bfd_vma) 0,
                        input_bfd, input_section, rel->r_offset)))
-                 return false;
+                 return FALSE;
              }
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This is a version of bfd_generic_get_relocated_section_contents
@@ -5731,7 +5732,7 @@ sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -5764,7 +5765,7 @@ sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
 
       internal_relocs = (_bfd_elf32_link_read_relocs
                         (input_bfd, input_section, (PTR) NULL,
-                         (Elf_Internal_Rela *) NULL, false));
+                         (Elf_Internal_Rela *) NULL, FALSE));
       if (internal_relocs == NULL)
        goto error_return;
 
@@ -5888,7 +5889,7 @@ sh_elf_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 sh_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -6076,7 +6077,7 @@ sh_elf_gc_sweep_hook (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
@@ -6176,7 +6177,7 @@ sh_elf_optimized_tls_reloc (info, r_type, is_local)
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 sh_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -6201,7 +6202,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
   sreloc = NULL;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -6287,7 +6288,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
              if (dynobj == NULL)
                htab->root.dynobj = dynobj = abfd;
              if (! create_got_section (dynobj, info))
-               return false;
+               return FALSE;
              break;
 
            default:
@@ -6301,14 +6302,14 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
        case R_SH_GNU_VTINHERIT:
          if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_SH_GNU_VTENTRY:
          if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-           return false;
+           return FALSE;
          break;
 
        force_got:
@@ -6345,8 +6346,8 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
 #ifdef INCLUDE_SHMEDIA
              if (seen_stt_datalabel)
                {
-                 struct elf_sh_link_hash_entry *eh = 
-                   (struct elf_sh_link_hash_entry *)h;
+                 struct elf_sh_link_hash_entry *eh
+                   = (struct elf_sh_link_hash_entry *) h;
 
                  eh->datalabel_got.refcount += 1;
                }
@@ -6377,7 +6378,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                  local_got_refcounts = ((bfd_signed_vma *)
                                         bfd_zalloc (abfd, size));
                  if (local_got_refcounts == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_refcounts (abfd) = local_got_refcounts;
 #ifdef         INCLUDE_SHMEDIA
                  /* Take care of both the datalabel and codelabel local
@@ -6410,7 +6411,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                  (*_bfd_error_handler)
                    (_("%s: `%s' accessed both as normal and thread local symbol"),
                     bfd_archive_filename (abfd), h->root.root.string);
-                 return false;
+                 return FALSE;
                }
            }
 
@@ -6539,7 +6540,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (abfd, sec),
@@ -6558,7 +6559,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
                  if (sec->flags & SEC_READONLY)
                    info->flags |= DF_TEXTREL;
@@ -6577,7 +6578,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                  s = bfd_section_from_r_symndx (abfd, &htab->sym_sec,
                                                 sec, r_symndx);
                  if (s == NULL)
-                   return false;
+                   return FALSE;
 
                  head = ((struct elf_sh_dyn_relocs **)
                          &elf_section_data (s)->local_dynrel);
@@ -6589,7 +6590,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                  bfd_size_type amt = sizeof (*p);
                  p = ((struct elf_sh_dyn_relocs *) bfd_alloc (dynobj, amt));
                  if (p == NULL)
-                   return false;
+                   return FALSE;
                  p->next = *head;
                  *head = p;
                  p->sec = sec;
@@ -6609,7 +6610,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
            {
              (*_bfd_error_handler) (_("%s: TLS local exec code cannot be linked into shared objects"),
                                     bfd_archive_filename (abfd));
-             return false;
+             return FALSE;
            }
 
          if (ELF32_R_TYPE (rel->r_info) == R_SH_TLS_LD_32)
@@ -6636,7 +6637,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (abfd, sec),
@@ -6655,7 +6656,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
                  elf_section_data (sec)->sreloc = sreloc;
                  if (sec->flags & SEC_READONLY)
@@ -6674,7 +6675,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                  s = bfd_section_from_r_symndx (abfd, &htab->sym_sec,
                                                 sec, r_symndx);
                  if (s == NULL)
-                   return false;
+                   return FALSE;
 
                  head = ((struct elf_sh_dyn_relocs **)
                          &elf_section_data (s)->local_dynrel);
@@ -6686,7 +6687,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
                  bfd_size_type amt = sizeof (*p);
                  p = ((struct elf_sh_dyn_relocs *) bfd_alloc (dynobj, amt));
                  if (p == NULL)
-                   return false;
+                   return FALSE;
                  p->next = *head;
                  *head = p;
                  p->sec = sec;
@@ -6696,7 +6697,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
 
              p->count += 1;
              if (h)
-               sh_elf_hash_entry (h)->tls_tpoff32 = true;
+               sh_elf_hash_entry (h)->tls_tpoff32 = TRUE;
            }
          break;
 
@@ -6705,11 +6706,11 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 #ifndef sh_elf_set_mach_from_flags
-static boolean
+static bfd_boolean
 sh_elf_set_mach_from_flags (abfd)
      bfd *abfd;
 {
@@ -6740,16 +6741,16 @@ sh_elf_set_mach_from_flags (abfd)
       bfd_default_set_arch_mach (abfd, bfd_arch_sh, bfd_mach_sh4);
       break;
     default:
-      return false;
+      return FALSE;
     }
-  return true;
+  return TRUE;
 }
 #endif /* not sh_elf_set_mach_from_flags */
 
 #ifndef sh_elf_set_private_flags
 /* Function to keep SH specific file flags.  */
 
-static boolean
+static bfd_boolean
 sh_elf_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
@@ -6758,7 +6759,7 @@ sh_elf_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
+  elf_flags_init (abfd) = TRUE;
   return sh_elf_set_mach_from_flags (abfd);
 }
 #endif /* not sh_elf_set_private_flags */
@@ -6766,14 +6767,14 @@ sh_elf_set_private_flags (abfd, flags)
 #ifndef sh_elf_copy_private_data
 /* Copy backend specific data from one object module to another */
 
-static boolean
+static bfd_boolean
 sh_elf_copy_private_data (ibfd, obfd)
      bfd * ibfd;
      bfd * obfd;
 {
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   return sh_elf_set_private_flags (obfd, elf_elfheader (ibfd)->e_flags);
 }
@@ -6783,7 +6784,7 @@ sh_elf_copy_private_data (ibfd, obfd)
 /* This routine checks for linking big and little endian objects
    together, and for linking sh-dsp with sh3e / sh4 objects.  */
 
-static boolean
+static bfd_boolean
 sh_elf_merge_private_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -6791,16 +6792,16 @@ sh_elf_merge_private_data (ibfd, obfd)
   flagword old_flags, new_flags;
 
   if (! _bfd_generic_verify_endian_match (ibfd, obfd))
-    return false;
+    return FALSE;
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (! elf_flags_init (obfd))
     {
       /* This happens when ld starts out with a 'blank' output file.  */
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = EF_SH1;
     }
   old_flags = elf_elfheader (obfd)->e_flags;
@@ -6814,7 +6815,7 @@ sh_elf_merge_private_data (ibfd, obfd)
         EF_SH_HAS_DSP (new_flags) ? "dsp" : "floating point",
         EF_SH_HAS_DSP (new_flags) ? "floating point" : "dsp");
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
   elf_elfheader (obfd)->e_flags = EF_SH_MERGE_MACH (old_flags, new_flags);
 
@@ -6826,29 +6827,29 @@ sh_elf_merge_private_data (ibfd, obfd)
    as the specific tdata.  We set also the machine architecture from flags
    here.  */
 
-static boolean
+static bfd_boolean
 sh_elf_object_p (abfd)
   bfd *abfd;
 {
   struct sh_elf_obj_tdata *new_tdata;
   bfd_size_type amt = sizeof (struct sh_elf_obj_tdata);
 
-  if (sh_elf_set_mach_from_flags (abfd) == false)
-    return false;
+  if (!sh_elf_set_mach_from_flags (abfd))
+    return FALSE;
 
   /* Allocate our special target data.  */
   new_tdata = bfd_zalloc (abfd, amt);
   if (new_tdata == NULL)
-    return false;
+    return FALSE;
   new_tdata->root = *abfd->tdata.elf_obj_data;
   abfd->tdata.any = new_tdata;
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -6870,6 +6871,7 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_vma plt_index;
       bfd_vma got_offset;
       Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
         it up.  */
@@ -6989,9 +6991,8 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
 #ifdef GOT_BIAS
       rel.r_addend = GOT_BIAS;
 #endif
-      bfd_elf32_swap_reloca_out (output_bfd, &rel,
-                               ((Elf32_External_Rela *) srel->contents
-                                + plt_index));
+      loc = srel->contents + plt_index * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
        {
@@ -7008,6 +7009,7 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *sgot;
       asection *srel;
       Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -7043,10 +7045,9 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
          rel.r_addend = 0;
        }
 
-      bfd_elf32_swap_reloca_out (output_bfd, &rel,
-                                ((Elf32_External_Rela *) srel->contents
-                                 + srel->reloc_count));
-      ++srel->reloc_count;
+      loc = srel->contents;
+      loc += srel->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
     }
 
 #ifdef INCLUDE_SHMEDIA
@@ -7059,6 +7060,7 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
        asection *sgot;
        asection *srel;
        Elf_Internal_Rela rel;
+       bfd_byte *loc;
 
        /* This symbol has a datalabel entry in the global offset table.
           Set it up.  */
@@ -7095,10 +7097,9 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
            rel.r_addend = 0;
          }
 
-       bfd_elf32_swap_reloca_out (output_bfd, &rel,
-                                  ((Elf32_External_Rela *) srel->contents
-                                   + srel->reloc_count));
-       ++srel->reloc_count;
+       loc = srel->contents;
+       loc += srel->reloc_count++ * sizeof (Elf32_External_Rela);
+       bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
       }
   }
 #endif
@@ -7107,6 +7108,7 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
     {
       asection *s;
       Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -7123,10 +7125,8 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
                      + h->root.u.def.section->output_offset);
       rel.r_info = ELF32_R_INFO (h->dynindx, R_SH_COPY);
       rel.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rel,
-                                ((Elf32_External_Rela *) s->contents
-                                 + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
     }
 
   /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute.  */
@@ -7134,12 +7134,12 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 sh_elf_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -7192,7 +7192,7 @@ sh_elf_finish_dynamic_sections (output_bfd, info)
                  struct elf_link_hash_entry *h;
 
                  h = elf_link_hash_lookup (&htab->root, name,
-                                           false, false, true);
+                                           FALSE, FALSE, TRUE);
                  if (h != NULL && (h->other & STO_SH5_ISA32))
                    {
                      dyn.d_un.d_val |= 1;
@@ -7308,7 +7308,7 @@ sh_elf_finish_dynamic_sections (output_bfd, info)
       elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
     }
 
-  return true;
+  return TRUE;
 }
 
 static enum elf_reloc_type_class
@@ -7329,7 +7329,7 @@ sh_elf_reloc_type_class (rela)
 }
 
 /* Support for Linux core dump NOTE sections */
-static boolean
+static bfd_boolean
 elf32_shlin_grok_prstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -7340,7 +7340,7 @@ elf32_shlin_grok_prstatus (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 168:                /* Linux/SH */
        /* pr_cursig */
@@ -7361,7 +7361,7 @@ elf32_shlin_grok_prstatus (abfd, note)
                                          raw_size, note->descpos + offset);
 }
 
-static boolean
+static bfd_boolean
 elf32_shlin_grok_psinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -7369,7 +7369,7 @@ elf32_shlin_grok_psinfo (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 124:                /* Linux/SH elf_prpsinfo */
        elf_tdata (abfd)->core_program
@@ -7390,7 +7390,7 @@ elf32_shlin_grok_psinfo (abfd, note)
       command[n - 1] = '\0';
   }
 
-  return true;
+  return TRUE;
 }
 
 #define TARGET_BIG_SYM         bfd_elf32_sh_vec
index df0c463e2632d28782522b7987719d0ef2b376f1..d89d7c7fc5dda8fd55f3f8684fe311298054ca6d 100644 (file)
@@ -1,18 +1,18 @@
 /* Hitachi SH64-specific support for 32-bit ELF
-   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 
-      
+   Copyright 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
@@ -26,7 +26,7 @@
 #include "elf/sh.h"
 #include "../opcodes/sh64-opc.h"
 
-static boolean sh64_address_in_cranges
+static bfd_boolean sh64_address_in_cranges
   PARAMS ((asection *cranges, bfd_vma, sh64_elf_crange *));
 
 /* Ordering functions of a crange, for the qsort and bsearch calls and for
@@ -100,7 +100,7 @@ _bfd_sh64_crange_bsearch_cmpl (p1, p2)
    section.  Return FALSE if not found, and TRUE if found, and the region
    filled into RANGEP if non-NULL.  */
 
-static boolean
+static bfd_boolean
 sh64_address_in_cranges (cranges, addr, rangep)
      asection *cranges;
      bfd_vma addr;
@@ -113,11 +113,11 @@ sh64_address_in_cranges (cranges, addr, rangep)
   /* If the size is not a multiple of the cranges entry size, then
      something is badly wrong.  */
   if ((cranges_size % SH64_CRANGE_SIZE) != 0)
-    return false;
+    return FALSE;
 
   /* If this section has relocations, then we can't do anything sane.  */
   if (bfd_get_section_flags (cranges->owner, cranges) & SEC_RELOC)
-    return false;
+    return FALSE;
 
   /* Has some kind soul (or previous call) left processed, sorted contents
      for us?  */
@@ -130,7 +130,7 @@ sh64_address_in_cranges (cranges, addr, rangep)
        = bfd_malloc (cranges->_cooked_size != 0
                      ? cranges->_cooked_size : cranges->_raw_size);
       if (cranges_contents == NULL)
-       return false;
+       return FALSE;
 
       if (! bfd_get_section_contents (cranges->owner, cranges,
                                      cranges_contents, (file_ptr) 0,
@@ -183,16 +183,16 @@ sh64_address_in_cranges (cranges, addr, rangep)
       rangep->cr_size = cr_size;
       rangep->cr_type = cr_type;
 
-      return true;
+      return TRUE;
     }
 
   /* There is a .cranges section, but it does not have a descriptor
      matching this address.  */
-  return false;
+  return FALSE;
 
 error_return:
   free (cranges_contents);
-  return false;
+  return FALSE;
 }
 
 /* Determine what ADDR points to in SEC, and fill in a range descriptor in
@@ -215,7 +215,7 @@ sh64_get_contents_type (sec, addr, rangep)
       rangep->cr_type = CRT_NONE;
     }
   else
-    return false;
+    return FALSE;
 
   /* If none of the pertinent bits are set, then it's a SHcompact (or at
      least not SHmedia).  */
@@ -254,7 +254,7 @@ sh64_get_contents_type (sec, addr, rangep)
 
 /* This is a simpler exported interface for the benefit of gdb et al.  */
 
-boolean
+bfd_boolean
 sh64_address_is_shmedia (sec, addr)
      asection *sec;
      bfd_vma addr;
index c0df73d4d82efecc5d0ae0753fd473f89f891fb7..a6638e9b2bf59399e7feb004eb68b20304958eb7 100644 (file)
@@ -1,5 +1,5 @@
 /* Hitachi SH64-specific support for 32-bit ELF
-   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -37,28 +37,35 @@ struct sh64_find_section_vma_data
    bfd_vma addr;
  };
 
-static boolean sh64_elf_copy_private_data PARAMS ((bfd *, bfd *));
-static boolean sh64_elf_merge_private_data PARAMS ((bfd *, bfd *));
-static boolean sh64_elf_fake_sections PARAMS ((bfd *, Elf_Internal_Shdr *,
-                                             asection *));
-static boolean sh64_elf_set_private_flags PARAMS ((bfd *, flagword));
-static boolean sh64_elf_set_mach_from_flags PARAMS ((bfd *));
-static boolean shmedia_prepare_reloc
+static bfd_boolean sh64_elf_copy_private_data
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean sh64_elf_merge_private_data
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean sh64_elf_fake_sections
+  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
+static bfd_boolean sh64_elf_set_private_flags
+  PARAMS ((bfd *, flagword));
+static bfd_boolean sh64_elf_set_mach_from_flags
+  PARAMS ((bfd *));
+static bfd_boolean shmedia_prepare_reloc
   PARAMS ((struct bfd_link_info *, bfd *, asection *,
           bfd_byte *, const Elf_Internal_Rela *, bfd_vma *));
-static int sh64_elf_get_symbol_type PARAMS ((Elf_Internal_Sym *, int));
-static boolean sh64_elf_add_symbol_hook
+static int sh64_elf_get_symbol_type
+  PARAMS ((Elf_Internal_Sym *, int));
+static bfd_boolean sh64_elf_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
-static boolean sh64_elf_link_output_symbol_hook
+static bfd_boolean sh64_elf_link_output_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *,
           asection *));
-static boolean sh64_backend_section_from_shdr
+static bfd_boolean sh64_backend_section_from_shdr
   PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
-static void sh64_elf_final_write_processing PARAMS ((bfd *, boolean));
-static boolean sh64_bfd_elf_copy_private_section_data
+static void sh64_elf_final_write_processing
+  PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean sh64_bfd_elf_copy_private_section_data
   PARAMS ((bfd *, asection *, bfd *, asection *));
-static void sh64_find_section_for_address PARAMS ((bfd *, asection *, PTR));
+static void sh64_find_section_for_address
+  PARAMS ((bfd *, asection *, PTR));
 
 /* Let elf32-sh.c handle the "bfd_" definitions, so we only have to
    intrude with an #ifndef around the function definition.  */
@@ -85,9 +92,9 @@ static void sh64_find_section_for_address PARAMS ((bfd *, asection *, PTR));
        sh64_bfd_elf_copy_private_section_data
 
 /* This COFF-only function (only compiled with COFF support, making
-   ELF-only chains problematic) returns true early for SH4, so let's just
-   define it true here.  */
-#define _bfd_sh_align_load_span(a,b,c,d,e,f,g,h,i,j) true
+   ELF-only chains problematic) returns TRUE early for SH4, so let's just
+   define it TRUE here.  */
+#define _bfd_sh_align_load_span(a,b,c,d,e,f,g,h,i,j) TRUE
 
 #define GOT_BIAS (-((long)-32768))
 #define INCLUDE_SHMEDIA
@@ -96,7 +103,7 @@ static void sh64_find_section_for_address PARAMS ((bfd *, asection *, PTR));
 /* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections, and pass
    through SHT_SH5_CR_SORTED on a sorted .cranges section.  */
 
-boolean
+bfd_boolean
 sh64_elf_fake_sections (output_bfd, elf_section_hdr, asect)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      Elf_Internal_Shdr *elf_section_hdr;
@@ -113,10 +120,10 @@ sh64_elf_fake_sections (output_bfd, elf_section_hdr, asect)
                 SH64_CRANGES_SECTION_NAME) == 0)
     elf_section_hdr->sh_type = SHT_SH5_CR_SORTED;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 sh64_elf_set_mach_from_flags (abfd)
      bfd *abfd;
 {
@@ -133,7 +140,7 @@ sh64_elf_set_mach_from_flags (abfd)
 
     default:
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 
   /* We also need to set SEC_DEBUGGING on an incoming .cranges section.
@@ -146,29 +153,29 @@ sh64_elf_set_mach_from_flags (abfd)
       && ! bfd_set_section_flags (abfd, cranges,
                                  bfd_get_section_flags (abfd, cranges)
                                  | SEC_DEBUGGING))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 sh64_elf_copy_private_data (ibfd, obfd)
      bfd * ibfd;
      bfd * obfd;
 {
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   BFD_ASSERT (!elf_flags_init (obfd)
              || (elf_elfheader (obfd)->e_flags
                  == elf_elfheader (ibfd)->e_flags));
 
   elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 sh64_elf_merge_private_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -176,11 +183,11 @@ sh64_elf_merge_private_data (ibfd, obfd)
   flagword old_flags, new_flags;
 
   if (! _bfd_generic_verify_endian_match (ibfd, obfd))
-    return false;
+    return FALSE;
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (bfd_get_arch_size (ibfd) != bfd_get_arch_size (obfd))
     {
@@ -198,7 +205,7 @@ sh64_elf_merge_private_data (ibfd, obfd)
       (*_bfd_error_handler) (msg, bfd_get_filename (ibfd),
                             bfd_get_filename (obfd));
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 
   old_flags = elf_elfheader (obfd)->e_flags;
@@ -206,7 +213,7 @@ sh64_elf_merge_private_data (ibfd, obfd)
   if (! elf_flags_init (obfd))
     {
       /* This happens when ld starts out with a 'blank' output file.  */
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = old_flags = new_flags;
     }
   /* We don't allow linking in non-SH64 code.  */
@@ -216,7 +223,7 @@ sh64_elf_merge_private_data (ibfd, obfd)
        ("%s: uses non-SH64 instructions while previous modules use SH64 instructions",
         bfd_get_filename (ibfd));
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   /* I can't think of anything sane other than old_flags being EF_SH5 and
@@ -230,7 +237,7 @@ sh64_elf_merge_private_data (ibfd, obfd)
 
    We only recognize SHT_SH5_CR_SORTED, on the .cranges section.  */
 
-boolean
+bfd_boolean
 sh64_backend_section_from_shdr (abfd, hdr, name)
      bfd *abfd;
      Elf_Internal_Shdr *hdr;
@@ -239,13 +246,13 @@ sh64_backend_section_from_shdr (abfd, hdr, name)
   flagword flags = 0;
 
   /* We do like MIPS with a bit switch for recognized types, and returning
-     false for a recognized section type with an unexpected name.  Right
+     FALSE for a recognized section type with an unexpected name.  Right
      now we only have one recognized type, but that might change.  */
   switch (hdr->sh_type)
     {
     case SHT_SH5_CR_SORTED:
       if (strcmp (name, SH64_CRANGES_SECTION_NAME) != 0)
-       return false;
+       return FALSE;
 
       /* We set the SEC_SORT_ENTRIES flag so it can be passed on to
         sh64_elf_fake_sections, keeping SHT_SH5_CR_SORTED if this object
@@ -256,20 +263,20 @@ sh64_backend_section_from_shdr (abfd, hdr, name)
       break;
 
     default:
-      return false;
+      return FALSE;
     }
 
   if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-    return false;
+    return FALSE;
 
   if (flags
       && ! bfd_set_section_flags (abfd, hdr->bfd_section,
                                  bfd_get_section_flags (abfd,
                                                         hdr->bfd_section)
                                  | flags))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* In contrast to sh64_backend_section_from_shdr, this is called for all
@@ -277,7 +284,7 @@ sh64_backend_section_from_shdr (abfd, hdr, name)
    assembling.  We need to set up the sh64_elf_section_data (asection *)
    structure for the SH64 ELF section flags to be copied correctly.  */
 
-boolean
+bfd_boolean
 sh64_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
      bfd *ibfd;
      asection *isec;
@@ -288,10 +295,10 @@ sh64_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
 
   if (ibfd->xvec->flavour != bfd_target_elf_flavour
       || obfd->xvec->flavour != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (! _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec))
-    return false;
+    return FALSE;
 
   sh64_sec_data = sh64_elf_section_data (isec);
   if (sh64_sec_data == NULL)
@@ -299,7 +306,7 @@ sh64_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
       sh64_sec_data = bfd_zmalloc (sizeof (struct sh64_section_data));
 
       if (sh64_sec_data == NULL)
-       return false;
+       return FALSE;
 
       sh64_sec_data->contents_flags
        = (elf_section_data (isec)->this_hdr.sh_flags
@@ -308,12 +315,12 @@ sh64_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
       sh64_elf_section_data (osec) = sh64_sec_data;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Function to keep SH64 specific file flags.  */
 
-static boolean
+static bfd_boolean
 sh64_elf_set_private_flags (abfd, flags)
      bfd *    abfd;
      flagword flags;
@@ -322,7 +329,7 @@ sh64_elf_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
+  elf_flags_init (abfd) = TRUE;
   return sh64_elf_set_mach_from_flags (abfd);
 }
 
@@ -357,7 +364,7 @@ sh64_elf_get_symbol_type (elf_sym, type)
    or the hash entry, alternatively adding the index to Elf_Internal_Sym
    (not so good).  */
 
-static boolean
+static bfd_boolean
 sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -388,13 +395,13 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
 
       /* Allocation may fail.  */
       if (dl_name == NULL)
-       return false;
+       return FALSE;
 
       strcpy (dl_name, *namep);
       strcat (dl_name, DATALABEL_SUFFIX);
 
       h = (struct elf_link_hash_entry *)
-       bfd_link_hash_lookup (info->hash, dl_name, false, false, false);
+       bfd_link_hash_lookup (info->hash, dl_name, FALSE, FALSE, FALSE);
 
       if (h == NULL)
        {
@@ -404,11 +411,11 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
 
          if (! _bfd_generic_link_add_one_symbol (info, abfd, dl_name,
                                                  flags, *secp, *valp,
-                                                 *namep, false,
+                                                 *namep, FALSE,
                                                  bed->collect, &bh))
            {
              free (dl_name);
-             return false;
+             return FALSE;
            }
 
          h = (struct elf_link_hash_entry *) bh;
@@ -431,7 +438,7 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
            (_("%s: encountered datalabel symbol in input"),
             bfd_get_filename (abfd));
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       /* Now find the hash-table slot for this entry and fill it in.  */
@@ -443,7 +450,7 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       *namep = NULL;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This hook function is called before the linker writes out a global
@@ -458,7 +465,7 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
    we don't need to look up and make sure to emit the main symbol for each
    DataLabel symbol.  */
 
-boolean
+bfd_boolean
 sh64_elf_link_output_symbol_hook (abfd, info, cname, sym, input_sec)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -474,14 +481,14 @@ sh64_elf_link_output_symbol_hook (abfd, info, cname, sym, input_sec)
        name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Check a SH64-specific reloc and put the value to relocate to into
    RELOCATION, ready to pass to _bfd_final_link_relocate.  Return FALSE if
    bad value, TRUE if ok.  */
 
-static boolean
+static bfd_boolean
 shmedia_prepare_reloc (info, abfd, input_section,
                       contents, rel, relocation)
      struct bfd_link_info *info;
@@ -520,7 +527,7 @@ shmedia_prepare_reloc (info, abfd, input_section,
                && ! ((*info->callbacks->reloc_dangerous)
                      (info, msg, abfd, input_section,
                       rel->r_offset)))
-             return false;
+             return FALSE;
          }
        else
          {
@@ -534,7 +541,7 @@ shmedia_prepare_reloc (info, abfd, input_section,
                (*_bfd_error_handler)
                  (_("%s: GAS error: unexpected PTB insn with R_SH_PT_16"),
                   bfd_get_filename (input_section->owner));
-               return false;
+               return FALSE;
              }
 
            /* Change the PTA to a PTB, if destination indicates so.  */
@@ -567,7 +574,7 @@ shmedia_prepare_reloc (info, abfd, input_section,
       break;
 
     default:
-      return false;
+      return FALSE;
     }
 
   disp = (*relocation & 0xf);
@@ -584,10 +591,10 @@ shmedia_prepare_reloc (info, abfd, input_section,
        (_("%s: error: unaligned relocation type %d at %08x reloc %08x\n"),
         bfd_get_filename (input_section->owner), ELF32_R_TYPE (rel->r_info),
         (unsigned)rel->r_offset, (unsigned)relocation);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Helper function to locate the section holding a certain address.  This
@@ -634,8 +641,8 @@ sh64_find_section_for_address (abfd, section, data)
 
 static void
 sh64_elf_final_write_processing (abfd, linker)
-     bfd *   abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd *abfd;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   bfd_vma ld_generated_cranges_size;
   asection *cranges
index be2733d36bb7cf6919e132ba95b9f311bbf00b54..07137baef33d169d618a2b243d316906d94e5042 100644 (file)
@@ -30,34 +30,35 @@ static reloc_howto_type *elf32_sparc_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void elf32_sparc_info_to_howto
   PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-static boolean elf32_sparc_check_relocs
+static bfd_boolean elf32_sparc_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf32_sparc_adjust_dynamic_symbol
+static bfd_boolean elf32_sparc_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean elf32_sparc_size_dynamic_sections
+static bfd_boolean elf32_sparc_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf32_sparc_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
-static boolean elf32_sparc_relocate_section
+static bfd_boolean elf32_sparc_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean elf32_sparc_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf32_sparc_finish_dynamic_symbol
+static bfd_boolean elf32_sparc_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-static boolean elf32_sparc_finish_dynamic_sections
+static bfd_boolean elf32_sparc_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf32_sparc_merge_private_bfd_data PARAMS ((bfd *, bfd *));
-static boolean elf32_sparc_object_p
+static bfd_boolean elf32_sparc_merge_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean elf32_sparc_object_p
   PARAMS ((bfd *));
 static void elf32_sparc_final_write_processing
-  PARAMS ((bfd *, boolean));
+  PARAMS ((bfd *, bfd_boolean));
 static enum elf_reloc_type_class elf32_sparc_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
 static asection * elf32_sparc_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf32_sparc_gc_sweep_hook
+static bfd_boolean elf32_sparc_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 \f
@@ -70,72 +71,72 @@ static bfd_reloc_status_type sparc_elf_wdisp16_reloc
 
 reloc_howto_type _bfd_sparc_elf_howto_table[] =
 {
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_8,         0,0, 8,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_8",       false,0,0x000000ff,true),
-  HOWTO(R_SPARC_16,        0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_16",      false,0,0x0000ffff,true),
-  HOWTO(R_SPARC_32,        0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_32",      false,0,0xffffffff,true),
-  HOWTO(R_SPARC_DISP8,     0,0, 8,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP8",   false,0,0x000000ff,true),
-  HOWTO(R_SPARC_DISP16,    0,1,16,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP16",  false,0,0x0000ffff,true),
-  HOWTO(R_SPARC_DISP32,    0,2,32,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP32",  false,0,0xffffffff,true),
-  HOWTO(R_SPARC_WDISP30,   2,2,30,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP30", false,0,0x3fffffff,true),
-  HOWTO(R_SPARC_WDISP22,   2,2,22,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP22", false,0,0x003fffff,true),
-  HOWTO(R_SPARC_HI22,     10,2,22,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HI22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_22,        0,2,22,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_22",      false,0,0x003fffff,true),
-  HOWTO(R_SPARC_13,        0,2,13,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_13",      false,0,0x00001fff,true),
-  HOWTO(R_SPARC_LO10,      0,2,10,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LO10",    false,0,0x000003ff,true),
-  HOWTO(R_SPARC_GOT10,     0,2,10,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT10",   false,0,0x000003ff,true),
-  HOWTO(R_SPARC_GOT13,     0,2,13,false,0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_GOT13",   false,0,0x00001fff,true),
-  HOWTO(R_SPARC_GOT22,    10,2,22,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT22",   false,0,0x003fffff,true),
-  HOWTO(R_SPARC_PC10,      0,2,10,true, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC10",    false,0,0x000003ff,true),
-  HOWTO(R_SPARC_PC22,     10,2,22,true, 0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PC22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_WPLT30,    2,2,30,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WPLT30",  false,0,0x3fffffff,true),
-  HOWTO(R_SPARC_COPY,      0,0,00,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_COPY",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_GLOB_DAT,  0,0,00,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GLOB_DAT",false,0,0x00000000,true),
-  HOWTO(R_SPARC_JMP_SLOT,  0,0,00,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_JMP_SLOT",false,0,0x00000000,true),
-  HOWTO(R_SPARC_RELATIVE,  0,0,00,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_RELATIVE",false,0,0x00000000,true),
-  HOWTO(R_SPARC_UA32,      0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA32",    false,0,0xffffffff,true),
-  HOWTO(R_SPARC_PLT32,     0,0,00,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT32",   false,0,0xffffffff,true),
-  HOWTO(R_SPARC_HIPLT22,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_HIPLT22",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_LOPLT10,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_LOPLT10",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_PCPLT32,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PCPLT32",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_PCPLT22,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PCPLT22",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_PCPLT10,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PCPLT10",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_10,        0,2,10,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_10",      false,0,0x000003ff,true),
-  HOWTO(R_SPARC_11,        0,2,11,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_11",      false,0,0x000007ff,true),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_8,         0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_8",       FALSE,0,0x000000ff,TRUE),
+  HOWTO(R_SPARC_16,        0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_16",      FALSE,0,0x0000ffff,TRUE),
+  HOWTO(R_SPARC_32,        0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_32",      FALSE,0,0xffffffff,TRUE),
+  HOWTO(R_SPARC_DISP8,     0,0, 8,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP8",   FALSE,0,0x000000ff,TRUE),
+  HOWTO(R_SPARC_DISP16,    0,1,16,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP16",  FALSE,0,0x0000ffff,TRUE),
+  HOWTO(R_SPARC_DISP32,    0,2,32,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP32",  FALSE,0,0xffffffff,TRUE),
+  HOWTO(R_SPARC_WDISP30,   2,2,30,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE),
+  HOWTO(R_SPARC_WDISP22,   2,2,22,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_HI22,     10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HI22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_22,        0,2,22,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_22",      FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_13,        0,2,13,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_13",      FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_LO10,      0,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LO10",    FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_GOT10,     0,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT10",   FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_GOT13,     0,2,13,FALSE,0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_GOT13",   FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_GOT22,    10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT22",   FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_PC10,      0,2,10,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC10",    FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_PC22,     10,2,22,TRUE, 0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PC22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_WPLT30,    2,2,30,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WPLT30",  FALSE,0,0x3fffffff,TRUE),
+  HOWTO(R_SPARC_COPY,      0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_COPY",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_GLOB_DAT,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_JMP_SLOT,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_RELATIVE,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_UA32,      0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA32",    FALSE,0,0xffffffff,TRUE),
+  HOWTO(R_SPARC_PLT32,     0,0,00,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT32",   FALSE,0,0xffffffff,TRUE),
+  HOWTO(R_SPARC_HIPLT22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_HIPLT22",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_LOPLT10,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_LOPLT10",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PCPLT32,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PCPLT32",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PCPLT22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PCPLT22",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PCPLT10,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PCPLT10",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_10,        0,2,10,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_10",      FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_11,        0,2,11,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_11",      FALSE,0,0x000007ff,TRUE),
   /* These are for sparc64 in a 64 bit environment.
      Values need to be here because the table is indexed by reloc number.  */
-  HOWTO(R_SPARC_64,        0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_64",      false,0,0x00000000,true),
-  HOWTO(R_SPARC_OLO10,     0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_OLO10",   false,0,0x00000000,true),
-  HOWTO(R_SPARC_HH22,      0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_HH22",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_HM10,      0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_HM10",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_LM22,      0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_LM22",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_PC_HH22,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PC_HH22", false,0,0x00000000,true),
-  HOWTO(R_SPARC_PC_HM10,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PC_HM10", false,0,0x00000000,true),
-  HOWTO(R_SPARC_PC_LM22,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PC_LM22", false,0,0x00000000,true),
+  HOWTO(R_SPARC_64,        0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_64",      FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_OLO10,     0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_OLO10",   FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_HH22,      0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_HH22",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_HM10,      0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_HM10",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_LM22,      0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_LM22",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PC_HH22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PC_HH22", FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PC_HM10,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PC_HM10", FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PC_LM22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_PC_LM22", FALSE,0,0x00000000,TRUE),
   /* End sparc64 in 64 bit environment values.
      The following are for sparc64 in a 32 bit environment.  */
-  HOWTO(R_SPARC_WDISP16,   2,2,16,true, 0,complain_overflow_signed,  sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", false,0,0x00000000,true),
-  HOWTO(R_SPARC_WDISP19,   2,2,19,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP19", false,0,0x0007ffff,true),
-  HOWTO(R_SPARC_UNUSED_42, 0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_UNUSED_42",false,0,0x00000000,true),
-  HOWTO(R_SPARC_7,         0,2, 7,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_7",       false,0,0x0000007f,true),
-  HOWTO(R_SPARC_5,         0,2, 5,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_5",       false,0,0x0000001f,true),
-  HOWTO(R_SPARC_6,         0,2, 6,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_6",       false,0,0x0000003f,true),
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_UA64,      0,0, 0,false,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_UA64",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_UA16,      0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA16",    false,0,0x0000ffff,true),
-  HOWTO(R_SPARC_REV32,     0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_REV32",   false,0,0xffffffff,true),
+  HOWTO(R_SPARC_WDISP16,   2,2,16,TRUE, 0,complain_overflow_signed,  sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_WDISP19,   2,2,19,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP19", FALSE,0,0x0007ffff,TRUE),
+  HOWTO(R_SPARC_UNUSED_42, 0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_UNUSED_42",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_7,         0,2, 7,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_7",       FALSE,0,0x0000007f,TRUE),
+  HOWTO(R_SPARC_5,         0,2, 5,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_5",       FALSE,0,0x0000001f,TRUE),
+  HOWTO(R_SPARC_6,         0,2, 6,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_6",       FALSE,0,0x0000003f,TRUE),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_UA64,      0,0, 0,FALSE,0,complain_overflow_dont,    sparc_elf_notsupported_reloc,  "R_SPARC_UA64",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_UA16,      0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA16",    FALSE,0,0x0000ffff,TRUE),
+  HOWTO(R_SPARC_REV32,     0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_REV32",   FALSE,0,0xffffffff,TRUE),
 };
 static reloc_howto_type elf32_sparc_vtinherit_howto =
-  HOWTO (R_SPARC_GNU_VTINHERIT, 0,2,0,false,0,complain_overflow_dont, NULL, "R_SPARC_GNU_VTINHERIT", false,0, 0, false);
+  HOWTO (R_SPARC_GNU_VTINHERIT, 0,2,0,FALSE,0,complain_overflow_dont, NULL, "R_SPARC_GNU_VTINHERIT", FALSE,0, 0, FALSE);
 static reloc_howto_type elf32_sparc_vtentry_howto =
-  HOWTO (R_SPARC_GNU_VTENTRY, 0,2,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_SPARC_GNU_VTENTRY", false,0,0, false);
+  HOWTO (R_SPARC_GNU_VTENTRY, 0,2,0,FALSE,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_SPARC_GNU_VTENTRY", FALSE,0,0, FALSE);
 
 struct elf_reloc_map {
   bfd_reloc_code_real_type bfd_reloc_val;
@@ -351,7 +352,7 @@ sparc_elf_wdisp16_reloc (abfd,
    allocate space in the global offset table or procedure linkage
    table.  */
 
-static boolean
+static bfd_boolean
 elf32_sparc_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -369,7 +370,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -404,7 +405,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
              /* Create the .got section.  */
              elf_hash_table (info)->dynobj = dynobj = abfd;
              if (! _bfd_elf_create_got_section (dynobj, info))
-               return false;
+               return FALSE;
            }
 
          if (sgot == NULL)
@@ -429,7 +430,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
                                                   | SEC_LINKER_CREATED
                                                   | SEC_READONLY))
                      || ! bfd_set_section_alignment (dynobj, srelgot, 2))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -446,7 +447,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
              if (h->dynindx == -1)
                {
                  if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-                   return false;
+                   return FALSE;
                }
 
              srelgot->_raw_size += sizeof (Elf32_External_Rela);
@@ -464,7 +465,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
                  size *= sizeof (bfd_vma);
                  local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size);
                  if (local_got_offsets == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_offsets (abfd) = local_got_offsets;
                  for (i = 0; i < symtab_hdr->sh_info; i++)
                    local_got_offsets[i] = (bfd_vma) -1;
@@ -519,7 +520,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
          if (h->dynindx == -1)
            {
              if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
@@ -588,7 +589,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (abfd, sec),
@@ -607,7 +608,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
                  if (sec->flags & SEC_READONLY)
                    info->flags |= DF_TEXTREL;
@@ -620,12 +621,12 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
 
         case R_SPARC_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         case R_SPARC_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
 
        default:
@@ -633,7 +634,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 static asection *
@@ -674,7 +675,7 @@ elf32_sparc_gc_mark_hook (sec, info, rel, h, sym)
 }
 
 /* Update the got entry reference counts for the section being removed.  */
-static boolean
+static bfd_boolean
 elf32_sparc_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -732,7 +733,7 @@ elf32_sparc_gc_sweep_hook (abfd, info, sec, relocs)
        break;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -741,7 +742,7 @@ elf32_sparc_gc_sweep_hook (abfd, info, sec, relocs)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf32_sparc_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -793,7 +794,7 @@ elf32_sparc_adjust_dynamic_symbol (info, h)
             table, and we can just do a WDISP30 reloc instead.  */
 
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
-         return true;
+         return TRUE;
        }
 
       s = bfd_get_section_by_name (dynobj, ".plt");
@@ -807,7 +808,7 @@ elf32_sparc_adjust_dynamic_symbol (info, h)
       if (s->_raw_size >= 0x400000)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
      /* If this symbol is not defined in a regular file, and we are
@@ -833,7 +834,7 @@ elf32_sparc_adjust_dynamic_symbol (info, h)
       BFD_ASSERT (s != NULL);
       s->_raw_size += sizeof (Elf32_External_Rela);
 
-      return true;
+      return TRUE;
     }
 
   /* If this is a weak symbol, and there is a real definition, the
@@ -845,7 +846,7 @@ elf32_sparc_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -856,12 +857,12 @@ elf32_sparc_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -902,7 +903,7 @@ elf32_sparc_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (! bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -912,19 +913,19 @@ elf32_sparc_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf32_sparc_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean relplt;
+  bfd_boolean relplt;
 
   dynobj = elf_hash_table (info)->dynobj;
   BFD_ASSERT (dynobj != NULL);
@@ -961,11 +962,11 @@ elf32_sparc_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  relplt = false;
+  relplt = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -974,7 +975,7 @@ elf32_sparc_size_dynamic_sections (output_bfd, info)
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      strip = false;
+      strip = FALSE;
 
       if (strncmp (name, ".rela", 5) == 0)
        {
@@ -989,12 +990,12 @@ elf32_sparc_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              if (strcmp (name, ".rela.plt") == 0)
-               relplt = true;
+               relplt = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -1022,7 +1023,7 @@ elf32_sparc_size_dynamic_sections (output_bfd, info)
         contents to zero.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -1038,7 +1039,7 @@ elf32_sparc_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (relplt)
@@ -1047,38 +1048,38 @@ elf32_sparc_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (!add_dynamic_entry (DT_RELA, 0)
          || !add_dynamic_entry (DT_RELASZ, 0)
          || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
-       return false;
+       return FALSE;
 
       if (info->flags & DF_TEXTREL)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 #define SET_SEC_DO_RELAX(section) do { elf_section_data(section)->tdata = (void *)1; } while (0)
 #define SEC_DO_RELAX(section) (elf_section_data(section)->tdata == (void *)1)
 
-static boolean
+static bfd_boolean
 elf32_sparc_relax_section (abfd, section, link_info, again)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
-     boolean *again;
+     bfd_boolean *again;
 {
-  *again = false;
+  *again = FALSE;
   SET_SEC_DO_RELAX (section);
-  return true;
+  return TRUE;
 }
 
 /* This is the condition under which finish_dynamic_symbol will be called
@@ -1094,7 +1095,7 @@ elf32_sparc_relax_section (abfd, section, link_info, again)
 
 /* Relocate a SPARC ELF section.  */
 
-static boolean
+static bfd_boolean
 elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                              contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -1118,7 +1119,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1146,8 +1147,8 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
       asection *sec;
       bfd_vma relocation, off;
       bfd_reloc_status_type r;
-      boolean is_plt = false;
-      boolean unresolved_reloc;
+      bfd_boolean is_plt = FALSE;
+      bfd_boolean unresolved_reloc;
 
       r_type = ELF32_R_TYPE (rel->r_info);
 
@@ -1158,7 +1159,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
       if (r_type < 0 || r_type >= (int) R_SPARC_max_std)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       howto = _bfd_sparc_elf_howto_table + r_type;
 
@@ -1167,7 +1168,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
       h = NULL;
       sym = NULL;
       sec = NULL;
-      unresolved_reloc = false;
+      unresolved_reloc = FALSE;
       if (r_symndx < symtab_hdr->sh_info)
        {
          sym = local_syms + r_symndx;
@@ -1191,7 +1192,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                   relocation value for this symbol.  output_section
                   is typically NULL for symbols satisfied by a shared
                   library.  */
-               unresolved_reloc = true;
+               unresolved_reloc = TRUE;
              else
                relocation = (h->root.u.def.value
                              + sec->output_section->vma
@@ -1211,7 +1212,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                      input_section, rel->r_offset,
                      (!info->shared || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
            }
        }
 
@@ -1230,7 +1231,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
 
          if (h != NULL)
            {
-             boolean dyn;
+             bfd_boolean dyn;
 
              off = h->got.offset;
              BFD_ASSERT (off != (bfd_vma) -1);
@@ -1265,7 +1266,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
              else
-               unresolved_reloc = false;
+               unresolved_reloc = FALSE;
            }
          else
            {
@@ -1284,13 +1285,14 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
 
                  if (info->shared)
                    {
-                     asection *srelgot;
+                     asection *s;
                      Elf_Internal_Rela outrel;
+                     bfd_byte *loc;
 
                      /* We need to generate a R_SPARC_RELATIVE reloc
                         for the dynamic linker.  */
-                     srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
-                     BFD_ASSERT (srelgot != NULL);
+                     s = bfd_get_section_by_name (dynobj, ".rela.got");
+                     BFD_ASSERT (s != NULL);
 
                      outrel.r_offset = (sgot->output_section->vma
                                         + sgot->output_offset
@@ -1298,11 +1300,9 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                      outrel.r_info = ELF32_R_INFO (0, R_SPARC_RELATIVE);
                      outrel.r_addend = relocation;
                      relocation = 0;
-                     bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                                (((Elf32_External_Rela *)
-                                                  srelgot->contents)
-                                                 + srelgot->reloc_count));
-                     ++srelgot->reloc_count;
+                     loc = s->contents;
+                     loc += s->reloc_count++ * sizeof (Elf32_External_Rela);
+                     bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                    }
 
                  bfd_put_32 (output_bfd, relocation, sgot->contents + off);
@@ -1347,11 +1347,11 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
          relocation = (splt->output_section->vma
                        + splt->output_offset
                        + h->plt.offset);
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
          if (r_type == R_SPARC_PLT32)
            {
              r_type = R_SPARC_32;
-             is_plt = true;
+             is_plt = TRUE;
              goto r_sparc_plt32;
            }
          break;
@@ -1390,7 +1390,8 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
              && (input_section->flags & SEC_ALLOC))
            {
              Elf_Internal_Rela outrel;
-             boolean skip, relocate = false;
+             bfd_byte *loc;
+             bfd_boolean skip, relocate = FALSE;
 
              /* When generating a shared object, these relocations
                  are copied into the output file to be resolved at run
@@ -1405,7 +1406,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -1416,15 +1417,15 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                  BFD_ASSERT (sreloc != NULL);
                }
 
-             skip = false;
+             skip = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
              outrel.r_offset += (input_section->output_section->vma
                                  + input_section->output_offset);
 
@@ -1457,7 +1458,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                     FIXME: Add code tracking needed dynamic relocs as
                     e.g. i386 has.  */
                  if (h->dynindx == -1)
-                   skip = true, relocate = true;
+                   skip = TRUE, relocate = TRUE;
                  break;
                }
 
@@ -1501,7 +1502,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                      else if (sec == NULL || sec->owner == NULL)
                        {
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      else
                        {
@@ -1519,7 +1520,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                                (_("%s: probably compiled without -fPIC?"),
                                 bfd_archive_filename (input_bfd));
                              bfd_set_error (bfd_error_bad_value);
-                             return false;
+                             return FALSE;
                            }
                        }
 
@@ -1528,11 +1529,9 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
 
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* This reloc will be computed at runtime, so there's no
                  need to do anything now.  */
@@ -1704,27 +1703,27 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
                                                            symtab_hdr->sh_link,
                                                            sym->st_name);
                    if (name == NULL)
-                     return false;
+                     return FALSE;
                    if (*name == '\0')
                      name = bfd_section_name (input_bfd, sec);
                  }
                if (! ((*info->callbacks->reloc_overflow)
                       (info, name, howto->name, (bfd_vma) 0,
                        input_bfd, input_section, rel->r_offset)))
-                 return false;
+                 return FALSE;
              }
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf32_sparc_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -1740,6 +1739,7 @@ elf32_sparc_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *splt;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
          it up.  */
@@ -1767,9 +1767,9 @@ elf32_sparc_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->plt.offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_SPARC_JMP_SLOT);
       rela.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + h->plt.offset / PLT_ENTRY_SIZE - 4));
+      loc = srela->contents;
+      loc += (h->plt.offset / PLT_ENTRY_SIZE - 4) * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
        {
@@ -1791,6 +1791,7 @@ elf32_sparc_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *sgot;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
          up.  */
@@ -1826,16 +1827,16 @@ elf32_sparc_finish_dynamic_symbol (output_bfd, info, h, sym)
 
       bfd_put_32 (output_bfd, (bfd_vma) 0,
                  sgot->contents + (h->got.offset &~ (bfd_vma) 1));
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + srela->reloc_count));
-      ++srela->reloc_count;
+      loc = srela->contents;
+      loc += srela->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       asection *s;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbols needs a copy reloc.  Set it up.  */
 
@@ -1850,10 +1851,8 @@ elf32_sparc_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_SPARC_COPY);
       rela.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) s->contents
-                                 + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   /* Mark some specially defined symbols as absolute.  */
@@ -1862,12 +1861,12 @@ elf32_sparc_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf32_sparc_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -1894,16 +1893,16 @@ elf32_sparc_finish_dynamic_sections (output_bfd, info)
        {
          Elf_Internal_Dyn dyn;
          const char *name;
-         boolean size;
+         bfd_boolean size;
 
          bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
 
          switch (dyn.d_tag)
            {
-           case DT_PLTGOT:   name = ".plt"; size = false; break;
-           case DT_PLTRELSZ: name = ".rela.plt"; size = true; break;
-           case DT_JMPREL:   name = ".rela.plt"; size = false; break;
-           default:      name = NULL; size = false; break;
+           case DT_PLTGOT:   name = ".plt"; size = FALSE; break;
+           case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE; break;
+           case DT_JMPREL:   name = ".rela.plt"; size = FALSE; break;
+           default:      name = NULL; size = FALSE; break;
            }
 
          if (name != NULL)
@@ -1958,7 +1957,7 @@ elf32_sparc_finish_dynamic_sections (output_bfd, info)
 
   elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Functions for dealing with the e_flags field.
@@ -1971,24 +1970,24 @@ elf32_sparc_finish_dynamic_sections (output_bfd, info)
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
-static boolean
+static bfd_boolean
 elf32_sparc_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
-  boolean error;
+  bfd_boolean error;
   /* FIXME: This should not be static.  */
   static unsigned long previous_ibfd_e_flags = (unsigned long) -1;
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
-  error = false;
+  error = FALSE;
 
   if (bfd_get_mach (ibfd) >= bfd_mach_sparc_v9)
     {
-      error = true;
+      error = TRUE;
       (*_bfd_error_handler)
        (_("%s: compiled for a 64 bit system and target is 32 bit"),
         bfd_archive_filename (ibfd));
@@ -2006,22 +2005,22 @@ elf32_sparc_merge_private_bfd_data (ibfd, obfd)
       (*_bfd_error_handler)
        (_("%s: linking little endian files with big endian files"),
         bfd_archive_filename (ibfd));
-      error = true;
+      error = TRUE;
     }
   previous_ibfd_e_flags = elf_elfheader (ibfd)->e_flags & EF_SPARC_LEDATA;
 
   if (error)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Set the right machine number.  */
 
-static boolean
+static bfd_boolean
 elf32_sparc_object_p (abfd)
      bfd *abfd;
 {
@@ -2037,7 +2036,7 @@ elf32_sparc_object_p (abfd)
        return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
                                          bfd_mach_sparc_v8plus);
       else
-       return false;
+       return FALSE;
     }
   else if (elf_elfheader (abfd)->e_flags & EF_SPARC_LEDATA)
     return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
@@ -2052,7 +2051,7 @@ elf32_sparc_object_p (abfd)
 static void
 elf32_sparc_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   switch (bfd_get_mach (abfd))
     {
index bf92ccf98f355e475228e4d3d31a88f429ccc5f7..26201f5e8ec6fe84a509d78f6676fdc954679e9a 100644 (file)
 static reloc_howto_type *v850_elf_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void v850_elf_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void v850_elf_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static bfd_reloc_status_type v850_elf_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean v850_elf_is_local_label_name
+static bfd_boolean v850_elf_is_local_label_name
   PARAMS ((bfd *, const char *));
-static boolean v850_elf_relocate_section
+static bfd_boolean v850_elf_relocate_section
   PARAMS((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
          Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 static bfd_reloc_status_type v850_elf_perform_relocation
   PARAMS ((bfd *, unsigned int, bfd_vma, bfd_byte *));
-static boolean v850_elf_check_relocs
+static bfd_boolean v850_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *));
 static void remember_hi16s_reloc
   PARAMS ((bfd *, bfd_vma, bfd_byte *));
 static bfd_byte * find_remembered_hi16s_reloc
-  PARAMS ((bfd_vma, boolean *));
+  PARAMS ((bfd_vma, bfd_boolean *));
 static bfd_reloc_status_type v850_elf_final_link_relocate
   PARAMS ((reloc_howto_type *, bfd *, bfd *, asection *, bfd_byte *, bfd_vma,
           bfd_vma, bfd_vma, struct bfd_link_info *, asection *, int));
-static boolean v850_elf_object_p
+static bfd_boolean v850_elf_object_p
   PARAMS ((bfd *));
-static boolean v850_elf_fake_sections
-  PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *));
+static bfd_boolean v850_elf_fake_sections
+  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
 static void v850_elf_final_write_processing
-  PARAMS ((bfd *, boolean));
-static boolean v850_elf_set_private_flags
+  PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean v850_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean v850_elf_merge_private_bfd_data
+static bfd_boolean v850_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
-static boolean v850_elf_print_private_bfd_data
+static bfd_boolean v850_elf_print_private_bfd_data
   PARAMS ((bfd *, PTR));
-static boolean v850_elf_section_from_bfd_section
+static bfd_boolean v850_elf_section_from_bfd_section
   PARAMS ((bfd *, asection *, int *));
 static void v850_elf_symbol_processing
   PARAMS ((bfd *, asymbol *));
-static boolean v850_elf_add_symbol_hook
+static bfd_boolean v850_elf_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
-static boolean v850_elf_link_output_symbol_hook
+static bfd_boolean v850_elf_link_output_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const char *,
           Elf_Internal_Sym *, asection *));
-static boolean v850_elf_section_from_shdr
+static bfd_boolean v850_elf_section_from_shdr
   PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
-static boolean v850_elf_gc_sweep_hook
+static bfd_boolean v850_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection * v850_elf_gc_mark_hook
@@ -89,10 +89,10 @@ static asection * v850_elf_gc_mark_hook
           Elf_Internal_Sym *));
 static bfd_reloc_status_type v850_elf_ignore_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean v850_elf_relax_delete_bytes
+static bfd_boolean v850_elf_relax_delete_bytes
   PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, int));
-static boolean v850_elf_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
+static bfd_boolean v850_elf_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
 
 /* Note: It is REQUIRED that the 'type' value of each entry
    in this array match the index of the entry in the array.  */
@@ -103,375 +103,375 @@ static reloc_howto_type v850_elf_howto_table[] =
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         32,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         bfd_elf_generic_reloc,         /* special_function */
         "R_V850_NONE",                 /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0,                             /* src_mask */
         0,                             /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* A PC relative 9 bit branch.  */
   HOWTO (R_V850_9_PCREL,               /* type */
         2,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         26,                            /* bitsize */
-        true,                          /* pc_relative */
+        TRUE,                          /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_bitfield,    /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_9_PCREL",              /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x00ffffff,                    /* src_mask */
         0x00ffffff,                    /* dst_mask */
-        true),                         /* pcrel_offset */
+        TRUE),                         /* pcrel_offset */
 
   /* A PC relative 22 bit branch.  */
   HOWTO (R_V850_22_PCREL,              /* type */
         2,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         22,                            /* bitsize */
-        true,                          /* pc_relative */
+        TRUE,                          /* pc_relative */
         7,                             /* bitpos */
         complain_overflow_signed,      /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_22_PCREL",             /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x07ffff80,                    /* src_mask */
         0x07ffff80,                    /* dst_mask */
-        true),                         /* pcrel_offset */
+        TRUE),                         /* pcrel_offset */
 
   /* High 16 bits of symbol value.  */
   HOWTO (R_V850_HI16_S,                        /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_HI16_S",               /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* High 16 bits of symbol value.  */
   HOWTO (R_V850_HI16,                  /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_HI16",                 /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* Low 16 bits of symbol value.  */
   HOWTO (R_V850_LO16,                  /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_LO16",                 /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* Simple 32bit reloc.  */
   HOWTO (R_V850_32,                    /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         32,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_32",                   /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffffffff,                    /* src_mask */
         0xffffffff,                    /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* Simple 16bit reloc.  */
   HOWTO (R_V850_16,                    /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         bfd_elf_generic_reloc,         /* special_function */
         "R_V850_16",                   /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* Simple 8bit reloc.         */
   HOWTO (R_V850_8,                     /* type */
         0,                             /* rightshift */
         0,                             /* size (0 = byte, 1 = short, 2 = long) */
         8,                             /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         bfd_elf_generic_reloc,         /* special_function */
         "R_V850_8",                    /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xff,                          /* src_mask */
         0xff,                          /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 16 bit offset from the short data area pointer.  */
   HOWTO (R_V850_SDA_16_16_OFFSET,      /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_SDA_16_16_OFFSET",     /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 15 bit offset from the short data area pointer.  */
   HOWTO (R_V850_SDA_15_16_OFFSET,      /* type */
         1,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         1,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_SDA_15_16_OFFSET",     /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xfffe,                        /* src_mask */
         0xfffe,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 16 bit offset from the zero data area pointer.  */
   HOWTO (R_V850_ZDA_16_16_OFFSET,      /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_ZDA_16_16_OFFSET",     /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 15 bit offset from the zero data area pointer.  */
   HOWTO (R_V850_ZDA_15_16_OFFSET,      /* type */
         1,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         1,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_ZDA_15_16_OFFSET",     /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xfffe,                        /* src_mask */
         0xfffe,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 6 bit offset from the tiny data area pointer.  */
   HOWTO (R_V850_TDA_6_8_OFFSET,                /* type */
         2,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         8,                             /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         1,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_TDA_6_8_OFFSET",       /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x7e,                          /* src_mask */
         0x7e,                          /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 8 bit offset from the tiny data area pointer.  */
   HOWTO (R_V850_TDA_7_8_OFFSET,                /* type */
         1,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         8,                             /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_TDA_7_8_OFFSET",       /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x7f,                          /* src_mask */
         0x7f,                          /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 7 bit offset from the tiny data area pointer.  */
   HOWTO (R_V850_TDA_7_7_OFFSET,                /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         7,                             /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_TDA_7_7_OFFSET",       /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x7f,                          /* src_mask */
         0x7f,                          /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 16 bit offset from the tiny data area pointer!  */
   HOWTO (R_V850_TDA_16_16_OFFSET,      /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_TDA_16_16_OFFSET",     /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffff,                        /* src_mask */
         0xfff,                         /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 5 bit offset from the tiny data area pointer.  */
   HOWTO (R_V850_TDA_4_5_OFFSET,                /* type */
         1,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         5,                             /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_TDA_4_5_OFFSET",       /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x0f,                          /* src_mask */
         0x0f,                          /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 4 bit offset from the tiny data area pointer.  */
   HOWTO (R_V850_TDA_4_4_OFFSET,                /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         4,                             /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_TDA_4_4_OFFSET",       /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x0f,                          /* src_mask */
         0x0f,                          /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 16 bit offset from the short data area pointer.  */
   HOWTO (R_V850_SDA_16_16_SPLIT_OFFSET,        /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_SDA_16_16_SPLIT_OFFSET",/* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xfffe0020,                    /* src_mask */
         0xfffe0020,                    /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 16 bit offset from the zero data area pointer.  */
   HOWTO (R_V850_ZDA_16_16_SPLIT_OFFSET,        /* type */
         0,                             /* rightshift */
         2,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_ZDA_16_16_SPLIT_OFFSET",/* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xfffe0020,                    /* src_mask */
         0xfffe0020,                    /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 6 bit offset from the call table base pointer.  */
   HOWTO (R_V850_CALLT_6_7_OFFSET,      /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         7,                             /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_CALLT_6_7_OFFSET",     /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0x3f,                          /* src_mask */
         0x3f,                          /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* 16 bit offset from the call table base pointer.  */
   HOWTO (R_V850_CALLT_16_16_OFFSET,    /* type */
         0,                             /* rightshift */
         1,                             /* size (0 = byte, 1 = short, 2 = long) */
         16,                            /* bitsize */
-        false,                         /* pc_relative */
+        FALSE,                         /* pc_relative */
         0,                             /* bitpos */
         complain_overflow_dont,        /* complain_on_overflow */
         v850_elf_reloc,                /* special_function */
         "R_V850_CALLT_16_16_OFFSET",   /* name */
-        false,                         /* partial_inplace */
+        FALSE,                         /* partial_inplace */
         0xffff,                        /* src_mask */
         0xffff,                        /* dst_mask */
-        false),                        /* pcrel_offset */
+        FALSE),                        /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_V850_GNU_VTINHERIT, /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_V850_GNU_VTINHERIT", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_V850_GNU_VTENTRY,     /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_V850_GNU_VTENTRY",   /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* Indicates a .longcall pseudo-op.  The compiler will generate a .longcall
      pseudo-op when it finds a function call which can be relaxed.  */
@@ -479,15 +479,15 @@ static reloc_howto_type v850_elf_howto_table[] =
        0,                     /* rightshift */
        2,                     /* size (0 = byte, 1 = short, 2 = long) */
        32,                    /* bitsize */
-       true,                  /* pc_relative */
+       TRUE,                  /* pc_relative */
        0,                     /* bitpos */
        complain_overflow_signed, /* complain_on_overflow */
        v850_elf_ignore_reloc, /* special_function */
        "R_V850_LONGCALL",     /* name */
-       false,                 /* partial_inplace */
+       FALSE,                 /* partial_inplace */
        0,                     /* src_mask */
        0,                     /* dst_mask */
-       true),                 /* pcrel_offset */
+       TRUE),                 /* pcrel_offset */
 
   /* Indicates a .longjump pseudo-op.  The compiler will generate a
      .longjump pseudo-op when it finds a branch which can be relaxed.  */
@@ -495,29 +495,29 @@ static reloc_howto_type v850_elf_howto_table[] =
        0,                     /* rightshift */
        2,                     /* size (0 = byte, 1 = short, 2 = long) */
        32,                    /* bitsize */
-       true,                  /* pc_relative */
+       TRUE,                  /* pc_relative */
        0,                     /* bitpos */
        complain_overflow_signed, /* complain_on_overflow */
        v850_elf_ignore_reloc, /* special_function */
        "R_V850_LONGJUMP",     /* name */
-       false,                 /* partial_inplace */
+       FALSE,                 /* partial_inplace */
        0,                     /* src_mask */
        0,                     /* dst_mask */
-       true),                 /* pcrel_offset */
+       TRUE),                 /* pcrel_offset */
 
   HOWTO (R_V850_ALIGN,        /* type */
        0,                     /* rightshift */
        1,                     /* size (0 = byte, 1 = short, 2 = long) */
        0,                     /* bitsize */
-       false,                 /* pc_relative */
+       FALSE,                 /* pc_relative */
        0,                     /* bitpos */
        complain_overflow_unsigned, /* complain_on_overflow */
        v850_elf_ignore_reloc, /* special_function */
        "R_V850_ALIGN",        /* name */
-       false,                 /* partial_inplace */
+       FALSE,                 /* partial_inplace */
        0,                     /* src_mask */
        0,                     /* dst_mask */
-       true),                 /* pcrel_offset */
+       TRUE),                 /* pcrel_offset */
 };
 
 /* Map BFD reloc types to V850 ELF reloc types.  */
@@ -567,8 +567,8 @@ static const struct v850_elf_reloc_map v850_elf_reloc_map[] =
 
 static reloc_howto_type *
 v850_elf_reloc_type_lookup (abfd, code)
-     bfd *                     abfd ATTRIBUTE_UNUSED;
-     bfd_reloc_code_real_type  code;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     bfd_reloc_code_real_type code;
 {
   unsigned int i;
 
@@ -589,9 +589,9 @@ v850_elf_reloc_type_lookup (abfd, code)
 
 static void
 v850_elf_info_to_howto_rel (abfd, cache_ptr, dst)
-     bfd *                 abfd ATTRIBUTE_UNUSED;
-     arelent *             cache_ptr;
-     Elf32_Internal_Rel *  dst;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     arelent *cache_ptr;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -603,9 +603,9 @@ v850_elf_info_to_howto_rel (abfd, cache_ptr, dst)
 /* Set the howto pointer for a V850 ELF reloc (type RELA).  */
 static void
 v850_elf_info_to_howto_rela (abfd, cache_ptr, dst)
-     bfd *                 abfd ATTRIBUTE_UNUSED;
-     arelent *             cache_ptr;
-     Elf32_Internal_Rela   *dst;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     arelent * cache_ptr;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -618,14 +618,14 @@ v850_elf_info_to_howto_rela (abfd, cache_ptr, dst)
    allocate space in the global offset table or procedure linkage
    table.  */
 
-static boolean
+static bfd_boolean
 v850_elf_check_relocs (abfd, info, sec, relocs)
-     bfd *                      abfd;
-     struct bfd_link_info *     info;
-     asection *                 sec;
-     const Elf_Internal_Rela *  relocs;
+     bfd *abfd;
+     struct bfd_link_info *info;
+     asection *sec;
+     const Elf_Internal_Rela *relocs;
 {
-  boolean ret = true;
+  bfd_boolean ret = TRUE;
   bfd *dynobj;
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
@@ -637,7 +637,7 @@ v850_elf_check_relocs (abfd, info, sec, relocs)
   const char *common = (const char *)0;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
 #ifdef DEBUG
   fprintf (stderr, "v850_elf_check_relocs called for section %s in %s\n",
@@ -683,14 +683,14 @@ v850_elf_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_V850_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries
           are actually used.  Record for later use during GC.  */
         case R_V850_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
 
        case R_V850_SDA_16_16_SPLIT_OFFSET:
@@ -756,7 +756,7 @@ v850_elf_check_relocs (abfd, info, sec, relocs)
 
                  bfd_set_error (bfd_error_bad_value);
                  h->other |= V850_OTHER_ERROR;
-                 ret = false;
+                 ret = FALSE;
                }
            }
 
@@ -788,7 +788,7 @@ v850_elf_check_relocs (abfd, info, sec, relocs)
    more than once, as the second attempted retry failed.
 
    In the current version, the entry is not deleted, instead we set
-   the field 'found' to true.  If a second lookup matches the same
+   the field 'found' to TRUE.  If a second lookup matches the same
    entry, then we know that the hi16s reloc has already been updated
    and does not need to be updated a second time.
 
@@ -798,23 +798,23 @@ v850_elf_check_relocs (abfd, info, sec, relocs)
 
 typedef struct hi16s_location
 {
-  bfd_vma       addend;
-  bfd_byte *    address;
+  bfd_vma addend;
+  bfd_byte *address;
   unsigned long counter;
-  boolean       found;
-  struct hi16s_location * next;
+  bfd_boolean found;
+  struct hi16s_location *next;
 }
 hi16s_location;
 
-static hi16s_location *  previous_hi16s;
-static hi16s_location *  free_hi16s;
-static unsigned long     hi16s_counter;
+static hi16s_location *previous_hi16s;
+static hi16s_location *free_hi16s;
+static unsigned long hi16s_counter;
 
 static void
 remember_hi16s_reloc (abfd, addend, address)
-     bfd *      abfd;
-     bfd_vma    addend;
-     bfd_byte * address;
+     bfd *abfd;
+     bfd_vma addend;
+     bfd_byte *address;
 {
   hi16s_location * entry = NULL;
   bfd_size_type amt = sizeof (* free_hi16s);
@@ -829,7 +829,7 @@ remember_hi16s_reloc (abfd, addend, address)
   entry->addend  = addend;
   entry->address = address;
   entry->counter = hi16s_counter ++;
-  entry->found   = false;
+  entry->found   = FALSE;
   entry->next    = previous_hi16s;
   previous_hi16s = entry;
 
@@ -848,14 +848,14 @@ remember_hi16s_reloc (abfd, addend, address)
 
 static bfd_byte *
 find_remembered_hi16s_reloc (addend, already_found)
-     bfd_vma   addend;
-     boolean * already_found;
+     bfd_vma addend;
+     bfd_boolean *already_found;
 {
-  hi16s_location * match = NULL;
-  hi16s_location * entry;
-  hi16s_location * previous = NULL;
-  hi16s_location * prev;
-  bfd_byte *       addr;
+  hi16s_location *match = NULL;
+  hi16s_location *entry;
+  hi16s_location *previous = NULL;
+  hi16s_location *prev;
+  bfd_byte *addr;
 
   /* Search the table.  Record the most recent entry that matches.  */
   for (entry = previous_hi16s; entry; entry = entry->next)
@@ -881,7 +881,7 @@ find_remembered_hi16s_reloc (addend, already_found)
     * already_found = match->found;
 
   /* Note that this entry has now been used.  */
-  match->found = true;
+  match->found = TRUE;
 
   return addr;
 }
@@ -1107,8 +1107,8 @@ v850_elf_perform_relocation (abfd, r_type, addend, address)
            || (OVERFLOWS (addend, insn)
                && ((! BIT15_SET (insn)) || (BIT15_SET (addend)))))
          {
-           boolean already_updated;
-           bfd_byte * hi16s_address = find_remembered_hi16s_reloc
+           bfd_boolean already_updated;
+           bfd_byte *hi16s_address = find_remembered_hi16s_reloc
              (addend, & already_updated);
 
            /* Amend the matching HI16_S relocation.  */
@@ -1308,13 +1308,13 @@ v850_elf_perform_relocation (abfd, r_type, addend, address)
 
 static bfd_reloc_status_type
 v850_elf_reloc (abfd, reloc, symbol, data, isection, obfd, err)
-     bfd *       abfd ATTRIBUTE_UNUSED;
-     arelent *   reloc;
-     asymbol *   symbol;
-     PTR         data ATTRIBUTE_UNUSED;
-     asection *  isection;
-     bfd *       obfd;
-     char **     err ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     arelent *reloc;
+     asymbol *symbol;
+     PTR data ATTRIBUTE_UNUSED;
+     asection *isection;
+     bfd *obfd;
+     char **err ATTRIBUTE_UNUSED;
 {
   long relocation;
 
@@ -1347,7 +1347,7 @@ v850_elf_reloc (abfd, reloc, symbol, data, isection, obfd, err)
   /* Work out which section the relocation is targetted at and the
      initial relocation command value.  */
 
-  if (reloc->howto->pc_relative == true)
+  if (reloc->howto->pc_relative)
     return bfd_reloc_ok;
 
   /* Get symbol value.  (Common symbols are special.)  */
@@ -1395,13 +1395,13 @@ v850_elf_reloc (abfd, reloc, symbol, data, isection, obfd, err)
 static bfd_reloc_status_type
 v850_elf_ignore_reloc (abfd, reloc_entry, symbol, data, input_section,
                        output_bfd, error_message)
-     bfd *      abfd ATTRIBUTE_UNUSED;
-     arelent *  reloc_entry;
-     asymbol *  symbol ATTRIBUTE_UNUSED;
-     PTR        data ATTRIBUTE_UNUSED;
-     asection * input_section;
-     bfd *      output_bfd;
-     char **    error_message ATTRIBUTE_UNUSED;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     arelent *reloc_entry;
+     asymbol *symbol ATTRIBUTE_UNUSED;
+     PTR data ATTRIBUTE_UNUSED;
+     asection *input_section;
+     bfd *output_bfd;
+     char **error_message ATTRIBUTE_UNUSED;
 {
   if (output_bfd != NULL)
     reloc_entry->address += input_section->output_offset;
@@ -1409,10 +1409,10 @@ v850_elf_ignore_reloc (abfd, reloc_entry, symbol, data, input_section,
   return bfd_reloc_ok;
 }
 \f
-static boolean
+static bfd_boolean
 v850_elf_is_local_label_name (abfd, name)
-     bfd *         abfd ATTRIBUTE_UNUSED;
-     const char *  name;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     const char *name;
 {
   return (   (name[0] == '.' && (name[1] == 'L' || name[1] == '.'))
          || (name[0] == '_' &&  name[1] == '.' && name[2] == 'L' && name[3] == '_'));
@@ -1429,20 +1429,20 @@ static bfd_reloc_status_type
 v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
                              input_section, contents, offset, value,
                              addend, info, sym_sec, is_local)
-     reloc_howto_type *      howto;
-     bfd *                   input_bfd;
-     bfd *                   output_bfd ATTRIBUTE_UNUSED;
-     asection *              input_section;
-     bfd_byte *              contents;
-     bfd_vma                 offset;
-     bfd_vma                 value;
-     bfd_vma                 addend;
-     struct bfd_link_info *  info;
-     asection *              sym_sec;
-     int                     is_local ATTRIBUTE_UNUSED;
+     reloc_howto_type *howto;
+     bfd *input_bfd;
+     bfd *output_bfd ATTRIBUTE_UNUSED;
+     asection *input_section;
+     bfd_byte *contents;
+     bfd_vma offset;
+     bfd_vma value;
+     bfd_vma addend;
+     struct bfd_link_info *info;
+     asection *sym_sec;
+     int is_local ATTRIBUTE_UNUSED;
 {
-  unsigned int   r_type   = howto->type;
-  bfd_byte *     hit_data = contents + offset;
+  unsigned int r_type = howto->type;
+  bfd_byte *hit_data = contents + offset;
 
   /* Adjust the value according to the relocation.  */
   switch (r_type)
@@ -1494,7 +1494,7 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
          return bfd_reloc_undefined;
 
        /* Get the value of __gp.  */
-       h = bfd_link_hash_lookup (info->hash, "__gp", false, false, true);
+       h = bfd_link_hash_lookup (info->hash, "__gp", FALSE, FALSE, TRUE);
        if (h == (struct bfd_link_hash_entry *) NULL
            || h->type != bfd_link_hash_defined)
          return bfd_reloc_gp_not_found;
@@ -1519,7 +1519,7 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
        struct bfd_link_hash_entry * h;
 
        /* Get the value of __ep.  */
-       h = bfd_link_hash_lookup (info->hash, "__ep", false, false, true);
+       h = bfd_link_hash_lookup (info->hash, "__ep", FALSE, FALSE, TRUE);
        if (h == (struct bfd_link_hash_entry *) NULL
            || h->type != bfd_link_hash_defined)
          return bfd_reloc_ep_not_found;
@@ -1538,7 +1538,7 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
        struct bfd_link_hash_entry * h;
 
        /* Get the value of __ctbp.  */
-       h = bfd_link_hash_lookup (info->hash, "__ctbp", false, false, true);
+       h = bfd_link_hash_lookup (info->hash, "__ctbp", FALSE, FALSE, TRUE);
        if (h == (struct bfd_link_hash_entry *) NULL
            || h->type != bfd_link_hash_defined)
          return bfd_reloc_ctbp_not_found;
@@ -1559,7 +1559,7 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
          return bfd_reloc_undefined;
 
        /* Get the value of __ctbp.  */
-       h = bfd_link_hash_lookup (info->hash, "__ctbp", false, false, true);
+       h = bfd_link_hash_lookup (info->hash, "__ctbp", FALSE, FALSE, TRUE);
        if (h == (struct bfd_link_hash_entry *) NULL
            || h->type != bfd_link_hash_defined)
          return bfd_reloc_ctbp_not_found;
@@ -1591,25 +1591,25 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
 \f
 /* Relocate an V850 ELF section.  */
 
-static boolean
+static bfd_boolean
 v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
-     bfd *                  output_bfd;
-     struct bfd_link_info * info;
-     bfd *                  input_bfd;
-     asection *             input_section;
-     bfd_byte *             contents;
-     Elf_Internal_Rela *    relocs;
-     Elf_Internal_Sym *     local_syms;
-     asection **            local_sections;
+     bfd *output_bfd;
+     struct bfd_link_info *info;
+     bfd *input_bfd;
+     asection *input_section;
+     bfd_byte *contents;
+     Elf_Internal_Rela *relocs;
+     Elf_Internal_Sym *local_syms;
+     asection **local_sections;
 {
-  Elf_Internal_Shdr *           symtab_hdr;
-  struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Shdr *symtab_hdr;
+  struct elf_link_hash_entry **sym_hashes;
+  Elf_Internal_Rela *rel;
+  Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -1620,7 +1620,7 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
        (info, "no hash table available",
         NULL, input_bfd, input_section, (bfd_vma) 0);
 
-      return false;
+      return FALSE;
     }
 
   /* Reset the list of remembered HI16S relocs to empty.  */
@@ -1632,14 +1632,14 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
   relend = relocs + input_section->reloc_count;
   for (; rel < relend; rel++)
     {
-      int                          r_type;
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
-      struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
+      int r_type;
+      reloc_howto_type *howto;
+      unsigned long r_symndx;
+      Elf_Internal_Sym *sym;
+      asection *sec;
+      struct elf_link_hash_entry *h;
+      bfd_vma relocation;
+      bfd_reloc_status_type r;
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       r_type   = ELF32_R_TYPE (rel->r_info);
@@ -1702,8 +1702,8 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
 #if 0
              fprintf (stderr, "unknown: name: %s\n", h->root.root.string);
 #endif
@@ -1739,14 +1739,14 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
              break;
 
            case bfd_reloc_undefined:
              if (! ((*info->callbacks->undefined_symbol)
                     (info, name, input_bfd, input_section,
-                     rel->r_offset, true)))
-               return false;
+                     rel->r_offset, TRUE)))
+               return FALSE;
              break;
 
            case bfd_reloc_outofrange:
@@ -1781,16 +1781,16 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->warning)
                    (info, msg, name, input_bfd, input_section,
                     rel->r_offset)))
-               return false;
+               return FALSE;
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 v850_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1798,7 +1798,7 @@ v850_elf_gc_sweep_hook (abfd, info, sec, relocs)
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   /* No got and plt entries for v850-elf.  */
-  return true;
+  return TRUE;
 }
 
 static asection *
@@ -1840,7 +1840,7 @@ v850_elf_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Set the right machine number.  */
 
-static boolean
+static bfd_boolean
 v850_elf_object_p (abfd)
      bfd *abfd;
 {
@@ -1854,21 +1854,21 @@ v850_elf_object_p (abfd)
       bfd_default_set_arch_mach (abfd, bfd_arch_v850, bfd_mach_v850e);
       break;
     }
-  return true;
+  return TRUE;
 }
 
 /* Store the machine number in the flags field.  */
 
 static void
 v850_elf_final_write_processing (abfd, linker)
-     bfd *   abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd *abfd;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   unsigned long val;
 
   switch (bfd_get_mach (abfd))
     {
-    default:            
+    default:
     case bfd_mach_v850:  val = E_V850_ARCH; break;
     case bfd_mach_v850e: val = E_V850E_ARCH; break;
     }
@@ -1879,32 +1879,32 @@ v850_elf_final_write_processing (abfd, linker)
 
 /* Function to keep V850 specific file flags.  */
 
-static boolean
+static bfd_boolean
 v850_elf_set_private_flags (abfd, flags)
-     bfd *    abfd;
+     bfd *abfd;
      flagword flags;
 {
   BFD_ASSERT (!elf_flags_init (abfd)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file
    to the output object file when linking.  */
-static boolean
+static bfd_boolean
 v850_elf_merge_private_bfd_data (ibfd, obfd)
-     bfd * ibfd;
-     bfd * obfd;
+     bfd *ibfd;
+     bfd *obfd;
 {
   flagword out_flags;
   flagword in_flags;
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   in_flags = elf_elfheader (ibfd)->e_flags;
   out_flags = elf_elfheader (obfd)->e_flags;
@@ -1918,36 +1918,36 @@ v850_elf_merge_private_bfd_data (ibfd, obfd)
         unitialised values, which surprise surprise, correspond
         to the default values.  */
       if (bfd_get_arch_info (ibfd)->the_default)
-       return true;
+       return TRUE;
 
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = in_flags;
 
       if (bfd_get_arch (obfd) == bfd_get_arch (ibfd)
          && bfd_get_arch_info (obfd)->the_default)
        return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd));
 
-      return true;
+      return TRUE;
     }
 
   /* Check flag compatibility.  */
   if (in_flags == out_flags)
-    return true;
+    return TRUE;
 
   if ((in_flags & EF_V850_ARCH) != (out_flags & EF_V850_ARCH)
       && (in_flags & EF_V850_ARCH) != E_V850_ARCH)
     _bfd_error_handler (_("%s: Architecture mismatch with previous modules"),
                        bfd_archive_filename (ibfd));
 
-  return true;
+  return TRUE;
 }
 
 /* Display the flags field.  */
 
-static boolean
+static bfd_boolean
 v850_elf_print_private_bfd_data (abfd, ptr)
-     bfd *   abfd;
-     PTR     ptr;
+     bfd *abfd;
+     PTR ptr;
 {
   FILE * file = (FILE *) ptr;
 
@@ -1967,7 +1967,7 @@ v850_elf_print_private_bfd_data (abfd, ptr)
 
   fputc ('\n', file);
 
-  return true;
+  return TRUE;
 }
 
 /* V850 ELF uses four common sections.  One is the usual one, and the
@@ -1990,11 +1990,11 @@ static asymbol * v850_elf_zcom_symbol_ptr;
 /* Given a BFD section, try to locate the
    corresponding ELF section index.  */
 
-static boolean
+static bfd_boolean
 v850_elf_section_from_bfd_section (abfd, sec, retval)
-     bfd *                 abfd ATTRIBUTE_UNUSED;
-     asection *            sec;
-     int *                 retval;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     asection *sec;
+     int *retval;
 {
   if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
     *retval = SHN_V850_SCOMMON;
@@ -2003,17 +2003,17 @@ v850_elf_section_from_bfd_section (abfd, sec, retval)
   else if (strcmp (bfd_get_section_name (abfd, sec), ".zcommon") == 0)
     *retval = SHN_V850_ZCOMMON;
   else
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Handle the special V850 section numbers that a symbol may use.  */
 
 static void
 v850_elf_symbol_processing (abfd, asym)
-     bfd *     abfd;
-     asymbol * asym;
+     bfd *abfd;
+     asymbol *asym;
 {
   elf_symbol_type * elfsym = (elf_symbol_type *) asym;
   unsigned int indx;
@@ -2106,15 +2106,15 @@ v850_elf_symbol_processing (abfd, asym)
 /* Hook called by the linker routine which adds symbols from an object
    file.  We must handle the special v850 section numbers here.  */
 
-static boolean
+static bfd_boolean
 v850_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
-     bfd *                    abfd;
-     struct bfd_link_info *   info ATTRIBUTE_UNUSED;
-     const Elf_Internal_Sym * sym;
-     const char **            namep ATTRIBUTE_UNUSED;
-     flagword *               flagsp ATTRIBUTE_UNUSED;
-     asection **              secp;
-     bfd_vma *                valp;
+     bfd *abfd;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
+     const Elf_Internal_Sym *sym;
+     const char **namep ATTRIBUTE_UNUSED;
+     flagword *flagsp ATTRIBUTE_UNUSED;
+     asection **secp;
+     bfd_vma *valp;
 {
   unsigned int indx = sym->st_shndx;
 
@@ -2164,16 +2164,16 @@ v850_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       break;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 v850_elf_link_output_symbol_hook (abfd, info, name, sym, input_sec)
-     bfd *                  abfd ATTRIBUTE_UNUSED;
-     struct bfd_link_info * info ATTRIBUTE_UNUSED;
-     const char *           name ATTRIBUTE_UNUSED;
-     Elf_Internal_Sym *     sym;
-     asection *             input_sec;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     struct bfd_link_info *info ATTRIBUTE_UNUSED;
+     const char *name ATTRIBUTE_UNUSED;
+     Elf_Internal_Sym *sym;
+     asection *input_sec;
 {
   /* If we see a common symbol, which implies a relocatable link, then
      if a symbol was in a special common section in an input file, mark
@@ -2189,21 +2189,21 @@ v850_elf_link_output_symbol_hook (abfd, info, name, sym, input_sec)
        sym->st_shndx = SHN_V850_ZCOMMON;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 v850_elf_section_from_shdr (abfd, hdr, name)
-     bfd *               abfd;
-     Elf_Internal_Shdr * hdr;
-     const char *        name;
+     bfd *abfd;
+     Elf_Internal_Shdr *hdr;
+     const char *name;
 {
   /* There ought to be a place to keep ELF backend specific flags, but
      at the moment there isn't one.  We just keep track of the
      sections by their name, instead.  */
 
   if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-    return false;
+    return FALSE;
 
   switch (hdr->sh_type)
     {
@@ -2214,20 +2214,20 @@ v850_elf_section_from_shdr (abfd, hdr, name)
                                   (bfd_get_section_flags (abfd,
                                                           hdr->bfd_section)
                                    | SEC_IS_COMMON)))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the correct type for a V850 ELF section.  We do this
    by the section name, which is a hack, but ought to work.  */
 
-static boolean
+static bfd_boolean
 v850_elf_fake_sections (abfd, hdr, sec)
-     bfd *                 abfd ATTRIBUTE_UNUSED;
-     Elf32_Internal_Shdr * hdr;
-     asection *            sec;
+     bfd *abfd ATTRIBUTE_UNUSED;
+     Elf_Internal_Shdr *hdr;
+     asection *sec;
 {
   register const char * name;
 
@@ -2244,31 +2244,31 @@ v850_elf_fake_sections (abfd, hdr, sec)
   else if (strcmp (name, ".zcommon") == 0)
     hdr->sh_type = SHT_V850_ZCOMMON;
 
-  return true;
+  return TRUE;
 }
 
 /* Delete some bytes from a section while relaxing.  */
 
-static boolean
+static bfd_boolean
 v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count)
-     bfd *      abfd;
-     asection * sec;
-     bfd_vma    addr;
-     bfd_vma    toaddr;
-     int        count;
+     bfd *abfd;
+     asection *sec;
+     bfd_vma addr;
+     bfd_vma toaddr;
+     int count;
 {
-  Elf_Internal_Shdr *          symtab_hdr;
-  Elf32_External_Sym *         extsyms;
-  Elf32_External_Sym *                 esym;
-  Elf32_External_Sym *                 esymend;
-  int                          index;
-  unsigned int                         sec_shndx;
-  bfd_byte *                           contents;
-  Elf_Internal_Rela *                  irel;
-  Elf_Internal_Rela *                  irelend;
-  struct elf_link_hash_entry *         sym_hash;
-  Elf_Internal_Shdr *           shndx_hdr;
-  Elf_External_Sym_Shndx *      shndx;
+  Elf_Internal_Shdr *symtab_hdr;
+  Elf32_External_Sym *extsyms;
+  Elf32_External_Sym *esym;
+  Elf32_External_Sym *esymend;
+  int index;
+  unsigned int sec_shndx;
+  bfd_byte *contents;
+  Elf_Internal_Rela *irel;
+  Elf_Internal_Rela *irelend;
+  struct elf_link_hash_entry *sym_hash;
+  Elf_Internal_Shdr *shndx_hdr;
+  Elf_External_Sym_Shndx *shndx;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   extsyms = (Elf32_External_Sym *) symtab_hdr->contents;
@@ -2303,7 +2303,7 @@ v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count)
       /* Get the new reloc address.  */
       raddr = irel->r_offset;
       if ((raddr >= (addr + count) && raddr < toaddr))
-       irel->r_offset -= count;        
+       irel->r_offset -= count;
 
       if (raddr >= addr && raddr < addr + count)
        {
@@ -2311,7 +2311,7 @@ v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count)
                                       (int) R_V850_NONE);
          continue;
        }
-      
+
       if (ELF32_R_TYPE (irel->r_info) == (int) R_V850_ALIGN)
        continue;
 
@@ -2319,7 +2319,7 @@ v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count)
                                extsyms + ELF32_R_SYM (irel->r_info),
                                shndx ? shndx + ELF32_R_SYM (irel->r_info) : NULL,
                                & isym);
-      
+
       if (isym.st_shndx != sec_shndx)
        continue;
 
@@ -2358,9 +2358,9 @@ v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count)
                   sec->output_section->vma, sec->output_offset, irel->r_addend);
 #endif
        }
-             
+
       paddr = symval + irel->r_addend;
-      
+
       if ( (symval >= addr + count && symval < toaddr)
          && (paddr < addr + count || paddr >= toaddr))
        irel->r_addend += count;
@@ -2386,8 +2386,8 @@ v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count)
          isym.st_value -= count;
 
          if (isym.st_value + isym.st_size >= toaddr)
-           isym.st_size += count;          
-         
+           isym.st_size += count;
+
          bfd_elf32_swap_symbol_out (abfd, & isym, esym, shndx);
        }
       else if (isym.st_shndx == sec_shndx
@@ -2452,13 +2452,13 @@ v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count)
        ++ shndx;
     }
 
-  return true;
+  return TRUE;
 }
 
 #define NOP_OPCODE     (0x0000)
-#define MOVHI          0x0640                          /* 4byte */ 
+#define MOVHI          0x0640                          /* 4byte */
 #define MOVHI_MASK     0x07e0
-#define MOVHI_R1(insn) ((insn) & 0x1f)                 /* 4byte */ 
+#define MOVHI_R1(insn) ((insn) & 0x1f)                 /* 4byte */
 #define MOVHI_R2(insn) ((insn) >> 11)
 #define MOVEA          0x0620                          /* 2byte */
 #define MOVEA_MASK     0x07e0
@@ -2475,31 +2475,31 @@ v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count)
 #define JMP_R_MASK     0xFFE0
 #define JMP_R1(insn)   ((insn) & 0x1f)
 
-static boolean 
+static bfd_boolean
 v850_elf_relax_section (abfd, sec, link_info, again)
-     bfd *                     abfd;
-     asection *                        sec;
-     struct bfd_link_info *    link_info;
-     boolean *                 again;
+     bfd *abfd;
+     asection *sec;
+     struct bfd_link_info *link_info;
+     bfd_boolean *again;
 {
-  Elf_Internal_Shdr *      symtab_hdr;
-  Elf_Internal_Rela *      internal_relocs;
-  Elf_Internal_Rela *      irel;
-  Elf_Internal_Rela *      irelend;
-  Elf_Internal_Rela *      irelalign = NULL;
-  Elf_Internal_Sym *       isymbuf = NULL;
-  bfd_byte *               contents = NULL;
-  bfd_vma                  addr = 0;
-  bfd_vma                  toaddr;
-  int                      align_pad_size = 0;
-  boolean                   result = true;
-
-  * again = false;
+  Elf_Internal_Shdr *symtab_hdr;
+  Elf_Internal_Rela *internal_relocs;
+  Elf_Internal_Rela *irel;
+  Elf_Internal_Rela *irelend;
+  Elf_Internal_Rela *irelalign = NULL;
+  Elf_Internal_Sym *isymbuf = NULL;
+  bfd_byte *contents = NULL;
+  bfd_vma addr = 0;
+  bfd_vma toaddr;
+  int align_pad_size = 0;
+  bfd_boolean result = TRUE;
+
+  *again = FALSE;
 
   if (link_info->relocateable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called
      for this section, initialize the cooked size.  */
@@ -2515,7 +2515,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
     goto error_return;
 
   irelend = internal_relocs + sec->reloc_count;
-  
+
   while (addr < sec->_cooked_size)
     {
       toaddr = sec->_cooked_size;
@@ -2525,7 +2525,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
            && irel->r_offset > addr
            && irel->r_offset < toaddr)
          toaddr = irel->r_offset;
-      
+
 #ifdef DEBUG_RELAX
       fprintf (stderr, "relax region 0x%x to 0x%x align pad %d\n",
               addr, toaddr, align_pad_size);
@@ -2549,7 +2549,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
 #endif
              if (!v850_elf_relax_delete_bytes (abfd, sec, alignmoveto,
                                                toaddr, align_pad_size))
-               goto error_return;              
+               goto error_return;
 
              for (i  = BFD_ALIGN (toaddr - align_pad_size, 1);
                   (i + 1) < toaddr; i += 2)
@@ -2563,15 +2563,15 @@ v850_elf_relax_section (abfd, sec, link_info, again)
 
       for (irel = internal_relocs; irel < irelend; irel++)
        {
-         bfd_vma             laddr;
-         bfd_vma             addend;
-         bfd_vma             symval;
-         int                 insn[5];
-         int                 no_match = -1;
-         Elf_Internal_Rela * hi_irelfn;
-         Elf_Internal_Rela * lo_irelfn;
-         Elf_Internal_Rela * irelcall;
-         bfd_signed_vma      foff;
+         bfd_vma laddr;
+         bfd_vma addend;
+         bfd_vma symval;
+         int insn[5];
+         int no_match = -1;
+         Elf_Internal_Rela *hi_irelfn;
+         Elf_Internal_Rela *lo_irelfn;
+         Elf_Internal_Rela *irelcall;
+         bfd_signed_vma foff;
 
          if (! (irel->r_offset >= addr && irel->r_offset < toaddr
                 && (ELF32_R_TYPE (irel->r_info) == (int) R_V850_LONGCALL
@@ -2626,7 +2626,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
                  insn[2] = bfd_get_32 (abfd, contents + laddr + 8);
                  insn[3] = bfd_get_16 (abfd, contents + laddr + 12);
                  insn[4] = bfd_get_16 (abfd, contents + laddr + 14);
-         
+
                  if ((insn[0] & MOVHI_MASK) != MOVHI
                       || MOVHI_R1 (insn[0]) != 0)
                    no_match = 0;
@@ -2667,14 +2667,14 @@ v850_elf_relax_section (abfd, sec, link_info, again)
                    bfd_get_filename (abfd), (unsigned long) irel->r_offset+no_match, insn[no_match]));
 
                  continue;
-               }      
+               }
 
              /* Get the reloc for the address from which the register is
                 being loaded.  This reloc will tell us which function is
                 actually being called.  */
              for (hi_irelfn = internal_relocs; hi_irelfn < irelend; hi_irelfn ++)
                if (hi_irelfn->r_offset == laddr + 2
-                   && ELF32_R_TYPE (hi_irelfn->r_info) 
+                   && ELF32_R_TYPE (hi_irelfn->r_info)
                        == (int) R_V850_HI16_S)
                  break;
 
@@ -2700,7 +2700,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
 
                  continue;
                }
-       
+
              if (ELF32_R_SYM (irelcall->r_info) < symtab_hdr->sh_info)
                {
                  Elf_Internal_Sym *  isym;
@@ -2742,12 +2742,12 @@ v850_elf_relax_section (abfd, sec, link_info, again)
              /* Get the value of the symbol referred to by the reloc.  */
              if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info)
                {
-                 Elf_Internal_Sym * isym;
-                 asection *         sym_sec;
+                 Elf_Internal_Sym *isym;
+                 asection *sym_sec;
 
                  /* A local symbol.  */
                  isym = isymbuf + ELF32_R_SYM (hi_irelfn->r_info);
-          
+
                  if (isym->st_shndx == SHN_UNDEF)
                    sym_sec = bfd_und_section_ptr;
                  else if (isym->st_shndx == SHN_ABS)
@@ -2763,7 +2763,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
              else
                {
                  unsigned long indx;
-                 struct elf_link_hash_entry * h;
+                 struct elf_link_hash_entry *h;
 
                  /* An external symbol.  */
                  indx = ELF32_R_SYM (hi_irelfn->r_info) - symtab_hdr->sh_info;
@@ -2812,7 +2812,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
              elf_section_data (sec)->relocs = internal_relocs;
              elf_section_data (sec)->this_hdr.contents = contents;
              symtab_hdr->contents = (bfd_byte *) isymbuf;
-      
+
              /* Replace the long call with a jarl.  */
              irel->r_info = ELF32_R_INFO (ELF32_R_SYM (hi_irelfn->r_info), R_V850_22_PCREL);
 
@@ -2832,7 +2832,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
                bfd_put_32 (abfd, 0x00000780 | (JARL_R2 (insn[2])<<11),
                            contents + irel->r_offset);
 
-             hi_irelfn->r_info = 
+             hi_irelfn->r_info =
                ELF32_R_INFO (ELF32_R_SYM (hi_irelfn->r_info), R_V850_NONE);
              lo_irelfn->r_info =
                ELF32_R_INFO (ELF32_R_SYM (lo_irelfn->r_info), R_V850_NONE);
@@ -2891,7 +2891,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
                 actually being called.  */
              for (hi_irelfn = internal_relocs; hi_irelfn < irelend; hi_irelfn ++)
                if (hi_irelfn->r_offset == laddr + 2
-                   && ELF32_R_TYPE (hi_irelfn->r_info) == (int) R_V850_HI16_S) 
+                   && ELF32_R_TYPE (hi_irelfn->r_info) == (int) R_V850_HI16_S)
                  break;
 
              for (lo_irelfn = internal_relocs; lo_irelfn < irelend; lo_irelfn ++)
@@ -2908,7 +2908,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
 
                  continue;
                }
-       
+
              /* Get the value of the symbol referred to by the reloc.  */
              if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info)
                {
@@ -3005,8 +3005,8 @@ v850_elf_relax_section (abfd, sec, link_info, again)
                  /* Replace the long jump with a jr.  */
 
                  irel->r_info =
-                       ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_V850_22_PCREL);
-  
+                   ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_V850_22_PCREL);
+
                  irel->r_addend = addend;
                  addend = 0;
 
@@ -3112,7 +3112,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
   return result;
 
  error_return:
-  result = false;
+  result = FALSE;
   goto finish;
 }
 \f
index 0d42b728f4093ed6d55bd3c1e3a7e11343d1039b..a9e8b0b37e69cb8348741d702e63dd9572ba07bf 100644 (file)
@@ -29,38 +29,38 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void rtype_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static struct bfd_hash_entry *elf_vax_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *elf_vax_link_hash_table_create
   PARAMS ((bfd *));
-static boolean elf_vax_check_relocs
+static bfd_boolean elf_vax_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection *elf_vax_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf_vax_gc_sweep_hook
+static bfd_boolean elf_vax_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf_vax_adjust_dynamic_symbol
+static bfd_boolean elf_vax_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean elf_vax_size_dynamic_sections
+static bfd_boolean elf_vax_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_vax_relocate_section
+static bfd_boolean elf_vax_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf_vax_finish_dynamic_symbol
+static bfd_boolean elf_vax_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-static boolean elf_vax_finish_dynamic_sections
+static bfd_boolean elf_vax_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
-static boolean elf32_vax_set_private_flags
+static bfd_boolean elf32_vax_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean elf32_vax_merge_private_bfd_data
+static bfd_boolean elf32_vax_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
-static boolean elf32_vax_print_private_bfd_data
+static bfd_boolean elf32_vax_print_private_bfd_data
   PARAMS ((bfd *, PTR));
 
 static reloc_howto_type howto_table[] = {
@@ -68,113 +68,113 @@ static reloc_howto_type howto_table[] = {
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_NONE",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x00000000,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_VAX_32,             /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_32",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_VAX_16,             /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_16",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_VAX_8,              /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_8",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x000000ff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_VAX_PC32,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_PC32",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_VAX_PC16,           /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_PC16",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_VAX_PC8,            /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_PC8",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x000000ff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_VAX_GOT32,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_GOT32",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   EMPTY_HOWTO (-1),
   EMPTY_HOWTO (-1),
@@ -186,15 +186,15 @@ static reloc_howto_type howto_table[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_PLT32",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   EMPTY_HOWTO (-1),
   EMPTY_HOWTO (-1),
@@ -206,87 +206,87 @@ static reloc_howto_type howto_table[] = {
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_COPY",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_VAX_GLOB_DAT,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_GLOB_DAT",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_VAX_JMP_SLOT,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_JMP_SLOT",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_VAX_RELATIVE,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_VAX_RELATIVE",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_VAX_GNU_VTINHERIT,  /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_VAX_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_VAX_GNU_VTENTRY,    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn, /* special_function */
         "R_VAX_GNU_VTENTRY",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 static void
@@ -414,12 +414,12 @@ struct elf_vax_link_hash_table
 
 /* Declare this now that the above structures are defined.  */
 
-static boolean elf_vax_discard_copies
+static bfd_boolean elf_vax_discard_copies
   PARAMS ((struct elf_vax_link_hash_entry *, PTR));
 
 /* Declare this now that the above structures are defined.  */
 
-static boolean elf_vax_instantiate_got_entries
+static bfd_boolean elf_vax_instantiate_got_entries
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
 /* Traverse an VAX ELF linker hash table.  */
@@ -427,7 +427,7 @@ static boolean elf_vax_instantiate_got_entries
 #define elf_vax_link_hash_traverse(table, func, info)                  \
   (elf_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the VAX ELF linker hash table from a link_info structure.  */
@@ -491,19 +491,19 @@ elf_vax_link_hash_table_create (abfd)
 }
 
 /* Keep vax-specific flags in the ELF header */
-static boolean
+static bfd_boolean
 elf32_vax_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
 {
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
-static boolean
+static bfd_boolean
 elf32_vax_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -513,22 +513,22 @@ elf32_vax_merge_private_bfd_data (ibfd, obfd)
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   in_flags  = elf_elfheader (ibfd)->e_flags;
   out_flags = elf_elfheader (obfd)->e_flags;
 
   if (!elf_flags_init (obfd))
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = in_flags;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Display the flags field */
-static boolean
+static bfd_boolean
 elf32_vax_print_private_bfd_data (abfd, ptr)
      bfd *abfd;
      PTR ptr;
@@ -556,13 +556,13 @@ elf32_vax_print_private_bfd_data (abfd, ptr)
 
   fputc ('\n', file);
 
-  return true;
+  return TRUE;
 }
 /* Look through the relocs for a section during the first phase, and
    allocate space in the global offset table or procedure linkage
    table.  */
 
-static boolean
+static bfd_boolean
 elf_vax_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -579,7 +579,7 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -616,7 +616,7 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
              /* Create the .got section.  */
              elf_hash_table (info)->dynobj = dynobj = abfd;
              if (!_bfd_elf_create_got_section (dynobj, info))
-               return false;
+               return FALSE;
            }
 
          if (sgot == NULL)
@@ -641,7 +641,7 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
                                                  | SEC_LINKER_CREATED
                                                  | SEC_READONLY))
                      || !bfd_set_section_alignment (dynobj, srelgot, 2))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -752,7 +752,7 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (abfd, sec),
@@ -771,7 +771,7 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
                                                      | SEC_LINKER_CREATED
                                                      | SEC_READONLY))
                          || !bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
                  if (sec->flags & SEC_READONLY)
                    info->flags |= DF_TEXTREL;
@@ -783,7 +783,7 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
                 PC relative relocations we have entered for this symbol,
                 so that we can discard them again if the symbol is later
                 defined by a regular object.  Note that this function is
-                only called if we are using an vaxelf linker hash table,
+                only called if we are using a vaxelf linker hash table,
                 which means that h is really a pointer to an
                 elf_vax_link_hash_entry.  */
              if ((ELF32_R_TYPE (rel->r_info) == R_VAX_PC8
@@ -805,7 +805,7 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
                      p = ((struct elf_vax_pcrel_relocs_copied *)
                           bfd_alloc (dynobj, (bfd_size_type) sizeof *p));
                      if (p == NULL)
-                       return false;
+                       return FALSE;
                      p->next = eh->pcrel_relocs_copied;
                      eh->pcrel_relocs_copied = p;
                      p->section = sreloc;
@@ -822,14 +822,14 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
        case R_VAX_GNU_VTINHERIT:
          if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_VAX_GNU_VTENTRY:
          if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-           return false;
+           return FALSE;
          break;
 
        default:
@@ -837,7 +837,7 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -882,7 +882,7 @@ elf_vax_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 elf_vax_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -901,7 +901,7 @@ elf_vax_gc_sweep_hook (abfd, info, sec, relocs)
 
   dynobj = elf_hash_table (info)->dynobj;
   if (dynobj == NULL)
-    return true;
+    return TRUE;
 
   relend = relocs + sec->reloc_count;
   for (rel = relocs; rel < relend; rel++)
@@ -939,7 +939,7 @@ elf_vax_gc_sweep_hook (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -948,7 +948,7 @@ elf_vax_gc_sweep_hook (abfd, info, sec, relocs)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf_vax_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -991,7 +991,7 @@ elf_vax_adjust_dynamic_symbol (info, h)
             reloc instead.  */
          BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0);
          h->plt.offset = (bfd_vma) -1;
-         return true;
+         return TRUE;
        }
 
       /* GC may have rendered this entry unused.  */
@@ -999,14 +999,14 @@ elf_vax_adjust_dynamic_symbol (info, h)
        {
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
          h->plt.offset = (bfd_vma) -1;
-         return true;
+         return TRUE;
        }
 
       /* Make sure this symbol is output as a dynamic symbol.  */
       if (h->dynindx == -1)
        {
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = bfd_get_section_by_name (dynobj, ".plt");
@@ -1049,7 +1049,7 @@ elf_vax_adjust_dynamic_symbol (info, h)
       BFD_ASSERT (s != NULL);
       s->_raw_size += sizeof (Elf32_External_Rela);
 
-      return true;
+      return TRUE;
     }
 
   /* Reinitialize the plt offset now that it is not used as a reference
@@ -1065,7 +1065,7 @@ elf_vax_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -1076,7 +1076,7 @@ elf_vax_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -1117,7 +1117,7 @@ elf_vax_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (!bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -1127,21 +1127,21 @@ elf_vax_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_vax_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean plt;
-  boolean relocs;
-  boolean reltext;
+  bfd_boolean plt;
+  bfd_boolean relocs;
+  bfd_boolean reltext;
 
   dynobj = elf_hash_table (info)->dynobj;
   BFD_ASSERT (dynobj != NULL);
@@ -1184,7 +1184,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
                                elf_vax_discard_copies,
                                (PTR) NULL);
 
-  /* If this is a -Bsymbolic shared link or a static link, we need to 
+  /* If this is a -Bsymbolic shared link or a static link, we need to
      discard all the got entries we've recorded.  Otherwise, we need to
      instantiate (allocate space for them).  */
   elf_link_hash_traverse (elf_hash_table (info),
@@ -1194,13 +1194,13 @@ elf_vax_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  plt = false;
-  relocs = false;
-  reltext = false;
+  plt = FALSE;
+  relocs = FALSE;
+  reltext = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -1209,7 +1209,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      strip = false;
+      strip = FALSE;
 
       if (strcmp (name, ".plt") == 0)
        {
@@ -1217,12 +1217,12 @@ elf_vax_size_dynamic_sections (output_bfd, info)
            {
              /* Strip this section if we don't need it; see the
                  comment below.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there is a PLT.  */
-             plt = true;
+             plt = TRUE;
            }
        }
       else if (strncmp (name, ".rela", 5) == 0)
@@ -1238,7 +1238,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
@@ -1250,7 +1250,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
                {
                  const char *outname;
 
-                 relocs = true;
+                 relocs = TRUE;
 
                  /* If this relocation section applies to a read only
                     section, then we probably need a DT_TEXTREL
@@ -1262,7 +1262,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
                  if (target != NULL
                      && (target->flags & SEC_READONLY) != 0
                      && (target->flags & SEC_ALLOC) != 0)
-                   reltext = true;
+                   reltext = TRUE;
                }
 
              /* We use the reloc_count field as a counter if we need
@@ -1285,7 +1285,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
       /* Allocate memory for the section contents.  */
       s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -1301,7 +1301,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (plt)
@@ -1310,7 +1310,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -1318,18 +1318,18 @@ elf_vax_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_RELA, 0)
              || !add_dynamic_entry (DT_RELASZ, 0)
              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
-           return false;
+           return FALSE;
        }
 
       if (reltext || (info->flags & DF_TEXTREL) != 0)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called via elf_vax_link_hash_traverse if we are
@@ -1339,7 +1339,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
    routine, but we won't fill them in in the relocate_section routine.  */
 
 /*ARGSUSED*/
-static boolean
+static bfd_boolean
 elf_vax_discard_copies (h, ignore)
      struct elf_vax_link_hash_entry *h;
      PTR ignore ATTRIBUTE_UNUSED;
@@ -1351,12 +1351,12 @@ elf_vax_discard_copies (h, ignore)
 
   /* We only discard relocs for symbols defined in a regular object.  */
   if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
-    return true;
+    return TRUE;
 
   for (s = h->pcrel_relocs_copied; s != NULL; s = s->next)
     s->section->_raw_size -= s->count * sizeof (Elf32_External_Rela);
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called via elf_link_hash_traverse.  It looks for entries
@@ -1367,7 +1367,7 @@ elf_vax_discard_copies (h, ignore)
    will be reserved for the symbol.  */
 
 /*ARGSUSED*/
-static boolean
+static bfd_boolean
 elf_vax_instantiate_got_entries (h, infoptr)
      struct elf_link_hash_entry *h;
      PTR infoptr;
@@ -1376,14 +1376,14 @@ elf_vax_instantiate_got_entries (h, infoptr)
   bfd *dynobj;
   asection *sgot;
   asection *srelgot;
-  
+
   /* We don't care about non-GOT (and non-PLT) entries.  */
   if (h->got.refcount <= 0 && h->plt.refcount <= 0)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   if (dynobj == NULL)
-    return true;
+    return TRUE;
 
   sgot = bfd_get_section_by_name (dynobj, ".got");
   srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
@@ -1402,7 +1402,7 @@ elf_vax_instantiate_got_entries (h, infoptr)
       if (h->dynindx == -1)
        {
          if (!bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       /* Allocate space in the .got and .rela.got sections.  */
@@ -1410,12 +1410,12 @@ elf_vax_instantiate_got_entries (h, infoptr)
       srelgot->_raw_size += sizeof (Elf32_External_Rela);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Relocate an VAX ELF section.  */
 
-static boolean
+static bfd_boolean
 elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -1441,7 +1441,7 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1470,7 +1470,7 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
       if (r_type < 0 || r_type >= (int) R_VAX_max)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       howto = howto_table + r_type;
 
@@ -1550,7 +1550,7 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
                     input_section, rel->r_offset,
                     (!info->shared || info->no_undefined
                      || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
@@ -1693,7 +1693,8 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
                          & ELF_LINK_HASH_DEF_REGULAR) == 0)))
            {
              Elf_Internal_Rela outrel;
-             boolean skip, relocate;
+             bfd_byte *loc;
+             bfd_boolean skip, relocate;
 
              /* When generating a shared object, these relocations
                 are copied into the output file to be resolved at run
@@ -1708,7 +1709,7 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -1719,16 +1720,16 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
                  BFD_ASSERT (sreloc != NULL);
                }
 
-             skip = false;
-             relocate = false;
+             skip = FALSE;
+             relocate = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
              outrel.r_offset += (input_section->output_section->vma
                                  + input_section->output_offset);
 
@@ -1749,7 +1750,7 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
                {
                  if (r_type == R_VAX_32)
                    {
-                     relocate = true;
+                     relocate = TRUE;
                      outrel.r_info = ELF32_R_INFO (0, R_VAX_RELATIVE);
                      BFD_ASSERT (bfd_get_signed_32 (input_bfd,
                                                     &contents[rel->r_offset]) == 0);
@@ -1773,7 +1774,7 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
                      else if (sec == NULL || sec->owner == NULL)
                        {
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      else
                        {
@@ -1811,11 +1812,9 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
                      outrel.r_addend,
                      bfd_get_section_name (input_bfd, input_section));
                }
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* This reloc will be computed at runtime, so there's no
                  need to do anything now, except for R_VAX_32
@@ -1836,7 +1835,7 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
          break;
        }
 
-      /* VAX PCREL relocations are from the end of relocation, not the start.  
+      /* VAX PCREL relocations are from the end of relocation, not the start.
          So subtract the difference from the relocation amount since we can't
          add it to the offset.  */
       if (howto->pc_relative && howto->pcrel_offset)
@@ -1865,27 +1864,27 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
                                                            symtab_hdr->sh_link,
                                                            sym->st_name);
                    if (name == NULL)
-                     return false;
+                     return FALSE;
                    if (*name == '\0')
                      name = bfd_section_name (input_bfd, sec);
                  }
                if (!(info->callbacks->reloc_overflow
                      (info, name, howto->name, (bfd_vma) 0,
                       input_bfd, input_section, rel->r_offset)))
-                 return false;
+                 return FALSE;
              }
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf_vax_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -1905,6 +1904,7 @@ elf_vax_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_vma got_offset;
       bfd_vma addend;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
         it up.  */
@@ -1955,9 +1955,8 @@ elf_vax_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + got_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_VAX_JMP_SLOT);
       rela.r_addend = addend;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + plt_index));
+      loc = srela->contents + plt_index * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
        {
@@ -1972,6 +1971,7 @@ elf_vax_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *sgot;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -2002,16 +2002,16 @@ elf_vax_finish_dynamic_symbol (output_bfd, info, h, sym)
                                         (sgot->contents
                                          + (h->got.offset & ~1)));
 
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + srela->reloc_count));
-      ++srela->reloc_count;
+      loc = srela->contents;
+      loc += srela->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       asection *s;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -2028,10 +2028,8 @@ elf_vax_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_VAX_COPY);
       rela.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) s->contents
-                                 + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute.  */
@@ -2039,12 +2037,12 @@ elf_vax_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_vax_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2159,7 +2157,7 @@ elf_vax_finish_dynamic_sections (output_bfd, info)
 
   elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
 
-  return true;
+  return TRUE;
 }
 
 #define TARGET_LITTLE_SYM              bfd_elf32_vax_vec
index b845bc432fa936bb2610befbb57667c345791f2d..df0d7ca405beec8c3ec50e46f5ff694223b67063 100644 (file)
@@ -1,5 +1,5 @@
 /* XSTORMY16-specific support for 32-bit ELF.
-   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -28,29 +28,29 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type * xstormy16_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void xstormy16_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static bfd_reloc_status_type xstormy16_elf_24_reloc
   PARAMS ((bfd *abfd, arelent *reloc_entry, asymbol *symbol,
           PTR data, asection *input_section, bfd *output_bfd,
           char **error_message));
-static boolean xstormy16_elf_check_relocs
+static bfd_boolean xstormy16_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean xstormy16_relax_plt_check
+static bfd_boolean xstormy16_relax_plt_check
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean xstormy16_relax_plt_realloc
+static bfd_boolean xstormy16_relax_plt_realloc
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean xstormy16_elf_relax_section
+static bfd_boolean xstormy16_elf_relax_section
   PARAMS ((bfd *abfd, asection *sec, struct bfd_link_info *link_info,
-          boolean *again));
-static boolean xstormy16_elf_always_size_sections
+          bfd_boolean *again));
+static bfd_boolean xstormy16_elf_always_size_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean xstormy16_elf_relocate_section
+static bfd_boolean xstormy16_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean xstormy16_elf_finish_dynamic_sections
+static bfd_boolean xstormy16_elf_finish_dynamic_sections
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean xstormy16_elf_gc_sweep_hook
+static bfd_boolean xstormy16_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection * xstormy16_elf_gc_mark_hook
@@ -64,150 +64,195 @@ static reloc_howto_type xstormy16_elf_howto_table [] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_XSTORMY16_NONE",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  */
   HOWTO (R_XSTORMY16_32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_XSTORMY16_32",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit absolute relocation.  */
   HOWTO (R_XSTORMY16_16,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_XSTORMY16_16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 8 bit absolute relocation.  */
   HOWTO (R_XSTORMY16_8,        /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_XSTORMY16_8",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit pc-relative relocation.  */
   HOWTO (R_XSTORMY16_PC32,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_XSTORMY16_PC32",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),         /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 16 bit pc-relative relocation.  */
   HOWTO (R_XSTORMY16_PC16,     /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_XSTORMY16_PC16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),         /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* An 8 bit pc-relative relocation.  */
   HOWTO (R_XSTORMY16_PC8,      /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_XSTORMY16_PC8",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),         /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 12-bit pc-relative relocation suitable for the branch instructions.  */
   HOWTO (R_XSTORMY16_REL_12,   /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         11,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         1,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_XSTORMY16_REL_12",  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0,                     /* src_mask */
         0x0fff,                /* dst_mask */
-        true),         /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 24-bit absolute relocation suitable for the jump instructions.  */
   HOWTO (R_XSTORMY16_24,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         24,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         xstormy16_elf_24_reloc,        /* special_function */
         "R_XSTORMY16_24",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0,                     /* src_mask */
         0xffff00ff,            /* dst_mask */
-        true),         /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 16 bit absolute relocation to a function pointer.  */
   HOWTO (R_XSTORMY16_FPTR16,   /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_XSTORMY16_FPTR16",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
+
+  /* Low order 16 bit value of a high memory address.  */
+  HOWTO (R_XSTORMY16_LO16,     /* type */
+        0,                     /* rightshift */
+        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        16,                    /* bitsize */
+        FALSE,                 /* pc_relative */
+        0,                     /* bitpos */
+        complain_overflow_dont, /* complain_on_overflow */
+        bfd_elf_generic_reloc, /* special_function */
+        "R_XSTORMY16_LO16",    /* name */
+        FALSE,                 /* partial_inplace */
+        0,                     /* src_mask */
+        0xffff,                /* dst_mask */
+        FALSE),                /* pcrel_offset */
+
+  /* High order 16 bit value of a high memory address.  */
+  HOWTO (R_XSTORMY16_HI16,     /* type */
+        16,                    /* rightshift */
+        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        16,                    /* bitsize */
+        FALSE,                 /* pc_relative */
+        0,                     /* bitpos */
+        complain_overflow_dont, /* complain_on_overflow */
+        bfd_elf_generic_reloc, /* special_function */
+        "R_XSTORMY16_HI16",    /* name */
+        FALSE,                 /* partial_inplace */
+        0,                     /* src_mask */
+        0xffff,                /* dst_mask */
+        FALSE),                /* pcrel_offset */
+  /* A 12 bit absolute relocation.  */
+  HOWTO (R_XSTORMY16_12,       /* type */
+        0,                     /* rightshift */
+        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        12,                    /* bitsize */
+        FALSE,                 /* pc_relative */
+        0,                     /* bitpos */
+        complain_overflow_signed, /* complain_on_overflow */
+        bfd_elf_generic_reloc, /* special_function */
+        "R_XSTORMY16_12",      /* name */
+        FALSE,                 /* partial_inplace */
+        0x0000,                /* src_mask */
+        0x0fff,                /* dst_mask */
+        FALSE),                /* pcrel_offset */
 };
 
 static reloc_howto_type xstormy16_elf_howto_table2 [] =
@@ -217,30 +262,30 @@ static reloc_howto_type xstormy16_elf_howto_table2 [] =
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_XSTORMY16_GNU_VTINHERIT", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_XSTORMY16_GNU_VTENTRY,     /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_XSTORMY16_GNU_VTENTRY",   /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
 };
 \f
@@ -265,6 +310,9 @@ static const reloc_map xstormy16_reloc_map [] =
   { BFD_RELOC_XSTORMY16_REL_12,     R_XSTORMY16_REL_12,        xstormy16_elf_howto_table },
   { BFD_RELOC_XSTORMY16_24,        R_XSTORMY16_24,            xstormy16_elf_howto_table },
   { BFD_RELOC_XSTORMY16_FPTR16,            R_XSTORMY16_FPTR16,        xstormy16_elf_howto_table },
+  { BFD_RELOC_LO16,                 R_XSTORMY16_LO16,          xstormy16_elf_howto_table },
+  { BFD_RELOC_HI16,                 R_XSTORMY16_HI16,          xstormy16_elf_howto_table },
+  { BFD_RELOC_XSTORMY16_12,         R_XSTORMY16_12,            xstormy16_elf_howto_table },
   { BFD_RELOC_VTABLE_INHERIT,       R_XSTORMY16_GNU_VTINHERIT, xstormy16_elf_howto_table2 },
   { BFD_RELOC_VTABLE_ENTRY,         R_XSTORMY16_GNU_VTENTRY,   xstormy16_elf_howto_table2 },
 };
@@ -296,11 +344,11 @@ static void
 xstormy16_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd * abfd ATTRIBUTE_UNUSED;
      arelent * cache_ptr;
-     Elf32_Internal_Rela * dst;
+     Elf_Internal_Rela * dst;
 {
   unsigned int r_type = ELF32_R_TYPE (dst->r_info);
 
-  if (r_type <= (unsigned int) R_XSTORMY16_FPTR16)
+  if (r_type <= (unsigned int) R_XSTORMY16_12)
     cache_ptr->howto = &xstormy16_elf_howto_table [r_type];
   else if (r_type - R_XSTORMY16_GNU_VTINHERIT
           <= (unsigned int) R_XSTORMY16_GNU_VTENTRY)
@@ -361,7 +409,7 @@ xstormy16_elf_24_reloc (abfd, reloc_entry, symbol, data, input_section,
    -relax switch is given, as otherwise we have no idea where the
    sections will fall in the address space.  */
 
-static boolean
+static bfd_boolean
 xstormy16_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -376,7 +424,7 @@ xstormy16_elf_check_relocs (abfd, info, sec, relocs)
   bfd *dynobj;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -433,7 +481,7 @@ xstormy16_elf_check_relocs (abfd, info, sec, relocs)
                                                   | SEC_READONLY
                                                   | SEC_CODE))
                      || ! bfd_set_section_alignment (dynobj, splt, 1))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -449,7 +497,7 @@ xstormy16_elf_check_relocs (abfd, info, sec, relocs)
                  size = symtab_hdr->sh_info * sizeof (bfd_vma);
                  local_plt_offsets = (bfd_vma *) bfd_alloc (abfd, size);
                  if (local_plt_offsets == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_offsets (abfd) = local_plt_offsets;
 
                  for (i = 0; i < symtab_hdr->sh_info; i++)
@@ -469,19 +517,19 @@ xstormy16_elf_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
         case R_XSTORMY16_GNU_VTINHERIT:
           if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
         case R_XSTORMY16_GNU_VTENTRY:
           if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* A subroutine of xstormy16_elf_relax_section.  If the global symbol H
@@ -490,10 +538,10 @@ xstormy16_elf_check_relocs (abfd, info, sec, relocs)
 struct relax_plt_data
 {
   asection *splt;
-  boolean *again;
+  bfd_boolean *again;
 };
 
-static boolean
+static bfd_boolean
 xstormy16_relax_plt_check (h, xdata)
      struct elf_link_hash_entry *h;
      PTR xdata;
@@ -519,17 +567,17 @@ xstormy16_relax_plt_check (h, xdata)
        {
          h->plt.offset = -1;
          data->splt->_cooked_size -= 4;
-         *data->again = true;
+         *data->again = TRUE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* A subroutine of xstormy16_elf_relax_section.  If the global symbol H
    previously had a plt entry, give it a new entry offset.  */
 
-static boolean
+static bfd_boolean
 xstormy16_relax_plt_realloc (h, xdata)
      struct elf_link_hash_entry *h;
      PTR xdata;
@@ -545,33 +593,33 @@ xstormy16_relax_plt_realloc (h, xdata)
       *entry += 4;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 xstormy16_elf_relax_section (dynobj, splt, info, again)
      bfd *dynobj;
      asection *splt;
      struct bfd_link_info *info;
-     boolean *again;
+     bfd_boolean *again;
 {
   struct relax_plt_data relax_plt_data;
   bfd *ibfd;
 
   /* Assume nothing changes.  */
-  *again = false;
+  *again = FALSE;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   /* We only relax the .plt section at the moment.  */
   if (dynobj != elf_hash_table (info)->dynobj
       || strcmp (splt->name, ".plt") != 0)
-    return true;
+    return TRUE;
 
   /* Quick check for an empty plt.  */
   if (splt->_raw_size == 0)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -606,7 +654,7 @@ xstormy16_elf_relax_section (dynobj, splt, info, again)
                                            symtab_hdr->sh_info, 0,
                                            NULL, NULL, NULL);
          if (isymbuf == NULL)
-           return false;
+           return FALSE;
        }
 
       for (idx = 0; idx < symtab_hdr->sh_info; ++idx)
@@ -635,7 +683,7 @@ xstormy16_elf_relax_section (dynobj, splt, info, again)
            {
              local_plt_offsets[idx] = -1;
              splt->_cooked_size -= 4;
-             *again = true;
+             *again = TRUE;
            }
        }
 
@@ -680,10 +728,10 @@ xstormy16_elf_relax_section (dynobj, splt, info, again)
     }
 
   splt->_raw_size = splt->_cooked_size;
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 xstormy16_elf_always_size_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -692,20 +740,20 @@ xstormy16_elf_always_size_sections (output_bfd, info)
   asection *splt;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   if (dynobj == NULL)
-    return true;
+    return TRUE;
 
   splt = bfd_get_section_by_name (dynobj, ".plt");
   BFD_ASSERT (splt != NULL);
 
   splt->contents = (bfd_byte *) bfd_zalloc (dynobj, splt->_raw_size);
   if (splt->contents == NULL)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Relocate an XSTORMY16 ELF section.
@@ -738,7 +786,7 @@ xstormy16_elf_always_size_sections (output_bfd, info)
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
      bfd *                   output_bfd ATTRIBUTE_UNUSED;
@@ -758,7 +806,7 @@ xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section,
   asection *splt;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -831,8 +879,8 @@ xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -923,7 +971,7 @@ xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            case bfd_reloc_undefined:
              r = info->callbacks->undefined_symbol
                (info, name, input_bfd, input_section, rel->r_offset,
-                true);
+                TRUE);
              break;
 
            case bfd_reloc_outofrange:
@@ -948,16 +996,16 @@ xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              (info, msg, name, input_bfd, input_section, rel->r_offset);
 
          if (! r)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This must exist if dynobj is ever set.  */
 
-static boolean
+static bfd_boolean
 xstormy16_elf_finish_dynamic_sections (abfd, info)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -980,7 +1028,7 @@ xstormy16_elf_finish_dynamic_sections (abfd, info)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Return the section that should be marked against GC for a given
@@ -1025,14 +1073,14 @@ xstormy16_elf_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 xstormy16_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *                     abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *    info ATTRIBUTE_UNUSED;
      asection *                sec ATTRIBUTE_UNUSED;
      const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 \f
 #define ELF_ARCH               bfd_arch_xstormy16
index ab053f96bfa3de1d34776860fac7ffce9bf10f14..ac9822ac98dad61c5f151c66bb2057987b6a59b8 100644 (file)
@@ -66,28 +66,28 @@ static bfd_reloc_status_type elf64_alpha_reloc_gpdisp
 static reloc_howto_type * elf64_alpha_bfd_reloc_type_lookup
   PARAMS((bfd *, bfd_reloc_code_real_type));
 static void elf64_alpha_info_to_howto
-  PARAMS((bfd *, arelent *, Elf64_Internal_Rela *));
+  PARAMS((bfd *, arelent *, Elf_Internal_Rela *));
 
-static boolean elf64_alpha_mkobject
+static bfd_boolean elf64_alpha_mkobject
   PARAMS((bfd *));
-static boolean elf64_alpha_object_p
+static bfd_boolean elf64_alpha_object_p
   PARAMS((bfd *));
-static boolean elf64_alpha_section_from_shdr
-  PARAMS((bfd *, Elf64_Internal_Shdr *, const char *));
-static boolean elf64_alpha_section_flags
-  PARAMS((flagword *, Elf64_Internal_Shdr *));
-static boolean elf64_alpha_fake_sections
-  PARAMS((bfd *, Elf64_Internal_Shdr *, asection *));
-static boolean elf64_alpha_create_got_section
+static bfd_boolean elf64_alpha_section_from_shdr
+  PARAMS((bfd *, Elf_Internal_Shdr *, const char *));
+static bfd_boolean elf64_alpha_section_flags
+  PARAMS((flagword *, Elf_Internal_Shdr *));
+static bfd_boolean elf64_alpha_fake_sections
+  PARAMS((bfd *, Elf_Internal_Shdr *, asection *));
+static bfd_boolean elf64_alpha_create_got_section
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean elf64_alpha_create_dynamic_sections
+static bfd_boolean elf64_alpha_create_dynamic_sections
   PARAMS((bfd *, struct bfd_link_info *));
 
-static boolean elf64_alpha_read_ecoff_info
+static bfd_boolean elf64_alpha_read_ecoff_info
   PARAMS((bfd *, asection *, struct ecoff_debug_info *));
-static boolean elf64_alpha_is_local_label_name
+static bfd_boolean elf64_alpha_is_local_label_name
   PARAMS((bfd *, const char *));
-static boolean elf64_alpha_find_nearest_line
+static bfd_boolean elf64_alpha_find_nearest_line
   PARAMS((bfd *, asection *, asymbol **, bfd_vma, const char **,
          const char **, unsigned int *));
 
@@ -95,59 +95,60 @@ static boolean elf64_alpha_find_nearest_line
 struct alpha_elf_link_hash_entry;
 #endif
 
-static boolean elf64_alpha_output_extsym
+static bfd_boolean elf64_alpha_output_extsym
   PARAMS((struct alpha_elf_link_hash_entry *, PTR));
 
-static boolean elf64_alpha_can_merge_gots
+static bfd_boolean elf64_alpha_can_merge_gots
   PARAMS((bfd *, bfd *));
 static void elf64_alpha_merge_gots
   PARAMS((bfd *, bfd *));
-static boolean elf64_alpha_calc_got_offsets_for_symbol
+static bfd_boolean elf64_alpha_calc_got_offsets_for_symbol
   PARAMS ((struct alpha_elf_link_hash_entry *, PTR));
-static void elf64_alpha_calc_got_offsets PARAMS ((struct bfd_link_info *));
-static boolean elf64_alpha_size_got_sections
+static void elf64_alpha_calc_got_offsets
   PARAMS ((struct bfd_link_info *));
-static boolean elf64_alpha_size_plt_section
+static bfd_boolean elf64_alpha_size_got_sections
   PARAMS ((struct bfd_link_info *));
-static boolean elf64_alpha_size_plt_section_1
+static bfd_boolean elf64_alpha_size_plt_section
+  PARAMS ((struct bfd_link_info *));
+static bfd_boolean elf64_alpha_size_plt_section_1
   PARAMS ((struct alpha_elf_link_hash_entry *, PTR));
-static boolean elf64_alpha_always_size_sections
+static bfd_boolean elf64_alpha_always_size_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static int alpha_dynamic_entries_for_reloc
   PARAMS ((int, int, int));
-static boolean elf64_alpha_calc_dynrel_sizes
+static bfd_boolean elf64_alpha_calc_dynrel_sizes
   PARAMS ((struct alpha_elf_link_hash_entry *, struct bfd_link_info *));
-static boolean elf64_alpha_size_rela_got_section
+static bfd_boolean elf64_alpha_size_rela_got_section
   PARAMS ((struct bfd_link_info *));
-static boolean elf64_alpha_size_rela_got_1
+static bfd_boolean elf64_alpha_size_rela_got_1
   PARAMS ((struct alpha_elf_link_hash_entry *, struct bfd_link_info *));
-static boolean elf64_alpha_add_symbol_hook
+static bfd_boolean elf64_alpha_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
 static struct alpha_elf_got_entry *get_got_entry
   PARAMS ((bfd *, struct alpha_elf_link_hash_entry *, unsigned long,
           unsigned long, bfd_vma));
-static boolean elf64_alpha_check_relocs
+static bfd_boolean elf64_alpha_check_relocs
   PARAMS((bfd *, struct bfd_link_info *, asection *sec,
          const Elf_Internal_Rela *));
-static boolean elf64_alpha_adjust_dynamic_symbol
+static bfd_boolean elf64_alpha_adjust_dynamic_symbol
   PARAMS((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean elf64_alpha_size_dynamic_sections
+static bfd_boolean elf64_alpha_size_dynamic_sections
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean elf64_alpha_relocate_section_r
+static bfd_boolean elf64_alpha_relocate_section_r
   PARAMS((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
          Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf64_alpha_relocate_section
+static bfd_boolean elf64_alpha_relocate_section
   PARAMS((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
          Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf64_alpha_finish_dynamic_symbol
+static bfd_boolean elf64_alpha_finish_dynamic_symbol
   PARAMS((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
          Elf_Internal_Sym *));
-static boolean elf64_alpha_finish_dynamic_sections
+static bfd_boolean elf64_alpha_finish_dynamic_sections
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean elf64_alpha_final_link
+static bfd_boolean elf64_alpha_final_link
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean elf64_alpha_merge_ind_symbols
+static bfd_boolean elf64_alpha_merge_ind_symbols
   PARAMS((struct alpha_elf_link_hash_entry *, PTR));
 static Elf_Internal_Rela * elf64_alpha_find_reloc_at_ofs
   PARAMS ((Elf_Internal_Rela *, Elf_Internal_Rela *, bfd_vma, int));
@@ -247,7 +248,7 @@ struct alpha_elf_link_hash_table
 #define alpha_elf_link_hash_traverse(table, func, info)                        \
   (elf_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the Alpha ELF linker hash table from a link_info structure.  */
@@ -268,18 +269,18 @@ alpha_elf_dynamic_symbol_p (h, info)
      struct bfd_link_info *info;
 {
   if (h == NULL)
-    return false;
+    return FALSE;
 
   while (h->root.type == bfd_link_hash_indirect
         || h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
   if (h->dynindx == -1)
-    return false;
+    return FALSE;
 
   if (h->root.type == bfd_link_hash_undefweak
       || h->root.type == bfd_link_hash_defweak)
-    return true;
+    return TRUE;
 
   switch (ELF_ST_VISIBILITY (h->other))
     {
@@ -287,10 +288,10 @@ alpha_elf_dynamic_symbol_p (h, info)
       break;
     case STV_HIDDEN:
     case STV_INTERNAL:
-      return false;
+      return FALSE;
     case STV_PROTECTED:
       if (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
-        return false;
+        return FALSE;
       break;
     }
 
@@ -298,9 +299,9 @@ alpha_elf_dynamic_symbol_p (h, info)
       || ((h->elf_link_hash_flags
           & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))
          == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)))
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 /* Create an entry in a Alpha ELF linker hash table.  */
@@ -399,18 +400,18 @@ struct alpha_elf_obj_tdata
 #define alpha_elf_tdata(abfd) \
   ((struct alpha_elf_obj_tdata *) (abfd)->tdata.any)
 
-static boolean
+static bfd_boolean
 elf64_alpha_mkobject (abfd)
      bfd *abfd;
 {
   bfd_size_type amt = sizeof (struct alpha_elf_obj_tdata);
   abfd->tdata.any = bfd_zalloc (abfd, amt);
   if (abfd->tdata.any == NULL)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf64_alpha_object_p (abfd)
      bfd *abfd;
 {
@@ -419,7 +420,7 @@ elf64_alpha_object_p (abfd)
   bfd_size_type amt = sizeof (struct alpha_elf_obj_tdata);
   new_tdata = bfd_zalloc (abfd, amt);
   if (new_tdata == NULL)
-    return false;
+    return FALSE;
   new_tdata->root = *abfd->tdata.elf_obj_data;
   abfd->tdata.any = new_tdata;
 
@@ -440,45 +441,45 @@ static reloc_howto_type elf64_alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         elf64_alpha_reloc_nil, /* special_function */
         "NONE",                /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 32 bit reference to a symbol.  */
   HOWTO (R_ALPHA_REFLONG,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "REFLONG",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 64 bit reference to a symbol.  */
   HOWTO (R_ALPHA_REFQUAD,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "REFQUAD",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit GP relative offset.  This is just like REFLONG except
      that when the value is used the value of the gp register will be
@@ -487,30 +488,30 @@ static reloc_howto_type elf64_alpha_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "GPREL32",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used for an instruction that refers to memory off the GP register.  */
   HOWTO (R_ALPHA_LITERAL,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "ELF_LITERAL",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* This reloc only appears immediately following an ELF_LITERAL reloc.
      It identifies a use of the literal.  The symbol index is special:
@@ -523,15 +524,15 @@ static reloc_howto_type elf64_alpha_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         elf64_alpha_reloc_nil, /* special_function */
         "LITUSE",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Load the gp register.  This is always used for a ldah instruction
      which loads the upper 16 bits of the gp register.  The symbol
@@ -553,90 +554,90 @@ static reloc_howto_type elf64_alpha_howto_table[] =
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         elf64_alpha_reloc_gpdisp, /* special_function */
         "GPDISP",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 21 bit branch.  */
   HOWTO (R_ALPHA_BRADDR,       /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         21,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "BRADDR",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x1fffff,              /* src_mask */
         0x1fffff,              /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A hint for a jump to a register.  */
   HOWTO (R_ALPHA_HINT,         /* type */
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         14,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "HINT",                /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x3fff,                /* src_mask */
         0x3fff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 16 bit PC relative offset.  */
   HOWTO (R_ALPHA_SREL16,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SREL16",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 32 bit PC relative offset.  */
   HOWTO (R_ALPHA_SREL32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SREL32",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 64 bit PC relative offset.  */
   HOWTO (R_ALPHA_SREL64,       /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SREL64",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Skip 12 - 16; deprecated ECOFF relocs.  */
   SKIP_HOWTO (12),
@@ -650,45 +651,45 @@ static reloc_howto_type elf64_alpha_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "GPRELHIGH",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The low 16 bits of the displacement from GP to the target.  */
   HOWTO (R_ALPHA_GPRELLOW,
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "GPRELLOW",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16-bit displacement from the GP to the target.  */
   HOWTO (R_ALPHA_GPREL16,
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "GPREL16",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Skip 20 - 23; deprecated ECOFF relocs.  */
   SKIP_HOWTO (20),
@@ -706,120 +707,120 @@ static reloc_howto_type elf64_alpha_howto_table[] =
         0,
         0,
         0,
-        false,
+        FALSE,
         0,
         complain_overflow_dont,
         bfd_elf_generic_reloc,
         "COPY",
-        false,
+        FALSE,
         0,
         0,
-        true),
+        TRUE),
 
   /* A dynamic relocation for a .got entry.  */
   HOWTO (R_ALPHA_GLOB_DAT,
         0,
         0,
         0,
-        false,
+        FALSE,
         0,
         complain_overflow_dont,
         bfd_elf_generic_reloc,
         "GLOB_DAT",
-        false,
+        FALSE,
         0,
         0,
-        true),
+        TRUE),
 
   /* A dynamic relocation for a .plt entry.  */
   HOWTO (R_ALPHA_JMP_SLOT,
         0,
         0,
         0,
-        false,
+        FALSE,
         0,
         complain_overflow_dont,
         bfd_elf_generic_reloc,
         "JMP_SLOT",
-        false,
+        FALSE,
         0,
         0,
-        true),
+        TRUE),
 
   /* A dynamic relocation to add the base of the DSO to a 64-bit field.  */
   HOWTO (R_ALPHA_RELATIVE,
         0,
         0,
         0,
-        false,
+        FALSE,
         0,
         complain_overflow_dont,
         bfd_elf_generic_reloc,
         "RELATIVE",
-        false,
+        FALSE,
         0,
         0,
-        true),
+        TRUE),
 
   /* A 21 bit branch that adjusts for gp loads.  */
   HOWTO (R_ALPHA_BRSGP,                /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         21,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "BRSGP",               /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x1fffff,              /* src_mask */
         0x1fffff,              /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Creates a tls_index for the symbol in the got.  */
   HOWTO (R_ALPHA_TLSGD,                /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "TLSGD",               /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Creates a tls_index for the (current) module in the got.  */
   HOWTO (R_ALPHA_TLSLDM,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "TLSLDM",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A dynamic relocation for a DTP module entry.  */
   HOWTO (R_ALPHA_DTPMOD64,     /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "DTPMOD64",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Creates a 64-bit offset in the got for the displacement
      from DTP to the target.  */
@@ -827,75 +828,75 @@ static reloc_howto_type elf64_alpha_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "GOTDTPREL",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A dynamic relocation for a displacement from DTP to the target.  */
   HOWTO (R_ALPHA_DTPREL64,     /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "DTPREL64",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The high 16 bits of the displacement from DTP to the target.  */
   HOWTO (R_ALPHA_DTPRELHI,     /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "DTPRELHI",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The low 16 bits of the displacement from DTP to the target.  */
   HOWTO (R_ALPHA_DTPRELLO,     /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "DTPRELLO",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16-bit displacement from DTP to the target.  */
   HOWTO (R_ALPHA_DTPREL16,     /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "DTPREL16",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Creates a 64-bit offset in the got for the displacement
      from TP to the target.  */
@@ -903,75 +904,75 @@ static reloc_howto_type elf64_alpha_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "GOTTPREL",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A dynamic relocation for a displacement from TP to the target.  */
   HOWTO (R_ALPHA_TPREL64,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "TPREL64",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The high 16 bits of the displacement from TP to the target.  */
   HOWTO (R_ALPHA_TPRELHI,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "TPRELHI",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The low 16 bits of the displacement from TP to the target.  */
   HOWTO (R_ALPHA_TPRELLO,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "TPRELLO",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16-bit displacement from TP to the target.  */
   HOWTO (R_ALPHA_TPREL16,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "TPREL16",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 /* A relocation function which doesn't do anything.  */
@@ -1165,7 +1166,7 @@ static void
 elf64_alpha_info_to_howto (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf64_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned r_type;
 
@@ -1226,30 +1227,30 @@ struct alpha_relax_info
   struct alpha_elf_link_hash_entry *h;
   struct alpha_elf_got_entry **first_gotent;
   struct alpha_elf_got_entry *gotent;
-  boolean changed_contents;
-  boolean changed_relocs;
+  bfd_boolean changed_contents;
+  bfd_boolean changed_relocs;
   unsigned char other;
 };
 
-static boolean elf64_alpha_relax_with_lituse
+static bfd_boolean elf64_alpha_relax_with_lituse
   PARAMS((struct alpha_relax_info *info, bfd_vma symval,
           Elf_Internal_Rela *irel));
 static bfd_vma elf64_alpha_relax_opt_call
   PARAMS((struct alpha_relax_info *info, bfd_vma symval));
-static boolean elf64_alpha_relax_got_load
+static bfd_boolean elf64_alpha_relax_got_load
   PARAMS((struct alpha_relax_info *info, bfd_vma symval,
           Elf_Internal_Rela *irel, unsigned long));
-static boolean elf64_alpha_relax_gprelhilo
+static bfd_boolean elf64_alpha_relax_gprelhilo
   PARAMS((struct alpha_relax_info *info, bfd_vma symval,
-          Elf_Internal_Rela *irel, boolean));
-static boolean elf64_alpha_relax_tls_get_addr
+          Elf_Internal_Rela *irel, bfd_boolean));
+static bfd_boolean elf64_alpha_relax_tls_get_addr
   PARAMS((struct alpha_relax_info *info, bfd_vma symval,
-          Elf_Internal_Rela *irel, boolean));
+          Elf_Internal_Rela *irel, bfd_boolean));
 static struct elf_link_tls_segment *elf64_alpha_relax_find_tls_segment
   PARAMS((struct alpha_relax_info *, struct elf_link_tls_segment *));
-static boolean elf64_alpha_relax_section
+static bfd_boolean elf64_alpha_relax_section
   PARAMS((bfd *abfd, asection *sec, struct bfd_link_info *link_info,
-         boolean *again));
+         bfd_boolean *again));
 
 static Elf_Internal_Rela *
 elf64_alpha_find_reloc_at_ofs (rel, relend, offset, type)
@@ -1267,7 +1268,7 @@ elf64_alpha_find_reloc_at_ofs (rel, relend, offset, type)
   return NULL;
 }
 
-static boolean
+static bfd_boolean
 elf64_alpha_relax_with_lituse (info, symval, irel)
      struct alpha_relax_info *info;
      bfd_vma symval;
@@ -1276,10 +1277,10 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
   Elf_Internal_Rela *urel, *irelend = info->relend;
   int flags, count, i;
   bfd_signed_vma disp;
-  boolean fits16;
-  boolean fits32;
-  boolean lit_reused = false;
-  boolean all_optimized = true;
+  bfd_boolean fits16;
+  bfd_boolean fits32;
+  bfd_boolean lit_reused = FALSE;
+  bfd_boolean all_optimized = TRUE;
   unsigned int lit_insn;
 
   lit_insn = bfd_get_32 (info->abfd, info->contents + irel->r_offset);
@@ -1289,12 +1290,12 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
        ("%s: %s+0x%lx: warning: LITERAL relocation against unexpected insn",
        bfd_archive_filename (info->abfd), info->sec->name,
        (unsigned long) irel->r_offset));
-      return true;
+      return TRUE;
     }
 
   /* Can't relax dynamic symbols.  */
   if (alpha_elf_dynamic_symbol_p (&info->h->root, info->link_info))
-    return true;
+    return TRUE;
 
   /* Summarize how this particular LITERAL is used.  */
   for (urel = irel+1, flags = count = 0; urel < irelend; ++urel, ++count)
@@ -1322,7 +1323,7 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
        default:
          /* This type is really just a placeholder to note that all
             uses cannot be optimized, but to still allow some.  */
-         all_optimized = false;
+         all_optimized = FALSE;
          break;
 
        case LITUSE_ALPHA_BASE:
@@ -1348,11 +1349,11 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
              urel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info),
                                           R_ALPHA_GPREL16);
              urel->r_addend = irel->r_addend;
-             info->changed_relocs = true;
+             info->changed_relocs = TRUE;
 
              bfd_put_32 (info->abfd, (bfd_vma) insn,
                          info->contents + urel->r_offset);
-             info->changed_contents = true;
+             info->changed_contents = TRUE;
            }
 
          /* If all mem+byte, we can optimize 32-bit mem displacements.  */
@@ -1365,16 +1366,16 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
              lit_insn = (OP_LDAH << 26) | (lit_insn & 0x03ff0000);
              bfd_put_32 (info->abfd, (bfd_vma) lit_insn,
                          info->contents + irel->r_offset);
-             lit_reused = true;
-             info->changed_contents = true;
+             lit_reused = TRUE;
+             info->changed_contents = TRUE;
 
              urel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info),
                                           R_ALPHA_GPRELLOW);
              urel->r_addend = irel->r_addend;
-             info->changed_relocs = true;
+             info->changed_relocs = TRUE;
            }
          else
-           all_optimized = false;
+           all_optimized = FALSE;
          break;
 
        case LITUSE_ALPHA_BYTOFF:
@@ -1388,11 +1389,11 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
 
          urel->r_info = ELF64_R_INFO (0, R_ALPHA_NONE);
          urel->r_addend = 0;
-         info->changed_relocs = true;
+         info->changed_relocs = TRUE;
 
          bfd_put_32 (info->abfd, (bfd_vma) insn,
                      info->contents + urel->r_offset);
-         info->changed_contents = true;
+         info->changed_contents = TRUE;
          break;
 
        case LITUSE_ALPHA_JSR:
@@ -1426,7 +1427,7 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
                if (optdest)
                  urel->r_addend += optdest - symval;
                else
-                 all_optimized = false;
+                 all_optimized = FALSE;
 
                bfd_put_32 (info->abfd, (bfd_vma) insn,
                            info->contents + urel->r_offset);
@@ -1438,11 +1439,11 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
                if (xrel)
                  xrel->r_info = ELF64_R_INFO (0, R_ALPHA_NONE);
 
-               info->changed_contents = true;
-               info->changed_relocs = true;
+               info->changed_contents = TRUE;
+               info->changed_relocs = TRUE;
              }
            else
-             all_optimized = false;
+             all_optimized = FALSE;
 
            /* Even if the target is not in range for a direct branch,
               if we share a GP, we can eliminate the gp reload.  */
@@ -1470,8 +1471,8 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
                        bfd_put_32 (info->abfd, (bfd_vma) INSN_UNOP, p_lda);
 
                        gpdisp->r_info = ELF64_R_INFO (0, R_ALPHA_NONE);
-                       info->changed_contents = true;
-                       info->changed_relocs = true;
+                       info->changed_contents = TRUE;
+                       info->changed_relocs = TRUE;
                      }
                  }
              }
@@ -1499,15 +1500,15 @@ elf64_alpha_relax_with_lituse (info, symval, irel)
       if (!lit_reused)
        {
          irel->r_info = ELF64_R_INFO (0, R_ALPHA_NONE);
-         info->changed_relocs = true;
+         info->changed_relocs = TRUE;
 
          bfd_put_32 (info->abfd, (bfd_vma) INSN_UNOP,
                      info->contents + irel->r_offset);
-         info->changed_contents = true;
+         info->changed_contents = TRUE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 static bfd_vma
@@ -1582,7 +1583,7 @@ elf64_alpha_relax_opt_call (info, symval)
   return symval + 8;
 }
 
-static boolean
+static bfd_boolean
 elf64_alpha_relax_got_load (info, symval, irel, r_type)
      struct alpha_relax_info *info;
      bfd_vma symval;
@@ -1602,16 +1603,16 @@ elf64_alpha_relax_got_load (info, symval, irel, r_type)
        ("%s: %s+0x%lx: warning: %s relocation against unexpected insn",
        bfd_archive_filename (info->abfd), info->sec->name,
        (unsigned long) irel->r_offset, howto->name));
-      return true;
+      return TRUE;
     }
 
   /* Can't relax dynamic symbols.  */
   if (alpha_elf_dynamic_symbol_p (&info->h->root, info->link_info))
-    return true;
+    return TRUE;
 
   /* Can't use local-exec relocations in shared libraries.  */
   if (r_type == R_ALPHA_GOTTPREL && info->link_info->shared)
-    return true;
+    return TRUE;
 
   if (r_type == R_ALPHA_LITERAL)
     disp = symval - info->gp;
@@ -1626,7 +1627,7 @@ elf64_alpha_relax_got_load (info, symval, irel, r_type)
     }
 
   if (disp < -0x8000 || disp >= 0x8000)
-    return true;
+    return TRUE;
 
   /* Exchange LDQ for LDA.  In the case of the TLS relocs, we're loading
      a constant, so force the base register to be $31.  */
@@ -1635,7 +1636,7 @@ elf64_alpha_relax_got_load (info, symval, irel, r_type)
   else
     insn = (OP_LDA << 26) | (insn & (31 << 21)) | (31 << 16);
   bfd_put_32 (info->abfd, (bfd_vma) insn, info->contents + irel->r_offset);
-  info->changed_contents = true;
+  info->changed_contents = TRUE;
 
   switch (r_type)
     {
@@ -1650,11 +1651,11 @@ elf64_alpha_relax_got_load (info, symval, irel, r_type)
       break;
     default:
       BFD_ASSERT (0);
-      return false;
+      return FALSE;
     }
 
   irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info), r_type);
-  info->changed_relocs = true;
+  info->changed_relocs = TRUE;
 
   /* Reduce the use count on this got entry by one, possibly
      eliminating it.  */
@@ -1679,15 +1680,15 @@ elf64_alpha_relax_got_load (info, symval, irel, r_type)
      This would mean that we'd have to _add_ relocations, the pain of
      which gives one pause.  */
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf64_alpha_relax_gprelhilo (info, symval, irel, hi)
      struct alpha_relax_info *info;
      bfd_vma symval;
      Elf_Internal_Rela *irel;
-     boolean hi;
+     bfd_boolean hi;
 {
   unsigned int insn;
   bfd_signed_vma disp;
@@ -1703,22 +1704,22 @@ elf64_alpha_relax_gprelhilo (info, symval, irel, hi)
 
      which would indeed be the most efficient way to implement this.  */
 
-  return true;
+  return TRUE;
 
   disp = symval - info->gp;
   if (disp < -0x8000 || disp >= 0x8000)
-    return true;
+    return TRUE;
 
   if (hi)
     {
       /* Nop out the high instruction.  */
 
       bfd_put_32 (info->abfd, (bfd_vma) INSN_UNOP, pos);
-      info->changed_contents = true;
+      info->changed_contents = TRUE;
 
       irel->r_info = ELF64_R_INFO (0, R_ALPHA_NONE);
       irel->r_addend = 0;
-      info->changed_relocs = true;
+      info->changed_relocs = TRUE;
     }
   else
     {
@@ -1727,34 +1728,34 @@ elf64_alpha_relax_gprelhilo (info, symval, irel, hi)
       insn = bfd_get_32 (info->abfd, pos);
       insn = (insn & 0xffe00000) | (29 << 16);
       bfd_put_32 (info->abfd, (bfd_vma) insn, pos);
-      info->changed_contents = true;
+      info->changed_contents = TRUE;
 
       irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info),
                                   R_ALPHA_GPREL16);
-      info->changed_relocs = true;
+      info->changed_relocs = TRUE;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf64_alpha_relax_tls_get_addr (info, symval, irel, is_gd)
      struct alpha_relax_info *info;
      bfd_vma symval;
      Elf_Internal_Rela *irel;
-     boolean is_gd;
+     bfd_boolean is_gd;
 {
   bfd_byte *pos[5];
   unsigned int insn;
   Elf_Internal_Rela *gpdisp, *hint;
-  boolean dynamic, use_gottprel;
+  bfd_boolean dynamic, use_gottprel;
 
   dynamic = alpha_elf_dynamic_symbol_p (&info->h->root, info->link_info);
 
   /* ??? For LD relaxation, we need a symbol referencing the beginning
      of the TLS segment.  */
   if (!is_gd)
-    return true;
+    return TRUE;
 
   /* If a TLS symbol is accessed using IE at least once, there is no point
      to use dynamic model for it.  */
@@ -1769,23 +1770,23 @@ elf64_alpha_relax_tls_get_addr (info, symval, irel, is_gd)
 
   /* Otherwise we must be building an executable to do anything.  */
   else if (info->link_info->shared)
-    return true;
+    return TRUE;
 
   /* The TLSGD/TLSLDM relocation must be followed by a LITERAL and
      the matching LITUSE_TLS relocations.  */
   if (irel + 2 >= info->relend)
-    return true;
+    return TRUE;
   if (ELF64_R_TYPE (irel[1].r_info) != R_ALPHA_LITERAL
       || ELF64_R_TYPE (irel[2].r_info) != R_ALPHA_LITUSE
       || irel[2].r_addend != (is_gd ? LITUSE_ALPHA_TLSGD : LITUSE_ALPHA_TLSLDM))
-    return true;
+    return TRUE;
 
   /* There must be a GPDISP relocation positioned immediately after the
      LITUSE relocation.  */
   gpdisp = elf64_alpha_find_reloc_at_ofs (info->relocs, info->relend,
                                          irel[2].r_offset + 4, R_ALPHA_GPDISP);
   if (!gpdisp)
-    return true;
+    return TRUE;
 
   pos[0] = info->contents + irel[0].r_offset;
   pos[1] = info->contents + irel[1].r_offset;
@@ -1801,7 +1802,7 @@ elf64_alpha_relax_tls_get_addr (info, symval, irel, is_gd)
       pos[1] = tmp;
     }
   if (pos[1] >= pos[2] || pos[2] >= pos[3] || pos[3] >= pos[4])
-    return true;
+    return TRUE;
 
   /* Reduce the use count on the LITERAL relocation.  Do this before we
      smash the symndx when we adjust the relocations below.  */
@@ -1855,7 +1856,7 @@ elf64_alpha_relax_tls_get_addr (info, symval, irel, is_gd)
 
      as appropriate.  */
 
-  use_gottprel = false;
+  use_gottprel = FALSE;
   switch (!dynamic && !info->link_info->shared)
     {
     case 1:
@@ -1899,7 +1900,7 @@ elf64_alpha_relax_tls_get_addr (info, symval, irel, is_gd)
       /* FALLTHRU */
 
     default:
-      use_gottprel = true;
+      use_gottprel = TRUE;
 
       insn = (OP_LDQ << 26) | (16 << 21) | (29 << 16);
       bfd_put_32 (info->abfd, (bfd_vma) insn, pos[0]);
@@ -1927,8 +1928,8 @@ elf64_alpha_relax_tls_get_addr (info, symval, irel, is_gd)
   if (hint)
     hint->r_info = ELF64_R_INFO (0, R_ALPHA_NONE);
 
-  info->changed_contents = true;
-  info->changed_relocs = true;
+  info->changed_contents = TRUE;
+  info->changed_relocs = TRUE;
 
   /* Reduce the use count on the TLSGD/TLSLDM relocation.  */
   if (--info->gotent->use_count == 0)
@@ -1962,7 +1963,7 @@ elf64_alpha_relax_tls_get_addr (info, symval, irel, is_gd)
              tprel_gotent = (struct alpha_elf_got_entry *)
                bfd_alloc (info->abfd, sizeof (struct alpha_elf_got_entry));
              if (!tprel_gotent)
-               return false;
+               return FALSE;
 
              tprel_gotent->next = *info->first_gotent;
              *info->first_gotent = tprel_gotent;
@@ -1979,7 +1980,7 @@ elf64_alpha_relax_tls_get_addr (info, symval, irel, is_gd)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 static struct elf_link_tls_segment *
@@ -2029,12 +2030,12 @@ elf64_alpha_relax_find_tls_segment (info, seg)
   return seg;
 }
 
-static boolean
+static bfd_boolean
 elf64_alpha_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
@@ -2045,12 +2046,12 @@ elf64_alpha_relax_section (abfd, sec, link_info, again)
   struct elf_link_tls_segment tls_segment;
 
   /* We are not currently changing any sizes, so only one pass.  */
-  *again = false;
+  *again = FALSE;
 
   if (link_info->relocateable
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -2065,7 +2066,7 @@ elf64_alpha_relax_section (abfd, sec, link_info, again)
                     (abfd, sec, (PTR) NULL, (Elf_Internal_Rela *) NULL,
                      link_info->keep_memory));
   if (internal_relocs == NULL)
-    return false;
+    return FALSE;
 
   memset(&info, 0, sizeof (info));
   info.abfd = abfd;
@@ -2246,11 +2247,11 @@ elf64_alpha_relax_section (abfd, sec, link_info, again)
     }
 
   if (!elf64_alpha_size_plt_section (link_info))
-    return false;
+    return FALSE;
   if (!elf64_alpha_size_got_sections (link_info))
-    return false;
+    return FALSE;
   if (!elf64_alpha_size_rela_got_section (link_info))
-    return false;
+    return FALSE;
 
   if (isymbuf != NULL
       && symtab_hdr->contents != (unsigned char *) isymbuf)
@@ -2286,7 +2287,7 @@ elf64_alpha_relax_section (abfd, sec, link_info, again)
 
   *again = info.changed_contents || info.changed_relocs;
 
-  return true;
+  return TRUE;
 
  error_return:
   if (isymbuf != NULL
@@ -2298,7 +2299,7 @@ elf64_alpha_relax_section (abfd, sec, link_info, again)
   if (internal_relocs != NULL
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
-  return false;
+  return FALSE;
 }
 \f
 /* PLT/GOT Stuff */
@@ -2322,10 +2323,10 @@ elf64_alpha_relax_section (abfd, sec, link_info, again)
    FIXME: We need to handle the SHF_ALPHA_GPREL flag, but I'm not sure
    how to.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_section_from_shdr (abfd, hdr, name)
      bfd *abfd;
-     Elf64_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      const char *name;
 {
   asection *newsect;
@@ -2339,14 +2340,14 @@ elf64_alpha_section_from_shdr (abfd, hdr, name)
     {
     case SHT_ALPHA_DEBUG:
       if (strcmp (name, ".mdebug") != 0)
-       return false;
+       return FALSE;
       break;
     default:
-      return false;
+      return FALSE;
     }
 
   if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-    return false;
+    return FALSE;
   newsect = hdr->bfd_section;
 
   if (hdr->sh_type == SHT_ALPHA_DEBUG)
@@ -2354,32 +2355,32 @@ elf64_alpha_section_from_shdr (abfd, hdr, name)
       if (! bfd_set_section_flags (abfd, newsect,
                                   (bfd_get_section_flags (abfd, newsect)
                                    | SEC_DEBUGGING)))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Convert Alpha specific section flags to bfd internal section flags.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_section_flags (flags, hdr)
      flagword *flags;
-     Elf64_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
 {
   if (hdr->sh_flags & SHF_ALPHA_GPREL)
     *flags |= SEC_SMALL_DATA;
 
-  return true;
+  return TRUE;
 }
 
 /* Set the correct type for an Alpha ELF section.  We do this by the
    section name, which is a hack, but ought to work.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_fake_sections (abfd, hdr, sec)
      bfd *abfd;
-     Elf64_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      asection *sec;
 {
   register const char *name;
@@ -2403,13 +2404,13 @@ elf64_alpha_fake_sections (abfd, hdr, sec)
           || strcmp (name, ".lit8") == 0)
     hdr->sh_flags |= SHF_ALPHA_GPREL;
 
-  return true;
+  return TRUE;
 }
 
 /* Hook called by the linker routine which adds symbols from an object
    file.  We use it to put .comm items in .sbss, and not .bss.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2435,19 +2436,19 @@ elf64_alpha_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
              || !bfd_set_section_flags (abfd, scomm, (SEC_ALLOC
                                                       | SEC_IS_COMMON
                                                       | SEC_LINKER_CREATED)))
-           return false;
+           return FALSE;
        }
 
       *secp = scomm;
       *valp = sym->st_size;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Create the .got section.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_create_got_section(abfd, info)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -2455,7 +2456,7 @@ elf64_alpha_create_got_section(abfd, info)
   asection *s;
 
   if (bfd_get_section_by_name (abfd, ".got"))
-    return true;
+    return TRUE;
 
   s = bfd_make_section (abfd, ".got");
   if (s == NULL
@@ -2464,16 +2465,16 @@ elf64_alpha_create_got_section(abfd, info)
                                           | SEC_IN_MEMORY
                                           | SEC_LINKER_CREATED))
       || !bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
 
   alpha_elf_tdata (abfd)->got = s;
 
-  return true;
+  return TRUE;
 }
 
 /* Create all the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2492,23 +2493,23 @@ elf64_alpha_create_dynamic_sections (abfd, info)
                                            | SEC_LINKER_CREATED
                                            | SEC_CODE))
       || ! bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
 
   /* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the
      .plt section.  */
   bh = NULL;
   if (! (_bfd_generic_link_add_one_symbol
         (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
-         (bfd_vma) 0, (const char *) NULL, false,
+         (bfd_vma) 0, (const char *) NULL, FALSE,
          get_elf_backend_data (abfd)->collect, &bh)))
-    return false;
+    return FALSE;
   h = (struct elf_link_hash_entry *) bh;
   h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
   h->type = STT_OBJECT;
 
   if (info->shared
       && ! _bfd_elf_link_record_dynamic_symbol (info, h))
-    return false;
+    return FALSE;
 
   s = bfd_make_section (abfd, ".rela.plt");
   if (s == NULL
@@ -2518,13 +2519,13 @@ elf64_alpha_create_dynamic_sections (abfd, info)
                                           | SEC_LINKER_CREATED
                                           | SEC_READONLY))
       || ! bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
 
   /* We may or may not have created a .got section for this object, but
      we definitely havn't done the rest of the work.  */
 
   if (!elf64_alpha_create_got_section (abfd, info))
-    return false;
+    return FALSE;
 
   s = bfd_make_section(abfd, ".rela.got");
   if (s == NULL
@@ -2534,7 +2535,7 @@ elf64_alpha_create_dynamic_sections (abfd, info)
                                           | SEC_LINKER_CREATED
                                           | SEC_READONLY))
       || !bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
 
   /* Define the symbol _GLOBAL_OFFSET_TABLE_ at the start of the
      dynobj's .got section.  We don't do this in the linker script
@@ -2544,25 +2545,25 @@ elf64_alpha_create_dynamic_sections (abfd, info)
   if (!(_bfd_generic_link_add_one_symbol
        (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL,
         alpha_elf_tdata(abfd)->got, (bfd_vma) 0, (const char *) NULL,
-        false, get_elf_backend_data (abfd)->collect, &bh)))
-    return false;
+        FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+    return FALSE;
   h = (struct elf_link_hash_entry *) bh;
   h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
   h->type = STT_OBJECT;
 
   if (info->shared
       && ! _bfd_elf_link_record_dynamic_symbol (info, h))
-    return false;
+    return FALSE;
 
   elf_hash_table (info)->hgot = h;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Read ECOFF debugging information from a .mdebug section into a
    ecoff_debug_info structure.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_read_ecoff_info (abfd, section, debug)
      bfd *abfd;
      asection *section;
@@ -2619,7 +2620,7 @@ elf64_alpha_read_ecoff_info (abfd, section, debug)
   debug->fdr = NULL;
   debug->adjust = NULL;
 
-  return true;
+  return TRUE;
 
  error_return:
   if (ext_hdr != NULL)
@@ -2646,12 +2647,12 @@ elf64_alpha_read_ecoff_info (abfd, section, debug)
     free (debug->external_rfd);
   if (debug->external_ext != NULL)
     free (debug->external_ext);
-  return false;
+  return FALSE;
 }
 
 /* Alpha ELF local labels start with '$'.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
@@ -2670,7 +2671,7 @@ struct mips_elf_find_line
   struct ecoff_find_line i;
 };
 
-static boolean
+static bfd_boolean
 elf64_alpha_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
                               functionname_ptr, line_ptr)
      bfd *abfd;
@@ -2687,7 +2688,7 @@ elf64_alpha_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
                                     filename_ptr, functionname_ptr,
                                     line_ptr, 0,
                                     &elf_tdata (abfd)->dwarf2_find_line_info))
-    return true;
+    return TRUE;
 
   msec = bfd_get_section_by_name (abfd, ".mdebug");
   if (msec != NULL)
@@ -2717,13 +2718,13 @@ elf64_alpha_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
          if (fi == NULL)
            {
              msec->flags = origflags;
-             return false;
+             return FALSE;
            }
 
          if (!elf64_alpha_read_ecoff_info (abfd, msec, &fi->d))
            {
              msec->flags = origflags;
-             return false;
+             return FALSE;
            }
 
          /* Swap in the FDR information.  */
@@ -2732,7 +2733,7 @@ elf64_alpha_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
          if (fi->d.fdr == NULL)
            {
              msec->flags = origflags;
-             return false;
+             return FALSE;
            }
          external_fdr_size = swap->external_fdr_size;
          fdr_ptr = fi->d.fdr;
@@ -2757,7 +2758,7 @@ elf64_alpha_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
                                  line_ptr))
        {
          msec->flags = origflags;
-         return true;
+         return TRUE;
        }
 
       msec->flags = origflags;
@@ -2778,39 +2779,39 @@ struct extsym_info
   struct bfd_link_info *info;
   struct ecoff_debug_info *debug;
   const struct ecoff_debug_swap *swap;
-  boolean failed;
+  bfd_boolean failed;
 };
 
-static boolean
+static bfd_boolean
 elf64_alpha_output_extsym (h, data)
      struct alpha_elf_link_hash_entry *h;
      PTR data;
 {
   struct extsym_info *einfo = (struct extsym_info *) data;
-  boolean strip;
+  bfd_boolean strip;
   asection *sec, *output_section;
 
   if (h->root.root.type == bfd_link_hash_warning)
     h = (struct alpha_elf_link_hash_entry *) h->root.root.u.i.link;
 
   if (h->root.indx == -2)
-    strip = false;
+    strip = FALSE;
   else if (((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
            || (h->root.elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0)
           && (h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
           && (h->root.elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0)
-    strip = true;
+    strip = TRUE;
   else if (einfo->info->strip == strip_all
           || (einfo->info->strip == strip_some
               && bfd_hash_lookup (einfo->info->keep_hash,
                                   h->root.root.root.string,
-                                  false, false) == NULL))
-    strip = true;
+                                  FALSE, FALSE) == NULL))
+    strip = TRUE;
   else
-    strip = false;
+    strip = FALSE;
 
   if (strip)
-    return true;
+    return TRUE;
 
   if (h->esym.ifd == -2)
     {
@@ -2908,11 +2909,11 @@ elf64_alpha_output_extsym (h, data)
                                      h->root.root.root.string,
                                      &h->esym))
     {
-      einfo->failed = true;
-      return false;
+      einfo->failed = TRUE;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Search for and possibly create a got entry.  */
@@ -2996,7 +2997,7 @@ get_got_entry (abfd, h, r_type, r_symndx, r_addend)
 
 /* Handle dynamic relocations when doing an Alpha ELF link.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3009,11 +3010,11 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
   Elf_Internal_Shdr *symtab_hdr;
   struct alpha_elf_link_hash_entry **sym_hashes;
   const Elf_Internal_Rela *rel, *relend;
-  boolean got_created;
+  bfd_boolean got_created;
   bfd_size_type amt;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table(info)->dynobj;
   if (dynobj == NULL)
@@ -3023,7 +3024,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
   rel_sec_name = NULL;
   symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
   sym_hashes = alpha_elf_sym_hashes(abfd);
-  got_created = false;
+  got_created = FALSE;
 
   relend = relocs + sec->reloc_count;
   for (rel = relocs; rel < relend; ++rel)
@@ -3037,7 +3038,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
       unsigned long r_symndx, r_type;
       struct alpha_elf_link_hash_entry *h;
       unsigned int gotent_flags;
-      boolean maybe_dynamic;
+      bfd_boolean maybe_dynamic;
       unsigned int need;
       bfd_vma addend;
 
@@ -3059,12 +3060,12 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
          locally or externally defined, as not all of the input files
          have yet been processed.  Do something with what we know, as
          this may help reduce memory usage and processing time later.  */
-      maybe_dynamic = false;
+      maybe_dynamic = FALSE;
       if (h && ((info->shared
                 && (!info->symbolic || info->allow_shlib_undefined))
                || ! (h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
                || h->root.root.type == bfd_link_hash_defweak))
-        maybe_dynamic = true;
+        maybe_dynamic = TRUE;
 
       need = 0;
       gotent_flags = 0;
@@ -3130,7 +3131,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
          if (!got_created)
            {
              if (!elf64_alpha_create_got_section (abfd, info))
-               return false;
+               return FALSE;
 
              /* Make sure the object's gotobj is set to itself so
                 that we default to every object with its own .got.
@@ -3148,7 +3149,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
 
          gotent = get_got_entry (abfd, h, r_type, r_symndx, addend);
          if (!gotent)
-           return false;
+           return FALSE;
 
          if (gotent_flags)
            {
@@ -3176,7 +3177,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
                              (abfd, elf_elfheader(abfd)->e_shstrndx,
                               elf_section_data(sec)->rel_hdr.sh_name));
              if (rel_sec_name == NULL)
-               return false;
+               return FALSE;
 
              BFD_ASSERT (strncmp (rel_sec_name, ".rela", 5) == 0
                          && strcmp (bfd_get_section_name (abfd, sec),
@@ -3202,7 +3203,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
                  if (sreloc == NULL
                      || !bfd_set_section_flags (dynobj, sreloc, flags)
                      || !bfd_set_section_alignment (dynobj, sreloc, 3))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -3225,7 +3226,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
                  amt = sizeof (struct alpha_elf_reloc_entry);
                  rent = (struct alpha_elf_reloc_entry *) bfd_alloc (abfd, amt);
                  if (!rent)
-                   return false;
+                   return FALSE;
 
                  rent->srel = sreloc;
                  rent->rtype = r_type;
@@ -3251,7 +3252,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -3260,7 +3261,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -3291,7 +3292,7 @@ elf64_alpha_adjust_dynamic_symbol (info, h)
 
       s = bfd_get_section_by_name(dynobj, ".plt");
       if (!s && !elf64_alpha_create_dynamic_sections (dynobj, info))
-       return false;
+       return FALSE;
 
       /* The first bit of the .plt is reserved.  */
       if (s->_raw_size == 0)
@@ -3316,7 +3317,7 @@ elf64_alpha_adjust_dynamic_symbol (info, h)
       BFD_ASSERT (s != NULL);
       s->_raw_size += sizeof (Elf64_External_Rela);
 
-      return true;
+      return TRUE;
     }
   else
     h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
@@ -3330,7 +3331,7 @@ elf64_alpha_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -3338,14 +3339,14 @@ elf64_alpha_adjust_dynamic_symbol (info, h)
      symbols even in regular objects, does not need the hackery of a
      .dynbss section and COPY dynamic relocations.  */
 
-  return true;
+  return TRUE;
 }
 
 /* Symbol versioning can create new symbols, and make our old symbols
    indirect to the new ones.  Consolidate the got and reloc information
    in these situations.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_merge_ind_symbols (hi, dummy)
      struct alpha_elf_link_hash_entry *hi;
      PTR dummy ATTRIBUTE_UNUSED;
@@ -3353,7 +3354,7 @@ elf64_alpha_merge_ind_symbols (hi, dummy)
   struct alpha_elf_link_hash_entry *hs;
 
   if (hi->root.root.type != bfd_link_hash_indirect)
-    return true;
+    return TRUE;
   hs = hi;
   do {
     hs = (struct alpha_elf_link_hash_entry *)hs->root.root.u.i.link;
@@ -3416,12 +3417,12 @@ elf64_alpha_merge_ind_symbols (hi, dummy)
     }
   hi->reloc_entries = NULL;
 
-  return true;
+  return TRUE;
 }
 
 /* Is it possible to merge two object file's .got tables?  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_can_merge_gots (a, b)
      bfd *a, *b;
 {
@@ -3430,11 +3431,11 @@ elf64_alpha_can_merge_gots (a, b)
 
   /* Trivial quick fallout test.  */
   if (total + alpha_elf_tdata (b)->total_got_size <= MAX_GOT_SIZE)
-    return true;
+    return TRUE;
 
   /* By their nature, local .got entries cannot be merged.  */
   if ((total += alpha_elf_tdata (b)->local_got_size) > MAX_GOT_SIZE)
-    return false;
+    return FALSE;
 
   /* Failing the common trivial comparison, we must effectively
      perform the merge.  Not actually performing the merge means that
@@ -3471,13 +3472,13 @@ elf64_alpha_can_merge_gots (a, b)
 
              total += alpha_got_entry_size (be->reloc_type);
              if (total > MAX_GOT_SIZE)
-               return false;
+               return FALSE;
            global_found:;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Actually merge two .got tables.  */
@@ -3577,7 +3578,7 @@ elf64_alpha_merge_gots (a, b)
 
 /* Calculate the offsets for the got entries.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_calc_got_offsets_for_symbol (h, arg)
      struct alpha_elf_link_hash_entry *h;
      PTR arg ATTRIBUTE_UNUSED;
@@ -3597,7 +3598,7 @@ elf64_alpha_calc_got_offsets_for_symbol (h, arg)
        *plge += alpha_got_entry_size (gotent->reloc_type);
       }
 
-  return true;
+  return TRUE;
 }
 
 static void
@@ -3647,7 +3648,7 @@ elf64_alpha_calc_got_offsets (info)
 
 /* Constructs the gots.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_size_got_sections (info)
      struct bfd_link_info *info;
 {
@@ -3676,7 +3677,7 @@ elf64_alpha_size_got_sections (info)
                (_("%s: .got subsegment exceeds 64K (size %d)"),
                 bfd_archive_filename (i),
                 alpha_elf_tdata (this_got)->total_got_size);
-             return false;
+             return FALSE;
            }
 
          if (got_list == NULL)
@@ -3688,7 +3689,7 @@ elf64_alpha_size_got_sections (info)
 
       /* Strange degenerate case of no got references.  */
       if (got_list == NULL)
-       return true;
+       return TRUE;
 
       alpha_elf_hash_table (info)->got_list = got_list;
 
@@ -3719,13 +3720,13 @@ elf64_alpha_size_got_sections (info)
   if (1 || something_changed)
     elf64_alpha_calc_got_offsets (info);
 
-  return true;
+  return TRUE;
 }
 
 /* Called from relax_section to rebuild the PLT in light of
    potential changes in the function's status.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_size_plt_section (info)
      struct bfd_link_info *info;
 {
@@ -3736,7 +3737,7 @@ elf64_alpha_size_plt_section (info)
   dynobj = elf_hash_table(info)->dynobj;
   splt = bfd_get_section_by_name(dynobj, ".plt");
   if (splt == NULL)
-    return true;
+    return TRUE;
 
   splt->_raw_size = 0;
 
@@ -3754,10 +3755,10 @@ elf64_alpha_size_plt_section (info)
   spltrel->_raw_size = entries * sizeof (Elf64_External_Rela);
   spltrel->_cooked_size = spltrel->_raw_size;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf64_alpha_size_plt_section_1 (h, data)
      struct alpha_elf_link_hash_entry *h;
      PTR data;
@@ -3767,7 +3768,7 @@ elf64_alpha_size_plt_section_1 (h, data)
 
   /* If we didn't need an entry before, we still don't.  */
   if (!(h->root.elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT))
-    return true;
+    return TRUE;
 
   /* There must still be a LITERAL got entry for the function.  */
   for (gotent = h->got_entries; gotent ; gotent = gotent->next)
@@ -3790,10 +3791,10 @@ elf64_alpha_size_plt_section_1 (h, data)
       h->root.plt.offset = -1;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf64_alpha_always_size_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -3801,7 +3802,7 @@ elf64_alpha_always_size_sections (output_bfd, info)
   bfd *i;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   /* First, take care of the indirect symbols created by versioning.  */
   alpha_elf_link_hash_traverse (alpha_elf_hash_table (info),
@@ -3809,7 +3810,7 @@ elf64_alpha_always_size_sections (output_bfd, info)
                                NULL);
 
   if (!elf64_alpha_size_got_sections (info))
-    return false;
+    return FALSE;
 
   /* Allocate space for all of the .got subsections.  */
   i = alpha_elf_hash_table (info)->got_list;
@@ -3820,11 +3821,11 @@ elf64_alpha_always_size_sections (output_bfd, info)
        {
          s->contents = (bfd_byte *) bfd_zalloc (i, s->_raw_size);
          if (s->contents == NULL)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* The number of dynamic relocations required by a static relocation.  */
@@ -3863,12 +3864,12 @@ alpha_dynamic_entries_for_reloc (r_type, dynamic, shared)
 
 /* Work out the sizes of the dynamic relocation entries.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_calc_dynrel_sizes (h, info)
      struct alpha_elf_link_hash_entry *h;
      struct bfd_link_info *info;
 {
-  boolean dynamic;
+  bfd_boolean dynamic;
   struct alpha_elf_reloc_entry *relent;
   unsigned long entries;
 
@@ -3911,12 +3912,12 @@ elf64_alpha_calc_dynrel_sizes (h, info)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic relocation sections.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_size_rela_got_section (info)
      struct bfd_link_info *info;
 {
@@ -3956,7 +3957,7 @@ elf64_alpha_size_rela_got_section (info)
   if (!srel)
     {
       BFD_ASSERT (entries == 0);
-      return true;
+      return TRUE;
     }
   srel->_raw_size = sizeof (Elf64_External_Rela) * entries;
 
@@ -3966,18 +3967,18 @@ elf64_alpha_size_rela_got_section (info)
 
   srel->_cooked_size = srel->_raw_size;
 
-  return true;
+  return TRUE;
 }
 
 /* Subroutine of elf64_alpha_size_rela_got_section for doing the
    global symbols.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_size_rela_got_1 (h, info)
      struct alpha_elf_link_hash_entry *h;
      struct bfd_link_info *info;
 {
-  boolean dynamic;
+  bfd_boolean dynamic;
   struct alpha_elf_got_entry *gotent;
   unsigned long entries;
 
@@ -4009,19 +4010,19 @@ elf64_alpha_size_rela_got_1 (h, info)
       srel->_raw_size += sizeof (Elf64_External_Rela) * entries;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean relplt;
+  bfd_boolean relplt;
 
   dynobj = elf_hash_table(info)->dynobj;
   BFD_ASSERT(dynobj != NULL);
@@ -4051,11 +4052,11 @@ elf64_alpha_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  relplt = false;
+  relplt = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if (!(s->flags & SEC_LINKER_CREATED))
        continue;
@@ -4072,7 +4073,7 @@ elf64_alpha_size_dynamic_sections (output_bfd, info)
         it is that function which decides whether anything needs to
         go into these sections.  */
 
-      strip = false;
+      strip = FALSE;
 
       if (strncmp (name, ".rela", 5) == 0)
        {
@@ -4081,7 +4082,7 @@ elf64_alpha_size_dynamic_sections (output_bfd, info)
          if (!strip)
            {
              if (strcmp(name, ".rela.plt") == 0)
-               relplt = true;
+               relplt = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -4101,7 +4102,7 @@ elf64_alpha_size_dynamic_sections (output_bfd, info)
          /* Allocate memory for the section contents.  */
          s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
          if (s->contents == NULL && s->_raw_size != 0)
-           return false;
+           return FALSE;
        }
     }
 
@@ -4118,7 +4119,7 @@ elf64_alpha_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (relplt)
@@ -4127,23 +4128,23 @@ elf64_alpha_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (!add_dynamic_entry (DT_RELA, 0)
          || !add_dynamic_entry (DT_RELASZ, 0)
          || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela)))
-       return false;
+       return FALSE;
 
       if (info->flags & DF_TEXTREL)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* Relocate an Alpha ELF section for a relocatable link.
@@ -4152,7 +4153,7 @@ elf64_alpha_size_dynamic_sections (output_bfd, info)
    symbol, in which case we have to adjust according to where the section
    symbol winds up in the output section.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_relocate_section_r (output_bfd, info, input_bfd, input_section,
                                contents, relocs, local_syms, local_sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -4167,7 +4168,7 @@ elf64_alpha_relocate_section_r (output_bfd, info, input_bfd, input_section,
   unsigned long symtab_hdr_sh_info;
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
-  boolean ret_val = true;
+  bfd_boolean ret_val = TRUE;
 
   symtab_hdr_sh_info = elf_tdata (input_bfd)->symtab_hdr.sh_info;
 
@@ -4186,7 +4187,7 @@ elf64_alpha_relocate_section_r (output_bfd, info, input_bfd, input_section,
            (_("%s: unknown relocation type %d"),
             bfd_archive_filename (input_bfd), (int)r_type);
          bfd_set_error (bfd_error_bad_value);
-         ret_val = false;
+         ret_val = FALSE;
          continue;
        }
 
@@ -4213,7 +4214,7 @@ elf64_alpha_relocate_section_r (output_bfd, info, input_bfd, input_section,
 
 /* Relocate an Alpha ELF section.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                              contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -4233,7 +4234,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
   bfd *dynobj, *gotobj;
   bfd_vma gp, tp_base, dtp_base;
   struct alpha_elf_got_entry **local_got_entries;
-  boolean ret_val;
+  bfd_boolean ret_val;
   const char *section_name;
 
   /* Handle relocatable links with a smaller loop.  */
@@ -4244,7 +4245,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
 
   /* This is a final link.  */
 
-  ret_val = true;
+  ret_val = TRUE;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
 
@@ -4303,8 +4304,8 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
       asection *sec = NULL;
       bfd_vma value;
       bfd_vma addend;
-      boolean dynamic_symbol_p;
-      boolean undef_weak_ref = false;
+      bfd_boolean dynamic_symbol_p;
+      bfd_boolean undef_weak_ref = FALSE;
       unsigned long r_type;
 
       r_type = ELF64_R_TYPE(rel->r_info);
@@ -4314,7 +4315,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
            (_("%s: unknown relocation type %d"),
             bfd_archive_filename (input_bfd), (int)r_type);
          bfd_set_error (bfd_error_bad_value);
-         ret_val = false;
+         ret_val = FALSE;
          continue;
        }
 
@@ -4364,7 +4365,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                }
            }
 
-         dynamic_symbol_p = false;
+         dynamic_symbol_p = FALSE;
        }
       else
        {
@@ -4394,7 +4395,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                              + sec->output_offset);
            }
          else if (h->root.root.type == bfd_link_hash_undefweak)
-           undef_weak_ref = true;
+           undef_weak_ref = TRUE;
          else if (info->shared
                   && (!info->symbolic || info->allow_shlib_undefined)
                   && !info->no_undefined
@@ -4407,8 +4408,8 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                     input_section, rel->r_offset,
                     (!info->shared || info->no_undefined
                      || ELF_ST_VISIBILITY (h->root.other)))))
-               return false;
-             ret_val = false;
+               return FALSE;
+             ret_val = FALSE;
              continue;
            }
 
@@ -4465,6 +4466,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
              if (info->shared && !dynamic_symbol_p)
                {
                  Elf_Internal_Rela outrel;
+                 bfd_byte *loc;
 
                  BFD_ASSERT(srelgot != NULL);
 
@@ -4474,10 +4476,9 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                  outrel.r_info = ELF64_R_INFO (0, R_ALPHA_RELATIVE);
                  outrel.r_addend = value;
 
-                 bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                            ((Elf64_External_Rela *)
-                                             srelgot->contents)
-                                            + srelgot->reloc_count++);
+                 loc = srelgot->contents;
+                 loc += srelgot->reloc_count++ * sizeof (Elf64_External_Rela);
+                 bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
                  BFD_ASSERT (sizeof (Elf64_External_Rela)
                              * srelgot->reloc_count
                              <= srelgot->_cooked_size);
@@ -4498,7 +4499,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
               (*_bfd_error_handler)
                 (_("%s: gp-relative relocation against dynamic symbol %s"),
                  bfd_archive_filename (input_bfd), h->root.root.root.string);
-              ret_val = false;
+              ret_val = FALSE;
             }
          BFD_ASSERT(gp != 0);
          value -= gp;
@@ -4510,7 +4511,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
               (*_bfd_error_handler)
                 (_("%s: gp-relative relocation against dynamic symbol %s"),
                  bfd_archive_filename (input_bfd), h->root.root.root.string);
-              ret_val = false;
+              ret_val = FALSE;
             }
          BFD_ASSERT(gp != 0);
          value -= gp;
@@ -4536,7 +4537,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
               (*_bfd_error_handler)
                 (_("%s: pc-relative relocation against dynamic symbol %s"),
                  bfd_archive_filename (input_bfd), h->root.root.root.string);
-              ret_val = false;
+              ret_val = FALSE;
             }
          /* The regular PC-relative stuff measures from the start of
             the instruction rather than the end.  */
@@ -4564,7 +4565,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                (*_bfd_error_handler)
                  (_("%s: change in gp: BRSGP %s"),
                   bfd_archive_filename (input_bfd), h->root.root.root.string);
-               ret_val = false;
+               ret_val = FALSE;
              }
 
            /* The symbol should be marked either NOPV or STD_GPLOAD.  */
@@ -4594,7 +4595,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                (*_bfd_error_handler)
                  (_("%s: !samegp reloc against symbol without .prologue: %s"),
                   bfd_archive_filename (input_bfd), name);
-               ret_val = false;
+               ret_val = FALSE;
                break;
              }
 
@@ -4607,6 +4608,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_ALPHA_TPREL64:
          {
            Elf_Internal_Rela outrel;
+           bfd_byte *loc;
 
            /* Careful here to remember RELATIVE relocations for global
               variables for symbolic shared objects.  */
@@ -4640,7 +4642,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                      (_("%s: unhandled dynamic relocation against %s"),
                       bfd_archive_filename (input_bfd),
                       h->root.root.root.string);
-                   ret_val = false;
+                   ret_val = FALSE;
                  }
                outrel.r_info = ELF64_R_INFO (0, R_ALPHA_RELATIVE);
                outrel.r_addend = value;
@@ -4659,10 +4661,9 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
            else
              memset (&outrel, 0, sizeof outrel);
 
-           bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                      ((Elf64_External_Rela *)
-                                       srel->contents)
-                                      + srel->reloc_count++);
+           loc = srel->contents;
+           loc += srel->reloc_count++ * sizeof (Elf64_External_Rela);
+           bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
            BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count
                        <= srel->_cooked_size);
          }
@@ -4676,7 +4677,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
               (*_bfd_error_handler)
                 (_("%s: pc-relative relocation against dynamic symbol %s"),
                  bfd_archive_filename (input_bfd), h->root.root.root.string);
-              ret_val = false;
+              ret_val = FALSE;
             }
 
          /* ??? .eh_frame references to discarded sections will be smashed
@@ -4708,6 +4709,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
              if (info->shared && !dynamic_symbol_p)
                {
                  Elf_Internal_Rela outrel;
+                 bfd_byte *loc;
 
                  BFD_ASSERT(srelgot != NULL);
 
@@ -4718,10 +4720,9 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                  outrel.r_info = ELF64_R_INFO (0, R_ALPHA_DTPMOD64);
                  outrel.r_addend = 0;
 
-                 bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                            ((Elf64_External_Rela *)
-                                             srelgot->contents)
-                                            + srelgot->reloc_count++);
+                 loc = srelgot->contents;
+                 loc += srelgot->reloc_count++ * sizeof (Elf64_External_Rela);
+                 bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
                  BFD_ASSERT (sizeof (Elf64_External_Rela)
                              * srelgot->reloc_count
                              <= srelgot->_cooked_size);
@@ -4752,7 +4753,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
               (*_bfd_error_handler)
                 (_("%s: dtp-relative relocation against dynamic symbol %s"),
                  bfd_archive_filename (input_bfd), h->root.root.root.string);
-              ret_val = false;
+              ret_val = FALSE;
             }
          BFD_ASSERT(tls_segment != NULL);
          value -= dtp_base;
@@ -4768,14 +4769,14 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
              (*_bfd_error_handler)
                (_("%s: TLS local exec code cannot be linked into shared objects"),
                bfd_archive_filename (input_bfd));
-              ret_val = false;
+              ret_val = FALSE;
            }
          else if (dynamic_symbol_p)
             {
               (*_bfd_error_handler)
                 (_("%s: tp-relative relocation against dynamic symbol %s"),
                  bfd_archive_filename (input_bfd), h->root.root.root.string);
-              ret_val = false;
+              ret_val = FALSE;
             }
          BFD_ASSERT(tls_segment != NULL);
          value -= tp_base;
@@ -4843,14 +4844,14 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
                name = (bfd_elf_string_from_elf_section
                        (input_bfd, symtab_hdr->sh_link, sym->st_name));
                if (name == NULL)
-                 return false;
+                 return FALSE;
                if (*name == '\0')
                  name = bfd_section_name (input_bfd, sec);
              }
            if (! ((*info->callbacks->reloc_overflow)
                   (info, name, howto->name, (bfd_vma) 0,
                    input_bfd, input_section, rel->r_offset)))
-             ret_val = false;
+             ret_val = FALSE;
          }
          break;
 
@@ -4866,7 +4867,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -4880,6 +4881,7 @@ elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym)
       /* Fill in the .plt entry for this symbol.  */
       asection *splt, *sgot, *srel;
       Elf_Internal_Rela outrel;
+      bfd_byte *loc;
       bfd_vma got_addr, plt_addr;
       bfd_vma plt_index;
       struct alpha_elf_got_entry *gotent;
@@ -4925,9 +4927,8 @@ elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym)
       outrel.r_info = ELF64_R_INFO(h->dynindx, R_ALPHA_JMP_SLOT);
       outrel.r_addend = 0;
 
-      bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                ((Elf64_External_Rela *)srel->contents
-                                 + plt_index));
+      loc = srel->contents + plt_index * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
 
       if (!(h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))
        {
@@ -4963,10 +4964,9 @@ elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym)
                  outrel.r_info = ELF64_R_INFO(0, R_ALPHA_RELATIVE);
                  outrel.r_addend = plt_addr;
 
-                 bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                            ((Elf64_External_Rela *)
-                                             srel->contents)
-                                            + srel->reloc_count++);
+                 loc = srel->contents;
+                 loc += srel->reloc_count++ * sizeof (Elf64_External_Rela);
+                 bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
                  BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count
                              <= srel->_cooked_size);
                }
@@ -4981,6 +4981,7 @@ elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym)
       /* Fill in the dynamic relocations for this symbol's .got entries.  */
       asection *srel;
       Elf_Internal_Rela outrel;
+      bfd_byte *loc;
       struct alpha_elf_got_entry *gotent;
 
       srel = bfd_get_section_by_name (dynobj, ".rela.got");
@@ -5024,18 +5025,18 @@ elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym)
          outrel.r_info = ELF64_R_INFO (h->dynindx, r_type);
          outrel.r_addend = gotent->addend;
 
-         bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                    ((Elf64_External_Rela *)srel->contents
-                                     + srel->reloc_count++));
+         loc = srel->contents;
+         loc += srel->reloc_count++ * sizeof (Elf64_External_Rela);
+         bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
 
          if (gotent->reloc_type == R_ALPHA_TLSGD)
            {
              outrel.r_offset += 8;
              outrel.r_info = ELF64_R_INFO (h->dynindx, R_ALPHA_DTPREL64);
 
-             bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                        ((Elf64_External_Rela *)srel->contents
-                                         + srel->reloc_count++));
+             loc = srel->contents;
+             loc += srel->reloc_count++ * sizeof (Elf64_External_Rela);
+             bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
            }
 
          BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count
@@ -5049,12 +5050,12 @@ elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -5141,14 +5142,14 @@ elf64_alpha_finish_dynamic_sections (output_bfd, info)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We need to use a special link routine to handle the .mdebug section.
    We need to merge all instances of these sections together, not write
    them all out sequentially.  */
 
-static boolean
+static bfd_boolean
 elf64_alpha_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -5205,7 +5206,7 @@ elf64_alpha_final_link (abfd, info)
 
          mdebug_handle = bfd_ecoff_debug_init (abfd, &debug, swap, info);
          if (mdebug_handle == (PTR) NULL)
-           return false;
+           return FALSE;
 
          if (1)
            {
@@ -5244,7 +5245,7 @@ elf64_alpha_final_link (abfd, info)
 
                  if (! bfd_ecoff_debug_one_external (abfd, &debug, swap,
                                                      name[i], &esym))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -5289,12 +5290,12 @@ elf64_alpha_final_link (abfd, info)
                 ecoff_debug_info structure, so we do that now.  */
              if (!elf64_alpha_read_ecoff_info (input_bfd, input_section,
                                                &input_debug))
-               return false;
+               return FALSE;
 
              if (! (bfd_ecoff_debug_accumulate
                     (mdebug_handle, abfd, &debug, swap, input_bfd,
                      &input_debug, input_swap, info)))
-               return false;
+               return FALSE;
 
              /* Loop through the external symbols.  For each one with
                 interesting information, try to find the symbol in
@@ -5320,7 +5321,7 @@ elf64_alpha_final_link (abfd, info)
 
                  name = input_debug.ssext + ext.asym.iss;
                  h = alpha_elf_link_hash_lookup (alpha_elf_hash_table (info),
-                                                 name, false, false, true);
+                                                 name, FALSE, FALSE, TRUE);
                  if (h == NULL || h->esym.ifd != -2)
                    continue;
 
@@ -5357,12 +5358,12 @@ elf64_alpha_final_link (abfd, info)
          einfo.info = info;
          einfo.debug = &debug;
          einfo.swap = swap;
-         einfo.failed = false;
+         einfo.failed = FALSE;
          elf_link_hash_traverse (elf_hash_table (info),
                                  elf64_alpha_output_extsym,
                                  (PTR) &einfo);
          if (einfo.failed)
-           return false;
+           return FALSE;
 
          /* Set the size of the .mdebug section.  */
          o->_raw_size = bfd_ecoff_debug_size (abfd, &debug, swap);
@@ -5377,7 +5378,7 @@ elf64_alpha_final_link (abfd, info)
 
   /* Invoke the regular ELF backend linker to do all the work.  */
   if (! bfd_elf64_bfd_final_link (abfd, info))
-    return false;
+    return FALSE;
 
   /* Now write out the computed sections.  */
 
@@ -5399,7 +5400,7 @@ elf64_alpha_final_link (abfd, info)
                                        sgot->contents,
                                        (file_ptr) sgot->output_offset,
                                        sgot->_raw_size))
-         return false;
+         return FALSE;
       }
   }
 
@@ -5409,12 +5410,12 @@ elf64_alpha_final_link (abfd, info)
       if (! bfd_ecoff_write_accumulated_debug (mdebug_handle, abfd, &debug,
                                               swap, info,
                                               mdebug_sec->filepos))
-       return false;
+       return FALSE;
 
       bfd_ecoff_debug_free (mdebug_handle, abfd, &debug, swap, info);
     }
 
-  return true;
+  return TRUE;
 }
 
 static enum elf_reloc_type_class
@@ -5504,10 +5505,10 @@ static const struct elf_size_info alpha_elf_size_info =
   bfd_elf64_slurp_symbol_table,
   bfd_elf64_swap_dyn_in,
   bfd_elf64_swap_dyn_out,
-  NULL,
-  NULL,
-  NULL,
-  NULL
+  bfd_elf64_swap_reloc_in,
+  bfd_elf64_swap_reloc_out,
+  bfd_elf64_swap_reloca_in,
+  bfd_elf64_swap_reloca_out
 };
 
 #define TARGET_LITTLE_SYM      bfd_elf64_alpha_vec
index a58f6ac60c741b291d52efccda1197bd39f01381..590456ccbf65f3ebbf9f85f45cdd062710f5b2bd 100644 (file)
@@ -1,5 +1,5 @@
 /* Generic support for 64-bit ELF
-   Copyright 1993, 1995, 1998, 1999, 2001 Free Software Foundation, Inc.
+   Copyright 1993, 1995, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -30,28 +30,28 @@ static reloc_howto_type dummy =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "UNKNOWN",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 static void elf_generic_info_to_howto
-  PARAMS ((bfd *, arelent *, Elf64_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void elf_generic_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf64_Internal_Rel *));
-static boolean elf64_generic_link_add_symbols
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean elf64_generic_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
 
 static void
 elf_generic_info_to_howto (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     Elf64_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED;
 {
   bfd_reloc->howto = &dummy;
 }
@@ -60,12 +60,12 @@ static void
 elf_generic_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     Elf64_Internal_Rel *elf_reloc ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED;
 {
   bfd_reloc->howto = &dummy;
 }
 
-static boolean
+static bfd_boolean
 elf64_generic_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -84,7 +84,7 @@ elf64_generic_link_add_symbols (abfd, info)
                               ehdrp->e_machine);
 
        bfd_set_error (bfd_error_wrong_format);
-       return false;
+       return FALSE;
       }
 
   return bfd_elf64_bfd_link_add_symbols (abfd, info);
index 3c8e00f2b4aee30415614dfad78fda632779c5b2..98f46dc8fc0818b708a2d01aea89969dbe894357 100644 (file)
@@ -156,7 +156,7 @@ struct elf64_hppa_link_hash_table
 typedef struct bfd_hash_entry *(*new_hash_entry_func)
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 
-static boolean elf64_hppa_dyn_hash_table_init
+static bfd_boolean elf64_hppa_dyn_hash_table_init
   PARAMS ((struct elf64_hppa_dyn_hash_table *ht, bfd *abfd,
           new_hash_entry_func new));
 static struct bfd_hash_entry *elf64_hppa_new_dyn_hash_entry
@@ -166,10 +166,10 @@ static struct bfd_link_hash_table *elf64_hppa_hash_table_create
   PARAMS ((bfd *abfd));
 static struct elf64_hppa_dyn_hash_entry *elf64_hppa_dyn_hash_lookup
   PARAMS ((struct elf64_hppa_dyn_hash_table *table, const char *string,
-          boolean create, boolean copy));
+          bfd_boolean create, bfd_boolean copy));
 static void elf64_hppa_dyn_hash_traverse
   PARAMS ((struct elf64_hppa_dyn_hash_table *table,
-          boolean (*func) (struct elf64_hppa_dyn_hash_entry *, PTR),
+          bfd_boolean (*func) (struct elf64_hppa_dyn_hash_entry *, PTR),
           PTR info));
 
 static const char *get_dyn_name
@@ -180,102 +180,104 @@ static const char *get_dyn_name
    hash tables and shared functions.  */
 #include "elf-hppa.h"
 
-static boolean elf64_hppa_object_p
+static bfd_boolean elf64_hppa_object_p
   PARAMS ((bfd *));
 
-static boolean elf64_hppa_section_from_shdr
-  PARAMS ((bfd *, Elf64_Internal_Shdr *, const char *));
+static bfd_boolean elf64_hppa_section_from_shdr
+  PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
 
 static void elf64_hppa_post_process_headers
   PARAMS ((bfd *, struct bfd_link_info *));
 
-static boolean elf64_hppa_create_dynamic_sections
+static bfd_boolean elf64_hppa_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
-static boolean elf64_hppa_adjust_dynamic_symbol
+static bfd_boolean elf64_hppa_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
 
-static boolean elf64_hppa_mark_milli_and_exported_functions
+static bfd_boolean elf64_hppa_mark_milli_and_exported_functions
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean elf64_hppa_size_dynamic_sections
+static bfd_boolean elf64_hppa_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
-static boolean elf64_hppa_link_output_symbol_hook
-PARAMS ((bfd *abfd, struct bfd_link_info *, const char *,
-        Elf_Internal_Sym *, asection *input_sec));
+static bfd_boolean elf64_hppa_link_output_symbol_hook
+  PARAMS ((bfd *abfd, struct bfd_link_info *, const char *,
+          Elf_Internal_Sym *, asection *input_sec));
 
-static boolean elf64_hppa_finish_dynamic_symbol
+static bfd_boolean elf64_hppa_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
 
-static int elf64_hppa_additional_program_headers PARAMS ((bfd *));
+static int elf64_hppa_additional_program_headers
+  PARAMS ((bfd *));
 
-static boolean elf64_hppa_modify_segment_map PARAMS ((bfd *));
+static bfd_boolean elf64_hppa_modify_segment_map
+  PARAMS ((bfd *));
 
 static enum elf_reloc_type_class elf64_hppa_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
 
-static boolean elf64_hppa_finish_dynamic_sections
+static bfd_boolean elf64_hppa_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
-static boolean elf64_hppa_check_relocs
+static bfd_boolean elf64_hppa_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *,
           asection *, const Elf_Internal_Rela *));
 
-static boolean elf64_hppa_dynamic_symbol_p
+static bfd_boolean elf64_hppa_dynamic_symbol_p
   PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *));
 
-static boolean elf64_hppa_mark_exported_functions
+static bfd_boolean elf64_hppa_mark_exported_functions
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean elf64_hppa_finalize_opd
+static bfd_boolean elf64_hppa_finalize_opd
   PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
 
-static boolean elf64_hppa_finalize_dlt
+static bfd_boolean elf64_hppa_finalize_dlt
   PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
 
-static boolean allocate_global_data_dlt
+static bfd_boolean allocate_global_data_dlt
   PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
 
-static boolean allocate_global_data_plt
+static bfd_boolean allocate_global_data_plt
   PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
 
-static boolean allocate_global_data_stub
+static bfd_boolean allocate_global_data_stub
   PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
 
-static boolean allocate_global_data_opd
+static bfd_boolean allocate_global_data_opd
   PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
 
-static boolean get_reloc_section
+static bfd_boolean get_reloc_section
   PARAMS ((bfd *, struct elf64_hppa_link_hash_table *, asection *));
 
-static boolean count_dyn_reloc
+static bfd_boolean count_dyn_reloc
   PARAMS ((bfd *, struct elf64_hppa_dyn_hash_entry *,
           int, asection *, int, bfd_vma, bfd_vma));
 
-static boolean allocate_dynrel_entries
+static bfd_boolean allocate_dynrel_entries
   PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
 
-static boolean elf64_hppa_finalize_dynreloc
+static bfd_boolean elf64_hppa_finalize_dynreloc
   PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
 
-static boolean get_opd
+static bfd_boolean get_opd
   PARAMS ((bfd *, struct bfd_link_info *, struct elf64_hppa_link_hash_table *));
 
-static boolean get_plt
+static bfd_boolean get_plt
   PARAMS ((bfd *, struct bfd_link_info *, struct elf64_hppa_link_hash_table *));
 
-static boolean get_dlt
+static bfd_boolean get_dlt
   PARAMS ((bfd *, struct bfd_link_info *, struct elf64_hppa_link_hash_table *));
 
-static boolean get_stub
+static bfd_boolean get_stub
   PARAMS ((bfd *, struct bfd_link_info *, struct elf64_hppa_link_hash_table *));
 
 static int elf64_hppa_elf_get_symbol_type
   PARAMS ((Elf_Internal_Sym *, int));
 
-static boolean
+static bfd_boolean
 elf64_hppa_dyn_hash_table_init (ht, abfd, new)
      struct elf64_hppa_dyn_hash_table *ht;
      bfd *abfd ATTRIBUTE_UNUSED;
@@ -345,7 +347,7 @@ static struct elf64_hppa_dyn_hash_entry *
 elf64_hppa_dyn_hash_lookup(table, string, create, copy)
      struct elf64_hppa_dyn_hash_table *table;
      const char *string;
-     boolean create, copy;
+     bfd_boolean create, copy;
 {
   return ((struct elf64_hppa_dyn_hash_entry *)
          bfd_hash_lookup (&table->root, string, create, copy));
@@ -356,19 +358,19 @@ elf64_hppa_dyn_hash_lookup(table, string, create, copy)
 static void
 elf64_hppa_dyn_hash_traverse (table, func, info)
      struct elf64_hppa_dyn_hash_table *table;
-     boolean (*func) PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
+     bfd_boolean (*func) PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR));
      PTR info;
 {
   (bfd_hash_traverse
    (&table->root,
-    (boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) func,
+    (bfd_boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) func,
     info));
 }
 \f
 /* Return nonzero if ABFD represents a PA2.0 ELF64 file.
 
    Additionally we set the default architecture and machine.  */
-static boolean
+static bfd_boolean
 elf64_hppa_object_p (abfd)
      bfd *abfd;
 {
@@ -379,12 +381,12 @@ elf64_hppa_object_p (abfd)
   if (strcmp (bfd_get_target (abfd), "elf64-hppa-linux") == 0)
     {
       if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX)
-       return false;
+       return FALSE;
     }
   else
     {
       if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_HPUX)
-       return false;
+       return FALSE;
     }
 
   flags = i_ehdrp->e_flags;
@@ -400,15 +402,15 @@ elf64_hppa_object_p (abfd)
       return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 25);
     }
   /* Don't be fussy.  */
-  return true;
+  return TRUE;
 }
 
 /* Given section type (hdr->sh_type), return a boolean indicating
    whether or not the section is an elf64-hppa specific section.  */
-static boolean
+static bfd_boolean
 elf64_hppa_section_from_shdr (abfd, hdr, name)
      bfd *abfd;
-     Elf64_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      const char *name;
 {
   asection *newsect;
@@ -417,23 +419,23 @@ elf64_hppa_section_from_shdr (abfd, hdr, name)
     {
     case SHT_PARISC_EXT:
       if (strcmp (name, ".PARISC.archext") != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_PARISC_UNWIND:
       if (strcmp (name, ".PARISC.unwind") != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_PARISC_DOC:
     case SHT_PARISC_ANNOT:
     default:
-      return false;
+      return FALSE;
     }
 
   if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-    return false;
+    return FALSE;
   newsect = hdr->bfd_section;
 
-  return true;
+  return TRUE;
 }
 
 /* Construct a string for use in the elf64_hppa_dyn_hash_table.  The
@@ -497,7 +499,7 @@ get_dyn_name (sec, h, rel, pbuf, plen)
 /* SEC is a section containing relocs for an input BFD when linking; return
    a suitable section for holding relocs in the output BFD for a link.  */
 
-static boolean
+static bfd_boolean
 get_reloc_section (abfd, hppa_info, sec)
      bfd *abfd;
      struct elf64_hppa_link_hash_table *hppa_info;
@@ -511,7 +513,7 @@ get_reloc_section (abfd, hppa_info, sec)
               (abfd, elf_elfheader(abfd)->e_shstrndx,
                elf_section_data(sec)->rel_hdr.sh_name));
   if (srel_name == NULL)
-    return false;
+    return FALSE;
 
   BFD_ASSERT ((strncmp (srel_name, ".rela", 5) == 0
               && strcmp (bfd_get_section_name (abfd, sec),
@@ -537,11 +539,11 @@ get_reloc_section (abfd, hppa_info, sec)
                                      | SEC_LINKER_CREATED
                                      | SEC_READONLY))
          || !bfd_set_section_alignment (dynobj, srel, 3))
-       return false;
+       return FALSE;
     }
 
   hppa_info->other_rel_sec = srel;
-  return true;
+  return TRUE;
 }
 
 /* Add a new entry to the list of dynamic relocations against DYN_H.
@@ -550,7 +552,7 @@ get_reloc_section (abfd, hppa_info, sec)
    particular symbol so that we can create FPTR relocations in the
    output file.  */
 
-static boolean
+static bfd_boolean
 count_dyn_reloc (abfd, dyn_h, type, sec, sec_symndx, offset, addend)
      bfd *abfd;
      struct elf64_hppa_dyn_hash_entry *dyn_h;
@@ -565,7 +567,7 @@ count_dyn_reloc (abfd, dyn_h, type, sec, sec_symndx, offset, addend)
   rent = (struct elf64_hppa_dyn_reloc_entry *)
   bfd_alloc (abfd, (bfd_size_type) sizeof (*rent));
   if (!rent)
-    return false;
+    return FALSE;
 
   rent->next = dyn_h->reloc_entries;
   rent->type = type;
@@ -575,13 +577,13 @@ count_dyn_reloc (abfd, dyn_h, type, sec, sec_symndx, offset, addend)
   rent->addend = addend;
   dyn_h->reloc_entries = rent;
 
-  return true;
+  return TRUE;
 }
 
 /* Scan the RELOCS and record the type of dynamic entries that each
    referenced symbol needs.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -598,14 +600,14 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
   int sec_symndx;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   /* If this is the first dynamic object found in the link, create
      the special sections required for dynamic linking.  */
   if (! elf_hash_table (info)->dynamic_sections_created)
     {
       if (! bfd_elf64_link_create_dynamic_sections (abfd, info))
-       return false;
+       return FALSE;
     }
 
   hppa_info = elf64_hppa_hash_table (info);
@@ -639,7 +641,7 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
                                               symtab_hdr->sh_info, 0,
                                               NULL, NULL, NULL);
          if (local_syms == NULL)
-           return false;
+           return FALSE;
        }
 
       /* Record the highest section index referenced by the local symbols.  */
@@ -694,7 +696,7 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
       /* If we did not find a section symbol for this section, then
         something went terribly wrong above.  */
       if (sec_symndx == -1)
-       return false;
+       return FALSE;
 
       sec_symndx = hppa_info->section_syms[sec_symndx];
     }
@@ -721,7 +723,7 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
       struct elf64_hppa_dyn_hash_entry *dyn_h;
       int need_entry;
       const char *addr_name;
-      boolean maybe_dynamic;
+      bfd_boolean maybe_dynamic;
       int dynrel_type = R_PARISC_NONE;
       static reloc_howto_type *howto;
 
@@ -742,12 +744,12 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
         locally or externally defined, as not all of the input files
         have yet been processed.  Do something with what we know, as
         this may help reduce memory usage and processing time later.  */
-      maybe_dynamic = false;
+      maybe_dynamic = FALSE;
       if (h && ((info->shared
                    && (!info->symbolic || info->allow_shlib_undefined) )
                || ! (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
                || h->root.type == bfd_link_hash_defweak))
-       maybe_dynamic = true;
+       maybe_dynamic = TRUE;
 
       howto = elf_hppa_howto_table + ELF64_R_TYPE (rel->r_info);
       need_entry = 0;
@@ -856,7 +858,7 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
 
       /* Collect the canonical entry data for this address.  */
       dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
-                                         addr_name, true, true);
+                                         addr_name, TRUE, TRUE);
       BFD_ASSERT (dyn_h);
 
       /* Stash away enough information to be able to find this symbol
@@ -927,18 +929,18 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
          if (info->shared && dynrel_type == R_PARISC_FPTR64
              && ! (_bfd_elf64_link_record_local_dynamic_symbol
                    (info, abfd, sec_symndx)))
-           return false;
+           return FALSE;
        }
     }
 
   if (buf)
     free (buf);
-  return true;
+  return TRUE;
 
  err_out:
   if (buf)
     free (buf);
-  return false;
+  return FALSE;
 }
 
 struct elf64_hppa_allocate_data
@@ -949,41 +951,41 @@ struct elf64_hppa_allocate_data
 
 /* Should we do dynamic things to this symbol?  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_dynamic_symbol_p (h, info)
      struct elf_link_hash_entry *h;
      struct bfd_link_info *info;
 {
   if (h == NULL)
-    return false;
+    return FALSE;
 
   while (h->root.type == bfd_link_hash_indirect
         || h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
   if (h->dynindx == -1)
-    return false;
+    return FALSE;
 
   if (h->root.type == bfd_link_hash_undefweak
       || h->root.type == bfd_link_hash_defweak)
-    return true;
+    return TRUE;
 
   if (h->root.root.string[0] == '$' && h->root.root.string[1] == '$')
-    return false;
+    return FALSE;
 
   if ((info->shared && (!info->symbolic || info->allow_shlib_undefined))
       || ((h->elf_link_hash_flags
           & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))
          == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)))
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 
 /* Mark all funtions exported by this file so that we can later allocate
    entries in .opd for them.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_mark_exported_functions (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -1006,13 +1008,13 @@ elf64_hppa_mark_exported_functions (h, data)
 
       /* Add this symbol to the PA64 linker hash table.  */
       dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
-                                         h->root.root.string, true, true);
+                                         h->root.root.string, TRUE, TRUE);
       BFD_ASSERT (dyn_h);
       dyn_h->h = h;
 
       if (! hppa_info->opd_sec
          && ! get_opd (hppa_info->root.dynobj, info, hppa_info))
-       return false;
+       return FALSE;
 
       dyn_h->want_opd = 1;
       /* Put a flag here for output_symbol_hook.  */
@@ -1020,12 +1022,12 @@ elf64_hppa_mark_exported_functions (h, data)
       h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Allocate space for a DLT entry.  */
 
-static boolean
+static bfd_boolean
 allocate_global_data_dlt (dyn_h, data)
      struct elf64_hppa_dyn_hash_entry *dyn_h;
      PTR data;
@@ -1049,19 +1051,19 @@ allocate_global_data_dlt (dyn_h, data)
 
              if (! (_bfd_elf64_link_record_local_dynamic_symbol
                     (x->info, owner, dyn_h->sym_indx)))
-               return false;
+               return FALSE;
            }
        }
 
       dyn_h->dlt_offset = x->ofs;
       x->ofs += DLT_ENTRY_SIZE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Allocate space for a DLT.PLT entry.  */
 
-static boolean
+static bfd_boolean
 allocate_global_data_plt (dyn_h, data)
      struct elf64_hppa_dyn_hash_entry *dyn_h;
      PTR data;
@@ -1082,12 +1084,12 @@ allocate_global_data_plt (dyn_h, data)
   else
     dyn_h->want_plt = 0;
 
-  return true;
+  return TRUE;
 }
 
 /* Allocate space for a STUB entry.  */
 
-static boolean
+static bfd_boolean
 allocate_global_data_stub (dyn_h, data)
      struct elf64_hppa_dyn_hash_entry *dyn_h;
      PTR data;
@@ -1105,12 +1107,12 @@ allocate_global_data_stub (dyn_h, data)
     }
   else
     dyn_h->want_stub = 0;
-  return true;
+  return TRUE;
 }
 
 /* Allocate space for a FPTR entry.  */
 
-static boolean
+static bfd_boolean
 allocate_global_data_opd (dyn_h, data)
      struct elf64_hppa_dyn_hash_entry *dyn_h;
      PTR data;
@@ -1153,7 +1155,7 @@ allocate_global_data_opd (dyn_h, data)
 
              if (!_bfd_elf64_link_record_local_dynamic_symbol
                    (x->info, owner, dyn_h->sym_indx))
-               return false;
+               return FALSE;
            }
 
          /* This may not be necessary or desirable anymore now that
@@ -1171,14 +1173,14 @@ allocate_global_data_opd (dyn_h, data)
              strcpy (new_name + 1, h->root.root.string);
 
              nh = elf_link_hash_lookup (elf_hash_table (x->info),
-                                        new_name, true, true, true);
+                                        new_name, TRUE, TRUE, TRUE);
 
              nh->root.type = h->root.type;
              nh->root.u.def.value = h->root.u.def.value;
              nh->root.u.def.section = h->root.u.def.section;
 
              if (! bfd_elf64_link_record_dynamic_symbol (x->info, nh))
-               return false;
+               return FALSE;
 
             }
          dyn_h->opd_offset = x->ofs;
@@ -1189,7 +1191,7 @@ allocate_global_data_opd (dyn_h, data)
       else
        dyn_h->want_opd = 0;
     }
-  return true;
+  return TRUE;
 }
 
 /* HP requires the EI_OSABI field to be filled in.  The assignment to
@@ -1220,7 +1222,7 @@ elf64_hppa_post_process_headers (abfd, link_info)
    refers to the fact that these descriptors are used when taking the address
    of a procedure, thus ensuring a unique address for each procedure.  */
 
-static boolean
+static bfd_boolean
 get_opd (abfd, info, hppa_info)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1247,18 +1249,18 @@ get_opd (abfd, info, hppa_info)
          || !bfd_set_section_alignment (abfd, opd, 3))
        {
          BFD_ASSERT (0);
-         return false;
+         return FALSE;
        }
 
       hppa_info->opd_sec = opd;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Create the PLT section.  */
 
-static boolean
+static bfd_boolean
 get_plt (abfd, info, hppa_info)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1285,18 +1287,18 @@ get_plt (abfd, info, hppa_info)
          || !bfd_set_section_alignment (abfd, plt, 3))
        {
          BFD_ASSERT (0);
-         return false;
+         return FALSE;
        }
 
       hppa_info->plt_sec = plt;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Create the DLT section.  */
 
-static boolean
+static bfd_boolean
 get_dlt (abfd, info, hppa_info)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1323,18 +1325,18 @@ get_dlt (abfd, info, hppa_info)
          || !bfd_set_section_alignment (abfd, dlt, 3))
        {
          BFD_ASSERT (0);
-         return false;
+         return FALSE;
        }
 
       hppa_info->dlt_sec = dlt;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Create the stubs section.  */
 
-static boolean
+static bfd_boolean
 get_stub (abfd, info, hppa_info)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1362,13 +1364,13 @@ get_stub (abfd, info, hppa_info)
          || !bfd_set_section_alignment (abfd, stub, 3))
        {
          BFD_ASSERT (0);
-         return false;
+         return FALSE;
        }
 
       hppa_info->stub_sec = stub;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Create sections necessary for dynamic linking.  This is only a rough
@@ -1409,7 +1411,7 @@ get_stub (abfd, info, hppa_info)
    .rela.opd:
        EPLT relocations for symbols exported from shared libraries.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1417,16 +1419,16 @@ elf64_hppa_create_dynamic_sections (abfd, info)
   asection *s;
 
   if (! get_stub (abfd, info, elf64_hppa_hash_table (info)))
-    return false;
+    return FALSE;
 
   if (! get_dlt (abfd, info, elf64_hppa_hash_table (info)))
-    return false;
+    return FALSE;
 
   if (! get_plt (abfd, info, elf64_hppa_hash_table (info)))
-    return false;
+    return FALSE;
 
   if (! get_opd (abfd, info, elf64_hppa_hash_table (info)))
-    return false;
+    return FALSE;
 
   s = bfd_make_section(abfd, ".rela.dlt");
   if (s == NULL
@@ -1436,7 +1438,7 @@ elf64_hppa_create_dynamic_sections (abfd, info)
                                           | SEC_READONLY
                                           | SEC_LINKER_CREATED))
       || !bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
   elf64_hppa_hash_table (info)->dlt_rel_sec = s;
 
   s = bfd_make_section(abfd, ".rela.plt");
@@ -1447,7 +1449,7 @@ elf64_hppa_create_dynamic_sections (abfd, info)
                                           | SEC_READONLY
                                           | SEC_LINKER_CREATED))
       || !bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
   elf64_hppa_hash_table (info)->plt_rel_sec = s;
 
   s = bfd_make_section(abfd, ".rela.data");
@@ -1458,7 +1460,7 @@ elf64_hppa_create_dynamic_sections (abfd, info)
                                           | SEC_READONLY
                                           | SEC_LINKER_CREATED))
       || !bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
   elf64_hppa_hash_table (info)->other_rel_sec = s;
 
   s = bfd_make_section(abfd, ".rela.opd");
@@ -1469,16 +1471,16 @@ elf64_hppa_create_dynamic_sections (abfd, info)
                                           | SEC_READONLY
                                           | SEC_LINKER_CREATED))
       || !bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
   elf64_hppa_hash_table (info)->opd_rel_sec = s;
 
-  return true;
+  return TRUE;
 }
 
 /* Allocate dynamic relocations for those symbols that turned out
    to be dynamic.  */
 
-static boolean
+static bfd_boolean
 allocate_dynrel_entries (dyn_h, data)
      struct elf64_hppa_dyn_hash_entry *dyn_h;
      PTR data;
@@ -1486,7 +1488,7 @@ allocate_dynrel_entries (dyn_h, data)
   struct elf64_hppa_allocate_data *x = (struct elf64_hppa_allocate_data *)data;
   struct elf64_hppa_link_hash_table *hppa_info;
   struct elf64_hppa_dyn_reloc_entry *rent;
-  boolean dynamic_symbol, shared;
+  bfd_boolean dynamic_symbol, shared;
 
   hppa_info = elf64_hppa_hash_table (x->info);
   dynamic_symbol = elf64_hppa_dynamic_symbol_p (dyn_h->h, x->info);
@@ -1495,7 +1497,7 @@ allocate_dynrel_entries (dyn_h, data)
   /* We may need to allocate relocations for a non-dynamic symbol
      when creating a shared library.  */
   if (!dynamic_symbol && !shared)
-    return true;
+    return TRUE;
 
   /* Take care of the normal data relocations.  */
 
@@ -1515,7 +1517,7 @@ allocate_dynrel_entries (dyn_h, data)
          || (dyn_h->h->dynindx == -1 && dyn_h->h->type != STT_PARISC_MILLI))
        if (!_bfd_elf64_link_record_local_dynamic_symbol
            (x->info, rent->sec->owner, dyn_h->sym_indx))
-         return false;
+         return FALSE;
     }
 
   /* Take care of the GOT and PLT relocations.  */
@@ -1544,13 +1546,13 @@ allocate_dynrel_entries (dyn_h, data)
       hppa_info->plt_rel_sec->_raw_size += t;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      struct elf_link_hash_entry *h;
@@ -1567,7 +1569,7 @@ elf64_hppa_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* If this is a reference to a symbol defined by a dynamic object which
@@ -1577,7 +1579,7 @@ elf64_hppa_adjust_dynamic_symbol (info, h)
      But PA64 code is canonically PIC, so as a rule we can avoid this sort
      of hackery.  */
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called via elf_link_hash_traverse to mark millicode
@@ -1585,7 +1587,7 @@ elf64_hppa_adjust_dynamic_symbol (info, h)
    from the dynamic symbol table.  If the symbol is not a millicode symbol,
    elf64_hppa_mark_exported_functions is called.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_mark_milli_and_exported_functions (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -1604,7 +1606,7 @@ elf64_hppa_mark_milli_and_exported_functions (h, data)
          _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
                                  elf->dynstr_index);
        }
-      return true;
+      return TRUE;
     }
 
   return elf64_hppa_mark_exported_functions (h, data);
@@ -1613,16 +1615,16 @@ elf64_hppa_mark_milli_and_exported_functions (h, data)
 /* Set the final sizes of the dynamic sections and allocate memory for
    the contents of our special sections.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean plt;
-  boolean relocs;
-  boolean reltext;
+  bfd_boolean plt;
+  bfd_boolean relocs;
+  bfd_boolean reltext;
   struct elf64_hppa_allocate_data data;
   struct elf64_hppa_link_hash_table *hppa_info;
 
@@ -1703,13 +1705,13 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
                                  allocate_dynrel_entries, &data);
 
   /* The sizes of all the sections are set.  Allocate memory for them.  */
-  plt = false;
-  relocs = false;
-  reltext = false;
+  plt = FALSE;
+  relocs = FALSE;
+  reltext = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -1725,12 +1727,12 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
          /* Strip this section if we don't need it; see the comment below.  */
          if (s->_raw_size == 0)
            {
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there is a PLT.  */
-             plt = true;
+             plt = TRUE;
            }
        }
       else if (strcmp (name, ".dlt") == 0)
@@ -1738,7 +1740,7 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
          /* Strip this section if we don't need it; see the comment below.  */
          if (s->_raw_size == 0)
            {
-             strip = true;
+             strip = TRUE;
            }
        }
       else if (strcmp (name, ".opd") == 0)
@@ -1746,7 +1748,7 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
          /* Strip this section if we don't need it; see the comment below.  */
          if (s->_raw_size == 0)
            {
-             strip = true;
+             strip = TRUE;
            }
        }
       else if (strncmp (name, ".rela", 5) == 0)
@@ -1769,7 +1771,7 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
@@ -1781,7 +1783,7 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
                {
                  const char *outname;
 
-                 relocs = true;
+                 relocs = TRUE;
 
                  /* If this relocation section applies to a read only
                     section, then we probably need a DT_TEXTREL
@@ -1794,7 +1796,7 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
                  if (target != NULL
                      && (target->flags & SEC_READONLY) != 0
                      && (target->flags & SEC_ALLOC) != 0)
-                   reltext = true;
+                   reltext = TRUE;
                }
 
              /* We use the reloc_count field as a counter if we need
@@ -1826,7 +1828,7 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
        {
          s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
          if (s->contents == NULL && s->_raw_size != 0)
-           return false;
+           return FALSE;
        }
     }
 
@@ -1840,7 +1842,7 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
 
       if (!add_dynamic_entry (DT_HP_DLD_FLAGS, 0)
          || !add_dynamic_entry (DT_PLTGOT, 0))
-       return false;
+       return FALSE;
 
       /* Add some entries to the .dynamic section.  We fill in the
         values later, in elf64_hppa_finish_dynamic_sections, but we
@@ -1852,20 +1854,20 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_DEBUG, 0)
              || !add_dynamic_entry (DT_HP_DLD_HOOK, 0)
              || !add_dynamic_entry (DT_HP_LOAD_MAP, 0))
-           return false;
+           return FALSE;
        }
 
       /* Force DT_FLAGS to always be set.
         Required by HPUX 11.00 patch PHSS_26559.  */
       if (!add_dynamic_entry (DT_FLAGS, (info)->flags))
-       return false;
+       return FALSE;
 
       if (plt)
        {
          if (!add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -1873,19 +1875,19 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_RELA, 0)
              || !add_dynamic_entry (DT_RELASZ, 0)
              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela)))
-           return false;
+           return FALSE;
        }
 
       if (reltext)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
          info->flags |= DF_TEXTREL;
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* Called after we have output the symbol into the dynamic symbol
@@ -1897,7 +1899,7 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
    the symbols have their expected value in the normal symbol
    table.  Ick.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_link_output_symbol_hook (abfd, info, name, sym, input_sec)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -1911,12 +1913,12 @@ elf64_hppa_link_output_symbol_hook (abfd, info, name, sym, input_sec)
   /* We may be called with the file symbol or section symbols.
      They never need munging, so it is safe to ignore them.  */
   if (!name)
-    return true;
+    return TRUE;
 
   /* Get the PA dyn_symbol (if any) associated with NAME.  */
   hppa_info = elf64_hppa_hash_table (info);
   dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
-                                     name, false, false);
+                                     name, FALSE, FALSE);
 
   /* Function symbols for which we created .opd entries *may* have been
      munged by finish_dynamic_symbol and have to be un-munged here.
@@ -1932,13 +1934,13 @@ elf64_hppa_link_output_symbol_hook (abfd, info, name, sym, input_sec)
       sym->st_shndx = dyn_h->st_shndx;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -1951,7 +1953,7 @@ elf64_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
 
   hppa_info = elf64_hppa_hash_table (info);
   dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
-                                     h->root.root.string, false, false);
+                                     h->root.root.string, FALSE, FALSE);
 
   stub = hppa_info->stub_sec;
   splt = hppa_info->plt_sec;
@@ -1991,6 +1993,7 @@ elf64_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
     {
       bfd_vma value;
       Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       BFD_ASSERT (splt != NULL && spltrel != NULL)
 
@@ -2029,11 +2032,9 @@ elf64_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
       rel.r_info = ELF64_R_INFO (h->dynindx, R_PARISC_IPLT);
       rel.r_addend = 0;
 
-      bfd_elf64_swap_reloca_out (splt->output_section->owner, &rel,
-                                (((Elf64_External_Rela *)
-                                  spltrel->contents)
-                                 + spltrel->reloc_count));
-      spltrel->reloc_count++;
+      loc = spltrel->contents;
+      loc += spltrel->reloc_count++ * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (splt->output_section->owner, &rel, loc);
     }
 
   /* Initialize an external call stub entry if requested.  */
@@ -2085,7 +2086,7 @@ elf64_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
          (*_bfd_error_handler) (_("stub entry for %s cannot load .plt, dp offset = %ld"),
                                 dyn_h->root.string,
                                 (long) value);
-         return false;
+         return FALSE;
        }
 
       bfd_put_32 (stub->owner, (bfd_vma) insn,
@@ -2108,13 +2109,13 @@ elf64_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
                  stub->contents + dyn_h->stub_offset + 8);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* The .opd section contains FPTRs for each function this file
    exports.  Initialize the FPTR entries.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_finalize_opd (dyn_h, data)
      struct elf64_hppa_dyn_hash_entry *dyn_h;
      PTR data;
@@ -2156,7 +2157,8 @@ elf64_hppa_finalize_opd (dyn_h, data)
      had their address taken).  */
   if (info->shared && dyn_h && dyn_h->want_opd)
     {
-      Elf64_Internal_Rela rel;
+      Elf_Internal_Rela rel;
+      bfd_byte *loc;
       int dynindx;
 
       /* We may need to do a relocation against a local symbol, in
@@ -2211,7 +2213,7 @@ elf64_hppa_finalize_opd (dyn_h, data)
          strcpy (new_name + 1, h->root.root.string);
 
          nh = elf_link_hash_lookup (elf_hash_table (info),
-                                    new_name, false, false, false);
+                                    new_name, FALSE, FALSE, FALSE);
 
          /* All we really want from the new symbol is its dynamic
             symbol index.  */
@@ -2221,20 +2223,18 @@ elf64_hppa_finalize_opd (dyn_h, data)
       rel.r_addend = 0;
       rel.r_info = ELF64_R_INFO (dynindx, R_PARISC_EPLT);
 
-      bfd_elf64_swap_reloca_out (sopd->output_section->owner, &rel,
-                                (((Elf64_External_Rela *)
-                                  sopdrel->contents)
-                                 + sopdrel->reloc_count));
-      sopdrel->reloc_count++;
+      loc = sopdrel->contents;
+      loc += sopdrel->reloc_count++ * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (sopd->output_section->owner, &rel, loc);
     }
-  return true;
+  return TRUE;
 }
 
 /* The .dlt section contains addresses for items referenced through the
    dlt.  Note that we can have a DLTIND relocation for a local symbol, thus
    we can not depend on finish_dynamic_symbol to initialize the .dlt.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_finalize_dlt (dyn_h, data)
      struct elf64_hppa_dyn_hash_entry *dyn_h;
      PTR data;
@@ -2291,7 +2291,8 @@ elf64_hppa_finalize_dlt (dyn_h, data)
   if (dyn_h->want_dlt
       && (elf64_hppa_dynamic_symbol_p (dyn_h->h, info) || info->shared))
     {
-      Elf64_Internal_Rela rel;
+      Elf_Internal_Rela rel;
+      bfd_byte *loc;
       int dynindx;
 
       /* We may need to do a relocation against a local symbol, in
@@ -2315,19 +2316,17 @@ elf64_hppa_finalize_dlt (dyn_h, data)
          rel.r_info = ELF64_R_INFO (dynindx, R_PARISC_DIR64);
       rel.r_addend = 0;
 
-      bfd_elf64_swap_reloca_out (sdlt->output_section->owner, &rel,
-                                (((Elf64_External_Rela *)
-                                  sdltrel->contents)
-                                 + sdltrel->reloc_count));
-      sdltrel->reloc_count++;
+      loc = sdltrel->contents;
+      loc += sdltrel->reloc_count++ * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (sdlt->output_section->owner, &rel, loc);
     }
-  return true;
+  return TRUE;
 }
 
 /* Finalize the dynamic relocations.  Specifically the FPTR relocations
    for dynamic functions used to initialize static data.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_finalize_dynreloc (dyn_h, data)
      struct elf64_hppa_dyn_hash_entry *dyn_h;
      PTR data;
@@ -2340,7 +2339,7 @@ elf64_hppa_finalize_dynreloc (dyn_h, data)
   dynamic_symbol = elf64_hppa_dynamic_symbol_p (dyn_h->h, info);
 
   if (!dynamic_symbol && !info->shared)
-    return true;
+    return TRUE;
 
   if (dyn_h->reloc_entries)
     {
@@ -2362,7 +2361,8 @@ elf64_hppa_finalize_dynreloc (dyn_h, data)
 
       for (rent = dyn_h->reloc_entries; rent; rent = rent->next)
        {
-         Elf64_Internal_Rela rel;
+         Elf_Internal_Rela rel;
+         bfd_byte *loc;
 
          /* Allocate one iff we are building a shared library, the relocation
             isn't a R_PARISC_FPTR64, or we don't want an opd entry.  */
@@ -2429,16 +2429,15 @@ elf64_hppa_finalize_dynreloc (dyn_h, data)
 
          rel.r_info = ELF64_R_INFO (dynindx, rent->type);
 
+         loc = hppa_info->other_rel_sec->contents;
+         loc += (hppa_info->other_rel_sec->reloc_count++
+                 * sizeof (Elf64_External_Rela));
          bfd_elf64_swap_reloca_out (hppa_info->other_rel_sec->output_section->owner,
-                                    &rel,
-                                    (((Elf64_External_Rela *)
-                                     hppa_info->other_rel_sec->contents)
-                                     + hppa_info->other_rel_sec->reloc_count));
-         hppa_info->other_rel_sec->reloc_count++;
+                                    &rel, loc);
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Used to decide how to sort relocs in an optimal manner for the
@@ -2464,7 +2463,7 @@ elf64_hppa_reloc_type_class (rela)
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2572,7 +2571,7 @@ elf64_hppa_finish_dynamic_sections (output_bfd, info)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the number of additional phdrs we will need.
@@ -2614,7 +2613,7 @@ elf64_hppa_additional_program_headers (abfd)
    to guess whether or not we are building a shared library based on the
    existence of a .interp section.  */
 
-static boolean
+static bfd_boolean
 elf64_hppa_modify_segment_map (abfd)
      bfd *abfd;
 {
@@ -2632,7 +2631,7 @@ elf64_hppa_modify_segment_map (abfd)
          m = ((struct elf_segment_map *)
               bfd_zalloc (abfd, (bfd_size_type) sizeof *m));
          if (m == NULL)
-           return false;
+           return FALSE;
 
          m->p_type = PT_PHDR;
          m->p_flags = PF_R | PF_X;
@@ -2663,7 +2662,7 @@ elf64_hppa_modify_segment_map (abfd)
          }
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Called when writing out an object file to decide the type of a
@@ -2704,10 +2703,10 @@ const struct elf_size_info hppa64_elf_size_info =
   bfd_elf64_slurp_symbol_table,
   bfd_elf64_swap_dyn_in,
   bfd_elf64_swap_dyn_out,
-  NULL,
-  NULL,
-  NULL,
-  NULL
+  bfd_elf64_swap_reloc_in,
+  bfd_elf64_swap_reloc_out,
+  bfd_elf64_swap_reloca_in,
+  bfd_elf64_swap_reloca_out
 };
 
 #define TARGET_BIG_SYM                 bfd_elf64_hppa_vec
@@ -2772,10 +2771,10 @@ const struct elf_size_info hppa64_elf_size_info =
 #define elf_backend_want_plt_sym       0
 #define elf_backend_got_header_size     0
 #define elf_backend_plt_header_size     0
-#define elf_backend_type_change_ok true
-#define elf_backend_get_symbol_type         elf64_hppa_elf_get_symbol_type
-#define elf_backend_reloc_type_class        elf64_hppa_reloc_type_class
-#define elf_backend_rela_normal                     1
+#define elf_backend_type_change_ok     TRUE
+#define elf_backend_get_symbol_type    elf64_hppa_elf_get_symbol_type
+#define elf_backend_reloc_type_class   elf64_hppa_reloc_type_class
+#define elf_backend_rela_normal                1
 
 #include "elf64-target.h"
 
index f06d0658a7e82c792825a33ca5dbd9c64557921f..50fcfbabf19696152657b5262a5e5c8fc040c269 100644 (file)
@@ -63,20 +63,20 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 static void mips_elf64_swap_reloc_in
   PARAMS ((bfd *, const Elf64_Mips_External_Rel *,
-          Elf64_Mips_Internal_Rel *));
+          Elf64_Mips_Internal_Rela *));
 static void mips_elf64_swap_reloca_in
   PARAMS ((bfd *, const Elf64_Mips_External_Rela *,
           Elf64_Mips_Internal_Rela *));
 static void mips_elf64_swap_reloc_out
-  PARAMS ((bfd *, const Elf64_Mips_Internal_Rel *,
+  PARAMS ((bfd *, const Elf64_Mips_Internal_Rela *,
           Elf64_Mips_External_Rel *));
 static void mips_elf64_swap_reloca_out
   PARAMS ((bfd *, const Elf64_Mips_Internal_Rela *,
           Elf64_Mips_External_Rela *));
 static void mips_elf64_be_swap_reloc_in
-  PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rel *));
+  PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
 static void mips_elf64_be_swap_reloc_out
-  PARAMS ((bfd *, const Elf_Internal_Rel *, bfd_byte *));
+  PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
 static void mips_elf64_be_swap_reloca_in
   PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
 static void mips_elf64_be_swap_reloca_out
@@ -84,17 +84,19 @@ static void mips_elf64_be_swap_reloca_out
 static reloc_howto_type *bfd_elf64_bfd_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static reloc_howto_type *mips_elf64_rtype_to_howto
-  PARAMS ((unsigned int, boolean));
+  PARAMS ((unsigned int, bfd_boolean));
 static void mips_elf64_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf64_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void mips_elf64_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf64_Internal_Rela *));
-static long mips_elf64_get_reloc_upper_bound PARAMS ((bfd *, asection *));
-static boolean mips_elf64_slurp_one_reloc_table
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static long mips_elf64_get_reloc_upper_bound
+  PARAMS ((bfd *, asection *));
+static bfd_boolean mips_elf64_slurp_one_reloc_table
   PARAMS ((bfd *, asection *, asymbol **, const Elf_Internal_Shdr *));
-static boolean mips_elf64_slurp_reloc_table
-  PARAMS ((bfd *, asection *, asymbol **, boolean));
-static void mips_elf64_write_relocs PARAMS ((bfd *, asection *, PTR));
+static bfd_boolean mips_elf64_slurp_reloc_table
+  PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
+static void mips_elf64_write_relocs
+  PARAMS ((bfd *, asection *, PTR));
 static void mips_elf64_write_rel
   PARAMS((bfd *, asection *, Elf_Internal_Shdr *, int *, PTR));
 static void mips_elf64_write_rela
@@ -115,11 +117,18 @@ static bfd_reloc_status_type mips16_jump_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type mips16_gprel_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean mips_elf64_assign_gp PARAMS ((bfd *, bfd_vma *));
+static bfd_boolean mips_elf64_assign_gp
+  PARAMS ((bfd *, bfd_vma *));
 static bfd_reloc_status_type mips_elf64_final_gp
-  PARAMS ((bfd *, asymbol *, boolean, char **, bfd_vma *));
-static boolean mips_elf64_object_p PARAMS ((bfd *));
-static irix_compat_t elf64_mips_irix_compat PARAMS ((bfd *));
+  PARAMS ((bfd *, asymbol *, bfd_boolean, char **, bfd_vma *));
+static bfd_boolean mips_elf64_object_p
+  PARAMS ((bfd *));
+static irix_compat_t elf64_mips_irix_compat
+  PARAMS ((bfd *));
+static bfd_boolean elf64_mips_grok_prstatus
+  PARAMS ((bfd *, Elf_Internal_Note *));
+static bfd_boolean elf64_mips_grok_psinfo
+  PARAMS ((bfd *, Elf_Internal_Note *));
 
 extern const bfd_target bfd_elf64_bigmips_vec;
 extern const bfd_target bfd_elf64_littlemips_vec;
@@ -140,67 +149,67 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit relocation.  */
   HOWTO (R_MIPS_16,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_16",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit relocation.  */
   HOWTO (R_MIPS_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_32",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit symbol relative relocation.  */
   HOWTO (R_MIPS_REL32,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_REL32",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 26 bit jump address.  */
   HOWTO (R_MIPS_26,            /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -208,10 +217,10 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
                                   bits must match the PC + 4.  */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_26",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03ffffff,            /* src_mask */
         0x03ffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* R_MIPS_HI16 and R_MIPS_LO16 are unsupported for NewABI REL.
      However, the native IRIX6 tools use them, so we try our best. */
@@ -221,120 +230,120 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf64_hi16_reloc, /* special_function */
         "R_MIPS_HI16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of symbol value.  */
   HOWTO (R_MIPS_LO16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_LO16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GP relative reference.  */
   HOWTO (R_MIPS_GPREL16,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf64_gprel16_reloc, /* special_function */
         "R_MIPS_GPREL16",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to literal section.  */
   HOWTO (R_MIPS_LITERAL,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf64_literal_reloc, /* special_function */
         "R_MIPS_LITERAL",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to global offset table.  */
   HOWTO (R_MIPS_GOT16,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf64_got16_reloc, /* special_function */
         "R_MIPS_GOT16",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit PC relative reference.  */
   HOWTO (R_MIPS_PC16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_PC16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 16 bit call through global offset table.  */
   HOWTO (R_MIPS_CALL16,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL16",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit GP relative reference.  */
   HOWTO (R_MIPS_GPREL32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf64_gprel32_reloc, /* special_function */
         "R_MIPS_GPREL32",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (13),
   EMPTY_HOWTO (14),
@@ -345,135 +354,135 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         5,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SHIFT5",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000007c0,            /* src_mask */
         0x000007c0,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 6 bit shift field.  */
   HOWTO (R_MIPS_SHIFT6,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_elf64_shift6_reloc, /* special_function */
         "R_MIPS_SHIFT6",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000007c4,            /* src_mask */
         0x000007c4,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit relocation.  */
   HOWTO (R_MIPS_64,            /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_64",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement in the global offset table.  */
   HOWTO (R_MIPS_GOT_DISP,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_DISP",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement to page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_PAGE,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_PAGE",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Offset from page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_OFST,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_OFST",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_HI16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_HI16",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_LO16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_LO16",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit substraction.  */
   HOWTO (R_MIPS_SUB,           /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SUB",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Insert the addend as an instruction.  */
   /* FIXME: Not handled correctly.  */
@@ -481,15 +490,15 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_INSERT_A",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Insert the addend as an instruction, and change all relocations
      to refer to the old instruction at the address.  */
@@ -498,15 +507,15 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_INSERT_B",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Delete a 32 bit instruction.  */
   /* FIXME: Not handled correctly.  */
@@ -514,15 +523,15 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_DELETE",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The MIPS ELF64 ABI Draft wants us to support these for REL relocations.
      We don't, because
@@ -538,59 +547,59 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_HI16",    /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_LO16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_LO16",    /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Section displacement, used by an associated event location section.  */
   HOWTO (R_MIPS_SCN_DISP,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SCN_DISP",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_MIPS_REL16,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_REL16",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* These two are obsolete.  */
   EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE),
@@ -602,15 +611,15 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_RELGOT",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Protected jump conversion.  This is an optimization hint.  No
      relocation is required for correctness.  */
@@ -618,15 +627,15 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_JALR",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x00000000,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 /* The relocation table used for SHT_RELA sections.  */
@@ -638,67 +647,67 @@ static reloc_howto_type mips_elf64_howto_table_rela[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit relocation.  */
   HOWTO (R_MIPS_16,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_16",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit relocation.  */
   HOWTO (R_MIPS_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_32",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit symbol relative relocation.  */
   HOWTO (R_MIPS_REL32,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_REL32",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 26 bit jump address.  */
   HOWTO (R_MIPS_26,            /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -706,130 +715,130 @@ static reloc_howto_type mips_elf64_howto_table_rela[] =
                                   bits must match the PC + 4.  */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_26",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x03ffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of symbol value.  */
   HOWTO (R_MIPS_HI16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_HI16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of symbol value.  */
   HOWTO (R_MIPS_LO16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_LO16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GP relative reference.  */
   HOWTO (R_MIPS_GPREL16,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf64_gprel16_reloc, /* special_function */
         "R_MIPS_GPREL16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to literal section.  */
   HOWTO (R_MIPS_LITERAL,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf64_literal_reloc, /* special_function */
         "R_MIPS_LITERAL",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to global offset table.  */
   HOWTO (R_MIPS_GOT16,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf64_got16_reloc, /* special_function */
         "R_MIPS_GOT16",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit PC relative reference.  */
   HOWTO (R_MIPS_PC16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_PC16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 16 bit call through global offset table.  */
   HOWTO (R_MIPS_CALL16,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit GP relative reference.  */
   HOWTO (R_MIPS_GPREL32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf64_gprel32_reloc, /* special_function */
         "R_MIPS_GPREL32",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (13),
   EMPTY_HOWTO (14),
@@ -840,135 +849,135 @@ static reloc_howto_type mips_elf64_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         5,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SHIFT5",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x000007c0,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 6 bit shift field.  */
   HOWTO (R_MIPS_SHIFT6,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_elf64_shift6_reloc, /* special_function */
         "R_MIPS_SHIFT6",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x000007c4,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit relocation.  */
   HOWTO (R_MIPS_64,            /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_64",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement in the global offset table.  */
   HOWTO (R_MIPS_GOT_DISP,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_DISP",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement to page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_PAGE,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_PAGE",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Offset from page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_OFST,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_OFST",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_HI16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_HI16",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_LO16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_LO16",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit substraction.  */
   HOWTO (R_MIPS_SUB,           /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SUB",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Insert the addend as an instruction.  */
   /* FIXME: Not handled correctly.  */
@@ -976,15 +985,15 @@ static reloc_howto_type mips_elf64_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_INSERT_A",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Insert the addend as an instruction, and change all relocations
      to refer to the old instruction at the address.  */
@@ -993,15 +1002,15 @@ static reloc_howto_type mips_elf64_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_INSERT_B",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Delete a 32 bit instruction.  */
   /* FIXME: Not handled correctly.  */
@@ -1009,104 +1018,104 @@ static reloc_howto_type mips_elf64_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_DELETE",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Get the higher value of a 64 bit addend.  */
   HOWTO (R_MIPS_HIGHER,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_HIGHER",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Get the highest value of a 64 bit addend.  */
   HOWTO (R_MIPS_HIGHEST,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_HIGHEST",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_HI16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_HI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_LO16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_LO16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Section displacement, used by an associated event location section.  */
   HOWTO (R_MIPS_SCN_DISP,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_SCN_DISP",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_MIPS_REL16,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_REL16",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* These two are obsolete.  */
   EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE),
@@ -1118,15 +1127,15 @@ static reloc_howto_type mips_elf64_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_RELGOT",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Protected jump conversion.  This is an optimization hint.  No
      relocation is required for correctness.  */
@@ -1134,15 +1143,15 @@ static reloc_howto_type mips_elf64_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MIPS_JALR",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x00000000,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 /* The reloc used for the mips16 jump instruction.  */
@@ -1151,7 +1160,7 @@ static reloc_howto_type elf_mips16_jump_howto =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -1159,10 +1168,10 @@ static reloc_howto_type elf_mips16_jump_howto =
                                   bits must match the PC.  */
         mips16_jump_reloc,     /* special_function */
         "R_MIPS16_26",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3ffffff,             /* src_mask */
         0x3ffffff,             /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* The reloc used for the mips16 gprel instruction.  */
 static reloc_howto_type elf_mips16_gprel_howto =
@@ -1170,15 +1179,15 @@ static reloc_howto_type elf_mips16_gprel_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips16_gprel_reloc,    /* special_function */
         "R_MIPS16_GPREL",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x07ff001f,            /* src_mask */
         0x07ff001f,            /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* GNU extension to record C++ vtable hierarchy */
 static reloc_howto_type elf_mips_gnu_vtinherit_howto =
@@ -1186,15 +1195,15 @@ static reloc_howto_type elf_mips_gnu_vtinherit_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_MIPS_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* GNU extension to record C++ vtable member usage */
 static reloc_howto_type elf_mips_gnu_vtentry_howto =
@@ -1202,15 +1211,15 @@ static reloc_howto_type elf_mips_gnu_vtentry_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn, /* special_function */
         "R_MIPS_GNU_VTENTRY",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 \f
 /* Swap in a MIPS 64-bit Rel reloc.  */
 
@@ -1218,7 +1227,7 @@ static void
 mips_elf64_swap_reloc_in (abfd, src, dst)
      bfd *abfd;
      const Elf64_Mips_External_Rel *src;
-     Elf64_Mips_Internal_Rel *dst;
+     Elf64_Mips_Internal_Rela *dst;
 {
   dst->r_offset = H_GET_64 (abfd, src->r_offset);
   dst->r_sym = H_GET_32 (abfd, src->r_sym);
@@ -1226,6 +1235,7 @@ mips_elf64_swap_reloc_in (abfd, src, dst)
   dst->r_type3 = H_GET_8 (abfd, src->r_type3);
   dst->r_type2 = H_GET_8 (abfd, src->r_type2);
   dst->r_type = H_GET_8 (abfd, src->r_type);
+  dst->r_addend = 0;
 }
 
 /* Swap in a MIPS 64-bit Rela reloc.  */
@@ -1250,7 +1260,7 @@ mips_elf64_swap_reloca_in (abfd, src, dst)
 static void
 mips_elf64_swap_reloc_out (abfd, src, dst)
      bfd *abfd;
-     const Elf64_Mips_Internal_Rel *src;
+     const Elf64_Mips_Internal_Rela *src;
      Elf64_Mips_External_Rel *dst;
 {
   H_PUT_64 (abfd, src->r_offset, dst->r_offset);
@@ -1284,9 +1294,9 @@ static void
 mips_elf64_be_swap_reloc_in (abfd, src, dst)
      bfd *abfd;
      const bfd_byte *src;
-     Elf_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
-  Elf64_Mips_Internal_Rel mirel;
+  Elf64_Mips_Internal_Rela mirel;
 
   mips_elf64_swap_reloc_in (abfd,
                            (const Elf64_Mips_External_Rel *) src,
@@ -1294,10 +1304,13 @@ mips_elf64_be_swap_reloc_in (abfd, src, dst)
 
   dst[0].r_offset = mirel.r_offset;
   dst[0].r_info = ELF64_R_INFO (mirel.r_sym, mirel.r_type);
+  dst[0].r_addend = 0;
   dst[1].r_offset = mirel.r_offset;
   dst[1].r_info = ELF64_R_INFO (mirel.r_ssym, mirel.r_type2);
+  dst[1].r_addend = 0;
   dst[2].r_offset = mirel.r_offset;
   dst[2].r_info = ELF64_R_INFO (STN_UNDEF, mirel.r_type3);
+  dst[2].r_addend = 0;
 }
 
 /* Swap in a MIPS 64-bit Rela reloc.  */
@@ -1330,14 +1343,14 @@ mips_elf64_be_swap_reloca_in (abfd, src, dst)
 static void
 mips_elf64_be_swap_reloc_out (abfd, src, dst)
      bfd *abfd;
-     const Elf_Internal_Rel *src;
+     const Elf_Internal_Rela *src;
      bfd_byte *dst;
 {
-  Elf64_Mips_Internal_Rel mirel;
+  Elf64_Mips_Internal_Rela mirel;
 
   mirel.r_offset = src[0].r_offset;
   BFD_ASSERT(src[0].r_offset == src[1].r_offset);
-#if 0  
+#if 0
   BFD_ASSERT(src[0].r_offset == src[2].r_offset);
 #endif
 
@@ -1447,10 +1460,10 @@ mips_elf64_got16_reloc (abfd, reloc_entry, symbol, data, input_section,
                                input_section, output_bfd, error_message);
 }
 
-/* Set the GP value for OUTPUT_BFD.  Returns false if this is a
+/* Set the GP value for OUTPUT_BFD.  Returns FALSE if this is a
    dangerous relocation.  */
 
-static boolean
+static bfd_boolean
 mips_elf64_assign_gp (output_bfd, pgp)
      bfd *output_bfd;
      bfd_vma *pgp;
@@ -1462,7 +1475,7 @@ mips_elf64_assign_gp (output_bfd, pgp)
   /* If we've already figured out what GP will be, just return it.  */
   *pgp = _bfd_get_gp_value (output_bfd);
   if (*pgp)
-    return true;
+    return TRUE;
 
   count = bfd_get_symcount (output_bfd);
   sym = bfd_get_outsymbols (output_bfd);
@@ -1492,10 +1505,10 @@ mips_elf64_assign_gp (output_bfd, pgp)
       /* Only get the error once.  */
       *pgp = 4;
       _bfd_set_gp_value (output_bfd, *pgp);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We have to figure out the gp value, so that we can adjust the
@@ -1508,7 +1521,7 @@ static bfd_reloc_status_type
 mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
      bfd *output_bfd;
      asymbol *symbol;
-     boolean relocateable;
+     bfd_boolean relocateable;
      char **error_message;
      bfd_vma *pgp;
 {
@@ -1555,7 +1568,7 @@ mips_elf64_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1573,10 +1586,10 @@ mips_elf64_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
     }
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = true;
+    relocateable = TRUE;
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -1603,7 +1616,7 @@ mips_elf64_literal_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1620,10 +1633,10 @@ mips_elf64_literal_reloc (abfd, reloc_entry, symbol, data, input_section,
 
   /* FIXME: The entries in the .lit8 and .lit4 sections should be merged.  */
   if (output_bfd != (bfd *) NULL)
-    relocateable = true;
+    relocateable = TRUE;
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -1651,7 +1664,7 @@ mips_elf64_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
   bfd_vma relocation;
@@ -1672,12 +1685,12 @@ mips_elf64_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
 
   if (output_bfd != (bfd *) NULL)
     {
-      relocateable = true;
+      relocateable = TRUE;
       gp = _bfd_get_gp_value (output_bfd);
     }
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
 
       ret = mips_elf64_final_gp (output_bfd, symbol, relocateable,
@@ -1778,13 +1791,13 @@ mips16_jump_reloc (abfd, reloc_entry, symbol, data, input_section,
 
   /* FIXME.  */
   {
-    static boolean warned;
+    static bfd_boolean warned;
 
     if (! warned)
       (*_bfd_error_handler)
        (_("Linking mips16 objects into %s format is not supported"),
         bfd_get_target (input_section->output_section->owner));
-    warned = true;
+    warned = TRUE;
   }
 
   return bfd_reloc_undefined;
@@ -1803,7 +1816,7 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
   unsigned short extend, insn;
@@ -1822,10 +1835,10 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
     }
 
   if (output_bfd != NULL)
-    relocateable = true;
+    relocateable = TRUE;
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -1947,12 +1960,12 @@ bfd_elf64_bfd_reloc_type_lookup (abfd, code)
     }
 }
 
-/* Given a MIPS Elf64_Internal_Rel, fill in an arelent structure.  */
+/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure.  */
 
 static reloc_howto_type *
 mips_elf64_rtype_to_howto (r_type, rela_p)
      unsigned int r_type;
-     boolean rela_p;
+     bfd_boolean rela_p;
 {
   switch (r_type)
     {
@@ -1980,7 +1993,7 @@ static void
 mips_elf64_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr ATTRIBUTE_UNUSED;
-     Elf64_Internal_Rel *dst ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *dst ATTRIBUTE_UNUSED;
 {
   BFD_ASSERT (0);
 }
@@ -1989,7 +2002,7 @@ static void
 mips_elf64_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr ATTRIBUTE_UNUSED;
-     Elf64_Internal_Rela *dst ATTRIBUTE_UNUSED;
+     Elf_Internal_Rela *dst ATTRIBUTE_UNUSED;
 {
   BFD_ASSERT (0);
 }
@@ -2007,7 +2020,7 @@ mips_elf64_get_reloc_upper_bound (abfd, sec)
 
 /* Read the relocations from one reloc section.  */
 
-static boolean
+static bfd_boolean
 mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, rel_hdr)
      bfd *abfd;
      asection *asect;
@@ -2025,7 +2038,7 @@ mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, rel_hdr)
 
   allocated = (PTR) bfd_malloc (rel_hdr->sh_size);
   if (allocated == NULL)
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, rel_hdr->sh_offset, SEEK_SET) != 0
       || (bfd_bread (allocated, rel_hdr->sh_size, abfd) != rel_hdr->sh_size))
@@ -2050,7 +2063,7 @@ mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, rel_hdr)
   for (i = 0; i < count; i++, native_relocs += entsize)
     {
       Elf64_Mips_Internal_Rela rela;
-      boolean used_sym, used_ssym;
+      bfd_boolean used_sym, used_ssym;
       int ir;
 
       if (entsize == sizeof (Elf64_Mips_External_Rela))
@@ -2058,25 +2071,14 @@ mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, rel_hdr)
                                   (Elf64_Mips_External_Rela *) native_relocs,
                                   &rela);
       else
-       {
-         Elf64_Mips_Internal_Rel rel;
-
-         mips_elf64_swap_reloc_in (abfd,
-                                   (Elf64_Mips_External_Rel *) native_relocs,
-                                   &rel);
-         rela.r_offset = rel.r_offset;
-         rela.r_sym = rel.r_sym;
-         rela.r_ssym = rel.r_ssym;
-         rela.r_type3 = rel.r_type3;
-         rela.r_type2 = rel.r_type2;
-         rela.r_type = rel.r_type;
-         rela.r_addend = 0;
-       }
+       mips_elf64_swap_reloc_in (abfd,
+                                 (Elf64_Mips_External_Rel *) native_relocs,
+                                 &rela);
 
       /* Each entry represents exactly three actual relocations.  */
 
-      used_sym = false;
-      used_ssym = false;
+      used_sym = FALSE;
+      used_ssym = FALSE;
       for (ir = 0; ir < 3; ir++)
        {
          enum elf_mips_reloc_type type;
@@ -2124,7 +2126,7 @@ mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, rel_hdr)
                        relent->sym_ptr_ptr = s->section->symbol_ptr_ptr;
                    }
 
-                 used_sym = true;
+                 used_sym = TRUE;
                }
              else if (! used_ssym)
                {
@@ -2148,7 +2150,7 @@ mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, rel_hdr)
                      break;
                    }
 
-                 used_ssym = true;
+                 used_ssym = TRUE;
                }
              else
                relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
@@ -2178,23 +2180,23 @@ mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, rel_hdr)
   if (allocated != NULL)
     free (allocated);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (allocated != NULL)
     free (allocated);
-  return false;
+  return FALSE;
 }
 
 /* Read the relocations.  On Irix 6, there can be two reloc sections
    associated with a single data section.  */
 
-static boolean
+static bfd_boolean
 mips_elf64_slurp_reloc_table (abfd, asect, symbols, dynamic)
      bfd *abfd;
      asection *asect;
      asymbol **symbols;
-     boolean dynamic;
+     bfd_boolean dynamic;
 {
   bfd_size_type amt;
   struct bfd_elf_section_data * const d = elf_section_data (asect);
@@ -2202,34 +2204,34 @@ mips_elf64_slurp_reloc_table (abfd, asect, symbols, dynamic)
   if (dynamic)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   if (asect->relocation != NULL
       || (asect->flags & SEC_RELOC) == 0
       || asect->reloc_count == 0)
-    return true;
+    return TRUE;
 
   /* Allocate space for 3 arelent structures for each Rel structure.  */
   amt = asect->reloc_count;
   amt *= 3 * sizeof (arelent);
   asect->relocation = (arelent *) bfd_alloc (abfd, amt);
   if (asect->relocation == NULL)
-    return false;
+    return FALSE;
 
   /* The slurp_one_reloc_table routine increments reloc_count.  */
   asect->reloc_count = 0;
 
   if (! mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, &d->rel_hdr))
-    return false;
+    return FALSE;
   if (d->rel_hdr2 != NULL)
     {
       if (! mips_elf64_slurp_one_reloc_table (abfd, asect, symbols,
                                              d->rel_hdr2))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write out the relocations.  */
@@ -2240,7 +2242,7 @@ mips_elf64_write_relocs (abfd, sec, data)
      asection *sec;
      PTR data;
 {
-  boolean *failedp = (boolean *) data;
+  bfd_boolean *failedp = (bfd_boolean *) data;
   int count;
   Elf_Internal_Shdr *rel_hdr;
   unsigned int idx;
@@ -2308,7 +2310,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr, count, data)
      int *count;
      PTR data;
 {
-  boolean *failedp = (boolean *) data;
+  bfd_boolean *failedp = (bfd_boolean *) data;
   Elf64_Mips_External_Rel *ext_rel;
   unsigned int idx;
   asymbol *last_sym = 0;
@@ -2318,7 +2320,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr, count, data)
   rel_hdr->contents = (PTR) bfd_alloc (abfd, rel_hdr->sh_size);
   if (rel_hdr->contents == NULL)
     {
-      *failedp = true;
+      *failedp = TRUE;
       return;
     }
 
@@ -2326,7 +2328,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr, count, data)
   for (idx = 0; idx < sec->reloc_count; idx++, ext_rel++)
     {
       arelent *ptr;
-      Elf64_Mips_Internal_Rel int_rel;
+      Elf64_Mips_Internal_Rela int_rel;
       asymbol *sym;
       int n;
       unsigned int i;
@@ -2350,7 +2352,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr, count, data)
          n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym);
          if (n < 0)
            {
-             *failedp = true;
+             *failedp = TRUE;
              return;
            }
          last_sym_idx = n;
@@ -2362,7 +2364,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr, count, data)
       if ((*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec
          && ! _bfd_elf_validate_reloc (abfd, ptr))
        {
-         *failedp = true;
+         *failedp = TRUE;
          return;
        }
 
@@ -2407,7 +2409,7 @@ mips_elf64_write_rela (abfd, sec, rela_hdr, count, data)
      int *count;
      PTR data;
 {
-  boolean *failedp = (boolean *) data;
+  bfd_boolean *failedp = (bfd_boolean *) data;
   Elf64_Mips_External_Rela *ext_rela;
   unsigned int idx;
   asymbol *last_sym = 0;
@@ -2417,7 +2419,7 @@ mips_elf64_write_rela (abfd, sec, rela_hdr, count, data)
   rela_hdr->contents = (PTR) bfd_alloc (abfd, rela_hdr->sh_size);
   if (rela_hdr->contents == NULL)
     {
-      *failedp = true;
+      *failedp = TRUE;
       return;
     }
 
@@ -2449,7 +2451,7 @@ mips_elf64_write_rela (abfd, sec, rela_hdr, count, data)
          n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym);
          if (n < 0)
            {
-             *failedp = true;
+             *failedp = TRUE;
              return;
            }
          last_sym_idx = n;
@@ -2462,7 +2464,7 @@ mips_elf64_write_rela (abfd, sec, rela_hdr, count, data)
       if ((*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec
          && ! _bfd_elf_validate_reloc (abfd, ptr))
        {
-         *failedp = true;
+         *failedp = TRUE;
          return;
        }
 
@@ -2501,7 +2503,7 @@ mips_elf64_write_rela (abfd, sec, rela_hdr, count, data)
 \f
 /* Set the right machine number for a MIPS ELF file.  */
 
-static boolean
+static bfd_boolean
 mips_elf64_object_p (abfd)
      bfd *abfd;
 {
@@ -2511,11 +2513,11 @@ mips_elf64_object_p (abfd)
      sorted correctly such that local symbols precede global symbols,
      and the sh_info field in the symbol table is not always right.  */
   if (elf64_mips_irix_compat (abfd) != ict_none)
-    elf_bad_symtab (abfd) = true;
+    elf_bad_symtab (abfd) = TRUE;
 
   mach = _bfd_elf_mips_mach (elf_elfheader (abfd)->e_flags);
   bfd_default_set_arch_mach (abfd, bfd_arch_mips, mach);
-  return true;
+  return TRUE;
 }
 
 /* Depending on the target vector we generate some version of Irix
@@ -2531,6 +2533,71 @@ elf64_mips_irix_compat (abfd)
     return ict_none;
 }
 \f
+/* Support for core dump NOTE sections.  */
+static bfd_boolean
+elf64_mips_grok_prstatus (abfd, note)
+     bfd *abfd;
+     Elf_Internal_Note *note;
+{
+  int offset;
+  unsigned int raw_size;
+
+  switch (note->descsz)
+    {
+      default:
+       return FALSE;
+
+      case 480:                /* Linux/MIPS - N64 kernel */
+       /* pr_cursig */
+       elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12);
+
+       /* pr_pid */
+       elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 32);
+
+       /* pr_reg */
+       offset = 112;
+       raw_size = 360;
+
+       break;
+    }
+
+  /* Make a ".reg/999" section.  */
+  return _bfd_elfcore_make_pseudosection (abfd, ".reg",
+                                         raw_size, note->descpos + offset);
+}
+
+static bfd_boolean
+elf64_mips_grok_psinfo (abfd, note)
+     bfd *abfd;
+     Elf_Internal_Note *note;
+{
+  switch (note->descsz)
+    {
+      default:
+       return FALSE;
+
+      case 136:                /* Linux/MIPS - N64 kernel elf_prpsinfo */
+       elf_tdata (abfd)->core_program
+        = _bfd_elfcore_strndup (abfd, note->descdata + 40, 16);
+       elf_tdata (abfd)->core_command
+        = _bfd_elfcore_strndup (abfd, note->descdata + 56, 80);
+    }
+
+  /* Note that for some reason, a spurious space is tacked
+     onto the end of the args in some (at least one anyway)
+     implementations, so strip it off if it exists.  */
+
+  {
+    char *command = elf_tdata (abfd)->core_command;
+    int n = strlen (command);
+
+    if (0 < n && command[n - 1] == ' ')
+      command[n - 1] = '\0';
+  }
+
+  return TRUE;
+}
+\f
 /* ECOFF swapping routines.  These are used when dealing with the
    .mdebug section, which is in the ECOFF debugging format.  */
 static const struct ecoff_debug_swap mips_elf64_ecoff_debug_swap =
@@ -2617,9 +2684,9 @@ const struct elf_size_info mips_elf64_size_info =
    FIXME: How does this affect NewABI?  */
 #define ELF_MAXPAGESIZE                        0x1000
 
-#define elf_backend_collect            true
-#define elf_backend_type_change_ok     true
-#define elf_backend_can_gc_sections    true
+#define elf_backend_collect            TRUE
+#define elf_backend_type_change_ok     TRUE
+#define elf_backend_can_gc_sections    TRUE
 #define elf_info_to_howto              mips_elf64_info_to_howto_rela
 #define elf_info_to_howto_rel          mips_elf64_info_to_howto_rel
 #define elf_backend_object_p           mips_elf64_object_p
@@ -2661,6 +2728,9 @@ const struct elf_size_info mips_elf64_size_info =
 #define elf_backend_ecoff_debug_swap   &mips_elf64_ecoff_debug_swap
 #define elf_backend_size_info          mips_elf64_size_info
 
+#define elf_backend_grok_prstatus      elf64_mips_grok_prstatus
+#define elf_backend_grok_psinfo                elf64_mips_grok_psinfo
+
 #define elf_backend_got_header_size    (4 * MIPS_RESERVED_GOTNO)
 #define elf_backend_plt_header_size    0
 
@@ -2692,10 +2762,10 @@ const struct elf_size_info mips_elf64_size_info =
 
 /* MIPS ELF64 archive functions.  */
 #define bfd_elf64_archive_functions
-extern boolean bfd_elf64_archive_slurp_armap
-  PARAMS((bfd *));
-extern boolean bfd_elf64_archive_write_armap
-  PARAMS((bfd *, unsigned int, struct orl *, unsigned int, int));
+extern bfd_boolean bfd_elf64_archive_slurp_armap
+  PARAMS ((bfd *));
+extern bfd_boolean bfd_elf64_archive_write_armap
+  PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
 #define bfd_elf64_archive_slurp_extended_name_table \
                        _bfd_archive_coff_slurp_extended_name_table
 #define bfd_elf64_archive_construct_extended_name_table \
index 939d12f7b3883c21ed146eca8a7ef7b6c9f53826..3cca228eadec2965fe9533d9a23cf6753b02780c 100644 (file)
@@ -78,9 +78,9 @@ struct bpo_reloc_request
     size_t bpo_reloc_no;
 
     /* Set when the value is computed.  Better than coding "guard values"
-       into the other members.  Is false only for BPO relocs in a GC:ed
+       into the other members.  Is FALSE only for BPO relocs in a GC:ed
        section.  */
-    boolean valid;
+    bfd_boolean valid;
   };
 
 /* We attach this as elf_section_data (sec)->tdata in the linker-allocated
@@ -120,7 +120,7 @@ struct bpo_greg_section_info
     struct bpo_reloc_request *reloc_request;
   };
 
-static boolean mmix_elf_link_output_symbol_hook
+static bfd_boolean mmix_elf_link_output_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const char *,
           Elf_Internal_Sym *, asection *));
 
@@ -131,19 +131,19 @@ static reloc_howto_type *bfd_elf64_bfd_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 
 static void mmix_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf64_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
 static int mmix_elf_sort_relocs PARAMS ((const PTR, const PTR));
 
-static boolean mmix_elf_check_relocs
+static bfd_boolean mmix_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
-static boolean mmix_elf_check_common_relocs
+static bfd_boolean mmix_elf_check_common_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
-static boolean mmix_elf_relocate_section
+static bfd_boolean mmix_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 
@@ -151,7 +151,7 @@ static asection * mmix_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
 
-static boolean mmix_elf_gc_sweep_hook
+static bfd_boolean mmix_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
@@ -162,23 +162,23 @@ static bfd_reloc_status_type mmix_final_link_relocate
 static bfd_reloc_status_type mmix_elf_perform_relocation
   PARAMS ((asection *, reloc_howto_type *, PTR, bfd_vma, bfd_vma));
 
-static boolean mmix_elf_section_from_bfd_section
+static bfd_boolean mmix_elf_section_from_bfd_section
   PARAMS ((bfd *, asection *, int *));
 
-static boolean mmix_elf_add_symbol_hook
+static bfd_boolean mmix_elf_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
 
-static boolean mmix_elf_is_local_label_name
+static bfd_boolean mmix_elf_is_local_label_name
   PARAMS ((bfd *, const char *));
 
 static int bpo_reloc_request_sort_fn PARAMS ((const PTR, const PTR));
 
-static boolean mmix_elf_relax_section
+static bfd_boolean mmix_elf_relax_section
   PARAMS ((bfd *abfd, asection *sec, struct bfd_link_info *link_info,
-          boolean *again));
+          bfd_boolean *again));
 
-extern boolean mmix_elf_final_link PARAMS ((bfd *, struct bfd_link_info *));
+extern bfd_boolean mmix_elf_final_link PARAMS ((bfd *, struct bfd_link_info *));
 
 extern void mmix_elf_symbol_processing PARAMS ((bfd *, asymbol *));
 
@@ -195,195 +195,195 @@ static reloc_howto_type elf_mmix_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 8 bit absolute relocation.  */
   HOWTO (R_MMIX_8,             /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_8",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xff,                  /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 16 bit absolute relocation.  */
   HOWTO (R_MMIX_16,            /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_16",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 24 bit absolute relocation.  */
   HOWTO (R_MMIX_24,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         24,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_24",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0xffffff,             /* src_mask */
         0xffffff,              /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  */
   HOWTO (R_MMIX_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_32",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit relocation.  */
   HOWTO (R_MMIX_64,            /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_64",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An 8 bit PC-relative relocation.  */
   HOWTO (R_MMIX_PC_8,          /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_PC_8",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xff,                  /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* An 16 bit PC-relative relocation.  */
   HOWTO (R_MMIX_PC_16,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_PC_16",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* An 24 bit PC-relative relocation.  */
   HOWTO (R_MMIX_PC_24,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         24,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_PC_24",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0xffffff,             /* src_mask */
         0xffffff,              /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 32 bit absolute PC-relative relocation.  */
   HOWTO (R_MMIX_PC_32,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_PC_32",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 64 bit PC-relative relocation.  */
   HOWTO (R_MMIX_PC_64,         /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_MMIX_PC_64",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_MMIX_GNU_VTINHERIT, /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_MMIX_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_MMIX_GNU_VTENTRY,   /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
         "R_MMIX_GNU_VTENTRY", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The GETA relocation is supposed to get any address that could
      possibly be reached by the GETA instruction.  It can silently expand
@@ -393,57 +393,57 @@ static reloc_howto_type elf_mmix_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_GETA",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_GETA_1,                /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_GETA_1",               /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_GETA_2,                /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_GETA_2",               /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_GETA_3,                /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_GETA_3",               /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* The conditional branches are supposed to reach any (code) address.
      It can silently expand to a 64-bit operand, but will emit an error if
@@ -453,71 +453,71 @@ static reloc_howto_type elf_mmix_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_CBRANCH",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_CBRANCH_J,     /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_CBRANCH_J",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_CBRANCH_1,     /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_CBRANCH_1",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_CBRANCH_2,     /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_CBRANCH_2",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_CBRANCH_3,     /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_CBRANCH_3",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* The PUSHJ instruction can reach any (code) address, as long as it's
      the beginning of a function (no usable restriction).  It can silently
@@ -528,57 +528,57 @@ static reloc_howto_type elf_mmix_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_PUSHJ",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_PUSHJ_1,       /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_PUSHJ_1",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_PUSHJ_2,       /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_PUSHJ_2",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_PUSHJ_3,       /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_PUSHJ_3",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A JMP is supposed to reach any (code) address.  By itself, it can
      reach +-64M; the expansion can reach all 64 bits.  Note that the 64M
@@ -588,57 +588,57 @@ static reloc_howto_type elf_mmix_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         27,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_JMP",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x1ffffff,            /* src_mask */
         0x1ffffff,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_JMP_1,         /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         27,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_JMP_1",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x1ffffff,            /* src_mask */
         0x1ffffff,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_JMP_2,         /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         27,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_JMP_2",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x1ffffff,            /* src_mask */
         0x1ffffff,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_MMIX_JMP_3,         /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         27,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_JMP_3",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x1ffffff,            /* src_mask */
         0x1ffffff,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* When we don't emit link-time-relaxable code from the assembler, or
      when relaxation has done all it can do, these relocs are used.  For
@@ -647,30 +647,30 @@ static reloc_howto_type elf_mmix_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         19,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_ADDR19",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x0100ffff,           /* src_mask */
         0x0100ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* For JMP.  */
   HOWTO (R_MMIX_ADDR27,                /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         27,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_ADDR27",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         ~0x1ffffff,            /* src_mask */
         0x1ffffff,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A general register or the value 0..255.  If a value, then the
      instruction (offset -3) needs adjusting.  */
@@ -678,30 +678,30 @@ static reloc_howto_type elf_mmix_howto_table[] =
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_REG_OR_BYTE",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xff,                  /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A general register.  */
   HOWTO (R_MMIX_REG,           /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_REG",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xff,                  /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A register plus an index, corresponding to the relocation expression.
      The sizes must correspond to the valid range of the expression, while
@@ -710,15 +710,15 @@ static reloc_howto_type elf_mmix_howto_table[] =
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_BASE_PLUS_OFFSET", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A "magic" relocation for a LOCAL expression, asserting that the
      expression is less than the number of global registers.  No actual
@@ -729,15 +729,15 @@ static reloc_howto_type elf_mmix_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mmix_elf_reloc,        /* special_function */
         "R_MMIX_LOCAL",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
  };
 
 
@@ -1063,7 +1063,7 @@ static void
 mmix_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf64_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
@@ -1157,7 +1157,7 @@ mmix_elf_reloc (abfd, reloc_entry, symbol, data, input_section,
 /* Relocate an MMIX ELF section.  Modified from elf32-fr30.c; look to it
    for guidance if you're thinking of copying this.  */
 
-static boolean
+static bfd_boolean
 mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -1189,7 +1189,7 @@ mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       bfd_reloc_status_type r;
       const char *name = NULL;
       int r_type;
-      boolean undefined_signalled = false;
+      bfd_boolean undefined_signalled = FALSE;
 
       r_type = ELF64_R_TYPE (rel->r_info);
 
@@ -1265,9 +1265,9 @@ mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! undefined_signalled
                  && ! ((*info->callbacks->undefined_symbol)
                        (info, h->root.root.string, input_bfd,
-                        input_section, rel->r_offset, true)))
-               return false;
-             undefined_signalled = true;
+                        input_section, rel->r_offset, TRUE)))
+               return FALSE;
+             undefined_signalled = TRUE;
              relocation = 0;
            }
        }
@@ -1278,7 +1278,7 @@ mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
       if (r != bfd_reloc_ok)
        {
-         boolean check_ok = true;
+         bfd_boolean check_ok = TRUE;
          const char * msg = (const char *) NULL;
 
          switch (r)
@@ -1294,8 +1294,8 @@ mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! undefined_signalled)
                check_ok = info->callbacks->undefined_symbol
                  (info, name, input_bfd, input_section, rel->r_offset,
-                  true);
-             undefined_signalled = true;
+                  TRUE);
+             undefined_signalled = TRUE;
              break;
 
            case bfd_reloc_outofrange:
@@ -1320,11 +1320,11 @@ mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              (info, msg, name, input_bfd, input_section, rel->r_offset);
 
          if (! check_ok)
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Perform a single relocation.  By default we use the standard BFD
@@ -1565,7 +1565,7 @@ mmix_elf_gc_mark_hook (sec, info, rel, h, sym)
    GC (or section merge) and the point when all input sections must be
    present.  Better to waste some memory and (perhaps) a little time.  */
 
-static boolean
+static bfd_boolean
 mmix_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1579,7 +1579,7 @@ mmix_elf_gc_sweep_hook (abfd, info, sec, relocs)
 
   /* If no bpodata here, we have nothing to do.  */
   if (bpodata == NULL)
-    return true;
+    return TRUE;
 
   allocated_gregs_section = bpodata->bpo_greg_section;
 
@@ -1588,7 +1588,7 @@ mmix_elf_gc_sweep_hook (abfd, info, sec, relocs)
     ->n_bpo_relocs
     -= bpodata->n_bpo_relocs_this_section;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Sort register relocs to come before expanding relocs.  */
@@ -1628,7 +1628,7 @@ mmix_elf_sort_relocs (p1, p2)
 
 /* Subset of mmix_elf_check_relocs, common to ELF and mmo linking.  */
 
-static boolean
+static bfd_boolean
 mmix_elf_check_common_relocs  (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1643,7 +1643,7 @@ mmix_elf_check_common_relocs  (abfd, info, sec, relocs)
   const Elf_Internal_Rela *rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   /* We currently have to abuse this COFF-specific member, since there's
      no target-machine-dedicated member.  There's no alternative outside
@@ -1692,12 +1692,12 @@ mmix_elf_check_common_relocs  (abfd, info, sec, relocs)
                  || !bfd_set_section_alignment (bpo_greg_owner,
                                                 allocated_gregs_section,
                                                 3))
-               return false;
+               return FALSE;
 
              gregdata = (struct bpo_greg_section_info *)
                bfd_zalloc (bpo_greg_owner, sizeof (struct bpo_greg_section_info));
              if (gregdata == NULL)
-               return false;
+               return FALSE;
              elf_section_data (allocated_gregs_section)->tdata = gregdata;
            }
          else if (gregdata == NULL)
@@ -1713,7 +1713,7 @@ mmix_elf_check_common_relocs  (abfd, info, sec, relocs)
                           sizeof (struct bpo_reloc_section_info)
                           * (sec->reloc_count + 1));
              if (bpodata == NULL)
-               return false;
+               return FALSE;
              elf_section_data (sec)->tdata = bpodata;
              bpodata->first_base_plus_offset_reloc
                = bpodata->bpo_index
@@ -1734,12 +1734,12 @@ mmix_elf_check_common_relocs  (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.  */
 
-static boolean
+static bfd_boolean
 mmix_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1752,7 +1752,7 @@ mmix_elf_check_relocs (abfd, info, sec, relocs)
   const Elf_Internal_Rela *rel_end;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -1767,7 +1767,7 @@ mmix_elf_check_relocs (abfd, info, sec, relocs)
 
   /* Do the common part.  */
   if (!mmix_elf_check_common_relocs (abfd, info, sec, relocs))
-    return false;
+    return FALSE;
 
   rel_end = relocs + sec->reloc_count;
   for (rel = relocs; rel < rel_end; rel++)
@@ -1787,25 +1787,25 @@ mmix_elf_check_relocs (abfd, info, sec, relocs)
            Reconstruct it for later use during GC.  */
         case R_MMIX_GNU_VTINHERIT:
           if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
         /* This relocation describes which C++ vtable entries are actually
            used.  Record for later use during GC.  */
         case R_MMIX_GNU_VTENTRY:
           if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Wrapper for mmix_elf_check_common_relocs, called when linking to mmo.
    Copied from elf_link_add_object_symbols.  */
 
-boolean
+bfd_boolean
 _bfd_mmix_check_all_relocs (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1815,7 +1815,7 @@ _bfd_mmix_check_all_relocs (abfd, info)
   for (o = abfd->sections; o != NULL; o = o->next)
     {
       Elf_Internal_Rela *internal_relocs;
-      boolean ok;
+      bfd_boolean ok;
 
       if ((o->flags & SEC_RELOC) == 0
          || o->reloc_count == 0
@@ -1829,7 +1829,7 @@ _bfd_mmix_check_all_relocs (abfd, info)
                                       (Elf_Internal_Rela *) NULL,
                                       info->keep_memory);
       if (internal_relocs == NULL)
-       return false;
+       return FALSE;
 
       ok = mmix_elf_check_common_relocs (abfd, info, o, internal_relocs);
 
@@ -1837,17 +1837,17 @@ _bfd_mmix_check_all_relocs (abfd, info)
        free (internal_relocs);
 
       if (! ok)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Change symbols relative to the reg contents section to instead be to
    the register section, and scale them down to correspond to the register
    number.  */
 
-static boolean
+static bfd_boolean
 mmix_elf_link_output_symbol_hook (abfd, info, name, sym, input_sec)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1864,7 +1864,7 @@ mmix_elf_link_output_symbol_hook (abfd, info, name, sym, input_sec)
       sym->st_shndx = SHN_REGISTER;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We fake a register section that holds values that are register numbers.
@@ -1913,7 +1913,7 @@ mmix_elf_symbol_processing (abfd, asym)
 /* Given a BFD section, try to locate the corresponding ELF section
    index.  */
 
-static boolean
+static bfd_boolean
 mmix_elf_section_from_bfd_section (abfd, sec, retval)
      bfd *                 abfd ATTRIBUTE_UNUSED;
      asection *            sec;
@@ -1922,9 +1922,9 @@ mmix_elf_section_from_bfd_section (abfd, sec, retval)
   if (strcmp (bfd_get_section_name (abfd, sec), MMIX_REG_SECTION_NAME) == 0)
     *retval = SHN_REGISTER;
   else
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Hook called by the linker routine which adds symbols from an object
@@ -1934,7 +1934,7 @@ mmix_elf_section_from_bfd_section (abfd, sec, retval)
    symbols, since otherwise having two with the same value would cause
    them to be "merged", but with the contents serialized.  */
 
-boolean
+bfd_boolean
 mmix_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1953,9 +1953,9 @@ mmix_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       /* See if we have another one.  */
       struct bfd_link_hash_entry *h = bfd_link_hash_lookup (info->hash,
                                                            *namep,
-                                                           false,
-                                                           false,
-                                                           false);
+                                                           FALSE,
+                                                           FALSE,
+                                                           FALSE);
 
       if (h != NULL && h->type != bfd_link_hash_undefined)
        {
@@ -1966,16 +1966,16 @@ mmix_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
            bfd_get_filename (abfd), *namep,
            *namep + strlen (MMIX_LOC_SECTION_START_SYMBOL_PREFIX)));
           bfd_set_error (bfd_error_bad_value);
-          return false;
+          return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We consider symbols matching "L.*:[0-9]+" to be local symbols.  */
 
-boolean
+bfd_boolean
 mmix_elf_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
@@ -1985,19 +1985,19 @@ mmix_elf_is_local_label_name (abfd, name)
 
   /* Also include the default local-label definition.  */
   if (_bfd_elf_is_local_label_name (abfd, name))
-    return true;
+    return TRUE;
 
   if (*name != 'L')
-    return false;
+    return FALSE;
 
   /* If there's no ":", or more than one, it's not a local symbol.  */
   colpos = strchr (name, ':');
   if (colpos == NULL || strchr (colpos + 1, ':') != NULL)
-    return false;
+    return FALSE;
 
   /* Check that there are remaining characters and that they are digits.  */
   if (colpos[1] == 0)
-    return false;
+    return FALSE;
 
   digits = strspn (colpos + 1, "0123456789");
   return digits != 0 && colpos[1 + digits] == 0;
@@ -2005,7 +2005,7 @@ mmix_elf_is_local_label_name (abfd, name)
 
 /* We get rid of the register section here.  */
 
-boolean
+bfd_boolean
 mmix_elf_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2033,7 +2033,7 @@ mmix_elf_final_link (abfd, info)
     }
 
   if (! bfd_elf64_bfd_final_link (abfd, info))
-    return false;
+    return FALSE;
 
   /* Since this section is marked SEC_LINKER_CREATED, it isn't output by
      the regular linker machinery.  We do it here, like other targets with
@@ -2048,15 +2048,15 @@ mmix_elf_final_link (abfd, info)
                                     greg_section->contents,
                                     (file_ptr) greg_section->output_offset,
                                     greg_section->_cooked_size))
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Initialize stuff for the linker-generated GREGs to match
    R_MMIX_BASE_PLUS_OFFSET relocs seen by the linker.  */
 
-boolean
+bfd_boolean
 _bfd_mmix_prepare_linker_allocated_gregs (abfd, info)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -2074,20 +2074,20 @@ _bfd_mmix_prepare_linker_allocated_gregs (abfd, info)
      If there is no such object, there was no R_MMIX_BASE_PLUS_OFFSET.  */
   bpo_greg_owner = (bfd *) info->base_file;
   if (bpo_greg_owner == NULL)
-    return true;
+    return TRUE;
 
   bpo_gregs_section
     = bfd_get_section_by_name (bpo_greg_owner,
                               MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
 
   if (bpo_gregs_section == NULL)
-    return true;
+    return TRUE;
 
   /* We use the target-data handle in the ELF section data.  */
   gregdata = (struct bpo_greg_section_info *)
     elf_section_data (bpo_gregs_section)->tdata;
   if (gregdata == NULL)
-    return false;
+    return FALSE;
 
   n_gregs = gregdata->n_bpo_relocs;
   gregdata->n_allocated_bpo_gregs = n_gregs;
@@ -2100,7 +2100,7 @@ _bfd_mmix_prepare_linker_allocated_gregs (abfd, info)
   gregs_size = n_gregs * 8;
 
   if (!bfd_set_section_size (bpo_greg_owner, bpo_gregs_section, gregs_size))
-    return false;
+    return FALSE;
 
   /* Allocate and set up the GREG arrays.  They're filled in at relaxation
      time.  Note that we must use the max number ever noted for the array,
@@ -2116,7 +2116,7 @@ _bfd_mmix_prepare_linker_allocated_gregs (abfd, info)
                 gregdata->n_max_bpo_relocs
                 * sizeof (size_t));
   if (bpo_reloc_indexes == NULL)
-    return false;
+    return FALSE;
 
   /* The default order is an identity mapping.  */
   for (i = 0; i < gregdata->n_max_bpo_relocs; i++)
@@ -2125,13 +2125,13 @@ _bfd_mmix_prepare_linker_allocated_gregs (abfd, info)
       gregdata->reloc_request[i].bpo_reloc_no = i;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Fill in contents in the linker allocated gregs.  Everything is
    calculated at this point; we just move the contents into place here.  */
 
-boolean
+bfd_boolean
 _bfd_mmix_finalize_linker_allocated_gregs (abfd, link_info)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info;
@@ -2149,7 +2149,7 @@ _bfd_mmix_finalize_linker_allocated_gregs (abfd, link_info)
      object, there was no R_MMIX_BASE_PLUS_OFFSET.  */
   bpo_greg_owner = (bfd *) link_info->base_file;
   if (bpo_greg_owner == NULL)
-    return true;
+    return TRUE;
 
   bpo_gregs_section
     = bfd_get_section_by_name (bpo_greg_owner,
@@ -2159,14 +2159,14 @@ _bfd_mmix_finalize_linker_allocated_gregs (abfd, link_info)
      without any R_MMIX_BASE_PLUS_OFFSET seen, there will be no such
      section.  */
   if (bpo_gregs_section == NULL)
-    return true;
+    return TRUE;
 
   /* We use the target-data handle in the ELF section data.  */
 
   gregdata = (struct bpo_greg_section_info *)
     elf_section_data (bpo_gregs_section)->tdata;
   if (gregdata == NULL)
-    return false;
+    return FALSE;
 
   n_gregs = gregdata->n_allocated_bpo_gregs;
 
@@ -2176,7 +2176,7 @@ _bfd_mmix_finalize_linker_allocated_gregs (abfd, link_info)
   bpo_gregs_section->contents
     = contents = bfd_alloc (bpo_greg_owner, bpo_gregs_section->_raw_size);
   if (contents == NULL)
-    return false;
+    return FALSE;
 
   /* Sanity check: If these numbers mismatch, some relocation has not been
      accounted for and the rest of gregdata is probably inconsistent.
@@ -2190,7 +2190,7 @@ _bfd_mmix_finalize_linker_allocated_gregs (abfd, link_info)
   Please report this bug."),
         gregdata->n_remaining_bpo_relocs_this_relaxation_round,
         gregdata->n_bpo_relocs);
-      return false;
+      return FALSE;
     }
 
   for (lastreg = 255, i = 0, j = 0; j < n_gregs; i++)
@@ -2202,7 +2202,7 @@ _bfd_mmix_finalize_linker_allocated_gregs (abfd, link_info)
        j++;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Sort valid relocs to come before non-valid relocs, then on increasing
@@ -2281,8 +2281,8 @@ mmix_dump_bpo_gregs (link_info, pf)
     for (i = 0; i < gregdata->n_max_bpo_relocs; i++)
       (*pf) ("%4u (%4u)/%4u#%u: 0x%08lx%08lx  r: %3u o: %3u\n",
             i,
-            gregdata->bpo_reloc_indexes != NULL
-            ? gregdata->bpo_reloc_indexes[i] : -1,
+            (gregdata->bpo_reloc_indexes != NULL
+             ? gregdata->bpo_reloc_indexes[i] : (size_t) -1),
             gregdata->reloc_request[i].bpo_reloc_no,
             gregdata->reloc_request[i].valid,
 
@@ -2300,12 +2300,12 @@ mmix_dump_bpo_gregs (link_info, pf)
 
    Symbol- and reloc-reading infrastructure copied from elf-m10200.c.  */
 
-static boolean
+static bfd_boolean
 mmix_elf_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
@@ -2320,7 +2320,7 @@ mmix_elf_relax_section (abfd, sec, link_info, again)
   Elf_Internal_Sym *isymbuf = NULL;
 
   /* Assume nothing changes.  */
-  *again = false;
+  *again = FALSE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -2337,7 +2337,7 @@ mmix_elf_relax_section (abfd, sec, link_info, again)
       || (sec->flags & SEC_LINKER_CREATED) != 0
       /* If no R_MMIX_BASE_PLUS_OFFSET relocs, then nothing to do.  */
       || bpodata == NULL)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
 
@@ -2425,7 +2425,7 @@ mmix_elf_relax_section (abfd, sec, link_info, again)
 
       gregdata->reloc_request[gregdata->bpo_reloc_indexes[bpono]].value
        = symval + irel->r_addend;
-      gregdata->reloc_request[gregdata->bpo_reloc_indexes[bpono++]].valid = true;
+      gregdata->reloc_request[gregdata->bpo_reloc_indexes[bpono++]].valid = TRUE;
       gregdata->n_remaining_bpo_relocs_this_relaxation_round--;
     }
 
@@ -2458,7 +2458,7 @@ mmix_elf_relax_section (abfd, sec, link_info, again)
          {
            gregdata->bpo_reloc_indexes[gregdata->reloc_request[i].bpo_reloc_no]
              = i;
-           *again = true;
+           *again = TRUE;
          }
 
       /* Allocate register numbers (indexing from 0).  Stop at the first
@@ -2484,7 +2484,7 @@ mmix_elf_relax_section (abfd, sec, link_info, again)
       if (gregdata->n_allocated_bpo_gregs != regindex + 1)
        {
          gregdata->n_allocated_bpo_gregs = regindex + 1;
-         *again = true;
+         *again = TRUE;
        }
 
       bpo_gregs_section->_cooked_size = (regindex + 1) * 8;
@@ -2505,7 +2505,7 @@ mmix_elf_relax_section (abfd, sec, link_info, again)
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (isymbuf != NULL && (unsigned char *) isymbuf != symtab_hdr->contents)
@@ -2513,7 +2513,7 @@ mmix_elf_relax_section (abfd, sec, link_info, again)
   if (internal_relocs != NULL
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
-  return false;
+  return FALSE;
 }
 \f
 #define ELF_ARCH               bfd_arch_mmix
index 384348e957ebc1c2a96688179c6d3e6e95f0ade9..579188397679823b790bbabee018e22b120cd8c7 100644 (file)
@@ -35,7 +35,7 @@ static void ppc_howto_init
 static reloc_howto_type *ppc64_elf_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 static void ppc64_elf_info_to_howto
-  PARAMS ((bfd *abfd, arelent *cache_ptr, Elf64_Internal_Rela *dst));
+  PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst));
 static bfd_reloc_status_type ppc64_elf_ha_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type ppc64_elf_brtaken_reloc
@@ -52,9 +52,9 @@ static bfd_reloc_status_type ppc64_elf_toc64_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type ppc64_elf_unhandled_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean ppc64_elf_object_p
+static bfd_boolean ppc64_elf_object_p
   PARAMS ((bfd *));
-static boolean ppc64_elf_merge_private_bfd_data
+static bfd_boolean ppc64_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 
 
@@ -124,7 +124,7 @@ static boolean ppc64_elf_merge_private_bfd_data
 #endif
 \f
 #define ONES(n) (((bfd_vma) 1 << ((n) - 1) << 1) - 1)
+
 /* Relocation HOWTO's.  */
 static reloc_howto_type *ppc64_elf_howto_table[(int) R_PPC_max];
 
@@ -134,30 +134,30 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_NONE",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 32 bit relocation.  */
   HOWTO (R_PPC64_ADDR32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR32",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An absolute 26 bit branch; the lower two bits must be zero.
      FIXME: we don't check that, we just clear them.  */
@@ -165,60 +165,60 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR24",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x03fffffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A standard 16 bit relocation.  */
   HOWTO (R_PPC64_ADDR16,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit relocation without overflow.  */
   HOWTO (R_PPC64_ADDR16_LO,    /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR16_LO",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Bits 16-31 of an address.  */
   HOWTO (R_PPC64_ADDR16_HI,    /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR16_HI",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Bits 16-31 of an address, plus 1 if the contents of the low 16
      bits, treated as a signed number, is negative.  */
@@ -226,15 +226,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_ha_reloc,    /* special_function */
         "R_PPC64_ADDR16_HA",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An absolute 16 bit branch; the lower two bits must be zero.
      FIXME: we don't check that, we just clear them.  */
@@ -242,15 +242,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR14",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000fffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An absolute 16 bit branch, for which bit 10 should be set to
      indicate that the branch is expected to be taken.  The lower two
@@ -259,15 +259,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         ppc64_elf_brtaken_reloc, /* special_function */
         "R_PPC64_ADDR14_BRTAKEN",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000fffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* An absolute 16 bit branch, for which bit 10 should be set to
      indicate that the branch is not expected to be taken.  The lower
@@ -276,45 +276,45 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         ppc64_elf_brtaken_reloc, /* special_function */
         "R_PPC64_ADDR14_BRNTAKEN",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000fffc,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A relative 26 bit branch; the lower two bits must be zero.  */
   HOWTO (R_PPC64_REL24,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_REL24",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x03fffffc,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 16 bit branch; the lower two bits must be zero.  */
   HOWTO (R_PPC64_REL14,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_REL14",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000fffc,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 16 bit branch.  Bit 10 should be set to indicate that
      the branch is expected to be taken.  The lower two bits must be
@@ -323,15 +323,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc64_elf_brtaken_reloc, /* special_function */
         "R_PPC64_REL14_BRTAKEN", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000fffc,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A relative 16 bit branch.  Bit 10 should be set to indicate that
      the branch is not expected to be taken.  The lower two bits must
@@ -340,15 +340,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc64_elf_brtaken_reloc, /* special_function */
         "R_PPC64_REL14_BRNTAKEN",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000fffc,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16, but referring to the GOT table entry for the
      symbol.  */
@@ -356,15 +356,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_GOT16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16_LO, but referring to the GOT table entry for
      the symbol.  */
@@ -372,15 +372,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_GOT16_LO",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16_HI, but referring to the GOT table entry for
      the symbol.  */
@@ -388,15 +388,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_GOT16_HI",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16_HA, but referring to the GOT table entry for
      the symbol.  */
@@ -404,15 +404,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_GOT16_HA",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* This is used only by the dynamic linker.  The symbol should exist
      both in the object being run and in some shared library.  The
@@ -423,15 +423,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         0,                     /* this one is variable size */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_COPY",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR64, but used when setting global offset table
      entries.  */
@@ -439,15 +439,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         4,                     /* size (0=byte, 1=short, 2=long, 4=64 bits) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc,  /* special_function */
         "R_PPC64_GLOB_DAT",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ONES (64),             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Created by the link editor.  Marks a procedure linkage table
      entry for a symbol.  */
@@ -455,15 +455,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_JMP_SLOT",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used only by the dynamic linker.  When the object is run, this
      doubleword64 is set to the load address of the object, plus the
@@ -472,76 +472,76 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         4,                     /* size (0=byte, 1=short, 2=long, 4=64 bits) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_RELATIVE",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ONES (64),             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR32, but may be unaligned.  */
   HOWTO (R_PPC64_UADDR32,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_UADDR32",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16, but may be unaligned.  */
   HOWTO (R_PPC64_UADDR16,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_UADDR16",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32-bit PC relative.  */
   HOWTO (R_PPC64_REL32,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         /* FIXME: Verify.  Was complain_overflow_bitfield.  */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_REL32",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 32-bit relocation to the symbol's procedure linkage table.  */
   HOWTO (R_PPC64_PLT32,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLT32",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32-bit PC relative relocation to the symbol's procedure linkage table.
      FIXME: R_PPC64_PLTREL32 not supported.  */
@@ -549,15 +549,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_PLTREL32",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16_LO, but referring to the PLT table entry for
      the symbol.  */
@@ -565,15 +565,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLT16_LO",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16_HI, but referring to the PLT table entry for
      the symbol.  */
@@ -581,15 +581,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLT16_HI",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16_HA, but referring to the PLT table entry for
      the symbol.  */
@@ -597,75 +597,75 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLT16_HA",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16-bit section relative relocation.  */
   HOWTO (R_PPC64_SECTOFF,      /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         ppc64_elf_sectoff_reloc, /* special_function */
         "R_PPC64_SECTOFF",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_SECTOFF, but no overflow warning.  */
   HOWTO (R_PPC64_SECTOFF_LO,   /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_sectoff_reloc, /* special_function */
         "R_PPC64_SECTOFF_LO",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16-bit upper half section relative relocation.  */
   HOWTO (R_PPC64_SECTOFF_HI,   /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_sectoff_reloc, /* special_function */
         "R_PPC64_SECTOFF_HI",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16-bit upper half adjusted section relative relocation.  */
   HOWTO (R_PPC64_SECTOFF_HA,   /* type */
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_sectoff_ha_reloc, /* special_function */
         "R_PPC64_SECTOFF_HA",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_REL24 without touching the two least significant
      bits.  Should have been named R_PPC64_REL30!  */
@@ -673,15 +673,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         30,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR30",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffffffc,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Relocs in the 64-bit PowerPC ELF ABI, not in the 32-bit ABI.  */
 
@@ -690,30 +690,30 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         4,                     /* size (0=byte, 1=short, 2=long, 4=64 bits) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR64",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ONES (64),             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The bits 32-47 of an address.  */
   HOWTO (R_PPC64_ADDR16_HIGHER,        /* type */
         32,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR16_HIGHER", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The bits 32-47 of an address, plus 1 if the contents of the low
      16 bits, treated as a signed number, is negative.  */
@@ -721,30 +721,30 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         32,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_ha_reloc,    /* special_function */
         "R_PPC64_ADDR16_HIGHERA", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The bits 48-63 of an address.  */
   HOWTO (R_PPC64_ADDR16_HIGHEST,/* type */
         48,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR16_HIGHEST", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The bits 48-63 of an address, plus 1 if the contents of the low
      16 bits, treated as a signed number, is negative.  */
@@ -752,60 +752,60 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         48,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_ha_reloc,    /* special_function */
         "R_PPC64_ADDR16_HIGHESTA", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like ADDR64, but may be unaligned.  */
   HOWTO (R_PPC64_UADDR64,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0=byte, 1=short, 2=long, 4=64 bits) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_UADDR64",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ONES (64),             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64-bit relative relocation.  */
   HOWTO (R_PPC64_REL64,                /* type */
         0,                     /* rightshift */
         4,                     /* size (0=byte, 1=short, 2=long, 4=64 bits) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_REL64",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ONES (64),             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 64-bit relocation to the symbol's procedure linkage table.  */
   HOWTO (R_PPC64_PLT64,                /* type */
         0,                     /* rightshift */
         4,                     /* size (0=byte, 1=short, 2=long, 4=64 bits) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLT64",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ONES (64),             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64-bit PC relative relocation to the symbol's procedure linkage
      table.  */
@@ -814,15 +814,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         4,                     /* size (0=byte, 1=short, 2=long, 4=64 bits) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLTREL64",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ONES (64),             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 16 bit TOC-relative relocation.  */
 
@@ -831,15 +831,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc64_elf_toc_reloc,   /* special_function */
         "R_PPC64_TOC16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit TOC-relative relocation without overflow.  */
 
@@ -848,15 +848,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_toc_reloc,   /* special_function */
         "R_PPC64_TOC16_LO",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit TOC-relative relocation, high 16 bits.  */
 
@@ -865,15 +865,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_toc_reloc,   /* special_function */
         "R_PPC64_TOC16_HI",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit TOC-relative relocation, high 16 bits, plus 1 if the
      contents of the low 16 bits, treated as a signed number, is
@@ -884,15 +884,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_toc_ha_reloc, /* special_function */
         "R_PPC64_TOC16_HA",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64-bit relocation; insert value of TOC base (.TOC.).  */
 
@@ -901,15 +901,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         4,                     /* size (0=byte, 1=short, 2=long, 4=64 bits) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         ppc64_elf_toc64_reloc, /* special_function */
         "R_PPC64_TOC",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ONES (64),             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_GOT16, but also informs the link editor that the
      value to relocate may (!) refer to a PLT entry which the link
@@ -924,15 +924,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLTGOT16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_PLTGOT16, but without overflow.  */
   /* FIXME: R_PPC64_PLTGOT16_LO not implemented.  */
@@ -940,15 +940,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLTGOT16_LO", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_PLT_GOT16, but using bits 16-31 of the address.  */
   /* FIXME: R_PPC64_PLTGOT16_HI not implemented.  */
@@ -956,15 +956,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLTGOT16_HI", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_PLT_GOT16, but using bits 16-31 of the address, plus
      1 if the contents of the low 16 bits, treated as a signed number,
@@ -974,150 +974,150 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         16,                    /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLTGOT16_HA", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16, but for instructions with a DS field.  */
   HOWTO (R_PPC64_ADDR16_DS,    /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR16_DS",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_ADDR16_LO, but for instructions with a DS field.  */
   HOWTO (R_PPC64_ADDR16_LO_DS, /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_PPC64_ADDR16_LO_DS",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_GOT16, but for instructions with a DS field.  */
   HOWTO (R_PPC64_GOT16_DS,     /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_GOT16_DS",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_GOT16_LO, but for instructions with a DS field.  */
   HOWTO (R_PPC64_GOT16_LO_DS,  /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_GOT16_LO_DS", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_PLT16_LO, but for instructions with a DS field.  */
   HOWTO (R_PPC64_PLT16_LO_DS,  /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLT16_LO_DS", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_SECTOFF, but for instructions with a DS field.  */
   HOWTO (R_PPC64_SECTOFF_DS,   /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         ppc64_elf_sectoff_reloc, /* special_function */
         "R_PPC64_SECTOFF_DS",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_SECTOFF_LO, but for instructions with a DS field.  */
   HOWTO (R_PPC64_SECTOFF_LO_DS, /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_sectoff_reloc, /* special_function */
         "R_PPC64_SECTOFF_LO_DS",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_TOC16, but for instructions with a DS field.  */
   HOWTO (R_PPC64_TOC16_DS,     /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc64_elf_toc_reloc,   /* special_function */
         "R_PPC64_TOC16_DS",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_TOC16_LO, but for instructions with a DS field.  */
   HOWTO (R_PPC64_TOC16_LO_DS,  /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_toc_reloc,   /* special_function */
         "R_PPC64_TOC16_LO_DS", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_PLTGOT16, but for instructions with a DS field.  */
   /* FIXME: R_PPC64_PLTGOT16_DS not implemented.  */
@@ -1125,15 +1125,15 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLTGOT16_DS", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Like R_PPC64_PLTGOT16_LO, but for instructions with a DS field.  */
   /* FIXME: R_PPC64_PLTGOT16_LO not implemented.  */
@@ -1141,45 +1141,45 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         ppc64_elf_unhandled_reloc, /* special_function */
         "R_PPC64_PLTGOT16_LO_DS",/* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfffc,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_PPC64_GNU_VTINHERIT,        /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_PPC64_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_PPC64_GNU_VTENTRY,  /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_PPC64_GNU_VTENTRY", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 \f
@@ -1351,7 +1351,7 @@ static void
 ppc64_elf_info_to_howto (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf64_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int type;
 
@@ -1407,7 +1407,7 @@ ppc64_elf_brtaken_reloc (abfd, reloc_entry, symbol, data,
   enum elf_ppc_reloc_type r_type;
   bfd_size_type octets;
   /* Disabled until we sort out how ld should choose 'y' vs 'at'.  */
-  boolean is_power4 = false;
+  bfd_boolean is_power4 = FALSE;
 
   /* If this is a relocatable link (output_bfd test tells us), just
      call the generic function.  Any adjustment will be done at final
@@ -1630,7 +1630,7 @@ ppc64_elf_unhandled_reloc (abfd, reloc_entry, symbol, data,
 /* Fix bad default arch selected for a 64 bit input bfd when the
    default is 32 bit.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_object_p (abfd)
      bfd *abfd;
 {
@@ -1645,13 +1645,13 @@ ppc64_elf_object_p (abfd)
          BFD_ASSERT (abfd->arch_info->bits_per_word == 64);
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -1671,10 +1671,10 @@ ppc64_elf_merge_private_bfd_data (ibfd, obfd)
       (*_bfd_error_handler) (msg, bfd_archive_filename (ibfd));
 
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* The following functions are specific to the ELF linker, while
@@ -1946,59 +1946,59 @@ static struct ppc_stub_hash_entry *ppc_get_stub_entry
           const Elf_Internal_Rela *, struct ppc_link_hash_table *));
 static struct ppc_stub_hash_entry *ppc_add_stub
   PARAMS ((const char *, asection *, struct ppc_link_hash_table *));
-static boolean create_linkage_sections
+static bfd_boolean create_linkage_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean create_got_section
+static bfd_boolean create_got_section
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean ppc64_elf_create_dynamic_sections
+static bfd_boolean ppc64_elf_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static void ppc64_elf_copy_indirect_symbol
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
           struct elf_link_hash_entry *));
-static boolean ppc64_elf_check_relocs
+static bfd_boolean ppc64_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection * ppc64_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean ppc64_elf_gc_sweep_hook
+static bfd_boolean ppc64_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean func_desc_adjust
+static bfd_boolean func_desc_adjust
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean ppc64_elf_func_desc_adjust
+static bfd_boolean ppc64_elf_func_desc_adjust
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean ppc64_elf_adjust_dynamic_symbol
+static bfd_boolean ppc64_elf_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
 static void ppc64_elf_hide_symbol
-  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean));
-static boolean allocate_dynrelocs
+  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
+static bfd_boolean allocate_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean readonly_dynrelocs
+static bfd_boolean readonly_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
 static enum elf_reloc_type_class ppc64_elf_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
-static boolean ppc64_elf_size_dynamic_sections
+static bfd_boolean ppc64_elf_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static INLINE enum ppc_stub_type ppc_type_of_stub
   PARAMS ((asection *, const Elf_Internal_Rela *,
           struct ppc_link_hash_entry **, bfd_vma));
 static bfd_byte *build_plt_stub
   PARAMS ((bfd *, bfd_byte *, int, int));
-static boolean ppc_build_one_stub
+static bfd_boolean ppc_build_one_stub
   PARAMS ((struct bfd_hash_entry *, PTR));
-static boolean ppc_size_one_stub
+static bfd_boolean ppc_size_one_stub
   PARAMS ((struct bfd_hash_entry *, PTR));
 static void group_sections
-  PARAMS ((struct ppc_link_hash_table *, bfd_size_type, boolean));
-static boolean ppc64_elf_relocate_section
+  PARAMS ((struct ppc_link_hash_table *, bfd_size_type, bfd_boolean));
+static bfd_boolean ppc64_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms,
           asection **));
-static boolean ppc64_elf_finish_dynamic_symbol
+static bfd_boolean ppc64_elf_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-static boolean ppc64_elf_finish_dynamic_sections
+static bfd_boolean ppc64_elf_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Get the ppc64 ELF linker hash table from a link_info structure.  */
@@ -2262,7 +2262,7 @@ ppc_get_stub_entry (input_section, sym_sec, hash, rel, htab)
        return NULL;
 
       stub_entry = ppc_stub_hash_lookup (&htab->stub_hash_table,
-                                        stub_name, false, false);
+                                        stub_name, FALSE, FALSE);
       if (h != NULL)
        h->stub_cache = stub_entry;
 
@@ -2314,7 +2314,7 @@ ppc_add_stub (stub_name, section, htab)
 
   /* Enter this entry into the linker stub hash table.  */
   stub_entry = ppc_stub_hash_lookup (&htab->stub_hash_table, stub_name,
-                                    true, false);
+                                    TRUE, FALSE);
   if (stub_entry == NULL)
     {
       (*_bfd_error_handler) (_("%s: cannot create stub entry %s"),
@@ -2331,7 +2331,7 @@ ppc_add_stub (stub_name, section, htab)
 
 /* Create sections for linker generated code.  */
 
-static boolean
+static bfd_boolean
 create_linkage_sections (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -2348,14 +2348,14 @@ create_linkage_sections (dynobj, info)
   if (htab->sfpr == NULL
       || ! bfd_set_section_flags (dynobj, htab->sfpr, flags)
       || ! bfd_set_section_alignment (dynobj, htab->sfpr, 2))
-    return false;
+    return FALSE;
 
   /* Create .glink for lazy dynamic linking support.  */
   htab->sglink = bfd_make_section_anyway (dynobj, ".glink");
   if (htab->sglink == NULL
       || ! bfd_set_section_flags (dynobj, htab->sglink, flags)
       || ! bfd_set_section_alignment (dynobj, htab->sglink, 2))
-    return false;
+    return FALSE;
 
   /* Create .branch_lt for plt_branch stubs.  */
   flags = (SEC_ALLOC | SEC_LOAD
@@ -2364,7 +2364,7 @@ create_linkage_sections (dynobj, info)
   if (htab->sbrlt == NULL
       || ! bfd_set_section_flags (dynobj, htab->sbrlt, flags)
       || ! bfd_set_section_alignment (dynobj, htab->sbrlt, 3))
-    return false;
+    return FALSE;
 
   if (info->shared)
     {
@@ -2374,15 +2374,15 @@ create_linkage_sections (dynobj, info)
       if (!htab->srelbrlt
          || ! bfd_set_section_flags (dynobj, htab->srelbrlt, flags)
          || ! bfd_set_section_alignment (dynobj, htab->srelbrlt, 3))
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Create .got and .rela.got sections in DYNOBJ, and set up
    shortcuts to them in our hash table.  */
 
-static boolean
+static bfd_boolean
 create_got_section (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -2390,7 +2390,7 @@ create_got_section (dynobj, info)
   struct ppc_link_hash_table *htab;
 
   if (! _bfd_elf_create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   htab = ppc_hash_table (info);
   htab->sgot = bfd_get_section_by_name (dynobj, ".got");
@@ -2404,13 +2404,13 @@ create_got_section (dynobj, info)
                                   | SEC_IN_MEMORY | SEC_LINKER_CREATED
                                   | SEC_READONLY))
       || ! bfd_set_section_alignment (dynobj, htab->srelgot, 3))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Create the dynamic sections, and set up shortcuts.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_create_dynamic_sections (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -2419,10 +2419,10 @@ ppc64_elf_create_dynamic_sections (dynobj, info)
 
   htab = ppc_hash_table (info);
   if (!htab->sgot && !create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   if (!_bfd_elf_create_dynamic_sections (dynobj, info))
-    return false;
+    return FALSE;
 
   htab->splt = bfd_get_section_by_name (dynobj, ".plt");
   htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt");
@@ -2434,7 +2434,7 @@ ppc64_elf_create_dynamic_sections (dynobj, info)
       || (!info->shared && !htab->srelbss))
     abort ();
 
-  return true;
+  return TRUE;
 }
 
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
@@ -2493,7 +2493,7 @@ ppc64_elf_copy_indirect_symbol (bed, dir, ind)
 /* Set a flag, used by ppc64_elf_gc_mark_hook, on the entry symbol and
    symbols undefined on the command-line.  */
 
-boolean
+bfd_boolean
 ppc64_elf_mark_entry_syms (info)
      struct bfd_link_info *info;
 {
@@ -2505,18 +2505,18 @@ ppc64_elf_mark_entry_syms (info)
     {
       struct elf_link_hash_entry *h;
 
-      h = elf_link_hash_lookup (&htab->elf, sym->name, false, false, false);
+      h = elf_link_hash_lookup (&htab->elf, sym->name, FALSE, FALSE, FALSE);
       if (h != NULL)
        ((struct ppc_link_hash_entry *) h)->is_entry = 1;
     }
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase, and
    calculate needed space in the global offset table, procedure
    linkage table, and dynamic reloc sections.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2532,7 +2532,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
   asection **opd_sym_map;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   htab = ppc_hash_table (info);
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -2564,7 +2564,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
       amt = sec->_raw_size * sizeof (union opd_info) / 24;
       opd_sym_map = (asection **) bfd_zalloc (abfd, amt);
       if (opd_sym_map == NULL)
-       return false;
+       return FALSE;
       elf_section_data (sec)->tdata = opd_sym_map;
     }
 
@@ -2572,7 +2572,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
     htab->elf.dynobj = abfd;
   if (htab->sfpr == NULL
       && !create_linkage_sections (htab->elf.dynobj, info))
-    return false;
+    return FALSE;
 
   rel_end = relocs + sec->reloc_count;
   for (rel = relocs; rel < rel_end; rel++)
@@ -2601,7 +2601,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
          /* This symbol requires a global offset table entry.  */
          if (htab->sgot == NULL
              && !create_got_section (htab->elf.dynobj, info))
-           return false;
+           return FALSE;
 
          if (h != NULL)
            {
@@ -2622,7 +2622,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
                  local_got_refcounts = ((bfd_signed_vma *)
                                         bfd_zalloc (abfd, size));
                  if (local_got_refcounts == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_refcounts (abfd) = local_got_refcounts;
                }
              local_got_refcounts[r_symndx] += 1;
@@ -2644,7 +2644,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
              /* It does not make sense to have a procedure linkage
                 table entry for a local symbol.  */
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
 
          h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
@@ -2673,14 +2673,14 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
        case R_PPC64_GNU_VTINHERIT:
          if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_PPC64_GNU_VTENTRY:
          if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-           return false;
+           return FALSE;
          break;
 
        case R_PPC64_REL14:
@@ -2711,7 +2711,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
              struct elf_link_hash_entry *fdh;
 
              fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1,
-                                         false, false, false);
+                                         FALSE, FALSE, FALSE);
              if (fdh != NULL)
                {
                  ((struct ppc_link_hash_entry *) fdh)->is_func_descriptor = 1;
@@ -2731,7 +2731,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
              s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec,
                                             r_symndx);
              if (s == NULL)
-               return false;
+               return FALSE;
              else if (s != sec)
                opd_sym_map[rel->r_offset / 24] = s;
            }
@@ -2815,7 +2815,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  if (strncmp (name, ".rela", 5) != 0
                      || strcmp (bfd_get_section_name (abfd, sec),
@@ -2841,7 +2841,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 3))
-                       return false;
+                       return FALSE;
                    }
                  elf_section_data (sec)->sreloc = sreloc;
                }
@@ -2862,7 +2862,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
                  s = bfd_section_from_r_symndx (abfd, &htab->sym_sec,
                                                 sec, r_symndx);
                  if (s == NULL)
-                   return false;
+                   return FALSE;
 
                  head = ((struct ppc_dyn_relocs **)
                          &elf_section_data (s)->local_dynrel);
@@ -2875,7 +2875,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
                       bfd_alloc (htab->elf.dynobj,
                                  (bfd_size_type) sizeof *p));
                  if (p == NULL)
-                   return false;
+                   return FALSE;
                  p->next = *head;
                  *head = p;
                  p->sec = sec;
@@ -2894,7 +2894,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -2937,7 +2937,7 @@ ppc64_elf_gc_mark_hook (sec, info, rel, h, sym)
              /* Function entry syms return NULL if they are in .opd
                 and are not ._start (or others undefined on the ld
                 command line).  Thus we avoid marking all function
-                sections, as all functions are referenced in .opd.  */ 
+                sections, as all functions are referenced in .opd.  */
              else if ((fdh->oh != NULL
                        && ((struct ppc_link_hash_entry *) fdh->oh)->is_entry)
                       || elf_section_data (sec)->tdata == NULL)
@@ -2971,7 +2971,7 @@ ppc64_elf_gc_mark_hook (sec, info, rel, h, sym)
 /* Update the .got, .plt. and dynamic reloc reference counts for the
    section being removed.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -3112,13 +3112,13 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec, relocs)
          break;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Called via elf_link_hash_traverse to transfer dynamic linking
    information on function code symbol entries to their corresponding
    function descriptor symbol entries.  */
-static boolean
+static bfd_boolean
 func_desc_adjust (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -3127,7 +3127,7 @@ func_desc_adjust (h, inf)
   struct ppc_link_hash_table *htab;
 
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -3138,25 +3138,25 @@ func_desc_adjust (h, inf)
   /* If this is a function code symbol, transfer dynamic linking
      information to the function descriptor symbol.  */
   if (!((struct ppc_link_hash_entry *) h)->is_func)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_undefweak
       && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR))
-    htab->have_undefweak = true;
+    htab->have_undefweak = TRUE;
 
   if (h->plt.refcount > 0
       && h->root.root.string[0] == '.'
       && h->root.root.string[1] != '\0')
     {
       struct elf_link_hash_entry *fdh = ((struct ppc_link_hash_entry *) h)->oh;
-      boolean force_local;
+      bfd_boolean force_local;
 
       /* Find the corresponding function descriptor symbol.  Create it
         as undefined if necessary.  */
 
       if (fdh == NULL)
        fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1,
-                                   false, false, true);
+                                   FALSE, FALSE, TRUE);
 
       if (fdh == NULL
          && info->shared
@@ -3179,9 +3179,9 @@ func_desc_adjust (h, inf)
          bh = &fdh->root;
          if ( !(_bfd_generic_link_add_one_symbol
                 (info, abfd, newsym->name, newsym->flags,
-                 newsym->section, newsym->value, NULL, false, false, &bh)))
+                 newsym->section, newsym->value, NULL, FALSE, FALSE, &bh)))
            {
-             return false;
+             return FALSE;
            }
          fdh = (struct elf_link_hash_entry *) bh;
          fdh->elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
@@ -3195,7 +3195,7 @@ func_desc_adjust (h, inf)
        {
          if (fdh->dynindx == -1)
            if (! bfd_elf64_link_record_dynamic_symbol (info, fdh))
-             return false;
+             return FALSE;
          fdh->elf_link_hash_flags |= (h->elf_link_hash_flags
                                       & (ELF_LINK_HASH_REF_REGULAR
                                          | ELF_LINK_HASH_REF_DYNAMIC
@@ -3229,7 +3229,7 @@ func_desc_adjust (h, inf)
       _bfd_elf_link_hash_hide_symbol (info, h, force_local);
     }
 
-  return true;
+  return TRUE;
 }
 
 #define MIN_SAVE_FPR 14
@@ -3239,7 +3239,7 @@ func_desc_adjust (h, inf)
    this hook to a) provide some gcc support functions, and b) transfer
    dynamic linking information gathered so far on function code symbol
    entries, to their corresponding function descriptor symbol entries.  */
-static boolean
+static bfd_boolean
 ppc64_elf_func_desc_adjust (obfd, info)
      bfd *obfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -3256,7 +3256,7 @@ ppc64_elf_func_desc_adjust (obfd, info)
 
   if (htab->sfpr == NULL)
     /* We don't have any relocs.  */
-    return true;
+    return TRUE;
 
   /* First provide any missing ._savef* and ._restf* functions.  */
   memcpy (sym, "._savef14", 10);
@@ -3264,7 +3264,7 @@ ppc64_elf_func_desc_adjust (obfd, info)
     {
       sym[7] = i / 10 + '0';
       sym[8] = i % 10 + '0';
-      h = elf_link_hash_lookup (&htab->elf, sym, false, false, true);
+      h = elf_link_hash_lookup (&htab->elf, sym, FALSE, FALSE, TRUE);
       if (h != NULL
          && h->root.type == bfd_link_hash_undefined)
        {
@@ -3284,7 +3284,7 @@ ppc64_elf_func_desc_adjust (obfd, info)
     {
       sym[7] = i / 10 + '0';
       sym[8] = i % 10 + '0';
-      h = elf_link_hash_lookup (&htab->elf, sym, false, false, true);
+      h = elf_link_hash_lookup (&htab->elf, sym, FALSE, FALSE, TRUE);
       if (h != NULL
          && h->root.type == bfd_link_hash_undefined)
        {
@@ -3310,7 +3310,7 @@ ppc64_elf_func_desc_adjust (obfd, info)
       if (!htab->have_undefweak)
        {
          _bfd_strip_section_from_output (info, htab->sfpr);
-         return true;
+         return TRUE;
        }
 
       htab->sfpr->_raw_size = 4;
@@ -3318,7 +3318,7 @@ ppc64_elf_func_desc_adjust (obfd, info)
 
   p = (bfd_byte *) bfd_alloc (htab->elf.dynobj, htab->sfpr->_raw_size);
   if (p == NULL)
-    return false;
+    return FALSE;
   htab->sfpr->contents = p;
 
   for (i = lowest_savef; i <= MAX_SAVE_FPR; i++)
@@ -3347,7 +3347,7 @@ ppc64_elf_func_desc_adjust (obfd, info)
       bfd_put_32 (htab->elf.dynobj, BLR, p);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -3356,7 +3356,7 @@ ppc64_elf_func_desc_adjust (obfd, info)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -3385,7 +3385,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h)
          h->plt.offset = (bfd_vma) -1;
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
        }
-      return true;
+      return TRUE;
     }
   else
     h->plt.offset = (bfd_vma) -1;
@@ -3399,7 +3399,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -3410,12 +3410,12 @@ ppc64_elf_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   eh = (struct ppc_link_hash_entry *) h;
   for (p = eh->dyn_relocs; p != NULL; p = p->next)
@@ -3430,7 +3430,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h)
   if (p == NULL)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -3465,7 +3465,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s))
     {
       if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -3475,7 +3475,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* If given a function descriptor symbol, hide both the function code
@@ -3484,7 +3484,7 @@ static void
 ppc64_elf_hide_symbol (info, h, force_local)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
-     boolean force_local;
+     bfd_boolean force_local;
 {
   _bfd_elf_link_hash_hide_symbol (info, h, force_local);
 
@@ -3511,7 +3511,7 @@ ppc64_elf_hide_symbol (info, h, force_local)
          save = *p;
          *(char *) p = '.';
          htab = ppc_hash_table (info);
-         fh = elf_link_hash_lookup (&htab->elf, p, false, false, false);
+         fh = elf_link_hash_lookup (&htab->elf, p, FALSE, FALSE, FALSE);
          *(char *) p = save;
 
          /* Unfortunately, if it so happens that the string we were
@@ -3524,7 +3524,7 @@ ppc64_elf_hide_symbol (info, h, force_local)
              while (q >= h->root.root.string && *q == *p)
                --q, --p;
              if (q < h->root.root.string && *p == '.')
-               fh = elf_link_hash_lookup (&htab->elf, p, false, false, false);
+               fh = elf_link_hash_lookup (&htab->elf, p, FALSE, FALSE, FALSE);
            }
          if (fh != NULL)
            {
@@ -3537,7 +3537,7 @@ ppc64_elf_hide_symbol (info, h, force_local)
     }
 }
 
-boolean
+bfd_boolean
 ppc64_elf_edit_opd (obfd, info)
      bfd *obfd;
      struct bfd_link_info *info;
@@ -3557,7 +3557,7 @@ ppc64_elf_edit_opd (obfd, info)
       bfd_vma offset;
       bfd_size_type amt;
       long *adjust;
-      boolean need_edit;
+      bfd_boolean need_edit;
 
       sec = bfd_get_section_by_name (ibfd, ".opd");
       if (sec == NULL)
@@ -3586,15 +3586,15 @@ ppc64_elf_edit_opd (obfd, info)
       sym_hashes = elf_sym_hashes (ibfd);
 
       /* Read the relocations.  */
-      relstart = _bfd_elf64_link_read_relocs (obfd, sec, (PTR) NULL,
+      relstart = _bfd_elf64_link_read_relocs (ibfd, sec, (PTR) NULL,
                                              (Elf_Internal_Rela *) NULL,
                                              info->keep_memory);
       if (relstart == NULL)
-       return false;
+       return FALSE;
 
       /* First run through the relocs to check they are sane, and to
         determine whether we need to edit this opd section.  */
-      need_edit = false;
+      need_edit = FALSE;
       offset = 0;
       relend = relstart + sec->reloc_count;
       for (rel = relstart; rel < relend; rel++)
@@ -3617,7 +3617,7 @@ ppc64_elf_edit_opd (obfd, info)
              (*_bfd_error_handler)
                (_("%s: unexpected reloc type %u in .opd section"),
                 bfd_archive_filename (ibfd), r_type);
-             need_edit = false;
+             need_edit = FALSE;
              break;
            }
 
@@ -3633,11 +3633,11 @@ ppc64_elf_edit_opd (obfd, info)
                 "ld -r" we might have padding in the middle of .opd.
                 Also, there's nothing to prevent someone putting
                 something silly in .opd with the assembler.  No .opd
-                optimization for them!  */ 
+                optimization for them!  */
              (*_bfd_error_handler)
                (_("%s: .opd is not a regular array of opd entries"),
                 bfd_archive_filename (ibfd));
-             need_edit = false;
+             need_edit = FALSE;
              break;
            }
 
@@ -3680,7 +3680,7 @@ ppc64_elf_edit_opd (obfd, info)
                (_("%s: undefined sym `%s' in .opd section"),
                 bfd_archive_filename (ibfd),
                 h != NULL ? h->root.root.string : "<local symbol>");
-             need_edit = false;
+             need_edit = FALSE;
              break;
            }
 
@@ -3693,7 +3693,7 @@ ppc64_elf_edit_opd (obfd, info)
             which we test for via the output_section.  */
          if (sym_sec->owner != ibfd
              || sym_sec->output_section == bfd_abs_section_ptr)
-           need_edit = true;
+           need_edit = TRUE;
 
          offset += 24;
        }
@@ -3702,7 +3702,7 @@ ppc64_elf_edit_opd (obfd, info)
        {
          Elf_Internal_Rela *write_rel;
          bfd_byte *rptr, *wptr;
-         boolean skip;
+         bfd_boolean skip;
 
          /* This seems a waste of time as input .opd sections are all
             zeros as generated by gcc, but I suppose there's no reason
@@ -3721,7 +3721,7 @@ ppc64_elf_edit_opd (obfd, info)
                error_free_rel:
                  if (elf_section_data (sec)->relocs != relstart)
                    free (relstart);
-                 return false;
+                 return FALSE;
                }
              sec->contents = loc;
              sec->flags |= (SEC_IN_MEMORY | SEC_HAS_CONTENTS);
@@ -3732,7 +3732,7 @@ ppc64_elf_edit_opd (obfd, info)
          wptr = sec->contents;
          rptr = sec->contents;
          write_rel = relstart;
-         skip = false;
+         skip = FALSE;
          offset = 0;
          for (rel = relstart; rel < relend; rel++)
            {
@@ -3789,7 +3789,7 @@ ppc64_elf_edit_opd (obfd, info)
                              htab = ppc_hash_table (info);
                              fdh = (struct ppc_link_hash_entry *)
                                elf_link_hash_lookup (&htab->elf, fd_name,
-                                                     false, false, false);
+                                                     FALSE, FALSE, FALSE);
                              fdh->is_func_descriptor = 1;
                              fdh->oh = &fh->elf;
                              fh->is_func = 1;
@@ -3824,7 +3824,7 @@ ppc64_elf_edit_opd (obfd, info)
                              htab = ppc_hash_table (info);
                              fdh = (struct ppc_link_hash_entry *)
                                elf_link_hash_lookup (&htab->elf, fd_name,
-                                                     false, false, false);
+                                                     FALSE, FALSE, FALSE);
                              fdh->is_func_descriptor = 1;
                              fdh->oh = &fh->elf;
                              fh->is_func = 1;
@@ -3840,7 +3840,7 @@ ppc64_elf_edit_opd (obfd, info)
                             we'd need to look through the local syms
                             for the function descriptor sym which we
                             don't have at the moment.  So keep an
-                            array of adjustments.  */ 
+                            array of adjustments.  */
                          adjust[rel->r_offset / 24] = wptr - rptr;
                        }
 
@@ -3866,6 +3866,11 @@ ppc64_elf_edit_opd (obfd, info)
 
          sec->_cooked_size = wptr - sec->contents;
          sec->reloc_count = write_rel - relstart;
+         /* Fudge the size too, as this is used later in
+            elf_bfd_final_link if we are emitting relocs.  */
+         elf_section_data (sec)->rel_hdr.sh_size
+           = sec->reloc_count * elf_section_data (sec)->rel_hdr.sh_entsize;
+         BFD_ASSERT (elf_section_data (sec)->rel_hdr2 == NULL);
        }
       else if (elf_section_data (sec)->relocs != relstart)
        free (relstart);
@@ -3880,9 +3885,9 @@ ppc64_elf_edit_opd (obfd, info)
        }
     }
 
-  return true;
+  return TRUE;
 }
-     
+
 /* This is the condition under which ppc64_elf_finish_dynamic_symbol
    will be called from elflink.h.  If elflink.h doesn't call our
    finish_dynamic_symbol routine, we'll need to do something about
@@ -3897,7 +3902,7 @@ ppc64_elf_edit_opd (obfd, info)
 /* Allocate space in .plt, .got and associated reloc sections for
    dynamic relocs.  */
 
-static boolean
+static bfd_boolean
 allocate_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -3909,7 +3914,7 @@ allocate_dynrelocs (h, inf)
   struct ppc_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -3963,7 +3968,7 @@ allocate_dynrelocs (h, inf)
 
   if (h->got.refcount > 0)
     {
-      boolean dyn;
+      bfd_boolean dyn;
 
       /* Make sure this symbol is output as a dynamic symbol.
         Undefined weak syms won't yet be marked as dynamic.  */
@@ -3971,7 +3976,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = htab->sgot;
@@ -3986,7 +3991,7 @@ allocate_dynrelocs (h, inf)
 
   eh = (struct ppc_link_hash_entry *) h;
   if (eh->dyn_relocs == NULL)
-    return true;
+    return TRUE;
 
   /* In the shared -Bsymbolic case, discard space allocated for
      dynamic pc-relative relocs against symbols which turn out to be
@@ -4032,7 +4037,7 @@ allocate_dynrelocs (h, inf)
              && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
            {
              if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          /* If that succeeded, we know we'll be keeping all the
@@ -4053,12 +4058,12 @@ allocate_dynrelocs (h, inf)
       sreloc->_raw_size += p->count * sizeof (Elf64_External_Rela);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Find any dynamic relocs that apply to read-only sections.  */
 
-static boolean
+static bfd_boolean
 readonly_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -4081,15 +4086,15 @@ readonly_dynrelocs (h, inf)
          info->flags |= DF_TEXTREL;
 
          /* Not an error, just cut short the traversal.  */
-         return false;
+         return FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -4097,7 +4102,7 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
   struct ppc_link_hash_table *htab;
   bfd *dynobj;
   asection *s;
-  boolean relocs;
+  bfd_boolean relocs;
   bfd *ibfd;
 
   htab = ppc_hash_table (info);
@@ -4187,7 +4192,7 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
 
   /* We now have determined the sizes of the various dynamic sections.
      Allocate memory for them.  */
-  relocs = false;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
@@ -4220,7 +4225,7 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
          else
            {
              if (s != htab->srelplt)
-               relocs = true;
+               relocs = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -4250,7 +4255,7 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
         of garbage.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
     }
 
   if (htab->elf.dynamic_sections_created)
@@ -4266,7 +4271,7 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (htab->splt != NULL && htab->splt->_raw_size != 0)
@@ -4276,14 +4281,14 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0)
              || !add_dynamic_entry (DT_PPC64_GLINK, 0))
-           return false;
+           return FALSE;
        }
 
       if (NO_OPD_RELOCS)
        {
          if (!add_dynamic_entry (DT_PPC64_OPD, 0)
              || !add_dynamic_entry (DT_PPC64_OPDSZ, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -4291,7 +4296,7 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_RELA, 0)
              || !add_dynamic_entry (DT_RELASZ, 0)
              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela)))
-           return false;
+           return FALSE;
 
          /* If any dynamic relocs apply to a read-only section,
             then we need a DT_TEXTREL entry.  */
@@ -4302,13 +4307,13 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
          if ((info->flags & DF_TEXTREL) != 0)
            {
              if (!add_dynamic_entry (DT_TEXTREL, 0))
-               return false;
+               return FALSE;
            }
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* Determine the type of stub needed, if any, for a call.  */
@@ -4394,7 +4399,7 @@ build_plt_stub (obfd, p, offset, glink)
   return p;
 }
 
-static boolean
+static bfd_boolean
 ppc_build_one_stub (gen_entry, in_arg)
      struct bfd_hash_entry *gen_entry;
      PTR in_arg;
@@ -4446,13 +4451,13 @@ ppc_build_one_stub (gen_entry, in_arg)
     case ppc_stub_plt_branch:
       br_entry = ppc_branch_hash_lookup (&htab->branch_hash_table,
                                         stub_entry->root.string + 9,
-                                        false, false);
+                                        FALSE, FALSE);
       if (br_entry == NULL)
        {
          (*_bfd_error_handler) (_("can't find branch stub `%s'"),
                                 stub_entry->root.string + 9);
-         htab->stub_error = true;
-         return false;
+         htab->stub_error = TRUE;
+         return FALSE;
        }
 
       off = (stub_entry->target_value
@@ -4466,7 +4471,7 @@ ppc_build_one_stub (gen_entry, in_arg)
        {
          /* Create a reloc for the branch lookup table entry.  */
          Elf_Internal_Rela rela;
-         Elf64_External_Rela *r;
+         bfd_byte *loc;
 
          rela.r_offset = (br_entry->offset
                           + htab->sbrlt->output_offset
@@ -4474,9 +4479,9 @@ ppc_build_one_stub (gen_entry, in_arg)
          rela.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE);
          rela.r_addend = off;
 
-         r = (Elf64_External_Rela *) htab->srelbrlt->contents;
-         r += htab->srelbrlt->reloc_count++;
-         bfd_elf64_swap_reloca_out (htab->srelbrlt->owner, &rela, r);
+         loc = htab->srelbrlt->contents;
+         loc += htab->srelbrlt->reloc_count++ * sizeof (Elf64_External_Rela);
+         bfd_elf64_swap_reloca_out (htab->srelbrlt->owner, &rela, loc);
        }
 
       off = (br_entry->offset
@@ -4491,8 +4496,8 @@ ppc_build_one_stub (gen_entry, in_arg)
            (_("linkage table error against `%s'"),
             stub_entry->root.string);
          bfd_set_error (bfd_error_bad_value);
-         htab->stub_error = true;
-         return false;
+         htab->stub_error = TRUE;
+         return FALSE;
        }
 
       indx = off;
@@ -4535,8 +4540,8 @@ ppc_build_one_stub (gen_entry, in_arg)
            (_("linkage table error against `%s'"),
             stub_entry->h->elf.root.root.string);
          bfd_set_error (bfd_error_bad_value);
-         htab->stub_error = true;
-         return false;
+         htab->stub_error = TRUE;
+         return FALSE;
        }
 
       p = build_plt_stub (stub_bfd, loc, (int) off, 0);
@@ -4545,18 +4550,18 @@ ppc_build_one_stub (gen_entry, in_arg)
 
     default:
       BFD_FAIL ();
-      return false;
+      return FALSE;
     }
 
   stub_sec->_cooked_size += size;
-  return true;
+  return TRUE;
 }
 
 /* As above, but don't actually build the stub.  Just bump offset so
    we know stub section sizes, and select plt_branch stubs where
    long_branch stubs won't do.  */
 
-static boolean
+static bfd_boolean
 ppc_size_one_stub (gen_entry, in_arg)
      struct bfd_hash_entry *gen_entry;
      PTR in_arg;
@@ -4601,13 +4606,13 @@ ppc_size_one_stub (gen_entry, in_arg)
 
          br_entry = ppc_branch_hash_lookup (&htab->branch_hash_table,
                                             stub_entry->root.string + 9,
-                                            true, false);
+                                            TRUE, FALSE);
          if (br_entry == NULL)
            {
              (*_bfd_error_handler) (_("can't build branch stub `%s'"),
                                     stub_entry->root.string + 9);
-             htab->stub_error = true;
-             return false;
+             htab->stub_error = TRUE;
+             return FALSE;
            }
 
          if (br_entry->iter != htab->stub_iteration)
@@ -4622,7 +4627,7 @@ ppc_size_one_stub (gen_entry, in_arg)
     }
 
   stub_entry->stub_sec->_raw_size += size;
-  return true;
+  return TRUE;
 }
 
 /* Set up various things so that we can make a list of input sections
@@ -4738,7 +4743,7 @@ static void
 group_sections (htab, stub_group_size, stubs_always_before_branch)
      struct ppc_link_hash_table *htab;
      bfd_size_type stub_group_size;
-     boolean stubs_always_before_branch;
+     bfd_boolean stubs_always_before_branch;
 {
   asection **list = htab->input_list + htab->top_index;
   do
@@ -4808,7 +4813,7 @@ group_sections (htab, stub_group_size, stubs_always_before_branch)
    PC-relative calls to a target that is unreachable with a "bl"
    instruction.  */
 
-boolean
+bfd_boolean
 ppc64_elf_size_stubs (output_bfd, stub_bfd, info, group_size,
                      add_stub_section, layout_sections_again)
      bfd *output_bfd;
@@ -4819,7 +4824,7 @@ ppc64_elf_size_stubs (output_bfd, stub_bfd, info, group_size,
      void (*layout_sections_again) PARAMS ((void));
 {
   bfd_size_type stub_group_size;
-  boolean stubs_always_before_branch;
+  bfd_boolean stubs_always_before_branch;
   struct ppc_link_hash_table *htab = ppc_hash_table (info);
 
   /* Stash our params away.  */
@@ -4846,10 +4851,10 @@ ppc64_elf_size_stubs (output_bfd, stub_bfd, info, group_size,
       bfd *input_bfd;
       unsigned int bfd_indx;
       asection *stub_sec;
-      boolean stub_changed;
+      bfd_boolean stub_changed;
 
       htab->stub_iteration += 1;
-      stub_changed = false;
+      stub_changed = FALSE;
 
       for (input_bfd = info->input_bfds, bfd_indx = 0;
           input_bfd != NULL;
@@ -5005,7 +5010,7 @@ ppc64_elf_size_stubs (output_bfd, stub_bfd, info, group_size,
                    goto error_ret_free_internal;
 
                  stub_entry = ppc_stub_hash_lookup (&htab->stub_hash_table,
-                                                    stub_name, false, false);
+                                                    stub_name, FALSE, FALSE);
                  if (stub_entry != NULL)
                    {
                      /* The proper stub has already been created.  */
@@ -5025,14 +5030,14 @@ ppc64_elf_size_stubs (output_bfd, stub_bfd, info, group_size,
                          && (symtab_hdr->contents
                              != (unsigned char *) local_syms))
                        free (local_syms);
-                     return false;
+                     return FALSE;
                    }
 
                  stub_entry->target_value = sym_value;
                  stub_entry->target_section = sym_sec;
                  stub_entry->stub_type = stub_type;
                  stub_entry->h = hash;
-                 stub_changed = true;
+                 stub_changed = TRUE;
                }
 
              /* We're done with the internal relocs, free them.  */
@@ -5076,7 +5081,7 @@ ppc64_elf_size_stubs (output_bfd, stub_bfd, info, group_size,
      the dynamic symbol table is corrupted since the section symbol
      for the stripped section isn't written.  */
 
-  return true;
+  return TRUE;
 }
 
 /* Called after we have determined section placement.  If sections
@@ -5140,7 +5145,7 @@ ppc64_elf_toc (obfd)
    The stubs are kept in a hash table attached to the main linker
    hash table.  This function is called via gldelf64ppc_finish.  */
 
-boolean
+bfd_boolean
 ppc64_elf_build_stubs (info)
      struct bfd_link_info *info;
 {
@@ -5161,7 +5166,7 @@ ppc64_elf_build_stubs (info)
        {
          stub_sec->contents = (bfd_byte *) bfd_zalloc (htab->stub_bfd, size);
          if (stub_sec->contents == NULL)
-           return false;
+           return FALSE;
        }
       stub_sec->_cooked_size = 0;
     }
@@ -5212,7 +5217,7 @@ ppc64_elf_build_stubs (info)
       htab->sbrlt->contents = (bfd_byte *) bfd_zalloc (htab->sbrlt->owner,
                                                       htab->sbrlt->_raw_size);
       if (htab->sbrlt->contents == NULL)
-       return false;
+       return FALSE;
     }
 
   /* Build the stubs as directed by the stub hash table.  */
@@ -5229,7 +5234,7 @@ ppc64_elf_build_stubs (info)
   if (stub_sec != NULL
       || htab->sglink->_raw_size != htab->sglink->_cooked_size)
     {
-      htab->stub_error = true;
+      htab->stub_error = TRUE;
       (*_bfd_error_handler) (_("stubs don't match calculated size"));
     }
 
@@ -5265,7 +5270,7 @@ ppc64_elf_build_stubs (info)
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                            contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -5284,13 +5289,13 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
   bfd_vma *local_got_offsets;
   bfd_vma TOCstart;
-  boolean ret = true;
-  boolean is_opd;
+  bfd_boolean ret = TRUE;
+  bfd_boolean is_opd;
   /* Disabled until we sort out how ld should choose 'y' vs 'at'.  */
-  boolean is_power4 = false;
+  bfd_boolean is_power4 = FALSE;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   /* Initialize howto table if needed.  */
   if (!ppc64_elf_howto_table[R_PPC64_ADDR32])
@@ -5318,8 +5323,8 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       const char *sym_name;
       unsigned long r_symndx;
       bfd_vma relocation;
-      boolean unresolved_reloc;
-      boolean warned;
+      bfd_boolean unresolved_reloc;
+      bfd_boolean warned;
       long insn;
       struct ppc_stub_hash_entry *stub_entry;
       bfd_vma max_br_offset;
@@ -5334,8 +5339,8 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       sec = (asection *) 0;
       h = (struct elf_link_hash_entry *) 0;
       sym_name = (const char *) 0;
-      unresolved_reloc = false;
-      warned = false;
+      unresolved_reloc = FALSE;
+      warned = FALSE;
 
       if (r_type == R_PPC64_TOC)
        {
@@ -5380,7 +5385,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                   relocation value for this symbol.  output_section
                   is typically NULL for symbols satisfied by a shared
                   library.  */
-               unresolved_reloc = true;
+               unresolved_reloc = TRUE;
              else
                relocation = (h->root.u.def.value
                              + sec->output_section->vma
@@ -5400,8 +5405,8 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      offset, (!info->shared
                               || info->no_undefined
                               || ELF_ST_VISIBILITY (h->other)))))
-               return false;
-             warned = true;
+               return FALSE;
+             warned = TRUE;
            }
        }
 
@@ -5460,7 +5465,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              && (stub_entry = ppc_get_stub_entry (input_section, sec, fdh,
                                                   rel, htab)) != NULL)
            {
-             boolean can_plt_call = 0;
+             bfd_boolean can_plt_call = 0;
 
              if (offset + 8 <= input_section->_cooked_size)
                {
@@ -5489,7 +5494,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                + stub_entry->stub_sec->output_offset
                                + stub_entry->stub_sec->output_section->vma);
                  addend = 0;
-                 unresolved_reloc = false;
+                 unresolved_reloc = FALSE;
                }
            }
 
@@ -5528,7 +5533,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
             bfd_archive_filename (input_bfd), (int) r_type, sym_name);
 
          bfd_set_error (bfd_error_bad_value);
-         ret = false;
+         ret = FALSE;
          continue;
 
        case R_PPC64_NONE:
@@ -5556,7 +5561,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
            if (h != NULL)
              {
-               boolean dyn;
+               bfd_boolean dyn;
 
                off = h->got.offset;
                dyn = htab->elf.dynamic_sections_created;
@@ -5591,7 +5596,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      }
                  }
                else
-                 unresolved_reloc = false;
+                 unresolved_reloc = FALSE;
              }
            else
              {
@@ -5613,7 +5618,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    if (info->shared)
                      {
                        Elf_Internal_Rela outrel;
-                       Elf64_External_Rela *loc;
+                       bfd_byte *loc;
 
                        /* We need to generate a R_PPC64_RELATIVE reloc
                           for the dynamic linker.  */
@@ -5622,8 +5627,9 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                           + off);
                        outrel.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE);
                        outrel.r_addend = relocation;
-                       loc = (Elf64_External_Rela *) htab->srelgot->contents;
-                       loc += htab->srelgot->reloc_count++;
+                       loc = htab->srelgot->contents;
+                       loc += (htab->srelgot->reloc_count++
+                               * sizeof (Elf64_External_Rela));
                        bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
                      }
 
@@ -5666,7 +5672,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
          relocation = (htab->splt->output_section->vma
                        + htab->splt->output_offset
                        + h->plt.offset);
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
          break;
 
          /* TOC16 relocs.  We want the offset relative to the TOC base,
@@ -5756,24 +5762,24 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      || h->root.type == bfd_link_hash_undefined)))
            {
              Elf_Internal_Rela outrel;
-             boolean skip, relocate;
+             bfd_boolean skip, relocate;
              asection *sreloc;
-             Elf64_External_Rela *loc;
+             bfd_byte *loc;
 
              /* When generating a dynamic object, these relocations
                 are copied into the output file to be resolved at run
                 time.  */
 
-             skip = false;
-             relocate = false;
+             skip = FALSE;
+             relocate = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
              outrel.r_offset += (input_section->output_section->vma
                                  + input_section->output_offset);
              outrel.r_addend = addend;
@@ -5795,7 +5801,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                     or this is an opd section reloc which must point
                     at a local function.  */
                  outrel.r_addend += relocation;
-                 relocate = true;
+                 relocate = TRUE;
                  if (r_type == R_PPC64_ADDR64 || r_type == R_PPC64_TOC)
                    {
                      if (is_opd && h != NULL)
@@ -5810,7 +5816,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                             bug in binutils handling of weak syms.)
                             In these cases we won't use the opd
                             entry in this lib.  */
-                         unresolved_reloc = false;
+                         unresolved_reloc = FALSE;
                        }
                      outrel.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE);
                    }
@@ -5823,7 +5829,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      else if (sec == NULL || sec->owner == NULL)
                        {
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      else
                        {
@@ -5848,8 +5854,8 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (sreloc == NULL)
                abort ();
 
-             loc = (Elf64_External_Rela *) sreloc->contents;
-             loc += sreloc->reloc_count++;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela);
              bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* If this reloc is against an external symbol, it will
@@ -5884,7 +5890,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
             ppc64_elf_howto_table[(int) r_type]->name, sym_name);
 
          bfd_set_error (bfd_error_invalid_operation);
-         ret = false;
+         ret = FALSE;
          continue;
        }
 
@@ -5927,7 +5933,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                 bfd_archive_filename (input_bfd),
                 ppc64_elf_howto_table[(int) r_type]->name);
              bfd_set_error (bfd_error_bad_value);
-             ret = false;
+             ret = FALSE;
              continue;
            }
          break;
@@ -5974,7 +5980,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
             bfd_get_section_name (input_bfd, input_section),
             (long) rel->r_offset,
             h->root.root.string);
-         ret = false;
+         ret = FALSE;
        }
 
       r = _bfd_final_link_relocate (ppc64_elf_howto_table[(int) r_type],
@@ -6023,7 +6029,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (!((*info->callbacks->reloc_overflow)
                    (info, name, ppc64_elf_howto_table[(int) r_type]->name,
                     rel->r_addend, input_bfd, input_section, offset)))
-               return false;
+               return FALSE;
            }
          else
            {
@@ -6032,7 +6038,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                 bfd_archive_filename (input_bfd),
                 bfd_get_section_name (input_bfd, input_section),
                 (long) rel->r_offset, name, (int) r);
-             ret = false;
+             ret = FALSE;
            }
        }
     }
@@ -6043,7 +6049,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -6060,7 +6066,7 @@ ppc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       && ((struct ppc_link_hash_entry *) h)->is_func_descriptor)
     {
       Elf_Internal_Rela rela;
-      Elf64_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
         it up.  */
@@ -6079,15 +6085,16 @@ ppc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       rela.r_info = ELF64_R_INFO (h->dynindx, R_PPC64_JMP_SLOT);
       rela.r_addend = 0;
 
-      loc = (Elf64_External_Rela *) htab->srelplt->contents;
-      loc += (h->plt.offset - PLT_INITIAL_ENTRY_SIZE) / PLT_ENTRY_SIZE;
+      loc = htab->srelplt->contents;
+      loc += ((h->plt.offset - PLT_INITIAL_ENTRY_SIZE) / PLT_ENTRY_SIZE
+             * sizeof (Elf64_External_Rela));
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if (h->got.offset != (bfd_vma) -1)
     {
       Elf_Internal_Rela rela;
-      Elf64_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -6125,15 +6132,15 @@ ppc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
          rela.r_addend = 0;
        }
 
-      loc = (Elf64_External_Rela *) htab->srelgot->contents;
-      loc += htab->srelgot->reloc_count++;
+      loc = htab->srelgot->contents;
+      loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela);
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       Elf_Internal_Rela rela;
-      Elf64_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -6148,8 +6155,8 @@ ppc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF64_R_INFO (h->dynindx, R_PPC64_COPY);
       rela.r_addend = 0;
-      loc = (Elf64_External_Rela *) htab->srelbss->contents;
-      loc += htab->srelbss->reloc_count++;
+      loc = htab->srelbss->contents;
+      loc += htab->srelbss->reloc_count++ * sizeof (Elf64_External_Rela);
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
@@ -6157,7 +6164,7 @@ ppc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
   if (strcmp (h->root.root.string, "_DYNAMIC") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Used to decide how to sort relocs in an optimal manner for the
@@ -6185,7 +6192,7 @@ ppc64_elf_reloc_type_class (rela)
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 ppc64_elf_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -6220,30 +6227,32 @@ ppc64_elf_finish_dynamic_sections (output_bfd, info)
              continue;
 
            case DT_PPC64_GLINK:
-             dyn.d_un.d_ptr = (htab->sglink->output_section->vma
-                               + htab->sglink->output_offset);
+             s = htab->sglink;
+             dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
              break;
 
            case DT_PPC64_OPD:
              s = bfd_get_section_by_name (output_bfd, ".opd");
-             if (s != NULL)
-               dyn.d_un.d_ptr = s->vma;
+             if (s == NULL)
+               continue;
+             dyn.d_un.d_ptr = s->vma;
              break;
 
            case DT_PPC64_OPDSZ:
              s = bfd_get_section_by_name (output_bfd, ".opd");
-             if (s != NULL)
-               dyn.d_un.d_val = s->_raw_size;
+             if (s == NULL)
+               continue;
+             dyn.d_un.d_val = s->_raw_size;
              break;
 
            case DT_PLTGOT:
-             dyn.d_un.d_ptr = (htab->splt->output_section->vma
-                               + htab->splt->output_offset);
+             s = htab->splt;
+             dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
              break;
 
            case DT_JMPREL:
-             dyn.d_un.d_ptr = (htab->srelplt->output_section->vma
-                               + htab->srelplt->output_offset);
+             s = htab->srelplt;
+             dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
              break;
 
            case DT_PLTRELSZ:
@@ -6253,8 +6262,22 @@ ppc64_elf_finish_dynamic_sections (output_bfd, info)
            case DT_RELASZ:
              /* Don't count procedure linkage table relocs in the
                 overall reloc count.  */
-             if (htab->srelplt != NULL)
-               dyn.d_un.d_val -= htab->srelplt->_raw_size;
+             s = htab->srelplt;
+             if (s == NULL)
+               continue;
+             dyn.d_un.d_val -= s->_raw_size;
+             break;
+
+           case DT_RELA:
+             /* We may not be using the standard ELF linker script.
+                If .rela.plt is the first .rela section, we adjust
+                DT_RELA to not include it.  */
+             s = htab->srelplt;
+             if (s == NULL)
+               continue;
+             if (dyn.d_un.d_ptr != s->output_section->vma + s->output_offset)
+               continue;
+             dyn.d_un.d_ptr += s->_raw_size;
              break;
            }
 
@@ -6281,7 +6304,7 @@ ppc64_elf_finish_dynamic_sections (output_bfd, info)
        = PLT_ENTRY_SIZE;
     }
 
-  return true;
+  return TRUE;
 }
 
 #define TARGET_LITTLE_SYM      bfd_elf64_powerpcle_vec
index 21178d556d7adc6958fc5c75404d80a8145a7984..3115ea5c9f95989ee71e07326568f92d82f090df 100644 (file)
@@ -17,9 +17,9 @@ 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.  */
 
-boolean ppc64_elf_mark_entry_syms
+bfd_boolean ppc64_elf_mark_entry_syms
   PARAMS ((struct bfd_link_info *));
-boolean ppc64_elf_edit_opd
+bfd_boolean ppc64_elf_edit_opd
   PARAMS ((bfd *, struct bfd_link_info *));
 bfd_vma ppc64_elf_toc
   PARAMS ((bfd *));
@@ -27,8 +27,8 @@ int ppc64_elf_setup_section_lists
   PARAMS ((bfd *, struct bfd_link_info *));
 void ppc64_elf_next_input_section
   PARAMS ((struct bfd_link_info *, asection *));
-boolean ppc64_elf_size_stubs
+bfd_boolean ppc64_elf_size_stubs
   PARAMS ((bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
           asection *(*) (const char *, asection *), void (*) (void)));
-boolean ppc64_elf_build_stubs
+bfd_boolean ppc64_elf_build_stubs
   PARAMS ((struct bfd_link_info *));
index 296e349320070c6aa2130652c29cd0a7da2159e2..db5237f2e7f9a15288ee3b484c7082f20efea404 100644 (file)
@@ -29,47 +29,47 @@ static reloc_howto_type *elf_s390_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void elf_s390_info_to_howto
   PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-static boolean elf_s390_is_local_label_name
+static bfd_boolean elf_s390_is_local_label_name
   PARAMS ((bfd *, const char *));
 static struct bfd_hash_entry *link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *elf_s390_link_hash_table_create
   PARAMS ((bfd *));
-static boolean create_got_section
+static bfd_boolean create_got_section
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean elf_s390_create_dynamic_sections
+static bfd_boolean elf_s390_create_dynamic_sections
   PARAMS((bfd *, struct bfd_link_info *));
 static void elf_s390_copy_indirect_symbol
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
           struct elf_link_hash_entry *));
-static boolean elf_s390_check_relocs
+static bfd_boolean elf_s390_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 static asection *elf_s390_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean elf_s390_gc_sweep_hook
+static bfd_boolean elf_s390_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean elf_s390_adjust_dynamic_symbol
+static bfd_boolean elf_s390_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean allocate_dynrelocs
+static bfd_boolean allocate_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean readonly_dynrelocs
+static bfd_boolean readonly_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_s390_size_dynamic_sections
+static bfd_boolean elf_s390_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_s390_relocate_section
+static bfd_boolean elf_s390_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf_s390_finish_dynamic_symbol
+static bfd_boolean elf_s390_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
 static enum elf_reloc_type_class elf_s390_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
-static boolean elf_s390_finish_dynamic_sections
+static bfd_boolean elf_s390_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_s390_object_p PARAMS ((bfd *));
+static bfd_boolean elf_s390_object_p PARAMS ((bfd *));
 
 #include "elf/s390.h"
 
@@ -84,49 +84,49 @@ static reloc_howto_type elf_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_390_NONE",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
-
-  HOWTO(R_390_8,         0, 0,  8, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_8",       false, 0,0x000000ff, false),
-  HOWTO(R_390_12,        0, 1, 12, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_12",      false, 0,0x00000fff, false),
-  HOWTO(R_390_16,        0, 1, 16, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_16",      false, 0,0x0000ffff, false),
-  HOWTO(R_390_32,        0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_32",      false, 0,0xffffffff, false),
-  HOWTO(R_390_PC32,     0, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32",    false, 0,0xffffffff,  true),
-  HOWTO(R_390_GOT12,    0, 1, 12, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_GOT12",   false, 0,0x00000fff, false),
-  HOWTO(R_390_GOT32,    0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT32",   false, 0,0xffffffff, false),
-  HOWTO(R_390_PLT32,    0, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32",   false, 0,0xffffffff,  true),
-  HOWTO(R_390_COPY,      0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_COPY",    false, 0,MINUS_ONE, false),
-  HOWTO(R_390_GLOB_DAT,  0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GLOB_DAT",false, 0,MINUS_ONE, false),
-  HOWTO(R_390_JMP_SLOT,  0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_JMP_SLOT",false, 0,MINUS_ONE, false),
-  HOWTO(R_390_RELATIVE,  0, 4, 64,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_RELATIVE",false, 0,MINUS_ONE, false),
-  HOWTO(R_390_GOTOFF,    0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTOFF",  false, 0,MINUS_ONE, false),
-  HOWTO(R_390_GOTPC,     0, 4, 64,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPC",   false, 0,MINUS_ONE,  true),
-  HOWTO(R_390_GOT16,     0, 1, 16, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT16",   false, 0,0x0000ffff, false),
-  HOWTO(R_390_PC16,      0, 1, 16,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16",    false, 0,0x0000ffff,  true),
-  HOWTO(R_390_PC16DBL,   1, 1, 16,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16DBL", false, 0,0x0000ffff,  true),
-  HOWTO(R_390_PLT16DBL,  1, 1, 16,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT16DBL", false, 0,0x0000ffff,  true),
-  HOWTO(R_390_PC32DBL,  1, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32DBL", false, 0,0xffffffff,  true),
-  HOWTO(R_390_PLT32DBL,         1, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32DBL", false, 0,0xffffffff,  true),
-  HOWTO(R_390_GOTPCDBL,  1, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPCDBL", false, 0,MINUS_ONE,  true),
-  HOWTO(R_390_64,        0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_64",      false, 0,MINUS_ONE, false),
-  HOWTO(R_390_PC64,     0, 4, 64,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC64",    false, 0,MINUS_ONE,  true),
-  HOWTO(R_390_GOT64,    0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT64",   false, 0,MINUS_ONE, false),
-  HOWTO(R_390_PLT64,    0, 4, 64,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT64",   false, 0,MINUS_ONE,  true),
-  HOWTO(R_390_GOTENT,   1, 2, 32,  true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTENT",   false, 0,MINUS_ONE,  true),
+        FALSE),                /* pcrel_offset */
+
+  HOWTO(R_390_8,         0, 0,  8, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_8",       FALSE, 0,0x000000ff, FALSE),
+  HOWTO(R_390_12,        0, 1, 12, FALSE, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_12",      FALSE, 0,0x00000fff, FALSE),
+  HOWTO(R_390_16,        0, 1, 16, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_16",      FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(R_390_32,        0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_32",      FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_PC32,     0, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32",    FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_GOT12,    0, 1, 12, FALSE, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_GOT12",   FALSE, 0,0x00000fff, FALSE),
+  HOWTO(R_390_GOT32,    0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT32",   FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_PLT32,    0, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32",   FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_COPY,      0, 4, 64, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_COPY",    FALSE, 0,MINUS_ONE, FALSE),
+  HOWTO(R_390_GLOB_DAT,  0, 4, 64, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GLOB_DAT",FALSE, 0,MINUS_ONE, FALSE),
+  HOWTO(R_390_JMP_SLOT,  0, 4, 64, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_JMP_SLOT",FALSE, 0,MINUS_ONE, FALSE),
+  HOWTO(R_390_RELATIVE,  0, 4, 64,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_RELATIVE",FALSE, 0,MINUS_ONE, FALSE),
+  HOWTO(R_390_GOTOFF,    0, 4, 64, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTOFF",  FALSE, 0,MINUS_ONE, FALSE),
+  HOWTO(R_390_GOTPC,     0, 4, 64,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPC",   FALSE, 0,MINUS_ONE,  TRUE),
+  HOWTO(R_390_GOT16,     0, 1, 16, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT16",   FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(R_390_PC16,      0, 1, 16,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16",    FALSE, 0,0x0000ffff,  TRUE),
+  HOWTO(R_390_PC16DBL,   1, 1, 16,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16DBL", FALSE, 0,0x0000ffff,  TRUE),
+  HOWTO(R_390_PLT16DBL,  1, 1, 16,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT16DBL", FALSE, 0,0x0000ffff,  TRUE),
+  HOWTO(R_390_PC32DBL,  1, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32DBL", FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_PLT32DBL,         1, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32DBL", FALSE, 0,0xffffffff,  TRUE),
+  HOWTO(R_390_GOTPCDBL,  1, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPCDBL", FALSE, 0,MINUS_ONE,  TRUE),
+  HOWTO(R_390_64,        0, 4, 64, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_64",      FALSE, 0,MINUS_ONE, FALSE),
+  HOWTO(R_390_PC64,     0, 4, 64,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC64",    FALSE, 0,MINUS_ONE,  TRUE),
+  HOWTO(R_390_GOT64,    0, 4, 64, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT64",   FALSE, 0,MINUS_ONE, FALSE),
+  HOWTO(R_390_PLT64,    0, 4, 64,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT64",   FALSE, 0,MINUS_ONE,  TRUE),
+  HOWTO(R_390_GOTENT,   1, 2, 32,  TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTENT",   FALSE, 0,MINUS_ONE,  TRUE),
 };
 
 /* GNU extension to record C++ vtable hierarchy.  */
 static reloc_howto_type elf64_s390_vtinherit_howto =
-  HOWTO (R_390_GNU_VTINHERIT, 0,4,0,false,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", false,0, 0, false);
+  HOWTO (R_390_GNU_VTINHERIT, 0,4,0,FALSE,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", FALSE,0, 0, FALSE);
 static reloc_howto_type elf64_s390_vtentry_howto =
-  HOWTO (R_390_GNU_VTENTRY, 0,4,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", false,0,0, false);
+  HOWTO (R_390_GNU_VTENTRY, 0,4,0,FALSE,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", FALSE,0,0, FALSE);
 
 static reloc_howto_type *
 elf_s390_reloc_type_lookup (abfd, code)
@@ -226,13 +226,13 @@ elf_s390_info_to_howto (abfd, cache_ptr, dst)
     }
 }
 
-static boolean
+static bfd_boolean
 elf_s390_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
 {
   if (name[0] == '.' && (name[1] == 'X' || name[1] == 'L'))
-    return true;
+    return TRUE;
 
   return _bfd_elf_is_local_label_name (abfd, name);
 }
@@ -448,7 +448,7 @@ elf_s390_link_hash_table_create (abfd)
 /* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up
    shortcuts to them in our hash table.  */
 
-static boolean
+static bfd_boolean
 create_got_section (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -456,7 +456,7 @@ create_got_section (dynobj, info)
   struct elf_s390_link_hash_table *htab;
 
   if (! _bfd_elf_create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   htab = elf_s390_hash_table (info);
   htab->sgot = bfd_get_section_by_name (dynobj, ".got");
@@ -471,15 +471,15 @@ create_got_section (dynobj, info)
                                   | SEC_IN_MEMORY | SEC_LINKER_CREATED
                                   | SEC_READONLY))
       || ! bfd_set_section_alignment (dynobj, htab->srelgot, 3))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Create .plt, .rela.plt, .got, .got.plt, .rela.got, .dynbss, and
    .rela.bss sections in DYNOBJ, and set up shortcuts to them in our
    hash table.  */
 
-static boolean
+static bfd_boolean
 elf_s390_create_dynamic_sections (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -488,10 +488,10 @@ elf_s390_create_dynamic_sections (dynobj, info)
 
   htab = elf_s390_hash_table (info);
   if (!htab->sgot && !create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   if (!_bfd_elf_create_dynamic_sections (dynobj, info))
-    return false;
+    return FALSE;
 
   htab->splt = bfd_get_section_by_name (dynobj, ".plt");
   htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt");
@@ -503,7 +503,7 @@ elf_s390_create_dynamic_sections (dynobj, info)
       || (!info->shared && !htab->srelbss))
     abort ();
 
-  return true;
+  return TRUE;
 }
 
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
@@ -559,7 +559,7 @@ elf_s390_copy_indirect_symbol (bed, dir, ind)
    allocate space in the global offset table or procedure linkage
    table.  */
 
-static boolean
+static bfd_boolean
 elf_s390_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -574,7 +574,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   htab = elf_s390_hash_table (info);
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -595,7 +595,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
          (*_bfd_error_handler) (_("%s: bad symbol index: %d"),
                                 bfd_archive_filename (abfd),
                                 r_symndx);
-         return false;
+         return FALSE;
        }
 
       if (r_symndx < symtab_hdr->sh_info)
@@ -606,7 +606,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
       switch (ELF64_R_TYPE (rel->r_info))
        {
        case R_390_GOT12:
-        case R_390_GOT16:
+       case R_390_GOT16:
        case R_390_GOT32:
        case R_390_GOT64:
        case R_390_GOTENT:
@@ -630,7 +630,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                  local_got_refcounts = ((bfd_signed_vma *)
                                         bfd_zalloc (abfd, size));
                  if (local_got_refcounts == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_refcounts (abfd) = local_got_refcounts;
                }
              local_got_refcounts[r_symndx] += 1;
@@ -645,23 +645,23 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
              if (htab->elf.dynobj == NULL)
                htab->elf.dynobj = abfd;
              if (!create_got_section (htab->elf.dynobj, info))
-               return false;
+               return FALSE;
            }
          break;
 
-        case R_390_PLT16DBL:
+       case R_390_PLT16DBL:
        case R_390_PLT32:
        case R_390_PLT32DBL:
        case R_390_PLT64:
          /* This symbol requires a procedure linkage table entry.  We
-             actually build the entry in adjust_dynamic_symbol,
-             because this might be a case of linking PIC code which is
-             never referenced by a dynamic object, in which case we
-             don't need to generate a procedure linkage table entry
-             after all.  */
+            actually build the entry in adjust_dynamic_symbol,
+            because this might be a case of linking PIC code which is
+            never referenced by a dynamic object, in which case we
+            don't need to generate a procedure linkage table entry
+            after all.  */
 
          /* If this is a local symbol, we resolve it directly without
-             creating a procedure linkage table entry.  */
+            creating a procedure linkage table entry.  */
          if (h == NULL)
            continue;
 
@@ -669,12 +669,12 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
          h->plt.refcount += 1;
          break;
 
-        case R_390_8:
-        case R_390_16:
+       case R_390_8:
+       case R_390_16:
        case R_390_32:
        case R_390_64:
-        case R_390_PC16:
-        case R_390_PC16DBL:
+       case R_390_PC16:
+       case R_390_PC16DBL:
        case R_390_PC32:
        case R_390_PC32DBL:
        case R_390_PC64:
@@ -749,7 +749,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  if (strncmp (name, ".rela", 5) != 0
                      || strcmp (bfd_get_section_name (abfd, sec),
@@ -777,7 +777,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 3))
-                       return false;
+                       return FALSE;
                    }
                  elf_section_data (sec)->sreloc = sreloc;
                }
@@ -798,7 +798,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                  s = bfd_section_from_r_symndx (abfd, &htab->sym_sec,
                                                 sec, r_symndx);
                  if (s == NULL)
-                   return false;
+                   return FALSE;
 
                  head = ((struct elf_s390_dyn_relocs **)
                          &elf_section_data (s)->local_dynrel);
@@ -811,7 +811,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
                  p = ((struct elf_s390_dyn_relocs *)
                       bfd_alloc (htab->elf.dynobj, amt));
                  if (p == NULL)
-                   return false;
+                   return FALSE;
                  p->next = *head;
                  *head = p;
                  p->sec = sec;
@@ -831,24 +831,24 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
 
          /* This relocation describes the C++ object vtable hierarchy.
             Reconstruct it for later use during GC.  */
-        case R_390_GNU_VTINHERIT:
-          if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
-          break;
+       case R_390_GNU_VTINHERIT:
+         if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+           return FALSE;
+         break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
-        case R_390_GNU_VTENTRY:
-          if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
-          break;
+       case R_390_GNU_VTENTRY:
+         if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+           return FALSE;
+         break;
 
        default:
          break;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -893,7 +893,7 @@ elf_s390_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -995,7 +995,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
        break;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -1004,7 +1004,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 elf_s390_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -1029,15 +1029,15 @@ elf_s390_adjust_dynamic_symbol (info, h)
              && h->root.type != bfd_link_hash_undefined))
        {
          /* This case can occur if we saw a PLT32 reloc in an input
-             file, but the symbol was never referred to by a dynamic
-             object, or if all references were garbage collected.  In
+            file, but the symbol was never referred to by a dynamic
+            object, or if all references were garbage collected.  In
             such a case, we don't actually need to build a procedure
             linkage table, and we can just do a PC32 reloc instead.  */
          h->plt.offset = (bfd_vma) -1;
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
        }
 
-      return true;
+      return TRUE;
     }
   else
     /* It's possible that we incorrectly decided a .plt reloc was
@@ -1056,7 +1056,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -1067,18 +1067,18 @@ elf_s390_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
   if (info->nocopyreloc)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   eh = (struct elf_s390_link_hash_entry *) h;
@@ -1094,7 +1094,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
   if (p == NULL)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -1130,7 +1130,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s))
     {
       if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -1140,7 +1140,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* This is the condition under which elf_s390_finish_dynamic_symbol
@@ -1157,7 +1157,7 @@ elf_s390_adjust_dynamic_symbol (info, h)
 /* Allocate space in .plt, .got and associated reloc sections for
    dynamic relocs.  */
 
-static boolean
+static bfd_boolean
 allocate_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -1168,7 +1168,7 @@ allocate_dynrelocs (h, inf)
   struct elf_s390_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -1185,7 +1185,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
@@ -1236,7 +1236,7 @@ allocate_dynrelocs (h, inf)
   if (h->got.refcount > 0)
     {
       asection *s;
-      boolean dyn;
+      bfd_boolean dyn;
 
       /* Make sure this symbol is output as a dynamic symbol.
         Undefined weak syms won't yet be marked as dynamic.  */
@@ -1244,7 +1244,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = htab->sgot;
@@ -1259,7 +1259,7 @@ allocate_dynrelocs (h, inf)
 
   eh = (struct elf_s390_link_hash_entry *) h;
   if (eh->dyn_relocs == NULL)
-    return true;
+    return TRUE;
 
   /* In the shared -Bsymbolic case, discard space allocated for
      dynamic pc-relative relocs against symbols which turn out to be
@@ -1305,7 +1305,7 @@ allocate_dynrelocs (h, inf)
              && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
            {
              if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          /* If that succeeded, we know we'll be keeping all the
@@ -1326,12 +1326,12 @@ allocate_dynrelocs (h, inf)
       sreloc->_raw_size += p->count * sizeof (Elf64_External_Rela);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Find any dynamic relocs that apply to read-only sections.  */
 
-static boolean
+static bfd_boolean
 readonly_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -1354,15 +1354,15 @@ readonly_dynrelocs (h, inf)
          info->flags |= DF_TEXTREL;
 
          /* Not an error, just cut short the traversal.  */
-         return false;
+         return FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_s390_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -1370,7 +1370,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
   struct elf_s390_link_hash_table *htab;
   bfd *dynobj;
   asection *s;
-  boolean relocs;
+  bfd_boolean relocs;
   bfd *ibfd;
 
   htab = elf_s390_hash_table (info);
@@ -1460,7 +1460,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
 
   /* We now have determined the sizes of the various dynamic sections.
      Allocate memory for them.  */
-  relocs = false;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
@@ -1476,7 +1476,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
       else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
        {
          if (s->_raw_size != 0 && s != htab->srelplt)
-           relocs = true;
+           relocs = TRUE;
 
          /* We use the reloc_count field as a counter if we need
             to copy relocs into the output file.  */
@@ -1511,7 +1511,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
         of garbage.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
     }
 
   if (htab->elf.dynamic_sections_created)
@@ -1527,7 +1527,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
       if (! info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (htab->splt->_raw_size != 0)
@@ -1536,15 +1536,15 @@ elf_s390_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
-        {
-          if (!add_dynamic_entry (DT_RELA, 0)
-              || !add_dynamic_entry (DT_RELASZ, 0)
-              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela)))
-           return false;
+       {
+         if (!add_dynamic_entry (DT_RELA, 0)
+             || !add_dynamic_entry (DT_RELASZ, 0)
+             || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela)))
+           return FALSE;
 
          /* If any dynamic relocs apply to a read-only section,
             then we need a DT_TEXTREL entry.  */
@@ -1555,18 +1555,18 @@ elf_s390_size_dynamic_sections (output_bfd, info)
          if ((info->flags & DF_TEXTREL) != 0)
            {
              if (!add_dynamic_entry (DT_TEXTREL, 0))
-               return false;
+               return FALSE;
            }
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* Relocate a 390 ELF section.  */
 
-static boolean
+static bfd_boolean
 elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                              contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -1586,7 +1586,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   htab = elf_s390_hash_table (info);
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1605,17 +1605,17 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
       asection *sec;
       bfd_vma off;
       bfd_vma relocation;
-      boolean unresolved_reloc;
+      bfd_boolean unresolved_reloc;
       bfd_reloc_status_type r;
 
       r_type = ELF64_R_TYPE (rel->r_info);
       if (r_type == (int) R_390_GNU_VTINHERIT
-          || r_type == (int) R_390_GNU_VTENTRY)
-        continue;
+         || r_type == (int) R_390_GNU_VTENTRY)
+       continue;
       if (r_type < 0 || r_type >= (int) R_390_max)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       howto = elf_howto_table + r_type;
@@ -1623,7 +1623,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
       h = NULL;
       sym = NULL;
       sec = NULL;
-      unresolved_reloc = false;
+      unresolved_reloc = FALSE;
       if (r_symndx < symtab_hdr->sh_info)
        {
          sym = local_syms + r_symndx;
@@ -1647,7 +1647,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                     relocation value for this symbol.  output_section
                     is typically NULL for symbols satisfied by a shared
                     library.  */
-                 unresolved_reloc = true;
+                 unresolved_reloc = TRUE;
                  relocation = 0;
                }
              else
@@ -1666,103 +1666,103 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset,
+                     input_section, rel->r_offset,
                      (!info->shared || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
 
       switch (r_type)
        {
-        case R_390_GOT12:
-        case R_390_GOT16:
-        case R_390_GOT32:
-        case R_390_GOT64:
-        case R_390_GOTENT:
-          /* Relocation is to the entry for this symbol in the global
-             offset table.  */
+       case R_390_GOT12:
+       case R_390_GOT16:
+       case R_390_GOT32:
+       case R_390_GOT64:
+       case R_390_GOTENT:
+         /* Relocation is to the entry for this symbol in the global
+            offset table.  */
          if (htab->sgot == NULL)
            abort ();
 
-          if (h != NULL)
-            {
-             boolean dyn;
+         if (h != NULL)
+           {
+             bfd_boolean dyn;
 
-              off = h->got.offset;
+             off = h->got.offset;
              dyn = htab->elf.dynamic_sections_created;
-              if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)
-                  || (info->shared
-                      && (info->symbolic
+             if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)
+                 || (info->shared
+                     && (info->symbolic
                          || h->dynindx == -1
                          || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL))
-                      && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)))
-                {
-                  /* This is actually a static link, or it is a
-                     -Bsymbolic link and the symbol is defined
-                     locally, or the symbol was forced to be local
-                     because of a version file.  We must initialize
-                     this entry in the global offset table.  Since the
-                     offset must always be a multiple of 2, we use the
-                     least significant bit to record whether we have
-                     initialized it already.
-
-                     When doing a dynamic link, we create a .rel.got
-                     relocation entry to initialize the value.  This
-                     is done in the finish_dynamic_symbol routine.  */
-                  if ((off & 1) != 0)
-                    off &= ~1;
-                  else
-                    {
+                     && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)))
+               {
+                 /* This is actually a static link, or it is a
+                    -Bsymbolic link and the symbol is defined
+                    locally, or the symbol was forced to be local
+                    because of a version file.  We must initialize
+                    this entry in the global offset table.  Since the
+                    offset must always be a multiple of 2, we use the
+                    least significant bit to record whether we have
+                    initialized it already.
+
+                    When doing a dynamic link, we create a .rel.got
+                    relocation entry to initialize the value.  This
+                    is done in the finish_dynamic_symbol routine.  */
+                 if ((off & 1) != 0)
+                   off &= ~1;
+                 else
+                   {
                      bfd_put_64 (output_bfd, relocation,
                                  htab->sgot->contents + off);
-                      h->got.offset |= 1;
-                    }
-                }
+                     h->got.offset |= 1;
+                   }
+               }
              else
-               unresolved_reloc = false;
-            }
-          else
-            {
+               unresolved_reloc = FALSE;
+           }
+         else
+           {
              if (local_got_offsets == NULL)
                abort ();
 
-              off = local_got_offsets[r_symndx];
+             off = local_got_offsets[r_symndx];
 
-              /* The offset must always be a multiple of 8.  We use
-                 the least significant bit to record whether we have
-                 already generated the necessary reloc.  */
-              if ((off & 1) != 0)
-                off &= ~1;
-              else
-                {
-                  bfd_put_64 (output_bfd, relocation,
+             /* The offset must always be a multiple of 8.  We use
+                the least significant bit to record whether we have
+                already generated the necessary reloc.  */
+             if ((off & 1) != 0)
+               off &= ~1;
+             else
+               {
+                 bfd_put_64 (output_bfd, relocation,
                              htab->sgot->contents + off);
 
-                  if (info->shared)
-                    {
-                      asection *srelgot;
-                      Elf_Internal_Rela outrel;
-                     Elf64_External_Rela *loc;
+                 if (info->shared)
+                   {
+                     asection *s;
+                     Elf_Internal_Rela outrel;
+                     bfd_byte *loc;
 
-                      srelgot = htab->srelgot;
-                     if (srelgot == NULL)
+                     s = htab->srelgot;
+                     if (s == NULL)
                        abort ();
 
-                      outrel.r_offset = (htab->sgot->output_section->vma
-                                         + htab->sgot->output_offset
-                                         + off);
-                      outrel.r_info = ELF64_R_INFO (0, R_390_RELATIVE);
+                     outrel.r_offset = (htab->sgot->output_section->vma
+                                        + htab->sgot->output_offset
+                                        + off);
+                     outrel.r_info = ELF64_R_INFO (0, R_390_RELATIVE);
                      outrel.r_addend = relocation;
-                     loc = (Elf64_External_Rela *) srelgot->contents;
-                     loc += srelgot->reloc_count++;
-                      bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
-                    }
+                     loc = s->contents;
+                     loc += s->reloc_count++ * sizeof (Elf64_External_Rela);
+                     bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
+                   }
 
-                  local_got_offsets[r_symndx] |= 1;
-                }
-            }
+                 local_got_offsets[r_symndx] |= 1;
+               }
+           }
 
          if (off >= (bfd_vma) -2)
            abort ();
@@ -1778,72 +1778,72 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
          if (r_type == R_390_GOTENT)
            relocation += htab->sgot->output_section->vma;
 
-          break;
+         break;
 
-        case R_390_GOTOFF:
-          /* Relocation is relative to the start of the global offset
-             table.  */
+       case R_390_GOTOFF:
+         /* Relocation is relative to the start of the global offset
+            table.  */
 
-          /* Note that sgot->output_offset is not involved in this
-             calculation.  We always want the start of .got.  If we
-             defined _GLOBAL_OFFSET_TABLE in a different way, as is
-             permitted by the ABI, we might have to change this
-             calculation.  */
-          relocation -= htab->sgot->output_section->vma;
+         /* Note that sgot->output_offset is not involved in this
+            calculation.  We always want the start of .got.  If we
+            defined _GLOBAL_OFFSET_TABLE in a different way, as is
+            permitted by the ABI, we might have to change this
+            calculation.  */
+         relocation -= htab->sgot->output_section->vma;
 
-          break;
+         break;
 
-        case R_390_GOTPC:
+       case R_390_GOTPC:
        case R_390_GOTPCDBL:
-          /* Use global offset table as symbol value.  */
-          relocation = htab->sgot->output_section->vma;
-         unresolved_reloc = false;
-         break;
-
-        case R_390_PLT16DBL:
-        case R_390_PLT32:
-        case R_390_PLT32DBL:
-        case R_390_PLT64:
-          /* Relocation is to the entry for this symbol in the
-             procedure linkage table.  */
-
-          /* Resolve a PLT32 reloc against a local symbol directly,
-             without using the procedure linkage table.  */
-          if (h == NULL)
-            break;
-
-          if (h->plt.offset == (bfd_vma) -1
+         /* Use global offset table as symbol value.  */
+         relocation = htab->sgot->output_section->vma;
+         unresolved_reloc = FALSE;
+         break;
+
+       case R_390_PLT16DBL:
+       case R_390_PLT32:
+       case R_390_PLT32DBL:
+       case R_390_PLT64:
+         /* Relocation is to the entry for this symbol in the
+            procedure linkage table.  */
+
+         /* Resolve a PLT32 reloc against a local symbol directly,
+            without using the procedure linkage table.  */
+         if (h == NULL)
+           break;
+
+         if (h->plt.offset == (bfd_vma) -1
              || htab->splt == NULL)
-            {
-              /* We didn't make a PLT entry for this symbol.  This
-                 happens when statically linking PIC code, or when
-                 using -Bsymbolic.  */
-              break;
-            }
-
-          relocation = (htab->splt->output_section->vma
-                        + htab->splt->output_offset
-                        + h->plt.offset);
-         unresolved_reloc = false;
-          break;
-
-        case R_390_8:
-        case R_390_16:
-        case R_390_32:
-        case R_390_64:
-        case R_390_PC16:
-        case R_390_PC16DBL:
-        case R_390_PC32:
+           {
+             /* We didn't make a PLT entry for this symbol.  This
+                happens when statically linking PIC code, or when
+                using -Bsymbolic.  */
+             break;
+           }
+
+         relocation = (htab->splt->output_section->vma
+                       + htab->splt->output_offset
+                       + h->plt.offset);
+         unresolved_reloc = FALSE;
+         break;
+
+       case R_390_8:
+       case R_390_16:
+       case R_390_32:
+       case R_390_64:
+       case R_390_PC16:
+       case R_390_PC16DBL:
+       case R_390_PC32:
        case R_390_PC32DBL:
-        case R_390_PC64:
+       case R_390_PC64:
          /* r_symndx will be zero only for relocs against symbols
             from removed linkonce sections, or sections discarded by
             a linker script.  */
-          if (r_symndx == 0
-              || (input_section->flags & SEC_ALLOC) == 0)
+         if (r_symndx == 0
+             || (input_section->flags & SEC_ALLOC) == 0)
            break;
 
-          if ((info->shared
+         if ((info->shared
               && ((r_type != R_390_PC16
                    && r_type != R_390_PC16DBL
                    && r_type != R_390_PC32
@@ -1864,33 +1864,33 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                           & ELF_LINK_HASH_DEF_REGULAR) == 0)
                      || h->root.type == bfd_link_hash_undefweak
                      || h->root.type == bfd_link_hash_undefined)))
-            {
-              Elf_Internal_Rela outrel;
-              boolean skip, relocate;
+           {
+             Elf_Internal_Rela outrel;
+             bfd_boolean skip, relocate;
              asection *sreloc;
-             Elf64_External_Rela *loc;
+             bfd_byte *loc;
 
-              /* When generating a shared object, these relocations
-                 are copied into the output file to be resolved at run
-                 time.  */
+             /* When generating a shared object, these relocations
+                are copied into the output file to be resolved at run
+                time.  */
 
-              skip = false;
-              relocate = false;
+             skip = FALSE;
+             relocate = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
 
-              outrel.r_offset += (input_section->output_section->vma
-                                  + input_section->output_offset);
+             outrel.r_offset += (input_section->output_section->vma
+                                 + input_section->output_offset);
 
-              if (skip)
+             if (skip)
                memset (&outrel, 0, sizeof outrel);
-              else if (h != NULL
+             else if (h != NULL
                       && h->dynindx != -1
                       && (r_type == R_390_PC16
                           || r_type == R_390_PC16DBL
@@ -1901,14 +1901,14 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                           || !info->symbolic
                           || (h->elf_link_hash_flags
                               & ELF_LINK_HASH_DEF_REGULAR) == 0))
-                {
-                  outrel.r_info = ELF64_R_INFO (h->dynindx, r_type);
+               {
+                 outrel.r_info = ELF64_R_INFO (h->dynindx, r_type);
                  outrel.r_addend = rel->r_addend;
-                }
-              else
-                {
+               }
+             else
+               {
                  /* This symbol is local, or marked to become local.  */
-                 relocate = true;
+                 relocate = TRUE;
                  outrel.r_info = ELF64_R_INFO (0, R_390_RELATIVE);
                  outrel.r_addend = relocation + rel->r_addend;
                }
@@ -1917,23 +1917,23 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
              if (sreloc == NULL)
                abort ();
 
-             loc = (Elf64_External_Rela *) sreloc->contents;
-             loc += sreloc->reloc_count++;
-              bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela);
+             bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
 
-              /* If this reloc is against an external symbol, we do
-                 not want to fiddle with the addend.  Otherwise, we
-                 need to include the symbol value so that it becomes
-                 an addend for the dynamic reloc.  */
-              if (! relocate)
-                continue;
-            }
+             /* If this reloc is against an external symbol, we do
+                not want to fiddle with the addend.  Otherwise, we
+                need to include the symbol value so that it becomes
+                an addend for the dynamic reloc.  */
+             if (! relocate)
+               continue;
+           }
 
-          break;
+         break;
 
-        default:
-          break;
-        }
+       default:
+         break;
+       }
 
       /* Dynamic relocs are not propagated for SEC_DEBUGGING sections
         because such sections are not SEC_ALLOC and thus ld.so will
@@ -1964,7 +1964,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                                                      symtab_hdr->sh_link,
                                                      sym->st_name);
              if (name == NULL)
-               return false;
+               return FALSE;
              if (*name == '\0')
                name = bfd_section_name (input_bfd, sec);
            }
@@ -1975,7 +1975,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
            }
          else
            {
@@ -1984,18 +1984,18 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
                 bfd_archive_filename (input_bfd),
                 bfd_get_section_name (input_bfd, input_section),
                 (long) rel->r_offset, name, (int) r);
-             return false;
+             return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2011,10 +2011,10 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_vma plt_index;
       bfd_vma got_offset;
       Elf_Internal_Rela rela;
-      Elf64_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
-         it up.  */
+        it up.  */
 
       if (h->dynindx == -1
          || htab->splt == NULL
@@ -2023,11 +2023,11 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
        abort ();
 
       /* Calc. index no.
-         Current offset - size first entry / entry size.  */
+        Current offset - size first entry / entry size.  */
       plt_index = (h->plt.offset - PLT_FIRST_ENTRY_SIZE) / PLT_ENTRY_SIZE;
 
       /* Offset in GOT is PLT index plus GOT headers(3) times 8,
-         addr & GOT addr.  */
+        addr & GOT addr.  */
       got_offset = (plt_index + 3) * GOT_ENTRY_SIZE;
 
       /* Fill in the blueprint of a PLT.  */
@@ -2062,7 +2062,7 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
                  htab->splt->contents + h->plt.offset + 28);
 
       /* Fill in the entry in the global offset table.
-         Points to instruction after GOT offset.  */
+        Points to instruction after GOT offset.  */
       bfd_put_64 (output_bfd,
                  (htab->splt->output_section->vma
                   + htab->splt->output_offset
@@ -2076,7 +2076,7 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + got_offset);
       rela.r_info = ELF64_R_INFO (h->dynindx, R_390_JMP_SLOT);
       rela.r_addend = 0;
-      loc = (Elf64_External_Rela *) htab->srelplt->contents + plt_index;
+      loc = htab->srelplt->contents + plt_index * sizeof (Elf64_External_Rela);
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
@@ -2093,10 +2093,10 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
   if (h->got.offset != (bfd_vma) -1)
     {
       Elf_Internal_Rela rela;
-      Elf64_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
-         up.  */
+        up.  */
 
       if (htab->sgot == NULL || htab->srelgot == NULL)
        abort ();
@@ -2115,30 +2115,30 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
              || h->dynindx == -1
              || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL))
          && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))
-        {
+       {
          BFD_ASSERT((h->got.offset & 1) != 0);
-          rela.r_info = ELF64_R_INFO (0, R_390_RELATIVE);
-          rela.r_addend = (h->root.u.def.value
-                           + h->root.u.def.section->output_section->vma
-                           + h->root.u.def.section->output_offset);
-        }
+         rela.r_info = ELF64_R_INFO (0, R_390_RELATIVE);
+         rela.r_addend = (h->root.u.def.value
+                          + h->root.u.def.section->output_section->vma
+                          + h->root.u.def.section->output_offset);
+       }
       else
        {
          BFD_ASSERT((h->got.offset & 1) == 0);
          bfd_put_64 (output_bfd, (bfd_vma) 0, htab->sgot->contents + h->got.offset);
          rela.r_info = ELF64_R_INFO (h->dynindx, R_390_GLOB_DAT);
-          rela.r_addend = 0;
-        }
+         rela.r_addend = 0;
+       }
 
-      loc = (Elf64_External_Rela *) htab->srelgot->contents;
-      loc += htab->srelgot->reloc_count++;
+      loc = htab->srelgot->contents;
+      loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela);
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       Elf_Internal_Rela rela;
-      Elf64_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbols needs a copy reloc.  Set it up.  */
 
@@ -2153,8 +2153,8 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF64_R_INFO (h->dynindx, R_390_COPY);
       rela.r_addend = 0;
-      loc = (Elf64_External_Rela *) htab->srelbss->contents;
-      loc += htab->srelbss->reloc_count++;
+      loc = htab->srelbss->contents;
+      loc += htab->srelbss->reloc_count++ * sizeof (Elf64_External_Rela);
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
@@ -2164,7 +2164,7 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Used to decide how to sort relocs in an optimal manner for the
@@ -2189,7 +2189,7 @@ elf_s390_reloc_type_class (rela)
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf_s390_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2305,10 +2305,10 @@ elf_s390_finish_dynamic_sections (output_bfd, info)
       elf_section_data (htab->sgot->output_section)
        ->this_hdr.sh_entsize = 8;
     }
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf_s390_object_p (abfd)
      bfd *abfd;
 {
@@ -2331,8 +2331,8 @@ const struct elf_size_info s390_elf64_size_info =
   sizeof (Elf64_External_Sym),
   sizeof (Elf64_External_Dyn),
   sizeof (Elf_External_Note),
-  8,            /* hash-table entry size */
-  1,            /* internal relocations per external relocations */
+  8,           /* hash-table entry size */
+  1,           /* internal relocations per external relocations */
   64,          /* arch_size */
   8,           /* file_align */
   ELFCLASS64, EV_CURRENT,
@@ -2345,10 +2345,10 @@ const struct elf_size_info s390_elf64_size_info =
   bfd_elf64_slurp_symbol_table,
   bfd_elf64_swap_dyn_in,
   bfd_elf64_swap_dyn_out,
-  NULL,
-  NULL,
-  NULL,
-  NULL
+  bfd_elf64_swap_reloc_in,
+  bfd_elf64_swap_reloc_out,
+  bfd_elf64_swap_reloca_in,
+  bfd_elf64_swap_reloca_out
 };
 
 #define TARGET_BIG_SYM bfd_elf64_s390_vec
@@ -2388,6 +2388,6 @@ const struct elf_size_info s390_elf64_size_info =
 #define elf_backend_size_dynamic_sections     elf_s390_size_dynamic_sections
 #define elf_backend_reloc_type_class         elf_s390_reloc_type_class
 
-#define elf_backend_object_p                  elf_s390_object_p
+#define elf_backend_object_p                 elf_s390_object_p
 
 #include "elf64-target.h"
index da02505d5c538081a09b92a3a8dc70eb70716b9a..8f6490b66df3a0b7bc338c39f160509cfa4b442b 100644 (file)
@@ -1,5 +1,5 @@
 /* Hitachi SH64-specific support for 64-bit ELF
-   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -99,7 +99,7 @@ struct elf_sh64_link_hash_table
 #define sh64_elf64_link_hash_traverse(table, func, info)               \
   (elf_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the sh ELF linker hash table from a link_info structure.  */
@@ -107,9 +107,12 @@ struct elf_sh64_link_hash_table
 #define sh64_elf64_hash_table(p) \
   ((struct elf_sh64_link_hash_table *) ((p)->hash))
 
-static boolean sh_elf64_copy_private_data PARAMS ((bfd *, bfd *));
-static boolean sh_elf64_copy_private_data_internal PARAMS ((bfd *, bfd *));
-static boolean sh_elf64_merge_private_data PARAMS ((bfd *, bfd *));
+static bfd_boolean sh_elf64_copy_private_data
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean sh_elf64_copy_private_data_internal
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean sh_elf64_merge_private_data
+  PARAMS ((bfd *, bfd *));
 static bfd_reloc_status_type sh_elf64_ignore_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type sh_elf64_reloc
@@ -118,51 +121,57 @@ static reloc_howto_type *sh_elf64_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void sh_elf64_info_to_howto
   PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-static boolean sh_elf64_relocate_section
+static bfd_boolean sh_elf64_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
 static bfd_byte *sh_elf64_get_relocated_section_contents
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, boolean, asymbol **));
-static boolean sh_elf64_set_mach_from_flags PARAMS ((bfd *));
-static boolean sh_elf64_set_private_flags PARAMS ((bfd *, flagword));
+          bfd_byte *, bfd_boolean, asymbol **));
+static bfd_boolean sh_elf64_set_mach_from_flags
+  PARAMS ((bfd *));
+static bfd_boolean sh_elf64_set_private_flags
+  PARAMS ((bfd *, flagword));
 static asection *sh_elf64_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static boolean sh_elf64_gc_sweep_hook
+static bfd_boolean sh_elf64_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static boolean sh_elf64_check_relocs
+static bfd_boolean sh_elf64_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-static int sh64_elf64_get_symbol_type PARAMS ((Elf_Internal_Sym *, int));
-static boolean sh64_elf64_add_symbol_hook
+static int sh64_elf64_get_symbol_type
+  PARAMS ((Elf_Internal_Sym *, int));
+static bfd_boolean sh64_elf64_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
-static boolean sh64_elf64_link_output_symbol_hook
+static bfd_boolean sh64_elf64_link_output_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *,
           asection *));
-static boolean sh64_elf64_fake_sections
+static bfd_boolean sh64_elf64_fake_sections
   PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
-static void sh64_elf64_final_write_processing PARAMS ((bfd *, boolean));
+static void sh64_elf64_final_write_processing
+  PARAMS ((bfd *, bfd_boolean));
 static struct bfd_hash_entry *sh64_elf64_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *sh64_elf64_link_hash_table_create
   PARAMS ((bfd *));
-inline static void movi_shori_putval PARAMS ((bfd *, unsigned long, char *));
-inline static void movi_3shori_putval PARAMS ((bfd *, bfd_vma, char *));
-static boolean sh64_elf64_create_dynamic_sections
+inline static void movi_shori_putval
+  PARAMS ((bfd *, unsigned long, char *));
+inline static void movi_3shori_putval
+  PARAMS ((bfd *, bfd_vma, char *));
+static bfd_boolean sh64_elf64_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean sh64_elf64_adjust_dynamic_symbol
+static bfd_boolean sh64_elf64_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *));
-static boolean sh64_elf64_discard_copies
+static bfd_boolean sh64_elf64_discard_copies
   PARAMS ((struct elf_sh64_link_hash_entry *, PTR));
-static boolean sh64_elf64_size_dynamic_sections
+static bfd_boolean sh64_elf64_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean sh64_elf64_finish_dynamic_symbol
+static bfd_boolean sh64_elf64_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-static boolean sh64_elf64_finish_dynamic_sections
+static bfd_boolean sh64_elf64_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 
 static reloc_howto_type sh_elf64_howto_table[] = {
@@ -171,46 +180,46 @@ static reloc_howto_type sh_elf64_howto_table[] = {
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         sh_elf64_ignore_reloc, /* special_function */
         "R_SH_NONE",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  /* 32 bit absolute relocation.  Setting partial_inplace to true and
+  /* 32 bit absolute relocation.  Setting partial_inplace to TRUE and
      src_mask to a non-zero value is similar to the COFF toolchain.  */
   HOWTO (R_SH_DIR32,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         sh_elf64_reloc,                /* special_function */
         "R_SH_DIR32",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit PC relative relocation.  */
   HOWTO (R_SH_REL32,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         sh_elf64_ignore_reloc, /* special_function */
         "R_SH_REL32",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* For 32-bit sh, this is R_SH_DIR8WPN.  */
   EMPTY_HOWTO (3),
@@ -261,15 +270,15 @@ static reloc_howto_type sh_elf64_howto_table[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf64_ignore_reloc, /* special_function */
         "R_SH_SWITCH16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 32 bit switch table entry.  This is generated for an expression
      such as ``.long L1 - L2''.  The offset holds the difference
@@ -278,15 +287,15 @@ static reloc_howto_type sh_elf64_howto_table[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf64_ignore_reloc, /* special_function */
         "R_SH_SWITCH32",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* For 32-bit sh, this is R_SH_USES.  */
   EMPTY_HOWTO (27),
@@ -321,45 +330,45 @@ static reloc_howto_type sh_elf64_howto_table[] = {
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf64_ignore_reloc, /* special_function */
         "R_SH_SWITCH8",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_SH_GNU_VTINHERIT, /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_SH_GNU_VTINHERIT", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_SH_GNU_VTENTRY,     /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_SH_GNU_VTENTRY",   /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   /* For 32-bit sh, this is R_SH_LOOP_START.  */
   EMPTY_HOWTO (36),
@@ -380,105 +389,105 @@ static reloc_howto_type sh_elf64_howto_table[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         5,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR5U",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfc00,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in SHARI, SHLLI et al.  */
   HOWTO (R_SH_DIR6U,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR6U",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfc00,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in BxxI, LDHI.L et al.  */
   HOWTO (R_SH_DIR6S,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR6S",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xfc00,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in ADDI, ANDI et al.  */
   HOWTO (R_SH_DIR10S,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         10,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR10S",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in LD.UW, ST.W et al.  */
   HOWTO (R_SH_DIR10SW, /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         11,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR10SW",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in LD.L, FLD.S et al.  */
   HOWTO (R_SH_DIR10SL, /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR10SL",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in FLD.D, FST.P et al.  */
   HOWTO (R_SH_DIR10SQ, /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         13,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_DIR10SQ",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (52),
   EMPTY_HOWTO (53),
@@ -608,416 +617,416 @@ static reloc_howto_type sh_elf64_howto_table[] = {
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT_LOW16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOT_MEDLOW16,    /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT_MEDLOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOT_MEDHI16,     /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT_MEDHI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOT_HI16,                /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT_HI16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_GOTPLT_LOW16,    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT_LOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOTPLT_MEDLOW16, /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT_MEDLOW16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOTPLT_MEDHI16,  /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT_MEDHI16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOTPLT_HI16,     /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT_HI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_PLT_LOW16,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PLT_LOW16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_PLT_MEDLOW16,    /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PLT_MEDLOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_PLT_MEDHI16,     /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PLT_MEDHI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_PLT_HI16,                /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PLT_HI16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_GOTOFF_LOW16,    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTOFF_LOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOTOFF_MEDLOW16, /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTOFF_MEDLOW16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOTOFF_MEDHI16,  /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTOFF_MEDHI16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOTOFF_HI16,     /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTOFF_HI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_GOTPC_LOW16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPC_LOW16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOTPC_MEDLOW16,  /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPC_MEDLOW16", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOTPC_MEDHI16,   /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPC_MEDHI16",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOTPC_HI16,      /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPC_HI16",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in LD.L, FLD.S et al.  */
   HOWTO (R_SH_GOT10BY4,                /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT10BY4",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in LD.L, FLD.S et al.  */
   HOWTO (R_SH_GOTPLT10BY4,     /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT10BY4",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in FLD.D, FST.P et al.  */
   HOWTO (R_SH_GOT10BY8,                /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         13,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOT10BY8",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in FLD.D, FST.P et al.  */
   HOWTO (R_SH_GOTPLT10BY8,     /* type */
         3,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         13,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GOTPLT10BY8",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffc00,               /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_COPY64,          /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_COPY64",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_GLOB_DAT64,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_GLOB_DAT64",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_JMP_SLOT64,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_JMP_SLOT64",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_SH_RELATIVE64,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_RELATIVE64",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (197),
   EMPTY_HOWTO (198),
@@ -1078,15 +1087,15 @@ static reloc_howto_type sh_elf64_howto_table[] = {
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         sh_elf64_ignore_reloc, /* special_function */
         "R_SH_SHMEDIA_CODE",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The assembler will generate this reloc at a PTA or PTB instruction,
      and the linker checks the right type of target, or changes a PTA to a
@@ -1095,195 +1104,195 @@ static reloc_howto_type sh_elf64_howto_table[] = {
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         18,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_PT_16",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in unexpanded MOVI.  */
   HOWTO (R_SH_IMMS16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMMS16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in SHORI.  */
   HOWTO (R_SH_IMMU16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_unsigned, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMMU16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_IMM_LOW16,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_LOW16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x - $) & 65536).  */
   HOWTO (R_SH_IMM_LOW16_PCREL, /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_LOW16_PCREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_IMM_MEDLOW16,    /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_MEDLOW16",   /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (((x - $) >> 16) & 65536).  */
   HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_MEDLOW16_PCREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_IMM_MEDHI16,     /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_MEDHI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (((x - $) >> 32) & 65536).  */
   HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */
         32,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_MEDHI16_PCREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_IMM_HI16,                /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_HI16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used in MOVI and SHORI (((x - $) >> 48) & 65536).  */
   HOWTO (R_SH_IMM_HI16_PCREL,  /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_IMM_HI16_PCREL", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x3fffc00,             /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* For the .uaquad pseudo.  */
   HOWTO (R_SH_64,              /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_64",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* For the .uaquad pseudo, (x - $).  */
   HOWTO (R_SH_64_PCREL,                /* type */
         48,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         10,                    /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_SH_64_PCREL",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         ((bfd_vma) 0) - 1,     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
 };
 
@@ -1482,7 +1491,7 @@ sh_elf64_info_to_howto (abfd, cache_ptr, dst)
 
    See sh_elf_info_to_howto in elf32-sh.c for the original.  */
 
-static boolean
+static bfd_boolean
 sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
                           contents, relocs, local_syms, local_sections)
      bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -1549,7 +1558,7 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
              && r_type <= (int) R_SH_LAST_INVALID_RELOC_4))
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       howto = sh_elf64_howto_table + r_type;
@@ -1605,7 +1614,7 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
                     bfd_archive_filename (input_bfd),
                     bfd_get_section_name (input_bfd, input_section),
                     (long) rel->r_offset, howto->name);
-                 return false;
+                 return FALSE;
                }
 
               addend = bfd_get_32 (input_bfd, contents + rel->r_offset);
@@ -1680,7 +1689,14 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
                             sections against symbols defined externally
                             in shared libraries.  We can't do anything
                             with them here.  */
-                         || (input_section->flags & SEC_DEBUGGING) != 0)))
+                         || (input_section->flags & SEC_DEBUGGING) != 0))
+                 /* Dynamic relocs are not propagated for SEC_DEBUGGING
+                    sections because such sections are not SEC_ALLOC and
+                    thus ld.so will not process them.  */
+                 || (sec->output_section == NULL
+                     && ((input_section->flags & SEC_DEBUGGING) != 0
+                         && (h->elf_link_hash_flags
+                             & ELF_LINK_HASH_DEF_DYNAMIC) != 0)))
                relocation = 0;
              else if (sec->output_section == NULL)
                {
@@ -1708,8 +1724,8 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd,
-                     input_section, rel->r_offset, true)))
-               return false;
+                     input_section, rel->r_offset, TRUE)))
+               return FALSE;
              relocation = 0;
            }
        }
@@ -1732,7 +1748,7 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
            (_("%s: error: unaligned relocation type %d at %08x reloc %08x\n"),
             bfd_get_filename (input_bfd), (int)r_type, (unsigned)rel->r_offset, (unsigned)relocation);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       switch ((int)r_type)
        {
@@ -1748,7 +1764,8 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
                              & ELF_LINK_HASH_DEF_REGULAR) == 0))))
            {
              Elf_Internal_Rela outrel;
-             boolean skip, relocate;
+             bfd_byte *loc;
+             bfd_boolean skip, relocate;
 
              /* When generating a shared object, these relocations
                 are copied into the output file to be resolved at run
@@ -1763,7 +1780,7 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
                           elf_elfheader (input_bfd)->e_shstrndx,
                           elf_section_data (input_section)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (input_bfd,
@@ -1774,17 +1791,17 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
                  BFD_ASSERT (sreloc != NULL);
                }
 
-             skip = false;
-             relocate = false;
+             skip = FALSE;
+             relocate = FALSE;
 
              outrel.r_offset
                = _bfd_elf_section_offset (output_bfd, info,
                                           input_section, rel->r_offset);
 
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
 
              outrel.r_offset += (input_section->output_section->vma
                                  + input_section->output_offset);
@@ -1806,7 +1823,7 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
                          && (h->elf_link_hash_flags
                              & ELF_LINK_HASH_DEF_REGULAR) != 0))
                    {
-                     relocate = true;
+                     relocate = TRUE;
                      outrel.r_info = ELF64_R_INFO (0, R_SH_RELATIVE64);
                      outrel.r_addend = relocation + rel->r_addend;
                    }
@@ -1818,11 +1835,9 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
 
-             bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf64_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela);
+             bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* If this reloc is against an external symbol, we do
                 not want to fiddle with the addend.  Otherwise, we
@@ -1971,22 +1986,21 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
 
                  if (info->shared)
                    {
-                     asection *srelgot;
+                     asection *s;
                      Elf_Internal_Rela outrel;
+                     bfd_byte *loc;
 
-                     srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
-                     BFD_ASSERT (srelgot != NULL);
+                     s = bfd_get_section_by_name (dynobj, ".rela.got");
+                     BFD_ASSERT (s != NULL);
 
                      outrel.r_offset = (sgot->output_section->vma
                                         + sgot->output_offset
                                         + off);
                      outrel.r_info = ELF64_R_INFO (0, R_SH_RELATIVE64);
                      outrel.r_addend = relocation;
-                     bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                               (((Elf64_External_Rela *)
-                                                 srelgot->contents)
-                                                + srelgot->reloc_count));
-                     ++srelgot->reloc_count;
+                     loc = s->contents;
+                     loc += s->reloc_count++ * sizeof (Elf64_External_Rela);
+                     bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
                    }
 
                  if (rel->r_addend)
@@ -2118,7 +2132,7 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
 
        default:
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
 
        }
 
@@ -2140,21 +2154,21 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
                    name = (bfd_elf_string_from_elf_section
                            (input_bfd, symtab_hdr->sh_link, sym->st_name));
                    if (name == NULL)
-                     return false;
+                     return FALSE;
                    if (*name == '\0')
                      name = bfd_section_name (input_bfd, sec);
                  }
                if (! ((*info->callbacks->reloc_overflow)
                       (info, name, howto->name, (bfd_vma) 0,
                        input_bfd, input_section, rel->r_offset)))
-                 return false;
+                 return FALSE;
              }
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This is a version of bfd_generic_get_relocated_section_contents
@@ -2169,7 +2183,7 @@ sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   Elf_Internal_Shdr *symtab_hdr;
@@ -2214,7 +2228,7 @@ sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order,
 
       internal_relocs = (_bfd_elf64_link_read_relocs
                         (input_bfd, input_section, (PTR) NULL,
-                         (Elf_Internal_Rela *) NULL, false));
+                         (Elf_Internal_Rela *) NULL, FALSE));
       if (internal_relocs == NULL)
        goto error_return;
 
@@ -2276,7 +2290,7 @@ sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order,
 
 /* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections.  */
 
-boolean
+bfd_boolean
 sh64_elf64_fake_sections (output_bfd, elf_section_hdr, asect)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      Elf_Internal_Shdr *elf_section_hdr;
@@ -2286,10 +2300,10 @@ sh64_elf64_fake_sections (output_bfd, elf_section_hdr, asect)
   if (bfd_get_section_flags (output_bfd, asect) & SEC_CODE)
     elf_section_hdr->sh_flags |= SHF_SH5_ISA32;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 sh_elf64_set_mach_from_flags (abfd)
      bfd *abfd;
 {
@@ -2304,16 +2318,16 @@ sh_elf64_set_mach_from_flags (abfd)
 
     default:
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Function to keep SH64 specific file flags.
 
    See sh64_elf_set_private_flags in elf32-sh64.c for the original.  */
 
-static boolean
+static bfd_boolean
 sh_elf64_set_private_flags (abfd, flags)
      bfd *    abfd;
      flagword flags;
@@ -2322,14 +2336,14 @@ sh_elf64_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
+  elf_flags_init (abfd) = TRUE;
   return sh_elf64_set_mach_from_flags (abfd);
 }
 
 /* Copy the SHF_SH5_ISA32 attribute that we keep on all sections with
    code, to keep attributes the same as for SHmedia in 32-bit ELF.  */
 
-static boolean
+static bfd_boolean
 sh_elf64_copy_private_data_internal (ibfd, obfd)
      bfd * ibfd;
      bfd * obfd;
@@ -2340,7 +2354,7 @@ sh_elf64_copy_private_data_internal (ibfd, obfd)
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   o_shdrp = elf_elfsections (obfd);
   for (osec = obfd->sections; osec; osec = osec->next)
@@ -2362,7 +2376,7 @@ sh_elf64_copy_private_data_internal (ibfd, obfd)
   return sh_elf64_set_private_flags (obfd, elf_elfheader (ibfd)->e_flags);
 }
 
-static boolean
+static bfd_boolean
 sh_elf64_copy_private_data (ibfd, obfd)
      bfd * ibfd;
      bfd * obfd;
@@ -2370,7 +2384,7 @@ sh_elf64_copy_private_data (ibfd, obfd)
   return sh_elf64_copy_private_data_internal (ibfd, obfd);
 }
 
-static boolean
+static bfd_boolean
 sh_elf64_merge_private_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -2378,11 +2392,11 @@ sh_elf64_merge_private_data (ibfd, obfd)
   flagword old_flags, new_flags;
 
   if (! _bfd_generic_verify_endian_match (ibfd, obfd))
-    return false;
+    return FALSE;
 
   if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (bfd_get_arch_size (ibfd) != bfd_get_arch_size (obfd))
     {
@@ -2400,7 +2414,7 @@ sh_elf64_merge_private_data (ibfd, obfd)
       (*_bfd_error_handler) (msg, bfd_get_filename (ibfd),
                             bfd_get_filename (obfd));
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 
   old_flags = elf_elfheader (obfd)->e_flags;
@@ -2408,7 +2422,7 @@ sh_elf64_merge_private_data (ibfd, obfd)
   if (! elf_flags_init (obfd))
     {
       /* This happens when ld starts out with a 'blank' output file.  */
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = old_flags = new_flags;
     }
   /* We don't allow linking in anything else than SH64 code, and since
@@ -2420,7 +2434,7 @@ sh_elf64_merge_private_data (ibfd, obfd)
        ("%s: does not use the SH64 64-bit ABI as previous modules do",
         bfd_get_filename (ibfd));
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   sh_elf64_copy_private_data_internal (ibfd, obfd);
@@ -2477,7 +2491,7 @@ sh_elf64_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-static boolean
+static bfd_boolean
 sh_elf64_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -2485,14 +2499,14 @@ sh_elf64_gc_sweep_hook (abfd, info, sec, relocs)
      const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
 {
   /* No got and plt entries for 64-bit SH at present.  */
-  return true;
+  return TRUE;
 }
 
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
 
-static boolean
+static bfd_boolean
 sh_elf64_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2514,7 +2528,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
   sreloc = NULL;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -2564,7 +2578,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
            case R_SH_GOTPC_HI16:
              elf_hash_table (info)->dynobj = dynobj = abfd;
              if (! _bfd_elf_create_got_section (dynobj, info))
-               return false;
+               return FALSE;
              break;
 
            default:
@@ -2578,14 +2592,14 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
         case R_SH_GNU_VTINHERIT:
           if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return false;
+            return FALSE;
           break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
         case R_SH_GNU_VTENTRY:
           if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return false;
+            return FALSE;
           break;
 
        force_got:
@@ -2619,7 +2633,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
                                                   | SEC_LINKER_CREATED
                                                   | SEC_READONLY))
                      || ! bfd_set_section_alignment (dynobj, srelgot, 2))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -2650,7 +2664,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
              if (h->dynindx == -1)
                {
                  if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-                   return false;
+                   return FALSE;
                }
 
              srelgot->_raw_size += sizeof (Elf64_External_Rela);
@@ -2670,7 +2684,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
                  size *= 2;
                  local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size);
                  if (local_got_offsets == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_offsets (abfd) = local_got_offsets;
                  for (i = 0; i < symtab_hdr->sh_info; i++)
                    local_got_offsets[i] = (bfd_vma) -1;
@@ -2733,7 +2747,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
          if (h->dynindx == -1)
            {
              if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
@@ -2801,7 +2815,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (abfd, sec),
@@ -2820,7 +2834,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 2))
-                       return false;
+                       return FALSE;
                    }
                }
 
@@ -2851,7 +2865,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
                      p = ((struct elf_sh64_pcrel_relocs_copied *)
                           bfd_alloc (dynobj, sizeof *p));
                      if (p == NULL)
-                       return false;
+                       return FALSE;
                      p->next = eh->pcrel_relocs_copied;
                      eh->pcrel_relocs_copied = p;
                      p->section = sreloc;
@@ -2866,7 +2880,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
         }
     }
 
-  return true;
+  return TRUE;
 }
 
 static int
@@ -2902,7 +2916,7 @@ sh64_elf64_get_symbol_type (elf_sym, type)
    or the hash entry, alternatively adding the index to Elf_Internal_Sym
    (not so good).  */
 
-static boolean
+static bfd_boolean
 sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2933,13 +2947,13 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
 
       /* Allocation may fail.  */
       if (dl_name == NULL)
-       return false;
+       return FALSE;
 
       strcpy (dl_name, *namep);
       strcat (dl_name, DATALABEL_SUFFIX);
 
       h = (struct elf_link_hash_entry *)
-       bfd_link_hash_lookup (info->hash, dl_name, false, false, false);
+       bfd_link_hash_lookup (info->hash, dl_name, FALSE, FALSE, FALSE);
 
       if (h == NULL)
        {
@@ -2949,11 +2963,11 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
 
          if (! _bfd_generic_link_add_one_symbol (info, abfd, dl_name,
                                                  flags, *secp, *valp,
-                                                 *namep, false,
+                                                 *namep, FALSE,
                                                  bed->collect, &bh))
            {
              free (dl_name);
-             return false;
+             return FALSE;
            }
 
          h = (struct elf_link_hash_entry *) bh;
@@ -2976,7 +2990,7 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
            (_("%s: encountered datalabel symbol in input"),
             bfd_get_filename (abfd));
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       /* Now find the hash-table slot for this entry and fill it in.  */
@@ -2988,7 +3002,7 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       *namep = NULL;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This hook function is called before the linker writes out a global
@@ -3003,7 +3017,7 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
    we don't need to look up and make sure to emit the main symbol for each
    DataLabel symbol.  */
 
-static boolean
+static bfd_boolean
 sh64_elf64_link_output_symbol_hook (abfd, info, cname, sym, input_sec)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -3019,7 +3033,7 @@ sh64_elf64_link_output_symbol_hook (abfd, info, cname, sym, input_sec)
        name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set bit 0 on the entry address; it always points to SHmedia code.  This
@@ -3032,7 +3046,7 @@ sh64_elf64_link_output_symbol_hook (abfd, info, cname, sym, input_sec)
 static void
 sh64_elf64_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   /* FIXME: Perhaps we shouldn't do this if the entry address was supplied
      numerically, but we currently lack the infrastructure to recognize
@@ -3271,7 +3285,7 @@ movi_3shori_putval (output_bfd, value, addr)
 
 /* Create dynamic sections when linking against a dynamic object.  */
 
-static boolean
+static bfd_boolean
 sh64_elf64_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3293,7 +3307,7 @@ sh64_elf64_create_dynamic_sections (abfd, info)
 
     default:
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and
@@ -3313,7 +3327,7 @@ sh64_elf64_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, pltflags)
       || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
-    return false;
+    return FALSE;
 
   if (bed->want_plt_sym)
     {
@@ -3324,8 +3338,8 @@ sh64_elf64_create_dynamic_sections (abfd, info)
 
       if (! (_bfd_generic_link_add_one_symbol
             (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
-             (bfd_vma) 0, (const char *) NULL, false, bed->collect, &bh)))
-       return false;
+             (bfd_vma) 0, (const char *) NULL, FALSE, bed->collect, &bh)))
+       return FALSE;
 
       h = (struct elf_link_hash_entry *) bh;
       h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
@@ -3333,7 +3347,7 @@ sh64_elf64_create_dynamic_sections (abfd, info)
 
       if (info->shared
          && ! _bfd_elf_link_record_dynamic_symbol (info, h))
-       return false;
+       return FALSE;
     }
 
   s = bfd_make_section (abfd,
@@ -3341,10 +3355,10 @@ sh64_elf64_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, s, ptralign))
-    return false;
+    return FALSE;
 
   if (! _bfd_elf_create_got_section (abfd, info))
-    return false;
+    return FALSE;
 
   {
     const char *secname;
@@ -3366,7 +3380,7 @@ sh64_elf64_create_dynamic_sections (abfd, info)
        if (s == NULL
            || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
            || ! bfd_set_section_alignment (abfd, s, ptralign))
-         return false;
+         return FALSE;
       }
   }
 
@@ -3381,7 +3395,7 @@ sh64_elf64_create_dynamic_sections (abfd, info)
       s = bfd_make_section (abfd, ".dynbss");
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, SEC_ALLOC))
-       return false;
+       return FALSE;
 
       /* The .rel[a].bss section holds copy relocs.  This section is not
         normally needed.  We need to create it here, though, so that the
@@ -3402,11 +3416,11 @@ sh64_elf64_create_dynamic_sections (abfd, info)
          if (s == NULL
              || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
              || ! bfd_set_section_alignment (abfd, s, ptralign))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -3415,7 +3429,7 @@ sh64_elf64_create_dynamic_sections (abfd, info)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 sh64_elf64_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -3453,14 +3467,14 @@ sh64_elf64_adjust_dynamic_symbol (info, h)
             a procedure linkage table, and we can just do a REL64
             reloc instead.  */
          BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0);
-         return true;
+         return TRUE;
        }
 
       /* Make sure this symbol is output as a dynamic symbol.  */
       if (h->dynindx == -1)
        {
          if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = bfd_get_section_by_name (dynobj, ".plt");
@@ -3501,7 +3515,7 @@ sh64_elf64_adjust_dynamic_symbol (info, h)
       BFD_ASSERT (s != NULL);
       s->_raw_size += sizeof (Elf64_External_Rela);
 
-      return true;
+      return TRUE;
     }
 
   /* If this is a weak symbol, and there is a real definition, the
@@ -3513,7 +3527,7 @@ sh64_elf64_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -3524,12 +3538,12 @@ sh64_elf64_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -3570,7 +3584,7 @@ sh64_elf64_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (! bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -3580,7 +3594,7 @@ sh64_elf64_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called via sh_elf_link_hash_traverse if we are
@@ -3590,7 +3604,7 @@ sh64_elf64_adjust_dynamic_symbol (info, h)
    check_relocs routine, but we won't fill them in in the
    relocate_section routine.  */
 
-static boolean
+static bfd_boolean
 sh64_elf64_discard_copies (h, ignore)
      struct elf_sh64_link_hash_entry *h;
      PTR ignore ATTRIBUTE_UNUSED;
@@ -3602,26 +3616,26 @@ sh64_elf64_discard_copies (h, ignore)
 
   /* We only discard relocs for symbols defined in a regular object.  */
   if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
-    return true;
+    return TRUE;
 
   for (s = h->pcrel_relocs_copied; s != NULL; s = s->next)
     s->section->_raw_size -= s->count * sizeof (Elf64_External_Rela);
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 sh64_elf64_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean plt;
-  boolean relocs;
-  boolean reltext;
+  bfd_boolean plt;
+  bfd_boolean relocs;
+  bfd_boolean reltext;
 
   dynobj = elf_hash_table (info)->dynobj;
   BFD_ASSERT (dynobj != NULL);
@@ -3661,13 +3675,13 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  plt = false;
-  relocs = false;
-  reltext = false;
+  plt = FALSE;
+  relocs = FALSE;
+  reltext = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -3676,7 +3690,7 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      strip = false;
+      strip = FALSE;
 
       if (strcmp (name, ".plt") == 0)
        {
@@ -3684,12 +3698,12 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
            {
              /* Strip this section if we don't need it; see the
                 comment below.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              /* Remember whether there is a PLT.  */
-             plt = true;
+             plt = TRUE;
            }
        }
       else if (strncmp (name, ".rela", 5) == 0)
@@ -3705,7 +3719,7 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
@@ -3717,7 +3731,7 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
                {
                  const char *outname;
 
-                 relocs = true;
+                 relocs = TRUE;
 
                  /* If this relocation section applies to a read only
                     section, then we probably need a DT_TEXTREL
@@ -3730,7 +3744,7 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
                  if (target != NULL
                      && (target->flags & SEC_READONLY) != 0
                      && (target->flags & SEC_ALLOC) != 0)
-                   reltext = true;
+                   reltext = TRUE;
                }
 
              /* We use the reloc_count field as a counter if we need
@@ -3753,7 +3767,7 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
       /* Allocate memory for the section contents.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -3766,7 +3780,7 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
       if (! info->shared)
        {
          if (! bfd_elf64_add_dynamic_entry (info, DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (plt)
@@ -3775,7 +3789,7 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
              || ! bfd_elf64_add_dynamic_entry (info, DT_PLTRELSZ, 0)
              || ! bfd_elf64_add_dynamic_entry (info, DT_PLTREL, DT_RELA)
              || ! bfd_elf64_add_dynamic_entry (info, DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -3784,23 +3798,23 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
              || ! bfd_elf64_add_dynamic_entry (info, DT_RELASZ, 0)
              || ! bfd_elf64_add_dynamic_entry (info, DT_RELAENT,
                                                sizeof (Elf64_External_Rela)))
-           return false;
+           return FALSE;
        }
 
       if (reltext)
        {
          if (! bfd_elf64_add_dynamic_entry (info, DT_TEXTREL, 0))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -3820,6 +3834,7 @@ sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_vma plt_index;
       bfd_vma got_offset;
       Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
         it up.  */
@@ -3908,9 +3923,8 @@ sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym)
       rel.r_info = ELF64_R_INFO (h->dynindx, R_SH_JMP_SLOT64);
       rel.r_addend = 0;
       rel.r_addend = GOT_BIAS;
-      bfd_elf64_swap_reloca_out (output_bfd, &rel,
-                               ((Elf64_External_Rela *) srel->contents
-                                + plt_index));
+      loc = srel->contents + plt_index * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (output_bfd, &rel, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
        {
@@ -3925,6 +3939,7 @@ sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *sgot;
       asection *srel;
       Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -3958,16 +3973,16 @@ sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym)
          rel.r_addend = 0;
        }
 
-      bfd_elf64_swap_reloca_out (output_bfd, &rel,
-                                ((Elf64_External_Rela *) srel->contents
-                                 + srel->reloc_count));
-      ++srel->reloc_count;
+      loc = srel->contents;
+      loc += srel->reloc_count++ * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (output_bfd, &rel, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       asection *s;
       Elf_Internal_Rela rel;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -3984,10 +3999,9 @@ sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym)
                      + h->root.u.def.section->output_offset);
       rel.r_info = ELF64_R_INFO (h->dynindx, R_SH_COPY64);
       rel.r_addend = 0;
-      bfd_elf64_swap_reloca_out (output_bfd, &rel,
-                                ((Elf64_External_Rela *) s->contents
-                                 + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents;
+      loc += s->reloc_count++ * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (output_bfd, &rel, loc);
     }
 
   /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute.  */
@@ -3995,12 +4009,12 @@ sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 sh64_elf64_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -4048,7 +4062,7 @@ sh64_elf64_finish_dynamic_sections (output_bfd, info)
              if (dyn.d_un.d_val != 0)
                {
                  h = elf_link_hash_lookup (elf_hash_table (info), name,
-                                           false, false, true);
+                                           FALSE, FALSE, TRUE);
                  if (h != NULL && (h->other & STO_SH5_ISA32))
                    {
                      dyn.d_un.d_val |= 1;
@@ -4155,7 +4169,7 @@ sh64_elf64_finish_dynamic_sections (output_bfd, info)
 
   elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 8;
 
-  return true;
+  return TRUE;
 }
 
 #define TARGET_BIG_SYM         bfd_elf64_sh64_vec
index ae4e57a22661d1c84e9120c4bcd5de261aa16f37..c3a3f05a0b24af425e91e661e88a2904cfcbf2bd 100644 (file)
@@ -51,49 +51,49 @@ static bfd_vma sparc64_elf_plt_entry_offset
 static bfd_vma sparc64_elf_plt_ptr_offset
   PARAMS ((bfd_vma, bfd_vma));
 
-static boolean sparc64_elf_check_relocs
+static bfd_boolean sparc64_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *sec,
           const Elf_Internal_Rela *));
-static boolean sparc64_elf_adjust_dynamic_symbol
+static bfd_boolean sparc64_elf_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean sparc64_elf_size_dynamic_sections
+static bfd_boolean sparc64_elf_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static int sparc64_elf_get_symbol_type
   PARAMS (( Elf_Internal_Sym *, int));
-static boolean sparc64_elf_add_symbol_hook
+static bfd_boolean sparc64_elf_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
-static boolean sparc64_elf_output_arch_syms
+static bfd_boolean sparc64_elf_output_arch_syms
   PARAMS ((bfd *, struct bfd_link_info *, PTR,
-          boolean (*) (PTR, const char *, Elf_Internal_Sym *, asection *)));
+          bfd_boolean (*) (PTR, const char *, Elf_Internal_Sym *, asection *)));
 static void sparc64_elf_symbol_processing
   PARAMS ((bfd *, asymbol *));
 
-static boolean sparc64_elf_merge_private_bfd_data
+static bfd_boolean sparc64_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 
-static boolean sparc64_elf_fake_sections
-  PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *));
+static bfd_boolean sparc64_elf_fake_sections
+  PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
 
 static const char *sparc64_elf_print_symbol_all
   PARAMS ((bfd *, PTR, asymbol *));
-static boolean sparc64_elf_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
-static boolean sparc64_elf_relocate_section
+static bfd_boolean sparc64_elf_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean sparc64_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean sparc64_elf_finish_dynamic_symbol
+static bfd_boolean sparc64_elf_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-static boolean sparc64_elf_finish_dynamic_sections
+static bfd_boolean sparc64_elf_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean sparc64_elf_object_p PARAMS ((bfd *));
+static bfd_boolean sparc64_elf_object_p PARAMS ((bfd *));
 static long sparc64_elf_get_reloc_upper_bound PARAMS ((bfd *, asection *));
 static long sparc64_elf_get_dynamic_reloc_upper_bound PARAMS ((bfd *));
-static boolean sparc64_elf_slurp_one_reloc_table
-  PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, asymbol **, boolean));
-static boolean sparc64_elf_slurp_reloc_table
-  PARAMS ((bfd *, asection *, asymbol **, boolean));
+static bfd_boolean sparc64_elf_slurp_one_reloc_table
+  PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, asymbol **, bfd_boolean));
+static bfd_boolean sparc64_elf_slurp_reloc_table
+  PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
 static long sparc64_elf_canonicalize_dynamic_reloc
   PARAMS ((bfd *, arelent **, asymbol **));
 static void sparc64_elf_write_relocs PARAMS ((bfd *, asection *, PTR));
@@ -113,65 +113,65 @@ static bfd_reloc_status_type sparc_elf_lox10_reloc
 
 static reloc_howto_type sparc64_elf_howto_table[] =
 {
-  HOWTO(R_SPARC_NONE,      0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_8,         0,0, 8,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_8",       false,0,0x000000ff,true),
-  HOWTO(R_SPARC_16,        0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_16",      false,0,0x0000ffff,true),
-  HOWTO(R_SPARC_32,        0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_32",      false,0,0xffffffff,true),
-  HOWTO(R_SPARC_DISP8,     0,0, 8,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP8",   false,0,0x000000ff,true),
-  HOWTO(R_SPARC_DISP16,    0,1,16,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP16",  false,0,0x0000ffff,true),
-  HOWTO(R_SPARC_DISP32,    0,2,32,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP32",  false,0,0xffffffff,true),
-  HOWTO(R_SPARC_WDISP30,   2,2,30,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP30", false,0,0x3fffffff,true),
-  HOWTO(R_SPARC_WDISP22,   2,2,22,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP22", false,0,0x003fffff,true),
-  HOWTO(R_SPARC_HI22,     10,2,22,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HI22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_22,        0,2,22,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_22",      false,0,0x003fffff,true),
-  HOWTO(R_SPARC_13,        0,2,13,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_13",      false,0,0x00001fff,true),
-  HOWTO(R_SPARC_LO10,      0,2,10,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LO10",    false,0,0x000003ff,true),
-  HOWTO(R_SPARC_GOT10,     0,2,10,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT10",   false,0,0x000003ff,true),
-  HOWTO(R_SPARC_GOT13,     0,2,13,false,0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_GOT13",   false,0,0x00001fff,true),
-  HOWTO(R_SPARC_GOT22,    10,2,22,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT22",   false,0,0x003fffff,true),
-  HOWTO(R_SPARC_PC10,      0,2,10,true, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC10",    false,0,0x000003ff,true),
-  HOWTO(R_SPARC_PC22,     10,2,22,true, 0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PC22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_WPLT30,    2,2,30,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WPLT30",  false,0,0x3fffffff,true),
-  HOWTO(R_SPARC_COPY,      0,0,00,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_COPY",    false,0,0x00000000,true),
-  HOWTO(R_SPARC_GLOB_DAT,  0,0,00,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GLOB_DAT",false,0,0x00000000,true),
-  HOWTO(R_SPARC_JMP_SLOT,  0,0,00,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_JMP_SLOT",false,0,0x00000000,true),
-  HOWTO(R_SPARC_RELATIVE,  0,0,00,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_RELATIVE",false,0,0x00000000,true),
-  HOWTO(R_SPARC_UA32,      0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA32",    false,0,0xffffffff,true),
+  HOWTO(R_SPARC_NONE,      0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_8,         0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_8",       FALSE,0,0x000000ff,TRUE),
+  HOWTO(R_SPARC_16,        0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_16",      FALSE,0,0x0000ffff,TRUE),
+  HOWTO(R_SPARC_32,        0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_32",      FALSE,0,0xffffffff,TRUE),
+  HOWTO(R_SPARC_DISP8,     0,0, 8,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP8",   FALSE,0,0x000000ff,TRUE),
+  HOWTO(R_SPARC_DISP16,    0,1,16,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP16",  FALSE,0,0x0000ffff,TRUE),
+  HOWTO(R_SPARC_DISP32,    0,2,32,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP32",  FALSE,0,0xffffffff,TRUE),
+  HOWTO(R_SPARC_WDISP30,   2,2,30,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE),
+  HOWTO(R_SPARC_WDISP22,   2,2,22,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_HI22,     10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HI22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_22,        0,2,22,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_22",      FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_13,        0,2,13,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_13",      FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_LO10,      0,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LO10",    FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_GOT10,     0,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT10",   FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_GOT13,     0,2,13,FALSE,0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_GOT13",   FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_GOT22,    10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT22",   FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_PC10,      0,2,10,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC10",    FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_PC22,     10,2,22,TRUE, 0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PC22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_WPLT30,    2,2,30,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WPLT30",  FALSE,0,0x3fffffff,TRUE),
+  HOWTO(R_SPARC_COPY,      0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_COPY",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_GLOB_DAT,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_JMP_SLOT,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_RELATIVE,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_UA32,      0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA32",    FALSE,0,0xffffffff,TRUE),
 #ifndef SPARC64_OLD_RELOCS
-  HOWTO(R_SPARC_PLT32,     0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT32",   false,0,0xffffffff,true),
+  HOWTO(R_SPARC_PLT32,     0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT32",   FALSE,0,0xffffffff,TRUE),
   /* These aren't implemented yet.  */
-  HOWTO(R_SPARC_HIPLT22,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_HIPLT22",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_LOPLT10,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_LOPLT10",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_PCPLT32,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT32",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_PCPLT22,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT22",  false,0,0x00000000,true),
-  HOWTO(R_SPARC_PCPLT10,   0,0,00,false,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT10",  false,0,0x00000000,true),
+  HOWTO(R_SPARC_HIPLT22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_HIPLT22",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_LOPLT10,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_LOPLT10",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PCPLT32,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT32",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PCPLT22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT22",  FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PCPLT10,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT10",  FALSE,0,0x00000000,TRUE),
 #endif
-  HOWTO(R_SPARC_10,        0,2,10,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_10",      false,0,0x000003ff,true),
-  HOWTO(R_SPARC_11,        0,2,11,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_11",      false,0,0x000007ff,true),
-  HOWTO(R_SPARC_64,        0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_64",      false,0,MINUS_ONE, true),
-  HOWTO(R_SPARC_OLO10,     0,2,13,false,0,complain_overflow_signed,  sparc_elf_notsup_reloc, "R_SPARC_OLO10",   false,0,0x00001fff,true),
-  HOWTO(R_SPARC_HH22,     42,2,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_HH22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_HM10,     32,2,10,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HM10",    false,0,0x000003ff,true),
-  HOWTO(R_SPARC_LM22,     10,2,22,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LM22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_PC_HH22,  42,2,22,true, 0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_PC_HH22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_PC_HM10,  32,2,10,true, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC_HM10",    false,0,0x000003ff,true),
-  HOWTO(R_SPARC_PC_LM22,  10,2,22,true, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC_LM22",    false,0,0x003fffff,true),
-  HOWTO(R_SPARC_WDISP16,   2,2,16,true, 0,complain_overflow_signed,  sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", false,0,0x00000000,true),
-  HOWTO(R_SPARC_WDISP19,   2,2,19,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP19", false,0,0x0007ffff,true),
-  HOWTO(R_SPARC_UNUSED_42, 0,0, 0,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_UNUSED_42",false,0,0x00000000,true),
-  HOWTO(R_SPARC_7,         0,2, 7,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_7",       false,0,0x0000007f,true),
-  HOWTO(R_SPARC_5,         0,2, 5,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_5",       false,0,0x0000001f,true),
-  HOWTO(R_SPARC_6,         0,2, 6,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_6",       false,0,0x0000003f,true),
-  HOWTO(R_SPARC_DISP64,    0,4,64,true, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP64",  false,0,MINUS_ONE, true),
-  HOWTO(R_SPARC_PLT64,     0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT64",   false,0,MINUS_ONE, true),
-  HOWTO(R_SPARC_HIX22,     0,4, 0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,  "R_SPARC_HIX22",   false,0,MINUS_ONE, false),
-  HOWTO(R_SPARC_LOX10,     0,4, 0,false,0,complain_overflow_dont,    sparc_elf_lox10_reloc,  "R_SPARC_LOX10",   false,0,MINUS_ONE, false),
-  HOWTO(R_SPARC_H44,      22,2,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_H44",     false,0,0x003fffff,false),
-  HOWTO(R_SPARC_M44,      12,2,10,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_M44",     false,0,0x000003ff,false),
-  HOWTO(R_SPARC_L44,       0,2,13,false,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_L44",     false,0,0x00000fff,false),
-  HOWTO(R_SPARC_REGISTER,  0,4, 0,false,0,complain_overflow_bitfield,sparc_elf_notsup_reloc, "R_SPARC_REGISTER",false,0,MINUS_ONE, false),
-  HOWTO(R_SPARC_UA64,        0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA64",      false,0,MINUS_ONE, true),
-  HOWTO(R_SPARC_UA16,        0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA16",      false,0,0x0000ffff,true)
+  HOWTO(R_SPARC_10,        0,2,10,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_10",      FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_11,        0,2,11,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_11",      FALSE,0,0x000007ff,TRUE),
+  HOWTO(R_SPARC_64,        0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_64",      FALSE,0,MINUS_ONE, TRUE),
+  HOWTO(R_SPARC_OLO10,     0,2,13,FALSE,0,complain_overflow_signed,  sparc_elf_notsup_reloc, "R_SPARC_OLO10",   FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_HH22,     42,2,22,FALSE,0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_HH22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_HM10,     32,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HM10",    FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_LM22,     10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LM22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_PC_HH22,  42,2,22,TRUE, 0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_PC_HH22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_PC_HM10,  32,2,10,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC_HM10",    FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_PC_LM22,  10,2,22,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC_LM22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_WDISP16,   2,2,16,TRUE, 0,complain_overflow_signed,  sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_WDISP19,   2,2,19,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP19", FALSE,0,0x0007ffff,TRUE),
+  HOWTO(R_SPARC_UNUSED_42, 0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_UNUSED_42",FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_7,         0,2, 7,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_7",       FALSE,0,0x0000007f,TRUE),
+  HOWTO(R_SPARC_5,         0,2, 5,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_5",       FALSE,0,0x0000001f,TRUE),
+  HOWTO(R_SPARC_6,         0,2, 6,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_6",       FALSE,0,0x0000003f,TRUE),
+  HOWTO(R_SPARC_DISP64,    0,4,64,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP64",  FALSE,0,MINUS_ONE, TRUE),
+  HOWTO(R_SPARC_PLT64,     0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT64",   FALSE,0,MINUS_ONE, TRUE),
+  HOWTO(R_SPARC_HIX22,     0,4, 0,FALSE,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,  "R_SPARC_HIX22",   FALSE,0,MINUS_ONE, FALSE),
+  HOWTO(R_SPARC_LOX10,     0,4, 0,FALSE,0,complain_overflow_dont,    sparc_elf_lox10_reloc,  "R_SPARC_LOX10",   FALSE,0,MINUS_ONE, FALSE),
+  HOWTO(R_SPARC_H44,      22,2,22,FALSE,0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_H44",     FALSE,0,0x003fffff,FALSE),
+  HOWTO(R_SPARC_M44,      12,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_M44",     FALSE,0,0x000003ff,FALSE),
+  HOWTO(R_SPARC_L44,       0,2,13,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_L44",     FALSE,0,0x00000fff,FALSE),
+  HOWTO(R_SPARC_REGISTER,  0,4, 0,FALSE,0,complain_overflow_bitfield,sparc_elf_notsup_reloc, "R_SPARC_REGISTER",FALSE,0,MINUS_ONE, FALSE),
+  HOWTO(R_SPARC_UA64,        0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA64",      FALSE,0,MINUS_ONE, TRUE),
+  HOWTO(R_SPARC_UA16,        0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA16",      FALSE,0,0x0000ffff,TRUE)
 };
 
 struct elf_reloc_map {
@@ -255,7 +255,7 @@ static void
 sparc64_elf_info_to_howto (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf64_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   BFD_ASSERT (ELF64_R_TYPE_ID (dst->r_info) < (unsigned int) R_SPARC_max_std);
   cache_ptr->howto = &sparc64_elf_howto_table[ELF64_R_TYPE_ID (dst->r_info)];
@@ -285,13 +285,13 @@ sparc64_elf_get_dynamic_reloc_upper_bound (abfd)
    has secondary addend in ELF64_R_TYPE_DATA.  We handle it as two relocations
    for the same location,  R_SPARC_LO10 and R_SPARC_13.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_slurp_one_reloc_table (abfd, asect, rel_hdr, symbols, dynamic)
      bfd *abfd;
      asection *asect;
      Elf_Internal_Shdr *rel_hdr;
      asymbol **symbols;
-     boolean dynamic;
+     bfd_boolean dynamic;
 {
   PTR allocated = NULL;
   bfd_byte *native_relocs;
@@ -323,7 +323,7 @@ sparc64_elf_slurp_one_reloc_table (abfd, asect, rel_hdr, symbols, dynamic)
     {
       Elf_Internal_Rela rela;
 
-      bfd_elf64_swap_reloca_in (abfd, (Elf64_External_Rela *) native_relocs, &rela);
+      bfd_elf64_swap_reloca_in (abfd, native_relocs, &rela);
 
       /* The address of an ELF reloc is section relative for an object
         file, and absolute for an executable file or shared library.
@@ -371,22 +371,22 @@ sparc64_elf_slurp_one_reloc_table (abfd, asect, rel_hdr, symbols, dynamic)
   if (allocated != NULL)
     free (allocated);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (allocated != NULL)
     free (allocated);
-  return false;
+  return FALSE;
 }
 
 /* Read in and swap the external relocs.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
      bfd *abfd;
      asection *asect;
      asymbol **symbols;
-     boolean dynamic;
+     bfd_boolean dynamic;
 {
   struct bfd_elf_section_data * const d = elf_section_data (asect);
   Elf_Internal_Shdr *rel_hdr;
@@ -394,13 +394,13 @@ sparc64_elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
   bfd_size_type amt;
 
   if (asect->relocation != NULL)
-    return true;
+    return TRUE;
 
   if (! dynamic)
     {
       if ((asect->flags & SEC_RELOC) == 0
          || asect->reloc_count == 0)
-       return true;
+       return TRUE;
 
       rel_hdr = &d->rel_hdr;
       rel_hdr2 = d->rel_hdr2;
@@ -415,7 +415,7 @@ sparc64_elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
         dynamic symbol table, and in that case bfd_section_from_shdr
         in elf.c does not update the RELOC_COUNT.  */
       if (asect->_raw_size == 0)
-       return true;
+       return TRUE;
 
       rel_hdr = &d->this_hdr;
       asect->reloc_count = NUM_SHDR_ENTRIES (rel_hdr);
@@ -426,21 +426,21 @@ sparc64_elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
   amt *= 2 * sizeof (arelent);
   asect->relocation = (arelent *) bfd_alloc (abfd, amt);
   if (asect->relocation == NULL)
-    return false;
+    return FALSE;
 
   /* The sparc64_elf_slurp_one_reloc_table routine increments reloc_count.  */
   asect->reloc_count = 0;
 
   if (!sparc64_elf_slurp_one_reloc_table (abfd, asect, rel_hdr, symbols,
                                          dynamic))
-    return false;
+    return FALSE;
 
   if (rel_hdr2
       && !sparc64_elf_slurp_one_reloc_table (abfd, asect, rel_hdr2, symbols,
                                             dynamic))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Canonicalize the dynamic relocation entries.  Note that we return
@@ -476,7 +476,7 @@ sparc64_elf_canonicalize_dynamic_reloc (abfd, storage, syms)
          arelent *p;
          long count, i;
 
-         if (! sparc64_elf_slurp_reloc_table (abfd, s, syms, true))
+         if (! sparc64_elf_slurp_reloc_table (abfd, s, syms, TRUE))
            return -1;
          count = s->reloc_count;
          p = s->relocation;
@@ -499,7 +499,7 @@ sparc64_elf_write_relocs (abfd, sec, data)
      asection *sec;
      PTR data;
 {
-  boolean *failedp = (boolean *) data;
+  bfd_boolean *failedp = (bfd_boolean *) data;
   Elf_Internal_Shdr *rela_hdr;
   Elf64_External_Rela *outbound_relocas, *src_rela;
   unsigned int idx, count;
@@ -550,7 +550,7 @@ sparc64_elf_write_relocs (abfd, sec, data)
   rela_hdr->contents = (PTR) bfd_alloc (abfd, rela_hdr->sh_size);
   if (rela_hdr->contents == NULL)
     {
-      *failedp = true;
+      *failedp = TRUE;
       return;
     }
 
@@ -590,7 +590,7 @@ sparc64_elf_write_relocs (abfd, sec, data)
          n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym);
          if (n < 0)
            {
-             *failedp = true;
+             *failedp = TRUE;
              return;
            }
          last_sym_idx = n;
@@ -600,7 +600,7 @@ sparc64_elf_write_relocs (abfd, sec, data)
          && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec
          && ! _bfd_elf_validate_reloc (abfd, ptr))
        {
-         *failedp = true;
+         *failedp = TRUE;
          return;
        }
 
@@ -626,7 +626,7 @@ sparc64_elf_write_relocs (abfd, sec, data)
        dst_rela.r_info = ELF64_R_INFO (n, ptr->howto->type);
 
       dst_rela.r_addend = ptr->addend;
-      bfd_elf64_swap_reloca_out (abfd, &dst_rela, src_rela);
+      bfd_elf64_swap_reloca_out (abfd, &dst_rela, (bfd_byte *) src_rela);
       ++src_rela;
     }
 }
@@ -714,7 +714,7 @@ init_insn_reloc (abfd,
       return bfd_reloc_ok;
     }
 
-  /* This works because partial_inplace is false.  */
+  /* This works because partial_inplace is FALSE.  */
   if (output_bfd != NULL)
     return bfd_reloc_continue;
 
@@ -994,7 +994,7 @@ sparc64_elf_plt_ptr_offset (index, max)
    allocate space in the global offset table or procedure linkage
    table.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1012,7 +1012,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable || !(sec->flags & SEC_ALLOC))
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -1047,7 +1047,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
              /* Create the .got section.  */
              elf_hash_table (info)->dynobj = dynobj = abfd;
              if (! _bfd_elf_create_got_section (dynobj, info))
-               return false;
+               return FALSE;
            }
 
          if (sgot == NULL)
@@ -1071,7 +1071,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
                                                   | SEC_LINKER_CREATED
                                                   | SEC_READONLY))
                      || ! bfd_set_section_alignment (dynobj, srelgot, 3))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -1088,7 +1088,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
              if (h->dynindx == -1)
                {
                  if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-                   return false;
+                   return FALSE;
                }
 
              srelgot->_raw_size += sizeof (Elf64_External_Rela);
@@ -1106,7 +1106,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
                  size *= sizeof (bfd_vma);
                  local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size);
                  if (local_got_offsets == NULL)
-                   return false;
+                   return FALSE;
                  elf_local_got_offsets (abfd) = local_got_offsets;
                  for (i = 0; i < symtab_hdr->sh_info; i++)
                    local_got_offsets[i] = (bfd_vma) -1;
@@ -1164,14 +1164,14 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
              /* It does not make sense to have a procedure linkage
                  table entry for a local symbol.  */
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
 
          /* Make sure this symbol is output as a dynamic symbol.  */
          if (h->dynindx == -1)
            {
              if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
@@ -1243,7 +1243,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                              && strcmp (bfd_get_section_name (abfd, sec),
@@ -1262,7 +1262,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 3))
-                       return false;
+                       return FALSE;
                    }
                  if (sec->flags & SEC_READONLY)
                    info->flags |= DF_TEXTREL;
@@ -1280,17 +1280,17 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
          (*_bfd_error_handler) (_("%s: check_relocs: unhandled reloc type %d"),
                                bfd_archive_filename (abfd),
                                ELF64_R_TYPE_ID (rel->r_info));
-         return false;
+         return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Hook called by the linker routine which adds symbols from an object
    file.  We use it for STT_REGISTER symbols.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1316,7 +1316,7 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
           (*_bfd_error_handler)
             (_("%s: Only registers %%g[2367] can be declared using STT_REGISTER"),
              bfd_archive_filename (abfd));
-         return false;
+         return FALSE;
        }
 
       if (info->hash->creator != abfd->xvec
@@ -1326,7 +1326,7 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
             If STT_REGISTER comes from a dynamic object, don't put it into
             the output bfd.  The dynamic linker will recheck it.  */
          *namep = NULL;
-         return true;
+         return TRUE;
         }
 
       p = sparc64_elf_hash_table(info)->app_regs + reg;
@@ -1338,7 +1338,7 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
              (int) sym->st_value,
              **namep ? *namep : "#scratch", bfd_archive_filename (abfd),
              *p->name ? p->name : "#scratch", bfd_archive_filename (p->abfd));
-         return false;
+         return FALSE;
        }
 
       if (p->name == NULL)
@@ -1348,7 +1348,7 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
              struct elf_link_hash_entry *h;
 
              h = (struct elf_link_hash_entry *)
-               bfd_link_hash_lookup (info->hash, *namep, false, false, false);
+               bfd_link_hash_lookup (info->hash, *namep, FALSE, FALSE, FALSE);
 
              if (h != NULL)
                {
@@ -1360,13 +1360,13 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
                    (_("Symbol `%s' has differing types: REGISTER in %s, previously %s in %s"),
                     *namep, bfd_archive_filename (abfd),
                     stt_types[type], bfd_archive_filename (p->abfd));
-                 return false;
+                 return FALSE;
                }
 
              p->name = bfd_hash_allocate (&info->hash->table,
                                           strlen (*namep) + 1);
              if (!p->name)
-               return false;
+               return FALSE;
 
              strcpy (p->name, *namep);
            }
@@ -1386,7 +1386,7 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
            }
        }
       *namep = NULL;
-      return true;
+      return TRUE;
     }
   else if (*namep && **namep
           && info->hash->creator == abfd->xvec)
@@ -1406,22 +1406,22 @@ sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
              (_("Symbol `%s' has differing types: %s in %s, previously REGISTER in %s"),
               *namep, stt_types[type], bfd_archive_filename (abfd),
               bfd_archive_filename (p->abfd));
-           return false;
+           return FALSE;
          }
     }
-  return true;
+  return TRUE;
 }
 
 /* This function takes care of emiting STT_REGISTER symbols
    which we cannot easily keep in the symbol hash table.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_output_arch_syms (output_bfd, info, finfo, func)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
      PTR finfo;
-     boolean (*func) PARAMS ((PTR, const char *,
-                             Elf_Internal_Sym *, asection *));
+     bfd_boolean (*func)
+       PARAMS ((PTR, const char *, Elf_Internal_Sym *, asection *));
 {
   int reg;
   struct sparc64_elf_app_reg *app_regs =
@@ -1449,7 +1449,7 @@ sparc64_elf_output_arch_syms (output_bfd, info, finfo, func)
     }
 
   if (info->strip == strip_all)
-    return true;
+    return TRUE;
 
   for (reg = 0; reg < 4; reg++)
     if (app_regs [reg].name != NULL)
@@ -1457,7 +1457,7 @@ sparc64_elf_output_arch_syms (output_bfd, info, finfo, func)
        if (info->strip == strip_some
            && bfd_hash_lookup (info->keep_hash,
                                app_regs [reg].name,
-                               false, false) == NULL)
+                               FALSE, FALSE) == NULL)
          continue;
 
        sym.st_value = reg < 2 ? reg + 2 : reg + 4;
@@ -1468,10 +1468,10 @@ sparc64_elf_output_arch_syms (output_bfd, info, finfo, func)
        if (! (*func) (finfo, app_regs [reg].name, &sym,
                       sym.st_shndx == SHN_ABS
                         ? bfd_abs_section_ptr : bfd_und_section_ptr))
-         return false;
+         return FALSE;
       }
 
-  return true;
+  return TRUE;
 }
 
 static int
@@ -1509,7 +1509,7 @@ sparc64_elf_symbol_processing (abfd, asym)
    change the definition to something the rest of the link can
    understand.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -1553,7 +1553,7 @@ sparc64_elf_adjust_dynamic_symbol (info, h)
              procedure linkage table, and we can just do a WDISP30
              reloc instead.  */
          BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0);
-         return true;
+         return TRUE;
        }
 
       s = bfd_get_section_by_name (dynobj, ".plt");
@@ -1593,10 +1593,10 @@ sparc64_elf_adjust_dynamic_symbol (info, h)
       if (s->_raw_size >= (bfd_vma)1 << 32)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
-      return true;
+      return TRUE;
     }
 
   /* If this is a weak symbol, and there is a real definition, the
@@ -1608,7 +1608,7 @@ sparc64_elf_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -1619,7 +1619,7 @@ sparc64_elf_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section.  */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -1661,7 +1661,7 @@ sparc64_elf_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (dynobj, s))
     {
       if (! bfd_set_section_alignment (dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -1671,19 +1671,19 @@ sparc64_elf_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean relplt;
+  bfd_boolean relplt;
 
   dynobj = elf_hash_table (info)->dynobj;
   BFD_ASSERT (dynobj != NULL);
@@ -1714,11 +1714,11 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  relplt = false;
+  relplt = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
@@ -1727,7 +1727,7 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
         of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
-      strip = false;
+      strip = FALSE;
 
       if (strncmp (name, ".rela", 5) == 0)
        {
@@ -1742,12 +1742,12 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
                 adjust_dynamic_symbol is called, and it is that
                 function which decides whether anything needs to go
                 into these sections.  */
-             strip = true;
+             strip = TRUE;
            }
          else
            {
              if (strcmp (name, ".rela.plt") == 0)
-               relplt = true;
+               relplt = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -1772,7 +1772,7 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
         at the beginning, and we don't want garbage.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -1793,7 +1793,7 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
       if (!info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (relplt)
@@ -1802,18 +1802,18 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (!add_dynamic_entry (DT_RELA, 0)
          || !add_dynamic_entry (DT_RELASZ, 0)
          || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela)))
-       return false;
+       return FALSE;
 
       if (info->flags & DF_TEXTREL)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
        }
 
       /* Add dynamic STT_REGISTER symbols and corresponding DT_SPARC_REGISTER
@@ -1827,12 +1827,12 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
            struct elf_link_local_dynamic_entry *entry, *e;
 
            if (!add_dynamic_entry (DT_SPARC_REGISTER, 0))
-             return false;
+             return FALSE;
 
            entry = (struct elf_link_local_dynamic_entry *)
              bfd_hash_allocate (&info->hash->table, sizeof (*entry));
            if (entry == NULL)
-             return false;
+             return FALSE;
 
            /* We cheat here a little bit: the symbol will not be local, so we
               put it at the end of the dynlocal linked list.  We will fix it
@@ -1841,7 +1841,7 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
            entry->isym.st_size = 0;
            if (*app_regs [reg].name != '\0')
              entry->isym.st_name
-               = _bfd_elf_strtab_add (dynstr, app_regs[reg].name, false);
+               = _bfd_elf_strtab_add (dynstr, app_regs[reg].name, FALSE);
            else
              entry->isym.st_name = 0;
            entry->isym.st_other = 0;
@@ -1865,22 +1865,22 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 \f
 #define SET_SEC_DO_RELAX(section) do { elf_section_data(section)->tdata = (void *)1; } while (0)
 #define SEC_DO_RELAX(section) (elf_section_data(section)->tdata == (void *)1)
 
-static boolean
+static bfd_boolean
 sparc64_elf_relax_section (abfd, section, link_info, again)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
-     boolean *again;
+     bfd_boolean *again;
 {
-  *again = false;
+  *again = FALSE;
   SET_SEC_DO_RELAX (section);
-  return true;
+  return TRUE;
 }
 \f
 /* This is the condition under which finish_dynamic_symbol will be called
@@ -1896,7 +1896,7 @@ sparc64_elf_relax_section (abfd, section, link_info, again)
 
 /* Relocate a SPARC64 ELF section.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                              contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -1920,7 +1920,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1946,14 +1946,14 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       asection *sec;
       bfd_vma relocation, off;
       bfd_reloc_status_type r;
-      boolean is_plt = false;
-      boolean unresolved_reloc;
+      bfd_boolean is_plt = FALSE;
+      bfd_boolean unresolved_reloc;
 
       r_type = ELF64_R_TYPE_ID (rel->r_info);
       if (r_type < 0 || r_type >= (int) R_SPARC_max_std)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       howto = sparc64_elf_howto_table + r_type;
 
@@ -1962,7 +1962,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       h = NULL;
       sym = NULL;
       sec = NULL;
-      unresolved_reloc = false;
+      unresolved_reloc = FALSE;
       if (r_symndx < symtab_hdr->sh_info)
        {
          sym = local_syms + r_symndx;
@@ -1986,7 +1986,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                   relocation value for this symbol.  output_section
                   is typically NULL for symbols satisfied by a shared
                   library.  */
-               unresolved_reloc = true;
+               unresolved_reloc = TRUE;
              else
                relocation = (h->root.u.def.value
                              + sec->output_section->vma
@@ -2006,7 +2006,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      input_section, rel->r_offset,
                      (!info->shared || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
 
              /* To avoid generating warning messages about truncated
                 relocations, set the relocation's address to be the same as
@@ -2073,7 +2073,8 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            case R_SPARC_UA16:
              {
                Elf_Internal_Rela outrel;
-               boolean skip, relocate;
+               bfd_byte *loc;
+               bfd_boolean skip, relocate;
 
                if (sreloc == NULL)
                  {
@@ -2084,7 +2085,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                        elf_section_data (input_section)->rel_hdr.sh_name));
 
                    if (name == NULL)
-                     return false;
+                     return FALSE;
 
                    BFD_ASSERT (strncmp (name, ".rela", 5) == 0
                                && strcmp (bfd_get_section_name(input_bfd,
@@ -2095,16 +2096,16 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    BFD_ASSERT (sreloc != NULL);
                  }
 
-               skip = false;
-               relocate = false;
+               skip = FALSE;
+               relocate = FALSE;
 
                outrel.r_offset =
                  _bfd_elf_section_offset (output_bfd, info, input_section,
                                           rel->r_offset);
                if (outrel.r_offset == (bfd_vma) -1)
-                 skip = true;
+                 skip = TRUE;
                else if (outrel.r_offset == (bfd_vma) -2)
-                 skip = true, relocate = true;
+                 skip = TRUE, relocate = TRUE;
 
                outrel.r_offset += (input_section->output_section->vma
                                    + input_section->output_offset);
@@ -2141,7 +2142,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                       FIXME: Add code tracking needed dynamic relocs as
                       e.g. i386 has.  */
                    if (h->dynindx == -1)
-                     skip = true, relocate = true;
+                     skip = TRUE, relocate = TRUE;
                    break;
                  }
 
@@ -2187,7 +2188,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                        else if (sec == NULL || sec->owner == NULL)
                          {
                            bfd_set_error (bfd_error_bad_value);
-                           return false;
+                           return FALSE;
                          }
                        else
                          {
@@ -2212,7 +2213,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                  (_("%s: probably compiled without -fPIC?"),
                                   bfd_archive_filename (input_bfd));
                                bfd_set_error (bfd_error_bad_value);
-                               return false;
+                               return FALSE;
                              }
                          }
 
@@ -2224,11 +2225,9 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                      }
                  }
 
-               bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                          (((Elf64_External_Rela *)
-                                            sreloc->contents)
-                                           + sreloc->reloc_count));
-               ++sreloc->reloc_count;
+               loc = sreloc->contents;
+               loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela);
+               bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
 
                /* This reloc will be computed at runtime, so there's no
                   need to do anything now.  */
@@ -2254,7 +2253,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
          if (h != NULL)
            {
-             boolean dyn;
+             bfd_boolean dyn;
 
              off = h->got.offset;
              BFD_ASSERT (off != (bfd_vma) -1);
@@ -2289,7 +2288,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
              else
-               unresolved_reloc = false;
+               unresolved_reloc = FALSE;
            }
          else
            {
@@ -2308,8 +2307,9 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
                  if (info->shared)
                    {
-                     asection *srelgot;
+                     asection *s;
                      Elf_Internal_Rela outrel;
+                     bfd_byte *loc;
 
                      /* The Solaris 2.7 64-bit linker adds the contents
                         of the location to the value of the reloc.
@@ -2321,19 +2321,17 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
                      /* We need to generate a R_SPARC_RELATIVE reloc
                         for the dynamic linker.  */
-                     srelgot = bfd_get_section_by_name(dynobj, ".rela.got");
-                     BFD_ASSERT (srelgot != NULL);
+                     s = bfd_get_section_by_name(dynobj, ".rela.got");
+                     BFD_ASSERT (s != NULL);
 
                      outrel.r_offset = (sgot->output_section->vma
                                         + sgot->output_offset
                                         + off);
                      outrel.r_info = ELF64_R_INFO (0, R_SPARC_RELATIVE);
                      outrel.r_addend = relocation;
-                     bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                                (((Elf64_External_Rela *)
-                                                  srelgot->contents)
-                                                 + srelgot->reloc_count));
-                     ++srelgot->reloc_count;
+                     loc = s->contents;
+                     loc += s->reloc_count++ * sizeof (Elf64_External_Rela);
+                     bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
                    }
                  else
                    bfd_put_64 (output_bfd, relocation, sgot->contents + off);
@@ -2371,13 +2369,13 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
          relocation = (splt->output_section->vma
                        + splt->output_offset
                        + sparc64_elf_plt_entry_offset (h->plt.offset));
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
          if (r_type == R_SPARC_WPLT30)
            goto do_wplt30;
          if (r_type == R_SPARC_PLT32 || r_type == R_SPARC_PLT64)
            {
              r_type = r_type == R_SPARC_PLT32 ? R_SPARC_32 : R_SPARC_64;
-             is_plt = true;
+             is_plt = TRUE;
              goto do_dynreloc;
            }
          goto do_default;
@@ -2612,26 +2610,26 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                         symtab_hdr->sh_link,
                         sym->st_name));
                if (name == NULL)
-                 return false;
+                 return FALSE;
                if (*name == '\0')
                  name = bfd_section_name (input_bfd, sec);
              }
            if (! ((*info->callbacks->reloc_overflow)
                   (info, name, howto->name, (bfd_vma) 0,
                    input_bfd, input_section, rel->r_offset)))
-             return false;
+             return FALSE;
          }
        break;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2647,6 +2645,7 @@ sparc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *splt;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the PLT.  Set it up.  */
 
@@ -2678,9 +2677,9 @@ sparc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
         Sun forgot to read their own ABI and copied elf32-sparc behaviour,
         thus .plt[4] has corresponding .rela.plt[0] and so on.  */
 
-      bfd_elf64_swap_reloca_out (output_bfd, &rela,
-                                ((Elf64_External_Rela *) srela->contents
-                                 + (h->plt.offset - 4)));
+      loc = srela->contents;
+      loc += (h->plt.offset - 4) * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
        {
@@ -2702,6 +2701,7 @@ sparc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *sgot;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the GOT.  Set it up.  */
 
@@ -2736,16 +2736,16 @@ sparc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
 
       bfd_put_64 (output_bfd, (bfd_vma) 0,
                  sgot->contents + (h->got.offset &~ (bfd_vma) 1));
-      bfd_elf64_swap_reloca_out (output_bfd, &rela,
-                                ((Elf64_External_Rela *) srela->contents
-                                 + srela->reloc_count));
-      ++srela->reloc_count;
+      loc = srela->contents;
+      loc += srela->reloc_count++ * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       asection *s;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbols needs a copy reloc.  Set it up.  */
 
@@ -2760,10 +2760,8 @@ sparc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF64_R_INFO (h->dynindx, R_SPARC_COPY);
       rela.r_addend = 0;
-      bfd_elf64_swap_reloca_out (output_bfd, &rela,
-                                ((Elf64_External_Rela *) s->contents
-                                 + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf64_External_Rela);
+      bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   /* Mark some specially defined symbols as absolute.  */
@@ -2772,12 +2770,12 @@ sparc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2805,27 +2803,27 @@ sparc64_elf_finish_dynamic_sections (output_bfd, info)
        {
          Elf_Internal_Dyn dyn;
          const char *name;
-         boolean size;
+         bfd_boolean size;
 
          bfd_elf64_swap_dyn_in (dynobj, dyncon, &dyn);
 
          switch (dyn.d_tag)
            {
-           case DT_PLTGOT:   name = ".plt"; size = false; break;
-           case DT_PLTRELSZ: name = ".rela.plt"; size = true; break;
-           case DT_JMPREL:   name = ".rela.plt"; size = false; break;
+           case DT_PLTGOT:   name = ".plt"; size = FALSE; break;
+           case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE; break;
+           case DT_JMPREL:   name = ".rela.plt"; size = FALSE; break;
            case DT_SPARC_REGISTER:
              if (stt_regidx == -1)
                {
                  stt_regidx =
                    _bfd_elf_link_lookup_local_dynindx (info, output_bfd, -1);
                  if (stt_regidx == -1)
-                   return false;
+                   return FALSE;
                }
              dyn.d_un.d_val = stt_regidx++;
              bfd_elf64_swap_dyn_out (output_bfd, &dyn, dyncon);
              /* fallthrough */
-           default:          name = NULL; size = false; break;
+           default:          name = NULL; size = FALSE; break;
            }
 
          if (name != NULL)
@@ -2878,7 +2876,7 @@ sparc64_elf_finish_dynamic_sections (output_bfd, info)
 
   elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 8;
 
-  return true;
+  return TRUE;
 }
 
 static enum elf_reloc_type_class
@@ -2903,25 +2901,25 @@ sparc64_elf_reloc_type_class (rela)
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
-  boolean error;
+  bfd_boolean error;
   flagword new_flags, old_flags;
   int new_mm, old_mm;
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   new_flags = elf_elfheader (ibfd)->e_flags;
   old_flags = elf_elfheader (obfd)->e_flags;
 
   if (!elf_flags_init (obfd))   /* First call, no flags set */
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = new_flags;
     }
 
@@ -2930,7 +2928,7 @@ sparc64_elf_merge_private_bfd_data (ibfd, obfd)
 
   else                                  /* Incompatible flags */
     {
-      error = false;
+      error = FALSE;
 
 #define EF_SPARC_ISA_EXTENSIONS \
   (EF_SPARC_SUN_US1 | EF_SPARC_SUN_US3 | EF_SPARC_HAL_R1)
@@ -2952,7 +2950,7 @@ sparc64_elf_merge_private_bfd_data (ibfd, obfd)
          if ((old_flags & (EF_SPARC_SUN_US1 | EF_SPARC_SUN_US3))
              && (old_flags & EF_SPARC_HAL_R1))
            {
-             error = true;
+             error = TRUE;
              (*_bfd_error_handler)
                (_("%s: linking UltraSPARC specific with HAL specific code"),
                 bfd_archive_filename (ibfd));
@@ -2971,7 +2969,7 @@ sparc64_elf_merge_private_bfd_data (ibfd, obfd)
       /* Warn about any other mismatches */
       if (new_flags != old_flags)
         {
-          error = true;
+          error = TRUE;
           (*_bfd_error_handler)
             (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
              bfd_archive_filename (ibfd), (long) new_flags, (long) old_flags);
@@ -2982,18 +2980,18 @@ sparc64_elf_merge_private_bfd_data (ibfd, obfd)
       if (error)
         {
           bfd_set_error (bfd_error_bad_value);
-          return false;
+          return FALSE;
         }
     }
-  return true;
+  return TRUE;
 }
 
 /* MARCO: Set the correct entry size for the .stab section.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_fake_sections (abfd, hdr, sec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     Elf32_Internal_Shdr *hdr ATTRIBUTE_UNUSED;
+     Elf_Internal_Shdr *hdr ATTRIBUTE_UNUSED;
      asection *sec;
 {
   const char *name;
@@ -3005,8 +3003,8 @@ sparc64_elf_fake_sections (abfd, hdr, sec)
       /* Even in the 64bit case the stab entries are only 12 bytes long.  */
       elf_section_data (sec)->this_hdr.sh_entsize = 12;
     }
-  
-  return true;
+
+  return TRUE;
 }
 \f
 /* Print a STT_REGISTER symbol to file FILE.  */
@@ -3039,7 +3037,7 @@ sparc64_elf_print_symbol_all (abfd, filep, symbol)
 \f
 /* Set the right machine number for a SPARC64 ELF file.  */
 
-static boolean
+static bfd_boolean
 sparc64_elf_object_p (abfd)
      bfd *abfd;
 {
@@ -3086,10 +3084,10 @@ const struct elf_size_info sparc64_elf_size_info =
   bfd_elf64_slurp_symbol_table,
   bfd_elf64_swap_dyn_in,
   bfd_elf64_swap_dyn_out,
-  NULL,
-  NULL,
-  NULL,
-  NULL
+  bfd_elf64_swap_reloc_in,
+  bfd_elf64_swap_reloc_out,
+  bfd_elf64_swap_reloca_in,
+  bfd_elf64_swap_reloca_out
 };
 
 #define TARGET_BIG_SYM bfd_elf64_sparc_vec
index cbb961f370a0c5cc801eab493381d07ba0532581..a3c36ff67dcbf208583e77c0a409b2502d7d69ab 100644 (file)
@@ -34,83 +34,83 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    special_function, name, partial_inplace, src_mask, dst_pack, pcrel_offset.  */
 static reloc_howto_type x86_64_elf_howto_table[] =
 {
-  HOWTO(R_X86_64_NONE, 0, 0, 0, false, 0, complain_overflow_dont,
-       bfd_elf_generic_reloc, "R_X86_64_NONE", false, 0x00000000, 0x00000000,
-       false),
-  HOWTO(R_X86_64_64, 0, 4, 64, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_64", false, MINUS_ONE, MINUS_ONE,
-       false),
-  HOWTO(R_X86_64_PC32, 0, 2, 32, true, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_PC32", false, 0xffffffff, 0xffffffff,
-       true),
-  HOWTO(R_X86_64_GOT32, 0, 2, 32, false, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_GOT32", false, 0xffffffff, 0xffffffff,
-       false),
-  HOWTO(R_X86_64_PLT32, 0, 2, 32, true, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_PLT32", false, 0xffffffff, 0xffffffff,
-       true),
-  HOWTO(R_X86_64_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_COPY", false, 0xffffffff, 0xffffffff,
-       false),
-  HOWTO(R_X86_64_GLOB_DAT, 0, 4, 64, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", false, MINUS_ONE,
-       MINUS_ONE, false),
-  HOWTO(R_X86_64_JUMP_SLOT, 0, 4, 64, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", false, MINUS_ONE,
-       MINUS_ONE, false),
-  HOWTO(R_X86_64_RELATIVE, 0, 4, 64, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_RELATIVE", false, MINUS_ONE,
-       MINUS_ONE, false),
-  HOWTO(R_X86_64_GOTPCREL, 0, 2, 32, true, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", false, 0xffffffff,
-       0xffffffff, true),
-  HOWTO(R_X86_64_32, 0, 2, 32, false, 0, complain_overflow_unsigned,
-       bfd_elf_generic_reloc, "R_X86_64_32", false, 0xffffffff, 0xffffffff,
-       false),
-  HOWTO(R_X86_64_32S, 0, 2, 32, false, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_32S", false, 0xffffffff, 0xffffffff,
-       false),
-  HOWTO(R_X86_64_16, 0, 1, 16, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_16", false, 0xffff, 0xffff, false),
-  HOWTO(R_X86_64_PC16,0, 1, 16, true, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_PC16", false, 0xffff, 0xffff, true),
-  HOWTO(R_X86_64_8, 0, 0, 8, false, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_8", false, 0xff, 0xff, false),
-  HOWTO(R_X86_64_PC8, 0, 0, 8, true, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_PC8", false, 0xff, 0xff, true),
-  HOWTO(R_X86_64_DTPMOD64, 0, 4, 64, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", false, MINUS_ONE,
-       MINUS_ONE, false),
-  HOWTO(R_X86_64_DTPOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", false, MINUS_ONE,
-       MINUS_ONE, false),
-  HOWTO(R_X86_64_TPOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_TPOFF64", false, MINUS_ONE,
-       MINUS_ONE, false),
-  HOWTO(R_X86_64_TLSGD, 0, 2, 32, true, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_TLSGD", false, 0xffffffff,
-       0xffffffff, true),
-  HOWTO(R_X86_64_TLSLD, 0, 2, 32, true, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_TLSLD", false, 0xffffffff,
-       0xffffffff, true),
-  HOWTO(R_X86_64_DTPOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
-       bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", false, 0xffffffff,
-       0xffffffff, false),
-  HOWTO(R_X86_64_GOTTPOFF, 0, 2, 32, true, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", false, 0xffffffff,
-       0xffffffff, true),
-  HOWTO(R_X86_64_TPOFF32, 0, 2, 32, false, 0, complain_overflow_signed,
-       bfd_elf_generic_reloc, "R_X86_64_TPOFF32", false, 0xffffffff,
-       0xffffffff, false),
+  HOWTO(R_X86_64_NONE, 0, 0, 0, FALSE, 0, complain_overflow_dont,
+       bfd_elf_generic_reloc, "R_X86_64_NONE", FALSE, 0x00000000, 0x00000000,
+       FALSE),
+  HOWTO(R_X86_64_64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_64", FALSE, MINUS_ONE, MINUS_ONE,
+       FALSE),
+  HOWTO(R_X86_64_PC32, 0, 2, 32, TRUE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_PC32", FALSE, 0xffffffff, 0xffffffff,
+       TRUE),
+  HOWTO(R_X86_64_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_GOT32", FALSE, 0xffffffff, 0xffffffff,
+       FALSE),
+  HOWTO(R_X86_64_PLT32, 0, 2, 32, TRUE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_PLT32", FALSE, 0xffffffff, 0xffffffff,
+       TRUE),
+  HOWTO(R_X86_64_COPY, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_COPY", FALSE, 0xffffffff, 0xffffffff,
+       FALSE),
+  HOWTO(R_X86_64_GLOB_DAT, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", FALSE, MINUS_ONE,
+       MINUS_ONE, FALSE),
+  HOWTO(R_X86_64_JUMP_SLOT, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", FALSE, MINUS_ONE,
+       MINUS_ONE, FALSE),
+  HOWTO(R_X86_64_RELATIVE, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_RELATIVE", FALSE, MINUS_ONE,
+       MINUS_ONE, FALSE),
+  HOWTO(R_X86_64_GOTPCREL, 0, 2, 32, TRUE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", FALSE, 0xffffffff,
+       0xffffffff, TRUE),
+  HOWTO(R_X86_64_32, 0, 2, 32, FALSE, 0, complain_overflow_unsigned,
+       bfd_elf_generic_reloc, "R_X86_64_32", FALSE, 0xffffffff, 0xffffffff,
+       FALSE),
+  HOWTO(R_X86_64_32S, 0, 2, 32, FALSE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_32S", FALSE, 0xffffffff, 0xffffffff,
+       FALSE),
+  HOWTO(R_X86_64_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_16", FALSE, 0xffff, 0xffff, FALSE),
+  HOWTO(R_X86_64_PC16,0, 1, 16, TRUE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_PC16", FALSE, 0xffff, 0xffff, TRUE),
+  HOWTO(R_X86_64_8, 0, 0, 8, FALSE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_8", FALSE, 0xff, 0xff, FALSE),
+  HOWTO(R_X86_64_PC8, 0, 0, 8, TRUE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_PC8", FALSE, 0xff, 0xff, TRUE),
+  HOWTO(R_X86_64_DTPMOD64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", FALSE, MINUS_ONE,
+       MINUS_ONE, FALSE),
+  HOWTO(R_X86_64_DTPOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", FALSE, MINUS_ONE,
+       MINUS_ONE, FALSE),
+  HOWTO(R_X86_64_TPOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_TPOFF64", FALSE, MINUS_ONE,
+       MINUS_ONE, FALSE),
+  HOWTO(R_X86_64_TLSGD, 0, 2, 32, TRUE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_TLSGD", FALSE, 0xffffffff,
+       0xffffffff, TRUE),
+  HOWTO(R_X86_64_TLSLD, 0, 2, 32, TRUE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_TLSLD", FALSE, 0xffffffff,
+       0xffffffff, TRUE),
+  HOWTO(R_X86_64_DTPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+       bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", FALSE, 0xffffffff,
+       0xffffffff, FALSE),
+  HOWTO(R_X86_64_GOTTPOFF, 0, 2, 32, TRUE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", FALSE, 0xffffffff,
+       0xffffffff, TRUE),
+  HOWTO(R_X86_64_TPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_signed,
+       bfd_elf_generic_reloc, "R_X86_64_TPOFF32", FALSE, 0xffffffff,
+       0xffffffff, FALSE),
 
 /* GNU extension to record C++ vtable hierarchy.  */
-  HOWTO (R_X86_64_GNU_VTINHERIT, 0, 4, 0, false, 0, complain_overflow_dont,
-        NULL, "R_X86_64_GNU_VTINHERIT", false, 0, 0, false),
+  HOWTO (R_X86_64_GNU_VTINHERIT, 0, 4, 0, FALSE, 0, complain_overflow_dont,
+        NULL, "R_X86_64_GNU_VTINHERIT", FALSE, 0, 0, FALSE),
 
 /* GNU extension to record C++ vtable member usage.  */
-  HOWTO (R_X86_64_GNU_VTENTRY, 0, 4, 0, false, 0, complain_overflow_dont,
-        _bfd_elf_rel_vtable_reloc_fn, "R_X86_64_GNU_VTENTRY", false, 0, 0,
-        false)
+  HOWTO (R_X86_64_GNU_VTENTRY, 0, 4, 0, FALSE, 0, complain_overflow_dont,
+        _bfd_elf_rel_vtable_reloc_fn, "R_X86_64_GNU_VTENTRY", FALSE, 0, 0,
+        FALSE)
 };
 
 /* Map BFD relocs to the x86_64 elf relocs.  */
@@ -153,58 +153,58 @@ static const struct elf_reloc_map x86_64_reloc_map[] =
 static reloc_howto_type *elf64_x86_64_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void elf64_x86_64_info_to_howto
-  PARAMS ((bfd *, arelent *, Elf64_Internal_Rela *));
-static boolean elf64_x86_64_grok_prstatus
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean elf64_x86_64_grok_prstatus
   PARAMS ((bfd *, Elf_Internal_Note *));
-static boolean elf64_x86_64_grok_psinfo
+static bfd_boolean elf64_x86_64_grok_psinfo
   PARAMS ((bfd *, Elf_Internal_Note *));
 static struct bfd_link_hash_table *elf64_x86_64_link_hash_table_create
   PARAMS ((bfd *));
 static int elf64_x86_64_tls_transition
   PARAMS ((struct bfd_link_info *, int, int));
-static boolean elf64_x86_64_mkobject
+static bfd_boolean elf64_x86_64_mkobject
   PARAMS((bfd *));
-static boolean elf64_x86_64_elf_object_p PARAMS ((bfd *abfd));
-static boolean create_got_section
+static bfd_boolean elf64_x86_64_elf_object_p PARAMS ((bfd *abfd));
+static bfd_boolean create_got_section
   PARAMS((bfd *, struct bfd_link_info *));
-static boolean elf64_x86_64_create_dynamic_sections
+static bfd_boolean elf64_x86_64_create_dynamic_sections
   PARAMS((bfd *, struct bfd_link_info *));
 static void elf64_x86_64_copy_indirect_symbol
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
           struct elf_link_hash_entry *));
-static boolean elf64_x86_64_check_relocs
+static bfd_boolean elf64_x86_64_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *sec,
           const Elf_Internal_Rela *));
 static asection *elf64_x86_64_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
 
-static boolean elf64_x86_64_gc_sweep_hook
+static bfd_boolean elf64_x86_64_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 
 static struct bfd_hash_entry *link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static boolean elf64_x86_64_adjust_dynamic_symbol
+static bfd_boolean elf64_x86_64_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
 
-static boolean allocate_dynrelocs
+static bfd_boolean allocate_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean readonly_dynrelocs
+static bfd_boolean readonly_dynrelocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf64_x86_64_size_dynamic_sections
+static bfd_boolean elf64_x86_64_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static bfd_vma dtpoff_base
   PARAMS ((struct bfd_link_info *));
 static bfd_vma tpoff
   PARAMS ((struct bfd_link_info *, bfd_vma));
-static boolean elf64_x86_64_relocate_section
+static bfd_boolean elf64_x86_64_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
         Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static boolean elf64_x86_64_finish_dynamic_symbol
+static bfd_boolean elf64_x86_64_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *sym));
-static boolean elf64_x86_64_finish_dynamic_sections
+static bfd_boolean elf64_x86_64_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 static enum elf_reloc_type_class elf64_x86_64_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
@@ -231,7 +231,7 @@ static void
 elf64_x86_64_info_to_howto (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf64_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned r_type, i;
 
@@ -251,7 +251,7 @@ elf64_x86_64_info_to_howto (abfd, cache_ptr, dst)
 }
 \f
 /* Support for core dump NOTE sections.  */
-static boolean
+static bfd_boolean
 elf64_x86_64_grok_prstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -262,7 +262,7 @@ elf64_x86_64_grok_prstatus (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 336:                /* sizeof(istruct elf_prstatus) on Linux/x86_64 */
        /* pr_cursig */
@@ -285,7 +285,7 @@ elf64_x86_64_grok_prstatus (abfd, note)
                                          raw_size, note->descpos + offset);
 }
 
-static boolean
+static bfd_boolean
 elf64_x86_64_grok_psinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -293,7 +293,7 @@ elf64_x86_64_grok_psinfo (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 136:                /* sizeof(struct elf_prpsinfo) on Linux/x86_64 */
        elf_tdata (abfd)->core_program
@@ -314,7 +314,7 @@ elf64_x86_64_grok_psinfo (abfd, note)
       command[n - 1] = '\0';
   }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Functions for the x86-64 ELF linker.         */
@@ -505,7 +505,7 @@ elf64_x86_64_link_hash_table_create (abfd)
 /* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up
    shortcuts to them in our hash table.  */
 
-static boolean
+static bfd_boolean
 create_got_section (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -513,7 +513,7 @@ create_got_section (dynobj, info)
   struct elf64_x86_64_link_hash_table *htab;
 
   if (! _bfd_elf_create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   htab = elf64_x86_64_hash_table (info);
   htab->sgot = bfd_get_section_by_name (dynobj, ".got");
@@ -528,15 +528,15 @@ create_got_section (dynobj, info)
                                   | SEC_IN_MEMORY | SEC_LINKER_CREATED
                                   | SEC_READONLY))
       || ! bfd_set_section_alignment (dynobj, htab->srelgot, 3))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Create .plt, .rela.plt, .got, .got.plt, .rela.got, .dynbss, and
    .rela.bss sections in DYNOBJ, and set up shortcuts to them in our
    hash table.  */
 
-static boolean
+static bfd_boolean
 elf64_x86_64_create_dynamic_sections (dynobj, info)
      bfd *dynobj;
      struct bfd_link_info *info;
@@ -545,10 +545,10 @@ elf64_x86_64_create_dynamic_sections (dynobj, info)
 
   htab = elf64_x86_64_hash_table (info);
   if (!htab->sgot && !create_got_section (dynobj, info))
-    return false;
+    return FALSE;
 
   if (!_bfd_elf_create_dynamic_sections (dynobj, info))
-    return false;
+    return FALSE;
 
   htab->splt = bfd_get_section_by_name (dynobj, ".plt");
   htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt");
@@ -560,7 +560,7 @@ elf64_x86_64_create_dynamic_sections (dynobj, info)
       || (!info->shared && !htab->srelbss))
     abort ();
 
-  return true;
+  return TRUE;
 }
 
 /* Copy the extra info we tack onto an elf_link_hash_entry.  */
@@ -619,18 +619,18 @@ elf64_x86_64_copy_indirect_symbol (bed, dir, ind)
   _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
 }
 
-static boolean
+static bfd_boolean
 elf64_x86_64_mkobject (abfd)
      bfd *abfd;
 {
   bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata);
   abfd->tdata.any = bfd_zalloc (abfd, amt);
   if (abfd->tdata.any == NULL)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf64_x86_64_elf_object_p (abfd)
   bfd *abfd;
 {
@@ -639,12 +639,12 @@ elf64_x86_64_elf_object_p (abfd)
   bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata);
   new_tdata = bfd_zalloc (abfd, amt);
   if (new_tdata == NULL)
-    return false;
+    return FALSE;
   new_tdata->root = *abfd->tdata.elf_obj_data;
   abfd->tdata.any = new_tdata;
   /* Set the right machine number for an x86-64 elf64 file.  */
   bfd_default_set_arch_mach (abfd, bfd_arch_i386, bfd_mach_x86_64);
-  return true;
+  return TRUE;
 }
 
 static int
@@ -674,7 +674,7 @@ elf64_x86_64_tls_transition (info, r_type, is_local)
    calculate needed space in the global offset table, procedure
    linkage table, and dynamic reloc sections.  */
 
-static boolean
+static bfd_boolean
 elf64_x86_64_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -689,7 +689,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
   asection *sreloc;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   htab = elf64_x86_64_hash_table (info);
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -712,7 +712,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
          (*_bfd_error_handler) (_("%s: bad symbol index: %d"),
                                 bfd_archive_filename (abfd),
                                 r_symndx);
-         return false;
+         return FALSE;
        }
 
       if (r_symndx < symtab_hdr->sh_info)
@@ -735,7 +735,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
                 bfd_archive_filename (abfd),
                 x86_64_elf_howto_table[r_type].name);
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
          break;
 
@@ -778,7 +778,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
                    local_got_refcounts = ((bfd_signed_vma *)
                                           bfd_zalloc (abfd, size));
                    if (local_got_refcounts == NULL)
-                     return false;
+                     return FALSE;
                    elf_local_got_refcounts (abfd) = local_got_refcounts;
                    elf64_x86_64_local_got_tls_type (abfd)
                      = (char *) (local_got_refcounts + symtab_hdr->sh_info);
@@ -801,7 +801,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
                      (_("%s: %s' accessed both as normal and thread local symbol"),
                       bfd_archive_filename (abfd),
                       h ? h->root.root.string : "<local>");
-                   return false;
+                   return FALSE;
                  }
              }
 
@@ -822,7 +822,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
              if (htab->elf.dynobj == NULL)
                htab->elf.dynobj = abfd;
              if (!create_got_section (htab->elf.dynobj, info))
-               return false;
+               return FALSE;
            }
          break;
 
@@ -860,7 +860,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
                 bfd_archive_filename (abfd),
                 x86_64_elf_howto_table[r_type].name);
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
          /* Fall through.  */
 
@@ -937,7 +937,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
                           elf_elfheader (abfd)->e_shstrndx,
                           elf_section_data (sec)->rel_hdr.sh_name));
                  if (name == NULL)
-                   return false;
+                   return FALSE;
 
                  if (strncmp (name, ".rela", 5) != 0
                      || strcmp (bfd_get_section_name (abfd, sec),
@@ -966,7 +966,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
                      if (sreloc == NULL
                          || ! bfd_set_section_flags (dynobj, sreloc, flags)
                          || ! bfd_set_section_alignment (dynobj, sreloc, 3))
-                       return false;
+                       return FALSE;
                    }
                  elf_section_data (sec)->sreloc = sreloc;
                }
@@ -987,7 +987,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
                  s = bfd_section_from_r_symndx (abfd, &htab->sym_sec,
                                                 sec, r_symndx);
                  if (s == NULL)
-                   return false;
+                   return FALSE;
 
                  head = ((struct elf64_x86_64_dyn_relocs **)
                          &elf_section_data (s)->local_dynrel);
@@ -1000,7 +1000,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
                  p = ((struct elf64_x86_64_dyn_relocs *)
                       bfd_alloc (htab->elf.dynobj, amt));
                  if (p == NULL)
-                   return false;
+                   return FALSE;
                  p->next = *head;
                  *head = p;
                  p->sec = sec;
@@ -1020,14 +1020,14 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
        case R_X86_64_GNU_VTINHERIT:
          if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_X86_64_GNU_VTENTRY:
          if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-           return false;
+           return FALSE;
          break;
 
        default:
@@ -1035,7 +1035,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the section that should be marked against GC for a given
@@ -1080,7 +1080,7 @@ elf64_x86_64_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.         */
 
-static boolean
+static bfd_boolean
 elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1183,7 +1183,7 @@ elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs)
        break;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -1192,7 +1192,7 @@ elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs)
    change the definition to something the rest of the link can
    understand. */
 
-static boolean
+static bfd_boolean
 elf64_x86_64_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -1225,7 +1225,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
          h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
        }
 
-      return true;
+      return TRUE;
     }
   else
     /* It's possible that we incorrectly decided a .plt reloc was
@@ -1244,7 +1244,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
@@ -1255,18 +1255,18 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
      For such cases we need not do anything here; the relocations will
      be handled correctly by relocate_section. */
   if (info->shared)
-    return true;
+    return TRUE;
 
   /* If there are no references to this symbol that do not use the
      GOT, we don't need to generate a copy reloc.  */
   if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
-    return true;
+    return TRUE;
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
   if (info->nocopyreloc)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   eh = (struct elf64_x86_64_link_hash_entry *) h;
@@ -1282,7 +1282,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
   if (p == NULL)
     {
       h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF;
-      return true;
+      return TRUE;
     }
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -1321,7 +1321,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
   if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s))
     {
       if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two))
-       return false;
+       return FALSE;
     }
 
   /* Define the symbol as being at this point in the section.  */
@@ -1331,7 +1331,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
   /* Increment the section size to make room for the symbol.  */
   s->_raw_size += h->size;
 
-  return true;
+  return TRUE;
 }
 
 /* This is the condition under which elf64_x86_64_finish_dynamic_symbol
@@ -1348,7 +1348,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
 /* Allocate space in .plt, .got and associated reloc sections for
    dynamic relocs.  */
 
-static boolean
+static bfd_boolean
 allocate_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -1359,7 +1359,7 @@ allocate_dynrelocs (h, inf)
   struct elf64_x86_64_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -1376,7 +1376,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
@@ -1434,7 +1434,7 @@ allocate_dynrelocs (h, inf)
   else if (h->got.refcount > 0)
     {
       asection *s;
-      boolean dyn;
+      bfd_boolean dyn;
       int tls_type = elf64_x86_64_hash_entry (h)->tls_type;
 
       /* Make sure this symbol is output as a dynamic symbol.
@@ -1443,7 +1443,7 @@ allocate_dynrelocs (h, inf)
          && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
        {
          if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       s = htab->sgot;
@@ -1469,7 +1469,7 @@ allocate_dynrelocs (h, inf)
 
   eh = (struct elf64_x86_64_link_hash_entry *) h;
   if (eh->dyn_relocs == NULL)
-    return true;
+    return TRUE;
 
   /* In the shared -Bsymbolic case, discard space allocated for
      dynamic pc-relative relocs against symbols which turn out to be
@@ -1515,7 +1515,7 @@ allocate_dynrelocs (h, inf)
              && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
            {
              if (! bfd_elf64_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
            }
 
          /* If that succeeded, we know we'll be keeping all the
@@ -1536,12 +1536,12 @@ allocate_dynrelocs (h, inf)
       sreloc->_raw_size += p->count * sizeof (Elf64_External_Rela);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Find any dynamic relocs that apply to read-only sections.  */
 
-static boolean
+static bfd_boolean
 readonly_dynrelocs (h, inf)
      struct elf_link_hash_entry *h;
      PTR inf;
@@ -1564,15 +1564,15 @@ readonly_dynrelocs (h, inf)
          info->flags |= DF_TEXTREL;
 
          /* Not an error, just cut short the traversal.  */
-         return false;
+         return FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf64_x86_64_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
@@ -1580,7 +1580,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info)
   struct elf64_x86_64_link_hash_table *htab;
   bfd *dynobj;
   asection *s;
-  boolean relocs;
+  bfd_boolean relocs;
   bfd *ibfd;
 
   htab = elf64_x86_64_hash_table (info);
@@ -1688,7 +1688,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info)
 
   /* We now have determined the sizes of the various dynamic sections.
      Allocate memory for them.  */
-  relocs = false;
+  relocs = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
@@ -1704,7 +1704,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info)
       else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
        {
          if (s->_raw_size != 0 && s != htab->srelplt)
-           relocs = true;
+           relocs = TRUE;
 
          /* We use the reloc_count field as a counter if we need
             to copy relocs into the output file.  */
@@ -1739,7 +1739,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info)
         of garbage.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
     }
 
   if (htab->elf.dynamic_sections_created)
@@ -1755,7 +1755,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info)
       if (! info->shared)
        {
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (htab->splt->_raw_size != 0)
@@ -1764,7 +1764,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info)
              || !add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (relocs)
@@ -1772,7 +1772,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info)
          if (!add_dynamic_entry (DT_RELA, 0)
              || !add_dynamic_entry (DT_RELASZ, 0)
              || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela)))
-           return false;
+           return FALSE;
 
          /* If any dynamic relocs apply to a read-only section,
             then we need a DT_TEXTREL entry.  */
@@ -1783,13 +1783,13 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info)
          if ((info->flags & DF_TEXTREL) != 0)
            {
              if (!add_dynamic_entry (DT_TEXTREL, 0))
-               return false;
+               return FALSE;
            }
        }
     }
 #undef add_dynamic_entry
 
-  return true;
+  return TRUE;
 }
 
 /* Return the base VMA address which should be subtracted from real addresses
@@ -1826,7 +1826,7 @@ tpoff (info, address)
 
 /* Relocate an x86_64 ELF section.  */
 
-static boolean
+static bfd_boolean
 elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                               contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -1846,7 +1846,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *relend;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   htab = elf64_x86_64_hash_table (info);
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1865,7 +1865,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
       asection *sec;
       bfd_vma off;
       bfd_vma relocation;
-      boolean unresolved_reloc;
+      bfd_boolean unresolved_reloc;
       bfd_reloc_status_type r;
       int tls_type;
 
@@ -1877,7 +1877,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
       if (r_type >= R_X86_64_max)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       howto = x86_64_elf_howto_table + r_type;
@@ -1885,7 +1885,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
       h = NULL;
       sym = NULL;
       sec = NULL;
-      unresolved_reloc = false;
+      unresolved_reloc = FALSE;
       if (r_symndx < symtab_hdr->sh_info)
        {
          sym = local_syms + r_symndx;
@@ -1910,7 +1910,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                     relocation value for this symbol.  output_section
                     is typically NULL for symbols satisfied by a shared
                     library.  */
-                 unresolved_reloc = true;
+                 unresolved_reloc = TRUE;
                  relocation = 0;
                }
              else
@@ -1932,7 +1932,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                      input_section, rel->r_offset,
                      (!info->shared || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
-               return false;
+               return FALSE;
              relocation = 0;
            }
        }
@@ -1950,7 +1950,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
 
          if (h != NULL)
            {
-             boolean dyn;
+             bfd_boolean dyn;
 
              off = h->got.offset;
              dyn = htab->elf.dynamic_sections_created;
@@ -1983,7 +1983,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
              else
-               unresolved_reloc = false;
+               unresolved_reloc = FALSE;
            }
          else
            {
@@ -2004,14 +2004,14 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
 
                  if (info->shared)
                    {
-                     asection *srelgot;
+                     asection *s;
                      Elf_Internal_Rela outrel;
-                     Elf64_External_Rela *loc;
+                     bfd_byte *loc;
 
                      /* We need to generate a R_X86_64_RELATIVE reloc
                         for the dynamic linker.  */
-                     srelgot = htab->srelgot;
-                     if (srelgot == NULL)
+                     s = htab->srelgot;
+                     if (s == NULL)
                        abort ();
 
                      outrel.r_offset = (htab->sgot->output_section->vma
@@ -2019,8 +2019,8 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                                         + off);
                      outrel.r_info = ELF64_R_INFO (0, R_X86_64_RELATIVE);
                      outrel.r_addend = relocation;
-                     loc = (Elf64_External_Rela *) srelgot->contents;
-                     loc += srelgot->reloc_count++;
+                     loc = s->contents;
+                     loc += s->reloc_count++ * sizeof (Elf64_External_Rela);
                      bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
                    }
 
@@ -2058,7 +2058,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
          relocation = (htab->splt->output_section->vma
                        + htab->splt->output_offset
                        + h->plt.offset);
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
          break;
 
        case R_X86_64_PC8:
@@ -2099,24 +2099,24 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                      || h->root.type == bfd_link_hash_undefined)))
            {
              Elf_Internal_Rela outrel;
-             boolean skip, relocate;
+             bfd_byte *loc;
+             bfd_boolean skip, relocate;
              asection *sreloc;
-             Elf64_External_Rela *loc;
 
              /* When generating a shared object, these relocations
                 are copied into the output file to be resolved at run
                 time.  */
 
-             skip = false;
-             relocate = false;
+             skip = FALSE;
+             relocate = FALSE;
 
              outrel.r_offset =
                _bfd_elf_section_offset (output_bfd, info, input_section,
                                         rel->r_offset);
              if (outrel.r_offset == (bfd_vma) -1)
-               skip = true;
+               skip = TRUE;
              else if (outrel.r_offset == (bfd_vma) -2)
-               skip = true, relocate = true;
+               skip = TRUE, relocate = TRUE;
 
              outrel.r_offset += (input_section->output_section->vma
                                  + input_section->output_offset);
@@ -2144,7 +2144,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                  /* This symbol is local, or marked to become local.  */
                  if (r_type == R_X86_64_64)
                    {
-                     relocate = true;
+                     relocate = TRUE;
                      outrel.r_info = ELF64_R_INFO (0, R_X86_64_RELATIVE);
                      outrel.r_addend = relocation + rel->r_addend;
                    }
@@ -2166,7 +2166,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                      else if (sec == NULL || sec->owner == NULL)
                        {
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      else
                        {
@@ -2186,8 +2186,8 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
              if (sreloc == NULL)
                abort ();
 
-             loc = (Elf64_External_Rela *) sreloc->contents;
-             loc += sreloc->reloc_count++;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela);
              bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* If this reloc is against an external symbol, we do
@@ -2333,7 +2333,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
           else
            {
              Elf_Internal_Rela outrel;
-             Elf64_External_Rela *loc;
+             bfd_byte *loc;
              int dr_type, indx;
 
              if (htab->srelgot == NULL)
@@ -2354,8 +2354,8 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                outrel.r_addend = relocation - dtpoff_base (info);
              outrel.r_info = ELF64_R_INFO (indx, dr_type);
 
-             loc = (Elf64_External_Rela *) htab->srelgot->contents;
-             loc += htab->srelgot->reloc_count++;
+             loc = htab->srelgot->contents;
+             loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela);
              bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
 
              if (r_type == R_X86_64_TLSGD)
@@ -2375,9 +2375,8 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                                                    R_X86_64_DTPOFF64);
                      outrel.r_offset += GOT_ENTRY_SIZE;
                      htab->srelgot->reloc_count++;
-                     loc++;
-                     bfd_elf64_swap_reloca_out (output_bfd, &outrel,
-                                                loc);
+                     loc += sizeof (Elf64_External_Rela);
+                     bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
                    }
                }
 
@@ -2393,7 +2392,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
            {
              relocation = htab->sgot->output_section->vma
                           + htab->sgot->output_offset + off;
-             unresolved_reloc = false;
+             unresolved_reloc = FALSE;
            }
          else
            {
@@ -2473,7 +2472,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
          else
            {
              Elf_Internal_Rela outrel;
-             Elf64_External_Rela *loc;
+             bfd_byte *loc;
 
              if (htab->srelgot == NULL)
                abort ();
@@ -2487,14 +2486,14 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                          htab->sgot->contents + off + GOT_ENTRY_SIZE);
              outrel.r_info = ELF64_R_INFO (0, R_X86_64_DTPMOD64);
              outrel.r_addend = 0;
-             loc = (Elf64_External_Rela *) htab->srelgot->contents;
-             loc += htab->srelgot->reloc_count++;
+             loc = htab->srelgot->contents;
+             loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela);
              bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
              htab->tls_ld_got.offset |= 1;
            }
          relocation = htab->sgot->output_section->vma
                       + htab->sgot->output_offset + off;
-         unresolved_reloc = false;
+         unresolved_reloc = FALSE;
          break;
 
        case R_X86_64_DTPOFF32:
@@ -2542,7 +2541,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                                                      symtab_hdr->sh_link,
                                                      sym->st_name);
              if (name == NULL)
-               return false;
+               return FALSE;
              if (*name == '\0')
                name = bfd_section_name (input_bfd, sec);
            }
@@ -2553,7 +2552,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
            }
          else
            {
@@ -2562,18 +2561,18 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
                 bfd_archive_filename (input_bfd),
                 bfd_get_section_name (input_bfd, input_section),
                 (long) rel->r_offset, name, (int) r);
-             return false;
+             return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-static boolean
+static bfd_boolean
 elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2589,7 +2588,7 @@ elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_vma plt_index;
       bfd_vma got_offset;
       Elf_Internal_Rela rela;
-      Elf64_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
         it up.  */
@@ -2649,7 +2648,7 @@ elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + got_offset);
       rela.r_info = ELF64_R_INFO (h->dynindx, R_X86_64_JUMP_SLOT);
       rela.r_addend = 0;
-      loc = (Elf64_External_Rela *) htab->srelplt->contents + plt_index;
+      loc = htab->srelplt->contents + plt_index * sizeof (Elf64_External_Rela);
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
@@ -2668,7 +2667,7 @@ elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
       && elf64_x86_64_hash_entry (h)->tls_type != GOT_TLS_IE)
     {
       Elf_Internal_Rela rela;
-      Elf64_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -2706,15 +2705,15 @@ elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
          rela.r_addend = 0;
        }
 
-      loc = (Elf64_External_Rela *) htab->srelgot->contents;
-      loc += htab->srelgot->reloc_count++;
+      loc = htab->srelgot->contents;
+      loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela);
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       Elf_Internal_Rela rela;
-      Elf64_External_Rela *loc;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -2729,8 +2728,8 @@ elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF64_R_INFO (h->dynindx, R_X86_64_COPY);
       rela.r_addend = 0;
-      loc = (Elf64_External_Rela *) htab->srelbss->contents;
-      loc += htab->srelbss->reloc_count++;
+      loc = htab->srelbss->contents;
+      loc += htab->srelbss->reloc_count++ * sizeof (Elf64_External_Rela);
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
@@ -2739,7 +2738,7 @@ elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
 /* Used to decide how to sort relocs in an optimal manner for the
@@ -2764,7 +2763,7 @@ elf64_x86_64_reloc_type_class (rela)
 
 /* Finish up the dynamic sections.  */
 
-static boolean
+static bfd_boolean
 elf64_x86_64_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2890,7 +2889,7 @@ elf64_x86_64_finish_dynamic_sections (output_bfd, info)
        GOT_ENTRY_SIZE;
     }
 
-  return true;
+  return TRUE;
 }
 
 
index dcf6808226dac4d373b7b9f02b12fe9018276cc7..5ecbe8e3e62d67aad19e05ca1d668f07a56669c2 100644 (file)
@@ -42,9 +42,9 @@
 
 static reloc_howto_type * elf32_arm_reloc_type_lookup
   PARAMS ((bfd * abfd, bfd_reloc_code_real_type code));
-static boolean elf32_arm_nabi_grok_prstatus
+static bfd_boolean elf32_arm_nabi_grok_prstatus
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static boolean elf32_arm_nabi_grok_psinfo
+static bfd_boolean elf32_arm_nabi_grok_psinfo
   PARAMS ((bfd *abfd, Elf_Internal_Note *note));
 
 /* Note: code such as elf32_arm_reloc_type_lookup expect to use e.g.
@@ -58,247 +58,247 @@ static reloc_howto_type elf32_arm_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_NONE",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_PC24,           /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         24,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_PC24",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ffffff,            /* src_mask */
         0x00ffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 32 bit absolute */
   HOWTO (R_ARM_ABS32,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_ABS32",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* standard 32bit pc-relative reloc */
   HOWTO (R_ARM_REL32,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_REL32",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 8 bit absolute */
   HOWTO (R_ARM_PC13,           /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_PC13",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
    /* 16 bit absolute */
   HOWTO (R_ARM_ABS16,          /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_ABS16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 12 bit absolute */
   HOWTO (R_ARM_ABS12,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         12,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_ABS12",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x000008ff,            /* src_mask */
         0x000008ff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_THM_ABS5,       /* type */
         6,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         5,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_THM_ABS5",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x000007e0,            /* src_mask */
         0x000007e0,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 8 bit absolute */
   HOWTO (R_ARM_ABS8,           /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_ABS8",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_SBREL32,                /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_SBREL32",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_THM_PC22,       /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         23,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_THM_PC22",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x07ff07ff,            /* src_mask */
         0x07ff07ff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_ARM_THM_PC8,                /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_THM_PC8",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_ARM_AMP_VCALL9,     /* type */
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_AMP_VCALL9",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   HOWTO (R_ARM_SWI24,          /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_SWI24",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0x00000000,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_THM_SWI8,       /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_SWI8",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0x00000000,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* BLX instruction for the ARM.  */
   HOWTO (R_ARM_XPC25,          /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         25,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_XPC25",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00ffffff,            /* src_mask */
         0x00ffffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* BLX instruction for the Thumb.  */
   HOWTO (R_ARM_THM_XPC22,      /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         22,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_THM_XPC22",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x07ff07ff,            /* src_mask */
         0x07ff07ff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* These next three relocs are not defined, but we need to fill the space.  */
 
@@ -306,43 +306,43 @@ static reloc_howto_type elf32_arm_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_unknown_17",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_NONE,           /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_unknown_18",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_NONE,           /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_unknown_19",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Relocs used in ARM Linux */
 
@@ -350,113 +350,113 @@ static reloc_howto_type elf32_arm_howto_table[] =
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          32,                    /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_bitfield,/* complain_on_overflow */
          bfd_elf_generic_reloc, /* special_function */
          "R_ARM_COPY",         /* name */
-         true,                 /* partial_inplace */
+         TRUE,                 /* partial_inplace */
          0xffffffff,           /* src_mask */
          0xffffffff,           /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_GLOB_DAT,       /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          32,                    /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_bitfield,/* complain_on_overflow */
          bfd_elf_generic_reloc, /* special_function */
          "R_ARM_GLOB_DAT",     /* name */
-         true,                 /* partial_inplace */
+         TRUE,                 /* partial_inplace */
          0xffffffff,           /* src_mask */
          0xffffffff,           /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_JUMP_SLOT,      /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          32,                    /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_bitfield,/* complain_on_overflow */
          bfd_elf_generic_reloc, /* special_function */
          "R_ARM_JUMP_SLOT",    /* name */
-         true,                 /* partial_inplace */
+         TRUE,                 /* partial_inplace */
          0xffffffff,           /* src_mask */
          0xffffffff,           /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_RELATIVE,       /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          32,                    /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_bitfield,/* complain_on_overflow */
          bfd_elf_generic_reloc, /* special_function */
          "R_ARM_RELATIVE",     /* name */
-         true,                 /* partial_inplace */
+         TRUE,                 /* partial_inplace */
          0xffffffff,           /* src_mask */
          0xffffffff,           /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_GOTOFF,         /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          32,                    /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_bitfield,/* complain_on_overflow */
          bfd_elf_generic_reloc, /* special_function */
          "R_ARM_GOTOFF",       /* name */
-         true,                 /* partial_inplace */
+         TRUE,                 /* partial_inplace */
          0xffffffff,           /* src_mask */
          0xffffffff,           /* dst_mask */
-         false),                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_GOTPC,          /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          32,                    /* bitsize */
-         true,                 /* pc_relative */
+         TRUE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_bitfield,/* complain_on_overflow */
          bfd_elf_generic_reloc, /* special_function */
          "R_ARM_GOTPC",                /* name */
-         true,                 /* partial_inplace */
+         TRUE,                 /* partial_inplace */
          0xffffffff,           /* src_mask */
          0xffffffff,           /* dst_mask */
-         true),                        /* pcrel_offset */
+         TRUE),                        /* pcrel_offset */
 
   HOWTO (R_ARM_GOT32,          /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          32,                    /* bitsize */
-         false,                        /* pc_relative */
+         FALSE,                        /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_bitfield,/* complain_on_overflow */
          bfd_elf_generic_reloc, /* special_function */
          "R_ARM_GOT32",                /* name */
-         true,                 /* partial_inplace */
+         TRUE,                 /* partial_inplace */
          0xffffffff,           /* src_mask */
          0xffffffff,           /* dst_mask */
-         false),               /* pcrel_offset */
+         FALSE),               /* pcrel_offset */
 
   HOWTO (R_ARM_PLT32,          /* type */
          2,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          26,                    /* bitsize */
-         true,                 /* pc_relative */
+         TRUE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_bitfield,/* complain_on_overflow */
          bfd_elf_generic_reloc, /* special_function */
          "R_ARM_PLT32",                /* name */
-         true,                 /* partial_inplace */
+         TRUE,                 /* partial_inplace */
          0x00ffffff,           /* src_mask */
          0x00ffffff,           /* dst_mask */
-         true),                        /* pcrel_offset */
+         TRUE),                        /* pcrel_offset */
 
   /* End of relocs used in ARM Linux */
 
@@ -464,57 +464,57 @@ static reloc_howto_type elf32_arm_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_RREL32",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_RABS32,         /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_RABS32",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_RPC24,          /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_RPC24",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_ARM_RBASE,          /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont,/* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_RBASE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 };
 
@@ -524,15 +524,15 @@ static reloc_howto_type elf32_arm_vtinherit_howto =
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          NULL,                  /* special_function */
          "R_ARM_GNU_VTINHERIT", /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false);                /* pcrel_offset */
+         FALSE);                /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
 static reloc_howto_type elf32_arm_vtentry_howto =
@@ -540,15 +540,15 @@ static reloc_howto_type elf32_arm_vtentry_howto =
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
-         false,                 /* pc_relative */
+         FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
          _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
          "R_ARM_GNU_VTENTRY",   /* name */
-         false,                 /* partial_inplace */
+         FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         false);                /* pcrel_offset */
+         FALSE);                /* pcrel_offset */
 
   /* 12 bit pc relative */
 static reloc_howto_type elf32_arm_thm_pc11_howto =
@@ -556,15 +556,15 @@ static reloc_howto_type elf32_arm_thm_pc11_howto =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         11,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,      /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_THM_PC11",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x000007ff,            /* src_mask */
         0x000007ff,            /* dst_mask */
-        true);                 /* pcrel_offset */
+        TRUE);                 /* pcrel_offset */
 
   /* 12 bit pc relative */
 static reloc_howto_type elf32_arm_thm_pc9_howto =
@@ -572,24 +572,24 @@ static reloc_howto_type elf32_arm_thm_pc9_howto =
         1,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,      /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_ARM_THM_PC9",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x000000ff,            /* src_mask */
         0x000000ff,            /* dst_mask */
-        true);                 /* pcrel_offset */
+        TRUE);                 /* pcrel_offset */
 
 static void elf32_arm_info_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 
 static void
 elf32_arm_info_to_howto (abfd, bfd_reloc, elf_reloc)
      bfd * abfd ATTRIBUTE_UNUSED;
      arelent * bfd_reloc;
-     Elf32_Internal_Rel * elf_reloc;
+     Elf_Internal_Rela * elf_reloc;
 {
   unsigned int r_type;
 
@@ -682,7 +682,7 @@ elf32_arm_reloc_type_lookup (abfd, code)
 }
 
 /* Support for core dump NOTE sections */
-static boolean
+static bfd_boolean
 elf32_arm_nabi_grok_prstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -693,7 +693,7 @@ elf32_arm_nabi_grok_prstatus (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 148:                /* Linux/ARM 32-bit*/
        /* pr_cursig */
@@ -714,7 +714,7 @@ elf32_arm_nabi_grok_prstatus (abfd, note)
                                          raw_size, note->descpos + offset);
 }
 
-static boolean
+static bfd_boolean
 elf32_arm_nabi_grok_psinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -722,7 +722,7 @@ elf32_arm_nabi_grok_psinfo (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 124:                /* Linux/ARM elf_prpsinfo */
        elf_tdata (abfd)->core_program
@@ -743,7 +743,7 @@ elf32_arm_nabi_grok_psinfo (abfd, note)
       command[n - 1] = '\0';
   }
 
-  return true;
+  return TRUE;
 }
 
 #define elf_backend_grok_prstatus      elf32_arm_nabi_grok_prstatus
index fb920462d6058a2481f628963739d3b07e83f653..08ba41e1ea7e684a01d38d4cafdf74881bbb3933 100644 (file)
@@ -49,7 +49,7 @@
 #define ARM_ELF_OS_ABI_VERSION         0
 
 static reloc_howto_type * find_howto                  PARAMS ((unsigned int));
-static void               elf32_arm_info_to_howto     PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+static void               elf32_arm_info_to_howto     PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static reloc_howto_type * elf32_arm_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type));
 
 static reloc_howto_type elf32_arm_howto_table[] =
@@ -59,220 +59,220 @@ static reloc_howto_type elf32_arm_howto_table[] =
           0,                   /* rightshift */
           0,                   /* size (0 = byte, 1 = short, 2 = long) */
           0,                   /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont,      /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_NONE",        /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0,                   /* src_mask */
           0,                   /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     HOWTO (R_ARM_PC24,         /* type */
           2,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           24,                  /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_signed,    /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_PC24",        /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0x00ffffff,          /* src_mask */
           0x00ffffff,          /* dst_mask */
-          true),                       /* pcrel_offset */
+          TRUE),                       /* pcrel_offset */
 
     /* 32 bit absolute.  */
     HOWTO (R_ARM_ABS32,                /* type */
           0,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           32,                  /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield,  /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_ABS32",       /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0xffffffff,          /* src_mask */
           0xffffffff,          /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     /* Standard 32bit pc-relative reloc.  */
     HOWTO (R_ARM_REL32,                /* type */
           0,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           32,                  /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield,  /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_REL32",       /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0xffffffff,          /* src_mask */
           0xffffffff,          /* dst_mask */
-          true),               /* pcrel_offset */
+          TRUE),               /* pcrel_offset */
 
     /* 8 bit absolute.  */
     HOWTO (R_ARM_ABS8,         /* type */
           0,                   /* rightshift */
           0,                   /* size (0 = byte, 1 = short, 2 = long) */
           8,                   /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield,  /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_ABS8",        /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0x000000ff,          /* src_mask */
           0x000000ff,          /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     /* 16 bit absolute.  */
     HOWTO (R_ARM_ABS16,                /* type */
           0,                   /* rightshift */
           1,                   /* size (0 = byte, 1 = short, 2 = long) */
           16,                  /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield,  /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_ABS16",       /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0,                   /* src_mask */
           0,                   /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     /* 12 bit absolute.  */
     HOWTO (R_ARM_ABS12,                /* type */
           0,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           12,                  /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield,  /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_ABS12",       /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0x000008ff,          /* src_mask */
           0x000008ff,          /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     HOWTO (R_ARM_THM_ABS5,     /* type */
           6,                   /* rightshift */
           1,                   /* size (0 = byte, 1 = short, 2 = long) */
           5,                   /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield,  /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_THM_ABS5",    /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0x000007e0,          /* src_mask */
           0x000007e0,          /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     HOWTO (R_ARM_THM_PC22,     /* type */
           1,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           23,                  /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_signed,    /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_THM_PC22",    /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0x07ff07ff,          /* src_mask */
           0x07ff07ff,          /* dst_mask */
-          true),                       /* pcrel_offset */
+          TRUE),                       /* pcrel_offset */
 
     HOWTO (R_ARM_SBREL32,              /* type */
           0,                   /* rightshift */
           0,                   /* size (0 = byte, 1 = short, 2 = long) */
           0,                   /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont,/* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_SBREL32",     /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0,                   /* src_mask */
           0,                   /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     HOWTO (R_ARM_AMP_VCALL9,   /* type */
           1,                   /* rightshift */
           1,                   /* size (0 = byte, 1 = short, 2 = long) */
           8,                   /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_signed,    /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_AMP_VCALL9",  /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0x000000ff,          /* src_mask */
           0x000000ff,          /* dst_mask */
-          true),               /* pcrel_offset */
+          TRUE),               /* pcrel_offset */
 
     /* 12 bit pc relative.  */
     HOWTO (R_ARM_THM_PC11,     /* type */
           1,                   /* rightshift */
           1,                   /* size (0 = byte, 1 = short, 2 = long) */
           11,                  /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_signed,    /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_THM_PC11",    /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0x000007ff,          /* src_mask */
           0x000007ff,          /* dst_mask */
-          true),               /* pcrel_offset */
+          TRUE),               /* pcrel_offset */
 
     /* 12 bit pc relative.  */
     HOWTO (R_ARM_THM_PC9,      /* type */
           1,                   /* rightshift */
           1,                   /* size (0 = byte, 1 = short, 2 = long) */
           8,                   /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_signed,    /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_THM_PC9",     /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0x000000ff,          /* src_mask */
           0x000000ff,          /* dst_mask */
-          true),               /* pcrel_offset */
+          TRUE),               /* pcrel_offset */
 
     /* GNU extension to record C++ vtable hierarchy.  */
     HOWTO (R_ARM_GNU_VTINHERIT, /* type */
           0,                     /* rightshift */
           2,                     /* size (0 = byte, 1 = short, 2 = long) */
           0,                     /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont, /* complain_on_overflow */
           NULL,                  /* special_function */
           "R_ARM_GNU_VTINHERIT", /* name */
-          false,                 /* partial_inplace */
+          FALSE,                 /* partial_inplace */
           0,                     /* src_mask */
           0,                     /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
 
     /* GNU extension to record C++ vtable member usage.  */
     HOWTO (R_ARM_GNU_VTENTRY,     /* type */
           0,                     /* rightshift */
           2,                     /* size (0 = byte, 1 = short, 2 = long) */
           0,                     /* bitsize */
-          false,                 /* pc_relative */
+          FALSE,                 /* pc_relative */
           0,                     /* bitpos */
           complain_overflow_dont, /* complain_on_overflow */
           _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
           "R_ARM_GNU_VTENTRY",   /* name */
-          false,                 /* partial_inplace */
+          FALSE,                 /* partial_inplace */
           0,                     /* src_mask */
           0,                     /* dst_mask */
-          false),                /* pcrel_offset */
+          FALSE),                /* pcrel_offset */
 
     /* XXX - gap in index numbering here.  */
 
@@ -280,15 +280,15 @@ static reloc_howto_type elf32_arm_howto_table[] =
           2,                   /* rightshift */
           2,                   /* size (0 = byte, 1 = short, 2 = long) */
           26,                  /* bitsize */
-          true,                /* pc_relative */
+          TRUE,                /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_bitfield,/* complain_on_overflow */
           bfd_elf_generic_reloc, /* special_function */
           "R_ARM_PLT32",       /* name */
-          true,                /* partial_inplace */
+          TRUE,                /* partial_inplace */
           0x00ffffff,          /* src_mask */
           0x00ffffff,          /* dst_mask */
-          true),                       /* pcrel_offset */
+          TRUE),                       /* pcrel_offset */
 
     /* XXX - gap in index numbering here.  */
 
@@ -296,57 +296,57 @@ static reloc_howto_type elf32_arm_howto_table[] =
           0,                   /* rightshift */
           0,                   /* size (0 = byte, 1 = short, 2 = long) */
           0,                   /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont,      /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_RREL32",      /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0,                   /* src_mask */
           0,                   /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     HOWTO (R_ARM_RABS32,       /* type */
           0,                   /* rightshift */
           0,                   /* size (0 = byte, 1 = short, 2 = long) */
           0,                   /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont,      /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_RABS32",      /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0,                   /* src_mask */
           0,                   /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     HOWTO (R_ARM_RPC24,                /* type */
           0,                   /* rightshift */
           0,                   /* size (0 = byte, 1 = short, 2 = long) */
           0,                   /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont,      /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_RPC24",       /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0,                   /* src_mask */
           0,                   /* dst_mask */
-          false),              /* pcrel_offset */
+          FALSE),              /* pcrel_offset */
 
     HOWTO (R_ARM_RBASE,                /* type */
           0,                   /* rightshift */
           0,                   /* size (0 = byte, 1 = short, 2 = long) */
           0,                   /* bitsize */
-          false,               /* pc_relative */
+          FALSE,               /* pc_relative */
           0,                   /* bitpos */
           complain_overflow_dont,      /* complain_on_overflow */
           bfd_elf_generic_reloc,       /* special_function */
           "R_ARM_RBASE",       /* name */
-          false,               /* partial_inplace */
+          FALSE,               /* partial_inplace */
           0,                   /* src_mask */
           0,                   /* dst_mask */
-          false)               /* pcrel_offset */
+          FALSE)               /* pcrel_offset */
   };
 
 /* Locate a reloc in the howto table.  This function must be used
@@ -369,7 +369,7 @@ static void
 elf32_arm_info_to_howto (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     Elf32_Internal_Rela *elf_reloc;
+     Elf_Internal_Rela *elf_reloc;
 {
   unsigned int r_type;
 
index f523972fab464959f72093af83a199b2482db5be..2a6f6bf20a49f1ffe8afa73914bec267077d5742 100644 (file)
@@ -170,11 +170,11 @@ static void elf_swap_shdr_out
 
 #define section_from_elf_index bfd_section_from_elf_index
 
-static boolean elf_slurp_reloc_table_from_section
+static bfd_boolean elf_slurp_reloc_table_from_section
   PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, bfd_size_type,
-          arelent *, asymbol **, boolean));
+          arelent *, asymbol **, bfd_boolean));
 
-static boolean elf_file_p PARAMS ((Elf_External_Ehdr *));
+static bfd_boolean elf_file_p PARAMS ((Elf_External_Ehdr *));
 
 #ifdef DEBUG
 static void elf_debug_section PARAMS ((int, Elf_Internal_Shdr *));
@@ -421,44 +421,49 @@ elf_swap_phdr_out (abfd, src, dst)
 }
 
 /* Translate an ELF reloc from external format to internal format.  */
-INLINE void
-elf_swap_reloc_in (abfd, src, dst)
+void
+elf_swap_reloc_in (abfd, s, dst)
      bfd *abfd;
-     const Elf_External_Rel *src;
-     Elf_Internal_Rel *dst;
+     const bfd_byte *s;
+     Elf_Internal_Rela *dst;
 {
+  const Elf_External_Rel *src = (const Elf_External_Rel *) s;
   dst->r_offset = H_GET_WORD (abfd, src->r_offset);
   dst->r_info = H_GET_WORD (abfd, src->r_info);
+  dst->r_addend = 0;
 }
 
-INLINE void
-elf_swap_reloca_in (abfd, src, dst)
+void
+elf_swap_reloca_in (abfd, s, dst)
      bfd *abfd;
-     const Elf_External_Rela *src;
+     const bfd_byte *s;
      Elf_Internal_Rela *dst;
 {
+  const Elf_External_Rela *src = (const Elf_External_Rela *) s;
   dst->r_offset = H_GET_WORD (abfd, src->r_offset);
   dst->r_info = H_GET_WORD (abfd, src->r_info);
   dst->r_addend = H_GET_SIGNED_WORD (abfd, src->r_addend);
 }
 
 /* Translate an ELF reloc from internal format to external format.  */
-INLINE void
-elf_swap_reloc_out (abfd, src, dst)
+void
+elf_swap_reloc_out (abfd, src, d)
      bfd *abfd;
-     const Elf_Internal_Rel *src;
-     Elf_External_Rel *dst;
+     const Elf_Internal_Rela *src;
+     bfd_byte *d;
 {
+  Elf_External_Rel *dst = (Elf_External_Rel *) d;
   H_PUT_WORD (abfd, src->r_offset, dst->r_offset);
   H_PUT_WORD (abfd, src->r_info, dst->r_info);
 }
 
-INLINE void
-elf_swap_reloca_out (abfd, src, dst)
+void
+elf_swap_reloca_out (abfd, src, d)
      bfd *abfd;
      const Elf_Internal_Rela *src;
-     Elf_External_Rela *dst;
+     bfd_byte *d;
 {
+  Elf_External_Rela *dst = (Elf_External_Rela *) d;
   H_PUT_WORD (abfd, src->r_offset, dst->r_offset);
   H_PUT_WORD (abfd, src->r_info, dst->r_info);
   H_PUT_SIGNED_WORD (abfd, src->r_addend, dst->r_addend);
@@ -495,7 +500,7 @@ elf_swap_dyn_out (abfd, src, p)
    First we validate the file by reading in the ELF header and checking
    the magic number.  */
 
-static INLINE boolean
+static INLINE bfd_boolean
 elf_file_p (x_ehdrp)
      Elf_External_Ehdr *x_ehdrp;
 {
@@ -856,14 +861,15 @@ elf_write_relocs (abfd, sec, data)
      asection *sec;
      PTR data;
 {
-  boolean *failedp = (boolean *) data;
+  bfd_boolean *failedp = (bfd_boolean *) data;
   Elf_Internal_Shdr *rela_hdr;
-  Elf_External_Rela *outbound_relocas;
-  Elf_External_Rel *outbound_relocs;
+  bfd_vma addr_offset;
+  void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+  size_t extsize;
+  bfd_byte *dst_rela;
   unsigned int idx;
-  int use_rela_p;
-  asymbol *last_sym = 0;
-  int last_sym_idx = 0;
+  asymbol *last_sym;
+  int last_sym_idx;
 
   /* If we have already failed, don't do anything.  */
   if (*failedp)
@@ -885,128 +891,75 @@ elf_write_relocs (abfd, sec, data)
   rela_hdr->contents = (PTR) bfd_alloc (abfd, rela_hdr->sh_size);
   if (rela_hdr->contents == NULL)
     {
-      *failedp = true;
+      *failedp = TRUE;
       return;
     }
 
   /* Figure out whether the relocations are RELA or REL relocations.  */
   if (rela_hdr->sh_type == SHT_RELA)
-    use_rela_p = true;
+    {
+      swap_out = elf_swap_reloca_out;
+      extsize = sizeof (Elf_External_Rela);
+    }
   else if (rela_hdr->sh_type == SHT_REL)
-    use_rela_p = false;
+    {
+      swap_out = elf_swap_reloc_out;
+      extsize = sizeof (Elf_External_Rel);
+    }
   else
     /* Every relocation section should be either an SHT_RELA or an
        SHT_REL section.  */
     abort ();
 
+  /* The address of an ELF reloc is section relative for an object
+     file, and absolute for an executable file or shared library.
+     The address of a BFD reloc is always section relative.  */
+  addr_offset = 0;
+  if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0)
+    addr_offset = sec->vma;
+
   /* orelocation has the data, reloc_count has the count...  */
-  if (use_rela_p)
-    {
-      outbound_relocas = (Elf_External_Rela *) rela_hdr->contents;
+  last_sym = 0;
+  last_sym_idx = 0;
+  dst_rela = rela_hdr->contents;
 
-      for (idx = 0; idx < sec->reloc_count; idx++)
+  for (idx = 0; idx < sec->reloc_count; idx++, dst_rela += extsize)
+    {
+      Elf_Internal_Rela src_rela;
+      arelent *ptr;
+      asymbol *sym;
+      int n;
+
+      ptr = sec->orelocation[idx];
+      sym = *ptr->sym_ptr_ptr;
+      if (sym == last_sym)
+       n = last_sym_idx;
+      else if (bfd_is_abs_section (sym->section) && sym->value == 0)
+       n = STN_UNDEF;
+      else
        {
-         Elf_Internal_Rela dst_rela;
-         Elf_External_Rela *src_rela;
-         arelent *ptr;
-         asymbol *sym;
-         int n;
-
-         ptr = sec->orelocation[idx];
-         src_rela = outbound_relocas + idx;
-
-         /* The address of an ELF reloc is section relative for an object
-            file, and absolute for an executable file or shared library.
-            The address of a BFD reloc is always section relative.  */
-         if ((abfd->flags & (EXEC_P | DYNAMIC)) == 0)
-           dst_rela.r_offset = ptr->address;
-         else
-           dst_rela.r_offset = ptr->address + sec->vma;
-
-         sym = *ptr->sym_ptr_ptr;
-         if (sym == last_sym)
-           n = last_sym_idx;
-         else if (bfd_is_abs_section (sym->section) && sym->value == 0)
-           n = STN_UNDEF;
-         else
-           {
-             last_sym = sym;
-             n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym);
-             if (n < 0)
-               {
-                 *failedp = true;
-                 return;
-               }
-             last_sym_idx = n;
-           }
-
-         if ((*ptr->sym_ptr_ptr)->the_bfd != NULL
-             && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec
-             && ! _bfd_elf_validate_reloc (abfd, ptr))
+         last_sym = sym;
+         n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym);
+         if (n < 0)
            {
-             *failedp = true;
+             *failedp = TRUE;
              return;
            }
-
-         dst_rela.r_info = ELF_R_INFO (n, ptr->howto->type);
-
-         dst_rela.r_addend = ptr->addend;
-         elf_swap_reloca_out (abfd, &dst_rela, src_rela);
+         last_sym_idx = n;
        }
-    }
-  else
-    /* REL relocations */
-    {
-      outbound_relocs = (Elf_External_Rel *) rela_hdr->contents;
 
-      for (idx = 0; idx < sec->reloc_count; idx++)
+      if ((*ptr->sym_ptr_ptr)->the_bfd != NULL
+         && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec
+         && ! _bfd_elf_validate_reloc (abfd, ptr))
        {
-         Elf_Internal_Rel dst_rel;
-         Elf_External_Rel *src_rel;
-         arelent *ptr;
-         int n;
-         asymbol *sym;
-
-         ptr = sec->orelocation[idx];
-         sym = *ptr->sym_ptr_ptr;
-         src_rel = outbound_relocs + idx;
-
-         /* The address of an ELF reloc is section relative for an object
-            file, and absolute for an executable file or shared library.
-            The address of a BFD reloc is always section relative.  */
-         if ((abfd->flags & (EXEC_P | DYNAMIC)) == 0)
-           dst_rel.r_offset = ptr->address;
-         else
-           dst_rel.r_offset = ptr->address + sec->vma;
-
-         if (sym == last_sym)
-           n = last_sym_idx;
-         else if (bfd_is_abs_section (sym->section) && sym->value == 0)
-           n = STN_UNDEF;
-         else
-           {
-             last_sym = sym;
-             n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym);
-             if (n < 0)
-               {
-                 *failedp = true;
-                 return;
-               }
-             last_sym_idx = n;
-           }
-
-         if ((*ptr->sym_ptr_ptr)->the_bfd != NULL
-             && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec
-             && ! _bfd_elf_validate_reloc (abfd, ptr))
-           {
-             *failedp = true;
-             return;
-           }
-
-         dst_rel.r_info = ELF_R_INFO (n, ptr->howto->type);
-
-         elf_swap_reloc_out (abfd, &dst_rel, src_rel);
+         *failedp = TRUE;
+         return;
        }
+
+      src_rela.r_offset = ptr->address + addr_offset;
+      src_rela.r_info = ELF_R_INFO (n, ptr->howto->type);
+      src_rela.r_addend = ptr->addend;
+      (*swap_out) (abfd, &src_rela, dst_rela);
     }
 }
 
@@ -1032,7 +985,7 @@ elf_write_out_phdrs (abfd, phdr, count)
 
 /* Write out the section headers and the ELF file header.  */
 
-boolean
+bfd_boolean
 elf_write_shdrs_and_ehdr (abfd)
      bfd *abfd;
 {
@@ -1055,7 +1008,7 @@ elf_write_shdrs_and_ehdr (abfd)
   amt = sizeof (x_ehdr);
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0
       || bfd_bwrite ((PTR) & x_ehdr, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Some fields in the first section header handle overflow of ehdr
      fields.  */
@@ -1069,7 +1022,7 @@ elf_write_shdrs_and_ehdr (abfd)
   amt *= sizeof (*x_shdrp);
   x_shdrp = (Elf_External_Shdr *) bfd_alloc (abfd, amt);
   if (!x_shdrp)
-    return false;
+    return FALSE;
 
   for (count = 0; count < i_ehdrp->e_shnum; i_shdrp++, count++)
     {
@@ -1077,24 +1030,24 @@ elf_write_shdrs_and_ehdr (abfd)
       elf_debug_section (count, *i_shdrp);
 #endif
       elf_swap_shdr_out (abfd, *i_shdrp, x_shdrp + count);
-      
+
       if (count == SHN_LORESERVE - 1)
        i_shdrp += SHN_HIRESERVE + 1 - SHN_LORESERVE;
     }
   if (bfd_seek (abfd, (file_ptr) i_ehdrp->e_shoff, SEEK_SET) != 0
       || bfd_bwrite ((PTR) x_shdrp, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* need to dump the string table too...  */
 
-  return true;
+  return TRUE;
 }
 
 long
 elf_slurp_symbol_table (abfd, symptrs, dynamic)
      bfd *abfd;
      asymbol **symptrs;                /* Buffer for generated bfd symbols */
-     boolean dynamic;
+     bfd_boolean dynamic;
 {
   Elf_Internal_Shdr *hdr;
   Elf_Internal_Shdr *verhdr;
@@ -1328,7 +1281,7 @@ error_return:
 /* Read  relocations for ASECT from REL_HDR.  There are RELOC_COUNT of
    them.  */
 
-static boolean
+static bfd_boolean
 elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr, reloc_count,
                                    relents, symbols, dynamic)
      bfd *abfd;
@@ -1337,7 +1290,7 @@ elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr, reloc_count,
      bfd_size_type reloc_count;
      arelent *relents;
      asymbol **symbols;
-     boolean dynamic;
+     bfd_boolean dynamic;
 {
   struct elf_backend_data * const ebd = get_elf_backend_data (abfd);
   PTR allocated = NULL;
@@ -1372,17 +1325,11 @@ elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr, reloc_count,
        i++, relent++, native_relocs += entsize)
     {
       Elf_Internal_Rela rela;
-      Elf_Internal_Rel rel;
 
       if (entsize == sizeof (Elf_External_Rela))
-       elf_swap_reloca_in (abfd, (Elf_External_Rela *) native_relocs, &rela);
+       elf_swap_reloca_in (abfd, native_relocs, &rela);
       else
-       {
-         elf_swap_reloc_in (abfd, (Elf_External_Rel *) native_relocs, &rel);
-         rela.r_offset = rel.r_offset;
-         rela.r_info = rel.r_info;
-         rela.r_addend = 0;
-       }
+       elf_swap_reloc_in (abfd, native_relocs, &rela);
 
       /* The address of an ELF reloc is section relative for an object
         file, and absolute for an executable file or shared library.
@@ -1421,28 +1368,28 @@ elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr, reloc_count,
       if (entsize == sizeof (Elf_External_Rela))
        (*ebd->elf_info_to_howto) (abfd, relent, &rela);
       else
-       (*ebd->elf_info_to_howto_rel) (abfd, relent, &rel);
+       (*ebd->elf_info_to_howto_rel) (abfd, relent, &rela);
     }
 
   if (allocated != NULL)
     free (allocated);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (allocated != NULL)
     free (allocated);
-  return false;
+  return FALSE;
 }
 
 /* Read in and swap the external relocs.  */
 
-boolean
+bfd_boolean
 elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
      bfd *abfd;
      asection *asect;
      asymbol **symbols;
-     boolean dynamic;
+     bfd_boolean dynamic;
 {
   struct bfd_elf_section_data * const d = elf_section_data (asect);
   Elf_Internal_Shdr *rel_hdr;
@@ -1453,13 +1400,13 @@ elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
   bfd_size_type amt;
 
   if (asect->relocation != NULL)
-    return true;
+    return TRUE;
 
   if (! dynamic)
     {
       if ((asect->flags & SEC_RELOC) == 0
          || asect->reloc_count == 0)
-       return true;
+       return TRUE;
 
       rel_hdr = &d->rel_hdr;
       reloc_count = NUM_SHDR_ENTRIES (rel_hdr);
@@ -1478,7 +1425,7 @@ elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
         dynamic symbol table, and in that case bfd_section_from_shdr
         in elf.c does not update the RELOC_COUNT.  */
       if (asect->_raw_size == 0)
-       return true;
+       return TRUE;
 
       rel_hdr = &d->this_hdr;
       reloc_count = NUM_SHDR_ENTRIES (rel_hdr);
@@ -1489,23 +1436,23 @@ elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
   amt = (reloc_count + reloc_count2) * sizeof (arelent);
   relents = (arelent *) bfd_alloc (abfd, amt);
   if (relents == NULL)
-    return false;
+    return FALSE;
 
   if (!elf_slurp_reloc_table_from_section (abfd, asect,
                                           rel_hdr, reloc_count,
                                           relents,
                                           symbols, dynamic))
-    return false;
+    return FALSE;
 
   if (rel_hdr2
       && !elf_slurp_reloc_table_from_section (abfd, asect,
                                              rel_hdr2, reloc_count2,
                                              relents + reloc_count,
                                              symbols, dynamic))
-    return false;
+    return FALSE;
 
   asect->relocation = relents;
-  return true;
+  return TRUE;
 }
 
 #ifdef DEBUG
@@ -1649,8 +1596,8 @@ const struct elf_size_info NAME(_bfd_elf,size_info) = {
   elf_slurp_symbol_table,
   elf_swap_dyn_in,
   elf_swap_dyn_out,
-  NULL,
-  NULL,
-  NULL,
-  NULL
+  elf_swap_reloc_in,
+  elf_swap_reloc_out,
+  elf_swap_reloca_in,
+  elf_swap_reloca_out
 };
index 264ff554fe259244ea92892298932aaa55fff688..4f9fcf75c25d57ac7629f0e776bfe0f1e4b43cca 100644 (file)
@@ -32,7 +32,7 @@ elf_core_file_failing_signal (abfd)
   return elf_tdata (abfd)->core_signal;
 }
 
-boolean
+bfd_boolean
 elf_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd;
      bfd *exec_bfd;
@@ -44,7 +44,7 @@ elf_core_file_matches_executable_p (core_bfd, exec_bfd)
   if (core_bfd->xvec != exec_bfd->xvec)
     {
       bfd_set_error (bfd_error_system_call);
-      return false;
+      return FALSE;
     }
 
   /* See if the name in the corefile matches the executable name.  */
@@ -56,10 +56,10 @@ elf_core_file_matches_executable_p (core_bfd, exec_bfd)
       execname = execname ? execname + 1 : exec_bfd->filename;
 
       if (strcmp(execname, corename) != 0)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /*  Core files are simply standard ELF formatted files that partition
index d6da588a1537965b0c4b41f062d6178148ac20e8..3170035787e564c8abefcdaa692940480da8f000 100644 (file)
@@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define ARCH_SIZE 0
 #include "elf-bfd.h"
 
-boolean
+bfd_boolean
 _bfd_elf_create_got_section (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -39,7 +39,7 @@ _bfd_elf_create_got_section (abfd, info)
 
   /* This function may be called more than once.  */
   if (bfd_get_section_by_name (abfd, ".got") != NULL)
-    return true;
+    return TRUE;
 
   switch (bed->s->arch_size)
     {
@@ -53,7 +53,7 @@ _bfd_elf_create_got_section (abfd, info)
 
     default:
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
@@ -63,7 +63,7 @@ _bfd_elf_create_got_section (abfd, info)
   if (s == NULL
       || !bfd_set_section_flags (abfd, s, flags)
       || !bfd_set_section_alignment (abfd, s, ptralign))
-    return false;
+    return FALSE;
 
   if (bed->want_got_plt)
     {
@@ -71,7 +71,7 @@ _bfd_elf_create_got_section (abfd, info)
       if (s == NULL
          || !bfd_set_section_flags (abfd, s, flags)
          || !bfd_set_section_alignment (abfd, s, ptralign))
-       return false;
+       return FALSE;
     }
 
   if (bed->want_got_sym)
@@ -83,16 +83,16 @@ _bfd_elf_create_got_section (abfd, info)
       bh = NULL;
       if (!(_bfd_generic_link_add_one_symbol
            (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s,
-            bed->got_symbol_offset, (const char *) NULL, false,
+            bed->got_symbol_offset, (const char *) NULL, FALSE,
             bed->collect, &bh)))
-       return false;
+       return FALSE;
       h = (struct elf_link_hash_entry *) bh;
       h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
       h->type = STT_OBJECT;
 
       if (info->shared
          && ! _bfd_elf_link_record_dynamic_symbol (info, h))
-       return false;
+       return FALSE;
 
       elf_hash_table (info)->hgot = h;
     }
@@ -100,12 +100,12 @@ _bfd_elf_create_got_section (abfd, info)
   /* The first bit of the global offset table is the header.  */
   s->_raw_size += bed->got_header_size + bed->got_symbol_offset;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Create dynamic sections when linking against a dynamic object.  */
 
-boolean
+bfd_boolean
 _bfd_elf_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -127,7 +127,7 @@ _bfd_elf_create_dynamic_sections (abfd, info)
 
     default:
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and
@@ -147,7 +147,7 @@ _bfd_elf_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, pltflags)
       || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
-    return false;
+    return FALSE;
 
   if (bed->want_plt_sym)
     {
@@ -158,16 +158,16 @@ _bfd_elf_create_dynamic_sections (abfd, info)
 
       if (! (_bfd_generic_link_add_one_symbol
             (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
-             (bfd_vma) 0, (const char *) NULL, false,
+             (bfd_vma) 0, (const char *) NULL, FALSE,
              get_elf_backend_data (abfd)->collect, &bh)))
-       return false;
+       return FALSE;
       h = (struct elf_link_hash_entry *) bh;
       h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
       h->type = STT_OBJECT;
 
       if (info->shared
          && ! _bfd_elf_link_record_dynamic_symbol (info, h))
-       return false;
+       return FALSE;
     }
 
   s = bfd_make_section (abfd,
@@ -175,10 +175,10 @@ _bfd_elf_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, s, ptralign))
-    return false;
+    return FALSE;
 
   if (! _bfd_elf_create_got_section (abfd, info))
-    return false;
+    return FALSE;
 
   if (bed->want_dynbss)
     {
@@ -191,7 +191,7 @@ _bfd_elf_create_dynamic_sections (abfd, info)
       s = bfd_make_section (abfd, ".dynbss");
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, SEC_ALLOC))
-       return false;
+       return FALSE;
 
       /* The .rel[a].bss section holds copy relocs.  This section is not
      normally needed.  We need to create it here, though, so that the
@@ -212,11 +212,11 @@ _bfd_elf_create_dynamic_sections (abfd, info)
          if (s == NULL
              || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
              || ! bfd_set_section_alignment (abfd, s, ptralign))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Record a new dynamic symbol.  We record the dynamic symbols as we
@@ -227,7 +227,7 @@ _bfd_elf_create_dynamic_sections (abfd, info)
    symbol should be in the dynamic symbol table, but only if there is
    one.  */
 
-boolean
+bfd_boolean
 _bfd_elf_link_record_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -237,7 +237,7 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
       struct elf_strtab_hash *dynstr;
       char *p, *alc;
       const char *name;
-      boolean copy;
+      bfd_boolean copy;
       bfd_size_type indx;
 
       /* XXX: The ABI draft says the linker must turn hidden and
@@ -252,7 +252,7 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
              && h->root.type != bfd_link_hash_undefweak)
            {
              h->elf_link_hash_flags |= ELF_LINK_FORCED_LOCAL;
-             return true;
+             return TRUE;
            }
 
        default:
@@ -268,7 +268,7 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
          /* Create a strtab to hold the dynamic symbol names.  */
          elf_hash_table (info)->dynstr = dynstr = _bfd_elf_strtab_init ();
          if (dynstr == NULL)
-           return false;
+           return FALSE;
        }
 
       /* We don't put any version information in the dynamic string
@@ -278,7 +278,7 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
       if (p == NULL)
        {
          alc = NULL;
-         copy = false;
+         copy = FALSE;
        }
       else
        {
@@ -286,11 +286,11 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
 
          alc = bfd_malloc ((bfd_size_type) len);
          if (alc == NULL)
-           return false;
+           return FALSE;
          memcpy (alc, name, len - 1);
          alc[len - 1] = '\0';
          name = alc;
-         copy = true;
+         copy = TRUE;
        }
 
       indx = _bfd_elf_strtab_add (dynstr, name, copy);
@@ -299,11 +299,11 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
        free (alc);
 
       if (indx == (bfd_size_type) -1)
-       return false;
+       return FALSE;
       h->dynstr_index = indx;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Record a new local dynamic symbol.  Returns 0 on failure, 1 on
@@ -376,7 +376,7 @@ elf_link_record_local_dynamic_symbol (info, input_bfd, input_indx)
        return 0;
     }
 
-  dynstr_index = _bfd_elf_strtab_add (dynstr, name, false);
+  dynstr_index = _bfd_elf_strtab_add (dynstr, name, FALSE);
   if (dynstr_index == (unsigned long) -1)
     return 0;
   entry->isym.st_name = dynstr_index;
@@ -418,10 +418,10 @@ _bfd_elf_link_lookup_local_dynindx (info, input_bfd, input_indx)
    them are removed because they are marked as local.  This is called
    via elf_link_hash_traverse.  */
 
-static boolean elf_link_renumber_hash_table_dynsyms
+static bfd_boolean elf_link_renumber_hash_table_dynsyms
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean
+static bfd_boolean
 elf_link_renumber_hash_table_dynsyms (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -434,7 +434,7 @@ elf_link_renumber_hash_table_dynsyms (h, data)
   if (h->dynindx != -1)
     h->dynindx = ++(*count);
 
-  return true;
+  return TRUE;
 }
 
 /* Assign dynsym indices.  In a shared library we generate a section
@@ -506,7 +506,7 @@ _bfd_elf_create_linker_section (abfd, info, which, defaults)
       *lsect = *defaults;
       elf_linker_section (dynobj, which) = lsect;
       lsect->which = which;
-      lsect->hole_written_p = false;
+      lsect->hole_written_p = FALSE;
 
       /* See if the sections already exist */
       lsect->section = s = bfd_get_section_by_name (dynobj, lsect->name);
@@ -559,7 +559,7 @@ _bfd_elf_create_linker_section (abfd, info, which, defaults)
                   lsect->name);
 #endif
          bh = bfd_link_hash_lookup (info->hash, lsect->sym_name,
-                                    false, false, false);
+                                    FALSE, FALSE, FALSE);
 
          if ((bh == NULL || bh->type == bfd_link_hash_undefined)
              && !(_bfd_generic_link_add_one_symbol
@@ -567,7 +567,7 @@ _bfd_elf_create_linker_section (abfd, info, which, defaults)
                    (lsect->hole_size
                     ? s->_raw_size - lsect->hole_size + lsect->sym_offset
                     : lsect->sym_offset),
-                   (const char *) NULL, false,
+                   (const char *) NULL, FALSE,
                    get_elf_backend_data (abfd)->collect, &bh)))
            return (elf_linker_section_t *) 0;
          h = (struct elf_link_hash_entry *) bh;
@@ -620,14 +620,14 @@ _bfd_elf_find_pointer_linker_section (linker_pointers, addend, which)
 \f
 /* Make the .rela section corresponding to the generated linker section.  */
 
-boolean
+bfd_boolean
 _bfd_elf_make_linker_section_rela (dynobj, lsect, alignment)
      bfd *dynobj;
      elf_linker_section_t *lsect;
      int alignment;
 {
   if (lsect->rel_section)
-    return true;
+    return TRUE;
 
   lsect->rel_section = bfd_get_section_by_name (dynobj, lsect->rel_name);
   if (lsect->rel_section == NULL)
@@ -643,8 +643,8 @@ _bfd_elf_make_linker_section_rela (dynobj, lsect, alignment)
                                       | SEC_LINKER_CREATED
                                       | SEC_READONLY))
          || ! bfd_set_section_alignment (dynobj, lsect->rel_section, alignment))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
index 721b361ee31205f6fca01e8a37df615d0e76fc56..060b129d3568fb07efcf25efb11536bcc47e5f9f 100644 (file)
@@ -25,49 +25,49 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 struct elf_info_failed
 {
-  boolean failed;
+  bfd_boolean failed;
   struct bfd_link_info *info;
   struct bfd_elf_version_tree *verdefs;
 };
 
-static boolean is_global_data_symbol_definition
+static bfd_boolean is_global_data_symbol_definition
   PARAMS ((bfd *, Elf_Internal_Sym *));
-static boolean elf_link_is_defined_archive_symbol
+static bfd_boolean elf_link_is_defined_archive_symbol
   PARAMS ((bfd *, carsym *));
-static boolean elf_link_add_object_symbols
+static bfd_boolean elf_link_add_object_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_link_add_archive_symbols
+static bfd_boolean elf_link_add_archive_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_merge_symbol
+static bfd_boolean elf_merge_symbol
   PARAMS ((bfd *, struct bfd_link_info *, const char *,
           Elf_Internal_Sym *, asection **, bfd_vma *,
-          struct elf_link_hash_entry **, boolean *, boolean *,
-          boolean *, boolean));
-static boolean elf_add_default_symbol
+          struct elf_link_hash_entry **, bfd_boolean *, bfd_boolean *,
+          bfd_boolean *, bfd_boolean));
+static bfd_boolean elf_add_default_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           const char *, Elf_Internal_Sym *, asection **, bfd_vma *,
-          boolean *, boolean, boolean));
-static boolean elf_export_symbol
+          bfd_boolean *, bfd_boolean, bfd_boolean));
+static bfd_boolean elf_export_symbol
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_finalize_dynstr
+static bfd_boolean elf_finalize_dynstr
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean elf_fix_symbol_flags
+static bfd_boolean elf_fix_symbol_flags
   PARAMS ((struct elf_link_hash_entry *, struct elf_info_failed *));
-static boolean elf_adjust_dynamic_symbol
+static bfd_boolean elf_adjust_dynamic_symbol
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_link_find_version_dependencies
+static bfd_boolean elf_link_find_version_dependencies
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_link_assign_sym_version
+static bfd_boolean elf_link_assign_sym_version
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_collect_hash_codes
+static bfd_boolean elf_collect_hash_codes
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_link_read_relocs_from_section
+static bfd_boolean elf_link_read_relocs_from_section
   PARAMS ((bfd *, Elf_Internal_Shdr *, PTR, Elf_Internal_Rela *));
 static size_t compute_bucket_count
   PARAMS ((struct bfd_link_info *));
-static boolean elf_link_output_relocs
+static bfd_boolean elf_link_output_relocs
   PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *));
-static boolean elf_link_size_reloc_section
+static bfd_boolean elf_link_size_reloc_section
   PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
 static void elf_link_adjust_relocs
   PARAMS ((bfd *, Elf_Internal_Shdr *, unsigned int,
@@ -78,13 +78,13 @@ static int elf_link_sort_cmp2
   PARAMS ((const void *, const void *));
 static size_t elf_link_sort_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection **));
-static boolean elf_section_ignore_discarded_relocs
+static bfd_boolean elf_section_ignore_discarded_relocs
   PARAMS ((asection *));
 
 /* Given an ELF BFD, add symbols to the global hash table as
    appropriate.  */
 
-boolean
+bfd_boolean
 elf_bfd_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -97,12 +97,12 @@ elf_bfd_link_add_symbols (abfd, info)
       return elf_link_add_archive_symbols (abfd, info);
     default:
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 }
 \f
-/* Return true iff this is a non-common, definition of a non-function symbol.  */
-static boolean
+/* Return TRUE iff this is a non-common, definition of a non-function symbol.  */
+static bfd_boolean
 is_global_data_symbol_definition (abfd, sym)
      bfd * abfd ATTRIBUTE_UNUSED;
      Elf_Internal_Sym * sym;
@@ -110,20 +110,20 @@ is_global_data_symbol_definition (abfd, sym)
   /* Local symbols do not count, but target specific ones might.  */
   if (ELF_ST_BIND (sym->st_info) != STB_GLOBAL
       && ELF_ST_BIND (sym->st_info) < STB_LOOS)
-    return false;
+    return FALSE;
 
   /* Function symbols do not count.  */
   if (ELF_ST_TYPE (sym->st_info) == STT_FUNC)
-    return false;
+    return FALSE;
 
   /* If the section is undefined, then so is the symbol.  */
   if (sym->st_shndx == SHN_UNDEF)
-    return false;
+    return FALSE;
 
   /* If the symbol is defined in the common section, then
      it is a common definition and so does not count.  */
   if (sym->st_shndx == SHN_COMMON)
-    return false;
+    return FALSE;
 
   /* If the symbol is in a target specific section then we
      must rely upon the backend to tell us what it is.  */
@@ -135,15 +135,15 @@ is_global_data_symbol_definition (abfd, sym)
        Instead for now assume that the definition is not global,
        Even if this is wrong, at least the linker will behave
        in the same way that it used to do.  */
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Search the symbol table of the archive element of the archive ABFD
    whose archive map contains a mention of SYMDEF, and determine if
    the symbol is defined in this element.  */
-static boolean
+static bfd_boolean
 elf_link_is_defined_archive_symbol (abfd, symdef)
      bfd * abfd;
      carsym * symdef;
@@ -155,21 +155,21 @@ elf_link_is_defined_archive_symbol (abfd, symdef)
   Elf_Internal_Sym *isymbuf;
   Elf_Internal_Sym *isym;
   Elf_Internal_Sym *isymend;
-  boolean result;
+  bfd_boolean result;
 
   abfd = _bfd_get_elt_at_filepos (abfd, symdef->file_offset);
   if (abfd == (bfd *) NULL)
-    return false;
+    return FALSE;
 
   if (! bfd_check_format (abfd, bfd_object))
-    return false;
+    return FALSE;
 
   /* If we have already included the element containing this symbol in the
      link then we do not need to include it again.  Just claim that any symbol
      it contains is not a definition, so that our caller will not decide to
      (re)include this element.  */
   if (abfd->archive_pass)
-    return false;
+    return FALSE;
 
   /* Select the appropriate symbol table.  */
   if ((abfd->flags & DYNAMIC) == 0 || elf_dynsymtab (abfd) == 0)
@@ -193,16 +193,16 @@ elf_link_is_defined_archive_symbol (abfd, symdef)
     }
 
   if (extsymcount == 0)
-    return false;
+    return FALSE;
 
   /* Read in the symbol table.  */
   isymbuf = bfd_elf_get_elf_syms (abfd, hdr, extsymcount, extsymoff,
                                  NULL, NULL, NULL);
   if (isymbuf == NULL)
-    return false;
+    return FALSE;
 
   /* Scan the symbol table looking for SYMDEF.  */
-  result = false;
+  result = FALSE;
   for (isym = isymbuf, isymend = isymbuf + extsymcount; isym < isymend; isym++)
     {
       const char *name;
@@ -249,25 +249,25 @@ elf_link_is_defined_archive_symbol (abfd, symdef)
    Unfortunately, we do have to make multiple passes over the symbol
    table until nothing further is resolved.  */
 
-static boolean
+static bfd_boolean
 elf_link_add_archive_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   symindex c;
-  boolean *defined = NULL;
-  boolean *included = NULL;
+  bfd_boolean *defined = NULL;
+  bfd_boolean *included = NULL;
   carsym *symdefs;
-  boolean loop;
+  bfd_boolean loop;
   bfd_size_type amt;
 
   if (! bfd_has_map (abfd))
     {
       /* An empty archive is a special case.  */
       if (bfd_openr_next_archived_file (abfd, (bfd *) NULL) == NULL)
-       return true;
+       return TRUE;
       bfd_set_error (bfd_error_no_armap);
-      return false;
+      return FALSE;
     }
 
   /* Keep track of all symbols we know to be already defined, and all
@@ -275,12 +275,12 @@ elf_link_add_archive_symbols (abfd, info)
      second and subsequent passes.  */
   c = bfd_ardata (abfd)->symdef_count;
   if (c == 0)
-    return true;
+    return TRUE;
   amt = c;
-  amt *= sizeof (boolean);
-  defined = (boolean *) bfd_zmalloc (amt);
-  included = (boolean *) bfd_zmalloc (amt);
-  if (defined == (boolean *) NULL || included == (boolean *) NULL)
+  amt *= sizeof (bfd_boolean);
+  defined = (bfd_boolean *) bfd_zmalloc (amt);
+  included = (bfd_boolean *) bfd_zmalloc (amt);
+  if (defined == (bfd_boolean *) NULL || included == (bfd_boolean *) NULL)
     goto error_return;
 
   symdefs = bfd_ardata (abfd)->symdefs;
@@ -292,7 +292,7 @@ elf_link_add_archive_symbols (abfd, info)
       carsym *symdef;
       carsym *symdefend;
 
-      loop = false;
+      loop = FALSE;
       last = -1;
 
       symdef = symdefs;
@@ -308,12 +308,12 @@ elf_link_add_archive_symbols (abfd, info)
            continue;
          if (symdef->file_offset == last)
            {
-             included[i] = true;
+             included[i] = TRUE;
              continue;
            }
 
          h = elf_link_hash_lookup (elf_hash_table (info), symdef->name,
-                                   false, false, false);
+                                   FALSE, FALSE, FALSE);
 
          if (h == NULL)
            {
@@ -340,7 +340,7 @@ elf_link_add_archive_symbols (abfd, info)
              memcpy (copy + first, symdef->name + first + 1, len - first);
 
              h = elf_link_hash_lookup (elf_hash_table (info), copy,
-                                       false, false, false);
+                                       FALSE, FALSE, FALSE);
 
              if (h == NULL)
                {
@@ -349,7 +349,7 @@ elf_link_add_archive_symbols (abfd, info)
 
                  copy[first - 1] = '\0';
                  h = elf_link_hash_lookup (elf_hash_table (info),
-                                           copy, false, false, false);
+                                           copy, FALSE, FALSE, FALSE);
                }
 
              bfd_release (abfd, copy);
@@ -378,7 +378,7 @@ elf_link_add_archive_symbols (abfd, info)
          else if (h->root.type != bfd_link_hash_undefined)
            {
              if (h->root.type != bfd_link_hash_undefweak)
-               defined[i] = true;
+               defined[i] = TRUE;
              continue;
            }
 
@@ -416,14 +416,14 @@ elf_link_add_archive_symbols (abfd, info)
             does not require another pass.  This isn't a bug, but it
             does make the code less efficient than it could be.  */
          if (undefs_tail != info->hash->undefs_tail)
-           loop = true;
+           loop = TRUE;
 
          /* Look backward to mark all symbols from this object file
             which we have already seen in this pass.  */
          mark = i;
          do
            {
-             included[mark] = true;
+             included[mark] = TRUE;
              if (mark == 0)
                break;
              --mark;
@@ -440,14 +440,14 @@ elf_link_add_archive_symbols (abfd, info)
   free (defined);
   free (included);
 
-  return true;
+  return TRUE;
 
  error_return:
-  if (defined != (boolean *) NULL)
+  if (defined != (bfd_boolean *) NULL)
     free (defined);
-  if (included != (boolean *) NULL)
+  if (included != (bfd_boolean *) NULL)
     free (included);
-  return false;
+  return FALSE;
 }
 
 /* This function is called when we want to define a new symbol.  It
@@ -462,7 +462,7 @@ elf_link_add_archive_symbols (abfd, info)
    change. DT_NEEDED indicates if it comes from a DT_NEEDED entry of
    a shared object.  */
 
-static boolean
+static bfd_boolean
 elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
                  override, type_change_ok, size_change_ok, dt_needed)
      bfd *abfd;
@@ -472,35 +472,35 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
      asection **psec;
      bfd_vma *pvalue;
      struct elf_link_hash_entry **sym_hash;
-     boolean *override;
-     boolean *type_change_ok;
-     boolean *size_change_ok;
-     boolean dt_needed;
+     bfd_boolean *override;
+     bfd_boolean *type_change_ok;
+     bfd_boolean *size_change_ok;
+     bfd_boolean dt_needed;
 {
   asection *sec;
   struct elf_link_hash_entry *h;
   int bind;
   bfd *oldbfd;
-  boolean newdyn, olddyn, olddef, newdef, newdyncommon, olddyncommon;
+  bfd_boolean newdyn, olddyn, olddef, newdef, newdyncommon, olddyncommon;
 
-  *override = false;
+  *override = FALSE;
 
   sec = *psec;
   bind = ELF_ST_BIND (sym->st_info);
 
   if (! bfd_is_und_section (sec))
-    h = elf_link_hash_lookup (elf_hash_table (info), name, true, false, false);
+    h = elf_link_hash_lookup (elf_hash_table (info), name, TRUE, FALSE, FALSE);
   else
     h = ((struct elf_link_hash_entry *)
-        bfd_wrapped_link_hash_lookup (abfd, info, name, true, false, false));
+        bfd_wrapped_link_hash_lookup (abfd, info, name, TRUE, FALSE, FALSE));
   if (h == NULL)
-    return false;
+    return FALSE;
   *sym_hash = h;
 
   /* This code is for coping with dynamic objects, and is only useful
      if we are doing an ELF link.  */
   if (info->hash->creator != abfd->xvec)
-    return true;
+    return TRUE;
 
   /* For merging, we only care about real symbols.  */
 
@@ -515,7 +515,7 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
   if (h->root.type == bfd_link_hash_new)
     {
       h->elf_link_hash_flags &=~ ELF_LINK_NON_ELF;
-      return true;
+      return TRUE;
     }
 
   /* OLDBFD is a BFD associated with the existing symbol.  */
@@ -550,15 +550,15 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
   if (abfd == oldbfd
       && ((abfd->flags & DYNAMIC) == 0
          || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0))
-    return true;
+    return TRUE;
 
   /* NEWDYN and OLDDYN indicate whether the new or old symbol,
      respectively, is from a dynamic object.  */
 
   if ((abfd->flags & DYNAMIC) != 0)
-    newdyn = true;
+    newdyn = TRUE;
   else
-    newdyn = false;
+    newdyn = FALSE;
 
   if (oldbfd != NULL)
     olddyn = (oldbfd->flags & DYNAMIC) != 0;
@@ -585,7 +585,7 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
        }
 
       if (hsec == NULL)
-       olddyn = false;
+       olddyn = FALSE;
       else
        olddyn = (hsec->symbol->flags & BSF_DYNAMIC) != 0;
     }
@@ -594,16 +594,16 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
      respectively, appear to be a definition rather than reference.  */
 
   if (bfd_is_und_section (sec) || bfd_is_com_section (sec))
-    newdef = false;
+    newdef = FALSE;
   else
-    newdef = true;
+    newdef = TRUE;
 
   if (h->root.type == bfd_link_hash_undefined
       || h->root.type == bfd_link_hash_undefweak
       || h->root.type == bfd_link_hash_common)
-    olddef = false;
+    olddef = FALSE;
   else
-    olddef = true;
+    olddef = TRUE;
 
   /* NEWDYNCOMMON and OLDDYNCOMMON indicate whether the new or old
      symbol, respectively, appears to be a common symbol in a dynamic
@@ -635,9 +635,9 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
       && sym->st_size > 0
       && bind != STB_WEAK
       && ELF_ST_TYPE (sym->st_info) != STT_FUNC)
-    newdyncommon = true;
+    newdyncommon = TRUE;
   else
-    newdyncommon = false;
+    newdyncommon = FALSE;
 
   if (olddyn
       && olddef
@@ -647,9 +647,9 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
       && (h->root.u.def.section->flags & SEC_LOAD) == 0
       && h->size > 0
       && h->type != STT_FUNC)
-    olddyncommon = true;
+    olddyncommon = TRUE;
   else
-    olddyncommon = false;
+    olddyncommon = FALSE;
 
   /* It's OK to change the type if either the existing symbol or the
      new symbol is weak unless it comes from a DT_NEEDED entry of
@@ -659,14 +659,14 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
   if ((! dt_needed && h->root.type == bfd_link_hash_defweak)
       || h->root.type == bfd_link_hash_undefweak
       || bind == STB_WEAK)
-    *type_change_ok = true;
+    *type_change_ok = TRUE;
 
   /* It's OK to change the size if either the existing symbol or the
      new symbol is weak, or if the old symbol is undefined.  */
 
   if (*type_change_ok
       || h->root.type == bfd_link_hash_undefined)
-    *size_change_ok = true;
+    *size_change_ok = TRUE;
 
   /* If both the old and the new symbols look like common symbols in a
      dynamic object, set the size of the symbol to the larger of the
@@ -685,12 +685,12 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
       if (! ((*info->callbacks->multiple_common)
             (info, h->root.root.string, oldbfd, bfd_link_hash_common,
              h->size, abfd, bfd_link_hash_common, sym->st_size)))
-       return false;
+       return FALSE;
 
       if (sym->st_size > h->size)
        h->size = sym->st_size;
 
-      *size_change_ok = true;
+      *size_change_ok = TRUE;
     }
 
   /* If we are looking at a dynamic object, and we have found a
@@ -722,12 +722,12 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
          || dt_needed
          || bind == STB_WEAK))
     {
-      *override = true;
-      newdef = false;
-      newdyncommon = false;
+      *override = TRUE;
+      newdef = FALSE;
+      newdyncommon = FALSE;
 
       *psec = sec = bfd_und_section_ptr;
-      *size_change_ok = true;
+      *size_change_ok = TRUE;
 
       /* If we get here when the old symbol is a common symbol, then
         we are explicitly letting it override a weak symbol or
@@ -736,7 +736,7 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
         change warning may still be appropriate.  */
 
       if (h->root.type == bfd_link_hash_common)
-       *type_change_ok = true;
+       *type_change_ok = TRUE;
     }
 
   /* Handle the special case of an old common symbol merging with a
@@ -748,12 +748,12 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
   if (newdyncommon
       && h->root.type == bfd_link_hash_common)
     {
-      *override = true;
-      newdef = false;
-      newdyncommon = false;
+      *override = TRUE;
+      newdef = FALSE;
+      newdyncommon = FALSE;
       *pvalue = sym->st_size;
       *psec = sec = bfd_com_section_ptr;
-      *size_change_ok = true;
+      *size_change_ok = TRUE;
     }
 
   /* If the old symbol is from a dynamic object, and the new symbol is
@@ -786,16 +786,16 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
 
       h->root.type = bfd_link_hash_undefined;
       h->root.u.undef.abfd = h->root.u.def.section->owner;
-      *size_change_ok = true;
+      *size_change_ok = TRUE;
 
-      olddef = false;
-      olddyncommon = false;
+      olddef = FALSE;
+      olddyncommon = FALSE;
 
       /* We again permit a type change when a common symbol may be
         overriding a function.  */
 
       if (bfd_is_com_section (sec))
-       *type_change_ok = true;
+       *type_change_ok = TRUE;
 
       /* This union may have been set to be non-NULL when this symbol
         was seen in a dynamic object.  We must force the union to be
@@ -828,7 +828,7 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
       if (! ((*info->callbacks->multiple_common)
             (info, h->root.root.string, oldbfd, bfd_link_hash_common,
              h->size, abfd, bfd_link_hash_common, sym->st_size)))
-       return false;
+       return FALSE;
 
       /* If the predumed common symbol in the dynamic object is
         larger, pretend that the new symbol has its size.  */
@@ -840,14 +840,14 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
         in the dynamic object, so we just wind up using the one from
         the regular object.  */
 
-      olddef = false;
-      olddyncommon = false;
+      olddef = FALSE;
+      olddyncommon = FALSE;
 
       h->root.type = bfd_link_hash_undefined;
       h->root.u.undef.abfd = h->root.u.def.section->owner;
 
-      *size_change_ok = true;
-      *type_change_ok = true;
+      *size_change_ok = TRUE;
+      *type_change_ok = TRUE;
 
       h->verinfo.vertree = NULL;
     }
@@ -892,9 +892,9 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
       && newdef
       && ! newdyn
       && bind == STB_WEAK)
-    *override = true;
+    *override = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called to create an indirect symbol from the
@@ -903,7 +903,7 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
    set DYNSYM if the new indirect symbol is dynamic. DT_NEEDED
    indicates if it comes from a DT_NEEDED entry of a shared object.  */
 
-static boolean
+static bfd_boolean
 elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
                        dynsym, override, dt_needed)
      bfd *abfd;
@@ -913,18 +913,18 @@ elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
      Elf_Internal_Sym *sym;
      asection **psec;
      bfd_vma *value;
-     boolean *dynsym;
-     boolean override;
-     boolean dt_needed;
+     bfd_boolean *dynsym;
+     bfd_boolean override;
+     bfd_boolean dt_needed;
 {
-  boolean type_change_ok;
-  boolean size_change_ok;
+  bfd_boolean type_change_ok;
+  bfd_boolean size_change_ok;
   char *shortname;
   struct elf_link_hash_entry *hi;
   struct bfd_link_hash_entry *bh;
   struct elf_backend_data *bed;
-  boolean collect;
-  boolean dynamic;
+  bfd_boolean collect;
+  bfd_boolean dynamic;
   char *p;
   size_t len, shortlen;
   asection *sec;
@@ -935,23 +935,23 @@ elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
      specify a version to be bound to this version of the symbol.  */
   p = strchr (name, ELF_VER_CHR);
   if (p == NULL || p[1] != ELF_VER_CHR)
-    return true;
+    return TRUE;
 
   if (override)
     {
       /* We are overridden by an old defition. We need to check if we
         need to create the indirect symbol from the default name.  */
-      hi = elf_link_hash_lookup (elf_hash_table (info), name, true,
-                                false, false);
+      hi = elf_link_hash_lookup (elf_hash_table (info), name, TRUE,
+                                FALSE, FALSE);
       BFD_ASSERT (hi != NULL);
       if (hi == h)
-       return true;
+       return TRUE;
       while (hi->root.type == bfd_link_hash_indirect
             || hi->root.type == bfd_link_hash_warning)
        {
          hi = (struct elf_link_hash_entry *) hi->root.u.i.link;
          if (hi == h)
-           return true;
+           return TRUE;
        }
     }
 
@@ -962,7 +962,7 @@ elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
   shortlen = p - name;
   shortname = bfd_hash_allocate (&info->hash->table, shortlen + 1);
   if (shortname == NULL)
-    return false;
+    return FALSE;
   memcpy (shortname, name, shortlen);
   shortname[shortlen] = '\0';
 
@@ -970,21 +970,21 @@ elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
      symbol with this name.  For the purposes of the merge, act as
      though we were defining the symbol we just defined, although we
      actually going to define an indirect symbol.  */
-  type_change_ok = false;
-  size_change_ok = false;
+  type_change_ok = FALSE;
+  size_change_ok = FALSE;
   sec = *psec;
   if (! elf_merge_symbol (abfd, info, shortname, sym, &sec, value,
                          &hi, &override, &type_change_ok,
                          &size_change_ok, dt_needed))
-    return false;
+    return FALSE;
 
   if (! override)
     {
       bh = &hi->root;
       if (! (_bfd_generic_link_add_one_symbol
             (info, abfd, shortname, BSF_INDIRECT, bfd_ind_section_ptr,
-             (bfd_vma) 0, name, false, collect, &bh)))
-       return false;
+             (bfd_vma) 0, name, FALSE, collect, &bh)))
+       return FALSE;
       hi = (struct elf_link_hash_entry *) bh;
     }
   else
@@ -1022,7 +1022,7 @@ elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
                 | ELF_LINK_HASH_DEF_REGULAR))
            {
              if (! _bfd_elf_link_record_dynamic_symbol (info, hi))
-               return false;
+               return FALSE;
            }
        }
 
@@ -1057,13 +1057,13 @@ elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
              if (info->shared
                  || ((hi->elf_link_hash_flags
                       & ELF_LINK_HASH_REF_DYNAMIC) != 0))
-               *dynsym = true;
+               *dynsym = TRUE;
            }
          else
            {
              if ((hi->elf_link_hash_flags
                   & ELF_LINK_HASH_REF_REGULAR) != 0)
-               *dynsym = true;
+               *dynsym = TRUE;
            }
        }
     }
@@ -1074,18 +1074,18 @@ elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
   len = strlen (name);
   shortname = bfd_hash_allocate (&info->hash->table, len);
   if (shortname == NULL)
-    return false;
+    return FALSE;
   memcpy (shortname, name, shortlen);
   memcpy (shortname + shortlen, p + 1, len - shortlen);
 
   /* Once again, merge with any existing symbol.  */
-  type_change_ok = false;
-  size_change_ok = false;
+  type_change_ok = FALSE;
+  size_change_ok = FALSE;
   sec = *psec;
   if (! elf_merge_symbol (abfd, info, shortname, sym, &sec, value,
                          &hi, &override, &type_change_ok,
                          &size_change_ok, dt_needed))
-    return false;
+    return FALSE;
 
   if (override)
     {
@@ -1103,8 +1103,8 @@ elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
       bh = &hi->root;
       if (! (_bfd_generic_link_add_one_symbol
             (info, abfd, shortname, BSF_INDIRECT,
-             bfd_ind_section_ptr, (bfd_vma) 0, name, false, collect, &bh)))
-       return false;
+             bfd_ind_section_ptr, (bfd_vma) 0, name, FALSE, collect, &bh)))
+       return FALSE;
       hi = (struct elf_link_hash_entry *) bh;
 
       /* If there is a duplicate definition somewhere, then HI may not
@@ -1130,41 +1130,41 @@ elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
                  if (info->shared
                      || ((hi->elf_link_hash_flags
                           & ELF_LINK_HASH_REF_DYNAMIC) != 0))
-                   *dynsym = true;
+                   *dynsym = TRUE;
                }
              else
                {
                  if ((hi->elf_link_hash_flags
                       & ELF_LINK_HASH_REF_REGULAR) != 0)
-                   *dynsym = true;
+                   *dynsym = TRUE;
                }
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Add symbols from an ELF object file to the linker hash table.  */
 
-static boolean
+static bfd_boolean
 elf_link_add_object_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
-  boolean (*add_symbol_hook) PARAMS ((bfd *, struct bfd_link_info *,
-                                     const Elf_Internal_Sym *,
-                                     const char **, flagword *,
-                                     asection **, bfd_vma *));
-  boolean (*check_relocs) PARAMS ((bfd *, struct bfd_link_info *,
-                                  asection *, const Elf_Internal_Rela *));
-  boolean collect;
+  bfd_boolean (*add_symbol_hook)
+    PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
+            const char **, flagword *, asection **, bfd_vma *));
+  bfd_boolean (*check_relocs)
+    PARAMS ((bfd *, struct bfd_link_info *, asection *,
+            const Elf_Internal_Rela *));
+  bfd_boolean collect;
   Elf_Internal_Shdr *hdr;
   bfd_size_type symcount;
   bfd_size_type extsymcount;
   bfd_size_type extsymoff;
   struct elf_link_hash_entry **sym_hash;
-  boolean dynamic;
+  bfd_boolean dynamic;
   Elf_External_Versym *extversym = NULL;
   Elf_External_Versym *ever;
   struct elf_link_hash_entry *weaks;
@@ -1172,7 +1172,7 @@ elf_link_add_object_symbols (abfd, info)
   Elf_Internal_Sym *isym;
   Elf_Internal_Sym *isymend;
   struct elf_backend_data *bed;
-  boolean dt_needed;
+  bfd_boolean dt_needed;
   struct elf_link_hash_table * hash_table;
   bfd_size_type amt;
 
@@ -1183,10 +1183,10 @@ elf_link_add_object_symbols (abfd, info)
   collect = bed->collect;
 
   if ((abfd->flags & DYNAMIC) == 0)
-    dynamic = false;
+    dynamic = FALSE;
   else
     {
-      dynamic = true;
+      dynamic = TRUE;
 
       /* You can't use -r against a dynamic object.  Also, there's no
         hope of using a dynamic object which does not exactly match
@@ -1232,7 +1232,7 @@ elf_link_add_object_symbols (abfd, info)
                  struct elf_link_hash_entry *h;
 
                  h = elf_link_hash_lookup (hash_table, name,
-                                           false, false, true);
+                                           FALSE, FALSE, TRUE);
 
                  /* FIXME: What about bfd_link_hash_common?  */
                  if (h != NULL
@@ -1259,7 +1259,7 @@ elf_link_add_object_symbols (abfd, info)
 
              if (! (_bfd_generic_link_add_one_symbol
                     (info, abfd, name, BSF_WARNING, s, (bfd_vma) 0, msg,
-                     false, collect, (struct bfd_link_hash_entry **) NULL)))
+                     FALSE, collect, (struct bfd_link_hash_entry **) NULL)))
                goto error_return;
 
              if (! info->relocateable)
@@ -1272,7 +1272,7 @@ elf_link_add_object_symbols (abfd, info)
        }
     }
 
-  dt_needed = false;
+  dt_needed = FALSE;
   if (! dynamic)
     {
       /* If we are creating a shared library, create all the dynamic
@@ -1294,7 +1294,7 @@ elf_link_add_object_symbols (abfd, info)
   else
     {
       asection *s;
-      boolean add_needed;
+      bfd_boolean add_needed;
       const char *name;
       bfd_size_type oldsize;
       bfd_size_type strindex;
@@ -1314,7 +1314,7 @@ elf_link_add_object_symbols (abfd, info)
         name.  If the generic linker put a null string into
         elf_dt_name, we don't make a DT_NEEDED entry at all, even if
         there is a DT_SONAME entry.  */
-      add_needed = true;
+      add_needed = TRUE;
       name = bfd_get_filename (abfd);
       if (elf_dt_name (abfd) != NULL)
        {
@@ -1322,9 +1322,9 @@ elf_link_add_object_symbols (abfd, info)
          if (*name == '\0')
            {
              if (elf_dt_soname (abfd) != NULL)
-               dt_needed = true;
+               dt_needed = TRUE;
 
-             add_needed = false;
+             add_needed = FALSE;
            }
        }
       s = bfd_get_section_by_name (abfd, ".dynamic");
@@ -1482,7 +1482,7 @@ elf_link_add_object_symbols (abfd, info)
        {
          /* Add a DT_NEEDED entry for this dynamic object.  */
          oldsize = _bfd_elf_strtab_size (hash_table->dynstr);
-         strindex = _bfd_elf_strtab_add (hash_table->dynstr, name, false);
+         strindex = _bfd_elf_strtab_add (hash_table->dynstr, name, FALSE);
          if (strindex == (bfd_size_type) -1)
            goto error_return;
 
@@ -1511,7 +1511,7 @@ elf_link_add_object_symbols (abfd, info)
                      && dyn.d_un.d_val == strindex)
                    {
                      _bfd_elf_strtab_delref (hash_table->dynstr, strindex);
-                     return true;
+                     return TRUE;
                    }
                }
            }
@@ -1606,13 +1606,13 @@ elf_link_add_object_symbols (abfd, info)
       flagword flags;
       const char *name;
       struct elf_link_hash_entry *h;
-      boolean definition;
-      boolean size_change_ok, type_change_ok;
-      boolean new_weakdef;
+      bfd_boolean definition;
+      bfd_boolean size_change_ok, type_change_ok;
+      bfd_boolean new_weakdef;
       unsigned int old_alignment;
-      boolean override;
+      bfd_boolean override;
 
-      override = false;
+      override = FALSE;
 
       flags = BSF_NO_FLAGS;
       sec = NULL;
@@ -1708,11 +1708,11 @@ elf_link_add_object_symbols (abfd, info)
 
       if (bfd_is_und_section (sec)
          || bfd_is_com_section (sec))
-       definition = false;
+       definition = FALSE;
       else
-       definition = true;
+       definition = TRUE;
 
-      size_change_ok = false;
+      size_change_ok = FALSE;
       type_change_ok = get_elf_backend_data (abfd)->type_change_ok;
       old_alignment = 0;
       if (info->hash->creator->flavour == bfd_target_elf_flavour)
@@ -1821,7 +1821,7 @@ elf_link_add_object_symbols (abfd, info)
            goto error_free_vers;
 
          if (override)
-           definition = false;
+           definition = FALSE;
 
          h = *sym_hash;
          while (h->root.type == bfd_link_hash_indirect
@@ -1845,7 +1845,7 @@ elf_link_add_object_symbols (abfd, info)
 
       if (! (_bfd_generic_link_add_one_symbol
             (info, abfd, name, flags, sec, value, (const char *) NULL,
-             false, collect, (struct bfd_link_hash_entry **) sym_hash)))
+             FALSE, collect, (struct bfd_link_hash_entry **) sym_hash)))
        goto error_free_vers;
 
       h = *sym_hash;
@@ -1854,7 +1854,7 @@ elf_link_add_object_symbols (abfd, info)
        h = (struct elf_link_hash_entry *) h->root.u.i.link;
       *sym_hash = h;
 
-      new_weakdef = false;
+      new_weakdef = FALSE;
       if (dynamic
          && definition
          && (flags & BSF_WEAK) != 0
@@ -1876,7 +1876,7 @@ elf_link_add_object_symbols (abfd, info)
 
          h->weakdef = weaks;
          weaks = h;
-         new_weakdef = true;
+         new_weakdef = TRUE;
        }
 
       /* Set the alignment of a common symbol.  */
@@ -1896,7 +1896,7 @@ elf_link_add_object_symbols (abfd, info)
       if (info->hash->creator->flavour == bfd_target_elf_flavour)
        {
          int old_flags;
-         boolean dynsym;
+         bfd_boolean dynsym;
          int new_flag;
 
          /* Remember the symbol size and type.  */
@@ -1938,19 +1938,17 @@ elf_link_add_object_symbols (abfd, info)
             might be needed here.  */
          if (isym->st_other != 0)
            {
+             unsigned char hvis, symvis, other;
+
+             /* Take the balance of OTHER from the definition.  */
+             other = (definition ? isym->st_other : h->other);
+             other &= ~ ELF_ST_VISIBILITY (-1);
+
              /* Combine visibilities, using the most constraining one.  */
-             unsigned char hvis   = ELF_ST_VISIBILITY (h->other);
-             unsigned char symvis = ELF_ST_VISIBILITY (isym->st_other);
-
-             if (symvis && (hvis > symvis || hvis == 0))
-               h->other = isym->st_other;
-
-             /* If neither has visibility, use the st_other of the
-                definition.  This is an arbitrary choice, since the
-                other bits have no general meaning.  */
-             if (!symvis && !hvis
-                 && (definition || h->other == 0))
-               h->other = isym->st_other;
+             hvis   = ELF_ST_VISIBILITY (h->other);
+             symvis = ELF_ST_VISIBILITY (isym->st_other);
+
+             h->other = other | (hvis > symvis ? hvis : symvis);
            }
 
          /* Set a flag in the hash table entry indicating the type of
@@ -1959,7 +1957,7 @@ elf_link_add_object_symbols (abfd, info)
             is one which is referenced or defined by both a regular
             object and a shared object.  */
          old_flags = h->elf_link_hash_flags;
-         dynsym = false;
+         dynsym = FALSE;
          if (! dynamic)
            {
              if (! definition)
@@ -1973,7 +1971,7 @@ elf_link_add_object_symbols (abfd, info)
              if (info->shared
                  || (old_flags & (ELF_LINK_HASH_DEF_DYNAMIC
                                   | ELF_LINK_HASH_REF_DYNAMIC)) != 0)
-               dynsym = true;
+               dynsym = TRUE;
            }
          else
            {
@@ -1986,7 +1984,7 @@ elf_link_add_object_symbols (abfd, info)
                  || (h->weakdef != NULL
                      && ! new_weakdef
                      && h->weakdef->dynindx != -1))
-               dynsym = true;
+               dynsym = TRUE;
            }
 
          h->elf_link_hash_flags |= new_flag;
@@ -2019,7 +2017,7 @@ elf_link_add_object_symbols (abfd, info)
              {
              case STV_INTERNAL:
              case STV_HIDDEN:
-               (*bed->elf_backend_hide_symbol) (info, h, true);
+               (*bed->elf_backend_hide_symbol) (info, h, TRUE);
                break;
              }
 
@@ -2037,10 +2035,10 @@ elf_link_add_object_symbols (abfd, info)
                 the regular object to create a dynamic executable. We
                 have to make sure there is a DT_NEEDED entry for it.  */
 
-             dt_needed = false;
+             dt_needed = FALSE;
              oldsize = _bfd_elf_strtab_size (hash_table->dynstr);
              strindex = _bfd_elf_strtab_add (hash_table->dynstr,
-                                             elf_dt_soname (abfd), false);
+                                             elf_dt_soname (abfd), FALSE);
              if (strindex == (bfd_size_type) -1)
                goto error_free_vers;
 
@@ -2182,7 +2180,7 @@ elf_link_add_object_symbols (abfd, info)
       for (o = abfd->sections; o != NULL; o = o->next)
        {
          Elf_Internal_Rela *internal_relocs;
-         boolean ok;
+         bfd_boolean ok;
 
          if ((o->flags & SEC_RELOC) == 0
              || o->reloc_count == 0
@@ -2276,7 +2274,7 @@ elf_link_add_object_symbols (abfd, info)
       hash_table->loaded = n;
     }
 
-  return true;
+  return TRUE;
 
  error_free_vers:
   if (extversym != NULL)
@@ -2285,7 +2283,7 @@ elf_link_add_object_symbols (abfd, info)
   if (isymbuf != NULL)
     free (isymbuf);
  error_return:
-  return false;
+  return FALSE;
 }
 
 /* Create some sections which will be filled in with dynamic linking
@@ -2295,7 +2293,7 @@ elf_link_add_object_symbols (abfd, info)
    addresses are assigned to the output sections.  We work out the
    actual contents and size of these sections later.  */
 
-boolean
+bfd_boolean
 elf_link_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2307,10 +2305,10 @@ elf_link_create_dynamic_sections (abfd, info)
   struct elf_backend_data *bed;
 
   if (! is_elf_hash_table (info))
-    return false;
+    return FALSE;
 
   if (elf_hash_table (info)->dynamic_sections_created)
-    return true;
+    return TRUE;
 
   /* Make sure that all dynamic sections use the same input BFD.  */
   if (elf_hash_table (info)->dynobj == NULL)
@@ -2330,7 +2328,7 @@ elf_link_create_dynamic_sections (abfd, info)
       s = bfd_make_section (abfd, ".interp");
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY))
-       return false;
+       return FALSE;
     }
 
   if (! info->traditional_format
@@ -2340,7 +2338,7 @@ elf_link_create_dynamic_sections (abfd, info)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
       elf_hash_table (info)->eh_info.hdr_sec = s;
     }
 
@@ -2350,44 +2348,44 @@ elf_link_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN))
-    return false;
+    return FALSE;
 
   s = bfd_make_section (abfd, ".gnu.version");
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, s, 1))
-    return false;
+    return FALSE;
 
   s = bfd_make_section (abfd, ".gnu.version_r");
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN))
-    return false;
+    return FALSE;
 
   s = bfd_make_section (abfd, ".dynsym");
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN))
-    return false;
+    return FALSE;
 
   s = bfd_make_section (abfd, ".dynstr");
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY))
-    return false;
+    return FALSE;
 
   /* Create a strtab to hold the dynamic symbol names.  */
   if (elf_hash_table (info)->dynstr == NULL)
     {
       elf_hash_table (info)->dynstr = _bfd_elf_strtab_init ();
       if (elf_hash_table (info)->dynstr == NULL)
-       return false;
+       return FALSE;
     }
 
   s = bfd_make_section (abfd, ".dynamic");
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags)
       || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN))
-    return false;
+    return FALSE;
 
   /* The special symbol _DYNAMIC is always set to the start of the
      .dynamic section.  This call occurs before we have processed the
@@ -2400,15 +2398,15 @@ elf_link_create_dynamic_sections (abfd, info)
   bh = NULL;
   if (! (_bfd_generic_link_add_one_symbol
         (info, abfd, "_DYNAMIC", BSF_GLOBAL, s, (bfd_vma) 0,
-         (const char *) 0, false, get_elf_backend_data (abfd)->collect, &bh)))
-    return false;
+         (const char *) 0, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+    return FALSE;
   h = (struct elf_link_hash_entry *) bh;
   h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
   h->type = STT_OBJECT;
 
   if (info->shared
       && ! _bfd_elf_link_record_dynamic_symbol (info, h))
-    return false;
+    return FALSE;
 
   bed = get_elf_backend_data (abfd);
 
@@ -2416,23 +2414,23 @@ elf_link_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
       || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN))
-    return false;
+    return FALSE;
   elf_section_data (s)->this_hdr.sh_entsize = bed->s->sizeof_hash_entry;
 
   /* Let the backend create the rest of the sections.  This lets the
      backend set the right flags.  The backend will normally create
      the .got and .plt sections.  */
   if (! (*bed->elf_backend_create_dynamic_sections) (abfd, info))
-    return false;
+    return FALSE;
 
-  elf_hash_table (info)->dynamic_sections_created = true;
+  elf_hash_table (info)->dynamic_sections_created = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* Add an entry to the .dynamic table.  */
 
-boolean
+bfd_boolean
 elf_add_dynamic_entry (info, tag, val)
      struct bfd_link_info *info;
      bfd_vma tag;
@@ -2445,7 +2443,7 @@ elf_add_dynamic_entry (info, tag, val)
   bfd_byte *newcontents;
 
   if (! is_elf_hash_table (info))
-    return false;
+    return FALSE;
 
   dynobj = elf_hash_table (info)->dynobj;
 
@@ -2455,7 +2453,7 @@ elf_add_dynamic_entry (info, tag, val)
   newsize = s->_raw_size + sizeof (Elf_External_Dyn);
   newcontents = (bfd_byte *) bfd_realloc (s->contents, newsize);
   if (newcontents == NULL)
-    return false;
+    return FALSE;
 
   dyn.d_tag = tag;
   dyn.d_un.d_val = val;
@@ -2465,7 +2463,7 @@ elf_add_dynamic_entry (info, tag, val)
   s->_raw_size = newsize;
   s->contents = newcontents;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Read and swap the relocs from the section indicated by SHDR.  This
@@ -2475,9 +2473,9 @@ elf_add_dynamic_entry (info, tag, val)
    The EXTERNAL_RELOCS are a buffer where the external form of the
    relocations should be stored.
 
-   Returns false if something goes wrong.  */
+   Returns FALSE if something goes wrong.  */
 
-static boolean
+static bfd_boolean
 elf_link_read_relocs_from_section (abfd, shdr, external_relocs,
                                   internal_relocs)
      bfd *abfd;
@@ -2486,73 +2484,44 @@ elf_link_read_relocs_from_section (abfd, shdr, external_relocs,
      Elf_Internal_Rela *internal_relocs;
 {
   struct elf_backend_data *bed;
-  bfd_size_type amt;
+  void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+  const bfd_byte *erela;
+  const bfd_byte *erelaend;
+  Elf_Internal_Rela *irela;
 
   /* If there aren't any relocations, that's OK.  */
   if (!shdr)
-    return true;
+    return TRUE;
 
   /* Position ourselves at the start of the section.  */
   if (bfd_seek (abfd, shdr->sh_offset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   /* Read the relocations.  */
   if (bfd_bread (external_relocs, shdr->sh_size, abfd) != shdr->sh_size)
-    return false;
+    return FALSE;
 
   bed = get_elf_backend_data (abfd);
 
   /* Convert the external relocations to the internal format.  */
   if (shdr->sh_entsize == sizeof (Elf_External_Rel))
-    {
-      Elf_External_Rel *erel;
-      Elf_External_Rel *erelend;
-      Elf_Internal_Rela *irela;
-      Elf_Internal_Rel *irel;
-
-      erel = (Elf_External_Rel *) external_relocs;
-      erelend = erel + NUM_SHDR_ENTRIES (shdr);
-      irela = internal_relocs;
-      amt = bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rel);
-      irel = bfd_alloc (abfd, amt);
-      for (; erel < erelend; erel++, irela += bed->s->int_rels_per_ext_rel)
-       {
-         unsigned int i;
-
-         if (bed->s->swap_reloc_in)
-           (*bed->s->swap_reloc_in) (abfd, (bfd_byte *) erel, irel);
-         else
-           elf_swap_reloc_in (abfd, erel, irel);
-
-         for (i = 0; i < bed->s->int_rels_per_ext_rel; ++i)
-           {
-             irela[i].r_offset = irel[i].r_offset;
-             irela[i].r_info = irel[i].r_info;
-             irela[i].r_addend = 0;
-           }
-       }
-    }
+    swap_in = bed->s->swap_reloc_in;
+  else if (shdr->sh_entsize == sizeof (Elf_External_Rela))
+    swap_in = bed->s->swap_reloca_in;
   else
-    {
-      Elf_External_Rela *erela;
-      Elf_External_Rela *erelaend;
-      Elf_Internal_Rela *irela;
-
-      BFD_ASSERT (shdr->sh_entsize == sizeof (Elf_External_Rela));
+    abort ();
 
-      erela = (Elf_External_Rela *) external_relocs;
-      erelaend = erela + NUM_SHDR_ENTRIES (shdr);
-      irela = internal_relocs;
-      for (; erela < erelaend; erela++, irela += bed->s->int_rels_per_ext_rel)
-       {
-         if (bed->s->swap_reloca_in)
-           (*bed->s->swap_reloca_in) (abfd, (bfd_byte *) erela, irela);
-         else
-           elf_swap_reloca_in (abfd, erela, irela);
-       }
+  erela = external_relocs;
+  erelaend = erela + NUM_SHDR_ENTRIES (shdr) * shdr->sh_entsize;
+  irela = internal_relocs;
+  while (erela < erelaend)
+    {
+      (*swap_in) (abfd, erela, irela);
+      irela += bed->s->int_rels_per_ext_rel;
+      erela += shdr->sh_entsize;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Read and swap the relocs for a section O.  They may have been
@@ -2572,7 +2541,7 @@ NAME(_bfd_elf,link_read_relocs) (abfd, o, external_relocs, internal_relocs,
      asection *o;
      PTR external_relocs;
      Elf_Internal_Rela *internal_relocs;
-     boolean keep_memory;
+     bfd_boolean keep_memory;
 {
   Elf_Internal_Shdr *rel_hdr;
   PTR alloc1 = NULL;
@@ -2648,21 +2617,21 @@ NAME(_bfd_elf,link_read_relocs) (abfd, o, external_relocs, internal_relocs,
 /* Record an assignment to a symbol made by a linker script.  We need
    this in case some dynamic object refers to this symbol.  */
 
-boolean
+bfd_boolean
 NAME(bfd_elf,record_link_assignment) (output_bfd, info, name, provide)
      bfd *output_bfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info;
      const char *name;
-     boolean provide;
+     bfd_boolean provide;
 {
   struct elf_link_hash_entry *h;
 
   if (info->hash->creator->flavour != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
-  h = elf_link_hash_lookup (elf_hash_table (info), name, true, true, false);
+  h = elf_link_hash_lookup (elf_hash_table (info), name, TRUE, TRUE, FALSE);
   if (h == NULL)
-    return false;
+    return FALSE;
 
   if (h->root.type == bfd_link_hash_new)
     h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
@@ -2693,7 +2662,7 @@ NAME(bfd_elf,record_link_assignment) (output_bfd, info, name, provide)
       && h->dynindx == -1)
     {
       if (! _bfd_elf_link_record_dynamic_symbol (info, h))
-       return false;
+       return FALSE;
 
       /* If this is a weak defined symbol, and we know a corresponding
         real symbol from the same dynamic object, make sure the real
@@ -2702,11 +2671,11 @@ NAME(bfd_elf,record_link_assignment) (output_bfd, info, name, provide)
          && h->weakdef->dynindx == -1)
        {
          if (! _bfd_elf_link_record_dynamic_symbol (info, h->weakdef))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* This structure is used to pass information to
@@ -2721,7 +2690,7 @@ struct elf_assign_sym_version_info
   /* Version tree.  */
   struct bfd_elf_version_tree *verdefs;
   /* Whether we had a failure.  */
-  boolean failed;
+  bfd_boolean failed;
 };
 
 /* This structure is used to pass information to
@@ -2736,7 +2705,7 @@ struct elf_find_verdep_info
   /* The number of dependencies.  */
   unsigned int vers;
   /* Whether we had a failure.  */
-  boolean failed;
+  bfd_boolean failed;
 };
 
 /* Array used to determine the number of hash table buckets to use
@@ -2902,7 +2871,7 @@ compute_bucket_count (info)
    must set the sizes of the sections before the linker sets the
    addresses of the various sections.  */
 
-boolean
+bfd_boolean
 NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                                     filter_shlib,
                                     auxiliary_filters, info, sinterpptr,
@@ -2926,10 +2895,10 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
   soname_indx = (bfd_size_type) -1;
 
   if (info->hash->creator->flavour != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   if (! is_elf_hash_table (info))
-    return true;
+    return TRUE;
 
   /* Any syms created from now on start with -1 in
      got.refcount/offset and plt.refcount/offset.  */
@@ -2940,17 +2909,17 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
   bed = get_elf_backend_data (output_bfd);
   if (bed->elf_backend_always_size_sections
       && ! (*bed->elf_backend_always_size_sections) (output_bfd, info))
-    return false;
+    return FALSE;
 
   dynobj = elf_hash_table (info)->dynobj;
 
   /* If there were no dynamic objects in the link, there is nothing to
      do here.  */
   if (dynobj == NULL)
-    return true;
+    return TRUE;
 
   if (! _bfd_elf_maybe_strip_eh_frame_hdr (info))
-    return false;
+    return FALSE;
 
   if (elf_hash_table (info)->dynamic_sections_created)
     {
@@ -2959,7 +2928,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
       asection *dynstr;
       struct bfd_elf_version_tree *t;
       struct bfd_elf_version_expr *d;
-      boolean all_defined;
+      bfd_boolean all_defined;
 
       *sinterpptr = bfd_get_section_by_name (dynobj, ".interp");
       BFD_ASSERT (*sinterpptr != NULL || info->shared);
@@ -2967,18 +2936,18 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
       if (soname != NULL)
        {
          soname_indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
-                                            soname, true);
+                                            soname, TRUE);
          if (soname_indx == (bfd_size_type) -1
              || ! elf_add_dynamic_entry (info, (bfd_vma) DT_SONAME,
                                          soname_indx))
-           return false;
+           return FALSE;
        }
 
       if (info->symbolic)
        {
          if (! elf_add_dynamic_entry (info, (bfd_vma) DT_SYMBOLIC,
                                       (bfd_vma) 0))
-           return false;
+           return FALSE;
          info->flags |= DF_SYMBOLIC;
        }
 
@@ -2987,7 +2956,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
          bfd_size_type indx;
 
          indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, rpath,
-                                     true);
+                                     TRUE);
          if (info->new_dtags)
            _bfd_elf_strtab_addref (elf_hash_table (info)->dynstr, indx);
          if (indx == (bfd_size_type) -1
@@ -2995,7 +2964,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
              || (info->new_dtags
                  && ! elf_add_dynamic_entry (info, (bfd_vma) DT_RUNPATH,
                                              indx)))
-           return false;
+           return FALSE;
        }
 
       if (filter_shlib != NULL)
@@ -3003,10 +2972,10 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
          bfd_size_type indx;
 
          indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
-                                     filter_shlib, true);
+                                     filter_shlib, TRUE);
          if (indx == (bfd_size_type) -1
              || ! elf_add_dynamic_entry (info, (bfd_vma) DT_FILTER, indx))
-           return false;
+           return FALSE;
        }
 
       if (auxiliary_filters != NULL)
@@ -3018,17 +2987,17 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
              bfd_size_type indx;
 
              indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
-                                         *p, true);
+                                         *p, TRUE);
              if (indx == (bfd_size_type) -1
                  || ! elf_add_dynamic_entry (info, (bfd_vma) DT_AUXILIARY,
                                              indx))
-               return false;
+               return FALSE;
            }
        }
 
       eif.info = info;
       eif.verdefs = verdefs;
-      eif.failed = false;
+      eif.failed = FALSE;
 
       /* If we are supposed to export all symbols into the dynamic symbol
         table (this is not the normal case), then do so.  */
@@ -3037,7 +3006,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
          elf_link_hash_traverse (elf_hash_table (info), elf_export_symbol,
                                  (PTR) &eif);
          if (eif.failed)
-           return false;
+           return FALSE;
        }
 
       /* Make all global versions with definiton.  */
@@ -3054,11 +3023,11 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
              namelen = strlen (name);
              verstr = t->name;
              verlen = strlen (verstr);
-             newlen = namelen + verlen + 3; 
+             newlen = namelen + verlen + 3;
 
              newname = (char *) bfd_malloc ((bfd_size_type) newlen);
              if (newname == NULL)
-               return false;
+               return FALSE;
              memcpy (newname, name, namelen);
 
              /* Check the hidden versioned definition.  */
@@ -3066,8 +3035,8 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
              *p++ = ELF_VER_CHR;
              memcpy (p, verstr, verlen + 1);
              newh = elf_link_hash_lookup (elf_hash_table (info),
-                                          newname, false, false,
-                                          false);
+                                          newname, FALSE, FALSE,
+                                          FALSE);
              if (newh == NULL
                  || (newh->root.type != bfd_link_hash_defined
                      && newh->root.type != bfd_link_hash_defweak))
@@ -3076,8 +3045,8 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                  *p++ = ELF_VER_CHR;
                  memcpy (p, verstr, verlen + 1);
                  newh = elf_link_hash_lookup (elf_hash_table (info),
-                                              newname, false, false,
-                                              false);
+                                              newname, FALSE, FALSE,
+                                              FALSE);
                }
              free (newname);
 
@@ -3095,18 +3064,18 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
       asvinfo.output_bfd = output_bfd;
       asvinfo.info = info;
       asvinfo.verdefs = verdefs;
-      asvinfo.failed = false;
+      asvinfo.failed = FALSE;
 
       elf_link_hash_traverse (elf_hash_table (info),
                              elf_link_assign_sym_version,
                              (PTR) &asvinfo);
       if (asvinfo.failed)
-       return false;
+       return FALSE;
 
       if (!info->allow_undefined_version)
        {
          /* Check if all global versions have a definiton.  */
-         all_defined = true;
+         all_defined = TRUE;
          for (t = verdefs; t != NULL; t = t->next)
            for (d = t->globals; d != NULL; d = d->next)
              if (!d->symver && !d->script
@@ -3115,13 +3084,13 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                  (*_bfd_error_handler)
                    (_("%s: undefined version: %s"),
                     d->pattern, t->name);
-                 all_defined = false;
+                 all_defined = FALSE;
                }
 
          if (!all_defined)
            {
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
        }
 
@@ -3131,7 +3100,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                              elf_adjust_dynamic_symbol,
                              (PTR) &eif);
       if (eif.failed)
-       return false;
+       return FALSE;
 
       /* Add some entries to the .dynamic section.  We fill in some of the
         values later, in elf_bfd_final_link, but we must add the entries
@@ -3141,27 +3110,27 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
         call then add the corresponding DT_INIT/DT_FINI entries.  */
       h = (info->init_function
           ? elf_link_hash_lookup (elf_hash_table (info),
-                                  info->init_function, false,
-                                  false, false)
+                                  info->init_function, FALSE,
+                                  FALSE, FALSE)
           : NULL);
       if (h != NULL
          && (h->elf_link_hash_flags & (ELF_LINK_HASH_REF_REGULAR
                                        | ELF_LINK_HASH_DEF_REGULAR)) != 0)
        {
          if (! elf_add_dynamic_entry (info, (bfd_vma) DT_INIT, (bfd_vma) 0))
-           return false;
+           return FALSE;
        }
       h = (info->fini_function
           ? elf_link_hash_lookup (elf_hash_table (info),
-                                  info->fini_function, false,
-                                  false, false)
+                                  info->fini_function, FALSE,
+                                  FALSE, FALSE)
           : NULL);
       if (h != NULL
          && (h->elf_link_hash_flags & (ELF_LINK_HASH_REF_REGULAR
                                        | ELF_LINK_HASH_DEF_REGULAR)) != 0)
        {
          if (! elf_add_dynamic_entry (info, (bfd_vma) DT_FINI, (bfd_vma) 0))
-           return false;
+           return FALSE;
        }
 
       if (bfd_get_section_by_name (output_bfd, ".preinit_array") != NULL)
@@ -3185,14 +3154,14 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                    }
 
              bfd_set_error (bfd_error_nonrepresentable_section);
-             return false;
+             return FALSE;
            }
 
          if (!elf_add_dynamic_entry (info, (bfd_vma) DT_PREINIT_ARRAY,
                                      (bfd_vma) 0)
              || !elf_add_dynamic_entry (info, (bfd_vma) DT_PREINIT_ARRAYSZ,
                                         (bfd_vma) 0))
-           return false;
+           return FALSE;
        }
       if (bfd_get_section_by_name (output_bfd, ".init_array") != NULL)
        {
@@ -3200,7 +3169,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                                      (bfd_vma) 0)
              || !elf_add_dynamic_entry (info, (bfd_vma) DT_INIT_ARRAYSZ,
                                         (bfd_vma) 0))
-           return false;
+           return FALSE;
        }
       if (bfd_get_section_by_name (output_bfd, ".fini_array") != NULL)
        {
@@ -3208,7 +3177,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                                      (bfd_vma) 0)
              || !elf_add_dynamic_entry (info, (bfd_vma) DT_FINI_ARRAYSZ,
                                         (bfd_vma) 0))
-           return false;
+           return FALSE;
        }
 
       dynstr = bfd_get_section_by_name (dynobj, ".dynstr");
@@ -3227,7 +3196,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
              || ! elf_add_dynamic_entry (info, (bfd_vma) DT_STRSZ, strsize)
              || ! elf_add_dynamic_entry (info, (bfd_vma) DT_SYMENT,
                                          (bfd_vma) sizeof (Elf_External_Sym)))
-           return false;
+           return FALSE;
        }
     }
 
@@ -3235,7 +3204,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
      sections.  */
   if (bed->elf_backend_size_dynamic_sections
       && ! (*bed->elf_backend_size_dynamic_sections) (output_bfd, info))
-    return false;
+    return FALSE;
 
   if (elf_hash_table (info)->dynamic_sections_created)
     {
@@ -3291,7 +3260,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
          s->_raw_size = size;
          s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size);
          if (s->contents == NULL && s->_raw_size != 0)
-           return false;
+           return FALSE;
 
          /* Fill in the version definition section.  */
 
@@ -3320,9 +3289,9 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
              name = basename (output_bfd->filename);
              def.vd_hash = bfd_elf_hash (name);
              indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
-                                         name, false);
+                                         name, FALSE);
              if (indx == (bfd_size_type) -1)
-               return false;
+               return FALSE;
              defaux.vda_name = indx;
            }
          defaux.vda_next = 0;
@@ -3349,9 +3318,9 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
              bh = NULL;
              if (! (_bfd_generic_link_add_one_symbol
                     (info, dynobj, t->name, BSF_GLOBAL, bfd_abs_section_ptr,
-                     (bfd_vma) 0, (const char *) NULL, false,
+                     (bfd_vma) 0, (const char *) NULL, FALSE,
                      get_elf_backend_data (dynobj)->collect, &bh)))
-               return false;
+               return FALSE;
              h = (struct elf_link_hash_entry *) bh;
              h->elf_link_hash_flags &= ~ ELF_LINK_NON_ELF;
              h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
@@ -3359,7 +3328,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
              h->verinfo.vertree = t;
 
              if (! _bfd_elf_link_record_dynamic_symbol (info, h))
-               return false;
+               return FALSE;
 
              def.vd_version = VER_DEF_CURRENT;
              def.vd_flags = 0;
@@ -3420,7 +3389,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
          if (! elf_add_dynamic_entry (info, (bfd_vma) DT_VERDEF, (bfd_vma) 0)
              || ! elf_add_dynamic_entry (info, (bfd_vma) DT_VERDEFNUM,
                                          (bfd_vma) cdefs))
-           return false;
+           return FALSE;
 
          elf_tdata (output_bfd)->cverdefs = cdefs;
        }
@@ -3428,7 +3397,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
       if ((info->new_dtags && info->flags) || (info->flags & DF_STATIC_TLS))
        {
          if (! elf_add_dynamic_entry (info, (bfd_vma) DT_FLAGS, info->flags))
-           return false;
+           return FALSE;
        }
 
       if (info->flags_1)
@@ -3439,7 +3408,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                                | DF_1_NOOPEN);
          if (! elf_add_dynamic_entry (info, (bfd_vma) DT_FLAGS_1,
                                       info->flags_1))
-           return false;
+           return FALSE;
        }
 
       /* Work out the size of the version reference section.  */
@@ -3454,7 +3423,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
        sinfo.vers = elf_tdata (output_bfd)->cverdefs;
        if (sinfo.vers == 0)
          sinfo.vers = 1;
-       sinfo.failed = false;
+       sinfo.failed = FALSE;
 
        elf_link_hash_traverse (elf_hash_table (info),
                                elf_link_find_version_dependencies,
@@ -3487,7 +3456,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
            s->_raw_size = size;
            s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size);
            if (s->contents == NULL)
-             return false;
+             return FALSE;
 
            p = s->contents;
            for (t = elf_tdata (output_bfd)->verref;
@@ -3508,9 +3477,9 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                                            elf_dt_name (t->vn_bfd) != NULL
                                            ? elf_dt_name (t->vn_bfd)
                                            : basename (t->vn_bfd->filename),
-                                           false);
+                                           FALSE);
                if (indx == (bfd_size_type) -1)
-                 return false;
+                 return FALSE;
                t->vn_file = indx;
                t->vn_aux = sizeof (Elf_External_Verneed);
                if (t->vn_nextref == NULL)
@@ -3527,9 +3496,9 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                  {
                    a->vna_hash = bfd_elf_hash (a->vna_nodename);
                    indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
-                                               a->vna_nodename, false);
+                                               a->vna_nodename, FALSE);
                    if (indx == (bfd_size_type) -1)
-                     return false;
+                     return FALSE;
                    a->vna_name = indx;
                    if (a->vna_nextptr == NULL)
                      a->vna_next = 0;
@@ -3546,7 +3515,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
                                         (bfd_vma) 0)
                || ! elf_add_dynamic_entry (info, (bfd_vma) DT_VERNEEDNUM,
                                            (bfd_vma) crefs))
-             return false;
+             return FALSE;
 
            elf_tdata (output_bfd)->cverrefs = crefs;
          }
@@ -3575,10 +3544,10 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
          s->_raw_size = dynsymcount * sizeof (Elf_External_Versym);
          s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size);
          if (s->contents == NULL)
-           return false;
+           return FALSE;
 
          if (! elf_add_dynamic_entry (info, (bfd_vma) DT_VERSYM, (bfd_vma) 0))
-           return false;
+           return FALSE;
        }
 
       /* Set the size of the .dynsym and .hash sections.  We counted
@@ -3592,7 +3561,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
       s->_raw_size = dynsymcount * sizeof (Elf_External_Sym);
       s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
 
       if (dynsymcount != 0)
        {
@@ -3618,7 +3587,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
       s->_raw_size = ((2 + bucketcount + dynsymcount) * hash_entry_size);
       s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
 
       bfd_put (8 * hash_entry_size, output_bfd, (bfd_vma) bucketcount,
               s->contents);
@@ -3636,19 +3605,19 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
 
       for (dtagcount = 0; dtagcount <= info->spare_dynamic_tags; ++dtagcount)
        if (! elf_add_dynamic_entry (info, (bfd_vma) DT_NULL, (bfd_vma) 0))
-         return false;
+         return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* This function is used to adjust offsets into .dynstr for
    dynamic symbols.  This is called via elf_link_hash_traverse.  */
 
-static boolean elf_adjust_dynstr_offsets
-PARAMS ((struct elf_link_hash_entry *, PTR));
+static bfd_boolean elf_adjust_dynstr_offsets
+  PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean
+static bfd_boolean
 elf_adjust_dynstr_offsets (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -3660,13 +3629,13 @@ elf_adjust_dynstr_offsets (h, data)
 
   if (h->dynindx != -1)
     h->dynstr_index = _bfd_elf_strtab_offset (dynstr, h->dynstr_index);
-  return true;
+  return TRUE;
 }
 
 /* Assign string offsets in .dynstr, update all structures referencing
    them.  */
 
-static boolean
+static bfd_boolean
 elf_finalize_dynstr (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -3786,7 +3755,7 @@ elf_finalize_dynstr (output_bfd, info)
       while (need.vn_next);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Fix up the flags for a symbol.  This handles various cases which
@@ -3795,7 +3764,7 @@ elf_finalize_dynstr (output_bfd, info)
    assign_sym_version, which is unnecessary but perhaps more robust in
    the face of future changes.  */
 
-static boolean
+static bfd_boolean
 elf_fix_symbol_flags (h, eif)
      struct elf_link_hash_entry *h;
      struct elf_info_failed *eif;
@@ -3830,8 +3799,8 @@ elf_fix_symbol_flags (h, eif)
        {
          if (! _bfd_elf_link_record_dynamic_symbol (eif->info, h))
            {
-             eif->failed = true;
-             return false;
+             eif->failed = TRUE;
+             return FALSE;
            }
        }
     }
@@ -3884,7 +3853,7 @@ elf_fix_symbol_flags (h, eif)
       && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)
     {
       struct elf_backend_data *bed;
-      boolean force_local;
+      bfd_boolean force_local;
 
       bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj);
 
@@ -3924,14 +3893,14 @@ elf_fix_symbol_flags (h, eif)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Make the backend pick a good value for a dynamic symbol.  This is
    called via elf_link_hash_traverse, and also calls itself
    recursively.  */
 
-static boolean
+static bfd_boolean
 elf_adjust_dynamic_symbol (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -3953,14 +3922,14 @@ elf_adjust_dynamic_symbol (h, data)
 
   /* Ignore indirect symbols.  These are added by the versioning code.  */
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (! is_elf_hash_table (eif->info))
-    return false;
+    return FALSE;
 
   /* Fix the symbol flags.  */
   if (! elf_fix_symbol_flags (h, eif))
-    return false;
+    return FALSE;
 
   /* If this symbol does not require a PLT entry, and it is not
      defined by a dynamic object, or is not referenced by a regular
@@ -3976,13 +3945,13 @@ elf_adjust_dynamic_symbol (h, data)
              && (h->weakdef == NULL || h->weakdef->dynindx == -1))))
     {
       h->plt.offset = (bfd_vma) -1;
-      return true;
+      return TRUE;
     }
 
   /* If we've already adjusted this symbol, don't do it again.  This
      can happen via a recursive call.  */
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_DYNAMIC_ADJUSTED) != 0)
-    return true;
+    return TRUE;
 
   /* Don't look at this symbol again.  Note that we must set this
      after checking the above conditions, because we may look at a
@@ -4027,7 +3996,7 @@ elf_adjust_dynamic_symbol (h, data)
       h->weakdef->elf_link_hash_flags |= ELF_LINK_HASH_REF_REGULAR;
 
       if (! elf_adjust_dynamic_symbol (h->weakdef, (PTR) eif))
-       return false;
+       return FALSE;
     }
 
   /* If a symbol has no type and no size and does not require a PLT
@@ -4046,17 +4015,17 @@ elf_adjust_dynamic_symbol (h, data)
   bed = get_elf_backend_data (dynobj);
   if (! (*bed->elf_backend_adjust_dynamic_symbol) (eif->info, h))
     {
-      eif->failed = true;
-      return false;
+      eif->failed = TRUE;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* This routine is used to export all defined symbols into the dynamic
    symbol table.  It is called via elf_link_hash_traverse.  */
 
-static boolean
+static bfd_boolean
 elf_export_symbol (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -4065,7 +4034,7 @@ elf_export_symbol (h, data)
 
   /* Ignore indirect symbols.  These are added by the versioning code.  */
   if (h->root.type == bfd_link_hash_indirect)
-    return true;
+    return TRUE;
 
   if (h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -4093,7 +4062,7 @@ elf_export_symbol (h, data)
              for (d = t->locals ; d != NULL; d = d->next)
                {
                  if ((*d->match) (d, h->root.root.string))
-                   return true;
+                   return TRUE;
                }
            }
        }
@@ -4103,13 +4072,13 @@ elf_export_symbol (h, data)
        doit:
          if (! _bfd_elf_link_record_dynamic_symbol (eif->info, h))
            {
-             eif->failed = true;
-             return false;
+             eif->failed = TRUE;
+             return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Look through the symbols which are defined in other shared
@@ -4117,7 +4086,7 @@ elf_export_symbol (h, data)
    dependencies.  This will be put into the .gnu.version_r section.
    This function is called via elf_link_hash_traverse.  */
 
-static boolean
+static bfd_boolean
 elf_link_find_version_dependencies (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -4136,7 +4105,7 @@ elf_link_find_version_dependencies (h, data)
       || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0
       || h->dynindx == -1
       || h->verinfo.verdef == NULL)
-    return true;
+    return TRUE;
 
   /* See if we already know about this version.  */
   for (t = elf_tdata (rinfo->output_bfd)->verref; t != NULL; t = t->vn_nextref)
@@ -4146,7 +4115,7 @@ elf_link_find_version_dependencies (h, data)
 
       for (a = t->vn_auxptr; a != NULL; a = a->vna_nextptr)
        if (a->vna_nodename == h->verinfo.verdef->vd_nodename)
-         return true;
+         return TRUE;
 
       break;
     }
@@ -4159,8 +4128,8 @@ elf_link_find_version_dependencies (h, data)
       t = (Elf_Internal_Verneed *) bfd_zalloc (rinfo->output_bfd, amt);
       if (t == NULL)
        {
-         rinfo->failed = true;
-         return false;
+         rinfo->failed = TRUE;
+         return FALSE;
        }
 
       t->vn_bfd = h->verinfo.verdef->vd_bfd;
@@ -4187,7 +4156,7 @@ elf_link_find_version_dependencies (h, data)
 
   t->vn_auxptr = a;
 
-  return true;
+  return TRUE;
 }
 
 /* Figure out appropriate versions for all the symbols.  We may not
@@ -4195,7 +4164,7 @@ elf_link_find_version_dependencies (h, data)
    files, so until that point we don't know which symbols should be
    local.  This function is called via elf_link_hash_traverse.  */
 
-static boolean
+static bfd_boolean
 elf_link_assign_sym_version (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -4214,35 +4183,35 @@ elf_link_assign_sym_version (h, data)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
   /* Fix the symbol flags.  */
-  eif.failed = false;
+  eif.failed = FALSE;
   eif.info = info;
   if (! elf_fix_symbol_flags (h, &eif))
     {
       if (eif.failed)
-       sinfo->failed = true;
-      return false;
+       sinfo->failed = TRUE;
+      return FALSE;
     }
 
   /* We only need version numbers for symbols defined in regular
      objects.  */
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
-    return true;
+    return TRUE;
 
   bed = get_elf_backend_data (sinfo->output_bfd);
   p = strchr (h->root.root.string, ELF_VER_CHR);
   if (p != NULL && h->verinfo.vertree == NULL)
     {
       struct bfd_elf_version_tree *t;
-      boolean hidden;
+      bfd_boolean hidden;
 
-      hidden = true;
+      hidden = TRUE;
 
       /* There are two consecutive ELF_VER_CHR characters if this is
         not a hidden symbol.  */
       ++p;
       if (*p == ELF_VER_CHR)
        {
-         hidden = false;
+         hidden = FALSE;
          ++p;
        }
 
@@ -4251,7 +4220,7 @@ elf_link_assign_sym_version (h, data)
        {
          if (hidden)
            h->elf_link_hash_flags |= ELF_LINK_HIDDEN;
-         return true;
+         return TRUE;
        }
 
       /* Look for the version.  If we find it, it is no longer weak.  */
@@ -4266,14 +4235,14 @@ elf_link_assign_sym_version (h, data)
              len = p - h->root.root.string;
              alc = bfd_malloc ((bfd_size_type) len);
              if (alc == NULL)
-               return false;
+               return FALSE;
              memcpy (alc, h->root.root.string, len - 1);
              alc[len - 1] = '\0';
              if (alc[len - 2] == ELF_VER_CHR)
                alc[len - 2] = '\0';
 
              h->verinfo.vertree = t;
-             t->used = true;
+             t->used = TRUE;
              d = NULL;
 
              if (t->globals != NULL)
@@ -4295,7 +4264,7 @@ elf_link_assign_sym_version (h, data)
                              && info->shared
                              && ! info->export_dynamic)
                            {
-                             (*bed->elf_backend_hide_symbol) (info, h, true);
+                             (*bed->elf_backend_hide_symbol) (info, h, TRUE);
                            }
 
                          break;
@@ -4318,15 +4287,15 @@ elf_link_assign_sym_version (h, data)
          /* If we aren't going to export this symbol, we don't need
             to worry about it.  */
          if (h->dynindx == -1)
-           return true;
+           return TRUE;
 
          amt = sizeof *t;
          t = ((struct bfd_elf_version_tree *)
               bfd_alloc (sinfo->output_bfd, amt));
          if (t == NULL)
            {
-             sinfo->failed = true;
-             return false;
+             sinfo->failed = TRUE;
+             return FALSE;
            }
 
          t->next = NULL;
@@ -4335,7 +4304,7 @@ elf_link_assign_sym_version (h, data)
          t->locals = NULL;
          t->deps = NULL;
          t->name_indx = (unsigned int) -1;
-         t->used = true;
+         t->used = TRUE;
 
          version_index = 1;
          /* Don't count anonymous version tag.  */
@@ -4357,8 +4326,8 @@ elf_link_assign_sym_version (h, data)
            (_("%s: undefined versioned symbol name %s"),
             bfd_get_filename (sinfo->output_bfd), h->root.root.string);
          bfd_set_error (bfd_error_bad_value);
-         sinfo->failed = true;
-         return false;
+         sinfo->failed = TRUE;
+         return FALSE;
        }
 
       if (hidden)
@@ -4381,15 +4350,15 @@ elf_link_assign_sym_version (h, data)
        {
          if (t->globals != NULL)
            {
-             boolean matched;
+             bfd_boolean matched;
 
-             matched = false;
+             matched = FALSE;
              for (d = t->globals; d != NULL; d = d->next)
                {
                  if ((*d->match) (d, h->root.root.string))
                    {
                      if (d->symver)
-                       matched = true;
+                       matched = TRUE;
                      else
                        {
                          /* There is a version without definition.  Make
@@ -4408,7 +4377,7 @@ elf_link_assign_sym_version (h, data)
              else if (matched)
                /* There is no undefined version for this symbol. Hide the
                   default one.  */
-               (*bed->elf_backend_hide_symbol) (info, h, true);
+               (*bed->elf_backend_hide_symbol) (info, h, TRUE);
            }
 
          if (t->locals != NULL)
@@ -4438,12 +4407,12 @@ elf_link_assign_sym_version (h, data)
              && info->shared
              && ! info->export_dynamic)
            {
-             (*bed->elf_backend_hide_symbol) (info, h, true);
+             (*bed->elf_backend_hide_symbol) (info, h, TRUE);
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Final phase of ELF linker.  */
@@ -4498,20 +4467,20 @@ struct elf_final_link_info
   size_t shndxbuf_size;
 };
 
-static boolean elf_link_output_sym
+static bfd_boolean elf_link_output_sym
   PARAMS ((struct elf_final_link_info *, const char *,
           Elf_Internal_Sym *, asection *));
-static boolean elf_link_flush_output_syms
+static bfd_boolean elf_link_flush_output_syms
   PARAMS ((struct elf_final_link_info *));
-static boolean elf_link_output_extsym
+static bfd_boolean elf_link_output_extsym
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_link_sec_merge_syms
+static bfd_boolean elf_link_sec_merge_syms
   PARAMS ((struct elf_link_hash_entry *, PTR));
-static boolean elf_link_check_versioned_symbol
+static bfd_boolean elf_link_check_versioned_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static boolean elf_link_input_bfd
+static bfd_boolean elf_link_input_bfd
   PARAMS ((struct elf_final_link_info *, bfd *));
-static boolean elf_reloc_link_order
+static bfd_boolean elf_reloc_link_order
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           struct bfd_link_order *));
 
@@ -4519,15 +4488,15 @@ static boolean elf_reloc_link_order
 
 struct elf_outext_info
 {
-  boolean failed;
-  boolean localsyms;
+  bfd_boolean failed;
+  bfd_boolean localsyms;
   struct elf_final_link_info *finfo;
 };
 
 /* Compute the size of, and allocate space for, REL_HDR which is the
    section header for a section containing relocations for O.  */
 
-static boolean
+static bfd_boolean
 elf_link_size_reloc_section (abfd, rel_hdr, o)
      bfd *abfd;
      Elf_Internal_Shdr *rel_hdr;
@@ -4555,7 +4524,7 @@ elf_link_size_reloc_section (abfd, rel_hdr, o)
      we zero the allocated space.  */
   rel_hdr->contents = (PTR) bfd_zalloc (abfd, rel_hdr->sh_size);
   if (rel_hdr->contents == NULL && rel_hdr->sh_size != 0)
-    return false;
+    return FALSE;
 
   /* We only allocate one set of hash entries, so we only do it the
      first time we are called.  */
@@ -4568,12 +4537,12 @@ elf_link_size_reloc_section (abfd, rel_hdr, o)
           bfd_zmalloc (num_rel_hashes
                        * sizeof (struct elf_link_hash_entry *)));
       if (p == NULL)
-       return false;
+       return FALSE;
 
       elf_section_data (o)->rel_hashes = p;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* When performing a relocateable link, the input relocations are
@@ -4590,91 +4559,51 @@ elf_link_adjust_relocs (abfd, rel_hdr, count, rel_hash)
 {
   unsigned int i;
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  Elf_Internal_Rel *irel;
-  Elf_Internal_Rela *irela;
-  bfd_size_type amt = sizeof (Elf_Internal_Rel) * bed->s->int_rels_per_ext_rel;
+  bfd_byte *erela;
+  void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+  void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
 
-  irel = (Elf_Internal_Rel *) bfd_zmalloc (amt);
-  if (irel == NULL)
+  if (rel_hdr->sh_entsize == sizeof (Elf_External_Rel))
     {
-      (*_bfd_error_handler) (_("Error: out of memory"));
-      abort ();
+      swap_in = bed->s->swap_reloc_in;
+      swap_out = bed->s->swap_reloc_out;
     }
-
-  amt = sizeof (Elf_Internal_Rela) * bed->s->int_rels_per_ext_rel;
-  irela = (Elf_Internal_Rela *) bfd_zmalloc (amt);
-  if (irela == NULL)
+  else if (rel_hdr->sh_entsize == sizeof (Elf_External_Rela))
     {
-      (*_bfd_error_handler) (_("Error: out of memory"));
-      abort ();
+      swap_in = bed->s->swap_reloca_in;
+      swap_out = bed->s->swap_reloca_out;
     }
+  else
+    abort ();
 
-  for (i = 0; i < count; i++, rel_hash++)
+  if (bed->s->int_rels_per_ext_rel > MAX_INT_RELS_PER_EXT_REL)
+    abort ();
+
+  erela = rel_hdr->contents;
+  for (i = 0; i < count; i++, rel_hash++, erela += rel_hdr->sh_entsize)
     {
+      Elf_Internal_Rela irela[MAX_INT_RELS_PER_EXT_REL];
+      unsigned int j;
+
       if (*rel_hash == NULL)
        continue;
 
       BFD_ASSERT ((*rel_hash)->indx >= 0);
 
-      if (rel_hdr->sh_entsize == sizeof (Elf_External_Rel))
-       {
-         Elf_External_Rel *erel;
-         unsigned int j;
-
-         erel = (Elf_External_Rel *) rel_hdr->contents + i;
-         if (bed->s->swap_reloc_in)
-           (*bed->s->swap_reloc_in) (abfd, (bfd_byte *) erel, irel);
-         else
-           elf_swap_reloc_in (abfd, erel, irel);
-
-         for (j = 0; j < bed->s->int_rels_per_ext_rel; j++)
-           irel[j].r_info = ELF_R_INFO ((*rel_hash)->indx,
-                                        ELF_R_TYPE (irel[j].r_info));
-
-         if (bed->s->swap_reloc_out)
-           (*bed->s->swap_reloc_out) (abfd, irel, (bfd_byte *) erel);
-         else
-           elf_swap_reloc_out (abfd, irel, erel);
-       }
-      else
-       {
-         Elf_External_Rela *erela;
-         unsigned int j;
-
-         BFD_ASSERT (rel_hdr->sh_entsize
-                     == sizeof (Elf_External_Rela));
-
-         erela = (Elf_External_Rela *) rel_hdr->contents + i;
-         if (bed->s->swap_reloca_in)
-           (*bed->s->swap_reloca_in) (abfd, (bfd_byte *) erela, irela);
-         else
-           elf_swap_reloca_in (abfd, erela, irela);
-
-         for (j = 0; j < bed->s->int_rels_per_ext_rel; j++)
-           irela[j].r_info = ELF_R_INFO ((*rel_hash)->indx,
-                                         ELF_R_TYPE (irela[j].r_info));
-
-         if (bed->s->swap_reloca_out)
-           (*bed->s->swap_reloca_out) (abfd, irela, (bfd_byte *) erela);
-         else
-           elf_swap_reloca_out (abfd, irela, erela);
-       }
+      (*swap_in) (abfd, erela, irela);
+      for (j = 0; j < bed->s->int_rels_per_ext_rel; j++)
+       irela[j].r_info = ELF_R_INFO ((*rel_hash)->indx,
+                                     ELF_R_TYPE (irela[j].r_info));
+      (*swap_out) (abfd, irela, erela);
     }
-
-  free (irel);
-  free (irela);
 }
 
 struct elf_link_sort_rela
 {
   bfd_vma offset;
   enum elf_reloc_type_class type;
-  union
-  {
-    /* We use these as arrays of size int_rels_per_ext_rel.  */
-    Elf_Internal_Rel rel[1];
-    Elf_Internal_Rela rela[1];
-  } u;
+  /* We use this as an array of size int_rels_per_ext_rel.  */
+  Elf_Internal_Rela rela[1];
 };
 
 static int
@@ -4693,13 +4622,13 @@ elf_link_sort_cmp1 (A, B)
     return 1;
   if (relativea > relativeb)
     return -1;
-  if (ELF_R_SYM (a->u.rel->r_info) < ELF_R_SYM (b->u.rel->r_info))
+  if (ELF_R_SYM (a->rela->r_info) < ELF_R_SYM (b->rela->r_info))
     return -1;
-  if (ELF_R_SYM (a->u.rel->r_info) > ELF_R_SYM (b->u.rel->r_info))
+  if (ELF_R_SYM (a->rela->r_info) > ELF_R_SYM (b->rela->r_info))
     return 1;
-  if (a->u.rel->r_offset < b->u.rel->r_offset)
+  if (a->rela->r_offset < b->rela->r_offset)
     return -1;
-  if (a->u.rel->r_offset > b->u.rel->r_offset)
+  if (a->rela->r_offset > b->rela->r_offset)
     return 1;
   return 0;
 }
@@ -4723,9 +4652,9 @@ elf_link_sort_cmp2 (A, B)
     return -1;
   if (copya > copyb)
     return 1;
-  if (a->u.rel->r_offset < b->u.rel->r_offset)
+  if (a->rela->r_offset < b->rela->r_offset)
     return -1;
-  if (a->u.rel->r_offset > b->u.rel->r_offset)
+  if (a->rela->r_offset > b->rela->r_offset)
     return 1;
   return 0;
 }
@@ -4738,12 +4667,14 @@ elf_link_sort_relocs (abfd, info, psec)
 {
   bfd *dynobj = elf_hash_table (info)->dynobj;
   asection *reldyn, *o;
-  boolean rel = false;
   bfd_size_type count, size;
-  size_t i, j, ret;
-  struct elf_link_sort_rela *rela;
+  size_t i, ret, sort_elt, ext_size;
+  bfd_byte *sort, *s_non_relative, *p;
+  struct elf_link_sort_rela *sq;
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
   int i2e = bed->s->int_rels_per_ext_rel;
+  void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+  void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
 
   reldyn = bfd_get_section_by_name (abfd, ".rela.dyn");
   if (reldyn == NULL || reldyn->_raw_size == 0)
@@ -4751,11 +4682,17 @@ elf_link_sort_relocs (abfd, info, psec)
       reldyn = bfd_get_section_by_name (abfd, ".rel.dyn");
       if (reldyn == NULL || reldyn->_raw_size == 0)
        return 0;
-      rel = true;
-      count = reldyn->_raw_size / sizeof (Elf_External_Rel);
+      ext_size = sizeof (Elf_External_Rel);
+      swap_in = bed->s->swap_reloc_in;
+      swap_out = bed->s->swap_reloc_out;
     }
   else
-    count = reldyn->_raw_size / sizeof (Elf_External_Rela);
+    {
+      ext_size = sizeof (Elf_External_Rela);
+      swap_in = bed->s->swap_reloca_in;
+      swap_out = bed->s->swap_reloca_out;
+    }
+  count = reldyn->_raw_size / ext_size;
 
   size = 0;
   for (o = dynobj->sections; o != NULL; o = o->next)
@@ -4767,24 +4704,10 @@ elf_link_sort_relocs (abfd, info, psec)
   if (size != reldyn->_raw_size)
     return 0;
 
-  /* We waste some memory here when N = i2e is greater than 1, since
-     we allocate space for N * sizeof (*rela) where sizeof (*rela) +
-     (N - 1) * sizeof (Elf_Internal_Rel/Rela) would do.  Also, we use
-     rela[k] only when k is a multiple of N, and then we index the
-     array within the union, such that rela[k].u.rel[i], i < N, is the
-     (i+1)th internal relocation corresponding to the (k/N)th external
-     relocation.  This is done such that the relocation swap-in and
-     swap-out functions can gen pointers to arrays of internal
-     relocations that form a single external relocation.
-
-     If C permitted arrays of structures with dynamic sizes, we could
-     do better, but trying to avoid wasting space at the end of the
-     chunk from rela[k] to rela[k+N-1] would require us to allocate a
-     separate array of pointers and since most ports have N == 1, this
-     would be more wasteful.  */
-  rela = (struct elf_link_sort_rela *) bfd_zmalloc
-    (sizeof (*rela) * count * i2e);
-  if (rela == NULL)
+  sort_elt = (sizeof (struct elf_link_sort_rela)
+             + (i2e - 1) * sizeof (Elf_Internal_Rela));
+  sort = bfd_zmalloc (sort_elt * count);
+  if (sort == NULL)
     {
       (*info->callbacks->warning)
        (info, _("Not enough memory to sort relocations"), 0, abfd, 0,
@@ -4797,116 +4720,75 @@ elf_link_sort_relocs (abfd, info, psec)
        == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED)
        && o->output_section == reldyn)
       {
-       if (rel)
-         {
-           Elf_External_Rel *erel, *erelend;
-           struct elf_link_sort_rela *s;
+       bfd_byte *erel, *erelend;
 
-           erel = (Elf_External_Rel *) o->contents;
-           erelend = (Elf_External_Rel *) (o->contents + o->_raw_size);
-           s = rela + (o->output_offset / sizeof (Elf_External_Rel) * i2e);
-           for (; erel < erelend; erel++, s += i2e)
-             {
-               if (bed->s->swap_reloc_in)
-                 (*bed->s->swap_reloc_in) (abfd, (bfd_byte *) erel,
-                                           s->u.rel);
-               else
-                 elf_swap_reloc_in (abfd, erel, s->u.rel);
-
-               s->type = (*bed->elf_backend_reloc_type_class) (s->u.rela);
-             }
-         }
-       else
+       erel = o->contents;
+       erelend = o->contents + o->_raw_size;
+       p = sort + o->output_offset / ext_size * sort_elt;
+       while (erel < erelend)
          {
-           Elf_External_Rela *erela, *erelaend;
-           struct elf_link_sort_rela *s;
-
-           erela = (Elf_External_Rela *) o->contents;
-           erelaend = (Elf_External_Rela *) (o->contents + o->_raw_size);
-           s = rela + (o->output_offset / sizeof (Elf_External_Rela) * i2e);
-           for (; erela < erelaend; erela++, s += i2e)
-             {
-               if (bed->s->swap_reloca_in)
-                 (*bed->s->swap_reloca_in) (dynobj, (bfd_byte *) erela,
-                                            s->u.rela);
-               else
-                 elf_swap_reloca_in (dynobj, erela, s->u.rela);
-
-               s->type = (*bed->elf_backend_reloc_type_class) (s->u.rela);
-             }
+           struct elf_link_sort_rela *s = (struct elf_link_sort_rela *) p;
+           (*swap_in) (abfd, erel, s->rela);
+           s->type = (*bed->elf_backend_reloc_type_class) (s->rela);
+           p += sort_elt;
+           erel += ext_size;
          }
       }
 
-  qsort (rela, (size_t) count, sizeof (*rela) * i2e, elf_link_sort_cmp1);
-  for (ret = 0; ret < count * i2e && rela[ret].type == reloc_class_relative;
-       ret += i2e)
-    ;
-  for (i = ret, j = ret; i < count * i2e; i += i2e)
+  qsort (sort, (size_t) count, sort_elt, elf_link_sort_cmp1);
+
+  for (i = 0, p = sort; i < count; i++, p += sort_elt)
+    {
+      struct elf_link_sort_rela *s = (struct elf_link_sort_rela *) p;
+      if (s->type != reloc_class_relative)
+       break;
+    }
+  ret = i;
+  s_non_relative = p;
+
+  sq = (struct elf_link_sort_rela *) s_non_relative;
+  for (; i < count; i++, p += sort_elt)
     {
-      if (ELF_R_SYM (rela[i].u.rel->r_info)
-         != ELF_R_SYM (rela[j].u.rel->r_info))
-       j = i;
-      rela[i].offset = rela[j].u.rel->r_offset;
+      struct elf_link_sort_rela *sp = (struct elf_link_sort_rela *) p;
+      if (ELF_R_SYM (sp->rela->r_info) != ELF_R_SYM (sq->rela->r_info))
+       sq = sp;
+      sp->offset = sq->rela->r_offset;
     }
-  ret /= i2e;
-  qsort (rela + ret, (size_t) count - ret,
-        sizeof (*rela) * i2e, elf_link_sort_cmp2);
+
+  qsort (s_non_relative, (size_t) count - ret, sort_elt, elf_link_sort_cmp2);
 
   for (o = dynobj->sections; o != NULL; o = o->next)
     if ((o->flags & (SEC_HAS_CONTENTS|SEC_LINKER_CREATED))
        == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED)
        && o->output_section == reldyn)
       {
-       if (rel)
-         {
-           Elf_External_Rel *erel, *erelend;
-           struct elf_link_sort_rela *s;
+       bfd_byte *erel, *erelend;
 
-           erel = (Elf_External_Rel *) o->contents;
-           erelend = (Elf_External_Rel *) (o->contents + o->_raw_size);
-           s = rela + (o->output_offset / sizeof (Elf_External_Rel) * i2e);
-           for (; erel < erelend; erel++, s += i2e)
-             {
-               if (bed->s->swap_reloc_out)
-                 (*bed->s->swap_reloc_out) (abfd, s->u.rel,
-                                            (bfd_byte *) erel);
-               else
-                 elf_swap_reloc_out (abfd, s->u.rel, erel);
-             }
-         }
-       else
+       erel = o->contents;
+       erelend = o->contents + o->_raw_size;
+       p = sort + o->output_offset / ext_size * sort_elt;
+       while (erel < erelend)
          {
-           Elf_External_Rela *erela, *erelaend;
-           struct elf_link_sort_rela *s;
-
-           erela = (Elf_External_Rela *) o->contents;
-           erelaend = (Elf_External_Rela *) (o->contents + o->_raw_size);
-           s = rela + (o->output_offset / sizeof (Elf_External_Rela) * i2e);
-           for (; erela < erelaend; erela++, s += i2e)
-             {
-               if (bed->s->swap_reloca_out)
-                 (*bed->s->swap_reloca_out) (dynobj, s->u.rela,
-                                             (bfd_byte *) erela);
-               else
-                 elf_swap_reloca_out (dynobj, s->u.rela, erela);
-             }
+           struct elf_link_sort_rela *s = (struct elf_link_sort_rela *) p;
+           (*swap_out) (abfd, s->rela, erel);
+           p += sort_elt;
+           erel += ext_size;
          }
       }
 
-  free (rela);
   *psec = reldyn;
   return ret;
 }
 
 /* Do the final step of an ELF link.  */
 
-boolean
+bfd_boolean
 elf_bfd_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
-  boolean dynamic;
-  boolean emit_relocs;
+  bfd_boolean dynamic;
+  bfd_boolean emit_relocs;
   bfd *dynobj;
   struct elf_final_link_info finfo;
   register asection *o;
@@ -4925,13 +4807,13 @@ elf_bfd_final_link (abfd, info)
   Elf_Internal_Shdr *symstrtab_hdr;
   struct elf_backend_data *bed = get_elf_backend_data (abfd);
   struct elf_outext_info eoinfo;
-  boolean merged;
+  bfd_boolean merged;
   size_t relativecount = 0;
   asection *reldyn = 0;
   bfd_size_type amt;
 
   if (! is_elf_hash_table (info))
-    return false;
+    return FALSE;
 
   if (info->shared)
     abfd->flags |= DYNAMIC;
@@ -4947,7 +4829,7 @@ elf_bfd_final_link (abfd, info)
   finfo.output_bfd = abfd;
   finfo.symstrtab = elf_stringtab_init ();
   if (finfo.symstrtab == NULL)
-    return false;
+    return FALSE;
 
   if (! dynamic)
     {
@@ -4993,7 +4875,7 @@ elf_bfd_final_link (abfd, info)
   max_internal_reloc_count = 0;
   max_sym_count = 0;
   max_sym_shndx_count = 0;
-  merged = false;
+  merged = FALSE;
   for (o = abfd->sections; o != (asection *) NULL; o = o->next)
     {
       o->reloc_count = 0;
@@ -5013,10 +4895,10 @@ elf_bfd_final_link (abfd, info)
                 link.  This will normally be every section.  We need
                 to do this so that we can identify any sections which
                 the linker has decided to not include.  */
-             sec->linker_mark = true;
+             sec->linker_mark = TRUE;
 
              if (sec->flags & SEC_MERGE)
-               merged = true;
+               merged = TRUE;
 
              if (info->relocateable || info->emitrelocations)
                o->reloc_count += sec->reloc_count;
@@ -5204,7 +5086,7 @@ elf_bfd_final_link (abfd, info)
   symtab_hdr->sh_addralign = bed->s->file_align;
 
   off = elf_tdata (abfd)->next_file_pos;
-  off = _bfd_elf_assign_file_position_for_section (symtab_hdr, off, true);
+  off = _bfd_elf_assign_file_position_for_section (symtab_hdr, off, TRUE);
 
   /* Note that at this point elf_tdata (abfd)->next_file_pos is
      incorrect.  We do not yet know the size of the .symtab section.
@@ -5403,7 +5285,7 @@ elf_bfd_final_link (abfd, info)
      know how bad the memory loss will be.  */
 
   for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
-    sub->output_has_begun = false;
+    sub->output_has_begun = FALSE;
   for (o = abfd->sections; o != NULL; o = o->next)
     {
       for (p = o->link_order_head; p != NULL; p = p->next)
@@ -5417,7 +5299,7 @@ elf_bfd_final_link (abfd, info)
                {
                  if (! elf_link_input_bfd (&finfo, sub))
                    goto error_return;
-                 sub->output_has_begun = true;
+                 sub->output_has_begun = TRUE;
                }
            }
          else if (p->type == bfd_section_reloc_link_order
@@ -5440,13 +5322,13 @@ elf_bfd_final_link (abfd, info)
      prior to any global symbols.  FIXME: We should only do this if
      some global symbols were, in fact, converted to become local.
      FIXME: Will this work correctly with the Irix 5 linker?  */
-  eoinfo.failed = false;
+  eoinfo.failed = FALSE;
   eoinfo.finfo = &finfo;
-  eoinfo.localsyms = true;
+  eoinfo.localsyms = TRUE;
   elf_link_hash_traverse (elf_hash_table (info), elf_link_output_extsym,
                          (PTR) &eoinfo);
   if (eoinfo.failed)
-    return false;
+    return FALSE;
 
   /* That wrote out all the local symbols.  Finish up the symbol table
      with the global symbols. Even if we want to strip everything we
@@ -5534,30 +5416,29 @@ elf_bfd_final_link (abfd, info)
     }
 
   /* We get the global symbols from the hash table.  */
-  eoinfo.failed = false;
-  eoinfo.localsyms = false;
+  eoinfo.failed = FALSE;
+  eoinfo.localsyms = FALSE;
   eoinfo.finfo = &finfo;
   elf_link_hash_traverse (elf_hash_table (info), elf_link_output_extsym,
                          (PTR) &eoinfo);
   if (eoinfo.failed)
-    return false;
+    return FALSE;
 
   /* If backend needs to output some symbols not present in the hash
      table, do it now.  */
   if (bed->elf_backend_output_arch_syms)
     {
-      typedef boolean (*out_sym_func) PARAMS ((PTR, const char *,
-                                              Elf_Internal_Sym *,
-                                              asection *));
+      typedef bfd_boolean (*out_sym_func)
+       PARAMS ((PTR, const char *, Elf_Internal_Sym *, asection *));
 
       if (! ((*bed->elf_backend_output_arch_syms)
             (abfd, info, (PTR) &finfo, (out_sym_func) elf_link_output_sym)))
-       return false;
+       return FALSE;
     }
 
   /* Flush all symbols to the file.  */
   if (! elf_link_flush_output_syms (&finfo))
-    return false;
+    return FALSE;
 
   /* Now we know the size of the symtab section.  */
   off += symtab_hdr->sh_size;
@@ -5572,11 +5453,11 @@ elf_bfd_final_link (abfd, info)
       symtab_shndx_hdr->sh_size = amt;
 
       off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr,
-                                                      off, true);
+                                                      off, TRUE);
 
       if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0
          || (bfd_bwrite ((PTR) finfo.symshndxbuf, amt, abfd) != amt))
-       return false;
+       return FALSE;
     }
 
 
@@ -5594,14 +5475,14 @@ elf_bfd_final_link (abfd, info)
   /* sh_offset is set just below.  */
   symstrtab_hdr->sh_addralign = 1;
 
-  off = _bfd_elf_assign_file_position_for_section (symstrtab_hdr, off, true);
+  off = _bfd_elf_assign_file_position_for_section (symstrtab_hdr, off, TRUE);
   elf_tdata (abfd)->next_file_pos = off;
 
   if (bfd_get_symcount (abfd) > 0)
     {
       if (bfd_seek (abfd, symstrtab_hdr->sh_offset, SEEK_SET) != 0
          || ! _bfd_stringtab_emit (abfd, finfo.symstrtab))
-       return false;
+       return FALSE;
     }
 
   /* Adjust the relocs to have the correct symbol indices.  */
@@ -5678,7 +5559,7 @@ elf_bfd_final_link (abfd, info)
                struct elf_link_hash_entry *h;
 
                h = elf_link_hash_lookup (elf_hash_table (info), name,
-                                         false, false, true);
+                                         FALSE, FALSE, TRUE);
                if (h != NULL
                    && (h->root.type == bfd_link_hash_defined
                        || h->root.type == bfd_link_hash_defweak))
@@ -5840,7 +5721,7 @@ elf_bfd_final_link (abfd, info)
 
   if (info->relocateable)
     {
-      boolean failed = false;
+      bfd_boolean failed = FALSE;
 
       bfd_map_over_sections (abfd, bfd_elf_set_group_contents, &failed);
       if (failed)
@@ -5889,9 +5770,9 @@ elf_bfd_final_link (abfd, info)
        free (elf_section_data (o)->rel_hashes);
     }
 
-  elf_tdata (abfd)->linker = true;
+  elf_tdata (abfd)->linker = TRUE;
 
-  return true;
+  return TRUE;
 
  error_return:
   if (finfo.symstrtab != NULL)
@@ -5923,12 +5804,12 @@ elf_bfd_final_link (abfd, info)
        free (elf_section_data (o)->rel_hashes);
     }
 
-  return false;
+  return FALSE;
 }
 
 /* Add a symbol to the output symbol table.  */
 
-static boolean
+static bfd_boolean
 elf_link_output_sym (finfo, name, elfsym, input_sec)
      struct elf_final_link_info *finfo;
      const char *name;
@@ -5937,12 +5818,9 @@ elf_link_output_sym (finfo, name, elfsym, input_sec)
 {
   Elf_External_Sym *dest;
   Elf_External_Sym_Shndx *destshndx;
-
-  boolean (*output_symbol_hook) PARAMS ((bfd *,
-                                        struct bfd_link_info *info,
-                                        const char *,
-                                        Elf_Internal_Sym *,
-                                        asection *));
+  bfd_boolean (*output_symbol_hook)
+    PARAMS ((bfd *, struct bfd_link_info *info, const char *,
+            Elf_Internal_Sym *, asection *));
 
   output_symbol_hook = get_elf_backend_data (finfo->output_bfd)->
     elf_backend_link_output_symbol_hook;
@@ -5950,7 +5828,7 @@ elf_link_output_sym (finfo, name, elfsym, input_sec)
     {
       if (! ((*output_symbol_hook)
             (finfo->output_bfd, finfo->info, name, elfsym, input_sec)))
-       return false;
+       return FALSE;
     }
 
   if (name == (const char *) NULL || *name == '\0')
@@ -5960,15 +5838,15 @@ elf_link_output_sym (finfo, name, elfsym, input_sec)
   else
     {
       elfsym->st_name = (unsigned long) _bfd_stringtab_add (finfo->symstrtab,
-                                                           name, true, false);
+                                                           name, TRUE, FALSE);
       if (elfsym->st_name == (unsigned long) -1)
-       return false;
+       return FALSE;
     }
 
   if (finfo->symbuf_count >= finfo->symbuf_size)
     {
       if (! elf_link_flush_output_syms (finfo))
-       return false;
+       return FALSE;
     }
 
   dest = finfo->symbuf + finfo->symbuf_count;
@@ -5982,7 +5860,7 @@ elf_link_output_sym (finfo, name, elfsym, input_sec)
          amt = finfo->shndxbuf_size * sizeof (Elf_External_Sym_Shndx);
          finfo->symshndxbuf = destshndx = bfd_realloc (destshndx, amt * 2);
          if (destshndx == NULL)
-           return false;
+           return FALSE;
          memset ((char *) destshndx + amt, 0, amt);
          finfo->shndxbuf_size *= 2;
        }
@@ -5993,12 +5871,12 @@ elf_link_output_sym (finfo, name, elfsym, input_sec)
   finfo->symbuf_count += 1;
   bfd_get_symcount (finfo->output_bfd) += 1;
 
-  return true;
+  return TRUE;
 }
 
 /* Flush the output symbols to the file.  */
 
-static boolean
+static bfd_boolean
 elf_link_flush_output_syms (finfo)
      struct elf_final_link_info *finfo;
 {
@@ -6013,19 +5891,19 @@ elf_link_flush_output_syms (finfo)
       amt = finfo->symbuf_count * sizeof (Elf_External_Sym);
       if (bfd_seek (finfo->output_bfd, pos, SEEK_SET) != 0
          || bfd_bwrite ((PTR) finfo->symbuf, amt, finfo->output_bfd) != amt)
-       return false;
+       return FALSE;
 
       hdr->sh_size += amt;
       finfo->symbuf_count = 0;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust all external symbols pointing into SEC_MERGE sections
    to reflect the object merging within the sections.  */
 
-static boolean
+static bfd_boolean
 elf_link_sec_merge_syms (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -6049,14 +5927,14 @@ elf_link_sec_merge_syms (h, data)
                                    h->root.u.def.value, (bfd_vma) 0);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* For DSOs loaded in via a DT_NEEDED entry, emulate ld.so in
    allowing an unsatisfied unversioned symbol in the DSO to match a
    versioned symbol that would normally require an explicit version.  */
 
-static boolean
+static bfd_boolean
 elf_link_check_versioned_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -6067,7 +5945,7 @@ elf_link_check_versioned_symbol (info, h)
   if ((undef_bfd->flags & DYNAMIC) == 0
       || info->hash->creator->flavour != bfd_target_elf_flavour
       || elf_dt_soname (h->root.u.undef.abfd) == NULL)
-    return false;
+    return FALSE;
 
   for (loaded = elf_hash_table (info)->loaded;
        loaded != NULL;
@@ -6113,7 +5991,7 @@ elf_link_check_versioned_symbol (info, h)
       isymbuf = bfd_elf_get_elf_syms (input, hdr, extsymcount, extsymoff,
                                      NULL, NULL, NULL);
       if (isymbuf == NULL)
-       return false;
+       return FALSE;
 
       /* Read in any version definitions.  */
       versymhdr = &elf_tdata (input)->dynversym_hdr;
@@ -6128,7 +6006,7 @@ elf_link_check_versioned_symbol (info, h)
          free (extversym);
        error_ret:
          free (isymbuf);
-         return false;
+         return FALSE;
        }
 
       ever = extversym + extsymoff;
@@ -6162,7 +6040,7 @@ elf_link_check_versioned_symbol (info, h)
              /* This is the oldest (default) sym.  We can use it.  */
              free (extversym);
              free (isymbuf);
-             return true;
+             return TRUE;
            }
        }
 
@@ -6170,7 +6048,7 @@ elf_link_check_versioned_symbol (info, h)
       free (isymbuf);
     }
 
-  return false;
+  return FALSE;
 }
 
 /* Add an external symbol to the symbol table.  This is called from
@@ -6180,14 +6058,14 @@ elf_link_check_versioned_symbol (info, h)
    script.  The second time we output the symbols that are still
    global symbols.  */
 
-static boolean
+static bfd_boolean
 elf_link_output_extsym (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
 {
   struct elf_outext_info *eoinfo = (struct elf_outext_info *) data;
   struct elf_final_link_info *finfo = eoinfo->finfo;
-  boolean strip;
+  bfd_boolean strip;
   Elf_Internal_Sym sym;
   asection *input_sec;
 
@@ -6195,19 +6073,19 @@ elf_link_output_extsym (h, data)
     {
       h = (struct elf_link_hash_entry *) h->root.u.i.link;
       if (h->root.type == bfd_link_hash_new)
-       return true;
+       return TRUE;
     }
 
   /* Decide whether to output this symbol in this pass.  */
   if (eoinfo->localsyms)
     {
       if ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
-       return true;
+       return TRUE;
     }
   else
     {
       if ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)
-       return true;
+       return TRUE;
     }
 
   /* If we are not creating a shared library, and this symbol is
@@ -6227,10 +6105,10 @@ elf_link_output_extsym (h, data)
     {
       if (! ((*finfo->info->callbacks->undefined_symbol)
             (finfo->info, h->root.root.string, h->root.u.undef.abfd,
-             (asection *) NULL, (bfd_vma) 0, true)))
+             (asection *) NULL, (bfd_vma) 0, TRUE)))
        {
-         eoinfo->failed = true;
-         return false;
+         eoinfo->failed = TRUE;
+         return FALSE;
        }
     }
 
@@ -6239,27 +6117,32 @@ elf_link_output_extsym (h, data)
      h->indx is set to -2, the symbol is used by a reloc and we must
      output it.  */
   if (h->indx == -2)
-    strip = false;
+    strip = FALSE;
   else if (((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
            || (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0)
           && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
           && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0)
-    strip = true;
-  else if (finfo->info->strip == strip_all
-          || (finfo->info->strip == strip_some
-              && bfd_hash_lookup (finfo->info->keep_hash,
-                                  h->root.root.string,
-                                  false, false) == NULL))
-    strip = true;
+    strip = TRUE;
+  else if (finfo->info->strip == strip_all)
+    strip = TRUE;
+  else if (finfo->info->strip == strip_some
+          && bfd_hash_lookup (finfo->info->keep_hash,
+                              h->root.root.string, FALSE, FALSE) == NULL)
+    strip = TRUE;
+  else if (finfo->info->strip_discarded
+          && (h->root.type == bfd_link_hash_defined
+              || h->root.type == bfd_link_hash_defweak)
+          && elf_discarded_section (h->root.u.def.section))
+    strip = TRUE;
   else
-    strip = false;
+    strip = FALSE;
 
   /* If we're stripping it, and it's not a dynamic symbol, there's
      nothing else to do unless it is a forced local symbol.  */
   if (strip
       && h->dynindx == -1
       && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
-    return true;
+    return TRUE;
 
   sym.st_value = 0;
   sym.st_size = h->size;
@@ -6278,7 +6161,7 @@ elf_link_output_extsym (h, data)
     case bfd_link_hash_new:
     case bfd_link_hash_warning:
       abort ();
-      return false;
+      return FALSE;
 
     case bfd_link_hash_undefined:
     case bfd_link_hash_undefweak:
@@ -6302,8 +6185,8 @@ elf_link_output_extsym (h, data)
                   bfd_get_filename (finfo->output_bfd),
                   input_sec->output_section->name,
                   input_sec->name);
-               eoinfo->failed = true;
-               return false;
+               eoinfo->failed = TRUE;
+               return FALSE;
              }
 
            /* ELF symbols in relocateable files are section relative,
@@ -6345,7 +6228,7 @@ elf_link_output_extsym (h, data)
         foo is used with no version, then we add an indirect symbol
         foo which points to foo@@GNU_1.2.  We ignore these symbols,
         since the indirected symbol is already in the hash table.  */
-      return true;
+      return TRUE;
     }
 
   /* Give the processor backend a chance to tweak the symbol value,
@@ -6364,8 +6247,8 @@ elf_link_output_extsym (h, data)
       if (! ((*bed->elf_backend_finish_dynamic_symbol)
             (finfo->output_bfd, finfo->info, h, &sym)))
        {
-         eoinfo->failed = true;
-         return false;
+         eoinfo->failed = TRUE;
+         return FALSE;
        }
     }
 
@@ -6389,11 +6272,10 @@ elf_link_output_extsym (h, data)
       sym.st_info = ELF_ST_INFO (bindtype, ELF_ST_TYPE (sym.st_info));
     }
 
-  /* If a symbol is not defined locally, we clear the visibility
-     field.  */
+  /* If a symbol is not defined locally, we clear the visibility field.  */
   if (! finfo->info->relocateable
       && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
-    sym.st_other ^= ELF_ST_VISIBILITY (sym.st_other);
+    sym.st_other &= ~ ELF_ST_VISIBILITY (-1);
 
   /* If this symbol should be put in the .dynsym section, then put it
      there now.  We already know the symbol index.  We also fill in
@@ -6457,24 +6339,24 @@ elf_link_output_extsym (h, data)
   /* If we're stripping it, then it was just a dynamic symbol, and
      there's nothing else to do.  */
   if (strip || (input_sec->flags & SEC_EXCLUDE) != 0)
-    return true;
+    return TRUE;
 
   h->indx = bfd_get_symcount (finfo->output_bfd);
 
   if (! elf_link_output_sym (finfo, h->root.root.string, &sym, input_sec))
     {
-      eoinfo->failed = true;
-      return false;
+      eoinfo->failed = TRUE;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Copy the relocations indicated by the INTERNAL_RELOCS (which
    originated from the section given by INPUT_REL_HDR) to the
    OUTPUT_BFD.  */
 
-static boolean
+static bfd_boolean
 elf_link_output_relocs (output_bfd, input_section, input_rel_hdr,
                        internal_relocs)
      bfd *output_bfd;
@@ -6484,11 +6366,12 @@ elf_link_output_relocs (output_bfd, input_section, input_rel_hdr,
 {
   Elf_Internal_Rela *irela;
   Elf_Internal_Rela *irelaend;
+  bfd_byte *erel;
   Elf_Internal_Shdr *output_rel_hdr;
   asection *output_section;
   unsigned int *rel_countp = NULL;
   struct elf_backend_data *bed;
-  bfd_size_type amt;
+  void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
 
   output_section = input_section->output_section;
   output_rel_hdr = NULL;
@@ -6514,66 +6397,34 @@ elf_link_output_relocs (output_bfd, input_section, input_rel_hdr,
         bfd_archive_filename (input_section->owner),
         input_section->name);
       bfd_set_error (bfd_error_wrong_object_format);
-      return false;
+      return FALSE;
     }
 
   bed = get_elf_backend_data (output_bfd);
+  if (input_rel_hdr->sh_entsize == sizeof (Elf_External_Rel))
+    swap_out = bed->s->swap_reloc_out;
+  else if (input_rel_hdr->sh_entsize == sizeof (Elf_External_Rela))
+    swap_out = bed->s->swap_reloca_out;
+  else
+    abort ();
+
+  erel = output_rel_hdr->contents;
+  erel += *rel_countp * input_rel_hdr->sh_entsize;
   irela = internal_relocs;
   irelaend = irela + (NUM_SHDR_ENTRIES (input_rel_hdr)
                      * bed->s->int_rels_per_ext_rel);
-
-  if (input_rel_hdr->sh_entsize == sizeof (Elf_External_Rel))
+  while (irela < irelaend)
     {
-      Elf_External_Rel *erel;
-      Elf_Internal_Rel *irel;
-
-      amt = bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rel);
-      irel = (Elf_Internal_Rel *) bfd_zmalloc (amt);
-      if (irel == NULL)
-       {
-         (*_bfd_error_handler) (_("Error: out of memory"));
-         abort ();
-       }
-
-      erel = ((Elf_External_Rel *) output_rel_hdr->contents + *rel_countp);
-      for (; irela < irelaend; irela += bed->s->int_rels_per_ext_rel, erel++)
-       {
-         unsigned int i;
-
-         for (i = 0; i < bed->s->int_rels_per_ext_rel; i++)
-           {
-             irel[i].r_offset = irela[i].r_offset;
-             irel[i].r_info = irela[i].r_info;
-             BFD_ASSERT (irela[i].r_addend == 0);
-           }
-
-         if (bed->s->swap_reloc_out)
-           (*bed->s->swap_reloc_out) (output_bfd, irel, (PTR) erel);
-         else
-           elf_swap_reloc_out (output_bfd, irel, erel);
-       }
-
-      free (irel);
-    }
-  else
-    {
-      Elf_External_Rela *erela;
-
-      BFD_ASSERT (input_rel_hdr->sh_entsize == sizeof (Elf_External_Rela));
-
-      erela = ((Elf_External_Rela *) output_rel_hdr->contents + *rel_countp);
-      for (; irela < irelaend; irela += bed->s->int_rels_per_ext_rel, erela++)
-       if (bed->s->swap_reloca_out)
-         (*bed->s->swap_reloca_out) (output_bfd, irela, (PTR) erela);
-       else
-         elf_swap_reloca_out (output_bfd, irela, erela);
+      (*swap_out) (output_bfd, irela, erel);
+      irela += bed->s->int_rels_per_ext_rel;
+      erel += input_rel_hdr->sh_entsize;
     }
 
   /* Bump the counter, so that we know where to add the next set of
      relocations.  */
   *rel_countp += NUM_SHDR_ENTRIES (input_rel_hdr);
 
-  return true;
+  return TRUE;
 }
 
 /* Link an input file into the linker output file.  This function
@@ -6581,15 +6432,14 @@ elf_link_output_relocs (output_bfd, input_section, input_rel_hdr,
    This is so that we only have to read the local symbols once, and
    don't have to keep them in memory.  */
 
-static boolean
+static bfd_boolean
 elf_link_input_bfd (finfo, input_bfd)
      struct elf_final_link_info *finfo;
      bfd *input_bfd;
 {
-  boolean (*relocate_section) PARAMS ((bfd *, struct bfd_link_info *,
-                                      bfd *, asection *, bfd_byte *,
-                                      Elf_Internal_Rela *,
-                                      Elf_Internal_Sym *, asection **));
+  bfd_boolean (*relocate_section)
+    PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+            Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
   bfd *output_bfd;
   Elf_Internal_Shdr *symtab_hdr;
   size_t locsymcount;
@@ -6601,7 +6451,7 @@ elf_link_input_bfd (finfo, input_bfd)
   asection **ppsection;
   asection *o;
   struct elf_backend_data *bed;
-  boolean emit_relocs;
+  bfd_boolean emit_relocs;
   struct elf_link_hash_entry **sym_hashes;
 
   output_bfd = finfo->output_bfd;
@@ -6612,7 +6462,7 @@ elf_link_input_bfd (finfo, input_bfd)
      we don't want the local symbols, and we don't want the section
      contents.  */
   if ((input_bfd->flags & DYNAMIC) != 0)
-    return true;
+    return TRUE;
 
   emit_relocs = (finfo->info->relocateable
                 || finfo->info->emitrelocations
@@ -6639,7 +6489,7 @@ elf_link_input_bfd (finfo, input_bfd)
                                      finfo->external_syms,
                                      finfo->locsym_shndx);
       if (isymbuf == NULL)
-       return false;
+       return FALSE;
     }
 
   /* Find local symbol sections and adjust values of symbols in
@@ -6732,11 +6582,11 @@ elf_link_input_bfd (finfo, input_bfd)
       name = bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link,
                                              isym->st_name);
       if (name == NULL)
-       return false;
+       return FALSE;
 
       /* See if we are discarding symbols with this name.  */
       if ((finfo->info->strip == strip_some
-          && (bfd_hash_lookup (finfo->info->keep_hash, name, false, false)
+          && (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, FALSE)
               == NULL))
          || (((finfo->info->discard == discard_sec_merge
                && (isec->flags & SEC_MERGE) && ! finfo->info->relocateable)
@@ -6752,7 +6602,7 @@ elf_link_input_bfd (finfo, input_bfd)
       osym.st_shndx = _bfd_elf_section_from_bfd_section (output_bfd,
                                                         isec->output_section);
       if (osym.st_shndx == SHN_BAD)
-       return false;
+       return FALSE;
 
       *pindex = bfd_get_symcount (output_bfd);
 
@@ -6776,7 +6626,7 @@ elf_link_input_bfd (finfo, input_bfd)
        }
 
       if (! elf_link_output_sym (finfo, name, &osym, isec))
-       return false;
+       return FALSE;
     }
 
   /* Relocate the contents of each section.  */
@@ -6813,7 +6663,7 @@ elf_link_input_bfd (finfo, input_bfd)
          contents = finfo->contents;
          if (! bfd_get_section_contents (input_bfd, o, contents,
                                          (file_ptr) 0, o->_raw_size))
-           return false;
+           return FALSE;
        }
 
       if ((o->flags & SEC_RELOC) != 0)
@@ -6823,10 +6673,10 @@ elf_link_input_bfd (finfo, input_bfd)
          /* Get the swapped relocs.  */
          internal_relocs = (NAME(_bfd_elf,link_read_relocs)
                             (input_bfd, o, finfo->external_relocs,
-                             finfo->internal_relocs, false));
+                             finfo->internal_relocs, FALSE));
          if (internal_relocs == NULL
              && o->reloc_count > 0)
-           return false;
+           return FALSE;
 
          /* Run through the relocs looking for any against symbols
             from discarded sections and section symbols from
@@ -6871,8 +6721,8 @@ elf_link_input_bfd (finfo, input_bfd)
                              if (! ((*finfo->info->callbacks->undefined_symbol)
                                     (finfo->info, h->root.root.string,
                                      input_bfd, o, rel->r_offset,
-                                     true)))
-                               return false;
+                                     TRUE)))
+                               return FALSE;
                            }
                        }
                    }
@@ -6892,7 +6742,7 @@ elf_link_input_bfd (finfo, input_bfd)
                            }
                          else
                            {
-                             boolean ok;
+                             bfd_boolean ok;
                              const char *msg
                                = _("local symbols in discarded section %s");
                              bfd_size_type amt
@@ -6907,11 +6757,11 @@ elf_link_input_bfd (finfo, input_bfd)
                                    ->undefined_symbol) (finfo->info, buf,
                                                         input_bfd, o,
                                                         rel->r_offset,
-                                                        true);
+                                                        TRUE);
                              if (buf != sec->name)
                                free (buf);
                              if (!ok)
-                               return false;
+                               return FALSE;
                            }
                        }
                    }
@@ -6943,19 +6793,20 @@ elf_link_input_bfd (finfo, input_bfd)
                                     internal_relocs,
                                     isymbuf,
                                     finfo->sections))
-           return false;
+           return FALSE;
 
          if (emit_relocs)
            {
              Elf_Internal_Rela *irela;
              Elf_Internal_Rela *irelaend;
+             bfd_vma last_offset;
              struct elf_link_hash_entry **rel_hash;
              Elf_Internal_Shdr *input_rel_hdr, *input_rel_hdr2;
              unsigned int next_erel;
-             boolean (*reloc_emitter) PARAMS ((bfd *, asection *,
-                                               Elf_Internal_Shdr *,
-                                               Elf_Internal_Rela *));
-             boolean rela_normal;
+             bfd_boolean (*reloc_emitter)
+               PARAMS ((bfd *, asection *, Elf_Internal_Shdr *,
+                        Elf_Internal_Rela *));
+             bfd_boolean rela_normal;
 
              input_rel_hdr = &elf_section_data (o)->rel_hdr;
              rela_normal = (bed->rela_normal
@@ -6969,6 +6820,9 @@ elf_link_input_bfd (finfo, input_bfd)
              rel_hash = (elf_section_data (o->output_section)->rel_hashes
                          + elf_section_data (o->output_section)->rel_count
                          + elf_section_data (o->output_section)->rel_count2);
+             last_offset = o->output_offset;
+             if (!finfo->info->relocateable)
+               last_offset += o->output_section->vma;
              for (next_erel = 0; irela < irelaend; irela++, next_erel++)
                {
                  unsigned long r_symndx;
@@ -6986,8 +6840,14 @@ elf_link_input_bfd (finfo, input_bfd)
                                                             irela->r_offset);
                  if (irela->r_offset >= (bfd_vma) -2)
                    {
-                     /* This is a reloc for a deleted entry or somesuch.  */
-                     memset (irela, 0, sizeof (*irela));
+                     /* This is a reloc for a deleted entry or somesuch.
+                        Turn it into an R_*_NONE reloc, at the same
+                        offset as the last reloc.  elf_eh_frame.c and
+                        elf_bfd_discard_info rely on reloc offsets
+                        being ordered.  */
+                     irela->r_offset = last_offset;
+                     irela->r_info = 0;
+                     irela->r_addend = 0;
                      continue;
                    }
 
@@ -6997,9 +6857,10 @@ elf_link_input_bfd (finfo, input_bfd)
                  if (!finfo->info->relocateable)
                    irela->r_offset += o->output_section->vma;
 
-                 r_symndx = ELF_R_SYM (irela->r_info);
+                 last_offset = irela->r_offset;
 
-                 if (r_symndx == 0)
+                 r_symndx = ELF_R_SYM (irela->r_info);
+                 if (r_symndx == STN_UNDEF)
                    continue;
 
                  if (r_symndx >= locsymcount
@@ -7052,7 +6913,7 @@ elf_link_input_bfd (finfo, input_bfd)
                      else if (sec == NULL || sec->owner == NULL)
                        {
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      else
                        {
@@ -7077,7 +6938,7 @@ elf_link_input_bfd (finfo, input_bfd)
                            {
                              /* You can't do ld -r -s.  */
                              bfd_set_error (bfd_error_invalid_operation);
-                             return false;
+                             return FALSE;
                            }
 
                          /* This symbol was skipped earlier, but
@@ -7087,14 +6948,14 @@ elf_link_input_bfd (finfo, input_bfd)
                          name = (bfd_elf_string_from_elf_section
                                  (input_bfd, shlink, sym.st_name));
                          if (name == NULL)
-                           return false;
+                           return FALSE;
 
                          osec = sec->output_section;
                          sym.st_shndx =
                            _bfd_elf_section_from_bfd_section (output_bfd,
                                                               osec);
                          if (sym.st_shndx == SHN_BAD)
-                           return false;
+                           return FALSE;
 
                          sym.st_value += sec->output_offset;
                          if (! finfo->info->relocateable)
@@ -7113,7 +6974,7 @@ elf_link_input_bfd (finfo, input_bfd)
                            = bfd_get_symcount (output_bfd);
 
                          if (! elf_link_output_sym (finfo, name, &sym, sec))
-                           return false;
+                           return FALSE;
                        }
 
                      r_symndx = finfo->indices[r_symndx];
@@ -7134,7 +6995,7 @@ elf_link_input_bfd (finfo, input_bfd)
              if (input_rel_hdr->sh_size != 0
                  && ! (*reloc_emitter) (output_bfd, o, input_rel_hdr,
                                         internal_relocs))
-               return false;
+               return FALSE;
 
              input_rel_hdr2 = elf_section_data (o)->rel_hdr2;
              if (input_rel_hdr2 && input_rel_hdr2->sh_size != 0)
@@ -7143,7 +7004,7 @@ elf_link_input_bfd (finfo, input_bfd)
                                      * bed->s->int_rels_per_ext_rel);
                  if (! (*reloc_emitter) (output_bfd, o, input_rel_hdr2,
                                          internal_relocs))
-                   return false;
+                   return FALSE;
                }
            }
        }
@@ -7161,18 +7022,18 @@ elf_link_input_bfd (finfo, input_bfd)
                 (output_bfd,
                  &elf_hash_table (finfo->info)->stab_info,
                  o, &elf_section_data (o)->sec_info, contents)))
-           return false;
+           return FALSE;
          break;
        case ELF_INFO_TYPE_MERGE:
          if (! _bfd_write_merged_section (output_bfd, o,
                                           elf_section_data (o)->sec_info))
-           return false;
+           return FALSE;
          break;
        case ELF_INFO_TYPE_EH_FRAME:
          {
            if (! _bfd_elf_write_section_eh_frame (output_bfd, finfo->info,
                                                   o, contents))
-             return false;
+             return FALSE;
          }
          break;
        default:
@@ -7185,13 +7046,13 @@ elf_link_input_bfd (finfo, input_bfd)
                                               contents,
                                               (file_ptr) o->output_offset,
                                               sec_size))
-             return false;
+             return FALSE;
          }
          break;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Generate a reloc when linking an ELF file.  This is a reloc
@@ -7199,7 +7060,7 @@ elf_link_input_bfd (finfo, input_bfd)
    is used to build constructor and destructor tables when linking
    with -Ur.  */
 
-static boolean
+static bfd_boolean
 elf_reloc_link_order (output_bfd, info, output_section, link_order)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -7213,12 +7074,15 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
   struct elf_link_hash_entry **rel_hash_ptr;
   Elf_Internal_Shdr *rel_hdr;
   struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
+  Elf_Internal_Rela irel[MAX_INT_RELS_PER_EXT_REL];
+  bfd_byte *erel;
+  unsigned int i;
 
   howto = bfd_reloc_type_lookup (output_bfd, link_order->u.reloc.p->reloc);
   if (howto == NULL)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   addend = link_order->u.reloc.p->addend;
@@ -7242,7 +7106,7 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
       h = ((struct elf_link_hash_entry *)
           bfd_wrapped_link_hash_lookup (output_bfd, info,
                                         link_order->u.reloc.p->u.name,
-                                        false, false, true));
+                                        FALSE, FALSE, TRUE));
       if (h != NULL
          && (h->root.type == bfd_link_hash_defined
              || h->root.type == bfd_link_hash_defweak))
@@ -7270,7 +7134,7 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
          if (! ((*info->callbacks->unattached_reloc)
                 (info, link_order->u.reloc.p->u.name, (bfd *) NULL,
                  (asection *) NULL, (bfd_vma) 0)))
-           return false;
+           return FALSE;
          indx = 0;
        }
     }
@@ -7282,13 +7146,13 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
       bfd_size_type size;
       bfd_reloc_status_type rstat;
       bfd_byte *buf;
-      boolean ok;
+      bfd_boolean ok;
       const char *sym_name;
 
       size = bfd_get_reloc_size (howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
       if (buf == (bfd_byte *) NULL)
-       return false;
+       return FALSE;
       rstat = _bfd_relocate_contents (howto, output_bfd, (bfd_vma) addend, buf);
       switch (rstat)
        {
@@ -7310,7 +7174,7 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
                  (bfd *) NULL, (asection *) NULL, (bfd_vma) 0)))
            {
              free (buf);
-             return false;
+             return FALSE;
            }
          break;
        }
@@ -7318,7 +7182,7 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
                                     (file_ptr) link_order->offset, size);
       free (buf);
       if (! ok)
-       return false;
+       return FALSE;
     }
 
   /* The address of a reloc is relative to the section in a
@@ -7328,68 +7192,38 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
   if (! info->relocateable)
     offset += output_section->vma;
 
-  rel_hdr = &elf_section_data (output_section)->rel_hdr;
+  for (i = 0; i < bed->s->int_rels_per_ext_rel; i++)
+    {
+      irel[i].r_offset = offset;
+      irel[i].r_info = 0;
+      irel[i].r_addend = 0;
+    }
+  irel[0].r_info = ELF_R_INFO (indx, howto->type);
 
+  rel_hdr = &elf_section_data (output_section)->rel_hdr;
+  erel = rel_hdr->contents;
   if (rel_hdr->sh_type == SHT_REL)
     {
-      bfd_size_type size;
-      Elf_Internal_Rel *irel;
-      Elf_External_Rel *erel;
-      unsigned int i;
-
-      size = bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rel);
-      irel = (Elf_Internal_Rel *) bfd_zmalloc (size);
-      if (irel == NULL)
-       return false;
-
-      for (i = 0; i < bed->s->int_rels_per_ext_rel; i++)
-       irel[i].r_offset = offset;
-      irel[0].r_info = ELF_R_INFO (indx, howto->type);
-
-      erel = ((Elf_External_Rel *) rel_hdr->contents
-             + elf_section_data (output_section)->rel_count);
-
-      if (bed->s->swap_reloc_out)
-       (*bed->s->swap_reloc_out) (output_bfd, irel, (bfd_byte *) erel);
-      else
-       elf_swap_reloc_out (output_bfd, irel, erel);
-
-      free (irel);
+      erel += (elf_section_data (output_section)->rel_count
+              * sizeof (Elf_External_Rel));
+      (*bed->s->swap_reloc_out) (output_bfd, irel, erel);
     }
   else
     {
-      bfd_size_type size;
-      Elf_Internal_Rela *irela;
-      Elf_External_Rela *erela;
-      unsigned int i;
-
-      size = bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rela);
-      irela = (Elf_Internal_Rela *) bfd_zmalloc (size);
-      if (irela == NULL)
-       return false;
-
-      for (i = 0; i < bed->s->int_rels_per_ext_rel; i++)
-       irela[i].r_offset = offset;
-      irela[0].r_info = ELF_R_INFO (indx, howto->type);
-      irela[0].r_addend = addend;
-
-      erela = ((Elf_External_Rela *) rel_hdr->contents
-              + elf_section_data (output_section)->rel_count);
-
-      if (bed->s->swap_reloca_out)
-       (*bed->s->swap_reloca_out) (output_bfd, irela, (bfd_byte *) erela);
-      else
-       elf_swap_reloca_out (output_bfd, irela, erela);
+      irel[0].r_addend = addend;
+      erel += (elf_section_data (output_section)->rel_count
+              * sizeof (Elf_External_Rela));
+      (*bed->s->swap_reloca_out) (output_bfd, irel, erel);
     }
 
   ++elf_section_data (output_section)->rel_count;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Allocate a pointer to live in a linker created section.  */
 
-boolean
+bfd_boolean
 elf_create_pointer_linker_section (abfd, info, lsect, h, rel)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -7411,14 +7245,14 @@ elf_create_pointer_linker_section (abfd, info, lsect, h, rel)
       if (_bfd_elf_find_pointer_linker_section (h->linker_section_pointer,
                                                rel->r_addend,
                                                lsect->which))
-       return true;
+       return TRUE;
 
       ptr_linker_section_ptr = &h->linker_section_pointer;
       /* Make sure this symbol is output as a dynamic symbol.  */
       if (h->dynindx == -1)
        {
          if (! elf_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       if (lsect->rel_section)
@@ -7440,7 +7274,7 @@ elf_create_pointer_linker_section (abfd, info, lsect, h, rel)
          ptr = (elf_linker_section_pointers_t **) bfd_alloc (abfd, amt);
 
          if (!ptr)
-           return false;
+           return FALSE;
 
          elf_local_ptr_offsets (abfd) = ptr;
          for (i = 0; i < num_symbols; i++)
@@ -7451,7 +7285,7 @@ elf_create_pointer_linker_section (abfd, info, lsect, h, rel)
       if (_bfd_elf_find_pointer_linker_section (ptr[r_symndx],
                                                rel->r_addend,
                                                lsect->which))
-       return true;
+       return TRUE;
 
       ptr_linker_section_ptr = &ptr[r_symndx];
 
@@ -7472,12 +7306,12 @@ elf_create_pointer_linker_section (abfd, info, lsect, h, rel)
   linker_section_ptr = (elf_linker_section_pointers_t *) bfd_alloc (abfd, amt);
 
   if (!linker_section_ptr)
-    return false;
+    return FALSE;
 
   linker_section_ptr->next = *ptr_linker_section_ptr;
   linker_section_ptr->addend = rel->r_addend;
   linker_section_ptr->which = lsect->which;
-  linker_section_ptr->written_address_p = false;
+  linker_section_ptr->written_address_p = FALSE;
   *ptr_linker_section_ptr = linker_section_ptr;
 
 #if 0
@@ -7512,7 +7346,7 @@ elf_create_pointer_linker_section (abfd, info, lsect, h, rel)
           (long) lsect->section->_raw_size);
 #endif
 
-  return true;
+  return TRUE;
 }
 \f
 #if ARCH_SIZE==64
@@ -7565,7 +7399,7 @@ elf_finish_pointer_linker_section (output_bfd, input_bfd, info, lsect, h,
             is done in the finish_dynamic_symbol routine.  */
          if (!linker_section_ptr->written_address_p)
            {
-             linker_section_ptr->written_address_p = true;
+             linker_section_ptr->written_address_p = TRUE;
              bfd_put_ptr (output_bfd,
                           relocation + linker_section_ptr->addend,
                           (lsect->section->contents
@@ -7589,26 +7423,17 @@ elf_finish_pointer_linker_section (output_bfd, input_bfd, info, lsect, h,
       /* Write out pointer if it hasn't been rewritten out before.  */
       if (!linker_section_ptr->written_address_p)
        {
-         linker_section_ptr->written_address_p = true;
+         linker_section_ptr->written_address_p = TRUE;
          bfd_put_ptr (output_bfd, relocation + linker_section_ptr->addend,
                       lsect->section->contents + linker_section_ptr->offset);
 
          if (info->shared)
            {
              asection *srel = lsect->rel_section;
-             Elf_Internal_Rela *outrel;
-             Elf_External_Rela *erel;
+             Elf_Internal_Rela outrel[MAX_INT_RELS_PER_EXT_REL];
+             bfd_byte *erel;
              struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
              unsigned int i;
-             bfd_size_type amt;
-
-             amt = sizeof (Elf_Internal_Rela) * bed->s->int_rels_per_ext_rel;
-             outrel = (Elf_Internal_Rela *) bfd_zmalloc (amt);
-             if (outrel == NULL)
-               {
-                 (*_bfd_error_handler) (_("Error: out of memory"));
-                 return 0;
-               }
 
              /* We need to generate a relative reloc for the dynamic
                 linker.  */
@@ -7622,17 +7447,18 @@ elf_finish_pointer_linker_section (output_bfd, input_bfd, info, lsect, h,
              BFD_ASSERT (srel != NULL);
 
              for (i = 0; i < bed->s->int_rels_per_ext_rel; i++)
-               outrel[i].r_offset = (lsect->section->output_section->vma
-                                     + lsect->section->output_offset
-                                     + linker_section_ptr->offset);
+               {
+                 outrel[i].r_offset = (lsect->section->output_section->vma
+                                       + lsect->section->output_offset
+                                       + linker_section_ptr->offset);
+                 outrel[i].r_info = 0;
+                 outrel[i].r_addend = 0;
+               }
              outrel[0].r_info = ELF_R_INFO (0, relative_reloc);
-             outrel[0].r_addend = 0;
-             erel = (Elf_External_Rela *) lsect->section->contents;
-             erel += elf_section_data (lsect->section)->rel_count;
+             erel = lsect->section->contents;
+             erel += (elf_section_data (lsect->section)->rel_count++
+                      * sizeof (Elf_External_Rela));
              elf_swap_reloca_out (output_bfd, outrel, erel);
-             ++elf_section_data (lsect->section)->rel_count;
-
-             free (outrel);
            }
        }
     }
@@ -7655,43 +7481,44 @@ elf_finish_pointer_linker_section (output_bfd, input_bfd, info, lsect, h,
 \f
 /* Garbage collect unused sections.  */
 
-static boolean elf_gc_mark
+static bfd_boolean elf_gc_mark
   PARAMS ((struct bfd_link_info *, asection *,
           asection * (*) (asection *, struct bfd_link_info *,
                           Elf_Internal_Rela *, struct elf_link_hash_entry *,
                           Elf_Internal_Sym *)));
 
-static boolean elf_gc_sweep
+static bfd_boolean elf_gc_sweep
   PARAMS ((struct bfd_link_info *,
-          boolean (*) (bfd *, struct bfd_link_info *, asection *,
-                       const Elf_Internal_Rela *)));
+          bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *,
+                           const Elf_Internal_Rela *)));
 
-static boolean elf_gc_sweep_symbol
+static bfd_boolean elf_gc_sweep_symbol
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean elf_gc_allocate_got_offsets
+static bfd_boolean elf_gc_allocate_got_offsets
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean elf_gc_propagate_vtable_entries_used
+static bfd_boolean elf_gc_propagate_vtable_entries_used
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
-static boolean elf_gc_smash_unused_vtentry_relocs
+static bfd_boolean elf_gc_smash_unused_vtentry_relocs
   PARAMS ((struct elf_link_hash_entry *, PTR));
 
 /* The mark phase of garbage collection.  For a given section, mark
    it and any sections in this section's group, and all the sections
    which define symbols to which it refers.  */
 
-static boolean
+typedef asection * (*gc_mark_hook_fn)
+  PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
+          struct elf_link_hash_entry *, Elf_Internal_Sym *));
+
+static bfd_boolean
 elf_gc_mark (info, sec, gc_mark_hook)
      struct bfd_link_info *info;
      asection *sec;
-     asection * (*gc_mark_hook) PARAMS ((asection *, struct bfd_link_info *,
-                                        Elf_Internal_Rela *,
-                                        struct elf_link_hash_entry *,
-                                        Elf_Internal_Sym *));
+     gc_mark_hook_fn gc_mark_hook;
 {
-  boolean ret;
+  bfd_boolean ret;
   asection *group_sec;
 
   sec->gc_mark = 1;
@@ -7700,10 +7527,10 @@ elf_gc_mark (info, sec, gc_mark_hook)
   group_sec = elf_section_data (sec)->next_in_group;
   if (group_sec && !group_sec->gc_mark)
     if (!elf_gc_mark (info, group_sec, gc_mark_hook))
-      return false;
+      return FALSE;
 
   /* Look through the section relocs.  */
-  ret = true;
+  ret = TRUE;
   if ((sec->flags & SEC_RELOC) != 0 && sec->reloc_count > 0)
     {
       Elf_Internal_Rela *relstart, *rel, *relend;
@@ -7733,7 +7560,7 @@ elf_gc_mark (info, sec, gc_mark_hook)
          isym = bfd_elf_get_elf_syms (input_bfd, symtab_hdr, nlocsyms, 0,
                                       NULL, NULL, NULL);
          if (isym == NULL)
-           return false;
+           return FALSE;
        }
 
       /* Read the relocations.  */
@@ -7742,7 +7569,7 @@ elf_gc_mark (info, sec, gc_mark_hook)
                   info->keep_memory));
       if (relstart == NULL)
        {
-         ret = false;
+         ret = FALSE;
          goto out1;
        }
       relend = relstart + sec->reloc_count * bed->s->int_rels_per_ext_rel;
@@ -7774,7 +7601,7 @@ elf_gc_mark (info, sec, gc_mark_hook)
                rsec->gc_mark = 1;
              else if (!elf_gc_mark (info, rsec, gc_mark_hook))
                {
-                 ret = false;
+                 ret = FALSE;
                  goto out2;
                }
            }
@@ -7798,11 +7625,14 @@ elf_gc_mark (info, sec, gc_mark_hook)
 
 /* The sweep phase of garbage collection.  Remove all garbage sections.  */
 
-static boolean
+typedef bfd_boolean (*gc_sweep_hook_fn)
+  PARAMS ((bfd *, struct bfd_link_info *, asection *,
+          const Elf_Internal_Rela *));
+
+static bfd_boolean
 elf_gc_sweep (info, gc_sweep_hook)
      struct bfd_link_info *info;
-     boolean (*gc_sweep_hook) PARAMS ((bfd *, struct bfd_link_info *,
-                                      asection *, const Elf_Internal_Rela *));
+     gc_sweep_hook_fn gc_sweep_hook;
 {
   bfd *sub;
 
@@ -7837,12 +7667,12 @@ elf_gc_sweep (info, gc_sweep_hook)
              && (o->flags & SEC_RELOC) && o->reloc_count > 0)
            {
              Elf_Internal_Rela *internal_relocs;
-             boolean r;
+             bfd_boolean r;
 
              internal_relocs = (NAME(_bfd_elf,link_read_relocs)
                                 (o->owner, o, NULL, NULL, info->keep_memory));
              if (internal_relocs == NULL)
-               return false;
+               return FALSE;
 
              r = (*gc_sweep_hook) (o->owner, info, o, internal_relocs);
 
@@ -7850,7 +7680,7 @@ elf_gc_sweep (info, gc_sweep_hook)
                free (internal_relocs);
 
              if (!r)
-               return false;
+               return FALSE;
            }
        }
     }
@@ -7868,12 +7698,12 @@ elf_gc_sweep (info, gc_sweep_hook)
     elf_hash_table (info)->dynsymcount = i;
   }
 
-  return true;
+  return TRUE;
 }
 
 /* Sweep symbols in swept sections.  Called via elf_link_hash_traverse.  */
 
-static boolean
+static bfd_boolean
 elf_gc_sweep_symbol (h, idxptr)
      struct elf_link_hash_entry *h;
      PTR idxptr;
@@ -7889,13 +7719,13 @@ elf_gc_sweep_symbol (h, idxptr)
          || h->root.u.def.section->gc_mark))
     h->dynindx = (*idx)++;
 
-  return true;
+  return TRUE;
 }
 
 /* Propogate collected vtable information.  This is called through
    elf_link_hash_traverse.  */
 
-static boolean
+static bfd_boolean
 elf_gc_propagate_vtable_entries_used (h, okp)
      struct elf_link_hash_entry *h;
      PTR okp;
@@ -7905,15 +7735,15 @@ elf_gc_propagate_vtable_entries_used (h, okp)
 
   /* Those that are not vtables.  */
   if (h->vtable_parent == NULL)
-    return true;
+    return TRUE;
 
   /* Those vtables that do not have parents, we cannot merge.  */
   if (h->vtable_parent == (struct elf_link_hash_entry *) -1)
-    return true;
+    return TRUE;
 
   /* If we've already been done, exit.  */
   if (h->vtable_entries_used && h->vtable_entries_used[-1])
-    return true;
+    return TRUE;
 
   /* Make sure the parent's table is up to date.  */
   elf_gc_propagate_vtable_entries_used (h->vtable_parent, okp);
@@ -7928,11 +7758,11 @@ elf_gc_propagate_vtable_entries_used (h, okp)
   else
     {
       size_t n;
-      boolean *cu, *pu;
+      bfd_boolean *cu, *pu;
 
       /* Or the parent's entries into ours.  */
       cu = h->vtable_entries_used;
-      cu[-1] = true;
+      cu[-1] = TRUE;
       pu = h->vtable_parent->vtable_entries_used;
       if (pu != NULL)
        {
@@ -7944,17 +7774,17 @@ elf_gc_propagate_vtable_entries_used (h, okp)
          while (n--)
            {
              if (*pu)
-               *cu = true;
+               *cu = TRUE;
              pu++;
              cu++;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elf_gc_smash_unused_vtentry_relocs (h, okp)
      struct elf_link_hash_entry *h;
      PTR okp;
@@ -7971,7 +7801,7 @@ elf_gc_smash_unused_vtentry_relocs (h, okp)
   /* Take care of both those symbols that do not describe vtables as
      well as those that are not loaded.  */
   if (h->vtable_parent == NULL)
-    return true;
+    return TRUE;
 
   BFD_ASSERT (h->root.type == bfd_link_hash_defined
              || h->root.type == bfd_link_hash_defweak);
@@ -7981,9 +7811,9 @@ elf_gc_smash_unused_vtentry_relocs (h, okp)
   hend = hstart + h->size;
 
   relstart = (NAME(_bfd_elf,link_read_relocs)
-             (sec->owner, sec, NULL, (Elf_Internal_Rela *) NULL, true));
+             (sec->owner, sec, NULL, (Elf_Internal_Rela *) NULL, TRUE));
   if (!relstart)
-    return *(boolean *) okp = false;
+    return *(bfd_boolean *) okp = FALSE;
   bed = get_elf_backend_data (sec->owner);
   file_align = bed->s->file_align;
 
@@ -8004,17 +7834,17 @@ elf_gc_smash_unused_vtentry_relocs (h, okp)
        rel->r_offset = rel->r_info = rel->r_addend = 0;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* Do mark and sweep of unused sections.  */
 
-boolean
+bfd_boolean
 elf_gc_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
-  boolean ok = true;
+  bfd_boolean ok = TRUE;
   bfd *sub;
   asection * (*gc_mark_hook)
     PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
@@ -8023,21 +7853,21 @@ elf_gc_sections (abfd, info)
   if (!get_elf_backend_data (abfd)->can_gc_sections
       || info->relocateable || info->emitrelocations
       || elf_hash_table (info)->dynamic_sections_created)
-    return true;
+    return TRUE;
 
   /* Apply transitive closure to the vtable entry usage info.  */
   elf_link_hash_traverse (elf_hash_table (info),
                          elf_gc_propagate_vtable_entries_used,
                          (PTR) &ok);
   if (!ok)
-    return false;
+    return FALSE;
 
   /* Kill the vtable relocations that were not used.  */
   elf_link_hash_traverse (elf_hash_table (info),
                          elf_gc_smash_unused_vtentry_relocs,
                          (PTR) &ok);
   if (!ok)
-    return false;
+    return FALSE;
 
   /* Grovel through relocs to find out who stays ...  */
 
@@ -8053,20 +7883,20 @@ elf_gc_sections (abfd, info)
        {
          if (o->flags & SEC_KEEP)
            if (!elf_gc_mark (info, o, gc_mark_hook))
-             return false;
+             return FALSE;
        }
     }
 
   /* ... and mark SEC_EXCLUDE for those that go.  */
   if (!elf_gc_sweep (info, get_elf_backend_data (abfd)->gc_sweep_hook))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Called from check_relocs to record the existance of a VTINHERIT reloc.  */
 
-boolean
+bfd_boolean
 elf_gc_record_vtinherit (abfd, sec, h, offset)
      bfd *abfd;
      asection *sec;
@@ -8103,7 +7933,7 @@ elf_gc_record_vtinherit (abfd, sec, h, offset)
                         bfd_archive_filename (abfd), sec->name,
                         (unsigned long) offset);
   bfd_set_error (bfd_error_invalid_operation);
-  return false;
+  return FALSE;
 
  win:
   if (!h)
@@ -8118,12 +7948,12 @@ elf_gc_record_vtinherit (abfd, sec, h, offset)
   else
     child->vtable_parent = h;
 
-  return true;
+  return TRUE;
 }
 
 /* Called from check_relocs to record the existance of a VTENTRY reloc.  */
 
-boolean
+bfd_boolean
 elf_gc_record_vtentry (abfd, sec, h, addend)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec ATTRIBUTE_UNUSED;
@@ -8136,7 +7966,7 @@ elf_gc_record_vtentry (abfd, sec, h, addend)
   if (addend >= h->vtable_entries_size)
     {
       size_t size, bytes;
-      boolean *ptr = h->vtable_entries_used;
+      bfd_boolean *ptr = h->vtable_entries_used;
 
       /* While the symbol is undefined, we have to be prepared to handle
         a zero size.  */
@@ -8155,7 +7985,7 @@ elf_gc_record_vtentry (abfd, sec, h, addend)
 
       /* Allocate one extra entry for use as a "done" flag for the
         consolidation pass.  */
-      bytes = (size / file_align + 1) * sizeof (boolean);
+      bytes = (size / file_align + 1) * sizeof (bfd_boolean);
 
       if (ptr)
        {
@@ -8166,7 +7996,7 @@ elf_gc_record_vtentry (abfd, sec, h, addend)
              size_t oldbytes;
 
              oldbytes = ((h->vtable_entries_size / file_align + 1)
-                         * sizeof (boolean));
+                         * sizeof (bfd_boolean));
              memset (((char *) ptr) + oldbytes, 0, bytes - oldbytes);
            }
        }
@@ -8174,22 +8004,22 @@ elf_gc_record_vtentry (abfd, sec, h, addend)
        ptr = bfd_zmalloc ((bfd_size_type) bytes);
 
       if (ptr == NULL)
-       return false;
+       return FALSE;
 
       /* And arrange for that done flag to be at index -1.  */
       h->vtable_entries_used = ptr + 1;
       h->vtable_entries_size = size;
     }
 
-  h->vtable_entries_used[addend / file_align] = true;
+  h->vtable_entries_used[addend / file_align] = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* And an accompanying bit to work out final got entry offsets once
    we're done.  Should be called from final_link.  */
 
-boolean
+bfd_boolean
 elf_gc_common_finalize_got_offsets (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -8242,13 +8072,13 @@ elf_gc_common_finalize_got_offsets (abfd, info)
   elf_link_hash_traverse (elf_hash_table (info),
                          elf_gc_allocate_got_offsets,
                          (PTR) &gotoff);
-  return true;
+  return TRUE;
 }
 
 /* We need a special top-level link routine to convert got reference counts
    to real got offsets.  */
 
-static boolean
+static bfd_boolean
 elf_gc_allocate_got_offsets (h, offarg)
      struct elf_link_hash_entry *h;
      PTR offarg;
@@ -8266,19 +8096,19 @@ elf_gc_allocate_got_offsets (h, offarg)
   else
     h->got.offset = (bfd_vma) -1;
 
-  return true;
+  return TRUE;
 }
 
 /* Many folk need no more in the way of final link than this, once
    got entry reference counting is enabled.  */
 
-boolean
+bfd_boolean
 elf_gc_common_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   if (!elf_gc_common_finalize_got_offsets (abfd, info))
-    return false;
+    return FALSE;
 
   /* Invoke the regular ELF backend linker to do all the work.  */
   return elf_bfd_final_link (abfd, info);
@@ -8287,7 +8117,7 @@ elf_gc_common_final_link (abfd, info)
 /* This function will be called though elf_link_hash_traverse to store
    all hash value of the exported symbols in an array.  */
 
-static boolean
+static bfd_boolean
 elf_collect_hash_codes (h, data)
      struct elf_link_hash_entry *h;
      PTR data;
@@ -8303,7 +8133,7 @@ elf_collect_hash_codes (h, data)
 
   /* Ignore indirect symbols.  These are added by the versioning code.  */
   if (h->dynindx == -1)
-    return true;
+    return TRUE;
 
   name = h->root.root.string;
   p = strchr (name, ELF_VER_CHR);
@@ -8328,10 +8158,10 @@ elf_collect_hash_codes (h, data)
   if (alc != NULL)
     free (alc);
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 elf_reloc_symbol_deleted_p (offset, cookie)
      bfd_vma offset;
      PTR cookie;
@@ -8347,13 +8177,13 @@ elf_reloc_symbol_deleted_p (offset, cookie)
 
       if (! rcookie->bad_symtab)
        if (rcookie->rel->r_offset > offset)
-         return false;
+         return FALSE;
       if (rcookie->rel->r_offset != offset)
        continue;
 
       r_symndx = ELF_R_SYM (rcookie->rel->r_info);
       if (r_symndx == SHN_UNDEF)
-       return true;
+       return TRUE;
 
       if (r_symndx >= rcookie->locsymcount
          || ELF_ST_BIND (rcookie->locsyms[r_symndx].st_info) != STB_LOCAL)
@@ -8369,9 +8199,9 @@ elf_reloc_symbol_deleted_p (offset, cookie)
          if ((h->root.type == bfd_link_hash_defined
               || h->root.type == bfd_link_hash_defweak)
              && elf_discarded_section (h->root.u.def.section))
-           return true;
+           return TRUE;
          else
-           return false;
+           return FALSE;
        }
       else
        {
@@ -8387,20 +8217,20 @@ elf_reloc_symbol_deleted_p (offset, cookie)
            {
              isec = section_from_elf_index (rcookie->abfd, isym->st_shndx);
              if (isec != NULL && elf_discarded_section (isec))
-               return true;
+               return TRUE;
            }
        }
-      return false;
+      return FALSE;
     }
-  return false;
+  return FALSE;
 }
 
 /* Discard unneeded references to discarded sections.
-   Returns true if any section's size was changed.  */
+   Returns TRUE if any section's size was changed.  */
 /* This function assumes that the relocations are in sorted order,
    which is true for all known assemblers.  */
 
-boolean
+bfd_boolean
 elf_bfd_discard_info (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -8411,12 +8241,12 @@ elf_bfd_discard_info (output_bfd, info)
   struct elf_backend_data *bed;
   bfd *abfd;
   unsigned int count;
-  boolean ret = false;
+  bfd_boolean ret = FALSE;
 
   if (info->traditional_format
       || info->hash->creator->flavour != bfd_target_elf_flavour
       || ! is_elf_hash_table (info))
-    return false;
+    return FALSE;
 
   for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link_next)
     {
@@ -8468,7 +8298,7 @@ elf_bfd_discard_info (output_bfd, info)
                                                 cookie.locsymcount, 0,
                                                 NULL, NULL, NULL);
          if (cookie.locsyms == NULL)
-           return false;
+           return FALSE;
        }
 
       if (stab != NULL)
@@ -8488,7 +8318,7 @@ elf_bfd_discard_info (output_bfd, info)
                                              elf_section_data (stab)->sec_info,
                                              elf_reloc_symbol_deleted_p,
                                              &cookie))
-               ret = true;
+               ret = TRUE;
              if (elf_section_data (stab)->relocs != cookie.rels)
                free (cookie.rels);
            }
@@ -8510,7 +8340,7 @@ elf_bfd_discard_info (output_bfd, info)
          if (_bfd_elf_discard_section_eh_frame (abfd, info, eh,
                                                 elf_reloc_symbol_deleted_p,
                                                 &cookie))
-           ret = true;
+           ret = TRUE;
 
          if (cookie.rels != NULL
              && elf_section_data (eh)->relocs != cookie.rels)
@@ -8519,7 +8349,7 @@ elf_bfd_discard_info (output_bfd, info)
 
       if (bed->elf_backend_discard_info != NULL
          && (*bed->elf_backend_discard_info) (abfd, &cookie, info))
-       ret = true;
+       ret = TRUE;
 
       if (cookie.locsyms != NULL
          && symtab_hdr->contents != (unsigned char *) cookie.locsyms)
@@ -8533,12 +8363,12 @@ elf_bfd_discard_info (output_bfd, info)
 
   if (info->eh_frame_hdr
       && _bfd_elf_discard_section_eh_frame_hdr (output_bfd, info))
-    ret = true;
+    ret = TRUE;
 
   return ret;
 }
 
-static boolean
+static bfd_boolean
 elf_section_ignore_discarded_relocs (sec)
      asection *sec;
 {
@@ -8548,7 +8378,7 @@ elf_section_ignore_discarded_relocs (sec)
     {
     case ELF_INFO_TYPE_STABS:
     case ELF_INFO_TYPE_EH_FRAME:
-      return true;
+      return TRUE;
     default:
       break;
     }
@@ -8556,7 +8386,7 @@ elf_section_ignore_discarded_relocs (sec)
   bed = get_elf_backend_data (sec->owner);
   if (bed->elf_backend_ignore_discarded_relocs != NULL
       && (*bed->elf_backend_ignore_discarded_relocs) (sec))
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
index 916b16bd0ad39de813f0877e5f2c3e68179d65a1..144a9da13bf3ea946e49499be286da520f961e17 100644 (file)
@@ -55,9 +55,10 @@ static bfd_reloc_status_type mips_elf_lo16_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type mips_elf_got16_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static boolean mips_elf_assign_gp PARAMS ((bfd *, bfd_vma *));
+static bfd_boolean mips_elf_assign_gp
+  PARAMS ((bfd *, bfd_vma *));
 static bfd_reloc_status_type mips_elf_final_gp
-  PARAMS ((bfd *, asymbol *, boolean, char **, bfd_vma *));
+  PARAMS ((bfd *, asymbol *, bfd_boolean, char **, bfd_vma *));
 static bfd_reloc_status_type mips_elf_gprel16_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type mips_elf_literal_reloc
@@ -65,7 +66,8 @@ static bfd_reloc_status_type mips_elf_literal_reloc
 static bfd_reloc_status_type mips_elf_gprel32_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type gprel32_with_gp
-  PARAMS ((bfd *, asymbol *, arelent *, asection *, boolean, PTR, bfd_vma));
+  PARAMS ((bfd *, asymbol *, arelent *, asection *, bfd_boolean, PTR,
+          bfd_vma));
 static bfd_reloc_status_type mips_elf_shift6_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static bfd_reloc_status_type mips16_jump_reloc
@@ -75,16 +77,18 @@ static bfd_reloc_status_type mips16_gprel_reloc
 static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static reloc_howto_type *mips_elf_n32_rtype_to_howto
-  PARAMS ((unsigned int, boolean));
+  PARAMS ((unsigned int, bfd_boolean));
 static void mips_info_to_howto_rel
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static void mips_info_to_howto_rela
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
-static boolean mips_elf_sym_is_global PARAMS ((bfd *, asymbol *));
-static boolean mips_elf_n32_object_p PARAMS ((bfd *));
-static boolean elf32_mips_grok_prstatus
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+static bfd_boolean mips_elf_sym_is_global
+  PARAMS ((bfd *, asymbol *));
+static bfd_boolean mips_elf_n32_object_p
+  PARAMS ((bfd *));
+static bfd_boolean elf32_mips_grok_prstatus
   PARAMS ((bfd *, Elf_Internal_Note *));
-static boolean elf32_mips_grok_psinfo
+static bfd_boolean elf32_mips_grok_psinfo
   PARAMS ((bfd *, Elf_Internal_Note *));
 static irix_compat_t elf_n32_mips_irix_compat
   PARAMS ((bfd *));
@@ -119,67 +123,67 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit relocation.  */
   HOWTO (R_MIPS_16,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_16",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit relocation.  */
   HOWTO (R_MIPS_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_32",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit symbol relative relocation.  */
   HOWTO (R_MIPS_REL32,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_REL32",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 26 bit jump address.  */
   HOWTO (R_MIPS_26,            /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -187,10 +191,10 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
                                   bits must match the PC + 4.  */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_26",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x03ffffff,            /* src_mask */
         0x03ffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* R_MIPS_HI16 and R_MIPS_LO16 are unsupported for NewABI REL.
      However, the native IRIX6 tools use them, so we try our best. */
@@ -200,120 +204,120 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_hi16_reloc,   /* special_function */
         "R_MIPS_HI16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of symbol value.  */
   HOWTO (R_MIPS_LO16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_lo16_reloc,   /* special_function */
         "R_MIPS_LO16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GP relative reference.  */
   HOWTO (R_MIPS_GPREL16,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_gprel16_reloc, /* special_function */
         "R_MIPS_GPREL16",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to literal section.  */
   HOWTO (R_MIPS_LITERAL,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_literal_reloc, /* special_function */
         "R_MIPS_LITERAL",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to global offset table.  */
   HOWTO (R_MIPS_GOT16,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_got16_reloc,  /* special_function */
         "R_MIPS_GOT16",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit PC relative reference.  */
   HOWTO (R_MIPS_PC16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_PC16",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 16 bit call through global offset table.  */
   HOWTO (R_MIPS_CALL16,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL16",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit GP relative reference.  */
   HOWTO (R_MIPS_GPREL32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_gprel32_reloc, /* special_function */
         "R_MIPS_GPREL32",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The remaining relocs are defined on Irix 5, although they are
      not defined by the ABI.  */
@@ -326,135 +330,135 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         5,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_SHIFT5",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000007c0,            /* src_mask */
         0x000007c0,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 6 bit shift field.  */
   HOWTO (R_MIPS_SHIFT6,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_elf_shift6_reloc, /* special_function */
         "R_MIPS_SHIFT6",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x000007c4,            /* src_mask */
         0x000007c4,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 64 bit relocation.  */
   HOWTO (R_MIPS_64,            /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_64",           /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement in the global offset table.  */
   HOWTO (R_MIPS_GOT_DISP,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_DISP",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement to page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_PAGE,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_PAGE",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Offset from page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_OFST,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_OFST",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_HI16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_HI16",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_LO16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_LO16",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit subtraction.  */
   HOWTO (R_MIPS_SUB,           /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_SUB",          /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Insert the addend as an instruction.  */
   /* FIXME: Not handled correctly.  */
@@ -462,15 +466,15 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_INSERT_A",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Insert the addend as an instruction, and change all relocations
      to refer to the old instruction at the address.  */
@@ -479,15 +483,15 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_INSERT_B",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Delete a 32 bit instruction.  */
   /* FIXME: Not handled correctly.  */
@@ -495,15 +499,15 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_DELETE",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The MIPS ELF64 ABI Draft wants us to support these for REL relocations.
      We don't, because
@@ -519,59 +523,59 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_HI16",    /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_LO16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_LO16",    /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x0000ffff,            /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Section displacement.  */
   HOWTO (R_MIPS_SCN_DISP,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_SCN_DISP",     /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_MIPS_REL16,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_REL16",        /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* These two are obsolete.  */
   EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE),
@@ -583,15 +587,15 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_RELGOT",       /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Protected jump conversion.  This is an optimization hint.  No
      relocation is required for correctness.  */
@@ -599,15 +603,15 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_JALR",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0x00000000,            /* src_mask */
         0x00000000,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 /* The relocation table used for SHT_RELA sections.  */
@@ -619,67 +623,67 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_NONE",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit relocation.  */
   HOWTO (R_MIPS_16,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_16",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit relocation.  */
   HOWTO (R_MIPS_32,            /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_32",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit symbol relative relocation.  */
   HOWTO (R_MIPS_REL32,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_REL32",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 26 bit jump address.  */
   HOWTO (R_MIPS_26,            /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -687,130 +691,130 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
                                   bits must match the PC + 4.  */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_26",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x03ffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of symbol value.  */
   HOWTO (R_MIPS_HI16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_HI16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of symbol value.  */
   HOWTO (R_MIPS_LO16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_LO16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* GP relative reference.  */
   HOWTO (R_MIPS_GPREL16,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_gprel16_reloc, /* special_function */
         "R_MIPS_GPREL16",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to literal section.  */
   HOWTO (R_MIPS_LITERAL,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_literal_reloc, /* special_function */
         "R_MIPS_LITERAL",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Reference to global offset table.  */
   HOWTO (R_MIPS_GOT16,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_got16_reloc,  /* special_function */
         "R_MIPS_GOT16",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit PC relative reference.  */
   HOWTO (R_MIPS_PC16,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_PC16",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* 16 bit call through global offset table.  */
   HOWTO (R_MIPS_CALL16,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL16",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit GP relative reference.  */
   HOWTO (R_MIPS_GPREL32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_gprel32_reloc, /* special_function */
         "R_MIPS_GPREL32",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (13),
   EMPTY_HOWTO (14),
@@ -821,135 +825,135 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         5,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_SHIFT5",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x000007c0,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 6 bit shift field.  */
   HOWTO (R_MIPS_SHIFT6,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         6,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         6,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_elf_shift6_reloc, /* special_function */
         "R_MIPS_SHIFT6",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x000007c4,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit relocation.  */
   HOWTO (R_MIPS_64,            /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_64",           /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement in the global offset table.  */
   HOWTO (R_MIPS_GOT_DISP,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_DISP",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Displacement to page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_PAGE,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_PAGE",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Offset from page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_OFST,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_OFST",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_HI16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_HI16",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_LO16,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_GOT_LO16",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 64 bit substraction.  */
   HOWTO (R_MIPS_SUB,           /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_SUB",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Insert the addend as an instruction.  */
   /* FIXME: Not handled correctly.  */
@@ -957,15 +961,15 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_INSERT_A",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Insert the addend as an instruction, and change all relocations
      to refer to the old instruction at the address.  */
@@ -974,15 +978,15 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_INSERT_B",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Delete a 32 bit instruction.  */
   /* FIXME: Not handled correctly.  */
@@ -990,105 +994,105 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_DELETE",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Get the higher value of a 64 bit addend.  */
   HOWTO (R_MIPS_HIGHER,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_HIGHER",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Get the highest value of a 64 bit addend.  */
   HOWTO (R_MIPS_HIGHEST,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_HIGHEST",      /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_HI16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_HI16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_LO16,     /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_CALL_LO16",    /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x0000ffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Section displacement, used by an associated event location section.  */
   HOWTO (R_MIPS_SCN_DISP,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_SCN_DISP",     /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit relocation.  */
   HOWTO (R_MIPS_REL16,         /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_REL16",        /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* These two are obsolete.  */
   EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE),
@@ -1100,15 +1104,15 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_RELGOT",       /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Protected jump conversion.  This is an optimization hint.  No
      relocation is required for correctness.  */
@@ -1116,15 +1120,15 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_elf_generic_reloc, /* special_function */
         "R_MIPS_JALR",         /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 /* The reloc used for the mips16 jump instruction.  */
@@ -1133,7 +1137,7 @@ static reloc_howto_type elf_mips16_jump_howto =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -1141,10 +1145,10 @@ static reloc_howto_type elf_mips16_jump_howto =
                                   bits must match the PC.  */
         mips16_jump_reloc,     /* special_function */
         "R_MIPS16_26",         /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3ffffff,             /* src_mask */
         0x3ffffff,             /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* The reloc used for the mips16 gprel instruction.  */
 static reloc_howto_type elf_mips16_gprel_howto =
@@ -1152,15 +1156,15 @@ static reloc_howto_type elf_mips16_gprel_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips16_gprel_reloc,    /* special_function */
         "R_MIPS16_GPREL",      /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x07ff001f,            /* src_mask */
         0x07ff001f,            /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* GNU extension to record C++ vtable hierarchy */
 static reloc_howto_type elf_mips_gnu_vtinherit_howto =
@@ -1168,15 +1172,15 @@ static reloc_howto_type elf_mips_gnu_vtinherit_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         NULL,                  /* special_function */
         "R_MIPS_GNU_VTINHERIT", /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* GNU extension to record C++ vtable member usage */
 static reloc_howto_type elf_mips_gnu_vtentry_howto =
@@ -1184,15 +1188,15 @@ static reloc_howto_type elf_mips_gnu_vtentry_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         _bfd_elf_rel_vtable_reloc_fn, /* special_function */
         "R_MIPS_GNU_VTENTRY",  /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 \f
 /* This is derived from bfd_elf_generic_reloc.  NewABI allows us to have
    several relocations against the same address.  The addend is derived
@@ -1425,10 +1429,10 @@ mips_elf_got16_reloc (abfd, reloc_entry, symbol, data, input_section,
                                 input_section, output_bfd, error_message);
 }
 
-/* Set the GP value for OUTPUT_BFD.  Returns false if this is a
+/* Set the GP value for OUTPUT_BFD.  Returns FALSE if this is a
    dangerous relocation.  */
 
-static boolean
+static bfd_boolean
 mips_elf_assign_gp (output_bfd, pgp)
      bfd *output_bfd;
      bfd_vma *pgp;
@@ -1440,7 +1444,7 @@ mips_elf_assign_gp (output_bfd, pgp)
   /* If we've already figured out what GP will be, just return it.  */
   *pgp = _bfd_get_gp_value (output_bfd);
   if (*pgp)
-    return true;
+    return TRUE;
 
   count = bfd_get_symcount (output_bfd);
   sym = bfd_get_outsymbols (output_bfd);
@@ -1470,10 +1474,10 @@ mips_elf_assign_gp (output_bfd, pgp)
       /* Only get the error once.  */
       *pgp = 4;
       _bfd_set_gp_value (output_bfd, *pgp);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We have to figure out the gp value, so that we can adjust the
@@ -1486,7 +1490,7 @@ static bfd_reloc_status_type
 mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
      bfd *output_bfd;
      asymbol *symbol;
-     boolean relocateable;
+     bfd_boolean relocateable;
      char **error_message;
      bfd_vma *pgp;
 {
@@ -1533,17 +1537,17 @@ mips_elf_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message ATTRIBUTE_UNUSED;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
   GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section)
 
   if (output_bfd != (bfd *) NULL)
-    relocateable = true;
+    relocateable = TRUE;
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -1570,7 +1574,7 @@ mips_elf_literal_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1578,10 +1582,10 @@ mips_elf_literal_reloc (abfd, reloc_entry, symbol, data, input_section,
 
   /* FIXME: The entries in the .lit8 and .lit4 sections should be merged.  */
   if (output_bfd != (bfd *) NULL)
-    relocateable = true;
+    relocateable = TRUE;
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -1609,7 +1613,7 @@ mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
 
@@ -1629,12 +1633,12 @@ mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
 
   if (output_bfd != (bfd *) NULL)
     {
-      relocateable = true;
+      relocateable = TRUE;
       gp = _bfd_get_gp_value (output_bfd);
     }
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
 
       ret = mips_elf_final_gp (output_bfd, symbol, relocateable,
@@ -1654,7 +1658,7 @@ gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data,
      asymbol *symbol;
      arelent *reloc_entry;
      asection *input_section;
-     boolean relocateable;
+     bfd_boolean relocateable;
      PTR data;
      bfd_vma gp;
 {
@@ -1732,7 +1736,7 @@ mips16_jump_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message ATTRIBUTE_UNUSED;
 {
-  static boolean warned = false;
+  static bfd_boolean warned = FALSE;
 
   GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section)
 
@@ -1741,7 +1745,7 @@ mips16_jump_reloc (abfd, reloc_entry, symbol, data, input_section,
     (*_bfd_error_handler)
       (_("Linking mips16 objects into %s format is not supported"),
        bfd_get_target (input_section->output_section->owner));
-  warned = true;
+  warned = TRUE;
 
   return bfd_reloc_undefined;
 }
@@ -1759,7 +1763,7 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
      bfd *output_bfd;
      char **error_message;
 {
-  boolean relocateable;
+  bfd_boolean relocateable;
   bfd_reloc_status_type ret;
   bfd_vma gp;
   unsigned short extend, insn;
@@ -1768,10 +1772,10 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
   GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section)
 
   if (output_bfd != NULL)
-    relocateable = true;
+    relocateable = TRUE;
   else
     {
-      relocateable = false;
+      relocateable = FALSE;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -1896,12 +1900,12 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
     }
 }
 
-/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure.  */
+/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure.  */
 
 static reloc_howto_type *
 mips_elf_n32_rtype_to_howto (r_type, rela_p)
      unsigned int r_type;
-     boolean rela_p;
+     bfd_boolean rela_p;
 {
   switch (r_type)
     {
@@ -1923,18 +1927,18 @@ mips_elf_n32_rtype_to_howto (r_type, rela_p)
     }
 }
 
-/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure.  */
+/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure.  */
 
 static void
 mips_info_to_howto_rel (abfd, cache_ptr, dst)
      bfd *abfd;
      arelent *cache_ptr;
-     Elf32_Internal_Rel *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
   r_type = ELF32_R_TYPE (dst->r_info);
-  cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, false);
+  cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, FALSE);
 
   /* The addend for a GPREL16 or LITERAL relocation comes from the GP
      value for the object file.  We get the addend now, rather than
@@ -1946,18 +1950,18 @@ mips_info_to_howto_rel (abfd, cache_ptr, dst)
     cache_ptr->addend = elf_gp (abfd);
 }
 
-/* Given a MIPS Elf32_Internal_Rela, fill in an arelent structure.  */
+/* Given a MIPS Elf_Internal_Rela, fill in an arelent structure.  */
 
 static void
 mips_info_to_howto_rela (abfd, cache_ptr, dst)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *cache_ptr;
-     Elf32_Internal_Rela *dst;
+     Elf_Internal_Rela *dst;
 {
   unsigned int r_type;
 
   r_type = ELF32_R_TYPE (dst->r_info);
-  cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, true);
+  cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, TRUE);
   cache_ptr->addend = dst->r_addend;
 }
 \f
@@ -1967,7 +1971,7 @@ mips_info_to_howto_rela (abfd, cache_ptr, dst)
    symbols.  On most ELF targets the split is between static symbols
    and externally visible symbols.  */
 
-static boolean
+static bfd_boolean
 mips_elf_sym_is_global (abfd, sym)
      bfd *abfd ATTRIBUTE_UNUSED;
      asymbol *sym;
@@ -1982,7 +1986,7 @@ mips_elf_sym_is_global (abfd, sym)
 \f
 /* Set the right machine number for a MIPS ELF file.  */
 
-static boolean
+static bfd_boolean
 mips_elf_n32_object_p (abfd)
      bfd *abfd;
 {
@@ -1992,19 +1996,19 @@ mips_elf_n32_object_p (abfd)
      sorted correctly such that local symbols precede global symbols,
      and the sh_info field in the symbol table is not always right.  */
   if (SGI_COMPAT (abfd))
-    elf_bad_symtab (abfd) = true;
+    elf_bad_symtab (abfd) = TRUE;
 
   mach = _bfd_elf_mips_mach (elf_elfheader (abfd)->e_flags);
   bfd_default_set_arch_mach (abfd, bfd_arch_mips, mach);
 
   if (! ABI_N32_P(abfd))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Support for core dump NOTE sections.  */
-static boolean
+static bfd_boolean
 elf32_mips_grok_prstatus (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -2015,7 +2019,7 @@ elf32_mips_grok_prstatus (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 256:                /* Linux/MIPS */
        /* pr_cursig */
@@ -2036,7 +2040,7 @@ elf32_mips_grok_prstatus (abfd, note)
                                          note->descpos + offset);
 }
 
-static boolean
+static bfd_boolean
 elf32_mips_grok_psinfo (abfd, note)
      bfd *abfd;
      Elf_Internal_Note *note;
@@ -2044,7 +2048,7 @@ elf32_mips_grok_psinfo (abfd, note)
   switch (note->descsz)
     {
       default:
-       return false;
+       return FALSE;
 
       case 128:                /* Linux/MIPS elf_prpsinfo */
        elf_tdata (abfd)->core_program
@@ -2065,7 +2069,7 @@ elf32_mips_grok_psinfo (abfd, note)
       command[n - 1] = '\0';
   }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Depending on the target vector we generate some version of Irix
@@ -2131,9 +2135,9 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
    FIXME: How does this affect NewABI?  */
 #define ELF_MAXPAGESIZE                        0x1000
 
-#define elf_backend_collect            true
-#define elf_backend_type_change_ok     true
-#define elf_backend_can_gc_sections    true
+#define elf_backend_collect            TRUE
+#define elf_backend_type_change_ok     TRUE
+#define elf_backend_can_gc_sections    TRUE
 #define elf_info_to_howto              mips_info_to_howto_rela
 #define elf_info_to_howto_rel          mips_info_to_howto_rel
 #define elf_backend_sym_is_global      mips_elf_sym_is_global
@@ -2183,7 +2187,7 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
 #define elf_backend_may_use_rel_p      1
 #define elf_backend_may_use_rela_p     1
 #define elf_backend_default_use_rela_p 1
-#define elf_backend_sign_extend_vma    true
+#define elf_backend_sign_extend_vma    TRUE
 
 #define elf_backend_discard_info       _bfd_mips_elf_discard_info
 #define elf_backend_ignore_discarded_relocs \
index ddd86fbfda52aa86234560903888dbc237851a5a..aa4c5ad8136792608d2d16bf72eb0fdebf1fb2bf 100644 (file)
 #include "elf/ia64.h"
 
 /* THE RULES for all the stuff the linker creates --
+
   GOT          Entries created in response to LTOFF or LTOFF_FPTR
                relocations.  Dynamic relocs created for dynamic
                symbols in an application; REL relocs for locals
                in a shared library.
+
   FPTR         The canonical function descriptor.  Created for local
                symbols in applications.  Descriptors for dynamic symbols
                and local symbols in shared libraries are created by
                ld.so.  Thus there are no dynamic relocs against these
                objects.  The FPTR relocs for such _are_ passed through
                to the dynamic relocation tables.
+
   FULL_PLT     Created for a PCREL21B relocation against a dynamic symbol.
                Requires the creation of a PLTOFF entry.  This does not
                require any dynamic relocations.
+
   PLTOFF       Created by PLTOFF relocations.  For local symbols, this
                is an alternate function descriptor, and in shared libraries
                requires two REL relocations.  Note that this cannot be
                transformed into an FPTR relocation, since it must be in
                range of the GP.  For dynamic symbols, this is a function
                descriptor for a MIN_PLT entry, and requires one IPLT reloc.
+
   MIN_PLT      Created by PLTOFF entries against dynamic symbols.  This
                does not reqire dynamic relocations.  */
 
@@ -92,7 +92,7 @@ struct elfNN_ia64_dyn_sym_info
     int count;
   } *reloc_entries;
 
-  /* True when the section contents have been updated.  */
+  /* TRUE when the section contents have been updated.  */
   unsigned got_done : 1;
   unsigned fptr_done : 1;
   unsigned pltoff_done : 1;
@@ -100,7 +100,7 @@ struct elfNN_ia64_dyn_sym_info
   unsigned dtpmod_done : 1;
   unsigned dtprel_done : 1;
 
-  /* True for the different kinds of linker data we want created.  */
+  /* TRUE for the different kinds of linker data we want created.  */
   unsigned want_got : 1;
   unsigned want_fptr : 1;
   unsigned want_ltoff_fptr : 1;
@@ -117,7 +117,7 @@ struct elfNN_ia64_local_hash_entry
   struct bfd_hash_entry root;
   struct elfNN_ia64_dyn_sym_info *info;
 
-  /* True if this hash entry's addends was translated for
+  /* TRUE if this hash entry's addends was translated for
      SHF_MERGE optimization.  */
   unsigned sec_merge_done : 1;
 };
@@ -163,41 +163,41 @@ static reloc_howto_type * lookup_howto
 static reloc_howto_type *elfNN_ia64_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type bfd_code));
 static void elfNN_ia64_info_to_howto
-  PARAMS ((bfd *abfd, arelent *bfd_reloc, ElfNN_Internal_Rela *elf_reloc));
-static boolean elfNN_ia64_relax_section
+  PARAMS ((bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc));
+static bfd_boolean elfNN_ia64_relax_section
   PARAMS((bfd *abfd, asection *sec, struct bfd_link_info *link_info,
-         boolean *again));
-static boolean is_unwind_section_name
+         bfd_boolean *again));
+static bfd_boolean is_unwind_section_name
   PARAMS ((bfd *abfd, const char *));
-static boolean elfNN_ia64_section_from_shdr
-  PARAMS ((bfd *, ElfNN_Internal_Shdr *, const char *));
-static boolean elfNN_ia64_section_flags
-  PARAMS ((flagword *, ElfNN_Internal_Shdr *));
-static boolean elfNN_ia64_fake_sections
-  PARAMS ((bfd *abfd, ElfNN_Internal_Shdr *hdr, asection *sec));
+static bfd_boolean elfNN_ia64_section_from_shdr
+  PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
+static bfd_boolean elfNN_ia64_section_flags
+  PARAMS ((flagword *, Elf_Internal_Shdr *));
+static bfd_boolean elfNN_ia64_fake_sections
+  PARAMS ((bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec));
 static void elfNN_ia64_final_write_processing
-  PARAMS ((bfd *abfd, boolean linker));
-static boolean elfNN_ia64_add_symbol_hook
+  PARAMS ((bfd *abfd, bfd_boolean linker));
+static bfd_boolean elfNN_ia64_add_symbol_hook
   PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym,
           const char **namep, flagword *flagsp, asection **secp,
           bfd_vma *valp));
-static boolean elfNN_ia64_aix_vec
+static bfd_boolean elfNN_ia64_aix_vec
   PARAMS ((const bfd_target *vec));
-static boolean elfNN_ia64_aix_add_symbol_hook
+static bfd_boolean elfNN_ia64_aix_add_symbol_hook
   PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym,
           const char **namep, flagword *flagsp, asection **secp,
           bfd_vma *valp));
-static boolean elfNN_ia64_aix_link_add_symbols
+static bfd_boolean elfNN_ia64_aix_link_add_symbols
   PARAMS ((bfd *abfd, struct bfd_link_info *info));
 static int elfNN_ia64_additional_program_headers
   PARAMS ((bfd *abfd));
-static boolean elfNN_ia64_modify_segment_map
+static bfd_boolean elfNN_ia64_modify_segment_map
   PARAMS ((bfd *));
-static boolean elfNN_ia64_is_local_label_name
+static bfd_boolean elfNN_ia64_is_local_label_name
   PARAMS ((bfd *abfd, const char *name));
-static boolean elfNN_ia64_dynamic_symbol_p
+static bfd_boolean elfNN_ia64_dynamic_symbol_p
   PARAMS ((struct elf_link_hash_entry *h, struct bfd_link_info *info));
-static boolean elfNN_ia64_local_hash_table_init
+static bfd_boolean elfNN_ia64_local_hash_table_init
   PARAMS ((struct elfNN_ia64_local_hash_table *ht, bfd *abfd,
           new_hash_entry_func new));
 static struct bfd_hash_entry *elfNN_ia64_new_loc_hash_entry
@@ -210,29 +210,29 @@ static void elfNN_ia64_hash_copy_indirect
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
           struct elf_link_hash_entry *));
 static void elfNN_ia64_hash_hide_symbol
-  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean));
+  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
 static struct bfd_link_hash_table *elfNN_ia64_hash_table_create
   PARAMS ((bfd *abfd));
 static struct elfNN_ia64_local_hash_entry *elfNN_ia64_local_hash_lookup
   PARAMS ((struct elfNN_ia64_local_hash_table *table, const char *string,
-          boolean create, boolean copy));
-static boolean elfNN_ia64_global_dyn_sym_thunk
+          bfd_boolean create, bfd_boolean copy));
+static bfd_boolean elfNN_ia64_global_dyn_sym_thunk
   PARAMS ((struct bfd_hash_entry *, PTR));
-static boolean elfNN_ia64_local_dyn_sym_thunk
+static bfd_boolean elfNN_ia64_local_dyn_sym_thunk
   PARAMS ((struct bfd_hash_entry *, PTR));
 static void elfNN_ia64_dyn_sym_traverse
   PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info,
-          boolean (*func) (struct elfNN_ia64_dyn_sym_info *, PTR),
+          bfd_boolean (*func) (struct elfNN_ia64_dyn_sym_info *, PTR),
           PTR info));
-static boolean elfNN_ia64_create_dynamic_sections
+static bfd_boolean elfNN_ia64_create_dynamic_sections
   PARAMS ((bfd *abfd, struct bfd_link_info *info));
 static struct elfNN_ia64_local_hash_entry * get_local_sym_hash
   PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info,
-          bfd *abfd, const Elf_Internal_Rela *rel, boolean create));
+          bfd *abfd, const Elf_Internal_Rela *rel, bfd_boolean create));
 static struct elfNN_ia64_dyn_sym_info * get_dyn_sym_info
   PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info,
           struct elf_link_hash_entry *h,
-          bfd *abfd, const Elf_Internal_Rela *rel, boolean create));
+          bfd *abfd, const Elf_Internal_Rela *rel, bfd_boolean create));
 static asection *get_got
   PARAMS ((bfd *abfd, struct bfd_link_info *info,
           struct elfNN_ia64_link_hash_table *ia64_info));
@@ -244,34 +244,34 @@ static asection *get_pltoff
           struct elfNN_ia64_link_hash_table *ia64_info));
 static asection *get_reloc_section
   PARAMS ((bfd *abfd, struct elfNN_ia64_link_hash_table *ia64_info,
-          asection *sec, boolean create));
-static boolean count_dyn_reloc
+          asection *sec, bfd_boolean create));
+static bfd_boolean count_dyn_reloc
   PARAMS ((bfd *abfd, struct elfNN_ia64_dyn_sym_info *dyn_i,
           asection *srel, int type));
-static boolean elfNN_ia64_check_relocs
+static bfd_boolean elfNN_ia64_check_relocs
   PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *sec,
           const Elf_Internal_Rela *relocs));
-static boolean elfNN_ia64_adjust_dynamic_symbol
+static bfd_boolean elfNN_ia64_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *h));
 static long global_sym_index
   PARAMS ((struct elf_link_hash_entry *h));
-static boolean allocate_fptr
+static bfd_boolean allocate_fptr
   PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data));
-static boolean allocate_global_data_got
+static bfd_boolean allocate_global_data_got
   PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data));
-static boolean allocate_global_fptr_got
+static bfd_boolean allocate_global_fptr_got
   PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data));
-static boolean allocate_local_got
+static bfd_boolean allocate_local_got
   PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data));
-static boolean allocate_pltoff_entries
+static bfd_boolean allocate_pltoff_entries
   PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data));
-static boolean allocate_plt_entries
+static bfd_boolean allocate_plt_entries
   PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data));
-static boolean allocate_plt2_entries
+static bfd_boolean allocate_plt2_entries
   PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data));
-static boolean allocate_dynrel_entries
+static bfd_boolean allocate_dynrel_entries
   PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data));
-static boolean elfNN_ia64_size_dynamic_sections
+static bfd_boolean elfNN_ia64_size_dynamic_sections
   PARAMS ((bfd *output_bfd, struct bfd_link_info *info));
 static bfd_reloc_status_type elfNN_ia64_install_value
   PARAMS ((bfd *abfd, bfd_byte *hit_addr, bfd_vma val, unsigned int r_type));
@@ -290,38 +290,38 @@ static bfd_vma set_fptr_entry
 static bfd_vma set_pltoff_entry
   PARAMS ((bfd *abfd, struct bfd_link_info *info,
           struct elfNN_ia64_dyn_sym_info *dyn_i,
-          bfd_vma value, boolean));
+          bfd_vma value, bfd_boolean));
 static bfd_vma elfNN_ia64_tprel_base
   PARAMS ((struct bfd_link_info *info));
 static bfd_vma elfNN_ia64_dtprel_base
   PARAMS ((struct bfd_link_info *info));
 static int elfNN_ia64_unwind_entry_compare
   PARAMS ((const PTR, const PTR));
-static boolean elfNN_ia64_final_link
+static bfd_boolean elfNN_ia64_final_link
   PARAMS ((bfd *abfd, struct bfd_link_info *info));
-static boolean elfNN_ia64_relocate_section
+static bfd_boolean elfNN_ia64_relocate_section
   PARAMS ((bfd *output_bfd, struct bfd_link_info *info, bfd *input_bfd,
           asection *input_section, bfd_byte *contents,
           Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms,
           asection **local_sections));
-static boolean elfNN_ia64_finish_dynamic_symbol
+static bfd_boolean elfNN_ia64_finish_dynamic_symbol
   PARAMS ((bfd *output_bfd, struct bfd_link_info *info,
           struct elf_link_hash_entry *h, Elf_Internal_Sym *sym));
-static boolean elfNN_ia64_finish_dynamic_sections
+static bfd_boolean elfNN_ia64_finish_dynamic_sections
   PARAMS ((bfd *abfd, struct bfd_link_info *info));
-static boolean elfNN_ia64_set_private_flags
+static bfd_boolean elfNN_ia64_set_private_flags
   PARAMS ((bfd *abfd, flagword flags));
-static boolean elfNN_ia64_merge_private_bfd_data
+static bfd_boolean elfNN_ia64_merge_private_bfd_data
   PARAMS ((bfd *ibfd, bfd *obfd));
-static boolean elfNN_ia64_print_private_bfd_data
+static bfd_boolean elfNN_ia64_print_private_bfd_data
   PARAMS ((bfd *abfd, PTR ptr));
 static enum elf_reloc_type_class elfNN_ia64_reloc_type_class
   PARAMS ((const Elf_Internal_Rela *));
-static boolean elfNN_ia64_hpux_vec
+static bfd_boolean elfNN_ia64_hpux_vec
   PARAMS ((const bfd_target *vec));
 static void elfNN_hpux_post_process_headers
   PARAMS ((bfd *abfd, struct bfd_link_info *info));
-boolean elfNN_hpux_backend_section_from_bfd_section
+bfd_boolean elfNN_hpux_backend_section_from_bfd_section
   PARAMS ((bfd *abfd, asection *sec, int *retval));
 \f
 /* ia64-specific relocation.  */
@@ -350,108 +350,108 @@ elfNN_ia64_reloc (abfd, reloc, sym, data, input_section,
 
 #define IA64_HOWTO(TYPE, NAME, SIZE, PCREL, IN)                        \
   HOWTO (TYPE, 0, SIZE, 0, PCREL, 0, complain_overflow_signed, \
-        elfNN_ia64_reloc, NAME, false, 0, 0, IN)
+        elfNN_ia64_reloc, NAME, FALSE, 0, 0, IN)
 
 /* This table has to be sorted according to increasing number of the
    TYPE field.  */
 static reloc_howto_type ia64_howto_table[] =
   {
-    IA64_HOWTO (R_IA64_NONE,       "NONE",        0, false, true),
-
-    IA64_HOWTO (R_IA64_IMM14,      "IMM14",       0, false, true),
-    IA64_HOWTO (R_IA64_IMM22,      "IMM22",       0, false, true),
-    IA64_HOWTO (R_IA64_IMM64,      "IMM64",       0, false, true),
-    IA64_HOWTO (R_IA64_DIR32MSB,    "DIR32MSB",           2, false, true),
-    IA64_HOWTO (R_IA64_DIR32LSB,    "DIR32LSB",           2, false, true),
-    IA64_HOWTO (R_IA64_DIR64MSB,    "DIR64MSB",           4, false, true),
-    IA64_HOWTO (R_IA64_DIR64LSB,    "DIR64LSB",           4, false, true),
-
-    IA64_HOWTO (R_IA64_GPREL22,            "GPREL22",     0, false, true),
-    IA64_HOWTO (R_IA64_GPREL64I,    "GPREL64I",           0, false, true),
-    IA64_HOWTO (R_IA64_GPREL32MSB,  "GPREL32MSB",  2, false, true),
-    IA64_HOWTO (R_IA64_GPREL32LSB,  "GPREL32LSB",  2, false, true),
-    IA64_HOWTO (R_IA64_GPREL64MSB,  "GPREL64MSB",  4, false, true),
-    IA64_HOWTO (R_IA64_GPREL64LSB,  "GPREL64LSB",  4, false, true),
-
-    IA64_HOWTO (R_IA64_LTOFF22,            "LTOFF22",     0, false, true),
-    IA64_HOWTO (R_IA64_LTOFF64I,    "LTOFF64I",           0, false, true),
-
-    IA64_HOWTO (R_IA64_PLTOFF22,    "PLTOFF22",           0, false, true),
-    IA64_HOWTO (R_IA64_PLTOFF64I,   "PLTOFF64I",   0, false, true),
-    IA64_HOWTO (R_IA64_PLTOFF64MSB, "PLTOFF64MSB", 4, false, true),
-    IA64_HOWTO (R_IA64_PLTOFF64LSB, "PLTOFF64LSB", 4, false, true),
-
-    IA64_HOWTO (R_IA64_FPTR64I,            "FPTR64I",     0, false, true),
-    IA64_HOWTO (R_IA64_FPTR32MSB,   "FPTR32MSB",   2, false, true),
-    IA64_HOWTO (R_IA64_FPTR32LSB,   "FPTR32LSB",   2, false, true),
-    IA64_HOWTO (R_IA64_FPTR64MSB,   "FPTR64MSB",   4, false, true),
-    IA64_HOWTO (R_IA64_FPTR64LSB,   "FPTR64LSB",   4, false, true),
-
-    IA64_HOWTO (R_IA64_PCREL60B,    "PCREL60B",           0, true, true),
-    IA64_HOWTO (R_IA64_PCREL21B,    "PCREL21B",           0, true, true),
-    IA64_HOWTO (R_IA64_PCREL21M,    "PCREL21M",           0, true, true),
-    IA64_HOWTO (R_IA64_PCREL21F,    "PCREL21F",           0, true, true),
-    IA64_HOWTO (R_IA64_PCREL32MSB,  "PCREL32MSB",  2, true, true),
-    IA64_HOWTO (R_IA64_PCREL32LSB,  "PCREL32LSB",  2, true, true),
-    IA64_HOWTO (R_IA64_PCREL64MSB,  "PCREL64MSB",  4, true, true),
-    IA64_HOWTO (R_IA64_PCREL64LSB,  "PCREL64LSB",  4, true, true),
-
-    IA64_HOWTO (R_IA64_LTOFF_FPTR22, "LTOFF_FPTR22", 0, false, true),
-    IA64_HOWTO (R_IA64_LTOFF_FPTR64I, "LTOFF_FPTR64I", 0, false, true),
-    IA64_HOWTO (R_IA64_LTOFF_FPTR32MSB, "LTOFF_FPTR32MSB", 2, false, true),
-    IA64_HOWTO (R_IA64_LTOFF_FPTR32LSB, "LTOFF_FPTR32LSB", 2, false, true),
-    IA64_HOWTO (R_IA64_LTOFF_FPTR64MSB, "LTOFF_FPTR64MSB", 4, false, true),
-    IA64_HOWTO (R_IA64_LTOFF_FPTR64LSB, "LTOFF_FPTR64LSB", 4, false, true),
-
-    IA64_HOWTO (R_IA64_SEGREL32MSB, "SEGREL32MSB", 2, false, true),
-    IA64_HOWTO (R_IA64_SEGREL32LSB, "SEGREL32LSB", 2, false, true),
-    IA64_HOWTO (R_IA64_SEGREL64MSB, "SEGREL64MSB", 4, false, true),
-    IA64_HOWTO (R_IA64_SEGREL64LSB, "SEGREL64LSB", 4, false, true),
-
-    IA64_HOWTO (R_IA64_SECREL32MSB, "SECREL32MSB", 2, false, true),
-    IA64_HOWTO (R_IA64_SECREL32LSB, "SECREL32LSB", 2, false, true),
-    IA64_HOWTO (R_IA64_SECREL64MSB, "SECREL64MSB", 4, false, true),
-    IA64_HOWTO (R_IA64_SECREL64LSB, "SECREL64LSB", 4, false, true),
-
-    IA64_HOWTO (R_IA64_REL32MSB,    "REL32MSB",           2, false, true),
-    IA64_HOWTO (R_IA64_REL32LSB,    "REL32LSB",           2, false, true),
-    IA64_HOWTO (R_IA64_REL64MSB,    "REL64MSB",           4, false, true),
-    IA64_HOWTO (R_IA64_REL64LSB,    "REL64LSB",           4, false, true),
-
-    IA64_HOWTO (R_IA64_LTV32MSB,    "LTV32MSB",           2, false, true),
-    IA64_HOWTO (R_IA64_LTV32LSB,    "LTV32LSB",           2, false, true),
-    IA64_HOWTO (R_IA64_LTV64MSB,    "LTV64MSB",           4, false, true),
-    IA64_HOWTO (R_IA64_LTV64LSB,    "LTV64LSB",           4, false, true),
-
-    IA64_HOWTO (R_IA64_PCREL21BI,   "PCREL21BI",   0, true, true),
-    IA64_HOWTO (R_IA64_PCREL22,     "PCREL22",     0, true, true),
-    IA64_HOWTO (R_IA64_PCREL64I,    "PCREL64I",    0, true, true),
-
-    IA64_HOWTO (R_IA64_IPLTMSB,            "IPLTMSB",     4, false, true),
-    IA64_HOWTO (R_IA64_IPLTLSB,            "IPLTLSB",     4, false, true),
-    IA64_HOWTO (R_IA64_COPY,       "COPY",        4, false, true),
-    IA64_HOWTO (R_IA64_LTOFF22X,    "LTOFF22X",           0, false, true),
-    IA64_HOWTO (R_IA64_LDXMOV,     "LDXMOV",      0, false, true),
-
-    IA64_HOWTO (R_IA64_TPREL14,            "TPREL14",     0, false, false),
-    IA64_HOWTO (R_IA64_TPREL22,            "TPREL22",     0, false, false),
-    IA64_HOWTO (R_IA64_TPREL64I,    "TPREL64I",           0, false, false),
-    IA64_HOWTO (R_IA64_TPREL64MSB,  "TPREL64MSB",  8, false, false),
-    IA64_HOWTO (R_IA64_TPREL64LSB,  "TPREL64LSB",  8, false, false),
-    IA64_HOWTO (R_IA64_LTOFF_TPREL22, "LTOFF_TPREL22",  0, false, false),
-
-    IA64_HOWTO (R_IA64_DTPMOD64MSB, "TPREL64MSB",  8, false, false),
-    IA64_HOWTO (R_IA64_DTPMOD64LSB, "TPREL64LSB",  8, false, false),
-    IA64_HOWTO (R_IA64_LTOFF_DTPMOD22, "LTOFF_DTPMOD22", 0, false, false),
-
-    IA64_HOWTO (R_IA64_DTPREL14,    "DTPREL14",           0, false, false),
-    IA64_HOWTO (R_IA64_DTPREL22,    "DTPREL22",           0, false, false),
-    IA64_HOWTO (R_IA64_DTPREL64I,   "DTPREL64I",   0, false, false),
-    IA64_HOWTO (R_IA64_DTPREL32MSB, "DTPREL32MSB", 4, false, false),
-    IA64_HOWTO (R_IA64_DTPREL32LSB, "DTPREL32LSB", 4, false, false),
-    IA64_HOWTO (R_IA64_DTPREL64MSB, "DTPREL64MSB", 8, false, false),
-    IA64_HOWTO (R_IA64_DTPREL64LSB, "DTPREL64LSB", 8, false, false),
-    IA64_HOWTO (R_IA64_LTOFF_DTPREL22, "LTOFF_DTPREL22", 0, false, false),
+    IA64_HOWTO (R_IA64_NONE,       "NONE",        0, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_IMM14,      "IMM14",       0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_IMM22,      "IMM22",       0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_IMM64,      "IMM64",       0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_DIR32MSB,    "DIR32MSB",           2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_DIR32LSB,    "DIR32LSB",           2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_DIR64MSB,    "DIR64MSB",           4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_DIR64LSB,    "DIR64LSB",           4, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_GPREL22,            "GPREL22",     0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_GPREL64I,    "GPREL64I",           0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_GPREL32MSB,  "GPREL32MSB",  2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_GPREL32LSB,  "GPREL32LSB",  2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_GPREL64MSB,  "GPREL64MSB",  4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_GPREL64LSB,  "GPREL64LSB",  4, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_LTOFF22,            "LTOFF22",     0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTOFF64I,    "LTOFF64I",           0, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_PLTOFF22,    "PLTOFF22",           0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_PLTOFF64I,   "PLTOFF64I",   0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_PLTOFF64MSB, "PLTOFF64MSB", 4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_PLTOFF64LSB, "PLTOFF64LSB", 4, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_FPTR64I,            "FPTR64I",     0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_FPTR32MSB,   "FPTR32MSB",   2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_FPTR32LSB,   "FPTR32LSB",   2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_FPTR64MSB,   "FPTR64MSB",   4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_FPTR64LSB,   "FPTR64LSB",   4, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_PCREL60B,    "PCREL60B",           0, TRUE, TRUE),
+    IA64_HOWTO (R_IA64_PCREL21B,    "PCREL21B",           0, TRUE, TRUE),
+    IA64_HOWTO (R_IA64_PCREL21M,    "PCREL21M",           0, TRUE, TRUE),
+    IA64_HOWTO (R_IA64_PCREL21F,    "PCREL21F",           0, TRUE, TRUE),
+    IA64_HOWTO (R_IA64_PCREL32MSB,  "PCREL32MSB",  2, TRUE, TRUE),
+    IA64_HOWTO (R_IA64_PCREL32LSB,  "PCREL32LSB",  2, TRUE, TRUE),
+    IA64_HOWTO (R_IA64_PCREL64MSB,  "PCREL64MSB",  4, TRUE, TRUE),
+    IA64_HOWTO (R_IA64_PCREL64LSB,  "PCREL64LSB",  4, TRUE, TRUE),
+
+    IA64_HOWTO (R_IA64_LTOFF_FPTR22, "LTOFF_FPTR22", 0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTOFF_FPTR64I, "LTOFF_FPTR64I", 0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTOFF_FPTR32MSB, "LTOFF_FPTR32MSB", 2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTOFF_FPTR32LSB, "LTOFF_FPTR32LSB", 2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTOFF_FPTR64MSB, "LTOFF_FPTR64MSB", 4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTOFF_FPTR64LSB, "LTOFF_FPTR64LSB", 4, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_SEGREL32MSB, "SEGREL32MSB", 2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_SEGREL32LSB, "SEGREL32LSB", 2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_SEGREL64MSB, "SEGREL64MSB", 4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_SEGREL64LSB, "SEGREL64LSB", 4, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_SECREL32MSB, "SECREL32MSB", 2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_SECREL32LSB, "SECREL32LSB", 2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_SECREL64MSB, "SECREL64MSB", 4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_SECREL64LSB, "SECREL64LSB", 4, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_REL32MSB,    "REL32MSB",           2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_REL32LSB,    "REL32LSB",           2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_REL64MSB,    "REL64MSB",           4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_REL64LSB,    "REL64LSB",           4, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_LTV32MSB,    "LTV32MSB",           2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTV32LSB,    "LTV32LSB",           2, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTV64MSB,    "LTV64MSB",           4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTV64LSB,    "LTV64LSB",           4, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_PCREL21BI,   "PCREL21BI",   0, TRUE, TRUE),
+    IA64_HOWTO (R_IA64_PCREL22,     "PCREL22",     0, TRUE, TRUE),
+    IA64_HOWTO (R_IA64_PCREL64I,    "PCREL64I",    0, TRUE, TRUE),
+
+    IA64_HOWTO (R_IA64_IPLTMSB,            "IPLTMSB",     4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_IPLTLSB,            "IPLTLSB",     4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_COPY,       "COPY",        4, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LTOFF22X,    "LTOFF22X",           0, FALSE, TRUE),
+    IA64_HOWTO (R_IA64_LDXMOV,     "LDXMOV",      0, FALSE, TRUE),
+
+    IA64_HOWTO (R_IA64_TPREL14,            "TPREL14",     0, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_TPREL22,            "TPREL22",     0, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_TPREL64I,    "TPREL64I",           0, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_TPREL64MSB,  "TPREL64MSB",  8, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_TPREL64LSB,  "TPREL64LSB",  8, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_LTOFF_TPREL22, "LTOFF_TPREL22",  0, FALSE, FALSE),
+
+    IA64_HOWTO (R_IA64_DTPMOD64MSB, "TPREL64MSB",  8, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_DTPMOD64LSB, "TPREL64LSB",  8, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_LTOFF_DTPMOD22, "LTOFF_DTPMOD22", 0, FALSE, FALSE),
+
+    IA64_HOWTO (R_IA64_DTPREL14,    "DTPREL14",           0, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_DTPREL22,    "DTPREL22",           0, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_DTPREL64I,   "DTPREL64I",   0, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_DTPREL32MSB, "DTPREL32MSB", 4, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_DTPREL32LSB, "DTPREL32LSB", 4, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_DTPREL64MSB, "DTPREL64MSB", 8, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_DTPREL64LSB, "DTPREL64LSB", 8, FALSE, FALSE),
+    IA64_HOWTO (R_IA64_LTOFF_DTPREL22, "LTOFF_DTPREL22", 0, FALSE, FALSE),
   };
 
 static unsigned char elf_code_to_howto_index[R_IA64_MAX_RELOC_CODE + 1];
@@ -597,7 +597,7 @@ static void
 elfNN_ia64_info_to_howto (abfd, bfd_reloc, elf_reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
      arelent *bfd_reloc;
-     ElfNN_Internal_Rela *elf_reloc;
+     Elf_Internal_Rela *elf_reloc;
 {
   bfd_reloc->howto
     = lookup_howto ((unsigned int) ELFNN_R_TYPE (elf_reloc->r_info));
@@ -672,14 +672,15 @@ static const bfd_byte oor_ip[48] =
 /* These functions do relaxation for IA-64 ELF.
 
    This is primarily to support branches to targets out of range;
-   relaxation of R_IA64_LTOFF22X and R_IA64_LDXMOV not yet supported.  */
+   relaxation of R_IA64_LTOFF22X and R_IA64_LDXMOV is handled in
+   relocate_section directly.  */
 
-static boolean
+static bfd_boolean
 elfNN_ia64_relax_section (abfd, sec, link_info, again)
      bfd *abfd;
      asection *sec;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   struct one_fixup
     {
@@ -696,17 +697,17 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
   Elf_Internal_Sym *isymbuf = NULL;
   struct elfNN_ia64_link_hash_table *ia64_info;
   struct one_fixup *fixups = NULL;
-  boolean changed_contents = false;
-  boolean changed_relocs = false;
+  bfd_boolean changed_contents = FALSE;
+  bfd_boolean changed_relocs = FALSE;
 
   /* Assume we're not going to change any sizes, and we'll only need
      one pass.  */
-  *again = false;
+  *again = FALSE;
 
   /* Nothing to do if there are no relocations.  */
   if ((sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
-    return true;
+    return TRUE;
 
   /* If this is the first time we have been called for this section,
      initialize the cooked size.  */
@@ -720,23 +721,27 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
                     (abfd, sec, (PTR) NULL, (Elf_Internal_Rela *) NULL,
                      link_info->keep_memory));
   if (internal_relocs == NULL)
-    return false;
+    return FALSE;
 
   ia64_info = elfNN_ia64_hash_table (link_info);
   irelend = internal_relocs + sec->reloc_count;
 
   for (irel = internal_relocs; irel < irelend; irel++)
-    if (ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21B
-       || ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21M
-       || ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21F)
-      break;
+    {
+      unsigned long r_type = ELFNN_R_TYPE (irel->r_info);
+      if (r_type == R_IA64_PCREL21B
+         || r_type == R_IA64_PCREL21BI
+         || r_type == R_IA64_PCREL21M
+         || r_type == R_IA64_PCREL21F)
+       break;
+    }
 
   /* No branch-type relocations.  */
   if (irel == irelend)
     {
       if (elf_section_data (sec)->relocs != internal_relocs)
        free (internal_relocs);
-      return true;
+      return TRUE;
     }
 
   /* Get the section contents.  */
@@ -755,14 +760,16 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
 
   for (; irel < irelend; irel++)
     {
+      unsigned long r_type = ELFNN_R_TYPE (irel->r_info);
       bfd_vma symaddr, reladdr, trampoff, toff, roff;
       asection *tsec;
       struct one_fixup *f;
       bfd_size_type amt;
 
-      if (ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21B
-         && ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21M
-         && ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21F)
+      if (r_type != R_IA64_PCREL21B
+         && r_type != R_IA64_PCREL21BI
+         && r_type != R_IA64_PCREL21M
+         && r_type != R_IA64_PCREL21F)
        continue;
 
       /* Get the value of the symbol referred to by the reloc.  */
@@ -811,12 +818,17 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
                 || h->root.type == bfd_link_hash_warning)
            h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
-         dyn_i = get_dyn_sym_info (ia64_info, h, abfd, irel, false);
+         dyn_i = get_dyn_sym_info (ia64_info, h, abfd, irel, FALSE);
 
          /* For branches to dynamic symbols, we're interested instead
             in a branch to the PLT entry.  */
          if (dyn_i && dyn_i->want_plt2)
            {
+             /* Internal branches shouldn't be sent to the PLT.
+                Leave this for now and we'll give an error later.  */
+             if (r_type != R_IA64_PCREL21B)
+               continue;
+
              tsec = ia64_info->plt_sec;
              toff = dyn_i->plt2_offset;
            }
@@ -928,11 +940,11 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
         hell this doesn't overflow too.  */
       if (elfNN_ia64_install_value (abfd, contents + roff,
                                    f->trampoff - (roff & (bfd_vma) -4),
-                                   R_IA64_PCREL21B) != bfd_reloc_ok)
+                                   r_type) != bfd_reloc_ok)
        goto error_return;
 
-      changed_contents = true;
-      changed_relocs = true;
+      changed_contents = TRUE;
+      changed_relocs = TRUE;
     }
 
   /* Clean up and go home.  */
@@ -976,7 +988,7 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
     }
 
   *again = changed_contents || changed_relocs;
-  return true;
+  return TRUE;
 
  error_return:
   if (isymbuf != NULL && (unsigned char *) isymbuf != symtab_hdr->contents)
@@ -987,12 +999,12 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
   if (internal_relocs != NULL
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
-  return false;
+  return FALSE;
 }
 \f
-/* Return true if NAME is an unwind table section name.  */
+/* Return TRUE if NAME is an unwind table section name.  */
 
-static inline boolean
+static inline bfd_boolean
 is_unwind_section_name (abfd, name)
        bfd *abfd;
        const char *name;
@@ -1001,7 +1013,7 @@ is_unwind_section_name (abfd, name)
 
   if (elfNN_ia64_hpux_vec (abfd->xvec)
       && !strcmp (name, ELF_STRING_ia64_unwind_hdr))
-    return false;
+    return FALSE;
 
   len1 = sizeof (ELF_STRING_ia64_unwind) - 1;
   len2 = sizeof (ELF_STRING_ia64_unwind_info) - 1;
@@ -1014,10 +1026,10 @@ is_unwind_section_name (abfd, name)
 /* Handle an IA-64 specific section when reading an object file.  This
    is called when elfcode.h finds a section with an unknown type.  */
 
-static boolean
+static bfd_boolean
 elfNN_ia64_section_from_shdr (abfd, hdr, name)
      bfd *abfd;
-     ElfNN_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      const char *name;
 {
   asection *newsect;
@@ -1035,18 +1047,18 @@ elfNN_ia64_section_from_shdr (abfd, hdr, name)
 
     case SHT_IA_64_EXT:
       if (strcmp (name, ELF_STRING_ia64_archext) != 0)
-       return false;
+       return FALSE;
       break;
 
     default:
-      return false;
+      return FALSE;
     }
 
   if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-    return false;
+    return FALSE;
   newsect = hdr->bfd_section;
 
-  return true;
+  return TRUE;
 }
 
 /* Convert IA-64 specific section flags to bfd internal section flags.  */
@@ -1054,24 +1066,24 @@ elfNN_ia64_section_from_shdr (abfd, hdr, name)
 /* ??? There is no bfd internal flag equivalent to the SHF_IA_64_NORECOV
    flag.  */
 
-static boolean
+static bfd_boolean
 elfNN_ia64_section_flags (flags, hdr)
      flagword *flags;
-     ElfNN_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
 {
   if (hdr->sh_flags & SHF_IA_64_SHORT)
     *flags |= SEC_SMALL_DATA;
 
-  return true;
+  return TRUE;
 }
 
 /* Set the correct type for an IA-64 ELF section.  We do this by the
    section name, which is a hack, but ought to work.  */
 
-static boolean
+static bfd_boolean
 elfNN_ia64_fake_sections (abfd, hdr, sec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     ElfNN_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      asection *sec;
 {
   register const char *name;
@@ -1111,7 +1123,7 @@ elfNN_ia64_fake_sections (abfd, hdr, sec)
   if (sec->flags & SEC_SMALL_DATA)
     hdr->sh_flags |= SHF_IA_64_SHORT;
 
-  return true;
+  return TRUE;
 }
 
 /* The final processing done just before writing out an IA-64 ELF
@@ -1120,7 +1132,7 @@ elfNN_ia64_fake_sections (abfd, hdr, sec)
 static void
 elfNN_ia64_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   Elf_Internal_Shdr *hdr;
   const char *sname;
@@ -1205,14 +1217,14 @@ elfNN_ia64_final_write_processing (abfd, linker)
        flags |= EF_IA_64_ABI64;
 
       elf_elfheader(abfd)->e_flags = flags;
-      elf_flags_init (abfd) = true;
+      elf_flags_init (abfd) = TRUE;
     }
 }
 
 /* Hook called by the linker routine which adds symbols from an object
    file.  We use it to put .comm items in .sbss, and not .bss.  */
 
-static boolean
+static bfd_boolean
 elfNN_ia64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1238,17 +1250,17 @@ elfNN_ia64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
              || !bfd_set_section_flags (abfd, scomm, (SEC_ALLOC
                                                       | SEC_IS_COMMON
                                                       | SEC_LINKER_CREATED)))
-           return false;
+           return FALSE;
        }
 
       *secp = scomm;
       *valp = sym->st_size;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_aix_vec (const bfd_target *vec)
 {
   extern const bfd_target bfd_elfNN_ia64_aix_little_vec;
@@ -1261,7 +1273,7 @@ elfNN_ia64_aix_vec (const bfd_target *vec)
 /* Hook called by the linker routine which adds symbols from an object
    file.  We use it to handle OS-specific symbols.  */
 
-static boolean
+static bfd_boolean
 elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1279,7 +1291,7 @@ elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       struct elf_link_hash_entry *h;
 
       h = elf_link_hash_lookup (elf_hash_table (info), *namep,
-                               false, false, false);
+                               FALSE, FALSE, FALSE);
       if (h == NULL)
        {
          struct elf_backend_data *bed;
@@ -1292,19 +1304,19 @@ elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
          if (!(_bfd_generic_link_add_one_symbol
                (info, abfd, *namep, BSF_GLOBAL,
                 bfd_get_section_by_name (abfd, ".bss"),
-                bed->got_symbol_offset, (const char *) NULL, false,
+                bed->got_symbol_offset, (const char *) NULL, FALSE,
                 bed->collect, &bh)))
-           return false;
+           return FALSE;
 
          h = (struct elf_link_hash_entry *) bh;
          h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
          h->type = STT_OBJECT;
 
          if (! _bfd_elf_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
-      return true;
+      return TRUE;
     }
   else if (sym->st_shndx == SHN_LOOS)
     {
@@ -1330,7 +1342,7 @@ elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
 
       *valp = sym->st_size;
 
-      return true;
+      return TRUE;
     }
   else
     {
@@ -1339,7 +1351,7 @@ elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
     }
 }
 
-boolean
+bfd_boolean
 elfNN_ia64_aix_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1349,7 +1361,7 @@ elfNN_ia64_aix_link_add_symbols (abfd, info)
       && abfd->xvec == info->hash->creator)
     {
       if (! bfd_elfNN_link_create_dynamic_sections (abfd, info))
-       return false;
+       return FALSE;
     }
 
   /* Now do the standard call.  */
@@ -1378,7 +1390,7 @@ elfNN_ia64_additional_program_headers (abfd)
   return ret;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_modify_segment_map (abfd)
      bfd *abfd;
 {
@@ -1399,7 +1411,7 @@ elfNN_ia64_modify_segment_map (abfd)
          m = ((struct elf_segment_map *)
               bfd_zalloc (abfd, (bfd_size_type) sizeof *m));
          if (m == NULL)
-           return false;
+           return FALSE;
 
          m->p_type = PT_IA_64_ARCHEXT;
          m->count = 1;
@@ -1447,7 +1459,7 @@ elfNN_ia64_modify_segment_map (abfd)
              m = ((struct elf_segment_map *)
                   bfd_zalloc (abfd, (bfd_size_type) sizeof *m));
              if (m == NULL)
-               return false;
+               return FALSE;
 
              m->p_type = PT_IA_64_UNWIND;
              m->count = 1;
@@ -1491,13 +1503,13 @@ elfNN_ia64_modify_segment_map (abfd)
       found:;
       }
 
-  return true;
+  return TRUE;
 }
 
 /* According to the Tahoe assembler spec, all labels starting with a
    '.' are local.  */
 
-static boolean
+static bfd_boolean
 elfNN_ia64_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
@@ -1507,43 +1519,43 @@ elfNN_ia64_is_local_label_name (abfd, name)
 
 /* Should we do dynamic things to this symbol?  */
 
-static boolean
+static bfd_boolean
 elfNN_ia64_dynamic_symbol_p (h, info)
      struct elf_link_hash_entry *h;
      struct bfd_link_info *info;
 {
   if (h == NULL)
-    return false;
+    return FALSE;
 
   while (h->root.type == bfd_link_hash_indirect
         || h->root.type == bfd_link_hash_warning)
     h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
   if (h->dynindx == -1)
-    return false;
+    return FALSE;
   switch (ELF_ST_VISIBILITY (h->other))
     {
     case STV_INTERNAL:
     case STV_HIDDEN:
-      return false;
+      return FALSE;
     default:
       break;
     }
 
   if (h->root.type == bfd_link_hash_undefweak
       || h->root.type == bfd_link_hash_defweak)
-    return true;
+    return TRUE;
 
   if ((info->shared && (!info->symbolic || info->allow_shlib_undefined))
       || ((h->elf_link_hash_flags
           & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))
          == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)))
-    return true;
+    return TRUE;
 
-  return false;
+  return FALSE;
 }
 \f
-static boolean
+static bfd_boolean
 elfNN_ia64_local_hash_table_init (ht, abfd, new)
      struct elfNN_ia64_local_hash_table *ht;
      bfd *abfd ATTRIBUTE_UNUSED;
@@ -1664,7 +1676,7 @@ static void
 elfNN_ia64_hash_hide_symbol (info, xh, force_local)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *xh;
-     boolean force_local;
+     bfd_boolean force_local;
 {
   struct elfNN_ia64_link_hash_entry *h;
   struct elfNN_ia64_dyn_sym_info *dyn_i;
@@ -1709,7 +1721,7 @@ static INLINE struct elfNN_ia64_local_hash_entry *
 elfNN_ia64_local_hash_lookup(table, string, create, copy)
      struct elfNN_ia64_local_hash_table *table;
      const char *string;
-     boolean create, copy;
+     bfd_boolean create, copy;
 {
   return ((struct elfNN_ia64_local_hash_entry *)
          bfd_hash_lookup (&table->root, string, create, copy));
@@ -1719,11 +1731,11 @@ elfNN_ia64_local_hash_lookup(table, string, create, copy)
 
 struct elfNN_ia64_dyn_sym_traverse_data
 {
-  boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR));
+  bfd_boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR));
   PTR data;
 };
 
-static boolean
+static bfd_boolean
 elfNN_ia64_global_dyn_sym_thunk (xentry, xdata)
      struct bfd_hash_entry *xentry;
      PTR xdata;
@@ -1739,11 +1751,11 @@ elfNN_ia64_global_dyn_sym_thunk (xentry, xdata)
 
   for (dyn_i = entry->info; dyn_i; dyn_i = dyn_i->next)
     if (! (*data->func) (dyn_i, data->data))
-      return false;
-  return true;
+      return FALSE;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_local_dyn_sym_thunk (xentry, xdata)
      struct bfd_hash_entry *xentry;
      PTR xdata;
@@ -1756,14 +1768,14 @@ elfNN_ia64_local_dyn_sym_thunk (xentry, xdata)
 
   for (dyn_i = entry->info; dyn_i; dyn_i = dyn_i->next)
     if (! (*data->func) (dyn_i, data->data))
-      return false;
-  return true;
+      return FALSE;
+  return TRUE;
 }
 
 static void
 elfNN_ia64_dyn_sym_traverse (ia64_info, func, data)
      struct elfNN_ia64_link_hash_table *ia64_info;
-     boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR));
+     bfd_boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR));
      PTR data;
 {
   struct elfNN_ia64_dyn_sym_traverse_data xdata;
@@ -1777,7 +1789,7 @@ elfNN_ia64_dyn_sym_traverse (ia64_info, func, data)
                     elfNN_ia64_local_dyn_sym_thunk, &xdata);
 }
 \f
-static boolean
+static bfd_boolean
 elfNN_ia64_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1786,7 +1798,7 @@ elfNN_ia64_create_dynamic_sections (abfd, info)
   asection *s;
 
   if (! _bfd_elf_create_dynamic_sections (abfd, info))
-    return false;
+    return FALSE;
 
   ia64_info = elfNN_ia64_hash_table (info);
 
@@ -1799,7 +1811,7 @@ elfNN_ia64_create_dynamic_sections (abfd, info)
   }
 
   if (!get_pltoff (abfd, info, ia64_info))
-    return false;
+    return FALSE;
 
   s = bfd_make_section(abfd, ".rela.IA_64.pltoff");
   if (s == NULL
@@ -1809,7 +1821,7 @@ elfNN_ia64_create_dynamic_sections (abfd, info)
                                           | SEC_LINKER_CREATED
                                           | SEC_READONLY))
       || !bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
   ia64_info->rel_pltoff_sec = s;
 
   s = bfd_make_section(abfd, ".rela.got");
@@ -1820,10 +1832,10 @@ elfNN_ia64_create_dynamic_sections (abfd, info)
                                           | SEC_LINKER_CREATED
                                           | SEC_READONLY))
       || !bfd_set_section_alignment (abfd, s, 3))
-    return false;
+    return FALSE;
   ia64_info->rel_got_sec = s;
 
-  return true;
+  return TRUE;
 }
 
 /* Find and/or create a hash entry for local symbol.  */
@@ -1832,28 +1844,24 @@ get_local_sym_hash (ia64_info, abfd, rel, create)
      struct elfNN_ia64_link_hash_table *ia64_info;
      bfd *abfd;
      const Elf_Internal_Rela *rel;
-     boolean create;
+     bfd_boolean create;
 {
-  char *addr_name;
-  size_t len;
   struct elfNN_ia64_local_hash_entry *ret;
+  asection *sec = abfd->sections;
+  char addr_name [34];
+
+  BFD_ASSERT ((sizeof (sec->id)*2 + 1 + sizeof (unsigned long)*2 + 1) <= 34);
+  BFD_ASSERT (sec);
 
   /* Construct a string for use in the elfNN_ia64_local_hash_table.
      name describes what was once anonymous memory.  */
 
-  len = sizeof (void*)*2 + 1 + sizeof (bfd_vma)*4 + 1 + 1;
-  len += 10;   /* %p slop */
-
-  addr_name = bfd_malloc (len);
-  if (addr_name == NULL)
-    return 0;
-  sprintf (addr_name, "%p:%lx",
-          (void *) abfd, (unsigned long) ELFNN_R_SYM (rel->r_info));
+  sprintf (addr_name, "%x:%lx",
+          sec->id, (unsigned long) ELFNN_R_SYM (rel->r_info));
 
   /* Collect the canonical entry data for this address.  */
   ret = elfNN_ia64_local_hash_lookup (&ia64_info->loc_hash_table,
                                      addr_name, create, create);
-  free (addr_name);
   return ret;
 }
 
@@ -1866,7 +1874,7 @@ get_dyn_sym_info (ia64_info, h, abfd, rel, create)
      struct elf_link_hash_entry *h;
      bfd *abfd;
      const Elf_Internal_Rela *rel;
-     boolean create;
+     bfd_boolean create;
 {
   struct elfNN_ia64_dyn_sym_info **pp;
   struct elfNN_ia64_dyn_sym_info *dyn_i;
@@ -2013,7 +2021,7 @@ get_reloc_section (abfd, ia64_info, sec, create)
      bfd *abfd;
      struct elfNN_ia64_link_hash_table *ia64_info;
      asection *sec;
-     boolean create;
+     bfd_boolean create;
 {
   const char *srel_name;
   asection *srel;
@@ -2058,7 +2066,7 @@ get_reloc_section (abfd, ia64_info, sec, create)
   return srel;
 }
 
-static boolean
+static bfd_boolean
 count_dyn_reloc (abfd, dyn_i, srel, type)
      bfd *abfd;
      struct elfNN_ia64_dyn_sym_info *dyn_i;
@@ -2076,7 +2084,7 @@ count_dyn_reloc (abfd, dyn_i, srel, type)
       rent = ((struct elfNN_ia64_dyn_reloc_entry *)
              bfd_alloc (abfd, (bfd_size_type) sizeof (*rent)));
       if (!rent)
-       return false;
+       return FALSE;
 
       rent->next = dyn_i->reloc_entries;
       rent->srel = srel;
@@ -2086,10 +2094,10 @@ count_dyn_reloc (abfd, dyn_i, srel, type)
     }
   rent->count++;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2103,7 +2111,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
   asection *got, *fptr, *srel;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   ia64_info = elfNN_ia64_hash_table (info);
@@ -2130,7 +2138,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
       unsigned long r_symndx = ELFNN_R_SYM (rel->r_info);
       struct elfNN_ia64_dyn_sym_info *dyn_i;
       int need_entry;
-      boolean maybe_dynamic;
+      bfd_boolean maybe_dynamic;
       int dynrel_type = R_IA64_NONE;
 
       if (r_symndx >= symtab_hdr->sh_info)
@@ -2150,13 +2158,13 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
         locally or externally defined, as not all of the input files
         have yet been processed.  Do something with what we know, as
         this may help reduce memory usage and processing time later.  */
-      maybe_dynamic = false;
+      maybe_dynamic = FALSE;
       if (h && ((info->shared
                      && (!info->symbolic || info->allow_shlib_undefined))
                || ! (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
                || h->root.type == bfd_link_hash_defweak
                || elfNN_ia64_aix_vec (abfd->xvec)))
-       maybe_dynamic = true;
+       maybe_dynamic = TRUE;
 
       need_entry = 0;
       switch (ELFNN_R_TYPE (rel->r_info))
@@ -2300,7 +2308,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
             abfd, 0, (bfd_vma) 0);
        }
 
-      dyn_i = get_dyn_sym_info (ia64_info, h, abfd, rel, true);
+      dyn_i = get_dyn_sym_info (ia64_info, h, abfd, rel, TRUE);
 
       /* Record whether or not this is a local symbol.  */
       dyn_i->h = h;
@@ -2312,7 +2320,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
            {
              got = get_got (abfd, info, ia64_info);
              if (!got)
-               return false;
+               return FALSE;
            }
          if (need_entry & NEED_GOT)
            dyn_i->want_got = 1;
@@ -2329,7 +2337,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
            {
              fptr = get_fptr (abfd, info, ia64_info);
              if (!fptr)
-               return false;
+               return FALSE;
            }
 
          /* FPTRs for shared libraries are allocated by the dynamic
@@ -2341,7 +2349,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
            {
              if (! (_bfd_elfNN_link_record_local_dynamic_symbol
                     (info, abfd, (long) r_symndx)))
-               return false;
+               return FALSE;
            }
 
          dyn_i->want_fptr = 1;
@@ -2363,16 +2371,16 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
        {
          if (!srel)
            {
-             srel = get_reloc_section (abfd, ia64_info, sec, true);
+             srel = get_reloc_section (abfd, ia64_info, sec, TRUE);
              if (!srel)
-               return false;
+               return FALSE;
            }
          if (!count_dyn_reloc (abfd, dyn_i, srel, dynrel_type))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 struct elfNN_ia64_allocate_data
@@ -2384,7 +2392,7 @@ struct elfNN_ia64_allocate_data
 /* For cleanliness, and potentially faster dynamic loading, allocate
    external GOT entries first.  */
 
-static boolean
+static bfd_boolean
 allocate_global_data_got (dyn_i, data)
      struct elfNN_ia64_dyn_sym_info *dyn_i;
      PTR data;
@@ -2416,12 +2424,12 @@ allocate_global_data_got (dyn_i, data)
       dyn_i->dtprel_offset = x->ofs;
       x->ofs += 8;
     }
-  return true;
+  return TRUE;
 }
 
 /* Next, allocate all the GOT entries used by LTOFF_FPTR relocs.  */
 
-static boolean
+static bfd_boolean
 allocate_global_fptr_got (dyn_i, data)
      struct elfNN_ia64_dyn_sym_info *dyn_i;
      PTR data;
@@ -2436,12 +2444,12 @@ allocate_global_fptr_got (dyn_i, data)
       dyn_i->got_offset = x->ofs;
       x->ofs += 8;
     }
-  return true;
+  return TRUE;
 }
 
 /* Lastly, allocate all the GOT entries for local data.  */
 
-static boolean
+static bfd_boolean
 allocate_local_got (dyn_i, data)
      struct elfNN_ia64_dyn_sym_info *dyn_i;
      PTR data;
@@ -2455,7 +2463,7 @@ allocate_local_got (dyn_i, data)
       dyn_i->got_offset = x->ofs;
       x->ofs += 8;
     }
-  return true;
+  return TRUE;
 }
 
 /* Search for the index of a global symbol in it's defining object file.  */
@@ -2480,7 +2488,7 @@ global_sym_index (h)
 /* Allocate function descriptors.  We can do these for every function
    in a main executable that is not exported.  */
 
-static boolean
+static bfd_boolean
 allocate_fptr (dyn_i, data)
      struct elfNN_ia64_dyn_sym_info *dyn_i;
      PTR data;
@@ -2511,7 +2519,7 @@ allocate_fptr (dyn_i, data)
              if (!_bfd_elfNN_link_record_local_dynamic_symbol
                    (x->info, h->root.u.def.section->owner,
                     global_sym_index (h)))
-               return false;
+               return FALSE;
            }
 
          dyn_i->want_fptr = 0;
@@ -2524,12 +2532,12 @@ allocate_fptr (dyn_i, data)
       else
        dyn_i->want_fptr = 0;
     }
-  return true;
+  return TRUE;
 }
 
 /* Allocate all the minimal PLT entries.  */
 
-static boolean
+static bfd_boolean
 allocate_plt_entries (dyn_i, data)
      struct elfNN_ia64_dyn_sym_info *dyn_i;
      PTR data;
@@ -2562,12 +2570,12 @@ allocate_plt_entries (dyn_i, data)
          dyn_i->want_plt2 = 0;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Allocate all the full PLT entries.  */
 
-static boolean
+static bfd_boolean
 allocate_plt2_entries (dyn_i, data)
      struct elfNN_ia64_dyn_sym_info *dyn_i;
      PTR data;
@@ -2587,7 +2595,7 @@ allocate_plt2_entries (dyn_i, data)
        h = (struct elf_link_hash_entry *) h->root.u.i.link;
       dyn_i->h->plt.offset = ofs;
     }
-  return true;
+  return TRUE;
 }
 
 /* Allocate all the PLTOFF entries requested by relocations and
@@ -2595,7 +2603,7 @@ allocate_plt2_entries (dyn_i, data)
    because the latter are not necessarily addressable by the GP.
    ??? Relaxation might be able to determine that they are.  */
 
-static boolean
+static bfd_boolean
 allocate_pltoff_entries (dyn_i, data)
      struct elfNN_ia64_dyn_sym_info *dyn_i;
      PTR data;
@@ -2607,13 +2615,13 @@ allocate_pltoff_entries (dyn_i, data)
       dyn_i->pltoff_offset = x->ofs;
       x->ofs += 16;
     }
-  return true;
+  return TRUE;
 }
 
 /* Allocate dynamic relocations for those symbols that turned out
    to be dynamic.  */
 
-static boolean
+static bfd_boolean
 allocate_dynrel_entries (dyn_i, data)
      struct elfNN_ia64_dyn_sym_info *dyn_i;
      PTR data;
@@ -2621,7 +2629,7 @@ allocate_dynrel_entries (dyn_i, data)
   struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data;
   struct elfNN_ia64_link_hash_table *ia64_info;
   struct elfNN_ia64_dyn_reloc_entry *rent;
-  boolean dynamic_symbol, shared;
+  bfd_boolean dynamic_symbol, shared;
 
   ia64_info = elfNN_ia64_hash_table (x->info);
   dynamic_symbol = elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)
@@ -2699,10 +2707,10 @@ allocate_dynrel_entries (dyn_i, data)
       ia64_info->rel_pltoff_sec->_raw_size += t;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      struct elf_link_hash_entry *h;
@@ -2719,7 +2727,7 @@ elfNN_ia64_adjust_dynamic_symbol (info, h)
                   || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* If this is a reference to a symbol defined by a dynamic object which
@@ -2729,10 +2737,10 @@ elfNN_ia64_adjust_dynamic_symbol (info, h)
      But IA-64 code is canonically PIC, so as a rule we can avoid this sort
      of hackery.  */
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2741,7 +2749,7 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
   struct elfNN_ia64_link_hash_table *ia64_info;
   asection *sec;
   bfd *dynobj;
-  boolean relplt = false;
+  bfd_boolean relplt = FALSE;
 
   dynobj = elf_hash_table(info)->dynobj;
   ia64_info = elfNN_ia64_hash_table (info);
@@ -2780,7 +2788,7 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
 
   /* Now that we've seen all of the input files, we can decide which
      symbols need plt entries.  Allocate the minimal PLT entries first.
-     We do this even though dynamic_sections_created may be false, because
+     We do this even though dynamic_sections_created may be FALSE, because
      this has the side-effect of clearing want_plt and want_plt2.  */
 
   data.ofs = 0;
@@ -2830,7 +2838,7 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
      Allocate memory for them.  */
   for (sec = dynobj->sections; sec != NULL; sec = sec->next)
     {
-      boolean strip;
+      bfd_boolean strip;
 
       if (!(sec->flags & SEC_LINKER_CREATED))
        continue;
@@ -2846,7 +2854,7 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
       strip = (sec->_raw_size == 0);
 
       if (sec == ia64_info->got_sec)
-       strip = false;
+       strip = FALSE;
       else if (sec == ia64_info->rel_got_sec)
        {
          if (strip)
@@ -2877,7 +2885,7 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
            ia64_info->rel_pltoff_sec = NULL;
          else
            {
-             relplt = true;
+             relplt = TRUE;
              /* We use the reloc_count field as a counter if we need to
                 copy relocs into the output file.  */
              sec->reloc_count = 0;
@@ -2892,7 +2900,7 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
          name = bfd_get_section_name (dynobj, sec);
 
          if (strcmp (name, ".got.plt") == 0)
-           strip = false;
+           strip = FALSE;
          else if (strncmp (name, ".rel", 4) == 0)
            {
              if (!strip)
@@ -2913,7 +2921,7 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
          /* Allocate memory for the section contents.  */
          sec->contents = (bfd_byte *) bfd_zalloc (dynobj, sec->_raw_size);
          if (sec->contents == NULL && sec->_raw_size != 0)
-           return false;
+           return FALSE;
        }
     }
 
@@ -2931,38 +2939,38 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
   bfd_elfNN_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
 
          if (!add_dynamic_entry (DT_DEBUG, 0))
-           return false;
+           return FALSE;
        }
 
       if (!add_dynamic_entry (DT_IA_64_PLT_RESERVE, 0))
-       return false;
+       return FALSE;
       if (!add_dynamic_entry (DT_PLTGOT, 0))
-       return false;
+       return FALSE;
 
       if (relplt)
        {
          if (!add_dynamic_entry (DT_PLTRELSZ, 0)
              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
              || !add_dynamic_entry (DT_JMPREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (!add_dynamic_entry (DT_RELA, 0)
          || !add_dynamic_entry (DT_RELASZ, 0)
          || !add_dynamic_entry (DT_RELAENT, sizeof (ElfNN_External_Rela)))
-       return false;
+       return FALSE;
 
       if (ia64_info->reltext)
        {
          if (!add_dynamic_entry (DT_TEXTREL, 0))
-           return false;
+           return FALSE;
          info->flags |= DF_TEXTREL;
        }
     }
 
   /* ??? Perhaps force __gp local.  */
 
-  return true;
+  return TRUE;
 }
 
 static bfd_reloc_status_type
@@ -3203,6 +3211,7 @@ elfNN_ia64_install_dyn_reloc (abfd, info, sec, srel, offset, type,
      bfd_vma addend;
 {
   Elf_Internal_Rela outrel;
+  bfd_byte *loc;
 
   BFD_ASSERT (dynindx != -1);
   outrel.r_info = ELFNN_R_INFO (dynindx, type);
@@ -3219,9 +3228,9 @@ elfNN_ia64_install_dyn_reloc (abfd, info, sec, srel, offset, type,
   else
     outrel.r_offset += sec->output_section->vma + sec->output_offset;
 
-  bfd_elfNN_swap_reloca_out (abfd, &outrel,
-                            ((ElfNN_External_Rela *) srel->contents
-                             + srel->reloc_count++));
+  loc = srel->contents;
+  loc += srel->reloc_count++ * sizeof (ElfNN_External_Rela);
+  bfd_elfNN_swap_reloca_out (abfd, &outrel, loc);
   BFD_ASSERT (sizeof (ElfNN_External_Rela) * srel->reloc_count
              <= srel->_cooked_size);
 }
@@ -3241,7 +3250,7 @@ set_got_entry (abfd, info, dyn_i, dynindx, addend, value, dyn_r_type)
 {
   struct elfNN_ia64_link_hash_table *ia64_info;
   asection *got_sec;
-  boolean done;
+  bfd_boolean done;
   bfd_vma got_offset;
 
   ia64_info = elfNN_ia64_hash_table (info);
@@ -3251,22 +3260,22 @@ set_got_entry (abfd, info, dyn_i, dynindx, addend, value, dyn_r_type)
     {
     case R_IA64_TPREL64LSB:
       done = dyn_i->tprel_done;
-      dyn_i->tprel_done = true;
+      dyn_i->tprel_done = TRUE;
       got_offset = dyn_i->tprel_offset;
       break;
     case R_IA64_DTPMOD64LSB:
       done = dyn_i->dtpmod_done;
-      dyn_i->dtpmod_done = true;
+      dyn_i->dtpmod_done = TRUE;
       got_offset = dyn_i->dtpmod_offset;
       break;
     case R_IA64_DTPREL64LSB:
       done = dyn_i->dtprel_done;
-      dyn_i->dtprel_done = true;
+      dyn_i->dtprel_done = TRUE;
       got_offset = dyn_i->dtprel_offset;
       break;
     default:
       done = dyn_i->got_done;
-      dyn_i->got_done = true;
+      dyn_i->got_done = TRUE;
       got_offset = dyn_i->got_offset;
       break;
     }
@@ -3317,7 +3326,7 @@ set_got_entry (abfd, info, dyn_i, dynindx, addend, value, dyn_r_type)
                  dyn_r_type = R_IA64_DTPREL64MSB;
                  break;
                default:
-                 BFD_ASSERT (false);
+                 BFD_ASSERT (FALSE);
                  break;
                }
            }
@@ -3380,7 +3389,7 @@ set_pltoff_entry (abfd, info, dyn_i, value, is_plt)
      struct bfd_link_info *info;
      struct elfNN_ia64_dyn_sym_info *dyn_i;
      bfd_vma value;
-     boolean is_plt;
+     bfd_boolean is_plt;
 {
   struct elfNN_ia64_link_hash_table *ia64_info;
   asection *pltoff_sec;
@@ -3478,7 +3487,7 @@ elfNN_ia64_unwind_entry_compare (a, b)
   return (av < bv ? -1 : av > bv ? 1 : 0);
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3526,8 +3535,8 @@ elfNN_ia64_final_link (abfd, info)
        }
 
       /* See if the user wants to force a value.  */
-      gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", false,
-                                false, false);
+      gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", FALSE,
+                                FALSE, FALSE);
 
       if (gp
          && (gp->root.type == bfd_link_hash_defined
@@ -3581,7 +3590,7 @@ elfNN_ia64_final_link (abfd, info)
                (_("%s: short data segment overflowed (0x%lx >= 0x400000)"),
                 bfd_get_filename (abfd),
                 (unsigned long) (max_short_vma - min_short_vma));
-             return false;
+             return FALSE;
            }
          else if ((gp_val > min_short_vma
                    && gp_val - min_short_vma > 0x200000)
@@ -3591,7 +3600,7 @@ elfNN_ia64_final_link (abfd, info)
              (*_bfd_error_handler)
                (_("%s: __gp does not cover short data segment"),
                 bfd_get_filename (abfd));
-             return false;
+             return FALSE;
            }
        }
 
@@ -3618,13 +3627,13 @@ elfNN_ia64_final_link (abfd, info)
          unwind_output_sec->contents
            = bfd_malloc (unwind_output_sec->_raw_size);
          if (unwind_output_sec->contents == NULL)
-           return false;
+           return FALSE;
        }
     }
 
   /* Invoke the regular ELF backend linker to do all the work.  */
   if (!bfd_elfNN_bfd_final_link (abfd, info))
-    return false;
+    return FALSE;
 
   if (unwind_output_sec)
     {
@@ -3637,13 +3646,13 @@ elfNN_ia64_final_link (abfd, info)
       if (! bfd_set_section_contents (abfd, unwind_output_sec,
                                      unwind_output_sec->contents, (bfd_vma) 0,
                                      unwind_output_sec->_raw_size))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                             contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -3660,7 +3669,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
   asection *srel;
-  boolean ret_val = true;      /* for non-fatal errors */
+  bfd_boolean ret_val = TRUE;  /* for non-fatal errors */
   bfd_vma gp_val;
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -3676,11 +3685,11 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
 
       elf_section_data(input_section->output_section)
        ->this_hdr.sh_flags |= flags;
-      return true;
+      return TRUE;
     }
 
   gp_val = _bfd_get_gp_value (output_bfd);
-  srel = get_reloc_section (input_bfd, ia64_info, input_section, false);
+  srel = get_reloc_section (input_bfd, ia64_info, input_section, FALSE);
 
   rel = relocs;
   relend = relocs + input_section->reloc_count;
@@ -3696,8 +3705,8 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
       bfd_vma value;
       asection *sym_sec;
       bfd_byte *hit_addr;
-      boolean dynamic_symbol_p;
-      boolean undef_weak_ref;
+      bfd_boolean dynamic_symbol_p;
+      bfd_boolean undef_weak_ref;
 
       r_type = ELFNN_R_TYPE (rel->r_info);
       if (r_type > R_IA64_MAX_RELOC_CODE)
@@ -3706,7 +3715,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
            (_("%s: unknown relocation type %d"),
             bfd_archive_filename (input_bfd), (int)r_type);
          bfd_set_error (bfd_error_bad_value);
-         ret_val = false;
+         ret_val = FALSE;
          continue;
        }
 
@@ -3715,7 +3724,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
       h = NULL;
       sym = NULL;
       sym_sec = NULL;
-      undef_weak_ref = false;
+      undef_weak_ref = FALSE;
 
       if (r_symndx < symtab_hdr->sh_info)
        {
@@ -3729,8 +3738,8 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                  == ELF_INFO_TYPE_MERGE))
            {
              struct elfNN_ia64_local_hash_entry *loc_h;
-      
-             loc_h = get_local_sym_hash (ia64_info, input_bfd, rel, false);
+
+             loc_h = get_local_sym_hash (ia64_info, input_bfd, rel, FALSE);
              if (loc_h && ! loc_h->sec_merge_done)
                {
                  struct elfNN_ia64_dyn_sym_info *dynent;
@@ -3789,7 +3798,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                }
            }
          else if (h->root.type == bfd_link_hash_undefweak)
-           undef_weak_ref = true;
+           undef_weak_ref = TRUE;
          else if (info->shared
                   && (!info->symbolic || info->allow_shlib_undefined)
                   && !info->no_undefined
@@ -3802,8 +3811,8 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                      input_section, rel->r_offset,
                      (!info->shared || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
-               return false;
-             ret_val = false;
+               return FALSE;
+             ret_val = FALSE;
              continue;
            }
        }
@@ -3876,7 +3885,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                      (*_bfd_error_handler)
                        (_("%s: linking non-pic code in a shared library"),
                         bfd_archive_filename (input_bfd));
-                     ret_val = false;
+                     ret_val = FALSE;
                      continue;
                    }
                  dynindx = 0;
@@ -3909,7 +3918,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
              (*_bfd_error_handler)
                (_("%s: @gprel relocation against dynamic symbol %s"),
                 bfd_archive_filename (input_bfd), h->root.root.string);
-             ret_val = false;
+             ret_val = FALSE;
              continue;
            }
          value -= gp_val;
@@ -3919,7 +3928,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_IA64_LTOFF22:
        case R_IA64_LTOFF22X:
        case R_IA64_LTOFF64I:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false);
+          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
          value = set_got_entry (input_bfd, info, dyn_i, (h ? h->dynindx : -1),
                                 rel->r_addend, value, R_IA64_DIR64LSB);
          value -= gp_val;
@@ -3930,8 +3939,8 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_IA64_PLTOFF64I:
        case R_IA64_PLTOFF64MSB:
        case R_IA64_PLTOFF64LSB:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false);
-         value = set_pltoff_entry (output_bfd, info, dyn_i, value, false);
+          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
+         value = set_pltoff_entry (output_bfd, info, dyn_i, value, FALSE);
          value -= gp_val;
          r = elfNN_ia64_install_value (output_bfd, hit_addr, value, r_type);
          break;
@@ -3941,7 +3950,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
        case R_IA64_FPTR32LSB:
        case R_IA64_FPTR64MSB:
        case R_IA64_FPTR64LSB:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false);
+          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
          if (dyn_i->want_fptr)
            {
              if (!undef_weak_ref)
@@ -3987,7 +3996,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
          {
            long dynindx;
 
-           dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false);
+           dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
            if (dyn_i->want_fptr)
              {
                BFD_ASSERT (h == NULL || h->dynindx == -1)
@@ -4038,35 +4047,12 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
            }
          goto finish_pcrel;
 
-       case R_IA64_PCREL21BI:
-       case R_IA64_PCREL21F:
-       case R_IA64_PCREL21M:
-         /* ??? These two are only used for speculation fixup code.
-            They should never be dynamic.  */
-         if (dynamic_symbol_p)
-           {
-             (*_bfd_error_handler)
-               (_("%s: dynamic relocation against speculation fixup"),
-                bfd_archive_filename (input_bfd));
-             ret_val = false;
-             continue;
-           }
-         if (undef_weak_ref)
-           {
-             (*_bfd_error_handler)
-               (_("%s: speculation fixup against undefined weak symbol"),
-                bfd_archive_filename (input_bfd));
-             ret_val = false;
-             continue;
-           }
-         goto finish_pcrel;
-
        case R_IA64_PCREL21B:
        case R_IA64_PCREL60B:
          /* We should have created a PLT entry for any dynamic symbol.  */
          dyn_i = NULL;
          if (h)
-           dyn_i = get_dyn_sym_info (ia64_info, h, NULL, NULL, false);
+           dyn_i = get_dyn_sym_info (ia64_info, h, NULL, NULL, FALSE);
 
          if (dyn_i && dyn_i->want_plt2)
            {
@@ -4092,8 +4078,32 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
            }
          goto finish_pcrel;
 
+       case R_IA64_PCREL21BI:
+       case R_IA64_PCREL21F:
+       case R_IA64_PCREL21M:
        case R_IA64_PCREL22:
        case R_IA64_PCREL64I:
+         /* The PCREL21BI reloc is specifically not intended for use with
+            dynamic relocs.  PCREL21F and PCREL21M are used for speculation
+            fixup code, and thus probably ought not be dynamic.  The 
+            PCREL22 and PCREL64I relocs aren't emitted as dynamic relocs.  */
+         if (dynamic_symbol_p)
+           {
+             const char *msg;
+
+             if (r_type == R_IA64_PCREL21BI)
+               msg = _("%s: @internal branch to dynamic symbol %s");
+             else if (r_type == R_IA64_PCREL21F || r_type == R_IA64_PCREL21M)
+               msg = _("%s: speculation fixup to dynamic symbol %s");
+             else
+               msg = _("%s: @pcrel relocation against dynamic symbol %s");
+             (*_bfd_error_handler) (msg, bfd_archive_filename (input_bfd),
+                                    h->root.root.string);
+             ret_val = FALSE;
+             continue;
+           }
+         goto finish_pcrel;
+
        finish_pcrel:
          /* Make pc-relative.  */
          value -= (input_section->output_section->vma
@@ -4243,7 +4253,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                got_r_type = R_IA64_DTPREL64LSB;
                break;
              }
-           dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false);
+           dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
            value = set_got_entry (input_bfd, info, dyn_i,
                                   (h ? h->dynindx : -1), rel->r_addend,
                                   value, got_r_type);
@@ -4269,7 +4279,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
             don't try to continue.  */
          (*info->callbacks->undefined_symbol)
            (info, "__gp", input_bfd, input_section, rel->r_offset, 1);
-         return false;
+         return FALSE;
 
        case bfd_reloc_notsupported:
          {
@@ -4283,15 +4293,15 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                                                        symtab_hdr->sh_link,
                                                        sym->st_name);
                if (name == NULL)
-                 return false;
+                 return FALSE;
                if (*name == '\0')
                  name = bfd_section_name (input_bfd, input_section);
              }
            if (!(*info->callbacks->warning) (info, _("unsupported reloc"),
                                              name, input_bfd,
                                              input_section, rel->r_offset))
-             return false;
-           ret_val = false;
+             return FALSE;
+           ret_val = FALSE;
          }
          break;
 
@@ -4310,7 +4320,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                                                        symtab_hdr->sh_link,
                                                        sym->st_name);
                if (name == NULL)
-                 return false;
+                 return FALSE;
                if (*name == '\0')
                  name = bfd_section_name (input_bfd, input_section);
              }
@@ -4320,8 +4330,8 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
                                                     input_bfd,
                                                     input_section,
                                                     rel->r_offset))
-             return false;
-           ret_val = false;
+             return FALSE;
+           ret_val = FALSE;
          }
          break;
        }
@@ -4330,7 +4340,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
   return ret_val;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -4341,7 +4351,7 @@ elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym)
   struct elfNN_ia64_dyn_sym_info *dyn_i;
 
   ia64_info = elfNN_ia64_hash_table (info);
-  dyn_i = get_dyn_sym_info (ia64_info, h, NULL, NULL, false);
+  dyn_i = get_dyn_sym_info (ia64_info, h, NULL, NULL, FALSE);
 
   /* Fill in the PLT data, if required.  */
   if (dyn_i && dyn_i->want_plt)
@@ -4350,7 +4360,6 @@ elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_byte *loc;
       asection *plt_sec;
       bfd_vma plt_addr, pltoff_addr, gp_val, index;
-      ElfNN_External_Rela *rel;
 
       gp_val = _bfd_get_gp_value (output_bfd);
 
@@ -4368,7 +4377,7 @@ elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym)
       plt_addr = (plt_sec->output_section->vma
                  + plt_sec->output_offset
                  + dyn_i->plt_offset);
-      pltoff_addr = set_pltoff_entry (output_bfd, info, dyn_i, plt_addr, true);
+      pltoff_addr = set_pltoff_entry (output_bfd, info, dyn_i, plt_addr, TRUE);
 
       /* Initialize the FULL PLT entry, if needed.  */
       if (dyn_i->want_plt2)
@@ -4407,10 +4416,10 @@ elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym)
         existing sec->reloc_count to be the base of the array of
         PLT relocations.  */
 
-      rel = (ElfNN_External_Rela *)ia64_info->rel_pltoff_sec->contents;
-      rel += ia64_info->rel_pltoff_sec->reloc_count;
-
-      bfd_elfNN_swap_reloca_out (output_bfd, &outrel, rel + index);
+      loc = ia64_info->rel_pltoff_sec->contents;
+      loc += ((ia64_info->rel_pltoff_sec->reloc_count + index)
+             * sizeof (Elf64_External_Rela));
+      bfd_elfNN_swap_reloca_out (output_bfd, &outrel, loc);
     }
 
   /* Mark some specially defined symbols as absolute.  */
@@ -4419,10 +4428,10 @@ elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym)
       || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
     sym->st_shndx = SHN_ABS;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_finish_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -4504,13 +4513,13 @@ elfNN_ia64_finish_dynamic_sections (abfd, info)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* ELF file flag handling: */
 
 /* Function to keep IA-64 specific file flags.  */
-static boolean
+static bfd_boolean
 elfNN_ia64_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
@@ -4519,31 +4528,31 @@ elfNN_ia64_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
-static boolean
+static bfd_boolean
 elfNN_ia64_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd, *obfd;
 {
   flagword out_flags;
   flagword in_flags;
-  boolean ok = true;
+  bfd_boolean ok = TRUE;
 
   /* Don't even pretend to support mixed-format linking.  */
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return false;
+    return FALSE;
 
   in_flags  = elf_elfheader (ibfd)->e_flags;
   out_flags = elf_elfheader (obfd)->e_flags;
 
   if (! elf_flags_init (obfd))
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = in_flags;
 
       if (bfd_get_arch (obfd) == bfd_get_arch (ibfd)
@@ -4553,12 +4562,12 @@ elfNN_ia64_merge_private_bfd_data (ibfd, obfd)
                                    bfd_get_mach (ibfd));
        }
 
-      return true;
+      return TRUE;
     }
 
   /* Check flag compatibility.  */
   if (in_flags == out_flags)
-    return true;
+    return TRUE;
 
   /* Output has EF_IA_64_REDUCEDFP set only if all inputs have it set.  */
   if (!(in_flags & EF_IA_64_REDUCEDFP) && (out_flags & EF_IA_64_REDUCEDFP))
@@ -4571,7 +4580,7 @@ elfNN_ia64_merge_private_bfd_data (ibfd, obfd)
         bfd_archive_filename (ibfd));
 
       bfd_set_error (bfd_error_bad_value);
-      ok = false;
+      ok = FALSE;
     }
   if ((in_flags & EF_IA_64_BE) != (out_flags & EF_IA_64_BE))
     {
@@ -4580,7 +4589,7 @@ elfNN_ia64_merge_private_bfd_data (ibfd, obfd)
         bfd_archive_filename (ibfd));
 
       bfd_set_error (bfd_error_bad_value);
-      ok = false;
+      ok = FALSE;
     }
   if ((in_flags & EF_IA_64_ABI64) != (out_flags & EF_IA_64_ABI64))
     {
@@ -4589,7 +4598,7 @@ elfNN_ia64_merge_private_bfd_data (ibfd, obfd)
         bfd_archive_filename (ibfd));
 
       bfd_set_error (bfd_error_bad_value);
-      ok = false;
+      ok = FALSE;
     }
   if ((in_flags & EF_IA_64_CONS_GP) != (out_flags & EF_IA_64_CONS_GP))
     {
@@ -4598,7 +4607,7 @@ elfNN_ia64_merge_private_bfd_data (ibfd, obfd)
         bfd_archive_filename (ibfd));
 
       bfd_set_error (bfd_error_bad_value);
-      ok = false;
+      ok = FALSE;
     }
   if ((in_flags & EF_IA_64_NOFUNCDESC_CONS_GP)
       != (out_flags & EF_IA_64_NOFUNCDESC_CONS_GP))
@@ -4608,13 +4617,13 @@ elfNN_ia64_merge_private_bfd_data (ibfd, obfd)
         bfd_archive_filename (ibfd));
 
       bfd_set_error (bfd_error_bad_value);
-      ok = false;
+      ok = FALSE;
     }
 
   return ok;
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_print_private_bfd_data (abfd, ptr)
      bfd *abfd;
      PTR ptr;
@@ -4635,7 +4644,7 @@ elfNN_ia64_print_private_bfd_data (abfd, ptr)
           (flags & EF_IA_64_ABI64) ? "ABI64" : "ABI32");
 
   _bfd_elf_print_private_bfd_data (abfd, ptr);
-  return true;
+  return TRUE;
 }
 
 static enum elf_reloc_type_class
@@ -4659,7 +4668,7 @@ elfNN_ia64_reloc_type_class (rela)
     }
 }
 
-static boolean
+static bfd_boolean
 elfNN_ia64_hpux_vec (const bfd_target *vec)
 {
   extern const bfd_target bfd_elfNN_ia64_hpux_big_vec;
@@ -4677,7 +4686,7 @@ elfNN_hpux_post_process_headers (abfd, info)
   i_ehdrp->e_ident[EI_ABIVERSION] = 1;
 }
 
-boolean
+bfd_boolean
 elfNN_hpux_backend_section_from_bfd_section (abfd, sec, retval)
        bfd *abfd ATTRIBUTE_UNUSED;
        asection *sec;
@@ -4686,9 +4695,9 @@ elfNN_hpux_backend_section_from_bfd_section (abfd, sec, retval)
   if (bfd_is_com_section (sec))
     {
       *retval = SHN_IA_64_ANSI_COMMON;
-      return true;
+      return TRUE;
     }
-  return false;
+  return FALSE;
 }
 \f
 #define TARGET_LITTLE_SYM              bfd_elfNN_ia64_little_vec
index bc81458987a637031222f9d6da15d2009f3b0ece..80a583bc60f4b8c9dc0bacde0f153a7f7f212f0a 100644 (file)
@@ -40,6 +40,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "coff/ecoff.h"
 #include "coff/mips.h"
 
+#include "hashtab.h"
+
+/* This structure is used to hold .got entries while estimating got
+   sizes.  */
+struct mips_got_entry
+{
+  /* The input bfd in which the symbol is defined.  */
+  bfd *abfd;
+  /* The index of the symbol, as stored in the relocation r_info.  If
+     it's -1, the addend is a complete address into the
+     executable/shared library.  */
+  unsigned long symndx;
+  /* The addend of the relocation that should be added to the symbol
+     value.  */
+  bfd_vma addend;
+  /* The offset from the beginning of the .got section to the entry
+     corresponding to this symbol+addend.  */
+  unsigned long gotidx;
+};
+
 /* This structure is used to hold .got information when linking.  It
    is stored in the tdata field of the bfd_elf_section_data structure.  */
 
@@ -54,6 +74,8 @@ struct mips_got_info
   unsigned int local_gotno;
   /* The number of local .got entries we have used.  */
   unsigned int assigned_gotno;
+  /* A hash table holding members of the got.  */
+  struct htab *got_entries;
 };
 
 /* This structure is passed to mips_elf_sort_hash_table_f when sorting
@@ -88,7 +110,7 @@ struct mips_elf_link_hash_entry
 
   /* If the R_MIPS_32, R_MIPS_REL32, or R_MIPS_64 reloc is against
      a readonly section.  */
-  boolean readonly_reloc;
+  bfd_boolean readonly_reloc;
 
   /* The index of the first dynamic relocation (in the .rel.dyn
      section) against this symbol.  */
@@ -98,7 +120,7 @@ struct mips_elf_link_hash_entry
      related to taking the function's address, i.e. any but
      R_MIPS_CALL*16 ones -- see "MIPS ABI Supplement, 3rd Edition",
      p. 4-20.  */
-  boolean no_fn_stub;
+  bfd_boolean no_fn_stub;
 
   /* If there is a stub that 32 bit functions should use to call this
      16 bit function, this points to the section containing the stub.  */
@@ -106,7 +128,7 @@ struct mips_elf_link_hash_entry
 
   /* Whether we need the fn_stub; this is set if this symbol appears
      in any relocs other than a 16 bit call.  */
-  boolean need_fn_stub;
+  bfd_boolean need_fn_stub;
 
   /* If there is a stub that 16 bit functions should use to call this
      32 bit function, this points to the section containing the stub.  */
@@ -117,7 +139,7 @@ struct mips_elf_link_hash_entry
   asection *call_fp_stub;
 
   /* Are we forced local?  .*/
-  boolean forced_local;
+  bfd_boolean forced_local;
 };
 
 /* MIPS ELF linker hash table.  */
@@ -136,11 +158,11 @@ struct mips_elf_link_hash_table
   bfd_size_type compact_rel_size;
   /* This flag indicates that the value of DT_MIPS_RLD_MAP dynamic
      entry is set to the address of __rld_obj_head as in IRIX5.  */
-  boolean use_rld_obj_head;
+  bfd_boolean use_rld_obj_head;
   /* This is the value of the __rld_map or __rld_obj_head symbol.  */
   bfd_vma rld_value;
   /* This is set if we see any mips16 stub sections.  */
-  boolean mips16_stubs_seen;
+  bfd_boolean mips16_stubs_seen;
 };
 
 /* Structure used to pass information to mips_elf_output_extsym.  */
@@ -151,7 +173,7 @@ struct extsym_info
   struct bfd_link_info *info;
   struct ecoff_debug_info *debug;
   const struct ecoff_debug_swap *swap;
-  boolean failed;
+  bfd_boolean failed;
 };
 
 /* The names of the runtime procedure table symbols used on IRIX5.  */
@@ -279,10 +301,10 @@ static struct bfd_hash_entry *mips_elf_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static void ecoff_swap_rpdr_out
   PARAMS ((bfd *, const RPDR *, struct rpdr_ext *));
-static boolean mips_elf_create_procedure_table
+static bfd_boolean mips_elf_create_procedure_table
   PARAMS ((PTR, bfd *, struct bfd_link_info *, asection *,
           struct ecoff_debug_info *));
-static boolean mips_elf_check_mips16_stubs
+static bfd_boolean mips_elf_check_mips16_stubs
   PARAMS ((struct mips_elf_link_hash_entry *, PTR));
 static void bfd_mips_elf32_swap_gptab_in
   PARAMS ((bfd *, const Elf32_External_gptab *, Elf32_gptab *));
@@ -300,7 +322,7 @@ static void bfd_mips_elf_swap_msym_out
   PARAMS ((bfd *, const Elf32_Internal_Msym *, Elf32_External_Msym *));
 static int sort_dynamic_relocs
   PARAMS ((const void *, const void *));
-static boolean mips_elf_output_extsym
+static bfd_boolean mips_elf_output_extsym
   PARAMS ((struct mips_elf_link_hash_entry *, PTR));
 static int gptab_compare PARAMS ((const void *, const void *));
 static asection * mips_elf_got_section PARAMS ((bfd *));
@@ -313,31 +335,31 @@ static bfd_vma mips_elf_global_got_index
 static bfd_vma mips_elf_got_page
   PARAMS ((bfd *, struct bfd_link_info *, bfd_vma, bfd_vma *));
 static bfd_vma mips_elf_got16_entry
-  PARAMS ((bfd *, struct bfd_link_info *, bfd_vma, boolean));
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_vma, bfd_boolean));
 static bfd_vma mips_elf_got_offset_from_index
   PARAMS ((bfd *, bfd *, bfd_vma));
-static bfd_vma mips_elf_create_local_got_entry
+static struct mips_got_entry *mips_elf_create_local_got_entry
   PARAMS ((bfd *, struct mips_got_info *, asection *, bfd_vma));
-static boolean mips_elf_sort_hash_table
+static bfd_boolean mips_elf_sort_hash_table
   PARAMS ((struct bfd_link_info *, unsigned long));
-static boolean mips_elf_sort_hash_table_f
+static bfd_boolean mips_elf_sort_hash_table_f
   PARAMS ((struct mips_elf_link_hash_entry *, PTR));
-static boolean mips_elf_record_global_got_symbol
+static bfd_boolean mips_elf_record_global_got_symbol
   PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *,
           struct mips_got_info *));
 static const Elf_Internal_Rela *mips_elf_next_relocation
   PARAMS ((bfd *, unsigned int, const Elf_Internal_Rela *,
           const Elf_Internal_Rela *));
-static boolean mips_elf_local_relocation_p
-  PARAMS ((bfd *, const Elf_Internal_Rela *, asection **, boolean));
+static bfd_boolean mips_elf_local_relocation_p
+  PARAMS ((bfd *, const Elf_Internal_Rela *, asection **, bfd_boolean));
 static bfd_vma mips_elf_sign_extend PARAMS ((bfd_vma, int));
-static boolean mips_elf_overflow_p PARAMS ((bfd_vma, int));
+static bfd_boolean mips_elf_overflow_p PARAMS ((bfd_vma, int));
 static bfd_vma mips_elf_high PARAMS ((bfd_vma));
 static bfd_vma mips_elf_higher PARAMS ((bfd_vma));
 static bfd_vma mips_elf_highest PARAMS ((bfd_vma));
-static boolean mips_elf_create_compact_rel_section
+static bfd_boolean mips_elf_create_compact_rel_section
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean mips_elf_create_got_section
+static bfd_boolean mips_elf_create_got_section
   PARAMS ((bfd *, struct bfd_link_info *));
 static asection *mips_elf_create_msym_section
   PARAMS ((bfd *));
@@ -345,18 +367,18 @@ static bfd_reloc_status_type mips_elf_calculate_relocation
   PARAMS ((bfd *, bfd *, asection *, struct bfd_link_info *,
           const Elf_Internal_Rela *, bfd_vma, reloc_howto_type *,
           Elf_Internal_Sym *, asection **, bfd_vma *, const char **,
-          boolean *, boolean));
+          bfd_boolean *, bfd_boolean));
 static bfd_vma mips_elf_obtain_contents
   PARAMS ((reloc_howto_type *, const Elf_Internal_Rela *, bfd *, bfd_byte *));
-static boolean mips_elf_perform_relocation
+static bfd_boolean mips_elf_perform_relocation
   PARAMS ((struct bfd_link_info *, reloc_howto_type *,
           const Elf_Internal_Rela *, bfd_vma, bfd *, asection *, bfd_byte *,
-          boolean));
-static boolean mips_elf_stub_section_p
+          bfd_boolean));
+static bfd_boolean mips_elf_stub_section_p
   PARAMS ((bfd *, asection *));
 static void mips_elf_allocate_dynamic_relocations
   PARAMS ((bfd *, unsigned int));
-static boolean mips_elf_create_dynamic_relocation
+static bfd_boolean mips_elf_create_dynamic_relocation
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Rela *,
           struct mips_elf_link_hash_entry *, asection *,
           bfd_vma, bfd_vma *, asection *));
@@ -364,7 +386,9 @@ static INLINE int elf_mips_isa PARAMS ((flagword));
 static INLINE char* elf_mips_abi_name PARAMS ((bfd *));
 static void mips_elf_irix6_finish_dynamic_symbol
   PARAMS ((bfd *, const char *, Elf_Internal_Sym *));
-static boolean _bfd_mips_elf_mach_extends_p PARAMS ((flagword, flagword));
+static bfd_boolean _bfd_mips_elf_mach_extends_p PARAMS ((flagword, flagword));
+static hashval_t mips_elf_got_entry_hash PARAMS ((const PTR));
+static int mips_elf_got_entry_eq PARAMS ((const PTR, const PTR));
 
 /* This will be used when we sort the dynamic relocation records.  */
 static bfd *reldyn_sorting_bfd;
@@ -436,13 +460,30 @@ static bfd *reldyn_sorting_bfd;
 #else
 #define MIPS_ELF_ADD_DYNAMIC_ENTRY(info, tag, val)                     \
   (ABI_64_P (elf_hash_table (info)->dynobj)                            \
-   ? (boolean) (abort (), false)                                       \
+   ? (abort (), FALSE)                                                 \
    : bfd_elf32_add_dynamic_entry (info, (bfd_vma) tag, (bfd_vma) val))
 #endif
 
 #define MIPS_ELF_RTYPE_TO_HOWTO(abfd, rtype, rela)                     \
   (get_elf_backend_data (abfd)->elf_backend_mips_rtype_to_howto (rtype, rela))
 
+/* Determine whether the internal relocation of index REL_IDX is REL
+   (zero) or RELA (non-zero).  The assumption is that, if there are
+   two relocation sections for this section, one of them is REL and
+   the other is RELA.  If the index of the relocation we're testing is
+   in range for the first relocation section, check that the external
+   relocation size is that for RELA.  It is also assumed that, if
+   rel_idx is not in range for the first section, and this first
+   section contains REL relocs, then the relocation is in the second
+   section, that is RELA.  */
+#define MIPS_RELOC_RELA_P(abfd, sec, rel_idx)                          \
+  ((NUM_SHDR_ENTRIES (&elf_section_data (sec)->rel_hdr)                        \
+    * get_elf_backend_data (abfd)->s->int_rels_per_ext_rel             \
+    > (bfd_vma)(rel_idx))                                              \
+   == (elf_section_data (sec)->rel_hdr.sh_entsize                      \
+       == (ABI_64_P (abfd) ? sizeof (Elf64_External_Rela)              \
+          : sizeof (Elf32_External_Rela))))
+
 /* 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)
@@ -475,6 +516,8 @@ static bfd *reldyn_sorting_bfd;
     : "/usr/lib/libc.so.1")
 
 #ifdef BFD64
+#define MNAME(bfd,pre,pos) \
+  (ABI_64_P (bfd) ? CONCAT4 (pre,64,_,pos) : CONCAT4 (pre,32,_,pos))
 #define ELF_R_SYM(bfd, i)                                      \
   (ABI_64_P (bfd) ? ELF64_R_SYM (i) : ELF32_R_SYM (i))
 #define ELF_R_TYPE(bfd, i)                                     \
@@ -482,6 +525,7 @@ static bfd *reldyn_sorting_bfd;
 #define ELF_R_INFO(bfd, s, t)                                  \
   (ABI_64_P (bfd) ? ELF64_R_INFO (s, t) : ELF32_R_INFO (s, t))
 #else
+#define MNAME(bfd,pre,pos) CONCAT4 (pre,32,_,pos)
 #define ELF_R_SYM(bfd, i)                                      \
   (ELF32_R_SYM (i))
 #define ELF_R_TYPE(bfd, i)                                     \
@@ -540,7 +584,7 @@ static bfd *reldyn_sorting_bfd;
 #define mips_elf_link_hash_traverse(table, func, info)                 \
   (elf_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the MIPS ELF linker hash table from a link_info structure.  */
@@ -580,14 +624,14 @@ mips_elf_link_hash_newfunc (entry, table, string)
         not been set.  -1 means there is no associated ifd.  */
       ret->esym.ifd = -2;
       ret->possibly_dynamic_relocs = 0;
-      ret->readonly_reloc = false;
+      ret->readonly_reloc = FALSE;
       ret->min_dyn_reloc_index = 0;
-      ret->no_fn_stub = false;
+      ret->no_fn_stub = FALSE;
       ret->fn_stub = NULL;
-      ret->need_fn_stub = false;
+      ret->need_fn_stub = FALSE;
       ret->call_stub = NULL;
       ret->call_fp_stub = NULL;
-      ret->forced_local = false;
+      ret->forced_local = FALSE;
     }
 
   return (struct bfd_hash_entry *) ret;
@@ -596,7 +640,7 @@ mips_elf_link_hash_newfunc (entry, table, string)
 /* Read ECOFF debugging information from a .mdebug section into a
    ecoff_debug_info structure.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_read_ecoff_info (abfd, section, debug)
      bfd *abfd;
      asection *section;
@@ -653,7 +697,7 @@ _bfd_mips_elf_read_ecoff_info (abfd, section, debug)
   debug->fdr = NULL;
   debug->adjust = NULL;
 
-  return true;
+  return TRUE;
 
  error_return:
   if (ext_hdr != NULL)
@@ -680,7 +724,7 @@ _bfd_mips_elf_read_ecoff_info (abfd, section, debug)
     free (debug->external_rfd);
   if (debug->external_ext != NULL)
     free (debug->external_ext);
-  return false;
+  return FALSE;
 }
 \f
 /* Swap RPDR (runtime procedure table entry) for output.  */
@@ -709,7 +753,7 @@ ecoff_swap_rpdr_out (abfd, in, ex)
 
 /* Create a runtime procedure table from the .mdebug section.  */
 
-static boolean
+static bfd_boolean
 mips_elf_create_procedure_table (handle, abfd, info, s, debug)
      PTR handle;
      bfd *abfd;
@@ -844,7 +888,7 @@ mips_elf_create_procedure_table (handle, abfd, info, s, debug)
   if (sv != NULL)
     free (sv);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (epdr != NULL)
@@ -857,13 +901,13 @@ mips_elf_create_procedure_table (handle, abfd, info, s, debug)
     free (ss);
   if (sv != NULL)
     free (sv);
-  return false;
+  return FALSE;
 }
 
 /* Check the mips16 stubs for a particular symbol, and see if we can
    discard them.  */
 
-static boolean
+static bfd_boolean
 mips_elf_check_mips16_stubs (h, data)
      struct mips_elf_link_hash_entry *h;
      PTR data ATTRIBUTE_UNUSED;
@@ -910,7 +954,7 @@ mips_elf_check_mips16_stubs (h, data)
       h->call_fp_stub->flags |= SEC_EXCLUDE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 bfd_reloc_status_type
@@ -920,7 +964,7 @@ _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, input_section,
      asymbol *symbol;
      arelent *reloc_entry;
      asection *input_section;
-     boolean relocateable;
+     bfd_boolean relocateable;
      PTR data;
      bfd_vma gp;
 {
@@ -1156,16 +1200,13 @@ sort_dynamic_relocs (arg1, arg2)
      const PTR arg1;
      const PTR arg2;
 {
-  const Elf32_External_Rel *ext_reloc1 = (const Elf32_External_Rel *) arg1;
-  const Elf32_External_Rel *ext_reloc2 = (const Elf32_External_Rel *) arg2;
+  Elf_Internal_Rela int_reloc1;
+  Elf_Internal_Rela int_reloc2;
 
-  Elf_Internal_Rel int_reloc1;
-  Elf_Internal_Rel int_reloc2;
+  bfd_elf32_swap_reloc_in (reldyn_sorting_bfd, arg1, &int_reloc1);
+  bfd_elf32_swap_reloc_in (reldyn_sorting_bfd, arg2, &int_reloc2);
 
-  bfd_elf32_swap_reloc_in (reldyn_sorting_bfd, ext_reloc1, &int_reloc1);
-  bfd_elf32_swap_reloc_in (reldyn_sorting_bfd, ext_reloc2, &int_reloc2);
-
-  return (ELF32_R_SYM (int_reloc1.r_info) - ELF32_R_SYM (int_reloc2.r_info));
+  return ELF32_R_SYM (int_reloc1.r_info) - ELF32_R_SYM (int_reloc2.r_info);
 }
 
 /* This routine is used to write out ECOFF debugging external symbol
@@ -1182,36 +1223,36 @@ sort_dynamic_relocs (arg1, arg2)
    stripped but required by a reloc.  In particular, it can not happen
    when generating a final executable.  */
 
-static boolean
+static bfd_boolean
 mips_elf_output_extsym (h, data)
      struct mips_elf_link_hash_entry *h;
      PTR data;
 {
   struct extsym_info *einfo = (struct extsym_info *) data;
-  boolean strip;
+  bfd_boolean strip;
   asection *sec, *output_section;
 
   if (h->root.root.type == bfd_link_hash_warning)
     h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link;
 
   if (h->root.indx == -2)
-    strip = false;
+    strip = FALSE;
   else if (((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
            || (h->root.elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0)
           && (h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
           && (h->root.elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0)
-    strip = true;
+    strip = TRUE;
   else if (einfo->info->strip == strip_all
           || (einfo->info->strip == strip_some
               && bfd_hash_lookup (einfo->info->keep_hash,
                                   h->root.root.root.string,
-                                  false, false) == NULL))
-    strip = true;
+                                  FALSE, FALSE) == NULL))
+    strip = TRUE;
   else
-    strip = false;
+    strip = FALSE;
 
   if (strip)
-    return true;
+    return TRUE;
 
   if (h->esym.ifd == -2)
     {
@@ -1320,7 +1361,7 @@ mips_elf_output_extsym (h, data)
   else if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0)
     {
       struct mips_elf_link_hash_entry *hd = h;
-      boolean no_fn_stub = h->no_fn_stub;
+      bfd_boolean no_fn_stub = h->no_fn_stub;
 
       while (hd->root.root.type == bfd_link_hash_indirect)
        {
@@ -1355,11 +1396,11 @@ mips_elf_output_extsym (h, data)
                                      h->root.root.root.string,
                                      &h->esym))
     {
-      einfo->failed = true;
-      return false;
+      einfo->failed = TRUE;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* A comparison routine used to sort .gptab entries.  */
@@ -1375,6 +1416,32 @@ gptab_compare (p1, p2)
   return a1->gt_entry.gt_g_value - a2->gt_entry.gt_g_value;
 }
 \f
+/* Functions to manage the got entry hash table.  */
+static hashval_t
+mips_elf_got_entry_hash (entry_)
+     const PTR entry_;
+{
+  const struct mips_got_entry *entry = (struct mips_got_entry *)entry_;
+
+  return htab_hash_pointer (entry->abfd) + entry->symndx
+#ifdef BFD64
+    + (entry->addend >> 32)
+#endif
+    + entry->addend;
+}
+
+static int
+mips_elf_got_entry_eq (entry1, entry2)
+     const PTR entry1;
+     const PTR entry2;
+{
+  const struct mips_got_entry *e1 = (struct mips_got_entry *)entry1;
+  const struct mips_got_entry *e2 = (struct mips_got_entry *)entry2;
+
+  return e1->abfd == e2->abfd && e1->symndx == e2->symndx
+    && e1->addend == e2->addend;
+}
+\f
 /* Returns the GOT section for ABFD.  */
 
 static asection *
@@ -1419,22 +1486,15 @@ mips_elf_local_got_index (abfd, info, value)
 {
   asection *sgot;
   struct mips_got_info *g;
-  bfd_byte *entry;
+  struct mips_got_entry *entry;
 
   g = mips_elf_got_info (elf_hash_table (info)->dynobj, &sgot);
 
-  /* Look to see if we already have an appropriate entry.  */
-  for (entry = (sgot->contents
-               + MIPS_ELF_GOT_SIZE (abfd) * MIPS_RESERVED_GOTNO);
-       entry != sgot->contents + MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno;
-       entry += MIPS_ELF_GOT_SIZE (abfd))
-    {
-      bfd_vma address = MIPS_ELF_GET_WORD (abfd, entry);
-      if (address == value)
-       return entry - sgot->contents;
-    }
-
-  return mips_elf_create_local_got_entry (abfd, g, sgot, value);
+  entry = mips_elf_create_local_got_entry (abfd, g, sgot, value);
+  if (entry)
+    return entry->gotidx;
+  else
+    return MINUS_ONE;
 }
 
 /* Returns the GOT index for the global symbol indicated by H.  */
@@ -1480,40 +1540,22 @@ mips_elf_got_page (abfd, info, value, offsetp)
 {
   asection *sgot;
   struct mips_got_info *g;
-  bfd_byte *entry;
-  bfd_byte *last_entry;
-  bfd_vma index = 0;
-  bfd_vma address;
+  bfd_vma index;
+  struct mips_got_entry *entry;
 
   g = mips_elf_got_info (elf_hash_table (info)->dynobj, &sgot);
 
-  /* Look to see if we already have an appropriate entry.  */
-  last_entry = sgot->contents + MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno;
-  for (entry = (sgot->contents
-               + MIPS_ELF_GOT_SIZE (abfd) * MIPS_RESERVED_GOTNO);
-       entry != last_entry;
-       entry += MIPS_ELF_GOT_SIZE (abfd))
-    {
-      address = MIPS_ELF_GET_WORD (abfd, entry);
-
-      if (!mips_elf_overflow_p (value - address, 16))
-       {
-         /* This entry will serve as the page pointer.  We can add a
-            16-bit number to it to get the actual address.  */
-         index = entry - sgot->contents;
-         break;
-       }
-    }
+  entry = mips_elf_create_local_got_entry (abfd, g, sgot,
+                                          (value + 0x8000)
+                                          & (~(bfd_vma)0xffff));
 
-  /* If we didn't have an appropriate entry, we create one now.  */
-  if (entry == last_entry)
-    index = mips_elf_create_local_got_entry (abfd, g, sgot, value);
+  if (!entry)
+    return MINUS_ONE;
+  
+  index = entry->gotidx;
 
   if (offsetp)
-    {
-      address = MIPS_ELF_GET_WORD (abfd, entry);
-      *offsetp = value - address;
-    }
+    *offsetp = value - entry->addend;
 
   return index;
 }
@@ -1526,14 +1568,11 @@ mips_elf_got16_entry (abfd, info, value, external)
      bfd *abfd;
      struct bfd_link_info *info;
      bfd_vma value;
-     boolean external;
+     bfd_boolean external;
 {
   asection *sgot;
   struct mips_got_info *g;
-  bfd_byte *entry;
-  bfd_byte *last_entry;
-  bfd_vma index = 0;
-  bfd_vma address;
+  struct mips_got_entry *entry;
 
   if (! external)
     {
@@ -1546,28 +1585,11 @@ mips_elf_got16_entry (abfd, info, value, external)
 
   g = mips_elf_got_info (elf_hash_table (info)->dynobj, &sgot);
 
-  /* Look to see if we already have an appropriate entry.  */
-  last_entry = sgot->contents + MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno;
-  for (entry = (sgot->contents
-               + MIPS_ELF_GOT_SIZE (abfd) * MIPS_RESERVED_GOTNO);
-       entry != last_entry;
-       entry += MIPS_ELF_GOT_SIZE (abfd))
-    {
-      address = MIPS_ELF_GET_WORD (abfd, entry);
-      if (address == value)
-       {
-         /* This entry has the right high-order 16 bits, and the low-order
-            16 bits are set to zero.  */
-         index = entry - sgot->contents;
-         break;
-       }
-    }
-
-  /* If we didn't have an appropriate entry, we create one now.  */
-  if (entry == last_entry)
-    index = mips_elf_create_local_got_entry (abfd, g, sgot, value);
-
-  return index;
+  entry = mips_elf_create_local_got_entry (abfd, g, sgot, value);
+  if (entry)
+    return entry->gotidx;
+  else
+    return MINUS_ONE;
 }
 
 /* Returns the offset for the entry at the INDEXth position
@@ -1591,26 +1613,47 @@ mips_elf_got_offset_from_index (dynobj, output_bfd, index)
 /* Create a local GOT entry for VALUE.  Return the index of the entry,
    or -1 if it could not be created.  */
 
-static bfd_vma
+static struct mips_got_entry *
 mips_elf_create_local_got_entry (abfd, g, sgot, value)
      bfd *abfd;
      struct mips_got_info *g;
      asection *sgot;
      bfd_vma value;
 {
+  struct mips_got_entry entry, **loc;
+
+  entry.abfd = abfd;
+  entry.symndx = (unsigned long)-1;
+  entry.addend = value;
+
+  loc = (struct mips_got_entry **) htab_find_slot (g->got_entries, &entry,
+                                                  INSERT);
+  if (*loc)
+    return *loc;
+      
+  entry.gotidx = MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno++;
+
+  *loc = (struct mips_got_entry *)bfd_alloc (abfd, sizeof entry);
+
+  if (! *loc)
+    return NULL;
+             
+  memcpy (*loc, &entry, sizeof entry);
+
   if (g->assigned_gotno >= g->local_gotno)
     {
+      (*loc)->gotidx = (unsigned long)-1;
       /* We didn't allocate enough space in the GOT.  */
       (*_bfd_error_handler)
        (_("not enough GOT space for local GOT entries"));
       bfd_set_error (bfd_error_bad_value);
-      return (bfd_vma) -1;
+      return NULL;
     }
 
   MIPS_ELF_PUT_WORD (abfd, value,
-                    (sgot->contents
-                     + MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno));
-  return MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno++;
+                    (sgot->contents + entry.gotidx));
+
+  return *loc;
 }
 
 /* Sort the dynamic symbol table so that symbols that need GOT entries
@@ -1620,7 +1663,7 @@ mips_elf_create_local_got_entry (abfd, g, sgot, value)
    _bfd_mips_elf_size_dynamic_sections, this value is 1.  Afterward, the
    section symbols are added and the count is higher.  */
 
-static boolean
+static bfd_boolean
 mips_elf_sort_hash_table (info, max_local)
      struct bfd_link_info *info;
      unsigned long max_local;
@@ -1648,14 +1691,14 @@ mips_elf_sort_hash_table (info, max_local)
   g = mips_elf_got_info (dynobj, NULL);
   g->global_gotsym = hsd.low;
 
-  return true;
+  return TRUE;
 }
 
 /* If H needs a GOT entry, assign it the highest available dynamic
    index.  Otherwise, assign it the lowest available dynamic
    index.  */
 
-static boolean
+static bfd_boolean
 mips_elf_sort_hash_table_f (h, data)
      struct mips_elf_link_hash_entry *h;
      PTR data;
@@ -1669,7 +1712,7 @@ mips_elf_sort_hash_table_f (h, data)
   /* Symbols without dynamic symbol table entries aren't interesting
      at all.  */
   if (h->root.dynindx == -1)
-    return true;
+    return TRUE;
 
   if (h->root.got.offset != 1)
     h->root.dynindx = hsd->max_non_got_dynindx++;
@@ -1679,14 +1722,14 @@ mips_elf_sort_hash_table_f (h, data)
       hsd->low = (struct elf_link_hash_entry *) h;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* If H is a symbol that needs a global GOT entry, but has a dynamic
    symbol table index lower than any we've seen to date, record it for
    posterity.  */
 
-static boolean
+static bfd_boolean
 mips_elf_record_global_got_symbol (h, info, g)
      struct elf_link_hash_entry *h;
      struct bfd_link_info *info;
@@ -1700,24 +1743,24 @@ mips_elf_record_global_got_symbol (h, info, g)
        {
        case STV_INTERNAL:
        case STV_HIDDEN:
-         _bfd_mips_elf_hide_symbol (info, h, true);
+         _bfd_mips_elf_hide_symbol (info, h, TRUE);
          break;
        }
       if (!bfd_elf32_link_record_dynamic_symbol (info, h))
-       return false;
+       return FALSE;
     }
 
   /* If we've already marked this entry as needing GOT space, we don't
      need to do it again.  */
   if (h->got.offset != MINUS_ONE)
-    return true;
+    return TRUE;
 
   /* By setting this to a value other than -1, we are indicating that
      there needs to be a GOT entry for H.  Avoid using zero, as the
      generic ELF copy_indirect_symbol tests for <= 0.  */
   h->got.offset = 1;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Returns the first relocation of type r_type found, beginning with
@@ -1751,13 +1794,13 @@ mips_elf_next_relocation (abfd, r_type, relocation, relend)
 
 /* Return whether a relocation is against a local symbol.  */
 
-static boolean
+static bfd_boolean
 mips_elf_local_relocation_p (input_bfd, relocation, local_sections,
                             check_forced)
      bfd *input_bfd;
      const Elf_Internal_Rela *relocation;
      asection **local_sections;
-     boolean check_forced;
+     bfd_boolean check_forced;
 {
   unsigned long r_symndx;
   Elf_Internal_Shdr *symtab_hdr;
@@ -1769,9 +1812,9 @@ mips_elf_local_relocation_p (input_bfd, relocation, local_sections,
   extsymoff = (elf_bad_symtab (input_bfd)) ? 0 : symtab_hdr->sh_info;
 
   if (r_symndx < extsymoff)
-    return true;
+    return TRUE;
   if (elf_bad_symtab (input_bfd) && local_sections[r_symndx] != NULL)
-    return true;
+    return TRUE;
 
   if (check_forced)
     {
@@ -1784,10 +1827,10 @@ mips_elf_local_relocation_p (input_bfd, relocation, local_sections,
             || h->root.root.type == bfd_link_hash_warning)
        h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link;
       if ((h->root.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)
-       return true;
+       return TRUE;
     }
 
-  return false;
+  return FALSE;
 }
 \f
 /* Sign-extend VALUE, which has the indicated number of BITS.  */
@@ -1808,7 +1851,7 @@ mips_elf_sign_extend (value, bits)
    range expressable by a signed number with the indicated number of
    BITS.  */
 
-static boolean
+static bfd_boolean
 mips_elf_overflow_p (value, bits)
      bfd_vma value;
      int bits;
@@ -1817,13 +1860,13 @@ mips_elf_overflow_p (value, bits)
 
   if (svalue > (1 << (bits - 1)) - 1)
     /* The value is too big.  */
-    return true;
+    return TRUE;
   else if (svalue < -(1 << (bits - 1)))
     /* The value is too small.  */
-    return true;
+    return TRUE;
 
   /* All is well.  */
-  return false;
+  return FALSE;
 }
 
 /* Calculate the %high function.  */
@@ -1856,7 +1899,7 @@ mips_elf_highest (value)
      bfd_vma value ATTRIBUTE_UNUSED;
 {
 #ifdef BFD64
-  return ((value + (bfd_vma) 0x800080008000) >> 48) & 0xffff;
+  return ((value + (((bfd_vma) 0x8000 << 32) | 0x80008000)) >> 48) & 0xffff;
 #else
   abort ();
   return (bfd_vma) -1;
@@ -1865,7 +1908,7 @@ mips_elf_highest (value)
 \f
 /* Create the .compact_rel section.  */
 
-static boolean
+static bfd_boolean
 mips_elf_create_compact_rel_section (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -1883,17 +1926,17 @@ mips_elf_create_compact_rel_section (abfd, info)
          || ! bfd_set_section_flags (abfd, s, flags)
          || ! bfd_set_section_alignment (abfd, s,
                                          MIPS_ELF_LOG_FILE_ALIGN (abfd)))
-       return false;
+       return FALSE;
 
       s->_raw_size = sizeof (Elf32_External_compact_rel);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Create the .got section to hold the global offset table.  */
 
-static boolean
+static bfd_boolean
 mips_elf_create_got_section (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -1907,7 +1950,7 @@ mips_elf_create_got_section (abfd, info)
 
   /* This function may be called more than once.  */
   if (mips_elf_got_section (abfd))
-    return true;
+    return TRUE;
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
           | SEC_LINKER_CREATED);
@@ -1916,7 +1959,7 @@ mips_elf_create_got_section (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags)
       || ! bfd_set_section_alignment (abfd, s, 4))
-    return false;
+    return FALSE;
 
   /* Define the symbol _GLOBAL_OFFSET_TABLE_.  We don't do this in the
      linker script because we don't want to define the symbol if we
@@ -1924,9 +1967,9 @@ mips_elf_create_got_section (abfd, info)
   bh = NULL;
   if (! (_bfd_generic_link_add_one_symbol
         (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s,
-         (bfd_vma) 0, (const char *) NULL, false,
+         (bfd_vma) 0, (const char *) NULL, FALSE,
          get_elf_backend_data (abfd)->collect, &bh)))
-    return false;
+    return FALSE;
 
   h = (struct elf_link_hash_entry *) bh;
   h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
@@ -1935,7 +1978,7 @@ mips_elf_create_got_section (abfd, info)
 
   if (info->shared
       && ! bfd_elf32_link_record_dynamic_symbol (info, h))
-    return false;
+    return FALSE;
 
   /* The first several global offset table entries are reserved.  */
   s->_raw_size = MIPS_RESERVED_GOTNO * MIPS_ELF_GOT_SIZE (abfd);
@@ -1943,22 +1986,27 @@ mips_elf_create_got_section (abfd, info)
   amt = sizeof (struct mips_got_info);
   g = (struct mips_got_info *) bfd_alloc (abfd, amt);
   if (g == NULL)
-    return false;
+    return FALSE;
   g->global_gotsym = NULL;
   g->local_gotno = MIPS_RESERVED_GOTNO;
   g->assigned_gotno = MIPS_RESERVED_GOTNO;
+  g->got_entries = htab_try_create (1, mips_elf_got_entry_hash,
+                                   mips_elf_got_entry_eq,
+                                   (htab_del) NULL);
+  if (g->got_entries == NULL)
+    return FALSE;
   if (elf_section_data (s) == NULL)
     {
       amt = sizeof (struct bfd_elf_section_data);
       s->used_by_bfd = (PTR) bfd_zalloc (abfd, amt);
       if (elf_section_data (s) == NULL)
-       return false;
+       return FALSE;
     }
   elf_section_data (s)->tdata = (PTR) g;
   elf_section_data (s)->this_hdr.sh_flags
     |= SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL;
 
-  return true;
+  return TRUE;
 }
 
 /* Returns the .msym section for ABFD, creating it if it does not
@@ -2018,8 +2066,8 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
      asection **local_sections;
      bfd_vma *valuep;
      const char **namep;
-     boolean *require_jalxp;
-     boolean save_addend;
+     bfd_boolean *require_jalxp;
+     bfd_boolean save_addend;
 {
   /* The eventual value we will return.  */
   bfd_vma value;
@@ -2042,20 +2090,20 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
      located.  */
   asection *sec = NULL;
   struct mips_elf_link_hash_entry *h = NULL;
-  /* True if the symbol referred to by this relocation is a local
+  /* TRUE if the symbol referred to by this relocation is a local
      symbol.  */
-  boolean local_p, was_local_p;
-  /* True if the symbol referred to by this relocation is "_gp_disp".  */
-  boolean gp_disp_p = false;
+  bfd_boolean local_p, was_local_p;
+  /* TRUE if the symbol referred to by this relocation is "_gp_disp".  */
+  bfd_boolean gp_disp_p = FALSE;
   Elf_Internal_Shdr *symtab_hdr;
   size_t extsymoff;
   unsigned long r_symndx;
   int r_type;
-  /* True if overflow occurred during the calculation of the
+  /* TRUE if overflow occurred during the calculation of the
      relocation value.  */
-  boolean overflowed_p;
-  /* True if this relocation refers to a MIPS16 function.  */
-  boolean target_is_16_bit_code_p = false;
+  bfd_boolean overflowed_p;
+  /* TRUE if this relocation refers to a MIPS16 function.  */
+  bfd_boolean target_is_16_bit_code_p = FALSE;
 
   /* Parse the relocation.  */
   r_symndx = ELF_R_SYM (input_bfd, relocation->r_info);
@@ -2065,13 +2113,13 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
        + relocation->r_offset);
 
   /* Assume that there will be no overflow.  */
-  overflowed_p = false;
+  overflowed_p = FALSE;
 
   /* Figure out whether or not the symbol is local, and get the offset
      used in the array of hash table entries.  */
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
   local_p = mips_elf_local_relocation_p (input_bfd, relocation,
-                                        local_sections, false);
+                                        local_sections, FALSE);
   was_local_p = local_p;
   if (! elf_bad_symtab (input_bfd))
     extsymoff = symtab_hdr->sh_info;
@@ -2138,7 +2186,7 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
          if (r_type != R_MIPS_HI16 && r_type != R_MIPS_LO16)
            return bfd_reloc_notsupported;
 
-         gp_disp_p = true;
+         gp_disp_p = TRUE;
        }
       /* If this symbol is defined, calculate its address.  Note that
         _gp_disp is a magic symbol, always implicitly defined by the
@@ -2259,7 +2307,7 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
                         || ((r_type == R_MIPS_26) && target_is_16_bit_code_p)));
 
   local_p = mips_elf_local_relocation_p (input_bfd, relocation,
-                                        local_sections, true);
+                                        local_sections, TRUE);
 
   /* If we haven't already determined the GOT offset, or the GP value,
      and we're going to need it, get it now.  */
@@ -2480,13 +2528,13 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
     case R_MIPS_CALL16:
       if (local_p)
        {
-         boolean forced;
+         bfd_boolean forced;
 
          /* The special case is when the symbol is forced to be local.  We
             need the full address in the GOT since no R_MIPS_LO16 relocation
             follows.  */
          forced = ! mips_elf_local_relocation_p (input_bfd, relocation,
-                                                 local_sections, false);
+                                                 local_sections, FALSE);
          value = mips_elf_got16_entry (abfd, info, symbol + addend, forced);
          if (value == MINUS_ONE)
            return bfd_reloc_outofrange;
@@ -2513,7 +2561,6 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
     case R_MIPS_PC16:
       value = mips_elf_sign_extend (addend, 16) + symbol - p;
       overflowed_p = mips_elf_overflow_p (value, 16);
-      value = (bfd_vma) ((bfd_signed_vma) value / 4);
       break;
 
     case R_MIPS_GOT_HI16:
@@ -2614,13 +2661,13 @@ mips_elf_obtain_contents (howto, relocation, input_bfd, contents)
 /* It has been determined that the result of the RELOCATION is the
    VALUE.  Use HOWTO to place VALUE into the output file at the
    appropriate position.  The SECTION is the section to which the
-   relocation applies.  If REQUIRE_JALX is true, then the opcode used
+   relocation applies.  If REQUIRE_JALX is TRUE, then the opcode used
    for the relocation must be either JAL or JALX, and it is
    unconditionally converted to JALX.
 
-   Returns false if anything goes wrong.  */
+   Returns FALSE if anything goes wrong.  */
 
-static boolean
+static bfd_boolean
 mips_elf_perform_relocation (info, howto, relocation, value, input_bfd,
                             input_section, contents, require_jalx)
      struct bfd_link_info *info;
@@ -2630,7 +2677,7 @@ mips_elf_perform_relocation (info, howto, relocation, value, input_bfd,
      bfd *input_bfd;
      asection *input_section;
      bfd_byte *contents;
-     boolean require_jalx;
+     bfd_boolean require_jalx;
 {
   bfd_vma x;
   bfd_byte *location;
@@ -2746,7 +2793,7 @@ mips_elf_perform_relocation (info, howto, relocation, value, input_bfd,
   /* If required, turn JAL into JALX.  */
   if (require_jalx)
     {
-      boolean ok;
+      bfd_boolean ok;
       bfd_vma opcode = x >> 26;
       bfd_vma jalx_opcode;
 
@@ -2771,7 +2818,7 @@ mips_elf_perform_relocation (info, howto, relocation, value, input_bfd,
             input_section->name,
             (unsigned long) relocation->r_offset);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       /* Make this the JALX opcode.  */
@@ -2786,12 +2833,12 @@ mips_elf_perform_relocation (info, howto, relocation, value, input_bfd,
 
   /* Put the value into the output.  */
   bfd_put (8 * bfd_get_reloc_size (howto), input_bfd, x, location);
-  return true;
+  return TRUE;
 }
 
-/* Returns true if SECTION is a MIPS16 stub section.  */
+/* Returns TRUE if SECTION is a MIPS16 stub section.  */
 
-static boolean
+static bfd_boolean
 mips_elf_stub_section_p (abfd, section)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section;
@@ -2829,7 +2876,7 @@ mips_elf_allocate_dynamic_relocations (abfd, n)
    dynamic relocation.  The ADDENDP is adjusted if necessary; the
    caller should store the result in place of the original addend.  */
 
-static boolean
+static bfd_boolean
 mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
                                    symbol, addendp, input_section)
      bfd *output_bfd;
@@ -2841,8 +2888,8 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
      bfd_vma *addendp;
      asection *input_section;
 {
-  Elf_Internal_Rel outrel[3];
-  boolean skip;
+  Elf_Internal_Rela outrel[3];
+  bfd_boolean skip;
   asection *sreloc;
   bfd *dynobj;
   int r_type;
@@ -2855,7 +2902,7 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
   BFD_ASSERT (sreloc->reloc_count * MIPS_ELF_REL_SIZE (output_bfd)
              < sreloc->_raw_size);
 
-  skip = false;
+  skip = FALSE;
   outrel[0].r_offset =
     _bfd_elf_section_offset (output_bfd, info, input_section, rel[0].r_offset);
   outrel[1].r_offset =
@@ -2883,12 +2930,12 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
       /* If we didn't need the relocation at all, this value will be
         -1.  */
       if (outrel[0].r_offset == (bfd_vma) -1)
-       skip = true;
+       skip = TRUE;
     }
 #endif
 
   if (outrel[0].r_offset == (bfd_vma) -1)
-    skip = true;
+    skip = TRUE;
   /* FIXME: For -2 runtime relocation needs to be skipped, but
      properly resolved statically and installed.  */
   BFD_ASSERT (outrel[0].r_offset != (bfd_vma) -2);
@@ -2897,7 +2944,7 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
      record.  Note that R_MIPS_NONE == 0, so that this call to memset
      is a way of setting R_TYPE to R_MIPS_NONE.  */
   if (skip)
-    memset (outrel, 0, sizeof (Elf_Internal_Rel) * 3);
+    memset (outrel, 0, sizeof (Elf_Internal_Rela) * 3);
   else
     {
       long indx;
@@ -2922,7 +2969,7 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
          else if (sec == NULL || sec->owner == NULL)
            {
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
          else
            {
@@ -2981,10 +3028,9 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
          + sreloc->reloc_count * sizeof (Elf64_Mips_External_Rel)));
     }
   else
-    bfd_elf32_swap_reloc_out (output_bfd, &outrel[0],
-                             (((Elf32_External_Rel *)
-                               sreloc->contents)
-                              + sreloc->reloc_count));
+    bfd_elf32_swap_reloc_out
+      (output_bfd, &outrel[0],
+       (sreloc->contents + sreloc->reloc_count * sizeof (Elf32_External_Rel)));
 
   /* Record the index of the first relocation referencing H.  This
      information is later emitted in the .msym section.  */
@@ -3031,7 +3077,7 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Return the ISA for a MIPS e_flags value.  */
@@ -3260,7 +3306,7 @@ _bfd_mips_elf_symbol_processing (abfd, asym)
    sections that need the SHF_MIPS_GPREL flag by name; there has to be
    a better way.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_section_processing (abfd, hdr)
      bfd *abfd;
      Elf_Internal_Shdr *hdr;
@@ -3276,10 +3322,10 @@ _bfd_mips_elf_section_processing (abfd, hdr)
       if (bfd_seek (abfd,
                    hdr->sh_offset + sizeof (Elf32_External_RegInfo) - 4,
                    SEEK_SET) != 0)
-       return false;
+       return FALSE;
       H_PUT_32 (abfd, elf_gp (abfd), buf);
       if (bfd_bwrite (buf, (bfd_size_type) 4, abfd) != 4)
-       return false;
+       return FALSE;
     }
 
   if (hdr->sh_type == SHT_MIPS_OPTIONS
@@ -3315,10 +3361,10 @@ _bfd_mips_elf_section_processing (abfd, hdr)
                             + sizeof (Elf_External_Options)
                             + (sizeof (Elf64_External_RegInfo) - 8)),
                             SEEK_SET) != 0)
-               return false;
+               return FALSE;
              H_PUT_64 (abfd, elf_gp (abfd), buf);
              if (bfd_bwrite (buf, (bfd_size_type) 8, abfd) != 8)
-               return false;
+               return FALSE;
            }
          else if (intopt.kind == ODK_REGINFO)
            {
@@ -3330,10 +3376,10 @@ _bfd_mips_elf_section_processing (abfd, hdr)
                             + sizeof (Elf_External_Options)
                             + (sizeof (Elf32_External_RegInfo) - 4)),
                            SEEK_SET) != 0)
-               return false;
+               return FALSE;
              H_PUT_32 (abfd, elf_gp (abfd), buf);
              if (bfd_bwrite (buf, (bfd_size_type) 4, abfd) != 4)
-               return false;
+               return FALSE;
            }
          l += intopt.size;
        }
@@ -3378,7 +3424,7 @@ _bfd_mips_elf_section_processing (abfd, hdr)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Handle a MIPS specific section when reading an object file.  This
@@ -3388,7 +3434,7 @@ _bfd_mips_elf_section_processing (abfd, hdr)
    FIXME: We need to handle the SHF_MIPS_GPREL flag, but I'm not sure
    how to.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_section_from_shdr (abfd, hdr, name)
      bfd *abfd;
      Elf_Internal_Shdr *hdr;
@@ -3405,67 +3451,67 @@ _bfd_mips_elf_section_from_shdr (abfd, hdr, name)
     {
     case SHT_MIPS_LIBLIST:
       if (strcmp (name, ".liblist") != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_MSYM:
       if (strcmp (name, ".msym") != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_CONFLICT:
       if (strcmp (name, ".conflict") != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_GPTAB:
       if (strncmp (name, ".gptab.", sizeof ".gptab." - 1) != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_UCODE:
       if (strcmp (name, ".ucode") != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_DEBUG:
       if (strcmp (name, ".mdebug") != 0)
-       return false;
+       return FALSE;
       flags = SEC_DEBUGGING;
       break;
     case SHT_MIPS_REGINFO:
       if (strcmp (name, ".reginfo") != 0
          || hdr->sh_size != sizeof (Elf32_External_RegInfo))
-       return false;
+       return FALSE;
       flags = (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_SAME_SIZE);
       break;
     case SHT_MIPS_IFACE:
       if (strcmp (name, ".MIPS.interfaces") != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_CONTENT:
       if (strncmp (name, ".MIPS.content", sizeof ".MIPS.content" - 1) != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_OPTIONS:
       if (strcmp (name, MIPS_ELF_OPTIONS_SECTION_NAME (abfd)) != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_DWARF:
       if (strncmp (name, ".debug_", sizeof ".debug_" - 1) != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_SYMBOL_LIB:
       if (strcmp (name, ".MIPS.symlib") != 0)
-       return false;
+       return FALSE;
       break;
     case SHT_MIPS_EVENTS:
       if (strncmp (name, ".MIPS.events", sizeof ".MIPS.events" - 1) != 0
          && strncmp (name, ".MIPS.post_rel",
                      sizeof ".MIPS.post_rel" - 1) != 0)
-       return false;
+       return FALSE;
       break;
     default:
-      return false;
+      return FALSE;
     }
 
   if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
-    return false;
+    return FALSE;
 
   if (flags)
     {
@@ -3473,7 +3519,7 @@ _bfd_mips_elf_section_from_shdr (abfd, hdr, name)
                                   (bfd_get_section_flags (abfd,
                                                           hdr->bfd_section)
                                    | flags)))
-       return false;
+       return FALSE;
     }
 
   /* FIXME: We should record sh_info for a .gptab section.  */
@@ -3490,7 +3536,7 @@ _bfd_mips_elf_section_from_shdr (abfd, hdr, name)
       if (! bfd_get_section_contents (abfd, hdr->bfd_section, (PTR) &ext,
                                      (file_ptr) 0,
                                      (bfd_size_type) sizeof ext))
-       return false;
+       return FALSE;
       bfd_mips_elf32_swap_reginfo_in (abfd, &ext, &s);
       elf_gp (abfd) = s.ri_gp_value;
     }
@@ -3505,12 +3551,12 @@ _bfd_mips_elf_section_from_shdr (abfd, hdr, name)
 
       contents = (bfd_byte *) bfd_malloc (hdr->sh_size);
       if (contents == NULL)
-       return false;
+       return FALSE;
       if (! bfd_get_section_contents (abfd, hdr->bfd_section, contents,
                                      (file_ptr) 0, hdr->sh_size))
        {
          free (contents);
-         return false;
+         return FALSE;
        }
       l = contents;
       lend = contents + hdr->sh_size;
@@ -3547,17 +3593,17 @@ _bfd_mips_elf_section_from_shdr (abfd, hdr, name)
       free (contents);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the correct type for a MIPS ELF section.  We do this by the
    section name, which is a hack, but ought to work.  This routine is
    used by both the 32-bit and the 64-bit ABI.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_fake_sections (abfd, hdr, sec)
      bfd *abfd;
-     Elf32_Internal_Shdr *hdr;
+     Elf_Internal_Shdr *hdr;
      asection *sec;
 {
   register const char *name;
@@ -3685,12 +3731,12 @@ _bfd_mips_elf_fake_sections (abfd, hdr, sec)
       BFD_ASSERT (esd->rel_hdr2 == NULL);
       esd->rel_hdr2 = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt);
       if (!esd->rel_hdr2)
-       return false;
+       return FALSE;
       _bfd_elf_init_reloc_shdr (abfd, esd->rel_hdr2, sec,
                                !elf_section_data (sec)->use_rela_p);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Given a BFD section, try to locate the corresponding ELF section
@@ -3699,7 +3745,7 @@ _bfd_mips_elf_fake_sections (abfd, hdr, sec)
    but for non-PIC objects we will certainly want support for at least
    the .scommon section.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_section_from_bfd_section (abfd, sec, retval)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec;
@@ -3708,20 +3754,20 @@ _bfd_mips_elf_section_from_bfd_section (abfd, sec, retval)
   if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
     {
       *retval = SHN_MIPS_SCOMMON;
-      return true;
+      return TRUE;
     }
   if (strcmp (bfd_get_section_name (abfd, sec), ".acommon") == 0)
     {
       *retval = SHN_MIPS_ACOMMON;
-      return true;
+      return TRUE;
     }
-  return false;
+  return FALSE;
 }
 \f
 /* Hook called by the linker routine which adds symbols from an object
    file.  We must handle the special MIPS section numbers here.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3737,7 +3783,7 @@ _bfd_mips_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
     {
       /* Skip IRIX5 rld entry name.  */
       *namep = NULL;
-      return true;
+      return TRUE;
     }
 
   switch (sym->st_shndx)
@@ -3765,12 +3811,12 @@ _bfd_mips_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
 
          elf_text_section = bfd_zalloc (abfd, amt);
          if (elf_text_section == NULL)
-           return false;
+           return FALSE;
 
          amt = sizeof (asymbol);
          elf_text_symbol = bfd_zalloc (abfd, amt);
          if (elf_text_symbol == NULL)
-           return false;
+           return FALSE;
 
          /* Initialize the section.  */
 
@@ -3806,12 +3852,12 @@ _bfd_mips_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
 
          elf_data_section = bfd_zalloc (abfd, amt);
          if (elf_data_section == NULL)
-           return false;
+           return FALSE;
 
          amt = sizeof (asymbol);
          elf_data_symbol = bfd_zalloc (abfd, amt);
          if (elf_data_symbol == NULL)
-           return false;
+           return FALSE;
 
          /* Initialize the section.  */
 
@@ -3852,9 +3898,9 @@ _bfd_mips_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       bh = NULL;
       if (! (_bfd_generic_link_add_one_symbol
             (info, abfd, *namep, BSF_GLOBAL, *secp,
-             (bfd_vma) *valp, (const char *) NULL, false,
+             (bfd_vma) *valp, (const char *) NULL, FALSE,
              get_elf_backend_data (abfd)->collect, &bh)))
-       return false;
+       return FALSE;
 
       h = (struct elf_link_hash_entry *) bh;
       h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
@@ -3862,9 +3908,9 @@ _bfd_mips_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
       h->type = STT_OBJECT;
 
       if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-       return false;
+       return FALSE;
 
-      mips_elf_hash_table (info)->use_rld_obj_head = true;
+      mips_elf_hash_table (info)->use_rld_obj_head = TRUE;
     }
 
   /* If this is a mips16 text symbol, add 1 to the value to make it
@@ -3873,14 +3919,14 @@ _bfd_mips_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
   if (sym->st_other == STO_MIPS16)
     ++*valp;
 
-  return true;
+  return TRUE;
 }
 
 /* This hook function is called before the linker writes out a global
    symbol.  We mark symbols as small common if appropriate.  This is
    also where we undo the increment of the value for a mips16 symbol.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_link_output_symbol_hook (abfd, info, name, sym, input_sec)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -3899,14 +3945,14 @@ _bfd_mips_elf_link_output_symbol_hook (abfd, info, name, sym, input_sec)
       && (sym->st_value & 1) != 0)
     --sym->st_value;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Functions for the dynamic linker.  */
 
 /* Create dynamic sections when linking against a dynamic object.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3925,19 +3971,19 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
   if (s != NULL)
     {
       if (! bfd_set_section_flags (abfd, s, flags))
-       return false;
+       return FALSE;
     }
 
   /* We need to create .got section.  */
   if (! mips_elf_create_got_section (abfd, info))
-    return false;
+    return FALSE;
 
   /* Create the .msym section on IRIX6.  It is used by the dynamic
      linker to speed up dynamic relocations, and to avoid computing
      the ELF hash for symbols.  */
   if (IRIX_COMPAT (abfd) == ict_irix6
       && !mips_elf_create_msym_section (abfd))
-    return false;
+    return FALSE;
 
   /* Create .stub section.  */
   if (bfd_get_section_by_name (abfd,
@@ -3948,7 +3994,7 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
          || ! bfd_set_section_flags (abfd, s, flags | SEC_CODE)
          || ! bfd_set_section_alignment (abfd, s,
                                          MIPS_ELF_LOG_FILE_ALIGN (abfd)))
-       return false;
+       return FALSE;
     }
 
   if ((IRIX_COMPAT (abfd) == ict_irix5 || IRIX_COMPAT (abfd) == ict_none)
@@ -3960,7 +4006,7 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
          || ! bfd_set_section_flags (abfd, s, flags &~ (flagword) SEC_READONLY)
          || ! bfd_set_section_alignment (abfd, s,
                                          MIPS_ELF_LOG_FILE_ALIGN (abfd)))
-       return false;
+       return FALSE;
     }
 
   /* On IRIX5, we adjust add some additional symbols and change the
@@ -3974,9 +4020,9 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
          bh = NULL;
          if (! (_bfd_generic_link_add_one_symbol
                 (info, abfd, *namep, BSF_GLOBAL, bfd_und_section_ptr,
-                 (bfd_vma) 0, (const char *) NULL, false,
+                 (bfd_vma) 0, (const char *) NULL, FALSE,
                  get_elf_backend_data (abfd)->collect, &bh)))
-           return false;
+           return FALSE;
 
          h = (struct elf_link_hash_entry *) bh;
          h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
@@ -3984,14 +4030,14 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
          h->type = STT_SECTION;
 
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
 
       /* We need to create a .compact_rel section.  */
       if (SGI_COMPAT (abfd))
        {
          if (!mips_elf_create_compact_rel_section (abfd, info))
-           return false;
+           return FALSE;
        }
 
       /* Change alignments of some sections.  */
@@ -4020,9 +4066,9 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
       bh = NULL;
       if (!(_bfd_generic_link_add_one_symbol
            (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr,
-            (bfd_vma) 0, (const char *) NULL, false,
+            (bfd_vma) 0, (const char *) NULL, FALSE,
             get_elf_backend_data (abfd)->collect, &bh)))
-       return false;
+       return FALSE;
 
       h = (struct elf_link_hash_entry *) bh;
       h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
@@ -4030,7 +4076,7 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
       h->type = STT_SECTION;
 
       if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-       return false;
+       return FALSE;
 
       if (! mips_elf_hash_table (info)->use_rld_obj_head)
        {
@@ -4045,9 +4091,9 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
          bh = NULL;
          if (!(_bfd_generic_link_add_one_symbol
                (info, abfd, name, BSF_GLOBAL, s,
-                (bfd_vma) 0, (const char *) NULL, false,
+                (bfd_vma) 0, (const char *) NULL, FALSE,
                 get_elf_backend_data (abfd)->collect, &bh)))
-           return false;
+           return FALSE;
 
          h = (struct elf_link_hash_entry *) bh;
          h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
@@ -4055,17 +4101,17 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
          h->type = STT_OBJECT;
 
          if (! bfd_elf32_link_record_dynamic_symbol (info, h))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Look through the relocs for a section during the first phase, and
    allocate space in the global offset table.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -4085,7 +4131,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
   struct elf_backend_data *bed;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -4128,12 +4174,12 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
                              sizeof CALL_FP_STUB - 1) == 0)
                continue;
 
-             sec_relocs = (_bfd_elf32_link_read_relocs
+             sec_relocs = (MNAME(abfd,_bfd_elf,link_read_relocs)
                            (abfd, o, (PTR) NULL,
                             (Elf_Internal_Rela *) NULL,
                             info->keep_memory));
              if (sec_relocs == NULL)
-               return false;
+               return FALSE;
 
              rend = sec_relocs + o->reloc_count;
              for (r = sec_relocs; r < rend; r++)
@@ -4156,7 +4202,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
                  can easily discard it by setting the SEC_EXCLUDE
                  flag.  */
              sec->flags |= SEC_EXCLUDE;
-             return true;
+             return TRUE;
            }
 
          /* Record this stub in an array of local symbol stubs for
@@ -4174,7 +4220,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
              amt = symcount * sizeof (asection *);
              n = (asection **) bfd_zalloc (abfd, amt);
              if (n == NULL)
-               return false;
+               return FALSE;
              elf_tdata (abfd)->local_stubs = n;
            }
 
@@ -4195,7 +4241,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
          /* H is the symbol this stub is for.  */
 
          h->fn_stub = sec;
-         mips_elf_hash_table (info)->mips16_stubs_seen = true;
+         mips_elf_hash_table (info)->mips16_stubs_seen = TRUE;
        }
     }
   else if (strncmp (name, CALL_STUB, sizeof CALL_STUB - 1) == 0
@@ -4220,7 +4266,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
             the linker maps input sections to output sections, we can
             easily discard it by setting the SEC_EXCLUDE flag.  */
          sec->flags |= SEC_EXCLUDE;
-         return true;
+         return TRUE;
        }
 
       h = ((struct mips_elf_link_hash_entry *)
@@ -4244,11 +4290,11 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
       if (*loc != NULL || h->root.other == STO_MIPS16)
        {
          sec->flags |= SEC_EXCLUDE;
-         return true;
+         return TRUE;
        }
 
       *loc = sec;
-      mips_elf_hash_table (info)->mips16_stubs_seen = true;
+      mips_elf_hash_table (info)->mips16_stubs_seen = TRUE;
     }
 
   if (dynobj == NULL)
@@ -4289,7 +4335,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
            (_("%s: Malformed reloc detected for section %s"),
             bfd_archive_filename (abfd), name);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       else
        {
@@ -4320,7 +4366,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
              if (dynobj == NULL)
                elf_hash_table (info)->dynobj = dynobj = abfd;
              if (! mips_elf_create_got_section (dynobj, info))
-               return false;
+               return FALSE;
              g = mips_elf_got_info (dynobj, &sgot);
              break;
 
@@ -4342,20 +4388,35 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
                 || r_type == R_MIPS_GOT_LO16
                 || r_type == R_MIPS_GOT_DISP))
        {
+         struct mips_got_entry entry, **loc;
+
          /* We may need a local GOT entry for this relocation.  We
             don't count R_MIPS_GOT_PAGE because we can estimate the
             maximum number of pages needed by looking at the size of
             the segment.  Similar comments apply to R_MIPS_GOT16 and
             R_MIPS_CALL16.  We don't count R_MIPS_GOT_HI16, or
             R_MIPS_CALL_HI16 because these are always followed by an
-            R_MIPS_GOT_LO16 or R_MIPS_CALL_LO16.
-
-            This estimation is very conservative since we can merge
-            duplicate entries in the GOT.  In order to be less
-            conservative, we could actually build the GOT here,
-            rather than in relocate_section.  */
-         g->local_gotno++;
-         sgot->_raw_size += MIPS_ELF_GOT_SIZE (dynobj);
+            R_MIPS_GOT_LO16 or R_MIPS_CALL_LO16.  */
+
+         entry.abfd = abfd;
+         entry.symndx = r_symndx;
+         entry.addend = rel->r_addend;
+         loc = (struct mips_got_entry **)
+           htab_find_slot (g->got_entries, &entry, INSERT);
+
+         if (*loc == NULL)
+           {
+             entry.gotidx = g->local_gotno++;
+
+             *loc = (struct mips_got_entry *)bfd_alloc (abfd, sizeof entry);
+
+             if (! *loc)
+               return FALSE;
+             
+             memcpy (*loc, &entry, sizeof entry);
+
+             sgot->_raw_size += MIPS_ELF_GOT_SIZE (dynobj);
+           }
        }
 
       switch (r_type)
@@ -4367,7 +4428,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
                (_("%s: CALL16 reloc at 0x%lx not against global symbol"),
                 bfd_archive_filename (abfd), (unsigned long) rel->r_offset);
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
          /* Fall through.  */
 
@@ -4377,7 +4438,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
            {
              /* This symbol requires a global offset table entry.  */
              if (! mips_elf_record_global_got_symbol (h, info, g))
-               return false;
+               return FALSE;
 
              /* We need a stub, not a plt entry for the undefined
                 function.  But we record it as if it needs plt.  See
@@ -4393,7 +4454,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
        case R_MIPS_GOT_DISP:
          /* This symbol requires a global offset table entry.  */
          if (h && ! mips_elf_record_global_got_symbol (h, info, g))
-           return false;
+           return FALSE;
          break;
 
        case R_MIPS_32:
@@ -4420,7 +4481,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
                                                       | SEC_READONLY))
                          || ! bfd_set_section_alignment (dynobj, sreloc,
                                                          4))
-                       return false;
+                       return FALSE;
                    }
                }
 #define MIPS_READONLY_SECTION (SEC_ALLOC | SEC_LOAD | SEC_READONLY)
@@ -4449,7 +4510,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
                      == MIPS_READONLY_SECTION)
                    /* We need it to tell the dynamic linker if there
                       are relocations against the text segment.  */
-                   hmips->readonly_reloc = true;
+                   hmips->readonly_reloc = TRUE;
                }
 
              /* Even though we don't directly need a GOT entry for
@@ -4458,7 +4519,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
                 dynamic relocations against it.  */
              if (h != NULL
                  && ! mips_elf_record_global_got_symbol (h, info, g))
-               return false;
+               return FALSE;
            }
 
          if (SGI_COMPAT (abfd))
@@ -4479,14 +4540,14 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
             Reconstruct it for later use during GC.  */
        case R_MIPS_GNU_VTINHERIT:
          if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
          /* This relocation describes which C++ vtable entries are actually
             used.  Record for later use during GC.  */
        case R_MIPS_GNU_VTENTRY:
          if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset))
-           return false;
+           return FALSE;
          break;
 
        default:
@@ -4503,7 +4564,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
              struct mips_elf_link_hash_entry *mh;
 
              mh = (struct mips_elf_link_hash_entry *) h;
-             mh->no_fn_stub = true;
+             mh->no_fn_stub = TRUE;
            }
          break;
        case R_MIPS_CALL16:
@@ -4527,11 +4588,11 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
          struct mips_elf_link_hash_entry *mh;
 
          mh = (struct mips_elf_link_hash_entry *) h;
-         mh->need_fn_stub = true;
+         mh->need_fn_stub = TRUE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -4540,7 +4601,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
    change the definition to something the rest of the link can
    understand.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_adjust_dynamic_symbol (info, h)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
@@ -4585,7 +4646,7 @@ _bfd_mips_elf_adjust_dynamic_symbol (info, h)
       && (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0)
     {
       if (! elf_hash_table (info)->dynamic_sections_created)
-       return true;
+       return TRUE;
 
       /* If this symbol is not defined in a regular file, then set
         the symbol to the stub location.  This is required to make
@@ -4609,7 +4670,7 @@ _bfd_mips_elf_adjust_dynamic_symbol (info, h)
 
          /* The last half word of the stub will be filled with the index
             of this symbol in .dynsym section.  */
-         return true;
+         return TRUE;
        }
     }
   else if ((h->type == STT_FUNC)
@@ -4618,7 +4679,7 @@ _bfd_mips_elf_adjust_dynamic_symbol (info, h)
       /* This will set the entry for this symbol in the GOT to 0, and
          the dynamic linker will take care of this.  */
       h->root.u.def.value = 0;
-      return true;
+      return TRUE;
     }
 
   /* If this is a weak symbol, and there is a real definition, the
@@ -4630,20 +4691,20 @@ _bfd_mips_elf_adjust_dynamic_symbol (info, h)
                  || h->weakdef->root.type == bfd_link_hash_defweak);
       h->root.u.def.section = h->weakdef->root.u.def.section;
       h->root.u.def.value = h->weakdef->root.u.def.value;
-      return true;
+      return TRUE;
     }
 
   /* This is a reference to a symbol defined by a dynamic object which
      is not a function.  */
 
-  return true;
+  return TRUE;
 }
 \f
 /* This function is called after all the input files have been read,
    and the input sections have been assigned to output sections.  We
    check for any mips16 stub sections that we can discard.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_always_size_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -4658,25 +4719,25 @@ _bfd_mips_elf_always_size_sections (output_bfd, info)
 
   if (info->relocateable
       || ! mips_elf_hash_table (info)->mips16_stubs_seen)
-    return true;
+    return TRUE;
 
   mips_elf_link_hash_traverse (mips_elf_hash_table (info),
                               mips_elf_check_mips16_stubs,
                               (PTR) NULL);
 
-  return true;
+  return TRUE;
 }
 
 /* Set the sizes of the dynamic sections.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
 {
   bfd *dynobj;
   asection *s;
-  boolean reltext;
+  bfd_boolean reltext;
   struct mips_got_info *g = NULL;
 
   dynobj = elf_hash_table (info)->dynobj;
@@ -4699,11 +4760,11 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
   /* The check_relocs and adjust_dynamic_symbol entry points have
      determined the sizes of the various dynamic sections.  Allocate
      memory for them.  */
-  reltext = false;
+  reltext = FALSE;
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       const char *name;
-      boolean strip;
+      bfd_boolean strip;
 
       /* It's OK to base decisions on the section name, because none
         of the dynobj section names depend upon the input files.  */
@@ -4712,7 +4773,7 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
       if ((s->flags & SEC_LINKER_CREATED) == 0)
        continue;
 
-      strip = false;
+      strip = FALSE;
 
       if (strncmp (name, ".rel", 4) == 0)
        {
@@ -4727,7 +4788,7 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
                  && strcmp (name,
                             bfd_get_section_name (s->output_section->owner,
                                                   s->output_section)) == 0)
-               strip = true;
+               strip = TRUE;
            }
          else
            {
@@ -4747,7 +4808,7 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
                   && (target->flags & SEC_READONLY) != 0
                   && (target->flags & SEC_ALLOC) != 0)
                  || strcmp (outname, ".rel.dyn") == 0)
-               reltext = true;
+               reltext = TRUE;
 
              /* We use the reloc_count field as a counter if we need
                 to copy relocs into the output file.  */
@@ -4788,11 +4849,6 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
          /* Assume there are two loadable segments consisting of
             contiguous sections.  Is 5 enough?  */
          local_gotno = (loadable_size >> 16) + 5;
-         if (NEWABI_P (output_bfd))
-           /* It's possible we will need GOT_PAGE entries as well as
-              GOT16 entries.  Often, these will be able to share GOT
-              entries, but not always.  */
-           local_gotno *= 2;
 
          g->local_gotno += local_gotno;
          s->_raw_size += local_gotno * MIPS_ELF_GOT_SIZE (dynobj);
@@ -4803,7 +4859,7 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
             that need GOT entries at the end of the symbol table.  We
             do that here.  */
          if (! mips_elf_sort_hash_table (info, 1))
-           return false;
+           return FALSE;
 
          if (g->global_gotsym != NULL)
            i = elf_hash_table (info)->dynsymcount - g->global_gotsym->dynindx;
@@ -4852,7 +4908,7 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
       if (s->contents == NULL && s->_raw_size != 0)
        {
          bfd_set_error (bfd_error_no_memory);
-         return false;
+         return FALSE;
        }
     }
 
@@ -4868,11 +4924,11 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
          /* SGI object has the equivalence of DT_DEBUG in the
             DT_MIPS_RLD_MAP entry.  */
          if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_MAP, 0))
-           return false;
+           return FALSE;
          if (!SGI_COMPAT (output_bfd))
            {
              if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0))
-               return false;
+               return FALSE;
            }
        }
       else
@@ -4881,7 +4937,7 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
          if (!SGI_COMPAT (output_bfd))
            {
              if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0))
-               return false;
+               return FALSE;
            }
        }
 
@@ -4891,106 +4947,106 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
       if ((info->flags & DF_TEXTREL) != 0)
        {
          if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_TEXTREL, 0))
-           return false;
+           return FALSE;
        }
 
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_PLTGOT, 0))
-       return false;
+       return FALSE;
 
       if (bfd_get_section_by_name (dynobj, ".rel.dyn"))
        {
          if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_REL, 0))
-           return false;
+           return FALSE;
 
          if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELSZ, 0))
-           return false;
+           return FALSE;
 
          if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELENT, 0))
-           return false;
+           return FALSE;
        }
 
       if (SGI_COMPAT (output_bfd))
        {
          if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_CONFLICTNO, 0))
-           return false;
+           return FALSE;
        }
 
       if (SGI_COMPAT (output_bfd))
        {
          if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_LIBLISTNO, 0))
-           return false;
+           return FALSE;
        }
 
       if (bfd_get_section_by_name (dynobj, ".conflict") != NULL)
        {
          if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_CONFLICT, 0))
-           return false;
+           return FALSE;
 
          s = bfd_get_section_by_name (dynobj, ".liblist");
          BFD_ASSERT (s != NULL);
 
          if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_LIBLIST, 0))
-           return false;
+           return FALSE;
        }
 
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_VERSION, 0))
-       return false;
+       return FALSE;
 
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_FLAGS, 0))
-       return false;
+       return FALSE;
 
 #if 0
       /* Time stamps in executable files are a bad idea.  */
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_TIME_STAMP, 0))
-       return false;
+       return FALSE;
 #endif
 
 #if 0 /* FIXME  */
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_ICHECKSUM, 0))
-       return false;
+       return FALSE;
 #endif
 
 #if 0 /* FIXME  */
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_IVERSION, 0))
-       return false;
+       return FALSE;
 #endif
 
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_BASE_ADDRESS, 0))
-       return false;
+       return FALSE;
 
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_LOCAL_GOTNO, 0))
-       return false;
+       return FALSE;
 
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_SYMTABNO, 0))
-       return false;
+       return FALSE;
 
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_UNREFEXTNO, 0))
-       return false;
+       return FALSE;
 
       if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_GOTSYM, 0))
-       return false;
+       return FALSE;
 
       if (IRIX_COMPAT (dynobj) == ict_irix5
          && ! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_HIPAGENO, 0))
-       return false;
+       return FALSE;
 
       if (IRIX_COMPAT (dynobj) == ict_irix6
          && (bfd_get_section_by_name
              (dynobj, MIPS_ELF_OPTIONS_SECTION_NAME (dynobj)))
          && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_OPTIONS, 0))
-       return false;
+       return FALSE;
 
       if (bfd_get_section_by_name (dynobj, ".msym")
          && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_MSYM, 0))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Relocate a MIPS ELF section.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                contents, relocs, local_syms, local_sections)
      bfd *output_bfd;
@@ -5005,7 +5061,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *relend;
   bfd_vma addend = 0;
-  boolean use_saved_addend_p = false;
+  bfd_boolean use_saved_addend_p = FALSE;
   struct elf_backend_data *bed;
 
   bed = get_elf_backend_data (output_bfd);
@@ -5015,10 +5071,10 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       const char *name;
       bfd_vma value;
       reloc_howto_type *howto;
-      boolean require_jalx;
-      /* True if the relocation is a RELA relocation, rather than a
+      bfd_boolean require_jalx;
+      /* TRUE if the relocation is a RELA relocation, rather than a
          REL relocation.  */
-      boolean rela_relocation_p = true;
+      bfd_boolean rela_relocation_p = TRUE;
       unsigned int r_type = ELF_R_TYPE (output_bfd, rel->r_info);
       const char * msg = (const char *) NULL;
 
@@ -5031,7 +5087,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
             space.  Thus, when they use an R_MIPS_64 they mean what is
             usually meant by R_MIPS_32, with the exception that the
             stored value is sign-extended to 64 bits.  */
-         howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, R_MIPS_32, false);
+         howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, R_MIPS_32, FALSE);
 
          /* On big-endian systems, we need to lie about the position
             of the reloc.  */
@@ -5041,7 +5097,10 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       else
        /* NewABI defaults to RELA relocations.  */
        howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, r_type,
-                                        NEWABI_P (input_bfd));
+                                        NEWABI_P (input_bfd)
+                                        && (MIPS_RELOC_RELA_P
+                                            (input_bfd, input_section,
+                                             rel - relocs)));
 
       if (!use_saved_addend_p)
        {
@@ -5060,7 +5119,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
          if (rel_hdr->sh_entsize == MIPS_ELF_REL_SIZE (input_bfd))
            {
              /* Note that this is a REL relocation.  */
-             rela_relocation_p = false;
+             rela_relocation_p = FALSE;
 
              /* Get the addend, which is stored in the input file.  */
              addend = mips_elf_obtain_contents (howto, rel, input_bfd,
@@ -5075,7 +5134,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                  || r_type == R_MIPS_GNU_REL_HI16
                  || (r_type == R_MIPS_GOT16
                      && mips_elf_local_relocation_p (input_bfd, rel,
-                                                     local_sections, false)))
+                                                     local_sections, FALSE)))
                {
                  bfd_vma l;
                  const Elf_Internal_Rela *lo16_relocation;
@@ -5096,10 +5155,10 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                  lo16_relocation = mips_elf_next_relocation (input_bfd, lo,
                                                              rel, relend);
                  if (lo16_relocation == NULL)
-                   return false;
+                   return FALSE;
 
                  /* Obtain the addend kept there.  */
-                 lo16_howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, lo, false);
+                 lo16_howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, lo, FALSE);
                  l = mips_elf_obtain_contents (lo16_howto, lo16_relocation,
                                                input_bfd, contents);
                  l &= lo16_howto->src_mask;
@@ -5152,7 +5211,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
             that we're adjusting GP in this relocateable object.  */
 
          if (! mips_elf_local_relocation_p (input_bfd, rel, local_sections,
-                                            false))
+                                            FALSE))
            /* There's nothing to do for non-local relocations.  */
            continue;
 
@@ -5240,8 +5299,8 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
              if (! mips_elf_perform_relocation (info, howto, rel, addend,
                                                 input_bfd, input_section,
-                                                contents, false))
-               return false;
+                                                contents, FALSE))
+               return FALSE;
            }
 
          /* Go on to the next relocation.  */
@@ -5255,9 +5314,9 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       if (rel + 1 < relend
          && rel->r_offset == rel[1].r_offset
          && ELF_R_TYPE (input_bfd, rel[1].r_info) != R_MIPS_NONE)
-       use_saved_addend_p = true;
+       use_saved_addend_p = TRUE;
       else
-       use_saved_addend_p = false;
+       use_saved_addend_p = FALSE;
 
       addend >>= howto->rightshift;
 
@@ -5284,7 +5343,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
          msg = _("internal error: unsupported relocation error");
          info->callbacks->warning
            (info, msg, name, input_bfd, input_section, rel->r_offset);
-         return false;
+         return FALSE;
 
        case bfd_reloc_overflow:
          if (use_saved_addend_p)
@@ -5297,7 +5356,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              if (! ((*info->callbacks->reloc_overflow)
                     (info, name, howto->name, (bfd_vma) 0,
                      input_bfd, input_section, rel->r_offset)))
-               return false;
+               return FALSE;
            }
          break;
 
@@ -5366,10 +5425,10 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
       if (! mips_elf_perform_relocation (info, howto, rel, value,
                                         input_bfd, input_section,
                                         contents, require_jalx))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* If NAME is one of the special IRIX6 symbols defined by the linker,
@@ -5426,7 +5485,7 @@ mips_elf_irix6_finish_dynamic_symbol (abfd, name, sym)
 /* Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -5460,7 +5519,7 @@ _bfd_mips_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
 
       /* FIXME: Can h->dynindex be more than 64K?  */
       if (h->dynindx & 0xffff0000)
-       return false;
+       return FALSE;
 
       /* Fill the stub.  */
       bfd_put_32 (output_bfd, STUB_LW (output_bfd), stub);
@@ -5611,12 +5670,12 @@ _bfd_mips_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
       && (sym->st_value & 1) != 0)
     --sym->st_value;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic sections.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_finish_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -5655,13 +5714,13 @@ _bfd_mips_elf_finish_dynamic_sections (output_bfd, info)
          const char *name;
          size_t elemsize;
          asection *s;
-         boolean swap_out_p;
+         bfd_boolean swap_out_p;
 
          /* Read in the current dynamic entry.  */
          (*get_elf_backend_data (dynobj)->s->swap_dyn_in) (dynobj, b, &dyn);
 
          /* Assume that we're going to modify it and write it out.  */
-         swap_out_p = true;
+         swap_out_p = TRUE;
 
          switch (dyn.d_tag)
            {
@@ -5726,12 +5785,12 @@ _bfd_mips_elf_finish_dynamic_sections (output_bfd, info)
 
            case DT_MIPS_ICHECKSUM:
              /* XXX FIXME: */
-             swap_out_p = false;
+             swap_out_p = FALSE;
              break;
 
            case DT_MIPS_IVERSION:
              /* XXX FIXME: */
-             swap_out_p = false;
+             swap_out_p = FALSE;
              break;
 
            case DT_MIPS_BASE_ADDRESS:
@@ -5793,7 +5852,7 @@ _bfd_mips_elf_finish_dynamic_sections (output_bfd, info)
              break;
 
            default:
-             swap_out_p = false;
+             swap_out_p = FALSE;
              break;
            }
 
@@ -5899,7 +5958,7 @@ _bfd_mips_elf_finish_dynamic_sections (output_bfd, info)
       memset (s->contents, 0, MIPS_ELF_REL_SIZE (dynobj));
   }
 
-  return true;
+  return TRUE;
 }
 
 /* The final processing done just before writing out a MIPS ELF object
@@ -5909,7 +5968,7 @@ _bfd_mips_elf_finish_dynamic_sections (output_bfd, info)
 void
 _bfd_mips_elf_final_write_processing (abfd, linker)
      bfd *abfd;
-     boolean linker ATTRIBUTE_UNUSED;
+     bfd_boolean linker ATTRIBUTE_UNUSED;
 {
   unsigned long val;
   unsigned int i;
@@ -6094,7 +6153,7 @@ _bfd_mips_elf_additional_program_headers (abfd)
 
 /* Modify the segment map for an IRIX5 executable.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_modify_segment_map (abfd)
      bfd *abfd;
 {
@@ -6115,7 +6174,7 @@ _bfd_mips_elf_modify_segment_map (abfd)
          amt = sizeof *m;
          m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
          if (m == NULL)
-           return false;
+           return FALSE;
 
          m->p_type = PT_MIPS_REGINFO;
          m->count = 1;
@@ -6167,7 +6226,7 @@ _bfd_mips_elf_modify_segment_map (abfd)
          options_segment->next = *pm;
          options_segment->p_type = PT_MIPS_OPTIONS;
          options_segment->p_flags = PF_R;
-         options_segment->p_flags_valid = true;
+         options_segment->p_flags_valid = TRUE;
          options_segment->count = 1;
          options_segment->sections[0] = s;
          *pm = options_segment;
@@ -6191,7 +6250,7 @@ _bfd_mips_elf_modify_segment_map (abfd)
                  amt = sizeof *m;
                  m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
                  if (m == NULL)
-                   return false;
+                   return FALSE;
 
                  m->p_type = PT_MIPS_RTPROC;
 
@@ -6282,7 +6341,7 @@ _bfd_mips_elf_modify_segment_map (abfd)
          amt = sizeof *n + (bfd_size_type) (c - 1) * sizeof (asection *);
          n = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
          if (n == NULL)
-           return false;
+           return FALSE;
          *n = *m;
          n->count = c;
 
@@ -6304,7 +6363,7 @@ _bfd_mips_elf_modify_segment_map (abfd)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Return the section that should be marked against GC for a given
@@ -6351,7 +6410,7 @@ _bfd_mips_elf_gc_mark_hook (sec, info, rel, h, sym)
 
 /* Update the got entry reference counts for the section being removed.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_gc_sweep_hook (abfd, info, sec, relocs)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -6393,7 +6452,7 @@ _bfd_mips_elf_gc_sweep_hook (abfd, info, sec, relocs)
       }
 #endif
 
-  return true;
+  return TRUE;
 }
 \f
 /* Copy data from a MIPS ELF indirect symbol to its direct symbol,
@@ -6417,20 +6476,20 @@ _bfd_mips_elf_copy_indirect_symbol (bed, dir, ind)
   indmips = (struct mips_elf_link_hash_entry *) ind;
   dirmips->possibly_dynamic_relocs += indmips->possibly_dynamic_relocs;
   if (indmips->readonly_reloc)
-    dirmips->readonly_reloc = true;
+    dirmips->readonly_reloc = TRUE;
   if (dirmips->min_dyn_reloc_index == 0
       || (indmips->min_dyn_reloc_index != 0
          && indmips->min_dyn_reloc_index < dirmips->min_dyn_reloc_index))
     dirmips->min_dyn_reloc_index = indmips->min_dyn_reloc_index;
   if (indmips->no_fn_stub)
-    dirmips->no_fn_stub = true;
+    dirmips->no_fn_stub = TRUE;
 }
 
 void
 _bfd_mips_elf_hide_symbol (info, entry, force_local)
      struct bfd_link_info *info;
      struct elf_link_hash_entry *entry;
-     boolean force_local;
+     bfd_boolean force_local;
 {
   bfd *dynobj;
   asection *got;
@@ -6440,7 +6499,7 @@ _bfd_mips_elf_hide_symbol (info, entry, force_local)
   h = (struct mips_elf_link_hash_entry *) entry;
   if (h->forced_local)
     return;
-  h->forced_local = true;
+  h->forced_local = TRUE;
 
   dynobj = elf_hash_table (info)->dynobj;
   got = bfd_get_section_by_name (dynobj, ".got");
@@ -6455,39 +6514,40 @@ _bfd_mips_elf_hide_symbol (info, entry, force_local)
 \f
 #define PDR_SIZE 32
 
-boolean
+bfd_boolean
 _bfd_mips_elf_discard_info (abfd, cookie, info)
      bfd *abfd;
      struct elf_reloc_cookie *cookie;
      struct bfd_link_info *info;
 {
   asection *o;
-  boolean ret = false;
+  bfd_boolean ret = FALSE;
   unsigned char *tdata;
   size_t i, skip;
 
   o = bfd_get_section_by_name (abfd, ".pdr");
   if (! o)
-    return false;
+    return FALSE;
   if (o->_raw_size == 0)
-    return false;
+    return FALSE;
   if (o->_raw_size % PDR_SIZE != 0)
-    return false;
+    return FALSE;
   if (o->output_section != NULL
       && bfd_is_abs_section (o->output_section))
-    return false;
+    return FALSE;
 
   tdata = bfd_zmalloc (o->_raw_size / PDR_SIZE);
   if (! tdata)
-    return false;
+    return FALSE;
 
-  cookie->rels = _bfd_elf32_link_read_relocs (abfd, o, (PTR) NULL,
-                                             (Elf_Internal_Rela *) NULL,
-                                             info->keep_memory);
+  cookie->rels = (MNAME(abfd,_bfd_elf,link_read_relocs)
+                 (abfd, o, (PTR) NULL,
+                  (Elf_Internal_Rela *) NULL,
+                  info->keep_memory));
   if (!cookie->rels)
     {
       free (tdata);
-      return false;
+      return FALSE;
     }
 
   cookie->rel = cookie->rels;
@@ -6495,7 +6555,7 @@ _bfd_mips_elf_discard_info (abfd, cookie, info)
 
   for (i = 0, skip = 0; i < o->_raw_size; i ++)
     {
-      if (_bfd_elf32_reloc_symbol_deleted_p (i * PDR_SIZE, cookie))
+      if (MNAME(abfd,_bfd_elf,reloc_symbol_deleted_p) (i * PDR_SIZE, cookie))
        {
          tdata[i] = 1;
          skip ++;
@@ -6506,7 +6566,7 @@ _bfd_mips_elf_discard_info (abfd, cookie, info)
     {
       elf_section_data (o)->tdata = tdata;
       o->_cooked_size = o->_raw_size - skip * PDR_SIZE;
-      ret = true;
+      ret = TRUE;
     }
   else
     free (tdata);
@@ -6517,16 +6577,16 @@ _bfd_mips_elf_discard_info (abfd, cookie, info)
   return ret;
 }
 
-boolean
+bfd_boolean
 _bfd_mips_elf_ignore_discarded_relocs (sec)
      asection *sec;
 {
   if (strcmp (sec->name, ".pdr") == 0)
-    return true;
-  return false;
+    return TRUE;
+  return FALSE;
 }
 
-boolean
+bfd_boolean
 _bfd_mips_elf_write_section (output_bfd, sec, contents)
      bfd *output_bfd;
      asection *sec;
@@ -6536,10 +6596,10 @@ _bfd_mips_elf_write_section (output_bfd, sec, contents)
   int i;
 
   if (strcmp (sec->name, ".pdr") != 0)
-    return false;
+    return FALSE;
 
   if (elf_section_data (sec)->tdata == NULL)
-    return false;
+    return FALSE;
 
   to = contents;
   end = contents + sec->_raw_size;
@@ -6556,7 +6616,7 @@ _bfd_mips_elf_write_section (output_bfd, sec, contents)
   bfd_set_section_contents (output_bfd, sec->output_section, contents,
                            (file_ptr) sec->output_offset,
                            sec->_cooked_size);
-  return true;
+  return TRUE;
 }
 \f
 /* MIPS ELF uses a special find_nearest_line routine in order the
@@ -6568,7 +6628,7 @@ struct mips_elf_find_line
   struct ecoff_find_line i;
 };
 
-boolean
+bfd_boolean
 _bfd_mips_elf_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
                                 functionname_ptr, line_ptr)
      bfd *abfd;
@@ -6584,14 +6644,14 @@ _bfd_mips_elf_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
   if (_bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset,
                                     filename_ptr, functionname_ptr,
                                     line_ptr))
-    return true;
+    return TRUE;
 
   if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
                                     filename_ptr, functionname_ptr,
                                     line_ptr,
                                     (unsigned) (ABI_64_P (abfd) ? 8 : 0),
                                     &elf_tdata (abfd)->dwarf2_find_line_info))
-    return true;
+    return TRUE;
 
   msec = bfd_get_section_by_name (abfd, ".mdebug");
   if (msec != NULL)
@@ -6621,13 +6681,13 @@ _bfd_mips_elf_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
          if (fi == NULL)
            {
              msec->flags = origflags;
-             return false;
+             return FALSE;
            }
 
          if (! _bfd_mips_elf_read_ecoff_info (abfd, msec, &fi->d))
            {
              msec->flags = origflags;
-             return false;
+             return FALSE;
            }
 
          /* Swap in the FDR information.  */
@@ -6636,7 +6696,7 @@ _bfd_mips_elf_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
          if (fi->d.fdr == NULL)
            {
              msec->flags = origflags;
-             return false;
+             return FALSE;
            }
          external_fdr_size = swap->external_fdr_size;
          fdr_ptr = fi->d.fdr;
@@ -6661,7 +6721,7 @@ _bfd_mips_elf_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
                                  line_ptr))
        {
          msec->flags = origflags;
-         return true;
+         return TRUE;
        }
 
       msec->flags = origflags;
@@ -6678,7 +6738,7 @@ _bfd_mips_elf_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
    remember the bytes we are writing out, so that we can install the
    GP value in the section_processing routine.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -6695,7 +6755,7 @@ _bfd_mips_elf_set_section_contents (abfd, section, location, offset, count)
          bfd_size_type amt = sizeof (struct bfd_elf_section_data);
          section->used_by_bfd = (PTR) bfd_zalloc (abfd, amt);
          if (elf_section_data (section) == NULL)
-           return false;
+           return FALSE;
        }
       c = (bfd_byte *) elf_section_data (section)->tdata;
       if (c == NULL)
@@ -6708,7 +6768,7 @@ _bfd_mips_elf_set_section_contents (abfd, section, location, offset, count)
            size = section->_raw_size;
          c = (bfd_byte *) bfd_zalloc (abfd, size);
          if (c == NULL)
-           return false;
+           return FALSE;
          elf_section_data (section)->tdata = (PTR) c;
        }
 
@@ -6729,7 +6789,7 @@ _bfd_elf_mips_get_relocated_section_contents (abfd, link_info, link_order,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   /* Get enough memory to hold the stuff */
@@ -6757,7 +6817,7 @@ _bfd_elf_mips_get_relocated_section_contents (abfd, link_info, link_order,
 
   /* We're not relaxing the section, so just copy the size info */
   input_section->_cooked_size = input_section->_raw_size;
-  input_section->reloc_done = true;
+  input_section->reloc_done = TRUE;
 
   reloc_count = bfd_canonicalize_reloc (input_bfd,
                                        input_section,
@@ -6782,7 +6842,7 @@ _bfd_elf_mips_get_relocated_section_contents (abfd, link_info, link_order,
          lh = 0;
        else
          {
-           h = bfd_hash_lookup (&link_info->hash->table, "_gp", false, false);
+           h = bfd_hash_lookup (&link_info->hash->table, "_gp", FALSE, FALSE);
            lh = (struct bfd_link_hash_entry *) h;
          }
       lookup:
@@ -6868,7 +6928,7 @@ _bfd_elf_mips_get_relocated_section_contents (abfd, link_info, link_order,
                  if (!((*link_info->callbacks->undefined_symbol)
                        (link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
                         input_bfd, input_section, (*parent)->address,
-                        true)))
+                        TRUE)))
                    goto error_return;
                  break;
                case bfd_reloc_dangerous:
@@ -6931,9 +6991,9 @@ _bfd_mips_elf_link_hash_table_create (abfd)
 #endif
   ret->procedure_count = 0;
   ret->compact_rel_size = 0;
-  ret->use_rld_obj_head = false;
+  ret->use_rld_obj_head = FALSE;
   ret->rld_value = 0;
-  ret->mips16_stubs_seen = false;
+  ret->mips16_stubs_seen = FALSE;
 
   return &ret->root.root;
 }
@@ -6942,7 +7002,7 @@ _bfd_mips_elf_link_hash_table_create (abfd)
    the .mdebug sections.  We need to merge all instances of these
    sections together, not write them all out sequentially.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -7004,7 +7064,7 @@ _bfd_mips_elf_final_link (abfd, info)
       if (! mips_elf_sort_hash_table (info, (info->shared
                                             ? bfd_count_sections (abfd) + 1
                                             : 1)))
-       return false;
+       return FALSE;
 
       /* Make sure we didn't grow the global .got region.  */
       dynobj = elf_hash_table (info)->dynobj;
@@ -7052,7 +7112,7 @@ _bfd_mips_elf_final_link (abfd, info)
          (*secpp)->link_order_head = NULL;
          bfd_section_list_remove (abfd, secpp);
          --abfd->section_count;
-           
+
          break;
        }
     }
@@ -7063,7 +7123,7 @@ _bfd_mips_elf_final_link (abfd, info)
     {
       struct bfd_link_hash_entry *h;
 
-      h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true);
+      h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE);
       if (h != (struct bfd_link_hash_entry *) NULL
          && h->type == bfd_link_hash_defined)
        elf_gp (abfd) = (h->u.def.value
@@ -7133,7 +7193,7 @@ _bfd_mips_elf_final_link (abfd, info)
                                              (PTR) &ext,
                                              (file_ptr) 0,
                                              (bfd_size_type) sizeof ext))
-               return false;
+               return FALSE;
 
              bfd_mips_elf32_swap_reginfo_in (input_bfd, &ext, &sub);
 
@@ -7202,7 +7262,7 @@ _bfd_mips_elf_final_link (abfd, info)
 
          mdebug_handle = bfd_ecoff_debug_init (abfd, &debug, swap, info);
          if (mdebug_handle == (PTR) NULL)
-           return false;
+           return FALSE;
 
          esym.jmptbl = 0;
          esym.cobol_main = 0;
@@ -7227,7 +7287,7 @@ _bfd_mips_elf_final_link (abfd, info)
                esym.asym.value = last;
              if (!bfd_ecoff_debug_one_external (abfd, &debug, swap,
                                                 secname[i], &esym))
-               return false;
+               return FALSE;
            }
 
          for (p = o->link_order_head;
@@ -7271,12 +7331,12 @@ _bfd_mips_elf_final_link (abfd, info)
                 ecoff_debug_info structure, so we do that now.  */
              if (! _bfd_mips_elf_read_ecoff_info (input_bfd, input_section,
                                                   &input_debug))
-               return false;
+               return FALSE;
 
              if (! (bfd_ecoff_debug_accumulate
                     (mdebug_handle, abfd, &debug, swap, input_bfd,
                      &input_debug, input_swap, info)))
-               return false;
+               return FALSE;
 
              /* Loop through the external symbols.  For each one with
                 interesting information, try to find the symbol in
@@ -7302,7 +7362,7 @@ _bfd_mips_elf_final_link (abfd, info)
 
                  name = input_debug.ssext + ext.asym.iss;
                  h = mips_elf_link_hash_lookup (mips_elf_hash_table (info),
-                                                name, false, false, true);
+                                                name, FALSE, FALSE, TRUE);
                  if (h == NULL || h->esym.ifd != -2)
                    continue;
 
@@ -7347,13 +7407,13 @@ _bfd_mips_elf_final_link (abfd, info)
                  if (rtproc_sec == NULL
                      || ! bfd_set_section_flags (abfd, rtproc_sec, flags)
                      || ! bfd_set_section_alignment (abfd, rtproc_sec, 4))
-                   return false;
+                   return FALSE;
                }
 
              if (! mips_elf_create_procedure_table (mdebug_handle, abfd,
                                                     info, rtproc_sec,
                                                     &debug))
-               return false;
+               return FALSE;
            }
 
          /* Build the external symbol information.  */
@@ -7361,12 +7421,12 @@ _bfd_mips_elf_final_link (abfd, info)
          einfo.info = info;
          einfo.debug = &debug;
          einfo.swap = swap;
-         einfo.failed = false;
+         einfo.failed = FALSE;
          mips_elf_link_hash_traverse (mips_elf_hash_table (info),
                                       mips_elf_output_extsym,
                                       (PTR) &einfo);
          if (einfo.failed)
-           return false;
+           return FALSE;
 
          /* Set the size of the .mdebug section.  */
          o->_raw_size = bfd_ecoff_debug_size (abfd, &debug, swap);
@@ -7439,7 +7499,7 @@ _bfd_mips_elf_final_link (abfd, info)
                (_("%s: illegal section name `%s'"),
                 bfd_get_filename (abfd), o->name);
              bfd_set_error (bfd_error_nonrepresentable_section);
-             return false;
+             return FALSE;
            }
 
          /* The linker script always combines .gptab.data and
@@ -7463,7 +7523,7 @@ _bfd_mips_elf_final_link (abfd, info)
          amt = c * sizeof (Elf32_gptab);
          tab = (Elf32_gptab *) bfd_malloc (amt);
          if (tab == NULL)
-           return false;
+           return FALSE;
          tab[0].gt_header.gt_current_g_value = elf_gp_size (abfd);
          tab[0].gt_header.gt_unused = 0;
 
@@ -7501,7 +7561,7 @@ _bfd_mips_elf_final_link (abfd, info)
                  Elf32_gptab int_gptab;
                  unsigned long val;
                  unsigned long add;
-                 boolean exact;
+                 bfd_boolean exact;
                  unsigned int look;
 
                  if (! (bfd_get_section_contents
@@ -7510,7 +7570,7 @@ _bfd_mips_elf_final_link (abfd, info)
                          (bfd_size_type) sizeof (Elf32_External_gptab))))
                    {
                      free (tab);
-                     return false;
+                     return FALSE;
                    }
 
                  bfd_mips_elf32_swap_gptab_in (input_bfd, &ext_gptab,
@@ -7518,14 +7578,14 @@ _bfd_mips_elf_final_link (abfd, info)
                  val = int_gptab.gt_entry.gt_g_value;
                  add = int_gptab.gt_entry.gt_bytes - last;
 
-                 exact = false;
+                 exact = FALSE;
                  for (look = 1; look < c; look++)
                    {
                      if (tab[look].gt_entry.gt_g_value >= val)
                        tab[look].gt_entry.gt_bytes += add;
 
                      if (tab[look].gt_entry.gt_g_value == val)
-                       exact = true;
+                       exact = TRUE;
                    }
 
                  if (! exact)
@@ -7539,7 +7599,7 @@ _bfd_mips_elf_final_link (abfd, info)
                      if (new_tab == NULL)
                        {
                          free (tab);
-                         return false;
+                         return FALSE;
                        }
                      tab = new_tab;
                      tab[c].gt_entry.gt_g_value = val;
@@ -7582,7 +7642,7 @@ _bfd_mips_elf_final_link (abfd, info)
          if (ext_tab == NULL)
            {
              free (tab);
-             return false;
+             return FALSE;
            }
 
          for (j = 0; j < c; j++)
@@ -7599,18 +7659,8 @@ _bfd_mips_elf_final_link (abfd, info)
     }
 
   /* Invoke the regular ELF backend linker to do all the work.  */
-  if (ABI_64_P (abfd))
-    {
-#ifdef BFD64
-      if (!bfd_elf64_bfd_final_link (abfd, info))
-       return false;
-#else
-      abort ();
-      return false;
-#endif /* BFD64 */
-    }
-  else if (!bfd_elf32_bfd_final_link (abfd, info))
-    return false;
+  if (!MNAME(abfd,bfd_elf,bfd_final_link) (abfd, info))
+    return FALSE;
 
   /* Now write out the computed sections.  */
 
@@ -7622,7 +7672,7 @@ _bfd_mips_elf_final_link (abfd, info)
       if (! bfd_set_section_contents (abfd, reginfo_sec, (PTR) &ext,
                                      (file_ptr) 0,
                                      (bfd_size_type) sizeof ext))
-       return false;
+       return FALSE;
     }
 
   if (mdebug_sec != (asection *) NULL)
@@ -7631,7 +7681,7 @@ _bfd_mips_elf_final_link (abfd, info)
       if (! bfd_ecoff_write_accumulated_debug (mdebug_handle, abfd, &debug,
                                               swap, info,
                                               mdebug_sec->filepos))
-       return false;
+       return FALSE;
 
       bfd_ecoff_debug_free (mdebug_handle, abfd, &debug, swap, info);
     }
@@ -7642,7 +7692,7 @@ _bfd_mips_elf_final_link (abfd, info)
                                      gptab_data_sec->contents,
                                      (file_ptr) 0,
                                      gptab_data_sec->_raw_size))
-       return false;
+       return FALSE;
     }
 
   if (gptab_bss_sec != (asection *) NULL)
@@ -7651,7 +7701,7 @@ _bfd_mips_elf_final_link (abfd, info)
                                      gptab_bss_sec->contents,
                                      (file_ptr) 0,
                                      gptab_bss_sec->_raw_size))
-       return false;
+       return FALSE;
     }
 
   if (SGI_COMPAT (abfd))
@@ -7663,19 +7713,19 @@ _bfd_mips_elf_final_link (abfd, info)
                                          rtproc_sec->contents,
                                          (file_ptr) 0,
                                          rtproc_sec->_raw_size))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
-/* Return true if machine EXTENSION is an extension of machine BASE,
+/* Return TRUE if machine EXTENSION is an extension of machine BASE,
    meaning that it should be safe to link code for the two machines
    and set the output machine to EXTENSION.  EXTENSION and BASE are
    both submasks of EF_MIPS_MACH.  */
 
-static boolean
+static bfd_boolean
 _bfd_mips_elf_mach_extends_p (base, extension)
      flagword base, extension;
 {
@@ -7693,24 +7743,24 @@ _bfd_mips_elf_mach_extends_p (base, extension)
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   flagword old_flags;
   flagword new_flags;
-  boolean ok;
-  boolean null_input_bfd = true;
+  bfd_boolean ok;
+  bfd_boolean null_input_bfd = TRUE;
   asection *sec;
 
   /* Check if we have the same endianess */
   if (! _bfd_generic_verify_endian_match (ibfd, obfd))
-    return false;
+    return FALSE;
 
   if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
       || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
+    return TRUE;
 
   new_flags = elf_elfheader (ibfd)->e_flags;
   elf_elfheader (obfd)->e_flags |= new_flags & EF_MIPS_NOREORDER;
@@ -7718,7 +7768,7 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
 
   if (! elf_flags_init (obfd))
     {
-      elf_flags_init (obfd) = true;
+      elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = new_flags;
       elf_elfheader (obfd)->e_ident[EI_CLASS]
        = elf_elfheader (ibfd)->e_ident[EI_CLASS];
@@ -7728,10 +7778,10 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
        {
          if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd),
                                   bfd_get_mach (ibfd)))
-           return false;
+           return FALSE;
        }
 
-      return true;
+      return TRUE;
     }
 
   /* Check flag compatibility.  */
@@ -7740,7 +7790,7 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
   old_flags &= ~EF_MIPS_NOREORDER;
 
   if (new_flags == old_flags)
-    return true;
+    return TRUE;
 
   /* Check to see if the input BFD actually contains any sections.
      If not, its flags may not have been initialised either, but it cannot
@@ -7756,14 +7806,14 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
               || !strcmp (sec->name, ".bss"))
              && sec->_raw_size != 0))
        {
-         null_input_bfd = false;
+         null_input_bfd = FALSE;
          break;
        }
     }
   if (null_input_bfd)
-    return true;
+    return TRUE;
 
-  ok = true;
+  ok = TRUE;
 
   if ((new_flags & EF_MIPS_PIC) != (old_flags & EF_MIPS_PIC))
     {
@@ -7772,7 +7822,7 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
       (*_bfd_error_handler)
        (_("%s: linking PIC files with non-PIC files"),
         bfd_archive_filename (ibfd));
-      ok = false;
+      ok = FALSE;
     }
 
   if ((new_flags & EF_MIPS_CPIC) != (old_flags & EF_MIPS_CPIC))
@@ -7782,7 +7832,7 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
       (*_bfd_error_handler)
        (_("%s: linking abicalls files with non-abicalls files"),
         bfd_archive_filename (ibfd));
-      ok = false;
+      ok = FALSE;
     }
 
   /* Compare the ISA's.  */
@@ -7810,7 +7860,7 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
              (*_bfd_error_handler)
               (_("%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"),
                bfd_archive_filename (ibfd), new_isa, old_isa);
-             ok = false;
+             ok = FALSE;
            }
          else
            {
@@ -7837,7 +7887,7 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
             bfd_archive_filename (ibfd),
             _bfd_elf_mips_mach (new_flags),
             _bfd_elf_mips_mach (old_flags));
-         ok = false;
+         ok = FALSE;
        }
 
       new_flags &= ~(EF_MIPS_ARCH | EF_MIPS_MACH);
@@ -7860,7 +7910,7 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
             bfd_archive_filename (ibfd),
             elf_mips_abi_name (ibfd),
             elf_mips_abi_name (obfd));
-         ok = false;
+         ok = FALSE;
        }
       new_flags &= ~EF_MIPS_ABI;
       old_flags &= ~EF_MIPS_ABI;
@@ -7882,21 +7932,21 @@ _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd)
        (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
         bfd_archive_filename (ibfd), (unsigned long) new_flags,
         (unsigned long) old_flags);
-      ok = false;
+      ok = FALSE;
     }
 
   if (! ok)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Function to keep MIPS specific file flags like as EF_MIPS_PIC.  */
 
-boolean
+bfd_boolean
 _bfd_mips_elf_set_private_flags (abfd, flags)
      bfd *abfd;
      flagword flags;
@@ -7905,11 +7955,11 @@ _bfd_mips_elf_set_private_flags (abfd, flags)
              || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
-  elf_flags_init (abfd) = true;
-  return true;
+  elf_flags_init (abfd) = TRUE;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 _bfd_mips_elf_print_private_bfd_data (abfd, ptr)
      bfd *abfd;
      PTR ptr;
@@ -7971,5 +8021,5 @@ _bfd_mips_elf_print_private_bfd_data (abfd, ptr)
 
   fputc ('\n', file);
 
-  return true;
+  return TRUE;
 }
index 2c8ac2f2fb4afedf9472aa8ec48c2a8ad7d8470b..9b935c6f649bd3169bd28b3236bfaa49c0f9ec84 100644 (file)
@@ -22,85 +22,86 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 extern void _bfd_mips_elf_symbol_processing
   PARAMS ((bfd *, asymbol *));
-extern boolean _bfd_mips_elf_section_processing
+extern bfd_boolean _bfd_mips_elf_section_processing
   PARAMS ((bfd *, Elf_Internal_Shdr *));
-extern boolean _bfd_mips_elf_section_from_shdr
+extern bfd_boolean _bfd_mips_elf_section_from_shdr
   PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
-extern boolean _bfd_mips_elf_fake_sections
+extern bfd_boolean _bfd_mips_elf_fake_sections
   PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
-extern boolean _bfd_mips_elf_section_from_bfd_section
+extern bfd_boolean _bfd_mips_elf_section_from_bfd_section
   PARAMS ((bfd *, asection *, int *));
-extern boolean _bfd_mips_elf_add_symbol_hook
+extern bfd_boolean _bfd_mips_elf_add_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
           const char **, flagword *, asection **, bfd_vma *));
-extern boolean _bfd_mips_elf_link_output_symbol_hook
+extern bfd_boolean _bfd_mips_elf_link_output_symbol_hook
   PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *,
           asection *));
-extern boolean _bfd_mips_elf_create_dynamic_sections
+extern bfd_boolean _bfd_mips_elf_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_mips_elf_check_relocs
+extern bfd_boolean _bfd_mips_elf_check_relocs
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
-extern boolean _bfd_mips_elf_adjust_dynamic_symbol
+extern bfd_boolean _bfd_mips_elf_adjust_dynamic_symbol
   PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-extern boolean _bfd_mips_elf_always_size_sections
+extern bfd_boolean _bfd_mips_elf_always_size_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_mips_elf_size_dynamic_sections
+extern bfd_boolean _bfd_mips_elf_size_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_mips_elf_relocate_section
+extern bfd_boolean _bfd_mips_elf_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-extern boolean _bfd_mips_elf_finish_dynamic_symbol
+extern bfd_boolean _bfd_mips_elf_finish_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
           Elf_Internal_Sym *));
-extern boolean _bfd_mips_elf_finish_dynamic_sections
+extern bfd_boolean _bfd_mips_elf_finish_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
 extern void _bfd_mips_elf_final_write_processing
-  PARAMS ((bfd *, boolean));
+  PARAMS ((bfd *, bfd_boolean));
 extern int _bfd_mips_elf_additional_program_headers
   PARAMS ((bfd *));
-extern boolean _bfd_mips_elf_modify_segment_map
+extern bfd_boolean _bfd_mips_elf_modify_segment_map
   PARAMS ((bfd *));
 extern asection * _bfd_mips_elf_gc_mark_hook
   PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
           struct elf_link_hash_entry *, Elf_Internal_Sym *));
-extern boolean _bfd_mips_elf_gc_sweep_hook
+extern bfd_boolean _bfd_mips_elf_gc_sweep_hook
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           const Elf_Internal_Rela *));
 extern void _bfd_mips_elf_copy_indirect_symbol
   PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
           struct elf_link_hash_entry *));
 extern void _bfd_mips_elf_hide_symbol
-  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean));
-extern boolean _bfd_mips_elf_ignore_discarded_relocs
+  PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
+extern bfd_boolean _bfd_mips_elf_ignore_discarded_relocs
   PARAMS ((asection *));
-extern boolean _bfd_mips_elf_find_nearest_line
+extern bfd_boolean _bfd_mips_elf_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *));
-extern boolean _bfd_mips_elf_set_section_contents
+extern bfd_boolean _bfd_mips_elf_set_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
 extern bfd_byte *_bfd_elf_mips_get_relocated_section_contents
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, boolean, asymbol **));
+          bfd_byte *, bfd_boolean, asymbol **));
 extern struct bfd_link_hash_table *_bfd_mips_elf_link_hash_table_create
   PARAMS ((bfd *));
-extern boolean _bfd_mips_elf_final_link
+extern bfd_boolean _bfd_mips_elf_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_mips_elf_merge_private_bfd_data
+extern bfd_boolean _bfd_mips_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
-extern boolean _bfd_mips_elf_set_private_flags
+extern bfd_boolean _bfd_mips_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-extern boolean _bfd_mips_elf_print_private_bfd_data
+extern bfd_boolean _bfd_mips_elf_print_private_bfd_data
   PARAMS ((bfd *, PTR));
-extern boolean _bfd_mips_elf_discard_info
+extern bfd_boolean _bfd_mips_elf_discard_info
   PARAMS ((bfd *, struct elf_reloc_cookie *, struct bfd_link_info *));
-extern boolean _bfd_mips_elf_write_section
+extern bfd_boolean _bfd_mips_elf_write_section
   PARAMS ((bfd *, asection *, bfd_byte *));
 
-extern boolean _bfd_mips_elf_read_ecoff_info
+extern bfd_boolean _bfd_mips_elf_read_ecoff_info
   PARAMS ((bfd *, asection *, struct ecoff_debug_info *));
 extern bfd_reloc_status_type _bfd_mips_elf_gprel16_with_gp
-  PARAMS ((bfd *, asymbol *, arelent *, asection *, boolean, PTR, bfd_vma));
+  PARAMS ((bfd *, asymbol *, arelent *, asection *, bfd_boolean, PTR,
+          bfd_vma));
 extern bfd_reloc_status_type _bfd_mips_elf32_gprel16_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 extern unsigned long _bfd_elf_mips_mach
index f5b6a35ad0210bd9e2a5fc422c989ab20edc8b36..c3ff1047c283c45aa54a7d2237023d21806da4e9 100644 (file)
 #endif
 #ifndef bfd_elfNN_bfd_merge_private_bfd_data
 #define bfd_elfNN_bfd_merge_private_bfd_data \
-  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
 #endif
 #ifndef bfd_elfNN_bfd_set_private_flags
 #define bfd_elfNN_bfd_set_private_flags \
-  ((boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
 #endif
 #ifndef bfd_elfNN_bfd_is_local_label_name
 #define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name
 #endif
 
 #ifndef elf_backend_collect
-#define elf_backend_collect false
+#define elf_backend_collect FALSE
 #endif
 #ifndef elf_backend_type_change_ok
-#define elf_backend_type_change_ok false
+#define elf_backend_type_change_ok FALSE
 #endif
 
 #ifndef elf_backend_sym_is_global
index 33291d0f94437c47513b6fc493fc44845137f293..8cc7b7a1670b039881626143ad0ef837e30b27aa 100644 (file)
@@ -52,7 +52,7 @@ FUNCTION
        bfd_check_format
 
 SYNOPSIS
-       boolean bfd_check_format(bfd *abfd, bfd_format format);
+       bfd_boolean bfd_check_format(bfd *abfd, bfd_format format);
 
 DESCRIPTION
        Verify if the file attached to the BFD @var{abfd} is compatible
@@ -67,7 +67,7 @@ DESCRIPTION
        matches, it is used.  If not, exactly one target must recognize
        the file, or an error results.
 
-       The function returns <<true>> on success, otherwise <<false>>
+       The function returns <<TRUE>> on success, otherwise <<FALSE>>
        with one of the following error codes:
 
        o <<bfd_error_invalid_operation>> -
@@ -85,7 +85,7 @@ DESCRIPTION
        more than one backend recognised the file format.
 */
 
-boolean
+bfd_boolean
 bfd_check_format (abfd, format)
      bfd *abfd;
      bfd_format format;
@@ -98,10 +98,10 @@ FUNCTION
        bfd_check_format_matches
 
 SYNOPSIS
-       boolean bfd_check_format_matches(bfd *abfd, bfd_format format, char ***matching);
+       bfd_boolean bfd_check_format_matches(bfd *abfd, bfd_format format, char ***matching);
 
 DESCRIPTION
-       Like <<bfd_check_format>>, except when it returns false with
+       Like <<bfd_check_format>>, except when it returns FALSE with
        <<bfd_errno>> set to <<bfd_error_file_ambiguously_recognized>>.  In that
        case, if @var{matching} is not NULL, it will be filled in with
        a NULL-terminated list of the names of the formats that matched,
@@ -112,7 +112,7 @@ DESCRIPTION
        should free it.
 */
 
-boolean
+bfd_boolean
 bfd_check_format_matches (abfd, format, matching)
      bfd *abfd;
      bfd_format format;
@@ -129,11 +129,11 @@ bfd_check_format_matches (abfd, format, matching)
       || (unsigned int) abfd->format >= (unsigned int) bfd_type_end)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   if (abfd->format != bfd_unknown)
-    return (boolean) (abfd->format == format);
+    return abfd->format == format;
 
   /* Since the target type was defaulted, check them
      all in the hope that one will be uniquely recognized.  */
@@ -149,7 +149,7 @@ bfd_check_format_matches (abfd, format, matching)
       amt = sizeof (*matching_vector) * 2 * _bfd_target_vector_entries;
       matching_vector = (const bfd_target **) bfd_malloc (amt);
       if (!matching_vector)
-       return false;
+       return FALSE;
     }
 
   right_targ = 0;
@@ -162,7 +162,7 @@ bfd_check_format_matches (abfd, format, matching)
   if (!abfd->target_defaulted)
     {
       if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)        /* rewind! */
-       return false;
+       return FALSE;
 
       right_targ = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd));
 
@@ -173,7 +173,7 @@ bfd_check_format_matches (abfd, format, matching)
          if (matching)
            free ((PTR) matching_vector);
 
-         return true;                  /* File position has moved, BTW.  */
+         return TRUE;                  /* File position has moved, BTW.  */
        }
 
       /* For a long time the code has dropped through to check all
@@ -198,7 +198,7 @@ bfd_check_format_matches (abfd, format, matching)
 
          bfd_set_error (bfd_error_file_not_recognized);
 
-         return false;
+         return FALSE;
        }
     }
 
@@ -213,7 +213,7 @@ bfd_check_format_matches (abfd, format, matching)
       abfd->xvec = *target;    /* Change BFD's target temporarily */
 
       if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       /* If _bfd_check_format neglects to set bfd_error, assume
         bfd_error_wrong_format.  We didn't used to even pay any
@@ -271,7 +271,7 @@ bfd_check_format_matches (abfd, format, matching)
          if (matching)
            free ((PTR) matching_vector);
 
-         return false;
+         return FALSE;
        }
     }
 
@@ -322,7 +322,7 @@ bfd_check_format_matches (abfd, format, matching)
       if (matching)
        free ((PTR) matching_vector);
 
-      return true;                     /* File position has moved, BTW.  */
+      return TRUE;                     /* File position has moved, BTW.  */
     }
 
   abfd->xvec = save_targ;              /* Restore original target type.  */
@@ -353,7 +353,7 @@ bfd_check_format_matches (abfd, format, matching)
        }
     }
 
-  return false;
+  return FALSE;
 }
 
 /*
@@ -361,7 +361,7 @@ FUNCTION
        bfd_set_format
 
 SYNOPSIS
-       boolean bfd_set_format(bfd *abfd, bfd_format format);
+       bfd_boolean bfd_set_format(bfd *abfd, bfd_format format);
 
 DESCRIPTION
        This function sets the file format of the BFD @var{abfd} to the
@@ -370,7 +370,7 @@ DESCRIPTION
        is not open for writing, then an error occurs.
 */
 
-boolean
+bfd_boolean
 bfd_set_format (abfd, format)
      bfd *abfd;
      bfd_format format;
@@ -379,11 +379,11 @@ bfd_set_format (abfd, format)
       || (unsigned int) abfd->format >= (unsigned int) bfd_type_end)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   if (abfd->format != bfd_unknown)
-    return (boolean) (abfd->format == format);
+    return abfd->format == format;
 
   /* Presume the answer is yes.  */
   abfd->format = format;
@@ -391,10 +391,10 @@ bfd_set_format (abfd, format)
   if (!BFD_SEND_FMT (abfd, _bfd_set_format, (abfd)))
     {
       abfd->format = bfd_unknown;
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /*
index c2e3af02cf4bd6760708087681ce5aff8f5c8bc6..424484f6148ba0a2af24f375e1296ddd9bc2c9bc 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end definitions used by all FreeBSD targets.
-   Copyright 1990, 1991, 1992, 1996, 1997, 2000, 2001
+   Copyright 1990, 1991, 1992, 1996, 1997, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -61,7 +61,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 #define SWAP_MAGIC(ext) bfd_getl32 (ext)
 
 #define MY_write_object_contents MY(write_object_contents)
-static boolean MY(write_object_contents) PARAMS ((bfd *abfd));
+static bfd_boolean MY(write_object_contents) PARAMS ((bfd *abfd));
 
 #include "aout-target.h"
 
@@ -69,7 +69,7 @@ static boolean MY(write_object_contents) PARAMS ((bfd *abfd));
    Section contents have already been written.  We write the
    file header, symbols, and relocation.  */
 
-static boolean
+static bfd_boolean
 MY(write_object_contents) (abfd)
      bfd *abfd;
 {
@@ -102,5 +102,5 @@ MY(write_object_contents) (abfd)
 
   WRITE_HEADERS(abfd, execp);
 
-  return true;
+  return TRUE;
 }
index 215666a336c87ef0d3529f1a8c781b9438f414dc..bcdc34b15684d086cf4bbc4aa5350ead03cef2c4 100644 (file)
@@ -1,5 +1,5 @@
 /* genlink.h -- interface to the BFD generic linker
-   Copyright 1993, 1994, 1996 Free Software Foundation, Inc.
+   Copyright 1993, 1994, 1996, 2002 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -42,7 +42,7 @@ struct generic_link_hash_entry
 {
   struct bfd_link_hash_entry root;
   /* Whether this symbol has been written out.  */
-  boolean written;
+  bfd_boolean written;
   /* Symbol from input BFD.  */
   asymbol *sym;
 };
@@ -54,18 +54,18 @@ struct generic_link_hash_table
   struct bfd_link_hash_table root;
 };
 
-/* Look up an entry in an generic link hash table.  */
+/* Look up an entry in a generic link hash table.  */
 
 #define _bfd_generic_link_hash_lookup(table, string, create, copy, follow) \
   ((struct generic_link_hash_entry *) \
    bfd_link_hash_lookup (&(table)->root, (string), (create), (copy), (follow)))
 
-/* Traverse an generic link hash table.  */
+/* Traverse a generic link hash table.  */
 
 #define _bfd_generic_link_hash_traverse(table, func, info)             \
   (bfd_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the generic link hash table from the info structure.  This is
@@ -82,7 +82,7 @@ struct generic_link_hash_table
 
 /* Add the symbols of input_bfd to the symbols being built for
    output_bfd.  */
-extern boolean _bfd_generic_link_output_symbols
+extern bfd_boolean _bfd_generic_link_output_symbols
   PARAMS ((bfd *output_bfd, bfd *input_bfd, struct bfd_link_info *,
           size_t *psymalloc));
 
@@ -100,7 +100,7 @@ struct generic_write_global_symbol_info
 /* Write out a single global symbol.  This is expected to be called
    via _bfd_generic_link_hash_traverse.  The second argument must
    actually be a struct generic_write_global_symbol_info *.  */
-extern boolean _bfd_generic_link_write_global_symbol
+extern bfd_boolean _bfd_generic_link_write_global_symbol
   PARAMS ((struct generic_link_hash_entry *, PTR));
 
 /* Generic link hash table entry creation routine.  */
index e7c77feb6f88bfa9e447b0c502c0bd5fec43f1d6..8ae0c7a63efd8da420dcb1d03d0692434f50750f 100644 (file)
@@ -67,7 +67,7 @@ SUBSECTION
        <<bfd_hash_table_init>> (if you know approximately how many
        entries you will need, the function <<bfd_hash_table_init_n>>,
        which takes a @var{size} argument, may be used).
-       <<bfd_hash_table_init>> returns <<false>> if some sort of
+       <<bfd_hash_table_init>> returns <<FALSE>> if some sort of
        error occurs.
 
 @findex bfd_hash_newfunc
@@ -96,24 +96,24 @@ SUBSECTION
        The function <<bfd_hash_lookup>> is used both to look up a
        string in the hash table and to create a new entry.
 
-       If the @var{create} argument is <<false>>, <<bfd_hash_lookup>>
+       If the @var{create} argument is <<FALSE>>, <<bfd_hash_lookup>>
        will look up a string.  If the string is found, it will
        returns a pointer to a <<struct bfd_hash_entry>>.  If the
        string is not found in the table <<bfd_hash_lookup>> will
        return <<NULL>>.  You should not modify any of the fields in
        the returns <<struct bfd_hash_entry>>.
 
-       If the @var{create} argument is <<true>>, the string will be
+       If the @var{create} argument is <<TRUE>>, the string will be
        entered into the hash table if it is not already there.
        Either way a pointer to a <<struct bfd_hash_entry>> will be
        returned, either to the existing structure or to a newly
        created one.  In this case, a <<NULL>> return means that an
        error occurred.
 
-       If the @var{create} argument is <<true>>, and a new entry is
+       If the @var{create} argument is <<TRUE>>, and a new entry is
        created, the @var{copy} argument is used to decide whether to
        copy the string onto the hash table objalloc or not.  If
-       @var{copy} is passed as <<false>>, you must be careful not to
+       @var{copy} is passed as <<FALSE>>, you must be careful not to
        deallocate or modify the string as long as the hash table
        exists.
 
@@ -133,7 +133,7 @@ SUBSECTION
        generic pointer passed to <<bfd_hash_traverse>>.  The function
        must return a <<boolean>> value, which indicates whether to
        continue traversing the hash table.  If the function returns
-       <<false>>, <<bfd_hash_traverse>> will stop the traversal and
+       <<FALSE>>, <<bfd_hash_traverse>> will stop the traversal and
        return immediately.
 
 INODE
@@ -299,7 +299,7 @@ SUBSUBSECTION
 
 /* Create a new hash table, given a number of entries.  */
 
-boolean
+bfd_boolean
 bfd_hash_table_init_n (table, newfunc, size)
      struct bfd_hash_table *table;
      struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
@@ -315,24 +315,24 @@ bfd_hash_table_init_n (table, newfunc, size)
   if (table->memory == NULL)
     {
       bfd_set_error (bfd_error_no_memory);
-      return false;
+      return FALSE;
     }
   table->table = ((struct bfd_hash_entry **)
                  objalloc_alloc ((struct objalloc *) table->memory, alloc));
   if (table->table == NULL)
     {
       bfd_set_error (bfd_error_no_memory);
-      return false;
+      return FALSE;
     }
   memset ((PTR) table->table, 0, alloc);
   table->size = size;
   table->newfunc = newfunc;
-  return true;
+  return TRUE;
 }
 
 /* Create a new hash table with the default number of entries.  */
 
-boolean
+bfd_boolean
 bfd_hash_table_init (table, newfunc)
      struct bfd_hash_table *table;
      struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
@@ -358,8 +358,8 @@ struct bfd_hash_entry *
 bfd_hash_lookup (table, string, create, copy)
      struct bfd_hash_table *table;
      const char *string;
-     boolean create;
-     boolean copy;
+     bfd_boolean create;
+     bfd_boolean copy;
 {
   register const unsigned char *s;
   register unsigned long hash;
@@ -479,7 +479,7 @@ bfd_hash_allocate (table, size)
 void
 bfd_hash_traverse (table, func, info)
      struct bfd_hash_table *table;
-     boolean (*func) PARAMS ((struct bfd_hash_entry *, PTR));
+     bfd_boolean (*func) PARAMS ((struct bfd_hash_entry *, PTR));
      PTR info;
 {
   unsigned int i;
@@ -532,7 +532,7 @@ struct bfd_strtab_hash
   struct strtab_hash_entry *last;
   /* Whether to precede strings with a two byte length, as in the
      XCOFF .debug section.  */
-  boolean xcoff;
+  bfd_boolean xcoff;
 };
 
 static struct bfd_hash_entry *strtab_hash_newfunc
@@ -597,7 +597,7 @@ _bfd_stringtab_init ()
   table->size = 0;
   table->first = NULL;
   table->last = NULL;
-  table->xcoff = false;
+  table->xcoff = FALSE;
 
   return table;
 }
@@ -613,7 +613,7 @@ _bfd_xcoff_stringtab_init ()
 
   ret = _bfd_stringtab_init ();
   if (ret != NULL)
-    ret->xcoff = true;
+    ret->xcoff = TRUE;
   return ret;
 }
 
@@ -628,21 +628,21 @@ _bfd_stringtab_free (table)
 }
 
 /* Get the index of a string in a strtab, adding it if it is not
-   already present.  If HASH is false, we don't really use the hash
+   already present.  If HASH is FALSE, we don't really use the hash
    table, and we don't eliminate duplicate strings.  */
 
 bfd_size_type
 _bfd_stringtab_add (tab, str, hash, copy)
      struct bfd_strtab_hash *tab;
      const char *str;
-     boolean hash;
-     boolean copy;
+     bfd_boolean hash;
+     bfd_boolean copy;
 {
   register struct strtab_hash_entry *entry;
 
   if (hash)
     {
-      entry = strtab_hash_lookup (tab, str, true, copy);
+      entry = strtab_hash_lookup (tab, str, TRUE, copy);
       if (entry == NULL)
        return (bfd_size_type) -1;
     }
@@ -699,12 +699,12 @@ _bfd_stringtab_size (tab)
 /* Write out a strtab.  ABFD must already be at the right location in
    the file.  */
 
-boolean
+bfd_boolean
 _bfd_stringtab_emit (abfd, tab)
      register bfd *abfd;
      struct bfd_strtab_hash *tab;
 {
-  register boolean xcoff;
+  register bfd_boolean xcoff;
   register struct strtab_hash_entry *entry;
 
   xcoff = tab->xcoff;
@@ -724,12 +724,12 @@ _bfd_stringtab_emit (abfd, tab)
          /* The output length includes the null byte.  */
          bfd_put_16 (abfd, (bfd_vma) len, buf);
          if (bfd_bwrite ((PTR) buf, (bfd_size_type) 2, abfd) != 2)
-           return false;
+           return FALSE;
        }
 
       if (bfd_bwrite ((PTR) str, (bfd_size_type) len, abfd) != len)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
index 458023959a6eff99e0d6322b94378bc8b9b2ab4d..d4eb3aad1e31afb7142b49f0dcf56e85bf873247 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD backend for hp-ux 9000/300
-   Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2000, 2001
+   Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Written by Glenn Engel.
 
@@ -194,16 +194,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "aoutx.h"
 
-static const bfd_target * MY (callback) PARAMS ((bfd *));
-static boolean            MY (write_object_contents) PARAMS ((bfd *));
-static void               convert_sym_type PARAMS ((struct external_nlist *, aout_symbol_type *, bfd *));
-
-boolean                   MY (slurp_symbol_table) PARAMS ((bfd *));
-void                      MY (swap_std_reloc_in) PARAMS ((bfd *, struct hp300hpux_reloc *, arelent *, asymbol **, bfd_size_type));
-boolean                   MY (slurp_reloc_table) PARAMS ((bfd *, sec_ptr, asymbol **));
-long                      MY (get_symtab) PARAMS ((bfd *, asymbol **));
-long                      MY (get_symtab_upper_bound) PARAMS ((bfd *));
-long                      MY (canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
+static const bfd_target * MY (callback)
+  PARAMS ((bfd *));
+static bfd_boolean MY (write_object_contents)
+  PARAMS ((bfd *));
+static void convert_sym_type
+  PARAMS ((struct external_nlist *, aout_symbol_type *, bfd *));
+
+bfd_boolean MY (slurp_symbol_table)
+  PARAMS ((bfd *));
+void MY (swap_std_reloc_in)
+  PARAMS ((bfd *, struct hp300hpux_reloc *, arelent *, asymbol **,
+          bfd_size_type));
+bfd_boolean MY (slurp_reloc_table)
+  PARAMS ((bfd *, sec_ptr, asymbol **));
+long MY (get_symtab)
+  PARAMS ((bfd *, asymbol **));
+long MY (get_symtab_upper_bound)
+  PARAMS ((bfd *));
+long MY (canonicalize_reloc)
+  PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
 
 /* Since the hpux symbol table has nlist elements interspersed with
    strings and we need to insert som strings for secondary symbols, we
@@ -271,9 +281,10 @@ MY (callback) (abfd)
   return abfd->xvec;
 }
 
-extern boolean aout_32_write_syms PARAMS ((bfd * abfd));
+extern bfd_boolean aout_32_write_syms
+  PARAMS ((bfd * abfd));
 
-static boolean
+static bfd_boolean
 MY (write_object_contents) (abfd)
      bfd *abfd;
 {
@@ -307,10 +318,10 @@ MY (write_object_contents) (abfd)
   /* this is really the sym table size but we store it in drelocs */
   H_PUT_32 (abfd, (bfd_get_symcount (abfd) * 12), exec_bytes.e_drelocs);
 
-  if (bfd_seek (abfd, (file_ptr) 0, false) != 0
+  if (bfd_seek (abfd, (file_ptr) 0, FALSE) != 0
       || (bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd)
          != EXEC_BYTES_SIZE))
-    return false;
+    return FALSE;
 
   /* Write out the symbols, and then the relocs.  We must write out
        the symbols first so that we know the symbol indices.  */
@@ -320,25 +331,25 @@ MY (write_object_contents) (abfd)
       /* Skip the relocs to where we want to put the symbols.  */
       if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp) + execp->a_drsize),
                    SEEK_SET) != 0)
-       return false;
+       return FALSE;
     }
 
   if (!MY (write_syms) (abfd))
-    return false;
+    return FALSE;
 
   if (bfd_get_symcount (abfd) != 0)
     {
       if (bfd_seek (abfd, (file_ptr) N_TRELOFF (*execp), SEEK_CUR) != 0)
-       return false;
+       return FALSE;
       if (!NAME (aout,squirt_out_relocs) (abfd, obj_textsec (abfd)))
-       return false;
+       return FALSE;
       if (bfd_seek (abfd, (file_ptr) N_DRELOFF (*execp), SEEK_CUR) != 0)
-       return false;
+       return FALSE;
       if (!NAME (aout,squirt_out_relocs) (abfd, obj_datasec (abfd)))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* convert the hp symbol type to be the same as aout64.h usage so we */
@@ -523,7 +534,7 @@ NAME (aout,swap_exec_header_in) (abfd, raw_bytes, execp)
    ...
 */
 
-boolean
+bfd_boolean
 MY (slurp_symbol_table) (abfd)
      bfd *abfd;
 {
@@ -538,19 +549,19 @@ MY (slurp_symbol_table) (abfd)
 
   /* If there's no work to be done, don't do any */
   if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL)
-    return true;
+    return TRUE;
   symbol_bytes = exec_hdr (abfd)->a_syms;
 
   amt = symbol_bytes + SYM_EXTRA_BYTES;
   strings = (char *) bfd_alloc (abfd, amt);
   if (!strings)
-    return false;
+    return FALSE;
   syms = (struct external_nlist *) (strings + SYM_EXTRA_BYTES);
   if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
       || bfd_bread ((PTR) syms, symbol_bytes, abfd) != symbol_bytes)
     {
       bfd_release (abfd, syms);
-      return false;
+      return FALSE;
     }
 
   sym_end = (struct external_nlist *) (((char *) syms) + symbol_bytes);
@@ -570,7 +581,7 @@ MY (slurp_symbol_table) (abfd)
   amt *= sizeof (aout_symbol_type);
   cached = (aout_symbol_type *) bfd_zalloc (abfd, amt);
   if (cached == NULL && num_syms != 0)
-    return false;
+    return FALSE;
 
   /* as we march thru the hp symbol table, convert it into a list of
      null terminated strings to hold the symbol names.  Make sure any
@@ -597,7 +608,7 @@ MY (slurp_symbol_table) (abfd)
        cache_save = *cache_ptr;
        convert_sym_type (sym_pointer, cache_ptr, abfd);
        if (!translate_from_native_sym_flags (abfd, cache_ptr))
-         return false;
+         return FALSE;
 
        /********************************************************/
        /* for hpux, the 'lenght' value indicates the length of */
@@ -626,7 +637,7 @@ MY (slurp_symbol_table) (abfd)
 
   obj_aout_symbols (abfd) = cached;
 
-  return true;
+  return TRUE;
 }
 
 void
@@ -708,7 +719,7 @@ MY (swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
     }
 }
 
-boolean
+bfd_boolean
 MY (slurp_reloc_table) (abfd, asect, symbols)
      bfd *abfd;
      sec_ptr asect;
@@ -724,10 +735,10 @@ MY (slurp_reloc_table) (abfd, asect, symbols)
   arelent *cache_ptr;
 
   if (asect->relocation)
-    return true;
+    return TRUE;
 
   if (asect->flags & SEC_CONSTRUCTOR)
-    return true;
+    return TRUE;
 
   if (asect == obj_datasec (abfd))
     {
@@ -742,31 +753,31 @@ MY (slurp_reloc_table) (abfd, asect, symbols)
     }
 
   bfd_set_error (bfd_error_invalid_operation);
-  return false;
+  return FALSE;
 
 doit:
   if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0)
-    return false;
+    return FALSE;
   each_size = obj_reloc_entry_size (abfd);
 
   count = reloc_size / each_size;
 
   reloc_cache = (arelent *) bfd_zalloc (abfd, count * sizeof (arelent));
   if (!reloc_cache && count != 0)
-    return false;
+    return FALSE;
 
   relocs = (PTR) bfd_alloc (abfd, reloc_size);
   if (!relocs && reloc_size != 0)
     {
       bfd_release (abfd, reloc_cache);
-      return false;
+      return FALSE;
     }
 
   if (bfd_bread (relocs, reloc_size, abfd) != reloc_size)
     {
       bfd_release (abfd, relocs);
       bfd_release (abfd, reloc_cache);
-      return false;
+      return FALSE;
     }
 
   rptr = (struct hp300hpux_reloc *) relocs;
@@ -782,7 +793,7 @@ doit:
   bfd_release (abfd, relocs);
   asect->relocation = reloc_cache;
   asect->reloc_count = count;
-  return true;
+  return TRUE;
 }
 
 /************************************************************************/
@@ -791,12 +802,13 @@ doit:
 /* call aout_32 versions if the input file was generated by gcc         */
 /************************************************************************/
 
-long aout_32_get_symtab PARAMS ((bfd * abfd, asymbol ** location));
-long aout_32_get_symtab_upper_bound PARAMS ((bfd * abfd));
-
-long aout_32_canonicalize_reloc PARAMS ((bfd * abfd, sec_ptr section,
-                                        arelent ** relptr,
-                                        asymbol ** symbols));
+long aout_32_get_symtab
+  PARAMS ((bfd * abfd, asymbol ** location));
+long aout_32_get_symtab_upper_bound
+  PARAMS ((bfd * abfd));
+long aout_32_canonicalize_reloc
+  PARAMS ((bfd * abfd, sec_ptr section, arelent ** relptr,
+          asymbol ** symbols));
 
 long
 MY (get_symtab) (abfd, location)
index 4ae6315157b5ee858a26147b8e9d9d590a697e2f..31aa2f14270dfd1ff2a82f9e21c7535b0ac46716 100644 (file)
 #include <sys/user.h>          /* After a.out.h  */
 #include <sys/file.h>
 
-static asection *make_bfd_asection PARAMS ((bfd *, const char *,
-                                           flagword, bfd_size_type,
-                                           file_ptr, unsigned int));
-static const bfd_target *hppabsd_core_core_file_p PARAMS ((bfd *));
-static char *hppabsd_core_core_file_failing_command PARAMS ((bfd *));
-static int hppabsd_core_core_file_failing_signal PARAMS ((bfd *));
-static boolean hppabsd_core_core_file_matches_executable_p
+static asection *make_bfd_asection
+  PARAMS ((bfd *, const char *, flagword, bfd_size_type, file_ptr,
+          unsigned int));
+static const bfd_target *hppabsd_core_core_file_p
+  PARAMS ((bfd *));
+static char *hppabsd_core_core_file_failing_command
+  PARAMS ((bfd *));
+static int hppabsd_core_core_file_failing_signal
+  PARAMS ((bfd *));
+static bfd_boolean hppabsd_core_core_file_matches_executable_p
   PARAMS ((bfd *, bfd *));
-static void swap_abort PARAMS ((void));
+static void swap_abort
+  PARAMS ((void));
 
 /* These are stored in the bfd's tdata.  */
 
@@ -218,12 +222,12 @@ hppabsd_core_core_file_failing_signal (abfd)
 }
 
 /* ARGSUSED */
-static boolean
+static bfd_boolean
 hppabsd_core_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd, *exec_bfd;
 {
   /* There's no way to know this...  */
-  return true;
+  return TRUE;
 }
 \f
 /* If somebody calls any byte-swapping routines, shoot them.  */
index 81d85eaa221eb3e1ec20cf72e369e610eb61c692..b4869fc82419f51b06ef4b8869a3af0bd80d7294 100644 (file)
@@ -103,12 +103,16 @@ struct hpux_core_struct
 static asection *make_bfd_asection
   PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma,
           unsigned int));
-static const bfd_target *hpux_core_core_file_p PARAMS ((bfd *));
-static char *hpux_core_core_file_failing_command PARAMS ((bfd *));
-static int hpux_core_core_file_failing_signal PARAMS ((bfd *));
-static boolean hpux_core_core_file_matches_executable_p
+static const bfd_target *hpux_core_core_file_p
+  PARAMS ((bfd *));
+static char *hpux_core_core_file_failing_command
+  PARAMS ((bfd *));
+static int hpux_core_core_file_failing_signal
+  PARAMS ((bfd *));
+static bfd_boolean hpux_core_core_file_matches_executable_p
   PARAMS ((bfd *, bfd *));
-static void swap_abort PARAMS ((void));
+static void swap_abort
+  PARAMS ((void));
 
 static asection *
 make_bfd_asection (abfd, name, flags, _raw_size, vma, alignment_power)
@@ -332,12 +336,12 @@ hpux_core_core_file_failing_signal (abfd)
 }
 
 /* ARGSUSED */
-static boolean
+static bfd_boolean
 hpux_core_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
-  return true;                 /* FIXME, We have no way of telling at this point */
+  return TRUE;                 /* FIXME, We have no way of telling at this point */
 }
 \f
 /* If somebody calls any byte-swapping routines, shoot them.  */
index c68dbec4b23933da3923be4315f76a30300fe037..b2d106f623115dda8b1d8508b1cdf9d3c353ce0b 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for i386 a.out binaries.
-   Copyright 1990, 1991, 1992, 1994, 1996, 1997, 2001
+   Copyright 1990, 1991, 1992, 1994, 1996, 1997, 2001, 2002
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -54,12 +54,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "aout/aout64.h"
 #include "libaout.h"
 
-static boolean i386aout_write_object_contents PARAMS ((bfd *));
-static boolean MY (set_sizes) PARAMS ((bfd *));
+static bfd_boolean i386aout_write_object_contents PARAMS ((bfd *));
+static bfd_boolean MY (set_sizes) PARAMS ((bfd *));
 
 /* Set the machine type correctly.  */
 
-static boolean
+static bfd_boolean
 i386aout_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -72,7 +72,7 @@ i386aout_write_object_contents (abfd)
 
   WRITE_HEADERS (abfd, execp);
 
-  return true;
+  return TRUE;
 }
 
 #define MY_write_object_contents i386aout_write_object_contents
index c144822ac2a26ca1f1ca13c97140f264fad1f45e..5a2d382b9408f097576e947a9c71ce4dadf8c4c9 100644 (file)
@@ -51,11 +51,11 @@ extern const bfd_target MY(vec);
 
 static void MY_final_link_callback
   PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *));
-static boolean i386linux_bfd_final_link
+static bfd_boolean i386linux_bfd_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean i386linux_write_object_contents PARAMS ((bfd *));
+static bfd_boolean i386linux_write_object_contents PARAMS ((bfd *));
 
-static boolean
+static bfd_boolean
 i386linux_bfd_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -68,7 +68,7 @@ i386linux_bfd_final_link (abfd, info)
 
 /* Set the machine type correctly.  */
 
-static boolean
+static bfd_boolean
 i386linux_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -81,7 +81,7 @@ i386linux_write_object_contents (abfd)
 
   WRITE_HEADERS(abfd, execp);
 
-  return true;
+  return TRUE;
 }
 
 #define MY_write_object_contents i386linux_write_object_contents
@@ -179,15 +179,15 @@ static struct bfd_link_hash_table *linux_link_hash_table_create
 static struct fixup *new_fixup
   PARAMS ((struct bfd_link_info *, struct linux_link_hash_entry *,
           bfd_vma, int));
-static boolean linux_link_create_dynamic_sections
+static bfd_boolean linux_link_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean linux_add_one_symbol
+static bfd_boolean linux_add_one_symbol
   PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *,
-          bfd_vma, const char *, boolean, boolean,
+          bfd_vma, const char *, bfd_boolean, bfd_boolean,
           struct bfd_link_hash_entry **));
-static boolean linux_tally_symbols
+static bfd_boolean linux_tally_symbols
   PARAMS ((struct linux_link_hash_entry *, PTR));
-static boolean linux_finish_dynamic_link
+static bfd_boolean linux_finish_dynamic_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Routine to create an entry in an Linux link hash table.  */
@@ -259,7 +259,7 @@ linux_link_hash_table_create (abfd)
 #define linux_link_hash_traverse(table, func, info)                    \
   (aout_link_hash_traverse                                             \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func),        \
+    (bfd_boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the Linux link hash table from the info structure.  This is
@@ -299,7 +299,7 @@ new_fixup (info, h, value, builtin)
    know the size of the section, but that's OK - we just need to
    create it for now.  */
 
-static boolean
+static bfd_boolean
 linux_link_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -316,18 +316,18 @@ linux_link_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags)
       || ! bfd_set_section_alignment (abfd, s, 2))
-    return false;
+    return FALSE;
   s->_raw_size = 0;
   s->contents = 0;
 
-  return true;
+  return TRUE;
 }
 
 /* Function to add a single symbol to the linker hash table.  This is
    a wrapper around _bfd_generic_link_add_one_symbol which handles the
    tweaking needed for dynamic linking support.  */
 
-static boolean
+static bfd_boolean
 linux_add_one_symbol (info, abfd, name, flags, section, value, string,
                      copy, collect, hashp)
      struct bfd_link_info *info;
@@ -337,12 +337,12 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
      asection *section;
      bfd_vma value;
      const char *string;
-     boolean copy;
-     boolean collect;
+     bfd_boolean copy;
+     bfd_boolean collect;
      struct bfd_link_hash_entry **hashp;
 {
   struct linux_link_hash_entry *h;
-  boolean insert;
+  bfd_boolean insert;
 
   /* Look up and see if we already have this symbol in the hash table.
      If we do, and the defining entry is from a shared library, we
@@ -352,7 +352,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
      be able to link Linux a.out and ELF objects together, but serious
      confusion is possible.  */
 
-  insert = false;
+  insert = FALSE;
 
   if (! info->relocateable
       && linux_hash_table (info)->dynobj == NULL
@@ -361,16 +361,16 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
       && abfd->xvec == info->hash->creator)
     {
       if (! linux_link_create_dynamic_sections (abfd, info))
-       return false;
+       return FALSE;
       linux_hash_table (info)->dynobj = abfd;
-      insert = true;
+      insert = TRUE;
     }
 
   if (bfd_is_abs_section (section)
       && abfd->xvec == info->hash->creator)
     {
-      h = linux_link_hash_lookup (linux_hash_table (info), name, false,
-                                 false, false);
+      h = linux_link_hash_lookup (linux_hash_table (info), name, FALSE,
+                                 FALSE, FALSE);
       if (h != NULL
          && (h->root.root.type == bfd_link_hash_defined
              || h->root.root.type == bfd_link_hash_defweak))
@@ -382,10 +382,10 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
 
          f = new_fixup (info, h, value, ! IS_PLT_SYM (name));
          if (f == NULL)
-           return false;
+           return FALSE;
          f->jump = IS_PLT_SYM (name);
 
-         return true;
+         return TRUE;
        }
     }
 
@@ -393,7 +393,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
   if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section,
                                          value, string, copy, collect,
                                          hashp))
-    return false;
+    return FALSE;
 
   /* Insert a pointer to our table in the set vector.  The dynamic
      linker requires this information */
@@ -410,11 +410,11 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
       if (! (_bfd_generic_link_add_one_symbol
             (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS,
              BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL,
-             false, false, NULL)))
-       return false;
+             FALSE, FALSE, NULL)))
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We will crawl the hash table and come here for every global symbol.
@@ -427,7 +427,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
 
    This function is called via linux_link_hash_traverse.  */
 
-static boolean
+static bfd_boolean
 linux_tally_symbols (h, data)
      struct linux_link_hash_entry *h;
      PTR data;
@@ -436,7 +436,7 @@ linux_tally_symbols (h, data)
   struct fixup *f, *f1;
   int is_plt;
   struct linux_link_hash_entry *h1, *h2;
-  boolean exists;
+  bfd_boolean exists;
 
   if (h->root.root.type == bfd_link_hash_warning)
     h = (struct linux_link_hash_entry *) h->root.root.u.i.link;
@@ -482,12 +482,12 @@ linux_tally_symbols (h, data)
       h1 = linux_link_hash_lookup (linux_hash_table (info),
                                   (h->root.root.root.string
                                    + sizeof PLT_REF_PREFIX - 1),
-                                  false, false, true);
+                                  FALSE, FALSE, TRUE);
       /* h2 does not follow indirect symbols. */
       h2 = linux_link_hash_lookup (linux_hash_table (info),
                                   (h->root.root.root.string
                                    + sizeof PLT_REF_PREFIX - 1),
-                                  false, false, false);
+                                  FALSE, FALSE, FALSE);
 
       /* The real symbol must exist but if it is also an ABS symbol,
         there is no need to have a fixup.  This is because they both
@@ -505,7 +505,7 @@ linux_tally_symbols (h, data)
             involving this symbol.  If so, convert it to a regular
             fixup.  In the end, this relaxes some of the requirements
             about the order of performing fixups.  */
-         exists = false;
+         exists = FALSE;
          for (f1 = linux_hash_table (info)->fixup_list;
               f1 != NULL;
               f1 = f1->next)
@@ -514,7 +514,7 @@ linux_tally_symbols (h, data)
                  || (! f1->builtin && ! f1->jump))
                continue;
              if (f1->h == h1)
-               exists = true;
+               exists = TRUE;
              if (! exists
                  && bfd_is_abs_section (h->root.root.u.def.section))
                {
@@ -524,7 +524,7 @@ linux_tally_symbols (h, data)
              f1->h = h1;
              f1->jump = is_plt;
              f1->builtin = 0;
-             exists = true;
+             exists = TRUE;
            }
          if (! exists
              && bfd_is_abs_section (h->root.root.u.def.section))
@@ -542,10 +542,10 @@ linux_tally_symbols (h, data)
       /* Quick and dirty way of stripping these symbols from the
         symtab. */
       if (bfd_is_abs_section (h->root.root.u.def.section))
-       h->root.written = true;
+       h->root.written = TRUE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This is called to set the size of the .linux-dynamic section is.
@@ -554,7 +554,7 @@ linux_tally_symbols (h, data)
    we just scan the hash tables to find out how many additional fixups
    are required.  */
 
-boolean
+bfd_boolean
 bfd_i386linux_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -563,7 +563,7 @@ bfd_i386linux_size_dynamic_sections (output_bfd, info)
   asection *s;
 
   if (output_bfd->xvec != &MY(vec))
-    return true;
+    return TRUE;
 
   /* First find the fixups... */
   linux_link_hash_traverse (linux_hash_table (info),
@@ -587,7 +587,7 @@ bfd_i386linux_size_dynamic_sections (output_bfd, info)
     {
       if (linux_hash_table (info)->fixup_count > 0)
        abort ();
-      return true;
+      return TRUE;
     }
 
   /* Allocate memory for our fixup table.  We will fill it in later.  */
@@ -599,17 +599,17 @@ bfd_i386linux_size_dynamic_sections (output_bfd, info)
       s->_raw_size *= 8;
       s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We come here once we are ready to actually write the fixup table to
    the output file.  Scan the fixup tables and so forth and generate
    the stuff we need.  */
 
-static boolean
+static bfd_boolean
 linux_finish_dynamic_link (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -623,7 +623,7 @@ linux_finish_dynamic_link (output_bfd, info)
   unsigned int fixups_written;
 
   if (linux_hash_table (info)->dynobj == NULL)
-    return true;
+    return TRUE;
 
   s = bfd_get_section_by_name (linux_hash_table (info)->dynobj,
                               ".linux-dynamic");
@@ -739,7 +739,7 @@ linux_finish_dynamic_link (output_bfd, info)
 
   h = linux_link_hash_lookup (linux_hash_table (info),
                              "__BUILTIN_FIXUPS__",
-                             false, false, false);
+                             FALSE, FALSE, FALSE);
 
   if (h != NULL
       && (h->root.root.type == bfd_link_hash_defined
@@ -760,12 +760,12 @@ linux_finish_dynamic_link (output_bfd, info)
 
   if (bfd_seek (output_bfd, (file_ptr) (os->filepos + s->output_offset),
                SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (bfd_bwrite ((PTR) s->contents, s->_raw_size, output_bfd) != s->_raw_size)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 #define MY_bfd_link_hash_table_create linux_link_hash_table_create
index fc58767a97fa43cde3419476c320241b3605d7c5..6bf6e727b21f6bd1ea7c1f1c80a0aacf9e1f5206 100644 (file)
@@ -56,29 +56,29 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
        if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0                      \
            || bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, \
                          abfd) != EXEC_BYTES_SIZE)                           \
-         return false;                                                       \
+         return FALSE;                                                       \
        /* Now write out reloc info, followed by syms and strings */          \
                                                                              \
        if (bfd_get_symcount (abfd) != 0)                                     \
            {                                                                 \
              if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET)    \
                  != 0)                                                       \
-               return false;                                                 \
+               return FALSE;                                                 \
                                                                              \
-             if (! NAME(aout,write_syms) (abfd)) return false;               \
+             if (! NAME(aout,write_syms) (abfd)) return FALSE;               \
                                                                              \
              if (bfd_seek (abfd, (file_ptr) (N_TRELOFF(*execp)), SEEK_SET)   \
                  != 0)                                                       \
-               return false;                                                 \
+               return FALSE;                                                 \
                                                                              \
              if (!NAME(lynx,squirt_out_relocs) (abfd, obj_textsec (abfd)))   \
-               return false;                                                 \
+               return FALSE;                                                 \
              if (bfd_seek (abfd, (file_ptr) (N_DRELOFF(*execp)), SEEK_SET)   \
                  != 0)                                                       \
                return 0;                                                     \
                                                                              \
              if (!NAME(lynx,squirt_out_relocs) (abfd, obj_datasec (abfd)))   \
-               return false;                                                 \
+               return FALSE;                                                 \
            }                                                                 \
       }
 #endif
@@ -86,19 +86,28 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "libaout.h"
 #include "aout/aout64.h"
 
-void NAME (lynx,swap_std_reloc_out) PARAMS ((bfd *, arelent *, struct reloc_std_external *));
-void NAME (lynx,swap_ext_reloc_out) PARAMS ((bfd *, arelent *, struct reloc_ext_external *));
-void NAME (lynx,swap_ext_reloc_in)  PARAMS ((bfd *, struct reloc_ext_external *, arelent *, asymbol **, bfd_size_type));
-void NAME (lynx,swap_std_reloc_in)  PARAMS ((bfd *, struct reloc_std_external *, arelent *, asymbol **, bfd_size_type));
-boolean NAME (lynx,slurp_reloc_table) PARAMS ((bfd *, sec_ptr, asymbol **));
-boolean NAME (lynx,squirt_out_relocs) PARAMS ((bfd *, asection *));
-long NAME (lynx,canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
+void NAME (lynx,swap_std_reloc_out)
+  PARAMS ((bfd *, arelent *, struct reloc_std_external *));
+void NAME (lynx,swap_ext_reloc_out)
+  PARAMS ((bfd *, arelent *, struct reloc_ext_external *));
+void NAME (lynx,swap_ext_reloc_in)
+  PARAMS ((bfd *, struct reloc_ext_external *, arelent *, asymbol **,
+          bfd_size_type));
+void NAME (lynx,swap_std_reloc_in)
+  PARAMS ((bfd *, struct reloc_std_external *, arelent *, asymbol **,
+          bfd_size_type));
+bfd_boolean NAME (lynx,slurp_reloc_table)
+  PARAMS ((bfd *, sec_ptr, asymbol **));
+bfd_boolean NAME (lynx,squirt_out_relocs)
+  PARAMS ((bfd *, asection *));
+long NAME (lynx,canonicalize_reloc)
+  PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
 
 #ifdef LYNX_CORE
 
 char *lynx_core_file_failing_command ();
 int lynx_core_file_failing_signal ();
-boolean lynx_core_file_matches_executable_p ();
+bfd_boolean lynx_core_file_matches_executable_p ();
 const bfd_target *lynx_core_file_p ();
 
 #define        MY_core_file_failing_command lynx_core_file_failing_command
@@ -151,7 +160,7 @@ NAME(lynx,swap_std_reloc_out) (abfd, g, natptr)
      Absolute symbols can come in in two ways, either as an offset
      from the abs section, or as a symbol which has an abs value.
      check for that here
-     */
+  */
 
 
   if (bfd_is_com_section (output_section)
@@ -161,7 +170,7 @@ NAME(lynx,swap_std_reloc_out) (abfd, g, natptr)
       if (bfd_abs_section_ptr->symbol == sym)
        {
          /* Whoops, looked like an abs symbol, but is really an offset
-          from the abs section */
+            from the abs section */
          r_index = 0;
          r_extern = 0;
        }
@@ -388,7 +397,7 @@ NAME(lynx,swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
 
 /* Reloc hackery */
 
-boolean
+bfd_boolean
 NAME(lynx,slurp_reloc_table) (abfd, asect, symbols)
      bfd *abfd;
      sec_ptr asect;
@@ -401,10 +410,10 @@ NAME(lynx,slurp_reloc_table) (abfd, asect, symbols)
   size_t each_size;
 
   if (asect->relocation)
-    return true;
+    return TRUE;
 
   if (asect->flags & SEC_CONSTRUCTOR)
-    return true;
+    return TRUE;
 
   if (asect == obj_datasec (abfd))
     {
@@ -419,11 +428,11 @@ NAME(lynx,slurp_reloc_table) (abfd, asect, symbols)
     }
 
   bfd_set_error (bfd_error_invalid_operation);
-  return false;
+  return FALSE;
 
 doit:
   if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0)
-    return false;
+    return FALSE;
   each_size = obj_reloc_entry_size (abfd);
 
   count = reloc_size / each_size;
@@ -431,20 +440,20 @@ doit:
 
   reloc_cache = (arelent *) bfd_zmalloc (count * sizeof (arelent));
   if (!reloc_cache && count != 0)
-    return false;
+    return FALSE;
 
   relocs = (PTR) bfd_alloc (abfd, reloc_size);
   if (!relocs && reloc_size != 0)
     {
       free (reloc_cache);
-      return false;
+      return FALSE;
     }
 
   if (bfd_bread (relocs, reloc_size, abfd) != reloc_size)
     {
       bfd_release (abfd, relocs);
       free (reloc_cache);
-      return false;
+      return FALSE;
     }
 
   if (each_size == RELOC_EXT_SIZE)
@@ -476,14 +485,14 @@ doit:
   bfd_release (abfd, relocs);
   asect->relocation = reloc_cache;
   asect->reloc_count = count;
-  return true;
+  return TRUE;
 }
 
 
 
 /* Write out a relocation section into an object file.  */
 
-boolean
+bfd_boolean
 NAME(lynx,squirt_out_relocs) (abfd, section)
      bfd *abfd;
      asection *section;
@@ -496,14 +505,14 @@ NAME(lynx,squirt_out_relocs) (abfd, section)
   bfd_size_type natsize;
 
   if (count == 0)
-    return true;
+    return TRUE;
 
   each_size = obj_reloc_entry_size (abfd);
   natsize = count;
   natsize *= each_size;
   native = (unsigned char *) bfd_zalloc (abfd, natsize);
   if (!native)
-    return false;
+    return FALSE;
 
   generic = section->orelocation;
 
@@ -525,11 +534,11 @@ NAME(lynx,squirt_out_relocs) (abfd, section)
   if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize)
     {
       bfd_release (abfd, native);
-      return false;
+      return FALSE;
     }
   bfd_release (abfd, native);
 
-  return true;
+  return TRUE;
 }
 
 /* This is stupid.  This function should be a boolean predicate */
index 4364eb84bd0e6b0d1b8df6f290e198cc44b5f7d6..0e4c4e752e3bedfc204f87c2237dbc3662140f96 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for i386 a.out binaries.
-   Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2001
+   Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2001, 2002
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -50,7 +50,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define MY(OP) CONCAT2 (i386mach3_,OP)
 #define TARGETNAME "a.out-mach3"
 
-static boolean MY (set_sizes) PARAMS ((bfd *));
+static bfd_boolean MY (set_sizes) PARAMS ((bfd *));
 #define MY_backend_data &MY(backend_data)
 static const struct aout_backend_data MY(backend_data) = {
   0,                           /* zmagic contiguous */
index 5c060ecf58e4a0d8f76fafdabf6e79b6819cda4a..7d5a0d4a40e9b239ea19d23686db92b09b0bd9c4 100644 (file)
@@ -56,19 +56,22 @@ struct exe_header
 #define EXE_LOAD_LOW   0xffff
 #define EXE_PAGE_SIZE  512
 
-static int     msdos_sizeof_headers PARAMS ((bfd *, boolean));
-static boolean msdos_write_object_contents PARAMS ((bfd *));
-static boolean msdos_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+static int msdos_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean msdos_write_object_contents
+  PARAMS ((bfd *));
+static bfd_boolean msdos_set_section_contents
+  PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
 
 static int
 msdos_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return 0;
 }
 
-static boolean
+static bfd_boolean
 msdos_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -103,7 +106,7 @@ msdos_write_object_contents (abfd)
   if (high_vma > (bfd_vma)0xffff)
     {
       bfd_set_error(bfd_error_file_too_big);
-      return false;
+      return FALSE;
     }
 
   /* Constants.  */
@@ -127,12 +130,12 @@ msdos_write_object_contents (abfd)
 
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0
       || bfd_bwrite (hdr, (bfd_size_type) sizeof(hdr), abfd) != sizeof(hdr))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 msdos_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -142,7 +145,7 @@ msdos_set_section_contents (abfd, section, location, offset, count)
 {
 
   if (count == 0)
-    return true;
+    return TRUE;
 
   section->filepos = EXE_PAGE_SIZE + bfd_get_section_vma (abfd, section);
 
@@ -150,10 +153,10 @@ msdos_set_section_contents (abfd, section, location, offset, count)
     {
       if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
           || bfd_bwrite (location, count, abfd) != count)
-        return false;
+        return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 
index cafad3e30d0ae0dd66001846b01870544f763496..d9a34e34131b8427b5b6e273a3efb50e484b35a8 100644 (file)
@@ -27,14 +27,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "libaout.h"           /* BFD a.out internal data structures */
 #include "os9k.h"
 
-static const bfd_target * os9k_callback PARAMS ((bfd *));
-static const bfd_target * os9k_object_p PARAMS ((bfd *));
-static int                os9k_sizeof_headers PARAMS ((bfd *, boolean));
-boolean                   os9k_swap_exec_header_in PARAMS ((bfd *, mh_com *, struct internal_exec *));
+static const bfd_target * os9k_callback
+  PARAMS ((bfd *));
+static const bfd_target * os9k_object_p
+  PARAMS ((bfd *));
+static int os9k_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
+bfd_boolean os9k_swap_exec_header_in
+  PARAMS ((bfd *, mh_com *, struct internal_exec *));
 
 /* Swaps the information in an executable header taken from a raw byte
    stream memory image, into the internal exec_header structure.  */
-boolean
+bfd_boolean
 os9k_swap_exec_header_in (abfd, raw_bytes, execp)
      bfd *abfd;
      mh_com *raw_bytes;
@@ -59,7 +63,7 @@ os9k_swap_exec_header_in (abfd, raw_bytes, execp)
          != sizeof (dmemstart))
       || (bfd_bread (&dmemsize, (bfd_size_type) sizeof (dmemsize), abfd)
          != sizeof (dmemsize)))
-    return false;
+    return FALSE;
 
   execp->a_tload = 0;
   execp->a_dload = H_GET_32 (abfd, (unsigned char *) &dmemstart);
@@ -70,7 +74,7 @@ os9k_swap_exec_header_in (abfd, raw_bytes, execp)
   execp->a_trsize = 0;
   execp->a_drsize = 0;
 
-  return true;
+  return TRUE;
 }
 
 #if 0
@@ -193,7 +197,7 @@ struct bout_data_struct
   struct internal_exec e;
 };
 
-static boolean
+static bfd_boolean
 os9k_mkobject (abfd)
      bfd *abfd;
 {
@@ -202,7 +206,7 @@ os9k_mkobject (abfd)
 
   rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, amt);
   if (rawptr == NULL)
-    return false;
+    return FALSE;
 
   abfd->tdata.bout_data = rawptr;
   exec_hdr (abfd) = &rawptr->e;
@@ -211,17 +215,17 @@ os9k_mkobject (abfd)
   obj_datasec (abfd) = (asection *) NULL;
   obj_bsssec (abfd) = (asection *) NULL;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 os9k_write_object_contents (abfd)
      bfd *abfd;
 {
   struct external_exec swapped_hdr;
 
   if (! aout_32_make_sections (abfd))
-    return false;
+    return FALSE;
 
   exec_hdr (abfd)->a_info = BMAGIC;
 
@@ -247,35 +251,35 @@ os9k_write_object_contents (abfd)
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0
       || bfd_bwrite ((PTR) & swapped_hdr, (bfd_size_type) EXEC_BYTES_SIZE,
                    abfd) != EXEC_BYTES_SIZE)
-    return false;
+    return FALSE;
 
   /* Now write out reloc info, followed by syms and strings.  */
   if (bfd_get_symcount (abfd) != 0)
     {
       if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*exec_hdr (abfd))), SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
 
       if (!aout_32_write_syms (abfd))
-       return false;
+       return FALSE;
 
       if (bfd_seek (abfd, (file_ptr) (N_TROFF (*exec_hdr (abfd))), SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
 
       if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd)))
-       return false;
+       return FALSE;
       if (bfd_seek (abfd, (file_ptr) (N_DROFF (*exec_hdr (abfd))), SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
 
       if (!b_out_squirt_out_relocs (abfd, obj_datasec (abfd)))
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 \f
-static boolean
+static bfd_boolean
 os9k_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -287,7 +291,7 @@ os9k_set_section_contents (abfd, section, location, offset, count)
   if (! abfd->output_has_begun)
     {                          /* set by bfd.c handler */
       if (! aout_32_make_sections (abfd))
-       return false;
+       return FALSE;
 
       obj_textsec (abfd)->filepos = sizeof (struct internal_exec);
       obj_datasec (abfd)->filepos = obj_textsec (abfd)->filepos
@@ -296,19 +300,19 @@ os9k_set_section_contents (abfd, section, location, offset, count)
     }
   /* Regardless, once we know what we're doing, we might as well get going.  */
   if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (count != 0)
     return bfd_bwrite ((PTR) location, (bfd_size_type) count, abfd) == count;
 
-  return true;
+  return TRUE;
 }
 #endif /* 0 */
 
 static int
 os9k_sizeof_headers (ignore_abfd, ignore)
      bfd *ignore_abfd ATTRIBUTE_UNUSED;
-     boolean ignore ATTRIBUTE_UNUSED;
+     bfd_boolean ignore ATTRIBUTE_UNUSED;
 {
   return sizeof (struct internal_exec);
 }
index d1c5eb13b40da2e1d7df51ddded4e1ed8e04f370..779fd712df002412f61bc267c39e56739da1bfce 100644 (file)
@@ -40,93 +40,151 @@ struct output_buffer_struct
   int buffer;
 };
 
-static boolean ieee_write_byte PARAMS ((bfd *, int));
-static boolean ieee_write_2bytes PARAMS ((bfd *, int));
-static boolean ieee_write_int PARAMS ((bfd *, bfd_vma));
-static boolean ieee_write_id PARAMS ((bfd *, const char *));
-static unsigned short read_2bytes PARAMS ((common_header_type *));
-static void bfd_get_string PARAMS ((common_header_type *, char *, size_t));
-static char *read_id PARAMS ((common_header_type *));
-static boolean ieee_write_expression
-  PARAMS ((bfd *, bfd_vma, asymbol *, boolean, unsigned int));
-static void ieee_write_int5 PARAMS ((bfd_byte *, bfd_vma));
-static boolean ieee_write_int5_out PARAMS ((bfd *, bfd_vma));
-static boolean parse_int PARAMS ((common_header_type *, bfd_vma *));
-static int parse_i PARAMS ((common_header_type *, boolean *));
-static bfd_vma must_parse_int PARAMS ((common_header_type *));
+static bfd_boolean ieee_write_byte
+  PARAMS ((bfd *, int));
+static bfd_boolean ieee_write_2bytes
+  PARAMS ((bfd *, int));
+static bfd_boolean ieee_write_int
+  PARAMS ((bfd *, bfd_vma));
+static bfd_boolean ieee_write_id
+  PARAMS ((bfd *, const char *));
+static unsigned short read_2bytes
+  PARAMS ((common_header_type *));
+static void bfd_get_string
+  PARAMS ((common_header_type *, char *, size_t));
+static char *read_id
+  PARAMS ((common_header_type *));
+static bfd_boolean ieee_write_expression
+  PARAMS ((bfd *, bfd_vma, asymbol *, bfd_boolean, unsigned int));
+static void ieee_write_int5
+  PARAMS ((bfd_byte *, bfd_vma));
+static bfd_boolean ieee_write_int5_out
+  PARAMS ((bfd *, bfd_vma));
+static bfd_boolean parse_int
+  PARAMS ((common_header_type *, bfd_vma *));
+static int parse_i
+  PARAMS ((common_header_type *, bfd_boolean *));
+static bfd_vma must_parse_int
+  PARAMS ((common_header_type *));
 static void parse_expression
   PARAMS ((ieee_data_type *, bfd_vma *, ieee_symbol_index_type *,
-          boolean *, unsigned int *, asection **));
-static file_ptr ieee_part_after PARAMS ((ieee_data_type *, file_ptr));
+          bfd_boolean *, unsigned int *, asection **));
+static file_ptr ieee_part_after
+  PARAMS ((ieee_data_type *, file_ptr));
 static ieee_symbol_type *get_symbol
   PARAMS ((bfd *, ieee_data_type *, ieee_symbol_type *, unsigned int *,
           ieee_symbol_type ***, unsigned int *, int));
-static boolean ieee_slurp_external_symbols PARAMS ((bfd *));
-static boolean ieee_slurp_symbol_table PARAMS ((bfd *));
-static long ieee_get_symtab_upper_bound PARAMS ((bfd *));
-static long ieee_get_symtab PARAMS ((bfd *, asymbol **));
+static bfd_boolean ieee_slurp_external_symbols
+  PARAMS ((bfd *));
+static bfd_boolean ieee_slurp_symbol_table
+  PARAMS ((bfd *));
+static long ieee_get_symtab_upper_bound
+  PARAMS ((bfd *));
+static long ieee_get_symtab
+  PARAMS ((bfd *, asymbol **));
 static asection *get_section_entry
   PARAMS ((bfd *, ieee_data_type *i, unsigned int));
-static void ieee_slurp_sections PARAMS ((bfd *));
-static boolean ieee_slurp_debug PARAMS ((bfd *));
-const bfd_target *ieee_archive_p PARAMS ((bfd *));
-const bfd_target *ieee_object_p PARAMS ((bfd *));
-static void ieee_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
+static void ieee_slurp_sections
+  PARAMS ((bfd *));
+static bfd_boolean ieee_slurp_debug
+  PARAMS ((bfd *));
+const bfd_target *ieee_archive_p
+  PARAMS ((bfd *));
+const bfd_target *ieee_object_p
+  PARAMS ((bfd *));
+static void ieee_get_symbol_info
+  PARAMS ((bfd *, asymbol *, symbol_info *));
 static void ieee_print_symbol
   PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
-static boolean do_one
+static bfd_boolean do_one
   PARAMS ((ieee_data_type *, ieee_per_section_type *, unsigned char *,
           asection *, int));
-static boolean ieee_slurp_section_data PARAMS ((bfd *));
-static boolean ieee_new_section_hook PARAMS ((bfd *, asection *));
-static long ieee_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr));
-static boolean ieee_get_section_contents
+static bfd_boolean ieee_slurp_section_data
+  PARAMS ((bfd *));
+static bfd_boolean ieee_new_section_hook
+  PARAMS ((bfd *, asection *));
+static long ieee_get_reloc_upper_bound
+  PARAMS ((bfd *, sec_ptr));
+static bfd_boolean ieee_get_section_contents
   PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
 static long ieee_canonicalize_reloc
   PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
-static int comp PARAMS ((const PTR, const PTR));
-static boolean ieee_write_section_part PARAMS ((bfd *));
-static boolean do_with_relocs PARAMS ((bfd *, asection *));
-static boolean do_as_repeat PARAMS ((bfd *, asection *));
-static boolean do_without_relocs PARAMS ((bfd *, asection *));
-static boolean ieee_mkobject PARAMS ((bfd *));
-static void fill PARAMS ((void));
-static void flush PARAMS ((void));
-static void write_int PARAMS ((int));
-static void copy_id PARAMS ((void));
-static void copy_expression PARAMS ((void));
-static void fill_int PARAMS ((struct output_buffer_struct *));
-static void drop_int PARAMS ((struct output_buffer_struct *));
-static void copy_int PARAMS ((void));
-static void f1_record PARAMS ((void));
-static void f0_record PARAMS ((void));
-static void copy_till_end PARAMS ((void));
-static void f2_record PARAMS ((void));
-static void f8_record PARAMS ((void));
-static void e2_record PARAMS ((void));
-static void block PARAMS ((void));
-static void relocate_debug PARAMS ((bfd *, bfd *));
-static boolean ieee_write_debug_part PARAMS ((bfd *));
-static boolean ieee_write_data_part PARAMS ((bfd *));
-static boolean init_for_output PARAMS ((bfd *));
-static boolean ieee_set_section_contents
+static int comp
+  PARAMS ((const PTR, const PTR));
+static bfd_boolean ieee_write_section_part
+  PARAMS ((bfd *));
+static bfd_boolean do_with_relocs
+  PARAMS ((bfd *, asection *));
+static bfd_boolean do_as_repeat
+  PARAMS ((bfd *, asection *));
+static bfd_boolean do_without_relocs
+  PARAMS ((bfd *, asection *));
+static bfd_boolean ieee_mkobject
+  PARAMS ((bfd *));
+static void fill
+  PARAMS ((void));
+static void flush
+  PARAMS ((void));
+static void write_int
+  PARAMS ((int));
+static void copy_id
+  PARAMS ((void));
+static void copy_expression
+  PARAMS ((void));
+static void fill_int
+  PARAMS ((struct output_buffer_struct *));
+static void drop_int
+  PARAMS ((struct output_buffer_struct *));
+static void copy_int
+  PARAMS ((void));
+static void f1_record
+  PARAMS ((void));
+static void f0_record
+  PARAMS ((void));
+static void copy_till_end
+  PARAMS ((void));
+static void f2_record
+  PARAMS ((void));
+static void f8_record
+  PARAMS ((void));
+static void e2_record
+  PARAMS ((void));
+static void block
+  PARAMS ((void));
+static void relocate_debug
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean ieee_write_debug_part
+  PARAMS ((bfd *));
+static bfd_boolean ieee_write_data_part
+  PARAMS ((bfd *));
+static bfd_boolean init_for_output
+  PARAMS ((bfd *));
+static bfd_boolean ieee_set_section_contents
   PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
-static boolean ieee_write_external_part PARAMS ((bfd *));
-static boolean ieee_write_me_part PARAMS ((bfd *));
-static boolean ieee_write_processor PARAMS ((bfd *));
-static boolean ieee_write_object_contents PARAMS ((bfd *));
-static asymbol *ieee_make_empty_symbol PARAMS ((bfd *));
-static bfd *ieee_openr_next_archived_file PARAMS ((bfd *, bfd *));
-static boolean ieee_find_nearest_line
+static bfd_boolean ieee_write_external_part
+  PARAMS ((bfd *));
+static bfd_boolean ieee_write_me_part
+  PARAMS ((bfd *));
+static bfd_boolean ieee_write_processor
+  PARAMS ((bfd *));
+static bfd_boolean ieee_write_object_contents
+  PARAMS ((bfd *));
+static asymbol *ieee_make_empty_symbol
+  PARAMS ((bfd *));
+static bfd *ieee_openr_next_archived_file
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean ieee_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *));
-static int ieee_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
-static int ieee_sizeof_headers PARAMS ((bfd *, boolean));
+static int ieee_generic_stat_arch_elt
+  PARAMS ((bfd *, struct stat *));
+static int ieee_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
 
 /* Functions for writing to ieee files in the strange way that the
    standard requires. */
 
-static boolean
+static bfd_boolean
 ieee_write_byte (abfd, barg)
      bfd *abfd;
      int barg;
@@ -135,11 +193,11 @@ ieee_write_byte (abfd, barg)
 
   byte = barg;
   if (bfd_bwrite ((PTR) &byte, (bfd_size_type) 1, abfd) != 1)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 ieee_write_2bytes (abfd, bytes)
      bfd *abfd;
      int bytes;
@@ -149,11 +207,11 @@ ieee_write_2bytes (abfd, bytes)
   buffer[0] = bytes >> 8;
   buffer[1] = bytes & 0xff;
   if (bfd_bwrite ((PTR) buffer, (bfd_size_type) 2, abfd) != 2)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 ieee_write_int (abfd, value)
      bfd *abfd;
      bfd_vma value;
@@ -161,7 +219,7 @@ ieee_write_int (abfd, value)
   if (value <= 127)
     {
       if (! ieee_write_byte (abfd, (bfd_byte) value))
-       return false;
+       return FALSE;
     }
   else
     {
@@ -181,31 +239,31 @@ ieee_write_int (abfd, value)
       if (! ieee_write_byte (abfd,
                             (bfd_byte) ((int) ieee_number_repeat_start_enum
                                         + length)))
-       return false;
+       return FALSE;
       switch (length)
        {
        case 4:
          if (! ieee_write_byte (abfd, (bfd_byte) (value >> 24)))
-           return false;
+           return FALSE;
          /* Fall through.  */
        case 3:
          if (! ieee_write_byte (abfd, (bfd_byte) (value >> 16)))
-           return false;
+           return FALSE;
          /* Fall through.  */
        case 2:
          if (! ieee_write_byte (abfd, (bfd_byte) (value >> 8)))
-           return false;
+           return FALSE;
          /* Fall through.  */
        case 1:
          if (! ieee_write_byte (abfd, (bfd_byte) (value)))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 ieee_write_id (abfd, id)
      bfd *abfd;
      const char *id;
@@ -215,19 +273,19 @@ ieee_write_id (abfd, id)
   if (length <= 127)
     {
       if (! ieee_write_byte (abfd, (bfd_byte) length))
-       return false;
+       return FALSE;
     }
   else if (length < 255)
     {
       if (! ieee_write_byte (abfd, ieee_extension_length_1_enum)
          || ! ieee_write_byte (abfd, (bfd_byte) length))
-       return false;
+       return FALSE;
     }
   else if (length < 65535)
     {
       if (! ieee_write_byte (abfd, ieee_extension_length_2_enum)
          || ! ieee_write_2bytes (abfd, (int) length))
-       return false;
+       return FALSE;
     }
   else
     {
@@ -235,12 +293,12 @@ ieee_write_id (abfd, id)
        (_("%s: string too long (%d chars, max 65535)"),
         bfd_get_filename (abfd), length);
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   if (bfd_bwrite ((PTR) id, (bfd_size_type) length, abfd) != length)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 \f
 /***************************************************************************
@@ -305,12 +363,12 @@ read_id (ieee)
   return string;
 }
 
-static boolean
+static bfd_boolean
 ieee_write_expression (abfd, value, symbol, pcrel, index)
      bfd *abfd;
      bfd_vma value;
      asymbol *symbol;
-     boolean pcrel;
+     bfd_boolean pcrel;
      unsigned int index;
 {
   unsigned int term_count = 0;
@@ -318,7 +376,7 @@ ieee_write_expression (abfd, value, symbol, pcrel, index)
   if (value != 0)
     {
       if (! ieee_write_int (abfd, value))
-       return false;
+       return FALSE;
       term_count++;
     }
 
@@ -328,7 +386,7 @@ ieee_write_expression (abfd, value, symbol, pcrel, index)
       /* Def of a common symbol */
       if (! ieee_write_byte (abfd, ieee_variable_X_enum)
          || ! ieee_write_int (abfd, symbol->value))
-       return false;
+       return FALSE;
       term_count++;
     }
   else if (! bfd_is_abs_section (symbol->section))
@@ -339,7 +397,7 @@ ieee_write_expression (abfd, value, symbol, pcrel, index)
        {
          if (! ieee_write_byte (abfd, ieee_variable_I_enum)
              || ! ieee_write_int (abfd, symbol->value))
-           return false;
+           return FALSE;
          term_count++;
        }
       else if (symbol->flags & (BSF_LOCAL | BSF_SECTION_SYM))
@@ -350,12 +408,12 @@ ieee_write_expression (abfd, value, symbol, pcrel, index)
              || ! ieee_write_byte (abfd,
                                    (bfd_byte) (symbol->section->index
                                                + IEEE_SECTION_NUMBER_BASE)))
-           return false;
+           return FALSE;
          term_count++;
          if (symbol->value != 0)
            {
              if (! ieee_write_int (abfd, symbol->value))
-               return false;
+               return FALSE;
              term_count++;
            }
        }
@@ -366,7 +424,7 @@ ieee_write_expression (abfd, value, symbol, pcrel, index)
             bfd_get_filename (abfd), bfd_asymbol_name (symbol),
             symbol->flags);
          bfd_set_error (bfd_error_invalid_operation);
-         return false;
+         return FALSE;
        }
     }
 
@@ -377,24 +435,24 @@ ieee_write_expression (abfd, value, symbol, pcrel, index)
          || ! ieee_write_byte (abfd,
                                (bfd_byte) (index + IEEE_SECTION_NUMBER_BASE))
          || ! ieee_write_byte (abfd, ieee_function_minus_enum))
-       return false;
+       return FALSE;
     }
 
   /* Handle the degenerate case of a 0 address.  */
   if (term_count == 0)
     {
       if (! ieee_write_int (abfd, (bfd_vma) 0))
-       return false;
+       return FALSE;
     }
 
   while (term_count > 1)
     {
       if (! ieee_write_byte (abfd, ieee_function_plus_enum))
-       return false;
+       return FALSE;
       term_count--;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /*****************************************************************************/
@@ -414,7 +472,7 @@ ieee_write_int5 (buffer, value)
   buffer[4] = (value >> 0) & 0xff;
 }
 
-static boolean
+static bfd_boolean
 ieee_write_int5_out (abfd, value)
      bfd *abfd;
      bfd_vma value;
@@ -423,11 +481,11 @@ ieee_write_int5_out (abfd, value)
 
   ieee_write_int5 (b, value);
   if (bfd_bwrite ((PTR) b, (bfd_size_type) 5, abfd) != 5)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 parse_int (ieee, value_ptr)
      common_header_type *ieee;
      bfd_vma *value_ptr;
@@ -438,7 +496,7 @@ parse_int (ieee, value_ptr)
     {
       *value_ptr = value;
       next_byte (ieee);
-      return true;
+      return TRUE;
     }
   else if (value >= 0x80 && value <= 0x88)
     {
@@ -451,15 +509,15 @@ parse_int (ieee, value_ptr)
          count--;
        }
       *value_ptr = result;
-      return true;
+      return TRUE;
     }
-  return false;
+  return FALSE;
 }
 
 static int
 parse_i (ieee, ok)
      common_header_type *ieee;
-     boolean *ok;
+     bfd_boolean *ok;
 {
   bfd_vma x;
   *ok = parse_int (ieee, &x);
@@ -486,12 +544,12 @@ typedef struct
 #if KEEPMINUSPCININST
 
 #define SRC_MASK(arg) arg
-#define PCREL_OFFSET false
+#define PCREL_OFFSET FALSE
 
 #else
 
 #define SRC_MASK(arg) 0
-#define PCREL_OFFSET true
+#define PCREL_OFFSET TRUE
 
 #endif
 
@@ -500,57 +558,57 @@ static reloc_howto_type abs32_howto =
         0,
         2,
         32,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         0,
         "abs32",
-        true,
+        TRUE,
         0xffffffff,
         0xffffffff,
-        false);
+        FALSE);
 
 static reloc_howto_type abs16_howto =
   HOWTO (1,
         0,
         1,
         16,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         0,
         "abs16",
-        true,
+        TRUE,
         0x0000ffff,
         0x0000ffff,
-        false);
+        FALSE);
 
 static reloc_howto_type abs8_howto =
   HOWTO (1,
         0,
         0,
         8,
-        false,
+        FALSE,
         0,
         complain_overflow_bitfield,
         0,
         "abs8",
-        true,
+        TRUE,
         0x000000ff,
         0x000000ff,
-        false);
+        FALSE);
 
 static reloc_howto_type rel32_howto =
   HOWTO (1,
         0,
         2,
         32,
-        true,
+        TRUE,
         0,
         complain_overflow_signed,
         0,
         "rel32",
-        true,
+        TRUE,
         SRC_MASK (0xffffffff),
         0xffffffff,
         PCREL_OFFSET);
@@ -560,12 +618,12 @@ static reloc_howto_type rel16_howto =
         0,
         1,
         16,
-        true,
+        TRUE,
         0,
         complain_overflow_signed,
         0,
         "rel16",
-        true,
+        TRUE,
         SRC_MASK (0x0000ffff),
         0x0000ffff,
         PCREL_OFFSET);
@@ -575,12 +633,12 @@ static reloc_howto_type rel8_howto =
         0,
         0,
         8,
-        true,
+        TRUE,
         0,
         complain_overflow_signed,
         0,
         "rel8",
-        true,
+        TRUE,
         SRC_MASK (0x000000ff),
         0x000000ff,
         PCREL_OFFSET);
@@ -592,7 +650,7 @@ parse_expression (ieee, value, symbol, pcrel, extra, section)
      ieee_data_type *ieee;
      bfd_vma *value;
      ieee_symbol_index_type *symbol;
-     boolean *pcrel;
+     bfd_boolean *pcrel;
      unsigned int *extra;
      asection **section;
 
@@ -603,7 +661,7 @@ parse_expression (ieee, value, symbol, pcrel, extra, section)
 #define INC sp++;
 #define DEC sp--;
 
-  boolean loop = true;
+  bfd_boolean loop = TRUE;
   ieee_value_type stack[10];
 
   /* The stack pointer always points to the next unused location */
@@ -621,7 +679,7 @@ parse_expression (ieee, value, symbol, pcrel, extra, section)
          {
            int section_n;
            next_byte (&(ieee->h));
-           *pcrel = true;
+           *pcrel = TRUE;
            section_n = must_parse_int (&(ieee->h));
            PUSH (NOSYMBOL, bfd_abs_section_ptr, 0);
            break;
@@ -706,7 +764,7 @@ parse_expression (ieee, value, symbol, pcrel, extra, section)
            else
              {
                /* Thats all that we can understand.  */
-               loop = false;
+               loop = FALSE;
              }
          }
        }
@@ -803,7 +861,7 @@ get_symbol (abfd, ieee, last_symbol, symbol_count, pptr, max_index, this_type)
   return last_symbol;
 }
 
-static boolean
+static bfd_boolean
 ieee_slurp_external_symbols (abfd)
      bfd *abfd;
 {
@@ -814,9 +872,9 @@ ieee_slurp_external_symbols (abfd)
   ieee_symbol_type **prev_reference_ptr = &ieee->external_reference;
   ieee_symbol_type *symbol = (ieee_symbol_type *) NULL;
   unsigned int symbol_count = 0;
-  boolean loop = true;
+  bfd_boolean loop = TRUE;
   last_index = 0xffffff;
-  ieee->symbol_table_full = true;
+  ieee->symbol_table_full = TRUE;
 
   ieee_seek (ieee, offset);
 
@@ -831,7 +889,7 @@ ieee_slurp_external_symbols (abfd)
                               &prev_symbols_ptr,
                               &ieee->external_symbol_max_index, 'I');
          if (symbol == NULL)
-           return false;
+           return FALSE;
 
          symbol->symbol.the_bfd = abfd;
          symbol->symbol.name = read_id (&(ieee->h));
@@ -845,7 +903,7 @@ ieee_slurp_external_symbols (abfd)
                               &prev_symbols_ptr,
                               &ieee->external_symbol_max_index, 'D');
          if (symbol == NULL)
-           return false;
+           return FALSE;
 
          BFD_ASSERT (symbol->index >= ieee->external_symbol_min_index);
 
@@ -878,7 +936,7 @@ ieee_slurp_external_symbols (abfd)
                       bfd_archive_filename (abfd), symbol_attribute_def,
                       symbol_name_index);
                    bfd_set_error (bfd_error_bad_value);
-                   return false;
+                   return FALSE;
                    break;
                  }
                break;
@@ -902,7 +960,7 @@ ieee_slurp_external_symbols (abfd)
                      (_("%s: unexpected ATN type %d in external part"),
                         bfd_archive_filename (abfd), (int) value);
                    bfd_set_error (bfd_error_bad_value);
-                   return false;
+                   return FALSE;
                  }
                parse_int (&ieee->h, &value);
                parse_int (&ieee->h, &value);
@@ -924,7 +982,7 @@ ieee_slurp_external_symbols (abfd)
                          (_("%s: unexpected type after ATN"),
                             bfd_archive_filename (abfd));
                        bfd_set_error (bfd_error_bad_value);
-                       return false;
+                       return FALSE;
                      }
                  }
              }
@@ -934,7 +992,7 @@ ieee_slurp_external_symbols (abfd)
          {
            unsigned int symbol_name_index;
            ieee_symbol_index_type symbol_ignore;
-           boolean pcrel_ignore;
+           bfd_boolean pcrel_ignore;
            unsigned int extra;
            next_byte (&(ieee->h));
            next_byte (&(ieee->h));
@@ -1000,7 +1058,7 @@ ieee_slurp_external_symbols (abfd)
                               &prev_reference_ptr,
                               &ieee->external_reference_max_index, 'X');
          if (symbol == NULL)
-           return false;
+           return FALSE;
 
          symbol->symbol.the_bfd = abfd;
          symbol->symbol.name = read_id (&(ieee->h));
@@ -1013,7 +1071,7 @@ ieee_slurp_external_symbols (abfd)
          break;
 
        default:
-         loop = false;
+         loop = FALSE;
        }
     }
 
@@ -1045,26 +1103,26 @@ ieee_slurp_external_symbols (abfd)
   if (symbol_count != abfd->symcount)
     {
       /* There are gaps in the table -- */
-      ieee->symbol_table_full = false;
+      ieee->symbol_table_full = FALSE;
     }
 
   *prev_symbols_ptr = (ieee_symbol_type *) NULL;
   *prev_reference_ptr = (ieee_symbol_type *) NULL;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 ieee_slurp_symbol_table (abfd)
      bfd *abfd;
 {
   if (! IEEE_DATA (abfd)->read_symbols)
     {
       if (! ieee_slurp_external_symbols (abfd))
-       return false;
-      IEEE_DATA (abfd)->read_symbols = true;
+       return FALSE;
+      IEEE_DATA (abfd)->read_symbols = TRUE;
     }
-  return true;
+  return TRUE;
 }
 
 static long
@@ -1212,7 +1270,7 @@ ieee_slurp_sections (abfd)
     {
       bfd_byte section_type[3];
       ieee_seek (ieee, offset);
-      while (true)
+      while (TRUE)
        {
          switch (this_byte (&(ieee->h)))
            {
@@ -1371,7 +1429,7 @@ ieee_slurp_sections (abfd)
    at the area in the file so that program which understand can dig it
    out.  */
 
-static boolean
+static bfd_boolean
 ieee_slurp_debug (abfd)
      bfd *abfd;
 {
@@ -1380,18 +1438,18 @@ ieee_slurp_debug (abfd)
   file_ptr debug_end;
 
   if (ieee->w.r.debug_information_part == 0)
-    return true;
+    return TRUE;
 
   sec = bfd_make_section (abfd, ".debug");
   if (sec == NULL)
-    return false;
+    return FALSE;
   sec->flags |= SEC_DEBUGGING | SEC_HAS_CONTENTS;
   sec->filepos = ieee->w.r.debug_information_part;
 
   debug_end = ieee_part_after (ieee, ieee->w.r.debug_information_part);
   sec->_raw_size = debug_end - ieee->w.r.debug_information_part;
 
-  return true;
+  return TRUE;
 }
 \f
 /***********************************************************************
@@ -1566,8 +1624,8 @@ ieee_object_p (abfd)
   if (this_byte_and_next (&(ieee->h)) != Module_Beginning)
     goto got_wrong_format;
 
-  ieee->read_symbols = false;
-  ieee->read_data = false;
+  ieee->read_symbols = FALSE;
+  ieee->read_data = FALSE;
   ieee->section_count = 0;
   ieee->external_symbol_max_index = 0;
   ieee->external_symbol_min_index = IEEE_PUBLIC_BASE;
@@ -1679,7 +1737,7 @@ ieee_object_p (abfd)
 
   for (part = 0; part < N_W_VARIABLES; part++)
     {
-      boolean ok;
+      bfd_boolean ok;
       if (read_2bytes (&(ieee->h)) != (int) ieee_assign_value_to_variable_enum)
        {
          goto fail;
@@ -1796,7 +1854,7 @@ ieee_print_symbol (abfd, afile, symbol, how)
     }
 }
 
-static boolean
+static bfd_boolean
 do_one (ieee, current_map, location_ptr, s, iterations)
      ieee_data_type *ieee;
      ieee_per_section_type *current_map;
@@ -1823,7 +1881,7 @@ do_one (ieee, current_map, location_ptr, s, iterations)
 
     case ieee_load_with_relocation_enum:
       {
-       boolean loop = true;
+       bfd_boolean loop = TRUE;
        next_byte (&(ieee->h));
        while (loop)
          {
@@ -1836,14 +1894,14 @@ do_one (ieee, current_map, location_ptr, s, iterations)
              case ieee_function_either_open_b_enum:
                {
                  unsigned int extra = 4;
-                 boolean pcrel = false;
+                 bfd_boolean pcrel = FALSE;
                  asection *section;
                  ieee_reloc_type *r;
                  bfd_size_type amt = sizeof (ieee_reloc_type);
 
                  r = (ieee_reloc_type *) bfd_alloc (ieee->h.abfd, amt);
                  if (!r)
-                   return false;
+                   return FALSE;
 
                  *(current_map->reloc_tail_ptr) = r;
                  current_map->reloc_tail_ptr = &r->next;
@@ -1962,7 +2020,7 @@ do_one (ieee, current_map, location_ptr, s, iterations)
 
                    default:
                      BFD_FAIL ();
-                     return false;
+                     return FALSE;
                    }
                }
                break;
@@ -1980,7 +2038,7 @@ do_one (ieee, current_map, location_ptr, s, iterations)
                    }
                  else
                    {
-                     loop = false;
+                     loop = FALSE;
                    }
                }
              }
@@ -1988,15 +2046,15 @@ do_one (ieee, current_map, location_ptr, s, iterations)
            /* Prevent more than the first load-item of an LR record
               from being repeated (MRI convention). */
            if (iterations != 1)
-             loop = false;
+             loop = FALSE;
          }
       }
     }
-  return true;
+  return TRUE;
 }
 
 /* Read in all the section data and relocation stuff too */
-static boolean
+static bfd_boolean
 ieee_slurp_section_data (abfd)
      bfd *abfd;
 {
@@ -2008,8 +2066,8 @@ ieee_slurp_section_data (abfd)
   asection *s;
   /* Seek to the start of the data area */
   if (ieee->read_data)
-    return true;
-  ieee->read_data = true;
+    return TRUE;
+  ieee->read_data = TRUE;
   ieee_seek (ieee, ieee->w.r.data_part);
 
   /* Allocate enough space for all the section contents */
@@ -2021,19 +2079,19 @@ ieee_slurp_section_data (abfd)
        continue;
       per->data = (bfd_byte *) bfd_alloc (ieee->h.abfd, s->_raw_size);
       if (!per->data)
-       return false;
+       return FALSE;
       /*SUPPRESS 68*/
       per->reloc_tail_ptr =
        (ieee_reloc_type **) & (s->relocation);
     }
 
-  while (true)
+  while (TRUE)
     {
       switch (this_byte (&(ieee->h)))
        {
          /* IF we see anything strange then quit */
        default:
-         return true;
+         return TRUE;
 
        case ieee_set_current_section_enum:
          next_byte (&(ieee->h));
@@ -2057,7 +2115,7 @@ ieee_slurp_section_data (abfd)
                bfd_vma value;
                ieee_symbol_index_type symbol;
                unsigned int extra;
-               boolean pcrel;
+               bfd_boolean pcrel;
                next_byte (&(ieee->h));
                must_parse_int (&(ieee->h));    /* Throw away section #*/
                parse_expression (ieee, &value,
@@ -2075,10 +2133,10 @@ ieee_slurp_section_data (abfd)
                next_byte (&(ieee->h));
              abfd->start_address = must_parse_int (&(ieee->h));
              /* We've got to the end of the data now - */
-             return true;
+             return TRUE;
            default:
              BFD_FAIL ();
-             return false;
+             return FALSE;
            }
          break;
        case ieee_repeat_data_enum:
@@ -2113,7 +2171,7 @@ ieee_slurp_section_data (abfd)
                    ieee->h.input_p = start;
                    if (!do_one (ieee, current_map, location_ptr, s,
                                 (int) iterations))
-                     return false;
+                     return FALSE;
                    iterations--;
                  }
              }
@@ -2123,13 +2181,13 @@ ieee_slurp_section_data (abfd)
        case ieee_load_with_relocation_enum:
          {
            if (!do_one (ieee, current_map, location_ptr, s, 1))
-             return false;
+             return FALSE;
          }
        }
     }
 }
 
-static boolean
+static bfd_boolean
 ieee_new_section_hook (abfd, newsect)
      bfd *abfd;
      asection *newsect;
@@ -2137,10 +2195,10 @@ ieee_new_section_hook (abfd, newsect)
   newsect->used_by_bfd = (PTR)
     bfd_alloc (abfd, (bfd_size_type) sizeof (ieee_per_section_type));
   if (!newsect->used_by_bfd)
-    return false;
+    return FALSE;
   ieee_per_section (newsect)->data = (bfd_byte *) NULL;
   ieee_per_section (newsect)->section = newsect;
-  return true;
+  return TRUE;
 }
 
 static long
@@ -2155,7 +2213,7 @@ ieee_get_reloc_upper_bound (abfd, asect)
   return (asect->reloc_count + 1) * sizeof (arelent *);
 }
 
-static boolean
+static bfd_boolean
 ieee_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -2169,7 +2227,7 @@ ieee_get_section_contents (abfd, section, location, offset, count)
                                              offset, count);
   ieee_slurp_section_data (abfd);
   (void) memcpy ((PTR) location, (PTR) (p->data + offset), (unsigned) count);
-  return true;
+  return TRUE;
 }
 
 static long
@@ -2227,7 +2285,7 @@ comp (ap, bp)
 
 /* Write the section headers.  */
 
-static boolean
+static bfd_boolean
 ieee_write_section_part (abfd)
      bfd *abfd;
 {
@@ -2243,19 +2301,19 @@ ieee_write_section_part (abfd)
              || ! ieee_write_byte (abfd,
                                    (bfd_byte) (s->index
                                                + IEEE_SECTION_NUMBER_BASE)))
-           return false;
+           return FALSE;
 
          if (abfd->flags & EXEC_P)
            {
              /* This image is executable, so output absolute sections */
              if (! ieee_write_byte (abfd, ieee_variable_A_enum)
                  || ! ieee_write_byte (abfd, ieee_variable_S_enum))
-               return false;
+               return FALSE;
            }
          else
            {
              if (! ieee_write_byte (abfd, ieee_variable_C_enum))
-               return false;
+               return FALSE;
            }
 
          switch (s->flags & (SEC_CODE | SEC_DATA | SEC_ROM))
@@ -2263,24 +2321,24 @@ ieee_write_section_part (abfd)
            case SEC_CODE | SEC_LOAD:
            case SEC_CODE:
              if (! ieee_write_byte (abfd, ieee_variable_P_enum))
-               return false;
+               return FALSE;
              break;
            case SEC_DATA:
            default:
              if (! ieee_write_byte (abfd, ieee_variable_D_enum))
-               return false;
+               return FALSE;
              break;
            case SEC_ROM:
            case SEC_ROM | SEC_DATA:
            case SEC_ROM | SEC_LOAD:
            case SEC_ROM | SEC_DATA | SEC_LOAD:
              if (! ieee_write_byte (abfd, ieee_variable_R_enum))
-               return false;
+               return FALSE;
            }
 
 
          if (! ieee_write_id (abfd, s->name))
-           return false;
+           return FALSE;
 #if 0
          ieee_write_int (abfd, 0);     /* Parent */
          ieee_write_int (abfd, 0);     /* Brother */
@@ -2292,7 +2350,7 @@ ieee_write_section_part (abfd)
                                    (bfd_byte) (s->index
                                                + IEEE_SECTION_NUMBER_BASE))
              || ! ieee_write_int (abfd, (bfd_vma) 1 << s->alignment_power))
-           return false;
+           return FALSE;
 
          /* Size */
          if (! ieee_write_2bytes (abfd, ieee_section_size_enum)
@@ -2300,7 +2358,7 @@ ieee_write_section_part (abfd)
                                    (bfd_byte) (s->index
                                                + IEEE_SECTION_NUMBER_BASE))
              || ! ieee_write_int (abfd, s->_raw_size))
-           return false;
+           return FALSE;
          if (abfd->flags & EXEC_P)
            {
              /* Relocateable sections don't have asl records */
@@ -2311,16 +2369,16 @@ ieee_write_section_part (abfd)
                                         (s->index
                                          + IEEE_SECTION_NUMBER_BASE)))
                  || ! ieee_write_int (abfd, s->lma))
-               return false;
+               return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 
-static boolean
+static bfd_boolean
 do_with_relocs (abfd, s)
      bfd *abfd;
      asection *s;
@@ -2344,17 +2402,17 @@ do_with_relocs (abfd, s)
       || ! ieee_write_2bytes (abfd, ieee_set_current_pc_enum)
       || ! ieee_write_byte (abfd,
                            (bfd_byte) (s->index + IEEE_SECTION_NUMBER_BASE)))
-    return false;
+    return FALSE;
 
   if ((abfd->flags & EXEC_P) != 0 && relocs_to_go == 0)
     {
       if (! ieee_write_int (abfd, s->lma))
-       return false;
+       return FALSE;
     }
   else
     {
       if (! ieee_write_expression (abfd, (bfd_vma) 0, s->symbol, 0, 0))
-       return false;
+       return FALSE;
     }
 
   if (relocs_to_go == 0)
@@ -2375,13 +2433,13 @@ do_with_relocs (abfd, s)
          if (run != 0)
            {
              if (! ieee_write_byte (abfd, ieee_load_constant_bytes_enum))
-               return false;
+               return FALSE;
              /* Output a stream of bytes */
              if (! ieee_write_int (abfd, run))
-               return false;
+               return FALSE;
              if (bfd_bwrite ((PTR) (stream + current_byte_index), run, abfd)
                  != run)
-               return false;
+               return FALSE;
              current_byte_index += run;
            }
        }
@@ -2389,7 +2447,7 @@ do_with_relocs (abfd, s)
   else
     {
       if (! ieee_write_byte (abfd, ieee_load_with_relocation_enum))
-       return false;
+       return FALSE;
 
       /* Output the data stream as the longest sequence of bytes
         possible, allowing for the a reasonable packet size and
@@ -2400,7 +2458,7 @@ do_with_relocs (abfd, s)
          /* Outputting a section without data, fill it up */
          stream = (unsigned char *) bfd_zalloc (abfd, s->_raw_size);
          if (!stream)
-           return false;
+           return FALSE;
        }
       while (current_byte_index < s->_raw_size)
        {
@@ -2425,10 +2483,10 @@ do_with_relocs (abfd, s)
            {
              /* Output a stream of bytes */
              if (! ieee_write_int (abfd, run))
-               return false;
+               return FALSE;
              if (bfd_bwrite ((PTR) (stream + current_byte_index), run, abfd)
                  != run)
-               return false;
+               return FALSE;
              current_byte_index += run;
            }
          /* Output any relocations here */
@@ -2468,7 +2526,7 @@ do_with_relocs (abfd, s)
                    default:
                      ov = 0;
                      BFD_FAIL ();
-                     return false;
+                     return FALSE;
                    }
 
                  ov &= r->howto->src_mask;
@@ -2479,7 +2537,7 @@ do_with_relocs (abfd, s)
 
                  if (! ieee_write_byte (abfd,
                                         ieee_function_either_open_b_enum))
-                   return false;
+                   return FALSE;
 
 /*               abort();*/
 
@@ -2489,7 +2547,7 @@ do_with_relocs (abfd, s)
                                                   *(r->sym_ptr_ptr),
                                                   r->howto->pc_relative,
                                                   (unsigned) s->index))
-                       return false;
+                       return FALSE;
                    }
                  else
                    {
@@ -2497,7 +2555,7 @@ do_with_relocs (abfd, s)
                                                   (asymbol *) NULL,
                                                   r->howto->pc_relative,
                                                   (unsigned) s->index))
-                       return false;
+                       return FALSE;
                    }
 
                  if (number_of_maus_in_address
@@ -2505,11 +2563,11 @@ do_with_relocs (abfd, s)
                    {
                      bfd_vma rsize = bfd_get_reloc_size (r->howto);
                      if (! ieee_write_int (abfd, rsize))
-                       return false;
+                       return FALSE;
                    }
                  if (! ieee_write_byte (abfd,
                                         ieee_function_either_close_b_enum))
-                   return false;
+                   return FALSE;
 
                  relocs_to_go--;
                  p++;
@@ -2519,14 +2577,14 @@ do_with_relocs (abfd, s)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* If there are no relocations in the output section then we can be
    clever about how we write.  We block items up into a max of 127
    bytes.  */
 
-static boolean
+static bfd_boolean
 do_as_repeat (abfd, s)
      bfd *abfd;
      asection *s;
@@ -2542,17 +2600,17 @@ do_as_repeat (abfd, s)
          || ! ieee_write_byte (abfd,
                                (bfd_byte) (s->index
                                            + IEEE_SECTION_NUMBER_BASE)))
-       return false;
+       return FALSE;
 
       if ((abfd->flags & EXEC_P) != 0)
        {
          if (! ieee_write_int (abfd, s->lma))
-           return false;
+           return FALSE;
        }
       else
        {
          if (! ieee_write_expression (abfd, (bfd_vma) 0, s->symbol, 0, 0))
-           return false;
+           return FALSE;
        }
 
       if (! ieee_write_byte (abfd, ieee_repeat_data_enum)
@@ -2560,13 +2618,13 @@ do_as_repeat (abfd, s)
          || ! ieee_write_byte (abfd, ieee_load_constant_bytes_enum)
          || ! ieee_write_byte (abfd, 1)
          || ! ieee_write_byte (abfd, 0))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 do_without_relocs (abfd, s)
      bfd *abfd;
      asection *s;
@@ -2576,7 +2634,7 @@ do_without_relocs (abfd, s)
   if (stream == 0 || ((s->flags & SEC_LOAD) == 0))
     {
       if (! do_as_repeat (abfd, s))
-       return false;
+       return FALSE;
     }
   else
     {
@@ -2586,15 +2644,15 @@ do_without_relocs (abfd, s)
          if (stream[i] != 0)
            {
              if (! do_with_relocs (abfd, s))
-               return false;
-             return true;
+               return FALSE;
+             return TRUE;
            }
        }
       if (! do_as_repeat (abfd, s))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 
@@ -2608,7 +2666,7 @@ static bfd *input_bfd;
 static bfd *output_bfd;
 static int output_buffer;
 
-static boolean
+static bfd_boolean
 ieee_mkobject (abfd)
      bfd *abfd;
 {
@@ -3280,14 +3338,14 @@ relocate_debug (output, input)
 /* Gather together all the debug information from each input BFD into
    one place, relocating it and emitting it as we go.  */
 
-static boolean
+static bfd_boolean
 ieee_write_debug_part (abfd)
      bfd *abfd;
 {
   ieee_data_type *ieee = IEEE_DATA (abfd);
   bfd_chain_type *chain = ieee->chain_root;
   unsigned char obuff[OBS];
-  boolean some_debug = false;
+  bfd_boolean some_debug = FALSE;
   file_ptr here = bfd_tell (abfd);
 
   output_ptr_start = output_ptr = obuff;
@@ -3305,12 +3363,12 @@ ieee_write_debug_part (abfd)
       if (s == NULL)
        {
          ieee->w.r.debug_information_part = 0;
-         return true;
+         return TRUE;
        }
 
       ieee->w.r.debug_information_part = here;
       if (bfd_bwrite (s->contents, s->_raw_size, abfd) != s->_raw_size)
-       return false;
+       return FALSE;
     }
   else
     {
@@ -3322,7 +3380,7 @@ ieee_write_debug_part (abfd)
            {
              if (bfd_seek (entry, entry_ieee->w.r.debug_information_part,
                            SEEK_SET) != 0)
-               return false;
+               return FALSE;
              relocate_debug (abfd, entry);
            }
 
@@ -3340,12 +3398,12 @@ ieee_write_debug_part (abfd)
       flush ();
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write the data in an ieee way.  */
 
-static boolean
+static bfd_boolean
 ieee_write_data_part (abfd)
      bfd *abfd;
 {
@@ -3364,20 +3422,20 @@ ieee_write_data_part (abfd)
       if (s->reloc_count != 0)
        {
          if (! do_with_relocs (abfd, s))
-           return false;
+           return FALSE;
        }
       else
        {
          if (! do_without_relocs (abfd, s))
-           return false;
+           return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 
-static boolean
+static bfd_boolean
 init_for_output (abfd)
      bfd *abfd;
 {
@@ -3391,10 +3449,10 @@ init_for_output (abfd)
          bfd_size_type size = s->_raw_size;
          ieee_per_section (s)->data = (bfd_byte *) (bfd_alloc (abfd, size));
          if (!ieee_per_section (s)->data)
-           return false;
+           return FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 \f
 /** exec and core file sections */
@@ -3402,7 +3460,7 @@ init_for_output (abfd)
 /* set section contents is complicated with IEEE since the format is
 * not a byte image, but a record stream.
 */
-static boolean
+static bfd_boolean
 ieee_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -3417,23 +3475,23 @@ ieee_set_section_contents (abfd, section, location, offset, count)
          bfd_size_type size = section->_raw_size;
          section->contents = (unsigned char *) bfd_alloc (abfd, size);
          if (section->contents == NULL)
-           return false;
+           return FALSE;
        }
       /* bfd_set_section_contents has already checked that everything
          is within range.  */
       memcpy (section->contents + offset, location, (size_t) count);
-      return true;
+      return TRUE;
     }
 
   if (ieee_per_section (section)->data == (bfd_byte *) NULL)
     {
       if (!init_for_output (abfd))
-       return false;
+       return FALSE;
     }
   memcpy ((PTR) (ieee_per_section (section)->data + offset),
          (PTR) location,
          (unsigned int) count);
-  return true;
+  return TRUE;
 }
 
 /* Write the external symbols of a file.  IEEE considers two sorts of
@@ -3441,7 +3499,7 @@ ieee_set_section_contents (abfd, section, location, offset, count)
    forms to index them as well.  When we write them out we turn their
    symbol values into indexes from the right base.  */
 
-static boolean
+static bfd_boolean
 ieee_write_external_part (abfd)
      bfd *abfd;
 {
@@ -3451,7 +3509,7 @@ ieee_write_external_part (abfd)
   unsigned int reference_index = IEEE_REFERENCE_BASE;
   unsigned int public_index = IEEE_PUBLIC_BASE + 2;
   file_ptr here = bfd_tell (abfd);
-  boolean hadone = false;
+  bfd_boolean hadone = FALSE;
   if (abfd->outsymbols != (asymbol **) NULL)
     {
 
@@ -3464,10 +3522,10 @@ ieee_write_external_part (abfd)
              if (! ieee_write_byte (abfd, ieee_external_reference_enum)
                  || ! ieee_write_int (abfd, (bfd_vma) reference_index)
                  || ! ieee_write_id (abfd, p->name))
-               return false;
+               return FALSE;
              p->value = reference_index;
              reference_index++;
-             hadone = true;
+             hadone = TRUE;
            }
          else if (bfd_is_com_section (p->section))
            {
@@ -3479,10 +3537,10 @@ ieee_write_external_part (abfd)
                                        ieee_weak_external_reference_enum)
                  || ! ieee_write_int (abfd, (bfd_vma) reference_index)
                  || ! ieee_write_int (abfd, p->value))
-               return false;
+               return FALSE;
              p->value = reference_index;
              reference_index++;
-             hadone = true;
+             hadone = TRUE;
            }
          else if (p->flags & BSF_GLOBAL)
            {
@@ -3496,12 +3554,12 @@ ieee_write_external_part (abfd)
                  || ! ieee_write_byte (abfd, 15) /* instruction address */
                  || ! ieee_write_byte (abfd, 19) /* static symbol */
                  || ! ieee_write_byte (abfd, 1)) /* one of them */
-               return false;
+               return FALSE;
 
              /* Write out the value */
              if (! ieee_write_2bytes (abfd, ieee_value_record_enum)
                  || ! ieee_write_int (abfd, (bfd_vma) public_index))
-               return false;
+               return FALSE;
              if (! bfd_is_abs_section (p->section))
                {
                  if (abfd->flags & EXEC_P)
@@ -3513,7 +3571,7 @@ ieee_write_external_part (abfd)
                              (p->value
                               + p->section->output_offset
                               + p->section->output_section->vma))))
-                       return false;
+                       return FALSE;
                    }
                  else
                    {
@@ -3521,8 +3579,8 @@ ieee_write_external_part (abfd)
                             (abfd,
                              p->value + p->section->output_offset,
                              p->section->output_section->symbol,
-                             false, 0)))
-                       return false;
+                             FALSE, 0)))
+                       return FALSE;
                    }
                }
              else
@@ -3530,12 +3588,12 @@ ieee_write_external_part (abfd)
                  if (! ieee_write_expression (abfd,
                                               p->value,
                                               bfd_abs_section_ptr->symbol,
-                                              false, 0))
-                   return false;
+                                              FALSE, 0))
+                   return FALSE;
                }
              p->value = public_index;
              public_index++;
-             hadone = true;
+             hadone = TRUE;
            }
          else
            {
@@ -3547,7 +3605,7 @@ ieee_write_external_part (abfd)
   if (hadone)
     ieee->w.r.external_part = here;
 
-  return true;
+  return TRUE;
 }
 
 
@@ -3572,7 +3630,7 @@ static const unsigned char envi[] =
 /*    0xf1, 0xce, 0x21, 0, 54, 2,1,1   tool & version # */
 };
 
-static boolean
+static bfd_boolean
 ieee_write_me_part (abfd)
      bfd *abfd;
 {
@@ -3584,17 +3642,17 @@ ieee_write_me_part (abfd)
          || ! ieee_write_byte (abfd, ieee_function_either_open_b_enum)
          || ! ieee_write_int (abfd, abfd->start_address)
          || ! ieee_write_byte (abfd, ieee_function_either_close_b_enum))
-       return false;
+       return FALSE;
     }
   ieee->w.r.me_record = bfd_tell (abfd);
   if (! ieee_write_byte (abfd, ieee_module_end_enum))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Write out the IEEE processor ID.  */
 
-static boolean
+static bfd_boolean
 ieee_write_processor (abfd)
      bfd *abfd;
 {
@@ -3605,22 +3663,22 @@ ieee_write_processor (abfd)
     {
     default:
       if (! ieee_write_id (abfd, bfd_printable_name (abfd)))
-       return false;
+       return FALSE;
       break;
 
     case bfd_arch_a29k:
       if (! ieee_write_id (abfd, "29000"))
-       return false;
+       return FALSE;
       break;
 
     case bfd_arch_h8300:
       if (! ieee_write_id (abfd, "H8/300"))
-       return false;
+       return FALSE;
       break;
 
     case bfd_arch_h8500:
       if (! ieee_write_id (abfd, "H8/500"))
-       return false;
+       return FALSE;
       break;
 
     case bfd_arch_i960:
@@ -3630,23 +3688,23 @@ ieee_write_processor (abfd)
        case bfd_mach_i960_core:
        case bfd_mach_i960_ka_sa:
          if (! ieee_write_id (abfd, "80960KA"))
-           return false;
+           return FALSE;
          break;
 
        case bfd_mach_i960_kb_sb:
          if (! ieee_write_id (abfd, "80960KB"))
-           return false;
+           return FALSE;
          break;
 
        case bfd_mach_i960_ca:
          if (! ieee_write_id (abfd, "80960CA"))
-           return false;
+           return FALSE;
          break;
 
        case bfd_mach_i960_mc:
        case bfd_mach_i960_xa:
          if (! ieee_write_id (abfd, "80960MC"))
-           return false;
+           return FALSE;
          break;
        }
       break;
@@ -3673,15 +3731,15 @@ ieee_write_processor (abfd)
          }
 
        if (! ieee_write_id (abfd, id))
-         return false;
+         return FALSE;
       }
       break;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 ieee_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -3691,49 +3749,49 @@ ieee_write_object_contents (abfd)
 
   /* Fast forward over the header area */
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (! ieee_write_byte (abfd, ieee_module_beginning_enum)
       || ! ieee_write_processor (abfd)
       || ! ieee_write_id (abfd, abfd->filename))
-    return false;
+    return FALSE;
 
   /* Fast forward over the variable bits */
   if (! ieee_write_byte (abfd, ieee_address_descriptor_enum))
-    return false;
+    return FALSE;
 
   /* Bits per MAU */
   if (! ieee_write_byte (abfd, (bfd_byte) (bfd_arch_bits_per_byte (abfd))))
-    return false;
+    return FALSE;
   /* MAU's per address */
   if (! ieee_write_byte (abfd,
                         (bfd_byte) (bfd_arch_bits_per_address (abfd)
                                     / bfd_arch_bits_per_byte (abfd))))
-    return false;
+    return FALSE;
 
   old = bfd_tell (abfd);
   if (bfd_seek (abfd, (file_ptr) (8 * N_W_VARIABLES), SEEK_CUR) != 0)
-    return false;
+    return FALSE;
 
   ieee->w.r.extension_record = bfd_tell (abfd);
   if (bfd_bwrite ((char *) exten, (bfd_size_type) sizeof (exten), abfd)
       != sizeof (exten))
-    return false;
+    return FALSE;
   if (abfd->flags & EXEC_P)
     {
       if (! ieee_write_byte (abfd, 0x1)) /* Absolute */
-       return false;
+       return FALSE;
     }
   else
     {
       if (! ieee_write_byte (abfd, 0x2)) /* Relocateable */
-       return false;
+       return FALSE;
     }
 
   ieee->w.r.environmental_record = bfd_tell (abfd);
   if (bfd_bwrite ((char *) envi, (bfd_size_type) sizeof (envi), abfd)
       != sizeof (envi))
-    return false;
+    return FALSE;
 
   /* The HP emulator database requires a timestamp in the file.  */
   {
@@ -3752,7 +3810,7 @@ ieee_write_object_contents (abfd)
        || ! ieee_write_int (abfd, (bfd_vma) t->tm_hour)
        || ! ieee_write_int (abfd, (bfd_vma) t->tm_min)
        || ! ieee_write_int (abfd, (bfd_vma) t->tm_sec))
-      return false;
+      return FALSE;
   }
 
   output_bfd = abfd;
@@ -3760,11 +3818,11 @@ ieee_write_object_contents (abfd)
   flush ();
 
   if (! ieee_write_section_part (abfd))
-    return false;
+    return FALSE;
   /* First write the symbols.  This changes their values into table
     indeces so we cant use it after this point.  */
   if (! ieee_write_external_part (abfd))
-    return false;
+    return FALSE;
 
   /*  ieee_write_byte(abfd, ieee_record_seperator_enum);*/
 
@@ -3773,31 +3831,31 @@ ieee_write_object_contents (abfd)
 
   /* Write any debugs we have been told about.  */
   if (! ieee_write_debug_part (abfd))
-    return false;
+    return FALSE;
 
   /* Can only write the data once the symbols have been written, since
      the data contains relocation information which points to the
      symbols.  */
   if (! ieee_write_data_part (abfd))
-    return false;
+    return FALSE;
 
   /* At the end we put the end!  */
   if (! ieee_write_me_part (abfd))
-    return false;
+    return FALSE;
 
   /* Generate the header */
   if (bfd_seek (abfd, old, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   for (i = 0; i < N_W_VARIABLES; i++)
     {
       if (! ieee_write_2bytes (abfd, ieee_assign_value_to_variable_enum)
          || ! ieee_write_byte (abfd, (bfd_byte) i)
          || ! ieee_write_int5_out (abfd, (bfd_vma) ieee->w.offset[i]))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Native-level interface to symbols. */
@@ -3830,7 +3888,7 @@ ieee_openr_next_archived_file (arch, prev)
       /* Reset the index - the first two entries are bogus*/
       ar->element_index = 2;
     }
-  while (true)
+  while (TRUE)
     {
       ieee_ar_obstack_type *p = ar->elements + ar->element_index;
       ar->element_index++;
@@ -3855,7 +3913,7 @@ ieee_openr_next_archived_file (arch, prev)
     }
 }
 
-static boolean
+static bfd_boolean
 ieee_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
                        functionname_ptr, line_ptr)
      bfd *abfd ATTRIBUTE_UNUSED;
@@ -3866,7 +3924,7 @@ ieee_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
      const char **functionname_ptr ATTRIBUTE_UNUSED;
      unsigned int *line_ptr ATTRIBUTE_UNUSED;
 {
-  return false;
+  return FALSE;
 }
 
 static int
@@ -3904,7 +3962,7 @@ ieee_generic_stat_arch_elt (abfd, buf)
 static int
 ieee_sizeof_headers (abfd, x)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean x ATTRIBUTE_UNUSED;
+     bfd_boolean x ATTRIBUTE_UNUSED;
 {
   return 0;
 }
@@ -3944,7 +4002,7 @@ ieee_bfd_debug_info_accumulate (abfd, section)
   /* Only bother once per bfd */
   if (ieee->done_debug)
     return;
-  ieee->done_debug = true;
+  ieee->done_debug = TRUE;
 
   /* Don't bother if there is no debug info */
   if (ieee->w.r.debug_information_part == 0)
@@ -3981,11 +4039,12 @@ ieee_bfd_debug_info_accumulate (abfd, section)
 #define ieee_slurp_armap bfd_true
 #define ieee_slurp_extended_name_table bfd_true
 #define ieee_construct_extended_name_table \
-  ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
+  ((bfd_boolean (*) \
+    PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
    bfd_true)
 #define ieee_truncate_arname bfd_dont_truncate_arname
 #define ieee_write_armap \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \
    bfd_true)
 #define ieee_read_ar_hdr bfd_nullvoidptr
index 8188c01c89efa08c3cf44a165770e4c3455843ea..2f4aa569f48b450908a6542f87a6fda203653d7e 100644 (file)
@@ -125,23 +125,32 @@ The MRI compiler uses this, which is a repeat of type 5:
 #include "libiberty.h"
 #include "safe-ctype.h"
 
-static void ihex_init PARAMS ((void));
-static boolean ihex_mkobject PARAMS ((bfd *));
-static INLINE int ihex_get_byte PARAMS ((bfd *, boolean *));
-static void ihex_bad_byte PARAMS ((bfd *, unsigned int, int, boolean));
-static boolean ihex_scan PARAMS ((bfd *));
-static const bfd_target *ihex_object_p PARAMS ((bfd *));
-static boolean ihex_read_section PARAMS ((bfd *, asection *, bfd_byte *));
-static boolean ihex_get_section_contents
+static void ihex_init
+  PARAMS ((void));
+static bfd_boolean ihex_mkobject
+  PARAMS ((bfd *));
+static INLINE int ihex_get_byte
+  PARAMS ((bfd *, bfd_boolean *));
+static void ihex_bad_byte
+  PARAMS ((bfd *, unsigned int, int, bfd_boolean));
+static bfd_boolean ihex_scan
+  PARAMS ((bfd *));
+static const bfd_target *ihex_object_p
+  PARAMS ((bfd *));
+static bfd_boolean ihex_read_section
+  PARAMS ((bfd *, asection *, bfd_byte *));
+static bfd_boolean ihex_get_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-static boolean ihex_set_section_contents
+static bfd_boolean ihex_set_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-static boolean ihex_write_record
+static bfd_boolean ihex_write_record
   PARAMS ((bfd *, size_t, unsigned int, unsigned int, bfd_byte *));
-static boolean ihex_write_object_contents PARAMS ((bfd *));
-static boolean ihex_set_arch_mach
+static bfd_boolean ihex_write_object_contents
+  PARAMS ((bfd *));
+static bfd_boolean ihex_set_arch_mach
   PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-static int ihex_sizeof_headers PARAMS ((bfd *, boolean));
+static int ihex_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
 
 /* The number of bytes we put on one line during output.  */
 
@@ -178,18 +187,18 @@ struct ihex_data_struct
 static void
 ihex_init ()
 {
-  static boolean inited;
+  static bfd_boolean inited;
 
   if (! inited)
     {
-      inited = true;
+      inited = TRUE;
       hex_init ();
     }
 }
 
 /* Create an ihex object.  */
 
-static boolean
+static bfd_boolean
 ihex_mkobject (abfd)
      bfd *abfd;
 {
@@ -198,12 +207,12 @@ ihex_mkobject (abfd)
 
   tdata = (struct ihex_data_struct *) bfd_alloc (abfd, amt);
   if (tdata == NULL)
-    return false;
+    return FALSE;
 
   abfd->tdata.ihex_data = tdata;
   tdata->head = NULL;
   tdata->tail = NULL;
-  return true;
+  return TRUE;
 }
 
 /* Read a byte from a BFD.  Set *ERRORPTR if an error occurred.
@@ -212,14 +221,14 @@ ihex_mkobject (abfd)
 static INLINE int
 ihex_get_byte (abfd, errorptr)
      bfd *abfd;
-     boolean *errorptr;
+     bfd_boolean *errorptr;
 {
   bfd_byte c;
 
   if (bfd_bread (&c, (bfd_size_type) 1, abfd) != 1)
     {
       if (bfd_get_error () != bfd_error_file_truncated)
-       *errorptr = true;
+       *errorptr = TRUE;
       return EOF;
     }
 
@@ -233,7 +242,7 @@ ihex_bad_byte (abfd, lineno, c, error)
      bfd *abfd;
      unsigned int lineno;
      int c;
-     boolean error;
+     bfd_boolean error;
 {
   if (c == EOF)
     {
@@ -261,7 +270,7 @@ ihex_bad_byte (abfd, lineno, c, error)
 /* Read an Intel hex file and turn it into sections.  We create a new
    section for each contiguous set of bytes.  */
 
-static boolean
+static bfd_boolean
 ihex_scan (abfd)
      bfd *abfd;
 {
@@ -269,7 +278,7 @@ ihex_scan (abfd)
   bfd_vma extbase;
   asection *sec;
   unsigned int lineno;
-  boolean error;
+  bfd_boolean error;
   bfd_byte *buf = NULL;
   size_t bufsize;
   int c;
@@ -283,7 +292,7 @@ ihex_scan (abfd)
   extbase = 0;
   sec = NULL;
   lineno = 1;
-  error = false;
+  error = FALSE;
   bufsize = 0;
 
   while ((c = ihex_get_byte (abfd, &error)) != EOF)
@@ -407,7 +416,7 @@ ihex_scan (abfd)
                abfd->start_address = addr;
              if (buf != NULL)
                free (buf);
-             return true;
+             return TRUE;
 
            case 2:
              /* An extended address record.  */
@@ -496,12 +505,12 @@ ihex_scan (abfd)
   if (buf != NULL)
     free (buf);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (buf != NULL)
     free (buf);
-  return false;
+  return FALSE;
 }
 
 /* Try to recognize an Intel Hex file.  */
@@ -563,7 +572,7 @@ ihex_object_p (abfd)
 
 /* Read the contents of a section in an Intel Hex file.  */
 
-static boolean
+static bfd_boolean
 ihex_read_section (abfd, section, contents)
      bfd *abfd;
      asection *section;
@@ -573,14 +582,14 @@ ihex_read_section (abfd, section, contents)
   bfd_byte *p;
   bfd_byte *buf = NULL;
   size_t bufsize;
-  boolean error;
+  bfd_boolean error;
 
   if (bfd_seek (abfd, section->filepos, SEEK_SET) != 0)
     goto error_return;
 
   p = contents;
   bufsize = 0;
-  error = false;
+  error = FALSE;
   while ((c = ihex_get_byte (abfd, &error)) != EOF)
     {
       char hdr[8];
@@ -631,7 +640,7 @@ ihex_read_section (abfd, section, contents)
          /* We've read everything in the section.  */
          if (buf != NULL)
            free (buf);
-         return true;
+         return TRUE;
        }
 
       /* Skip the checksum.  */
@@ -651,17 +660,17 @@ ihex_read_section (abfd, section, contents)
   if (buf != NULL)
     free (buf);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (buf != NULL)
     free (buf);
-  return false;
+  return FALSE;
 }
 
 /* Get the contents of a section in an Intel Hex file.  */
 
-static boolean
+static bfd_boolean
 ihex_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -673,20 +682,20 @@ ihex_get_section_contents (abfd, section, location, offset, count)
     {
       section->used_by_bfd = bfd_alloc (abfd, section->_raw_size);
       if (section->used_by_bfd == NULL)
-       return false;
+       return FALSE;
       if (! ihex_read_section (abfd, section, section->used_by_bfd))
-       return false;
+       return FALSE;
     }
 
   memcpy (location, (bfd_byte *) section->used_by_bfd + offset,
          (size_t) count);
 
-  return true;
+  return TRUE;
 }
 
 /* Set the contents of a section in an Intel Hex file.  */
 
-static boolean
+static bfd_boolean
 ihex_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -702,16 +711,16 @@ ihex_set_section_contents (abfd, section, location, offset, count)
   if (count == 0
       || (section->flags & SEC_ALLOC) == 0
       || (section->flags & SEC_LOAD) == 0)
-    return true;
+    return TRUE;
 
   amt = sizeof (struct ihex_data_list);
   n = (struct ihex_data_list *) bfd_alloc (abfd, amt);
   if (n == NULL)
-    return false;
+    return FALSE;
 
   data = (bfd_byte *) bfd_alloc (abfd, count);
   if (data == NULL)
-    return false;
+    return FALSE;
   memcpy (data, location, (size_t) count);
 
   n->data = data;
@@ -742,12 +751,12 @@ ihex_set_section_contents (abfd, section, location, offset, count)
        tdata->tail = n;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write a record out to an Intel Hex file.  */
 
-static boolean
+static bfd_boolean
 ihex_write_record (abfd, count, addr, type, data)
      bfd *abfd;
      size_t count;
@@ -785,14 +794,14 @@ ihex_write_record (abfd, count, addr, type, data)
 
   total = 9 + count * 2 + 4;
   if (bfd_bwrite (buf, (bfd_size_type) total, abfd) != total)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Write out an Intel Hex file.  */
 
-static boolean
+static bfd_boolean
 ihex_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -834,7 +843,7 @@ ihex_write_object_contents (abfd)
                  addr[0] = (bfd_byte)(segbase >> 12) & 0xff;
                  addr[1] = (bfd_byte)(segbase >> 4) & 0xff;
                  if (! ihex_write_record (abfd, 2, 0, 2, addr))
-                   return false;
+                   return FALSE;
                }
              else
                {
@@ -849,7 +858,7 @@ ihex_write_object_contents (abfd)
                      addr[0] = 0;
                      addr[1] = 0;
                      if (! ihex_write_record (abfd, 2, 0, 2, addr))
-                       return false;
+                       return FALSE;
                      segbase = 0;
                    }
 
@@ -863,12 +872,12 @@ ihex_write_object_contents (abfd)
                        (_("%s: address 0x%s out of range for Intel Hex file"),
                         bfd_get_filename (abfd), buf);
                      bfd_set_error (bfd_error_bad_value);
-                     return false;
+                     return FALSE;
                    }
                  addr[0] = (bfd_byte)(extbase >> 24) & 0xff;
                  addr[1] = (bfd_byte)(extbase >> 16) & 0xff;
                  if (! ihex_write_record (abfd, 2, 0, 4, addr))
-                   return false;
+                   return FALSE;
                }
            }
 
@@ -879,7 +888,7 @@ ihex_write_object_contents (abfd)
             now = 0x10000 - rec_addr;
 
          if (! ihex_write_record (abfd, now, rec_addr, 0, p))
-           return false;
+           return FALSE;
 
          where += now;
          p += now;
@@ -901,7 +910,7 @@ ihex_write_object_contents (abfd)
          startbuf[2] = (bfd_byte)(start >> 8) & 0xff;
          startbuf[3] = (bfd_byte)start & 0xff;
          if (! ihex_write_record (abfd, 4, 0, 3, startbuf))
-           return false;
+           return FALSE;
        }
       else
        {
@@ -910,20 +919,20 @@ ihex_write_object_contents (abfd)
          startbuf[2] = (bfd_byte)(start >> 8) & 0xff;
          startbuf[3] = (bfd_byte)start & 0xff;
          if (! ihex_write_record (abfd, 4, 0, 5, startbuf))
-           return false;
+           return FALSE;
        }
     }
 
   if (! ihex_write_record (abfd, 0, 0, 1, NULL))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Set the architecture for the output file.  The architecture is
    irrelevant, so we ignore errors about unknown architectures.  */
 
-static boolean
+static bfd_boolean
 ihex_set_arch_mach (abfd, arch, mach)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -932,9 +941,9 @@ ihex_set_arch_mach (abfd, arch, mach)
   if (! bfd_default_set_arch_mach (abfd, arch, mach))
     {
       if (arch != bfd_arch_unknown)
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Get the size of the headers, for the linker.  */
@@ -943,7 +952,7 @@ ihex_set_arch_mach (abfd, arch, mach)
 static int
 ihex_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return 0;
 }
index b1a575b034dc4e66a862f985b70d408f3f7302f4..1dd35fe75071b8c420037b4ce5b2824129822fae 100644 (file)
@@ -43,16 +43,22 @@ struct sgi_core_struct
 
 static asection *make_bfd_asection
   PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr));
-static const bfd_target *irix_core_core_file_p PARAMS ((bfd *));
-static char *irix_core_core_file_failing_command PARAMS ((bfd *));
-static int irix_core_core_file_failing_signal PARAMS ((bfd *));
-static boolean irix_core_core_file_matches_executable_p
+static const bfd_target *irix_core_core_file_p
+  PARAMS ((bfd *));
+static char *irix_core_core_file_failing_command
+  PARAMS ((bfd *));
+static int irix_core_core_file_failing_signal
+  PARAMS ((bfd *));
+static bfd_boolean irix_core_core_file_matches_executable_p
   PARAMS ((bfd *, bfd *));
-static void swap_abort PARAMS ((void));
+static void swap_abort
+  PARAMS ((void));
 #ifdef CORE_MAGIC64
-static int do_sections64 PARAMS ((bfd *, struct coreout *));
+static int do_sections64
+  PARAMS ((bfd *, struct coreout *));
 #endif
-static int do_sections PARAMS ((bfd *, struct coreout *));
+static int do_sections
+  PARAMS ((bfd *, struct coreout *));
 
 /* Helper function for irix_core_core_file_p:
    32-bit and 64-bit versions.  */
@@ -280,11 +286,11 @@ irix_core_core_file_failing_signal (abfd)
   return core_signal (abfd);
 }
 
-static boolean
+static bfd_boolean
 irix_core_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd, *exec_bfd;
 {
-  return true;                 /* XXX - FIXME */
+  return TRUE;                 /* XXX - FIXME */
 }
 
 /* If somebody calls any byte-swapping routines, shoot them.  */
index a76b935d394ad3b2713365735d6738aca7cd589d..7dc44a26720439b1ca638f9ee4d10862006bdebe 100644 (file)
@@ -1,24 +1,24 @@
 /* BFD back-end data structures for a.out (and similar) files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001
+   2000, 2001, 2002
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
-This file is part of BFD, the Binary File Descriptor library.
+   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 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.
+   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.  */
+   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 LIBAOUT_H
 #define LIBAOUT_H
@@ -131,7 +131,7 @@ struct aout_link_hash_entry
 {
   struct bfd_link_hash_entry root;
   /* Whether this symbol has been written out.  */
-  boolean written;
+  bfd_boolean written;
   /* Symbol index in output file.  */
   int indx;
 };
@@ -154,7 +154,7 @@ struct aout_link_hash_table
 #define aout_link_hash_traverse(table, func, info)                     \
   (bfd_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the a.out link hash table from the info structure.  This is
@@ -193,7 +193,7 @@ struct aout_backend_data
 
   /* Callback for setting the page and segment sizes, if they can't be
      trivially determined from the architecture.  */
-  boolean (*set_sizes)
+  bfd_boolean (*set_sizes)
     PARAMS ((bfd *));
 
   /* zmagic files only. For go32, the length of the exec header contributes
@@ -203,39 +203,39 @@ struct aout_backend_data
 
   /* Callback from the add symbols phase of the linker code to handle
      a dynamic object.  */
-  boolean (*add_dynamic_symbols)
+  bfd_boolean (*add_dynamic_symbols)
     PARAMS ((bfd *, struct bfd_link_info *, struct external_nlist **,
             bfd_size_type *, char **));
 
   /* Callback from the add symbols phase of the linker code to handle
      adding a single symbol to the global linker hash table.  */
-  boolean (*add_one_symbol)
+  bfd_boolean (*add_one_symbol)
     PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword,
-            asection *, bfd_vma, const char *, boolean, boolean,
+            asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
             struct bfd_link_hash_entry **));
 
   /* Called to handle linking a dynamic object.  */
-  boolean (*link_dynamic_object)
+  bfd_boolean (*link_dynamic_object)
     PARAMS ((struct bfd_link_info *, bfd *));
 
   /* Called for each global symbol being written out by the linker.
      This should write out the dynamic symbol information.  */
-  boolean (*write_dynamic_symbol)
+  bfd_boolean (*write_dynamic_symbol)
     PARAMS ((bfd *, struct bfd_link_info *, struct aout_link_hash_entry *));
 
   /* If this callback is not NULL, the linker calls it for each reloc.
      RELOC is a pointer to the unswapped reloc.  If *SKIP is set to
-     true, the reloc will be skipped.  *RELOCATION may be changed to
+     TRUE, the reloc will be skipped.  *RELOCATION may be changed to
      change the effects of the relocation.  */
-  boolean (*check_dynamic_reloc)
+  bfd_boolean (*check_dynamic_reloc)
     PARAMS ((struct bfd_link_info *info, bfd *input_bfd,
             asection *input_section, struct aout_link_hash_entry *h,
-            PTR reloc, bfd_byte *contents, boolean *skip,
+            PTR reloc, bfd_byte *contents, bfd_boolean *skip,
             bfd_vma *relocation));
 
   /* Called at the end of a link to finish up any dynamic linking
      information.  */
-  boolean (*finish_dynamic_link)
+  bfd_boolean (*finish_dynamic_link)
     PARAMS ((bfd *, struct bfd_link_info *));
 };
 #define aout_backend_info(abfd) \
@@ -282,10 +282,10 @@ enum machine_type {
   M_68010 = 1,
   M_68020 = 2,
   M_SPARC = 3,
-  /* skip a bunch so we don't run into any of suns numbers */
-  /* make these up for the ns32k*/
-  M_NS32032 = (64),            /* ns32032 running ? */
-  M_NS32532 = (64 + 5),                /* ns32532 running mach */
+  /* Skip a bunch so we don't run into any of SUN's numbers.  */
+  /* Make these up for the ns32k.  */
+  M_NS32032 = (64),    /* ns32032 running ? */
+  M_NS32532 = (64 + 5),        /* ns32532 running mach */
 
   M_386 = 100,
   M_29K = 101,          /* AMD 29000 */
@@ -377,7 +377,7 @@ struct aoutdata {
   struct internal_exec *hdr;           /* exec file header */
   aout_symbol_type *symbols;           /* symtab for input bfd */
 
-  /* For ease, we do this */
+  /* For ease, we do this */
   asection *textsec;
   asection *datasec;
   asection *bsssec;
@@ -387,16 +387,16 @@ struct aoutdata {
   file_ptr sym_filepos;
   file_ptr str_filepos;
 
-  /* Size of a relocation entry in external form */
+  /* Size of a relocation entry in external form */
   unsigned reloc_entry_size;
 
-  /* Size of a symbol table entry in external form */
+  /* Size of a symbol table entry in external form */
   unsigned symbol_entry_size;
 
-  /* Page size - needed for alignment of demand paged files. */
+  /* Page size - needed for alignment of demand paged files.  */
   unsigned long page_size;
 
-  /* Segment size - needed for alignment of demand paged files. */
+  /* Segment size - needed for alignment of demand paged files.  */
   unsigned long segment_size;
 
   /* Zmagic disk block size - need to align the start of the text
@@ -406,7 +406,7 @@ struct aoutdata {
   unsigned exec_bytes_size;
   unsigned vma_adjusted : 1;
 
-  /* used when a bfd supports several highly similar formats */
+  /* Used when a bfd supports several highly similar formats.  */
   enum
     {
       default_format = 0,
@@ -471,7 +471,7 @@ struct  aout_data_struct {
 #define obj_aout_dynamic_info(bfd) (adata(bfd).dynamic_info)
 
 /* We take the address of the first element of an asymbol to ensure that the
-   macro is only ever applied to an asymbol */
+   macro is only ever applied to an asymbol */
 #define aout_symbol(asymbol) ((aout_symbol_type *)(&(asymbol)->the_bfd))
 
 /* Information we keep for each a.out section.  This is currently only
@@ -489,43 +489,43 @@ struct aout_section_data_struct
 #define set_aout_section_data(s,v) \
   ((s)->used_by_bfd = (PTR)&(v)->relocs)
 
-/* Prototype declarations for functions defined in aoutx.h  */
+/* Prototype declarations for functions defined in aoutx.h.  */
 
-extern boolean NAME(aout,squirt_out_relocs)
+extern bfd_boolean NAME(aout,squirt_out_relocs)
   PARAMS ((bfd *, asection *));
 
-extern boolean NAME(aout,make_sections)
+extern bfd_boolean NAME(aout,make_sections)
   PARAMS ((bfd *));
 
 extern const bfd_target * NAME(aout,some_aout_object_p)
   PARAMS ((bfd *, struct internal_exec *, const bfd_target *(*) (bfd *)));
 
-extern boolean NAME(aout,mkobject)
+extern bfd_boolean NAME(aout,mkobject)
   PARAMS ((bfd *));
 
 extern enum machine_type NAME(aout,machine_type)
-  PARAMS ((enum bfd_architecture, unsigned long, boolean *));
+  PARAMS ((enum bfd_architecture, unsigned long, bfd_boolean *));
 
-extern boolean NAME(aout,set_arch_mach)
+extern bfd_boolean NAME(aout,set_arch_mach)
   PARAMS ((bfd *, enum bfd_architecture, unsigned long));
 
-extern boolean NAME(aout,new_section_hook)
+extern bfd_boolean NAME(aout,new_section_hook)
   PARAMS ((bfd *, asection *));
 
-extern boolean NAME(aout,set_section_contents)
+extern bfd_boolean NAME(aout,set_section_contents)
   PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
 
 extern asymbol * NAME(aout,make_empty_symbol)
   PARAMS ((bfd *));
 
-extern boolean NAME(aout,translate_symbol_table)
+extern bfd_boolean NAME(aout,translate_symbol_table)
   PARAMS ((bfd *, aout_symbol_type *, struct external_nlist *, bfd_size_type,
-          char *, bfd_size_type, boolean));
+          char *, bfd_size_type, bfd_boolean));
 
-extern boolean NAME(aout,slurp_symbol_table)
+extern bfd_boolean NAME(aout,slurp_symbol_table)
   PARAMS ((bfd *));
 
-extern boolean NAME(aout,write_syms)
+extern bfd_boolean NAME(aout,write_syms)
   PARAMS ((bfd *));
 
 extern void NAME(aout,reclaim_symbol_table)
@@ -547,7 +547,7 @@ extern void NAME(aout,swap_std_reloc_in)
 extern reloc_howto_type * NAME(aout,reloc_type_lookup)
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 
-extern boolean NAME(aout,slurp_reloc_table)
+extern bfd_boolean NAME(aout,slurp_reloc_table)
   PARAMS ((bfd *, sec_ptr, asymbol **));
 
 extern long NAME(aout,canonicalize_reloc)
@@ -568,20 +568,20 @@ extern void NAME(aout,print_symbol)
 extern void NAME(aout,get_symbol_info)
   PARAMS ((bfd *, asymbol *, symbol_info *));
 
-extern boolean NAME(aout,find_nearest_line)
+extern bfd_boolean NAME(aout,find_nearest_line)
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *));
 
 extern long NAME(aout,read_minisymbols)
-  PARAMS ((bfd *, boolean, PTR *, unsigned int *));
+  PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *));
 
 extern asymbol * NAME(aout,minisymbol_to_symbol)
-  PARAMS ((bfd *, boolean, const PTR, asymbol *));
+  PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *));
 
 extern int NAME(aout,sizeof_headers)
-  PARAMS ((bfd *, boolean));
+  PARAMS ((bfd *, bfd_boolean));
 
-extern boolean NAME(aout,adjust_sizes_and_vmas)
+extern bfd_boolean NAME(aout,adjust_sizes_and_vmas)
   PARAMS ((bfd *, bfd_size_type *, file_ptr *));
 
 extern void NAME(aout,swap_exec_header_in)
@@ -593,7 +593,7 @@ extern void NAME(aout,swap_exec_header_out)
 extern struct bfd_hash_entry * NAME(aout,link_hash_newfunc)
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 
-extern boolean NAME(aout,link_hash_table_init)
+extern bfd_boolean NAME(aout,link_hash_table_init)
   PARAMS ((struct aout_link_hash_table *, bfd *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
@@ -602,17 +602,17 @@ extern boolean NAME(aout,link_hash_table_init)
 extern struct bfd_link_hash_table * NAME(aout,link_hash_table_create)
   PARAMS ((bfd *));
 
-extern boolean NAME(aout,link_add_symbols)
+extern bfd_boolean NAME(aout,link_add_symbols)
   PARAMS ((bfd *, struct bfd_link_info *));
 
-extern boolean NAME(aout,final_link)
+extern bfd_boolean NAME(aout,final_link)
   PARAMS ((bfd *, struct bfd_link_info *,
           void (*) (bfd *, file_ptr *, file_ptr *, file_ptr *)));
 
-extern boolean NAME(aout,bfd_free_cached_info)
+extern bfd_boolean NAME(aout,bfd_free_cached_info)
   PARAMS ((bfd *));
 
-/* A.out uses the generic versions of these routines... */
+/* A.out uses the generic versions of these routines...  */
 
 #define        aout_16_get_section_contents    _bfd_generic_get_section_contents
 
@@ -647,29 +647,48 @@ extern boolean NAME(aout,bfd_free_cached_info)
        if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0                      \
            || bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, \
                          abfd) != EXEC_BYTES_SIZE)                           \
-         return false;                                                       \
-       /* Now write out reloc info, followed by syms and strings */          \
+         return FALSE;                                                       \
+       /* Now write out reloc info, followed by syms and strings.  */        \
                                                                              \
        if (bfd_get_outsymbols (abfd) != (asymbol **) NULL                    \
            && bfd_get_symcount (abfd) != 0)                                  \
          {                                                                   \
            if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET) != 0)\
-             return false;                                                   \
+             return FALSE;                                                   \
                                                                              \
            if (! NAME(aout,write_syms) (abfd))                               \
-             return false;                                                   \
+             return FALSE;                                                   \
          }                                                                   \
                                                                              \
        if (bfd_seek (abfd, (file_ptr) (N_TRELOFF(*execp)), SEEK_SET) != 0)   \
-         return false;                                                       \
+         return FALSE;                                                       \
        if (!NAME(aout,squirt_out_relocs) (abfd, obj_textsec (abfd)))         \
-         return false;                                                       \
+         return FALSE;                                                       \
                                                                              \
        if (bfd_seek (abfd, (file_ptr) (N_DRELOFF(*execp)), SEEK_SET) != 0)   \
-         return false;                                                       \
+         return FALSE;                                                       \
        if (!NAME(aout,squirt_out_relocs) (abfd, obj_datasec (abfd)))         \
-         return false;                                                       \
+         return FALSE;                                                       \
       }
 #endif
 
+/* Test if a read-only section can be merged with .text.  This is
+   possible if:
+
+   1. Section has file contents and is read-only.
+   2. The VMA of the section is after the end of .text and before
+      the start of .data.
+   3. The image is demand-pageable (otherwise, a_text in the header
+      will not reflect the gap between .text and .data).  */
+
+#define aout_section_merge_with_text_p(abfd, sec)                      \
+  (((sec)->flags & (SEC_HAS_CONTENTS | SEC_READONLY)) ==               \
+      (SEC_HAS_CONTENTS | SEC_READONLY)                                        \
+   && obj_textsec (abfd) != NULL                                       \
+   && obj_datasec (abfd) != NULL                                       \
+   && (sec)->vma >= (obj_textsec (abfd)->vma +                         \
+                    obj_textsec (abfd)->_cooked_size)                  \
+   && ((sec)->vma + (sec)->_cooked_size) <= obj_datasec (abfd)->vma    \
+   && ((abfd)->flags & D_PAGED) != 0)
+
 #endif /* ! defined (LIBAOUT_H) */
index 00d5bd3a6b97955b1e3dff34a500d9e3365db5d3..726883cb94370403b3245d76f33e2977b8ce0b62 100644 (file)
@@ -83,70 +83,105 @@ struct areltdata {
 
 #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
 
-extern PTR bfd_malloc PARAMS ((bfd_size_type));
-extern PTR bfd_realloc PARAMS ((PTR, bfd_size_type));
-extern PTR bfd_zmalloc PARAMS ((bfd_size_type));
+extern PTR bfd_malloc
+  PARAMS ((bfd_size_type));
+extern PTR bfd_realloc
+  PARAMS ((PTR, bfd_size_type));
+extern PTR bfd_zmalloc
+  PARAMS ((bfd_size_type));
 
 extern bfd_error_handler_type _bfd_error_handler;
 
 /* These routines allocate and free things on the BFD's objalloc.  */
 
-extern PTR bfd_alloc PARAMS ((bfd *, bfd_size_type));
-extern PTR bfd_zalloc PARAMS ((bfd *, bfd_size_type));
-extern void bfd_release PARAMS ((bfd *, PTR));
-
-bfd *  _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd));
-bfd *  _bfd_look_for_bfd_in_cache PARAMS ((bfd *, file_ptr));
-boolean _bfd_add_bfd_to_archive_cache PARAMS ((bfd *, file_ptr, bfd *));
-boolean        _bfd_generic_mkarchive PARAMS ((bfd *abfd));
-const bfd_target *bfd_generic_archive_p PARAMS ((bfd *abfd));
-boolean        bfd_slurp_armap PARAMS ((bfd *abfd));
-boolean bfd_slurp_bsd_armap_f2 PARAMS ((bfd *abfd));
+extern PTR bfd_alloc
+  PARAMS ((bfd *, bfd_size_type));
+extern PTR bfd_zalloc
+  PARAMS ((bfd *, bfd_size_type));
+extern void bfd_release
+  PARAMS ((bfd *, PTR));
+
+bfd * _bfd_create_empty_archive_element_shell
+  PARAMS ((bfd *obfd));
+bfd * _bfd_look_for_bfd_in_cache
+  PARAMS ((bfd *, file_ptr));
+bfd_boolean _bfd_add_bfd_to_archive_cache
+  PARAMS ((bfd *, file_ptr, bfd *));
+bfd_boolean _bfd_generic_mkarchive
+  PARAMS ((bfd *abfd));
+const bfd_target *bfd_generic_archive_p
+  PARAMS ((bfd *abfd));
+bfd_boolean bfd_slurp_armap
+  PARAMS ((bfd *abfd));
+bfd_boolean bfd_slurp_bsd_armap_f2
+  PARAMS ((bfd *abfd));
 #define bfd_slurp_bsd_armap bfd_slurp_armap
 #define bfd_slurp_coff_armap bfd_slurp_armap
-boolean        _bfd_slurp_extended_name_table PARAMS ((bfd *abfd));
-extern boolean _bfd_construct_extended_name_table
-  PARAMS ((bfd *, boolean, char **, bfd_size_type *));
-boolean        _bfd_write_archive_contents PARAMS ((bfd *abfd));
-boolean _bfd_compute_and_write_armap PARAMS ((bfd *, unsigned int elength));
-bfd *_bfd_get_elt_at_filepos PARAMS ((bfd *archive, file_ptr filepos));
-extern bfd *_bfd_generic_get_elt_at_index PARAMS ((bfd *, symindex));
-bfd * _bfd_new_bfd PARAMS ((void));
-void _bfd_delete_bfd PARAMS ((bfd *));
-
-boolean        bfd_false PARAMS ((bfd *ignore));
-boolean        bfd_true PARAMS ((bfd *ignore));
-PTR    bfd_nullvoidptr PARAMS ((bfd *ignore));
-int    bfd_0 PARAMS ((bfd *ignore));
-unsigned int   bfd_0u PARAMS ((bfd *ignore));
-long   bfd_0l PARAMS ((bfd *ignore));
-long   _bfd_n1 PARAMS ((bfd *ignore));
-void   bfd_void PARAMS ((bfd *ignore));
-
-bfd *_bfd_new_bfd_contained_in PARAMS ((bfd *));
-const bfd_target *_bfd_dummy_target PARAMS ((bfd *abfd));
-
-void   bfd_dont_truncate_arname PARAMS ((bfd *abfd, const char *filename,
-                                       char *hdr));
-void   bfd_bsd_truncate_arname PARAMS ((bfd *abfd, const char *filename,
-                                       char *hdr));
-void   bfd_gnu_truncate_arname PARAMS ((bfd *abfd, const char *filename,
-                                       char *hdr));
-
-boolean        bsd_write_armap PARAMS ((bfd *arch, unsigned int elength,
-                                 struct orl *map, unsigned int orl_count, int stridx));
-
-boolean        coff_write_armap PARAMS ((bfd *arch, unsigned int elength,
-                                  struct orl *map, unsigned int orl_count, int stridx));
-
-extern PTR _bfd_generic_read_ar_hdr PARAMS ((bfd *));
-
-extern PTR _bfd_generic_read_ar_hdr_mag PARAMS ((bfd *, const char *));
-
-bfd *  bfd_generic_openr_next_archived_file PARAMS ((bfd *archive,
-                                                    bfd *last_file));
-
-int    bfd_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
+bfd_boolean _bfd_slurp_extended_name_table
+  PARAMS ((bfd *abfd));
+extern bfd_boolean _bfd_construct_extended_name_table
+  PARAMS ((bfd *, bfd_boolean, char **, bfd_size_type *));
+bfd_boolean _bfd_write_archive_contents
+  PARAMS ((bfd *abfd));
+bfd_boolean _bfd_compute_and_write_armap
+  PARAMS ((bfd *, unsigned int elength));
+bfd *_bfd_get_elt_at_filepos
+  PARAMS ((bfd *archive, file_ptr filepos));
+extern bfd *_bfd_generic_get_elt_at_index
+  PARAMS ((bfd *, symindex));
+bfd * _bfd_new_bfd
+  PARAMS ((void));
+void _bfd_delete_bfd
+  PARAMS ((bfd *));
+
+bfd_boolean bfd_false
+  PARAMS ((bfd *ignore));
+bfd_boolean bfd_true
+  PARAMS ((bfd *ignore));
+PTR bfd_nullvoidptr
+  PARAMS ((bfd *ignore));
+int bfd_0
+  PARAMS ((bfd *ignore));
+unsigned int bfd_0u
+  PARAMS ((bfd *ignore));
+long bfd_0l
+  PARAMS ((bfd *ignore));
+long _bfd_n1
+  PARAMS ((bfd *ignore));
+void bfd_void
+  PARAMS ((bfd *ignore));
+
+bfd *_bfd_new_bfd_contained_in
+  PARAMS ((bfd *));
+const bfd_target *_bfd_dummy_target
+  PARAMS ((bfd *abfd));
+
+void bfd_dont_truncate_arname
+  PARAMS ((bfd *abfd, const char *filename, char *hdr));
+void bfd_bsd_truncate_arname
+  PARAMS ((bfd *abfd, const char *filename, char *hdr));
+void bfd_gnu_truncate_arname
+  PARAMS ((bfd *abfd, const char *filename, char *hdr));
+
+bfd_boolean bsd_write_armap
+  PARAMS ((bfd *arch, unsigned int elength, struct orl *map,
+          unsigned int orl_count, int stridx));
+
+bfd_boolean coff_write_armap
+  PARAMS ((bfd *arch, unsigned int elength, struct orl *map,
+          unsigned int orl_count, int stridx));
+
+extern PTR _bfd_generic_read_ar_hdr
+  PARAMS ((bfd *));
+
+extern PTR _bfd_generic_read_ar_hdr_mag
+  PARAMS ((bfd *, const char *));
+
+bfd * bfd_generic_openr_next_archived_file
+  PARAMS ((bfd *archive, bfd *last_file));
+
+int bfd_generic_stat_arch_elt
+  PARAMS ((bfd *, struct stat *));
 
 #define _bfd_read_ar_hdr(abfd) \
   BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
@@ -157,34 +192,36 @@ int       bfd_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
 #define _bfd_generic_close_and_cleanup bfd_true
 #define _bfd_generic_bfd_free_cached_info bfd_true
 #define _bfd_generic_new_section_hook \
-  ((boolean (*) PARAMS ((bfd *, asection *))) bfd_true)
-extern boolean _bfd_generic_get_section_contents
+  ((bfd_boolean (*) PARAMS ((bfd *, asection *))) bfd_true)
+extern bfd_boolean _bfd_generic_get_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-extern boolean _bfd_generic_get_section_contents_in_window
+extern bfd_boolean _bfd_generic_get_section_contents_in_window
   PARAMS ((bfd *, asection *, bfd_window *, file_ptr, bfd_size_type));
 
 /* Generic routines to use for BFD_JUMP_TABLE_COPY.  Use
    BFD_JUMP_TABLE_COPY (_bfd_generic).  */
 
 #define _bfd_generic_bfd_copy_private_bfd_data \
-  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
 #define _bfd_generic_bfd_merge_private_bfd_data \
-  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
 #define _bfd_generic_bfd_set_private_flags \
-  ((boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
 #define _bfd_generic_bfd_copy_private_section_data \
-  ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
 #define _bfd_generic_bfd_copy_private_symbol_data \
-  ((boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true)
 #define _bfd_generic_bfd_print_private_bfd_data \
-  ((boolean (*) PARAMS ((bfd *, PTR))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, PTR))) bfd_true)
 
 /* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
    support.  Use BFD_JUMP_TABLE_CORE (_bfd_nocore).  */
 
-extern char *_bfd_nocore_core_file_failing_command PARAMS ((bfd *));
-extern int _bfd_nocore_core_file_failing_signal PARAMS ((bfd *));
-extern boolean _bfd_nocore_core_file_matches_executable_p
+extern char *_bfd_nocore_core_file_failing_command
+  PARAMS ((bfd *));
+extern int _bfd_nocore_core_file_failing_signal
+  PARAMS ((bfd *));
+extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
   PARAMS ((bfd *, bfd *));
 
 /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
@@ -193,12 +230,13 @@ extern boolean _bfd_nocore_core_file_matches_executable_p
 #define _bfd_noarchive_slurp_armap bfd_false
 #define _bfd_noarchive_slurp_extended_name_table bfd_false
 #define _bfd_noarchive_construct_extended_name_table \
-  ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
+  ((bfd_boolean (*) \
+    PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
    bfd_false)
 #define _bfd_noarchive_truncate_arname \
   ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void)
 #define _bfd_noarchive_write_armap \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \
    bfd_false)
 #define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr
@@ -215,7 +253,7 @@ extern boolean _bfd_nocore_core_file_matches_executable_p
 #define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap
 #define _bfd_archive_bsd_slurp_extended_name_table \
   _bfd_slurp_extended_name_table
-extern boolean _bfd_archive_bsd_construct_extended_name_table
+extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
   PARAMS ((bfd *, char **, bfd_size_type *, const char **));
 #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
 #define _bfd_archive_bsd_write_armap bsd_write_armap
@@ -225,7 +263,8 @@ extern boolean _bfd_archive_bsd_construct_extended_name_table
 #define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index
 #define _bfd_archive_bsd_generic_stat_arch_elt \
   bfd_generic_stat_arch_elt
-extern boolean _bfd_archive_bsd_update_armap_timestamp PARAMS ((bfd *));
+extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
+  PARAMS ((bfd *));
 
 /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
    archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff).  */
@@ -233,7 +272,7 @@ extern boolean _bfd_archive_bsd_update_armap_timestamp PARAMS ((bfd *));
 #define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap
 #define _bfd_archive_coff_slurp_extended_name_table \
   _bfd_slurp_extended_name_table
-extern boolean _bfd_archive_coff_construct_extended_name_table
+extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
   PARAMS ((bfd *, char **, bfd_size_type *, const char **));
 #define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
 #define _bfd_archive_coff_write_armap coff_write_armap
@@ -257,20 +296,20 @@ extern boolean _bfd_archive_coff_construct_extended_name_table
 #define _bfd_nosymbols_get_symbol_info \
   ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void)
 #define _bfd_nosymbols_bfd_is_local_label_name \
-  ((boolean (*) PARAMS ((bfd *, const char *))) bfd_false)
+  ((bfd_boolean (*) PARAMS ((bfd *, const char *))) bfd_false)
 #define _bfd_nosymbols_get_lineno \
   ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr)
 #define _bfd_nosymbols_find_nearest_line \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \
             const char **, unsigned int *))) \
    bfd_false)
 #define _bfd_nosymbols_bfd_make_debug_symbol \
   ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr)
 #define _bfd_nosymbols_read_minisymbols \
-  ((long (*) PARAMS ((bfd *, boolean, PTR *, unsigned int *))) _bfd_n1)
+  ((long (*) PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *))) _bfd_n1)
 #define _bfd_nosymbols_minisymbol_to_symbol \
-  ((asymbol *(*) PARAMS ((bfd *, boolean, const PTR, asymbol *))) \
+  ((asymbol *(*) PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *))) \
    bfd_nullvoidptr)
 
 /* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
@@ -288,42 +327,43 @@ extern boolean _bfd_archive_coff_construct_extended_name_table
    be written.  Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite).  */
 
 #define _bfd_nowrite_set_arch_mach \
-  ((boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \
+  ((bfd_boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \
    bfd_false)
 #define _bfd_nowrite_set_section_contents \
-  ((boolean (*) PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \
+  ((bfd_boolean (*) \
+   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \
    bfd_false)
 
 /* Generic routines to use for BFD_JUMP_TABLE_WRITE.  Use
    BFD_JUMP_TABLE_WRITE (_bfd_generic).  */
 
 #define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
-extern boolean _bfd_generic_set_section_contents
+extern bfd_boolean _bfd_generic_set_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
 
 /* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
    support linking.  Use BFD_JUMP_TABLE_LINK (_bfd_nolink).  */
 
-#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, boolean))) bfd_0)
+#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, bfd_boolean))) bfd_0)
 #define _bfd_nolink_bfd_get_relocated_section_contents \
   ((bfd_byte *(*) \
     PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \
-            bfd_byte *, boolean, asymbol **))) \
+            bfd_byte *, bfd_boolean, asymbol **))) \
    bfd_nullvoidptr)
 #define _bfd_nolink_bfd_relax_section \
-  ((boolean (*) \
-    PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *))) \
+  ((bfd_boolean (*) \
+    PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *))) \
    bfd_false)
 #define _bfd_nolink_bfd_gc_sections \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, struct bfd_link_info *))) \
    bfd_false)
 #define _bfd_nolink_bfd_merge_sections \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, struct bfd_link_info *))) \
    bfd_false)
 #define _bfd_nolink_bfd_discard_group \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, struct sec *))) \
    bfd_false)
 #define _bfd_nolink_bfd_link_hash_table_create \
@@ -331,13 +371,13 @@ extern boolean _bfd_generic_set_section_contents
 #define _bfd_nolink_bfd_link_hash_table_free \
   ((void (*) PARAMS ((struct bfd_link_hash_table *))) bfd_void)
 #define _bfd_nolink_bfd_link_add_symbols \
-  ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
+  ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
 #define _bfd_nolink_bfd_link_just_syms \
   ((void (*) PARAMS ((asection *, struct bfd_link_info *))) bfd_void)
 #define _bfd_nolink_bfd_final_link \
-  ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
+  ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
 #define _bfd_nolink_bfd_link_split_section \
-  ((boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false)
+  ((bfd_boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false)
 
 /* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
    have dynamic symbols or relocs.  Use BFD_JUMP_TABLE_DYNAMIC
@@ -352,26 +392,27 @@ extern boolean _bfd_generic_set_section_contents
 \f
 /* Generic routine to determine of the given symbol is a local
    label.  */
-extern boolean bfd_generic_is_local_label_name PARAMS ((bfd *, const char *));
+extern bfd_boolean bfd_generic_is_local_label_name
+  PARAMS ((bfd *, const char *));
 
 /* Generic minisymbol routines.  */
 extern long _bfd_generic_read_minisymbols
-  PARAMS ((bfd *, boolean, PTR *, unsigned int *));
+  PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *));
 extern asymbol *_bfd_generic_minisymbol_to_symbol
-  PARAMS ((bfd *, boolean, const PTR, asymbol *));
+  PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *));
 
 /* Find the nearest line using .stab/.stabstr sections.  */
-extern boolean _bfd_stab_section_find_nearest_line
-  PARAMS ((bfd *, asymbol **, asection *, bfd_vma, boolean *, const char **,
-          const char **, unsigned int *, PTR *));
+extern bfd_boolean _bfd_stab_section_find_nearest_line
+  PARAMS ((bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
+          const char **, const char **, unsigned int *, PTR *));
 
 /* Find the neaderst line using DWARF 1 debugging information.  */
-extern boolean _bfd_dwarf1_find_nearest_line
+extern bfd_boolean _bfd_dwarf1_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *));
 
 /* Find the nearest line using DWARF 2 debugging information.  */
-extern boolean _bfd_dwarf2_find_nearest_line
+extern bfd_boolean _bfd_dwarf2_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *, unsigned int,
           PTR *));
@@ -387,7 +428,7 @@ extern struct bfd_hash_entry *_bfd_link_hash_newfunc
           const char *string));
 
 /* Initialize a bfd_link_hash_table.  */
-extern boolean _bfd_link_hash_table_init
+extern bfd_boolean _bfd_link_hash_table_init
   PARAMS ((struct bfd_link_hash_table *, bfd *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
@@ -402,47 +443,47 @@ extern void _bfd_generic_link_hash_table_free
   PARAMS ((struct bfd_link_hash_table *));
 
 /* Generic add symbol routine.  */
-extern boolean _bfd_generic_link_add_symbols
+extern bfd_boolean _bfd_generic_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Generic add symbol routine.  This version is used by targets for
    which the linker must collect constructors and destructors by name,
    as the collect2 program does.  */
-extern boolean _bfd_generic_link_add_symbols_collect
+extern bfd_boolean _bfd_generic_link_add_symbols_collect
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Generic archive add symbol routine.  */
-extern boolean _bfd_generic_link_add_archive_symbols
+extern bfd_boolean _bfd_generic_link_add_archive_symbols
   PARAMS ((bfd *, struct bfd_link_info *,
-          boolean (*checkfn) (bfd *, struct bfd_link_info *, boolean *)));
+          bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *)));
 
 /* Forward declaration to avoid prototype errors.  */
 typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
 
 /* Generic routine to add a single symbol.  */
-extern boolean _bfd_generic_link_add_one_symbol
+extern bfd_boolean _bfd_generic_link_add_one_symbol
   PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword,
-          asection *, bfd_vma, const char *, boolean copy,
-          boolean constructor, struct bfd_link_hash_entry **));
+          asection *, bfd_vma, const char *, bfd_boolean copy,
+          bfd_boolean constructor, struct bfd_link_hash_entry **));
 
 /* Generic routine to mark section as supplying symbols only.  */
 extern void _bfd_generic_link_just_syms
   PARAMS ((asection *, struct bfd_link_info *));
 
 /* Generic link routine.  */
-extern boolean _bfd_generic_final_link
+extern bfd_boolean _bfd_generic_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
-extern boolean _bfd_generic_link_split_section
+extern bfd_boolean _bfd_generic_link_split_section
   PARAMS ((bfd *, struct sec *));
 
 /* Generic reloc_link_order processing routine.  */
-extern boolean _bfd_generic_reloc_link_order
+extern bfd_boolean _bfd_generic_reloc_link_order
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           struct bfd_link_order *));
 
 /* Default link order processing routine.  */
-extern boolean _bfd_default_link_order
+extern bfd_boolean _bfd_default_link_order
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           struct bfd_link_order *));
 
@@ -461,22 +502,23 @@ extern bfd_reloc_status_type _bfd_relocate_contents
 
 /* Link stabs in sections in the first pass.  */
 
-extern boolean _bfd_link_section_stabs
+extern bfd_boolean _bfd_link_section_stabs
   PARAMS ((bfd *, PTR *, asection *, asection *, PTR *));
 
 /* Eliminate stabs for discarded functions and symbols.  */
-extern boolean _bfd_discard_section_stabs
+extern bfd_boolean _bfd_discard_section_stabs
   PARAMS ((bfd *, asection *, PTR,
-          boolean (*) (bfd_vma, PTR), PTR));
+          bfd_boolean (*) (bfd_vma, PTR), PTR));
 
 /* Write out the .stab section when linking stabs in sections.  */
 
-extern boolean _bfd_write_section_stabs
+extern bfd_boolean _bfd_write_section_stabs
   PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *));
 
 /* Write out the .stabstr string table when linking stabs in sections.  */
 
-extern boolean _bfd_write_stab_strings PARAMS ((bfd *, PTR *));
+extern bfd_boolean _bfd_write_stab_strings
+  PARAMS ((bfd *, PTR *));
 
 /* Find an offset within a .stab section when linking stabs in
    sections.  */
@@ -486,17 +528,17 @@ extern bfd_vma _bfd_stab_section_offset
 
 /* Attempt to merge a SEC_MERGE section.  */
 
-extern boolean _bfd_merge_section
+extern bfd_boolean _bfd_merge_section
   PARAMS ((bfd *, PTR *, asection *, PTR *));
 
 /* Attempt to merge SEC_MERGE sections.  */
 
-extern boolean _bfd_merge_sections
+extern bfd_boolean _bfd_merge_sections
   PARAMS ((bfd *, PTR, void (*)(bfd *, asection *)));
 
 /* Write out a merged section.  */
 
-extern boolean _bfd_write_merged_section
+extern bfd_boolean _bfd_write_merged_section
   PARAMS ((bfd *, asection *, PTR));
 
 /* Find an offset within a modified SEC_MERGE section.  */
@@ -505,27 +547,33 @@ extern bfd_vma _bfd_merged_section_offset
   PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma));
 
 /* Create a string table.  */
-extern struct bfd_strtab_hash *_bfd_stringtab_init PARAMS ((void));
+extern struct bfd_strtab_hash *_bfd_stringtab_init
+  PARAMS ((void));
 
 /* Create an XCOFF .debug section style string table.  */
-extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init PARAMS ((void));
+extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
+  PARAMS ((void));
 
 /* Free a string table.  */
-extern void _bfd_stringtab_free PARAMS ((struct bfd_strtab_hash *));
+extern void _bfd_stringtab_free
+  PARAMS ((struct bfd_strtab_hash *));
 
 /* Get the size of a string table.  */
-extern bfd_size_type _bfd_stringtab_size PARAMS ((struct bfd_strtab_hash *));
+extern bfd_size_type _bfd_stringtab_size
+  PARAMS ((struct bfd_strtab_hash *));
 
 /* Add a string to a string table.  */
 extern bfd_size_type _bfd_stringtab_add
-  PARAMS ((struct bfd_strtab_hash *, const char *, boolean hash,
-          boolean copy));
+  PARAMS ((struct bfd_strtab_hash *, const char *, bfd_boolean hash,
+          bfd_boolean copy));
 
 /* Write out a string table.  */
-extern boolean _bfd_stringtab_emit PARAMS ((bfd *, struct bfd_strtab_hash *));
+extern bfd_boolean _bfd_stringtab_emit
+  PARAMS ((bfd *, struct bfd_strtab_hash *));
 
 /* Check that endianness of input and output file match.  */
-extern boolean _bfd_generic_verify_endian_match PARAMS ((bfd *, bfd *));
+extern bfd_boolean _bfd_generic_verify_endian_match
+  PARAMS ((bfd *, bfd *));
 \f
 /* Macros to tell if bfds are read or write enabled.
 
@@ -539,7 +587,8 @@ extern boolean _bfd_generic_verify_endian_match PARAMS ((bfd *, bfd *));
 #define        bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
 #define        bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
 
-void   bfd_assert PARAMS ((const char*,int));
+void bfd_assert
+  PARAMS ((const char*,int));
 
 #define BFD_ASSERT(x) \
 { if (!(x)) bfd_assert(__FILE__,__LINE__); }
@@ -547,8 +596,8 @@ void        bfd_assert PARAMS ((const char*,int));
 #define BFD_FAIL() \
 { bfd_assert(__FILE__,__LINE__); }
 
-extern void _bfd_abort PARAMS ((const char *, int, const char *))
-     ATTRIBUTE_NORETURN;
+extern void _bfd_abort
+  PARAMS ((const char *, int, const char *)) ATTRIBUTE_NORETURN;
 
 /* if gcc >= 2.6, we can give a function name, too */
 #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
@@ -558,7 +607,8 @@ extern void _bfd_abort PARAMS ((const char *, int, const char *))
 #undef abort
 #define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
 
-FILE * bfd_cache_lookup_worker PARAMS ((bfd *));
+FILE * bfd_cache_lookup_worker
+  PARAMS ((bfd *));
 
 extern bfd *bfd_last_cache;
 
@@ -577,22 +627,27 @@ extern const bfd_target * const *bfd_associated_vector;
 struct ecoff_find_line;
 #endif
 
-extern boolean _bfd_ecoff_locate_line
+extern bfd_boolean _bfd_ecoff_locate_line
   PARAMS ((bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
           const struct ecoff_debug_swap * const, struct ecoff_find_line *,
           const char **, const char **, unsigned int *));
-extern boolean _bfd_ecoff_get_accumulated_pdr PARAMS ((PTR, bfd_byte *));
-extern boolean _bfd_ecoff_get_accumulated_sym PARAMS ((PTR, bfd_byte *));
-extern boolean _bfd_ecoff_get_accumulated_ss PARAMS ((PTR, bfd_byte *));
-
-extern bfd_vma _bfd_get_gp_value PARAMS ((bfd *));
-extern void _bfd_set_gp_value PARAMS ((bfd *, bfd_vma));
+extern bfd_boolean _bfd_ecoff_get_accumulated_pdr
+  PARAMS ((PTR, bfd_byte *));
+extern bfd_boolean _bfd_ecoff_get_accumulated_sym
+  PARAMS ((PTR, bfd_byte *));
+extern bfd_boolean _bfd_ecoff_get_accumulated_ss
+  PARAMS ((PTR, bfd_byte *));
+
+extern bfd_vma _bfd_get_gp_value
+  PARAMS ((bfd *));
+extern void _bfd_set_gp_value
+  PARAMS ((bfd *, bfd_vma));
 
 /* Function shared by the COFF and ELF SH backends, which have no
    other common header files.  */
 
-extern boolean _bfd_sh_align_load_span
+extern bfd_boolean _bfd_sh_align_load_span
   PARAMS ((bfd *, asection *, bfd_byte *,
-          boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
-          PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *));
+          bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
+          PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *));
 
index f21abbcd6ce9e86eef7ee6aaa098a4ef7d5458c8..da93831e6db526e10daa1a4969db311e6c755868 100644 (file)
@@ -28,8 +28,6 @@
 #define getpagesize() 2048
 #endif
 
-static size_t real_read PARAMS ((PTR, size_t, size_t, FILE *));
-
 /*
 SECTION
        Internal functions
@@ -43,22 +41,22 @@ DESCRIPTION
 /* A routine which is used in target vectors for unsupported
    operations.  */
 
-boolean
+bfd_boolean
 bfd_false (ignore)
      bfd *ignore ATTRIBUTE_UNUSED;
 {
   bfd_set_error (bfd_error_invalid_operation);
-  return false;
+  return FALSE;
 }
 
 /* A routine which is used in target vectors for supported operations
    which do not actually do anything.  */
 
-boolean
+bfd_boolean
 bfd_true (ignore)
      bfd *ignore ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* A routine which is used in target vectors for unsupported
@@ -110,13 +108,13 @@ bfd_void (ignore)
 {
 }
 
-boolean
+bfd_boolean
 _bfd_nocore_core_file_matches_executable_p (ignore_core_bfd, ignore_exec_bfd)
      bfd *ignore_core_bfd ATTRIBUTE_UNUSED;
      bfd *ignore_exec_bfd ATTRIBUTE_UNUSED;
 {
   bfd_set_error (bfd_error_invalid_operation);
-  return false;
+  return FALSE;
 }
 
 /* Routine to handle core_file_failing_command entry point for targets
@@ -222,378 +220,12 @@ bfd_zmalloc (size)
 
   return ptr;
 }
-\f
-/* Some IO code */
-
-/* Note that archive entries don't have streams; they share their parent's.
-   This allows someone to play with the iostream behind BFD's back.
-
-   Also, note that the origin pointer points to the beginning of a file's
-   contents (0 for non-archive elements).  For archive entries this is the
-   first octet in the file, NOT the beginning of the archive header.  */
-
-static size_t
-real_read (where, a, b, file)
-     PTR where;
-     size_t a;
-     size_t b;
-     FILE *file;
-{
-  /* FIXME - this looks like an optimization, but it's really to cover
-     up for a feature of some OSs (not solaris - sigh) that
-     ld/pe-dll.c takes advantage of (apparently) when it creates BFDs
-     internally and tries to link against them.  BFD seems to be smart
-     enough to realize there are no symbol records in the "file" that
-     doesn't exist but attempts to read them anyway.  On Solaris,
-     attempting to read zero bytes from a NULL file results in a core
-     dump, but on other platforms it just returns zero bytes read.
-     This makes it to something reasonable. - DJ */
-  if (a == 0 || b == 0)
-    return 0;
-
-
-#if defined (__VAX) && defined (VMS)
-  /* Apparently fread on Vax VMS does not keep the record length
-     information.  */
-  return read (fileno (file), where, a * b);
-#else
-  return fread (where, a, b, file);
-#endif
-}
-
-/* Return value is amount read.  */
-
-bfd_size_type
-bfd_bread (ptr, size, abfd)
-     PTR ptr;
-     bfd_size_type size;
-     bfd *abfd;
-{
-  size_t nread;
-
-  if ((abfd->flags & BFD_IN_MEMORY) != 0)
-    {
-      struct bfd_in_memory *bim;
-      bfd_size_type get;
-
-      bim = (struct bfd_in_memory *) abfd->iostream;
-      get = size;
-      if (abfd->where + get > bim->size)
-       {
-         if (bim->size < (bfd_size_type) abfd->where)
-           get = 0;
-         else
-           get = bim->size - abfd->where;
-         bfd_set_error (bfd_error_file_truncated);
-       }
-      memcpy (ptr, bim->buffer + abfd->where, (size_t) get);
-      abfd->where += get;
-      return get;
-    }
-
-  nread = real_read (ptr, 1, (size_t) size, bfd_cache_lookup (abfd));
-  if (nread != (size_t) -1)
-    abfd->where += nread;
-
-  /* Set bfd_error if we did not read as much data as we expected.
-
-     If the read failed due to an error set the bfd_error_system_call,
-     else set bfd_error_file_truncated.
-
-     A BFD backend may wish to override bfd_error_file_truncated to
-     provide something more useful (eg. no_symbols or wrong_format).  */
-  if (nread != size)
-    {
-      if (ferror (bfd_cache_lookup (abfd)))
-       bfd_set_error (bfd_error_system_call);
-      else
-       bfd_set_error (bfd_error_file_truncated);
-    }
-
-  return nread;
-}
-
-/* The window support stuff should probably be broken out into
-   another file....  */
-/* The idea behind the next and refcount fields is that one mapped
-   region can suffice for multiple read-only windows or multiple
-   non-overlapping read-write windows.  It's not implemented yet
-   though.  */
-struct _bfd_window_internal {
-  struct _bfd_window_internal *next;
-  PTR data;
-  bfd_size_type size;
-  int refcount : 31;           /* should be enough...  */
-  unsigned mapped : 1;         /* 1 = mmap, 0 = malloc */
-};
-
-void
-bfd_init_window (windowp)
-     bfd_window *windowp;
-{
-  windowp->data = 0;
-  windowp->i = 0;
-  windowp->size = 0;
-}
-\f
-/* Currently, if USE_MMAP is undefined, none if the window stuff is
-   used.  Okay, so it's mis-named.  At least the command-line option
-   "--without-mmap" is more obvious than "--without-windows" or some
-   such.  */
-#ifdef USE_MMAP
-
-#undef HAVE_MPROTECT /* code's not tested yet */
-
-#if HAVE_MMAP || HAVE_MPROTECT || HAVE_MADVISE
-#include <sys/mman.h>
-#endif
-
-#ifndef MAP_FILE
-#define MAP_FILE 0
-#endif
-
-static int debug_windows;
-
-void
-bfd_free_window (windowp)
-     bfd_window *windowp;
-{
-  bfd_window_internal *i = windowp->i;
-  windowp->i = 0;
-  windowp->data = 0;
-  if (i == 0)
-    return;
-  i->refcount--;
-  if (debug_windows)
-    fprintf (stderr, "freeing window @%p<%p,%lx,%p>\n",
-            windowp, windowp->data, windowp->size, windowp->i);
-  if (i->refcount != 0)
-    return;
-
-  if (i->mapped)
-    {
-#ifdef HAVE_MMAP
-      munmap (i->data, i->size);
-      goto no_free;
-#else
-      abort ();
-#endif
-    }
-#ifdef HAVE_MPROTECT
-  mprotect (i->data, i->size, PROT_READ | PROT_WRITE);
-#endif
-  free (i->data);
-#ifdef HAVE_MMAP
- no_free:
-#endif
-  i->data = 0;
-  /* There should be no more references to i at this point.  */
-  free (i);
-}
-
-static int ok_to_map = 1;
-
-boolean
-bfd_get_file_window (abfd, offset, size, windowp, writable)
-     bfd *abfd;
-     file_ptr offset;
-     bfd_size_type size;
-     bfd_window *windowp;
-     boolean writable;
-{
-  static size_t pagesize;
-  bfd_window_internal *i = windowp->i;
-  bfd_size_type size_to_alloc = size;
-
-  if (debug_windows)
-    fprintf (stderr, "bfd_get_file_window (%p, %6ld, %6ld, %p<%p,%lx,%p>, %d)",
-            abfd, (long) offset, (long) size,
-            windowp, windowp->data, (unsigned long) windowp->size,
-            windowp->i, writable);
-
-  /* Make sure we know the page size, so we can be friendly to mmap.  */
-  if (pagesize == 0)
-    pagesize = getpagesize ();
-  if (pagesize == 0)
-    abort ();
-
-  if (i == 0)
-    {
-      i = ((bfd_window_internal *)
-          bfd_zmalloc ((bfd_size_type) sizeof (bfd_window_internal)));
-      windowp->i = i;
-      if (i == 0)
-       return false;
-      i->data = 0;
-    }
-#ifdef HAVE_MMAP
-  if (ok_to_map
-      && (i->data == 0 || i->mapped == 1)
-      && (abfd->flags & BFD_IN_MEMORY) == 0)
-    {
-      file_ptr file_offset, offset2;
-      size_t real_size;
-      int fd;
-      FILE *f;
-
-      /* Find the real file and the real offset into it.  */
-      while (abfd->my_archive != NULL)
-       {
-         offset += abfd->origin;
-         abfd = abfd->my_archive;
-       }
-      f = bfd_cache_lookup (abfd);
-      fd = fileno (f);
-
-      /* Compute offsets and size for mmap and for the user's data.  */
-      offset2 = offset % pagesize;
-      if (offset2 < 0)
-       abort ();
-      file_offset = offset - offset2;
-      real_size = offset + size - file_offset;
-      real_size = real_size + pagesize - 1;
-      real_size -= real_size % pagesize;
-
-      /* If we're re-using a memory region, make sure it's big enough.  */
-      if (i->data && i->size < size)
-       {
-         munmap (i->data, i->size);
-         i->data = 0;
-       }
-      i->data = mmap (i->data, real_size,
-                     writable ? PROT_WRITE | PROT_READ : PROT_READ,
-                     (writable
-                      ? MAP_FILE | MAP_PRIVATE
-                      : MAP_FILE | MAP_SHARED),
-                     fd, file_offset);
-      if (i->data == (PTR) -1)
-       {
-         /* An error happened.  Report it, or try using malloc, or
-            something.  */
-         bfd_set_error (bfd_error_system_call);
-         i->data = 0;
-         windowp->data = 0;
-         if (debug_windows)
-           fprintf (stderr, "\t\tmmap failed!\n");
-         return false;
-       }
-      if (debug_windows)
-       fprintf (stderr, "\n\tmapped %ld at %p, offset is %ld\n",
-                (long) real_size, i->data, (long) offset2);
-      i->size = real_size;
-      windowp->data = (PTR) ((bfd_byte *) i->data + offset2);
-      windowp->size = size;
-      i->mapped = 1;
-      return true;
-    }
-  else if (debug_windows)
-    {
-      if (ok_to_map)
-       fprintf (stderr, _("not mapping: data=%lx mapped=%d\n"),
-                (unsigned long) i->data, (int) i->mapped);
-      else
-       fprintf (stderr, _("not mapping: env var not set\n"));
-    }
-#else
-  ok_to_map = 0;
-#endif
-
-#ifdef HAVE_MPROTECT
-  if (!writable)
-    {
-      size_to_alloc += pagesize - 1;
-      size_to_alloc -= size_to_alloc % pagesize;
-    }
-#endif
-  if (debug_windows)
-    fprintf (stderr, "\n\t%s(%6ld)",
-            i->data ? "realloc" : " malloc", (long) size_to_alloc);
-  i->data = (PTR) bfd_realloc (i->data, size_to_alloc);
-  if (debug_windows)
-    fprintf (stderr, "\t-> %p\n", i->data);
-  i->refcount = 1;
-  if (i->data == NULL)
-    {
-      if (size_to_alloc == 0)
-       return true;
-      return false;
-    }
-  if (bfd_seek (abfd, offset, SEEK_SET) != 0)
-    return false;
-  i->size = bfd_bread (i->data, size, abfd);
-  if (i->size != size)
-    return false;
-  i->mapped = 0;
-#ifdef HAVE_MPROTECT
-  if (!writable)
-    {
-      if (debug_windows)
-       fprintf (stderr, "\tmprotect (%p, %ld, PROT_READ)\n", i->data,
-                (long) i->size);
-      mprotect (i->data, i->size, PROT_READ);
-    }
-#endif
-  windowp->data = i->data;
-  windowp->size = i->size;
-  return true;
-}
-
-#endif /* USE_MMAP */
-\f
-bfd_size_type
-bfd_bwrite (ptr, size, abfd)
-     const PTR ptr;
-     bfd_size_type size;
-     bfd *abfd;
-{
-  size_t nwrote;
-
-  if ((abfd->flags & BFD_IN_MEMORY) != 0)
-    {
-      struct bfd_in_memory *bim = (struct bfd_in_memory *) (abfd->iostream);
-      size = (size_t) size;
-      if (abfd->where + size > bim->size)
-       {
-         bfd_size_type newsize, oldsize;
-
-         oldsize = (bim->size + 127) & ~(bfd_size_type) 127;
-         bim->size = abfd->where + size;
-         /* Round up to cut down on memory fragmentation */
-         newsize = (bim->size + 127) & ~(bfd_size_type) 127;
-         if (newsize > oldsize)
-           {
-             bim->buffer = (bfd_byte *) bfd_realloc (bim->buffer, newsize);
-             if (bim->buffer == 0)
-               {
-                 bim->size = 0;
-                 return 0;
-               }
-           }
-       }
-      memcpy (bim->buffer + abfd->where, ptr, (size_t) size);
-      abfd->where += size;
-      return size;
-    }
-
-  nwrote = fwrite (ptr, 1, (size_t) size, bfd_cache_lookup (abfd));
-  if (nwrote != (size_t) -1)
-    abfd->where += nwrote;
-  if (nwrote != size)
-    {
-#ifdef ENOSPC
-      errno = ENOSPC;
-#endif
-      bfd_set_error (bfd_error_system_call);
-    }
-  return nwrote;
-}
-
 /*
 INTERNAL_FUNCTION
        bfd_write_bigendian_4byte_int
 
 SYNOPSIS
-       boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
+       bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
 
 DESCRIPTION
        Write a 4 byte integer @var{i} to the output BFD @var{abfd}, in big
@@ -601,196 +233,16 @@ DESCRIPTION
        archives.
 
 */
-boolean
+bfd_boolean
 bfd_write_bigendian_4byte_int (abfd, i)
      bfd *abfd;
      unsigned int i;
 {
   bfd_byte buffer[4];
   bfd_putb32 ((bfd_vma) i, buffer);
-  return (boolean) (bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) == 4);
-}
-
-bfd_vma
-bfd_tell (abfd)
-     bfd *abfd;
-{
-  file_ptr ptr;
-
-  if ((abfd->flags & BFD_IN_MEMORY) != 0)
-    return abfd->where;
-
-  ptr = ftell (bfd_cache_lookup (abfd));
-
-  if (abfd->my_archive)
-    ptr -= abfd->origin;
-  abfd->where = ptr;
-  return ptr;
+  return bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) == 4;
 }
 
-int
-bfd_flush (abfd)
-     bfd *abfd;
-{
-  if ((abfd->flags & BFD_IN_MEMORY) != 0)
-    return 0;
-  return fflush (bfd_cache_lookup(abfd));
-}
-
-/* Returns 0 for success, negative value for failure (in which case
-   bfd_get_error can retrieve the error code).  */
-int
-bfd_stat (abfd, statbuf)
-     bfd *abfd;
-     struct stat *statbuf;
-{
-  FILE *f;
-  int result;
-
-  if ((abfd->flags & BFD_IN_MEMORY) != 0)
-    abort ();
-
-  f = bfd_cache_lookup (abfd);
-  if (f == NULL)
-    {
-      bfd_set_error (bfd_error_system_call);
-      return -1;
-    }
-  result = fstat (fileno (f), statbuf);
-  if (result < 0)
-    bfd_set_error (bfd_error_system_call);
-  return result;
-}
-
-/* Returns 0 for success, nonzero for failure (in which case bfd_get_error
-   can retrieve the error code).  */
-
-int
-bfd_seek (abfd, position, direction)
-     bfd *abfd;
-     file_ptr position;
-     int direction;
-{
-  int result;
-  FILE *f;
-  long file_position;
-  /* For the time being, a BFD may not seek to it's end.  The problem
-     is that we don't easily have a way to recognize the end of an
-     element in an archive.  */
-
-  BFD_ASSERT (direction == SEEK_SET || direction == SEEK_CUR);
-
-  if (direction == SEEK_CUR && position == 0)
-    return 0;
-
-  if ((abfd->flags & BFD_IN_MEMORY) != 0)
-    {
-      struct bfd_in_memory *bim;
-
-      bim = (struct bfd_in_memory *) abfd->iostream;
-
-      if (direction == SEEK_SET)
-       abfd->where = position;
-      else
-       abfd->where += position;
-
-      if (abfd->where > bim->size)
-       {
-         if ((abfd->direction == write_direction) ||
-             (abfd->direction == both_direction))
-           {
-             bfd_size_type newsize, oldsize;
-             oldsize = (bim->size + 127) & ~(bfd_size_type) 127;
-             bim->size = abfd->where;
-             /* Round up to cut down on memory fragmentation */
-             newsize = (bim->size + 127) & ~(bfd_size_type) 127;
-             if (newsize > oldsize)
-               {
-                 bim->buffer = (bfd_byte *) bfd_realloc (bim->buffer, newsize);
-                 if (bim->buffer == 0)
-                   {
-                     bim->size = 0;
-                     return -1;
-                   }
-               }
-           }
-         else
-           {
-             abfd->where = bim->size;
-             bfd_set_error (bfd_error_file_truncated);
-             return -1;
-           }
-       }
-      return 0;
-    }
-
-  if (abfd->format != bfd_archive && abfd->my_archive == 0)
-    {
-#if 0
-      /* Explanation for this code: I'm only about 95+% sure that the above
-        conditions are sufficient and that all i/o calls are properly
-        adjusting the `where' field.  So this is sort of an `assert'
-        that the `where' field is correct.  If we can go a while without
-        tripping the abort, we can probably safely disable this code,
-        so that the real optimizations happen.  */
-      file_ptr where_am_i_now;
-      where_am_i_now = ftell (bfd_cache_lookup (abfd));
-      if (abfd->my_archive)
-       where_am_i_now -= abfd->origin;
-      if (where_am_i_now != abfd->where)
-       abort ();
-#endif
-      if (direction == SEEK_SET && (bfd_vma) position == abfd->where)
-       return 0;
-    }
-  else
-    {
-      /* We need something smarter to optimize access to archives.
-        Currently, anything inside an archive is read via the file
-        handle for the archive.  Which means that a bfd_seek on one
-        component affects the `current position' in the archive, as
-        well as in any other component.
-
-        It might be sufficient to put a spike through the cache
-        abstraction, and look to the archive for the file position,
-        but I think we should try for something cleaner.
-
-        In the meantime, no optimization for archives.  */
-    }
-
-  f = bfd_cache_lookup (abfd);
-  file_position = position;
-  if (direction == SEEK_SET && abfd->my_archive != NULL)
-    file_position += abfd->origin;
-
-  result = fseek (f, file_position, direction);
-  if (result != 0)
-    {
-      int hold_errno = errno;
-
-      /* Force redetermination of `where' field.  */
-      bfd_tell (abfd);
-
-      /* An EINVAL error probably means that the file offset was
-         absurd.  */
-      if (hold_errno == EINVAL)
-       bfd_set_error (bfd_error_file_truncated);
-      else
-       {
-         bfd_set_error (bfd_error_system_call);
-         errno = hold_errno;
-       }
-    }
-  else
-    {
-      /* Adjust `where' field.  */
-      if (direction == SEEK_SET)
-       abfd->where = position;
-      else
-       abfd->where += position;
-    }
-  return result;
-}
 \f
 /** The do-it-yourself (byte) sex-change kit */
 
@@ -1247,7 +699,7 @@ bfd_put_bits (data, addr, bits, big_p)
      bfd_vma data;
      bfd_byte *addr;
      int bits;
-     boolean big_p;
+     bfd_boolean big_p;
 {
   int i;
   int bytes;
@@ -1269,7 +721,7 @@ bfd_vma
 bfd_get_bits (addr, bits, big_p)
      bfd_byte *addr;
      int bits;
-     boolean big_p;
+     bfd_boolean big_p;
 {
   bfd_vma data;
   int i;
@@ -1292,7 +744,7 @@ bfd_get_bits (addr, bits, big_p)
 \f
 /* Default implementation */
 
-boolean
+bfd_boolean
 _bfd_generic_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -1301,22 +753,22 @@ _bfd_generic_get_section_contents (abfd, section, location, offset, count)
      bfd_size_type count;
 {
   if (count == 0)
-    return true;
+    return TRUE;
 
   if (offset + count > section->_raw_size)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
       || bfd_bread (location, count, abfd) != count)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 _bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count)
      bfd *abfd ATTRIBUTE_UNUSED;
      sec_ptr section ATTRIBUTE_UNUSED;
@@ -1326,7 +778,7 @@ _bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count)
 {
 #ifdef USE_MMAP
   if (count == 0)
-    return true;
+    return TRUE;
   if (abfd->xvec->_bfd_get_section_contents != _bfd_generic_get_section_contents)
     {
       /* We don't know what changes the bfd's get_section_contents
@@ -1338,13 +790,13 @@ _bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count)
       w->i = ((bfd_window_internal *)
              bfd_zmalloc ((bfd_size_type) sizeof (bfd_window_internal)));
       if (w->i == NULL)
-       return false;
+       return FALSE;
       w->i->data = (PTR) bfd_malloc (count);
       if (w->i->data == NULL)
        {
          free (w->i);
          w->i = NULL;
-         return false;
+         return FALSE;
        }
       w->i->mapped = 0;
       w->i->refcount = 1;
@@ -1354,9 +806,9 @@ _bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count)
     }
   if (offset + count > section->_raw_size
       || ! bfd_get_file_window (abfd, section->filepos + offset, count, w,
-                               true))
-    return false;
-  return true;
+                               TRUE))
+    return FALSE;
+  return TRUE;
 #else
   abort ();
 #endif
@@ -1366,7 +818,7 @@ _bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count)
    NEW sections is disallowed.  It is useful in patching existing sections
    in read-write files, though.  See other set_section_contents functions
    to see why it doesn't work for new sections.  */
-boolean
+bfd_boolean
 _bfd_generic_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -1375,13 +827,13 @@ _bfd_generic_set_section_contents (abfd, section, location, offset, count)
      bfd_size_type count;
 {
   if (count == 0)
-    return true;
+    return TRUE;
 
   if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
       || bfd_bwrite (location, count, abfd) != count)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /*
@@ -1407,20 +859,20 @@ bfd_log2 (x)
   return result;
 }
 
-boolean
+bfd_boolean
 bfd_generic_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
 {
   char locals_prefix = (bfd_get_symbol_leading_char (abfd) == '_') ? 'L' : '.';
 
-  return (boolean) (name[0] == locals_prefix);
+  return name[0] == locals_prefix;
 }
 
 /*  Can be used from / for bfd_merge_private_bfd_data to check that
     endianness matches between input and output file.  Returns
-    true for a match, otherwise returns false and emits an error.  */
-boolean
+    TRUE for a match, otherwise returns FALSE and emits an error.  */
+bfd_boolean
 _bfd_generic_verify_endian_match (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -1439,10 +891,10 @@ _bfd_generic_verify_endian_match (ibfd, obfd)
       (*_bfd_error_handler) (msg, bfd_archive_filename (ibfd));
 
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Give a warning at runtime if someone compiles code which calls
@@ -1460,7 +912,7 @@ warn_deprecated (what, file, line, func)
 
   if (~(size_t) func & ~mask)
     {
-      /* Note: seperate sentances in order to allow
+      /* Note: separate sentences in order to allow
         for translation into other languages.  */
       if (func)
        fprintf (stderr, _("Deprecated %s called at %s line %d in %s\n"),
index 6d40e91cbaf17f31ab9c0dd51c699d2e768017f9..8f3cf58b61df67414bae3bd06d97df0b4683b773 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
-   generated from "libbfd-in.h", "init.c", "libbfd.c", "cache.c", 
-   "reloc.c", "archures.c" and "elf.c".
+   generated from "libbfd-in.h", "init.c", "libbfd.c", "bfdio.c", 
+   "bfdwin.c", "cache.c", "reloc.c", "archures.c" and "elf.c".
    Run "make headers" in your build bfd/ to regenerate.  */
 
 /* libbfd.h -- Declarations used by bfd library *implementation*.
@@ -88,70 +88,105 @@ struct areltdata {
 
 #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
 
-extern PTR bfd_malloc PARAMS ((bfd_size_type));
-extern PTR bfd_realloc PARAMS ((PTR, bfd_size_type));
-extern PTR bfd_zmalloc PARAMS ((bfd_size_type));
+extern PTR bfd_malloc
+  PARAMS ((bfd_size_type));
+extern PTR bfd_realloc
+  PARAMS ((PTR, bfd_size_type));
+extern PTR bfd_zmalloc
+  PARAMS ((bfd_size_type));
 
 extern bfd_error_handler_type _bfd_error_handler;
 
 /* These routines allocate and free things on the BFD's objalloc.  */
 
-extern PTR bfd_alloc PARAMS ((bfd *, bfd_size_type));
-extern PTR bfd_zalloc PARAMS ((bfd *, bfd_size_type));
-extern void bfd_release PARAMS ((bfd *, PTR));
-
-bfd *  _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd));
-bfd *  _bfd_look_for_bfd_in_cache PARAMS ((bfd *, file_ptr));
-boolean _bfd_add_bfd_to_archive_cache PARAMS ((bfd *, file_ptr, bfd *));
-boolean        _bfd_generic_mkarchive PARAMS ((bfd *abfd));
-const bfd_target *bfd_generic_archive_p PARAMS ((bfd *abfd));
-boolean        bfd_slurp_armap PARAMS ((bfd *abfd));
-boolean bfd_slurp_bsd_armap_f2 PARAMS ((bfd *abfd));
+extern PTR bfd_alloc
+  PARAMS ((bfd *, bfd_size_type));
+extern PTR bfd_zalloc
+  PARAMS ((bfd *, bfd_size_type));
+extern void bfd_release
+  PARAMS ((bfd *, PTR));
+
+bfd * _bfd_create_empty_archive_element_shell
+  PARAMS ((bfd *obfd));
+bfd * _bfd_look_for_bfd_in_cache
+  PARAMS ((bfd *, file_ptr));
+bfd_boolean _bfd_add_bfd_to_archive_cache
+  PARAMS ((bfd *, file_ptr, bfd *));
+bfd_boolean _bfd_generic_mkarchive
+  PARAMS ((bfd *abfd));
+const bfd_target *bfd_generic_archive_p
+  PARAMS ((bfd *abfd));
+bfd_boolean bfd_slurp_armap
+  PARAMS ((bfd *abfd));
+bfd_boolean bfd_slurp_bsd_armap_f2
+  PARAMS ((bfd *abfd));
 #define bfd_slurp_bsd_armap bfd_slurp_armap
 #define bfd_slurp_coff_armap bfd_slurp_armap
-boolean        _bfd_slurp_extended_name_table PARAMS ((bfd *abfd));
-extern boolean _bfd_construct_extended_name_table
-  PARAMS ((bfd *, boolean, char **, bfd_size_type *));
-boolean        _bfd_write_archive_contents PARAMS ((bfd *abfd));
-boolean _bfd_compute_and_write_armap PARAMS ((bfd *, unsigned int elength));
-bfd *_bfd_get_elt_at_filepos PARAMS ((bfd *archive, file_ptr filepos));
-extern bfd *_bfd_generic_get_elt_at_index PARAMS ((bfd *, symindex));
-bfd * _bfd_new_bfd PARAMS ((void));
-void _bfd_delete_bfd PARAMS ((bfd *));
-
-boolean        bfd_false PARAMS ((bfd *ignore));
-boolean        bfd_true PARAMS ((bfd *ignore));
-PTR    bfd_nullvoidptr PARAMS ((bfd *ignore));
-int    bfd_0 PARAMS ((bfd *ignore));
-unsigned int   bfd_0u PARAMS ((bfd *ignore));
-long   bfd_0l PARAMS ((bfd *ignore));
-long   _bfd_n1 PARAMS ((bfd *ignore));
-void   bfd_void PARAMS ((bfd *ignore));
-
-bfd *_bfd_new_bfd_contained_in PARAMS ((bfd *));
-const bfd_target *_bfd_dummy_target PARAMS ((bfd *abfd));
-
-void   bfd_dont_truncate_arname PARAMS ((bfd *abfd, const char *filename,
-                                       char *hdr));
-void   bfd_bsd_truncate_arname PARAMS ((bfd *abfd, const char *filename,
-                                       char *hdr));
-void   bfd_gnu_truncate_arname PARAMS ((bfd *abfd, const char *filename,
-                                       char *hdr));
-
-boolean        bsd_write_armap PARAMS ((bfd *arch, unsigned int elength,
-                                 struct orl *map, unsigned int orl_count, int stridx));
-
-boolean        coff_write_armap PARAMS ((bfd *arch, unsigned int elength,
-                                  struct orl *map, unsigned int orl_count, int stridx));
-
-extern PTR _bfd_generic_read_ar_hdr PARAMS ((bfd *));
-
-extern PTR _bfd_generic_read_ar_hdr_mag PARAMS ((bfd *, const char *));
-
-bfd *  bfd_generic_openr_next_archived_file PARAMS ((bfd *archive,
-                                                    bfd *last_file));
-
-int    bfd_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
+bfd_boolean _bfd_slurp_extended_name_table
+  PARAMS ((bfd *abfd));
+extern bfd_boolean _bfd_construct_extended_name_table
+  PARAMS ((bfd *, bfd_boolean, char **, bfd_size_type *));
+bfd_boolean _bfd_write_archive_contents
+  PARAMS ((bfd *abfd));
+bfd_boolean _bfd_compute_and_write_armap
+  PARAMS ((bfd *, unsigned int elength));
+bfd *_bfd_get_elt_at_filepos
+  PARAMS ((bfd *archive, file_ptr filepos));
+extern bfd *_bfd_generic_get_elt_at_index
+  PARAMS ((bfd *, symindex));
+bfd * _bfd_new_bfd
+  PARAMS ((void));
+void _bfd_delete_bfd
+  PARAMS ((bfd *));
+
+bfd_boolean bfd_false
+  PARAMS ((bfd *ignore));
+bfd_boolean bfd_true
+  PARAMS ((bfd *ignore));
+PTR bfd_nullvoidptr
+  PARAMS ((bfd *ignore));
+int bfd_0
+  PARAMS ((bfd *ignore));
+unsigned int bfd_0u
+  PARAMS ((bfd *ignore));
+long bfd_0l
+  PARAMS ((bfd *ignore));
+long _bfd_n1
+  PARAMS ((bfd *ignore));
+void bfd_void
+  PARAMS ((bfd *ignore));
+
+bfd *_bfd_new_bfd_contained_in
+  PARAMS ((bfd *));
+const bfd_target *_bfd_dummy_target
+  PARAMS ((bfd *abfd));
+
+void bfd_dont_truncate_arname
+  PARAMS ((bfd *abfd, const char *filename, char *hdr));
+void bfd_bsd_truncate_arname
+  PARAMS ((bfd *abfd, const char *filename, char *hdr));
+void bfd_gnu_truncate_arname
+  PARAMS ((bfd *abfd, const char *filename, char *hdr));
+
+bfd_boolean bsd_write_armap
+  PARAMS ((bfd *arch, unsigned int elength, struct orl *map,
+          unsigned int orl_count, int stridx));
+
+bfd_boolean coff_write_armap
+  PARAMS ((bfd *arch, unsigned int elength, struct orl *map,
+          unsigned int orl_count, int stridx));
+
+extern PTR _bfd_generic_read_ar_hdr
+  PARAMS ((bfd *));
+
+extern PTR _bfd_generic_read_ar_hdr_mag
+  PARAMS ((bfd *, const char *));
+
+bfd * bfd_generic_openr_next_archived_file
+  PARAMS ((bfd *archive, bfd *last_file));
+
+int bfd_generic_stat_arch_elt
+  PARAMS ((bfd *, struct stat *));
 
 #define _bfd_read_ar_hdr(abfd) \
   BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
@@ -162,34 +197,36 @@ int       bfd_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
 #define _bfd_generic_close_and_cleanup bfd_true
 #define _bfd_generic_bfd_free_cached_info bfd_true
 #define _bfd_generic_new_section_hook \
-  ((boolean (*) PARAMS ((bfd *, asection *))) bfd_true)
-extern boolean _bfd_generic_get_section_contents
+  ((bfd_boolean (*) PARAMS ((bfd *, asection *))) bfd_true)
+extern bfd_boolean _bfd_generic_get_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-extern boolean _bfd_generic_get_section_contents_in_window
+extern bfd_boolean _bfd_generic_get_section_contents_in_window
   PARAMS ((bfd *, asection *, bfd_window *, file_ptr, bfd_size_type));
 
 /* Generic routines to use for BFD_JUMP_TABLE_COPY.  Use
    BFD_JUMP_TABLE_COPY (_bfd_generic).  */
 
 #define _bfd_generic_bfd_copy_private_bfd_data \
-  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
 #define _bfd_generic_bfd_merge_private_bfd_data \
-  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
 #define _bfd_generic_bfd_set_private_flags \
-  ((boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
 #define _bfd_generic_bfd_copy_private_section_data \
-  ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
 #define _bfd_generic_bfd_copy_private_symbol_data \
-  ((boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true)
 #define _bfd_generic_bfd_print_private_bfd_data \
-  ((boolean (*) PARAMS ((bfd *, PTR))) bfd_true)
+  ((bfd_boolean (*) PARAMS ((bfd *, PTR))) bfd_true)
 
 /* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
    support.  Use BFD_JUMP_TABLE_CORE (_bfd_nocore).  */
 
-extern char *_bfd_nocore_core_file_failing_command PARAMS ((bfd *));
-extern int _bfd_nocore_core_file_failing_signal PARAMS ((bfd *));
-extern boolean _bfd_nocore_core_file_matches_executable_p
+extern char *_bfd_nocore_core_file_failing_command
+  PARAMS ((bfd *));
+extern int _bfd_nocore_core_file_failing_signal
+  PARAMS ((bfd *));
+extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
   PARAMS ((bfd *, bfd *));
 
 /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
@@ -198,12 +235,13 @@ extern boolean _bfd_nocore_core_file_matches_executable_p
 #define _bfd_noarchive_slurp_armap bfd_false
 #define _bfd_noarchive_slurp_extended_name_table bfd_false
 #define _bfd_noarchive_construct_extended_name_table \
-  ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
+  ((bfd_boolean (*) \
+    PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
    bfd_false)
 #define _bfd_noarchive_truncate_arname \
   ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void)
 #define _bfd_noarchive_write_armap \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \
    bfd_false)
 #define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr
@@ -220,7 +258,7 @@ extern boolean _bfd_nocore_core_file_matches_executable_p
 #define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap
 #define _bfd_archive_bsd_slurp_extended_name_table \
   _bfd_slurp_extended_name_table
-extern boolean _bfd_archive_bsd_construct_extended_name_table
+extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
   PARAMS ((bfd *, char **, bfd_size_type *, const char **));
 #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
 #define _bfd_archive_bsd_write_armap bsd_write_armap
@@ -230,7 +268,8 @@ extern boolean _bfd_archive_bsd_construct_extended_name_table
 #define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index
 #define _bfd_archive_bsd_generic_stat_arch_elt \
   bfd_generic_stat_arch_elt
-extern boolean _bfd_archive_bsd_update_armap_timestamp PARAMS ((bfd *));
+extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
+  PARAMS ((bfd *));
 
 /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
    archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff).  */
@@ -238,7 +277,7 @@ extern boolean _bfd_archive_bsd_update_armap_timestamp PARAMS ((bfd *));
 #define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap
 #define _bfd_archive_coff_slurp_extended_name_table \
   _bfd_slurp_extended_name_table
-extern boolean _bfd_archive_coff_construct_extended_name_table
+extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
   PARAMS ((bfd *, char **, bfd_size_type *, const char **));
 #define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
 #define _bfd_archive_coff_write_armap coff_write_armap
@@ -262,20 +301,20 @@ extern boolean _bfd_archive_coff_construct_extended_name_table
 #define _bfd_nosymbols_get_symbol_info \
   ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void)
 #define _bfd_nosymbols_bfd_is_local_label_name \
-  ((boolean (*) PARAMS ((bfd *, const char *))) bfd_false)
+  ((bfd_boolean (*) PARAMS ((bfd *, const char *))) bfd_false)
 #define _bfd_nosymbols_get_lineno \
   ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr)
 #define _bfd_nosymbols_find_nearest_line \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \
             const char **, unsigned int *))) \
    bfd_false)
 #define _bfd_nosymbols_bfd_make_debug_symbol \
   ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr)
 #define _bfd_nosymbols_read_minisymbols \
-  ((long (*) PARAMS ((bfd *, boolean, PTR *, unsigned int *))) _bfd_n1)
+  ((long (*) PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *))) _bfd_n1)
 #define _bfd_nosymbols_minisymbol_to_symbol \
-  ((asymbol *(*) PARAMS ((bfd *, boolean, const PTR, asymbol *))) \
+  ((asymbol *(*) PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *))) \
    bfd_nullvoidptr)
 
 /* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
@@ -293,42 +332,43 @@ extern boolean _bfd_archive_coff_construct_extended_name_table
    be written.  Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite).  */
 
 #define _bfd_nowrite_set_arch_mach \
-  ((boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \
+  ((bfd_boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \
    bfd_false)
 #define _bfd_nowrite_set_section_contents \
-  ((boolean (*) PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \
+  ((bfd_boolean (*) \
+   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \
    bfd_false)
 
 /* Generic routines to use for BFD_JUMP_TABLE_WRITE.  Use
    BFD_JUMP_TABLE_WRITE (_bfd_generic).  */
 
 #define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
-extern boolean _bfd_generic_set_section_contents
+extern bfd_boolean _bfd_generic_set_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
 
 /* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
    support linking.  Use BFD_JUMP_TABLE_LINK (_bfd_nolink).  */
 
-#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, boolean))) bfd_0)
+#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, bfd_boolean))) bfd_0)
 #define _bfd_nolink_bfd_get_relocated_section_contents \
   ((bfd_byte *(*) \
     PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \
-            bfd_byte *, boolean, asymbol **))) \
+            bfd_byte *, bfd_boolean, asymbol **))) \
    bfd_nullvoidptr)
 #define _bfd_nolink_bfd_relax_section \
-  ((boolean (*) \
-    PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *))) \
+  ((bfd_boolean (*) \
+    PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *))) \
    bfd_false)
 #define _bfd_nolink_bfd_gc_sections \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, struct bfd_link_info *))) \
    bfd_false)
 #define _bfd_nolink_bfd_merge_sections \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, struct bfd_link_info *))) \
    bfd_false)
 #define _bfd_nolink_bfd_discard_group \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, struct sec *))) \
    bfd_false)
 #define _bfd_nolink_bfd_link_hash_table_create \
@@ -336,13 +376,13 @@ extern boolean _bfd_generic_set_section_contents
 #define _bfd_nolink_bfd_link_hash_table_free \
   ((void (*) PARAMS ((struct bfd_link_hash_table *))) bfd_void)
 #define _bfd_nolink_bfd_link_add_symbols \
-  ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
+  ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
 #define _bfd_nolink_bfd_link_just_syms \
   ((void (*) PARAMS ((asection *, struct bfd_link_info *))) bfd_void)
 #define _bfd_nolink_bfd_final_link \
-  ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
+  ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
 #define _bfd_nolink_bfd_link_split_section \
-  ((boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false)
+  ((bfd_boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false)
 
 /* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
    have dynamic symbols or relocs.  Use BFD_JUMP_TABLE_DYNAMIC
@@ -357,26 +397,27 @@ extern boolean _bfd_generic_set_section_contents
 \f
 /* Generic routine to determine of the given symbol is a local
    label.  */
-extern boolean bfd_generic_is_local_label_name PARAMS ((bfd *, const char *));
+extern bfd_boolean bfd_generic_is_local_label_name
+  PARAMS ((bfd *, const char *));
 
 /* Generic minisymbol routines.  */
 extern long _bfd_generic_read_minisymbols
-  PARAMS ((bfd *, boolean, PTR *, unsigned int *));
+  PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *));
 extern asymbol *_bfd_generic_minisymbol_to_symbol
-  PARAMS ((bfd *, boolean, const PTR, asymbol *));
+  PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *));
 
 /* Find the nearest line using .stab/.stabstr sections.  */
-extern boolean _bfd_stab_section_find_nearest_line
-  PARAMS ((bfd *, asymbol **, asection *, bfd_vma, boolean *, const char **,
-          const char **, unsigned int *, PTR *));
+extern bfd_boolean _bfd_stab_section_find_nearest_line
+  PARAMS ((bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
+          const char **, const char **, unsigned int *, PTR *));
 
 /* Find the neaderst line using DWARF 1 debugging information.  */
-extern boolean _bfd_dwarf1_find_nearest_line
+extern bfd_boolean _bfd_dwarf1_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *));
 
 /* Find the nearest line using DWARF 2 debugging information.  */
-extern boolean _bfd_dwarf2_find_nearest_line
+extern bfd_boolean _bfd_dwarf2_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *, unsigned int,
           PTR *));
@@ -392,7 +433,7 @@ extern struct bfd_hash_entry *_bfd_link_hash_newfunc
           const char *string));
 
 /* Initialize a bfd_link_hash_table.  */
-extern boolean _bfd_link_hash_table_init
+extern bfd_boolean _bfd_link_hash_table_init
   PARAMS ((struct bfd_link_hash_table *, bfd *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
@@ -407,47 +448,47 @@ extern void _bfd_generic_link_hash_table_free
   PARAMS ((struct bfd_link_hash_table *));
 
 /* Generic add symbol routine.  */
-extern boolean _bfd_generic_link_add_symbols
+extern bfd_boolean _bfd_generic_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Generic add symbol routine.  This version is used by targets for
    which the linker must collect constructors and destructors by name,
    as the collect2 program does.  */
-extern boolean _bfd_generic_link_add_symbols_collect
+extern bfd_boolean _bfd_generic_link_add_symbols_collect
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Generic archive add symbol routine.  */
-extern boolean _bfd_generic_link_add_archive_symbols
+extern bfd_boolean _bfd_generic_link_add_archive_symbols
   PARAMS ((bfd *, struct bfd_link_info *,
-          boolean (*checkfn) (bfd *, struct bfd_link_info *, boolean *)));
+          bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *)));
 
 /* Forward declaration to avoid prototype errors.  */
 typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
 
 /* Generic routine to add a single symbol.  */
-extern boolean _bfd_generic_link_add_one_symbol
+extern bfd_boolean _bfd_generic_link_add_one_symbol
   PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword,
-          asection *, bfd_vma, const char *, boolean copy,
-          boolean constructor, struct bfd_link_hash_entry **));
+          asection *, bfd_vma, const char *, bfd_boolean copy,
+          bfd_boolean constructor, struct bfd_link_hash_entry **));
 
 /* Generic routine to mark section as supplying symbols only.  */
 extern void _bfd_generic_link_just_syms
   PARAMS ((asection *, struct bfd_link_info *));
 
 /* Generic link routine.  */
-extern boolean _bfd_generic_final_link
+extern bfd_boolean _bfd_generic_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
-extern boolean _bfd_generic_link_split_section
+extern bfd_boolean _bfd_generic_link_split_section
   PARAMS ((bfd *, struct sec *));
 
 /* Generic reloc_link_order processing routine.  */
-extern boolean _bfd_generic_reloc_link_order
+extern bfd_boolean _bfd_generic_reloc_link_order
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           struct bfd_link_order *));
 
 /* Default link order processing routine.  */
-extern boolean _bfd_default_link_order
+extern bfd_boolean _bfd_default_link_order
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           struct bfd_link_order *));
 
@@ -466,22 +507,23 @@ extern bfd_reloc_status_type _bfd_relocate_contents
 
 /* Link stabs in sections in the first pass.  */
 
-extern boolean _bfd_link_section_stabs
+extern bfd_boolean _bfd_link_section_stabs
   PARAMS ((bfd *, PTR *, asection *, asection *, PTR *));
 
 /* Eliminate stabs for discarded functions and symbols.  */
-extern boolean _bfd_discard_section_stabs
+extern bfd_boolean _bfd_discard_section_stabs
   PARAMS ((bfd *, asection *, PTR,
-          boolean (*) (bfd_vma, PTR), PTR));
+          bfd_boolean (*) (bfd_vma, PTR), PTR));
 
 /* Write out the .stab section when linking stabs in sections.  */
 
-extern boolean _bfd_write_section_stabs
+extern bfd_boolean _bfd_write_section_stabs
   PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *));
 
 /* Write out the .stabstr string table when linking stabs in sections.  */
 
-extern boolean _bfd_write_stab_strings PARAMS ((bfd *, PTR *));
+extern bfd_boolean _bfd_write_stab_strings
+  PARAMS ((bfd *, PTR *));
 
 /* Find an offset within a .stab section when linking stabs in
    sections.  */
@@ -491,17 +533,17 @@ extern bfd_vma _bfd_stab_section_offset
 
 /* Attempt to merge a SEC_MERGE section.  */
 
-extern boolean _bfd_merge_section
+extern bfd_boolean _bfd_merge_section
   PARAMS ((bfd *, PTR *, asection *, PTR *));
 
 /* Attempt to merge SEC_MERGE sections.  */
 
-extern boolean _bfd_merge_sections
+extern bfd_boolean _bfd_merge_sections
   PARAMS ((bfd *, PTR, void (*)(bfd *, asection *)));
 
 /* Write out a merged section.  */
 
-extern boolean _bfd_write_merged_section
+extern bfd_boolean _bfd_write_merged_section
   PARAMS ((bfd *, asection *, PTR));
 
 /* Find an offset within a modified SEC_MERGE section.  */
@@ -510,27 +552,33 @@ extern bfd_vma _bfd_merged_section_offset
   PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma));
 
 /* Create a string table.  */
-extern struct bfd_strtab_hash *_bfd_stringtab_init PARAMS ((void));
+extern struct bfd_strtab_hash *_bfd_stringtab_init
+  PARAMS ((void));
 
 /* Create an XCOFF .debug section style string table.  */
-extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init PARAMS ((void));
+extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
+  PARAMS ((void));
 
 /* Free a string table.  */
-extern void _bfd_stringtab_free PARAMS ((struct bfd_strtab_hash *));
+extern void _bfd_stringtab_free
+  PARAMS ((struct bfd_strtab_hash *));
 
 /* Get the size of a string table.  */
-extern bfd_size_type _bfd_stringtab_size PARAMS ((struct bfd_strtab_hash *));
+extern bfd_size_type _bfd_stringtab_size
+  PARAMS ((struct bfd_strtab_hash *));
 
 /* Add a string to a string table.  */
 extern bfd_size_type _bfd_stringtab_add
-  PARAMS ((struct bfd_strtab_hash *, const char *, boolean hash,
-          boolean copy));
+  PARAMS ((struct bfd_strtab_hash *, const char *, bfd_boolean hash,
+          bfd_boolean copy));
 
 /* Write out a string table.  */
-extern boolean _bfd_stringtab_emit PARAMS ((bfd *, struct bfd_strtab_hash *));
+extern bfd_boolean _bfd_stringtab_emit
+  PARAMS ((bfd *, struct bfd_strtab_hash *));
 
 /* Check that endianness of input and output file match.  */
-extern boolean _bfd_generic_verify_endian_match PARAMS ((bfd *, bfd *));
+extern bfd_boolean _bfd_generic_verify_endian_match
+  PARAMS ((bfd *, bfd *));
 \f
 /* Macros to tell if bfds are read or write enabled.
 
@@ -544,7 +592,8 @@ extern boolean _bfd_generic_verify_endian_match PARAMS ((bfd *, bfd *));
 #define        bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
 #define        bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
 
-void   bfd_assert PARAMS ((const char*,int));
+void bfd_assert
+  PARAMS ((const char*,int));
 
 #define BFD_ASSERT(x) \
 { if (!(x)) bfd_assert(__FILE__,__LINE__); }
@@ -552,8 +601,8 @@ void        bfd_assert PARAMS ((const char*,int));
 #define BFD_FAIL() \
 { bfd_assert(__FILE__,__LINE__); }
 
-extern void _bfd_abort PARAMS ((const char *, int, const char *))
-     ATTRIBUTE_NORETURN;
+extern void _bfd_abort
+  PARAMS ((const char *, int, const char *)) ATTRIBUTE_NORETURN;
 
 /* if gcc >= 2.6, we can give a function name, too */
 #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
@@ -563,7 +612,8 @@ extern void _bfd_abort PARAMS ((const char *, int, const char *))
 #undef abort
 #define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
 
-FILE * bfd_cache_lookup_worker PARAMS ((bfd *));
+FILE * bfd_cache_lookup_worker
+  PARAMS ((bfd *));
 
 extern bfd *bfd_last_cache;
 
@@ -582,33 +632,47 @@ extern const bfd_target * const *bfd_associated_vector;
 struct ecoff_find_line;
 #endif
 
-extern boolean _bfd_ecoff_locate_line
+extern bfd_boolean _bfd_ecoff_locate_line
   PARAMS ((bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
           const struct ecoff_debug_swap * const, struct ecoff_find_line *,
           const char **, const char **, unsigned int *));
-extern boolean _bfd_ecoff_get_accumulated_pdr PARAMS ((PTR, bfd_byte *));
-extern boolean _bfd_ecoff_get_accumulated_sym PARAMS ((PTR, bfd_byte *));
-extern boolean _bfd_ecoff_get_accumulated_ss PARAMS ((PTR, bfd_byte *));
-
-extern bfd_vma _bfd_get_gp_value PARAMS ((bfd *));
-extern void _bfd_set_gp_value PARAMS ((bfd *, bfd_vma));
+extern bfd_boolean _bfd_ecoff_get_accumulated_pdr
+  PARAMS ((PTR, bfd_byte *));
+extern bfd_boolean _bfd_ecoff_get_accumulated_sym
+  PARAMS ((PTR, bfd_byte *));
+extern bfd_boolean _bfd_ecoff_get_accumulated_ss
+  PARAMS ((PTR, bfd_byte *));
+
+extern bfd_vma _bfd_get_gp_value
+  PARAMS ((bfd *));
+extern void _bfd_set_gp_value
+  PARAMS ((bfd *, bfd_vma));
 
 /* Function shared by the COFF and ELF SH backends, which have no
    other common header files.  */
 
-extern boolean _bfd_sh_align_load_span
+extern bfd_boolean _bfd_sh_align_load_span
   PARAMS ((bfd *, asection *, bfd_byte *,
-          boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
-          PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *));
+          bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
+          PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *));
 
 /* Extracted from init.c.  */
 /* Extracted from libbfd.c.  */
-boolean
+bfd_boolean
 bfd_write_bigendian_4byte_int PARAMS ((bfd *, unsigned int));
 
 unsigned int
 bfd_log2 PARAMS ((bfd_vma x));
 
+/* Extracted from bfdio.c.  */
+/* Extracted from bfdwin.c.  */
+struct _bfd_window_internal {
+  struct _bfd_window_internal *next;
+  PTR data;
+  bfd_size_type size;
+  int refcount : 31;           /* should be enough...  */
+  unsigned mapped : 1;         /* 1 = mmap, 0 = malloc */
+};
 /* Extracted from cache.c.  */
 #define BFD_CACHE_MAX_OPEN 10
 extern bfd *bfd_last_cache;
@@ -617,10 +681,10 @@ extern bfd *bfd_last_cache;
     ((x)==bfd_last_cache? \
       (FILE*) (bfd_last_cache->iostream): \
        bfd_cache_lookup_worker(x))
-boolean
+bfd_boolean
 bfd_cache_init PARAMS ((bfd *abfd));
 
-boolean
+bfd_boolean
 bfd_cache_close PARAMS ((bfd *abfd));
 
 FILE*
@@ -1303,6 +1367,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_H8_DIR24R8",
   "BFD_RELOC_H8_DIR32A16",
   "BFD_RELOC_XSTORMY16_REL_12",
+  "BFD_RELOC_XSTORMY16_12",
   "BFD_RELOC_XSTORMY16_24",
   "BFD_RELOC_XSTORMY16_FPTR16",
   "BFD_RELOC_VAX_GLOB_DAT",
@@ -1315,16 +1380,16 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
 reloc_howto_type *
 bfd_default_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type  code));
 
-boolean
+bfd_boolean
 bfd_generic_relax_section PARAMS ((bfd *abfd,
     asection *section,
     struct bfd_link_info *,
-    boolean *));
+    bfd_boolean *));
 
-boolean
+bfd_boolean
 bfd_generic_gc_sections PARAMS ((bfd *, struct bfd_link_info *));
 
-boolean
+bfd_boolean
 bfd_generic_merge_sections PARAMS ((bfd *, struct bfd_link_info *));
 
 bfd_byte *
@@ -1332,12 +1397,12 @@ bfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd,
     struct bfd_link_info *link_info,
     struct bfd_link_order *link_order,
     bfd_byte *data,
-    boolean relocateable,
+    bfd_boolean relocateable,
     asymbol **symbols));
 
 /* Extracted from archures.c.  */
 extern const bfd_arch_info_type bfd_default_arch_struct;
-boolean
+bfd_boolean
 bfd_default_set_arch_mach PARAMS ((bfd *abfd,
     enum bfd_architecture arch,
     unsigned long mach));
@@ -1346,7 +1411,7 @@ const bfd_arch_info_type *
 bfd_default_compatible PARAMS ((const bfd_arch_info_type *a,
     const bfd_arch_info_type *b));
 
-boolean
+bfd_boolean
 bfd_default_scan PARAMS ((const struct bfd_arch_info *info, const char *string));
 
 /* Extracted from elf.c.  */
index efc2fee268bd3f1a7f82c929d2bda8894089ac6b..fac76506d4a97d6ef4178c10df7d4eaa474cde1d 100644 (file)
@@ -74,16 +74,16 @@ typedef struct coff_tdata
   /* The unswapped external symbols.  May be NULL.  Read by
      _bfd_coff_get_external_symbols.  */
   PTR external_syms;
-  /* If this is true, the external_syms may not be freed.  */
-  boolean keep_syms;
+  /* If this is TRUE, the external_syms may not be freed.  */
+  bfd_boolean keep_syms;
 
   /* The string table.  May be NULL.  Read by
      _bfd_coff_read_string_table.  */
   char *strings;
-  /* If this is true, the strings may not be freed.  */
-  boolean keep_strings;
-  /* If this is true, the strings have been written out already.  */
-  boolean strings_written;
+  /* If this is TRUE, the strings may not be freed.  */
+  bfd_boolean keep_strings;
+  /* If this is TRUE, the strings have been written out already.  */
+  bfd_boolean strings_written;
 
   /* is this a PE format coff file */
   int pe;
@@ -117,10 +117,10 @@ typedef struct pe_tdata
   struct internal_extra_pe_aouthdr pe_opthdr;
   int dll;
   int has_reloc_section;
-  boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *));
+  bfd_boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *));
   flagword real_flags;
   int target_subsystem;
-  boolean force_minimum_alignment;
+  bfd_boolean force_minimum_alignment;
 } pe_data_type;
 
 #define pe_data(bfd)           ((bfd)->tdata.pe_obj_data)
@@ -132,11 +132,11 @@ struct xcoff_tdata
   /* Basic COFF information.  */
   coff_data_type coff;
 
-  /* True if this is an XCOFF64 file. */
-  boolean xcoff64;
+  /* TRUE if this is an XCOFF64 file. */
+  bfd_boolean xcoff64;
 
-  /* True if a large a.out header should be generated.  */
-  boolean full_aouthdr;
+  /* TRUE if a large a.out header should be generated.  */
+  bfd_boolean full_aouthdr;
 
   /* TOC value.  */
   bfd_vma toc;
@@ -184,12 +184,12 @@ struct coff_section_tdata
 {
   /* The relocs, swapped into COFF internal form.  This may be NULL.  */
   struct internal_reloc *relocs;
-  /* If this is true, the relocs entry may not be freed.  */
-  boolean keep_relocs;
+  /* If this is TRUE, the relocs entry may not be freed.  */
+  bfd_boolean keep_relocs;
   /* The section contents.  This may be NULL.  */
   bfd_byte *contents;
-  /* If this is true, the contents entry may not be freed.  */
-  boolean keep_contents;
+  /* If this is TRUE, the contents entry may not be freed.  */
+  bfd_boolean keep_contents;
   /* Information cached by coff_find_nearest_line.  */
   bfd_vma offset;
   unsigned int i;
@@ -291,7 +291,7 @@ struct coff_link_hash_table
 #define coff_link_hash_traverse(table, func, info)                     \
   (bfd_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the COFF linker hash table from a link_info structure.  */
@@ -311,23 +311,23 @@ extern int coff_count_linenumbers
   PARAMS ((bfd *));
 extern struct coff_symbol_struct *coff_symbol_from
   PARAMS ((bfd *, asymbol *));
-extern boolean coff_renumber_symbols
+extern bfd_boolean coff_renumber_symbols
   PARAMS ((bfd *, int *));
 extern void coff_mangle_symbols
   PARAMS ((bfd *));
-extern boolean coff_write_symbols
+extern bfd_boolean coff_write_symbols
   PARAMS ((bfd *));
-extern boolean coff_write_linenumbers
+extern bfd_boolean coff_write_linenumbers
   PARAMS ((bfd *));
 extern alent *coff_get_lineno
   PARAMS ((bfd *, asymbol *));
 extern asymbol *coff_section_symbol
   PARAMS ((bfd *, char *));
-extern boolean _bfd_coff_get_external_symbols
+extern bfd_boolean _bfd_coff_get_external_symbols
   PARAMS ((bfd *));
 extern const char *_bfd_coff_read_string_table
   PARAMS ((bfd *));
-extern boolean _bfd_coff_free_symbols
+extern bfd_boolean _bfd_coff_free_symbols
   PARAMS ((bfd *));
 extern struct coff_ptr_struct *coff_get_normalized_symtab
   PARAMS ((bfd *));
@@ -339,20 +339,20 @@ extern void coff_print_symbol
   PARAMS ((bfd *, PTR filep, asymbol *, bfd_print_symbol_type));
 extern void coff_get_symbol_info
   PARAMS ((bfd *, asymbol *, symbol_info *ret));
-extern boolean _bfd_coff_is_local_label_name
+extern bfd_boolean _bfd_coff_is_local_label_name
   PARAMS ((bfd *, const char *));
 extern asymbol *coff_bfd_make_debug_symbol
   PARAMS ((bfd *, PTR, unsigned long));
-extern boolean coff_find_nearest_line
+extern bfd_boolean coff_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *));
 extern int coff_sizeof_headers
-  PARAMS ((bfd *, boolean));
-extern boolean bfd_coff_reloc16_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
+  PARAMS ((bfd *, bfd_boolean));
+extern bfd_boolean bfd_coff_reloc16_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
 extern bfd_byte *bfd_coff_reloc16_get_relocated_section_contents
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, boolean, asymbol **));
+          bfd_byte *, bfd_boolean, asymbol **));
 extern bfd_vma bfd_coff_reloc16_get_value
    PARAMS ((arelent *, struct bfd_link_info *, asection *));
 extern void bfd_perform_slip
@@ -454,11 +454,11 @@ struct coff_final_link_info
   /* Output BFD.  */
   bfd *output_bfd;
   /* Used to indicate failure in traversal routine.  */
-  boolean failed;
+  bfd_boolean failed;
   /* If doing "task linking" set only during the time when we want the
      global symbol writer to convert the storage class of defined global
      symbols from global to static. */
-  boolean global_to_static;
+  bfd_boolean global_to_static;
   /* Hash table for long symbol names.  */
   struct bfd_strtab_hash *strtab;
   /* When doing a relocateable link, an array of information kept for
@@ -532,7 +532,7 @@ struct coff_section_alignment_entry
 
 extern struct bfd_hash_entry *_bfd_coff_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-extern boolean _bfd_coff_link_hash_table_init
+extern bfd_boolean _bfd_coff_link_hash_table_init
   PARAMS ((struct coff_link_hash_table *, bfd *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
@@ -541,26 +541,26 @@ extern struct bfd_link_hash_table *_bfd_coff_link_hash_table_create
   PARAMS ((bfd *));
 extern const char *_bfd_coff_internal_syment_name
   PARAMS ((bfd *, const struct internal_syment *, char *));
-extern boolean _bfd_coff_link_add_symbols
+extern bfd_boolean _bfd_coff_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_coff_final_link
+extern bfd_boolean _bfd_coff_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 extern struct internal_reloc *_bfd_coff_read_internal_relocs
-  PARAMS ((bfd *, asection *, boolean, bfd_byte *, boolean,
+  PARAMS ((bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean,
           struct internal_reloc *));
-extern boolean _bfd_coff_generic_relocate_section
+extern bfd_boolean _bfd_coff_generic_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
 
 extern struct bfd_hash_entry *_bfd_coff_debug_merge_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-extern boolean _bfd_coff_write_global_sym
+extern bfd_boolean _bfd_coff_write_global_sym
   PARAMS ((struct coff_link_hash_entry *, PTR));
-extern boolean _bfd_coff_write_task_globals
+extern bfd_boolean _bfd_coff_write_task_globals
   PARAMS ((struct coff_link_hash_entry *, PTR));
-extern boolean _bfd_coff_link_input_bfd
+extern bfd_boolean _bfd_coff_link_input_bfd
   PARAMS ((struct coff_final_link_info *, bfd *));
-extern boolean _bfd_coff_reloc_link_order
+extern bfd_boolean _bfd_coff_reloc_link_order
   PARAMS ((bfd *, struct coff_final_link_info *, asection *,
           struct bfd_link_order *));
 
@@ -582,19 +582,19 @@ extern struct bfd_link_hash_table *_bfd_xcoff_bfd_link_hash_table_create
   PARAMS ((bfd *));
 extern void _bfd_xcoff_bfd_link_hash_table_free
   PARAMS ((struct bfd_link_hash_table *));
-extern boolean _bfd_xcoff_bfd_link_add_symbols
+extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_xcoff_bfd_final_link
+extern bfd_boolean _bfd_xcoff_bfd_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_ppc_xcoff_relocate_section
+extern bfd_boolean _bfd_ppc_xcoff_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
 
 /* Functions in coff-ppc.c.  FIXME: These are called be pe.em in the
    linker, and so should start with bfd and be declared in bfd.h.  */
 
-extern boolean ppc_allocate_toc_section
+extern bfd_boolean ppc_allocate_toc_section
   PARAMS ((struct bfd_link_info *));
-extern boolean ppc_process_before_allocation
+extern bfd_boolean ppc_process_before_allocation
   PARAMS ((bfd *, struct bfd_link_info *));
 
index ea9c5700b1fc8250da9d73239b4ae0ebbb4dffff..c0279e5e88d20381484c0518907d485af7e2d9f3 100644 (file)
@@ -78,16 +78,16 @@ typedef struct coff_tdata
   /* The unswapped external symbols.  May be NULL.  Read by
      _bfd_coff_get_external_symbols.  */
   PTR external_syms;
-  /* If this is true, the external_syms may not be freed.  */
-  boolean keep_syms;
+  /* If this is TRUE, the external_syms may not be freed.  */
+  bfd_boolean keep_syms;
 
   /* The string table.  May be NULL.  Read by
      _bfd_coff_read_string_table.  */
   char *strings;
-  /* If this is true, the strings may not be freed.  */
-  boolean keep_strings;
-  /* If this is true, the strings have been written out already.  */
-  boolean strings_written;
+  /* If this is TRUE, the strings may not be freed.  */
+  bfd_boolean keep_strings;
+  /* If this is TRUE, the strings have been written out already.  */
+  bfd_boolean strings_written;
 
   /* is this a PE format coff file */
   int pe;
@@ -121,10 +121,10 @@ typedef struct pe_tdata
   struct internal_extra_pe_aouthdr pe_opthdr;
   int dll;
   int has_reloc_section;
-  boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *));
+  bfd_boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *));
   flagword real_flags;
   int target_subsystem;
-  boolean force_minimum_alignment;
+  bfd_boolean force_minimum_alignment;
 } pe_data_type;
 
 #define pe_data(bfd)           ((bfd)->tdata.pe_obj_data)
@@ -136,11 +136,11 @@ struct xcoff_tdata
   /* Basic COFF information.  */
   coff_data_type coff;
 
-  /* True if this is an XCOFF64 file. */
-  boolean xcoff64;
+  /* TRUE if this is an XCOFF64 file. */
+  bfd_boolean xcoff64;
 
-  /* True if a large a.out header should be generated.  */
-  boolean full_aouthdr;
+  /* TRUE if a large a.out header should be generated.  */
+  bfd_boolean full_aouthdr;
 
   /* TOC value.  */
   bfd_vma toc;
@@ -188,12 +188,12 @@ struct coff_section_tdata
 {
   /* The relocs, swapped into COFF internal form.  This may be NULL.  */
   struct internal_reloc *relocs;
-  /* If this is true, the relocs entry may not be freed.  */
-  boolean keep_relocs;
+  /* If this is TRUE, the relocs entry may not be freed.  */
+  bfd_boolean keep_relocs;
   /* The section contents.  This may be NULL.  */
   bfd_byte *contents;
-  /* If this is true, the contents entry may not be freed.  */
-  boolean keep_contents;
+  /* If this is TRUE, the contents entry may not be freed.  */
+  bfd_boolean keep_contents;
   /* Information cached by coff_find_nearest_line.  */
   bfd_vma offset;
   unsigned int i;
@@ -295,7 +295,7 @@ struct coff_link_hash_table
 #define coff_link_hash_traverse(table, func, info)                     \
   (bfd_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the COFF linker hash table from a link_info structure.  */
@@ -315,23 +315,23 @@ extern int coff_count_linenumbers
   PARAMS ((bfd *));
 extern struct coff_symbol_struct *coff_symbol_from
   PARAMS ((bfd *, asymbol *));
-extern boolean coff_renumber_symbols
+extern bfd_boolean coff_renumber_symbols
   PARAMS ((bfd *, int *));
 extern void coff_mangle_symbols
   PARAMS ((bfd *));
-extern boolean coff_write_symbols
+extern bfd_boolean coff_write_symbols
   PARAMS ((bfd *));
-extern boolean coff_write_linenumbers
+extern bfd_boolean coff_write_linenumbers
   PARAMS ((bfd *));
 extern alent *coff_get_lineno
   PARAMS ((bfd *, asymbol *));
 extern asymbol *coff_section_symbol
   PARAMS ((bfd *, char *));
-extern boolean _bfd_coff_get_external_symbols
+extern bfd_boolean _bfd_coff_get_external_symbols
   PARAMS ((bfd *));
 extern const char *_bfd_coff_read_string_table
   PARAMS ((bfd *));
-extern boolean _bfd_coff_free_symbols
+extern bfd_boolean _bfd_coff_free_symbols
   PARAMS ((bfd *));
 extern struct coff_ptr_struct *coff_get_normalized_symtab
   PARAMS ((bfd *));
@@ -343,20 +343,20 @@ extern void coff_print_symbol
   PARAMS ((bfd *, PTR filep, asymbol *, bfd_print_symbol_type));
 extern void coff_get_symbol_info
   PARAMS ((bfd *, asymbol *, symbol_info *ret));
-extern boolean _bfd_coff_is_local_label_name
+extern bfd_boolean _bfd_coff_is_local_label_name
   PARAMS ((bfd *, const char *));
 extern asymbol *coff_bfd_make_debug_symbol
   PARAMS ((bfd *, PTR, unsigned long));
-extern boolean coff_find_nearest_line
+extern bfd_boolean coff_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
           const char **, unsigned int *));
 extern int coff_sizeof_headers
-  PARAMS ((bfd *, boolean));
-extern boolean bfd_coff_reloc16_relax_section
-  PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *));
+  PARAMS ((bfd *, bfd_boolean));
+extern bfd_boolean bfd_coff_reloc16_relax_section
+  PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
 extern bfd_byte *bfd_coff_reloc16_get_relocated_section_contents
   PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, boolean, asymbol **));
+          bfd_byte *, bfd_boolean, asymbol **));
 extern bfd_vma bfd_coff_reloc16_get_value
    PARAMS ((arelent *, struct bfd_link_info *, asection *));
 extern void bfd_perform_slip
@@ -458,11 +458,11 @@ struct coff_final_link_info
   /* Output BFD.  */
   bfd *output_bfd;
   /* Used to indicate failure in traversal routine.  */
-  boolean failed;
+  bfd_boolean failed;
   /* If doing "task linking" set only during the time when we want the
      global symbol writer to convert the storage class of defined global
      symbols from global to static. */
-  boolean global_to_static;
+  bfd_boolean global_to_static;
   /* Hash table for long symbol names.  */
   struct bfd_strtab_hash *strtab;
   /* When doing a relocateable link, an array of information kept for
@@ -536,7 +536,7 @@ struct coff_section_alignment_entry
 
 extern struct bfd_hash_entry *_bfd_coff_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-extern boolean _bfd_coff_link_hash_table_init
+extern bfd_boolean _bfd_coff_link_hash_table_init
   PARAMS ((struct coff_link_hash_table *, bfd *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
@@ -545,26 +545,26 @@ extern struct bfd_link_hash_table *_bfd_coff_link_hash_table_create
   PARAMS ((bfd *));
 extern const char *_bfd_coff_internal_syment_name
   PARAMS ((bfd *, const struct internal_syment *, char *));
-extern boolean _bfd_coff_link_add_symbols
+extern bfd_boolean _bfd_coff_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_coff_final_link
+extern bfd_boolean _bfd_coff_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 extern struct internal_reloc *_bfd_coff_read_internal_relocs
-  PARAMS ((bfd *, asection *, boolean, bfd_byte *, boolean,
+  PARAMS ((bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean,
           struct internal_reloc *));
-extern boolean _bfd_coff_generic_relocate_section
+extern bfd_boolean _bfd_coff_generic_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
 
 extern struct bfd_hash_entry *_bfd_coff_debug_merge_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-extern boolean _bfd_coff_write_global_sym
+extern bfd_boolean _bfd_coff_write_global_sym
   PARAMS ((struct coff_link_hash_entry *, PTR));
-extern boolean _bfd_coff_write_task_globals
+extern bfd_boolean _bfd_coff_write_task_globals
   PARAMS ((struct coff_link_hash_entry *, PTR));
-extern boolean _bfd_coff_link_input_bfd
+extern bfd_boolean _bfd_coff_link_input_bfd
   PARAMS ((struct coff_final_link_info *, bfd *));
-extern boolean _bfd_coff_reloc_link_order
+extern bfd_boolean _bfd_coff_reloc_link_order
   PARAMS ((bfd *, struct coff_final_link_info *, asection *,
           struct bfd_link_order *));
 
@@ -586,20 +586,20 @@ extern struct bfd_link_hash_table *_bfd_xcoff_bfd_link_hash_table_create
   PARAMS ((bfd *));
 extern void _bfd_xcoff_bfd_link_hash_table_free
   PARAMS ((struct bfd_link_hash_table *));
-extern boolean _bfd_xcoff_bfd_link_add_symbols
+extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_xcoff_bfd_final_link
+extern bfd_boolean _bfd_xcoff_bfd_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_ppc_xcoff_relocate_section
+extern bfd_boolean _bfd_ppc_xcoff_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
 
 /* Functions in coff-ppc.c.  FIXME: These are called be pe.em in the
    linker, and so should start with bfd and be declared in bfd.h.  */
 
-extern boolean ppc_allocate_toc_section
+extern bfd_boolean ppc_allocate_toc_section
   PARAMS ((struct bfd_link_info *));
-extern boolean ppc_process_before_allocation
+extern bfd_boolean ppc_process_before_allocation
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Extracted from coffcode.h.  */
@@ -653,7 +653,7 @@ typedef struct coff_symbol_struct
   struct lineno_cache_entry *lineno;
 
   /* Have the line numbers been relocated yet ? */
-  boolean done_lineno;
+  bfd_boolean done_lineno;
 } coff_symbol_type;
 /* COFF symbol classifications.  */
 
@@ -711,10 +711,10 @@ typedef struct
   unsigned int _bfd_relsz;
   unsigned int _bfd_linesz;
   unsigned int _bfd_filnmlen;
-  boolean _bfd_coff_long_filenames;
-  boolean _bfd_coff_long_section_names;
+  bfd_boolean _bfd_coff_long_filenames;
+  bfd_boolean _bfd_coff_long_section_names;
   unsigned int _bfd_coff_default_section_alignment_power;
-  boolean _bfd_coff_force_symnames_in_strings;
+  bfd_boolean _bfd_coff_force_symnames_in_strings;
   unsigned int _bfd_coff_debug_string_prefix_length;
 
   void (*_bfd_coff_swap_filehdr_in)
@@ -729,32 +729,32 @@ typedef struct
   void (*_bfd_coff_swap_reloc_in)
     PARAMS ((bfd *abfd, PTR, PTR));
 
-  boolean (*_bfd_coff_bad_format_hook)
+  bfd_boolean (*_bfd_coff_bad_format_hook)
     PARAMS ((bfd *, PTR));
 
-  boolean (*_bfd_coff_set_arch_mach_hook)
+  bfd_boolean (*_bfd_coff_set_arch_mach_hook)
     PARAMS ((bfd *, PTR));
 
   PTR (*_bfd_coff_mkobject_hook)
     PARAMS ((bfd *, PTR, PTR));
 
-  boolean (*_bfd_styp_to_sec_flags_hook)
+  bfd_boolean (*_bfd_styp_to_sec_flags_hook)
     PARAMS ((bfd *, PTR, const char *, asection *, flagword *));
 
   void (*_bfd_set_alignment_hook)
     PARAMS ((bfd *, asection *, PTR));
 
-  boolean (*_bfd_coff_slurp_symbol_table)
+  bfd_boolean (*_bfd_coff_slurp_symbol_table)
     PARAMS ((bfd *));
 
-  boolean (*_bfd_coff_symname_in_debug)
+  bfd_boolean (*_bfd_coff_symname_in_debug)
     PARAMS ((bfd *, struct internal_syment *));
 
-  boolean (*_bfd_coff_pointerize_aux_hook)
+  bfd_boolean (*_bfd_coff_pointerize_aux_hook)
     PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
             unsigned int, combined_entry_type *));
 
-  boolean (*_bfd_coff_print_aux)
+  bfd_boolean (*_bfd_coff_print_aux)
     PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *,
             combined_entry_type *, unsigned int));
 
@@ -769,13 +769,13 @@ typedef struct
   enum coff_symbol_classification (*_bfd_coff_classify_symbol)
     PARAMS ((bfd *, struct internal_syment *));
 
-  boolean (*_bfd_coff_compute_section_file_positions)
+  bfd_boolean (*_bfd_coff_compute_section_file_positions)
     PARAMS ((bfd *));
 
-  boolean (*_bfd_coff_start_final_link)
+  bfd_boolean (*_bfd_coff_start_final_link)
     PARAMS ((bfd *, struct bfd_link_info *));
 
-  boolean (*_bfd_coff_relocate_section)
+  bfd_boolean (*_bfd_coff_relocate_section)
     PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
             struct internal_reloc *, struct internal_syment *, asection **));
 
@@ -784,19 +784,19 @@ typedef struct
             struct coff_link_hash_entry *, struct internal_syment *,
             bfd_vma *));
 
-  boolean (*_bfd_coff_adjust_symndx)
+  bfd_boolean (*_bfd_coff_adjust_symndx)
     PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
-            struct internal_reloc *, boolean *));
+            struct internal_reloc *, bfd_boolean *));
 
-  boolean (*_bfd_coff_link_add_one_symbol)
+  bfd_boolean (*_bfd_coff_link_add_one_symbol)
     PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword,
-            asection *, bfd_vma, const char *, boolean, boolean,
+            asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
             struct bfd_link_hash_entry **));
 
-  boolean (*_bfd_coff_link_output_has_begun)
+  bfd_boolean (*_bfd_coff_link_output_has_begun)
     PARAMS ((bfd *, struct coff_final_link_info *));
 
-  boolean (*_bfd_coff_final_link_postscript)
+  bfd_boolean (*_bfd_coff_final_link_postscript)
     PARAMS ((bfd *, struct coff_final_link_info *));
 
 } bfd_coff_backend_data;
index eb90a8cddb91160b6f8954503d61e3d1a34dcbfe..7fa50698b1c6bb0ca57a43944d6be8fdd8276f89 100644 (file)
@@ -44,10 +44,10 @@ struct ecoff_backend_data
   /* The page boundary used to align sections in a demand-paged
      executable file.  E.g., 0x1000.  */
   bfd_vma round;
-  /* True if the .rdata section is part of the text segment, as on the
-     Alpha.  False if .rdata is part of the data segment, as on the
+  /* TRUE if the .rdata section is part of the text segment, as on the
+     Alpha.  FALSE if .rdata is part of the data segment, as on the
      MIPS.  */
-  boolean rdata_in_text;
+  bfd_boolean rdata_in_text;
   /* Bitsize of constructor entries.  */
   unsigned int constructor_bitsize;
   /* Reloc to use for constructor entries.  */
@@ -60,18 +60,18 @@ struct ecoff_backend_data
   void (*swap_reloc_in) PARAMS ((bfd *, PTR, struct internal_reloc *));
   void (*swap_reloc_out) PARAMS ((bfd *, const struct internal_reloc *, PTR));
   /* Backend reloc tweaking.  */
-  void (*adjust_reloc_in) PARAMS ((bfd *, const struct internal_reloc *,
-                                  arelent *));
-  void (*adjust_reloc_out) PARAMS ((bfd *, const arelent *,
-                                   struct internal_reloc *));
+  void (*adjust_reloc_in)
+    PARAMS ((bfd *, const struct internal_reloc *, arelent *));
+  void (*adjust_reloc_out)
+    PARAMS ((bfd *, const arelent *, struct internal_reloc *));
   /* Relocate section contents while linking.  */
-  boolean (*relocate_section) PARAMS ((bfd *output_bfd, struct bfd_link_info *,
-                                      bfd *input_bfd, asection *input_section,
-                                      bfd_byte *contents,
-                                      PTR external_relocs));
+  bfd_boolean (*relocate_section)
+    PARAMS ((bfd *output_bfd, struct bfd_link_info *, bfd *input_bfd,
+            asection *input_section, bfd_byte *contents,
+            PTR external_relocs));
   /* Do final adjustments to filehdr and aouthdr.  */
-  boolean (*adjust_headers) PARAMS ((bfd *, struct internal_filehdr *,
-                                    struct internal_aouthdr *));
+  bfd_boolean (*adjust_headers)
+    PARAMS ((bfd *, struct internal_filehdr *, struct internal_aouthdr *));
   /* Read an element from an archive at a given file position.  This
      is needed because OSF/1 3.2 uses a weird archive format.  */
   bfd *(*get_elt_at_filepos) PARAMS ((bfd *, file_ptr));
@@ -128,12 +128,12 @@ typedef struct ecoff_tdata
      linking.  */
   asection **symndx_to_section;
 
-  /* True if this BFD was written by the backend linker.  */
-  boolean linker;
+  /* TRUE if this BFD was written by the backend linker.  */
+  bfd_boolean linker;
 
-  /* True if a warning that multiple global pointer values are
+  /* TRUE if a warning that multiple global pointer values are
      needed in the output binary was issued already.  */
-  boolean issued_multiple_gp_warning;
+  bfd_boolean issued_multiple_gp_warning;
 
   /* Used by find_nearest_line entry point.  The structure could be
      included directly in this one, but there's no point to wasting
@@ -143,7 +143,7 @@ typedef struct ecoff_tdata
   /* Whether the .rdata section is in the text segment for this
      particular ECOFF file.  This is not valid until
      ecoff_compute_section_file_positions is called.  */
-  boolean rdata_in_text;
+  bfd_boolean rdata_in_text;
 
 } ecoff_data_type;
 
@@ -157,8 +157,8 @@ typedef struct ecoff_symbol_struct
   /* The fdr for this symbol.  */
   FDR *fdr;
 
-  /* true if this is a local symbol rather than an external one.  */
-  boolean local;
+  /* TRUE if this is a local symbol rather than an external one.  */
+  bfd_boolean local;
 
   /* A pointer to the unswapped hidden information for this symbol.
      This is either a struct sym_ext or a struct ext_ext, depending on
@@ -249,27 +249,28 @@ struct ecoff_link_hash_table
 };
 
 /* Make an ECOFF object.  */
-extern boolean _bfd_ecoff_mkobject PARAMS ((bfd *));
+extern bfd_boolean _bfd_ecoff_mkobject PARAMS ((bfd *));
 
 /* Read in the ECOFF symbolic debugging information.  */
-extern boolean _bfd_ecoff_slurp_symbolic_info
+extern bfd_boolean _bfd_ecoff_slurp_symbolic_info
   PARAMS ((bfd *, asection *, struct ecoff_debug_info *));
 
 /* Generic ECOFF BFD backend vectors.  */
 
-extern boolean _bfd_ecoff_write_object_contents PARAMS ((bfd *abfd));
+extern bfd_boolean _bfd_ecoff_write_object_contents PARAMS ((bfd *abfd));
 extern const bfd_target *_bfd_ecoff_archive_p PARAMS ((bfd *abfd));
 
 #define        _bfd_ecoff_close_and_cleanup _bfd_generic_close_and_cleanup
 #define _bfd_ecoff_bfd_free_cached_info _bfd_generic_bfd_free_cached_info
-extern boolean _bfd_ecoff_new_section_hook
+extern bfd_boolean _bfd_ecoff_new_section_hook
   PARAMS ((bfd *, asection *));
-extern boolean _bfd_ecoff_get_section_contents
+extern bfd_boolean _bfd_ecoff_get_section_contents
   PARAMS ((bfd *, asection *, PTR location, file_ptr, bfd_size_type));
 
 #define _bfd_ecoff_bfd_link_split_section _bfd_generic_link_split_section
 
-extern boolean _bfd_ecoff_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
+extern bfd_boolean _bfd_ecoff_bfd_copy_private_bfd_data
+  PARAMS ((bfd *, bfd *));
 #define _bfd_ecoff_bfd_copy_private_section_data \
   _bfd_generic_bfd_copy_private_section_data
 
@@ -283,12 +284,12 @@ extern boolean _bfd_ecoff_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
   _bfd_generic_bfd_merge_private_bfd_data
 
 #define _bfd_ecoff_bfd_set_private_flags _bfd_generic_bfd_set_private_flags
-extern boolean _bfd_ecoff_slurp_armap PARAMS ((bfd *abfd));
+extern bfd_boolean _bfd_ecoff_slurp_armap PARAMS ((bfd *abfd));
 #define _bfd_ecoff_slurp_extended_name_table _bfd_slurp_extended_name_table
 #define _bfd_ecoff_construct_extended_name_table \
   _bfd_archive_bsd_construct_extended_name_table
 #define _bfd_ecoff_truncate_arname bfd_dont_truncate_arname
-extern boolean _bfd_ecoff_write_armap
+extern bfd_boolean _bfd_ecoff_write_armap
   PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
 #define _bfd_ecoff_read_ar_hdr _bfd_generic_read_ar_hdr
 #define _bfd_ecoff_openr_next_archived_file \
@@ -304,10 +305,10 @@ extern void _bfd_ecoff_print_symbol
   PARAMS ((bfd *, PTR filep, asymbol *, bfd_print_symbol_type));
 extern void _bfd_ecoff_get_symbol_info
   PARAMS ((bfd *, asymbol *, symbol_info *));
-extern boolean _bfd_ecoff_bfd_is_local_label_name
+extern bfd_boolean _bfd_ecoff_bfd_is_local_label_name
   PARAMS ((bfd *, const char *));
 #define _bfd_ecoff_get_lineno _bfd_nosymbols_get_lineno
-extern boolean _bfd_ecoff_find_nearest_line
+extern bfd_boolean _bfd_ecoff_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma offset,
           const char **filename_ptr, const char **fnname_ptr,
           unsigned int *retline_ptr));
@@ -320,21 +321,21 @@ extern long _bfd_ecoff_canonicalize_reloc
   PARAMS ((bfd *, asection *, arelent **, asymbol **symbols));
 /* ecoff_bfd_reloc_type_lookup defined by backend. */
 
-extern boolean _bfd_ecoff_set_arch_mach
+extern bfd_boolean _bfd_ecoff_set_arch_mach
   PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-extern boolean _bfd_ecoff_set_section_contents
+extern bfd_boolean _bfd_ecoff_set_section_contents
   PARAMS ((bfd *, asection *, PTR location, file_ptr, bfd_size_type));
 
-extern int _bfd_ecoff_sizeof_headers PARAMS ((bfd *abfd, boolean reloc));
+extern int _bfd_ecoff_sizeof_headers PARAMS ((bfd *abfd, bfd_boolean reloc));
 /* ecoff_bfd_get_relocated_section_contents defined by backend.  */
 /* ecoff_bfd_relax_section defined by backend.  */
 extern struct bfd_link_hash_table *_bfd_ecoff_bfd_link_hash_table_create
   PARAMS ((bfd *));
 #define _bfd_ecoff_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
-extern boolean _bfd_ecoff_bfd_link_add_symbols
+extern bfd_boolean _bfd_ecoff_bfd_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
 #define _bfd_ecoff_bfd_link_just_syms _bfd_generic_link_just_syms
-extern boolean _bfd_ecoff_bfd_final_link
+extern bfd_boolean _bfd_ecoff_bfd_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Hook functions for the generic COFF section reading code.  */
@@ -342,10 +343,11 @@ extern boolean _bfd_ecoff_bfd_final_link
 extern PTR _bfd_ecoff_mkobject_hook PARAMS ((bfd *, PTR filehdr, PTR aouthdr));
 #define _bfd_ecoff_set_alignment_hook \
   ((void (*) PARAMS ((bfd *, asection *, PTR))) bfd_void)
-extern boolean _bfd_ecoff_set_arch_mach_hook PARAMS ((bfd *abfd, PTR filehdr));
-extern boolean _bfd_ecoff_styp_to_sec_flags
+extern bfd_boolean _bfd_ecoff_set_arch_mach_hook
+  PARAMS ((bfd *abfd, PTR filehdr));
+extern bfd_boolean _bfd_ecoff_styp_to_sec_flags
   PARAMS ((bfd *, PTR, const char *, asection *, flagword *));
-extern boolean _bfd_ecoff_slurp_symbol_table PARAMS ((bfd *abfd));
+extern bfd_boolean _bfd_ecoff_slurp_symbol_table PARAMS ((bfd *abfd));
 
 /* ECOFF auxiliary information swapping routines.  These are the same
    for all ECOFF targets, so they are defined in ecofflink.c.  */
index c48566c97f7035b47797411c75e22766b6b5a0bc..56c7ce1a20c46e49bf2fdd5c5538f67563b735a1 100644 (file)
@@ -1,5 +1,5 @@
 /* IEEE-695 object file formats:  definitions internal to BFD.
-   Copyright 1990, 1991, 1992, 1994, 1996, 2001
+   Copyright 1990, 1991, 1992, 1994, 1996, 2001, 2002
    Free Software Foundation, Inc.
    Written by Cygnus Support.  Mostly Steve Chamberlain's fault.
 
@@ -56,7 +56,7 @@ typedef struct ieee_per_section
   /* For output */
   file_ptr current_pos;
   unsigned int current_byte;
-  boolean initialized;
+  bfd_boolean initialized;
   ieee_reloc_type **reloc_tail_ptr;
 } ieee_per_section_type;
 
@@ -72,8 +72,8 @@ typedef struct {
 typedef struct ieee_data_struct
 {
   common_header_type h;
-  boolean read_symbols;
-  boolean read_data;
+  bfd_boolean read_symbols;
+  bfd_boolean read_data;
   file_ptr output_cursor;
   /* Map of section indexes to section ptrs */
   asection **section_table;
@@ -103,10 +103,10 @@ typedef struct ieee_data_struct
   int external_reference_base_offset;
 
 
-  boolean symbol_table_full;
+  bfd_boolean symbol_table_full;
 
 
-boolean done_debug;
+bfd_boolean done_debug;
 
 
 bfd_chain_type *chain_head;
index 4773d555ffc9074408a48b9e901b0facd99d8361..314a21fe61bf28bfd0c8447c4cf62dff9e5fe533 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end data structures for NLM (NetWare Loadable Modules) files.
-   Copyright 1993, 1994, 2001 Free Software Foundation, Inc.
+   Copyright 1993, 1994, 2001, 2002 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -52,32 +52,33 @@ typedef struct
   struct nlm_relent *relocs;
 } nlmNAME(symbol_type);
 
-extern boolean nlm_mkobject PARAMS ((bfd *));
-extern boolean nlm_set_arch_mach PARAMS ((bfd *, enum bfd_architecture,
-                                         unsigned long));
+extern bfd_boolean nlm_mkobject
+  PARAMS ((bfd *));
+extern bfd_boolean nlm_set_arch_mach
+  PARAMS ((bfd *, enum bfd_architecture, unsigned long));
 
 extern void nlmNAME(get_symbol_info)
-     PARAMS ((bfd *, asymbol *, symbol_info *));
+  PARAMS ((bfd *, asymbol *, symbol_info *));
 extern long nlmNAME(get_symtab_upper_bound)
-     PARAMS ((bfd *));
+  PARAMS ((bfd *));
 extern long nlmNAME(get_symtab)
-     PARAMS ((bfd *, asymbol **));
+  PARAMS ((bfd *, asymbol **));
 extern asymbol *nlmNAME(make_empty_symbol)
-     PARAMS ((bfd *));
+  PARAMS ((bfd *));
 extern void nlmNAME(print_symbol)
-     PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
+  PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
 extern long nlmNAME(get_reloc_upper_bound)
-     PARAMS ((bfd *, asection *));
+  PARAMS ((bfd *, asection *));
 extern long nlmNAME(canonicalize_reloc)
-     PARAMS ((bfd *, asection *, arelent **, asymbol **));
+  PARAMS ((bfd *, asection *, arelent **, asymbol **));
 extern const bfd_target *nlmNAME(object_p)
-     PARAMS ((bfd *));
-extern boolean nlmNAME(set_arch_mach)
-     PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-extern boolean nlmNAME(set_section_contents)
-     PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-extern boolean nlmNAME(write_object_contents)
-     PARAMS ((bfd *));
+  PARAMS ((bfd *));
+extern bfd_boolean nlmNAME(set_arch_mach)
+  PARAMS ((bfd *, enum bfd_architecture, unsigned long));
+extern bfd_boolean nlmNAME(set_section_contents)
+  PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
+extern bfd_boolean nlmNAME(write_object_contents)
+  PARAMS ((bfd *));
 
 /* Some private data is stashed away for future use using the tdata pointer
    in the bfd structure.  */
@@ -165,16 +166,16 @@ struct nlm_backend_data
   /* Some NLM formats do not use the uninitialized data section, so
      all uninitialized data must be put into the regular data section
      instead.  */
-  boolean no_uninitialized_data;
+  bfd_boolean no_uninitialized_data;
   /* Some NLM formats have a prefix on the file.  If this function is
      not NULL, it will be called by nlm_object_p.  It should return
-     true if this file could match this format, and it should leave
+     TRUE if this file could match this format, and it should leave
      the BFD such that a bfd_bread will pick up the fixed header.  */
-  boolean (*nlm_backend_object_p) PARAMS ((bfd *));
+  bfd_boolean (*nlm_backend_object_p) PARAMS ((bfd *));
   /* Write out the prefix.  This function may be NULL.  This must
      write out the same number of bytes as is in the field
      optional_prefix_size.  */
-  boolean (*nlm_write_prefix) PARAMS ((bfd *));
+  bfd_boolean (*nlm_write_prefix) PARAMS ((bfd *));
   /* Read a relocation fixup from abfd.  The reloc information is
      machine specific.  The second argument is the symbol if this is
      an import, or NULL if this is a reloc fixup.  This function
@@ -182,36 +183,33 @@ struct nlm_backend_data
      belongs in, and the fourth argument to the reloc itself; it does
      not need to fill in the sym_ptr_ptr field for a reloc against an
      import symbol.  */
-  boolean (*nlm_read_reloc) PARAMS ((bfd *, nlmNAME(symbol_type) *,
-                                    asection **, arelent *));
+  bfd_boolean (*nlm_read_reloc)
+    PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *));
   /* To make objcopy to an i386 NLM work, the i386 backend needs a
      chance to work over the relocs.  This is a bit icky.  */
-  boolean (*nlm_mangle_relocs) PARAMS ((bfd *, asection *, PTR data,
-                                       bfd_vma offset,
-                                       bfd_size_type count));
+  bfd_boolean (*nlm_mangle_relocs)
+    PARAMS ((bfd *, asection *, PTR data, bfd_vma offset, bfd_size_type count));
   /* Read an import record from abfd.  It would be nice if this
      were in a machine-dependent format, but it doesn't seem to be. */
-  boolean (*nlm_read_import) PARAMS ((bfd *, nlmNAME(symbol_type) *));
+  bfd_boolean (*nlm_read_import) PARAMS ((bfd *, nlmNAME(symbol_type) *));
   /* Write an import record to abfd. */
-  boolean (*nlm_write_import) PARAMS ((bfd *, asection *, arelent *));
+  bfd_boolean (*nlm_write_import) PARAMS ((bfd *, asection *, arelent *));
   /* Set the section for a public symbol.  This may be NULL, in which
      case a default method will be used.  */
-  boolean (*nlm_set_public_section) PARAMS ((bfd *, nlmNAME(symbol_type) *));
+  bfd_boolean (*nlm_set_public_section)
+    PARAMS ((bfd *, nlmNAME(symbol_type) *));
   /* Get the offset to write out for a public symbol.  This may be
      NULL, in which case a default method will be used.  */
   bfd_vma (*nlm_get_public_offset) PARAMS ((bfd *, asymbol *));
   /* Swap the fixed header in and out */
-  void (*nlm_swap_fhdr_in) PARAMS ((bfd *,
-                                   PTR,
-                                   Nlm_Internal_Fixed_Header *));
-  void (*nlm_swap_fhdr_out) PARAMS ((bfd *,
-                                    struct nlm_internal_fixed_header *,
-                                    PTR));
+  void (*nlm_swap_fhdr_in)
+    PARAMS ((bfd *, PTR, Nlm_Internal_Fixed_Header *));
+  void (*nlm_swap_fhdr_out)
+    PARAMS ((bfd *, struct nlm_internal_fixed_header *, PTR));
   /* Write out an external reference.  */
-  boolean (*nlm_write_external) PARAMS ((bfd *, bfd_size_type,
-                                        asymbol *,
-                                        struct reloc_and_sec *));
-  boolean (*nlm_write_export) PARAMS ((bfd *, asymbol *, bfd_vma));
+  bfd_boolean (*nlm_write_external)
+    PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *));
+  bfd_boolean (*nlm_write_export) PARAMS ((bfd *, asymbol *, bfd_vma));
 };
 
 #define nlm_backend(bfd) \
index 37c94c9d0d2a7b49c31dc8b90c160d4342e5dab3..a91356b37781b5d2326bffb50c4b350c507be22c 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD internal declarations for Oasys file format handling.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1997
+   Copyright 1990, 1991, 1992, 1993, 1994, 1997, 2002
    Free Software Foundation, Inc.
    Scrawled by Steve Chamberlain of Cygnus Support.
 
@@ -39,14 +39,14 @@ typedef struct _oasys_per_section
   asection *section;
   bfd_byte *data;
   bfd_vma offset;
-  boolean had_vma;
+  bfd_boolean had_vma;
   oasys_reloc_type **reloc_tail_ptr;
   bfd_vma pc;
 
 
   file_ptr current_pos;
   unsigned int current_byte;
-  boolean initialized;
+  bfd_boolean initialized;
 } oasys_per_section_type;
 
 #define NSECTIONS 10
index 6b232b48a7190d39584c9784dc91e161519717fa..7a5f9fe2394f7b27418f471db2cd60f943d0342d 100644 (file)
@@ -1,5 +1,5 @@
 /* Support for the generic parts of PE/PEI; common header information.
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001
+   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Written by Cygnus Solutions.
 
@@ -313,13 +313,13 @@ unsigned int _bfd_XXi_swap_aouthdr_out PARAMS ((bfd *, PTR, PTR));
 unsigned int _bfd_XXi_swap_scnhdr_out PARAMS ((bfd *, PTR, PTR));
 #define coff_swap_scnhdr_out _bfd_XXi_swap_scnhdr_out
 
-boolean _bfd_XX_print_private_bfd_data_common PARAMS ((bfd *, PTR));
+bfd_boolean _bfd_XX_print_private_bfd_data_common PARAMS ((bfd *, PTR));
 
-boolean _bfd_XX_bfd_copy_private_bfd_data_common PARAMS ((bfd *, bfd *));
+bfd_boolean _bfd_XX_bfd_copy_private_bfd_data_common PARAMS ((bfd *, bfd *));
 
 void _bfd_XX_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
 
-boolean _bfd_XXi_final_link_postscript
+bfd_boolean _bfd_XXi_final_link_postscript
   PARAMS ((bfd *, struct coff_final_link_info *));
 
 #ifndef coff_final_link_postscript
@@ -331,5 +331,5 @@ boolean _bfd_XXi_final_link_postscript
 
 unsigned int _bfd_XX_only_swap_filehdr_out PARAMS ((bfd*, PTR, PTR));
 unsigned int _bfd_XXi_only_swap_filehdr_out PARAMS ((bfd*, PTR, PTR));
-boolean _bfd_XX_bfd_copy_private_section_data
+bfd_boolean _bfd_XX_bfd_copy_private_section_data
   PARAMS ((bfd *, asection *, bfd *, asection *));
index 819b51fa150c357baa255321b035e0f39e325788..8537617fcf157a48f06cb9028a47fef76a2dc60e 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD XCOFF object file private structure.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2001, 2002 Free Software Foundation, Inc.
    Written by Tom Rix, Redhat.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -68,11 +68,11 @@ struct xcoff_backend_data_rec
      2 : XCOFF64.  */
   unsigned long _xcoff_ldhdr_version;
 
-  boolean (* _xcoff_put_symbol_name)
+  bfd_boolean (* _xcoff_put_symbol_name)
     PARAMS ((bfd *, struct bfd_strtab_hash *, struct internal_syment *,
             const char *));
 
-  boolean (* _xcoff_put_ldsymbol_name)
+  bfd_boolean (* _xcoff_put_ldsymbol_name)
     PARAMS ((bfd *, struct xcoff_loader_info *, struct internal_ldsym *,
             const char *));
 
@@ -84,9 +84,9 @@ struct xcoff_backend_data_rec
   /* Line number and relocation overflow.
      XCOFF32 overflows to another section when the line number or the 
      relocation count exceeds 0xffff.  XCOFF64 does not overflow.  */
-  boolean (*_xcoff_is_lineno_count_overflow)
+  bfd_boolean (*_xcoff_is_lineno_count_overflow)
     PARAMS ((bfd *, bfd_vma));
-  boolean (*_xcoff_is_reloc_count_overflow)
+  bfd_boolean (*_xcoff_is_reloc_count_overflow)
     PARAMS ((bfd *, bfd_vma));
 
   /* Loader section symbol and relocation table offset
@@ -106,8 +106,8 @@ struct xcoff_backend_data_rec
 
   /* rtinit.  */
   unsigned int _xcoff_rtinit_size;
-  boolean (*_xcoff_generate_rtinit)
-    PARAMS ((bfd *, const char *, const char *, boolean));
+  bfd_boolean (*_xcoff_generate_rtinit)
+    PARAMS ((bfd *, const char *, const char *, bfd_boolean));
 };
 
 /* Look up an entry in an XCOFF link hash table.  */
@@ -120,7 +120,7 @@ struct xcoff_backend_data_rec
 #define xcoff_link_hash_traverse(table, func, info)                    \
   (bfd_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func),     \
     (info)))
 
 /* Get the XCOFF link hash table from the info structure.  This is
@@ -227,19 +227,19 @@ struct xcoff_backend_data_rec
 #define XCOFF_COMPLAIN_FUNCTION_ARGS \
   bfd *, bfd_vma, bfd_vma, struct reloc_howto_struct *howto
 
-extern boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
+extern bfd_boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
   PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
-extern boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW])
+extern bfd_boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW])
   PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS));
 
 /* Relocation functions */
-boolean xcoff_reloc_type_noop PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
-boolean xcoff_reloc_type_fail PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
-boolean xcoff_reloc_type_pos PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
-boolean xcoff_reloc_type_neg PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
-boolean xcoff_reloc_type_rel PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
-boolean xcoff_reloc_type_toc PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
-boolean xcoff_reloc_type_ba PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
-boolean xcoff_reloc_type_crel PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+bfd_boolean xcoff_reloc_type_noop PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+bfd_boolean xcoff_reloc_type_fail PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+bfd_boolean xcoff_reloc_type_pos PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+bfd_boolean xcoff_reloc_type_neg PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+bfd_boolean xcoff_reloc_type_rel PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+bfd_boolean xcoff_reloc_type_toc PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+bfd_boolean xcoff_reloc_type_ba PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
+bfd_boolean xcoff_reloc_type_crel PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
 
 #endif /* LIBXCOFF_H */
index a5ded1f58836befe5af09bee5796db6b369aafc8..918f4f8fd8df9c34c3011e848b9f1ebf0b0f2a03 100644 (file)
@@ -200,7 +200,7 @@ SUBSUBSECTION
        read the symbol information, the <<_bfd_link_add_symbols>>
        routine should save it somewhere attached to the object file
        BFD.  However, the information should only be saved if the
-       <<keep_memory>> field of the <<info>> argument is true, so
+       <<keep_memory>> field of the <<info>> argument is TRUE, so
        that the <<-no-keep-memory>> linker switch is effective.
 
        The a.out function which adds symbols from an object file is
@@ -406,32 +406,34 @@ SUBSUBSECTION
        file at the end of <<NAME(aout,final_link)>>.
 */
 
-static boolean generic_link_read_symbols
+static bfd_boolean generic_link_read_symbols
   PARAMS ((bfd *));
-static boolean generic_link_add_symbols
-  PARAMS ((bfd *, struct bfd_link_info *, boolean collect));
-static boolean generic_link_add_object_symbols
-  PARAMS ((bfd *, struct bfd_link_info *, boolean collect));
-static boolean generic_link_check_archive_element_no_collect
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded));
-static boolean generic_link_check_archive_element_collect
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded));
-static boolean generic_link_check_archive_element
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded, boolean collect));
-static boolean generic_link_add_symbol_list
+static bfd_boolean generic_link_add_symbols
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean collect));
+static bfd_boolean generic_link_add_object_symbols
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean collect));
+static bfd_boolean generic_link_check_archive_element_no_collect
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded));
+static bfd_boolean generic_link_check_archive_element_collect
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded));
+static bfd_boolean generic_link_check_archive_element
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded,
+          bfd_boolean collect));
+static bfd_boolean generic_link_add_symbol_list
   PARAMS ((bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **,
-          boolean collect));
-static bfd *hash_entry_bfd PARAMS ((struct bfd_link_hash_entry *));
+          bfd_boolean collect));
+static bfd *hash_entry_bfd
+  PARAMS ((struct bfd_link_hash_entry *));
 static void set_symbol_from_hash
   PARAMS ((asymbol *, struct bfd_link_hash_entry *));
-static boolean generic_add_output_symbol
+static bfd_boolean generic_add_output_symbol
   PARAMS ((bfd *, size_t *psymalloc, asymbol *));
-static boolean default_data_link_order
+static bfd_boolean default_data_link_order
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
           struct bfd_link_order *));
-static boolean default_indirect_link_order
+static bfd_boolean default_indirect_link_order
   PARAMS ((bfd *, struct bfd_link_info *, asection *,
-          struct bfd_link_order *, boolean));
+          struct bfd_link_order *, bfd_boolean));
 
 /* The link hash table structure is defined in bfdlink.h.  It provides
    a base hash table which the backend specific hash tables are built
@@ -472,7 +474,7 @@ _bfd_link_hash_newfunc (entry, table, string)
 /* Initialize a link hash table.  The BFD argument is the one
    responsible for creating this table.  */
 
-boolean
+bfd_boolean
 _bfd_link_hash_table_init (table, abfd, newfunc)
      struct bfd_link_hash_table *table;
      bfd *abfd;
@@ -488,7 +490,7 @@ _bfd_link_hash_table_init (table, abfd, newfunc)
   return bfd_hash_table_init (&table->table, newfunc);
 }
 
-/* Look up a symbol in a link hash table.  If follow is true, we
+/* Look up a symbol in a link hash table.  If follow is TRUE, we
    follow bfd_link_hash_indirect and bfd_link_hash_warning links to
    the real symbol.  */
 
@@ -496,9 +498,9 @@ struct bfd_link_hash_entry *
 bfd_link_hash_lookup (table, string, create, copy, follow)
      struct bfd_link_hash_table *table;
      const char *string;
-     boolean create;
-     boolean copy;
-     boolean follow;
+     bfd_boolean create;
+     bfd_boolean copy;
+     bfd_boolean follow;
 {
   struct bfd_link_hash_entry *ret;
 
@@ -524,9 +526,9 @@ bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
      bfd *abfd;
      struct bfd_link_info *info;
      const char *string;
-     boolean create;
-     boolean copy;
-     boolean follow;
+     bfd_boolean create;
+     bfd_boolean copy;
+     bfd_boolean follow;
 {
   bfd_size_type amt;
 
@@ -541,7 +543,7 @@ bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
 #undef WRAP
 #define WRAP "__wrap_"
 
-      if (bfd_hash_lookup (info->wrap_hash, l, false, false) != NULL)
+      if (bfd_hash_lookup (info->wrap_hash, l, FALSE, FALSE) != NULL)
        {
          char *n;
          struct bfd_link_hash_entry *h;
@@ -559,7 +561,7 @@ bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
          n[1] = '\0';
          strcat (n, WRAP);
          strcat (n, l);
-         h = bfd_link_hash_lookup (info->hash, n, create, true, follow);
+         h = bfd_link_hash_lookup (info->hash, n, create, TRUE, follow);
          free (n);
          return h;
        }
@@ -572,7 +574,7 @@ bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
       if (*l == '_'
          && strncmp (l, REAL, sizeof REAL - 1) == 0
          && bfd_hash_lookup (info->wrap_hash, l + sizeof REAL - 1,
-                             false, false) != NULL)
+                             FALSE, FALSE) != NULL)
        {
          char *n;
          struct bfd_link_hash_entry *h;
@@ -590,7 +592,7 @@ bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
          n[0] = bfd_get_symbol_leading_char (abfd);
          n[1] = '\0';
          strcat (n, l + sizeof REAL - 1);
-         h = bfd_link_hash_lookup (info->hash, n, create, true, follow);
+         h = bfd_link_hash_lookup (info->hash, n, create, TRUE, follow);
          free (n);
          return h;
        }
@@ -610,11 +612,11 @@ bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
 void
 bfd_link_hash_traverse (table, func, info)
      struct bfd_link_hash_table *table;
-     boolean (*func) PARAMS ((struct bfd_link_hash_entry *, PTR));
+     bfd_boolean (*func) PARAMS ((struct bfd_link_hash_entry *, PTR));
      PTR info;
 {
   bfd_hash_traverse (&table->table,
-                    ((boolean (*) PARAMS ((struct bfd_hash_entry *, PTR)))
+                    ((bfd_boolean (*) PARAMS ((struct bfd_hash_entry *, PTR)))
                      func),
                     info);
 }
@@ -634,7 +636,7 @@ bfd_link_add_undef (table, h)
   table->undefs_tail = h;
 }
 \f
-/* Routine to create an entry in an generic link hash table.  */
+/* Routine to create an entry in a generic link hash table.  */
 
 struct bfd_hash_entry *
 _bfd_generic_link_hash_newfunc (entry, table, string)
@@ -660,14 +662,14 @@ _bfd_generic_link_hash_newfunc (entry, table, string)
 
       /* Set local fields.  */
       ret = (struct generic_link_hash_entry *) entry;
-      ret->written = false;
+      ret->written = FALSE;
       ret->sym = NULL;
     }
 
   return entry;
 }
 
-/* Create an generic link hash table.  */
+/* Create a generic link hash table.  */
 
 struct bfd_link_hash_table *
 _bfd_generic_link_hash_table_create (abfd)
@@ -706,7 +708,7 @@ _bfd_generic_link_hash_table_free (hash)
    the hash table pointing to different instances of the symbol
    structure.  */
 
-static boolean
+static bfd_boolean
 generic_link_read_symbols (abfd)
      bfd *abfd;
 {
@@ -717,30 +719,30 @@ generic_link_read_symbols (abfd)
 
       symsize = bfd_get_symtab_upper_bound (abfd);
       if (symsize < 0)
-       return false;
+       return FALSE;
       bfd_get_outsymbols (abfd) =
        (asymbol **) bfd_alloc (abfd, (bfd_size_type) symsize);
       if (bfd_get_outsymbols (abfd) == NULL && symsize != 0)
-       return false;
+       return FALSE;
       symcount = bfd_canonicalize_symtab (abfd, bfd_get_outsymbols (abfd));
       if (symcount < 0)
-       return false;
+       return FALSE;
       bfd_get_symcount (abfd) = symcount;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Generic function to add symbols to from an object file to the
    global hash table.  This version does not automatically collect
    constructors by name.  */
 
-boolean
+bfd_boolean
 _bfd_generic_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
-  return generic_link_add_symbols (abfd, info, false);
+  return generic_link_add_symbols (abfd, info, FALSE);
 }
 
 /* Generic function to add symbols from an object file to the global
@@ -750,12 +752,12 @@ _bfd_generic_link_add_symbols (abfd, info)
    constructors and destructors; these are approximately those targets
    for which gcc uses collect2 and do not support stabs.  */
 
-boolean
+bfd_boolean
 _bfd_generic_link_add_symbols_collect (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
-  return generic_link_add_symbols (abfd, info, true);
+  return generic_link_add_symbols (abfd, info, TRUE);
 }
 
 /* Indicate that we are only retrieving symbol values from this
@@ -773,13 +775,13 @@ _bfd_generic_link_just_syms (sec, info)
 
 /* Add symbols from an object file to the global hash table.  */
 
-static boolean
+static bfd_boolean
 generic_link_add_symbols (abfd, info, collect)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean collect;
+     bfd_boolean collect;
 {
-  boolean ret;
+  bfd_boolean ret;
 
   switch (bfd_get_format (abfd))
     {
@@ -795,7 +797,7 @@ generic_link_add_symbols (abfd, info, collect)
       break;
     default:
       bfd_set_error (bfd_error_wrong_format);
-      ret = false;
+      ret = FALSE;
     }
 
   return ret;
@@ -803,17 +805,17 @@ generic_link_add_symbols (abfd, info, collect)
 
 /* Add symbols from an object file to the global hash table.  */
 
-static boolean
+static bfd_boolean
 generic_link_add_object_symbols (abfd, info, collect)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean collect;
+     bfd_boolean collect;
 {
   bfd_size_type symcount;
   struct symbol_cache_entry **outsyms;
 
   if (! generic_link_read_symbols (abfd))
-    return false;
+    return FALSE;
   symcount = _bfd_generic_link_get_symcount (abfd);
   outsyms = _bfd_generic_link_get_symbols (abfd);
   return generic_link_add_symbol_list (abfd, info, symcount, outsyms, collect);
@@ -848,7 +850,7 @@ struct archive_hash_table
 
 static struct bfd_hash_entry *archive_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static boolean archive_hash_table_init
+static bfd_boolean archive_hash_table_init
   PARAMS ((struct archive_hash_table *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
                                       struct bfd_hash_table *,
@@ -887,7 +889,7 @@ archive_hash_newfunc (entry, table, string)
 
 /* Initialize an archive hash table.  */
 
-static boolean
+static bfd_boolean
 archive_hash_table_init (table, newfunc)
      struct archive_hash_table *table;
      struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
@@ -927,10 +929,10 @@ archive_hash_table_init (table, newfunc)
    re-search the symbol table each time a new object file was added.
 
    The CHECKFN argument is used to see if an object file should be
-   included.  CHECKFN should set *PNEEDED to true if the object file
+   included.  CHECKFN should set *PNEEDED to TRUE if the object file
    should be included, and must also call the bfd_link_info
    add_archive_element callback function and handle adding the symbols
-   to the global hash table.  CHECKFN should only return false if some
+   to the global hash table.  CHECKFN should only return FALSE if some
    sort of error occurs.
 
    For some formats, such as a.out, it is possible to look through an
@@ -944,12 +946,12 @@ archive_hash_table_init (table, newfunc)
    may create new undefined symbols which cause a previously examined
    object file to be included.  */
 
-boolean
+bfd_boolean
 _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean (*checkfn) PARAMS ((bfd *, struct bfd_link_info *,
-                                boolean *pneeded));
+     bfd_boolean (*checkfn)
+       PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded));
 {
   carsym *arsyms;
   carsym *arsym_end;
@@ -963,9 +965,9 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
     {
       /* An empty archive is a special case.  */
       if (bfd_openr_next_archived_file (abfd, (bfd *) NULL) == NULL)
-       return true;
+       return TRUE;
       bfd_set_error (bfd_error_no_armap);
-      return false;
+      return FALSE;
     }
 
   arsyms = bfd_ardata (abfd)->symdefs;
@@ -974,13 +976,13 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
   /* In order to quickly determine whether an symbol is defined in
      this archive, we build a hash table of the symbols.  */
   if (! archive_hash_table_init (&arsym_hash, archive_hash_newfunc))
-    return false;
+    return FALSE;
   for (arsym = arsyms, indx = 0; arsym < arsym_end; arsym++, indx++)
     {
       struct archive_hash_entry *arh;
       struct archive_list *l, **pp;
 
-      arh = archive_hash_lookup (&arsym_hash, arsym->name, true, false);
+      arh = archive_hash_lookup (&arsym_hash, arsym->name, TRUE, FALSE);
       if (arh == (struct archive_hash_entry *) NULL)
        goto error_return;
       l = ((struct archive_list *)
@@ -1032,7 +1034,7 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
        }
 
       /* Look for this symbol in the archive symbol map.  */
-      arh = archive_hash_lookup (&arsym_hash, h->root.string, false, false);
+      arh = archive_hash_lookup (&arsym_hash, h->root.string, FALSE, FALSE);
       if (arh == (struct archive_hash_entry *) NULL)
        {
          /* If we haven't found the exact symbol we're looking for,
@@ -1042,10 +1044,10 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
              bfd_size_type amt = strlen (h->root.string) + 10;
              char *buf = (char *) bfd_malloc (amt);
              if (buf == NULL)
-               return false;
+               return FALSE;
 
              sprintf (buf, "__imp_%s", h->root.string);
-             arh = archive_hash_lookup (&arsym_hash, buf, false, false);
+             arh = archive_hash_lookup (&arsym_hash, buf, FALSE, FALSE);
              free(buf);
            }
          if (arh == (struct archive_hash_entry *) NULL)
@@ -1058,7 +1060,7 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
       for (l = arh->defs; l != (struct archive_list *) NULL; l = l->next)
        {
          bfd *element;
-         boolean needed;
+         bfd_boolean needed;
 
          /* If the symbol has gotten defined along the way, quit.  */
          if (h->type != bfd_link_hash_undefined
@@ -1107,11 +1109,11 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
   /* Save PASS in case we are called again.  */
   abfd->archive_pass = pass;
 
-  return true;
+  return TRUE;
 
  error_return:
   archive_hash_table_free (&arsym_hash);
-  return false;
+  return FALSE;
 }
 \f
 /* See if we should include an archive element.  This version is used
@@ -1119,44 +1121,44 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
    the symbol name, presumably because we have some other mechanism
    for finding them.  */
 
-static boolean
+static bfd_boolean
 generic_link_check_archive_element_no_collect (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
-  return generic_link_check_archive_element (abfd, info, pneeded, false);
+  return generic_link_check_archive_element (abfd, info, pneeded, FALSE);
 }
 
 /* See if we should include an archive element.  This version is used
    when we want to automatically collect constructors based on the
    symbol name, as collect2 does.  */
 
-static boolean
+static bfd_boolean
 generic_link_check_archive_element_collect (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
-  return generic_link_check_archive_element (abfd, info, pneeded, true);
+  return generic_link_check_archive_element (abfd, info, pneeded, TRUE);
 }
 
 /* See if we should include an archive element.  Optionally collect
    constructors.  */
 
-static boolean
+static bfd_boolean
 generic_link_check_archive_element (abfd, info, pneeded, collect)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
-     boolean collect;
+     bfd_boolean *pneeded;
+     bfd_boolean collect;
 {
   asymbol **pp, **ppend;
 
-  *pneeded = false;
+  *pneeded = FALSE;
 
   if (! generic_link_read_symbols (abfd))
-    return false;
+    return FALSE;
 
   pp = _bfd_generic_link_get_symbols (abfd);
   ppend = pp + _bfd_generic_link_get_symcount (abfd);
@@ -1177,8 +1179,8 @@ generic_link_check_archive_element (abfd, info, pneeded, collect)
         symbol (type bfd_link_hash_undefweak) is not considered to be
         a reference when pulling files out of an archive.  See the
         SVR4 ABI, p. 4-27.  */
-      h = bfd_link_hash_lookup (info->hash, bfd_asymbol_name (p), false,
-                               false, true);
+      h = bfd_link_hash_lookup (info->hash, bfd_asymbol_name (p), FALSE,
+                               FALSE, TRUE);
       if (h == (struct bfd_link_hash_entry *) NULL
          || (h->type != bfd_link_hash_undefined
              && h->type != bfd_link_hash_common))
@@ -1194,14 +1196,14 @@ generic_link_check_archive_element (abfd, info, pneeded, collect)
          /* This object file defines this symbol, so pull it in.  */
          if (! (*info->callbacks->add_archive_element) (info, abfd,
                                                         bfd_asymbol_name (p)))
-           return false;
+           return FALSE;
          symcount = _bfd_generic_link_get_symcount (abfd);
          symbols = _bfd_generic_link_get_symbols (abfd);
          if (! generic_link_add_symbol_list (abfd, info, symcount,
                                              symbols, collect))
-           return false;
-         *pneeded = true;
-         return true;
+           return FALSE;
+         *pneeded = TRUE;
+         return TRUE;
        }
 
       /* P is a common symbol.  */
@@ -1220,9 +1222,9 @@ generic_link_check_archive_element (abfd, info, pneeded, collect)
                 file.  This is for the -u option in the linker.  */
              if (! (*info->callbacks->add_archive_element)
                  (info, abfd, bfd_asymbol_name (p)))
-               return false;
-             *pneeded = true;
-             return true;
+               return FALSE;
+             *pneeded = TRUE;
+             return TRUE;
            }
 
          /* Turn the symbol into a common symbol but do not link in
@@ -1238,7 +1240,7 @@ generic_link_check_archive_element (abfd, info, pneeded, collect)
             bfd_hash_allocate (&info->hash->table,
                                sizeof (struct bfd_link_hash_common_entry)));
          if (h->u.c.p == NULL)
-           return false;
+           return FALSE;
 
          size = bfd_asymbol_value (p);
          h->u.c.size = size;
@@ -1267,22 +1269,22 @@ generic_link_check_archive_element (abfd, info, pneeded, collect)
     }
 
   /* This archive element is not needed.  */
-  return true;
+  return TRUE;
 }
 
 /* Add the symbols from an object file to the global hash table.  ABFD
    is the object file.  INFO is the linker information.  SYMBOL_COUNT
    is the number of symbols.  SYMBOLS is the list of symbols.  COLLECT
-   is true if constructors should be automatically collected by name
+   is TRUE if constructors should be automatically collected by name
    as is done by collect2.  */
 
-static boolean
+static bfd_boolean
 generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect)
      bfd *abfd;
      struct bfd_link_info *info;
      bfd_size_type symbol_count;
      asymbol **symbols;
-     boolean collect;
+     bfd_boolean collect;
 {
   asymbol **pp, **ppend;
 
@@ -1331,8 +1333,8 @@ generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect)
          bh = NULL;
          if (! (_bfd_generic_link_add_one_symbol
                 (info, abfd, name, p->flags, bfd_get_section (p),
-                 p->value, string, false, collect, &bh)))
-           return false;
+                 p->value, string, FALSE, collect, &bh)))
+           return FALSE;
          h = (struct generic_link_hash_entry *) bh;
 
          /* If this is a constructor symbol, and the linker didn't do
@@ -1379,7 +1381,7 @@ generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* We use a state table to deal with adding symbols from an object
@@ -1506,15 +1508,15 @@ hash_entry_bfd (h)
    STRING is used for either an indirect symbol, in which case it is
      the name of the symbol to indirect to, or a warning symbol, in
      which case it is the warning string.
-   COPY is true if NAME or STRING must be copied into locally
+   COPY is TRUE if NAME or STRING must be copied into locally
      allocated memory if they need to be saved.
-   COLLECT is true if we should automatically collect gcc constructor
+   COLLECT is TRUE if we should automatically collect gcc constructor
      or destructor names as collect2 does.
    HASHP, if not NULL, is a place to store the created hash table
      entry; if *HASHP is not NULL, the caller has already looked up
      the hash table entry, and stored it in *HASHP.  */
 
-boolean
+bfd_boolean
 _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
                                  string, copy, collect, hashp)
      struct bfd_link_info *info;
@@ -1524,13 +1526,13 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
      asection *section;
      bfd_vma value;
      const char *string;
-     boolean copy;
-     boolean collect;
+     bfd_boolean copy;
+     bfd_boolean collect;
      struct bfd_link_hash_entry **hashp;
 {
   enum link_row row;
   struct bfd_link_hash_entry *h;
-  boolean cycle;
+  bfd_boolean cycle;
 
   if (bfd_is_ind_section (section)
       || (flags & BSF_INDIRECT) != 0)
@@ -1558,25 +1560,25 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
   else
     {
       if (row == UNDEF_ROW || row == UNDEFW_ROW)
-       h = bfd_wrapped_link_hash_lookup (abfd, info, name, true, copy, false);
+       h = bfd_wrapped_link_hash_lookup (abfd, info, name, TRUE, copy, FALSE);
       else
-       h = bfd_link_hash_lookup (info->hash, name, true, copy, false);
+       h = bfd_link_hash_lookup (info->hash, name, TRUE, copy, FALSE);
       if (h == NULL)
        {
          if (hashp != NULL)
            *hashp = NULL;
-         return false;
+         return FALSE;
        }
     }
 
   if (info->notice_all
       || (info->notice_hash != (struct bfd_hash_table *) NULL
-         && (bfd_hash_lookup (info->notice_hash, name, false, false)
+         && (bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE)
              != (struct bfd_hash_entry *) NULL)))
     {
       if (! (*info->callbacks->notice) (info, h->root.string, abfd, section,
                                        value))
-       return false;
+       return FALSE;
     }
 
   if (hashp != (struct bfd_link_hash_entry **) NULL)
@@ -1586,7 +1588,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
     {
       enum link_action action;
 
-      cycle = false;
+      cycle = FALSE;
       action = link_action[(int) row][(int) h->type];
       switch (action)
        {
@@ -1618,7 +1620,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
                 (info, h->root.string,
                  h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size,
                  abfd, bfd_link_hash_defined, (bfd_vma) 0)))
-           return false;
+           return FALSE;
          /* Fall through.  */
        case DEF:
        case DEFW:
@@ -1678,7 +1680,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
                        if (! ((*info->callbacks->constructor)
                               (info, c == 'I',
                                h->root.string, abfd, section, value)))
-                         return false;
+                         return FALSE;
                      }
                  }
              }
@@ -1696,7 +1698,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
             bfd_hash_allocate (&info->hash->table,
                                sizeof (struct bfd_link_hash_common_entry)));
          if (h->u.c.p == NULL)
-           return false;
+           return FALSE;
 
          h->u.c.size = value;
 
@@ -1751,7 +1753,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
                 (info, h->root.string,
                  h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size,
                  abfd, bfd_link_hash_common, value)))
-           return false;
+           return FALSE;
          if (value > h->u.c.size)
            {
              unsigned int power;
@@ -1802,7 +1804,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
            if (! ((*info->callbacks->multiple_common)
                   (info, h->root.string, obfd, h->type, (bfd_vma) 0,
                    abfd, bfd_link_hash_common, value)))
-             return false;
+             return FALSE;
          }
          break;
 
@@ -1844,7 +1846,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
              if (! ((*info->callbacks->multiple_definition)
                     (info, h->root.string, msec->owner, msec, mval,
                      abfd, section, value)))
-               return false;
+               return FALSE;
            }
          break;
 
@@ -1855,7 +1857,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
                 (info, h->root.string,
                  h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size,
                  abfd, bfd_link_hash_indirect, (bfd_vma) 0)))
-           return false;
+           return FALSE;
          /* Fall through.  */
        case IND:
          /* Create an indirect symbol.  */
@@ -1864,10 +1866,10 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
 
            /* STRING is the name of the symbol we want to indirect
               to.  */
-           inh = bfd_wrapped_link_hash_lookup (abfd, info, string, true,
-                                               copy, false);
+           inh = bfd_wrapped_link_hash_lookup (abfd, info, string, TRUE,
+                                               copy, FALSE);
            if (inh == (struct bfd_link_hash_entry *) NULL)
-             return false;
+             return FALSE;
            if (inh->type == bfd_link_hash_indirect
                && inh->u.i.link == h)
              {
@@ -1875,7 +1877,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
                  (_("%s: indirect symbol `%s' to `%s' is a loop"),
                   bfd_archive_filename (abfd), name, string);
                bfd_set_error (bfd_error_invalid_operation);
-               return false;
+               return FALSE;
              }
            if (inh->type == bfd_link_hash_new)
              {
@@ -1890,7 +1892,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
            if (h->type != bfd_link_hash_new)
              {
                row = UNDEF_ROW;
-               cycle = true;
+               cycle = TRUE;
              }
 
            h->type = bfd_link_hash_indirect;
@@ -1902,7 +1904,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
          /* Add an entry to a set.  */
          if (! (*info->callbacks->add_to_set) (info, h, BFD_RELOC_CTOR,
                                                abfd, section, value))
-           return false;
+           return FALSE;
          break;
 
        case WARNC:
@@ -1913,7 +1915,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
                                                 h->root.string, abfd,
                                                 (asection *) NULL,
                                                 (bfd_vma) 0))
-               return false;
+               return FALSE;
              /* Only issue a warning once.  */
              h->u.i.warning = NULL;
            }
@@ -1921,7 +1923,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
        case CYCLE:
          /* Try again with the referenced symbol.  */
          h = h->u.i.link;
-         cycle = true;
+         cycle = TRUE;
          break;
 
        case REFC:
@@ -1929,7 +1931,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
          if (h->next == NULL && info->hash->undefs_tail != h)
            h->next = h;
          h = h->u.i.link;
-         cycle = true;
+         cycle = TRUE;
          break;
 
        case WARN:
@@ -1937,7 +1939,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
          if (! (*info->callbacks->warning) (info, string, h->root.string,
                                             hash_entry_bfd (h),
                                             (asection *) NULL, (bfd_vma) 0))
-           return false;
+           return FALSE;
          break;
 
        case CWARN:
@@ -1952,7 +1954,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
                                                 hash_entry_bfd (h),
                                                 (asection *) NULL,
                                                 (bfd_vma) 0))
-               return false;
+               return FALSE;
              break;
            }
          /* Fall through.  */
@@ -1967,7 +1969,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
                    ((struct bfd_hash_entry *) NULL, &info->hash->table,
                     h->root.string)));
            if (sub == NULL)
-             return false;
+             return FALSE;
            *sub = *h;
            sub->type = bfd_link_hash_warning;
            sub->u.i.link = h;
@@ -1980,7 +1982,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
 
                w = bfd_hash_allocate (&info->hash->table, len);
                if (w == NULL)
-                 return false;
+                 return FALSE;
                memcpy (w, string, len);
                sub->u.i.warning = w;
              }
@@ -1996,12 +1998,12 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
     }
   while (cycle);
 
-  return true;
+  return TRUE;
 }
 \f
 /* Generic final link routine.  */
 
-boolean
+bfd_boolean
 _bfd_generic_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2020,12 +2022,12 @@ _bfd_generic_final_link (abfd, info)
   for (o = abfd->sections; o != NULL; o = o->next)
     for (p = o->link_order_head; p != NULL; p = p->next)
       if (p->type == bfd_indirect_link_order)
-       p->u.indirect.section->linker_mark = (unsigned int) true;
+       p->u.indirect.section->linker_mark = TRUE;
 
   /* Build the output symbol table.  */
   for (sub = info->input_bfds; sub != (bfd *) NULL; sub = sub->link_next)
     if (! _bfd_generic_link_output_symbols (abfd, sub, info, &outsymalloc))
-      return false;
+      return FALSE;
 
   /* Accumulate the global symbols.  */
   wginfo.info = info;
@@ -2039,7 +2041,7 @@ _bfd_generic_final_link (abfd, info)
      shouldn't really need one, since we have SYMCOUNT, but some old
      code still expects one.  */
   if (! generic_add_output_symbol (abfd, &outsymalloc, NULL))
-    return false;
+    return FALSE;
 
   if (info->relocateable)
     {
@@ -2070,17 +2072,17 @@ _bfd_generic_final_link (abfd, info)
                  relsize = bfd_get_reloc_upper_bound (input_bfd,
                                                       input_section);
                  if (relsize < 0)
-                   return false;
+                   return FALSE;
                  relocs = (arelent **) bfd_malloc ((bfd_size_type) relsize);
                  if (!relocs && relsize != 0)
-                   return false;
+                   return FALSE;
                  symbols = _bfd_generic_link_get_symbols (input_bfd);
                  reloc_count = bfd_canonicalize_reloc (input_bfd,
                                                        input_section,
                                                        relocs,
                                                        symbols);
                  if (reloc_count < 0)
-                   return false;
+                   return FALSE;
                  BFD_ASSERT ((unsigned long) reloc_count
                              == input_section->reloc_count);
                  o->reloc_count += reloc_count;
@@ -2095,7 +2097,7 @@ _bfd_generic_final_link (abfd, info)
              amt *= sizeof (arelent *);
              o->orelocation = (arelent **) bfd_alloc (abfd, amt);
              if (!o->orelocation)
-               return false;
+               return FALSE;
              o->flags |= SEC_RELOC;
              /* Reset the count so that it can be used as an index
                 when putting in the output relocs.  */
@@ -2118,26 +2120,26 @@ _bfd_generic_final_link (abfd, info)
            case bfd_section_reloc_link_order:
            case bfd_symbol_reloc_link_order:
              if (! _bfd_generic_reloc_link_order (abfd, info, o, p))
-               return false;
+               return FALSE;
              break;
            case bfd_indirect_link_order:
-             if (! default_indirect_link_order (abfd, info, o, p, true))
-               return false;
+             if (! default_indirect_link_order (abfd, info, o, p, TRUE))
+               return FALSE;
              break;
            default:
              if (! _bfd_default_link_order (abfd, info, o, p))
-               return false;
+               return FALSE;
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Add an output symbol to the output BFD.  */
 
-static boolean
+static bfd_boolean
 generic_add_output_symbol (output_bfd, psymalloc, sym)
      bfd *output_bfd;
      size_t *psymalloc;
@@ -2156,7 +2158,7 @@ generic_add_output_symbol (output_bfd, psymalloc, sym)
       amt *= sizeof (asymbol *);
       newsyms = (asymbol **) bfd_realloc (bfd_get_outsymbols (output_bfd), amt);
       if (newsyms == (asymbol **) NULL)
-       return false;
+       return FALSE;
       bfd_get_outsymbols (output_bfd) = newsyms;
     }
 
@@ -2164,12 +2166,12 @@ generic_add_output_symbol (output_bfd, psymalloc, sym)
   if (sym != NULL)
     ++ bfd_get_symcount (output_bfd);
 
-  return true;
+  return TRUE;
 }
 
 /* Handle the symbols for an input BFD.  */
 
-boolean
+bfd_boolean
 _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
      bfd *output_bfd;
      bfd *input_bfd;
@@ -2180,7 +2182,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
   asymbol **sym_end;
 
   if (! generic_link_read_symbols (input_bfd))
-    return false;
+    return FALSE;
 
   /* Create a filename symbol if we are supposed to.  */
   if (info->create_object_symbols_section != (asection *) NULL)
@@ -2197,7 +2199,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
 
              newsym = bfd_make_empty_symbol (input_bfd);
              if (!newsym)
-               return false;
+               return FALSE;
              newsym->name = input_bfd->filename;
              newsym->value = 0;
              newsym->flags = BSF_LOCAL | BSF_FILE;
@@ -2205,7 +2207,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
 
              if (! generic_add_output_symbol (output_bfd, psymalloc,
                                               newsym))
-               return false;
+               return FALSE;
 
              break;
            }
@@ -2220,7 +2222,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
     {
       asymbol *sym;
       struct generic_link_hash_entry *h;
-      boolean output;
+      bfd_boolean output;
 
       h = (struct generic_link_hash_entry *) NULL;
       sym = *sym_ptr;
@@ -2251,11 +2253,11 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
            h = ((struct generic_link_hash_entry *)
                 bfd_wrapped_link_hash_lookup (output_bfd, info,
                                               bfd_asymbol_name (sym),
-                                              false, false, true));
+                                              FALSE, FALSE, TRUE));
          else
            h = _bfd_generic_link_hash_lookup (_bfd_generic_hash_table (info),
                                               bfd_asymbol_name (sym),
-                                              false, false, true);
+                                              FALSE, FALSE, TRUE);
 
          if (h != (struct generic_link_hash_entry *) NULL)
            {
@@ -2319,9 +2321,9 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
       if (info->strip == strip_all
          || (info->strip == strip_some
              && (bfd_hash_lookup (info->keep_hash, bfd_asymbol_name (sym),
-                                  false, false)
+                                  FALSE, FALSE)
                  == (struct bfd_hash_entry *) NULL)))
-       output = false;
+       output = FALSE;
       else if ((sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0)
        {
          /* If this symbol is marked as occurring now, rather
@@ -2330,48 +2332,48 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
             better way.  */
          if (bfd_asymbol_bfd (sym) == input_bfd
              && (sym->flags & BSF_NOT_AT_END) != 0)
-           output = true;
+           output = TRUE;
          else
-           output = false;
+           output = FALSE;
        }
       else if (bfd_is_ind_section (sym->section))
-       output = false;
+       output = FALSE;
       else if ((sym->flags & BSF_DEBUGGING) != 0)
        {
          if (info->strip == strip_none)
-           output = true;
+           output = TRUE;
          else
-           output = false;
+           output = FALSE;
        }
       else if (bfd_is_und_section (sym->section)
               || bfd_is_com_section (sym->section))
-       output = false;
+       output = FALSE;
       else if ((sym->flags & BSF_LOCAL) != 0)
        {
          if ((sym->flags & BSF_WARNING) != 0)
-           output = false;
+           output = FALSE;
          else
            {
              switch (info->discard)
                {
                default:
                case discard_all:
-                 output = false;
+                 output = FALSE;
                  break;
                case discard_sec_merge:
-                 output = true;
+                 output = TRUE;
                  if (info->relocateable
                      || ! (sym->section->flags & SEC_MERGE))
                    break;
                  /* FALLTHROUGH */
                case discard_l:
                  if (bfd_is_local_label (input_bfd, sym))
-                   output = false;
+                   output = FALSE;
                  else
-                   output = true;
+                   output = TRUE;
                  break;
                case discard_none:
-                 output = true;
+                 output = TRUE;
                  break;
                }
            }
@@ -2379,9 +2381,9 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
       else if ((sym->flags & BSF_CONSTRUCTOR))
        {
          if (info->strip != strip_all)
-           output = true;
+           output = TRUE;
          else
-           output = false;
+           output = FALSE;
        }
       else
        abort ();
@@ -2393,18 +2395,18 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
         field set.  */
       if ((sym->section->flags & SEC_HAS_CONTENTS) != 0
          && ! sym->section->linker_mark)
-       output = false;
+       output = FALSE;
 
       if (output)
        {
          if (! generic_add_output_symbol (output_bfd, psymalloc, sym))
-           return false;
+           return FALSE;
          if (h != (struct generic_link_hash_entry *) NULL)
-           h->written = true;
+           h->written = TRUE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the section and value of a generic BFD symbol based on a linker
@@ -2473,7 +2475,7 @@ set_symbol_from_hash (sym, h)
 /* Write out a global symbol, if it hasn't already been written out.
    This is called for each symbol in the hash table.  */
 
-boolean
+bfd_boolean
 _bfd_generic_link_write_global_symbol (h, data)
      struct generic_link_hash_entry *h;
      PTR data;
@@ -2486,15 +2488,15 @@ _bfd_generic_link_write_global_symbol (h, data)
     h = (struct generic_link_hash_entry *) h->root.u.i.link;
 
   if (h->written)
-    return true;
+    return TRUE;
 
-  h->written = true;
+  h->written = TRUE;
 
   if (wginfo->info->strip == strip_all
       || (wginfo->info->strip == strip_some
          && bfd_hash_lookup (wginfo->info->keep_hash, h->root.root.string,
-                             false, false) == NULL))
-    return true;
+                             FALSE, FALSE) == NULL))
+    return TRUE;
 
   if (h->sym != (asymbol *) NULL)
     sym = h->sym;
@@ -2502,7 +2504,7 @@ _bfd_generic_link_write_global_symbol (h, data)
     {
       sym = bfd_make_empty_symbol (wginfo->output_bfd);
       if (!sym)
-       return false;
+       return FALSE;
       sym->name = h->root.root.string;
       sym->flags = 0;
     }
@@ -2518,12 +2520,12 @@ _bfd_generic_link_write_global_symbol (h, data)
       abort ();
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Create a relocation.  */
 
-boolean
+bfd_boolean
 _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2539,14 +2541,14 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
 
   r = (arelent *) bfd_alloc (abfd, (bfd_size_type) sizeof (arelent));
   if (r == (arelent *) NULL)
-    return false;
+    return FALSE;
 
   r->address = link_order->offset;
   r->howto = bfd_reloc_type_lookup (abfd, link_order->u.reloc.p->reloc);
   if (r->howto == 0)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   /* Get the symbol to use for the relocation.  */
@@ -2559,16 +2561,16 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
       h = ((struct generic_link_hash_entry *)
           bfd_wrapped_link_hash_lookup (abfd, info,
                                         link_order->u.reloc.p->u.name,
-                                        false, false, true));
+                                        FALSE, FALSE, TRUE));
       if (h == (struct generic_link_hash_entry *) NULL
          || ! h->written)
        {
          if (! ((*info->callbacks->unattached_reloc)
                 (info, link_order->u.reloc.p->u.name,
                  (bfd *) NULL, (asection *) NULL, (bfd_vma) 0)))
-           return false;
+           return FALSE;
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       r->sym_ptr_ptr = &h->sym;
     }
@@ -2582,13 +2584,13 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
       bfd_size_type size;
       bfd_reloc_status_type rstat;
       bfd_byte *buf;
-      boolean ok;
+      bfd_boolean ok;
       file_ptr loc;
 
       size = bfd_get_reloc_size (r->howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
       if (buf == (bfd_byte *) NULL)
-       return false;
+       return FALSE;
       rstat = _bfd_relocate_contents (r->howto, abfd,
                                      (bfd_vma) link_order->u.reloc.p->addend,
                                      buf);
@@ -2609,7 +2611,7 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
                  (bfd *) NULL, (asection *) NULL, (bfd_vma) 0)))
            {
              free (buf);
-             return false;
+             return FALSE;
            }
          break;
        }
@@ -2618,7 +2620,7 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
                                     (bfd_size_type) size);
       free (buf);
       if (! ok)
-       return false;
+       return FALSE;
 
       r->addend = 0;
     }
@@ -2626,7 +2628,7 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
   sec->orelocation[sec->reloc_count] = r;
   ++sec->reloc_count;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Allocate a new link_order for a section.  */
@@ -2658,7 +2660,7 @@ bfd_new_link_order (abfd, section)
    the reloc_link_order types here, since they depend upon the details
    of how the particular backends generates relocs.  */
 
-boolean
+bfd_boolean
 _bfd_default_link_order (abfd, info, sec, link_order)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2674,7 +2676,7 @@ _bfd_default_link_order (abfd, info, sec, link_order)
       abort ();
     case bfd_indirect_link_order:
       return default_indirect_link_order (abfd, info, sec, link_order,
-                                         false);
+                                         FALSE);
     case bfd_data_link_order:
       return default_data_link_order (abfd, info, sec, link_order);
     }
@@ -2682,7 +2684,7 @@ _bfd_default_link_order (abfd, info, sec, link_order)
 
 /* Default routine to handle a bfd_data_link_order.  */
 
-static boolean
+static bfd_boolean
 default_data_link_order (abfd, info, sec, link_order)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -2693,13 +2695,13 @@ default_data_link_order (abfd, info, sec, link_order)
   size_t fill_size;
   bfd_byte *fill;
   file_ptr loc;
-  boolean result;
+  bfd_boolean result;
 
   BFD_ASSERT ((sec->flags & SEC_HAS_CONTENTS) != 0);
 
   size = link_order->size;
   if (size == 0)
-    return true;
+    return TRUE;
 
   fill = link_order->u.data.contents;
   fill_size = link_order->u.data.size;
@@ -2708,7 +2710,7 @@ default_data_link_order (abfd, info, sec, link_order)
       bfd_byte *p;
       fill = (bfd_byte *) bfd_malloc (size);
       if (fill == NULL)
-       return false;
+       return FALSE;
       p = fill;
       if (fill_size == 1)
        memset (p, (int) link_order->u.data.contents[0], (size_t) size);
@@ -2737,14 +2739,14 @@ default_data_link_order (abfd, info, sec, link_order)
 
 /* Default routine to handle a bfd_indirect_link_order.  */
 
-static boolean
+static bfd_boolean
 default_indirect_link_order (output_bfd, info, output_section, link_order,
                             generic_linker)
      bfd *output_bfd;
      struct bfd_link_info *info;
      asection *output_section;
      struct bfd_link_order *link_order;
-     boolean generic_linker;
+     bfd_boolean generic_linker;
 {
   asection *input_section;
   bfd *input_bfd;
@@ -2756,7 +2758,7 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
   BFD_ASSERT ((output_section->flags & SEC_HAS_CONTENTS) != 0);
 
   if (link_order->size == 0)
-    return true;
+    return TRUE;
 
   input_section = link_order->u.indirect.section;
   input_bfd = input_section->owner;
@@ -2778,7 +2780,7 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
        (_("Attempt to do relocateable link with %s input and %s output"),
         bfd_get_target (input_bfd), bfd_get_target (output_bfd));
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 
   if (! generic_linker)
@@ -2791,7 +2793,7 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
         a specific linker, presumably because we are linking
         different types of object files together.  */
       if (! generic_link_read_symbols (input_bfd))
-       return false;
+       return FALSE;
 
       /* Since we have been called by a specific linker, rather than
         the generic linker, the values of the symbols will not be
@@ -2823,11 +2825,11 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
              else if (bfd_is_und_section (bfd_get_section (sym)))
                h = bfd_wrapped_link_hash_lookup (output_bfd, info,
                                                  bfd_asymbol_name (sym),
-                                                 false, false, true);
+                                                 FALSE, FALSE, TRUE);
              else
                h = bfd_link_hash_lookup (info->hash,
                                          bfd_asymbol_name (sym),
-                                         false, false, true);
+                                         FALSE, FALSE, TRUE);
              if (h != NULL)
                set_symbol_from_hash (sym, h);
            }
@@ -2853,12 +2855,12 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
 
   if (contents != NULL)
     free (contents);
-  return true;
+  return TRUE;
 
  error_return:
   if (contents != NULL)
     free (contents);
-  return false;
+  return FALSE;
 }
 
 /* A little routine to count the number of relocs in a link_order
@@ -2887,7 +2889,7 @@ FUNCTION
        bfd_link_split_section
 
 SYNOPSIS
-        boolean bfd_link_split_section(bfd *abfd, asection *sec);
+        bfd_boolean bfd_link_split_section(bfd *abfd, asection *sec);
 
 DESCRIPTION
        Return nonzero if @var{sec} should be split during a
@@ -2899,10 +2901,10 @@ DESCRIPTION
 
 */
 
-boolean
+bfd_boolean
 _bfd_generic_link_split_section (abfd, sec)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec ATTRIBUTE_UNUSED;
 {
-  return false;
+  return FALSE;
 }
index af513aca75c0ce4ef0b43ef39295f59ede919ee0..08bf2331c5364e9f922a7e397b2bc722c429bb86 100644 (file)
@@ -224,11 +224,11 @@ lynx_core_file_failing_signal (abfd)
   return core_signal (abfd);
 }
 
-boolean
+bfd_boolean
 lynx_core_file_matches_executable_p  (core_bfd, exec_bfd)
      bfd *core_bfd, *exec_bfd;
 {
-  return true;         /* FIXME, We have no way of telling at this point */
+  return TRUE;         /* FIXME, We have no way of telling at this point */
 }
 
 #endif /* LYNX_CORE */
index 863a61d68f822226f3630093eb0c3ada2c19d001..a526998c51ad98a6aac15d43019455c5e19a41a2 100644 (file)
@@ -52,11 +52,11 @@ extern const bfd_target MY(vec);
 
 static void MY_final_link_callback
   PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *));
-static boolean m68klinux_bfd_final_link
+static bfd_boolean m68klinux_bfd_final_link
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean m68klinux_write_object_contents PARAMS ((bfd *));
+static bfd_boolean m68klinux_write_object_contents PARAMS ((bfd *));
 
-static boolean
+static bfd_boolean
 m68klinux_bfd_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -69,7 +69,7 @@ m68klinux_bfd_final_link (abfd, info)
 
 /* Set the machine type correctly.  */
 
-static boolean
+static bfd_boolean
 m68klinux_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -82,7 +82,7 @@ m68klinux_write_object_contents (abfd)
 
   WRITE_HEADERS(abfd, execp);
 
-  return true;
+  return TRUE;
 }
 
 #define MY_write_object_contents m68klinux_write_object_contents
@@ -180,15 +180,15 @@ static struct bfd_link_hash_table *linux_link_hash_table_create
 static struct fixup *new_fixup
   PARAMS ((struct bfd_link_info *, struct linux_link_hash_entry *,
           bfd_vma, int));
-static boolean linux_link_create_dynamic_sections
+static bfd_boolean linux_link_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean linux_add_one_symbol
+static bfd_boolean linux_add_one_symbol
   PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *,
-          bfd_vma, const char *, boolean, boolean,
+          bfd_vma, const char *, bfd_boolean, bfd_boolean,
           struct bfd_link_hash_entry **));
-static boolean linux_tally_symbols
+static bfd_boolean linux_tally_symbols
   PARAMS ((struct linux_link_hash_entry *, PTR));
-static boolean linux_finish_dynamic_link
+static bfd_boolean linux_finish_dynamic_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Routine to create an entry in an Linux link hash table.  */
@@ -263,7 +263,7 @@ linux_link_hash_table_create (abfd)
 #define linux_link_hash_traverse(table, func, info)                    \
   (aout_link_hash_traverse                                             \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func),        \
+    (bfd_boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func),    \
     (info)))
 
 /* Get the Linux link hash table from the info structure.  This is
@@ -303,7 +303,7 @@ new_fixup (info, h, value, builtin)
    know the size of the section, but that's OK - we just need to
    create it for now.  */
 
-static boolean
+static bfd_boolean
 linux_link_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -320,18 +320,18 @@ linux_link_create_dynamic_sections (abfd, info)
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags)
       || ! bfd_set_section_alignment (abfd, s, 2))
-    return false;
+    return FALSE;
   s->_raw_size = 0;
   s->contents = 0;
 
-  return true;
+  return TRUE;
 }
 
 /* Function to add a single symbol to the linker hash table.  This is
    a wrapper around _bfd_generic_link_add_one_symbol which handles the
    tweaking needed for dynamic linking support.  */
 
-static boolean
+static bfd_boolean
 linux_add_one_symbol (info, abfd, name, flags, section, value, string,
                      copy, collect, hashp)
      struct bfd_link_info *info;
@@ -341,12 +341,12 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
      asection *section;
      bfd_vma value;
      const char *string;
-     boolean copy;
-     boolean collect;
+     bfd_boolean copy;
+     bfd_boolean collect;
      struct bfd_link_hash_entry **hashp;
 {
   struct linux_link_hash_entry *h;
-  boolean insert;
+  bfd_boolean insert;
 
   /* Look up and see if we already have this symbol in the hash table.
      If we do, and the defining entry is from a shared library, we
@@ -356,7 +356,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
      be able to link Linux a.out and ELF objects together, but serious
      confusion is possible.  */
 
-  insert = false;
+  insert = FALSE;
 
   if (! info->relocateable
       && linux_hash_table (info)->dynobj == NULL
@@ -365,16 +365,16 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
       && abfd->xvec == info->hash->creator)
     {
       if (! linux_link_create_dynamic_sections (abfd, info))
-       return false;
+       return FALSE;
       linux_hash_table (info)->dynobj = abfd;
-      insert = true;
+      insert = TRUE;
     }
 
   if (bfd_is_abs_section (section)
       && abfd->xvec == info->hash->creator)
     {
-      h = linux_link_hash_lookup (linux_hash_table (info), name, false,
-                                 false, false);
+      h = linux_link_hash_lookup (linux_hash_table (info), name, FALSE,
+                                 FALSE, FALSE);
       if (h != NULL
          && (h->root.root.type == bfd_link_hash_defined
              || h->root.root.type == bfd_link_hash_defweak))
@@ -386,10 +386,10 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
 
          f = new_fixup (info, h, value, ! IS_PLT_SYM (name));
          if (f == NULL)
-           return false;
+           return FALSE;
          f->jump = IS_PLT_SYM (name);
 
-         return true;
+         return TRUE;
        }
     }
 
@@ -397,7 +397,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
   if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section,
                                          value, string, copy, collect,
                                          hashp))
-    return false;
+    return FALSE;
 
   /* Insert a pointer to our table in the set vector.  The dynamic
      linker requires this information */
@@ -414,11 +414,11 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
       if (! (_bfd_generic_link_add_one_symbol
             (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS,
              BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL,
-             false, false, NULL)))
-       return false;
+             FALSE, FALSE, NULL)))
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We will crawl the hash table and come here for every global symbol.
@@ -431,7 +431,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
 
    This function is called via linux_link_hash_traverse.  */
 
-static boolean
+static bfd_boolean
 linux_tally_symbols (h, data)
      struct linux_link_hash_entry *h;
      PTR data;
@@ -440,7 +440,7 @@ linux_tally_symbols (h, data)
   struct fixup *f, *f1;
   int is_plt;
   struct linux_link_hash_entry *h1, *h2;
-  boolean exists;
+  bfd_boolean exists;
 
   if (h->root.root.type == bfd_link_hash_warning)
     h = (struct linux_link_hash_entry *) h->root.root.u.i.link;
@@ -486,12 +486,12 @@ linux_tally_symbols (h, data)
       h1 = linux_link_hash_lookup (linux_hash_table (info),
                                   (h->root.root.root.string
                                    + sizeof PLT_REF_PREFIX - 1),
-                                  false, false, true);
+                                  FALSE, FALSE, TRUE);
       /* h2 does not follow indirect symbols.  */
       h2 = linux_link_hash_lookup (linux_hash_table (info),
                                   (h->root.root.root.string
                                    + sizeof PLT_REF_PREFIX - 1),
-                                  false, false, false);
+                                  FALSE, FALSE, FALSE);
 
       /* The real symbol must exist but if it is also an ABS symbol,
         there is no need to have a fixup.  This is because they both
@@ -509,7 +509,7 @@ linux_tally_symbols (h, data)
             involving this symbol.  If so, convert it to a regular
             fixup.  In the end, this relaxes some of the requirements
             about the order of performing fixups.  */
-         exists = false;
+         exists = FALSE;
          for (f1 = linux_hash_table (info)->fixup_list;
               f1 != NULL;
               f1 = f1->next)
@@ -518,7 +518,7 @@ linux_tally_symbols (h, data)
                  || (! f1->builtin && ! f1->jump))
                continue;
              if (f1->h == h1)
-               exists = true;
+               exists = TRUE;
              if (! exists
                  && bfd_is_abs_section (h->root.root.u.def.section))
                {
@@ -528,7 +528,7 @@ linux_tally_symbols (h, data)
              f1->h = h1;
              f1->jump = is_plt;
              f1->builtin = 0;
-             exists = true;
+             exists = TRUE;
            }
          if (! exists
              && bfd_is_abs_section (h->root.root.u.def.section))
@@ -546,10 +546,10 @@ linux_tally_symbols (h, data)
       /* Quick and dirty way of stripping these symbols from the
         symtab.  */
       if (bfd_is_abs_section (h->root.root.u.def.section))
-       h->root.written = true;
+       h->root.written = TRUE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This is called to set the size of the .linux-dynamic section is.
@@ -558,7 +558,7 @@ linux_tally_symbols (h, data)
    we just scan the hash tables to find out how many additional fixups
    are required.  */
 
-boolean
+bfd_boolean
 bfd_m68klinux_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -567,7 +567,7 @@ bfd_m68klinux_size_dynamic_sections (output_bfd, info)
   asection *s;
 
   if (output_bfd->xvec != &MY(vec))
-    return true;
+    return TRUE;
 
   /* First find the fixups...  */
   linux_link_hash_traverse (linux_hash_table (info),
@@ -591,7 +591,7 @@ bfd_m68klinux_size_dynamic_sections (output_bfd, info)
     {
       if (linux_hash_table (info)->fixup_count > 0)
        abort ();
-      return true;
+      return TRUE;
     }
 
   /* Allocate memory for our fixup table.  We will fill it in later.  */
@@ -605,18 +605,18 @@ bfd_m68klinux_size_dynamic_sections (output_bfd, info)
       if (s->contents == NULL)
        {
          bfd_set_error (bfd_error_no_memory);
-         return false;
+         return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We come here once we are ready to actually write the fixup table to
    the output file.  Scan the fixup tables and so forth and generate
    the stuff we need.  */
 
-static boolean
+static bfd_boolean
 linux_finish_dynamic_link (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -630,7 +630,7 @@ linux_finish_dynamic_link (output_bfd, info)
   unsigned int fixups_written;
 
   if (linux_hash_table (info)->dynobj == NULL)
-    return true;
+    return TRUE;
 
   s = bfd_get_section_by_name (linux_hash_table (info)->dynobj,
                               ".linux-dynamic");
@@ -744,7 +744,7 @@ linux_finish_dynamic_link (output_bfd, info)
 
   h = linux_link_hash_lookup (linux_hash_table (info),
                              "__BUILTIN_FIXUPS__",
-                             false, false, false);
+                             FALSE, FALSE, FALSE);
 
   if (h != NULL
       && (h->root.root.type == bfd_link_hash_defined
@@ -765,12 +765,12 @@ linux_finish_dynamic_link (output_bfd, info)
 
   if (bfd_seek (output_bfd, (file_ptr) (os->filepos + s->output_offset),
                SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (bfd_bwrite ((PTR) s->contents, s->_raw_size, output_bfd) != s->_raw_size)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 #define MY_bfd_link_hash_table_create linux_link_hash_table_create
index 4261b11885cf4fb7def344df14622a164d1f898c..00571ca71f624f499fe076e24e9d9136838a09c1 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for m68k binaries under LynxOS.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 2001
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 2001, 2002
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -45,7 +45,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 char *lynx_core_file_failing_command();
 int lynx_core_file_failing_signal();
-boolean lynx_core_file_matches_executable_p();
+bfd_boolean lynx_core_file_matches_executable_p();
 const bfd_target *lynx_core_file_p();
 
 #define        MY_core_file_failing_command lynx_core_file_failing_command
index 1daaf985ff76f154ddfdbad0354c7b97fed1b044..4c4736ada0d14acf989e0d14c03697d66a972021 100644 (file)
 #define bfd_mach_o_bfd_merge_sections bfd_generic_merge_sections
 #define bfd_mach_o_bfd_discard_group bfd_generic_discard_group
 
-static boolean  bfd_mach_o_bfd_copy_private_symbol_data  PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
-static boolean  bfd_mach_o_bfd_copy_private_section_data PARAMS ((bfd *, asection *, bfd *, asection *));
-static boolean  bfd_mach_o_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
-static long     bfd_mach_o_count_symbols             PARAMS ((bfd *));
-static long     bfd_mach_o_get_symtab_upper_bound    PARAMS ((bfd *));
-static long     bfd_mach_o_get_symtab                PARAMS ((bfd *, asymbol **));
-static void     bfd_mach_o_get_symbol_info           PARAMS ((bfd *, asymbol *, symbol_info *));
-static void     bfd_mach_o_print_symbol              PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
-static void     bfd_mach_o_convert_architecture      PARAMS ((bfd_mach_o_cpu_type, bfd_mach_o_cpu_subtype, enum bfd_architecture *, unsigned long *));
-static boolean  bfd_mach_o_write_contents            PARAMS ((bfd *));
-static int      bfd_mach_o_sizeof_headers            PARAMS ((bfd *, boolean));
-static asymbol *   bfd_mach_o_make_empty_symbol      PARAMS ((bfd *));
-static int      bfd_mach_o_write_header              PARAMS ((bfd *, bfd_mach_o_header *));
-static int      bfd_mach_o_read_header               PARAMS ((bfd *, bfd_mach_o_header *));
-static asection *  bfd_mach_o_make_bfd_section       PARAMS ((bfd *, bfd_mach_o_section *));
-static int      bfd_mach_o_scan_read_section         PARAMS ((bfd *, bfd_mach_o_section *, bfd_vma));
-static int      bfd_mach_o_scan_write_section        PARAMS ((bfd *, bfd_mach_o_section *, bfd_vma));
-static int      bfd_mach_o_scan_write_symtab_symbols PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_write_thread         PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_read_dylinker        PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_read_dylib           PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_read_prebound_dylib  PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_read_thread          PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_write_symtab         PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_read_dysymtab        PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_read_symtab          PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_read_segment         PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_write_segment        PARAMS ((bfd *, bfd_mach_o_load_command *));
-static int      bfd_mach_o_scan_read_command         PARAMS ((bfd *, bfd_mach_o_load_command *));
-static void     bfd_mach_o_flatten_sections          PARAMS ((bfd *));
-static const char * bfd_mach_o_i386_flavour_string   PARAMS ((unsigned int));
-static const char * bfd_mach_o_ppc_flavour_string    PARAMS ((unsigned int));
+static bfd_boolean bfd_mach_o_bfd_copy_private_symbol_data
+  PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
+static bfd_boolean bfd_mach_o_bfd_copy_private_section_data
+  PARAMS ((bfd *, asection *, bfd *, asection *));
+static bfd_boolean bfd_mach_o_bfd_copy_private_bfd_data
+  PARAMS ((bfd *, bfd *));
+static long bfd_mach_o_count_symbols
+  PARAMS ((bfd *));
+static long bfd_mach_o_get_symtab_upper_bound
+  PARAMS ((bfd *));
+static long bfd_mach_o_get_symtab
+  PARAMS ((bfd *, asymbol **));
+static void bfd_mach_o_get_symbol_info
+  PARAMS ((bfd *, asymbol *, symbol_info *));
+static void bfd_mach_o_print_symbol
+  PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
+static void bfd_mach_o_convert_architecture
+  PARAMS ((bfd_mach_o_cpu_type, bfd_mach_o_cpu_subtype,
+          enum bfd_architecture *, unsigned long *));
+static bfd_boolean bfd_mach_o_write_contents
+  PARAMS ((bfd *));
+static int bfd_mach_o_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
+static asymbol * bfd_mach_o_make_empty_symbol
+  PARAMS ((bfd *));
+static int bfd_mach_o_write_header
+  PARAMS ((bfd *, bfd_mach_o_header *));
+static int bfd_mach_o_read_header
+  PARAMS ((bfd *, bfd_mach_o_header *));
+static asection * bfd_mach_o_make_bfd_section
+  PARAMS ((bfd *, bfd_mach_o_section *));
+static int bfd_mach_o_scan_read_section
+  PARAMS ((bfd *, bfd_mach_o_section *, bfd_vma));
+static int bfd_mach_o_scan_write_section
+  PARAMS ((bfd *, bfd_mach_o_section *, bfd_vma));
+static int bfd_mach_o_scan_write_symtab_symbols
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_write_thread
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_read_dylinker
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_read_dylib
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_read_prebound_dylib
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_read_thread
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_write_symtab
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_read_dysymtab
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_read_symtab
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_read_segment
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_write_segment
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static int bfd_mach_o_scan_read_command
+  PARAMS ((bfd *, bfd_mach_o_load_command *));
+static void bfd_mach_o_flatten_sections
+  PARAMS ((bfd *));
+static const char * bfd_mach_o_i386_flavour_string
+  PARAMS ((unsigned int));
+static const char * bfd_mach_o_ppc_flavour_string
+  PARAMS ((unsigned int));
 
 /* The flags field of a section structure is separated into two parts a section
    type and section attributes.  The section types are mutually exclusive (it
@@ -129,7 +162,7 @@ static const char * bfd_mach_o_ppc_flavour_string    PARAMS ((unsigned int));
 #define N_SECT 0xe
 #define N_INDR 0xa
 
-boolean
+bfd_boolean
 bfd_mach_o_valid (abfd)
      bfd *abfd;
 {
@@ -149,33 +182,33 @@ bfd_mach_o_valid (abfd)
 /* Copy any private info we understand from the input symbol
    to the output symbol.  */
 
-static boolean
+static bfd_boolean
 bfd_mach_o_bfd_copy_private_symbol_data (ibfd, isymbol, obfd, osymbol)
      bfd *ibfd ATTRIBUTE_UNUSED;
      asymbol *isymbol ATTRIBUTE_UNUSED;
      bfd *obfd ATTRIBUTE_UNUSED;
      asymbol *osymbol ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Copy any private info we understand from the input section
    to the output section.  */
 
-static boolean
+static bfd_boolean
 bfd_mach_o_bfd_copy_private_section_data (ibfd, isection, obfd, osection)
      bfd *ibfd ATTRIBUTE_UNUSED;
      asection *isection ATTRIBUTE_UNUSED;
      bfd *obfd ATTRIBUTE_UNUSED;
      asection *osection ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Copy any private info we understand from the input bfd
    to the output bfd.  */
 
-static boolean
+static bfd_boolean
 bfd_mach_o_bfd_copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
@@ -185,7 +218,7 @@ bfd_mach_o_bfd_copy_private_bfd_data (ibfd, obfd)
 
   obfd->tdata.mach_o_data = ibfd->tdata.mach_o_data;
   obfd->tdata.mach_o_data->ibfd = ibfd;
-  return true;
+  return TRUE;
 }
 
 static long
@@ -325,7 +358,7 @@ bfd_mach_o_convert_architecture (mtype, msubtype, type, subtype)
     }
 }
 
-static boolean
+static bfd_boolean
 bfd_mach_o_write_contents (abfd)
      bfd *abfd;
 {
@@ -362,11 +395,11 @@ bfd_mach_o_write_contents (abfd)
 
            bfd_seek (abfd, curoff, SEEK_SET);
            if (bfd_bread ((PTR) buf, thisread, abfd) != thisread)
-             return false;
+             return FALSE;
 
            bfd_seek (abfd, curoff, SEEK_SET);
            if (bfd_bwrite ((PTR) buf, thisread, abfd) != thisread)
-             return false;
+             return FALSE;
 
            nbytes -= thisread;
            curoff += thisread;
@@ -377,7 +410,7 @@ bfd_mach_o_write_contents (abfd)
 
   /* Now write header information.  */
   if (bfd_mach_o_write_header (abfd, &mdata->header) != 0)
-    return false;
+    return FALSE;
 
   for (i = 0; i < mdata->header.ncmds; i++)
     {
@@ -392,24 +425,24 @@ bfd_mach_o_write_contents (abfd)
 
       bfd_seek (abfd, cur->offset, SEEK_SET);
       if (bfd_bwrite ((PTR) buf, 8, abfd) != 8)
-       return false;
+       return FALSE;
 
       switch (cur->type)
        {
        case BFD_MACH_O_LC_SEGMENT:
          if (bfd_mach_o_scan_write_segment (abfd, cur) != 0)
-           return false;
+           return FALSE;
          break;
        case BFD_MACH_O_LC_SYMTAB:
          if (bfd_mach_o_scan_write_symtab (abfd, cur) != 0)
-           return false;
+           return FALSE;
          break;
        case BFD_MACH_O_LC_SYMSEG:
          break;
        case BFD_MACH_O_LC_THREAD:
        case BFD_MACH_O_LC_UNIXTHREAD:
          if (bfd_mach_o_scan_write_thread (abfd, cur) != 0)
-           return false;
+           return FALSE;
          break;
        case BFD_MACH_O_LC_LOADFVMLIB:
        case BFD_MACH_O_LC_IDFVMLIB:
@@ -430,17 +463,17 @@ bfd_mach_o_write_contents (abfd)
          fprintf (stderr,
                   "unable to write unknown load command 0x%lx\n",
                   (long) cur->type);
-         return false;
+         return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 static int
 bfd_mach_o_sizeof_headers (a, b)
      bfd *a ATTRIBUTE_UNUSED;
-     boolean b ATTRIBUTE_UNUSED;
+     bfd_boolean b ATTRIBUTE_UNUSED;
 {
   return 0;
 }
@@ -1682,7 +1715,7 @@ bfd_mach_o_scan (abfd, header, mdata)
   return 0;
 }
 
-boolean
+bfd_boolean
 bfd_mach_o_mkobject (abfd)
      bfd *abfd;
 {
@@ -1691,7 +1724,7 @@ bfd_mach_o_mkobject (abfd)
   mdata = ((bfd_mach_o_data_struct *)
           bfd_alloc (abfd, sizeof (bfd_mach_o_data_struct)));
   if (mdata == NULL)
-    return false;
+    return FALSE;
   abfd->tdata.mach_o_data = mdata;
 
   mdata->header.magic = 0;
@@ -1709,7 +1742,7 @@ bfd_mach_o_mkobject (abfd)
   mdata->sections = NULL;
   mdata->ibfd = NULL;
 
-  return true;
+  return TRUE;
 }
 
 const bfd_target *
@@ -2149,12 +2182,12 @@ bfd_mach_o_core_file_failing_signal (abfd)
   return 0;
 }
 
-boolean
+bfd_boolean
 bfd_mach_o_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 #define TARGET_NAME mach_o_be_vec
index f78027321de8db8fdd67abf98eeae12288296d7f..c94f01d9af6ed5f0a0e18610cdd50911894b208d 100644 (file)
@@ -463,25 +463,46 @@ mach_o_data_struct;
 
 typedef struct mach_o_data_struct bfd_mach_o_data_struct;
 
-boolean            bfd_mach_o_valid                     PARAMS ((bfd *));
-int                bfd_mach_o_scan_read_symtab_symbol   PARAMS ((bfd *, bfd_mach_o_symtab_command *, asymbol *, unsigned long));
-int                bfd_mach_o_scan_read_symtab_strtab   PARAMS ((bfd *, bfd_mach_o_symtab_command *));
-int                bfd_mach_o_scan_read_symtab_symbols  PARAMS ((bfd *, bfd_mach_o_symtab_command *));
-int                bfd_mach_o_scan_read_dysymtab_symbol PARAMS ((bfd *, bfd_mach_o_dysymtab_command *, bfd_mach_o_symtab_command *, asymbol *, unsigned long));
-int                bfd_mach_o_scan_start_address        PARAMS ((bfd *));
-int                bfd_mach_o_scan                      PARAMS ((bfd *, bfd_mach_o_header *, bfd_mach_o_data_struct *));
-boolean            bfd_mach_o_mkobject                  PARAMS ((bfd *));
-const bfd_target * bfd_mach_o_object_p                  PARAMS ((bfd *));
-const bfd_target * bfd_mach_o_core_p                    PARAMS ((bfd *));
-const bfd_target * bfd_mach_o_archive_p                 PARAMS ((bfd *));
-bfd *              bfd_mach_o_openr_next_archived_file  PARAMS ((bfd *, bfd *));
-int                bfd_mach_o_lookup_section            PARAMS ((bfd *, asection *, bfd_mach_o_load_command **, bfd_mach_o_section **));
-int                bfd_mach_o_lookup_command            PARAMS ((bfd *, bfd_mach_o_load_command_type, bfd_mach_o_load_command **));
-unsigned long      bfd_mach_o_stack_addr                PARAMS ((enum bfd_mach_o_cpu_type));
-int                bfd_mach_o_core_fetch_environment    PARAMS ((bfd *, unsigned char **, unsigned int *));
-char *             bfd_mach_o_core_file_failing_command PARAMS ((bfd *));
-int                bfd_mach_o_core_file_failing_signal  PARAMS ((bfd *));
-boolean            bfd_mach_o_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
+bfd_boolean bfd_mach_o_valid
+  PARAMS ((bfd *));
+int bfd_mach_o_scan_read_symtab_symbol
+  PARAMS ((bfd *, bfd_mach_o_symtab_command *, asymbol *, unsigned long));
+int bfd_mach_o_scan_read_symtab_strtab
+  PARAMS ((bfd *, bfd_mach_o_symtab_command *));
+int bfd_mach_o_scan_read_symtab_symbols
+  PARAMS ((bfd *, bfd_mach_o_symtab_command *));
+int bfd_mach_o_scan_read_dysymtab_symbol
+  PARAMS ((bfd *, bfd_mach_o_dysymtab_command *, bfd_mach_o_symtab_command *,
+          asymbol *, unsigned long));
+int bfd_mach_o_scan_start_address
+  PARAMS ((bfd *));
+int bfd_mach_o_scan
+  PARAMS ((bfd *, bfd_mach_o_header *, bfd_mach_o_data_struct *));
+bfd_boolean bfd_mach_o_mkobject
+  PARAMS ((bfd *));
+const bfd_target * bfd_mach_o_object_p
+  PARAMS ((bfd *));
+const bfd_target * bfd_mach_o_core_p
+  PARAMS ((bfd *));
+const bfd_target * bfd_mach_o_archive_p
+  PARAMS ((bfd *));
+bfd * bfd_mach_o_openr_next_archived_file
+  PARAMS ((bfd *, bfd *));
+int bfd_mach_o_lookup_section
+  PARAMS ((bfd *, asection *, bfd_mach_o_load_command **,
+          bfd_mach_o_section **));
+int bfd_mach_o_lookup_command
+  PARAMS ((bfd *, bfd_mach_o_load_command_type, bfd_mach_o_load_command **));
+unsigned long bfd_mach_o_stack_addr
+  PARAMS ((enum bfd_mach_o_cpu_type));
+int bfd_mach_o_core_fetch_environment
+  PARAMS ((bfd *, unsigned char **, unsigned int *));
+char * bfd_mach_o_core_file_failing_command
+  PARAMS ((bfd *));
+int bfd_mach_o_core_file_failing_signal
+  PARAMS ((bfd *));
+bfd_boolean bfd_mach_o_core_file_matches_executable_p
+  PARAMS ((bfd *, bfd *));
 
 extern const bfd_target mach_o_be_vec;
 extern const bfd_target mach_o_le_vec;
index 9dc2e7083443eb7b5731c5a9447abf6bb627956c..ec75a7be7e9dec27cafb91e9004d87dfd399b91c 100644 (file)
@@ -68,7 +68,7 @@ struct sec_merge_hash
   /* Entity size.  */
   unsigned int entsize;
   /* Are entries fixed size or zero terminated strings?  */
-  boolean strings;
+  bfd_boolean strings;
 };
 
 struct sec_merge_info
@@ -100,20 +100,24 @@ struct sec_merge_sec_info
 static struct bfd_hash_entry *sec_merge_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct sec_merge_hash_entry *sec_merge_hash_lookup
-  PARAMS ((struct sec_merge_hash *, const char *, unsigned int, boolean));
+  PARAMS ((struct sec_merge_hash *, const char *, unsigned int, bfd_boolean));
 static struct sec_merge_hash *sec_merge_init
-  PARAMS ((unsigned int, boolean));
+  PARAMS ((unsigned int, bfd_boolean));
 static struct sec_merge_hash_entry *sec_merge_add
   PARAMS ((struct sec_merge_hash *, const char *, unsigned int,
           struct sec_merge_sec_info *));
-static boolean sec_merge_emit
+static bfd_boolean sec_merge_emit
   PARAMS ((bfd *, struct sec_merge_hash_entry *));
-static int cmplengthentry PARAMS ((const PTR, const PTR));
-static int last4_eq PARAMS ((const PTR, const PTR));
-static int last_eq PARAMS ((const PTR, const PTR));
-static boolean record_section
+static int cmplengthentry
+  PARAMS ((const PTR, const PTR));
+static int last4_eq
+  PARAMS ((const PTR, const PTR));
+static int last_eq
+  PARAMS ((const PTR, const PTR));
+static bfd_boolean record_section
   PARAMS ((struct sec_merge_info *, struct sec_merge_sec_info *));
-static void merge_strings PARAMS ((struct sec_merge_info *));
+static void merge_strings
+  PARAMS ((struct sec_merge_info *));
 
 /* Routine to create an entry in a section merge hashtab.  */
 
@@ -156,7 +160,7 @@ sec_merge_hash_lookup (table, string, alignment, create)
      struct sec_merge_hash *table;
      const char *string;
      unsigned int alignment;
-     boolean create;
+     bfd_boolean create;
 {
   register const unsigned char *s;
   register unsigned long hash;
@@ -259,7 +263,7 @@ sec_merge_hash_lookup (table, string, alignment, create)
 static struct sec_merge_hash *
 sec_merge_init (entsize, strings)
      unsigned int entsize;
-     boolean strings;
+     bfd_boolean strings;
 {
   struct sec_merge_hash *table;
   bfd_size_type amt = sizeof (struct sec_merge_hash);
@@ -295,7 +299,7 @@ sec_merge_add (tab, str, alignment, secinfo)
 {
   register struct sec_merge_hash_entry *entry;
 
-  entry = sec_merge_hash_lookup (tab, str, alignment, true);
+  entry = sec_merge_hash_lookup (tab, str, alignment, TRUE);
   if (entry == NULL)
     return NULL;
 
@@ -313,7 +317,7 @@ sec_merge_add (tab, str, alignment, secinfo)
   return entry;
 }
 
-static boolean
+static bfd_boolean
 sec_merge_emit (abfd, entry)
      register bfd *abfd;
      struct sec_merge_hash_entry *entry;
@@ -353,13 +357,13 @@ sec_merge_emit (abfd, entry)
   if (alignment_power)
     free (pad);
 
-  return (boolean) (entry == NULL || entry->secinfo != secinfo);
+  return entry == NULL || entry->secinfo != secinfo;
 }
 
 /* This function is called for each input file from the add_symbols
    pass of the linker.  */
 
-boolean
+bfd_boolean
 _bfd_merge_section (abfd, psinfo, sec, psecinfo)
      bfd *abfd;
      PTR *psinfo;
@@ -375,12 +379,12 @@ _bfd_merge_section (abfd, psinfo, sec, psecinfo)
       || (sec->flags & SEC_EXCLUDE)
       || (sec->flags & SEC_MERGE) == 0
       || sec->entsize == 0)
-    return true;
+    return TRUE;
 
   if ((sec->flags & SEC_RELOC) != 0)
     {
       /* We aren't prepared to handle relocations in merged sections.  */
-      return true;
+      return TRUE;
     }
 
   align = bfd_get_section_alignment (sec->owner, sec);
@@ -396,7 +400,7 @@ _bfd_merge_section (abfd, psinfo, sec, psecinfo)
         of alignment.  For non-string constants, alignment must
         be smaller than or equal to entity size and entity size
         must be integer multiple of alignment.  */
-      return true;
+      return TRUE;
     }
 
   for (sinfo = (struct sec_merge_info *) *psinfo; sinfo; sinfo = sinfo->next)
@@ -446,11 +450,11 @@ _bfd_merge_section (abfd, psinfo, sec, psecinfo)
                                  (bfd_vma) 0, sec->_raw_size))
     goto error_return;
 
-  return true;
+  return TRUE;
 
  error_return:
   *psecinfo = NULL;
-  return false;
+  return FALSE;
 }
 
 /* Compare two sec_merge_hash_entry structures.  This is called via qsort.  */
@@ -533,21 +537,21 @@ last_eq (a, b)
 }
 
 /* Record one section into the hash table.  */
-static boolean
+static bfd_boolean
 record_section (sinfo, secinfo)
      struct sec_merge_info *sinfo;
      struct sec_merge_sec_info *secinfo;
 {
   asection *sec = secinfo->sec;
   struct sec_merge_hash_entry *entry;
-  boolean nul;
+  bfd_boolean nul;
   unsigned char *p, *end;
   bfd_vma mask, eltalign;
   unsigned int align, i;
 
   align = bfd_get_section_alignment (sec->owner, sec);
   end = secinfo->contents + sec->_raw_size;
-  nul = false;
+  nul = FALSE;
   mask = ((bfd_vma) 1 << align) - 1;
   if (sec->flags & SEC_STRINGS)
     {
@@ -567,7 +571,7 @@ record_section (sinfo, secinfo)
                {
                  if (!nul && !((p - secinfo->contents) & mask))
                    {
-                     nul = true;
+                     nul = TRUE;
                      entry = sec_merge_add (sinfo->htab, "",
                                             (unsigned) mask + 1, secinfo);
                      if (! entry)
@@ -587,7 +591,7 @@ record_section (sinfo, secinfo)
                    break;
                  if (!nul && !((p - secinfo->contents) & mask))
                    {
-                     nul = true;
+                     nul = TRUE;
                      entry = sec_merge_add (sinfo->htab, p,
                                             (unsigned) mask + 1, secinfo);
                      if (! entry)
@@ -608,12 +612,12 @@ record_section (sinfo, secinfo)
        }
     }
 
-  return true;
+  return TRUE;
 
 error_return:
   for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next)
     *secinfo->psecinfo = NULL;
-  return false;
+  return FALSE;
 }
 
 /* This is a helper function for _bfd_merge_sections.  It attempts to
@@ -643,9 +647,9 @@ merge_strings (sinfo)
   qsort (array, (size_t) sinfo->htab->size,
         sizeof (struct sec_merge_hash_entry *), cmplengthentry);
 
-  last4tab = htab_create_alloc ((size_t) sinfo->htab->size * 4, 
+  last4tab = htab_create_alloc ((size_t) sinfo->htab->size * 4,
                                NULL, last4_eq, NULL, calloc, free);
-  lasttab = htab_create_alloc ((size_t) sinfo->htab->size * 4, 
+  lasttab = htab_create_alloc ((size_t) sinfo->htab->size * 4,
                               NULL, last_eq, NULL, calloc, free);
   if (lasttab == NULL || last4tab == NULL)
     goto alloc_failure;
@@ -765,7 +769,7 @@ alloc_failure:
 /* This function is called once after all SEC_MERGE sections are registered
    with _bfd_merge_section.  */
 
-boolean
+bfd_boolean
 _bfd_merge_sections (abfd, xsinfo, remove_hook)
      bfd *abfd ATTRIBUTE_UNUSED;
      PTR xsinfo;
@@ -837,12 +841,12 @@ _bfd_merge_sections (abfd, xsinfo, remove_hook)
            secinfo->sec->_cooked_size = 0;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write out the merged section.  */
 
-boolean
+bfd_boolean
 _bfd_write_merged_section (output_bfd, sec, psecinfo)
      bfd *output_bfd;
      asection *sec;
@@ -854,16 +858,16 @@ _bfd_write_merged_section (output_bfd, sec, psecinfo)
   secinfo = (struct sec_merge_sec_info *) psecinfo;
 
   if (!secinfo->first)
-    return true;
+    return TRUE;
 
   pos = sec->output_section->filepos + sec->output_offset;
   if (bfd_seek (output_bfd, pos, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (! sec_merge_emit (output_bfd, secinfo->first))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust an address in the SEC_MERGE section.  Given OFFSET within
@@ -928,7 +932,7 @@ _bfd_merged_section_offset (output_bfd, psec, psecinfo, offset, addend)
       p = secinfo->contents
          + ((offset + addend) / sec->entsize) * sec->entsize;
     }
-  entry = sec_merge_hash_lookup (secinfo->htab, p, 0, false);
+  entry = sec_merge_hash_lookup (secinfo->htab, p, 0, FALSE);
   if (!entry)
     {
       if (! secinfo->htab->strings)
index f2802ab2a5be5256ab4d2a4c498d4f971ebb8713..581ace299ecd49006849f20f6a062a1e374ed36c 100644 (file)
@@ -53,7 +53,7 @@ static void MY(set_arch_mach) PARAMS ((bfd *abfd, unsigned long machtype));
 static void MY(choose_reloc_size) PARAMS ((bfd *abfd));
 
 #define MY_write_object_contents MY(write_object_contents)
-static boolean MY(write_object_contents) PARAMS ((bfd *abfd));
+static bfd_boolean MY(write_object_contents) PARAMS ((bfd *abfd));
 
 /* We can't use MY(x) here because it leads to a recursive call to CONCAT2
    when expanded inside JUMP_TABLE.  */
@@ -130,7 +130,7 @@ MY (choose_reloc_size) (abfd)
   Section contents have already been written.  We write the
   file header, symbols, and relocation.  */
 
-static boolean
+static bfd_boolean
 MY (write_object_contents) (abfd)
      bfd *abfd;
 {
@@ -181,7 +181,7 @@ MY (write_object_contents) (abfd)
 
   WRITE_HEADERS (abfd, execp);
 
-  return true;
+  return TRUE;
 }
 
 /* MIPS relocation types.  */
@@ -290,20 +290,20 @@ mips_fix_hi16_s (abfd, reloc_entry, symbol, data, input_section,
 }
 
 static reloc_howto_type mips_howto_table_ext[] = {
-  {MIPS_RELOC_32,      0, 2, 32, false, 0,  complain_overflow_bitfield, 0,
-       "32",       false, 0, 0xffffffff, false},
-  {MIPS_RELOC_JMP,     2, 2, 26, false, 0, complain_overflow_dont,
+  {MIPS_RELOC_32,      0, 2, 32, FALSE, 0,  complain_overflow_bitfield, 0,
+       "32",       FALSE, 0, 0xffffffff, FALSE},
+  {MIPS_RELOC_JMP,     2, 2, 26, FALSE, 0, complain_overflow_dont,
        mips_fix_jmp_addr,
-       "MIPS_JMP", false, 0, 0x03ffffff, false},
-  {MIPS_RELOC_WDISP16, 2, 2, 16, true,  0, complain_overflow_signed, 0,
-       "WDISP16",  false, 0, 0x0000ffff, false},
-  {MIPS_RELOC_HI16,   16, 2, 16, false, 0, complain_overflow_bitfield, 0,
-       "HI16",     false, 0, 0x0000ffff, false},
-  {MIPS_RELOC_HI16_S, 16, 2, 16, false, 0, complain_overflow_bitfield,
+       "MIPS_JMP", FALSE, 0, 0x03ffffff, FALSE},
+  {MIPS_RELOC_WDISP16, 2, 2, 16, TRUE,  0, complain_overflow_signed, 0,
+       "WDISP16",  FALSE, 0, 0x0000ffff, FALSE},
+  {MIPS_RELOC_HI16,   16, 2, 16, FALSE, 0, complain_overflow_bitfield, 0,
+       "HI16",     FALSE, 0, 0x0000ffff, FALSE},
+  {MIPS_RELOC_HI16_S, 16, 2, 16, FALSE, 0, complain_overflow_bitfield,
         mips_fix_hi16_s,
-        "HI16_S",   false, 0, 0x0000ffff, false},
-  {MIPS_RELOC_LO16,    0, 2, 16, false, 0, complain_overflow_dont, 0,
-       "LO16",     false, 0, 0x0000ffff, false},
+        "HI16_S",   FALSE, 0, 0x0000ffff, FALSE},
+  {MIPS_RELOC_LO16,    0, 2, 16, FALSE, 0, complain_overflow_dont, 0,
+       "LO16",     FALSE, 0, 0x0000ffff, FALSE},
 };
 
 static reloc_howto_type *
index 96c654e8ee92dd4726c239ae6820ef56de18653e..f734fa93c8774ebbc8b4b0670591ce97caf3ba69 100644 (file)
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -302,7 +302,7 @@ struct mmo_data_struct
 
     /* When we're reading bytes recursively, check this occasionally.
        Also holds write errors.  */
-    boolean have_error;
+    bfd_boolean have_error;
 
     /* Max symbol length that may appear in the lop_stab table.  Note that
        this table might just hold a subset of symbols for not-really large
@@ -342,7 +342,7 @@ struct mmo_section_data_struct
 struct mmo_write_sec_info
   {
     asection *reg_section;
-    boolean retval;
+    bfd_boolean retval;
   };
 
 /* Used when trying to find a section corresponding to addr.  */
@@ -352,73 +352,113 @@ struct mmo_find_sec_info
     bfd_vma addr;
   };
 
-static boolean mmo_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
+static bfd_boolean mmo_bfd_copy_private_bfd_data
+  PARAMS ((bfd *, bfd *));
 static void mmo_write_section_unless_reg_contents
  PARAMS ((bfd *, asection *, PTR));
-static void mmo_find_sec_w_addr PARAMS ((bfd *, asection *, PTR));
-static void mmo_find_sec_w_addr_grow PARAMS ((bfd *, asection *, PTR));
-static asection *mmo_make_section PARAMS ((bfd *, const char *));
-static void mmo_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
+static void mmo_find_sec_w_addr
+  PARAMS ((bfd *, asection *, PTR));
+static void mmo_find_sec_w_addr_grow
+  PARAMS ((bfd *, asection *, PTR));
+static asection *mmo_make_section
+  PARAMS ((bfd *, const char *));
+static void mmo_get_symbol_info
+  PARAMS ((bfd *, asymbol *, symbol_info *));
 static void mmo_print_symbol
- PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
-static void mmo_init PARAMS ((void));
-static boolean mmo_mkobject PARAMS ((bfd *));
-static boolean mmo_scan PARAMS ((bfd *));
-static asection *mmo_decide_section PARAMS ((bfd *, bfd_vma));
-static asection *mmo_get_generic_spec_data_section PARAMS ((bfd *, int));
-static asection *mmo_get_spec_section PARAMS ((bfd *, int));
-static INLINE bfd_byte *mmo_get_loc PARAMS ((asection *, bfd_vma, int));
-static void mmo_xore_64 PARAMS ((asection *, bfd_vma vma, bfd_vma value));
-static void mmo_xore_32 PARAMS ((asection *, bfd_vma vma, unsigned int));
-static void mmo_xore_16 PARAMS ((asection *, bfd_vma vma, unsigned int));
-static const bfd_target *mmo_object_p PARAMS ((bfd *));
-static void mmo_map_set_sizes PARAMS ((bfd *, asection *, PTR));
-static boolean mmo_get_symbols PARAMS ((bfd *));
-static boolean mmo_create_symbol PARAMS ((bfd *, const char *, bfd_vma,
-                                         enum mmo_sym_type, unsigned int));
-static boolean mmo_get_section_contents
+  PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
+static void mmo_init
+  PARAMS ((void));
+static bfd_boolean mmo_mkobject
+  PARAMS ((bfd *));
+static bfd_boolean mmo_scan
+  PARAMS ((bfd *));
+static asection *mmo_decide_section
+  PARAMS ((bfd *, bfd_vma));
+static asection *mmo_get_generic_spec_data_section
+  PARAMS ((bfd *, int));
+static asection *mmo_get_spec_section
+  PARAMS ((bfd *, int));
+static INLINE bfd_byte *mmo_get_loc
+  PARAMS ((asection *, bfd_vma, int));
+static void mmo_xore_64
+  PARAMS ((asection *, bfd_vma vma, bfd_vma value));
+static void mmo_xore_32
+  PARAMS ((asection *, bfd_vma vma, unsigned int));
+static void mmo_xore_16
+  PARAMS ((asection *, bfd_vma vma, unsigned int));
+static const bfd_target *mmo_object_p
+  PARAMS ((bfd *));
+static void mmo_map_set_sizes
+  PARAMS ((bfd *, asection *, PTR));
+static bfd_boolean mmo_get_symbols
+  PARAMS ((bfd *));
+static bfd_boolean mmo_create_symbol
+  PARAMS ((bfd *, const char *, bfd_vma, enum mmo_sym_type, unsigned int));
+static bfd_boolean mmo_get_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-static long mmo_get_symtab_upper_bound PARAMS ((bfd *));
-static long mmo_get_symtab PARAMS ((bfd *, asymbol **));
-static void mmo_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
-static void mmo_print_symbol PARAMS ((bfd *, PTR, asymbol *,
-                                     bfd_print_symbol_type));
-static boolean mmo_set_section_contents
+static long mmo_get_symtab_upper_bound
+  PARAMS ((bfd *));
+static long mmo_get_symtab
+  PARAMS ((bfd *, asymbol **));
+static void mmo_get_symbol_info
+  PARAMS ((bfd *, asymbol *, symbol_info *));
+static void mmo_print_symbol
+  PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
+static bfd_boolean mmo_set_section_contents
   PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
-static int mmo_sizeof_headers PARAMS ((bfd *, boolean));
-static long mmo_get_reloc_upper_bound PARAMS ((bfd *, asection *));
+static int mmo_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
+static long mmo_get_reloc_upper_bound
+  PARAMS ((bfd *, asection *));
 
-static boolean mmo_internal_write_header PARAMS ((bfd *));
-static boolean mmo_internal_write_post PARAMS ((bfd *, int, asection *));
-static boolean mmo_internal_add_3_sym
- PARAMS ((bfd *, struct mmo_symbol_trie *, const struct mmo_symbol *));
+static bfd_boolean mmo_internal_write_header
+  PARAMS ((bfd *));
+static bfd_boolean mmo_internal_write_post
+  PARAMS ((bfd *, int, asection *));
+static bfd_boolean mmo_internal_add_3_sym
+  PARAMS ((bfd *, struct mmo_symbol_trie *, const struct mmo_symbol *));
 static unsigned int mmo_internal_3_length
- PARAMS ((bfd *, struct mmo_symbol_trie *));
 PARAMS ((bfd *, struct mmo_symbol_trie *));
 static void mmo_internal_3_dump
- PARAMS ((bfd *, struct mmo_symbol_trie *));
-static void mmo_beb128_out PARAMS ((bfd *, int, int));
-static boolean mmo_internal_write_section
+  PARAMS ((bfd *, struct mmo_symbol_trie *));
+static void mmo_beb128_out
+  PARAMS ((bfd *, int, int));
+static bfd_boolean mmo_internal_write_section
   PARAMS ((bfd *, asection *));
-static void mmo_write_tetra PARAMS ((bfd *, unsigned int));
-static void mmo_write_tetra_raw PARAMS ((bfd *, unsigned int));
-static void mmo_write_octa PARAMS ((bfd *, bfd_vma));
-static void mmo_write_octa_raw PARAMS ((bfd *, bfd_vma));
-static boolean mmo_write_chunk
+static void mmo_write_tetra
+  PARAMS ((bfd *, unsigned int));
+static void mmo_write_tetra_raw
+  PARAMS ((bfd *, unsigned int));
+static void mmo_write_octa
+  PARAMS ((bfd *, bfd_vma));
+static void mmo_write_octa_raw
+  PARAMS ((bfd *, bfd_vma));
+static bfd_boolean mmo_write_chunk
   PARAMS ((bfd *, const bfd_byte *, unsigned int));
-static boolean mmo_flush_chunk PARAMS ((bfd *));
-static boolean mmo_write_loc_chunk
+static bfd_boolean mmo_flush_chunk
+  PARAMS ((bfd *));
+static bfd_boolean mmo_write_loc_chunk
   PARAMS ((bfd *, bfd_vma, const bfd_byte *, unsigned int, bfd_vma *));
-static boolean mmo_write_chunk_list PARAMS ((bfd *, mmo_data_list_type *));
-static boolean mmo_write_loc_chunk_list
+static bfd_boolean mmo_write_chunk_list
   PARAMS ((bfd *, mmo_data_list_type *));
-static boolean mmo_write_symbols_and_terminator PARAMS ((bfd *));
-static flagword mmo_sec_flags_from_bfd_flags PARAMS ((flagword));
-static flagword bfd_sec_flags_from_mmo_flags PARAMS ((flagword));
-static bfd_byte mmo_get_byte PARAMS ((bfd *));
-static void mmo_write_byte PARAMS ((bfd *, bfd_byte));
-static boolean mmo_new_section_hook PARAMS ((bfd *, asection *));
-static int mmo_sort_mmo_symbols PARAMS ((const PTR, const PTR));
-static boolean mmo_write_object_contents PARAMS ((bfd *));
+static bfd_boolean mmo_write_loc_chunk_list
+  PARAMS ((bfd *, mmo_data_list_type *));
+static bfd_boolean mmo_write_symbols_and_terminator
+  PARAMS ((bfd *));
+static flagword mmo_sec_flags_from_bfd_flags
+  PARAMS ((flagword));
+static flagword bfd_sec_flags_from_mmo_flags
+  PARAMS ((flagword));
+static bfd_byte mmo_get_byte
+  PARAMS ((bfd *));
+static void mmo_write_byte
+  PARAMS ((bfd *, bfd_byte));
+static bfd_boolean mmo_new_section_hook
+  PARAMS ((bfd *, asection *));
+static int mmo_sort_mmo_symbols
+  PARAMS ((const PTR, const PTR));
+static bfd_boolean mmo_write_object_contents
+  PARAMS ((bfd *));
 static long mmo_canonicalize_reloc
   PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
 
@@ -475,7 +515,7 @@ mmo_make_section (abfd, secname)
 static void
 mmo_init ()
 {
-  static boolean inited = false;
+  static bfd_boolean inited = FALSE;
   int i = 0;
   int j = 0;
   static const char letters[]
@@ -483,7 +523,7 @@ mmo_init ()
 
   if (inited)
     return;
-  inited = true;
+  inited = TRUE;
 
   /* Fill in the set of valid symbol characters.  */
   strcpy (valid_mmo_symbol_character_set, letters);
@@ -563,7 +603,7 @@ mmo_object_p (abfd)
 
 /* Set up the mmo tdata information.  */
 
-static boolean
+static bfd_boolean
 mmo_mkobject (abfd)
      bfd *abfd;
 {
@@ -577,7 +617,7 @@ mmo_mkobject (abfd)
         initialize most.  */
       tdata_type *tdata = (tdata_type *) bfd_zmalloc (sizeof (tdata_type));
       if (tdata == NULL)
-       return false;
+       return FALSE;
 
       created = time (NULL);
       bfd_put_32 (abfd, created, tdata->created);
@@ -585,24 +625,24 @@ mmo_mkobject (abfd)
       abfd->tdata.mmo_data = tdata;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 mmo_bfd_copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd;
      bfd *obfd;
 {
   if (bfd_get_flavour (ibfd) != bfd_target_mmo_flavour
       || bfd_get_flavour (obfd) != bfd_target_mmo_flavour)
-    return true;
+    return TRUE;
 
   /* Copy the time the copied-from file was created.  If people want the
      time the file was last *modified*, they have that in the normal file
      information.  */
   memcpy (obfd->tdata.mmo_data->created, ibfd->tdata.mmo_data->created,
          sizeof (obfd->tdata.mmo_data->created));
-  return true;
+  return TRUE;
 }
 
 /* Helper functions for mmo_decide_section, used through
@@ -775,7 +815,7 @@ mmo_write_tetra_raw (abfd, value)
   bfd_put_32 (abfd, value, buf);
 
   if (bfd_bwrite ((PTR) buf, 4, abfd) != 4)
-    abfd->tdata.mmo_data->have_error = true;
+    abfd->tdata.mmo_data->have_error = TRUE;
 }
 
 /* Write a 32-bit word to output file; lop_quote if necessary.  */
@@ -816,13 +856,13 @@ mmo_write_octa_raw (abfd, value)
 /* Write quoted contents.  Intended to be called multiple times in
    sequence, followed by a call to mmo_flush_chunk.  */
 
-static INLINE boolean
+static INLINE bfd_boolean
 mmo_write_chunk (abfd, loc, len)
      bfd *abfd;
      const bfd_byte *loc;
      unsigned int len;
 {
-  boolean retval = true;
+  bfd_boolean retval = TRUE;
 
   /* Fill up a tetra from bytes remaining from a previous chunk.  */
   if (abfd->tdata.mmo_data->byte_no != 0)
@@ -861,14 +901,14 @@ mmo_write_chunk (abfd, loc, len)
     }
 
   if (! retval)
-    abfd->tdata.mmo_data->have_error = true;
+    abfd->tdata.mmo_data->have_error = TRUE;
   return retval;
 }
 
 /* Flush remaining bytes, from a previous mmo_write_chunk, zero-padded to
    4 bytes.  */
 
-static INLINE boolean
+static INLINE bfd_boolean
 mmo_flush_chunk (abfd)
      bfd *abfd;
 {
@@ -886,14 +926,14 @@ mmo_flush_chunk (abfd)
 
 /* Same, but from a list.  */
 
-static INLINE boolean
+static INLINE bfd_boolean
 mmo_write_chunk_list (abfd, datap)
      bfd *abfd;
      mmo_data_list_type *datap;
 {
   for (; datap != NULL; datap = datap->next)
     if (! mmo_write_chunk (abfd, datap->data, datap->size))
-      return false;
+      return FALSE;
 
   return mmo_flush_chunk (abfd);
 }
@@ -902,7 +942,7 @@ mmo_write_chunk_list (abfd, datap)
    mmo_flush_chunk after calling this function.  The location is only
    output if different than *LAST_VMAP, which is updated after this call.  */
 
-static boolean
+static bfd_boolean
 mmo_write_loc_chunk (abfd, vma, loc, len, last_vmap)
      bfd *abfd;
      bfd_vma vma;
@@ -953,7 +993,7 @@ mmo_write_loc_chunk (abfd, vma, loc, len, last_vmap)
 
 /* Same, but from a list.  */
 
-static INLINE boolean
+static INLINE bfd_boolean
 mmo_write_loc_chunk_list (abfd, datap)
      bfd *abfd;
      mmo_data_list_type *datap;
@@ -964,7 +1004,7 @@ mmo_write_loc_chunk_list (abfd, datap)
   for (; datap != NULL; datap = datap->next)
     if (! mmo_write_loc_chunk (abfd, datap->where, datap->data, datap->size,
                               &last_vma))
-      return false;
+      return FALSE;
 
   return mmo_flush_chunk (abfd);
 }
@@ -1169,7 +1209,7 @@ mmo_get_byte (abfd)
       if (! abfd->tdata.mmo_data->have_error
          && bfd_bread (abfd->tdata.mmo_data->buf, 4, abfd) != 4)
        {
-         abfd->tdata.mmo_data->have_error = true;
+         abfd->tdata.mmo_data->have_error = TRUE;
 
          /* A value somewhat safe against tripping on some inconsistency
             when mopping up after this error.  */
@@ -1195,13 +1235,13 @@ mmo_write_byte (abfd, value)
     {
       if (! abfd->tdata.mmo_data->have_error
          && bfd_bwrite (abfd->tdata.mmo_data->buf, 4, abfd) != 4)
-       abfd->tdata.mmo_data->have_error = true;
+       abfd->tdata.mmo_data->have_error = TRUE;
     }
 }
 
 /* Create a symbol.  */
 
-static boolean
+static bfd_boolean
 mmo_create_symbol (abfd, symname, addr, sym_type, serno)
      bfd *abfd;
      const char *symname;
@@ -1213,11 +1253,11 @@ mmo_create_symbol (abfd, symname, addr, sym_type, serno)
 
   n = (struct mmo_symbol *) bfd_alloc (abfd, sizeof (struct mmo_symbol));
   if (n == NULL)
-    return false;
+    return FALSE;
 
   n->name = bfd_alloc (abfd, strlen (symname) + 1);
   if (n->name == NULL)
-    return false;
+    return FALSE;
 
   strcpy ((PTR) n->name, symname);
 
@@ -1245,15 +1285,15 @@ mmo_create_symbol (abfd, symname, addr, sym_type, serno)
        (_("%s: invalid mmo file: initialization value for $255 is not `Main'\n"),
         bfd_get_filename (abfd));
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Read in symbols.  */
 
-static boolean
+static bfd_boolean
 mmo_get_symbols (abfd)
      bfd *abfd;
 {
@@ -1360,7 +1400,7 @@ SUBSECTION
 
   /* Check first if we have a bad hair day.  */
   if (abfd->tdata.mmo_data->have_error)
-    return false;
+    return FALSE;
 
   if (m & MMO3_LEFT)
     /* Traverse left trie. */
@@ -1393,8 +1433,8 @@ SUBSECTION
                 bfd_get_filename (abfd), c, c2,
                 abfd->tdata.mmo_data->lop_stab_symbol);
              bfd_set_error (bfd_error_bad_value);
-             abfd->tdata.mmo_data->have_error = true;
-             return false;
+             abfd->tdata.mmo_data->have_error = TRUE;
+             return FALSE;
            }
          else
            c = c2;
@@ -1448,7 +1488,7 @@ SUBSECTION
                                      abfd->tdata.mmo_data->lop_stab_symbol
                                      + 1,
                                      addr, sym_type, serno))
-           abfd->tdata.mmo_data->have_error = true;
+           abfd->tdata.mmo_data->have_error = TRUE;
        }
 
       if (m & MMO3_MIDDLE)
@@ -1586,13 +1626,13 @@ mmo_map_set_sizes (abfd, sec, ignored)
 
 /* Read the mmo file and turn it into sections.  */
 
-static boolean
+static bfd_boolean
 mmo_scan (abfd)
      bfd *abfd;
 {
   unsigned int i;
   unsigned int lineno = 1;
-  boolean error = false;
+  bfd_boolean error = FALSE;
   bfd_vma vma = 0;
   asection *sec = bfd_make_section_old_way (abfd, MMO_TEXT_SECTION_NAME);
   asection *non_spec_sec = NULL;
@@ -2039,7 +2079,7 @@ mmo_scan (abfd)
     bfd_set_error (bfd_error_bad_value);
 
  error_return:
-  error = true;
+  error = TRUE;
  done:
   /* Mark the .text and .data section with their normal attribute if they
      contain anything.  This is not redundant wrt. mmo_decide_section,
@@ -2051,7 +2091,7 @@ mmo_scan (abfd)
       && ! bfd_set_section_flags (abfd, sec,
                                  bfd_get_section_flags (abfd, sec)
                                  | SEC_ALLOC | SEC_LOAD | SEC_CODE))
-    error = true;
+    error = TRUE;
 
   sec = bfd_get_section_by_name (abfd, MMO_DATA_SECTION_NAME);
   if (sec != NULL
@@ -2059,7 +2099,7 @@ mmo_scan (abfd)
       && ! bfd_set_section_flags (abfd, sec,
                                  bfd_get_section_flags (abfd, sec)
                                  | SEC_ALLOC | SEC_LOAD))
-    error = true;
+    error = TRUE;
 
   /* Free whatever resources we took.  */
   for (i = 0; i < sizeof (file_names) / sizeof (file_names[0]); i++)
@@ -2071,7 +2111,7 @@ mmo_scan (abfd)
 /* A hook to set up object file dependent section information.  For mmo,
    we point out the shape of allocated section contents.  */
 
-static boolean
+static bfd_boolean
 mmo_new_section_hook (abfd, newsect)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *newsect;
@@ -2082,17 +2122,17 @@ mmo_new_section_hook (abfd, newsect)
     (PTR) bfd_zalloc (abfd, sizeof (struct mmo_section_data_struct));
 
   if (!newsect->used_by_bfd)
-    return false;
+    return FALSE;
 
   /* Always align to at least 32-bit words.  */
   newsect->alignment_power = 2;
-  return true;
+  return TRUE;
 }
 
 /* We already have section contents loaded for sections that have
    contents.  */
 
-static boolean
+static bfd_boolean
 mmo_get_section_contents (abfd, sec, location, offset, bytes_to_do)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec ATTRIBUTE_UNUSED;
@@ -2116,7 +2156,7 @@ mmo_get_section_contents (abfd, sec, location, offset, bytes_to_do)
       while (loc == NULL && (chunk_size /= 2) != 0);
 
       if (chunk_size == 0)
-       return false;
+       return FALSE;
 
       memcpy (location, loc, chunk_size);
 
@@ -2124,7 +2164,7 @@ mmo_get_section_contents (abfd, sec, location, offset, bytes_to_do)
       bytes_to_do -= chunk_size;
       offset += chunk_size;
     }
-  return true;
+  return TRUE;
 }
 
 /* Return the amount of memory needed to read the symbol table.  */
@@ -2191,7 +2231,7 @@ mmo_get_symtab (abfd, alocation)
 
       csymbols = (asymbol *) bfd_alloc (abfd, symcount * sizeof (asymbol));
       if (csymbols == NULL && symcount != 0)
-       return false;
+       return FALSE;
       abfd->tdata.mmo_data->csymbols = csymbols;
 
       for (msp = (struct mmo_symbol **) alocation, c = csymbols;
@@ -2289,27 +2329,27 @@ mmo_print_symbol (abfd, afile, symbol, how)
 static int
 mmo_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return 0;
 }
 
 /* Write the (section-neutral) file preamble.  */
 
-static boolean
+static bfd_boolean
 mmo_internal_write_header (abfd)
      bfd *abfd;
 {
   const char lop_pre_bfd[] = { LOP, LOP_PRE, 1, 1};
 
   if (bfd_bwrite (lop_pre_bfd, 4, abfd) != 4)
-    return false;
+    return FALSE;
 
   /* Copy creation time of original file.  */
   if (bfd_bwrite (abfd->tdata.mmo_data->created, 4, abfd) != 4)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Write the LOP_POST record, with global register initializations.
@@ -2317,7 +2357,7 @@ mmo_internal_write_header (abfd)
    registers at DATA.  The Z = 255 field is filled in with the
    start-address.  */
 
-static boolean
+static bfd_boolean
 mmo_internal_write_post (abfd, z, sec)
      bfd *abfd;
      int z;
@@ -2332,7 +2372,7 @@ mmo_internal_write_post (abfd, z, sec)
       bfd_byte *data = mmo_get_loc (sec, i * 8, 8);
 
       if (bfd_bwrite (data, 8, abfd) != 8)
-       return false;
+       return FALSE;
     }
 
   /* For Z == $255, we always emit the start location; supposedly Main,
@@ -2404,7 +2444,7 @@ bfd_sec_flags_from_mmo_flags (flags)
 
 /* Write a section.  */
 
-static boolean
+static bfd_boolean
 mmo_internal_write_section (abfd, sec)
      bfd *abfd;
      asection *sec;
@@ -2438,7 +2478,7 @@ mmo_internal_write_section (abfd, sec)
       /* This would normally be an abort call since this can't happen, but
          we don't do that.  */
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
   else if (strncmp (sec->name, MMIX_OTHER_SPEC_SECTION_PREFIX,
                    strlen (MMIX_OTHER_SPEC_SECTION_PREFIX)) == 0)
@@ -2565,7 +2605,7 @@ EXAMPLE
       /* Writing a LOP_LOC ends the LOP_SPEC data, and makes data actually
         loaded.  */
       if (bfd_get_section_flags (abfd, sec) & SEC_LOAD)
-         return 
+         return
            ! abfd->tdata.mmo_data->have_error
            && mmo_write_loc_chunk_list (abfd,
                                         ((struct mmo_section_data_struct *)
@@ -2576,12 +2616,12 @@ EXAMPLE
                                 ((struct mmo_section_data_struct *)
                                  (sec->used_by_bfd))->head);
     }
-  return true;
+  return TRUE;
 }
 
 /* We save up all data before output.  */
 
-static boolean
+static bfd_boolean
 mmo_set_section_contents (abfd, sec, location, offset, bytes_to_do)
      bfd *abfd ATTRIBUTE_UNUSED;
      sec_ptr sec;
@@ -2604,7 +2644,7 @@ mmo_set_section_contents (abfd, sec, location, offset, bytes_to_do)
       while (loc == NULL && (chunk_size /= 2) != 0);
 
       if (chunk_size == 0)
-       return false;
+       return FALSE;
 
       memcpy (loc, location, chunk_size);
 
@@ -2612,12 +2652,12 @@ mmo_set_section_contents (abfd, sec, location, offset, bytes_to_do)
       bytes_to_do -= chunk_size;
       offset += chunk_size;
     }
-  return true;
+  return TRUE;
 }
 
 /* Add a symbol to a trie-tree.  */
 
-static boolean
+static bfd_boolean
 mmo_internal_add_3_sym (abfd, rootp, symp)
      bfd *abfd;
      struct mmo_symbol_trie *rootp;
@@ -2670,11 +2710,11 @@ mmo_internal_add_3_sym (abfd, rootp, symp)
        (_("%s: invalid symbol table: duplicate symbol `%s'\n"),
         bfd_get_filename (abfd), trie->sym.name);
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   memcpy (&trie->sym, symp, sizeof *symp);
-  return true;
+  return TRUE;
 }
 
 /* Find out the length of the serialized version of a trie in bytes.  */
@@ -2849,7 +2889,7 @@ mmo_internal_3_dump (abfd, trie)
 
 /* Write symbols in mmo format.  Also write the lop_end terminator.  */
 
-static boolean
+static bfd_boolean
 mmo_write_symbols_and_terminator (abfd)
      bfd *abfd;
 {
@@ -2882,7 +2922,7 @@ mmo_write_symbols_and_terminator (abfd)
      symbols.  Make sure we have room for it.  */
   table = bfd_alloc (abfd, (count + 1) * sizeof (asymbol *));
   if (table == NULL)
-    return false;
+    return FALSE;
 
   memcpy (table, orig_table, count * sizeof (asymbol *));
 
@@ -2922,7 +2962,7 @@ mmo_write_symbols_and_terminator (abfd)
  than the start address %s\n"),
               bfd_get_filename (abfd), vmas_main, vmas_start);
            bfd_set_error (bfd_error_bad_value);
-           return false;
+           return FALSE;
          }
        break;
       }
@@ -2985,7 +3025,7 @@ mmo_write_symbols_and_terminator (abfd)
          sym.serno = serno++;
 
          if (! mmo_internal_add_3_sym (abfd, &root, &sym))
-           return false;
+           return FALSE;
        }
     }
 
@@ -3026,7 +3066,7 @@ mmo_write_symbols_and_terminator (abfd)
       root.right = NULL;
 
       if (! mmo_internal_add_3_sym (abfd, &root, &sym))
-       return false;
+       return FALSE;
 
       root.symchar = ':';
       root.middle = root.left;
@@ -3042,7 +3082,7 @@ mmo_write_symbols_and_terminator (abfd)
   /* Put out the lop_stab mark.  */
   bfd_put_32 (abfd, (LOP << 24) | (LOP_STAB << 16), buf);
   if (bfd_bwrite (buf, 4, abfd) != 4)
-    return false;
+    return FALSE;
 
   /* Dump out symbols.  */
   mmo_internal_3_dump (abfd, &root);
@@ -3058,7 +3098,7 @@ mmo_write_symbols_and_terminator (abfd)
         bfd_get_filename (abfd), trie_len,
         (abfd->tdata.mmo_data->byte_no + 3)/4);
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   /* Dump out remaining bytes in the buffer and handle I/O errors by
@@ -3071,7 +3111,7 @@ mmo_write_symbols_and_terminator (abfd)
 
       if (abfd->tdata.mmo_data->have_error
          || bfd_bwrite (abfd->tdata.mmo_data->buf, 4, abfd) != 4)
-       return false;
+       return FALSE;
     }
 
   bfd_put_32 (abfd, (LOP << 24) | (LOP_END << 16) | trie_len, buf);
@@ -3112,7 +3152,7 @@ mmo_write_section_unless_reg_contents (abfd, sec, p)
  contents\n"),
             bfd_get_filename (abfd), sec->name);
          bfd_set_error (bfd_error_bad_value);
-         infop->retval = false;
+         infop->retval = FALSE;
          return;
        }
 
@@ -3125,7 +3165,7 @@ mmo_write_section_unless_reg_contents (abfd, sec, p)
 /* Do the actual output of a file.  Assumes mmo_set_section_contents is
    already called. */
 
-static boolean
+static bfd_boolean
 mmo_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -3133,16 +3173,16 @@ mmo_write_object_contents (abfd)
 
   /* First, there are a few words of preamble.  */
   if (! mmo_internal_write_header (abfd))
-    return false;
+    return FALSE;
 
   wsecinfo.reg_section = NULL;
-  wsecinfo.retval = true;
+  wsecinfo.retval = TRUE;
 
   bfd_map_over_sections (abfd, mmo_write_section_unless_reg_contents,
                         (PTR) &wsecinfo);
 
   if (! wsecinfo.retval)
-    return false;
+    return FALSE;
 
   if (wsecinfo.reg_section != NULL)
     {
@@ -3177,15 +3217,15 @@ mmo_write_object_contents (abfd)
               (long) sec->_raw_size,
               (unsigned long) (sec->vma >> 32), (unsigned long) (sec->vma));
 
-         return false;
+         return FALSE;
        }
 
       if (! mmo_internal_write_post (abfd, z, sec))
-       return false;
+       return FALSE;
     }
   else
     if (! mmo_internal_write_post (abfd, 255, NULL))
-      return false;
+      return FALSE;
 
   return mmo_write_symbols_and_terminator (abfd);
 }
index 2787c46eb8912a1c20b05e797f20a85254a0fa1b..a9f1260271c99423a0b7dac964058b111776fc5c 100644 (file)
@@ -40,12 +40,16 @@ struct netbsd_core_struct {
 
 /* forward declarations */
 
-static const bfd_target *netbsd_core_file_p PARAMS ((bfd *abfd));
-static char *netbsd_core_file_failing_command PARAMS ((bfd *abfd));
-static int netbsd_core_file_failing_signal PARAMS ((bfd *abfd));
-static boolean netbsd_core_file_matches_executable_p
+static const bfd_target *netbsd_core_file_p
+  PARAMS ((bfd *abfd));
+static char *netbsd_core_file_failing_command
+  PARAMS ((bfd *abfd));
+static int netbsd_core_file_failing_signal
+  PARAMS ((bfd *abfd));
+static bfd_boolean netbsd_core_file_matches_executable_p
   PARAMS ((bfd *core_bfd, bfd *exec_bfd));
-static void swap_abort PARAMS ((void));
+static void swap_abort
+  PARAMS ((void));
 
 /* Handle NetBSD-style core dump file.  */
 
@@ -185,12 +189,12 @@ netbsd_core_file_failing_signal (abfd)
 }
 
 /* ARGSUSED */
-static boolean
+static bfd_boolean
 netbsd_core_file_matches_executable_p  (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
-  return true;         /* FIXME, We have no way of telling at this point */
+  return TRUE;         /* FIXME, We have no way of telling at this point */
 }
 \f
 /* If somebody calls any byte-swapping routines, shoot them.  */
index 05580328b056c4a0171268c586a270d3117fd478..04a4eabfdfd912c80485c5172df7947f98505e5e 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end definitions used by all NetBSD targets.
-   Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000
+   Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2002
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -64,7 +64,7 @@ USA.  */
 #define MY_entry_is_text_address 1
 
 #define MY_write_object_contents MY(write_object_contents)
-static boolean MY(write_object_contents) PARAMS ((bfd *abfd));
+static bfd_boolean MY(write_object_contents) PARAMS ((bfd *abfd));
 #define MY_text_includes_header 1
 
 #include "aout-target.h"
@@ -73,7 +73,7 @@ static boolean MY(write_object_contents) PARAMS ((bfd *abfd));
    Section contents have already been written.  We write the
    file header, symbols, and relocation.  */
 
-static boolean
+static bfd_boolean
 MY(write_object_contents) (abfd)
      bfd *abfd;
 {
@@ -114,5 +114,5 @@ MY(write_object_contents) (abfd)
 
   WRITE_HEADERS(abfd, execp);
 
-  return true;
+  return TRUE;
 }
index 1c1498b17332424d446d1c1e9905fb32c0ecf776..ec3237f3ce54f5ab62d11519ffb32f587bd75e1e 100644 (file)
--- a/bfd/nlm.c
+++ b/bfd/nlm.c
@@ -1,5 +1,5 @@
 /* NLM (NetWare Loadable Module) executable support for BFD.
-   Copyright 1993, 1994, 2001 Free Software Foundation, Inc.
+   Copyright 1993, 1994, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,26 +25,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* Make an NLM object.  We just need to allocate the backend
    information.  */
 
-boolean
+bfd_boolean
 nlm_mkobject (abfd)
      bfd * abfd;
 {
   bfd_size_type amt = sizeof (struct nlm_obj_tdata);
   nlm_tdata (abfd) = (struct nlm_obj_tdata *) bfd_zalloc (abfd, amt);
   if (nlm_tdata (abfd) == NULL)
-    return (false);
+    return FALSE;
 
   if (nlm_architecture (abfd) != bfd_arch_unknown)
     bfd_default_set_arch_mach (abfd, nlm_architecture (abfd),
                               nlm_machine (abfd));
 
   /* since everything is done at close time, do we need any initialization? */
-  return (true);
+  return TRUE;
 }
 
 /* Set the architecture and machine for an NLM object.  */
 
-boolean
+bfd_boolean
 nlm_set_arch_mach (abfd, arch, machine)
      bfd * abfd;
      enum bfd_architecture arch;
index 6099c2b016edbb8075e9f102aa8db74c281c8a32..7f74b52c0a41844e199f69d11f0923299ecd5065 100644 (file)
@@ -33,30 +33,30 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "libnlm.h"
 
-static boolean nlm_alpha_backend_object_p
+static bfd_boolean nlm_alpha_backend_object_p
   PARAMS ((bfd *));
-static boolean nlm_alpha_write_prefix
+static bfd_boolean nlm_alpha_write_prefix
   PARAMS ((bfd *));
-static boolean nlm_alpha_read_reloc
+static bfd_boolean nlm_alpha_read_reloc
   PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *));
-static boolean nlm_alpha_mangle_relocs
+static bfd_boolean nlm_alpha_mangle_relocs
   PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type));
-static boolean nlm_alpha_read_import
+static bfd_boolean nlm_alpha_read_import
   PARAMS ((bfd *, nlmNAME(symbol_type) *));
-static boolean nlm_alpha_write_import
+static bfd_boolean nlm_alpha_write_import
   PARAMS ((bfd *, asection *, arelent *));
-static boolean nlm_alpha_set_public_section
+static bfd_boolean nlm_alpha_set_public_section
   PARAMS ((bfd *, nlmNAME(symbol_type) *));
 static bfd_vma nlm_alpha_get_public_offset
   PARAMS ((bfd *, asymbol *));
-static boolean nlm_alpha_write_external
+static bfd_boolean nlm_alpha_write_external
   PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *));
 \f
 /* Alpha NLM's have a prefix header before the standard NLM.  This
    function reads it in, verifies the version, and seeks the bfd to
    the location before the regular NLM header.  */
 
-static boolean
+static bfd_boolean
 nlm_alpha_backend_object_p (abfd)
      bfd *abfd;
 {
@@ -64,24 +64,24 @@ nlm_alpha_backend_object_p (abfd)
   file_ptr size;
 
   if (bfd_bread ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s)
-    return false;
+    return FALSE;
 
   if (H_GET_32 (abfd, s.magic) != NLM32_ALPHA_MAGIC)
-    return false;
+    return FALSE;
 
   /* FIXME: Should we check the format number?  */
 
   /* Skip to the end of the header.  */
   size = H_GET_32 (abfd, s.size);
   if (bfd_seek (abfd, size, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Write out the prefix.  */
 
-static boolean
+static bfd_boolean
 nlm_alpha_write_prefix (abfd)
      bfd *abfd;
 {
@@ -92,8 +92,8 @@ nlm_alpha_write_prefix (abfd)
   H_PUT_32 (abfd, 2, s.format);
   H_PUT_32 (abfd, sizeof s, s.size);
   if (bfd_bwrite ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 \f
 /* How to process the various reloc types.  */
@@ -107,45 +107,45 @@ static reloc_howto_type nlm32_alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "IGNORE",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit reference to a symbol.  */
   HOWTO (ALPHA_R_REFLONG,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "REFLONG",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 64 bit reference to a symbol.  */
   HOWTO (ALPHA_R_REFQUAD,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "REFQUAD",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffffffffffff,    /* src_mask */
         0xffffffffffffffff,    /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit GP relative offset.  This is just like REFLONG except
      that when the value is used the value of the gp register will be
@@ -154,15 +154,15 @@ static reloc_howto_type nlm32_alpha_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "GPREL32",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Used for an instruction that refers to memory off the GP
      register.  The offset is 16 bits of the 32 bit instruction.  This
@@ -171,15 +171,15 @@ static reloc_howto_type nlm32_alpha_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "LITERAL",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* This reloc only appears immediately following a LITERAL reloc.
      It identifies a use of the literal.  It seems that the linker can
@@ -194,15 +194,15 @@ static reloc_howto_type nlm32_alpha_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "LITUSE",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Load the gp register.  This is always used for a ldah instruction
      which loads the upper 16 bits of the gp register.  The next reloc
@@ -219,15 +219,15 @@ static reloc_howto_type nlm32_alpha_howto_table[] =
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "GPDISP",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 21 bit branch.  The native assembler generates these for
      branches within the text segment, and also fills in the PC
@@ -237,90 +237,90 @@ static reloc_howto_type nlm32_alpha_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         21,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "BRADDR",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0x1fffff,              /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A hint for a jump to a register.  */
   HOWTO (ALPHA_R_HINT,         /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         14,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "HINT",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3fff,                /* src_mask */
         0x3fff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit PC relative offset.  */
   HOWTO (ALPHA_R_SREL16,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SREL16",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit PC relative offset.  */
   HOWTO (ALPHA_R_SREL32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SREL32",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 64 bit PC relative offset.  */
   HOWTO (ALPHA_R_SREL64,       /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "SREL64",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffffffffffff,    /* src_mask */
         0xffffffffffffffff,    /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Push a value on the reloc evaluation stack.  */
   HOWTO (ALPHA_R_OP_PUSH,      /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "OP_PUSH",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Store the value from the stack at the given address.  Store it in
      a bitfield of size r_size starting at bit position r_offset.  */
@@ -328,15 +328,15 @@ static reloc_howto_type nlm32_alpha_howto_table[] =
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "OP_STORE",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffffffffffffffff,    /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Subtract the reloc address from the value on the top of the
      relocation stack.  */
@@ -344,15 +344,15 @@ static reloc_howto_type nlm32_alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "OP_PSUB",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Shift the value on the top of the relocation stack right by the
      given value.  */
@@ -360,30 +360,30 @@ static reloc_howto_type nlm32_alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                      /* special_function */
         "OP_PRSHIFT",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Adjust the GP value for a new range in the object file.  */
   HOWTO (ALPHA_R_GPVALUE,      /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "GPVALUE",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false)                 /* pcrel_offset */
+        FALSE)                 /* pcrel_offset */
 };
 
 static reloc_howto_type nlm32_alpha_nw_howto =
@@ -391,21 +391,21 @@ static reloc_howto_type nlm32_alpha_nw_howto =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "NW_RELOC",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* Read an Alpha NLM reloc.  This routine keeps some static data which
    it uses when handling local relocs.  This only works correctly
    because all the local relocs are read at once.  */
 
-static boolean
+static bfd_boolean
 nlm_alpha_read_reloc (abfd, sym, secp, rel)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -422,7 +422,7 @@ nlm_alpha_read_reloc (abfd, sym, secp, rel)
 
   /* Read the reloc from the file.  */
   if (bfd_bread (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext)
-    return false;
+    return FALSE;
 
   /* Swap in the reloc information.  */
   r_vaddr = H_GET_64 (abfd, ext.r_vaddr);
@@ -596,12 +596,12 @@ nlm_alpha_read_reloc (abfd, sym, secp, rel)
   else
     rel->howto = &nlm32_alpha_howto_table[r_type];
 
-  return true;
+  return TRUE;
 }
 
 /* Mangle Alpha NLM relocs for output.  */
 
-static boolean
+static bfd_boolean
 nlm_alpha_mangle_relocs (abfd, sec, data, offset, count)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec ATTRIBUTE_UNUSED;
@@ -609,12 +609,12 @@ nlm_alpha_mangle_relocs (abfd, sec, data, offset, count)
      bfd_vma offset ATTRIBUTE_UNUSED;
      bfd_size_type count ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Read an ALPHA NLM import record */
 
-static boolean
+static bfd_boolean
 nlm_alpha_read_import (abfd, sym)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -628,13 +628,13 @@ nlm_alpha_read_import (abfd, sym)
 
   if (bfd_bread ((PTR) &symlength, (bfd_size_type) sizeof (symlength), abfd)
       != sizeof (symlength))
-    return false;
+    return FALSE;
   sym -> symbol.the_bfd = abfd;
   name = bfd_alloc (abfd, (bfd_size_type) symlength + 1);
   if (name == NULL)
-    return false;
+    return FALSE;
   if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength)
-    return false;
+    return FALSE;
   name[symlength] = '\0';
   sym -> symbol.name = name;
   sym -> symbol.flags = 0;
@@ -642,12 +642,12 @@ nlm_alpha_read_import (abfd, sym)
   sym -> symbol.section = bfd_und_section_ptr;
   if (bfd_bread ((PTR) temp, (bfd_size_type) sizeof (temp), abfd)
       != sizeof (temp))
-    return false;
+    return FALSE;
   rcount = H_GET_32 (abfd, temp);
   amt = rcount * sizeof (struct nlm_relent);
   nlm_relocs = (struct nlm_relent *) bfd_alloc (abfd, amt);
   if (!nlm_relocs)
-    return false;
+    return FALSE;
   sym -> relocs = nlm_relocs;
   sym -> rcnt = 0;
   while (sym -> rcnt < rcount)
@@ -655,18 +655,18 @@ nlm_alpha_read_import (abfd, sym)
       asection *section;
 
       if (! nlm_alpha_read_reloc (abfd, sym, &section, &nlm_relocs -> reloc))
-       return false;
+       return FALSE;
       nlm_relocs -> section = section;
       nlm_relocs++;
       sym -> rcnt++;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write an Alpha NLM reloc.  */
 
-static boolean
+static bfd_boolean
 nlm_alpha_write_import (abfd, sec, rel)
      bfd *abfd;
      asection *sec;
@@ -766,9 +766,9 @@ nlm_alpha_write_import (abfd, sec, rel)
 
   /* Write out the relocation.  */
   if (bfd_bwrite (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Alpha NetWare does not use the high bit to determine whether a
@@ -779,7 +779,7 @@ nlm_alpha_write_import (abfd, sec, rel)
 
 /* Set the section for a public symbol.  */
 
-static boolean
+static bfd_boolean
 nlm_alpha_set_public_section (abfd, sym)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -800,7 +800,7 @@ nlm_alpha_set_public_section (abfd, sym)
       /* The data segment had better be aligned.  */
       BFD_ASSERT ((bfd_section_size (abfd, code_sec) & 0xf) == 0);
     }
-  return true;
+  return TRUE;
 }
 
 /* Get the offset to write out for a public symbol.  */
@@ -815,7 +815,7 @@ nlm_alpha_get_public_offset (abfd, sym)
 \f
 /* Write an Alpha NLM external symbol.  */
 
-static boolean
+static bfd_boolean
 nlm_alpha_write_external (abfd, count, sym, relocs)
      bfd *abfd;
      bfd_size_type count;
@@ -831,11 +831,11 @@ nlm_alpha_write_external (abfd, count, sym, relocs)
   if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd)
        != sizeof (bfd_byte))
       || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len)
-    return false;
+    return FALSE;
 
   bfd_put_32 (abfd, count + 2, temp);
   if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp))
-    return false;
+    return FALSE;
 
   /* The first two relocs for each external symbol are the .lita
      address and the GP value.  */
@@ -845,20 +845,20 @@ nlm_alpha_write_external (abfd, count, sym, relocs)
   r.address = nlm_alpha_backend_data (abfd)->lita_address;
   r.addend = nlm_alpha_backend_data (abfd)->lita_size + 1;
   if (! nlm_alpha_write_import (abfd, (asection *) NULL, &r))
-    return false;
+    return FALSE;
 
   r.address = nlm_alpha_backend_data (abfd)->gp;
   r.addend = 0;
   if (! nlm_alpha_write_import (abfd, (asection *) NULL, &r))
-    return false;
+    return FALSE;
 
   for (i = 0; i < count; i++)
     {
       if (! nlm_alpha_write_import (abfd, relocs[i].sec, relocs[i].rel))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 #include "nlmswap.h"
@@ -870,7 +870,7 @@ static const struct nlm_backend_data nlm32_alpha_backend =
   sizeof (struct nlm32_alpha_external_prefix_header),
   bfd_arch_alpha,
   0,
-  true, /* no uninitialized data permitted by Alpha NetWare.  */
+  TRUE, /* no uninitialized data permitted by Alpha NetWare.  */
   nlm_alpha_backend_object_p,
   nlm_alpha_write_prefix,
   nlm_alpha_read_reloc,
index 095ab63f96cf33ad2d06d69046c3c504c9d13595..ce9595e4a2b59476cc95361474f90dc48c7073b7 100644 (file)
@@ -28,15 +28,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "libnlm.h"
 
-static boolean nlm_i386_read_reloc
+static bfd_boolean nlm_i386_read_reloc
   PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *));
-static boolean nlm_i386_write_import
+static bfd_boolean nlm_i386_write_import
   PARAMS ((bfd *, asection *, arelent *));
-static boolean nlm_i386_mangle_relocs
+static bfd_boolean nlm_i386_mangle_relocs
   PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type));
-static boolean nlm_i386_read_import
+static bfd_boolean nlm_i386_read_import
   PARAMS ((bfd *, nlmNAME(symbol_type) *));
-static boolean nlm_i386_write_external
+static bfd_boolean nlm_i386_write_external
   PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *));
 
 /* Adjust the reloc location by an absolute value.  */
@@ -46,15 +46,15 @@ static reloc_howto_type nlm_i386_abs_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "32",                  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* Adjust the reloc location by a PC relative displacement.  */
 
@@ -63,19 +63,19 @@ static reloc_howto_type nlm_i386_pcrel_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "DISP32",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        true);                 /* pcrel_offset */
+        TRUE);                 /* pcrel_offset */
 
 /* Read a NetWare i386 reloc.  */
 
-static boolean
+static bfd_boolean
 nlm_i386_read_reloc (abfd, sym, secp, rel)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -87,7 +87,7 @@ nlm_i386_read_reloc (abfd, sym, secp, rel)
   const char *name;
 
   if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp))
-    return false;
+    return FALSE;
 
   val = bfd_get_32 (abfd, temp);
 
@@ -145,12 +145,12 @@ nlm_i386_read_reloc (abfd, sym, secp, rel)
   rel->address = val;
   rel->addend = 0;
 
-  return true;
+  return TRUE;
 }
 
 /* Write a NetWare i386 reloc.  */
 
-static boolean
+static bfd_boolean
 nlm_i386_write_import (abfd, sec, rel)
      bfd *abfd;
      asection *sec;
@@ -174,7 +174,7 @@ nlm_i386_write_import (abfd, sec, rel)
       || rel->howto->dst_mask != 0xffffffff)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   sym = *rel->sym_ptr_ptr;
@@ -202,7 +202,7 @@ nlm_i386_write_import (abfd, sec, rel)
       if (rel->howto->pc_relative)
        {
          bfd_set_error (bfd_error_invalid_operation);
-         return false;
+         return FALSE;
        }
 
       /* The high bit is 1 if the reloc is against the code section, 0
@@ -222,16 +222,16 @@ nlm_i386_write_import (abfd, sec, rel)
          if (! rel->howto->pcrel_offset)
            {
              bfd_set_error (bfd_error_invalid_operation);
-             return false;
+             return FALSE;
            }
        }
     }
 
   bfd_put_32 (abfd, val, temp);
   if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* I want to be able to use objcopy to turn an i386 a.out or COFF file
@@ -243,7 +243,7 @@ nlm_i386_write_import (abfd, sec, rel)
    This is actually a fairly general concept.  However, this is not a
    general implementation.  */
 
-static boolean
+static bfd_boolean
 nlm_i386_mangle_relocs (abfd, sec, data, offset, count)
      bfd *abfd;
      asection *sec;
@@ -335,11 +335,11 @@ nlm_i386_mangle_relocs (abfd, sec, data, offset, count)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Read a NetWare i386 import record */
-static boolean
+static bfd_boolean
 nlm_i386_read_import (abfd, sym)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -352,13 +352,13 @@ nlm_i386_read_import (abfd, sym)
 
   if (bfd_bread ((PTR) &symlength, (bfd_size_type) sizeof (symlength), abfd)
       != sizeof (symlength))
-    return false;
+    return FALSE;
   sym -> symbol.the_bfd = abfd;
   name = bfd_alloc (abfd, (bfd_size_type) symlength + 1);
   if (name == NULL)
-    return false;
+    return FALSE;
   if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength)
-    return false;
+    return FALSE;
   name[symlength] = '\0';
   sym -> symbol.name = name;
   sym -> symbol.flags = 0;
@@ -366,12 +366,12 @@ nlm_i386_read_import (abfd, sym)
   sym -> symbol.section = bfd_und_section_ptr;
   if (bfd_bread ((PTR) temp, (bfd_size_type) sizeof (temp), abfd)
       != sizeof (temp))
-    return false;
+    return FALSE;
   rcount = H_GET_32 (abfd, temp);
   nlm_relocs = ((struct nlm_relent *)
                bfd_alloc (abfd, rcount * sizeof (struct nlm_relent)));
   if (!nlm_relocs)
-    return false;
+    return FALSE;
   sym -> relocs = nlm_relocs;
   sym -> rcnt = 0;
   while (sym -> rcnt < rcount)
@@ -379,17 +379,17 @@ nlm_i386_read_import (abfd, sym)
       asection *section;
 
       if (! nlm_i386_read_reloc (abfd, sym, &section, &nlm_relocs -> reloc))
-       return false;
+       return FALSE;
       nlm_relocs -> section = section;
       nlm_relocs++;
       sym -> rcnt++;
     }
-  return true;
+  return TRUE;
 }
 
 /* Write out an external reference.  */
 
-static boolean
+static bfd_boolean
 nlm_i386_write_external (abfd, count, sym, relocs)
      bfd *abfd;
      bfd_size_type count;
@@ -404,19 +404,19 @@ nlm_i386_write_external (abfd, count, sym, relocs)
   if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd)
        != sizeof (bfd_byte))
       || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len)
-    return false;
+    return FALSE;
 
   bfd_put_32 (abfd, count, temp);
   if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp))
-    return false;
+    return FALSE;
 
   for (i = 0; i < count; i++)
     {
       if (! nlm_i386_write_import (abfd, relocs[i].sec, relocs[i].rel))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 #include "nlmswap.h"
@@ -428,7 +428,7 @@ static const struct nlm_backend_data nlm32_i386_backend =
   0,   /* optional_prefix_size */
   bfd_arch_i386,
   0,
-  false,
+  FALSE,
   0,   /* backend_object_p */
   0,   /* write_prefix_func */
   nlm_i386_read_reloc,
index 884b85a818f03b74b9e98ef71333c09582dc4b3a..9f5f9c053e0f1ca57900aa174a1fcccb754b84a8 100644 (file)
@@ -32,31 +32,31 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "libnlm.h"
 
 #ifdef OLDFORMAT
-static boolean nlm_powerpc_backend_object_p
+static bfd_boolean nlm_powerpc_backend_object_p
   PARAMS ((bfd *));
-static boolean nlm_powerpc_write_prefix
+static bfd_boolean nlm_powerpc_write_prefix
   PARAMS ((bfd *));
 #endif
 
-static boolean nlm_powerpc_read_reloc
+static bfd_boolean nlm_powerpc_read_reloc
   PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *));
-static boolean nlm_powerpc_mangle_relocs
+static bfd_boolean nlm_powerpc_mangle_relocs
   PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type));
-static boolean nlm_powerpc_read_import
+static bfd_boolean nlm_powerpc_read_import
   PARAMS ((bfd *, nlmNAME(symbol_type) *));
 
 #ifdef OLDFORMAT
-static boolean nlm_powerpc_write_reloc
+static bfd_boolean nlm_powerpc_write_reloc
   PARAMS ((bfd *, asection *, arelent *, int));
 #endif
 
-static boolean nlm_powerpc_write_import
+static bfd_boolean nlm_powerpc_write_import
   PARAMS ((bfd *, asection *, arelent *));
-static boolean nlm_powerpc_write_external
+static bfd_boolean nlm_powerpc_write_external
   PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *));
 
 #ifndef OLDFORMAT
-static boolean nlm_powerpc_set_public_section
+static bfd_boolean nlm_powerpc_set_public_section
   PARAMS ((bfd *, nlmNAME(symbol_type) *));
 static bfd_vma nlm_powerpc_get_public_offset
   PARAMS ((bfd *, asymbol *));
@@ -70,25 +70,25 @@ static bfd_vma nlm_powerpc_get_public_offset
    function reads it in, verifies the version, and seeks the bfd to
    the location before the regular NLM header.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_backend_object_p (abfd)
      bfd *abfd;
 {
   struct nlm32_powerpc_external_prefix_header s;
 
   if (bfd_bread ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s)
-    return false;
+    return FALSE;
 
   if (memcmp (s.signature, NLM32_POWERPC_SIGNATURE, sizeof s.signature) != 0
       || H_GET_32 (abfd, s.headerVersion) != NLM32_POWERPC_HEADER_VERSION)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Write out the prefix.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_write_prefix (abfd)
      bfd *abfd;
 {
@@ -102,9 +102,9 @@ nlm_powerpc_write_prefix (abfd)
   /* FIXME: What should we do about the date?  */
 
   if (bfd_bwrite ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 #endif /* OLDFORMAT */
@@ -118,19 +118,19 @@ static reloc_howto_type nlm_powerpc_howto =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "32",                  /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false);                /* pcrel_offset */
+        FALSE);                /* pcrel_offset */
 
 /* Read a PowerPC NLM reloc.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_read_reloc (abfd, sym, secp, rel)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -142,7 +142,7 @@ nlm_powerpc_read_reloc (abfd, sym, secp, rel)
   const char *name;
 
   if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp))
-    return false;
+    return FALSE;
 
   val = bfd_get_32 (abfd, temp);
 
@@ -187,7 +187,7 @@ nlm_powerpc_read_reloc (abfd, sym, secp, rel)
   rel->address = val << 2;
   rel->addend = 0;
 
-  return true;
+  return TRUE;
 }
 
 #else /* OLDFORMAT */
@@ -204,105 +204,105 @@ static reloc_howto_type nlm_powerpc_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_POS",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit relocation, but store negative value.  */
   HOWTO (1,                    /* type */
         0,                     /* rightshift */
         -2,                    /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_NEG",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit PC relative relocation.  */
   HOWTO (2,                    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_REL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit TOC relative relocation.  */
   HOWTO (3,                    /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TOC",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* I don't really know what this is.  */
   HOWTO (4,                    /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RTB",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* External TOC relative symbol.  */
   HOWTO (5,                    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_GL",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Local TOC relative symbol.  */
   HOWTO (6,                    /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TCL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   { 7 },
 
@@ -311,15 +311,15 @@ static reloc_howto_type nlm_powerpc_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_BA",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3fffffc,             /* src_mask */
         0x3fffffc,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   { 9 },
 
@@ -328,15 +328,15 @@ static reloc_howto_type nlm_powerpc_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_BR",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3fffffc,             /* src_mask */
         0x3fffffc,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   { 0xb },
 
@@ -345,30 +345,30 @@ static reloc_howto_type nlm_powerpc_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RL",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Load address.  */
   HOWTO (0xd,                  /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RLA",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   { 0xe },
 
@@ -377,15 +377,15 @@ static reloc_howto_type nlm_powerpc_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_REF",               /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   { 0x10 },
   { 0x11 },
@@ -395,150 +395,150 @@ static reloc_howto_type nlm_powerpc_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TRL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* TOC relative load address.  */
   HOWTO (0x13,                 /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_TRLA",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable relative branch.  */
   HOWTO (0x14,                 /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RRTBI",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable absolute branch.  */
   HOWTO (0x15,                 /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RRTBA",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable call absolute indirect.  */
   HOWTO (0x16,                 /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_CAI",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable call relative.  */
   HOWTO (0x17,                 /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_REL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (0x18,                 /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBA",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (0x19,                 /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_RBAC",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch relative.  */
   HOWTO (0x1a,                 /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         0,                     /* special_function */
         "R_REL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Modifiable branch absolute.  */
   HOWTO (0x1b,                 /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         0,                     /* special_function */
         "R_REL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false)                 /* pcrel_offset */
+        FALSE)                 /* pcrel_offset */
 };
 
 #define HOWTO_COUNT (sizeof nlm_powerpc_howto_table            \
@@ -546,7 +546,7 @@ static reloc_howto_type nlm_powerpc_howto_table[] =
 
 /* Read a PowerPC NLM reloc.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_read_reloc (abfd, sym, secp, rel)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -562,7 +562,7 @@ nlm_powerpc_read_reloc (abfd, sym, secp, rel)
 
   /* Read the reloc from the file.  */
   if (bfd_bread (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext)
-    return false;
+    return FALSE;
 
   /* Swap in the fields.  */
   l_vaddr = H_GET_32 (abfd, ext.l_vaddr);
@@ -595,7 +595,7 @@ nlm_powerpc_read_reloc (abfd, sym, secp, rel)
       else
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       rel->sym_ptr_ptr = sec->symbol_ptr_ptr;
@@ -625,19 +625,19 @@ nlm_powerpc_read_reloc (abfd, sym, secp, rel)
   else
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   rel->address = l_vaddr;
 
-  return true;
+  return TRUE;
 }
 
 #endif /* OLDFORMAT */
 
 /* Mangle PowerPC NLM relocs for output.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_mangle_relocs (abfd, sec, data, offset, count)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec ATTRIBUTE_UNUSED;
@@ -645,12 +645,12 @@ nlm_powerpc_mangle_relocs (abfd, sec, data, offset, count)
      bfd_vma offset ATTRIBUTE_UNUSED;
      bfd_size_type count ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Read a PowerPC NLM import record */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_read_import (abfd, sym)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -663,13 +663,13 @@ nlm_powerpc_read_import (abfd, sym)
 
   if (bfd_bread ((PTR) &symlength, (bfd_size_type) sizeof (symlength), abfd)
       != sizeof (symlength))
-    return (false);
+    return FALSE;
   sym -> symbol.the_bfd = abfd;
   name = bfd_alloc (abfd, (bfd_size_type) symlength + 1);
   if (name == NULL)
-    return false;
+    return FALSE;
   if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength)
-    return (false);
+    return FALSE;
   name[symlength] = '\0';
   sym -> symbol.name = name;
   sym -> symbol.flags = 0;
@@ -677,12 +677,12 @@ nlm_powerpc_read_import (abfd, sym)
   sym -> symbol.section = bfd_und_section_ptr;
   if (bfd_bread ((PTR) temp, (bfd_size_type) sizeof (temp), abfd)
       != sizeof (temp))
-    return (false);
+    return FALSE;
   rcount = H_GET_32 (abfd, temp);
   nlm_relocs = ((struct nlm_relent *)
                bfd_alloc (abfd, rcount * sizeof (struct nlm_relent)));
   if (nlm_relocs == (struct nlm_relent *) NULL)
-    return false;
+    return FALSE;
   sym -> relocs = nlm_relocs;
   sym -> rcnt = 0;
   while (sym -> rcnt < rcount)
@@ -690,19 +690,19 @@ nlm_powerpc_read_import (abfd, sym)
       asection *section;
 
       if (! nlm_powerpc_read_reloc (abfd, sym, &section, &nlm_relocs -> reloc))
-       return false;
+       return FALSE;
       nlm_relocs -> section = section;
       nlm_relocs++;
       sym -> rcnt++;
     }
-  return true;
+  return TRUE;
 }
 
 #ifndef OLDFORMAT
 
 /* Write a PowerPC NLM reloc.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_write_import (abfd, sec, rel)
      bfd *abfd;
      asection *sec;
@@ -724,7 +724,7 @@ nlm_powerpc_write_import (abfd, sec, rel)
       || rel->howto->dst_mask != 0xffffffff)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   sym = *rel->sym_ptr_ptr;
@@ -737,7 +737,7 @@ nlm_powerpc_write_import (abfd, sec, rel)
   if ((val & 3) != 0)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
   val >>= 2;
 
@@ -762,9 +762,9 @@ nlm_powerpc_write_import (abfd, sec, rel)
 
   bfd_put_32 (abfd, val, temp);
   if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 #else /* OLDFORMAT */
@@ -773,7 +773,7 @@ nlm_powerpc_write_import (abfd, sec, rel)
 
 /* Write a PowerPC NLM reloc.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_write_reloc (abfd, sec, rel, indx)
      bfd *abfd;
      asection *sec;
@@ -813,7 +813,7 @@ nlm_powerpc_write_reloc (abfd, sec, rel, indx)
       else
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
     }
 
@@ -841,7 +841,7 @@ nlm_powerpc_write_reloc (abfd, sec, rel, indx)
   if (howto >= nlm_powerpc_howto_table + HOWTO_COUNT)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   l_rtype = howto->type;
@@ -862,21 +862,21 @@ nlm_powerpc_write_reloc (abfd, sec, rel, indx)
   else
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   H_PUT_16 (abfd, l_rsecnm, ext.l_rsecnm);
   H_PUT_32 (abfd, address, ext.l_vaddr);
 
   if (bfd_bwrite (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Write a PowerPC NLM import.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_write_import (abfd, sec, rel)
      bfd *abfd;
      asection *sec;
@@ -891,7 +891,7 @@ nlm_powerpc_write_import (abfd, sec, rel)
    count of the symbol index.  FIXME: I don't know if this is
    necessary, and the index never gets reset.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_write_external (abfd, count, sym, relocs)
      bfd *abfd;
      bfd_size_type count;
@@ -909,21 +909,21 @@ nlm_powerpc_write_external (abfd, count, sym, relocs)
   if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd)
        != sizeof (bfd_byte))
       || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len)
-    return false;
+    return FALSE;
 
   bfd_put_32 (abfd, count, temp);
   if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp))
-    return false;
+    return FALSE;
 
   for (i = 0; i < count; i++)
     {
 #ifndef OLDFORMAT
       if (! nlm_powerpc_write_import (abfd, relocs[i].sec, relocs[i].rel))
-       return false;
+       return FALSE;
 #else
       if (! nlm_powerpc_write_reloc (abfd, relocs[i].sec,
                                     relocs[i].rel, indx))
-       return false;
+       return FALSE;
 #endif
     }
 
@@ -931,7 +931,7 @@ nlm_powerpc_write_external (abfd, count, sym, relocs)
   ++indx;
 #endif
 
-  return true;
+  return TRUE;
 }
 \f
 #ifndef OLDFORMAT
@@ -941,7 +941,7 @@ nlm_powerpc_write_external (abfd, count, sym, relocs)
 
 /* Set the section for a public symbol.  */
 
-static boolean
+static bfd_boolean
 nlm_powerpc_set_public_section (abfd, sym)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -961,7 +961,7 @@ nlm_powerpc_set_public_section (abfd, sym)
 
   sym->symbol.value <<= 2;
 
-  return true;
+  return TRUE;
 }
 
 /* Get the offset to write out for a public symbol.  */
@@ -1013,7 +1013,7 @@ static const struct nlm_backend_data nlm32_powerpc_backend =
 #endif
   bfd_arch_powerpc,
   0,
-  false,
+  FALSE,
 #ifndef OLDFORMAT
   0,   /* backend_object_p */
   0,   /* write_prefix */
index 76b7328f9913f1b057070e7f87af4d3b54d824ef..5094ed0db1d0d30cb407f1c52b52db4df6088067 100644 (file)
 
 #include "libnlm.h"
 
-static boolean nlm_sparc_read_reloc
+static bfd_boolean nlm_sparc_read_reloc
   PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *));
-static boolean nlm_sparc_write_reloc
+static bfd_boolean nlm_sparc_write_reloc
   PARAMS ((bfd *, asection *, arelent *));
-static boolean nlm_sparc_mangle_relocs
+static bfd_boolean nlm_sparc_mangle_relocs
   PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type));
-static boolean nlm_sparc_read_import
+static bfd_boolean nlm_sparc_read_import
   PARAMS ((bfd *, nlmNAME(symbol_type) *));
-static boolean nlm_sparc_write_import
+static bfd_boolean nlm_sparc_write_import
   PARAMS ((bfd *, asection *, arelent *));
-static boolean nlm_sparc_write_external
+static bfd_boolean nlm_sparc_write_external
   PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *));
-static boolean nlm_sparc_write_export
+static bfd_boolean nlm_sparc_write_export
   PARAMS ((bfd *, asymbol *, bfd_vma));
 
 enum reloc_type
@@ -82,30 +82,30 @@ static const char *const reloc_type_names[] =
 
 static reloc_howto_type nlm32_sparc_howto_table[] =
   {
-    HOWTO (R_SPARC_NONE,    0,0, 0,false,0,complain_overflow_dont,    0,"R_SPARC_NONE",    false,0,0x00000000,true),
-    HOWTO (R_SPARC_8,       0,0, 8,false,0,complain_overflow_bitfield,0,"R_SPARC_8",       false,0,0x000000ff,true),
-    HOWTO (R_SPARC_16,      0,1,16,false,0,complain_overflow_bitfield,0,"R_SPARC_16",      false,0,0x0000ffff,true),
-    HOWTO (R_SPARC_32,      0,2,32,false,0,complain_overflow_bitfield,0,"R_SPARC_32",      false,0,0xffffffff,true),
-    HOWTO (R_SPARC_DISP8,   0,0, 8,true, 0,complain_overflow_signed,  0,"R_SPARC_DISP8",   false,0,0x000000ff,true),
-    HOWTO (R_SPARC_DISP16,  0,1,16,true, 0,complain_overflow_signed,  0,"R_SPARC_DISP16",  false,0,0x0000ffff,true),
-    HOWTO (R_SPARC_DISP32,  0,2,32,true, 0,complain_overflow_signed,  0,"R_SPARC_DISP32",  false,0,0x00ffffff,true),
-    HOWTO (R_SPARC_WDISP30, 2,2,30,true, 0,complain_overflow_signed,  0,"R_SPARC_WDISP30", false,0,0x3fffffff,true),
-    HOWTO (R_SPARC_WDISP22, 2,2,22,true, 0,complain_overflow_signed,  0,"R_SPARC_WDISP22", false,0,0x003fffff,true),
-    HOWTO (R_SPARC_HI22,   10,2,22,false,0,complain_overflow_dont,    0,"R_SPARC_HI22",    false,0,0x003fffff,true),
-    HOWTO (R_SPARC_22,      0,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_22",      false,0,0x003fffff,true),
-    HOWTO (R_SPARC_13,      0,2,13,false,0,complain_overflow_bitfield,0,"R_SPARC_13",      false,0,0x00001fff,true),
-    HOWTO (R_SPARC_LO10,    0,2,10,false,0,complain_overflow_dont,    0,"R_SPARC_LO10",    false,0,0x000003ff,true),
-    HOWTO (R_SPARC_GOT10,   0,2,10,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT10",   false,0,0x000003ff,true),
-    HOWTO (R_SPARC_GOT13,   0,2,13,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT13",   false,0,0x00001fff,true),
-    HOWTO (R_SPARC_GOT22,  10,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT22",   false,0,0x003fffff,true),
-    HOWTO (R_SPARC_PC10,    0,2,10,false,0,complain_overflow_bitfield,0,"R_SPARC_PC10",    false,0,0x000003ff,true),
-    HOWTO (R_SPARC_PC22,    0,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_PC22",    false,0,0x003fffff,true),
-    HOWTO (R_SPARC_WPLT30,  0,0,00,false,0,complain_overflow_dont,    0,"R_SPARC_WPLT30",  false,0,0x00000000,true),
-    HOWTO (R_SPARC_COPY,    0,0,00,false,0,complain_overflow_dont,    0,"R_SPARC_COPY",    false,0,0x00000000,true),
-    HOWTO (R_SPARC_GLOB_DAT,0,0,00,false,0,complain_overflow_dont,    0,"R_SPARC_GLOB_DAT",false,0,0x00000000,true),
-    HOWTO (R_SPARC_JMP_SLOT,0,0,00,false,0,complain_overflow_dont,    0,"R_SPARC_JMP_SLOT",false,0,0x00000000,true),
-    HOWTO (R_SPARC_RELATIVE,0,0,00,false,0,complain_overflow_dont,    0,"R_SPARC_RELATIVE",false,0,0x00000000,true),
-    HOWTO (R_SPARC_UA32,    0,0,00,false,0,complain_overflow_dont,    0,"R_SPARC_UA32",    false,0,0x00000000,true),
+    HOWTO (R_SPARC_NONE,    0,0, 0,FALSE,0,complain_overflow_dont,    0,"R_SPARC_NONE",    FALSE,0,0x00000000,TRUE),
+    HOWTO (R_SPARC_8,       0,0, 8,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_8",       FALSE,0,0x000000ff,TRUE),
+    HOWTO (R_SPARC_16,      0,1,16,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_16",      FALSE,0,0x0000ffff,TRUE),
+    HOWTO (R_SPARC_32,      0,2,32,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_32",      FALSE,0,0xffffffff,TRUE),
+    HOWTO (R_SPARC_DISP8,   0,0, 8,TRUE, 0,complain_overflow_signed,  0,"R_SPARC_DISP8",   FALSE,0,0x000000ff,TRUE),
+    HOWTO (R_SPARC_DISP16,  0,1,16,TRUE, 0,complain_overflow_signed,  0,"R_SPARC_DISP16",  FALSE,0,0x0000ffff,TRUE),
+    HOWTO (R_SPARC_DISP32,  0,2,32,TRUE, 0,complain_overflow_signed,  0,"R_SPARC_DISP32",  FALSE,0,0x00ffffff,TRUE),
+    HOWTO (R_SPARC_WDISP30, 2,2,30,TRUE, 0,complain_overflow_signed,  0,"R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE),
+    HOWTO (R_SPARC_WDISP22, 2,2,22,TRUE, 0,complain_overflow_signed,  0,"R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE),
+    HOWTO (R_SPARC_HI22,   10,2,22,FALSE,0,complain_overflow_dont,    0,"R_SPARC_HI22",    FALSE,0,0x003fffff,TRUE),
+    HOWTO (R_SPARC_22,      0,2,22,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_22",      FALSE,0,0x003fffff,TRUE),
+    HOWTO (R_SPARC_13,      0,2,13,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_13",      FALSE,0,0x00001fff,TRUE),
+    HOWTO (R_SPARC_LO10,    0,2,10,FALSE,0,complain_overflow_dont,    0,"R_SPARC_LO10",    FALSE,0,0x000003ff,TRUE),
+    HOWTO (R_SPARC_GOT10,   0,2,10,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_GOT10",   FALSE,0,0x000003ff,TRUE),
+    HOWTO (R_SPARC_GOT13,   0,2,13,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_GOT13",   FALSE,0,0x00001fff,TRUE),
+    HOWTO (R_SPARC_GOT22,  10,2,22,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_GOT22",   FALSE,0,0x003fffff,TRUE),
+    HOWTO (R_SPARC_PC10,    0,2,10,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_PC10",    FALSE,0,0x000003ff,TRUE),
+    HOWTO (R_SPARC_PC22,    0,2,22,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_PC22",    FALSE,0,0x003fffff,TRUE),
+    HOWTO (R_SPARC_WPLT30,  0,0,00,FALSE,0,complain_overflow_dont,    0,"R_SPARC_WPLT30",  FALSE,0,0x00000000,TRUE),
+    HOWTO (R_SPARC_COPY,    0,0,00,FALSE,0,complain_overflow_dont,    0,"R_SPARC_COPY",    FALSE,0,0x00000000,TRUE),
+    HOWTO (R_SPARC_GLOB_DAT,0,0,00,FALSE,0,complain_overflow_dont,    0,"R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE),
+    HOWTO (R_SPARC_JMP_SLOT,0,0,00,FALSE,0,complain_overflow_dont,    0,"R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE),
+    HOWTO (R_SPARC_RELATIVE,0,0,00,FALSE,0,complain_overflow_dont,    0,"R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE),
+    HOWTO (R_SPARC_UA32,    0,0,00,FALSE,0,complain_overflow_dont,    0,"R_SPARC_UA32",    FALSE,0,0x00000000,TRUE),
 };
 
 /* Read a NetWare sparc reloc.  */
@@ -118,7 +118,7 @@ struct nlm32_sparc_reloc_ext
     unsigned char pad1[3];
   };
 
-static boolean
+static bfd_boolean
 nlm_sparc_read_reloc (abfd, sym, secp, rel)
      bfd *abfd;
      nlmNAME(symbol_type) *sym ATTRIBUTE_UNUSED;
@@ -132,7 +132,7 @@ nlm_sparc_read_reloc (abfd, sym, secp, rel)
   asection *code_sec, *data_sec;
 
   if (bfd_bread (&tmp_reloc, (bfd_size_type) 12, abfd) != 12)
-    return false;
+    return FALSE;
 
   code_sec = bfd_get_section_by_name (abfd, NLM_CODE_NAME);
   data_sec = bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME);
@@ -160,13 +160,13 @@ nlm_sparc_read_reloc (abfd, sym, secp, rel)
   fprintf (stderr, "%s:  address = %08lx, addend = %08lx, type = %d, howto = %08lx\n",
           __FUNCTION__, rel->address, rel->addend, type, rel->howto);
 #endif
-  return true;
+  return TRUE;
 
 }
 
 /* Write a NetWare sparc reloc.  */
 
-static boolean
+static bfd_boolean
 nlm_sparc_write_reloc (abfd, sec, rel)
      bfd *abfd;
      asection *sec;
@@ -225,15 +225,15 @@ nlm_sparc_write_reloc (abfd, sec, rel)
   bfd_put_8 (abfd, (short) (rel->howto->type), tmp_reloc.type);
 
   if (bfd_bwrite (&tmp_reloc, (bfd_size_type) 12, abfd) != 12)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Mangle relocs for SPARC NetWare.  We can just use the standard
    SPARC relocs.  */
 
-static boolean
+static bfd_boolean
 nlm_sparc_mangle_relocs (abfd, sec, data, offset, count)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec ATTRIBUTE_UNUSED;
@@ -241,12 +241,12 @@ nlm_sparc_mangle_relocs (abfd, sec, data, offset, count)
      bfd_vma offset ATTRIBUTE_UNUSED;
      bfd_size_type count ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Read a NetWare sparc import record.  */
 
-static boolean
+static bfd_boolean
 nlm_sparc_read_import (abfd, sym)
      bfd *abfd;
      nlmNAME(symbol_type) *sym;
@@ -260,7 +260,7 @@ nlm_sparc_read_import (abfd, sym)
   /* First, read in the number of relocation
      entries for this symbol.  */
   if (bfd_bread ((PTR) temp, (bfd_size_type) 4, abfd) != 4)
-    return false;
+    return FALSE;
 
   rcount = bfd_get_32 (abfd, temp);
 
@@ -268,16 +268,16 @@ nlm_sparc_read_import (abfd, sym)
 
   if (bfd_bread ((PTR) &symlength, (bfd_size_type) sizeof (symlength), abfd)
       != sizeof (symlength))
-    return false;
+    return FALSE;
   sym -> symbol.the_bfd = abfd;
   name = bfd_alloc (abfd, (bfd_size_type) symlength + 1);
   if (name == NULL)
-    return false;
+    return FALSE;
 
   /* Then read in the symbol.  */
 
   if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength)
-    return false;
+    return FALSE;
   name[symlength] = '\0';
   sym -> symbol.name = name;
   sym -> symbol.flags = 0;
@@ -289,7 +289,7 @@ nlm_sparc_read_import (abfd, sym)
   nlm_relocs = ((struct nlm_relent *)
                bfd_alloc (abfd, rcount * sizeof (struct nlm_relent)));
   if (!nlm_relocs)
-    return false;
+    return FALSE;
   sym -> relocs = nlm_relocs;
   sym -> rcnt = 0;
   while (sym -> rcnt < rcount)
@@ -297,16 +297,16 @@ nlm_sparc_read_import (abfd, sym)
       asection *section;
 
       if (! nlm_sparc_read_reloc (abfd, sym, &section, &nlm_relocs -> reloc))
-       return false;
+       return FALSE;
       nlm_relocs -> section = section;
       nlm_relocs++;
       sym -> rcnt++;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 nlm_sparc_write_import (abfd, sec, rel)
      bfd *abfd;
      asection *sec;
@@ -336,18 +336,18 @@ nlm_sparc_write_import (abfd, sec, rel)
 #endif
   bfd_put_32 (abfd, base + (*rel->sym_ptr_ptr)->value, temp);
   if (bfd_bwrite ((PTR) temp, (bfd_size_type) 4, abfd) != 4)
-    return false;
+    return FALSE;
   bfd_put_32 (abfd, (bfd_vma) 1, temp);
   if (bfd_bwrite ((PTR) temp, (bfd_size_type) 4, abfd) != 4)
-    return false;
+    return FALSE;
   if (! nlm_sparc_write_reloc (abfd, sec, rel))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Write out an external reference.  */
 
-static boolean
+static bfd_boolean
 nlm_sparc_write_external (abfd, count, sym, relocs)
      bfd *abfd;
      bfd_size_type count;
@@ -360,24 +360,24 @@ nlm_sparc_write_external (abfd, count, sym, relocs)
 
   bfd_put_32 (abfd, count, temp);
   if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp))
-    return false;
+    return FALSE;
 
   len = strlen (sym->name);
   if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd)
        != sizeof (bfd_byte))
       || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len)
-    return false;
+    return FALSE;
 
   for (i = 0; i < count; i++)
     {
       if (! nlm_sparc_write_reloc (abfd, relocs[i].sec, relocs[i].rel))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 nlm_sparc_write_export (abfd, sym, value)
      bfd *abfd;
      asymbol *sym;
@@ -396,9 +396,9 @@ nlm_sparc_write_export (abfd, sym, value)
   if (bfd_bwrite (temp, (bfd_size_type) 4, abfd) != 4
       || bfd_bwrite (&len, (bfd_size_type) 1, abfd) != 1
       || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 #undef nlm_swap_fixed_header_in
@@ -413,7 +413,7 @@ static const struct nlm_backend_data nlm32_sparc_backend =
     0, /* optional_prefix_size */
     bfd_arch_sparc,
     0,
-    false,
+    FALSE,
     0, /* backend_object_p */
     0, /* write_prefix_func */
     nlm_sparc_read_reloc,
index 0e089b3faedfa78c746185591cc11878dbe94ca2..5eeb41eba4686b2a421b99e17052932ca8d12641 100644 (file)
 
 /* Forward declarations of static functions.  */
 
-static boolean add_bfd_section
+static bfd_boolean add_bfd_section
   PARAMS ((bfd *, char *, file_ptr, bfd_size_type, flagword));
-static boolean nlm_swap_variable_header_in
+static bfd_boolean nlm_swap_variable_header_in
   PARAMS ((bfd *));
-static boolean nlm_swap_variable_header_out
+static bfd_boolean nlm_swap_variable_header_out
   PARAMS ((bfd *));
-static boolean find_nonzero
+static bfd_boolean find_nonzero
   PARAMS ((PTR, size_t));
-static boolean nlm_swap_auxiliary_headers_in
+static bfd_boolean nlm_swap_auxiliary_headers_in
   PARAMS ((bfd *));
-static boolean nlm_swap_auxiliary_headers_out
+static bfd_boolean nlm_swap_auxiliary_headers_out
   PARAMS ((bfd *));
-static boolean nlm_slurp_symbol_table
+static bfd_boolean nlm_slurp_symbol_table
   PARAMS ((bfd *));
-static boolean nlm_slurp_reloc_fixups
+static bfd_boolean nlm_slurp_reloc_fixups
   PARAMS ((bfd *));
-static boolean nlm_compute_section_file_positions
+static bfd_boolean nlm_compute_section_file_positions
   PARAMS ((bfd *));
 static int nlm_external_reloc_compare
   PARAMS ((const void *, const void *));
@@ -96,7 +96,7 @@ nlm_object_p (abfd)
      bfd *abfd;
 {
   struct nlm_obj_tdata *preserved_tdata = nlm_tdata (abfd);
-  boolean (*backend_object_p) PARAMS ((bfd *));
+  bfd_boolean (*backend_object_p) PARAMS ((bfd *));
   PTR x_fxdhdr = NULL;
   Nlm_Internal_Fixed_Header *i_fxdhdrp;
   struct nlm_obj_tdata *new_tdata = NULL;
@@ -221,7 +221,7 @@ got_no_match:
 
 /* Add a section to the bfd.  */
 
-static boolean
+static bfd_boolean
 add_bfd_section (abfd, name, offset, size, flags)
      bfd *abfd;
      char *name;
@@ -233,7 +233,7 @@ add_bfd_section (abfd, name, offset, size, flags)
 
   newsect = bfd_make_section (abfd, name);
   if (newsect == NULL)
-    return false;
+    return FALSE;
 
   newsect->vma = 0;            /* NLM's are relocatable.  */
   newsect->_raw_size = size;
@@ -241,13 +241,13 @@ add_bfd_section (abfd, name, offset, size, flags)
   newsect->flags = flags;
   newsect->alignment_power = bfd_log2 ((bfd_vma) 0);   /* FIXME */
 
-  return true;
+  return TRUE;
 }
 
 /* Read and swap in the variable length header.  All the fields must
    exist in the NLM, and must exist in the order they are read here.  */
 
-static boolean
+static bfd_boolean
 nlm_swap_variable_header_in (abfd)
      bfd *abfd;
 {
@@ -259,24 +259,24 @@ nlm_swap_variable_header_in (abfd)
   amt = sizeof (nlm_variable_header (abfd)->descriptionLength);
   if (bfd_bread ((PTR) &nlm_variable_header (abfd)->descriptionLength,
                amt, abfd) != amt)
-    return false;
+    return FALSE;
   amt = nlm_variable_header (abfd)->descriptionLength + 1;
   if (bfd_bread ((PTR) nlm_variable_header (abfd)->descriptionText,
                amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Read and convert the stackSize field.  */
 
   amt = sizeof (temp);
   if (bfd_bread ((PTR) temp, amt, abfd) != amt)
-    return false;
+    return FALSE;
   nlm_variable_header (abfd)->stackSize = get_word (abfd, (bfd_byte *) temp);
 
   /* Read and convert the reserved field.  */
 
   amt = sizeof (temp);
   if (bfd_bread ((PTR) temp, amt, abfd) != amt)
-    return false;
+    return FALSE;
   nlm_variable_header (abfd)->reserved = get_word (abfd, (bfd_byte *) temp);
 
   /* Read the oldThreadName field.  This field is a fixed length string.  */
@@ -284,36 +284,36 @@ nlm_swap_variable_header_in (abfd)
   amt = sizeof (nlm_variable_header (abfd)->oldThreadName);
   if (bfd_bread ((PTR) nlm_variable_header (abfd)->oldThreadName,
                amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Read the screen name length and text members.  */
 
   amt = sizeof (nlm_variable_header (abfd)->screenNameLength);
   if (bfd_bread ((PTR) & nlm_variable_header (abfd)->screenNameLength,
                amt, abfd) != amt)
-    return false;
+    return FALSE;
   amt = nlm_variable_header (abfd)->screenNameLength + 1;
   if (bfd_bread ((PTR) nlm_variable_header (abfd)->screenName,
                amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Read the thread name length and text members.  */
 
   amt = sizeof (nlm_variable_header (abfd)->threadNameLength);
   if (bfd_bread ((PTR) & nlm_variable_header (abfd)->threadNameLength,
                amt, abfd) != amt)
-    return false;
+    return FALSE;
   amt = nlm_variable_header (abfd)->threadNameLength + 1;
   if (bfd_bread ((PTR) nlm_variable_header (abfd)->threadName,
                amt, abfd) != amt)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Swap and write out the variable length header.  All the fields must
    exist in the NLM, and must exist in this order.  */
 
-static boolean
+static bfd_boolean
 nlm_swap_variable_header_out (abfd)
      bfd *abfd;
 {
@@ -324,52 +324,52 @@ nlm_swap_variable_header_out (abfd)
   amt = sizeof (nlm_variable_header (abfd)->descriptionLength);
   if (bfd_bwrite ((PTR) & nlm_variable_header (abfd)->descriptionLength, amt,
                 abfd) != amt)
-    return false;
+    return FALSE;
   amt = nlm_variable_header (abfd)->descriptionLength + 1;
   if (bfd_bwrite ((PTR) nlm_variable_header (abfd)->descriptionText, amt,
                 abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Convert and write the stackSize field.  */
   put_word (abfd, (bfd_vma) nlm_variable_header (abfd)->stackSize,
            (bfd_byte *) temp);
   amt = sizeof (temp);
   if (bfd_bwrite ((PTR) temp, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Convert and write the reserved field.  */
   put_word (abfd, (bfd_vma) nlm_variable_header (abfd)->reserved,
            (bfd_byte *) temp);
   amt = sizeof (temp);
   if (bfd_bwrite ((PTR) temp, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Write the oldThreadName field.  This field is a fixed length string.  */
   amt = sizeof (nlm_variable_header (abfd)->oldThreadName);
   if (bfd_bwrite ((PTR) nlm_variable_header (abfd)->oldThreadName, amt,
                 abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Write the screen name length and text members.  */
   amt = sizeof (nlm_variable_header (abfd)->screenNameLength);
   if (bfd_bwrite ((PTR) & nlm_variable_header (abfd)->screenNameLength, amt,
                 abfd) != amt)
-    return false;
+    return FALSE;
   amt = nlm_variable_header (abfd)->screenNameLength + 1;
   if (bfd_bwrite ((PTR) nlm_variable_header (abfd)->screenName, amt,
                 abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Write the thread name length and text members.  */
   amt = sizeof (nlm_variable_header (abfd)->threadNameLength);
   if (bfd_bwrite ((PTR) & nlm_variable_header (abfd)->threadNameLength, amt,
                 abfd) != amt)
-    return false;
+    return FALSE;
   amt = nlm_variable_header (abfd)->threadNameLength + 1;
   if (bfd_bwrite ((PTR) nlm_variable_header (abfd)->threadName, amt,
                 abfd) != amt)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Read and swap in the contents of all the auxiliary headers.  Because of
@@ -381,7 +381,7 @@ nlm_swap_variable_header_out (abfd)
    of auxiliary header added will break all existing tools that don't
    recognize it.  */
 
-static boolean
+static bfd_boolean
 nlm_swap_auxiliary_headers_in (abfd)
      bfd *abfd;
 {
@@ -394,16 +394,16 @@ nlm_swap_auxiliary_headers_in (abfd)
       position = bfd_tell (abfd);
       amt = sizeof (tempstr);
       if (bfd_bread ((PTR) tempstr, amt, abfd) != amt)
-       return false;
+       return FALSE;
       if (bfd_seek (abfd, position, SEEK_SET) != 0)
-       return false;
+       return FALSE;
       if (strncmp (tempstr, "VeRsIoN#", 8) == 0)
        {
          Nlm_External_Version_Header thdr;
 
          amt = sizeof (thdr);
          if (bfd_bread ((PTR) &thdr, amt, abfd) != amt)
-           return false;
+           return FALSE;
          memcpy (nlm_version_header (abfd)->stamp, thdr.stamp,
                  sizeof (thdr.stamp));
          nlm_version_header (abfd)->majorVersion =
@@ -425,7 +425,7 @@ nlm_swap_auxiliary_headers_in (abfd)
 
          amt = sizeof (thdr);
          if (bfd_bread ((PTR) &thdr, amt, abfd) != amt)
-           return false;
+           return FALSE;
          memcpy (nlm_extended_header (abfd)->stamp, thdr.stamp,
                  sizeof (thdr.stamp));
          nlm_extended_header (abfd)->languageID =
@@ -492,16 +492,16 @@ nlm_swap_auxiliary_headers_in (abfd)
          amt = sizeof (nlm_copyright_header (abfd)->stamp);
          if (bfd_bread ((PTR) nlm_copyright_header (abfd)->stamp,
                        amt, abfd) != amt)
-           return false;
+           return FALSE;
          if (bfd_bread ((PTR) &(nlm_copyright_header (abfd)
                                ->copyrightMessageLength),
                        (bfd_size_type) 1, abfd) != 1)
-           return false;
+           return FALSE;
          /* The copyright message is a variable length string.  */
          amt = nlm_copyright_header (abfd)->copyrightMessageLength + 1;
          if (bfd_bread ((PTR) nlm_copyright_header (abfd)->copyrightMessage,
                        amt, abfd) != amt)
-           return false;
+           return FALSE;
        }
       else if (strncmp (tempstr, "CuStHeAd", 8) == 0)
        {
@@ -515,11 +515,11 @@ nlm_swap_auxiliary_headers_in (abfd)
          /* Read the stamp ("CuStHeAd").  */
          amt = sizeof (thdr.stamp);
          if (bfd_bread ((PTR) thdr.stamp, amt, abfd) != amt)
-           return false;
+           return FALSE;
          /* Read the length of this custom header.  */
          amt = sizeof (thdr.length);
          if (bfd_bread ((PTR) thdr.length, amt, abfd) != amt)
-           return false;
+           return FALSE;
          hdrLength = get_word (abfd, (bfd_byte *) thdr.length);
          /* Read further fields if we have them.  */
          if (hdrLength < NLM_TARGET_LONG_SIZE)
@@ -528,7 +528,7 @@ nlm_swap_auxiliary_headers_in (abfd)
            {
              amt = sizeof (thdr.dataOffset);
              if (bfd_bread ((PTR) thdr.dataOffset, amt, abfd) != amt)
-               return false;
+               return FALSE;
              dataOffset = get_word (abfd, (bfd_byte *) thdr.dataOffset);
            }
          if (hdrLength < 2 * NLM_TARGET_LONG_SIZE)
@@ -537,7 +537,7 @@ nlm_swap_auxiliary_headers_in (abfd)
            {
              amt = sizeof (thdr.dataLength);
              if (bfd_bread ((PTR) thdr.dataLength, amt, abfd) != amt)
-               return false;
+               return FALSE;
              dataLength = get_word (abfd, (bfd_byte *) thdr.dataLength);
            }
          if (hdrLength < 2 * NLM_TARGET_LONG_SIZE + 8)
@@ -546,7 +546,7 @@ nlm_swap_auxiliary_headers_in (abfd)
            {
              amt = sizeof (dataStamp);
              if (bfd_bread ((PTR) dataStamp, amt, abfd) != amt)
-               return false;
+               return FALSE;
            }
 
          /* Read the rest of the header, if any.  */
@@ -560,9 +560,9 @@ nlm_swap_auxiliary_headers_in (abfd)
              hdrLength -= 2 * NLM_TARGET_LONG_SIZE + 8;
              hdr = bfd_alloc (abfd, hdrLength);
              if (hdr == NULL)
-               return false;
+               return FALSE;
              if (bfd_bread (hdr, hdrLength, abfd) != hdrLength)
-               return false;
+               return FALSE;
            }
 
          /* If we have found a Cygnus header, process it.  Otherwise,
@@ -578,14 +578,14 @@ nlm_swap_auxiliary_headers_in (abfd)
 
              pos = bfd_tell (abfd);
              if (bfd_seek (abfd, dataOffset, SEEK_SET) != 0)
-               return false;
+               return FALSE;
              contents = (bfd_byte *) bfd_alloc (abfd, dataLength);
              if (contents == NULL)
-               return false;
+               return FALSE;
              if (bfd_bread (contents, dataLength, abfd) != dataLength)
-               return false;
+               return FALSE;
              if (bfd_seek (abfd, pos, SEEK_SET) != 0)
-               return false;
+               return FALSE;
 
              memcpy (nlm_cygnus_ext_header (abfd), "CyGnUsEx", 8);
              nlm_cygnus_ext_header (abfd)->offset = dataOffset;
@@ -629,7 +629,7 @@ nlm_swap_auxiliary_headers_in (abfd)
 
                  newsec = bfd_make_section_anyway (abfd, name);
                  if (newsec == (asection *) NULL)
-                   return false;
+                   return FALSE;
                  newsec->_raw_size = size;
                  if (filepos != 0)
                    {
@@ -653,12 +653,12 @@ nlm_swap_auxiliary_headers_in (abfd)
       else
        break;
     }
-  return true;
+  return TRUE;
 }
 
 /* Return whether there is a non-zero byte in a memory block.  */
 
-static boolean
+static bfd_boolean
 find_nonzero (buf, size)
      PTR buf;
      size_t size;
@@ -667,15 +667,15 @@ find_nonzero (buf, size)
 
   while (size-- != 0)
     if (*p++ != 0)
-      return true;
-  return false;
+      return TRUE;
+  return FALSE;
 }
 
 /* Swap out the contents of the auxiliary headers.  We create those
    auxiliary headers which have been set non-zero.  We do not require
    the caller to set up the stamp fields.  */
 
-static boolean
+static bfd_boolean
 nlm_swap_auxiliary_headers_out (abfd)
      bfd *abfd;
 {
@@ -702,7 +702,7 @@ nlm_swap_auxiliary_headers_out (abfd)
                (bfd_byte *) thdr.day);
       if (bfd_bwrite ((PTR) &thdr, (bfd_size_type) sizeof (thdr), abfd)
          != sizeof (thdr))
-       return false;
+       return FALSE;
     }
 
   /* Note - the CoPyRiGhT tag is emitted before the MeSsAgEs
@@ -717,17 +717,17 @@ nlm_swap_auxiliary_headers_out (abfd)
       memcpy (thdr.stamp, "CoPyRiGhT=", 10);
       amt = sizeof (thdr.stamp);
       if (bfd_bwrite ((PTR) thdr.stamp, amt, abfd) != amt)
-       return false;
+       return FALSE;
       thdr.copyrightMessageLength[0] =
        nlm_copyright_header (abfd)->copyrightMessageLength;
       amt = 1;
       if (bfd_bwrite ((PTR) thdr.copyrightMessageLength, amt, abfd) != amt)
-       return false;
+       return FALSE;
       /* The copyright message is a variable length string.  */
       amt = nlm_copyright_header (abfd)->copyrightMessageLength + 1;
       if (bfd_bwrite ((PTR) nlm_copyright_header (abfd)->copyrightMessage,
                     amt, abfd) != amt)
-       return false;
+       return FALSE;
     }
 
   /* Write out the extended header if there is one.  */
@@ -826,7 +826,7 @@ nlm_swap_auxiliary_headers_out (abfd)
                (bfd_byte *) thdr.reserved5);
       if (bfd_bwrite ((PTR) &thdr, (bfd_size_type) sizeof (thdr), abfd)
          != sizeof (thdr))
-       return false;
+       return FALSE;
     }
 
   /* Write out the custom header if there is one.   */
@@ -834,7 +834,7 @@ nlm_swap_auxiliary_headers_out (abfd)
                    sizeof (Nlm_Internal_Custom_Header)))
     {
       Nlm_External_Custom_Header thdr;
-      boolean ds;
+      bfd_boolean ds;
       bfd_size_type hdrLength;
 
       ds = find_nonzero ((PTR) nlm_custom_header (abfd)->dataStamp,
@@ -852,7 +852,7 @@ nlm_swap_auxiliary_headers_out (abfd)
          BFD_ASSERT (nlm_custom_header (abfd)->hdrLength == 0);
          amt = sizeof (thdr) - sizeof (thdr.dataStamp);
          if (bfd_bwrite ((PTR) &thdr, amt, abfd) != amt)
-           return false;
+           return FALSE;
        }
       else
        {
@@ -860,10 +860,10 @@ nlm_swap_auxiliary_headers_out (abfd)
                  sizeof (thdr.dataStamp));
          amt = sizeof (thdr);
          if (bfd_bwrite ((PTR) &thdr, amt, abfd) != amt)
-           return false;
+           return FALSE;
          amt = nlm_custom_header (abfd)->hdrLength;
          if (bfd_bwrite (nlm_custom_header (abfd)->hdr, amt, abfd) != amt)
-           return false;
+           return FALSE;
        }
     }
 
@@ -883,10 +883,10 @@ nlm_swap_auxiliary_headers_out (abfd)
       memcpy (thdr.dataStamp, "CyGnUsEx", 8);
       amt = sizeof (thdr);
       if (bfd_bwrite ((PTR) &thdr, amt, abfd) != amt)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We read the NLM's public symbols and use it to generate a bfd symbol
@@ -1009,7 +1009,7 @@ nlm_print_symbol (abfd, afile, symbol, how)
    When we return, the bfd symcount is either zero or contains the correct
    number of symbols.  */
 
-static boolean
+static bfd_boolean
 nlm_slurp_symbol_table (abfd)
      bfd *abfd;
 {
@@ -1020,12 +1020,12 @@ nlm_slurp_symbol_table (abfd)
   unsigned char symlength;     /* Symbol length read into here.  */
   unsigned char symtype;       /* Type of debugging symbol.  */
   bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* Symbol offsets read into here.  */
-  boolean (*read_import_func) PARAMS ((bfd *, nlm_symbol_type *));
-  boolean (*set_public_section_func) PARAMS ((bfd *, nlm_symbol_type *));
+  bfd_boolean (*read_import_func) PARAMS ((bfd *, nlm_symbol_type *));
+  bfd_boolean (*set_public_section_func) PARAMS ((bfd *, nlm_symbol_type *));
   bfd_size_type amt;
 
   if (nlm_get_symbols (abfd) != NULL)
-    return true;
+    return TRUE;
 
   /* Read each raw NLM symbol, using the information to create a canonical bfd
      symbol table entry.
@@ -1041,15 +1041,15 @@ nlm_slurp_symbol_table (abfd)
                 + i_fxdhdrp->numberOfDebugRecords
                 + i_fxdhdrp->numberOfExternalReferences);
   if (totsymcount == 0)
-    return true;
+    return TRUE;
 
   if (bfd_seek (abfd, i_fxdhdrp->publicsOffset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   amt = totsymcount * sizeof (nlm_symbol_type);
   sym = ((nlm_symbol_type *) bfd_zalloc (abfd, amt));
   if (!sym)
-    return false;
+    return FALSE;
   nlm_set_symbols (abfd, sym);
 
   /* We use the bfd's symcount directly as the control count, so that early
@@ -1062,19 +1062,19 @@ nlm_slurp_symbol_table (abfd)
     {
       amt = sizeof (symlength);
       if (bfd_bread ((PTR) &symlength, amt, abfd) != amt)
-       return false;
+       return FALSE;
       amt = symlength;
       sym->symbol.the_bfd = abfd;
       sym->symbol.name = bfd_alloc (abfd, amt + 1);
       if (!sym->symbol.name)
-       return false;
+       return FALSE;
       if (bfd_bread ((PTR) sym->symbol.name, amt, abfd) != amt)
-       return false;
+       return FALSE;
       /* Cast away const.  */
       ((char *) (sym->symbol.name))[symlength] = '\0';
       amt = sizeof (temp);
       if (bfd_bread ((PTR) temp, amt, abfd) != amt)
-       return false;
+       return FALSE;
       sym->symbol.flags = BSF_GLOBAL | BSF_EXPORT;
       sym->symbol.value = get_word (abfd, temp);
       if (set_public_section_func)
@@ -1082,7 +1082,7 @@ nlm_slurp_symbol_table (abfd)
          /* Most backends can use the code below, but unfortunately
             some use a different scheme.  */
          if (! (*set_public_section_func) (abfd, sym))
-           return false;
+           return FALSE;
        }
       else
        {
@@ -1109,27 +1109,27 @@ nlm_slurp_symbol_table (abfd)
   if (i_fxdhdrp->numberOfDebugRecords > 0)
     {
       if (bfd_seek (abfd, i_fxdhdrp->debugInfoOffset, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       symcount += i_fxdhdrp->numberOfDebugRecords;
       while (abfd->symcount < symcount)
        {
          amt = sizeof (symtype);
          if (bfd_bread ((PTR) &symtype, amt, abfd) != amt)
-           return false;
+           return FALSE;
          amt = sizeof (temp);
          if (bfd_bread ((PTR) temp, amt, abfd) != amt)
-           return false;
+           return FALSE;
          amt = sizeof (symlength);
          if (bfd_bread ((PTR) &symlength, amt, abfd) != amt)
-           return false;
+           return FALSE;
          amt = symlength;
          sym->symbol.the_bfd = abfd;
          sym->symbol.name = bfd_alloc (abfd, amt + 1);
          if (!sym->symbol.name)
-           return false;
+           return FALSE;
          if (bfd_bread ((PTR) sym->symbol.name, amt, abfd) != amt)
-           return false;
+           return FALSE;
          /* Cast away const.  */
          ((char *) (sym->symbol.name))[symlength] = '\0';
          sym->symbol.flags = BSF_LOCAL;
@@ -1161,19 +1161,19 @@ nlm_slurp_symbol_table (abfd)
   if (read_import_func != NULL)
     {
       if (bfd_seek (abfd, i_fxdhdrp->externalReferencesOffset, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       symcount += i_fxdhdrp->numberOfExternalReferences;
       while (abfd->symcount < symcount)
        {
          if (! (*read_import_func) (abfd, sym))
-           return false;
+           return FALSE;
          sym++;
          abfd->symcount++;
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Get the relocs for an NLM file.  There are two types of relocs.
@@ -1189,25 +1189,25 @@ nlm_slurp_symbol_table (abfd)
    section pointers are needed because the relocs are not sorted by
    section.  */
 
-static boolean
+static bfd_boolean
 nlm_slurp_reloc_fixups (abfd)
      bfd *abfd;
 {
-  boolean (*read_func) PARAMS ((bfd *, nlm_symbol_type *, asection **,
-                               arelent *));
+  bfd_boolean (*read_func)
+    PARAMS ((bfd *, nlm_symbol_type *, asection **, arelent *));
   bfd_size_type count, amt;
   arelent *rels;
   asection **secs;
 
   if (nlm_relocation_fixups (abfd) != NULL)
-    return true;
+    return TRUE;
   read_func = nlm_read_reloc_func (abfd);
   if (read_func == NULL)
-    return true;
+    return TRUE;
 
   if (bfd_seek (abfd, nlm_fixed_header (abfd)->relocationFixupOffset,
                SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   count = nlm_fixed_header (abfd)->numberOfRelocationFixups;
   amt = count * sizeof (arelent);
@@ -1215,7 +1215,7 @@ nlm_slurp_reloc_fixups (abfd)
   amt = count * sizeof (asection *);
   secs = (asection **) bfd_alloc (abfd, amt);
   if ((rels == NULL || secs == NULL) && count != 0)
-    return false;
+    return FALSE;
   nlm_relocation_fixups (abfd) = rels;
   nlm_relocation_fixup_secs (abfd) = secs;
 
@@ -1227,13 +1227,13 @@ nlm_slurp_reloc_fixups (abfd)
        {
          nlm_relocation_fixups (abfd) = NULL;
          nlm_relocation_fixup_secs (abfd) = NULL;
-         return false;
+         return FALSE;
        }
       ++secs;
       ++rels;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Get the number of relocs.  This really just returns an upper bound,
@@ -1358,7 +1358,7 @@ nlm_canonicalize_reloc (abfd, sec, relptr, symbols)
    move the symbols at this point so that mangle_relocs can see the
    final values.  */
 
-static boolean
+static bfd_boolean
 nlm_compute_section_file_positions (abfd)
      bfd *abfd;
 {
@@ -1372,7 +1372,7 @@ nlm_compute_section_file_positions (abfd)
   asymbol **sym_ptr_ptr;
 
   if (abfd->output_has_begun)
-    return true;
+    return TRUE;
 
   /* Make sure we have a section to hold uninitialized data.  */
   bss_sec = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME);
@@ -1381,11 +1381,11 @@ nlm_compute_section_file_positions (abfd)
       if (!add_bfd_section (abfd, NLM_UNINITIALIZED_DATA_NAME,
                            (file_ptr) 0, (bfd_size_type) 0,
                            SEC_ALLOC))
-       return false;
+       return FALSE;
       bss_sec = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME);
     }
 
-  abfd->output_has_begun = true;
+  abfd->output_has_begun = TRUE;
 
   /* The fixed header.  */
   sofar = nlm_optional_prefix_size (abfd) + nlm_fixed_header_size (abfd);
@@ -1556,7 +1556,7 @@ nlm_compute_section_file_positions (abfd)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the contents of a section.  To do this we need to know where
@@ -1564,7 +1564,7 @@ nlm_compute_section_file_positions (abfd)
    that the sizes of all the sections must be set, and all the
    variable size header information must be known.  */
 
-boolean
+bfd_boolean
 nlm_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -1574,10 +1574,10 @@ nlm_set_section_contents (abfd, section, location, offset, count)
 {
   if (! abfd->output_has_begun
       && ! nlm_compute_section_file_positions (abfd))
-    return false;
+    return FALSE;
 
   if (count == 0)
-    return true;
+    return TRUE;
 
   /* i386 NetWare has a very restricted set of relocs.  In order for
      objcopy to work, the NLM i386 backend needs a chance to rework
@@ -1585,23 +1585,23 @@ nlm_set_section_contents (abfd, section, location, offset, count)
      the relocs are already acceptable, this will not do anything.  */
   if (section->reloc_count != 0)
     {
-      boolean (*mangle_relocs_func) PARAMS ((bfd *, asection *, PTR,
-                                            bfd_vma, bfd_size_type));
+      bfd_boolean (*mangle_relocs_func)
+       PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type));
 
       mangle_relocs_func = nlm_mangle_relocs_func (abfd);
       if (mangle_relocs_func != NULL)
        {
          if (!(*mangle_relocs_func) (abfd, section, location,
                                      (bfd_vma) offset, count))
-           return false;
+           return FALSE;
        }
     }
 
   if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
       || bfd_bwrite (location, count, abfd) != count)
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* We need to sort a list of relocs associated with sections when we
@@ -1655,17 +1655,17 @@ nlm_external_reloc_compare (p1, p2)
    section.  The exports and debugging records are obtained from the
    list of outsymbols.  */
 
-boolean
+bfd_boolean
 nlm_write_object_contents (abfd)
      bfd *abfd;
 {
   asection *sec;
-  boolean (*write_import_func) PARAMS ((bfd *, asection *, arelent *));
+  bfd_boolean (*write_import_func) PARAMS ((bfd *, asection *, arelent *));
   bfd_size_type external_reloc_count, internal_reloc_count, i, c;
   struct reloc_and_sec *external_relocs;
   asymbol **sym_ptr_ptr;
   file_ptr last;
-  boolean (*write_prefix_func) PARAMS ((bfd *));
+  bfd_boolean (*write_prefix_func) PARAMS ((bfd *));
   unsigned char *fixed_header = NULL;
   file_ptr pos;
   bfd_size_type amt;
@@ -1831,7 +1831,7 @@ nlm_write_object_contents (abfd)
   if (sym_ptr_ptr != (asymbol **) NULL)
     {
       bfd_vma (*get_public_offset_func) PARAMS ((bfd *, asymbol *));
-      boolean (*write_export_func) PARAMS ((bfd *, asymbol *, bfd_vma));
+      bfd_boolean (*write_export_func) PARAMS ((bfd *, asymbol *, bfd_vma));
 
       asymbol **sym_end;
 
@@ -2034,10 +2034,10 @@ nlm_write_object_contents (abfd)
 
   if (fixed_header != NULL)
     free (fixed_header);
-  return true;
+  return TRUE;
 
 error_return:
   if (fixed_header != NULL)
     free (fixed_header);
-  return false;
+  return FALSE;
 }
index 9035a4fdddac63e083db93f175023eba463fd983..494e155bffcb216ba29a95a104df80bea76f2bf1 100644 (file)
 #include "oasys.h"
 #include "liboasys.h"
 
-static boolean oasys_slurp_section_data PARAMS ((bfd * const));
-static boolean oasys_read_record PARAMS ((bfd *, oasys_record_union_type *));
-static boolean oasys_write_sections PARAMS ((bfd *));
-static boolean oasys_write_record
+static bfd_boolean oasys_slurp_section_data
+  PARAMS ((bfd * const));
+static bfd_boolean oasys_read_record
+  PARAMS ((bfd *, oasys_record_union_type *));
+static bfd_boolean oasys_write_sections
+  PARAMS ((bfd *));
+static bfd_boolean oasys_write_record
   PARAMS ((bfd *, oasys_record_enum_type, oasys_record_union_type *, size_t));
-static boolean oasys_write_syms PARAMS ((bfd *));
-static boolean oasys_write_header PARAMS ((bfd *));
-static boolean oasys_write_end PARAMS ((bfd *));
-static boolean oasys_write_data PARAMS ((bfd *));
-static size_t oasys_string_length PARAMS ((oasys_record_union_type *));
-static boolean oasys_slurp_symbol_table PARAMS ((bfd *const));
-static long int oasys_get_symtab_upper_bound PARAMS ((bfd *const));
-static const bfd_target *oasys_archive_p PARAMS ((bfd *));
-static boolean oasys_mkobject PARAMS ((bfd *));
-static const bfd_target *oasys_object_p PARAMS ((bfd *));
-static void oasys_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
+static bfd_boolean oasys_write_syms
+  PARAMS ((bfd *));
+static bfd_boolean oasys_write_header
+  PARAMS ((bfd *));
+static bfd_boolean oasys_write_end
+  PARAMS ((bfd *));
+static bfd_boolean oasys_write_data
+  PARAMS ((bfd *));
+static size_t oasys_string_length
+  PARAMS ((oasys_record_union_type *));
+static bfd_boolean oasys_slurp_symbol_table
+  PARAMS ((bfd *const));
+static long int oasys_get_symtab_upper_bound
+  PARAMS ((bfd *const));
+static const bfd_target *oasys_archive_p
+  PARAMS ((bfd *));
+static bfd_boolean oasys_mkobject
+  PARAMS ((bfd *));
+static const bfd_target *oasys_object_p
+  PARAMS ((bfd *));
+static void oasys_get_symbol_info
+  PARAMS ((bfd *, asymbol *, symbol_info *));
 static void oasys_print_symbol
   PARAMS ((bfd *, void *, asymbol *, bfd_print_symbol_type));
-static boolean oasys_new_section_hook PARAMS ((bfd *, asection *));
-static long int oasys_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr));
-static boolean oasys_get_section_contents
+static bfd_boolean oasys_new_section_hook
+  PARAMS ((bfd *, asection *));
+static long int oasys_get_reloc_upper_bound
+  PARAMS ((bfd *, sec_ptr));
+static bfd_boolean oasys_get_section_contents
   PARAMS ((bfd *, sec_ptr, void *, file_ptr, bfd_size_type));
-static int comp PARAMS ((const void *, const void *));
-static boolean oasys_write_object_contents PARAMS ((bfd *));
-static boolean oasys_set_section_contents
+static int comp
+  PARAMS ((const void *, const void *));
+static bfd_boolean oasys_write_object_contents
+  PARAMS ((bfd *));
+static bfd_boolean oasys_set_section_contents
   PARAMS ((bfd *, sec_ptr, void *, file_ptr, bfd_size_type));
-static asymbol *oasys_make_empty_symbol PARAMS ((bfd *));
-static bfd *oasys_openr_next_archived_file PARAMS ((bfd *, bfd *));
-static boolean oasys_find_nearest_line
+static asymbol *oasys_make_empty_symbol
+  PARAMS ((bfd *));
+static bfd *oasys_openr_next_archived_file
+  PARAMS ((bfd *, bfd *));
+static bfd_boolean oasys_find_nearest_line
   PARAMS ((bfd *, asection *, asymbol **, bfd_vma,
           const char **, const char **, unsigned int *));
-static int oasys_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
-static int oasys_sizeof_headers PARAMS ((bfd *, boolean));
+static int oasys_generic_stat_arch_elt
+  PARAMS ((bfd *, struct stat *));
+static int oasys_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
 
-long oasys_get_symtab PARAMS ((bfd *, asymbol **));
+long oasys_get_symtab
+  PARAMS ((bfd *, asymbol **));
 long oasys_canonicalize_reloc
   PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
 
 /* Read in all the section data and relocation stuff too.  */
 
-static boolean
+static bfd_boolean
 oasys_read_record (abfd, record)
      bfd *abfd;
      oasys_record_union_type *record;
 {
   bfd_size_type amt = sizeof (record->header);
   if (bfd_bread ((PTR) record, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   amt = record->header.length - sizeof (record->header);
   if ((long) amt <= 0)
-    return true;
+    return TRUE;
   if (bfd_bread ((PTR) ((char *) record + sizeof (record->header)), amt, abfd)
       != amt)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 static size_t
@@ -109,13 +132,13 @@ moving in, and the defined symbols at the end of the table moving back.
 
 */
 
-static boolean
+static bfd_boolean
 oasys_slurp_symbol_table (abfd)
      bfd *const abfd;
 {
   oasys_record_union_type record;
   oasys_data_type *data = OASYS_DATA (abfd);
-  boolean loop = true;
+  bfd_boolean loop = TRUE;
   asymbol *dest_defined;
   asymbol *dest;
   char *string_ptr;
@@ -123,7 +146,7 @@ oasys_slurp_symbol_table (abfd)
 
   if (data->symbols != (asymbol *) NULL)
     {
-      return true;
+      return TRUE;
     }
   /* Buy enough memory for all the symbols and all the names */
   amt = abfd->symcount;
@@ -138,18 +161,18 @@ oasys_slurp_symbol_table (abfd)
   data->strings = bfd_alloc (abfd, amt);
 
   if (!data->symbols || !data->strings)
-    return false;
+    return FALSE;
 
   dest_defined = data->symbols + abfd->symcount - 1;
 
   string_ptr = data->strings;
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
-    return false;
+    return FALSE;
   while (loop)
     {
 
       if (! oasys_read_record (abfd, &record))
-       return false;
+       return FALSE;
       switch (record.header.type)
        {
        case oasys_record_is_header_enum:
@@ -229,10 +252,10 @@ oasys_slurp_symbol_table (abfd)
          }
          break;
        default:
-         loop = false;
+         loop = FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 
 static long
@@ -405,7 +428,7 @@ oasys_archive_p (abfd)
   return abfd->xvec;
 }
 
-static boolean
+static bfd_boolean
 oasys_mkobject (abfd)
      bfd *abfd;
 {
@@ -421,8 +444,8 @@ oasys_object_p (abfd)
 {
   oasys_data_type *oasys;
   oasys_data_type *save = OASYS_DATA (abfd);
-  boolean loop = true;
-  boolean had_usefull = false;
+  bfd_boolean loop = TRUE;
+  bfd_boolean had_usefull = FALSE;
 
   abfd->tdata.oasys_obj_data = 0;
   oasys_mkobject (abfd);
@@ -449,14 +472,14 @@ oasys_object_p (abfd)
       switch ((oasys_record_enum_type) (record.header.type))
        {
        case oasys_record_is_header_enum:
-         had_usefull = true;
+         had_usefull = TRUE;
          break;
        case oasys_record_is_symbol_enum:
        case oasys_record_is_local_enum:
          /* Count symbols and remember their size for a future malloc   */
          abfd->symcount++;
          oasys->symbol_string_length += 1 + oasys_string_length (&record);
-         had_usefull = true;
+         had_usefull = TRUE;
          break;
        case oasys_record_is_section_enum:
          {
@@ -487,7 +510,7 @@ oasys_object_p (abfd)
            s->_raw_size = H_GET_32 (abfd, record.section.value);
            s->vma = H_GET_32 (abfd, record.section.vma);
            s->flags = 0;
-           had_usefull = true;
+           had_usefull = TRUE;
          }
          break;
        case oasys_record_is_data_enum:
@@ -498,7 +521,7 @@ oasys_object_p (abfd)
        case oasys_record_is_end_enum:
          if (! had_usefull)
            goto fail;
-         loop = false;
+         loop = FALSE;
          break;
        default:
          goto fail;
@@ -578,20 +601,20 @@ oasys_print_symbol (abfd, afile, symbol, how)
 static reloc_howto_type howto_table[] =
 {
 
-  HOWTO (0, 0, 1, 16, false, 0, complain_overflow_bitfield, 0, "abs16", true, 0x0000ffff, 0x0000ffff, false),
-  HOWTO (0, 0, 2, 32, false, 0, complain_overflow_bitfield, 0, "abs32", true, 0xffffffff, 0xffffffff, false),
-  HOWTO (0, 0, 1, 16, true, 0, complain_overflow_signed, 0, "pcrel16", true, 0x0000ffff, 0x0000ffff, false),
-  HOWTO (0, 0, 2, 32, true, 0, complain_overflow_signed, 0, "pcrel32", true, 0xffffffff, 0xffffffff, false)
+  HOWTO (0, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+  HOWTO (0, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "abs32", TRUE, 0xffffffff, 0xffffffff, FALSE),
+  HOWTO (0, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "pcrel16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+  HOWTO (0, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "pcrel32", TRUE, 0xffffffff, 0xffffffff, FALSE)
 };
 
 /* Read in all the section data and relocation stuff too */
-static boolean
+static bfd_boolean
 oasys_slurp_section_data (abfd)
      bfd *const abfd;
 {
   oasys_record_union_type record;
   oasys_data_type *data = OASYS_DATA (abfd);
-  boolean loop = true;
+  bfd_boolean loop = TRUE;
   oasys_per_section_type *per;
   asection *s;
   bfd_size_type amt;
@@ -601,18 +624,18 @@ oasys_slurp_section_data (abfd)
     {
       per = oasys_per_section (s);
       if (per->initialized)
-       return true;
+       return TRUE;
     }
 
   if (data->first_data_record == 0)
-    return true;
+    return TRUE;
 
   if (bfd_seek (abfd, data->first_data_record, SEEK_SET) != 0)
-    return false;
+    return FALSE;
   while (loop)
     {
       if (! oasys_read_record (abfd, &record))
-       return false;
+       return FALSE;
       switch (record.header.type)
        {
        case oasys_record_is_header_enum:
@@ -636,11 +659,11 @@ oasys_slurp_section_data (abfd)
              {
                per->data = (bfd_byte *) bfd_zalloc (abfd, section->_raw_size);
                if (!per->data)
-                 return false;
+                 return FALSE;
                per->reloc_tail_ptr
                  = (oasys_reloc_type **) &section->relocation;
-               per->had_vma = false;
-               per->initialized = true;
+               per->had_vma = FALSE;
+               per->initialized = TRUE;
                section->reloc_count = 0;
                section->flags = SEC_ALLOC;
              }
@@ -650,7 +673,7 @@ oasys_slurp_section_data (abfd)
              {
                /* Take the first vma we see as the base */
                section->vma = dst_offset;
-               per->had_vma = true;
+               per->had_vma = TRUE;
              }
 
            dst_offset -= section->vma;
@@ -705,7 +728,7 @@ oasys_slurp_section_data (abfd)
                                  r = (oasys_reloc_type *) bfd_alloc (abfd,
                                                                      amt);
                                  if (!r)
-                                   return false;
+                                   return FALSE;
                                  *(per->reloc_tail_ptr) = r;
                                  per->reloc_tail_ptr = &r->next;
                                  r->next = (oasys_reloc_type *) NULL;
@@ -747,7 +770,7 @@ oasys_slurp_section_data (abfd)
                                  r = (oasys_reloc_type *) bfd_alloc (abfd,
                                                                      amt);
                                  if (!r)
-                                   return false;
+                                   return FALSE;
                                  *(per->reloc_tail_ptr) = r;
                                  per->reloc_tail_ptr = &r->next;
                                  r->next = (oasys_reloc_type *) NULL;
@@ -793,15 +816,15 @@ oasys_slurp_section_data (abfd)
        case oasys_record_is_section_enum:
          break;
        default:
-         loop = false;
+         loop = FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 
 }
 
-static boolean
+static bfd_boolean
 oasys_new_section_hook (abfd, newsect)
      bfd *abfd;
      asection *newsect;
@@ -809,17 +832,17 @@ oasys_new_section_hook (abfd, newsect)
   newsect->used_by_bfd = (PTR)
     bfd_alloc (abfd, (bfd_size_type) sizeof (oasys_per_section_type));
   if (!newsect->used_by_bfd)
-    return false;
+    return FALSE;
   oasys_per_section (newsect)->data = (bfd_byte *) NULL;
   oasys_per_section (newsect)->section = newsect;
   oasys_per_section (newsect)->offset = 0;
-  oasys_per_section (newsect)->initialized = false;
+  oasys_per_section (newsect)->initialized = FALSE;
   newsect->alignment_power = 1;
   /* Turn the section string into an index */
 
   sscanf (newsect->name, "%u", &newsect->target_index);
 
-  return true;
+  return TRUE;
 }
 
 
@@ -833,7 +856,7 @@ oasys_get_reloc_upper_bound (abfd, asect)
   return (asect->reloc_count + 1) * sizeof (arelent *);
 }
 
-static boolean
+static bfd_boolean
 oasys_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -851,7 +874,7 @@ oasys_get_section_contents (abfd, section, location, offset, count)
     {
       (void) memcpy (location, (PTR) (p->data + offset), (size_t) count);
     }
-  return true;
+  return TRUE;
 }
 
 
@@ -890,7 +913,7 @@ oasys_canonicalize_reloc (ignore_abfd, section, relptr, symbols)
 
 
 /* Calculate the checksum and write one record */
-static boolean
+static bfd_boolean
 oasys_write_record (abfd, type, record, size)
      bfd *abfd;
      oasys_record_enum_type type;
@@ -913,13 +936,13 @@ oasys_write_record (abfd, type, record, size)
     }
   record->header.check_sum = 0xff & (-checksum);
   if (bfd_bwrite ((PTR) record, (bfd_size_type) size, abfd) != size)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 
 /* Write out all the symbols */
-static boolean
+static bfd_boolean
 oasys_write_syms (abfd)
      bfd *abfd;
 {
@@ -995,7 +1018,7 @@ oasys_write_syms (abfd)
                                    (oasys_record_union_type *) & symbol,
                                    offsetof (oasys_symbol_record_type,
                                              name[0]) + l))
-           return false;
+           return FALSE;
        }
       else
        {
@@ -1004,17 +1027,17 @@ oasys_write_syms (abfd)
                                    (oasys_record_union_type *) & symbol,
                                    offsetof (oasys_symbol_record_type,
                                              name[0]) + l))
-           return false;
+           return FALSE;
        }
       g->value = index - 1;
     }
 
-  return true;
+  return TRUE;
 }
 
 
  /* Write a section header for each section */
-static boolean
+static bfd_boolean
 oasys_write_sections (abfd)
      bfd *abfd;
 {
@@ -1029,7 +1052,7 @@ oasys_write_sections (abfd)
            (_("%s: can not represent section `%s' in oasys"),
             bfd_get_filename (abfd), s->name);
          bfd_set_error (bfd_error_nonrepresentable_section);
-         return false;
+         return FALSE;
        }
       out.relb = RELOCATION_TYPE_REL | s->target_index;
       H_PUT_32 (abfd, s->_cooked_size, out.value);
@@ -1039,12 +1062,12 @@ oasys_write_sections (abfd)
                                oasys_record_is_section_enum,
                                (oasys_record_union_type *) & out,
                                sizeof (out)))
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 oasys_write_header (abfd)
      bfd *abfd;
 {
@@ -1070,12 +1093,12 @@ oasys_write_header (abfd)
                            (oasys_record_union_type *) & r,
                            offsetof (oasys_header_record_type,
                                      description[0])))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 oasys_write_end (abfd)
      bfd *abfd;
 {
@@ -1089,10 +1112,10 @@ oasys_write_end (abfd)
                            oasys_record_is_end_enum,
                            (oasys_record_union_type *) & end,
                            sizeof (end)))
-    return false;
+    return FALSE;
   if (bfd_bwrite ((PTR) &null, (bfd_size_type) 1, abfd) != 1)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 static int
@@ -1109,7 +1132,7 @@ comp (ap, bp)
  Writing data..
 
 */
-static boolean
+static bfd_boolean
 oasys_write_data (abfd)
      bfd *abfd;
 {
@@ -1286,29 +1309,29 @@ oasys_write_data (abfd)
                     (abfd, oasys_record_is_data_enum,
                      ((oasys_record_union_type *) &processed_data),
                      (size_t) (dst - (bfd_byte *) &processed_data))))
-               return false;
+               return FALSE;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 oasys_write_object_contents (abfd)
      bfd *abfd;
 {
   if (! oasys_write_header (abfd))
-    return false;
+    return FALSE;
   if (! oasys_write_syms (abfd))
-    return false;
+    return FALSE;
   if (! oasys_write_sections (abfd))
-    return false;
+    return FALSE;
   if (! oasys_write_data (abfd))
-    return false;
+    return FALSE;
   if (! oasys_write_end (abfd))
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 
@@ -1319,7 +1342,7 @@ oasys_write_object_contents (abfd)
 /* set section contents is complicated with OASYS since the format is
 * not a byte image, but a record stream.
 */
-static boolean
+static bfd_boolean
 oasys_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -1334,13 +1357,13 @@ oasys_set_section_contents (abfd, section, location, offset, count)
          oasys_per_section (section)->data =
            (bfd_byte *) (bfd_alloc (abfd, section->_cooked_size));
          if (!oasys_per_section (section)->data)
-           return false;
+           return FALSE;
        }
       (void) memcpy ((PTR) (oasys_per_section (section)->data + offset),
                     location,
                     (size_t) count);
     }
-  return true;
+  return TRUE;
 }
 
 
@@ -1406,7 +1429,7 @@ oasys_openr_next_archived_file (arch, prev)
     }
 }
 
-static boolean
+static bfd_boolean
 oasys_find_nearest_line (abfd, section, symbols, offset,
                         filename_ptr, functionname_ptr, line_ptr)
      bfd *abfd ATTRIBUTE_UNUSED;
@@ -1417,7 +1440,7 @@ oasys_find_nearest_line (abfd, section, symbols, offset,
      const char **functionname_ptr ATTRIBUTE_UNUSED;
      unsigned int *line_ptr ATTRIBUTE_UNUSED;
 {
-  return false;
+  return FALSE;
 
 }
 
@@ -1443,7 +1466,7 @@ oasys_generic_stat_arch_elt (abfd, buf)
 static int
 oasys_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return 0;
 }
@@ -1454,11 +1477,11 @@ oasys_sizeof_headers (abfd, exec)
 #define oasys_slurp_armap bfd_true
 #define oasys_slurp_extended_name_table bfd_true
 #define oasys_construct_extended_name_table \
-  ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
+  ((bfd_boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
    bfd_true)
 #define oasys_truncate_arname bfd_dont_truncate_arname
 #define oasys_write_armap \
-  ((boolean (*) \
+  ((bfd_boolean (*) \
     PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \
    bfd_true)
 #define oasys_read_ar_hdr bfd_nullvoidptr
index af8ff7e4a63585a1707e906b3a13a651b49c96a1..32d223ebb74aeb2cc4a9cfeb09c8caf7a2e550e4 100644 (file)
@@ -75,13 +75,13 @@ _bfd_new_bfd ()
   nbfd->format = bfd_unknown;
   nbfd->my_archive = (bfd *) NULL;
   nbfd->origin = 0;
-  nbfd->opened_once = false;
-  nbfd->output_has_begun = false;
+  nbfd->opened_once = FALSE;
+  nbfd->output_has_begun = FALSE;
   nbfd->section_count = 0;
   nbfd->usrdata = (PTR) NULL;
-  nbfd->cacheable = false;
+  nbfd->cacheable = FALSE;
   nbfd->flags = BFD_NO_FLAGS;
-  nbfd->mtime_set = false;
+  nbfd->mtime_set = FALSE;
 
   return nbfd;
 }
@@ -275,7 +275,7 @@ bfd_fdopenr (filename, target, fd)
       _bfd_delete_bfd (nbfd);
       return NULL;
     }
-  nbfd->opened_once = true;
+  nbfd->opened_once = TRUE;
 
   return nbfd;
 }
@@ -388,7 +388,7 @@ FUNCTION
        bfd_close
 
 SYNOPSIS
-       boolean bfd_close(bfd *abfd);
+       bfd_boolean bfd_close (bfd *abfd);
 
 DESCRIPTION
 
@@ -403,24 +403,24 @@ DESCRIPTION
        if it was passed in to BFD by <<bfd_fdopenr>>).
 
 RETURNS
-       <<true>> is returned if all is ok, otherwise <<false>>.
+       <<TRUE>> is returned if all is ok, otherwise <<FALSE>>.
 */
 
 
-boolean
+bfd_boolean
 bfd_close (abfd)
      bfd *abfd;
 {
-  boolean ret;
+  bfd_boolean ret;
 
   if (bfd_write_p (abfd))
     {
       if (! BFD_SEND_FMT (abfd, _bfd_write_contents, (abfd)))
-       return false;
+       return FALSE;
     }
 
   if (! BFD_SEND (abfd, _close_and_cleanup, (abfd)))
-    return false;
+    return FALSE;
 
   ret = bfd_cache_close (abfd);
 
@@ -453,7 +453,7 @@ FUNCTION
        bfd_close_all_done
 
 SYNOPSIS
-       boolean bfd_close_all_done(bfd *);
+       bfd_boolean bfd_close_all_done (bfd *);
 
 DESCRIPTION
        Close a BFD.  Differs from <<bfd_close>> since it does not
@@ -467,14 +467,14 @@ DESCRIPTION
        All memory attached to the BFD is released.
 
 RETURNS
-       <<true>> is returned if all is ok, otherwise <<false>>.
+       <<TRUE>> is returned if all is ok, otherwise <<FALSE>>.
 */
 
-boolean
+bfd_boolean
 bfd_close_all_done (abfd)
      bfd *abfd;
 {
-  boolean ret;
+  bfd_boolean ret;
 
   ret = bfd_cache_close (abfd);
 
@@ -539,7 +539,7 @@ FUNCTION
        bfd_make_writable
 
 SYNOPSIS
-       boolean bfd_make_writable(bfd *abfd);
+       bfd_boolean bfd_make_writable (bfd *abfd);
 
 DESCRIPTION
        Takes a BFD as created by <<bfd_create>> and converts it
@@ -548,10 +548,10 @@ DESCRIPTION
        you will call <<bfd_make_readable>> on this bfd later.
 
 RETURNS
-       <<true>> is returned if all is ok, otherwise <<false>>.
+       <<TRUE>> is returned if all is ok, otherwise <<FALSE>>.
 */
 
-boolean
+bfd_boolean
 bfd_make_writable(abfd)
      bfd *abfd;
 {
@@ -560,7 +560,7 @@ bfd_make_writable(abfd)
   if (abfd->direction != no_direction)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   bim = ((struct bfd_in_memory *)
@@ -574,7 +574,7 @@ bfd_make_writable(abfd)
   abfd->direction = write_direction;
   abfd->where = 0;
 
-  return true;
+  return TRUE;
 }
 
 /*
@@ -582,7 +582,7 @@ FUNCTION
        bfd_make_readable
 
 SYNOPSIS
-       boolean bfd_make_readable(bfd *abfd);
+       bfd_boolean bfd_make_readable (bfd *abfd);
 
 DESCRIPTION
        Takes a BFD as created by <<bfd_create>> and
@@ -592,23 +592,23 @@ DESCRIPTION
        direction.
 
 RETURNS
-       <<true>> is returned if all is ok, otherwise <<false>>.  */
+       <<TRUE>> is returned if all is ok, otherwise <<FALSE>>.  */
 
-boolean
+bfd_boolean
 bfd_make_readable(abfd)
      bfd *abfd;
 {
   if (abfd->direction != write_direction || !(abfd->flags & BFD_IN_MEMORY))
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   if (! BFD_SEND_FMT (abfd, _bfd_write_contents, (abfd)))
-    return false;
+    return FALSE;
 
   if (! BFD_SEND (abfd, _close_and_cleanup, (abfd)))
-    return false;
+    return FALSE;
 
 
   abfd->arch_info = &bfd_default_arch_struct;
@@ -617,15 +617,15 @@ bfd_make_readable(abfd)
   abfd->format = bfd_unknown;
   abfd->my_archive = (bfd *) NULL;
   abfd->origin = 0;
-  abfd->opened_once = false;
-  abfd->output_has_begun = false;
+  abfd->opened_once = FALSE;
+  abfd->output_has_begun = FALSE;
   abfd->section_count = 0;
   abfd->usrdata = (PTR) NULL;
-  abfd->cacheable = false;
+  abfd->cacheable = FALSE;
   abfd->flags = BFD_IN_MEMORY;
-  abfd->mtime_set = false;
+  abfd->mtime_set = FALSE;
 
-  abfd->target_defaulted = true;
+  abfd->target_defaulted = TRUE;
   abfd->direction = read_direction;
   abfd->sections = 0;
   abfd->symcount = 0;
@@ -635,7 +635,7 @@ bfd_make_readable(abfd)
   bfd_section_list_clear (abfd);
   bfd_check_format (abfd, bfd_object);
 
-  return true;
+  return TRUE;
 }
 
 /*
index 862342ec9744d7f15d3379aa155fbcb16f80ef42..95292a3e4bc0b85f35515f8ccdd77ba8340ac7ad 100644 (file)
@@ -32,11 +32,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 static asection *make_bfd_asection
   PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr));
-static const bfd_target *osf_core_core_file_p PARAMS ((bfd *));
-static char *osf_core_core_file_failing_command PARAMS ((bfd *));
-static int osf_core_core_file_failing_signal PARAMS ((bfd *));
-static boolean osf_core_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
-static void swap_abort PARAMS ((void));
+static const bfd_target *osf_core_core_file_p
+  PARAMS ((bfd *));
+static char *osf_core_core_file_failing_command
+  PARAMS ((bfd *));
+static int osf_core_core_file_failing_signal
+  PARAMS ((bfd *));
+static bfd_boolean osf_core_core_file_matches_executable_p
+  PARAMS ((bfd *, bfd *));
+static void swap_abort
+  PARAMS ((void));
 
 /* These are stored in the bfd's tdata */
 
@@ -168,12 +173,12 @@ osf_core_core_file_failing_signal (abfd)
 }
 
 /* ARGSUSED */
-static boolean
+static bfd_boolean
 osf_core_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
-  return true;         /* FIXME, We have no way of telling at this point */
+  return TRUE;         /* FIXME, We have no way of telling at this point */
 }
 \f
 /* If somebody calls any byte-swapping routines, shoot them.  */
index f8fd85866dc1db69a3efe161abc7758eb052e3f3..f96956a608feb64b8384d2b724e96a11b03f4d10 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Mach3/532 a.out-ish binaries.
-   Copyright 1990, 1991, 1992, 1994, 1995, 2000, 2001
+   Copyright 1990, 1991, 1992, 1994, 1995, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -79,10 +79,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 reloc_howto_type *ns32kaout_bfd_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
 
-static boolean MY(write_object_contents)
+static bfd_boolean MY(write_object_contents)
   PARAMS ((bfd *abfd));
 
-static boolean
+static bfd_boolean
 MY(write_object_contents) (abfd)
      bfd *abfd;
 {
@@ -106,7 +106,7 @@ MY(write_object_contents) (abfd)
 
   WRITE_HEADERS(abfd, execp);
 
-  return true;
+  return TRUE;
 }
 
 #define MY_write_object_contents MY(write_object_contents)
index f7514367f7d253214b82491773402f3ef5cf0674..95d78a1103dcbeefa0e685d3b7dbea185ab2a0fe 100644 (file)
@@ -131,7 +131,7 @@ struct pdp11_external_nlist
 #define MY_entry_is_text_address 1
 
 #define MY_write_object_contents MY(write_object_contents)
-static boolean MY(write_object_contents) PARAMS ((bfd *abfd));
+static bfd_boolean MY(write_object_contents) PARAMS ((bfd *abfd));
 #define MY_text_includes_header 1
 
 bfd_vma                bfd_getp32         PARAMS ((const bfd_byte *));
@@ -358,10 +358,10 @@ struct pdp11_aout_reloc_external
 
 #define RINDEX(x)      (((x) & 0xfff0) >> 4)
 
-static boolean aout_get_external_symbols PARAMS ((bfd *));
-static boolean translate_from_native_sym_flags
+static bfd_boolean aout_get_external_symbols PARAMS ((bfd *));
+static bfd_boolean translate_from_native_sym_flags
   PARAMS ((bfd *, aout_symbol_type *));
-static boolean translate_to_native_sym_flags
+static bfd_boolean translate_to_native_sym_flags
   PARAMS ((bfd *, asymbol *, struct external_nlist *));
 static void adjust_o_magic PARAMS ((bfd *, struct internal_exec *));
 static void adjust_z_magic PARAMS ((bfd *, struct internal_exec *));
@@ -399,8 +399,8 @@ DESCRIPTION
 reloc_howto_type howto_table_pdp11[] =
 {
   /* type              rs size bsz  pcrel bitpos ovrf                     sf name     part_inpl readmask  setmask    pcdone */
-HOWTO( 0,             0,  1,  16,  false, 0, complain_overflow_signed,0,"16",  true, 0x0000ffff,0x0000ffff, false),
-HOWTO( 1,             0,  1,  16,  true,  0, complain_overflow_signed,0,"DISP16",      true, 0x0000ffff,0x0000ffff, false),
+HOWTO( 0,             0,  1,  16,  FALSE, 0, complain_overflow_signed,0,"16",  TRUE, 0x0000ffff,0x0000ffff, FALSE),
+HOWTO( 1,             0,  1,  16,  TRUE,  0, complain_overflow_signed,0,"DISP16",      TRUE, 0x0000ffff,0x0000ffff, FALSE),
 };
 
 #define TABLE_SIZE(TABLE)      (sizeof(TABLE)/sizeof(TABLE[0]))
@@ -451,11 +451,11 @@ pdp11_aout_write_headers (abfd, execp)
   NAME(aout,swap_exec_header_out) (abfd, execp, &exec_bytes);
 
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd)
       != EXEC_BYTES_SIZE)
-    return false;
+    return FALSE;
 
   /* Now write out reloc info, followed by syms and strings */
 
@@ -463,34 +463,34 @@ pdp11_aout_write_headers (abfd, execp)
       && bfd_get_symcount (abfd) != 0)
     {
       if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       if (! NAME(aout,write_syms) (abfd))
-       return false;
+       return FALSE;
     }
 
   if (obj_textsec (abfd)->reloc_count > 0 ||
       obj_datasec (abfd)->reloc_count > 0)
     {
       if (bfd_seek (abfd, (file_ptr) (N_TRELOFF(*execp)), SEEK_SET) != 0)
-       return false;
+       return FALSE;
       if (!NAME(aout,squirt_out_relocs) (abfd, obj_textsec (abfd)))
-       return false;
+       return FALSE;
 
       if (bfd_seek (abfd, (file_ptr) (N_DRELOFF(*execp)), SEEK_SET) != 0)
-       return false;
+       return FALSE;
       if (!NAME(aout,squirt_out_relocs) (abfd, obj_datasec (abfd)))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write an object file.
    Section contents have already been written.  We write the
    file header, symbols, and relocation.  */
 
-static boolean
+static bfd_boolean
 MY(write_object_contents) (abfd)
      bfd *abfd;
 {
@@ -622,20 +622,20 @@ NAME(aout,swap_exec_header_out) (abfd, execp, raw_bytes)
 
 /* Make all the section for an a.out file.  */
 
-boolean
+bfd_boolean
 NAME(aout,make_sections) (abfd)
      bfd *abfd;
 {
   if (obj_textsec (abfd) == (asection *) NULL
       && bfd_make_section (abfd, ".text") == (asection *) NULL)
-    return false;
+    return FALSE;
   if (obj_datasec (abfd) == (asection *) NULL
       && bfd_make_section (abfd, ".data") == (asection *) NULL)
-    return false;
+    return FALSE;
   if (obj_bsssec (abfd) == (asection *) NULL
       && bfd_make_section (abfd, ".bss") == (asection *) NULL)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /*
@@ -869,13 +869,13 @@ FUNCTION
        aout_@var{size}_mkobject
 
 SYNOPSIS
-       boolean aout_@var{size}_mkobject, (bfd *abfd);
+       bfd_boolean aout_@var{size}_mkobject, (bfd *abfd);
 
 DESCRIPTION
        Initialize BFD @var{abfd} for use with a.out files.
 */
 
-boolean
+bfd_boolean
 NAME(aout,mkobject) (abfd)
      bfd *abfd;
 {
@@ -888,7 +888,7 @@ NAME(aout,mkobject) (abfd)
   rawptr = (struct aout_data_struct *) bfd_zalloc (abfd, amt);
 
   if (rawptr == NULL)
-    return false;
+    return FALSE;
 
   abfd->tdata.aout_data = rawptr;
   exec_hdr (abfd) = &(rawptr->e);
@@ -897,7 +897,7 @@ NAME(aout,mkobject) (abfd)
   obj_datasec (abfd) = (asection *)NULL;
   obj_bsssec (abfd) = (asection *)NULL;
 
-  return true;
+  return TRUE;
 }
 
 
@@ -924,12 +924,12 @@ enum machine_type
 NAME(aout,machine_type) (arch, machine, unknown)
      enum bfd_architecture arch;
      unsigned long machine;
-     boolean *unknown;
+     bfd_boolean *unknown;
 {
   enum machine_type arch_flags;
 
   arch_flags = M_UNKNOWN;
-  *unknown = true;
+  *unknown = TRUE;
 
   switch (arch)
     {
@@ -947,7 +947,7 @@ NAME(aout,machine_type) (arch, machine, unknown)
       switch (machine)
        {
        case 0:               arch_flags = M_68010; break;
-       case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = false; break;
+       case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = FALSE; break;
        case bfd_mach_m68010: arch_flags = M_68010; break;
        case bfd_mach_m68020: arch_flags = M_68020; break;
        default:              arch_flags = M_UNKNOWN; break;
@@ -1001,11 +1001,11 @@ NAME(aout,machine_type) (arch, machine, unknown)
 
     case bfd_arch_pdp11:
       /* TODO: arch_flags = M_PDP11; */
-      *unknown = false;
+      *unknown = FALSE;
       break;
 
     case bfd_arch_vax:
-      *unknown = false;
+      *unknown = FALSE;
       break;
 
     default:
@@ -1013,7 +1013,7 @@ NAME(aout,machine_type) (arch, machine, unknown)
     }
 
   if (arch_flags != M_UNKNOWN)
-    *unknown = false;
+    *unknown = FALSE;
 
   return arch_flags;
 }
@@ -1024,7 +1024,7 @@ FUNCTION
        aout_@var{size}_set_arch_mach
 
 SYNOPSIS
-       boolean aout_@var{size}_set_arch_mach,
+       bfd_boolean aout_@var{size}_set_arch_mach,
         (bfd *,
          enum bfd_architecture arch,
          unsigned long machine));
@@ -1035,22 +1035,22 @@ DESCRIPTION
        can support the architecture required.
 */
 
-boolean
+bfd_boolean
 NAME(aout,set_arch_mach) (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
      unsigned long machine;
 {
   if (! bfd_default_set_arch_mach (abfd, arch, machine))
-    return false;
+    return FALSE;
 
   if (arch != bfd_arch_unknown)
     {
-      boolean unknown;
+      bfd_boolean unknown;
 
       NAME(aout,machine_type) (arch, machine, &unknown);
       if (unknown)
-       return false;
+       return FALSE;
     }
 
   obj_reloc_entry_size (abfd) = RELOC_SIZE;
@@ -1284,7 +1284,7 @@ adjust_n_magic (abfd, execp)
   N_SET_MAGIC (*execp, NMAGIC);
 }
 
-boolean
+bfd_boolean
 NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
      bfd *abfd;
      bfd_size_type *text_size;
@@ -1293,10 +1293,10 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
   struct internal_exec *execp = exec_hdr (abfd);
 
   if (! NAME(aout,make_sections) (abfd))
-    return false;
+    return FALSE;
 
   if (adata(abfd).magic != undecided_magic)
-    return true;
+    return TRUE;
 
   obj_textsec(abfd)->_raw_size =
     align_power(obj_textsec(abfd)->_raw_size,
@@ -1369,7 +1369,7 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
           obj_bsssec(abfd)->vma, obj_bsssec(abfd)->_raw_size);
 #endif
 
-  return true;
+  return TRUE;
 }
 
 /*
@@ -1377,7 +1377,7 @@ FUNCTION
        aout_@var{size}_new_section_hook
 
 SYNOPSIS
-        boolean aout_@var{size}_new_section_hook,
+        bfd_boolean aout_@var{size}_new_section_hook,
           (bfd *abfd,
            asection *newsect));
 
@@ -1385,7 +1385,7 @@ DESCRIPTION
        Called by the BFD in response to a @code{bfd_make_section}
        request.
 */
-boolean
+bfd_boolean
 NAME(aout,new_section_hook) (abfd, newsect)
      bfd *abfd;
      asection *newsect;
@@ -1401,7 +1401,7 @@ NAME(aout,new_section_hook) (abfd, newsect)
        {
          obj_textsec(abfd)= newsect;
          newsect->target_index = N_TEXT;
-         return true;
+         return TRUE;
        }
 
     if (obj_datasec (abfd) == NULL
@@ -1409,7 +1409,7 @@ NAME(aout,new_section_hook) (abfd, newsect)
       {
        obj_datasec (abfd) = newsect;
        newsect->target_index = N_DATA;
-       return true;
+       return TRUE;
       }
 
     if (obj_bsssec (abfd) == NULL
@@ -1417,15 +1417,15 @@ NAME(aout,new_section_hook) (abfd, newsect)
       {
        obj_bsssec (abfd) = newsect;
        newsect->target_index = N_BSS;
-       return true;
+       return TRUE;
       }
   }
 
   /* We allow more than three sections internally */
-  return true;
+  return TRUE;
 }
 
-boolean
+bfd_boolean
 NAME(aout,set_section_contents) (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -1439,13 +1439,13 @@ NAME(aout,set_section_contents) (abfd, section, location, offset, count)
   if (! abfd->output_has_begun)
     {
       if (! NAME(aout,adjust_sizes_and_vmas) (abfd, &text_size, &text_end))
-       return false;
+       return FALSE;
     }
 
   if (section == obj_bsssec (abfd))
     {
       bfd_set_error (bfd_error_no_contents);
-      return false;
+      return FALSE;
     }
 
   if (section != obj_textsec (abfd)
@@ -1455,22 +1455,22 @@ NAME(aout,set_section_contents) (abfd, section, location, offset, count)
        ("%s: can not represent section `%s' in a.out object file format",
         bfd_get_filename (abfd), bfd_get_section_name (abfd, section));
       bfd_set_error (bfd_error_nonrepresentable_section);
-      return false;
+      return FALSE;
     }
 
   if (count != 0)
     {
       if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
          || bfd_bwrite (location, count, abfd) != count)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* Read the external symbols from an a.out file.  */
 
-static boolean
+static bfd_boolean
 aout_get_external_symbols (abfd)
      bfd *abfd;
 {
@@ -1484,8 +1484,8 @@ aout_get_external_symbols (abfd)
 #ifdef USE_MMAP
       if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd),
                                 exec_hdr (abfd)->a_syms,
-                                &obj_aout_sym_window (abfd), true))
-       return false;
+                                &obj_aout_sym_window (abfd), TRUE))
+       return FALSE;
       syms = (struct external_nlist *) obj_aout_sym_window (abfd).data;
 #else
       /* We allocate using malloc to make the values easy to free
@@ -1493,14 +1493,14 @@ aout_get_external_symbols (abfd)
         possible to free them.  */
       syms = (struct external_nlist *) bfd_malloc (count * EXTERNAL_NLIST_SIZE);
       if (syms == (struct external_nlist *) NULL && count != 0)
-       return false;
+       return FALSE;
 
       if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
          || (bfd_bread (syms, exec_hdr (abfd)->a_syms, abfd)
              != exec_hdr (abfd)->a_syms))
        {
          free (syms);
-         return false;
+         return FALSE;
        }
 #endif
 
@@ -1519,25 +1519,25 @@ aout_get_external_symbols (abfd)
       if (bfd_seek (abfd, obj_str_filepos (abfd), SEEK_SET) != 0
          || (bfd_bread ((PTR) string_chars, (bfd_size_type) BYTES_IN_LONG,
                        abfd) != BYTES_IN_LONG))
-       return false;
+       return FALSE;
       stringsize = H_GET_32 (abfd, string_chars);
 
 #ifdef USE_MMAP
       if (! bfd_get_file_window (abfd, obj_str_filepos (abfd), stringsize,
-                                &obj_aout_string_window (abfd), true))
-       return false;
+                                &obj_aout_string_window (abfd), TRUE))
+       return FALSE;
       strings = (char *) obj_aout_string_window (abfd).data;
 #else
       strings = (char *) bfd_malloc (stringsize + 1);
       if (strings == NULL)
-       return false;
+       return FALSE;
 
       /* Skip space for the string count in the buffer for convenience
         when using indexes.  */
       if (bfd_bread (strings + 4, stringsize - 4, abfd) != stringsize - 4)
        {
          free (strings);
-         return false;
+         return FALSE;
        }
 #endif
 
@@ -1550,7 +1550,7 @@ aout_get_external_symbols (abfd)
       obj_aout_external_string_size (abfd) = stringsize;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Translate an a.out symbol into a BFD symbol.  The desc, other, type
@@ -1558,7 +1558,7 @@ aout_get_external_symbols (abfd)
    nlist structure.  This function is responsible for setting
    symbol->flags and symbol->section, and adjusting symbol->value.  */
 
-static boolean
+static bfd_boolean
 translate_from_native_sym_flags (abfd, cache_ptr)
      bfd *abfd;
      aout_symbol_type *cache_ptr;
@@ -1595,7 +1595,7 @@ translate_from_native_sym_flags (abfd, cache_ptr)
       cache_ptr->symbol.section = sec;
       cache_ptr->symbol.value -= sec->vma;
 
-      return true;
+      return TRUE;
     }
 
   /* Get the default visibility.  This does not apply to all types, so
@@ -1646,12 +1646,12 @@ translate_from_native_sym_flags (abfd, cache_ptr)
       break;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set the fields of SYM_POINTER according to CACHE_PTR.  */
 
-static boolean
+static bfd_boolean
 translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
      bfd *abfd;
      asymbol *cache_ptr;
@@ -1677,7 +1677,7 @@ translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
         bfd_archive_filename (abfd),
         cache_ptr->name != NULL ? cache_ptr->name : "*unknown*");
       bfd_set_error (bfd_error_nonrepresentable_section);
-      return false;
+      return FALSE;
     }
 
   if (sec->output_section != NULL)
@@ -1704,7 +1704,7 @@ translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
        ("%s: can not represent section `%s' in a.out object file format",
         bfd_archive_filename (abfd), bfd_get_section_name (abfd, sec));
       bfd_set_error (bfd_error_nonrepresentable_section);
-      return false;
+      return FALSE;
     }
 
   /* Turn the symbol from section relative to absolute again */
@@ -1752,7 +1752,7 @@ translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
 
   PUT_WORD(abfd, value, sym_pointer->e_value);
 
-  return true;
+  return TRUE;
 }
 \f
 /* Native-level interface to symbols. */
@@ -1772,7 +1772,7 @@ NAME(aout,make_empty_symbol) (abfd)
 
 /* Translate a set of internal symbols into external symbols.  */
 
-boolean
+bfd_boolean
 NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
      bfd *abfd;
      aout_symbol_type *in;
@@ -1780,7 +1780,7 @@ NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
      bfd_size_type count;
      char *str;
      bfd_size_type strsize;
-     boolean dynamic;
+     bfd_boolean dynamic;
 {
   struct external_nlist *ext_end;
 
@@ -1802,7 +1802,7 @@ NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
       else if (x < strsize)
        in->symbol.name = str + x;
       else
-       return false;
+       return FALSE;
 
       in->symbol.value = GET_SWORD (abfd,  ext->e_value);
       /* TODO: is 0 a safe value here? */
@@ -1812,20 +1812,20 @@ NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
       in->symbol.udata.p = NULL;
 
       if (! translate_from_native_sym_flags (abfd, in))
-       return false;
+       return FALSE;
 
       if (dynamic)
        in->symbol.flags |= BSF_DYNAMIC;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We read the symbols into a buffer, which is discarded when this
    function exits.  We read the strings into a buffer large enough to
    hold them all plus all the cached symbol entries. */
 
-boolean
+bfd_boolean
 NAME(aout,slurp_symbol_table) (abfd)
      bfd *abfd;
 {
@@ -1835,18 +1835,18 @@ NAME(aout,slurp_symbol_table) (abfd)
 
   /* If there's no work to be done, don't do any */
   if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL)
-    return true;
+    return TRUE;
 
   old_external_syms = obj_aout_external_syms (abfd);
 
   if (! aout_get_external_symbols (abfd))
-    return false;
+    return FALSE;
 
   cached_size = obj_aout_external_sym_count (abfd);
   cached_size *= sizeof (aout_symbol_type);
   cached = (aout_symbol_type *) bfd_zmalloc (cached_size);
   if (cached == NULL && cached_size != 0)
-    return false;
+    return FALSE;
 
   /* Convert from external symbol information to internal.  */
   if (! (NAME(aout,translate_symbol_table)
@@ -1855,10 +1855,10 @@ NAME(aout,slurp_symbol_table) (abfd)
          obj_aout_external_sym_count (abfd),
          obj_aout_external_strings (abfd),
          obj_aout_external_string_size (abfd),
-         false)))
+         FALSE)))
     {
       free (cached);
-      return false;
+      return FALSE;
     }
 
   bfd_get_symcount (abfd) = obj_aout_external_sym_count (abfd);
@@ -1880,7 +1880,7 @@ NAME(aout,slurp_symbol_table) (abfd)
       obj_aout_external_syms (abfd) = NULL;
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* We use a hash table when writing out symbols so that we only write
@@ -1893,8 +1893,8 @@ NAME(aout,slurp_symbol_table) (abfd)
    if BFD_TRADITIONAL_FORMAT is set.  */
 
 static bfd_size_type add_to_stringtab
-  PARAMS ((bfd *, struct bfd_strtab_hash *, const char *, boolean));
-static boolean emit_stringtab PARAMS ((bfd *, struct bfd_strtab_hash *));
+  PARAMS ((bfd *, struct bfd_strtab_hash *, const char *, bfd_boolean));
+static bfd_boolean emit_stringtab PARAMS ((bfd *, struct bfd_strtab_hash *));
 
 /* Get the index of a string in a strtab, adding it if it is not
    already present.  */
@@ -1904,9 +1904,9 @@ add_to_stringtab (abfd, tab, str, copy)
      bfd *abfd;
      struct bfd_strtab_hash *tab;
      const char *str;
-     boolean copy;
+     bfd_boolean copy;
 {
-  boolean hash;
+  bfd_boolean hash;
   bfd_size_type index;
 
   /* An index of 0 always means the empty string.  */
@@ -1915,9 +1915,9 @@ add_to_stringtab (abfd, tab, str, copy)
 
   /* Don't hash if BFD_TRADITIONAL_FORMAT is set, because SunOS dbx
      doesn't understand a hashed string table.  */
-  hash = true;
+  hash = TRUE;
   if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
-    hash = false;
+    hash = FALSE;
 
   index = _bfd_stringtab_add (tab, str, hash, copy);
 
@@ -1934,7 +1934,7 @@ add_to_stringtab (abfd, tab, str, copy)
 /* Write out a strtab.  ABFD is already at the right location in the
    file.  */
 
-static boolean
+static bfd_boolean
 emit_stringtab (abfd, tab)
      register bfd *abfd;
      struct bfd_strtab_hash *tab;
@@ -1945,12 +1945,12 @@ emit_stringtab (abfd, tab)
   H_PUT_32 (abfd, _bfd_stringtab_size (tab) + BYTES_IN_LONG, buffer);
   if (bfd_bwrite ((PTR) buffer, (bfd_size_type) BYTES_IN_LONG, abfd)
       != BYTES_IN_LONG)
-    return false;
+    return FALSE;
 
   return _bfd_stringtab_emit (abfd, tab);
 }
 \f
-boolean
+bfd_boolean
 NAME(aout,write_syms) (abfd)
      bfd *abfd;
 {
@@ -1960,7 +1960,7 @@ NAME(aout,write_syms) (abfd)
 
   strtab = _bfd_stringtab_init ();
   if (strtab == NULL)
-    return false;
+    return FALSE;
 
   for (count = 0; count < bfd_get_symcount (abfd); count++)
     {
@@ -1970,7 +1970,7 @@ NAME(aout,write_syms) (abfd)
 
       PUT_WORD (abfd, 0, nsp.e_unused);
 
-      indx = add_to_stringtab (abfd, strtab, g->name, false);
+      indx = add_to_stringtab (abfd, strtab, g->name, FALSE);
       if (indx == (bfd_size_type) -1)
        goto error_return;
       PUT_WORD (abfd, indx, nsp.e_strx);
@@ -1999,11 +1999,11 @@ NAME(aout,write_syms) (abfd)
 
   _bfd_stringtab_free (strtab);
 
-  return true;
+  return TRUE;
 
 error_return:
   _bfd_stringtab_free (strtab);
-  return false;
+  return FALSE;
 }
 
 \f
@@ -2190,7 +2190,7 @@ pdp11_aout_swap_reloc_in (abfd, bytes, cache_ptr, offset,
 
 /* Read and swap the relocs for a section.  */
 
-boolean
+bfd_boolean
 NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
      bfd *abfd;
      sec_ptr asect;
@@ -2206,10 +2206,10 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
   arelent *cache_ptr;
 
   if (asect->relocation)
-    return true;
+    return TRUE;
 
   if (asect->flags & SEC_CONSTRUCTOR)
-    return true;
+    return TRUE;
 
   if (asect == obj_datasec (abfd))
     reloc_size = exec_hdr(abfd)->a_drsize;
@@ -2220,22 +2220,22 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
   else
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   each_size = obj_reloc_entry_size (abfd);
 
   relocs = bfd_malloc (reloc_size);
   if (relocs == NULL && reloc_size != 0)
-    return false;
+    return FALSE;
 
   if (bfd_bread (relocs, reloc_size, abfd) != reloc_size)
     {
       free (relocs);
-      return false;
+      return FALSE;
     }
 
   count = reloc_size / each_size;
@@ -2258,7 +2258,7 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
 
   reloc_cache = (arelent *) bfd_zmalloc (count * sizeof (arelent));
   if (reloc_cache == NULL && count != 0)
-    return false;
+    return FALSE;
 
   cache_ptr = reloc_cache;
 
@@ -2291,12 +2291,12 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
   asect->relocation = reloc_cache;
   asect->reloc_count = cache_ptr - reloc_cache;
 
-  return true;
+  return TRUE;
 }
 
 /* Write out a relocation section into an object file.  */
 
-boolean
+bfd_boolean
 NAME(aout,squirt_out_relocs) (abfd, section)
      bfd *abfd;
      asection *section;
@@ -2311,13 +2311,13 @@ NAME(aout,squirt_out_relocs) (abfd, section)
      relocation information, even if there is none. */
   if ((count == 0 || section->orelocation == NULL) &&
       <writing_executable>)
-    return true;
+    return TRUE;
 #endif
 
   natsize = bfd_get_section_size_before_reloc (section);
   native = (unsigned char *) bfd_zalloc (abfd, natsize);
   if (!native)
-    return false;
+    return FALSE;
 
   generic = section->orelocation;
   if (generic != NULL)
@@ -2337,11 +2337,11 @@ NAME(aout,squirt_out_relocs) (abfd, section)
   if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize)
     {
       bfd_release (abfd, native);
-      return false;
+      return FALSE;
     }
 
   bfd_release (abfd, native);
-  return true;
+  return TRUE;
 }
 
 /* This is stupid.  This function should be a boolean predicate */
@@ -2520,7 +2520,7 @@ NAME(aout,print_symbol) (abfd, afile, symbol, how)
 long
 NAME(aout,read_minisymbols) (abfd, dynamic, minisymsp, sizep)
      bfd *abfd;
-     boolean dynamic;
+     bfd_boolean dynamic;
      PTR *minisymsp;
      unsigned int *sizep;
 {
@@ -2556,7 +2556,7 @@ NAME(aout,read_minisymbols) (abfd, dynamic, minisymsp, sizep)
 asymbol *
 NAME(aout,minisymbol_to_symbol) (abfd, dynamic, minisym, sym)
      bfd *abfd;
-     boolean dynamic;
+     bfd_boolean dynamic;
      const PTR minisym;
      asymbol *sym;
 {
@@ -2574,7 +2574,7 @@ NAME(aout,minisymbol_to_symbol) (abfd, dynamic, minisym, sym)
          (bfd_size_type) 1,
          obj_aout_external_strings (abfd),
          obj_aout_external_string_size (abfd),
-         false)))
+         FALSE)))
     return NULL;
 
   return sym;
@@ -2586,7 +2586,7 @@ NAME(aout,minisymbol_to_symbol) (abfd, dynamic, minisym, sym)
  wanted location.
 */
 
-boolean
+bfd_boolean
 NAME(aout,find_nearest_line)
      (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr)
      bfd *abfd;
@@ -2738,7 +2738,7 @@ NAME(aout,find_nearest_line)
       buf = (char *) bfd_malloc ((bfd_size_type) filelen + funclen + 3);
       adata (abfd).line_buf = buf;
       if (buf == NULL)
-       return false;
+       return FALSE;
     }
 
   if (main_file_name != NULL)
@@ -2776,13 +2776,13 @@ NAME(aout,find_nearest_line)
       *functionname_ptr = buf;
     }
 
-  return true;
+  return TRUE;
 }
 
 int
 NAME(aout,sizeof_headers) (abfd, execable)
      bfd *abfd;
-     boolean execable ATTRIBUTE_UNUSED;
+     bfd_boolean execable ATTRIBUTE_UNUSED;
 {
   return adata(abfd).exec_bytes_size;
 }
@@ -2790,14 +2790,14 @@ NAME(aout,sizeof_headers) (abfd, execable)
 /* Free all information we have cached for this BFD.  We can always
    read it again later if we need it.  */
 
-boolean
+bfd_boolean
 NAME(aout,bfd_free_cached_info) (abfd)
      bfd *abfd;
 {
   asection *o;
 
   if (bfd_get_format (abfd) != bfd_object)
-    return true;
+    return TRUE;
 
 #define BFCI_FREE(x) if (x != NULL) { free (x); x = NULL; }
   BFCI_FREE (obj_aout_symbols (abfd));
@@ -2814,19 +2814,19 @@ NAME(aout,bfd_free_cached_info) (abfd)
     BFCI_FREE (o->relocation);
 #undef BFCI_FREE
 
-  return true;
+  return TRUE;
 }
 \f
 /* a.out link code.  */
 
-static boolean aout_link_add_object_symbols
+static bfd_boolean aout_link_add_object_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean aout_link_check_archive_element
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *));
-static boolean aout_link_free_symbols PARAMS ((bfd *));
-static boolean aout_link_check_ar_symbols
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded));
-static boolean aout_link_add_symbols
+static bfd_boolean aout_link_check_archive_element
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean aout_link_free_symbols PARAMS ((bfd *));
+static bfd_boolean aout_link_check_ar_symbols
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded));
+static bfd_boolean aout_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Routine to create an entry in an a.out link hash table.  */
@@ -2854,7 +2854,7 @@ NAME(aout,link_hash_newfunc) (entry, table, string)
   if (ret)
     {
       /* Set local fields.  */
-      ret->written = false;
+      ret->written = FALSE;
       ret->indx = -1;
     }
 
@@ -2863,7 +2863,7 @@ NAME(aout,link_hash_newfunc) (entry, table, string)
 
 /* Initialize an a.out link hash table.  */
 
-boolean
+bfd_boolean
 NAME(aout,link_hash_table_init) (table, abfd, newfunc)
      struct aout_link_hash_table *table;
      bfd *abfd;
@@ -2898,7 +2898,7 @@ NAME(aout,link_hash_table_create) (abfd)
 /* Given an a.out BFD, add symbols to the global hash table as
    appropriate.  */
 
-boolean
+bfd_boolean
 NAME(aout,link_add_symbols) (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2912,27 +2912,27 @@ NAME(aout,link_add_symbols) (abfd, info)
        (abfd, info, aout_link_check_archive_element);
     default:
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 }
 
 /* Add symbols from an a.out object file.  */
 
-static boolean
+static bfd_boolean
 aout_link_add_object_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   if (! aout_get_external_symbols (abfd))
-    return false;
+    return FALSE;
   if (! aout_link_add_symbols (abfd, info))
-    return false;
+    return FALSE;
   if (! info->keep_memory)
     {
       if (! aout_link_free_symbols (abfd))
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Check a single archive element to see if we need to include it in
@@ -2940,36 +2940,36 @@ aout_link_add_object_symbols (abfd, info)
    needed in the link or not.  This is called from
    _bfd_generic_link_add_archive_symbols.  */
 
-static boolean
+static bfd_boolean
 aout_link_check_archive_element (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
   if (! aout_get_external_symbols (abfd))
-    return false;
+    return FALSE;
 
   if (! aout_link_check_ar_symbols (abfd, info, pneeded))
-    return false;
+    return FALSE;
 
   if (*pneeded)
     {
       if (! aout_link_add_symbols (abfd, info))
-       return false;
+       return FALSE;
     }
 
   if (! info->keep_memory || ! *pneeded)
     {
       if (! aout_link_free_symbols (abfd))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Free up the internal symbols read from an a.out file.  */
 
-static boolean
+static bfd_boolean
 aout_link_free_symbols (abfd)
      bfd *abfd;
 {
@@ -2991,7 +2991,7 @@ aout_link_free_symbols (abfd)
 #endif
       obj_aout_external_strings (abfd) = (char *) NULL;
     }
-  return true;
+  return TRUE;
 }
 
 /* Look through the internal symbols to see if this object file should
@@ -3001,17 +3001,17 @@ aout_link_free_symbols (abfd)
    known symbol but we do not include the object file in the link
    (unless there is some other reason to include it).  */
 
-static boolean
+static bfd_boolean
 aout_link_check_ar_symbols (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
   register struct external_nlist *p;
   struct external_nlist *pend;
   char *strings;
 
-  *pneeded = false;
+  *pneeded = FALSE;
 
   /* Look through all the symbols.  */
   p = obj_aout_external_syms (abfd);
@@ -3031,7 +3031,7 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
        continue;
 
       name = strings + GET_WORD (abfd, p->e_strx);
-      h = bfd_link_hash_lookup (info->hash, name, false, false, true);
+      h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
 
       /* We are only interested in symbols that are currently
         undefined or common.  */
@@ -3061,9 +3061,9 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
             seems a bit crazy to me, and I haven't implemented it.
             However, it might be correct.  */
          if (! (*info->callbacks->add_archive_element) (info, abfd, name))
-           return false;
-         *pneeded = true;
-         return true;
+           return FALSE;
+         *pneeded = TRUE;
+         return TRUE;
        }
 
       if (type == (N_UNDF | N_EXT))
@@ -3090,9 +3090,9 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
                      if (! (*info->callbacks->add_archive_element) (info,
                                                                     abfd,
                                                                     name))
-                       return false;
-                     *pneeded = true;
-                     return true;
+                       return FALSE;
+                     *pneeded = TRUE;
+                     return TRUE;
                    }
                  /* Turn the current link symbol into a common
                     symbol.  It is already on the undefs list.  */
@@ -3101,7 +3101,7 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
                              bfd_hash_allocate (&info->hash->table,
                                  sizeof (struct bfd_link_hash_common_entry)));
                  if (h->u.c.p == NULL)
-                   return false;
+                   return FALSE;
 
                  h->u.c.size = value;
 
@@ -3129,25 +3129,24 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
     }
 
   /* We do not need this object file.  */
-  return true;
+  return TRUE;
 }
 
 /* Add all symbols from an object file to the hash table.  */
 
-static boolean
+static bfd_boolean
 aout_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
-  boolean (*add_one_symbol) PARAMS ((struct bfd_link_info *, bfd *,
-                                    const char *, flagword, asection *,
-                                    bfd_vma, const char *, boolean,
-                                    boolean,
-                                    struct bfd_link_hash_entry **));
+  bfd_boolean (*add_one_symbol)
+    PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *,
+            bfd_vma, const char *, bfd_boolean, bfd_boolean,
+            struct bfd_link_hash_entry **));
   struct external_nlist *syms;
   bfd_size_type sym_count;
   char *strings;
-  boolean copy;
+  bfd_boolean copy;
   struct aout_link_hash_entry **sym_hash;
   register struct external_nlist *p;
   struct external_nlist *pend;
@@ -3156,15 +3155,15 @@ aout_link_add_symbols (abfd, info)
   sym_count = obj_aout_external_sym_count (abfd);
   strings = obj_aout_external_strings (abfd);
   if (info->keep_memory)
-    copy = false;
+    copy = FALSE;
   else
-    copy = true;
+    copy = TRUE;
 
   if (aout_backend_info (abfd)->add_dynamic_symbols != NULL)
     {
       if (! ((*aout_backend_info (abfd)->add_dynamic_symbols)
             (abfd, info, &syms, &sym_count, &strings)))
-       return false;
+       return FALSE;
     }
 
   /* We keep a list of the linker hash table entries that correspond
@@ -3175,7 +3174,7 @@ aout_link_add_symbols (abfd, info)
              bfd_alloc (abfd,
                         sym_count * sizeof (struct aout_link_hash_entry *)));
   if (sym_hash == NULL && sym_count != 0)
-    return false;
+    return FALSE;
   obj_aout_sym_hashes (abfd) = sym_hash;
 
   add_one_symbol = aout_backend_info (abfd)->add_one_symbol;
@@ -3251,9 +3250,9 @@ aout_link_add_symbols (abfd, info)
        }
 
       if (! ((*add_one_symbol)
-            (info, abfd, name, flags, section, value, string, copy, false,
+            (info, abfd, name, flags, section, value, string, copy, FALSE,
              (struct bfd_link_hash_entry **) sym_hash)))
-       return false;
+       return FALSE;
 
       /* Restrict the maximum alignment of a common symbol based on
         the architecture, since a.out has no way to represent
@@ -3276,7 +3275,7 @@ aout_link_add_symbols (abfd, info)
        }
     }
 
-  return true;
+  return TRUE;
 }
 \f
 /* A hash table used for header files with N_BINCL entries.  */
@@ -3339,22 +3338,22 @@ struct aout_final_link_info
 
 static struct bfd_hash_entry *aout_link_includes_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static boolean aout_link_input_bfd
+static bfd_boolean aout_link_input_bfd
   PARAMS ((struct aout_final_link_info *, bfd *input_bfd));
-static boolean aout_link_write_symbols
+static bfd_boolean aout_link_write_symbols
   PARAMS ((struct aout_final_link_info *, bfd *input_bfd));
-static boolean aout_link_write_other_symbol
+static bfd_boolean aout_link_write_other_symbol
   PARAMS ((struct aout_link_hash_entry *, PTR));
-static boolean aout_link_input_section
+static bfd_boolean aout_link_input_section
   PARAMS ((struct aout_final_link_info *, bfd *input_bfd,
           asection *input_section, file_ptr *reloff_ptr,
           bfd_size_type rel_size));
 static INLINE asection *aout_reloc_type_to_section
   PARAMS ((bfd *, int));
-static boolean aout_link_reloc_link_order
+static bfd_boolean aout_link_reloc_link_order
   PARAMS ((struct aout_final_link_info *, asection *,
           struct bfd_link_order *));
-static boolean pdp11_aout_link_input_section
+static bfd_boolean pdp11_aout_link_input_section
   PARAMS ((struct aout_final_link_info *finfo,
           bfd *input_bfd,
           asection *input_section,
@@ -3401,14 +3400,14 @@ aout_link_includes_newfunc (entry, table, string)
    of bfd_link_order structures which list all the input sections for
    the output section.  */
 
-boolean
+bfd_boolean
 NAME(aout,final_link) (abfd, info, callback)
      bfd *abfd;
      struct bfd_link_info *info;
      void (*callback) PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *));
 {
   struct aout_final_link_info aout_info;
-  boolean includes_hash_initialized = false;
+  bfd_boolean includes_hash_initialized = FALSE;
   register bfd *sub;
   bfd_size_type trsize, drsize;
   bfd_size_type max_contents_size;
@@ -3418,7 +3417,7 @@ NAME(aout,final_link) (abfd, info, callback)
   file_ptr text_end;
   register struct bfd_link_order *p;
   asection *o;
-  boolean have_link_order_relocs;
+  bfd_boolean have_link_order_relocs;
 
   if (info->shared)
     abfd->flags |= DYNAMIC;
@@ -3434,7 +3433,7 @@ NAME(aout,final_link) (abfd, info, callback)
                               aout_link_includes_newfunc,
                               251))
     goto error_return;
-  includes_hash_initialized = true;
+  includes_hash_initialized = TRUE;
 
   /* Figure out the largest section size.  Also, if generating
      relocateable output, count the relocs.  */
@@ -3557,7 +3556,7 @@ NAME(aout,final_link) (abfd, info, callback)
     struct aout_link_hash_entry *h;
 
     h = aout_link_hash_lookup (aout_hash_table (info), "__DYNAMIC",
-                              false, false, false);
+                              FALSE, FALSE, FALSE);
     if (h != NULL)
       aout_link_write_other_symbol (h, &aout_info);
   }
@@ -3584,7 +3583,7 @@ NAME(aout,final_link) (abfd, info, callback)
      We use the output_has_begun field of the input BFDs to see
      whether we have already handled it.  */
   for (sub = info->input_bfds; sub != (bfd *) NULL; sub = sub->link_next)
-    sub->output_has_begun = false;
+    sub->output_has_begun = FALSE;
 
   /* Mark all sections which are to be included in the link.  This
      will normally be every section.  We need to do this so that we
@@ -3595,11 +3594,11 @@ NAME(aout,final_link) (abfd, info, callback)
       for (p = o->link_order_head; p != NULL; p = p->next)
        {
          if (p->type == bfd_indirect_link_order)
-           p->u.indirect.section->linker_mark = true;
+           p->u.indirect.section->linker_mark = TRUE;
        }
     }
 
-  have_link_order_relocs = false;
+  have_link_order_relocs = FALSE;
   for (o = abfd->sections; o != (asection *) NULL; o = o->next)
     {
       for (p = o->link_order_head;
@@ -3617,14 +3616,14 @@ NAME(aout,final_link) (abfd, info, callback)
                {
                  if (! aout_link_input_bfd (&aout_info, input_bfd))
                    goto error_return;
-                 input_bfd->output_has_begun = true;
+                 input_bfd->output_has_begun = TRUE;
                }
            }
          else if (p->type == bfd_section_reloc_link_order
                   || p->type == bfd_symbol_reloc_link_order)
            {
              /* These are handled below.  */
-             have_link_order_relocs = true;
+             have_link_order_relocs = TRUE;
            }
          else
            {
@@ -3684,7 +3683,7 @@ NAME(aout,final_link) (abfd, info, callback)
   if (includes_hash_initialized)
     {
       bfd_hash_table_free (&aout_info.includes.root);
-      includes_hash_initialized = false;
+      includes_hash_initialized = FALSE;
     }
 
   /* Finish up any dynamic linking we may be doing.  */
@@ -3725,7 +3724,7 @@ NAME(aout,final_link) (abfd, info, callback)
        goto error_return;
     }
 
-  return true;
+  return TRUE;
 
  error_return:
   if (aout_info.contents != NULL)
@@ -3738,12 +3737,12 @@ NAME(aout,final_link) (abfd, info, callback)
     free (aout_info.output_syms);
   if (includes_hash_initialized)
     bfd_hash_table_free (&aout_info.includes.root);
-  return false;
+  return FALSE;
 }
 
 /* Link an a.out input BFD into the output file.  */
 
-static boolean
+static bfd_boolean
 aout_link_input_bfd (finfo, input_bfd)
      struct aout_final_link_info *finfo;
      bfd *input_bfd;
@@ -3761,16 +3760,16 @@ aout_link_input_bfd (finfo, input_bfd)
     }
 
   /* Get the symbols.  We probably have them already, unless
-     finfo->info->keep_memory is false.  */
+     finfo->info->keep_memory is FALSE.  */
   if (! aout_get_external_symbols (input_bfd))
-    return false;
+    return FALSE;
 
   sym_count = obj_aout_external_sym_count (input_bfd);
 
   /* Write out the symbols and get a map of the new indices.  The map
      is placed into finfo->symbol_map.  */
   if (! aout_link_write_symbols (finfo, input_bfd))
-    return false;
+    return FALSE;
 
   /* Relocate and write out the sections.  These functions use the
      symbol map created by aout_link_write_symbols.  The linker_mark
@@ -3782,7 +3781,7 @@ aout_link_input_bfd (finfo, input_bfd)
                                     obj_textsec (input_bfd),
                                     &finfo->treloff,
                                     exec_hdr (input_bfd)->a_trsize))
-       return false;
+       return FALSE;
     }
   if (obj_datasec (input_bfd)->linker_mark)
     {
@@ -3790,7 +3789,7 @@ aout_link_input_bfd (finfo, input_bfd)
                                     obj_datasec (input_bfd),
                                     &finfo->dreloff,
                                     exec_hdr (input_bfd)->a_drsize))
-       return false;
+       return FALSE;
     }
 
   /* If we are not keeping memory, we don't need the symbols any
@@ -3799,16 +3798,16 @@ aout_link_input_bfd (finfo, input_bfd)
   if (! finfo->info->keep_memory)
     {
       if (! aout_link_free_symbols (input_bfd))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust and write out the symbols for an a.out file.  Set the new
    symbol indices into a symbol_map.  */
 
-static boolean
+static bfd_boolean
 aout_link_write_symbols (finfo, input_bfd)
      struct aout_final_link_info *finfo;
      bfd *input_bfd;
@@ -3824,8 +3823,8 @@ aout_link_write_symbols (finfo, input_bfd)
   struct external_nlist *sym_end;
   struct aout_link_hash_entry **sym_hash;
   int *symbol_map;
-  boolean pass;
-  boolean skip_next;
+  bfd_boolean pass;
+  bfd_boolean skip_next;
 
   output_bfd = finfo->output_bfd;
   sym_count = obj_aout_external_sym_count (input_bfd);
@@ -3839,14 +3838,14 @@ aout_link_write_symbols (finfo, input_bfd)
   if (strip != strip_all
       && (strip != strip_some
          || bfd_hash_lookup (finfo->info->keep_hash, input_bfd->filename,
-                             false, false) != NULL)
+                             FALSE, FALSE) != NULL)
       && discard != discard_all)
     {
       H_PUT_8 (output_bfd, N_TEXT, outsym->e_type);
       strtab_index = add_to_stringtab (output_bfd, finfo->strtab,
-                                      input_bfd->filename, false);
+                                      input_bfd->filename, FALSE);
       if (strtab_index == (bfd_size_type) -1)
-       return false;
+       return FALSE;
       PUT_WORD (output_bfd, strtab_index, outsym->e_strx);
       PUT_WORD (output_bfd,
                (bfd_get_section_vma (output_bfd,
@@ -3857,8 +3856,8 @@ aout_link_write_symbols (finfo, input_bfd)
       ++outsym;
     }
 
-  pass = false;
-  skip_next = false;
+  pass = FALSE;
+  skip_next = FALSE;
   sym = obj_aout_external_syms (input_bfd);
   sym_end = sym + sym_count;
   sym_hash = obj_aout_sym_hashes (input_bfd);
@@ -3869,10 +3868,10 @@ aout_link_write_symbols (finfo, input_bfd)
       const char *name;
       int type;
       struct aout_link_hash_entry *h;
-      boolean skip;
+      bfd_boolean skip;
       asection *symsec;
       bfd_vma val = 0;
-      boolean copy;
+      bfd_boolean copy;
 
       /* We set *symbol_map to 0 above for all symbols.  If it has
          already been set to -1 for this symbol, it means that we are
@@ -3896,14 +3895,14 @@ aout_link_write_symbols (finfo, input_bfd)
          /* Pass this symbol through.  It is the target of an
             indirect or warning symbol.  */
          val = GET_WORD (input_bfd, sym->e_value);
-         pass = false;
+         pass = FALSE;
        }
       else if (skip_next)
        {
          /* Skip this symbol, which is the target of an indirect
             symbol that we have changed to no longer be an indirect
             symbol.  */
-         skip_next = false;
+         skip_next = FALSE;
          continue;
        }
       else
@@ -3945,34 +3944,34 @@ aout_link_write_symbols (finfo, input_bfd)
            {
              if ((type & N_TYPE) == N_INDR
                  || type == N_WARNING)
-               skip_next = true;
+               skip_next = TRUE;
              *symbol_map = h->indx;
              continue;
            }
 
          /* See if we are stripping this symbol.  */
-         skip = false;
+         skip = FALSE;
          switch (strip)
            {
            case strip_none:
              break;
            case strip_debugger:
              if ((type & N_STAB) != 0)
-               skip = true;
+               skip = TRUE;
              break;
            case strip_some:
-             if (bfd_hash_lookup (finfo->info->keep_hash, name, false, false)
+             if (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, FALSE)
                  == NULL)
-               skip = true;
+               skip = TRUE;
              break;
            case strip_all:
-             skip = true;
+             skip = TRUE;
              break;
            }
          if (skip)
            {
              if (h != (struct aout_link_hash_entry *) NULL)
-               h->written = true;
+               h->written = TRUE;
              continue;
            }
 
@@ -4001,7 +4000,7 @@ aout_link_write_symbols (finfo, input_bfd)
                 the indirect symbol was defined, we output it with
                 the correct definition so the debugger will
                 understand it.  */
-             pass = true;
+             pass = TRUE;
              val = GET_WORD (input_bfd, sym->e_value);
              symsec = NULL;
            }
@@ -4017,7 +4016,7 @@ aout_link_write_symbols (finfo, input_bfd)
                 a case we do not want to output the next symbol,
                 which is the target of the indirection.  */
              if ((type & N_TYPE) == N_INDR)
-               skip_next = true;
+               skip_next = TRUE;
 
              symsec = NULL;
 
@@ -4109,7 +4108,7 @@ aout_link_write_symbols (finfo, input_bfd)
             it is a local symbol see if we should discard it.  */
          if (h != (struct aout_link_hash_entry *) NULL)
            {
-             h->written = true;
+             h->written = TRUE;
              h->indx = obj_aout_external_sym_count (output_bfd);
            }
          else if ((type & N_TYPE) != N_SETT
@@ -4125,15 +4124,15 @@ aout_link_write_symbols (finfo, input_bfd)
                case discard_l:
                  if ((type & N_STAB) == 0
                      && bfd_is_local_label_name (input_bfd, name))
-                   skip = true;
+                   skip = TRUE;
                  break;
                case discard_all:
-                 skip = true;
+                 skip = TRUE;
                  break;
                }
              if (skip)
                {
-                 pass = false;
+                 pass = FALSE;
                  continue;
                }
            }
@@ -4191,9 +4190,9 @@ aout_link_write_symbols (finfo, input_bfd)
                  symbol.  */
              copy = ! finfo->info->keep_memory;
              incl_entry = aout_link_includes_lookup (&finfo->includes,
-                                                     name, true, copy);
+                                                     name, TRUE, copy);
              if (incl_entry == NULL)
-               return false;
+               return FALSE;
              for (t = incl_entry->totals; t != NULL; t = t->next)
                if (t->total == val)
                  break;
@@ -4205,7 +4204,7 @@ aout_link_write_symbols (finfo, input_bfd)
                       bfd_hash_allocate (&finfo->includes.root,
                                          sizeof *t));
                  if (t == NULL)
-                   return false;
+                   return FALSE;
                  t->total = val;
                  t->next = incl_entry->totals;
                  incl_entry->totals = t;
@@ -4248,7 +4247,7 @@ aout_link_write_symbols (finfo, input_bfd)
       /* Copy this symbol into the list of symbols we are going to
         write out.  */
       H_PUT_8 (output_bfd, type, outsym->e_type);
-      copy = false;
+      copy = FALSE;
       if (! finfo->info->keep_memory)
        {
          /* name points into a string table which we are going to
@@ -4257,12 +4256,12 @@ aout_link_write_symbols (finfo, input_bfd)
          if (h != (struct aout_link_hash_entry *) NULL)
            name = h->root.root.string;
          else
-           copy = true;
+           copy = TRUE;
        }
       strtab_index = add_to_stringtab (output_bfd, finfo->strtab,
                                       name, copy);
       if (strtab_index == (bfd_size_type) -1)
-       return false;
+       return FALSE;
       PUT_WORD (output_bfd, strtab_index, outsym->e_strx);
       PUT_WORD (output_bfd, val, outsym->e_value);
       *symbol_map = obj_aout_external_sym_count (output_bfd);
@@ -4276,21 +4275,21 @@ aout_link_write_symbols (finfo, input_bfd)
       bfd_size_type size;
 
       if (bfd_seek (output_bfd, finfo->symoff, SEEK_SET) != 0)
-       return false;
+       return FALSE;
       size = outsym - finfo->output_syms;
       size *= EXTERNAL_NLIST_SIZE;
       if (bfd_bwrite ((PTR) finfo->output_syms, size, output_bfd) != size)
-       return false;
+       return FALSE;
       finfo->symoff += size;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Write out a symbol that was not associated with an a.out input
    object.  */
 
-static boolean
+static bfd_boolean
 aout_link_write_other_symbol (h, data)
      struct aout_link_hash_entry *h;
      PTR data;
@@ -4307,7 +4306,7 @@ aout_link_write_other_symbol (h, data)
     {
       h = (struct aout_link_hash_entry *) h->root.u.i.link;
       if (h->root.type == bfd_link_hash_new)
-       return true;
+       return TRUE;
     }
 
   output_bfd = finfo->output_bfd;
@@ -4323,28 +4322,28 @@ aout_link_write_other_symbol (h, data)
     }
 
   if (h->written)
-    return true;
+    return TRUE;
 
-  h->written = true;
+  h->written = TRUE;
 
   /* An indx of -2 means the symbol must be written.  */
   if (h->indx != -2
       && (finfo->info->strip == strip_all
          || (finfo->info->strip == strip_some
              && bfd_hash_lookup (finfo->info->keep_hash, h->root.root.string,
-                                 false, false) == NULL)))
-    return true;
+                                 FALSE, FALSE) == NULL)))
+    return TRUE;
 
   switch (h->root.type)
     {
     default:
       abort ();
       /* Avoid variable not initialized warnings.  */
-      return true;
+      return TRUE;
     case bfd_link_hash_new:
       /* This can happen for set symbols when sets are not being
          built.  */
-      return true;
+      return TRUE;
     case bfd_link_hash_undefined:
       type = N_UNDF | N_EXT;
       val = 0;
@@ -4382,12 +4381,12 @@ aout_link_write_other_symbol (h, data)
     case bfd_link_hash_warning:
       /* FIXME: Ignore these for now.  The circumstances under which
         they should be written out are not clear to me.  */
-      return true;
+      return TRUE;
     }
 
   H_PUT_8 (output_bfd, type, outsym.e_type);
   indx = add_to_stringtab (output_bfd, finfo->strtab, h->root.root.string,
-                          false);
+                          FALSE);
   if (indx == (bfd_size_type) -1)
     {
       /* FIXME: No way to handle errors.  */
@@ -4408,12 +4407,12 @@ aout_link_write_other_symbol (h, data)
   h->indx = obj_aout_external_sym_count (output_bfd);
   ++obj_aout_external_sym_count (output_bfd);
 
-  return true;
+  return TRUE;
 }
 
 /* Link an a.out section into the output file.  */
 
-static boolean
+static bfd_boolean
 aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
                         rel_size)
      struct aout_final_link_info *finfo;
@@ -4430,7 +4429,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
   if (! bfd_get_section_contents (input_bfd, input_section,
                                  (PTR) finfo->contents,
                                  (file_ptr) 0, input_size))
-    return false;
+    return FALSE;
 
   /* Read in the relocs if we haven't already done it.  */
   if (aout_section_data (input_section) != NULL
@@ -4443,7 +4442,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
        {
          if (bfd_seek (input_bfd, input_section->rel_filepos, SEEK_SET) != 0
              || bfd_bread (relocs, rel_size, input_bfd) != rel_size)
-           return false;
+           return FALSE;
        }
     }
 
@@ -4451,7 +4450,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
   if (! pdp11_aout_link_input_section (finfo, input_bfd, input_section,
                                       (struct pdp11_aout_reloc_external *) relocs,
                                       rel_size, finfo->contents))
-    return false;
+    return FALSE;
 
   /* Write out the section contents.  */
   if (! bfd_set_section_contents (finfo->output_bfd,
@@ -4459,16 +4458,16 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
                                  (PTR) finfo->contents,
                                  (file_ptr) input_section->output_offset,
                                  input_size))
-    return false;
+    return FALSE;
 
   /* If we are producing relocateable output, the relocs were
      modified, and we now write them out.  */
   if (finfo->info->relocateable && rel_size > 0)
     {
       if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0)
-       return false;
+       return FALSE;
       if (bfd_bwrite (relocs, rel_size, finfo->output_bfd) != rel_size)
-       return false;
+       return FALSE;
       *reloff_ptr += rel_size;
 
       /* Assert that the relocs have not run into the symbols, and
@@ -4480,7 +4479,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
                          <= obj_datasec (finfo->output_bfd)->rel_filepos)));
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Get the section corresponding to a reloc index.  */
@@ -4507,7 +4506,7 @@ aout_reloc_type_to_section (abfd, type)
     }
 }
 
-static boolean
+static bfd_boolean
 pdp11_aout_link_input_section (finfo, input_bfd, input_section, relocs,
                               rel_size, contents)
      struct aout_final_link_info *finfo;
@@ -4517,13 +4516,12 @@ pdp11_aout_link_input_section (finfo, input_bfd, input_section, relocs,
      bfd_size_type rel_size;
      bfd_byte *contents;
 {
-  boolean (*check_dynamic_reloc) PARAMS ((struct bfd_link_info *,
-                                         bfd *, asection *,
-                                         struct aout_link_hash_entry *,
-                                         PTR, bfd_byte *, boolean *,
-                                         bfd_vma *));
+  bfd_boolean (*check_dynamic_reloc)
+    PARAMS ((struct bfd_link_info *, bfd *, asection *,
+            struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
+            bfd_vma *));
   bfd *output_bfd;
-  boolean relocateable;
+  bfd_boolean relocateable;
   struct external_nlist *syms;
   char *strings;
   struct aout_link_hash_entry **sym_hashes;
@@ -4631,10 +4629,10 @@ pdp11_aout_link_input_section (finfo, input_bfd, input_section, relocs,
                          if (h->indx < 0)
                            {
                              h->indx = -2;
-                             h->written = false;
+                             h->written = FALSE;
                              if (! aout_link_write_other_symbol (h,
                                                                  (PTR) finfo))
-                               return false;
+                               return FALSE;
                            }
                          r_index = h->indx;
                        }
@@ -4647,7 +4645,7 @@ pdp11_aout_link_input_section (finfo, input_bfd, input_section, relocs,
                          if (! ((*finfo->info->callbacks->unattached_reloc)
                                 (finfo->info, name, input_bfd, input_section,
                                  r_addr)))
-                           return false;
+                           return FALSE;
                          r_index = 0;
                        }
                    }
@@ -4703,11 +4701,11 @@ fprintf (stderr, "TODO: change the address of the relocation\n");
        }
       else
        {
-         boolean hundef;
+         bfd_boolean hundef;
 
          /* We are generating an executable, and must do a full
             relocation.  */
-         hundef = false;
+         hundef = FALSE;
          if (r_extern)
            {
              h = sym_hashes[r_index];
@@ -4725,7 +4723,7 @@ fprintf (stderr, "TODO: change the address of the relocation\n");
                relocation = 0;
              else
                {
-                 hundef = true;
+                 hundef = TRUE;
                  relocation = 0;
                }
            }
@@ -4743,12 +4741,12 @@ fprintf (stderr, "TODO: change the address of the relocation\n");
 
          if (check_dynamic_reloc != NULL)
            {
-             boolean skip;
+             bfd_boolean skip;
 
              if (! ((*check_dynamic_reloc)
                     (finfo->info, input_bfd, input_section, h,
                      (PTR) rel, contents, &skip, &relocation)))
-               return false;
+               return FALSE;
              if (skip)
                continue;
            }
@@ -4766,8 +4764,8 @@ fprintf (stderr, "TODO: change the address of the relocation\n");
                name = strings + GET_WORD (input_bfd, syms[r_index].e_strx);
              if (! ((*finfo->info->callbacks->undefined_symbol)
                     (finfo->info, name, input_bfd, input_section,
-                     r_addr, true)))
-               return false;
+                     r_addr, TRUE)))
+               return FALSE;
            }
 
          r = MY_final_link_relocate (howto,
@@ -4802,19 +4800,19 @@ fprintf (stderr, "TODO: change the address of the relocation\n");
                if (! ((*finfo->info->callbacks->reloc_overflow)
                       (finfo->info, name, howto->name,
                        (bfd_vma) 0, input_bfd, input_section, r_addr)))
-                 return false;
+                 return FALSE;
              }
              break;
            }
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Handle a link order which is supposed to generate a reloc.  */
 
-static boolean
+static bfd_boolean
 aout_link_reloc_link_order (finfo, o, p)
      struct aout_final_link_info *finfo;
      asection *o;
@@ -4850,7 +4848,7 @@ aout_link_reloc_link_order (finfo, o, p)
       r_extern = 1;
       h = ((struct aout_link_hash_entry *)
           bfd_wrapped_link_hash_lookup (finfo->output_bfd, finfo->info,
-                                        pr->u.name, false, false, true));
+                                        pr->u.name, FALSE, FALSE, TRUE));
       if (h != (struct aout_link_hash_entry *) NULL
          && h->indx >= 0)
        r_index = h->indx;
@@ -4861,9 +4859,9 @@ aout_link_reloc_link_order (finfo, o, p)
             here.  I don't think that will ever matter for a global
             symbol.  */
          h->indx = -2;
-         h->written = false;
+         h->written = FALSE;
          if (! aout_link_write_other_symbol (h, (PTR) finfo))
-           return false;
+           return FALSE;
          r_index = h->indx;
        }
       else
@@ -4871,7 +4869,7 @@ aout_link_reloc_link_order (finfo, o, p)
          if (! ((*finfo->info->callbacks->unattached_reloc)
                 (finfo->info, pr->u.name, (bfd *) NULL,
                  (asection *) NULL, (bfd_vma) 0)))
-           return false;
+           return FALSE;
          r_index = 0;
        }
     }
@@ -4880,7 +4878,7 @@ aout_link_reloc_link_order (finfo, o, p)
   if (howto == 0)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   if (o == obj_textsec (finfo->output_bfd))
@@ -4950,12 +4948,12 @@ aout_link_reloc_link_order (finfo, o, p)
       bfd_size_type size;
       bfd_reloc_status_type r;
       bfd_byte *buf;
-      boolean ok;
+      bfd_boolean ok;
 
       size = bfd_get_reloc_size (howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
       if (buf == (bfd_byte *) NULL)
-       return false;
+       return FALSE;
       r = MY_relocate_contents (howto, finfo->output_bfd,
                                pr->addend, buf);
       switch (r)
@@ -4976,7 +4974,7 @@ aout_link_reloc_link_order (finfo, o, p)
                  (asection *) NULL, (bfd_vma) 0)))
            {
              free (buf);
-             return false;
+             return FALSE;
            }
          break;
        }
@@ -4986,13 +4984,13 @@ aout_link_reloc_link_order (finfo, o, p)
                                     size);
       free (buf);
       if (! ok)
-       return false;
+       return FALSE;
     }
 
   rel_size = obj_reloc_entry_size (finfo->output_bfd);
   if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0
       || bfd_bwrite (rel_ptr, rel_size, finfo->output_bfd) != rel_size)
-    return false;
+    return FALSE;
 
   *reloff_ptr += rel_size;
 
@@ -5003,7 +5001,7 @@ aout_link_reloc_link_order (finfo, o, p)
                  || (*reloff_ptr
                      <= obj_datasec (finfo->output_bfd)->rel_filepos)));
 
-  return true;
+  return TRUE;
 }
 /* end of modified aoutx.h */
 
index dbb478940b5216d5cad21103fe0a3187a9c568c3..8b5d1c7e1015e0d50ab86051f1ef2b09f4017b56 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for ARM PECOFF files.
-   Copyright 1995, 1996, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1995, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #endif
 
 #define COFF_WITH_PE
-#define PCRELOFFSET          true
+#define PCRELOFFSET          TRUE
 #define COFF_LONG_SECTION_NAMES
 
 #ifndef bfd_arm_allocate_interworking_sections
index 9c75f95e9fbbd239b98c8966eadb84a0d673ace6..a912cffd99860e1aa0f11848a64c7989d24e741a 100644 (file)
@@ -23,7 +23,7 @@
 #define TARGET_SYM i386pe_vec
 #define TARGET_NAME "pe-i386"
 #define COFF_WITH_PE
-#define PCRELOFFSET true
+#define PCRELOFFSET TRUE
 #define TARGET_UNDERSCORE '_'
 #define COFF_LONG_SECTION_NAMES
 #define COFF_LONG_FILENAMES
index 8119f815895ef5f794f30c17510afa62c59872c6..1fcb0dd42cd9e4e71fc38fe605c9de307965d6c9 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for MCore PECOFF files.
-   Copyright 1999 Free Software Foundation, Inc.
+   Copyright 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #endif
 
 #define COFF_WITH_PE
-#define PCRELOFFSET          true
+#define PCRELOFFSET          TRUE
 #define COFF_LONG_SECTION_NAMES
 
 #define MCORE_PE
index c78726d1c3b398365c7d4db8f1a7accdf3e917b2..c9a4d5841d954ab57271f7993464a0b6dbcd2b7e 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD back-end for MIPS PE COFF files.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001 Free Software Foundation, Inc.
+   2000, 2001, 2002 Free Software Foundation, Inc.
    Modified from coff-i386.c by DJ Delorie, dj@cygnus.com
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #define COFF_WITH_PE
 #define COFF_LONG_SECTION_NAMES
-#define PCRELOFFSET true
+#define PCRELOFFSET TRUE
 
 #include "bfd.h"
 #include "sysdep.h"
@@ -40,26 +40,27 @@ static bfd_reloc_status_type coff_mips_reloc
 static reloc_howto_type *coff_mips_rtype_to_howto
   PARAMS ((bfd *, asection *, struct internal_reloc *,
           struct coff_link_hash_entry *, struct internal_syment *,
-
           bfd_vma *));
 #if 0
-static void mips_ecoff_swap_reloc_in PARAMS ((bfd *, PTR,
-                                             struct internal_reloc *));
-static void mips_ecoff_swap_reloc_out PARAMS ((bfd *,
-                                              const struct internal_reloc *,
-                                              PTR));
-static void mips_adjust_reloc_in PARAMS ((bfd *,
-                                         const struct internal_reloc *,
-                                         arelent *));
-static void mips_adjust_reloc_out PARAMS ((bfd *, const arelent *,
-                                          struct internal_reloc *));
+static void mips_ecoff_swap_reloc_in
+  PARAMS ((bfd *, PTR, struct internal_reloc *));
+static void mips_ecoff_swap_reloc_out
+  PARAMS ((bfd *, const struct internal_reloc *, PTR));
+static void mips_adjust_reloc_in
+  PARAMS ((bfd *, const struct internal_reloc *, arelent *));
+static void mips_adjust_reloc_out
+  PARAMS ((bfd *, const arelent *, struct internal_reloc *));
 #endif
 
-static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
-static reloc_howto_type * coff_mips_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type));
-static void mips_swap_reloc_in PARAMS ((bfd *, PTR, PTR));
-static unsigned int mips_swap_reloc_out PARAMS ((bfd *, PTR, PTR));
-static boolean coff_pe_mips_relocate_section
+static bfd_boolean in_reloc_p
+  PARAMS ((bfd *, reloc_howto_type *));
+static reloc_howto_type * coff_mips_reloc_type_lookup
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
+static void mips_swap_reloc_in
+  PARAMS ((bfd *, PTR, PTR));
+static unsigned int mips_swap_reloc_out
+  PARAMS ((bfd *, PTR, PTR));
+static bfd_boolean coff_pe_mips_relocate_section
   PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
           struct internal_reloc *, struct internal_syment *, asection **));
 
@@ -175,10 +176,10 @@ coff_mips_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
 }
 
 #ifdef COFF_WITH_PE
-/* Return true if this relocation should
+/* Return TRUE if this relocation should
    appear in the output .reloc section.  */
 
-static boolean
+static bfd_boolean
 in_reloc_p (abfd, howto)
      bfd * abfd ATTRIBUTE_UNUSED;
      reloc_howto_type *howto;
@@ -188,7 +189,7 @@ in_reloc_p (abfd, howto)
 #endif
 
 #ifndef PCRELOFFSET
-#define PCRELOFFSET false
+#define PCRELOFFSET FALSE
 #endif
 
 static reloc_howto_type howto_table[] =
@@ -200,52 +201,52 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "IGNORE",              /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 16 bit reference to a symbol, normally from a data section.  */
   HOWTO (MIPS_R_REFHALF,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_mips_reloc,       /* special_function */
         "REFHALF",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit reference to a symbol, normally from a data section.  */
   HOWTO (MIPS_R_REFWORD,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_mips_reloc,       /* special_function */
         "REFWORD",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 26 bit absolute jump address.  */
   HOWTO (MIPS_R_JMPADDR,       /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -253,10 +254,10 @@ static reloc_howto_type howto_table[] =
                                   bits must match the PC.  */
         coff_mips_reloc,       /* special_function */
         "JMPADDR",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3ffffff,             /* src_mask */
         0x3ffffff,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The high 16 bits of a symbol value.  Handled by the function
      mips_refhi_reloc.  */
@@ -264,30 +265,30 @@ static reloc_howto_type howto_table[] =
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_mips_reloc,       /* special_function */
         "REFHI",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* The low 16 bits of a symbol value.  */
   HOWTO (MIPS_R_REFLO,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         coff_mips_reloc,       /* special_function */
         "REFLO",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A reference to an offset from the gp register.  Handled by the
      function mips_gprel_reloc.  */
@@ -295,15 +296,15 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         coff_mips_reloc,       /* special_function */
         "GPREL",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A reference to a literal using an offset from the gp register.
      Handled by the function mips_gprel_reloc.  */
@@ -311,15 +312,15 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         coff_mips_reloc,       /* special_function */
         "LITERAL",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   EMPTY_HOWTO (8),
   EMPTY_HOWTO (9),
@@ -351,30 +352,30 @@ static reloc_howto_type howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_mips_reloc,       /* special_function */
         "rva32",               /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
   EMPTY_HOWTO (35),
   EMPTY_HOWTO (36),
   HOWTO (MIPS_R_PAIR,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         coff_mips_reloc,       /* special_function */
         "PAIR",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 
 /* Turn a howto into a reloc  nunmber */
@@ -632,7 +633,7 @@ mips_swap_reloc_out (abfd, src, dst)
 #define coff_swap_reloc_out mips_swap_reloc_out
 #define NO_COFF_RELOCS
 
-static boolean
+static bfd_boolean
 coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
                               input_section, contents, relocs, syms,
                               sections)
@@ -646,12 +647,12 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
      asection **sections;
 {
   bfd_vma gp;
-  boolean gp_undefined;
+  bfd_boolean gp_undefined;
   size_t adjust;
   struct internal_reloc *rel;
   struct internal_reloc *rel_end;
   unsigned int i;
-  boolean got_lo;
+  bfd_boolean got_lo;
 
   if (info->relocateable)
   {
@@ -659,7 +660,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
 %s: `ld -r' not supported with PE MIPS objects\n"),
                           bfd_archive_filename (input_bfd));
     bfd_set_error (bfd_error_bad_value);
-    return false;
+    return FALSE;
   }
 
   BFD_ASSERT (input_bfd->xvec->byteorder
@@ -673,11 +674,11 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
 
   gp = _bfd_get_gp_value (output_bfd);
   if (gp == 0)
-    gp_undefined = true;
+    gp_undefined = TRUE;
   else
-    gp_undefined = false;
+    gp_undefined = FALSE;
 
-  got_lo = false;
+  got_lo = FALSE;
 
   adjust = 0;
 
@@ -719,7 +720,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
       howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h,
                                       sym, &addend);
       if (howto == NULL)
-       return false;
+       return FALSE;
 
       /* If we are doing a relocateable link, then we can just ignore
          a PC relative reloc that is pcrel_offset.  It will already
@@ -771,8 +772,8 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
            {
              if (! ((*info->callbacks->undefined_symbol)
                     (info, h->root.root.string, input_bfd, input_section,
-                     rel->r_vaddr - input_section->vma, true)))
-               return false;
+                     rel->r_vaddr - input_section->vma, TRUE)))
+               return FALSE;
            }
        }
 
@@ -820,7 +821,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
              (*_bfd_error_handler) (_("%s: jump too far away\n"),
                                     bfd_archive_filename (input_bfd));
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
          tmp &= 0xfc000000;
          tmp |= (targ/4) & 0x3ffffff;
@@ -847,7 +848,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
              (*_bfd_error_handler) (_("%s: bad pair/reflo after refhi\n"),
                                     bfd_archive_filename (input_bfd));
              bfd_set_error (bfd_error_bad_value);
-             return false;
+             return FALSE;
            }
          tmp &= 0xffff0000;
          tmp |= (targ >> 16) & 0xffff;
@@ -898,7 +899,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 #define coff_relocate_section coff_pe_mips_relocate_section
@@ -909,15 +910,16 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
    a leading dot for local labels, so if TARGET_UNDERSCORE is defined
    we treat all symbols starting with L as local.  */
 
-static boolean coff_mips_is_local_label_name PARAMS ((bfd *, const char *));
+static bfd_boolean coff_mips_is_local_label_name
+   PARAMS ((bfd *, const char *));
 
-static boolean
+static bfd_boolean
 coff_mips_is_local_label_name (abfd, name)
      bfd *abfd;
      const char *name;
 {
   if (name[0] == 'L')
-    return true;
+    return TRUE;
 
   return _bfd_coff_is_local_label_name (abfd, name);
 }
index 08526e6218e1c78b697cdbbc5d4fdefe44925215..684d9a7611f9ad862a10ca70034268469de0e14f 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for SH PECOFF files.
-   Copyright 1995, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1995, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define TARGET_SHL_SYM shlpe_vec
 #define TARGET_SHL_NAME "pe-shl"
 #define COFF_WITH_PE
-#define PCRELOFFSET true
+#define PCRELOFFSET TRUE
 #define TARGET_UNDERSCORE '_'
 #define COFF_LONG_SECTION_NAMES
 
index b643f3c23669e6b48e442b57877090d992fe3d57..70236785661670d0c271d71cb8918d1da0e3254e 100644 (file)
 
 static void add_data_entry
   PARAMS ((bfd *, struct internal_extra_pe_aouthdr *, int, char *, bfd_vma));
-static boolean pe_print_pdata PARAMS ((bfd *, PTR));
-static boolean pe_print_reloc PARAMS ((bfd *, PTR));
-static boolean pe_print_idata PARAMS ((bfd *, PTR));
-static boolean pe_print_edata PARAMS ((bfd *, PTR));
+static bfd_boolean pe_print_pdata PARAMS ((bfd *, PTR));
+static bfd_boolean pe_print_reloc PARAMS ((bfd *, PTR));
+static bfd_boolean pe_print_idata PARAMS ((bfd *, PTR));
+static bfd_boolean pe_print_edata PARAMS ((bfd *, PTR));
 \f
 
 void
@@ -1016,7 +1016,7 @@ static char * dir_names[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] =
    PPC- specific code.  */
 #endif
 
-static boolean
+static bfd_boolean
 pe_print_idata (abfd, vfile)
      bfd *abfd;
      PTR vfile;
@@ -1048,12 +1048,12 @@ pe_print_idata (abfd, vfile)
       /* Maybe the extra header isn't there.  Look for the section.  */
       section = bfd_get_section_by_name (abfd, ".idata");
       if (section == NULL)
-       return true;
+       return TRUE;
 
       addr = section->vma;
       datasize = bfd_section_size (abfd, section);
       if (datasize == 0)
-       return true;
+       return TRUE;
     }
   else
     {
@@ -1069,7 +1069,7 @@ pe_print_idata (abfd, vfile)
        {
          fprintf (file,
                   _("\nThere is an import table, but the section containing it could not be found\n"));
-         return true;
+         return TRUE;
        }
     }
 
@@ -1098,7 +1098,7 @@ pe_print_idata (abfd, vfile)
       amt = bfd_section_size (abfd, rel_section);
       data = (bfd_byte *) bfd_malloc (amt);
       if (data == NULL && amt != 0)
-       return false;
+       return FALSE;
 
       bfd_get_section_contents (abfd, rel_section, (PTR) data, (bfd_vma) 0,
                                amt);
@@ -1134,11 +1134,11 @@ pe_print_idata (abfd, vfile)
   amt = dataoff + datasize;
   data = (bfd_byte *) bfd_malloc (amt);
   if (data == NULL)
-    return false;
+    return FALSE;
 
   /* Read the whole section.  Some of the fields might be before dataoff.  */
   if (! bfd_get_section_contents (abfd, section, (PTR) data, (bfd_vma) 0, amt))
-    return false;
+    return FALSE;
 
   adj = section->vma - extra->ImageBase;
 
@@ -1290,10 +1290,10 @@ pe_print_idata (abfd, vfile)
 
   free (data);
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 pe_print_edata (abfd, vfile)
      bfd *abfd;
      PTR vfile;
@@ -1332,12 +1332,12 @@ pe_print_edata (abfd, vfile)
       /* Maybe the extra header isn't there.  Look for the section.  */
       section = bfd_get_section_by_name (abfd, ".edata");
       if (section == NULL)
-       return true;
+       return TRUE;
 
       addr = section->vma;
       datasize = bfd_section_size (abfd, section);
       if (datasize == 0)
-       return true;
+       return TRUE;
     }
   else
     {
@@ -1355,7 +1355,7 @@ pe_print_edata (abfd, vfile)
        {
          fprintf (file,
                   _("\nThere is an export table, but the section containing it could not be found\n"));
-         return true;
+         return TRUE;
        }
     }
 
@@ -1367,11 +1367,11 @@ pe_print_edata (abfd, vfile)
 
   data = (bfd_byte *) bfd_malloc (datasize);
   if (data == NULL)
-    return false;
+    return FALSE;
 
   if (! bfd_get_section_contents (abfd, section, (PTR) data,
                                  (file_ptr) dataoff, datasize))
-    return false;
+    return FALSE;
 
   /* Go get Export Directory Table.  */
   edt.export_flags   = bfd_get_32 (abfd, data +  0);
@@ -1508,7 +1508,7 @@ pe_print_edata (abfd, vfile)
 
   free (data);
 
-  return true;
+  return TRUE;
 }
 
 /* This really is architecture dependent.  On IA-64, a .pdata entry
@@ -1516,7 +1516,7 @@ pe_print_edata (abfd, vfile)
    specify the start and end address of the code range the entry
    covers and the address of the corresponding unwind info data.  */
 
-static boolean
+static bfd_boolean
 pe_print_pdata (abfd, vfile)
      bfd *abfd;
      PTR vfile;
@@ -1537,7 +1537,7 @@ pe_print_pdata (abfd, vfile)
   if (section == NULL
       || coff_section_data (abfd, section) == NULL
       || pei_section_data (abfd, section) == NULL)
-    return true;
+    return TRUE;
 
   stop = pei_section_data (abfd, section)->virt_size;
   if ((stop % onaline) != 0)
@@ -1558,11 +1558,11 @@ pe_print_pdata (abfd, vfile)
 
   datasize = bfd_section_size (abfd, section);
   if (datasize == 0)
-    return true;
+    return TRUE;
 
   data = (bfd_byte *) bfd_malloc (datasize);
   if (data == NULL && datasize != 0)
-    return false;
+    return FALSE;
 
   bfd_get_section_contents (abfd, section, (PTR) data, (bfd_vma) 0,
                            datasize);
@@ -1639,7 +1639,7 @@ pe_print_pdata (abfd, vfile)
 
   free (data);
 
-  return true;
+  return TRUE;
 }
 
 #define IMAGE_REL_BASED_HIGHADJ 4
@@ -1660,7 +1660,7 @@ static const char * const tbl[] =
     "UNKNOWN",   /* MUST be last */
   };
 
-static boolean
+static bfd_boolean
 pe_print_reloc (abfd, vfile)
      bfd *abfd;
      PTR vfile;
@@ -1673,10 +1673,10 @@ pe_print_reloc (abfd, vfile)
   bfd_size_type start, stop;
 
   if (section == NULL)
-    return true;
+    return TRUE;
 
   if (bfd_section_size (abfd, section) == 0)
-    return true;
+    return TRUE;
 
   fprintf (file,
           _("\n\nPE File Base Relocations (interpreted .reloc section contents)\n"));
@@ -1684,7 +1684,7 @@ pe_print_reloc (abfd, vfile)
   datasize = bfd_section_size (abfd, section);
   data = (bfd_byte *) bfd_malloc (datasize);
   if (data == NULL && datasize != 0)
-    return false;
+    return FALSE;
 
   bfd_get_section_contents (abfd, section, (PTR) data, (bfd_vma) 0,
                            datasize);
@@ -1743,12 +1743,12 @@ pe_print_reloc (abfd, vfile)
 
   free (data);
 
-  return true;
+  return TRUE;
 }
 
 /* Print out the program headers.  */
 
-boolean
+bfd_boolean
 _bfd_XX_print_private_bfd_data_common (abfd, vfile)
      bfd *abfd;
      PTR vfile;
@@ -1859,20 +1859,20 @@ _bfd_XX_print_private_bfd_data_common (abfd, vfile)
   pe_print_pdata (abfd, vfile);
   pe_print_reloc (abfd, vfile);
 
-  return true;
+  return TRUE;
 }
 
 /* Copy any private info we understand from the input bfd
    to the output bfd.  */
 
-boolean
+bfd_boolean
 _bfd_XX_bfd_copy_private_bfd_data_common (ibfd, obfd)
      bfd *ibfd, *obfd;
 {
   /* One day we may try to grok other private data.  */
   if (ibfd->xvec->flavour != bfd_target_coff_flavour
       || obfd->xvec->flavour != bfd_target_coff_flavour)
-    return true;
+    return TRUE;
 
   pe_data (obfd)->pe_opthdr = pe_data (ibfd)->pe_opthdr;
   pe_data (obfd)->dll = pe_data (ibfd)->dll;
@@ -1884,12 +1884,12 @@ _bfd_XX_bfd_copy_private_bfd_data_common (ibfd, obfd)
       pe_data (obfd)->pe_opthdr.DataDirectory[5].VirtualAddress = 0;
       pe_data (obfd)->pe_opthdr.DataDirectory[5].Size = 0;
     }
-  return true;
+  return TRUE;
 }
 
 /* Copy private section data.  */
 
-boolean
+bfd_boolean
 _bfd_XX_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
      bfd *ibfd;
      asection *isec;
@@ -1898,7 +1898,7 @@ _bfd_XX_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
 {
   if (bfd_get_flavour (ibfd) != bfd_target_coff_flavour
       || bfd_get_flavour (obfd) != bfd_target_coff_flavour)
-    return true;
+    return TRUE;
 
   if (coff_section_data (ibfd, isec) != NULL
       && pei_section_data (ibfd, isec) != NULL)
@@ -1908,7 +1908,7 @@ _bfd_XX_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
          bfd_size_type amt = sizeof (struct coff_section_tdata);
          osec->used_by_bfd = (PTR) bfd_zalloc (obfd, amt);
          if (osec->used_by_bfd == NULL)
-           return false;
+           return FALSE;
        }
 
       if (pei_section_data (obfd, osec) == NULL)
@@ -1916,7 +1916,7 @@ _bfd_XX_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
          bfd_size_type amt = sizeof (struct pei_section_tdata);
          coff_section_data (obfd, osec)->tdata = (PTR) bfd_zalloc (obfd, amt);
          if (coff_section_data (obfd, osec)->tdata == NULL)
-           return false;
+           return FALSE;
        }
 
       pei_section_data (obfd, osec)->virt_size =
@@ -1925,7 +1925,7 @@ _bfd_XX_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
        pei_section_data (ibfd, isec)->pe_flags;
     }
 
-  return true;
+  return TRUE;
 }
 
 void
@@ -1948,7 +1948,7 @@ _bfd_XX_get_symbol_info (abfd, symbol, ret)
 /* Handle the .idata section and other things that need symbol table
    access.  */
 
-boolean
+bfd_boolean
 _bfd_XXi_final_link_postscript (abfd, pfinfo)
      bfd *abfd;
      struct coff_final_link_info *pfinfo;
@@ -1965,7 +1965,7 @@ _bfd_XXi_final_link_postscript (abfd, pfinfo)
   /* The import directory.  This is the address of .idata$2, with size
      of .idata$2 + .idata$3.  */
   h1 = coff_link_hash_lookup (coff_hash_table (info),
-                             ".idata$2", false, false, true);
+                             ".idata$2", FALSE, FALSE, TRUE);
   if (h1 != NULL)
     {
       pe_data (abfd)->pe_opthdr.DataDirectory[1].VirtualAddress =
@@ -1973,7 +1973,7 @@ _bfd_XXi_final_link_postscript (abfd, pfinfo)
         + h1->root.u.def.section->output_section->vma
         + h1->root.u.def.section->output_offset);
       h1 = coff_link_hash_lookup (coff_hash_table (info),
-                                 ".idata$4", false, false, true);
+                                 ".idata$4", FALSE, FALSE, TRUE);
       pe_data (abfd)->pe_opthdr.DataDirectory[1].Size =
        ((h1->root.u.def.value
          + h1->root.u.def.section->output_section->vma
@@ -1983,13 +1983,13 @@ _bfd_XXi_final_link_postscript (abfd, pfinfo)
       /* The import address table.  This is the size/address of
          .idata$5.  */
       h1 = coff_link_hash_lookup (coff_hash_table (info),
-                                 ".idata$5", false, false, true);
+                                 ".idata$5", FALSE, FALSE, TRUE);
       pe_data (abfd)->pe_opthdr.DataDirectory[12].VirtualAddress =
        (h1->root.u.def.value
         + h1->root.u.def.section->output_section->vma
         + h1->root.u.def.section->output_offset);
       h1 = coff_link_hash_lookup (coff_hash_table (info),
-                                 ".idata$6", false, false, true);
+                                 ".idata$6", FALSE, FALSE, TRUE);
       pe_data (abfd)->pe_opthdr.DataDirectory[12].Size =
        ((h1->root.u.def.value
          + h1->root.u.def.section->output_section->vma
@@ -2000,5 +2000,5 @@ _bfd_XXi_final_link_postscript (abfd, pfinfo)
   /* If we couldn't find idata$2, we either have an excessively
      trivial program or are in DEEP trouble; we have to assume trivial
      program....  */
-  return true;
+  return TRUE;
 }
index 2f120285ace8b10f70e1cee41ee8ac45f8c20c50..b4c5bfed1e88a342648695f92ba934364be76392 100644 (file)
--- a/bfd/pef.c
+++ b/bfd/pef.c
@@ -72,7 +72,7 @@ PARAMS ((bfd *abfd, PTR afile, asymbol *symbol, bfd_print_symbol_type how));
 static void bfd_pef_convert_architecture
 PARAMS ((unsigned long architecture,
         enum bfd_architecture *type, unsigned long *subtype));
-static boolean bfd_pef_mkobject PARAMS ((bfd *abfd));
+static bfd_boolean bfd_pef_mkobject PARAMS ((bfd *abfd));
 static int bfd_pef_parse_traceback_table
 PARAMS ((bfd *abfd, asection *section, unsigned char *buf,
         size_t len, size_t pos, asymbol *sym, FILE *file));
@@ -97,7 +97,7 @@ static long bfd_pef_get_symtab_upper_bound PARAMS ((bfd *));
 static long bfd_pef_get_symtab PARAMS ((bfd *, asymbol **));
 static asymbol *bfd_pef_make_empty_symbol PARAMS ((bfd *));
 static void bfd_pef_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
-static int bfd_pef_sizeof_headers PARAMS ((bfd *, boolean));
+static int bfd_pef_sizeof_headers PARAMS ((bfd *, bfd_boolean));
 
 static int bfd_pef_xlib_read_header
 PARAMS ((bfd *abfd, bfd_pef_xlib_header *header));
@@ -154,11 +154,11 @@ bfd_pef_convert_architecture (architecture, type, subtype)
     *type = bfd_arch_m68k;
 }
 
-static boolean
+static bfd_boolean
 bfd_pef_mkobject (abfd)
      bfd *abfd ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 static int
@@ -1094,7 +1094,7 @@ bfd_pef_get_symbol_info (abfd, symbol, ret)
 static int
 bfd_pef_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return 0;
 }
index c202072d5b18750796c06ab7eee3c0f7e3e86769..8eb23eb6faac9ef7c3ed00d113a7519131bfa8bb 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for arm PE IMAGE COFF files.
-   Copyright 1995, 1996, 1999 Free Software Foundation, Inc.
+   Copyright 1995, 1996, 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
-#define PCRELOFFSET        true
+#define PCRELOFFSET        TRUE
 #define COFF_LONG_SECTION_NAMES
 
 #include "coff-arm.c"
index 9f577e669f752b7a2273c86961fdf115ae56a65a..63a63a84839cec8d16ceee30398c3b4c7910d464 100644 (file)
@@ -24,7 +24,7 @@
 #define TARGET_NAME "pei-i386"
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
-#define PCRELOFFSET true
+#define PCRELOFFSET TRUE
 #define TARGET_UNDERSCORE '_'
 #define COFF_LONG_SECTION_NAMES
 #define COFF_LONG_FILENAMES
index 78c3b95aad913873d1444fa4b0d044062a3cc040..416cb81b8bb58076d4bbba1901738d5349e61338 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for MCore PECOFF files.
-   Copyright 1999 Free Software Foundation, Inc.
+   Copyright 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
-#define PCRELOFFSET        true
+#define PCRELOFFSET        TRUE
 #define COFF_LONG_SECTION_NAMES
 
 #define MCORE_PE
index 84c6ff0b0e3e4223eea16ba82d5adaac606b99af..976b2f995e0b3635cc47e8c1e3d42b3e2ac6f993 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for MIPS PE IMAGE COFF files.
-   Copyright 1995, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1995, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define TARGET_SYM mipslpei_vec
 #define TARGET_NAME "pei-mips"
 #define COFF_IMAGE_WITH_PE
-#define PCRELOFFSET true
+#define PCRELOFFSET TRUE
 #define COFF_LONG_SECTION_NAMES
 
 #include "pe-mips.c"
index c46b0dbe04e9f96f7465fbaeea5ec25b48ead6ba..b4cc579fa490e12c3f63d1de1073468996b11121 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for SH PE IMAGE COFF files.
-   Copyright 1995, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1995, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define IMAGE_BASE NT_IMAGE_BASE
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
-#define PCRELOFFSET true
+#define PCRELOFFSET TRUE
 #define TARGET_UNDERSCORE '_'
 #define COFF_LONG_SECTION_NAMES
 
index a621acc4b27c88b1ccf5d873c7acdebdd94e9318..2dff0ac3f68607779b273cb61055213d12769758 100644 (file)
@@ -58,7 +58,7 @@ PE/PEI rearrangement (and code added): Donn Terry
 
 #include "libpei.h"
 
-static boolean (*pe_saved_coff_bfd_print_private_bfd_data)
+static bfd_boolean (*pe_saved_coff_bfd_print_private_bfd_data)
     PARAMS ((bfd *, PTR)) =
 #ifndef coff_bfd_print_private_bfd_data
      NULL;
@@ -67,10 +67,10 @@ static boolean (*pe_saved_coff_bfd_print_private_bfd_data)
 #undef coff_bfd_print_private_bfd_data
 #endif
 
-static boolean pe_print_private_bfd_data PARAMS ((bfd *, PTR));
+static bfd_boolean pe_print_private_bfd_data PARAMS ((bfd *, PTR));
 #define coff_bfd_print_private_bfd_data pe_print_private_bfd_data
 
-static boolean (*pe_saved_coff_bfd_copy_private_bfd_data)
+static bfd_boolean (*pe_saved_coff_bfd_copy_private_bfd_data)
     PARAMS ((bfd *, bfd *)) =
 #ifndef coff_bfd_copy_private_bfd_data
      NULL;
@@ -79,7 +79,7 @@ static boolean (*pe_saved_coff_bfd_copy_private_bfd_data)
 #undef coff_bfd_copy_private_bfd_data
 #endif
 
-static boolean pe_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
+static bfd_boolean pe_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
 #define coff_bfd_copy_private_bfd_data pe_bfd_copy_private_bfd_data
 
 #define coff_mkobject      pe_mkobject
@@ -91,7 +91,7 @@ static unsigned int coff_swap_reloc_out PARAMS ((bfd *, PTR, PTR));
 #endif
 static void coff_swap_filehdr_in PARAMS ((bfd *, PTR, PTR));
 static void coff_swap_scnhdr_in PARAMS ((bfd *, PTR, PTR));
-static boolean pe_mkobject PARAMS ((bfd *));
+static bfd_boolean pe_mkobject PARAMS ((bfd *));
 static PTR pe_mkobject_hook PARAMS ((bfd *, PTR, PTR));
 
 #ifdef COFF_IMAGE_WITH_PE
@@ -139,7 +139,7 @@ static void               pe_ILF_make_a_reloc     PARAMS ((pe_ILF_vars *, bfd_vm
 static void               pe_ILF_make_a_symbol    PARAMS ((pe_ILF_vars *, const char *, const char *, asection_ptr, flagword));
 static void               pe_ILF_save_relocs      PARAMS ((pe_ILF_vars *, asection_ptr));
 static void              pe_ILF_make_a_symbol_reloc  PARAMS ((pe_ILF_vars *, bfd_vma, bfd_reloc_code_real_type, struct symbol_cache_entry **, unsigned int));
-static boolean            pe_ILF_build_a_bfd      PARAMS ((bfd *, unsigned int, bfd_byte *, bfd_byte *, unsigned int, unsigned int));
+static bfd_boolean        pe_ILF_build_a_bfd      PARAMS ((bfd *, unsigned int, bfd_byte *, bfd_byte *, unsigned int, unsigned int));
 static const bfd_target * pe_ILF_object_p         PARAMS ((bfd *));
 static const bfd_target * pe_bfd_object_p        PARAMS ((bfd *));
 #endif /* COFF_IMAGE_WITH_PE */
@@ -273,7 +273,7 @@ coff_swap_scnhdr_in (abfd, ext, in)
 #endif
 }
 
-static boolean
+static bfd_boolean
 pe_mkobject (abfd)
      bfd * abfd;
 {
@@ -283,7 +283,7 @@ pe_mkobject (abfd)
   abfd->tdata.pe_obj_data = (struct pe_tdata *) bfd_zalloc (abfd, amt);
 
   if (abfd->tdata.pe_obj_data == 0)
-    return false;
+    return FALSE;
 
   pe = pe_data (abfd);
 
@@ -299,7 +299,7 @@ pe_mkobject (abfd)
   pe->target_subsystem = PEI_TARGET_SUBSYSTEM;
 #endif
 
-  return true;
+  return TRUE;
 }
 
 /* Create the COFF backend specific information.  */
@@ -355,7 +355,7 @@ pe_mkobject_hook (abfd, filehdr, aouthdr)
   return (PTR) pe;
 }
 
-static boolean
+static bfd_boolean
 pe_print_private_bfd_data (abfd, vfile)
      bfd *abfd;
      PTR vfile;
@@ -363,7 +363,7 @@ pe_print_private_bfd_data (abfd, vfile)
   FILE *file = (FILE *) vfile;
 
   if (!_bfd_XX_print_private_bfd_data_common (abfd, vfile))
-    return false;
+    return FALSE;
 
   if (pe_saved_coff_bfd_print_private_bfd_data != NULL)
     {
@@ -372,23 +372,23 @@ pe_print_private_bfd_data (abfd, vfile)
       return pe_saved_coff_bfd_print_private_bfd_data (abfd, vfile);
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Copy any private info we understand from the input bfd
    to the output bfd.  */
 
-static boolean
+static bfd_boolean
 pe_bfd_copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd, *obfd;
 {
   if (!_bfd_XX_bfd_copy_private_bfd_data_common (ibfd, obfd))
-    return false;
+    return FALSE;
 
   if (pe_saved_coff_bfd_copy_private_bfd_data)
     return pe_saved_coff_bfd_copy_private_bfd_data (ibfd, obfd);
 
-  return true;
+  return TRUE;
 }
 
 #define coff_bfd_copy_private_section_data \
@@ -518,7 +518,7 @@ pe_ILF_save_relocs (pe_ILF_vars * vars,
     abort ();
 
   coff_section_data (vars->abfd, sec)->relocs = vars->int_reltab;
-  coff_section_data (vars->abfd, sec)->keep_relocs = true;
+  coff_section_data (vars->abfd, sec)->keep_relocs = TRUE;
 
   sec->relocation  = vars->reltab;
   sec->reloc_count = vars->relcount;
@@ -610,7 +610,7 @@ pe_ILF_make_a_symbol (pe_ILF_vars *  vars,
 #if 0 /* See comment above.  */
   sym->symbol.value   = 0;
   sym->symbol.udata.i = 0;
-  sym->done_lineno    = false;
+  sym->done_lineno    = FALSE;
   sym->lineno         = NULL;
 #endif
 
@@ -753,7 +753,7 @@ static jump_table jtab[] =
 #endif
 
 /* Build a full BFD from the information supplied in a ILF object.  */
-static boolean
+static bfd_boolean
 pe_ILF_build_a_bfd (bfd *           abfd,
                    unsigned int    magic,
                    bfd_byte *      symbol_name,
@@ -784,12 +784,12 @@ pe_ILF_build_a_bfd (bfd *           abfd,
       /* XXX code yet to be written.  */
       _bfd_error_handler (_("%s: Unhandled import type; %x"),
                          bfd_archive_filename (abfd), import_type);
-      return false;
+      return FALSE;
 
     default:
       _bfd_error_handler (_("%s: Unrecognised import type; %x"),
                          bfd_archive_filename (abfd), import_type);
-      return false;
+      return FALSE;
     }
 
   switch (import_name_type)
@@ -803,7 +803,7 @@ pe_ILF_build_a_bfd (bfd *           abfd,
     default:
       _bfd_error_handler (_("%s: Unrecognised import name type; %x"),
                          bfd_archive_filename (abfd), import_name_type);
-      return false;
+      return FALSE;
     }
 
   /* Initialise local variables.
@@ -815,7 +815,7 @@ pe_ILF_build_a_bfd (bfd *           abfd,
      so allocate all the space that we will need right now.  */
   ptr = bfd_zalloc (abfd, (bfd_size_type) ILF_DATA_SIZE);
   if (ptr == NULL)
-    return false;
+    return FALSE;
 
   /* Create a bfd_in_memory structure.  */
   vars.bim = (struct bfd_in_memory *) ptr;
@@ -875,7 +875,7 @@ pe_ILF_build_a_bfd (bfd *           abfd,
   id4 = pe_ILF_make_a_section (& vars, ".idata$4", SIZEOF_IDATA4, 0);
   id5 = pe_ILF_make_a_section (& vars, ".idata$5", SIZEOF_IDATA5, 0);
   if (id4 == NULL || id5 == NULL)
-    return false;
+    return FALSE;
 
   /* Fill in the contents of these sections.  */
   if (import_name_type == IMPORT_ORDINAL)
@@ -894,7 +894,7 @@ pe_ILF_build_a_bfd (bfd *           abfd,
       /* Create .idata$6 - the Hint Name Table.  */
       id6 = pe_ILF_make_a_section (& vars, ".idata$6", SIZEOF_IDATA6, 0);
       if (id6 == NULL)
-       return false;
+       return FALSE;
 
       /* If necessary, trim the import symbol name.  */
       symbol = symbol_name;
@@ -950,7 +950,7 @@ pe_ILF_build_a_bfd (bfd *           abfd,
       /* Create the .text section.  */
       text = pe_ILF_make_a_section (& vars, ".text", jtab[i].size, SEC_CODE);
       if (text == NULL)
-       return false;
+       return FALSE;
 
       /* Copy in the jump code.  */
       memcpy (text->contents, jtab[i].data, jtab[i].size);
@@ -999,10 +999,10 @@ pe_ILF_build_a_bfd (bfd *           abfd,
 
   if (   ! bfd_set_start_address (abfd, (bfd_vma) 0)
       || ! bfd_coff_set_arch_mach_hook (abfd, & internal_f))
-    return false;
+    return FALSE;
 
   if (bfd_coff_mkobject_hook (abfd, (PTR) & internal_f, NULL) == NULL)
-    return false;
+    return FALSE;
 
   coff_data (abfd)->pe = 1;
 #ifdef THUMBPEMAGIC
@@ -1053,17 +1053,17 @@ pe_ILF_build_a_bfd (bfd *           abfd,
   obj_raw_syment_count (abfd) = vars.sym_index;
 
   obj_coff_external_syms (abfd) = (PTR) vars.esym_table;
-  obj_coff_keep_syms (abfd) = true;
+  obj_coff_keep_syms (abfd) = TRUE;
 
   obj_convert (abfd) = vars.sym_table;
   obj_conv_table_size (abfd) = vars.sym_index;
 
   obj_coff_strings (abfd) = vars.string_table;
-  obj_coff_keep_strings (abfd) = true;
+  obj_coff_keep_strings (abfd) = TRUE;
 
   abfd->flags |= HAS_SYMS;
 
-  return true;
+  return TRUE;
 }
 
 /* We have detected a Image Library Format archive element.
index e11e31434ec1aaad9611798717689ff8619b7c22..54a0c25faf2f81651cbbd6d09d63f7848846b5e9 100644 (file)
@@ -17,6 +17,8 @@ archive64.c
 archures.c
 armnetbsd.c
 bfd.c
+bfdio.c
+bfdwin.c
 binary.c
 bout.c
 cache.c
index 5b153bdff0886985fab16dbdb2111294750e95c5..a4fe0ca4ba4da1cbcc897ef51a00b1ed06545c27 100644 (file)
@@ -87,27 +87,27 @@ typedef struct ppcboot_data {
    a start symbol, an end symbol, and an absolute length symbol.  */
 #define PPCBOOT_SYMS 3
 
-static boolean ppcboot_mkobject PARAMS ((bfd *));
+static bfd_boolean ppcboot_mkobject PARAMS ((bfd *));
 static const bfd_target *ppcboot_object_p PARAMS ((bfd *));
-static boolean ppcboot_set_arch_mach
+static bfd_boolean ppcboot_set_arch_mach
   PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-static boolean ppcboot_get_section_contents
+static bfd_boolean ppcboot_get_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
 static long ppcboot_get_symtab_upper_bound PARAMS ((bfd *));
 static char *mangle_name PARAMS ((bfd *, char *));
 static long ppcboot_get_symtab PARAMS ((bfd *, asymbol **));
 static void ppcboot_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
-static boolean ppcboot_set_section_contents
+static bfd_boolean ppcboot_set_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-static int ppcboot_sizeof_headers PARAMS ((bfd *, boolean));
-static boolean ppcboot_bfd_print_private_bfd_data PARAMS ((bfd *, PTR));
+static int ppcboot_sizeof_headers PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean ppcboot_bfd_print_private_bfd_data PARAMS ((bfd *, PTR));
 
 #define ppcboot_set_tdata(abfd, ptr) ((abfd)->tdata.any = (PTR) (ptr))
 #define ppcboot_get_tdata(abfd) ((ppcboot_data_t *) ((abfd)->tdata.any))
 \f
 /* Create a ppcboot object.  Invoked via bfd_set_format.  */
 
-static boolean
+static bfd_boolean
 ppcboot_mkobject (abfd)
      bfd *abfd;
 {
@@ -117,12 +117,12 @@ ppcboot_mkobject (abfd)
       ppcboot_set_tdata (abfd, bfd_zalloc (abfd, amt));
     }
 
-  return true;
+  return TRUE;
 }
 
 \f
 /* Set the architecture to PowerPC */
-static boolean
+static bfd_boolean
 ppcboot_set_arch_mach (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -132,7 +132,7 @@ ppcboot_set_arch_mach (abfd, arch, machine)
     arch = bfd_arch_powerpc;
 
   else if (arch != bfd_arch_powerpc)
-    return false;
+    return FALSE;
 
   return bfd_default_set_arch_mach (abfd, arch, machine);
 }
@@ -229,7 +229,7 @@ ppcboot_object_p (abfd)
 \f
 /* Get contents of the only section.  */
 
-static boolean
+static bfd_boolean
 ppcboot_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section ATTRIBUTE_UNUSED;
@@ -239,8 +239,8 @@ ppcboot_get_section_contents (abfd, section, location, offset, count)
 {
   if (bfd_seek (abfd, offset + (file_ptr) sizeof (ppcboot_hdr_t), SEEK_SET) != 0
       || bfd_bread (location, count, abfd) != count)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 \f
@@ -298,7 +298,7 @@ ppcboot_get_symtab (abfd, alocation)
 
   syms = (asymbol *) bfd_alloc (abfd, amt);
   if (syms == NULL)
-    return false;
+    return FALSE;
 
   /* Start symbol.  */
   syms[0].the_bfd = abfd;
@@ -360,7 +360,7 @@ ppcboot_get_symbol_info (ignore_abfd, symbol, ret)
 \f
 /* Write section contents of a ppcboot file.  */
 
-static boolean
+static bfd_boolean
 ppcboot_set_section_contents (abfd, sec, data, offset, size)
      bfd *abfd;
      asection *sec;
@@ -384,7 +384,7 @@ ppcboot_set_section_contents (abfd, sec, data, offset, size)
       for (s = abfd->sections; s != NULL; s = s->next)
        s->filepos = s->vma - low;
 
-      abfd->output_has_begun = true;
+      abfd->output_has_begun = TRUE;
     }
 
   return _bfd_generic_set_section_contents (abfd, sec, data, offset, size);
@@ -394,7 +394,7 @@ ppcboot_set_section_contents (abfd, sec, data, offset, size)
 static int
 ppcboot_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return sizeof (ppcboot_hdr_t);
 }
@@ -402,7 +402,7 @@ ppcboot_sizeof_headers (abfd, exec)
 \f
 /* Print out the program headers.  */
 
-static boolean
+static bfd_boolean
 ppcboot_bfd_print_private_bfd_data (abfd, farg)
      bfd *abfd;
      PTR farg;
@@ -460,7 +460,7 @@ ppcboot_bfd_print_private_bfd_data (abfd, farg)
     }
 
   fprintf (f, "\n");
-  return true;
+  return TRUE;
 }
 
 \f
index f8db927ea860312721f5939aa36485ba2c0c2147..23bc8dee8a3b43a3459f1d4dc22ac42388f2e588 100644 (file)
@@ -49,11 +49,11 @@ struct trad_core_struct
 /* forward declarations */
 
 const bfd_target *ptrace_unix_core_file_p PARAMS ((bfd *abfd));
-char *         ptrace_unix_core_file_failing_command PARAMS ((bfd *abfd));
-int            ptrace_unix_core_file_failing_signal PARAMS ((bfd *abfd));
-boolean                ptrace_unix_core_file_matches_executable_p
-                        PARAMS ((bfd *core_bfd, bfd *exec_bfd));
-static void    swap_abort PARAMS ((void));
+char * ptrace_unix_core_file_failing_command PARAMS ((bfd *abfd));
+int ptrace_unix_core_file_failing_signal PARAMS ((bfd *abfd));
+bfd_boolean ptrace_unix_core_file_matches_executable_p
+  PARAMS ((bfd *core_bfd, bfd *exec_bfd));
+static void swap_abort PARAMS ((void));
 
 /* ARGSUSED */
 const bfd_target *
@@ -155,13 +155,13 @@ ptrace_unix_core_file_failing_signal (abfd)
 }
 
 /* ARGSUSED */
-boolean
+bfd_boolean
 ptrace_unix_core_file_matches_executable_p  (core_bfd, exec_bfd)
      bfd *core_bfd, *exec_bfd;
 {
   /* FIXME: Use pt_timdat field of the ptrace_user structure to match
      the date of the executable */
-  return true;
+  return TRUE;
 }
 \f
 /* If somebody calls any byte-swapping routines, shoot them.  */
index 0885e03232e595c330f75f5f06e2efedfcc531dd..23224f3b3ab59096847b5d5ad505868e5ad7fa2c 100644 (file)
@@ -306,7 +306,7 @@ CODE_FRAGMENT
 .      data section of the addend.  The relocation function will
 .      subtract from the relocation value the address of the location
 .      being relocated.  *}
-.  boolean pc_relative;
+.  bfd_boolean pc_relative;
 .
 .  {*  The bit position of the reloc value in the destination.
 .      The relocated value is left shifted by this amount.  *}
@@ -342,21 +342,20 @@ CODE_FRAGMENT
 .     USE_REL targets set this field to TRUE.  Why this is so is peculiar
 .     to each particular target.  For relocs that aren't used in partial
 .     links (e.g. GOT stuff) it doesn't matter what this is set to.  *}
-.  boolean partial_inplace;
+.  bfd_boolean partial_inplace;
 .
-.  {* The src_mask selects which parts of the read in data
-.     are to be used in the relocation sum.  E.g., if this was an 8 bit
-.     byte of data which we read and relocated, this would be
-.     0x000000ff.  When we have relocs which have an addend, such as
-.     sun4 extended relocs, the value in the offset part of a
-.     relocating field is garbage so we never use it.  In this case
-.     the mask would be 0x00000000.  *}
+.  {* src_mask selects the part of the instruction (or data) to be used
+.     in the relocation sum.  If the target relocations don't have an
+.     addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
+.     dst_mask to extract the addend from the section contents.  If
+.     relocations do have an addend in the reloc, eg. ELF USE_RELA, this
+.     field should be zero.  Non-zero values for ELF USE_RELA targets are
+.     bogus as in those cases the value in the dst_mask part of the
+.     section contents should be treated as garbage.  *}
 .  bfd_vma src_mask;
 .
-.  {* The dst_mask selects which parts of the instruction are replaced
-.     into the instruction.  In most cases src_mask == dst_mask,
-.     except in the above special case, where dst_mask would be
-.     0x000000ff, and src_mask would be 0x00000000.  *}
+.  {* dst_mask selects which parts of the instruction (or data) are
+.     replaced with a relocated value.  *}
 .  bfd_vma dst_mask;
 .
 .  {* When some formats create PC relative instructions, they leave
@@ -365,7 +364,7 @@ CODE_FRAGMENT
 .     be made just by adding in an ordinary offset (e.g., sun3 a.out).
 .     Some formats leave the displacement part of an instruction
 .     empty (e.g., m88k bcs); this flag signals the fact.  *}
-.  boolean pcrel_offset;
+.  bfd_boolean pcrel_offset;
 .};
 .
 */
@@ -386,15 +385,15 @@ DESCRIPTION
 
 .#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
 .  HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
-.         NAME, false, 0, 0, IN)
+.         NAME, FALSE, 0, 0, IN)
 .
 
 DESCRIPTION
        This is used to fill in an empty howto entry in an array.
 
 .#define EMPTY_HOWTO(C) \
-.  HOWTO ((C), 0, 0, 0, false, 0, complain_overflow_dont, NULL, \
-.         NULL, false, 0, 0, false)
+.  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
+.         NULL, FALSE, 0, 0, FALSE)
 .
 
 DESCRIPTION
@@ -672,16 +671,16 @@ bfd_perform_relocation (abfd, reloc_entry, data, input_section, output_bfd,
         of the location within the section.  Some targets arrange for
         the addend to be the negative of the position of the location
         within the section; for example, i386-aout does this.  For
-        i386-aout, pcrel_offset is false.  Some other targets do not
+        i386-aout, pcrel_offset is FALSE.  Some other targets do not
         include the position of the location; for example, m88kbcs,
-        or ELF.  For those targets, pcrel_offset is true.
+        or ELF.  For those targets, pcrel_offset is TRUE.
 
         If we are producing relocateable output, then we must ensure
         that this reloc will be correctly computed when the final
-        relocation is done.  If pcrel_offset is false we want to wind
+        relocation is done.  If pcrel_offset is FALSE we want to wind
         up with the negative of the location within the section,
         which means we must adjust the existing addend by the change
-        in the location within the section.  If pcrel_offset is true
+        in the location within the section.  If pcrel_offset is TRUE
         we do not want to adjust the existing addend at all.
 
         FIXME: This seems logical to me, but for the case of
@@ -1064,16 +1063,16 @@ bfd_install_relocation (abfd, reloc_entry, data_start, data_start_offset,
         of the location within the section.  Some targets arrange for
         the addend to be the negative of the position of the location
         within the section; for example, i386-aout does this.  For
-        i386-aout, pcrel_offset is false.  Some other targets do not
+        i386-aout, pcrel_offset is FALSE.  Some other targets do not
         include the position of the location; for example, m88kbcs,
-        or ELF.  For those targets, pcrel_offset is true.
+        or ELF.  For those targets, pcrel_offset is TRUE.
 
         If we are producing relocateable output, then we must ensure
         that this reloc will be correctly computed when the final
-        relocation is done.  If pcrel_offset is false we want to wind
+        relocation is done.  If pcrel_offset is FALSE we want to wind
         up with the negative of the location within the section,
         which means we must adjust the existing addend by the change
-        in the location within the section.  If pcrel_offset is true
+        in the location within the section.  If pcrel_offset is TRUE
         we do not want to adjust the existing addend at all.
 
         FIXME: This seems logical to me, but for the case of
@@ -1375,9 +1374,9 @@ _bfd_final_link_relocate (howto, input_bfd, input_section, contents, address,
      location we are relocating.  Some targets (e.g., i386-aout)
      arrange for the contents of the section to be the negative of the
      offset of the location within the section; for such targets
-     pcrel_offset is false.  Other targets (e.g., m88kbcs or ELF)
+     pcrel_offset is FALSE.  Other targets (e.g., m88kbcs or ELF)
      simply leave the contents of the section as zero; for such
-     targets pcrel_offset is true.  If pcrel_offset is false we do not
+     targets pcrel_offset is TRUE.  If pcrel_offset is FALSE we do not
      need to subtract out the offset of the location within the
      section (which is just ADDRESS).  */
   if (howto->pc_relative)
@@ -1960,7 +1959,7 @@ ENUM
   BFD_RELOC_ALPHA_BRSGP
 ENUMDOC
   Like BFD_RELOC_23_PCREL_S2, except that the source and target must
-  share a common GP, and the target address is adjusted for 
+  share a common GP, and the target address is adjusted for
   STO_ALPHA_STD_GPLOAD.
 
 ENUM
@@ -3597,6 +3596,8 @@ ENUMDOC
 
 ENUM
   BFD_RELOC_XSTORMY16_REL_12
+ENUMX
+  BFD_RELOC_XSTORMY16_12
 ENUMX
   BFD_RELOC_XSTORMY16_24
 ENUMX
@@ -3644,7 +3645,7 @@ bfd_reloc_type_lookup (abfd, code)
 }
 
 static reloc_howto_type bfd_howto_32 =
-HOWTO (0, 00, 2, 32, false, 0, complain_overflow_bitfield, 0, "VRT32", false, 0xffffffff, 0xffffffff, true);
+HOWTO (0, 00, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "VRT32", FALSE, 0xffffffff, 0xffffffff, TRUE);
 
 /*
 INTERNAL_FUNCTION
@@ -3712,26 +3713,26 @@ INTERNAL_FUNCTION
        bfd_generic_relax_section
 
 SYNOPSIS
-       boolean bfd_generic_relax_section
+       bfd_boolean bfd_generic_relax_section
         (bfd *abfd,
          asection *section,
          struct bfd_link_info *,
-         boolean *);
+         bfd_boolean *);
 
 DESCRIPTION
        Provides default handling for relaxing for back ends which
        don't do relaxing -- i.e., does nothing.
 */
 
-boolean
+bfd_boolean
 bfd_generic_relax_section (abfd, section, link_info, again)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
-     boolean *again;
+     bfd_boolean *again;
 {
-  *again = false;
-  return true;
+  *again = FALSE;
+  return TRUE;
 }
 
 /*
@@ -3739,7 +3740,7 @@ INTERNAL_FUNCTION
        bfd_generic_gc_sections
 
 SYNOPSIS
-       boolean bfd_generic_gc_sections
+       bfd_boolean bfd_generic_gc_sections
         (bfd *, struct bfd_link_info *);
 
 DESCRIPTION
@@ -3747,12 +3748,12 @@ DESCRIPTION
        don't do section gc -- i.e., does nothing.
 */
 
-boolean
+bfd_boolean
 bfd_generic_gc_sections (abfd, link_info)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /*
@@ -3760,7 +3761,7 @@ INTERNAL_FUNCTION
        bfd_generic_merge_sections
 
 SYNOPSIS
-       boolean bfd_generic_merge_sections
+       bfd_boolean bfd_generic_merge_sections
         (bfd *, struct bfd_link_info *);
 
 DESCRIPTION
@@ -3768,12 +3769,12 @@ DESCRIPTION
        which don't have SEC_MERGE support -- i.e., does nothing.
 */
 
-boolean
+bfd_boolean
 bfd_generic_merge_sections (abfd, link_info)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /*
@@ -3786,7 +3787,7 @@ SYNOPSIS
             struct bfd_link_info *link_info,
             struct bfd_link_order *link_order,
             bfd_byte *data,
-            boolean relocateable,
+            bfd_boolean relocateable,
             asymbol **symbols);
 
 DESCRIPTION
@@ -3802,7 +3803,7 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   /* Get enough memory to hold the stuff.  */
@@ -3830,7 +3831,7 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
 
   /* We're not relaxing the section, so just copy the size info.  */
   input_section->_cooked_size = input_section->_raw_size;
-  input_section->reloc_done = (unsigned int) true;
+  input_section->reloc_done = TRUE;
 
   reloc_count = bfd_canonicalize_reloc (input_bfd,
                                        input_section,
@@ -3871,7 +3872,7 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
                  if (!((*link_info->callbacks->undefined_symbol)
                        (link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
                         input_bfd, input_section, (*parent)->address,
-                        true)))
+                        TRUE)))
                    goto error_return;
                  break;
                case bfd_reloc_dangerous:
index 44d4f4f4657f58bd395eb56562cbedc7c46613b2..39f36e7b11fe159e95244dcdc97a8f50cb1e2774 100644 (file)
@@ -1,6 +1,6 @@
 /* 8 and 16 bit COFF relocation functions, for BFD.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001
-   Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001,
+   2002 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    BFD generic relocs.  They should store the relocs in some location
    where coff_link_input_bfd can find them (and coff_link_input_bfd
    should be changed to use this location rather than rereading the
-   file) (unless info->keep_memory is false, in which case they should
+   file) (unless info->keep_memory is FALSE, in which case they should
    free up the relocs after dealing with them).  */
 
 #include "bfd.h"
@@ -64,7 +64,7 @@ bfd_coff_reloc16_get_value (reloc, link_info, input_section)
         the generic symbols.  */
       h = bfd_wrapped_link_hash_lookup (input_section->owner, link_info,
                                        bfd_asymbol_name (symbol),
-                                       false, false, true);
+                                       FALSE, FALSE, TRUE);
       if (h != (struct bfd_link_hash_entry *) NULL
          && (h->type == bfd_link_hash_defined
              || h->type == bfd_link_hash_defweak))
@@ -79,7 +79,7 @@ bfd_coff_reloc16_get_value (reloc, link_info, input_section)
          if (!((*link_info->callbacks->undefined_symbol)
                (link_info, bfd_asymbol_name (symbol),
                 input_section->owner, input_section, reloc->address,
-                true)))
+                TRUE)))
            abort ();
          value = 0;
        }
@@ -136,12 +136,12 @@ bfd_perform_slip (abfd, slip, input_section, value)
     }
 }
 
-boolean
+bfd_boolean
 bfd_coff_reloc16_relax_section (abfd, input_section, link_info, again)
      bfd *abfd;
      asection *input_section;
      struct bfd_link_info *link_info;
-     boolean *again;
+     bfd_boolean *again;
 {
   /* Get enough memory to hold the stuff.  */
   bfd *input_bfd = input_section->owner;
@@ -153,14 +153,14 @@ bfd_coff_reloc16_relax_section (abfd, input_section, link_info, again)
 
   /* We only do global relaxation once.  It is not safe to do it multiple
      times (see discussion of the "shrinks" array below).  */
-  *again = false;
+  *again = FALSE;
 
   if (reloc_size < 0)
-    return false;
+    return FALSE;
 
   reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size);
   if (!reloc_vector && reloc_size > 0)
-    return false;
+    return FALSE;
 
   /* Get the relocs and think about them.  */
   reloc_count =
@@ -169,7 +169,7 @@ bfd_coff_reloc16_relax_section (abfd, input_section, link_info, again)
   if (reloc_count < 0)
     {
       free (reloc_vector);
-      return false;
+      return FALSE;
     }
 
   /* The reloc16.c and related relaxing code is very simple, the price
@@ -193,7 +193,7 @@ bfd_coff_reloc16_relax_section (abfd, input_section, link_info, again)
       bfd_size_type amt;
 
       /* Allocate and initialize the shrinks array for this section.
-         The last element is used as an accumlator of shrinks.  */
+        The last element is used as an accumlator of shrinks.  */
       amt = reloc_count + 1;
       amt *= sizeof (unsigned);
       shrinks = (unsigned *) bfd_zmalloc (amt);
@@ -232,7 +232,7 @@ bfd_coff_reloc16_relax_section (abfd, input_section, link_info, again)
 
   input_section->_cooked_size -= shrink;
   free ((char *) reloc_vector);
-  return true;
+  return TRUE;
 }
 
 bfd_byte *
@@ -246,7 +246,7 @@ bfd_coff_reloc16_get_relocated_section_contents (in_abfd,
      struct bfd_link_info *link_info;
      struct bfd_link_order *link_order;
      bfd_byte *data;
-     boolean relocateable;
+     bfd_boolean relocateable;
      asymbol **symbols;
 {
   /* Get enough memory to hold the stuff.  */
index 6ec78246a7f35381795bd77dcebf124d786fa7ea..519514e4cf6d65df1de2a13c1668a3daf203d4cf 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for RISC iX (Acorn, arm) binaries.
-   Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001
+   Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
 
@@ -116,27 +116,27 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
     if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0                       \
        || bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE,   \
                      abfd) != EXEC_BYTES_SIZE)                             \
-      return false;                                                        \
+      return FALSE;                                                        \
     /* Now write out reloc info, followed by syms and strings */           \
                                                                            \
     if (bfd_get_outsymbols (abfd) != (asymbol **) NULL                     \
        && bfd_get_symcount (abfd) != 0)                                    \
       {                                                                            \
        if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET) != 0)  \
-         return false;                                                     \
+         return FALSE;                                                     \
                                                                            \
-       if (! NAME(aout,write_syms) (abfd)) return false;                   \
+       if (! NAME(aout,write_syms) (abfd)) return FALSE;                   \
                                                                            \
        if (bfd_seek (abfd, (file_ptr) (N_TRELOFF(*execp)), SEEK_SET) != 0) \
-         return false;                                                     \
+         return FALSE;                                                     \
                                                                            \
        if (! riscix_squirt_out_relocs (abfd, obj_textsec (abfd)))          \
-         return false;                                                     \
+         return FALSE;                                                     \
        if (bfd_seek (abfd, (file_ptr) (N_DRELOFF(*execp)), SEEK_SET) != 0) \
-         return false;                                                     \
+         return FALSE;                                                     \
                                                                            \
        if (!NAME(aout,squirt_out_relocs) (abfd, obj_datasec (abfd)))       \
-         return false;                                                     \
+         return FALSE;                                                     \
       }                                                                            \
   }
 
@@ -159,7 +159,7 @@ riscix_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type));
 void
 riscix_swap_std_reloc_out PARAMS ((bfd *, arelent *, struct reloc_std_external *));
 
-boolean
+bfd_boolean
 riscix_squirt_out_relocs PARAMS ((bfd *, asection *));
 
 long
@@ -171,17 +171,17 @@ riscix_some_aout_object_p PARAMS ((bfd *, struct internal_exec *, const bfd_targ
 
 static reloc_howto_type riscix_std_reloc_howto[] = {
   /* type              rs size bsz  pcrel bitpos ovrf                     sf name     part_inpl readmask  setmask    pcdone */
-  HOWTO( 0,              0,  0,   8,  false, 0, complain_overflow_bitfield,0,"8",        true, 0x000000ff,0x000000ff, false),
-  HOWTO( 1,              0,  1,   16, false, 0, complain_overflow_bitfield,0,"16",        true, 0x0000ffff,0x0000ffff, false),
-  HOWTO( 2,              0,  2,   32, false, 0, complain_overflow_bitfield,0,"32",        true, 0xffffffff,0xffffffff, false),
-  HOWTO( 3,              2,  3,   26, true, 0, complain_overflow_signed,  riscix_fix_pcrel_26 , "ARM26",      true, 0x00ffffff,0x00ffffff, false),
-  HOWTO( 4,              0,  0,   8,  true,  0, complain_overflow_signed,  0,"DISP8",     true, 0x000000ff,0x000000ff, true),
-  HOWTO( 5,              0,  1,   16, true,  0, complain_overflow_signed,  0,"DISP16",    true, 0x0000ffff,0x0000ffff, true),
-  HOWTO( 6,              0,  2,   32, true,  0, complain_overflow_signed,  0,"DISP32",    true, 0xffffffff,0xffffffff, true),
-  HOWTO( 7,              2,  3,   26, false, 0, complain_overflow_signed,  riscix_fix_pcrel_26_done, "ARM26D",true,0x00ffffff,0x00ffffff, false),
+  HOWTO( 0,              0,  0,   8,  FALSE, 0, complain_overflow_bitfield,0,"8",        TRUE, 0x000000ff,0x000000ff, FALSE),
+  HOWTO( 1,              0,  1,   16, FALSE, 0, complain_overflow_bitfield,0,"16",        TRUE, 0x0000ffff,0x0000ffff, FALSE),
+  HOWTO( 2,              0,  2,   32, FALSE, 0, complain_overflow_bitfield,0,"32",        TRUE, 0xffffffff,0xffffffff, FALSE),
+  HOWTO( 3,              2,  3,   26, TRUE, 0, complain_overflow_signed,  riscix_fix_pcrel_26 , "ARM26",      TRUE, 0x00ffffff,0x00ffffff, FALSE),
+  HOWTO( 4,              0,  0,   8,  TRUE,  0, complain_overflow_signed,  0,"DISP8",     TRUE, 0x000000ff,0x000000ff, TRUE),
+  HOWTO( 5,              0,  1,   16, TRUE,  0, complain_overflow_signed,  0,"DISP16",    TRUE, 0x0000ffff,0x0000ffff, TRUE),
+  HOWTO( 6,              0,  2,   32, TRUE,  0, complain_overflow_signed,  0,"DISP32",    TRUE, 0xffffffff,0xffffffff, TRUE),
+  HOWTO( 7,              2,  3,   26, FALSE, 0, complain_overflow_signed,  riscix_fix_pcrel_26_done, "ARM26D",TRUE,0x00ffffff,0x00ffffff, FALSE),
   EMPTY_HOWTO (-1),
-  HOWTO( 9,              0, -1,   16, false, 0, complain_overflow_bitfield,0,"NEG16",        true, 0x0000ffff,0x0000ffff, false),
-  HOWTO( 10,              0, -2,   32, false, 0, complain_overflow_bitfield,0,"NEG32",        true, 0xffffffff,0xffffffff, false)
+  HOWTO( 9,              0, -1,   16, FALSE, 0, complain_overflow_bitfield,0,"NEG16",        TRUE, 0x0000ffff,0x0000ffff, FALSE),
+  HOWTO( 10,              0, -2,   32, FALSE, 0, complain_overflow_bitfield,0,"NEG32",        TRUE, 0xffffffff,0xffffffff, FALSE)
 };
 
 #define RISCIX_TABLE_SIZE \
@@ -396,7 +396,7 @@ riscix_swap_std_reloc_out (abfd, g, natptr)
     }
 }
 
-boolean
+bfd_boolean
 riscix_squirt_out_relocs (abfd, section)
      bfd *abfd;
      asection *section;
@@ -408,14 +408,15 @@ riscix_squirt_out_relocs (abfd, section)
   unsigned int count = section->reloc_count;
   bfd_size_type natsize;
 
-  if (count == 0) return true;
+  if (count == 0)
+    return TRUE;
 
   each_size = obj_reloc_entry_size (abfd);
   natsize = each_size;
   natsize *= count;
   native = (unsigned char *) bfd_zalloc (abfd, natsize);
   if (!native)
-    return false;
+    return FALSE;
 
   generic = section->orelocation;
 
@@ -428,11 +429,11 @@ riscix_squirt_out_relocs (abfd, section)
   if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize)
     {
       bfd_release (abfd, native);
-      return false;
+      return FALSE;
     }
 
   bfd_release (abfd, native);
-  return true;
+  return TRUE;
 }
 
 /*
index a61f25caa22c41f602d3fe911dd49fab03a221eb..3fa0975dc31b329a93f9ec19f5ee4e3b865a56b5 100644 (file)
@@ -253,19 +253,19 @@ typedef union {
 /* Try to read into CORE the header from the core file associated with ABFD.
    Return success.  */
 
-static boolean
+static bfd_boolean
 read_hdr (bfd *abfd, CoreHdr *core)
 {
   bfd_size_type size;
 
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   /* Read the leading portion that old and new core dump structures have in
      common.  */
   size = CORE_COMMONSZ;
   if (bfd_bread (core, size, abfd) != size)
-    return false;
+    return FALSE;
 
   /* Read the trailing portion of the structure.  */
   if (CORE_NEW (*core))
@@ -630,9 +630,9 @@ rs6000coff_core_p (abfd)
   return NULL;
 }
 
-/* Return `true' if given core is from the given executable.  */
+/* Return `TRUE' if given core is from the given executable.  */
 
-boolean
+bfd_boolean
 rs6000coff_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd;
      bfd *exec_bfd;
@@ -642,11 +642,11 @@ rs6000coff_core_file_matches_executable_p (core_bfd, exec_bfd)
   char *path, *s;
   size_t alloc;
   const char *str1, *str2;
-  boolean ret;
+  bfd_boolean ret;
   file_ptr c_loader;
 
   if (!read_hdr (core_bfd, &core))
-    return false;
+    return FALSE;
 
   if (CORE_NEW (core))
     c_loader = CNEW_LOADER (core.new);
@@ -659,12 +659,12 @@ rs6000coff_core_file_matches_executable_p (core_bfd, exec_bfd)
     size = (int) ((LdInfo *) 0)->l32.ldinfo_filename;
 
   if (bfd_seek (core_bfd, c_loader + size, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   alloc = 100;
   path = bfd_malloc ((bfd_size_type) alloc);
   if (path == NULL)
-    return false;
+    return FALSE;
   s = path;
 
   while (1)
@@ -672,7 +672,7 @@ rs6000coff_core_file_matches_executable_p (core_bfd, exec_bfd)
       if (bfd_bread (s, (bfd_size_type) 1, core_bfd) != 1)
        {
          free (path);
-         return false;
+         return FALSE;
        }
       if (*s == '\0')
        break;
@@ -686,7 +686,7 @@ rs6000coff_core_file_matches_executable_p (core_bfd, exec_bfd)
          if (n == NULL)
            {
              free (path);
-             return false;
+             return FALSE;
            }
          s = n + (path - s);
          path = n;
@@ -701,9 +701,9 @@ rs6000coff_core_file_matches_executable_p (core_bfd, exec_bfd)
   str2 = str2 != NULL ? str2 + 1 : exec_bfd->filename;
 
   if (strcmp (str1, str2) == 0)
-    ret = true;
+    ret = TRUE;
   else
-    ret = false;
+    ret = FALSE;
 
   free (path);
 
index 9f5b7934ac26fd8d763cdd1e5ae9eef6d39c0a44..4928622fe19fbc43e4bd4186e4d9acd9f770230d 100644 (file)
@@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "bfd.h"
 #include "sysdep.h"
 #include "libbfd.h"
-#include "libaout.h"           /* BFD a.out internal data structures */
+#include "libaout.h"           /* BFD a.out internal data structures */
 
 #include <stdio.h>
 #include <sys/types.h>
@@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include <sys/dir.h>
 #include <signal.h>
 
-#include <sys/user.h>           /* After a.out.h  */
+#include <sys/user.h>          /* After a.out.h  */
 #include <sys/paccess.h>
 #include <sys/region.h>
 
@@ -40,15 +40,14 @@ struct sco5_core_struct
 
 /* forward declarations */
 
-static asection *
-make_bfd_asection PARAMS ((bfd *, const char *, flagword, bfd_size_type,
-                           bfd_vma, file_ptr));
+static asection *make_bfd_asection
+  PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr));
 static struct user *read_uarea PARAMS ((bfd *, int));
 const bfd_target *sco5_core_file_p PARAMS ((bfd *abfd));
 char *sco5_core_file_failing_command PARAMS ((bfd *abfd));
 int sco5_core_file_failing_signal PARAMS ((bfd *abfd));
-boolean sco5_core_file_matches_executable_p PARAMS ((bfd *core_bfd,
-                                                    bfd *exec_bfd));
+bfd_boolean sco5_core_file_matches_executable_p
+  PARAMS ((bfd *core_bfd, bfd *exec_bfd));
 static void swap_abort PARAMS ((void));
 
 static asection *
@@ -133,8 +132,8 @@ sco5_core_file_p (abfd)
       return NULL;
     if (fstat (fileno (stream), &statbuf) < 0)
       {
-        bfd_set_error (bfd_error_system_call);
-        return NULL;
+       bfd_set_error (bfd_error_system_call);
+       return NULL;
       }
     coresize = statbuf.st_size;
   }
@@ -168,24 +167,24 @@ sco5_core_file_p (abfd)
        goto fail;
 
       if (!make_bfd_asection (abfd, ".reg", SEC_HAS_CONTENTS,
-                              (bfd_size_type) coffsets.u_usize,
-                              0 - (bfd_vma) u->u_ar0,
-                              (file_ptr) coffsets.u_user))
+                             (bfd_size_type) coffsets.u_usize,
+                             0 - (bfd_vma) u->u_ar0,
+                             (file_ptr) coffsets.u_user))
        goto fail;
 
       if (!make_bfd_asection (abfd, ".data",
                              SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS,
-                              ((bfd_size_type) u->u_exdata.ux_dsize
+                             ((bfd_size_type) u->u_exdata.ux_dsize
                               + u->u_exdata.ux_bsize),
-                              (bfd_vma) u->u_exdata.ux_datorg,
-                              (file_ptr) coffsets.u_data))
+                             (bfd_vma) u->u_exdata.ux_datorg,
+                             (file_ptr) coffsets.u_data))
        goto fail;
 
       if (!make_bfd_asection (abfd, ".stack",
                              SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS,
-                              (bfd_size_type) u->u_ssize * NBPC,
-                              (bfd_vma) u->u_sub,
-                              (file_ptr) coffsets.u_stack))
+                             (bfd_size_type) u->u_ssize * NBPC,
+                             (bfd_vma) u->u_sub,
+                             (file_ptr) coffsets.u_stack))
        goto fail;
 
       return abfd->xvec;               /* Done for version 1 */
@@ -222,10 +221,10 @@ sco5_core_file_p (abfd)
       if ((bfd_seek (abfd, (file_ptr) chead.cs_hseek, SEEK_SET) != 0)
          || (bfd_bread ((void *) &chead, (bfd_size_type) sizeof chead, abfd)
              != sizeof chead))
-        {
-          bfd_set_error (bfd_error_wrong_format);
+       {
+         bfd_set_error (bfd_error_wrong_format);
          goto fail;
-        }
+       }
 
       switch (chead.cs_stype)
        {
@@ -243,7 +242,7 @@ sco5_core_file_p (abfd)
          if (! u)
            goto fail;
 
-          /* This is tricky.  As the "register section", we give them
+         /* This is tricky.  As the "register section", we give them
             the entire upage and stack.  u.u_ar0 points to where
             "register 0" is stored.  There are two tricks with this,
             though.  One is that the rest of the registers might be
@@ -263,33 +262,33 @@ sco5_core_file_p (abfd)
 
          chead.cs_vaddr = 0 - (bfd_vma) u->u_ar0;
 
-          secname = ".reg";
-          flags = SEC_HAS_CONTENTS;
+         secname = ".reg";
+         flags = SEC_HAS_CONTENTS;
 
-          break;
+         break;
        case CORES_PREGION:                     /* A program region, map it */
          switch (chead.cs_x.csx_preg.csxp_rtyp)
            {
            case PT_DATA:
-             secname = ".data";        /* Data region.          */
+             secname = ".data";        /* Data region.          */
              break;
            case PT_STACK:
-             secname = ".stack";       /* Stack region.         */
+             secname = ".stack";       /* Stack region.         */
              break;
            case PT_SHMEM:
-             secname = ".shmem";       /* Shared memory         */
+             secname = ".shmem";       /* Shared memory         */
              break;
            case PT_LIBDAT:
-             secname = ".libdat";      /* Shared library data   */
+             secname = ".libdat";      /* Shared library data   */
              break;
            case PT_V86:
-             secname = ".virt86";      /* Virtual 8086 mode     */
+             secname = ".virt86";      /* Virtual 8086 mode     */
              break;
            case PT_SHFIL:
-             secname = ".mmfile";      /* Memory mapped file    */
+             secname = ".mmfile";      /* Memory mapped file    */
              break;
            case PT_XDATA0:
-             secname = ".Xdat0";       /* XENIX data region, virtual 0 */
+             secname = ".Xdat0";       /* XENIX data region, virtual 0 */
              break;
            default:
              secname = "";
@@ -301,11 +300,11 @@ sco5_core_file_p (abfd)
        case CORES_SCOUTSNAME:                  /* struct scoutsname */
          secname = NULL;       /* Ignore these */
          break;
-        default:
-          (*_bfd_error_handler) ("Unhandled SCO core file section type %d\n",
-                                 chead.cs_stype);
-          continue;
-        }
+       default:
+         (*_bfd_error_handler) ("Unhandled SCO core file section type %d\n",
+                                chead.cs_stype);
+         continue;
+       }
 
       if (secname
          && !make_bfd_asection (abfd, secname, flags,
@@ -350,12 +349,12 @@ sco5_core_file_failing_signal (ignore_abfd)
 }
 
 /* ARGSUSED */
-boolean
+bfd_boolean
 sco5_core_file_matches_executable_p  (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
-  return true;          /* FIXME, We have no way of telling at this point */
+  return TRUE;         /* FIXME, We have no way of telling at this point */
 }
 
 /* If somebody calls any byte-swapping routines, shoot them.  */
@@ -373,33 +372,33 @@ const bfd_target sco5_core_vec =
   {
     "sco5-core",
     bfd_target_unknown_flavour,
-    BFD_ENDIAN_LITTLE,         /* target byte order */
-    BFD_ENDIAN_LITTLE,         /* target headers byte order */
-    (HAS_RELOC | EXEC_P |       /* object flags */
+    BFD_ENDIAN_LITTLE,        /* target byte order */
+    BFD_ENDIAN_LITTLE,        /* target headers byte order */
+    (HAS_RELOC | EXEC_P |      /* object flags */
      HAS_LINENO | HAS_DEBUG |
      HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
     (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
-    0,                                                     /* symbol prefix */
-    ' ',                                                   /* ar_pad_char */
-    16,                                                    /* ar_max_namelen */
-    NO_GET, NO_SIGNED_GET, NO_PUT,      /* 64 bit data */
-    NO_GET, NO_SIGNED_GET, NO_PUT,      /* 32 bit data */
-    NO_GET, NO_SIGNED_GET, NO_PUT,      /* 16 bit data */
-    NO_GET, NO_SIGNED_GET, NO_PUT,      /* 64 bit hdrs */
-    NO_GET, NO_SIGNED_GET, NO_PUT,      /* 32 bit hdrs */
-    NO_GET, NO_SIGNED_GET, NO_PUT,      /* 16 bit hdrs */
-
-    {                           /* bfd_check_format */
-     _bfd_dummy_target,         /* unknown format */
-     _bfd_dummy_target,         /* object file */
-     _bfd_dummy_target,         /* archive */
-     sco5_core_file_p          /* a core file */
+    0,                                                    /* symbol prefix */
+    ' ',                                                  /* ar_pad_char */
+    16,                                                           /* ar_max_namelen */
+    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 64 bit data */
+    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 32 bit data */
+    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 16 bit data */
+    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 64 bit hdrs */
+    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 32 bit hdrs */
+    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 16 bit hdrs */
+
+    {                          /* bfd_check_format */
+     _bfd_dummy_target,                /* unknown format */
+     _bfd_dummy_target,                /* object file */
+     _bfd_dummy_target,                /* archive */
+     sco5_core_file_p          /* a core file */
     },
-    {                           /* bfd_set_format */
+    {                          /* bfd_set_format */
      bfd_false, bfd_false,
      bfd_false, bfd_false
     },
-    {                           /* bfd_write_contents */
+    {                          /* bfd_write_contents */
      bfd_false, bfd_false,
      bfd_false, bfd_false
     },
@@ -416,5 +415,5 @@ const bfd_target sco5_core_vec =
 
     NULL,
 
-    (PTR) 0                     /* backend_data */
+    (PTR) 0                    /* backend_data */
 };
index b5871e9bbfa78265b5461deb338f751441a6d3bc..35a0e5a6a05a31defb396d58ec2e35747515504f 100644 (file)
@@ -761,7 +761,7 @@ bfd_get_section_by_name (abfd, name)
 {
   struct section_hash_entry *sh;
 
-  sh = section_hash_lookup (&abfd->section_htab, name, false, false);
+  sh = section_hash_lookup (&abfd->section_htab, name, FALSE, FALSE);
   if (sh != NULL)
     return &sh->section;
 
@@ -811,7 +811,7 @@ bfd_get_unique_section_name (abfd, templat, count)
        abort ();
       sprintf (sname + len, ".%d", num++);
     }
-  while (section_hash_lookup (&abfd->section_htab, sname, false, false));
+  while (section_hash_lookup (&abfd->section_htab, sname, FALSE, FALSE));
 
   if (count != NULL)
     *count = num;
@@ -869,7 +869,7 @@ bfd_make_section_old_way (abfd, name)
   if (strcmp (name, BFD_IND_SECTION_NAME) == 0)
     return bfd_ind_section_ptr;
 
-  sh = section_hash_lookup (&abfd->section_htab, name, true, false);
+  sh = section_hash_lookup (&abfd->section_htab, name, TRUE, FALSE);
   if (sh == NULL)
     return NULL;
 
@@ -915,7 +915,7 @@ bfd_make_section_anyway (abfd, name)
       return NULL;
     }
 
-  sh = section_hash_lookup (&abfd->section_htab, name, true, false);
+  sh = section_hash_lookup (&abfd->section_htab, name, TRUE, FALSE);
   if (sh == NULL)
     return NULL;
 
@@ -969,7 +969,7 @@ bfd_make_section (abfd, name)
       || strcmp (name, BFD_IND_SECTION_NAME) == 0)
     return NULL;
 
-  sh = section_hash_lookup (&abfd->section_htab, name, true, false);
+  sh = section_hash_lookup (&abfd->section_htab, name, TRUE, FALSE);
   if (sh == NULL)
     return NULL;
 
@@ -989,12 +989,12 @@ FUNCTION
        bfd_set_section_flags
 
 SYNOPSIS
-       boolean bfd_set_section_flags(bfd *abfd, asection *sec, flagword flags);
+       bfd_boolean bfd_set_section_flags (bfd *abfd, asection *sec, flagword flags);
 
 DESCRIPTION
        Set the attributes of the section @var{sec} in the BFD
-       @var{abfd} to the value @var{flags}. Return <<true>> on success,
-       <<false>> on error. Possible error returns are:
+       @var{abfd} to the value @var{flags}. Return <<TRUE>> on success,
+       <<FALSE>> on error. Possible error returns are:
 
        o <<bfd_error_invalid_operation>> -
        The section cannot have one or more of the attributes
@@ -1004,7 +1004,7 @@ DESCRIPTION
 */
 
 /*ARGSUSED*/
-boolean
+bfd_boolean
 bfd_set_section_flags (abfd, section, flags)
      bfd *abfd ATTRIBUTE_UNUSED;
      sec_ptr section;
@@ -1019,12 +1019,12 @@ bfd_set_section_flags (abfd, section, flags)
   if ((flags & bfd_applicable_section_flags (abfd)) != flags)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 #endif
 
   section->flags = flags;
-  return true;
+  return TRUE;
 }
 
 /*
@@ -1076,11 +1076,11 @@ FUNCTION
        bfd_set_section_size
 
 SYNOPSIS
-       boolean bfd_set_section_size(bfd *abfd, asection *sec, bfd_size_type val);
+       bfd_boolean bfd_set_section_size (bfd *abfd, asection *sec, bfd_size_type val);
 
 DESCRIPTION
        Set @var{sec} to the size @var{val}. If the operation is
-       ok, then <<true>> is returned, else <<false>>.
+       ok, then <<TRUE>> is returned, else <<FALSE>>.
 
        Possible error returns:
        o <<bfd_error_invalid_operation>> -
@@ -1088,7 +1088,7 @@ DESCRIPTION
 
 */
 
-boolean
+bfd_boolean
 bfd_set_section_size (abfd, ptr, val)
      bfd *abfd;
      sec_ptr ptr;
@@ -1100,13 +1100,13 @@ bfd_set_section_size (abfd, ptr, val)
   if (abfd->output_has_begun)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   ptr->_cooked_size = val;
   ptr->_raw_size = val;
 
-  return true;
+  return TRUE;
 }
 
 /*
@@ -1114,9 +1114,9 @@ FUNCTION
        bfd_set_section_contents
 
 SYNOPSIS
-       boolean bfd_set_section_contents (bfd *abfd, asection *section,
-                                         PTR data, file_ptr offset,
-                                         bfd_size_type count);
+       bfd_boolean bfd_set_section_contents (bfd *abfd, asection *section,
+                                             PTR data, file_ptr offset,
+                                             bfd_size_type count);
 
 DESCRIPTION
        Sets the contents of the section @var{section} in BFD
@@ -1124,7 +1124,7 @@ DESCRIPTION
        data is written to the output section starting at offset
        @var{offset} for @var{count} octets.
 
-       Normally <<true>> is returned, else <<false>>. Possible error
+       Normally <<TRUE>> is returned, else <<FALSE>>. Possible error
        returns are:
        o <<bfd_error_no_contents>> -
        The output section does not have the <<SEC_HAS_CONTENTS>>
@@ -1141,7 +1141,7 @@ DESCRIPTION
  ? bfd_get_section_size_after_reloc (sec) \
  : bfd_get_section_size_before_reloc (sec))
 
-boolean
+bfd_boolean
 bfd_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -1154,7 +1154,7 @@ bfd_set_section_contents (abfd, section, location, offset, count)
   if (!(bfd_get_section_flags (abfd, section) & SEC_HAS_CONTENTS))
     {
       bfd_set_error (bfd_error_no_contents);
-      return (false);
+      return FALSE;
     }
 
   sz = bfd_get_section_size_now (abfd, section);
@@ -1164,7 +1164,7 @@ bfd_set_section_contents (abfd, section, location, offset, count)
       || count != (size_t) count)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   switch (abfd->direction)
@@ -1172,7 +1172,7 @@ bfd_set_section_contents (abfd, section, location, offset, count)
     case read_direction:
     case no_direction:
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
 
     case write_direction:
       break;
@@ -1181,7 +1181,7 @@ bfd_set_section_contents (abfd, section, location, offset, count)
       /* File is opened for update. `output_has_begun' some time ago when
           the file was created.  Do not recompute sections sizes or alignments
           in _bfd_set_section_content.  */
-      abfd->output_has_begun = true;
+      abfd->output_has_begun = TRUE;
       break;
     }
 
@@ -1193,11 +1193,11 @@ bfd_set_section_contents (abfd, section, location, offset, count)
   if (BFD_SEND (abfd, _bfd_set_section_contents,
                (abfd, section, location, offset, count)))
     {
-      abfd->output_has_begun = true;
-      return true;
+      abfd->output_has_begun = TRUE;
+      return TRUE;
     }
 
-  return false;
+  return FALSE;
 }
 
 /*
@@ -1205,9 +1205,9 @@ FUNCTION
        bfd_get_section_contents
 
 SYNOPSIS
-       boolean bfd_get_section_contents (bfd *abfd, asection *section,
-                                         PTR location, file_ptr offset,
-                                         bfd_size_type count);
+       bfd_boolean bfd_get_section_contents (bfd *abfd, asection *section,
+                                             PTR location, file_ptr offset,
+                                             bfd_size_type count);
 
 DESCRIPTION
        Read data from @var{section} in BFD @var{abfd}
@@ -1218,11 +1218,11 @@ DESCRIPTION
        If the contents of a constructor with the <<SEC_CONSTRUCTOR>>
        flag set are requested or if the section does not have the
        <<SEC_HAS_CONTENTS>> flag set, then the @var{location} is filled
-       with zeroes. If no errors occur, <<true>> is returned, else
-       <<false>>.
+       with zeroes. If no errors occur, <<TRUE>> is returned, else
+       <<FALSE>>.
 
 */
-boolean
+bfd_boolean
 bfd_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -1235,10 +1235,10 @@ bfd_get_section_contents (abfd, section, location, offset, count)
   if (section->flags & SEC_CONSTRUCTOR)
     {
       memset (location, 0, (size_t) count);
-      return true;
+      return TRUE;
     }
 
-  /* Even if reloc_done is true, this function reads unrelocated
+  /* Even if reloc_done is TRUE, this function reads unrelocated
      contents, so we want the raw size.  */
   sz = section->_raw_size;
   if ((bfd_size_type) offset > sz
@@ -1247,23 +1247,23 @@ bfd_get_section_contents (abfd, section, location, offset, count)
       || count != (size_t) count)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   if (count == 0)
     /* Don't bother.  */
-    return true;
+    return TRUE;
 
   if ((section->flags & SEC_HAS_CONTENTS) == 0)
     {
       memset (location, 0, (size_t) count);
-      return true;
+      return TRUE;
     }
 
   if ((section->flags & SEC_IN_MEMORY) != 0)
     {
       memcpy (location, section->contents + offset, (size_t) count);
-      return true;
+      return TRUE;
     }
 
   return BFD_SEND (abfd, _bfd_get_section_contents,
@@ -1275,13 +1275,13 @@ FUNCTION
        bfd_copy_private_section_data
 
 SYNOPSIS
-       boolean bfd_copy_private_section_data (bfd *ibfd, asection *isec,
-                                              bfd *obfd, asection *osec);
+       bfd_boolean bfd_copy_private_section_data (bfd *ibfd, asection *isec,
+                                                  bfd *obfd, asection *osec);
 
 DESCRIPTION
        Copy private section information from @var{isec} in the BFD
        @var{ibfd} to the section @var{osec} in the BFD @var{obfd}.
-       Return <<true>> on success, <<false>> on error.  Possible error
+       Return <<TRUE>> on success, <<FALSE>> on error.  Possible error
        returns are:
 
        o <<bfd_error_no_memory>> -
@@ -1343,16 +1343,16 @@ FUNCTION
        bfd_generic_discard_group
 
 SYNOPSIS
-       boolean bfd_generic_discard_group (bfd *abfd, asection *group);
+       bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
 
 DESCRIPTION
        Remove all members of @var{group} from the output.
 */
 
-boolean
+bfd_boolean
 bfd_generic_discard_group (abfd, group)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *group ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
index f0f5ee641235de8fea573318e32f6e9d71a16dea..88f13370551edae5cabbdc9d877a8a1a57e124fa 100644 (file)
 #include "libbfd.h"
 #include "bfdlink.h"
 
-static boolean simple_dummy_warning
+static bfd_boolean simple_dummy_warning
   PARAMS ((struct bfd_link_info *, const char *, const char *, bfd *,
           asection *, bfd_vma));
 
-static boolean simple_dummy_undefined_symbol
+static bfd_boolean simple_dummy_undefined_symbol
   PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *,
-          bfd_vma, boolean));
+          bfd_vma, bfd_boolean));
 
-static boolean simple_dummy_reloc_overflow 
+static bfd_boolean simple_dummy_reloc_overflow
   PARAMS ((struct bfd_link_info *, const char *, const char *, bfd_vma,
           bfd *, asection *, bfd_vma));
 
-static boolean simple_dummy_reloc_dangerous
+static bfd_boolean simple_dummy_reloc_dangerous
   PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma));
 
-static boolean simple_dummy_unattached_reloc
+static bfd_boolean simple_dummy_unattached_reloc
   PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma));
 
 bfd_byte * bfd_simple_get_relocated_section_contents
   PARAMS ((bfd *, asection *, bfd_byte *));
 
-static boolean
+static bfd_boolean
 simple_dummy_warning (link_info, warning, symbol, abfd, section, address)
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
      const char *warning ATTRIBUTE_UNUSED;
@@ -54,22 +54,22 @@ simple_dummy_warning (link_info, warning, symbol, abfd, section, address)
      asection *section ATTRIBUTE_UNUSED;
      bfd_vma address ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 simple_dummy_undefined_symbol (link_info, name, abfd, section, address, fatal)
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
      const char *name ATTRIBUTE_UNUSED;
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section ATTRIBUTE_UNUSED;
      bfd_vma address ATTRIBUTE_UNUSED;
-     boolean fatal ATTRIBUTE_UNUSED;
+     bfd_boolean fatal ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 simple_dummy_reloc_overflow (link_info, name, reloc_name, addend, abfd,
                             section, address)
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
@@ -80,10 +80,10 @@ simple_dummy_reloc_overflow (link_info, name, reloc_name, addend, abfd,
      asection *section ATTRIBUTE_UNUSED;
      bfd_vma address ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 simple_dummy_reloc_dangerous (link_info, message, abfd, section, address)
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
      const char *message ATTRIBUTE_UNUSED;
@@ -91,10 +91,10 @@ simple_dummy_reloc_dangerous (link_info, message, abfd, section, address)
      asection *section ATTRIBUTE_UNUSED;
      bfd_vma address ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 simple_dummy_unattached_reloc (link_info, name, abfd, section, address)
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
      const char *name ATTRIBUTE_UNUSED;
@@ -102,7 +102,7 @@ simple_dummy_unattached_reloc (link_info, name, abfd, section, address)
      asection *section ATTRIBUTE_UNUSED;
      bfd_vma address ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /*
index edc691e34ea40f326ec104a216b7dfa618236a1e..c6486c4116b63a05d87ce49424d14f71bd18591e 100644 (file)
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -150,122 +150,149 @@ struct som_misc_symbol_info {
 
 /* Forward declarations */
 
-static boolean som_mkobject PARAMS ((bfd *));
-static const bfd_target * som_object_setup PARAMS ((bfd *,
-                                                   struct header *,
-                                                   struct som_exec_auxhdr *,
-                                                   unsigned long));
-static boolean setup_sections PARAMS ((bfd *, struct header *, unsigned long));
-static const bfd_target * som_object_p PARAMS ((bfd *));
-static boolean som_write_object_contents PARAMS ((bfd *));
-static boolean som_slurp_string_table PARAMS ((bfd *));
-static unsigned int som_slurp_symbol_table PARAMS ((bfd *));
-static long som_get_symtab_upper_bound PARAMS ((bfd *));
-static long som_canonicalize_reloc PARAMS ((bfd *, sec_ptr,
-                                           arelent **, asymbol **));
-static long som_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr));
-static unsigned int som_set_reloc_info PARAMS ((unsigned char *, unsigned int,
-                                               arelent *, asection *,
-                                               asymbol **, boolean));
-static boolean som_slurp_reloc_table PARAMS ((bfd *, asection *,
-                                             asymbol **, boolean));
-static long som_get_symtab PARAMS ((bfd *, asymbol **));
-static asymbol * som_make_empty_symbol PARAMS ((bfd *));
-static void som_print_symbol PARAMS ((bfd *, PTR,
-                                     asymbol *, bfd_print_symbol_type));
-static boolean som_new_section_hook PARAMS ((bfd *, asection *));
-static boolean som_bfd_copy_private_symbol_data PARAMS ((bfd *, asymbol *,
-                                                         bfd *, asymbol *));
-static boolean som_bfd_copy_private_section_data PARAMS ((bfd *, asection *,
-                                                         bfd *, asection *));
-static boolean som_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
+static bfd_boolean som_mkobject
+  PARAMS ((bfd *));
+static const bfd_target * som_object_setup
+  PARAMS ((bfd *, struct header *, struct som_exec_auxhdr *, unsigned long));
+static bfd_boolean setup_sections
+  PARAMS ((bfd *, struct header *, unsigned long));
+static const bfd_target * som_object_p
+  PARAMS ((bfd *));
+static bfd_boolean som_write_object_contents
+  PARAMS ((bfd *));
+static bfd_boolean som_slurp_string_table
+  PARAMS ((bfd *));
+static unsigned int som_slurp_symbol_table
+  PARAMS ((bfd *));
+static long som_get_symtab_upper_bound
+  PARAMS ((bfd *));
+static long som_canonicalize_reloc
+  PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
+static long som_get_reloc_upper_bound
+  PARAMS ((bfd *, sec_ptr));
+static unsigned int som_set_reloc_info
+  PARAMS ((unsigned char *, unsigned int, arelent *, asection *,
+          asymbol **, bfd_boolean));
+static bfd_boolean som_slurp_reloc_table
+  PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
+static long som_get_symtab
+  PARAMS ((bfd *, asymbol **));
+static asymbol * som_make_empty_symbol
+  PARAMS ((bfd *));
+static void som_print_symbol
+  PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
+static bfd_boolean som_new_section_hook
+  PARAMS ((bfd *, asection *));
+static bfd_boolean som_bfd_copy_private_symbol_data
+  PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
+static bfd_boolean som_bfd_copy_private_section_data
+  PARAMS ((bfd *, asection *, bfd *, asection *));
+static bfd_boolean som_bfd_copy_private_bfd_data
+  PARAMS ((bfd *, bfd *));
 #define som_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data
 #define som_bfd_set_private_flags _bfd_generic_bfd_set_private_flags
-static boolean som_bfd_is_local_label_name PARAMS ((bfd *, const char *));
-static boolean som_set_section_contents PARAMS ((bfd *, sec_ptr, PTR,
-                                                file_ptr, bfd_size_type));
-static boolean som_get_section_contents PARAMS ((bfd *, sec_ptr, PTR,
-                                                file_ptr, bfd_size_type));
-static boolean som_set_arch_mach PARAMS ((bfd *, enum bfd_architecture,
-                                         unsigned long));
-static boolean som_find_nearest_line PARAMS ((bfd *, asection *,
-                                             asymbol **, bfd_vma,
-                                             const char **,
-                                             const char **,
-                                             unsigned int *));
-static void som_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
-static asection * bfd_section_from_som_symbol PARAMS ((bfd *,
-                                       struct symbol_dictionary_record *));
-static int log2 PARAMS ((unsigned int));
-static bfd_reloc_status_type hppa_som_reloc PARAMS ((bfd *, arelent *,
-                                                    asymbol *, PTR,
-                                                    asection *, bfd *,
-                                                    char **));
-static void som_initialize_reloc_queue PARAMS ((struct reloc_queue *));
-static void som_reloc_queue_insert PARAMS ((unsigned char *, unsigned int,
-                                           struct reloc_queue *));
-static void som_reloc_queue_fix PARAMS ((struct reloc_queue *, unsigned int));
-static int som_reloc_queue_find PARAMS ((unsigned char *, unsigned int,
-                                        struct reloc_queue *));
-static unsigned char * try_prev_fixup PARAMS ((bfd *, int *, unsigned char *,
-                                              unsigned int,
-                                              struct reloc_queue *));
-
-static unsigned char * som_reloc_skip PARAMS ((bfd *, unsigned int,
-                                              unsigned char *, unsigned int *,
-                                              struct reloc_queue *));
-static unsigned char * som_reloc_addend PARAMS ((bfd *, bfd_vma,
-                                                unsigned char *,
-                                                unsigned int *,
-                                                struct reloc_queue *));
-static unsigned char * som_reloc_call PARAMS ((bfd *, unsigned char *,
-                                              unsigned int *,
-                                              arelent *, int,
-                                              struct reloc_queue *));
-static unsigned long som_count_spaces PARAMS ((bfd *));
-static unsigned long som_count_subspaces PARAMS ((bfd *));
-static int compare_syms PARAMS ((const void *, const void *));
-static int compare_subspaces PARAMS ((const void *, const void *));
-static unsigned long som_compute_checksum PARAMS ((bfd *));
-static boolean som_prep_headers PARAMS ((bfd *));
-static int som_sizeof_headers PARAMS ((bfd *, boolean));
-static boolean som_finish_writing PARAMS ((bfd *));
-static boolean som_build_and_write_symbol_table PARAMS ((bfd *));
-static void som_prep_for_fixups PARAMS ((bfd *, asymbol **, unsigned long));
-static boolean som_write_fixups PARAMS ((bfd *, unsigned long, unsigned int *));
-static boolean som_write_space_strings PARAMS ((bfd *, unsigned long,
-                                               unsigned int *));
-static boolean som_write_symbol_strings PARAMS ((bfd *, unsigned long,
-                                                asymbol **, unsigned int,
-                                                unsigned *,
-                                                COMPUNIT *));
-static boolean som_begin_writing PARAMS ((bfd *));
+static bfd_boolean som_bfd_is_local_label_name
+  PARAMS ((bfd *, const char *));
+static bfd_boolean som_set_section_contents
+  PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+static bfd_boolean som_get_section_contents
+  PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+static bfd_boolean som_set_arch_mach
+  PARAMS ((bfd *, enum bfd_architecture, unsigned long));
+static bfd_boolean som_find_nearest_line
+  PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
+          const char **, unsigned int *));
+static void som_get_symbol_info
+  PARAMS ((bfd *, asymbol *, symbol_info *));
+static asection * bfd_section_from_som_symbol
+  PARAMS ((bfd *, struct symbol_dictionary_record *));
+static int log2
+  PARAMS ((unsigned int));
+static bfd_reloc_status_type hppa_som_reloc
+  PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+static void som_initialize_reloc_queue
+  PARAMS ((struct reloc_queue *));
+static void som_reloc_queue_insert
+  PARAMS ((unsigned char *, unsigned int, struct reloc_queue *));
+static void som_reloc_queue_fix
+  PARAMS ((struct reloc_queue *, unsigned int));
+static int som_reloc_queue_find
+  PARAMS ((unsigned char *, unsigned int, struct reloc_queue *));
+static unsigned char * try_prev_fixup
+  PARAMS ((bfd *, int *, unsigned char *, unsigned int, struct reloc_queue *));
+
+static unsigned char * som_reloc_skip
+  PARAMS ((bfd *, unsigned int, unsigned char *, unsigned int *,
+          struct reloc_queue *));
+static unsigned char * som_reloc_addend
+  PARAMS ((bfd *, bfd_vma, unsigned char *, unsigned int *,
+          struct reloc_queue *));
+static unsigned char * som_reloc_call
+  PARAMS ((bfd *, unsigned char *, unsigned int *, arelent *, int,
+          struct reloc_queue *));
+static unsigned long som_count_spaces
+  PARAMS ((bfd *));
+static unsigned long som_count_subspaces
+  PARAMS ((bfd *));
+static int compare_syms
+  PARAMS ((const void *, const void *));
+static int compare_subspaces
+  PARAMS ((const void *, const void *));
+static unsigned long som_compute_checksum
+  PARAMS ((bfd *));
+static bfd_boolean som_prep_headers
+  PARAMS ((bfd *));
+static int som_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean som_finish_writing
+  PARAMS ((bfd *));
+static bfd_boolean som_build_and_write_symbol_table
+  PARAMS ((bfd *));
+static void som_prep_for_fixups
+  PARAMS ((bfd *, asymbol **, unsigned long));
+static bfd_boolean som_write_fixups
+  PARAMS ((bfd *, unsigned long, unsigned int *));
+static bfd_boolean som_write_space_strings
+  PARAMS ((bfd *, unsigned long, unsigned int *));
+static bfd_boolean som_write_symbol_strings
+  PARAMS ((bfd *, unsigned long, asymbol **, unsigned int, unsigned *,
+          COMPUNIT *));
+static bfd_boolean som_begin_writing
+  PARAMS ((bfd *));
 static reloc_howto_type * som_bfd_reloc_type_lookup
-       PARAMS ((bfd *, bfd_reloc_code_real_type));
-static char som_section_type PARAMS ((const char *));
-static int som_decode_symclass PARAMS ((asymbol *));
-static boolean som_bfd_count_ar_symbols PARAMS ((bfd *, struct lst_header *,
-                                                symindex *));
-
-static boolean som_bfd_fill_in_ar_symbols PARAMS ((bfd *, struct lst_header *,
-                                                  carsym **syms));
-static boolean som_slurp_armap PARAMS ((bfd *));
-static boolean som_write_armap PARAMS ((bfd *, unsigned int, struct orl *,
-                                       unsigned int, int));
-static void som_bfd_derive_misc_symbol_info PARAMS ((bfd *, asymbol *,
-                                            struct som_misc_symbol_info *));
-static boolean som_bfd_prep_for_ar_write PARAMS ((bfd *, unsigned int *,
-                                                 unsigned int *));
-static unsigned int som_bfd_ar_symbol_hash PARAMS ((asymbol *));
-static boolean som_bfd_ar_write_symbol_stuff PARAMS ((bfd *, unsigned int,
-                                                     unsigned int,
-                                                     struct lst_header,
-                                                     unsigned int));
-static boolean som_is_space PARAMS ((asection *));
-static boolean som_is_subspace PARAMS ((asection *));
-static boolean som_is_container PARAMS ((asection *, asection *));
-static boolean som_bfd_free_cached_info PARAMS ((bfd *));
-static boolean som_bfd_link_split_section PARAMS ((bfd *, asection *));
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
+static char som_section_type
+  PARAMS ((const char *));
+static int som_decode_symclass
+  PARAMS ((asymbol *));
+static bfd_boolean som_bfd_count_ar_symbols
+  PARAMS ((bfd *, struct lst_header *, symindex *));
+
+static bfd_boolean som_bfd_fill_in_ar_symbols
+  PARAMS ((bfd *, struct lst_header *, carsym **syms));
+static bfd_boolean som_slurp_armap
+  PARAMS ((bfd *));
+static bfd_boolean som_write_armap
+  PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
+static void som_bfd_derive_misc_symbol_info
+  PARAMS ((bfd *, asymbol *, struct som_misc_symbol_info *));
+static bfd_boolean som_bfd_prep_for_ar_write
+  PARAMS ((bfd *, unsigned int *, unsigned int *));
+static unsigned int som_bfd_ar_symbol_hash
+  PARAMS ((asymbol *));
+static bfd_boolean som_bfd_ar_write_symbol_stuff
+  PARAMS ((bfd *, unsigned int, unsigned int, struct lst_header,
+          unsigned int));
+static bfd_boolean som_is_space
+  PARAMS ((asection *));
+static bfd_boolean som_is_subspace
+  PARAMS ((asection *));
+static bfd_boolean som_is_container
+  PARAMS ((asection *, asection *));
+static bfd_boolean som_bfd_free_cached_info
+  PARAMS ((bfd *));
+static bfd_boolean som_bfd_link_split_section
+  PARAMS ((bfd *, asection *));
 
 /* Map SOM section names to POSIX/BSD single-character symbol types.
 
@@ -778,7 +805,7 @@ static const int comp3_opcodes[] = {
 #endif
 
 #define SOM_HOWTO(TYPE, NAME)  \
-  HOWTO(TYPE, 0, 0, 32, false, 0, 0, hppa_som_reloc, NAME, false, 0, 0, false)
+  HOWTO(TYPE, 0, 0, 32, FALSE, 0, 0, hppa_som_reloc, NAME, FALSE, 0, 0, FALSE)
 
 static reloc_howto_type som_hppa_howto_table[] = {
   SOM_HOWTO (R_NO_RELOCATION, "R_NO_RELOCATION"),
@@ -1842,7 +1869,7 @@ som_object_setup (abfd, file_hdrp, aux_hdrp, current_offset)
    BFD sections which correspond to spaces will overlap the sections for the
    associated subspaces.  */
 
-static boolean
+static bfd_boolean
 setup_sections (abfd, file_hdr, current_offset)
      bfd *abfd;
      struct header *file_hdr;
@@ -1931,7 +1958,7 @@ setup_sections (abfd, file_hdr, current_offset)
        goto error_return;
 
       /* Setup the start address and file loc from the first subspace
-         record.  */
+        record.  */
       space_asect->vma = subspace.subspace_start;
       space_asect->filepos = subspace.file_loc_init_value + current_offset;
       space_asect->alignment_power = log2 (subspace.alignment);
@@ -2066,7 +2093,7 @@ setup_sections (abfd, file_hdr, current_offset)
        }
 
       /* This can happen for a .o which defines symbols in otherwise
-         empty subspaces.  */
+        empty subspaces.  */
       if (!save_subspace.file_loc_init_value)
        {
          space_asect->_cooked_size = 0;
@@ -2114,7 +2141,7 @@ setup_sections (abfd, file_hdr, current_offset)
   if (subspace_sections != NULL)
     free (subspace_sections);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (space_strings != NULL)
@@ -2122,7 +2149,7 @@ setup_sections (abfd, file_hdr, current_offset)
 
   if (subspace_sections != NULL)
     free (subspace_sections);
-  return false;
+  return FALSE;
 }
 
 /* Read in a SOM object and make it into a BFD.  */
@@ -2269,7 +2296,7 @@ som_object_p (abfd)
 
 /* Create a SOM object.  */
 
-static boolean
+static bfd_boolean
 som_mkobject (abfd)
      bfd *abfd;
 {
@@ -2277,15 +2304,15 @@ som_mkobject (abfd)
   abfd->tdata.som_data = (struct som_data_struct *)
     bfd_zalloc (abfd, (bfd_size_type) sizeof (struct som_data_struct));
   if (abfd->tdata.som_data == NULL)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
 /* Initialize some information in the file header.  This routine makes
    not attempt at doing the right thing for a full executable; it
    is only meant to handle relocatable objects.  */
 
-static boolean
+static bfd_boolean
 som_prep_headers (abfd)
      bfd *abfd;
 {
@@ -2296,7 +2323,7 @@ som_prep_headers (abfd)
   /* Make and attach a file header to the BFD.  */
   file_hdr = (struct header *) bfd_zalloc (abfd, amt);
   if (file_hdr == NULL)
-    return false;
+    return FALSE;
   obj_som_file_hdr (abfd) = file_hdr;
 
   if (abfd->flags & (EXEC_P | DYNAMIC))
@@ -2307,7 +2334,7 @@ som_prep_headers (abfd)
       obj_som_exec_hdr (abfd) =
        (struct som_exec_auxhdr *) bfd_zalloc (abfd, amt);
       if (obj_som_exec_hdr (abfd) == NULL)
-       return false;
+       return FALSE;
 
       if (abfd->flags & D_PAGED)
        file_hdr->a_magic = DEMAND_MAGIC;
@@ -2351,7 +2378,7 @@ som_prep_headers (abfd)
          som_section_data (section)->space_dict =
            (struct space_dictionary_record *) bfd_zalloc (abfd, amt);
          if (som_section_data (section)->space_dict == NULL)
-           return false;
+           return FALSE;
          /* Set space attributes.  Note most attributes of SOM spaces
             are set based on the subspaces it contains.  */
          som_section_data (section)->space_dict->loader_fix_index = -1;
@@ -2374,7 +2401,7 @@ som_prep_headers (abfd)
          som_section_data (section)->subspace_dict =
            (struct subspace_dictionary_record *) bfd_zalloc (abfd, amt);
          if (som_section_data (section)->subspace_dict == NULL)
-           return false;
+           return FALSE;
 
          /* Set subspace attributes.  Basic stuff is done here, additional
             attributes are filled in later as more information becomes
@@ -2409,58 +2436,58 @@ som_prep_headers (abfd)
            som_section_data (section)->copy_data->quadrant;
        }
     }
-  return true;
+  return TRUE;
 }
 
-/* Return true if the given section is a SOM space, false otherwise.  */
+/* Return TRUE if the given section is a SOM space, FALSE otherwise.  */
 
-static boolean
+static bfd_boolean
 som_is_space (section)
      asection *section;
 {
   /* If no copy data is available, then it's neither a space nor a
      subspace.  */
   if (som_section_data (section)->copy_data == NULL)
-    return false;
+    return FALSE;
 
   /* If the containing space isn't the same as the given section,
      then this isn't a space.  */
   if (som_section_data (section)->copy_data->container != section
       && (som_section_data (section)->copy_data->container->output_section
          != section))
-    return false;
+    return FALSE;
 
   /* OK.  Must be a space.  */
-  return true;
+  return TRUE;
 }
 
-/* Return true if the given section is a SOM subspace, false otherwise.  */
+/* Return TRUE if the given section is a SOM subspace, FALSE otherwise.  */
 
-static boolean
+static bfd_boolean
 som_is_subspace (section)
      asection *section;
 {
   /* If no copy data is available, then it's neither a space nor a
      subspace.  */
   if (som_section_data (section)->copy_data == NULL)
-    return false;
+    return FALSE;
 
   /* If the containing space is the same as the given section,
      then this isn't a subspace.  */
   if (som_section_data (section)->copy_data->container == section
       || (som_section_data (section)->copy_data->container->output_section
          == section))
-    return false;
+    return FALSE;
 
   /* OK.  Must be a subspace.  */
-  return true;
+  return TRUE;
 }
 
-/* Return true if the given space containins the given subspace.  It
+/* Return TRUE if the given space containins the given subspace.  It
    is safe to assume space really is a space, and subspace really
    is a subspace.  */
 
-static boolean
+static bfd_boolean
 som_is_container (space, subspace)
      asection *space, *subspace;
 {
@@ -2658,7 +2685,7 @@ som_prep_for_fixups (abfd, syms, num_syms)
     }
 }
 
-static boolean
+static bfd_boolean
 som_write_fixups (abfd, current_offset, total_reloc_sizep)
      bfd *abfd;
      unsigned long current_offset;
@@ -2728,7 +2755,7 @@ som_write_fixups (abfd, current_offset, total_reloc_sizep)
             for this subspace in preparation for writing out its fixup
             stream.  */
          if (bfd_seek (abfd, current_offset + total_reloc_size, SEEK_SET) != 0)
-           return false;
+           return FALSE;
 
          /* Buffer space has already been allocated.  Just perform some
             initialization here.  */
@@ -2767,7 +2794,7 @@ som_write_fixups (abfd, current_offset, total_reloc_sizep)
                {
                  amt = p - tmp_space;
                  if (bfd_bwrite ((PTR) tmp_space, amt, abfd) != amt)
-                   return false;
+                   return FALSE;
 
                  p = tmp_space;
                  som_initialize_reloc_queue (reloc_queue);
@@ -3028,14 +3055,14 @@ som_write_fixups (abfd, current_offset, total_reloc_sizep)
 
          /* Last BFD relocation for a subspace has been processed.
             Map the rest of the subspace with R_NO_RELOCATION fixups.  */
-         p = som_reloc_skip (abfd, bfd_section_size (abfd, subsection)
-                                     - reloc_offset,
+         p = som_reloc_skip (abfd, (bfd_section_size (abfd, subsection)
+                                    - reloc_offset),
                              p, &subspace_reloc_size, reloc_queue);
 
          /* Scribble out the relocations.  */
          amt = p - tmp_space;
          if (bfd_bwrite ((PTR) tmp_space, amt, abfd) != amt)
-           return false;
+           return FALSE;
          p = tmp_space;
 
          total_reloc_size += subspace_reloc_size;
@@ -3045,12 +3072,12 @@ som_write_fixups (abfd, current_offset, total_reloc_sizep)
       section = section->next;
     }
   *total_reloc_sizep = total_reloc_size;
-  return true;
+  return TRUE;
 }
 
 /* Write out the space/subspace string table.  */
 
-static boolean
+static bfd_boolean
 som_write_space_strings (abfd, current_offset, string_sizep)
      bfd *abfd;
      unsigned long current_offset;
@@ -3068,7 +3095,7 @@ som_write_space_strings (abfd, current_offset, string_sizep)
   /* Seek to the start of the space strings in preparation for writing
      them out.  */
   if (bfd_seek (abfd, (file_ptr) current_offset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   /* Walk through all the spaces and subspaces (order is not important)
      building up and writing string table entries for their names.  */
@@ -3085,27 +3112,27 @@ som_write_space_strings (abfd, current_offset, string_sizep)
       length = strlen (section->name);
 
       /* If there is not enough room for the next entry, then dump the
-         current buffer contents now and maybe allocate a larger
-         buffer.  Each entry will take 4 bytes to hold the string
-         length + the string itself + null terminator.  */
+        current buffer contents now and maybe allocate a larger
+        buffer.  Each entry will take 4 bytes to hold the string
+        length + the string itself + null terminator.  */
       if (p - tmp_space + 5 + length > tmp_space_size)
        {
          /* Flush buffer before refilling or reallocating.  */
          amt = p - tmp_space;
          if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt)
-           return false;
+           return FALSE;
 
          /* Reallocate if now empty buffer still too small.  */
          if (5 + length > tmp_space_size)
            {
              /* Ensure a minimum growth factor to avoid O(n**2) space
-                 consumption for n strings.  The optimal minimum
-                 factor seems to be 2, as no other value can guarantee
-                 wasting less than 50% space.  (Note that we cannot
-                 deallocate space allocated by `alloca' without
-                 returning from this function.)  The same technique is
-                 used a few more times below when a buffer is
-                 reallocated.  */
+                consumption for n strings.  The optimal minimum
+                factor seems to be 2, as no other value can guarantee
+                wasting less than 50% space.  (Note that we cannot
+                deallocate space allocated by `alloca' without
+                returning from this function.)  The same technique is
+                used a few more times below when a buffer is
+                reallocated.  */
              tmp_space_size = MAX (2 * tmp_space_size, 5 + length);
              tmp_space = alloca (tmp_space_size);
            }
@@ -3144,14 +3171,14 @@ som_write_space_strings (abfd, current_offset, string_sizep)
      contained in a partial block.  */
   amt = p - tmp_space;
   if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt)
-    return false;
+    return FALSE;
   *string_sizep = strings_size;
-  return true;
+  return TRUE;
 }
 
 /* Write out the symbol string table.  */
 
-static boolean
+static bfd_boolean
 som_write_symbol_strings (abfd, current_offset, syms, num_syms, string_sizep,
                          compilation_unit)
      bfd *abfd;
@@ -3190,7 +3217,7 @@ som_write_symbol_strings (abfd, current_offset, syms, num_syms, string_sizep,
   /* Seek to the start of the space strings in preparation for writing
      them out.  */
   if (bfd_seek (abfd, (file_ptr) current_offset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (compilation_unit)
     {
@@ -3206,7 +3233,7 @@ som_write_symbol_strings (abfd, current_offset, syms, num_syms, string_sizep,
              /* Flush buffer before refilling or reallocating.  */
              amt = p - tmp_space;
              if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt)
-               return false;
+               return FALSE;
 
              /* Reallocate if now empty buffer still too small.  */
              if (5 + length > tmp_space_size)
@@ -3217,7 +3244,7 @@ som_write_symbol_strings (abfd, current_offset, syms, num_syms, string_sizep,
                }
 
              /* Reset to beginning of the (possibly new) buffer
-                 space.  */
+                space.  */
              p = tmp_space;
            }
 
@@ -3275,7 +3302,7 @@ som_write_symbol_strings (abfd, current_offset, syms, num_syms, string_sizep,
          /* Flush buffer before refilling or reallocating.  */
          amt = p - tmp_space;
          if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt)
-           return false;
+           return FALSE;
 
          /* Reallocate if now empty buffer still too small.  */
          if (5 + length > tmp_space_size)
@@ -3316,17 +3343,17 @@ som_write_symbol_strings (abfd, current_offset, syms, num_syms, string_sizep,
   /* Scribble out any partial block.  */
   amt = p - tmp_space;
   if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   *string_sizep = strings_size;
-  return true;
+  return TRUE;
 }
 
 /* Compute variable information to be placed in the SOM headers,
    space/subspace dictionaries, relocation streams, etc.  Begin
    writing parts of the object file.  */
 
-static boolean
+static bfd_boolean
 som_begin_writing (abfd)
      bfd *abfd;
 {
@@ -3372,14 +3399,14 @@ som_begin_writing (abfd)
       bfd_size_type len;
 
       if (bfd_seek (abfd, (file_ptr) current_offset, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       /* Write the aux_id structure and the string length.  */
       len = sizeof (struct aux_id) + sizeof (unsigned int);
       obj_som_file_hdr (abfd)->aux_header_size += len;
       current_offset += len;
       if (bfd_bwrite ((PTR) obj_som_version_hdr (abfd), len, abfd) != len)
-       return false;
+       return FALSE;
 
       /* Write the version string.  */
       len = obj_som_version_hdr (abfd)->header_id.length - sizeof (int);
@@ -3387,7 +3414,7 @@ som_begin_writing (abfd)
       current_offset += len;
       if (bfd_bwrite ((PTR) obj_som_version_hdr (abfd)->user_string, len, abfd)
          != len)
-       return false;
+       return FALSE;
     }
 
   if (obj_som_copyright_hdr (abfd) != NULL)
@@ -3395,14 +3422,14 @@ som_begin_writing (abfd)
       bfd_size_type len;
 
       if (bfd_seek (abfd, (file_ptr) current_offset, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       /* Write the aux_id structure and the string length.  */
       len = sizeof (struct aux_id) + sizeof (unsigned int);
       obj_som_file_hdr (abfd)->aux_header_size += len;
       current_offset += len;
       if (bfd_bwrite ((PTR) obj_som_copyright_hdr (abfd), len, abfd) != len)
-       return false;
+       return FALSE;
 
       /* Write the copyright string.  */
       len = obj_som_copyright_hdr (abfd)->header_id.length - sizeof (int);
@@ -3410,7 +3437,7 @@ som_begin_writing (abfd)
       current_offset += len;
       if (bfd_bwrite ((PTR) obj_som_copyright_hdr (abfd)->copyright, len, abfd)
          != len)
-       return false;
+       return FALSE;
     }
 
   /* Next comes the initialization pointers; we have no initialization
@@ -3458,7 +3485,7 @@ som_begin_writing (abfd)
 
   /* Scribble out the space strings.  */
   if (! som_write_space_strings (abfd, current_offset, &strings_size))
-    return false;
+    return FALSE;
 
   /* Record total string table size in the header and update the
      current offset.  */
@@ -3655,9 +3682,9 @@ som_begin_writing (abfd)
   if (abfd->flags & (EXEC_P | DYNAMIC))
     current_offset = SOM_ALIGN (current_offset, PA_PAGESIZE);
   if (bfd_seek (abfd, (file_ptr) current_offset - 1, SEEK_SET) != 0)
-    return false;
+    return FALSE;
   if (bfd_bwrite ((PTR) "", (bfd_size_type) 1, abfd) != 1)
-    return false;
+    return FALSE;
 
   obj_som_file_hdr (abfd)->unloadable_sp_size
     = current_offset - obj_som_file_hdr (abfd)->unloadable_sp_location;
@@ -3669,12 +3696,12 @@ som_begin_writing (abfd)
   /* Done.  Store the total size of the SOM so far.  */
   obj_som_file_hdr (abfd)->som_length = current_offset;
 
-  return true;
+  return TRUE;
 }
 
 /* Finally, scribble out the various headers to the disk.  */
 
-static boolean
+static bfd_boolean
 som_finish_writing (abfd)
      bfd *abfd;
 {
@@ -3730,7 +3757,7 @@ som_finish_writing (abfd)
   if (! som_write_symbol_strings (abfd, current_offset, syms,
                                  num_syms, &strings_size,
                                  obj_som_compilation_unit (abfd)))
-    return false;
+    return FALSE;
 
   /* Record total string table size in header and update the
      current offset.  */
@@ -3751,7 +3778,7 @@ som_finish_writing (abfd)
   /* Write the fixups and update fields in subspace headers which
      relate to the fixup stream.  */
   if (! som_write_fixups (abfd, current_offset, &total_reloc_size))
-    return false;
+    return FALSE;
 
   /* Record the total size of the fixup stream in the file header.  */
   obj_som_file_hdr (abfd)->fixup_request_total = total_reloc_size;
@@ -3762,7 +3789,7 @@ som_finish_writing (abfd)
   /* Now that the symbol table information is complete, build and
      write the symbol table.  */
   if (! som_build_and_write_symbol_table (abfd))
-    return false;
+    return FALSE;
 
   /* Subspaces are written first so that we can set up information
      about them in their containing spaces as the subspace is written.  */
@@ -3770,7 +3797,7 @@ som_finish_writing (abfd)
   /* Seek to the start of the subspace dictionary records.  */
   location = obj_som_file_hdr (abfd)->subspace_location;
   if (bfd_seek (abfd, location, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   section = abfd->sections;
   /* Now for each loadable space write out records for its subspaces.  */
@@ -3820,7 +3847,7 @@ som_finish_writing (abfd)
          amt = sizeof (struct subspace_dictionary_record);
          if (bfd_bwrite ((PTR) som_section_data (subsection)->subspace_dict,
                         amt, abfd) != amt)
-           return false;
+           return FALSE;
        }
       /* Goto the next section.  */
       section = section->next;
@@ -3876,7 +3903,7 @@ som_finish_writing (abfd)
          amt = sizeof (struct subspace_dictionary_record);
          if (bfd_bwrite ((PTR) som_section_data (subsection)->subspace_dict,
                         amt, abfd) != amt)
-           return false;
+           return FALSE;
        }
       /* Goto the next section.  */
       section = section->next;
@@ -3889,7 +3916,7 @@ som_finish_writing (abfd)
      dictionary records.  */
   location = obj_som_file_hdr (abfd)->space_location;
   if (bfd_seek (abfd, location, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   section = abfd->sections;
   for (i = 0; i < num_spaces; i++)
@@ -3902,7 +3929,7 @@ som_finish_writing (abfd)
       amt = sizeof (struct space_dictionary_record);
       if (bfd_bwrite ((PTR) som_section_data (section)->space_dict,
                     amt, abfd) != amt)
-       return false;
+       return FALSE;
 
       /* Goto the next section.  */
       section = section->next;
@@ -3913,11 +3940,11 @@ som_finish_writing (abfd)
     {
       location = obj_som_file_hdr (abfd)->compiler_location;
       if (bfd_seek (abfd, location, SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       amt = COMPUNITSZ;
       if (bfd_bwrite ((PTR) obj_som_compilation_unit (abfd), amt, abfd) != amt)
-       return false;
+       return FALSE;
     }
 
   /* Setting of the system_id has to happen very late now that copying of
@@ -3938,10 +3965,10 @@ som_finish_writing (abfd)
   /* Only thing left to do is write out the file header.  It is always
      at location zero.  Seek there and write it.  */
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
-    return false;
+    return FALSE;
   amt = sizeof (struct header);
   if (bfd_bwrite ((PTR) obj_som_file_hdr (abfd), amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Now write the exec header.  */
   if (abfd->flags & (EXEC_P | DYNAMIC))
@@ -3970,18 +3997,18 @@ som_finish_writing (abfd)
          || exec_header->exec_dfile + exec_header->exec_dsize > som_length)
        {
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
 
       if (bfd_seek (abfd, obj_som_file_hdr (abfd)->aux_header_location,
                    SEEK_SET) != 0)
-       return false;
+       return FALSE;
 
       amt = AUX_HDR_SIZE;
       if (bfd_bwrite ((PTR) exec_header, amt, abfd) != amt)
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Compute and return the checksum for a SOM file header.  */
@@ -4116,16 +4143,16 @@ som_bfd_derive_misc_symbol_info (abfd, sym, info)
 
   /* The secondary_def field is for weak symbols.  */
   if (sym->flags & BSF_WEAK)
-    info->secondary_def = true;
+    info->secondary_def = TRUE;
   else
-    info->secondary_def = false;
+    info->secondary_def = FALSE;
 
 }
 
 /* Build and write, in one big chunk, the entire symbol table for
    this BFD.  */
 
-static boolean
+static bfd_boolean
 som_build_and_write_symbol_table (abfd)
      bfd *abfd;
 {
@@ -4170,23 +4197,23 @@ som_build_and_write_symbol_table (abfd)
   /* Everything is ready, seek to the right location and
      scribble out the symbol table.  */
   if (bfd_seek (abfd, symtab_location, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (bfd_bwrite ((PTR) som_symtab, symtab_size, abfd) != symtab_size)
     goto error_return;
 
   if (som_symtab != NULL)
     free (som_symtab);
-  return true;
+  return TRUE;
  error_return:
   if (som_symtab != NULL)
     free (som_symtab);
-  return false;
+  return FALSE;
 }
 
 /* Write an object in SOM format.  */
 
-static boolean
+static bfd_boolean
 som_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -4195,7 +4222,7 @@ som_write_object_contents (abfd)
       /* Set up fixed parts of the file, space, and subspace headers.
         Notify the world that output has begun.  */
       som_prep_headers (abfd);
-      abfd->output_has_begun = true;
+      abfd->output_has_begun = TRUE;
       /* Start writing the object file.  This include all the string
         tables, fixup streams, and other portions of the object file.  */
       som_begin_writing (abfd);
@@ -4206,7 +4233,7 @@ som_write_object_contents (abfd)
 \f
 /* Read and save the string table associated with the given BFD.  */
 
-static boolean
+static bfd_boolean
 som_slurp_string_table (abfd)
      bfd *abfd;
 {
@@ -4215,7 +4242,7 @@ som_slurp_string_table (abfd)
 
   /* Use the saved version if its available.  */
   if (obj_som_stringtab (abfd) != NULL)
-    return true;
+    return TRUE;
 
   /* I don't think this can currently happen, and I'm not sure it should
      really be an error, but it's better than getting unpredictable results
@@ -4223,24 +4250,24 @@ som_slurp_string_table (abfd)
   if (obj_som_stringtab_size (abfd) == 0)
     {
       bfd_set_error (bfd_error_no_symbols);
-      return false;
+      return FALSE;
     }
 
   /* Allocate and read in the string table.  */
   amt = obj_som_stringtab_size (abfd);
   stringtab = bfd_zmalloc (amt);
   if (stringtab == NULL)
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, obj_som_str_filepos (abfd), SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (bfd_bread (stringtab, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Save our results and return success.  */
   obj_som_stringtab (abfd) = stringtab;
-  return true;
+  return TRUE;
 }
 
 /* Return the amount of data (in bytes) required to hold the symbol
@@ -4471,7 +4498,7 @@ som_slurp_symbol_table (abfd)
        sym->symbol.flags |= BSF_DEBUGGING;
 
       /* Note increment at bottom of loop, since we skip some symbols
-         we can not include it as part of the for statement.  */
+        we can not include it as part of the for statement.  */
       sym++;
     }
 
@@ -4484,12 +4511,12 @@ som_slurp_symbol_table (abfd)
  successful_return:
   if (buf != NULL)
     free (buf);
-  return (true);
+  return (TRUE);
 
  error_return:
   if (buf != NULL)
     free (buf);
-  return false;
+  return FALSE;
 }
 
 /* Canonicalize a SOM symbol table.  Return the number of entries
@@ -4563,7 +4590,7 @@ som_print_symbol (abfd, afile, symbol, how)
     }
 }
 
-static boolean
+static bfd_boolean
 som_bfd_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
@@ -4591,7 +4618,7 @@ som_set_reloc_info (fixup, end, internal_relocs, section, symbols, just_count)
      arelent *internal_relocs;
      asection *section;
      asymbol **symbols;
-     boolean just_count;
+     bfd_boolean just_count;
 {
   unsigned int op, varname, deallocate_contents = 0;
   unsigned char *end_fixups = &fixup[end];
@@ -4881,7 +4908,7 @@ som_set_reloc_info (fixup, end, internal_relocs, section, symbols, just_count)
                  if (rptr->addend == 0 && !section->contents)
                    {
                      /* Got to read the damn contents first.  We don't
-                        bother saving the contents (yet).  Add it one
+                        bother saving the contents (yet).  Add it one
                         day if the need arises.  */
                      section->contents = bfd_malloc (section->_raw_size);
                      if (section->contents == NULL)
@@ -4925,15 +4952,15 @@ som_set_reloc_info (fixup, end, internal_relocs, section, symbols, just_count)
 /* Read in the relocs (aka fixups in SOM terms) for a section.
 
    som_get_reloc_upper_bound calls this routine with JUST_COUNT
-   set to true to indicate it only needs a count of the number
+   set to TRUE to indicate it only needs a count of the number
    of actual relocations.  */
 
-static boolean
+static bfd_boolean
 som_slurp_reloc_table (abfd, section, symbols, just_count)
      bfd *abfd;
      asection *section;
      asymbol **symbols;
-     boolean just_count;
+     bfd_boolean just_count;
 {
   char *external_relocs;
   unsigned int fixup_stream_size;
@@ -4944,7 +4971,7 @@ som_slurp_reloc_table (abfd, section, symbols, just_count)
   fixup_stream_size = som_section_data (section)->reloc_size;
   /* If there were no relocations, then there is nothing to do.  */
   if (section->reloc_count == 0)
-    return true;
+    return TRUE;
 
   /* If reloc_count is -1, then the relocation stream has not been
      parsed.  We must do so now to know how many relocations exist.  */
@@ -4953,45 +4980,45 @@ som_slurp_reloc_table (abfd, section, symbols, just_count)
       amt = fixup_stream_size;
       external_relocs = (char *) bfd_malloc (amt);
       if (external_relocs == (char *) NULL)
-       return false;
+       return FALSE;
       /* Read in the external forms.  */
       if (bfd_seek (abfd,
                    obj_som_reloc_filepos (abfd) + section->rel_filepos,
                    SEEK_SET)
          != 0)
-       return false;
+       return FALSE;
       if (bfd_bread (external_relocs, amt, abfd) != amt)
-       return false;
+       return FALSE;
 
       /* Let callers know how many relocations found.
         also save the relocation stream as we will
         need it again.  */
       section->reloc_count = som_set_reloc_info (external_relocs,
                                                 fixup_stream_size,
-                                                NULL, NULL, NULL, true);
+                                                NULL, NULL, NULL, TRUE);
 
       som_section_data (section)->reloc_stream = external_relocs;
     }
 
   /* If the caller only wanted a count, then return now.  */
   if (just_count)
-    return true;
+    return TRUE;
 
   num_relocs = section->reloc_count;
   external_relocs = som_section_data (section)->reloc_stream;
   /* Return saved information about the relocations if it is available.  */
   if (section->relocation != (arelent *) NULL)
-    return true;
+    return TRUE;
 
   amt = num_relocs;
   amt *= sizeof (arelent);
   internal_relocs = (arelent *) bfd_zalloc (abfd, (amt));
   if (internal_relocs == (arelent *) NULL)
-    return false;
+    return FALSE;
 
   /* Process and internalize the relocations.  */
   som_set_reloc_info (external_relocs, fixup_stream_size,
-                     internal_relocs, section, symbols, false);
+                     internal_relocs, section, symbols, FALSE);
 
   /* We're done with the external relocations.  Free them.  */
   free (external_relocs);
@@ -4999,7 +5026,7 @@ som_slurp_reloc_table (abfd, section, symbols, just_count)
 
   /* Save our results and return success.  */
   section->relocation = internal_relocs;
-  return (true);
+  return TRUE;
 }
 
 /* Return the number of bytes required to store the relocation
@@ -5014,7 +5041,7 @@ som_get_reloc_upper_bound (abfd, asect)
      and parse it to determine how many relocations exist.  */
   if (asect->flags & SEC_RELOC)
     {
-      if (! som_slurp_reloc_table (abfd, asect, NULL, true))
+      if (! som_slurp_reloc_table (abfd, asect, NULL, TRUE))
        return -1;
       return (asect->reloc_count + 1) * sizeof (arelent *);
     }
@@ -5035,7 +5062,7 @@ som_canonicalize_reloc (abfd, section, relptr, symbols)
   arelent *tblptr;
   int count;
 
-  if (! som_slurp_reloc_table (abfd, section, symbols, false))
+  if (! som_slurp_reloc_table (abfd, section, symbols, FALSE))
     return -1;
 
   count = section->reloc_count;
@@ -5052,7 +5079,7 @@ extern const bfd_target som_vec;
 
 /* A hook to set up object file dependent section information.  */
 
-static boolean
+static bfd_boolean
 som_new_section_hook (abfd, newsect)
      bfd *abfd;
      asection *newsect;
@@ -5060,17 +5087,17 @@ som_new_section_hook (abfd, newsect)
   bfd_size_type amt = sizeof (struct som_section_data_struct);
   newsect->used_by_bfd = (PTR) bfd_zalloc (abfd, amt);
   if (!newsect->used_by_bfd)
-    return false;
+    return FALSE;
   newsect->alignment_power = 3;
 
   /* We allow more than three sections internally.  */
-  return true;
+  return TRUE;
 }
 
 /* Copy any private info we understand from the input symbol
    to the output symbol.  */
 
-static boolean
+static bfd_boolean
 som_bfd_copy_private_symbol_data (ibfd, isymbol, obfd, osymbol)
      bfd *ibfd;
      asymbol *isymbol;
@@ -5083,20 +5110,20 @@ som_bfd_copy_private_symbol_data (ibfd, isymbol, obfd, osymbol)
   /* One day we may try to grok other private data.  */
   if (ibfd->xvec->flavour != bfd_target_som_flavour
       || obfd->xvec->flavour != bfd_target_som_flavour)
-    return false;
+    return FALSE;
 
   /* The only private information we need to copy is the argument relocation
      bits.  */
   output_symbol->tc_data.ap.hppa_arg_reloc =
     input_symbol->tc_data.ap.hppa_arg_reloc;
 
-  return true;
+  return TRUE;
 }
 
 /* Copy any private info we understand from the input section
    to the output section.  */
 
-static boolean
+static bfd_boolean
 som_bfd_copy_private_section_data (ibfd, isection, obfd, osection)
      bfd *ibfd;
      asection *isection;
@@ -5109,13 +5136,13 @@ som_bfd_copy_private_section_data (ibfd, isection, obfd, osection)
   if (ibfd->xvec->flavour != bfd_target_som_flavour
       || obfd->xvec->flavour != bfd_target_som_flavour
       || (!som_is_space (isection) && !som_is_subspace (isection)))
-    return true;
+    return TRUE;
 
   amt = sizeof (struct som_copyable_section_data_struct);
   som_section_data (osection)->copy_data =
     (struct som_copyable_section_data_struct *) bfd_zalloc (obfd, amt);
   if (som_section_data (osection)->copy_data == NULL)
-    return false;
+    return FALSE;
 
   memcpy (som_section_data (osection)->copy_data,
          som_section_data (isection)->copy_data,
@@ -5126,38 +5153,38 @@ som_bfd_copy_private_section_data (ibfd, isection, obfd, osection)
     som_section_data (osection)->copy_data->container =
       som_section_data (osection)->copy_data->container->output_section;
 
-  return true;
+  return TRUE;
 }
 
 /* Copy any private info we understand from the input bfd
    to the output bfd.  */
 
-static boolean
+static bfd_boolean
 som_bfd_copy_private_bfd_data (ibfd, obfd)
      bfd *ibfd, *obfd;
 {
   /* One day we may try to grok other private data.  */
   if (ibfd->xvec->flavour != bfd_target_som_flavour
       || obfd->xvec->flavour != bfd_target_som_flavour)
-    return true;
+    return TRUE;
 
   /* Allocate some memory to hold the data we need.  */
   obj_som_exec_data (obfd) = (struct som_exec_data *)
     bfd_zalloc (obfd, (bfd_size_type) sizeof (struct som_exec_data));
   if (obj_som_exec_data (obfd) == NULL)
-    return false;
+    return FALSE;
 
   /* Now copy the data.  */
   memcpy (obj_som_exec_data (obfd), obj_som_exec_data (ibfd),
          sizeof (struct som_exec_data));
 
-  return true;
+  return TRUE;
 }
 
 /* Set backend info for sections which can not be described
    in the BFD data structures.  */
 
-boolean
+bfd_boolean
 bfd_som_set_section_attributes (section, defined, private, sort_key, spnum)
      asection *section;
      int defined;
@@ -5173,20 +5200,20 @@ bfd_som_set_section_attributes (section, defined, private, sort_key, spnum)
        (struct som_copyable_section_data_struct *) bfd_zalloc (section->owner,
                                                                amt);
       if (som_section_data (section)->copy_data == NULL)
-       return false;
+       return FALSE;
     }
   som_section_data (section)->copy_data->sort_key = sort_key;
   som_section_data (section)->copy_data->is_defined = defined;
   som_section_data (section)->copy_data->is_private = private;
   som_section_data (section)->copy_data->container = section;
   som_section_data (section)->copy_data->space_number = spnum;
-  return true;
+  return TRUE;
 }
 
 /* Set backend info for subsections which can not be described
    in the BFD data structures.  */
 
-boolean
+bfd_boolean
 bfd_som_set_subsection_attributes (section, container, access,
                                   sort_key, quadrant)
      asection *section;
@@ -5203,13 +5230,13 @@ bfd_som_set_subsection_attributes (section, container, access,
        (struct som_copyable_section_data_struct *) bfd_zalloc (section->owner,
                                                                amt);
       if (som_section_data (section)->copy_data == NULL)
-       return false;
+       return FALSE;
     }
   som_section_data (section)->copy_data->sort_key = sort_key;
   som_section_data (section)->copy_data->access_control_bits = access;
   som_section_data (section)->copy_data->quadrant = quadrant;
   som_section_data (section)->copy_data->container = container;
-  return true;
+  return TRUE;
 }
 
 /* Set the full SOM symbol type.  SOM needs far more symbol information
@@ -5229,7 +5256,7 @@ bfd_som_set_symbol_type (symbol, type)
 /* Attach an auxiliary header to the BFD backend so that it may be
    written into the object file.  */
 
-boolean
+bfd_boolean
 bfd_som_attach_aux_hdr (abfd, type, string)
      bfd *abfd;
      int type;
@@ -5248,7 +5275,7 @@ bfd_som_attach_aux_hdr (abfd, type, string)
       obj_som_version_hdr (abfd) =
        (struct user_string_aux_hdr *) bfd_zalloc (abfd, amt);
       if (!obj_som_version_hdr (abfd))
-       return false;
+       return FALSE;
       obj_som_version_hdr (abfd)->header_id.type = VERSION_AUX_ID;
       obj_som_version_hdr (abfd)->header_id.length = len + pad;
       obj_som_version_hdr (abfd)->header_id.length += sizeof (int);
@@ -5266,20 +5293,20 @@ bfd_som_attach_aux_hdr (abfd, type, string)
       obj_som_copyright_hdr (abfd) =
        (struct copyright_aux_hdr *) bfd_zalloc (abfd, amt);
       if (!obj_som_copyright_hdr (abfd))
-       return false;
+       return FALSE;
       obj_som_copyright_hdr (abfd)->header_id.type = COPYRIGHT_AUX_ID;
       obj_som_copyright_hdr (abfd)->header_id.length = len + pad;
       obj_som_copyright_hdr (abfd)->header_id.length += sizeof (int);
       obj_som_copyright_hdr (abfd)->string_length = len;
       strcpy (obj_som_copyright_hdr (abfd)->copyright, string);
     }
-  return true;
+  return TRUE;
 }
 
-/* Attach an compilation unit header to the BFD backend so that it may be
+/* Attach a compilation unit header to the BFD backend so that it may be
    written into the object file.  */
 
-boolean
+bfd_boolean
 bfd_som_attach_compilation_unit (abfd, name, language_name, product_id,
                                 version_id)
      bfd *abfd;
@@ -5290,14 +5317,14 @@ bfd_som_attach_compilation_unit (abfd, name, language_name, product_id,
 {
   COMPUNIT *n = (COMPUNIT *) bfd_zalloc (abfd, (bfd_size_type) COMPUNITSZ);
   if (n == NULL)
-    return false;
+    return FALSE;
 
 #define STRDUP(f) \
   if (f != NULL) \
     { \
       n->f.n_name = bfd_alloc (abfd, (bfd_size_type) strlen (f) + 1); \
       if (n->f.n_name == NULL) \
-       return false; \
+       return FALSE; \
       strcpy (n->f.n_name, f); \
     }
 
@@ -5310,10 +5337,10 @@ bfd_som_attach_compilation_unit (abfd, name, language_name, product_id,
 
   obj_som_compilation_unit (abfd) = n;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 som_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -5322,15 +5349,15 @@ som_get_section_contents (abfd, section, location, offset, count)
      bfd_size_type count;
 {
   if (count == 0 || ((section->flags & SEC_HAS_CONTENTS) == 0))
-    return true;
+    return TRUE;
   if ((bfd_size_type) (offset+count) > section->_raw_size
       || bfd_seek (abfd, (file_ptr) (section->filepos + offset), SEEK_SET) != 0
       || bfd_bread (location, count, abfd) != count)
-    return (false); /* on error */
-  return (true);
+    return FALSE; /* on error */
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 som_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -5343,7 +5370,7 @@ som_set_section_contents (abfd, section, location, offset, count)
       /* Set up fixed parts of the file, space, and subspace headers.
         Notify the world that output has begun.  */
       som_prep_headers (abfd);
-      abfd->output_has_begun = true;
+      abfd->output_has_begun = TRUE;
       /* Start writing the object file.  This include all the string
         tables, fixup streams, and other portions of the object file.  */
       som_begin_writing (abfd);
@@ -5353,20 +5380,20 @@ som_set_section_contents (abfd, section, location, offset, count)
      are not generated at run time by the OS).  */
   if (!som_is_subspace (section)
       || ((section->flags & SEC_HAS_CONTENTS) == 0))
-    return true;
+    return TRUE;
 
   /* Seek to the proper offset within the object file and write the
      data.  */
   offset += som_section_data (section)->subspace_dict->file_loc_init_value;
   if (bfd_seek (abfd, offset, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (bfd_bwrite ((PTR) location, count, abfd) != count)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 som_set_arch_mach (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -5376,7 +5403,7 @@ som_set_arch_mach (abfd, arch, machine)
   return bfd_default_set_arch_mach (abfd, arch, machine);
 }
 
-static boolean
+static bfd_boolean
 som_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
                       functionname_ptr, line_ptr)
      bfd *abfd ATTRIBUTE_UNUSED;
@@ -5387,18 +5414,18 @@ som_find_nearest_line (abfd, section, symbols, offset, filename_ptr,
      const char **functionname_ptr ATTRIBUTE_UNUSED;
      unsigned int *line_ptr ATTRIBUTE_UNUSED;
 {
-  return (false);
+  return FALSE;
 }
 
 static int
 som_sizeof_headers (abfd, reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean reloc ATTRIBUTE_UNUSED;
+     bfd_boolean reloc ATTRIBUTE_UNUSED;
 {
   (*_bfd_error_handler) (_("som_sizeof_headers unimplemented"));
   fflush (stderr);
   abort ();
-  return (0);
+  return 0;
 }
 
 /* Return the single-character symbol type corresponding to
@@ -5465,7 +5492,7 @@ som_get_symbol_info (ignore_abfd, symbol, ret)
 /* Count the number of symbols in the archive symbol table.  Necessary
    so that we can allocate space for all the carsyms at once.  */
 
-static boolean
+static bfd_boolean
 som_bfd_count_ar_symbols (abfd, lst_header, count)
      bfd *abfd;
      struct lst_header *lst_header;
@@ -5530,18 +5557,18 @@ som_bfd_count_ar_symbols (abfd, lst_header, count)
     }
   if (hash_table != NULL)
     free (hash_table);
-  return true;
+  return TRUE;
 
  error_return:
   if (hash_table != NULL)
     free (hash_table);
-  return false;
+  return FALSE;
 }
 
 /* Fill in the canonical archive symbols (SYMS) from the archive described
    by ABFD and LST_HEADER.  */
 
-static boolean
+static bfd_boolean
 som_bfd_fill_in_ar_symbols (abfd, lst_header, syms)
      bfd *abfd;
      struct lst_header *lst_header;
@@ -5671,19 +5698,19 @@ som_bfd_fill_in_ar_symbols (abfd, lst_header, syms)
     free (hash_table);
   if (som_dict != NULL)
     free (som_dict);
-  return true;
+  return TRUE;
 
  error_return:
   if (hash_table != NULL)
     free (hash_table);
   if (som_dict != NULL)
     free (som_dict);
-  return false;
+  return FALSE;
 }
 
 /* Read in the LST from the archive.  */
 
-static boolean
+static bfd_boolean
 som_slurp_armap (abfd)
      bfd *abfd;
 {
@@ -5697,29 +5724,29 @@ som_slurp_armap (abfd)
 
   /* Special cases.  */
   if (i == 0)
-    return true;
+    return TRUE;
   if (i != 16)
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
-    return false;
+    return FALSE;
 
   /* For archives without .o files there is no symbol table.  */
   if (strncmp (nextname, "/               ", 16))
     {
-      bfd_has_map (abfd) = false;
-      return true;
+      bfd_has_map (abfd) = FALSE;
+      return TRUE;
     }
 
   /* Read in and sanity check the archive header.  */
   amt = sizeof (struct ar_hdr);
   if (bfd_bread ((PTR) &ar_header, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   if (strncmp (ar_header.ar_fmag, ARFMAG, 2))
     {
       bfd_set_error (bfd_error_malformed_archive);
-      return false;
+      return FALSE;
     }
 
   /* How big is the archive symbol table entry?  */
@@ -5728,7 +5755,7 @@ som_slurp_armap (abfd)
   if (errno != 0)
     {
       bfd_set_error (bfd_error_malformed_archive);
-      return false;
+      return FALSE;
     }
 
   /* Save off the file offset of the first real user data.  */
@@ -5738,23 +5765,23 @@ som_slurp_armap (abfd)
      in just a minute.  */
   amt = sizeof (struct lst_header);
   if (bfd_bread ((PTR) &lst_header, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Sanity check.  */
   if (lst_header.a_magic != LIBMAGIC)
     {
       bfd_set_error (bfd_error_malformed_archive);
-      return false;
+      return FALSE;
     }
 
   /* Count the number of symbols in the library symbol table.  */
   if (! som_bfd_count_ar_symbols (abfd, &lst_header, &ardata->symdef_count))
-    return false;
+    return FALSE;
 
   /* Get back to the start of the library symbol table.  */
   if (bfd_seek (abfd, (ardata->first_file_filepos - parsed_size
                       + sizeof (struct lst_header)), SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   /* Initializae the cache and allocate space for the library symbols.  */
   ardata->cache = 0;
@@ -5762,20 +5789,20 @@ som_slurp_armap (abfd)
   amt *= sizeof (carsym);
   ardata->symdefs = (carsym *) bfd_alloc (abfd, amt);
   if (!ardata->symdefs)
-    return false;
+    return FALSE;
 
   /* Now fill in the canonical archive symbols.  */
   if (! som_bfd_fill_in_ar_symbols (abfd, &lst_header, &ardata->symdefs))
-    return false;
+    return FALSE;
 
   /* Seek back to the "first" file in the archive.  Note the "first"
      file may be the extended name table.  */
   if (bfd_seek (abfd, ardata->first_file_filepos, SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   /* Notify the generic archive code that we have a symbol map.  */
-  bfd_has_map (abfd) = true;
-  return true;
+  bfd_has_map (abfd) = TRUE;
+  return TRUE;
 }
 
 /* Begin preparing to write a SOM library symbol table.
@@ -5783,7 +5810,7 @@ som_slurp_armap (abfd)
    As part of the prep work we need to determine the number of symbols
    and the size of the associated string section.  */
 
-static boolean
+static bfd_boolean
 som_bfd_prep_for_ar_write (abfd, num_syms, stringsize)
      bfd *abfd;
      unsigned int *num_syms, *stringsize;
@@ -5812,7 +5839,7 @@ som_bfd_prep_for_ar_write (abfd, num_syms, stringsize)
         to it.  It's a little slimey to grab the symbols via obj_som_symtab,
         but doing so avoids allocating lots of extra memory.  */
       if (! som_slurp_symbol_table (curr_bfd))
-       return false;
+       return FALSE;
 
       sym = obj_som_symtab (curr_bfd);
       curr_count = bfd_get_symcount (curr_bfd);
@@ -5851,7 +5878,7 @@ som_bfd_prep_for_ar_write (abfd, num_syms, stringsize)
 
       curr_bfd = curr_bfd->next;
     }
-  return true;
+  return TRUE;
 }
 
 /* Hash a symbol name based on the hashing algorithm presented in the
@@ -5874,7 +5901,7 @@ som_bfd_ar_symbol_hash (symbol)
 /* Do the bulk of the work required to write the SOM library
    symbol table.  */
 
-static boolean
+static bfd_boolean
 som_bfd_ar_write_symbol_stuff (abfd, nsyms, string_size, lst, elength)
      bfd *abfd;
      unsigned int nsyms, string_size;
@@ -6111,7 +6138,7 @@ som_bfd_ar_write_symbol_stuff (abfd, nsyms, string_size, lst, elength)
     free (lst_syms);
   if (strings != NULL)
     free (strings);
-  return true;
+  return TRUE;
 
  error_return:
   if (hash_table != NULL)
@@ -6125,14 +6152,14 @@ som_bfd_ar_write_symbol_stuff (abfd, nsyms, string_size, lst, elength)
   if (strings != NULL)
     free (strings);
 
-  return false;
+  return FALSE;
 }
 
 /* Write out the LST for the archive.
 
    You'll never believe this is really how armaps are handled in SOM...  */
 
-static boolean
+static bfd_boolean
 som_write_armap (abfd, elength, map, orl_count, stridx)
      bfd *abfd;
      unsigned int elength;
@@ -6152,7 +6179,7 @@ som_write_armap (abfd, elength, map, orl_count, stridx)
   if (stat (abfd->filename, &statbuf) != 0)
     {
       bfd_set_error (bfd_error_system_call);
-      return false;
+      return FALSE;
     }
   /* Fudge factor.  */
   bfd_ardata (abfd)->armap_timestamp = statbuf.st_mtime + 60;
@@ -6203,7 +6230,7 @@ som_write_armap (abfd, elength, map, orl_count, stridx)
   /* Count how many symbols we will have on the hash chains and the
      size of the associated string table.  */
   if (! som_bfd_prep_for_ar_write (abfd, &nsyms, &stringsize))
-    return false;
+    return FALSE;
 
   lst_size += sizeof (struct lst_symbol_record) * nsyms;
 
@@ -6241,32 +6268,32 @@ som_write_armap (abfd, elength, map, orl_count, stridx)
   /* Scribble out the ar header.  */
   amt = sizeof (struct ar_hdr);
   if (bfd_bwrite ((PTR) &hdr, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Now scribble out the lst header.  */
   amt = sizeof (struct lst_header);
   if (bfd_bwrite ((PTR) &lst, amt, abfd) != amt)
-    return false;
+    return FALSE;
 
   /* Build and write the armap.  */
   if (!som_bfd_ar_write_symbol_stuff (abfd, nsyms, stringsize, lst, elength))
-    return false;
+    return FALSE;
 
   /* Done.  */
-  return true;
+  return TRUE;
 }
 
 /* Free all information we have cached for this BFD.  We can always
    read it again later if we need it.  */
 
-static boolean
+static bfd_boolean
 som_bfd_free_cached_info (abfd)
      bfd *abfd;
 {
   asection *o;
 
   if (bfd_get_format (abfd) != bfd_object)
-    return true;
+    return TRUE;
 
 #define FREE(x) if (x != NULL) { free (x); x = NULL; }
   /* Free the native string and symbol tables.  */
@@ -6282,14 +6309,14 @@ som_bfd_free_cached_info (abfd)
     }
 #undef FREE
 
-  return true;
+  return TRUE;
 }
 
 /* End of miscellaneous support functions.  */
 
 /* Linker support functions.  */
 
-static boolean
+static bfd_boolean
 som_bfd_link_split_section (abfd, sec)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *sec;
@@ -6310,7 +6337,7 @@ som_bfd_link_split_section (abfd, sec)
 #define som_update_armap_timestamp     bfd_true
 #define som_bfd_print_private_bfd_data  _bfd_generic_bfd_print_private_bfd_data
 
-#define som_get_lineno                  _bfd_nosymbols_get_lineno
+#define som_get_lineno                 _bfd_nosymbols_get_lineno
 #define som_bfd_make_debug_symbol      _bfd_nosymbols_bfd_make_debug_symbol
 #define som_read_minisymbols           _bfd_generic_read_minisymbols
 #define som_minisymbol_to_symbol       _bfd_generic_minisymbol_to_symbol
index 94f03ab9f18bb491e7ee18269d16ffcd446a16ec..12ac66678bbfb0b15e55dde5acdbb58e5b1153e0 100644 (file)
--- a/bfd/som.h
+++ b/bfd/som.h
@@ -1,6 +1,6 @@
 /* HP PA-RISC SOM object file format:  definitions internal to BFD.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000
-   Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001,
+   2002 Free Software Foundation, Inc.
 
    Contributed by the Center for Software Science at the
    University of Utah (pa-gdb-bugs@cs.utah.edu).
@@ -225,16 +225,16 @@ struct som_section_data_struct
 #define R_HPPA_END_TRY                 R_END_TRY
 
 /* Exported functions, mostly for use by GAS.  */
-boolean bfd_som_set_section_attributes PARAMS ((asection *, int, int,
-                                               unsigned int, int));
-boolean bfd_som_set_subsection_attributes PARAMS ((asection *, asection *,
-                                                  int, unsigned int, int));
+bfd_boolean bfd_som_set_section_attributes
+  PARAMS ((asection *, int, int, unsigned int, int));
+bfd_boolean bfd_som_set_subsection_attributes
+  PARAMS ((asection *, asection *, int, unsigned int, int));
 void bfd_som_set_symbol_type PARAMS ((asymbol *, unsigned int));
-boolean bfd_som_attach_aux_hdr PARAMS ((bfd *, int, char *));
+bfd_boolean bfd_som_attach_aux_hdr PARAMS ((bfd *, int, char *));
 int ** hppa_som_gen_reloc_type
   PARAMS ((bfd *, int, int, enum hppa_reloc_field_selector_type_alt,
           int, asymbol *));
-boolean bfd_som_attach_compilation_unit
+bfd_boolean bfd_som_attach_compilation_unit
   PARAMS ((bfd *, const char *, const char *, const char *, const char *));
 
 #endif /* _SOM_H */
index e55a4ffc2b2611a61269e793ae108505a2e05161..4352727a20637edb5045bf9efe61e15cd9859f06 100644 (file)
@@ -19,12 +19,12 @@ along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 USA.  */
 
-#define TARGET_PAGE_SIZE        4096
-#define ZMAGIC_DISK_BLOCK_SIZE 1024
-#define SEGMENT_SIZE TARGET_PAGE_SIZE
-#define TEXT_START_ADDR        0x0
-#define N_SHARED_LIB(x) 0
-#define BYTES_IN_WORD 4
+#define TARGET_PAGE_SIZE       4096
+#define ZMAGIC_DISK_BLOCK_SIZE 1024
+#define SEGMENT_SIZE           TARGET_PAGE_SIZE
+#define TEXT_START_ADDR                0x0
+#define N_SHARED_LIB(x)                0
+#define BYTES_IN_WORD          4
 
 #define MACHTYPE_OK(mtype) ((mtype) == M_SPARC || (mtype) == M_UNKNOWN)
 
@@ -52,10 +52,10 @@ extern const bfd_target MY(vec);
 static void MY_final_link_callback
   PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *));
 
-static boolean sparclinux_bfd_final_link
+static bfd_boolean sparclinux_bfd_final_link
   PARAMS ((bfd *abfd, struct bfd_link_info *info));
 
-static boolean
+static bfd_boolean
 sparclinux_bfd_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -68,9 +68,9 @@ sparclinux_bfd_final_link (abfd, info)
 
 /* Set the machine type correctly.  */
 
-static boolean sparclinux_write_object_contents PARAMS ((bfd *abfd));
+static bfd_boolean sparclinux_write_object_contents PARAMS ((bfd *abfd));
 
-static boolean
+static bfd_boolean
 sparclinux_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -83,7 +83,7 @@ sparclinux_write_object_contents (abfd)
 
   WRITE_HEADERS(abfd, execp);
 
-  return true;
+  return TRUE;
 }
 
 #define MY_write_object_contents sparclinux_write_object_contents
@@ -92,7 +92,7 @@ sparclinux_write_object_contents (abfd)
 /* See if a symbol name is a reference to the global offset table.  */
 
 #ifndef GOT_REF_PREFIX
-#define        GOT_REF_PREFIX  "__GOT_"
+#define GOT_REF_PREFIX  "__GOT_"
 #endif
 
 #define IS_GOT_SYM(name) \
@@ -101,7 +101,7 @@ sparclinux_write_object_contents (abfd)
 /* See if a symbol name is a reference to the procedure linkage table.  */
 
 #ifndef PLT_REF_PREFIX
-#define        PLT_REF_PREFIX  "__PLT_"
+#define PLT_REF_PREFIX  "__PLT_"
 #endif
 
 #define IS_PLT_SYM(name) \
@@ -179,16 +179,16 @@ static struct bfd_link_hash_table *linux_link_hash_table_create
   PARAMS ((bfd *));
 static struct fixup *new_fixup
   PARAMS ((struct bfd_link_info *, struct linux_link_hash_entry *,
-          bfd_vma, int));
-static boolean linux_link_create_dynamic_sections
+         bfd_vma, int));
+static bfd_boolean linux_link_create_dynamic_sections
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean linux_add_one_symbol
+static bfd_boolean linux_add_one_symbol
   PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *,
-          bfd_vma, const char *, boolean, boolean,
-          struct bfd_link_hash_entry **));
-static boolean linux_tally_symbols
+         bfd_vma, const char *, bfd_boolean, bfd_boolean,
+         struct bfd_link_hash_entry **));
+static bfd_boolean linux_tally_symbols
   PARAMS ((struct linux_link_hash_entry *, PTR));
-static boolean linux_finish_dynamic_link
+static bfd_boolean linux_finish_dynamic_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
 /* Routine to create an entry in an Linux link hash table.  */
@@ -205,14 +205,14 @@ linux_link_hash_newfunc (entry, table, string)
      subclass.  */
   if (ret == (struct linux_link_hash_entry *) NULL)
     ret = ((struct linux_link_hash_entry *)
-          bfd_hash_allocate (table, sizeof (struct linux_link_hash_entry)));
+          bfd_hash_allocate (table, sizeof (struct linux_link_hash_entry)));
   if (ret == NULL)
     return (struct bfd_hash_entry *) ret;
 
   /* Call the allocation method of the superclass.  */
   ret = ((struct linux_link_hash_entry *)
-        NAME(aout,link_hash_newfunc) ((struct bfd_hash_entry *) ret,
-                                      table, string));
+        NAME(aout,link_hash_newfunc) ((struct bfd_hash_entry *) ret,
+                                      table, string));
   if (ret != NULL)
     {
       /* Set local fields; there aren't any.  */
@@ -234,7 +234,7 @@ linux_link_hash_table_create (abfd)
   if (ret == (struct linux_link_hash_table *) NULL)
     return (struct bfd_link_hash_table *) NULL;
   if (! NAME(aout,link_hash_table_init) (&ret->root, abfd,
-                                        linux_link_hash_newfunc))
+                                        linux_link_hash_newfunc))
     {
       free (ret);
       return (struct bfd_link_hash_table *) NULL;
@@ -253,14 +253,14 @@ linux_link_hash_table_create (abfd)
 #define linux_link_hash_lookup(table, string, create, copy, follow) \
   ((struct linux_link_hash_entry *) \
    aout_link_hash_lookup (&(table)->root, (string), (create), (copy),\
-                         (follow)))
+                         (follow)))
 
 /* Traverse a Linux link hash table.  */
 
-#define linux_link_hash_traverse(table, func, info)                    \
-  (aout_link_hash_traverse                                             \
-   (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \
+#define linux_link_hash_traverse(table, func, info)                   \
+  (aout_link_hash_traverse                                            \
+   (&(table)->root,                                                   \
+    (bfd_boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the Linux link hash table from the info structure.  This is
@@ -280,7 +280,7 @@ new_fixup (info, h, value, builtin)
   struct fixup *f;
 
   f = (struct fixup *) bfd_hash_allocate (&info->hash->table,
-                                         sizeof (struct fixup));
+                                         sizeof (struct fixup));
   if (f == NULL)
     return f;
   f->next = linux_hash_table (info)->fixup_list;
@@ -300,7 +300,7 @@ new_fixup (info, h, value, builtin)
    know the size of the section, but that's OK - we just need to
    create it for now.  */
 
-static boolean
+static bfd_boolean
 linux_link_create_dynamic_sections (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
@@ -312,25 +312,25 @@ linux_link_create_dynamic_sections (abfd, info)
   flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY;
 
   /* We choose to use the name ".linux-dynamic" for the fixup table.
-     Why not? */
+     Why not?  */
   s = bfd_make_section (abfd, ".linux-dynamic");
   if (s == NULL
       || ! bfd_set_section_flags (abfd, s, flags)
       || ! bfd_set_section_alignment (abfd, s, 2))
-    return false;
+    return FALSE;
   s->_raw_size = 0;
   s->contents = 0;
 
-  return true;
+  return TRUE;
 }
 
 /* Function to add a single symbol to the linker hash table.  This is
    a wrapper around _bfd_generic_link_add_one_symbol which handles the
    tweaking needed for dynamic linking support.  */
 
-static boolean
+static bfd_boolean
 linux_add_one_symbol (info, abfd, name, flags, section, value, string,
-                     copy, collect, hashp)
+                     copy, collect, hashp)
      struct bfd_link_info *info;
      bfd *abfd;
      const char *name;
@@ -338,12 +338,12 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
      asection *section;
      bfd_vma value;
      const char *string;
-     boolean copy;
-     boolean collect;
+     bfd_boolean copy;
+     bfd_boolean collect;
      struct bfd_link_hash_entry **hashp;
 {
   struct linux_link_hash_entry *h;
-  boolean insert;
+  bfd_boolean insert;
 
   /* Look up and see if we already have this symbol in the hash table.
      If we do, and the defining entry is from a shared library, we
@@ -353,7 +353,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
      be able to link Linux a.out and ELF objects together, but serious
      confusion is possible.  */
 
-  insert = false;
+  insert = FALSE;
 
   if (! info->relocateable
       && linux_hash_table (info)->dynobj == NULL
@@ -362,60 +362,60 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
       && abfd->xvec == info->hash->creator)
     {
       if (! linux_link_create_dynamic_sections (abfd, info))
-       return false;
+       return FALSE;
       linux_hash_table (info)->dynobj = abfd;
-      insert = true;
+      insert = TRUE;
     }
 
   if (bfd_is_abs_section (section)
       && abfd->xvec == info->hash->creator)
     {
-      h = linux_link_hash_lookup (linux_hash_table (info), name, false,
-                                 false, false);
+      h = linux_link_hash_lookup (linux_hash_table (info), name, FALSE,
+                                 FALSE, FALSE);
       if (h != NULL
-         && (h->root.root.type == bfd_link_hash_defined
-             || h->root.root.type == bfd_link_hash_defweak))
-       {
-         struct fixup *f;
+         && (h->root.root.type == bfd_link_hash_defined
+             || h->root.root.type == bfd_link_hash_defweak))
+       {
+         struct fixup *f;
 
-         if (hashp != NULL)
-           *hashp = (struct bfd_link_hash_entry *) h;
+         if (hashp != NULL)
+           *hashp = (struct bfd_link_hash_entry *) h;
 
-         f = new_fixup (info, h, value, ! IS_PLT_SYM (name));
-         if (f == NULL)
-           return false;
-         f->jump = IS_PLT_SYM (name);
+         f = new_fixup (info, h, value, ! IS_PLT_SYM (name));
+         if (f == NULL)
+           return FALSE;
+         f->jump = IS_PLT_SYM (name);
 
-         return true;
-       }
+         return TRUE;
+       }
     }
 
   /* Do the usual procedure for adding a symbol.  */
   if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section,
-                                         value, string, copy, collect,
-                                         hashp))
-    return false;
+                                         value, string, copy, collect,
+                                         hashp))
+    return FALSE;
 
   /* Insert a pointer to our table in the set vector.  The dynamic
-     linker requires this information */
+     linker requires this information */
   if (insert)
     {
       asection *s;
 
       /* Here we do our special thing to add the pointer to the
-        dynamic section in the SHARABLE_CONFLICTS set vector.  */
+        dynamic section in the SHARABLE_CONFLICTS set vector.  */
       s = bfd_get_section_by_name (linux_hash_table (info)->dynobj,
-                                  ".linux-dynamic");
+                                  ".linux-dynamic");
       BFD_ASSERT (s != NULL);
 
       if (! (_bfd_generic_link_add_one_symbol
-            (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS,
-             BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL,
-            false, false, NULL)))
-       return false;
+            (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS,
+             BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL,
+             FALSE, FALSE, NULL)))
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We will crawl the hash table and come here for every global symbol.
@@ -428,7 +428,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
 
    This function is called via linux_link_hash_traverse.  */
 
-static boolean
+static bfd_boolean
 linux_tally_symbols (h, data)
      struct linux_link_hash_entry *h;
      PTR data;
@@ -437,14 +437,14 @@ linux_tally_symbols (h, data)
   struct fixup *f, *f1;
   int is_plt;
   struct linux_link_hash_entry *h1, *h2;
-  boolean exists;
+  bfd_boolean exists;
 
   if (h->root.root.type == bfd_link_hash_warning)
     h = (struct linux_link_hash_entry *) h->root.root.u.i.link;
 
   if (h->root.root.type == bfd_link_hash_undefined
       && strncmp (h->root.root.root.string, NEEDS_SHRLIB,
-                 sizeof NEEDS_SHRLIB - 1) == 0)
+                 sizeof NEEDS_SHRLIB - 1) == 0)
     {
       const char *name;
       char *p;
@@ -453,21 +453,21 @@ linux_tally_symbols (h, data)
       name = h->root.root.root.string + sizeof NEEDS_SHRLIB - 1;
       p = strrchr (name, '_');
       if (p != NULL)
-       alloc = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 1);
+       alloc = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 1);
 
       if (p == NULL || alloc == NULL)
-       (*_bfd_error_handler) (_("Output file requires shared library `%s'\n"),
-                              name);
+       (*_bfd_error_handler) (_("Output file requires shared library `%s'\n"),
+                              name);
       else
-       {
-         strcpy (alloc, name);
-         p = strrchr (alloc, '_');
-         *p++ = '\0';
-         (*_bfd_error_handler)
-           (_("Output file requires shared library `%s.so.%s'\n"),
-            alloc, p);
-         free (alloc);
-       }
+       {
+         strcpy (alloc, name);
+         p = strrchr (alloc, '_');
+         *p++ = '\0';
+         (*_bfd_error_handler)
+           (_("Output file requires shared library `%s.so.%s'\n"),
+            alloc, p);
+         free (alloc);
+       }
 
       abort ();
     }
@@ -479,75 +479,75 @@ linux_tally_symbols (h, data)
   if (is_plt || IS_GOT_SYM (h->root.root.root.string))
     {
       /* Look up this symbol twice.  Once just as a regular lookup,
-        and then again following all of the indirect links until we
-        reach a real symbol.  */
+        and then again following all of the indirect links until we
+        reach a real symbol.  */
       h1 = linux_link_hash_lookup (linux_hash_table (info),
-                                  (h->root.root.root.string
-                                   + sizeof PLT_REF_PREFIX - 1),
-                                  false, false, true);
+                                  (h->root.root.root.string
+                                   + sizeof PLT_REF_PREFIX - 1),
+                                  FALSE, FALSE, TRUE);
       /* h2 does not follow indirect symbols.  */
       h2 = linux_link_hash_lookup (linux_hash_table (info),
-                                  (h->root.root.root.string
-                                   + sizeof PLT_REF_PREFIX - 1),
-                                  false, false, false);
+                                  (h->root.root.root.string
+                                   + sizeof PLT_REF_PREFIX - 1),
+                                  FALSE, FALSE, FALSE);
 
       /* The real symbol must exist but if it is also an ABS symbol,
-        there is no need to have a fixup.  This is because they both
-        came from the same library.  If on the other hand, we had to
-        use an indirect symbol to get to the real symbol, we add the
-        fixup anyway, since there are cases where these symbols come
-        from different shared libraries */
+        there is no need to have a fixup.  This is because they both
+        came from the same library.  If on the other hand, we had to
+        use an indirect symbol to get to the real symbol, we add the
+        fixup anyway, since there are cases where these symbols come
+        from different shared libraries */
       if (h1 != NULL
-         && (((h1->root.root.type == bfd_link_hash_defined
-               || h1->root.root.type == bfd_link_hash_defweak)
-              && ! bfd_is_abs_section (h1->root.root.u.def.section))
-             || h2->root.root.type == bfd_link_hash_indirect))
-       {
-         /* See if there is a "builtin" fixup already present
-            involving this symbol.  If so, convert it to a regular
-            fixup.  In the end, this relaxes some of the requirements
-            about the order of performing fixups.  */
-         exists = false;
-         for (f1 = linux_hash_table (info)->fixup_list;
-              f1 != NULL;
-              f1 = f1->next)
-           {
-             if ((f1->h != h && f1->h != h1)
-                 || (! f1->builtin && ! f1->jump))
-               continue;
-             if (f1->h == h1)
-              exists = true;
-             if (! exists
-                 && bfd_is_abs_section (h->root.root.u.def.section))
-               {
-                 f = new_fixup (info, h1, f1->h->root.root.u.def.value, 0);
-                 f->jump = is_plt;
-               }
-             f1->h = h1;
-             f1->jump = is_plt;
-             f1->builtin = 0;
-             exists = true;
-           }
-         if (! exists
-             && bfd_is_abs_section (h->root.root.u.def.section))
-           {
-             f = new_fixup (info, h1, h->root.root.u.def.value, 0);
-             if (f == NULL)
-               {
-                 /* FIXME: No way to return error.  */
-                 abort ();
-               }
-             f->jump = is_plt;
-           }
-       }
+         && (((h1->root.root.type == bfd_link_hash_defined
+               || h1->root.root.type == bfd_link_hash_defweak)
+              && ! bfd_is_abs_section (h1->root.root.u.def.section))
+             || h2->root.root.type == bfd_link_hash_indirect))
+       {
+         /* See if there is a "builtin" fixup already present
+            involving this symbol.  If so, convert it to a regular
+            fixup.  In the end, this relaxes some of the requirements
+            about the order of performing fixups.  */
+         exists = FALSE;
+         for (f1 = linux_hash_table (info)->fixup_list;
+              f1 != NULL;
+              f1 = f1->next)
+           {
+             if ((f1->h != h && f1->h != h1)
+                 || (! f1->builtin && ! f1->jump))
+               continue;
+             if (f1->h == h1)
+               exists = TRUE;
+             if (! exists
+                 && bfd_is_abs_section (h->root.root.u.def.section))
+               {
+                 f = new_fixup (info, h1, f1->h->root.root.u.def.value, 0);
+                 f->jump = is_plt;
+               }
+             f1->h = h1;
+             f1->jump = is_plt;
+             f1->builtin = 0;
+             exists = TRUE;
+           }
+         if (! exists
+             && bfd_is_abs_section (h->root.root.u.def.section))
+           {
+             f = new_fixup (info, h1, h->root.root.u.def.value, 0);
+             if (f == NULL)
+               {
+                 /* FIXME: No way to return error.  */
+                 abort ();
+               }
+             f->jump = is_plt;
+           }
+       }
 
       /* Quick and dirty way of stripping these symbols from the
-        symtab.  */
+        symtab.  */
       if (bfd_is_abs_section (h->root.root.u.def.section))
-       h->root.written = true;
+       h->root.written = TRUE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* This is called to set the size of the .linux-dynamic section is.
@@ -556,7 +556,7 @@ linux_tally_symbols (h, data)
    we just scan the hash tables to find out how many additional fixups
    are required.  */
 
-boolean
+bfd_boolean
 bfd_sparclinux_size_dynamic_sections (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -565,12 +565,12 @@ bfd_sparclinux_size_dynamic_sections (output_bfd, info)
   asection *s;
 
   if (output_bfd->xvec != &MY(vec))
-    return true;
+    return TRUE;
 
   /* First find the fixups...  */
   linux_link_hash_traverse (linux_hash_table (info),
-                           linux_tally_symbols,
-                           (PTR) info);
+                           linux_tally_symbols,
+                           (PTR) info);
 
   /* If there are builtin fixups, leave room for a marker.  This is
      used by the dynamic linker so that it knows that all that follow
@@ -578,40 +578,40 @@ bfd_sparclinux_size_dynamic_sections (output_bfd, info)
   for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next)
     {
       if (f->builtin)
-       {
-         ++linux_hash_table (info)->fixup_count;
-         ++linux_hash_table (info)->local_builtins;
-         break;
-       }
+       {
+         ++linux_hash_table (info)->fixup_count;
+         ++linux_hash_table (info)->local_builtins;
+         break;
+       }
     }
 
   if (linux_hash_table (info)->dynobj == NULL)
     {
       if (linux_hash_table (info)->fixup_count > 0)
-      abort ();
-      return true;
+       abort ();
+      return TRUE;
     }
 
   /* Allocate memory for our fixup table.  We will fill it in later.  */
   s = bfd_get_section_by_name (linux_hash_table (info)->dynobj,
-                              ".linux-dynamic");
+                              ".linux-dynamic");
   if (s != NULL)
     {
       s->_raw_size = linux_hash_table (info)->fixup_count + 1;
       s->_raw_size *= 8;
       s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* We come here once we are ready to actually write the fixup table to
    the output file.  Scan the fixup tables and so forth and generate
    the stuff we need.  */
 
-static boolean
+static bfd_boolean
 linux_finish_dynamic_link (output_bfd, info)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -625,18 +625,18 @@ linux_finish_dynamic_link (output_bfd, info)
   unsigned int fixups_written;
 
   if (linux_hash_table (info)->dynobj == NULL)
-    return true;
+    return TRUE;
 
   s = bfd_get_section_by_name (linux_hash_table (info)->dynobj,
-                              ".linux-dynamic");
+                              ".linux-dynamic");
   BFD_ASSERT (s != NULL);
   os = s->output_section;
   fixups_written = 0;
 
 #ifdef LINUX_LINK_DEBUG
   printf ("Fixup table file offset: %x  VMA: %x\n",
-         os->filepos + s->output_offset,
-         os->vma + s->output_offset);
+         os->filepos + s->output_offset,
+         os->vma + s->output_offset);
 #endif
 
   fixup_table = s->contents;
@@ -648,16 +648,16 @@ linux_finish_dynamic_link (output_bfd, info)
   for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next)
     {
       if (f->builtin)
-       continue;
+       continue;
 
       if (f->h->root.root.type != bfd_link_hash_defined
-         && f->h->root.root.type != bfd_link_hash_defweak)
-       {
-         (*_bfd_error_handler)
-           (_("Symbol %s not defined for fixups\n"),
-            f->h->root.root.root.string);
-         continue;
-       }
+         && f->h->root.root.type != bfd_link_hash_defweak)
+       {
+         (*_bfd_error_handler)
+           (_("Symbol %s not defined for fixups\n"),
+            f->h->root.root.root.string);
+         continue;
+       }
 
       is = f->h->root.root.u.def.section;
       section_offset = is->output_section->vma + is->output_offset;
@@ -665,25 +665,25 @@ linux_finish_dynamic_link (output_bfd, info)
 
 #ifdef LINUX_LINK_DEBUG
       printf ("Fixup(%d) %s: %x %x\n",f->jump, f->h->root.root.string,
-             new_addr, f->value);
+             new_addr, f->value);
 #endif
 
       if (f->jump)
-       {
-         /* Relative address */
-         new_addr = new_addr - (f->value + 5);
-        bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table);
-         fixup_table += 4;
-         bfd_put_32 (output_bfd, f->value + 1, fixup_table);
-         fixup_table += 4;
-       }
+       {
+         /* Relative address */
+         new_addr = new_addr - (f->value + 5);
+         bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table);
+         fixup_table += 4;
+         bfd_put_32 (output_bfd, f->value + 1, fixup_table);
+         fixup_table += 4;
+       }
       else
-       {
-         bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table);
-         fixup_table += 4;
-         bfd_put_32 (output_bfd, f->value, fixup_table);
-         fixup_table += 4;
-       }
+       {
+         bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table);
+         fixup_table += 4;
+         bfd_put_32 (output_bfd, f->value, fixup_table);
+         fixup_table += 4;
+       }
       ++fixups_written;
     }
 
@@ -696,56 +696,56 @@ linux_finish_dynamic_link (output_bfd, info)
       fixup_table += 4;
       ++fixups_written;
       for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next)
-       {
-         if (! f->builtin)
-           continue;
-
-         if (f->h->root.root.type != bfd_link_hash_defined
-             && f->h->root.root.type != bfd_link_hash_defweak)
-           {
-             (*_bfd_error_handler)
-               (_("Symbol %s not defined for fixups\n"),
-                f->h->root.root.root.string);
-             continue;
-           }
-
-         is = f->h->root.root.u.def.section;
-         section_offset = is->output_section->vma + is->output_offset;
-         new_addr = f->h->root.root.u.def.value + section_offset;
+       {
+         if (! f->builtin)
+           continue;
+
+         if (f->h->root.root.type != bfd_link_hash_defined
+             && f->h->root.root.type != bfd_link_hash_defweak)
+           {
+             (*_bfd_error_handler)
+               (_("Symbol %s not defined for fixups\n"),
+                f->h->root.root.root.string);
+             continue;
+           }
+
+         is = f->h->root.root.u.def.section;
+         section_offset = is->output_section->vma + is->output_offset;
+         new_addr = f->h->root.root.u.def.value + section_offset;
 
 #ifdef LINUX_LINK_DEBUG
-         printf ("Fixup(B) %s: %x %x\n", f->h->root.root.string,
-                 new_addr, f->value);
+         printf ("Fixup(B) %s: %x %x\n", f->h->root.root.string,
+                 new_addr, f->value);
 #endif
 
-         bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table);
-         fixup_table += 4;
-         bfd_put_32 (output_bfd, f->value, fixup_table);
-         fixup_table += 4;
-         ++fixups_written;
-       }
-  }
+         bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table);
+         fixup_table += 4;
+         bfd_put_32 (output_bfd, f->value, fixup_table);
+         fixup_table += 4;
+         ++fixups_written;
+       }
+    }
 
   if (linux_hash_table (info)->fixup_count != fixups_written)
     {
       (*_bfd_error_handler) (_("Warning: fixup count mismatch\n"));
       while (linux_hash_table (info)->fixup_count > fixups_written)
-       {
-         bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table);
-         fixup_table += 4;
-         bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table);
-         fixup_table += 4;
-         ++fixups_written;
-       }
+       {
+         bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table);
+         fixup_table += 4;
+         bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table);
+         fixup_table += 4;
+         ++fixups_written;
+       }
     }
 
   h = linux_link_hash_lookup (linux_hash_table (info),
-                             "__BUILTIN_FIXUPS__",
-                             false, false, false);
+                             "__BUILTIN_FIXUPS__",
+                             FALSE, FALSE, FALSE);
 
   if (h != NULL
       && (h->root.root.type == bfd_link_hash_defined
-         || h->root.root.type == bfd_link_hash_defweak))
+         || h->root.root.type == bfd_link_hash_defweak))
     {
       is = h->root.root.u.def.section;
       section_offset = is->output_section->vma + is->output_offset;
@@ -762,13 +762,12 @@ linux_finish_dynamic_link (output_bfd, info)
 
   if (bfd_seek (output_bfd, (file_ptr) (os->filepos + s->output_offset),
                SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
-  if (bfd_bwrite ((PTR) s->contents, s->_raw_size, output_bfd)
-      != s->_raw_size)
-    return false;
+  if (bfd_bwrite ((PTR) s->contents, s->_raw_size, output_bfd) != s->_raw_size)
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 #define MY_bfd_link_hash_table_create linux_link_hash_table_create
index 4da604f489a70692e93a102868e19da949999a8e..84d9d4a9d0aa1b499eca1b2ee431b654598cf8db 100644 (file)
@@ -1,6 +1,6 @@
 /* BFD support for Sparc binaries under LynxOS.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000,
-   2001 Free Software Foundation, Inc.
+   2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -48,7 +48,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 void NAME (lynx,set_arch_mach) PARAMS ((bfd *, unsigned long));
 static void choose_reloc_size PARAMS ((bfd *));
-static boolean NAME (aout,sparclynx_write_object_contents) PARAMS ((bfd *));
+static bfd_boolean NAME (aout,sparclynx_write_object_contents) PARAMS ((bfd *));
 
 /* This is needed to reject a NewsOS file, e.g. in
    gdb/testsuite/gdb.t10/crossload.exp. <kingdon@cygnus.com>
@@ -163,7 +163,7 @@ choose_reloc_size (abfd)
   Section contents have already been written.  We write the
   file header, symbols, and relocation.  */
 
-static boolean
+static bfd_boolean
 NAME(aout,sparclynx_write_object_contents) (abfd)
      bfd *abfd;
 {
@@ -204,30 +204,30 @@ NAME(aout,sparclynx_write_object_contents) (abfd)
 
   WRITE_HEADERS (abfd, execp);
 
-  return true;
+  return TRUE;
 }
 
 #define MY_set_sizes sparclynx_set_sizes
-static boolean sparclynx_set_sizes PARAMS ((bfd *));
+static bfd_boolean sparclynx_set_sizes PARAMS ((bfd *));
 
-static boolean
+static bfd_boolean
 sparclynx_set_sizes (abfd)
      bfd *abfd;
 {
   switch (bfd_get_arch (abfd))
     {
     default:
-      return false;
+      return FALSE;
     case bfd_arch_sparc:
       adata (abfd).page_size = 0x2000;
       adata (abfd).segment_size = 0x2000;
       adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
-      return true;
+      return TRUE;
     case bfd_arch_m68k:
       adata (abfd).page_size = 0x2000;
       adata (abfd).segment_size = 0x20000;
       adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
-      return true;
+      return TRUE;
     }
 }
 
@@ -255,9 +255,9 @@ static const struct aout_backend_data sparclynx_aout_backend =
 
 #ifdef LYNX_CORE
 
-char *  lynx_core_file_failing_command ();
-int     lynx_core_file_failing_signal ();
-boolean lynx_core_file_matches_executable_p ();
+char * lynx_core_file_failing_command ();
+int lynx_core_file_failing_signal ();
+bfd_boolean lynx_core_file_matches_executable_p ();
 const bfd_target * lynx_core_file_p ();
 
 #define        MY_core_file_failing_command lynx_core_file_failing_command
index 6c29fa16881893cf4d92049dea95b87b53f77959..cd31907ba9f515199585ca2d54dae9810315dee4 100644 (file)
@@ -114,30 +114,29 @@ static void srec_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
 static void srec_print_symbol
  PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
 static void srec_init PARAMS ((void));
-static boolean srec_mkobject PARAMS ((bfd *));
-static int srec_get_byte PARAMS ((bfd *, boolean *));
-static void srec_bad_byte PARAMS ((bfd *, unsigned int, int, boolean));
-static boolean srec_scan PARAMS ((bfd *));
+static bfd_boolean srec_mkobject PARAMS ((bfd *));
+static int srec_get_byte PARAMS ((bfd *, bfd_boolean *));
+static void srec_bad_byte PARAMS ((bfd *, unsigned int, int, bfd_boolean));
+static bfd_boolean srec_scan PARAMS ((bfd *));
 static const bfd_target *srec_object_p PARAMS ((bfd *));
 static const bfd_target *symbolsrec_object_p PARAMS ((bfd *));
-static boolean srec_read_section PARAMS ((bfd *, asection *, bfd_byte *));
-
-static boolean srec_write_record PARAMS ((bfd *, unsigned int, bfd_vma,
-                                         const bfd_byte *,
-                                         const bfd_byte *));
-static boolean srec_write_header PARAMS ((bfd *));
-static boolean srec_write_symbols PARAMS ((bfd *));
-static boolean srec_new_symbol PARAMS ((bfd *, const char *, bfd_vma));
-static boolean srec_get_section_contents
+static bfd_boolean srec_read_section PARAMS ((bfd *, asection *, bfd_byte *));
+
+static bfd_boolean srec_write_record
+  PARAMS ((bfd *, unsigned int, bfd_vma, const bfd_byte *, const bfd_byte *));
+static bfd_boolean srec_write_header PARAMS ((bfd *));
+static bfd_boolean srec_write_symbols PARAMS ((bfd *));
+static bfd_boolean srec_new_symbol PARAMS ((bfd *, const char *, bfd_vma));
+static bfd_boolean srec_get_section_contents
   PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
-static boolean srec_set_arch_mach
+static bfd_boolean srec_set_arch_mach
   PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-static boolean srec_set_section_contents
+static bfd_boolean srec_set_section_contents
   PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
-static boolean internal_srec_write_object_contents PARAMS ((bfd *, int));
-static boolean srec_write_object_contents PARAMS ((bfd *));
-static boolean symbolsrec_write_object_contents PARAMS ((bfd *));
-static int srec_sizeof_headers PARAMS ((bfd *, boolean));
+static bfd_boolean internal_srec_write_object_contents PARAMS ((bfd *, int));
+static bfd_boolean srec_write_object_contents PARAMS ((bfd *));
+static bfd_boolean symbolsrec_write_object_contents PARAMS ((bfd *));
+static int srec_sizeof_headers PARAMS ((bfd *, bfd_boolean));
 static long srec_get_symtab_upper_bound PARAMS ((bfd *));
 static long srec_get_symtab PARAMS ((bfd *, asymbol **));
 
@@ -158,11 +157,11 @@ static const char digs[] = "0123456789ABCDEF";
 static void
 srec_init ()
 {
-  static boolean inited = false;
+  static bfd_boolean inited = FALSE;
 
   if (! inited)
     {
-      inited = true;
+      inited = TRUE;
       hex_init ();
     }
 }
@@ -181,7 +180,7 @@ unsigned int Chunk = DEFAULT_CHUNK;
 /* The type of srec output (free or forced to S3).
    This variable can be modified by objcopy's --srec-forceS3
    parameter.  */
-boolean S3Forced = false;
+bfd_boolean S3Forced = FALSE;
 
 /* When writing an S-record file, the S-records can not be output as
    they are seen.  This structure is used to hold them in memory.  */
@@ -220,13 +219,14 @@ typedef struct srec_data_struct
   }
 tdata_type;
 
-static boolean srec_write_section PARAMS ((bfd *, tdata_type *,
-                                          srec_data_list_type *));
-static boolean srec_write_terminator PARAMS ((bfd *, tdata_type *));
+static bfd_boolean srec_write_section
+  PARAMS ((bfd *, tdata_type *, srec_data_list_type *));
+static bfd_boolean srec_write_terminator
+  PARAMS ((bfd *, tdata_type *));
 
 /* Set up the S-record tdata information.  */
 
-static boolean
+static bfd_boolean
 srec_mkobject (abfd)
      bfd *abfd;
 {
@@ -238,8 +238,8 @@ srec_mkobject (abfd)
   amt = sizeof (tdata_type);
   tdata = (tdata_type *) bfd_alloc (abfd, amt);
   if (tdata == NULL)
-    return false;
-    
+    return FALSE;
+
   abfd->tdata.srec_data = tdata;
   tdata->type = 1;
   tdata->head = NULL;
@@ -248,7 +248,7 @@ srec_mkobject (abfd)
   tdata->symtail = NULL;
   tdata->csymbols = NULL;
 
-  return true;
+  return TRUE;
 }
 
 /* Read a byte from an S record file.  Set *ERRORPTR if an error
@@ -257,14 +257,14 @@ srec_mkobject (abfd)
 static int
 srec_get_byte (abfd, errorptr)
      bfd *abfd;
-     boolean *errorptr;
+     bfd_boolean *errorptr;
 {
   bfd_byte c;
 
   if (bfd_bread (&c, (bfd_size_type) 1, abfd) != 1)
     {
       if (bfd_get_error () != bfd_error_file_truncated)
-       *errorptr = true;
+       *errorptr = TRUE;
       return EOF;
     }
 
@@ -280,7 +280,7 @@ srec_bad_byte (abfd, lineno, c, error)
      bfd *abfd;
      unsigned int lineno;
      int c;
-     boolean error;
+     bfd_boolean error;
 {
   if (c == EOF)
     {
@@ -307,7 +307,7 @@ srec_bad_byte (abfd, lineno, c, error)
 
 /* Add a new symbol found in an S-record file.  */
 
-static boolean
+static bfd_boolean
 srec_new_symbol (abfd, name, val)
      bfd *abfd;
      const char *name;
@@ -318,7 +318,7 @@ srec_new_symbol (abfd, name, val)
 
   n = (struct srec_symbol *) bfd_alloc (abfd, amt);
   if (n == NULL)
-    return false;
+    return FALSE;
 
   n->name = name;
   n->val = val;
@@ -332,19 +332,19 @@ srec_new_symbol (abfd, name, val)
 
   ++abfd->symcount;
 
-  return true;
+  return TRUE;
 }
 
 /* Read the S record file and turn it into sections.  We create a new
    section for each contiguous set of bytes.  */
 
-static boolean
+static bfd_boolean
 srec_scan (abfd)
      bfd *abfd;
 {
   int c;
   unsigned int lineno = 1;
-  boolean error = false;
+  bfd_boolean error = FALSE;
   bfd_byte *buf = NULL;
   size_t bufsize = 0;
   asection *sec = NULL;
@@ -356,7 +356,7 @@ srec_scan (abfd)
   while ((c = srec_get_byte (abfd, &error)) != EOF)
     {
       /* We only build sections from contiguous S-records, so if this
-         is not an S-record, then stop building a section.  */
+        is not an S-record, then stop building a section.  */
       if (c != 'S' && c != '\r' && c != '\n')
        sec = NULL;
 
@@ -542,7 +542,7 @@ srec_scan (abfd)
              case '0':
              case '5':
                /* Prologue--ignore the file name, but stop building a
-                   section at this point.  */
+                  section at this point.  */
                sec = NULL;
                break;
 
@@ -567,7 +567,7 @@ srec_scan (abfd)
                    && sec->vma + sec->_raw_size == address)
                  {
                    /* This data goes at the end of the section we are
-                       currently building.  */
+                      currently building.  */
                    sec->_raw_size += bytes;
                  }
                else
@@ -612,7 +612,7 @@ srec_scan (abfd)
                if (buf != NULL)
                  free (buf);
 
-               return true;
+               return TRUE;
              }
          }
          break;
@@ -625,14 +625,14 @@ srec_scan (abfd)
   if (buf != NULL)
     free (buf);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (symbuf != NULL)
     free (symbuf);
   if (buf != NULL)
     free (buf);
-  return false;
+  return FALSE;
 }
 
 /* Check whether an existing file is an S-record file.  */
@@ -709,7 +709,7 @@ symbolsrec_object_p (abfd)
 
 /* Read in the contents of a section in an S-record file.  */
 
-static boolean
+static bfd_boolean
 srec_read_section (abfd, section, contents)
      bfd *abfd;
      asection *section;
@@ -717,7 +717,7 @@ srec_read_section (abfd, section, contents)
 {
   int c;
   bfd_size_type sofar = 0;
-  boolean error = false;
+  bfd_boolean error = FALSE;
   bfd_byte *buf = NULL;
   size_t bufsize = 0;
 
@@ -735,7 +735,7 @@ srec_read_section (abfd, section, contents)
        continue;
 
       /* This is called after srec_scan has already been called, so we
-         ought to know the exact format.  */
+        ought to know the exact format.  */
       BFD_ASSERT (c == 'S');
 
       if (bfd_bread (hdr, (bfd_size_type) 3, abfd) != 3)
@@ -766,7 +766,7 @@ srec_read_section (abfd, section, contents)
          BFD_ASSERT (sofar == section->_raw_size);
          if (buf != NULL)
            free (buf);
-         return true;
+         return TRUE;
 
        case '3':
          address = HEX (data);
@@ -791,7 +791,7 @@ srec_read_section (abfd, section, contents)
              BFD_ASSERT (sofar == section->_raw_size);
              if (buf != NULL)
                free (buf);
-             return true;
+             return TRUE;
            }
 
          /* Don't consider checksum.  */
@@ -816,17 +816,17 @@ srec_read_section (abfd, section, contents)
   if (buf != NULL)
     free (buf);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (buf != NULL)
     free (buf);
-  return false;
+  return FALSE;
 }
 
 /* Get the contents of a section in an S-record file.  */
 
-static boolean
+static bfd_boolean
 srec_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -838,21 +838,21 @@ srec_get_section_contents (abfd, section, location, offset, count)
     {
       section->used_by_bfd = bfd_alloc (abfd, section->_raw_size);
       if (section->used_by_bfd == NULL && section->_raw_size != 0)
-       return false;
+       return FALSE;
 
       if (! srec_read_section (abfd, section, section->used_by_bfd))
-       return false;
+       return FALSE;
     }
 
   memcpy (location, (bfd_byte *) section->used_by_bfd + offset,
          (size_t) count);
 
-  return true;
+  return TRUE;
 }
 
 /* Set the architecture.  We accept an unknown architecture here.  */
 
-static boolean
+static bfd_boolean
 srec_set_arch_mach (abfd, arch, mach)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -861,14 +861,14 @@ srec_set_arch_mach (abfd, arch, mach)
   if (arch == bfd_arch_unknown)
     {
       abfd->arch_info = &bfd_default_arch_struct;
-      return true;
+      return TRUE;
     }
   return bfd_default_set_arch_mach (abfd, arch, mach);
 }
 
 /* We have to save up all the Srecords for a splurge before output.  */
 
-static boolean
+static bfd_boolean
 srec_set_section_contents (abfd, section, location, offset, bytes_to_do)
      bfd *abfd;
      sec_ptr section;
@@ -882,7 +882,7 @@ srec_set_section_contents (abfd, section, location, offset, bytes_to_do)
   entry = ((srec_data_list_type *)
           bfd_alloc (abfd, (bfd_size_type) sizeof (srec_data_list_type)));
   if (entry == NULL)
-    return false;
+    return FALSE;
 
   if (bytes_to_do
       && (section->flags & SEC_ALLOC)
@@ -892,10 +892,10 @@ srec_set_section_contents (abfd, section, location, offset, bytes_to_do)
 
       data = (bfd_byte *) bfd_alloc (abfd, bytes_to_do);
       if (data == NULL)
-       return false;
+       return FALSE;
       memcpy ((PTR) data, location, (size_t) bytes_to_do);
 
-      /* Ff S3Forced is true then always select S3 records,
+      /* Ff S3Forced is TRUE then always select S3 records,
         regardless of the siez of the addresses.  */
       if (S3Forced)
        tdata->type = 3;
@@ -912,7 +912,7 @@ srec_set_section_contents (abfd, section, location, offset, bytes_to_do)
       entry->size = bytes_to_do;
 
       /* Sort the records by address.  Optimize for the common case of
-         adding a record to the end of the list.  */
+        adding a record to the end of the list.  */
       if (tdata->tail != NULL
          && entry->where >= tdata->tail->where)
        {
@@ -934,14 +934,14 @@ srec_set_section_contents (abfd, section, location, offset, bytes_to_do)
            tdata->tail = entry;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /* Write a record of type, of the supplied number of bytes. The
    supplied bytes and length don't have a checksum. That's worked out
    here.  */
 
-static boolean
+static bfd_boolean
 srec_write_record (abfd, type, address, data, end)
      bfd *abfd;
      unsigned int type;
@@ -999,11 +999,11 @@ srec_write_record (abfd, type, address, data, end)
   *dst++ = '\n';
   wrlen = dst - buffer;
   if (bfd_bwrite ((PTR) buffer, wrlen, abfd) != wrlen)
-    return false;
-  return true;
+    return FALSE;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 srec_write_header (abfd)
      bfd *abfd;
 {
@@ -1017,7 +1017,7 @@ srec_write_header (abfd)
                            abfd->filename, abfd->filename + len);
 }
 
-static boolean
+static bfd_boolean
 srec_write_section (abfd, tdata, list)
      bfd *abfd;
      tdata_type *tdata;
@@ -1052,16 +1052,16 @@ srec_write_section (abfd, tdata, list)
                               address,
                               location,
                               location + octets_this_chunk))
-       return false;
+       return FALSE;
 
       octets_written += octets_this_chunk;
       location += octets_this_chunk;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 srec_write_terminator (abfd, tdata)
      bfd *abfd;
      tdata_type *tdata;
@@ -1070,7 +1070,7 @@ srec_write_terminator (abfd, tdata)
                            abfd->start_address, NULL, NULL);
 }
 
-static boolean
+static bfd_boolean
 srec_write_symbols (abfd)
      bfd *abfd;
 {
@@ -1086,7 +1086,7 @@ srec_write_symbols (abfd)
       if (bfd_bwrite ("$$ ", (bfd_size_type) 3, abfd) != 3
          || bfd_bwrite (abfd->filename, len, abfd) != len
          || bfd_bwrite ("\r\n", (bfd_size_type) 2, abfd) != 2)
-       return false;
+       return FALSE;
 
       for (i = 0; i < count; i++)
        {
@@ -1095,36 +1095,37 @@ srec_write_symbols (abfd)
              && (s->flags & BSF_DEBUGGING) == 0)
            {
              /* Just dump out non debug symbols.  */
-             char buf[42], *p;
+             char buf[43], *p;
 
              len = strlen (s->name);
              if (bfd_bwrite ("  ", (bfd_size_type) 2, abfd) != 2
                  || bfd_bwrite (s->name, len, abfd) != len)
-               return false;
+               return FALSE;
 
-             sprintf_vma (buf + 1, (s->value
+             sprintf_vma (buf + 2, (s->value
                                     + s->section->output_section->lma
                                     + s->section->output_offset));
-             p = buf + 1;
+             p = buf + 2;
              while (p[0] == '0' && p[1] != 0)
                p++;
              len = strlen (p);
              p[len] = '\r';
              p[len + 1] = '\n';
+             *--p = '$';
              *--p = ' ';
-             len += 3;
+             len += 4;
              if (bfd_bwrite (p, len, abfd) != len)
-               return false;
+               return FALSE;
            }
        }
       if (bfd_bwrite ("$$ \r\n", (bfd_size_type) 5, abfd) != 5)
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 internal_srec_write_object_contents (abfd, symbols)
      bfd *abfd;
      int symbols;
@@ -1135,11 +1136,11 @@ internal_srec_write_object_contents (abfd, symbols)
   if (symbols)
     {
       if (! srec_write_symbols (abfd))
-       return false;
+       return FALSE;
     }
 
   if (! srec_write_header (abfd))
-    return false;
+    return FALSE;
 
   /* Now wander though all the sections provided and output them.  */
   list = tdata->head;
@@ -1147,20 +1148,20 @@ internal_srec_write_object_contents (abfd, symbols)
   while (list != (srec_data_list_type *) NULL)
     {
       if (! srec_write_section (abfd, tdata, list))
-       return false;
+       return FALSE;
       list = list->next;
     }
   return srec_write_terminator (abfd, tdata);
 }
 
-static boolean
+static bfd_boolean
 srec_write_object_contents (abfd)
      bfd *abfd;
 {
   return internal_srec_write_object_contents (abfd, 0);
 }
 
-static boolean
+static bfd_boolean
 symbolsrec_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -1170,7 +1171,7 @@ symbolsrec_write_object_contents (abfd)
 static int
 srec_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return 0;
 }
@@ -1203,7 +1204,7 @@ srec_get_symtab (abfd, alocation)
 
       csymbols = (asymbol *) bfd_alloc (abfd, symcount * sizeof (asymbol));
       if (csymbols == NULL && symcount != 0)
-       return (long) false;
+       return 0;
       abfd->tdata.srec_data->csymbols = csymbols;
 
       for (s = abfd->tdata.srec_data->symbols, c = csymbols;
index 0cb37412983d3d53a8a759f6de545f1359bd9727..6e6d290d46e7d7f95b35fbb2d8e94d6bcf19cb9e 100644 (file)
@@ -1,5 +1,5 @@
 /* Stabs in sections linking support.
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
@@ -168,7 +168,7 @@ stab_link_includes_newfunc (entry, table, string)
 /* This function is called for each input file from the add_symbols
    pass of the linker.  */
 
-boolean
+bfd_boolean
 _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
      bfd *abfd;
      PTR *psinfo;
@@ -176,7 +176,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
      asection *stabstrsec;
      PTR *psecinfo;
 {
-  boolean first;
+  bfd_boolean first;
   struct stab_info *sinfo;
   bfd_size_type count, amt;
   struct stab_section_info *secinfo;
@@ -190,21 +190,21 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
       || stabstrsec->_raw_size == 0)
     {
       /* This file does not contain stabs debugging information.  */
-      return true;
+      return TRUE;
     }
 
   if (stabsec->_raw_size % STABSIZE != 0)
     {
       /* Something is wrong with the format of these stab symbols.
-         Don't try to optimize them.  */
-      return true;
+        Don't try to optimize them.  */
+      return TRUE;
     }
 
   if ((stabstrsec->flags & SEC_RELOC) != 0)
     {
       /* We shouldn't see relocations in the strings, and we aren't
-         prepared to handle them.  */
-      return true;
+        prepared to handle them.  */
+      return TRUE;
     }
 
   if ((stabsec->output_section != NULL
@@ -213,16 +213,16 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
          && bfd_is_abs_section (stabstrsec->output_section)))
     {
       /* At least one of the sections is being discarded from the
-         link, so we should just ignore them.  */
-      return true;
+        link, so we should just ignore them.  */
+      return TRUE;
     }
 
-  first = false;
+  first = FALSE;
 
   if (*psinfo == NULL)
     {
       /* Initialize the stabs information we need to keep track of.  */
-      first = true;
+      first = TRUE;
       amt = sizeof (struct stab_info);
       *psinfo = (PTR) bfd_alloc (abfd, amt);
       if (*psinfo == NULL)
@@ -232,7 +232,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
       if (sinfo->strings == NULL)
        goto error_return;
       /* Make sure the first byte is zero.  */
-      (void) _bfd_stringtab_add (sinfo->strings, "", true, true);
+      (void) _bfd_stringtab_add (sinfo->strings, "", TRUE, TRUE);
       if (! bfd_hash_table_init_n (&sinfo->includes.root,
                                   stab_link_includes_newfunc,
                                   251))
@@ -299,7 +299,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
       if (type == 0)
        {
          /* Special type 0 stabs indicate the offset to the next
-             string table.  We only copy the very first one.  */
+            string table.  We only copy the very first one.  */
          stroff = next_stroff;
          next_stroff += bfd_get_32 (abfd, sym + 8);
          if (! first)
@@ -308,7 +308,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
              ++skip;
              continue;
            }
-         first = false;
+         first = FALSE;
        }
 
       /* Store the string in the hash table, and record the index.  */
@@ -324,7 +324,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
          goto error_return;
        }
       string = (char *) stabstrbuf + symstroff;
-      *pstridx = _bfd_stringtab_add (sinfo->strings, string, true, true);
+      *pstridx = _bfd_stringtab_add (sinfo->strings, string, TRUE, TRUE);
 
       /* An N_BINCL symbol indicates the start of the stabs entries
         for a header file.  We need to scan ahead to the next N_EINCL
@@ -384,7 +384,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
          /* If we have already included a header file with the same
             value, then replaced this one with an N_EXCL symbol.  */
          incl_entry = stab_link_includes_lookup (&sinfo->includes, string,
-                                                 true, true);
+                                                 TRUE, TRUE);
          if (incl_entry == NULL)
            goto error_return;
 
@@ -393,7 +393,7 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
              break;
 
          /* Record this symbol, so that we can set the value
-             correctly.  */
+            correctly.  */
          amt = sizeof *ne;
          ne = (struct stab_excl_list *) bfd_alloc (abfd, amt);
          if (ne == NULL)
@@ -502,30 +502,30 @@ _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo)
       BFD_ASSERT (offset != 0);
     }
 
-  return true;
+  return TRUE;
 
  error_return:
   if (stabbuf != NULL)
     free (stabbuf);
   if (stabstrbuf != NULL)
     free (stabstrbuf);
-  return false;
+  return FALSE;
 }
 
 \f
 /* This function is called for each input file before the stab
    section is relocated.  It discards stab entries for discarded
-   functions and variables.  The function returns true iff
+   functions and variables.  The function returns TRUE iff
    any entries have been deleted.
 */
 
-boolean
+bfd_boolean
 _bfd_discard_section_stabs (abfd, stabsec, psecinfo,
                            reloc_symbol_deleted_p, cookie)
      bfd *abfd;
      asection *stabsec;
      PTR psecinfo;
-     boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR));
+     bfd_boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR));
      PTR cookie;
 {
   bfd_size_type count, amt;
@@ -539,29 +539,29 @@ _bfd_discard_section_stabs (abfd, stabsec, psecinfo,
   if (stabsec->_raw_size == 0)
     {
       /* This file does not contain stabs debugging information.  */
-      return false;
+      return FALSE;
     }
 
   if (stabsec->_raw_size % STABSIZE != 0)
     {
       /* Something is wrong with the format of these stab symbols.
-         Don't try to optimize them.  */
-      return false;
+        Don't try to optimize them.  */
+      return FALSE;
     }
 
   if ((stabsec->output_section != NULL
        && bfd_is_abs_section (stabsec->output_section)))
     {
       /* At least one of the sections is being discarded from the
-         link, so we should just ignore them.  */
-      return false;
+        link, so we should just ignore them.  */
+      return FALSE;
     }
 
   /* We should have initialized our data in _bfd_link_stab_sections.
      If there was some bizarre error reading the string sections, though,
      we might not have.  Bail rather than asserting.  */
   if (psecinfo == NULL)
-    return false;
+    return FALSE;
 
   count = stabsec->_raw_size / STABSIZE;
   secinfo = (struct stab_section_info *) psecinfo;
@@ -674,18 +674,18 @@ _bfd_discard_section_stabs (abfd, stabsec, psecinfo,
       BFD_ASSERT (offset != 0);
     }
 
-  return (boolean) (skip > 0);
+  return skip > 0;
 
  error_return:
   if (stabbuf != NULL)
     free (stabbuf);
-  return false;
+  return FALSE;
 }
 
 /* Write out the stab section.  This is called with the relocated
    contents.  */
 
-boolean
+bfd_boolean
 _bfd_write_section_stabs (output_bfd, psinfo, stabsec, psecinfo, contents)
      bfd *output_bfd;
      PTR *psinfo;
@@ -736,9 +736,9 @@ _bfd_write_section_stabs (output_bfd, psinfo, stabsec, psecinfo, contents)
          if (sym[TYPEOFF] == 0)
            {
              /* This is the header symbol for the stabs section.  We
-                 don't really need one, since we have merged all the
-                 input stabs sections into one, but we generate one
-                 for the benefit of readers which expect to see one.  */
+                don't really need one, since we have merged all the
+                input stabs sections into one, but we generate one
+                for the benefit of readers which expect to see one.  */
              BFD_ASSERT (sym == contents);
              bfd_put_32 (output_bfd, _bfd_stringtab_size (sinfo->strings),
                          tosym + VALOFF);
@@ -760,7 +760,7 @@ _bfd_write_section_stabs (output_bfd, psinfo, stabsec, psecinfo, contents)
 
 /* Write out the .stabstr section.  */
 
-boolean
+bfd_boolean
 _bfd_write_stab_strings (output_bfd, psinfo)
      bfd *output_bfd;
      PTR *psinfo;
@@ -770,12 +770,12 @@ _bfd_write_stab_strings (output_bfd, psinfo)
   sinfo = (struct stab_info *) *psinfo;
 
   if (sinfo == NULL)
-    return true;
+    return TRUE;
 
   if (bfd_is_abs_section (sinfo->stabstr->output_section))
     {
       /* The section was discarded from the link.  */
-      return true;
+      return TRUE;
     }
 
   BFD_ASSERT ((sinfo->stabstr->output_offset
@@ -786,16 +786,16 @@ _bfd_write_stab_strings (output_bfd, psinfo)
                (file_ptr) (sinfo->stabstr->output_section->filepos
                            + sinfo->stabstr->output_offset),
                SEEK_SET) != 0)
-    return false;
+    return FALSE;
 
   if (! _bfd_stringtab_emit (output_bfd, sinfo->strings))
-    return false;
+    return FALSE;
 
   /* We no longer need the stabs information.  */
   _bfd_stringtab_free (sinfo->strings);
   bfd_hash_table_free (&sinfo->includes.root);
 
-  return true;
+  return TRUE;
 }
 
 /* Adjust an address in the .stab section.  Given OFFSET within
index 5fec6f91d7d1dbf75e7a7534ac2d8f408ba2ee60..4569e8065c6d95ff1a9355859169f6416c8d6ee5 100644 (file)
@@ -1,7 +1,6 @@
 /* BFD backend for SunOS binaries.
    Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
-   2002
-   Free Software Foundation, Inc.
+   2002 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -33,9 +32,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* Static routines defined in this file.  */
 
-static boolean sunos_read_dynamic_info PARAMS ((bfd *));
+static bfd_boolean sunos_read_dynamic_info PARAMS ((bfd *));
 static long sunos_get_dynamic_symtab_upper_bound PARAMS ((bfd *));
-static boolean sunos_slurp_dynamic_symtab PARAMS ((bfd *));
+static bfd_boolean sunos_slurp_dynamic_symtab PARAMS ((bfd *));
 static long sunos_canonicalize_dynamic_symtab PARAMS ((bfd *, asymbol **));
 static long sunos_get_dynamic_reloc_upper_bound PARAMS ((bfd *));
 static long sunos_canonicalize_dynamic_reloc
@@ -44,32 +43,32 @@ static struct bfd_hash_entry *sunos_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *sunos_link_hash_table_create
   PARAMS ((bfd *));
-static boolean sunos_create_dynamic_sections
-  PARAMS ((bfd *, struct bfd_link_info *, boolean));
-static boolean sunos_add_dynamic_symbols
+static bfd_boolean sunos_create_dynamic_sections
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean));
+static bfd_boolean sunos_add_dynamic_symbols
   PARAMS ((bfd *, struct bfd_link_info *, struct external_nlist **,
           bfd_size_type *, char **));
-static boolean sunos_add_one_symbol
+static bfd_boolean sunos_add_one_symbol
   PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *,
-          bfd_vma, const char *, boolean, boolean,
+          bfd_vma, const char *, bfd_boolean, bfd_boolean,
           struct bfd_link_hash_entry **));
-static boolean sunos_scan_relocs
+static bfd_boolean sunos_scan_relocs
   PARAMS ((struct bfd_link_info *, bfd *, asection *, bfd_size_type));
-static boolean sunos_scan_std_relocs
+static bfd_boolean sunos_scan_std_relocs
   PARAMS ((struct bfd_link_info *, bfd *, asection *,
           const struct reloc_std_external *, bfd_size_type));
-static boolean sunos_scan_ext_relocs
+static bfd_boolean sunos_scan_ext_relocs
   PARAMS ((struct bfd_link_info *, bfd *, asection *,
           const struct reloc_ext_external *, bfd_size_type));
-static boolean sunos_link_dynamic_object
+static bfd_boolean sunos_link_dynamic_object
   PARAMS ((struct bfd_link_info *, bfd *));
-static boolean sunos_write_dynamic_symbol
+static bfd_boolean sunos_write_dynamic_symbol
   PARAMS ((bfd *, struct bfd_link_info *, struct aout_link_hash_entry *));
-static boolean sunos_check_dynamic_reloc
+static bfd_boolean sunos_check_dynamic_reloc
   PARAMS ((struct bfd_link_info *, bfd *, asection *,
-          struct aout_link_hash_entry *, PTR, bfd_byte *, boolean *,
+          struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
           bfd_vma *));
-static boolean sunos_finish_dynamic_link
+static bfd_boolean sunos_finish_dynamic_link
   PARAMS ((bfd *, struct bfd_link_info *));
 
 #define MY_get_dynamic_symtab_upper_bound sunos_get_dynamic_symtab_upper_bound
@@ -106,7 +105,7 @@ static boolean sunos_finish_dynamic_link
 struct sunos_dynamic_info
 {
   /* Whether we found any dynamic information.  */
-  boolean valid;
+  bfd_boolean valid;
   /* Dynamic information.  */
   struct internal_sun4_dynamic_link dyninfo;
   /* Number of dynamic symbols.  */
@@ -135,9 +134,9 @@ struct sunos_dynamic_info
    structure and uses it to find the dynamic_link structure.  It
    creates and saves a sunos_dynamic_info structure.  If it can't find
    __DYNAMIC, it sets the valid field of the sunos_dynamic_info
-   structure to false to avoid doing this work again.  */
+   structure to FALSE to avoid doing this work again.  */
 
-static boolean
+static bfd_boolean
 sunos_read_dynamic_info (abfd)
      bfd *abfd;
 {
@@ -150,19 +149,19 @@ sunos_read_dynamic_info (abfd)
   bfd_size_type amt;
 
   if (obj_aout_dynamic_info (abfd) != (PTR) NULL)
-    return true;
+    return TRUE;
 
   if ((abfd->flags & DYNAMIC) == 0)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   amt = sizeof (struct sunos_dynamic_info);
   info = (struct sunos_dynamic_info *) bfd_zalloc (abfd, amt);
   if (!info)
-    return false;
-  info->valid = false;
+    return FALSE;
+  info->valid = FALSE;
   info->dynsym = NULL;
   info->dynstr = NULL;
   info->canonical_dynsym = NULL;
@@ -178,15 +177,15 @@ sunos_read_dynamic_info (abfd)
      We could verify this assumption later by looking through the dynamic
      symbols for the __DYNAMIC symbol.  */
   if ((abfd->flags & DYNAMIC) == 0)
-    return true;
+    return TRUE;
   if (! bfd_get_section_contents (abfd, obj_datasec (abfd), (PTR) &dyninfo,
                                  (file_ptr) 0,
                                  (bfd_size_type) sizeof dyninfo))
-    return true;
+    return TRUE;
 
   dynver = GET_WORD (abfd, dyninfo.ld_version);
   if (dynver != 2 && dynver != 3)
-    return true;
+    return TRUE;
 
   dynoff = GET_WORD (abfd, dyninfo.ld);
 
@@ -198,14 +197,14 @@ sunos_read_dynamic_info (abfd)
     dynsec = obj_datasec (abfd);
   dynoff -= bfd_get_section_vma (abfd, dynsec);
   if (dynoff > bfd_section_size (abfd, dynsec))
-    return true;
+    return TRUE;
 
   /* This executable appears to be dynamically linked in a way that we
      can understand.  */
   if (! bfd_get_section_contents (abfd, dynsec, (PTR) &linkinfo,
                                  (file_ptr) dynoff,
                                  (bfd_size_type) sizeof linkinfo))
-    return true;
+    return TRUE;
 
   /* Swap in the dynamic link information.  */
   info->dyninfo.ld_loaded = GET_WORD (abfd, linkinfo.ld_loaded);
@@ -252,9 +251,9 @@ sunos_read_dynamic_info (abfd)
              == (unsigned long) (info->dyninfo.ld_hash
                                  - info->dyninfo.ld_rel));
 
-  info->valid = true;
+  info->valid = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* Return the amount of memory required for the dynamic symbols.  */
@@ -280,7 +279,7 @@ sunos_get_dynamic_symtab_upper_bound (abfd)
 
 /* Read the external dynamic symbols.  */
 
-static boolean
+static bfd_boolean
 sunos_slurp_dynamic_symtab (abfd)
      bfd *abfd;
 {
@@ -291,14 +290,14 @@ sunos_slurp_dynamic_symtab (abfd)
   if (obj_aout_dynamic_info (abfd) == NULL)
     {
       if (! sunos_read_dynamic_info (abfd))
-         return false;
+         return FALSE;
     }
 
   info = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd);
   if (! info->valid)
     {
       bfd_set_error (bfd_error_no_symbols);
-      return false;
+      return FALSE;
     }
 
   /* Get the dynamic nlist structures.  */
@@ -307,7 +306,7 @@ sunos_slurp_dynamic_symtab (abfd)
       amt = (bfd_size_type) info->dynsym_count * EXTERNAL_NLIST_SIZE;
       info->dynsym = (struct external_nlist *) bfd_alloc (abfd, amt);
       if (info->dynsym == NULL && info->dynsym_count != 0)
-       return false;
+       return FALSE;
       if (bfd_seek (abfd, (file_ptr) info->dyninfo.ld_stab, SEEK_SET) != 0
          || bfd_bread ((PTR) info->dynsym, amt, abfd) != amt)
        {
@@ -316,7 +315,7 @@ sunos_slurp_dynamic_symtab (abfd)
              bfd_release (abfd, info->dynsym);
              info->dynsym = NULL;
            }
-         return false;
+         return FALSE;
        }
     }
 
@@ -326,7 +325,7 @@ sunos_slurp_dynamic_symtab (abfd)
       amt = info->dyninfo.ld_symb_size;
       info->dynstr = (char *) bfd_alloc (abfd, amt);
       if (info->dynstr == NULL && info->dyninfo.ld_symb_size != 0)
-       return false;
+       return FALSE;
       if (bfd_seek (abfd, (file_ptr) info->dyninfo.ld_symbols, SEEK_SET) != 0
          || bfd_bread ((PTR) info->dynstr, amt, abfd) != amt)
        {
@@ -335,11 +334,11 @@ sunos_slurp_dynamic_symtab (abfd)
              bfd_release (abfd, info->dynstr);
              info->dynstr = NULL;
            }
-         return false;
+         return FALSE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Read in the dynamic symbols.  */
@@ -413,7 +412,7 @@ sunos_canonicalize_dynamic_symtab (abfd, storage)
       if (! aout_32_translate_symbol_table (abfd, info->canonical_dynsym,
                                            info->dynsym,
                                            (bfd_size_type) info->dynsym_count,
-                                           info->dynstr, strsize, true))
+                                           info->dynstr, strsize, TRUE))
        {
          if (info->canonical_dynsym != NULL)
            {
@@ -651,13 +650,13 @@ struct sunos_link_hash_table
   bfd *dynobj;
 
   /* Whether we have created the dynamic sections.  */
-  boolean dynamic_sections_created;
+  bfd_boolean dynamic_sections_created;
 
   /* Whether we need the dynamic sections.  */
-  boolean dynamic_sections_needed;
+  bfd_boolean dynamic_sections_needed;
 
   /* Whether we need the .got table.  */
-  boolean got_needed;
+  bfd_boolean got_needed;
 
   /* The number of dynamic symbols.  */
   size_t dynsymcount;
@@ -728,9 +727,9 @@ sunos_link_hash_table_create (abfd)
     }
 
   ret->dynobj = NULL;
-  ret->dynamic_sections_created = false;
-  ret->dynamic_sections_needed = false;
-  ret->got_needed = false;
+  ret->dynamic_sections_created = FALSE;
+  ret->dynamic_sections_needed = FALSE;
+  ret->got_needed = FALSE;
   ret->dynsymcount = 0;
   ret->bucketcount = 0;
   ret->needed = NULL;
@@ -751,7 +750,7 @@ sunos_link_hash_table_create (abfd)
 #define sunos_link_hash_traverse(table, func, info)                    \
   (aout_link_hash_traverse                                             \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func),        \
+    (bfd_boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the SunOS link hash table from the info structure.  This is
@@ -759,7 +758,7 @@ sunos_link_hash_table_create (abfd)
 
 #define sunos_hash_table(p) ((struct sunos_link_hash_table *) ((p)->hash))
 
-static boolean sunos_scan_dynamic_symbol
+static bfd_boolean sunos_scan_dynamic_symbol
   PARAMS ((struct sunos_link_hash_entry *, PTR));
 
 /* Create the dynamic sections needed if we are linking against a
@@ -769,11 +768,11 @@ static boolean sunos_scan_dynamic_symbol
    place in the output file.  See include/aout/sun4.h for more details
    of the dynamic linking information.  */
 
-static boolean
+static bfd_boolean
 sunos_create_dynamic_sections (abfd, info, needed)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean needed;
+     bfd_boolean needed;
 {
   asection *s;
 
@@ -793,7 +792,7 @@ sunos_create_dynamic_sections (abfd, info, needed)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
 
       /* The .got section holds the global offset table.  The address
         is put in the ld_got field.  */
@@ -801,7 +800,7 @@ sunos_create_dynamic_sections (abfd, info, needed)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
 
       /* The .plt section holds the procedure linkage table.  The
         address is put in the ld_plt field.  */
@@ -809,7 +808,7 @@ sunos_create_dynamic_sections (abfd, info, needed)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags | SEC_CODE)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
 
       /* The .dynrel section holds the dynamic relocs.  The address is
         put in the ld_rel field.  */
@@ -817,7 +816,7 @@ sunos_create_dynamic_sections (abfd, info, needed)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
 
       /* The .hash section holds the dynamic hash table.  The address
         is put in the ld_hash field.  */
@@ -825,7 +824,7 @@ sunos_create_dynamic_sections (abfd, info, needed)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
 
       /* The .dynsym section holds the dynamic symbols.  The address
         is put in the ld_stab field.  */
@@ -833,7 +832,7 @@ sunos_create_dynamic_sections (abfd, info, needed)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
 
       /* The .dynstr section holds the dynamic symbol string table.
         The address is put in the ld_symbols field.  */
@@ -841,9 +840,9 @@ sunos_create_dynamic_sections (abfd, info, needed)
       if (s == NULL
          || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
          || ! bfd_set_section_alignment (abfd, s, 2))
-       return false;
+       return FALSE;
 
-      sunos_hash_table (info)->dynamic_sections_created = true;
+      sunos_hash_table (info)->dynamic_sections_created = TRUE;
     }
 
   if ((needed && ! sunos_hash_table (info)->dynamic_sections_needed)
@@ -857,17 +856,17 @@ sunos_create_dynamic_sections (abfd, info, needed)
       if (s->_raw_size == 0)
        s->_raw_size = BYTES_IN_WORD;
 
-      sunos_hash_table (info)->dynamic_sections_needed = true;
-      sunos_hash_table (info)->got_needed = true;
+      sunos_hash_table (info)->dynamic_sections_needed = TRUE;
+      sunos_hash_table (info)->got_needed = TRUE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Add dynamic symbols during a link.  This is called by the a.out
    backend linker for each object it encounters.  */
 
-static boolean
+static bfd_boolean
 sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -884,16 +883,14 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
   if (info->hash->creator == abfd->xvec)
     {
       if (! sunos_create_dynamic_sections (abfd, info,
-                                          (((abfd->flags & DYNAMIC) != 0
-                                            && ! info->relocateable)
-                                           ? true
-                                           : false)))
-       return false;
+                                          ((abfd->flags & DYNAMIC) != 0
+                                           && !info->relocateable)))
+       return FALSE;
     }
 
   /* There is nothing else to do for a normal object.  */
   if ((abfd->flags & DYNAMIC) == 0)
-    return true;
+    return TRUE;
 
   dynobj = sunos_hash_table (info)->dynobj;
 
@@ -915,14 +912,14 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
   /* The native linker seems to just ignore dynamic objects when -r is
      used.  */
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   /* There's no hope of using a dynamic object which does not exactly
      match the format of the output file.  */
   if (info->hash->creator != abfd->xvec)
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   /* Make sure we have a .need and a .rules sections.  These are only
@@ -942,7 +939,7 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
                                       | SEC_IN_MEMORY
                                       | SEC_READONLY))
          || ! bfd_set_section_alignment (dynobj, s, 2))
-       return false;
+       return FALSE;
     }
 
   if (bfd_get_section_by_name (dynobj, ".rules") == NULL)
@@ -959,12 +956,12 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
                                       | SEC_IN_MEMORY
                                       | SEC_READONLY))
          || ! bfd_set_section_alignment (dynobj, s, 2))
-       return false;
+       return FALSE;
     }
 
   /* Pick up the dynamic symbols and return them to the caller.  */
   if (! sunos_slurp_dynamic_symtab (abfd))
-    return false;
+    return FALSE;
 
   dinfo = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd);
   *symsp = dinfo->dynsym;
@@ -986,10 +983,10 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
 
       if (bfd_seek (abfd, (file_ptr) need, SEEK_SET) != 0
          || bfd_bread (buf, (bfd_size_type) 16, abfd) != 16)
-       return false;
+       return FALSE;
 
       /* For the format of an ld_need entry, see aout/sun4.h.  We
-         should probably define structs for this manipulation.  */
+        should probably define structs for this manipulation.  */
 
       name = bfd_get_32 (abfd, buf);
       flags = bfd_get_32 (abfd, buf + 4);
@@ -1000,14 +997,14 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
       alc = sizeof (struct bfd_link_needed_list);
       needed = (struct bfd_link_needed_list *) bfd_alloc (abfd, alc);
       if (needed == NULL)
-       return false;
+       return FALSE;
       needed->by = abfd;
 
       /* We return the name as [-l]name[.maj][.min].  */
       alc = 30;
       namebuf = (char *) bfd_malloc (alc + 1);
       if (namebuf == NULL)
-       return false;
+       return FALSE;
       p = namebuf;
 
       if ((flags & 0x80000000) != 0)
@@ -1018,7 +1015,7 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
       if (bfd_seek (abfd, (file_ptr) name, SEEK_SET) != 0)
        {
          free (namebuf);
-         return false;
+         return FALSE;
        }
 
       do
@@ -1026,7 +1023,7 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
          if (bfd_bread (&b, (bfd_size_type) 1, abfd) != 1)
            {
              free (namebuf);
-             return false;
+             return FALSE;
            }
 
          if ((bfd_size_type) (p - namebuf) >= alc)
@@ -1038,7 +1035,7 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
              if (n == NULL)
                {
                  free (namebuf);
-                 return false;
+                 return FALSE;
                }
              p = n + (p - namebuf);
              namebuf = n;
@@ -1070,7 +1067,7 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
              if (n == NULL)
                {
                  free (namebuf);
-                 return false;
+                 return FALSE;
                }
              p = n + (p - namebuf);
              namebuf = n;
@@ -1084,7 +1081,7 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
       if (namecopy == NULL)
        {
          free (namebuf);
-         return false;
+         return FALSE;
        }
       strcpy (namecopy, namebuf);
       free (namebuf);
@@ -1099,14 +1096,14 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
       *pp = needed;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Function to add a single symbol to the linker hash table.  This is
    a wrapper around _bfd_generic_link_add_one_symbol which handles the
    tweaking needed for dynamic linking support.  */
 
-static boolean
+static bfd_boolean
 sunos_add_one_symbol (info, abfd, name, flags, section, value, string,
                      copy, collect, hashp)
      struct bfd_link_info *info;
@@ -1116,8 +1113,8 @@ sunos_add_one_symbol (info, abfd, name, flags, section, value, string,
      asection *section;
      bfd_vma value;
      const char *string;
-     boolean copy;
-     boolean collect;
+     bfd_boolean copy;
+     bfd_boolean collect;
      struct bfd_link_hash_entry **hashp;
 {
   struct sunos_link_hash_entry *h;
@@ -1125,13 +1122,13 @@ sunos_add_one_symbol (info, abfd, name, flags, section, value, string,
 
   if ((flags & (BSF_INDIRECT | BSF_WARNING | BSF_CONSTRUCTOR)) != 0
       || ! bfd_is_und_section (section))
-    h = sunos_link_hash_lookup (sunos_hash_table (info), name, true, copy,
-                               false);
+    h = sunos_link_hash_lookup (sunos_hash_table (info), name, TRUE, copy,
+                               FALSE);
   else
     h = ((struct sunos_link_hash_entry *)
-        bfd_wrapped_link_hash_lookup (abfd, info, name, true, copy, false));
+        bfd_wrapped_link_hash_lookup (abfd, info, name, TRUE, copy, FALSE));
   if (h == NULL)
-    return false;
+    return FALSE;
 
   if (hashp != NULL)
     *hashp = (struct bfd_link_hash_entry *) h;
@@ -1185,10 +1182,10 @@ sunos_add_one_symbol (info, abfd, name, flags, section, value, string,
       && (h->flags & SUNOS_CONSTRUCTOR) != 0)
     {
       /* The existing symbol is a constructor symbol, and this symbol
-         is from a dynamic object.  A constructor symbol is actually a
-         definition, although the type will be bfd_link_hash_undefined
-         at this point.  We want to ignore the definition from the
-         dynamic object.  */
+        is from a dynamic object.  A constructor symbol is actually a
+        definition, although the type will be bfd_link_hash_undefined
+        at this point.  We want to ignore the definition from the
+        dynamic object.  */
       section = bfd_und_section_ptr;
     }
   else if ((flags & BSF_CONSTRUCTOR) != 0
@@ -1198,8 +1195,8 @@ sunos_add_one_symbol (info, abfd, name, flags, section, value, string,
           && (h->root.root.u.def.section->owner->flags & DYNAMIC) != 0)
     {
       /* The existing symbol is defined by a dynamic object, and this
-         is a constructor symbol.  As above, we want to force the use
-         of the constructor symbol from the regular object.  */
+        is a constructor symbol.  As above, we want to force the use
+        of the constructor symbol from the regular object.  */
       h->root.root.type = bfd_link_hash_new;
     }
 
@@ -1207,7 +1204,7 @@ sunos_add_one_symbol (info, abfd, name, flags, section, value, string,
   if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section,
                                          value, string, copy, collect,
                                          hashp))
-    return false;
+    return FALSE;
 
   if (abfd->xvec == info->hash->creator)
     {
@@ -1244,7 +1241,7 @@ sunos_add_one_symbol (info, abfd, name, flags, section, value, string,
        h->flags |= SUNOS_CONSTRUCTOR;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Return the list of objects needed by BFD.  */
@@ -1263,7 +1260,7 @@ bfd_sunos_get_needed_list (abfd, info)
 /* Record an assignment made to a symbol by a linker script.  We need
    this in case some dynamic object refers to this symbol.  */
 
-boolean
+bfd_boolean
 bfd_sunos_record_link_assignment (output_bfd, info, name)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -1272,15 +1269,15 @@ bfd_sunos_record_link_assignment (output_bfd, info, name)
   struct sunos_link_hash_entry *h;
 
   if (output_bfd->xvec != &MY(vec))
-    return true;
+    return TRUE;
 
   /* This is called after we have examined all the input objects.  If
      the symbol does not exist, it merely means that no object refers
      to it, and we can just ignore it at this point.  */
   h = sunos_link_hash_lookup (sunos_hash_table (info), name,
-                             false, false, false);
+                             FALSE, FALSE, FALSE);
   if (h == NULL)
-    return true;
+    return TRUE;
 
   /* In a shared library, the __DYNAMIC symbol does not appear in the
      dynamic symbol table.  */
@@ -1295,7 +1292,7 @@ bfd_sunos_record_link_assignment (output_bfd, info, name)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Set up the sizes and contents of the dynamic sections created in
@@ -1304,10 +1301,10 @@ bfd_sunos_record_link_assignment (output_bfd, info, name)
    sections before the linker sets the addresses of the various
    sections.  This unfortunately requires reading all the relocs so
    that we can work out which ones need to become dynamic relocs.  If
-   info->keep_memory is true, we keep the relocs in memory; otherwise,
+   info->keep_memory is TRUE, we keep the relocs in memory; otherwise,
    we discard them, and will read them again later.  */
 
-boolean
+bfd_boolean
 bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
                                 srulesptr)
      bfd *output_bfd;
@@ -1330,10 +1327,10 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
   *srulesptr = NULL;
 
   if (info->relocateable)
-    return true;
+    return TRUE;
 
   if (output_bfd->xvec != &MY(vec))
-    return true;
+    return TRUE;
 
   /* Look through all the input BFD's and read their relocs.  It would
      be better if we didn't have to do this, but there is no other way
@@ -1349,7 +1346,7 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
                                   exec_hdr (sub)->a_trsize)
              || ! sunos_scan_relocs (info, sub, obj_datasec (sub),
                                      exec_hdr (sub)->a_drsize))
-           return false;
+           return FALSE;
        }
     }
 
@@ -1360,11 +1357,11 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
      to build a global offset table, there is nothing to do here.  */
   if (! sunos_hash_table (info)->dynamic_sections_needed
       && ! sunos_hash_table (info)->got_needed)
-    return true;
+    return TRUE;
 
   /* If __GLOBAL_OFFSET_TABLE_ was mentioned, define it.  */
   h = sunos_link_hash_lookup (sunos_hash_table (info),
-                             "__GLOBAL_OFFSET_TABLE_", false, false, false);
+                             "__GLOBAL_OFFSET_TABLE_", FALSE, FALSE, FALSE);
   if (h != NULL && (h->flags & SUNOS_REF_REGULAR) != 0)
     {
       h->flags |= SUNOS_DEF_REGULAR;
@@ -1377,8 +1374,8 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
       h->root.root.u.def.section = bfd_get_section_by_name (dynobj, ".got");
 
       /* If the .got section is more than 0x1000 bytes, we set
-         __GLOBAL_OFFSET_TABLE_ to be 0x1000 bytes into the section,
-         so that 13 bit relocations have a greater chance of working.  */
+        __GLOBAL_OFFSET_TABLE_ to be 0x1000 bytes into the section,
+        so that 13 bit relocations have a greater chance of working.  */
       s = bfd_get_section_by_name (dynobj, ".got");
       BFD_ASSERT (s != NULL);
       if (s->_raw_size >= 0x1000)
@@ -1415,7 +1412,7 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
       s->_raw_size = dynsymcount * sizeof (struct external_nlist);
       s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
-       return false;
+       return FALSE;
 
       /* The number of buckets is just the number of symbols divided
         by four.  To compute the final size of the hash table, we
@@ -1436,7 +1433,7 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
       hashalloc = (dynsymcount + bucketcount - 1) * HASH_ENTRY_SIZE;
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, hashalloc);
       if (s->contents == NULL && dynsymcount > 0)
-       return false;
+       return FALSE;
       for (i = 0; i < bucketcount; i++)
        PUT_WORD (output_bfd, (bfd_vma) -1, s->contents + i * HASH_ENTRY_SIZE);
       s->_raw_size = bucketcount * HASH_ENTRY_SIZE;
@@ -1466,7 +1463,7 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
          contents = (bfd_byte *) bfd_realloc (s->contents,
                                               s->_raw_size + add);
          if (contents == NULL)
-           return false;
+           return FALSE;
          memset (contents + s->_raw_size, 0, (size_t) add);
          s->contents = contents;
          s->_raw_size += add;
@@ -1481,7 +1478,7 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
     {
       s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
 
       /* Fill in the first entry in the table.  */
       switch (bfd_get_arch (dynobj))
@@ -1504,7 +1501,7 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
     {
       s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size);
       if (s->contents == NULL)
-       return false;
+       return FALSE;
     }
   /* We use the reloc_count field to keep track of how many of the
      relocs we have output so far.  */
@@ -1514,17 +1511,17 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
   s = bfd_get_section_by_name (dynobj, ".got");
   s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size);
   if (s->contents == NULL)
-    return false;
+    return FALSE;
 
   *sneedptr = bfd_get_section_by_name (dynobj, ".need");
   *srulesptr = bfd_get_section_by_name (dynobj, ".rules");
 
-  return true;
+  return TRUE;
 }
 
 /* Scan the relocs for an input section.  */
 
-static boolean
+static bfd_boolean
 sunos_scan_relocs (info, abfd, sec, rel_size)
      struct bfd_link_info *info;
      bfd *abfd;
@@ -1535,7 +1532,7 @@ sunos_scan_relocs (info, abfd, sec, rel_size)
   PTR free_relocs = NULL;
 
   if (rel_size == 0)
-    return true;
+    return TRUE;
 
   if (! info->keep_memory)
     relocs = free_relocs = bfd_malloc (rel_size);
@@ -1555,7 +1552,7 @@ sunos_scan_relocs (info, abfd, sec, rel_size)
        }
     }
   if (relocs == NULL)
-    return false;
+    return FALSE;
 
   if (bfd_seek (abfd, sec->rel_filepos, SEEK_SET) != 0
       || bfd_bread (relocs, rel_size, abfd) != rel_size)
@@ -1579,12 +1576,12 @@ sunos_scan_relocs (info, abfd, sec, rel_size)
   if (free_relocs != NULL)
     free (free_relocs);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (free_relocs != NULL)
     free (free_relocs);
-  return false;
+  return FALSE;
 }
 
 /* Scan the relocs for an input section using standard relocs.  We
@@ -1597,7 +1594,7 @@ sunos_scan_relocs (info, abfd, sec, rel_size)
    reloc.  FIXME: We should also handle the PIC relocs here by
    building global offset table entries.  */
 
-static boolean
+static bfd_boolean
 sunos_scan_std_relocs (info, abfd, sec, relocs, rel_size)
      struct bfd_link_info *info;
      bfd *abfd;
@@ -1615,7 +1612,7 @@ sunos_scan_std_relocs (info, abfd, sec, relocs, rel_size)
   if (bfd_get_arch (abfd) != bfd_arch_m68k)
     {
       bfd_set_error (bfd_error_invalid_target);
-      return false;
+      return FALSE;
     }
 
   dynobj = NULL;
@@ -1677,8 +1674,8 @@ sunos_scan_std_relocs (info, abfd, sec, relocs, rel_size)
        {
          asection *sgot;
 
-         if (! sunos_create_dynamic_sections (abfd, info, false))
-           return false;
+         if (! sunos_create_dynamic_sections (abfd, info, FALSE))
+           return FALSE;
          dynobj = sunos_hash_table (info)->dynobj;
          splt = bfd_get_section_by_name (dynobj, ".plt");
          srel = bfd_get_section_by_name (dynobj, ".dynrel");
@@ -1688,7 +1685,7 @@ sunos_scan_std_relocs (info, abfd, sec, relocs, rel_size)
          BFD_ASSERT (sgot != NULL);
          if (sgot->_raw_size == 0)
            sgot->_raw_size = BYTES_IN_WORD;
-         sunos_hash_table (info)->got_needed = true;
+         sunos_hash_table (info)->got_needed = TRUE;
        }
 
       BFD_ASSERT ((h->flags & SUNOS_REF_REGULAR) != 0);
@@ -1748,7 +1745,7 @@ sunos_scan_std_relocs (info, abfd, sec, relocs, rel_size)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Scan the relocs for an input section using extended relocs.  We
@@ -1757,7 +1754,7 @@ sunos_scan_std_relocs (info, abfd, sec, relocs, rel_size)
    section, an entry is made in the procedure linkage table.
    Otherwise, we must preserve the reloc as a dynamic reloc.  */
 
-static boolean
+static bfd_boolean
 sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
      struct bfd_link_info *info;
      bfd *abfd;
@@ -1777,7 +1774,7 @@ sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
   if (bfd_get_arch (abfd) != bfd_arch_sparc)
     {
       bfd_set_error (bfd_error_invalid_target);
-      return false;
+      return FALSE;
     }
 
   dynobj = NULL;
@@ -1824,15 +1821,15 @@ sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
        }
 
       /* If this is a base relative reloc, we need to make an entry in
-         the .got section.  */
+        the .got section.  */
       if (r_type == RELOC_BASE10
          || r_type == RELOC_BASE13
          || r_type == RELOC_BASE22)
        {
          if (dynobj == NULL)
            {
-             if (! sunos_create_dynamic_sections (abfd, info, false))
-               return false;
+             if (! sunos_create_dynamic_sections (abfd, info, FALSE))
+               return FALSE;
              dynobj = sunos_hash_table (info)->dynobj;
              splt = bfd_get_section_by_name (dynobj, ".plt");
              sgot = bfd_get_section_by_name (dynobj, ".got");
@@ -1842,7 +1839,7 @@ sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
              /* Make sure we have an initial entry in the .got table.  */
              if (sgot->_raw_size == 0)
                sgot->_raw_size = BYTES_IN_WORD;
-             sunos_hash_table (info)->got_needed = true;
+             sunos_hash_table (info)->got_needed = TRUE;
            }
 
          if (r_extern)
@@ -1868,7 +1865,7 @@ sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
                  adata (abfd).local_got_offsets =
                    (bfd_vma *) bfd_zalloc (abfd, amt);
                  if (adata (abfd).local_got_offsets == NULL)
-                   return false;
+                   return FALSE;
                }
 
              if (adata (abfd).local_got_offsets[r_index] != 0)
@@ -1892,18 +1889,18 @@ sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
        }
 
       /* Otherwise, we are only interested in relocs against symbols
-         defined in dynamic objects but not in regular objects.  We
-         only need to consider relocs against external symbols.  */
+        defined in dynamic objects but not in regular objects.  We
+        only need to consider relocs against external symbols.  */
       if (! r_extern)
        {
          /* But, if we are creating a shared library, we need to
-             generate an absolute reloc.  */
+            generate an absolute reloc.  */
          if (info->shared)
            {
              if (dynobj == NULL)
                {
-                 if (! sunos_create_dynamic_sections (abfd, info, true))
-                   return false;
+                 if (! sunos_create_dynamic_sections (abfd, info, TRUE))
+                   return FALSE;
                  dynobj = sunos_hash_table (info)->dynobj;
                  splt = bfd_get_section_by_name (dynobj, ".plt");
                  sgot = bfd_get_section_by_name (dynobj, ".got");
@@ -1939,8 +1936,8 @@ sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
          && (h->flags & SUNOS_DEF_REGULAR) == 0)
        {
          /* This symbol is apparently undefined.  Don't do anything
-             here; just let the relocation routine report an undefined
-             symbol.  */
+            here; just let the relocation routine report an undefined
+            symbol.  */
          continue;
        }
 
@@ -1949,8 +1946,8 @@ sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
 
       if (dynobj == NULL)
        {
-         if (! sunos_create_dynamic_sections (abfd, info, false))
-           return false;
+         if (! sunos_create_dynamic_sections (abfd, info, FALSE))
+           return FALSE;
          dynobj = sunos_hash_table (info)->dynobj;
          splt = bfd_get_section_by_name (dynobj, ".plt");
          sgot = bfd_get_section_by_name (dynobj, ".got");
@@ -1960,7 +1957,7 @@ sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
          /* Make sure we have an initial entry in the .got table.  */
          if (sgot->_raw_size == 0)
            sgot->_raw_size = BYTES_IN_WORD;
-         sunos_hash_table (info)->got_needed = true;
+         sunos_hash_table (info)->got_needed = TRUE;
        }
 
       BFD_ASSERT (r_type == RELOC_JMP_TBL
@@ -2025,26 +2022,26 @@ sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)
              splt->_raw_size += SPARC_PLT_ENTRY_SIZE;
 
              /* We will also need a dynamic reloc entry, unless this
-                 is a JMP_TBL reloc produced by linking PIC compiled
-                 code, and we are not making a shared library.  */
+                is a JMP_TBL reloc produced by linking PIC compiled
+                code, and we are not making a shared library.  */
              if (info->shared || (h->flags & SUNOS_DEF_REGULAR) == 0)
                srel->_raw_size += RELOC_EXT_SIZE;
            }
 
          /* If we are creating a shared library, we need to copy over
-             any reloc other than a jump table reloc.  */
+            any reloc other than a jump table reloc.  */
          if (info->shared && r_type != RELOC_JMP_TBL)
            srel->_raw_size += RELOC_EXT_SIZE;
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Build the hash table of dynamic symbols, and to mark as written all
    symbols from dynamic objects which we do not plan to write out.  */
 
-static boolean
+static bfd_boolean
 sunos_scan_dynamic_symbol (h, data)
      struct sunos_link_hash_entry *h;
      PTR data;
@@ -2066,7 +2063,7 @@ sunos_scan_dynamic_symbol (h, data)
   if ((h->flags & SUNOS_DEF_REGULAR) == 0
       && (h->flags & SUNOS_DEF_DYNAMIC) != 0
       && strcmp (h->root.root.root.string, "__DYNAMIC") != 0)
-    h->root.written = true;
+    h->root.written = TRUE;
 
   /* If this symbol is defined by a dynamic object and referenced by a
      regular object, see whether we gave it a reasonable value while
@@ -2125,7 +2122,7 @@ sunos_scan_dynamic_symbol (h, data)
       contents = (bfd_byte *) bfd_realloc (s->contents,
                                           s->_raw_size + len + 1);
       if (contents == NULL)
-       return false;
+       return FALSE;
       s->contents = contents;
 
       h->dynstr_index = s->_raw_size;
@@ -2161,7 +2158,7 @@ sunos_scan_dynamic_symbol (h, data)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Link a dynamic object.  We actually don't have anything to do at
@@ -2169,18 +2166,18 @@ sunos_scan_dynamic_symbol (h, data)
    code from doing anything with the object.  */
 
 /*ARGSUSED*/
-static boolean
+static bfd_boolean
 sunos_link_dynamic_object (info, abfd)
      struct bfd_link_info *info ATTRIBUTE_UNUSED;
      bfd *abfd ATTRIBUTE_UNUSED;
 {
-  return true;
+  return TRUE;
 }
 
 /* Write out a dynamic symbol.  This is called by the final traversal
    over the symbol table.  */
 
-static boolean
+static bfd_boolean
 sunos_write_dynamic_symbol (output_bfd, info, harg)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2254,7 +2251,7 @@ sunos_write_dynamic_symbol (output_bfd, info, harg)
        }
 
       /* We also need to add a jump table reloc, unless this is the
-         result of a JMP_TBL reloc from PIC compiled code.  */
+        result of a JMP_TBL reloc from PIC compiled code.  */
       if (info->shared || (h->flags & SUNOS_DEF_REGULAR) == 0)
        {
          BFD_ASSERT (h->dynindx >= 0);
@@ -2320,7 +2317,7 @@ sunos_write_dynamic_symbol (output_bfd, info, harg)
      we can have a PLT entry for a nondynamic symbol when linking PIC
      compiled code from a regular object.  */
   if (h->dynindx < 0)
-    return true;
+    return TRUE;
 
   switch (h->root.root.type)
     {
@@ -2328,7 +2325,7 @@ sunos_write_dynamic_symbol (output_bfd, info, harg)
     case bfd_link_hash_new:
       abort ();
       /* Avoid variable not initialized warnings.  */
-      return true;
+      return TRUE;
     case bfd_link_hash_undefined:
       type = N_UNDF | N_EXT;
       val = 0;
@@ -2386,7 +2383,7 @@ sunos_write_dynamic_symbol (output_bfd, info, harg)
     case bfd_link_hash_warning:
       /* FIXME: Ignore these for now.  The circumstances under which
         they should be written out are not clear to me.  */
-      return true;
+      return TRUE;
     }
 
   s = bfd_get_section_by_name (sunos_hash_table (info)->dynobj, ".dynsym");
@@ -2405,7 +2402,7 @@ sunos_write_dynamic_symbol (output_bfd, info, harg)
   PUT_WORD (output_bfd, h->dynstr_index, outsym->e_strx);
   PUT_WORD (output_bfd, val, outsym->e_value);
 
-  return true;
+  return TRUE;
 }
 
 /* This is called for each reloc against an external symbol.  If this
@@ -2414,7 +2411,7 @@ sunos_write_dynamic_symbol (output_bfd, info, harg)
    reloc.  */
 
 /*ARGSUSED*/
-static boolean
+static bfd_boolean
 sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc,
                           contents, skip, relocationp)
      struct bfd_link_info *info;
@@ -2423,19 +2420,19 @@ sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc,
      struct aout_link_hash_entry *harg;
      PTR reloc;
      bfd_byte *contents ATTRIBUTE_UNUSED;
-     boolean *skip;
+     bfd_boolean *skip;
      bfd_vma *relocationp;
 {
   struct sunos_link_hash_entry *h = (struct sunos_link_hash_entry *) harg;
   bfd *dynobj;
-  boolean baserel;
-  boolean jmptbl;
-  boolean pcrel;
+  bfd_boolean baserel;
+  bfd_boolean jmptbl;
+  bfd_boolean pcrel;
   asection *s;
   bfd_byte *p;
   long indx;
 
-  *skip = false;
+  *skip = FALSE;
 
   dynobj = sunos_hash_table (info)->dynobj;
 
@@ -2493,7 +2490,7 @@ sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc,
               || r_type == RELOC_WDISP30
               || r_type == RELOC_WDISP22);
       /* We don't consider the PC10 and PC22 types to be PC relative,
-         because they are pcrel_offset.  */
+        because they are pcrel_offset.  */
     }
 
   if (baserel)
@@ -2562,7 +2559,7 @@ sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc,
                  && (h->flags & SUNOS_DEF_REGULAR) == 0))
            {
              /* We need to create a GLOB_DAT or 32 reloc to tell the
-                 dynamic linker to fill in this entry in the table.  */
+                dynamic linker to fill in this entry in the table.  */
 
              s = bfd_get_section_by_name (dynobj, ".dynrel");
              BFD_ASSERT (s != NULL);
@@ -2667,11 +2664,11 @@ sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc,
                      - sunos_hash_table (info)->got_base);
 
       /* There is nothing else to do for a base relative reloc.  */
-      return true;
+      return TRUE;
     }
 
   if (! sunos_hash_table (info)->dynamic_sections_needed)
-    return true;
+    return TRUE;
   if (! info->shared)
     {
       if (h == NULL
@@ -2680,7 +2677,7 @@ sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc,
          || (h->flags & SUNOS_DEF_REGULAR) != 0
          || (h->flags & SUNOS_DEF_DYNAMIC) == 0
          || (h->root.root.u.undef.abfd->flags & DYNAMIC) == 0)
-       return true;
+       return TRUE;
     }
   else
     {
@@ -2689,7 +2686,7 @@ sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc,
              || jmptbl
              || strcmp (h->root.root.root.string,
                         "__GLOBAL_OFFSET_TABLE_") == 0))
-       return true;
+       return TRUE;
     }
 
   /* It looks like this is a reloc we are supposed to copy.  */
@@ -2732,7 +2729,7 @@ sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc,
          srel->r_index[0] = (bfd_byte)indx;
        }
       /* FIXME: We may have to change the addend for a PC relative
-         reloc.  */
+        reloc.  */
     }
   else
     {
@@ -2771,14 +2768,14 @@ sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc,
   ++s->reloc_count;
 
   if (h != NULL)
-    *skip = true;
+    *skip = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /* Finish up the dynamic linking information.  */
 
-static boolean
+static bfd_boolean
 sunos_finish_dynamic_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2790,7 +2787,7 @@ sunos_finish_dynamic_link (abfd, info)
 
   if (! sunos_hash_table (info)->dynamic_sections_needed
       && ! sunos_hash_table (info)->got_needed)
-    return true;
+    return TRUE;
 
   dynobj = sunos_hash_table (info)->dynobj;
 
@@ -2843,7 +2840,7 @@ sunos_finish_dynamic_link (abfd, info)
                                          o->contents,
                                          (file_ptr) o->output_offset,
                                          o->_raw_size))
-           return false;
+           return FALSE;
        }
     }
 
@@ -2868,7 +2865,7 @@ sunos_finish_dynamic_link (abfd, info)
       if (! bfd_set_section_contents (abfd, sdyn->output_section, &esd,
                                      (file_ptr) sdyn->output_offset,
                                      (bfd_size_type) sizeof esd))
-       return false;
+       return FALSE;
 
       PUT_WORD (dynobj, (bfd_vma) 0, esdl.ld_loaded);
 
@@ -2936,10 +2933,10 @@ sunos_finish_dynamic_link (abfd, info)
       pos += sizeof esd + EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE;
       if (! bfd_set_section_contents (abfd, sdyn->output_section, &esdl,
                                      pos, (bfd_size_type) sizeof esdl))
-       return false;
+       return FALSE;
 
       abfd->flags |= DYNAMIC;
     }
 
-  return true;
+  return TRUE;
 }
index b135726c33417dc2ff79399dc9d66f76e4d0d0f8..d95589bec03ca311407ca31822393fa16d0d6cc9 100644 (file)
@@ -346,14 +346,14 @@ FUNCTION
        bfd_is_local_label
 
 SYNOPSIS
-        boolean bfd_is_local_label(bfd *abfd, asymbol *sym);
+        bfd_boolean bfd_is_local_label(bfd *abfd, asymbol *sym);
 
 DESCRIPTION
-       Return true if the given symbol @var{sym} in the BFD @var{abfd} is
-       a compiler generated local label, else return false.
+       Return TRUE if the given symbol @var{sym} in the BFD @var{abfd} is
+       a compiler generated local label, else return FALSE.
 */
 
-boolean
+bfd_boolean
 bfd_is_local_label (abfd, sym)
      bfd *abfd;
      asymbol *sym;
@@ -362,9 +362,9 @@ bfd_is_local_label (abfd, sym)
      starts with '.' is local.  This would accidentally catch section names
      if we didn't reject them here.  */
   if ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_SECTION_SYM)) != 0)
-    return false;
+    return FALSE;
   if (sym->name == NULL)
-    return false;
+    return FALSE;
   return bfd_is_local_label_name (abfd, sym->name);
 }
 
@@ -373,12 +373,12 @@ FUNCTION
        bfd_is_local_label_name
 
 SYNOPSIS
-        boolean bfd_is_local_label_name(bfd *abfd, const char *name);
+        bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
 
 DESCRIPTION
-       Return true if a symbol with the name @var{name} in the BFD
+       Return TRUE if a symbol with the name @var{name} in the BFD
        @var{abfd} is a compiler generated local label, else return
-       false.  This just checks whether the name has the form of a
+       FALSE.  This just checks whether the name has the form of a
        local label.
 
 .#define bfd_is_local_label_name(abfd, name) \
@@ -408,7 +408,7 @@ FUNCTION
        bfd_set_symtab
 
 SYNOPSIS
-       boolean bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count);
+       bfd_boolean bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count);
 
 DESCRIPTION
        Arrange that when the output BFD @var{abfd} is closed,
@@ -416,7 +416,7 @@ DESCRIPTION
        will be written.
 */
 
-boolean
+bfd_boolean
 bfd_set_symtab (abfd, location, symcount)
      bfd *abfd;
      asymbol **location;
@@ -425,12 +425,12 @@ bfd_set_symtab (abfd, location, symcount)
   if ((abfd->format != bfd_object) || (bfd_read_p (abfd)))
     {
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   bfd_get_outsymbols (abfd) = location;
   bfd_get_symcount (abfd) = symcount;
-  return true;
+  return TRUE;
 }
 
 /*
@@ -706,14 +706,14 @@ DESCRIPTION
        Returns zero otherwise.
 
 SYNOPSIS
-       boolean bfd_is_undefined_symclass (int symclass);
+       bfd_boolean bfd_is_undefined_symclass (int symclass);
 */
 
-boolean
+bfd_boolean
 bfd_is_undefined_symclass (symclass)
      int symclass;
 {
-  return (boolean) (symclass == 'U' || symclass == 'w' || symclass == 'v');
+  return symclass == 'U' || symclass == 'w' || symclass == 'v';
 }
 
 /*
@@ -749,12 +749,12 @@ FUNCTION
        bfd_copy_private_symbol_data
 
 SYNOPSIS
-       boolean bfd_copy_private_symbol_data(bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
+       bfd_boolean bfd_copy_private_symbol_data(bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
 
 DESCRIPTION
        Copy private symbol information from @var{isym} in the BFD
        @var{ibfd} to the symbol @var{osym} in the BFD @var{obfd}.
-       Return <<true>> on success, <<false>> on error.  Possible error
+       Return <<TRUE>> on success, <<FALSE>> on error.  Possible error
        returns are:
 
        o <<bfd_error_no_memory>> -
@@ -773,7 +773,7 @@ DESCRIPTION
 long
 _bfd_generic_read_minisymbols (abfd, dynamic, minisymsp, sizep)
      bfd *abfd;
-     boolean dynamic;
+     bfd_boolean dynamic;
      PTR *minisymsp;
      unsigned int *sizep;
 {
@@ -820,7 +820,7 @@ _bfd_generic_read_minisymbols (abfd, dynamic, minisymsp, sizep)
 asymbol *
 _bfd_generic_minisymbol_to_symbol (abfd, dynamic, minisym, sym)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean dynamic ATTRIBUTE_UNUSED;
+     bfd_boolean dynamic ATTRIBUTE_UNUSED;
      const PTR minisym;
      asymbol *sym ATTRIBUTE_UNUSED;
 {
@@ -830,7 +830,7 @@ _bfd_generic_minisymbol_to_symbol (abfd, dynamic, minisym, sym)
 /* Look through stabs debugging information in .stab and .stabstr
    sections to find the source file and line closest to a desired
    location.  This is used by COFF and ELF targets.  It sets *pfound
-   to true if it finds some information.  The *pinfo field is used to
+   to TRUE if it finds some information.  The *pinfo field is used to
    pass cached information in and out of this routine; this first time
    the routine is called for a BFD, *pinfo should be NULL.  The value
    placed in *pinfo should be saved with the BFD, and passed back each
@@ -902,14 +902,14 @@ struct stab_find_info
   char *filename;
 };
 
-boolean
+bfd_boolean
 _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
                                     pfilename, pfnname, pline, pinfo)
      bfd *abfd;
      asymbol **symbols;
      asection *section;
      bfd_vma offset;
-     boolean *pfound;
+     bfd_boolean *pfound;
      const char **pfilename;
      const char **pfnname;
      unsigned int *pline;
@@ -924,9 +924,9 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
   char *file_name;
   char *directory_name;
   int saw_fun;
-  boolean saw_line, saw_func;
+  bfd_boolean saw_line, saw_func;
 
-  *pfound = false;
+  *pfound = FALSE;
   *pfilename = bfd_get_filename (abfd);
   *pfnname = NULL;
   *pline = 0;
@@ -957,7 +957,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
       if (info->stabsec == NULL || info->strsec == NULL)
        {
          /* No stabs debugging information.  */
-         return true;
+         return TRUE;
        }
 
       stabsize = info->stabsec->_raw_size;
@@ -974,7 +974,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
 
       info = (struct stab_find_info *) bfd_zalloc (abfd, amt);
       if (info == NULL)
-       return false;
+       return FALSE;
 
       /* FIXME: When using the linker --split-by-file or
         --split-by-reloc options, it is possible for the .stab and
@@ -988,7 +988,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
          /* No stabs debugging information.  Set *pinfo so that we
              can return quickly in the info != NULL case above.  */
          *pinfo = (PTR) info;
-         return true;
+         return TRUE;
        }
 
       stabsize = info->stabsec->_raw_size;
@@ -997,13 +997,13 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
       info->stabs = (bfd_byte *) bfd_alloc (abfd, stabsize);
       info->strs = (bfd_byte *) bfd_alloc (abfd, strsize);
       if (info->stabs == NULL || info->strs == NULL)
-       return false;
+       return FALSE;
 
       if (! bfd_get_section_contents (abfd, info->stabsec, info->stabs,
                                      (bfd_vma) 0, stabsize)
          || ! bfd_get_section_contents (abfd, info->strsec, info->strs,
                                         (bfd_vma) 0, strsize))
-       return false;
+       return FALSE;
 
       /* If this is a relocateable object file, we have to relocate
         the entries in .stab.  This should always be simple 32 bit
@@ -1011,17 +1011,17 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
         this should be no big deal.  */
       reloc_size = bfd_get_reloc_upper_bound (abfd, info->stabsec);
       if (reloc_size < 0)
-       return false;
+       return FALSE;
       reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size);
       if (reloc_vector == NULL && reloc_size != 0)
-       return false;
+       return FALSE;
       reloc_count = bfd_canonicalize_reloc (abfd, info->stabsec, reloc_vector,
                                            symbols);
       if (reloc_count < 0)
        {
          if (reloc_vector != NULL)
            free (reloc_vector);
-         return false;
+         return FALSE;
        }
       if (reloc_count > 0)
        {
@@ -1046,7 +1046,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
                  bfd_set_error (bfd_error_invalid_operation);
                  if (reloc_vector != NULL)
                    free (reloc_vector);
-                 return false;
+                 return FALSE;
                }
 
              val = bfd_get_32 (abfd, info->stabs + r->address);
@@ -1100,14 +1100,14 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
        ++info->indextablesize;
 
       if (info->indextablesize == 0)
-       return true;
+       return TRUE;
       ++info->indextablesize;
 
       amt = info->indextablesize;
       amt *= sizeof (struct indexentry);
       info->indextable = (struct indexentry *) bfd_alloc (abfd, amt);
       if (info->indextable == NULL)
-       return false;
+       return FALSE;
 
       file_name = NULL;
       directory_name = NULL;
@@ -1272,7 +1272,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
        }
 
       if (indexentry == NULL)
-       return true;
+       return TRUE;
 
       stab = indexentry->stab + STABSIZE;
       file_name = indexentry->file_name;
@@ -1281,14 +1281,14 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
   directory_name = indexentry->directory_name;
   str = indexentry->str;
 
-  saw_line = false;
-  saw_func = false;
+  saw_line = FALSE;
+  saw_func = FALSE;
   for (; stab < (indexentry+1)->stab; stab += STABSIZE)
     {
-      boolean done;
+      bfd_boolean done;
       bfd_vma val;
 
-      done = false;
+      done = FALSE;
 
       switch (stab[TYPEOFF])
        {
@@ -1324,15 +1324,15 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
 #endif
            }
          if (val > offset)
-           done = true;
-         saw_line = true;
+           done = TRUE;
+         saw_line = TRUE;
          break;
 
        case N_FUN:
        case N_SO:
          if (saw_func || saw_line)
-           done = true;
-         saw_func = true;
+           done = TRUE;
+         saw_func = TRUE;
          break;
        }
 
@@ -1340,7 +1340,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
        break;
     }
 
-  *pfound = true;
+  *pfound = TRUE;
 
   if (file_name == NULL || IS_ABSOLUTE_PATH (file_name)
       || directory_name == NULL)
@@ -1361,7 +1361,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
          len = strlen (file_name) + 1;
          info->filename = (char *) bfd_malloc ((bfd_size_type) dirlen + len);
          if (info->filename == NULL)
-           return false;
+           return FALSE;
          memcpy (info->filename, directory_name, dirlen);
          memcpy (info->filename + dirlen, file_name, len);
        }
@@ -1384,5 +1384,5 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
       *pfnname = indexentry->function_name;
     }
 
-  return true;
+  return TRUE;
 }
index 6a68eaa13f0e2dab081a4ee6f399dd3748be7d39..998327de1d018fe7edd405d15e909b754ec01432 100644 (file)
@@ -70,7 +70,7 @@ DESCRIPTION
        <<bfd_check_format>> on the BFD with a suggested format.
        If <<target_defaulted>> has been set, each possible target
        type is tried to see if it recognizes the specified format.
-       <<bfd_check_format>> returns <<true>> when the caller guesses right.
+       <<bfd_check_format>> returns <<TRUE>> when the caller guesses right.
 @menu
 @* bfd_target::
 @end menu
@@ -231,10 +231,10 @@ DESCRIPTION
 .  const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *));
 .
 .  {* Set the format of a file being written.  *}
-.  boolean  (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
+.  bfd_boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
 .
 .  {* Write cached information into a file being written, at <<bfd_close>>.  *}
-.  boolean  (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
+.  bfd_boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
 .
 The general target vector.  These vectors are initialized using the
 BFD_JUMP_TABLE macros.
@@ -251,15 +251,15 @@ the tokens.
 .CONCAT2 (NAME,_get_section_contents_in_window)
 .
 .  {* Called when the BFD is being closed to do any necessary cleanup.  *}
-.  boolean  (*_close_and_cleanup) PARAMS ((bfd *));
+.  bfd_boolean (*_close_and_cleanup) PARAMS ((bfd *));
 .  {* Ask the BFD to free all cached information.  *}
-.  boolean  (*_bfd_free_cached_info) PARAMS ((bfd *));
+.  bfd_boolean (*_bfd_free_cached_info) PARAMS ((bfd *));
 .  {* Called when a new section is created.  *}
-.  boolean  (*_new_section_hook) PARAMS ((bfd *, sec_ptr));
+.  bfd_boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr));
 .  {* Read the contents of a section.  *}
-.  boolean  (*_bfd_get_section_contents) PARAMS ((bfd *, sec_ptr, PTR,
-.                                                 file_ptr, bfd_size_type));
-.  boolean  (*_bfd_get_section_contents_in_window)
+.  bfd_boolean (*_bfd_get_section_contents)
+.    PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+.  bfd_boolean (*_bfd_get_section_contents_in_window)
 .    PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type));
 .
 .  {* Entry points to copy private data.  *}
@@ -272,32 +272,32 @@ the tokens.
 .CONCAT2 (NAME,_bfd_print_private_bfd_data) \
 .  {* Called to copy BFD general private data from one object file
 .     to another.  *}
-.  boolean  (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
+.  bfd_boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
 .  {* Called to merge BFD general private data from one object file
 .     to a common output file when linking.  *}
-.  boolean  (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *));
+.  bfd_boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *));
 .  {* Called to copy BFD private section data from one object file
 .     to another.  *}
-.  boolean  (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr,
-.                                                      bfd *, sec_ptr));
+.  bfd_boolean (*_bfd_copy_private_section_data)
+.    PARAMS ((bfd *, sec_ptr, bfd *, sec_ptr));
 .  {* Called to copy BFD private symbol data from one symbol
 .     to another.  *}
-.  boolean  (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *,
-.                                                     bfd *, asymbol *));
+.  bfd_boolean (*_bfd_copy_private_symbol_data)
+.    PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
 .  {* Called to set private backend flags.  *}
-.  boolean  (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
+.  bfd_boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
 .
 .  {* Called to print private BFD data.  *}
-.  boolean  (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
+.  bfd_boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
 .
 .  {* Core file entry points.  *}
 .#define BFD_JUMP_TABLE_CORE(NAME) \
 .CONCAT2 (NAME,_core_file_failing_command), \
 .CONCAT2 (NAME,_core_file_failing_signal), \
 .CONCAT2 (NAME,_core_file_matches_executable_p)
-.  char *   (*_core_file_failing_command) PARAMS ((bfd *));
-.  int      (*_core_file_failing_signal) PARAMS ((bfd *));
-.  boolean  (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *));
+.  char *      (*_core_file_failing_command) PARAMS ((bfd *));
+.  int         (*_core_file_failing_signal) PARAMS ((bfd *));
+.  bfd_boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *));
 .
 .  {* Archive entry points.  *}
 .#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
@@ -311,19 +311,19 @@ the tokens.
 .CONCAT2 (NAME,_get_elt_at_index), \
 .CONCAT2 (NAME,_generic_stat_arch_elt), \
 .CONCAT2 (NAME,_update_armap_timestamp)
-.  boolean  (*_bfd_slurp_armap) PARAMS ((bfd *));
-.  boolean  (*_bfd_slurp_extended_name_table) PARAMS ((bfd *));
-.  boolean  (*_bfd_construct_extended_name_table)
+.  bfd_boolean (*_bfd_slurp_armap) PARAMS ((bfd *));
+.  bfd_boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *));
+.  bfd_boolean (*_bfd_construct_extended_name_table)
 .    PARAMS ((bfd *, char **, bfd_size_type *, const char **));
-.  void     (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *));
-.  boolean  (*write_armap)
+.  void        (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *));
+.  bfd_boolean (*write_armap)
 .    PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
-.  PTR      (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *));
-.  bfd *    (*openr_next_archived_file) PARAMS ((bfd *, bfd *));
+.  PTR         (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *));
+.  bfd *       (*openr_next_archived_file) PARAMS ((bfd *, bfd *));
 .#define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i))
-.  bfd *    (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex));
-.  int      (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *));
-.  boolean  (*_bfd_update_armap_timestamp) PARAMS ((bfd *));
+.  bfd *       (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex));
+.  int         (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *));
+.  bfd_boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *));
 .
 .  {* Entry points used for symbols.  *}
 .#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
@@ -338,59 +338,57 @@ the tokens.
 .CONCAT2 (NAME,_bfd_make_debug_symbol), \
 .CONCAT2 (NAME,_read_minisymbols), \
 .CONCAT2 (NAME,_minisymbol_to_symbol)
-.  long     (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *));
-.  long     (*_bfd_canonicalize_symtab) PARAMS ((bfd *,
+.  long        (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *));
+.  long        (*_bfd_canonicalize_symtab) PARAMS ((bfd *,
 .                                                struct symbol_cache_entry **));
 .  struct symbol_cache_entry *
-.           (*_bfd_make_empty_symbol) PARAMS ((bfd *));
-.  void     (*_bfd_print_symbol) PARAMS ((bfd *, PTR,
-.                                         struct symbol_cache_entry *,
-.                                         bfd_print_symbol_type));
+.              (*_bfd_make_empty_symbol) PARAMS ((bfd *));
+.  void        (*_bfd_print_symbol)
+.    PARAMS ((bfd *, PTR, struct symbol_cache_entry *, bfd_print_symbol_type));
 .#define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e))
-.  void     (*_bfd_get_symbol_info) PARAMS ((bfd *,
-.                                            struct symbol_cache_entry *,
-.                                            symbol_info *));
+.  void        (*_bfd_get_symbol_info)
+.    PARAMS ((bfd *, struct symbol_cache_entry *, symbol_info *));
 .#define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e))
-.  boolean  (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *));
+.  bfd_boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *));
 .
-.  alent *  (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
-.  boolean  (*_bfd_find_nearest_line)
+.  alent *     (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
+.  bfd_boolean (*_bfd_find_nearest_line)
 .    PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma,
 .             const char **, const char **, unsigned int *));
 . {* Back-door to allow format-aware applications to create debug symbols
 .    while using BFD for everything else.  Currently used by the assembler
 .    when creating COFF files.  *}
-.  asymbol *(*_bfd_make_debug_symbol) PARAMS ((bfd *, void *,
-.                                              unsigned long size));
+.  asymbol *   (*_bfd_make_debug_symbol)
+.    PARAMS ((bfd *, void *, unsigned long size));
 .#define bfd_read_minisymbols(b, d, m, s) \
 .  BFD_SEND (b, _read_minisymbols, (b, d, m, s))
-.  long     (*_read_minisymbols) PARAMS ((bfd *, boolean, PTR *,
-.                                         unsigned int *));
+.  long        (*_read_minisymbols)
+.    PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *));
 .#define bfd_minisymbol_to_symbol(b, d, m, f) \
 .  BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
-.  asymbol *(*_minisymbol_to_symbol) PARAMS ((bfd *, boolean, const PTR,
-.                                             asymbol *));
+.  asymbol *   (*_minisymbol_to_symbol)
+.    PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *));
 .
 .  {* Routines for relocs.  *}
 .#define BFD_JUMP_TABLE_RELOCS(NAME) \
 .CONCAT2 (NAME,_get_reloc_upper_bound), \
 .CONCAT2 (NAME,_canonicalize_reloc), \
 .CONCAT2 (NAME,_bfd_reloc_type_lookup)
-.  long     (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr));
-.  long     (*_bfd_canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **,
-.                                               struct symbol_cache_entry **));
+.  long        (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr));
+.  long        (*_bfd_canonicalize_reloc)
+.    PARAMS ((bfd *, sec_ptr, arelent **, struct symbol_cache_entry **));
 .  {* See documentation on reloc types.  *}
 .  reloc_howto_type *
-.           (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type));
+.              (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type));
 .
 .  {* Routines used when writing an object file.  *}
 .#define BFD_JUMP_TABLE_WRITE(NAME) \
 .CONCAT2 (NAME,_set_arch_mach), \
 .CONCAT2 (NAME,_set_section_contents)
-.  boolean  (*_bfd_set_arch_mach) PARAMS ((bfd *, enum bfd_architecture,
-.                                          unsigned long));
-.  boolean  (*_bfd_set_section_contents) PARAMS ((bfd *, sec_ptr, PTR,
-.                                                 file_ptr, bfd_size_type));
+.  bfd_boolean (*_bfd_set_arch_mach)
+.    PARAMS ((bfd *, enum bfd_architecture, unsigned long));
+.  bfd_boolean (*_bfd_set_section_contents)
+.    PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
 .
 .  {* Routines used by the linker.  *}
 .#define BFD_JUMP_TABLE_LINK(NAME) \
@@ -406,42 +404,46 @@ the tokens.
 .CONCAT2 (NAME,_bfd_gc_sections), \
 .CONCAT2 (NAME,_bfd_merge_sections), \
 .CONCAT2 (NAME,_bfd_discard_group)
-.  int      (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean));
-.  bfd_byte *(*_bfd_get_relocated_section_contents)
+.  int         (*_bfd_sizeof_headers) PARAMS ((bfd *, bfd_boolean));
+.  bfd_byte *  (*_bfd_get_relocated_section_contents)
 .    PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-.             bfd_byte *, boolean, struct symbol_cache_entry **));
+.             bfd_byte *, bfd_boolean, struct symbol_cache_entry **));
 .
-.  boolean  (*_bfd_relax_section)
-.    PARAMS ((bfd *, struct sec *, struct bfd_link_info *, boolean *));
+.  bfd_boolean (*_bfd_relax_section)
+.    PARAMS ((bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *));
 .
 .  {* Create a hash table for the linker.  Different backends store
 .     different information in this table.  *}
-.  struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *));
+.  struct bfd_link_hash_table *
+.              (*_bfd_link_hash_table_create) PARAMS ((bfd *));
 .
 .  {* Release the memory associated with the linker hash table.  *}
-.  void (*_bfd_link_hash_table_free) PARAMS ((struct bfd_link_hash_table *));
+.  void        (*_bfd_link_hash_table_free)
+.    PARAMS ((struct bfd_link_hash_table *));
 .
 .  {* Add symbols from this object file into the hash table.  *}
-.  boolean  (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *));
+.  bfd_boolean (*_bfd_link_add_symbols)
+.    PARAMS ((bfd *, struct bfd_link_info *));
 .
 .  {* Indicate that we are only retrieving symbol values from this section.  *}
-.  void     (*_bfd_link_just_syms) PARAMS ((asection *, struct bfd_link_info *));
+.  void        (*_bfd_link_just_syms)
+.    PARAMS ((asection *, struct bfd_link_info *));
 .
 .  {* Do a link based on the link_order structures attached to each
 .     section of the BFD.  *}
-.  boolean  (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
+.  bfd_boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
 .
 .  {* Should this section be split up into smaller pieces during linking.  *}
-.  boolean  (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *));
+.  bfd_boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *));
 .
 .  {* Remove sections that are not referenced from the output.  *}
-.  boolean  (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *));
+.  bfd_boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *));
 .
 .  {* Attempt to merge SEC_MERGE sections.  *}
-.  boolean  (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *));
+.  bfd_boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *));
 .
 .  {* Discard members of a group.  *}
-.  boolean  (*_bfd_discard_group) PARAMS ((bfd *, struct sec *));
+.  bfd_boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *));
 .
 .  {* Routines to handle dynamic symbols and relocs.  *}
 .#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
@@ -450,14 +452,14 @@ the tokens.
 .CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \
 .CONCAT2 (NAME,_canonicalize_dynamic_reloc)
 .  {* Get the amount of memory required to hold the dynamic symbols.  *}
-.  long     (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
+.  long        (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
 .  {* Read in the dynamic symbols.  *}
-.  long     (*_bfd_canonicalize_dynamic_symtab)
+.  long        (*_bfd_canonicalize_dynamic_symtab)
 .    PARAMS ((bfd *, struct symbol_cache_entry **));
 .  {* Get the amount of memory required to hold the dynamic relocs.  *}
-.  long     (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *));
+.  long        (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *));
 .  {* Read in the dynamic relocs.  *}
-.  long     (*_bfd_canonicalize_dynamic_reloc)
+.  long        (*_bfd_canonicalize_dynamic_reloc)
 .    PARAMS ((bfd *, arelent **, struct symbol_cache_entry **));
 .
 
@@ -1184,7 +1186,7 @@ FUNCTION
        bfd_set_default_target
 
 SYNOPSIS
-       boolean bfd_set_default_target (const char *name);
+       bfd_boolean bfd_set_default_target (const char *name);
 
 DESCRIPTION
        Set the default target vector to use when recognizing a BFD.
@@ -1192,7 +1194,7 @@ DESCRIPTION
        name or a configuration triplet.
 */
 
-boolean
+bfd_boolean
 bfd_set_default_target (name)
      const char *name;
 {
@@ -1200,14 +1202,14 @@ bfd_set_default_target (name)
 
   if (bfd_default_vector[0] != NULL
       && strcmp (name, bfd_default_vector[0]->name) == 0)
-    return true;
+    return TRUE;
 
   target = find_target (name);
   if (target == NULL)
-    return false;
+    return FALSE;
 
   bfd_default_vector[0] = target;
-  return true;
+  return TRUE;
 }
 
 /*
@@ -1242,10 +1244,10 @@ bfd_find_target (target_name, abfd)
   else
     targname = getenv ("GNUTARGET");
 
-  /* This is safe; the vector cannot be null */
+  /* This is safe; the vector cannot be null */
   if (targname == NULL || strcmp (targname, "default") == 0)
     {
-      abfd->target_defaulted = true;
+      abfd->target_defaulted = TRUE;
       if (bfd_default_vector[0] != NULL)
        abfd->xvec = bfd_default_vector[0];
       else
@@ -1253,7 +1255,7 @@ bfd_find_target (target_name, abfd)
       return abfd->xvec;
     }
 
-  abfd->target_defaulted = false;
+  abfd->target_defaulted = FALSE;
 
   target = find_target (targname);
   if (target == NULL)
index 19dcb875597b08b8ca25a11c4dbe0145c599aad9..77b471a2d7c8c4c4153ea313fec024339db92257 100644 (file)
@@ -104,21 +104,21 @@ static void tekhex_print_symbol
  PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
 static void tekhex_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
 static asymbol *tekhex_make_empty_symbol PARAMS ((bfd *));
-static int tekhex_sizeof_headers PARAMS ((bfd *, boolean));
-static boolean tekhex_write_object_contents PARAMS ((bfd *));
+static int tekhex_sizeof_headers PARAMS ((bfd *, bfd_boolean));
+static bfd_boolean tekhex_write_object_contents PARAMS ((bfd *));
 static void out PARAMS ((bfd *, int, char *, char *));
 static void writesym PARAMS ((char **, const char *));
 static void writevalue PARAMS ((char **, bfd_vma));
-static boolean tekhex_set_section_contents
+static bfd_boolean tekhex_set_section_contents
  PARAMS ((bfd*, sec_ptr, PTR, file_ptr, bfd_size_type));
-static boolean tekhex_set_arch_mach
+static bfd_boolean tekhex_set_arch_mach
  PARAMS ((bfd *, enum bfd_architecture, unsigned long));
-static boolean tekhex_get_section_contents
+static bfd_boolean tekhex_get_section_contents
  PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
 static void move_section_contents
- PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type, boolean));
+ PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type, bfd_boolean));
 static const bfd_target *tekhex_object_p PARAMS ((bfd *));
-static boolean tekhex_mkobject PARAMS ((bfd *));
+static bfd_boolean tekhex_mkobject PARAMS ((bfd *));
 static long tekhex_get_symtab_upper_bound PARAMS ((bfd *));
 static long tekhex_get_symtab PARAMS ((bfd *, asymbol **));
 static void pass_over PARAMS ((bfd *, void (*) (bfd*, int, char *)));
@@ -239,12 +239,12 @@ static void
 tekhex_init ()
 {
   unsigned int i;
-  static boolean inited = false;
+  static bfd_boolean inited = FALSE;
   int val;
 
   if (! inited)
     {
-      inited = true;
+      inited = TRUE;
       hex_init ();
       val = 0;
       for (i = 0; i < 10; i++)
@@ -471,7 +471,7 @@ first_phase (abfd, type, src)
     }
 }
 
-/* Pass over an tekhex, calling one of the above functions on each
+/* Pass over a tekhex, calling one of the above functions on each
    record.  */
 
 static void
@@ -480,7 +480,7 @@ pass_over (abfd, func)
      void (*func) PARAMS ((bfd *, int, char *));
 {
   unsigned int chars_on_line;
-  boolean eof = false;
+  bfd_boolean eof = FALSE;
 
   /* To the front of the file */
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
@@ -492,10 +492,10 @@ pass_over (abfd, func)
       char type;
 
       /* Find first '%' */
-      eof = (boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1);
+      eof = (bfd_boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1);
       while (*src != '%' && !eof)
        {
-         eof = (boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1);
+         eof = (bfd_boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1);
        }
       if (eof)
        break;
@@ -547,7 +547,7 @@ tekhex_get_symtab_upper_bound (abfd)
 
 }
 
-static boolean
+static bfd_boolean
 tekhex_mkobject (abfd)
      bfd *abfd;
 {
@@ -555,17 +555,17 @@ tekhex_mkobject (abfd)
 
   tdata = (tdata_type *) bfd_alloc (abfd, (bfd_size_type) sizeof (tdata_type));
   if (!tdata)
-    return false;
+    return FALSE;
   abfd->tdata.tekhex_data = tdata;
   tdata->type = 1;
   tdata->head = (tekhex_data_list_type *) NULL;
   tdata->symbols = (struct tekhex_symbol_struct *) NULL;
   tdata->data = (struct data_struct *) NULL;
-  return true;
+  return TRUE;
 }
 
 /*
-  Return true if the file looks like it's in TekHex format. Just look
+  Return TRUE if the file looks like it's in TekHex format. Just look
   for a percent sign and some hex digits */
 
 static const bfd_target *
@@ -596,7 +596,7 @@ move_section_contents (abfd, section, locationp, offset, count, get)
      PTR locationp;
      file_ptr offset;
      bfd_size_type count;
-     boolean get;
+     bfd_boolean get;
 {
   bfd_vma addr;
   char *location = (char *) locationp;
@@ -639,7 +639,7 @@ move_section_contents (abfd, section, locationp, offset, count, get)
 
 }
 
-static boolean
+static bfd_boolean
 tekhex_get_section_contents (abfd, section, locationp, offset, count)
      bfd *abfd;
      asection *section;
@@ -649,14 +649,14 @@ tekhex_get_section_contents (abfd, section, locationp, offset, count)
 {
   if (section->flags & (SEC_LOAD | SEC_ALLOC))
     {
-      move_section_contents (abfd, section, locationp, offset, count, true);
-      return true;
+      move_section_contents (abfd, section, locationp, offset, count, TRUE);
+      return TRUE;
     }
   else
-    return false;
+    return FALSE;
 }
 
-static boolean
+static bfd_boolean
 tekhex_set_arch_mach (abfd, arch, machine)
      bfd *abfd;
      enum bfd_architecture arch;
@@ -668,7 +668,7 @@ tekhex_set_arch_mach (abfd, arch, machine)
 /* we have to save up all the Tekhexords for a splurge before output,
     */
 
-static boolean
+static bfd_boolean
 tekhex_set_section_contents (abfd, section, locationp, offset, bytes_to_do)
      bfd *abfd;
      sec_ptr section;
@@ -698,11 +698,11 @@ tekhex_set_section_contents (abfd, section, locationp, offset, bytes_to_do)
   if (section->flags & (SEC_LOAD | SEC_ALLOC))
     {
       move_section_contents (abfd, section, locationp, offset, bytes_to_do,
-                            false);
-      return true;
+                            FALSE);
+      return TRUE;
     }
   else
-    return false;
+    return FALSE;
 
 }
 
@@ -804,7 +804,7 @@ out (abfd, type, start, end)
     abort ();
 }
 
-static boolean
+static bfd_boolean
 tekhex_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -907,7 +907,7 @@ tekhex_write_object_contents (abfd)
                case 'C':
                case 'U':
                  bfd_set_error (bfd_error_wrong_format);
-                 return false;
+                 return FALSE;
                }
 
              writesym (&dst, sym->name);
@@ -920,13 +920,13 @@ tekhex_write_object_contents (abfd)
   /* And the terminator */
   if (bfd_bwrite ("%0781010\n", (bfd_size_type) 9, abfd) != 9)
     abort ();
-  return true;
+  return TRUE;
 }
 
 static int
 tekhex_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 
 {
   return 0;
index 3b3fef02f1b393c392d31997b90a099b66ee9948..81c53b57d00152cda8b9ec396866e91b385b9518 100644 (file)
@@ -19,7 +19,7 @@
 #undef  F_LSYMS
 #define        F_LSYMS         F_LSYMS_TICOFF
 
-static boolean
+static bfd_boolean
 ticoff0_bad_format_hook (abfd, filehdr)
      bfd *abfd;
      PTR filehdr;
@@ -27,12 +27,12 @@ ticoff0_bad_format_hook (abfd, filehdr)
   struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
 
   if (COFF0_BADMAG (*internal_f))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 ticoff1_bad_format_hook (abfd, filehdr)
      bfd *abfd ATTRIBUTE_UNUSED;
      PTR filehdr;
@@ -40,21 +40,21 @@ ticoff1_bad_format_hook (abfd, filehdr)
   struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
 
   if (COFF1_BADMAG (*internal_f))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* Replace the stock _bfd_coff_is_local_label_name
    to recognize TI COFF local labels.  */
-static boolean 
+static bfd_boolean 
 ticoff_bfd_is_local_label_name (abfd, name)
   bfd *abfd ATTRIBUTE_UNUSED;
   const char *name;
 {
   if (TICOFF_LOCAL_LABEL_P(name))
-    return true;
-  return false;
+    return TRUE;
+  return FALSE;
 }
 
 #define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name
@@ -76,14 +76,14 @@ static const bfd_coff_backend_data ticoff0_swap_table =
   coff_SWAP_scnhdr_out,
   FILHSZ_V0, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ_V0, LINESZ, FILNMLEN,
 #ifdef COFF_LONG_FILENAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_LONG_SECTION_NAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
   COFF_DEFAULT_SECTION_ALIGNMENT_POWER,
   coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in,
@@ -107,14 +107,14 @@ static const bfd_coff_backend_data ticoff1_swap_table =
   coff_SWAP_scnhdr_out,
   FILHSZ, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN,
 #ifdef COFF_LONG_FILENAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
 #ifdef COFF_LONG_SECTION_NAMES
-  true,
+  TRUE,
 #else
-  false,
+  FALSE,
 #endif
   COFF_DEFAULT_SECTION_ALIGNMENT_POWER,
   coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in,
index e27cd35e8672e6dc9dcf027f1e148f3a0cb1b1bb..958ce11eb4df215390d15423720ac0428d033b90 100644 (file)
@@ -47,13 +47,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include TRAD_HEADER
 #endif
 
-  struct trad_core_struct
-    {
-      asection *data_section;
-      asection *stack_section;
-      asection *reg_section;
-      struct user u;
-    };
+struct trad_core_struct
+{
+  asection *data_section;
+  asection *stack_section;
+  asection *reg_section;
+  struct user u;
+};
 
 #define core_upage(bfd) (&((bfd)->tdata.trad_core_data->u))
 #define core_datasec(bfd) ((bfd)->tdata.trad_core_data->data_section)
@@ -63,11 +63,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* forward declarations */
 
 const bfd_target *trad_unix_core_file_p PARAMS ((bfd *abfd));
-char *         trad_unix_core_file_failing_command PARAMS ((bfd *abfd));
-int            trad_unix_core_file_failing_signal PARAMS ((bfd *abfd));
-boolean                trad_unix_core_file_matches_executable_p
-                        PARAMS ((bfd *core_bfd, bfd *exec_bfd));
-static void    swap_abort PARAMS ((void));
+char * trad_unix_core_file_failing_command PARAMS ((bfd *abfd));
+int trad_unix_core_file_failing_signal PARAMS ((bfd *abfd));
+bfd_boolean trad_unix_core_file_matches_executable_p
+  PARAMS ((bfd *core_bfd, bfd *exec_bfd));
+static void swap_abort PARAMS ((void));
 
 /* Handle 4.2-style (and perhaps also sysV-style) core dump file.  */
 
@@ -261,12 +261,12 @@ trad_unix_core_file_failing_signal (ignore_abfd)
 }
 
 /* ARGSUSED */
-boolean
+bfd_boolean
 trad_unix_core_file_matches_executable_p  (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
-  return true;         /* FIXME, We have no way of telling at this point */
+  return TRUE;         /* FIXME, We have no way of telling at this point */
 }
 \f
 /* If somebody calls any byte-swapping routines, shoot them.  */
index 684c3dbd2e48aad0aa86c5311e5390d28fcfcf2c..1301c5880a4f0f5050bed1ff64d5af2a5c1ead3a 100644 (file)
 #include "libbfd.h"
 #include "libiberty.h"
 
-static boolean versados_mkobject PARAMS ((bfd *));
-static boolean versados_scan PARAMS ((bfd *));
+static bfd_boolean versados_mkobject PARAMS ((bfd *));
+static bfd_boolean versados_scan PARAMS ((bfd *));
 static const bfd_target *versados_object_p PARAMS ((bfd *));
-static asymbol *versados_new_symbol PARAMS ((bfd *, int, const char *, bfd_vma, asection *));
+static asymbol *versados_new_symbol
+  PARAMS ((bfd *, int, const char *, bfd_vma, asection *));
 static char *new_symbol_string PARAMS ((bfd *, const char *));
 static const bfd_target *versados_object_p PARAMS ((bfd *));
-static boolean versados_pass_2 PARAMS ((bfd *));
-static boolean versados_get_section_contents
+static bfd_boolean versados_pass_2 PARAMS ((bfd *));
+static bfd_boolean versados_get_section_contents
   PARAMS ((bfd *, asection *, void *, file_ptr, bfd_size_type));
-static boolean versados_set_section_contents
+static bfd_boolean versados_set_section_contents
   PARAMS ((bfd *, sec_ptr, void *, file_ptr, bfd_size_type));
-static int versados_sizeof_headers PARAMS ((bfd *, boolean));
+static int versados_sizeof_headers PARAMS ((bfd *, bfd_boolean));
 static long int versados_get_symtab_upper_bound PARAMS ((bfd *));
 static long int versados_get_symtab PARAMS ((bfd *, asymbol **));
 static void versados_get_symbol_info
@@ -172,7 +173,7 @@ static void process_otr PARAMS ((bfd *, struct ext_otr *, int));
 
 /* Set up the tdata information.  */
 
-static boolean
+static bfd_boolean
 versados_mkobject (abfd)
      bfd *abfd;
 {
@@ -181,14 +182,14 @@ versados_mkobject (abfd)
       bfd_size_type amt = sizeof (tdata_type);
       tdata_type *tdata = (tdata_type *) bfd_alloc (abfd, amt);
       if (tdata == NULL)
-       return false;
+       return FALSE;
       abfd->tdata.versados_data = tdata;
       tdata->symbols = NULL;
       VDATA (abfd)->alert = 0x12345678;
     }
 
   bfd_default_set_arch_mach (abfd, bfd_arch_m68k, 0);
-  return true;
+  return TRUE;
 }
 
 /* Report a problem in an S record file.  FIXME: This probably should
@@ -357,19 +358,19 @@ process_esd (abfd, esd, pass)
 
 reloc_howto_type versados_howto_table[] =
 {
-  HOWTO (R_RELWORD, 0, 1, 16, false,
+  HOWTO (R_RELWORD, 0, 1, 16, FALSE,
         0, complain_overflow_dont, 0,
-        "+v16", true, 0x0000ffff, 0x0000ffff, false),
-  HOWTO (R_RELLONG, 0, 2, 32, false,
+        "+v16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+  HOWTO (R_RELLONG, 0, 2, 32, FALSE,
         0, complain_overflow_dont, 0,
-        "+v32", true, 0xffffffff, 0xffffffff, false),
+        "+v32", TRUE, 0xffffffff, 0xffffffff, FALSE),
 
-  HOWTO (R_RELWORD_NEG, 0, -1, 16, false,
+  HOWTO (R_RELWORD_NEG, 0, -1, 16, FALSE,
         0, complain_overflow_dont, 0,
-        "-v16", true, 0x0000ffff, 0x0000ffff, false),
-  HOWTO (R_RELLONG_NEG, 0, -2, 32, false,
+        "-v16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
+  HOWTO (R_RELLONG_NEG, 0, -2, 32, FALSE,
         0, complain_overflow_dont, 0,
-        "-v32", true, 0xffffffff, 0xffffffff, false),
+        "-v32", TRUE, 0xffffffff, 0xffffffff, FALSE),
 };
 
 static int
@@ -489,7 +490,7 @@ process_otr (abfd, otr, pass)
     }
 }
 
-static boolean
+static bfd_boolean
 versados_scan (abfd)
      bfd *abfd;
 {
@@ -510,7 +511,7 @@ versados_scan (abfd)
     {
       union ext_any any;
       if (!get_record (abfd, &any))
-       return true;
+       return TRUE;
       switch (any.header.type)
        {
        case VHEADER:
@@ -572,7 +573,7 @@ versados_scan (abfd)
 
   if ((VDATA (abfd)->symbols == NULL && abfd->symcount > 0)
       || (VDATA (abfd)->strings == NULL && VDATA (abfd)->stringlen > 0))
-    return false;
+    return FALSE;
 
   /* Actually fill in the section symbols,
      we stick them at the end of the table */
@@ -653,7 +654,7 @@ versados_object_p (abfd)
   return abfd->xvec;
 }
 
-static boolean
+static bfd_boolean
 versados_pass_2 (abfd)
      bfd *abfd;
 {
@@ -687,7 +688,7 @@ versados_pass_2 (abfd)
     }
 }
 
-static boolean
+static bfd_boolean
 versados_get_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -696,19 +697,19 @@ versados_get_section_contents (abfd, section, location, offset, count)
      bfd_size_type count;
 {
   if (!versados_pass_2 (abfd))
-    return false;
+    return FALSE;
 
   memcpy (location,
          EDATA (abfd, section->target_index).contents + offset,
          (size_t) count);
 
-  return true;
+  return TRUE;
 }
 
 #define versados_get_section_contents_in_window \
   _bfd_generic_get_section_contents_in_window
 
-static boolean
+static bfd_boolean
 versados_set_section_contents (abfd, section, location, offset, bytes_to_do)
      bfd *abfd ATTRIBUTE_UNUSED;
      sec_ptr section ATTRIBUTE_UNUSED;
@@ -716,13 +717,13 @@ versados_set_section_contents (abfd, section, location, offset, bytes_to_do)
      file_ptr offset ATTRIBUTE_UNUSED;
      bfd_size_type bytes_to_do ATTRIBUTE_UNUSED;
 {
-  return false;
+  return FALSE;
 }
 
 static int
 versados_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return 0;
 }
index 001aec54aba5849b4a20134e83926250da8be88a..41b8bc4afa2277029912761285f53d2ec6f579da 100644 (file)
@@ -1,3 +1,3 @@
-#define BFD_VERSION_DATE 20021115
+#define BFD_VERSION_DATE 20021223
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING @bfd_version_string@
index 10fbb2d35c75bfc8ae0b4c4035133d3c7a426ba1..7bb7a7735996bec5ebe12d3be63e5840635927ca 100644 (file)
@@ -674,7 +674,9 @@ _bfd_vms_slurp_gsd (abfd, objtype)
 
            /* save symbol in vms_symbol_table  */
 
-           entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV(vms_symbol_table), symbol->name, true, false);
+           entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV(vms_symbol_table),
+                                                         symbol->name,
+                                                         TRUE, FALSE);
            if (entry == (vms_symbol_entry *)NULL)
              {
                bfd_set_error (bfd_error_no_memory);
index fbeb42e4eb342bbb720ec2391d93ebbe119ec728..adbecaccba5afebb297854145708e995afc66312 100644 (file)
@@ -1,6 +1,7 @@
 /* vms-hdr.c -- BFD back-end for VMS/VAX (openVMS/VAX) and
    EVAX (openVMS/Alpha) files.
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+   Free Software Foundation, Inc.
 
    HDR record handling functions
    EMH record handling functions
@@ -408,10 +409,10 @@ _bfd_vms_slurp_eom (abfd, objtype)
          bfd_set_error (bfd_error_bad_value);
          return -1;
        }
-      PRIV(eom_data).eom_has_transfer = false;
+      PRIV(eom_data).eom_has_transfer = FALSE;
       if (PRIV(rec_size) > 10)
        {
-          PRIV(eom_data).eom_has_transfer = true;
+          PRIV(eom_data).eom_has_transfer = TRUE;
           PRIV(eom_data).eom_b_tfrflg = *(vms_rec + 9);
           PRIV(eom_data).eom_l_psindx = bfd_getl32 (vms_rec + 12);
           PRIV(eom_data).eom_l_tfradr = bfd_getl32 (vms_rec + 16);
index 3b043b47b76acdc2d869180f43ad19757795bc17..86b84d74104f6873b8aef918f9fee1eda9674403 100644 (file)
@@ -355,8 +355,8 @@ _bfd_vms_get_record (abfd)
 
   if (PRIV (file_format) == FF_UNKNOWN)
     {                                          /* record length repeats ? */
-      if ( (vms_buf[0] == vms_buf[4])
-        && (vms_buf[1] == vms_buf[5]))
+      if (vms_buf[0] == vms_buf[4]
+         && vms_buf[1] == vms_buf[5])
        {
          PRIV (file_format) = FF_FOREIGN;      /* Y: foreign environment */
          test_start = 2;
@@ -605,10 +605,10 @@ add_new_contents (abfd, section)
   return newptr;
 }
 
-/* Save section data & offset to an vms_section structure
-   vms_section_table[] holds the vms_section chain  */
+/* Save section data & offset to a vms_section structure
+   vms_section_table[] holds the vms_section chain.  */
 
-boolean
+bfd_boolean
 _bfd_save_vms_section (abfd, section, data, offset, count)
      bfd *abfd;
      sec_ptr section;
@@ -621,16 +621,16 @@ _bfd_save_vms_section (abfd, section, data, offset, count)
   if (section->index >= VMS_SECTION_COUNT)
     {
       bfd_set_error (bfd_error_nonrepresentable_section);
-      return false;
+      return FALSE;
     }
   if (count == (bfd_size_type)0)
-    return true;
+    return TRUE;
   sptr = add_new_contents (abfd, section);
   if (sptr == NULL)
-    return false;
+    return FALSE;
   memcpy (sptr->contents + offset, data, (size_t) count);
 
-  return true;
+  return TRUE;
 }
 
 /* Get vms_section pointer to saved contents for section # index  */
@@ -1092,13 +1092,14 @@ _bfd_vms_enter_symbol (abfd, name)
 #endif
 
   entry = (vms_symbol_entry *)
-         bfd_hash_lookup (PRIV (vms_symbol_table), name, false, false);
+         bfd_hash_lookup (PRIV (vms_symbol_table), name, FALSE, FALSE);
   if (entry == 0)
     {
 #if VMS_DEBUG
       _bfd_vms_debug (8,  "creating hash entry for %s\n", name);
 #endif
-      entry = (vms_symbol_entry *)bfd_hash_lookup (PRIV (vms_symbol_table), name, true, false);
+      entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV (vms_symbol_table),
+                                                   name, TRUE, FALSE);
       if (entry != 0)
        {
          asymbol *symbol;
index 8e9eef41e12c2f66c107022c327cf953f44d3564..bd748ca3fa7037a072d6ba315a2e45b8b1c9024f 100644 (file)
 
 #include "vms.h"
 
-static void image_set_ptr PARAMS ((bfd *abfd, int psect, uquad offset));
-static void image_inc_ptr PARAMS ((bfd *abfd, uquad offset));
-static void image_dump PARAMS ((bfd *abfd, unsigned char *ptr, int size, int offset));
-static void image_write_b PARAMS ((bfd *abfd, unsigned int value));
-static void image_write_w PARAMS ((bfd *abfd, unsigned int value));
-static void image_write_l PARAMS ((bfd *abfd, unsigned long value));
-static void image_write_q PARAMS ((bfd *abfd, uquad value));
-static int check_section PARAMS ((bfd *, int));
-static boolean etir_sta PARAMS ((bfd *, int, unsigned char *));
-static boolean etir_sto PARAMS ((bfd *, int, unsigned char *));
-static boolean etir_opr PARAMS ((bfd *, int, unsigned char *));
-static boolean etir_ctl PARAMS ((bfd *, int, unsigned char *));
-static boolean etir_stc PARAMS ((bfd *, int, unsigned char *));
-static asection *new_section PARAMS ((bfd *, int));
-static int alloc_section PARAMS ((bfd *, unsigned int));
-static int etir_cmd PARAMS ((bfd *, int, unsigned char *));
-static int analyze_tir PARAMS ((bfd *, unsigned char *, unsigned int));
-static int analyze_etir PARAMS ((bfd *, unsigned char *, unsigned int));
-static unsigned char * tir_opr PARAMS ((bfd *, unsigned char *));
-static const char * tir_cmd_name PARAMS ((int));
-static const char * cmd_name PARAMS ((int));
+static void image_set_ptr
+  PARAMS ((bfd *abfd, int psect, uquad offset));
+static void image_inc_ptr
+  PARAMS ((bfd *abfd, uquad offset));
+static void image_dump
+  PARAMS ((bfd *abfd, unsigned char *ptr, int size, int offset));
+static void image_write_b
+  PARAMS ((bfd *abfd, unsigned int value));
+static void image_write_w
+  PARAMS ((bfd *abfd, unsigned int value));
+static void image_write_l
+  PARAMS ((bfd *abfd, unsigned long value));
+static void image_write_q
+  PARAMS ((bfd *abfd, uquad value));
+static int check_section
+  PARAMS ((bfd *, int));
+static bfd_boolean etir_sta
+  PARAMS ((bfd *, int, unsigned char *));
+static bfd_boolean etir_sto
+  PARAMS ((bfd *, int, unsigned char *));
+static bfd_boolean etir_opr
+  PARAMS ((bfd *, int, unsigned char *));
+static bfd_boolean etir_ctl
+  PARAMS ((bfd *, int, unsigned char *));
+static bfd_boolean etir_stc
+  PARAMS ((bfd *, int, unsigned char *));
+static asection *new_section
+  PARAMS ((bfd *, int));
+static int alloc_section
+  PARAMS ((bfd *, unsigned int));
+static int etir_cmd
+  PARAMS ((bfd *, int, unsigned char *));
+static int analyze_tir
+  PARAMS ((bfd *, unsigned char *, unsigned int));
+static int analyze_etir
+  PARAMS ((bfd *, unsigned char *, unsigned int));
+static unsigned char * tir_opr
+  PARAMS ((bfd *, unsigned char *));
+static const char * tir_cmd_name
+  PARAMS ((int));
+static const char * cmd_name
+  PARAMS ((int));
 
 \f
 static int
@@ -282,7 +303,7 @@ cmd_name (cmd)
 
    see table B-8 of the openVMS linker manual.  */
 
-static boolean
+static bfd_boolean
 etir_sta (abfd, cmd, ptr)
      bfd *abfd;
      int cmd;
@@ -310,7 +331,7 @@ etir_sta (abfd, cmd, ptr)
 
        name = _bfd_vms_save_counted_string (ptr);
        entry = (vms_symbol_entry *)
-         bfd_hash_lookup (PRIV (vms_symbol_table), name, false, false);
+         bfd_hash_lookup (PRIV (vms_symbol_table), name, FALSE, FALSE);
        if (entry == (vms_symbol_entry *) NULL)
          {
 #if VMS_DEBUG
@@ -362,7 +383,7 @@ etir_sta (abfd, cmd, ptr)
            (*_bfd_error_handler) (_("bad section index in %s"),
                                   cmd_name (cmd));
            bfd_set_error (bfd_error_bad_value);
-           return false;
+           return FALSE;
          }
        dummy = bfd_getl64 (ptr+4);
        _bfd_vms_push (abfd, dummy, (int) psect);
@@ -373,18 +394,18 @@ etir_sta (abfd, cmd, ptr)
     case ETIR_S_C_STA_MOD:
     case ETIR_S_C_STA_CKARG:
       (*_bfd_error_handler) (_("unsupported STA cmd %s"), cmd_name (cmd));
-      return false;
+      return FALSE;
       break;
 
     default:
       (*_bfd_error_handler) (_("reserved STA cmd %d"), cmd);
-      return false;
+      return FALSE;
       break;
     }
 #if VMS_DEBUG
   _bfd_vms_debug (5, "etir_sta true\n");
 #endif
-  return true;
+  return TRUE;
 }
 
 /*
@@ -397,7 +418,7 @@ etir_sta (abfd, cmd, ptr)
 
    see table B-9 of the openVMS linker manual.  */
 
-static boolean
+static bfd_boolean
 etir_sto (abfd, cmd, ptr)
      bfd *abfd;
      int cmd;
@@ -485,12 +506,12 @@ etir_sto (abfd, cmd, ptr)
 
        name = _bfd_vms_save_counted_string (ptr);
        entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV (vms_symbol_table),
-                                                     name, false, false);
+                                                     name, FALSE, FALSE);
        if (entry == (vms_symbol_entry *) NULL)
          {
            (*_bfd_error_handler) (_("%s: no symbol \"%s\""),
                                   cmd_name (cmd), name);
-           return false;
+           return FALSE;
          }
        else
          /* FIXME, reloc.  */
@@ -508,12 +529,12 @@ etir_sto (abfd, cmd, ptr)
 
        name = _bfd_vms_save_counted_string (ptr);
        entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV (vms_symbol_table),
-                                                     name, false, false);
+                                                     name, FALSE, FALSE);
        if (entry == (vms_symbol_entry *) NULL)
          {
            (*_bfd_error_handler) (_("%s: no symbol \"%s\""),
                                   cmd_name (cmd), name);
-           return false;
+           return FALSE;
          }
        else
          image_write_q (abfd, (uquad) (entry->symbol->value)); /* FIXME, reloc */
@@ -561,7 +582,7 @@ etir_sto (abfd, cmd, ptr)
 
        name = _bfd_vms_save_counted_string (ptr);
        entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV (vms_symbol_table),
-                                                     name, false, false);
+                                                     name, FALSE, FALSE);
        if (entry == (vms_symbol_entry *) NULL)
          {
 #if VMS_DEBUG
@@ -591,7 +612,7 @@ etir_sto (abfd, cmd, ptr)
       break;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Stack operator commands
@@ -601,7 +622,7 @@ etir_sto (abfd, cmd, ptr)
 
    see table B-10 of the openVMS linker manual.  */
 
-static boolean
+static bfd_boolean
 etir_opr (abfd, cmd, ptr)
      bfd *abfd;
      int cmd;
@@ -709,14 +730,14 @@ etir_opr (abfd, cmd, ptr)
       break;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Control commands.
 
    See table B-11 of the openVMS linker manual.  */
 
-static boolean
+static bfd_boolean
 etir_ctl (abfd, cmd, ptr)
      bfd *abfd;
      int cmd;
@@ -776,14 +797,14 @@ etir_ctl (abfd, cmd, ptr)
       (*_bfd_error_handler) (_("reserved CTL cmd %d"), cmd);
       break;
     }
-  return true;
+  return TRUE;
 }
 
 /* store conditional commands
 
    See table B-12 and B-13 of the openVMS linker manual.  */
 
-static boolean
+static bfd_boolean
 etir_stc (abfd, cmd, ptr)
      bfd *abfd;
      int cmd;
@@ -805,9 +826,9 @@ etir_stc (abfd, cmd, ptr)
 
       /* 201 Store-conditional Linkage Pair with Procedure Signature
         arg:   lw      linkage index
-               cs      procedure name
-               by      signature length
-               da      signature.  */
+               cs      procedure name
+               by      signature length
+               da      signature.  */
 
     case ETIR_S_C_STC_LP_PSB:
       image_inc_ptr (abfd, (uquad) 16);        /* skip entry,procval */
@@ -815,7 +836,7 @@ etir_stc (abfd, cmd, ptr)
 
       /* 202 Store-conditional Address at global address
         arg:   lw      linkage index
-               cs      global name  */
+               cs      global name.  */
 
     case ETIR_S_C_STC_GBL:
       (*_bfd_error_handler) (_("%s: not supported"), cmd_name (cmd));
@@ -823,7 +844,7 @@ etir_stc (abfd, cmd, ptr)
 
       /* 203 Store-conditional Code Address at global address
         arg:   lw      linkage index
-               cs      procedure name  */
+               cs      procedure name.  */
 
     case ETIR_S_C_STC_GCA:
       (*_bfd_error_handler) (_("%s: not supported"), cmd_name (cmd));
@@ -831,8 +852,8 @@ etir_stc (abfd, cmd, ptr)
 
       /* 204 Store-conditional Address at psect + offset
         arg:   lw      linkage index
-               lw      psect index
-               qw      offset  */
+               lw      psect index
+               qw      offset.  */
 
     case ETIR_S_C_STC_PS:
       (*_bfd_error_handler) (_("%s: not supported"), cmd_name (cmd));
@@ -899,7 +920,7 @@ etir_stc (abfd, cmd, ptr)
 #endif
       break;
     }
-  return true;
+  return TRUE;
 }
 
 static asection *
@@ -970,12 +991,12 @@ alloc_section (abfd, idx)
 }
 
 /* tir_sta
+
    vax stack commands
-  
+
    Handle sta_xxx commands in tir section
    ptr points to data area in record
-  
+
    See table 7-3 of the VAX/VMS linker manual.  */
 
 static unsigned char *
@@ -992,9 +1013,9 @@ tir_sta (bfd *abfd, unsigned char *ptr)
       /* stack */
     case TIR_S_C_STA_GBL:
       /* stack global
-         arg: cs       symbol name
-        
-         stack 32 bit value of symbol (high bits set to 0).  */
+        arg: cs        symbol name
+
+        stack 32 bit value of symbol (high bits set to 0).  */
       {
        char *name;
        vms_symbol_entry *entry;
@@ -1012,26 +1033,26 @@ tir_sta (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STA_SB:
       /* stack signed byte
-         arg: by       value
-        
-         stack byte value, sign extend to 32 bit.  */
+        arg: by        value
+
+        stack byte value, sign extend to 32 bit.  */
       _bfd_vms_push (abfd, (uquad) *ptr++, -1);
       break;
 
     case TIR_S_C_STA_SW:
       /* stack signed short word
-         arg: sh       value
-        
-         stack 16 bit value, sign extend to 32 bit.  */
+        arg: sh        value
+
+        stack 16 bit value, sign extend to 32 bit.  */
       _bfd_vms_push (abfd, (uquad) bfd_getl16 (ptr), -1);
       ptr += 2;
       break;
 
     case TIR_S_C_STA_LW:
       /* stack signed longword
-         arg: lw       value
-        
-         stack 32 bit value.  */
+        arg: lw        value
+
+        stack 32 bit value.  */
       _bfd_vms_push (abfd, (uquad) bfd_getl32 (ptr), -1);
       ptr += 4;
       break;
@@ -1039,9 +1060,9 @@ tir_sta (bfd *abfd, unsigned char *ptr)
     case TIR_S_C_STA_PB:
     case TIR_S_C_STA_WPB:
       /* stack psect base plus byte offset (word index)
-         arg: by       section index
-               (sh     section index)
-               by      signed byte offset.  */
+        arg: by        section index
+               (sh     section index)
+               by      signed byte offset.  */
       {
        unsigned long dummy;
        unsigned int psect;
@@ -1066,9 +1087,9 @@ tir_sta (bfd *abfd, unsigned char *ptr)
     case TIR_S_C_STA_PW:
     case TIR_S_C_STA_WPW:
       /* stack psect base plus word offset (word index)
-         arg: by       section index
-               (sh     section index)
-               sh      signed short offset.  */
+        arg: by        section index
+               (sh     section index)
+               sh      signed short offset.  */
       {
        unsigned long dummy;
        unsigned int psect;
@@ -1093,9 +1114,9 @@ tir_sta (bfd *abfd, unsigned char *ptr)
     case TIR_S_C_STA_PL:
     case TIR_S_C_STA_WPL:
       /* stack psect base plus long offset (word index)
-         arg: by       section index
-               (sh     section index)
-               lw      signed longword offset.  */
+        arg: by        section index
+               (sh     section index)
+               lw      signed longword offset.  */
       {
        unsigned long dummy;
        unsigned int psect;
@@ -1119,41 +1140,41 @@ tir_sta (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STA_UB:
       /* stack unsigned byte
-         arg: by       value
-        
-         stack byte value.  */
+        arg: by        value
+
+        stack byte value.  */
       _bfd_vms_push (abfd, (uquad) *ptr++, -1);
       break;
 
     case TIR_S_C_STA_UW:
       /* stack unsigned short word
-         arg: sh       value
-        
-         stack 16 bit value.  */
+        arg: sh        value
+
+        stack 16 bit value.  */
       _bfd_vms_push (abfd, (uquad) bfd_getl16 (ptr), -1);
       ptr += 2;
       break;
 
     case TIR_S_C_STA_BFI:
       /* stack byte from image
-         arg: none.  */
+        arg: none.  */
       /* FALLTHRU  */
     case TIR_S_C_STA_WFI:
       /* stack byte from image
-         arg: none.  */
+        arg: none.  */
       /* FALLTHRU */
     case TIR_S_C_STA_LFI:
       /* stack byte from image
-         arg: none.  */
+        arg: none.  */
       (*_bfd_error_handler) (_("stack-from-image not implemented"));
       return NULL;
 
     case TIR_S_C_STA_EPM:
       /* stack entry point mask
-         arg: cs       symbol name
-        
-         stack (unsigned) entry point mask of symbol
-         err if symbol is no entry point.  */
+        arg: cs        symbol name
+
+        stack (unsigned) entry point mask of symbol
+        err if symbol is no entry point.  */
       {
        char *name;
        vms_symbol_entry *entry;
@@ -1171,20 +1192,20 @@ tir_sta (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STA_CKARG:
       /* compare procedure argument
-         arg: cs       symbol name
-               by      argument index
-               da      argument descriptor
-        
-         compare argument descriptor with symbol argument (ARG$V_PASSMECH)
-         and stack TRUE (args match) or FALSE (args dont match) value.  */
+        arg: cs        symbol name
+               by      argument index
+               da      argument descriptor
+
+        compare argument descriptor with symbol argument (ARG$V_PASSMECH)
+        and stack TRUE (args match) or FALSE (args dont match) value.  */
       (*_bfd_error_handler) (_("PASSMECH not fully implemented"));
       _bfd_vms_push (abfd, (uquad) 1, -1);
       break;
 
     case TIR_S_C_STA_LSY:
       /* stack local symbol value
-         arg:  sh      environment index
-               cs      symbol name.  */
+        arg:   sh      environment index
+               cs      symbol name.  */
       {
        int envidx;
        char *name;
@@ -1204,9 +1225,9 @@ tir_sta (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STA_LIT:
       /* stack literal
-         arg:  by      literal index
-        
-         stack literal.  */
+        arg:   by      literal index
+
+        stack literal.  */
       ptr++;
       _bfd_vms_push (abfd, (uquad) 0, -1);
       (*_bfd_error_handler) (_("stack-literal not fully implemented"));
@@ -1214,11 +1235,11 @@ tir_sta (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STA_LEPM:
       /* stack local symbol entry point mask
-         arg:  sh      environment index
-               cs      symbol name
-        
-         stack (unsigned) entry point mask of symbol
-         err if symbol is no entry point.  */
+        arg:   sh      environment index
+               cs      symbol name
+
+        stack (unsigned) entry point mask of symbol
+        err if symbol is no entry point.  */
       {
        int envidx;
        char *name;
@@ -1277,12 +1298,12 @@ tir_cmd_name (cmd)
 }
 
 /* tir_sto
-  
+
    vax store commands
-  
+
    handle sto_xxx commands in tir section
    ptr points to data area in record
-  
+
    See table 7-4 of the VAX/VMS linker manual.  */
 
 static unsigned char *
@@ -1300,28 +1321,28 @@ tir_sto (bfd *abfd, unsigned char *ptr)
     {
     case TIR_S_C_STO_SB:
       /* store signed byte: pop stack, write byte
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       image_write_b (abfd, dummy & 0xff);      /* FIXME: check top bits */
       break;
 
     case TIR_S_C_STO_SW:
       /* store signed word: pop stack, write word
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       image_write_w (abfd, dummy & 0xffff);    /* FIXME: check top bits */
       break;
 
     case TIR_S_C_STO_LW:
       /* store longword: pop stack, write longword
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       image_write_l (abfd, dummy & 0xffffffff);        /* FIXME: check top bits */
       break;
 
     case TIR_S_C_STO_BD:
       /* store byte displaced: pop stack, sub lc+1, write byte
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       dummy -= ((PRIV (sections)[psect])->vma + 1);
       image_write_b (abfd, dummy & 0xff);/* FIXME: check top bits */
@@ -1329,7 +1350,7 @@ tir_sto (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STO_WD:
       /* store word displaced: pop stack, sub lc+2, write word
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       dummy -= ((PRIV (sections)[psect])->vma + 2);
       image_write_w (abfd, dummy & 0xffff);/* FIXME: check top bits */
@@ -1337,7 +1358,7 @@ tir_sto (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STO_LD:
       /* store long displaced: pop stack, sub lc+4, write long
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       dummy -= ((PRIV (sections)[psect])->vma + 4);
       image_write_l (abfd, dummy & 0xffffffff);/* FIXME: check top bits */
@@ -1345,14 +1366,14 @@ tir_sto (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STO_LI:
       /* store short literal: pop stack, write byte
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       image_write_b (abfd, dummy & 0xff);/* FIXME: check top bits */
       break;
 
     case TIR_S_C_STO_PIDR:
       /* store position independent data reference: pop stack, write longword
-         arg: none.
+        arg: none.
         FIXME: incomplete !  */
       dummy = _bfd_vms_pop (abfd, &psect);
       image_write_l (abfd, dummy & 0xffffffff);
@@ -1360,8 +1381,8 @@ tir_sto (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STO_PICR:
       /* store position independent code reference: pop stack, write longword
-         arg: none.
-         FIXME: incomplete !  */
+        arg: none.
+        FIXME: incomplete !  */
       dummy = _bfd_vms_pop (abfd, &psect);
       image_write_b (abfd, 0x9f);
       image_write_l (abfd, dummy & 0xffffffff);
@@ -1369,8 +1390,8 @@ tir_sto (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_STO_RIVB:
       /* store repeated immediate variable bytes
-         1-byte count n field followed by n bytes of data
-         pop stack, write n bytes <stack> times.  */
+        1-byte count n field followed by n bytes of data
+        pop stack, write n bytes <stack> times.  */
       size = *ptr++;
       dummy = (unsigned long) _bfd_vms_pop (abfd, NULL);
       while (dummy-- > 0L)
@@ -1430,7 +1451,7 @@ tir_sto (bfd *abfd, unsigned char *ptr)
    all 32 bit signed arithmetic
    all word just like a stack calculator
    arguments are popped from stack, results are pushed on stack
-  
+
    See table 7-5 of the VAX/VMS linker manual.  */
 
 static unsigned char *
@@ -1573,7 +1594,7 @@ tir_opr (abfd, ptr)
 }
 
 /* control commands
-  
+
    See table 7-6 of the VAX/VMS linker manual.  */
 
 static unsigned char *
@@ -1590,7 +1611,7 @@ tir_ctl (bfd *abfd, unsigned char *ptr)
     {
     case TIR_S_C_CTL_SETRB:
       /* Set relocation base: pop stack, set image location counter
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       if (psect >= PRIV (section_count))
        alloc_section (abfd, psect);
@@ -1599,14 +1620,14 @@ tir_ctl (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_CTL_AUGRB:
       /* Augment relocation base: increment image location counter by offset
-         arg: lw       offset value.  */
+        arg: lw        offset value.  */
       dummy = bfd_getl32 (ptr);
       image_inc_ptr (abfd, (uquad) dummy);
       break;
 
     case TIR_S_C_CTL_DFLOC:
       /* Define location: pop index, save location counter under index
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, NULL);
       (*_bfd_error_handler) (_("%s: not fully implemented"),
                             tir_cmd_name (ptr[-1]));
@@ -1614,7 +1635,7 @@ tir_ctl (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_CTL_STLOC:
       /* Set location: pop index, restore location counter from index
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       (*_bfd_error_handler) (_("%s: not fully implemented"),
                             tir_cmd_name (ptr[-1]));
@@ -1622,7 +1643,7 @@ tir_ctl (bfd *abfd, unsigned char *ptr)
 
     case TIR_S_C_CTL_STKDL:
       /* Stack defined location: pop index, push location counter from index
-         arg: none.  */
+        arg: none.  */
       dummy = _bfd_vms_pop (abfd, &psect);
       (*_bfd_error_handler) (_("%s: not fully implemented"),
                             tir_cmd_name (ptr[-1]));
@@ -1648,7 +1669,7 @@ tir_cmd (bfd *abfd, unsigned char *ptr)
   }
   tir_table[] =
   {
-    { 0,                 TIR_S_C_MAXSTACOD, tir_sta },
+    { 0,                TIR_S_C_MAXSTACOD, tir_sta },
     { TIR_S_C_MINSTOCOD, TIR_S_C_MAXSTOCOD, tir_sto },
     { TIR_S_C_MINOPRCOD, TIR_S_C_MAXOPRCOD, tir_opr },
     { TIR_S_C_MINCTLCOD, TIR_S_C_MAXCTLCOD, tir_ctl },
@@ -1701,7 +1722,7 @@ etir_cmd (abfd, cmd, ptr)
   {
     int mincod;
     int maxcod;
-    boolean (*explain) PARAMS ((bfd *, int, unsigned char *));
+    bfd_boolean (*explain) PARAMS ((bfd *, int, unsigned char *));
   }
   etir_table[] =
   {
@@ -1891,9 +1912,12 @@ _bfd_vms_slurp_lnk (abfd, objtype)
 
    This is still under construction and therefore not documented.  */
 
-static void start_etir_record PARAMS ((bfd *abfd, int index, uquad offset, boolean justoffset));
-static void sto_imm PARAMS ((bfd *abfd, vms_section *sptr, bfd_vma vaddr, int index));
-static void end_etir_record PARAMS ((bfd *abfd));
+static void start_etir_record
+  PARAMS ((bfd *abfd, int index, uquad offset, bfd_boolean justoffset));
+static void sto_imm
+  PARAMS ((bfd *abfd, vms_section *sptr, bfd_vma vaddr, int index));
+static void end_etir_record
+  PARAMS ((bfd *abfd));
 
 static void
 sto_imm (abfd, sptr, vaddr, index)
@@ -1921,7 +1945,7 @@ sto_imm (abfd, sptr, vaddr, index)
       if (_bfd_vms_output_check (abfd, size) < 0)
        {                                       /* doesn't fit, split ! */
          end_etir_record (abfd);
-         start_etir_record (abfd, index, vaddr, false);
+         start_etir_record (abfd, index, vaddr, FALSE);
          size = _bfd_vms_output_check (abfd, 0);       /* get max size */
          if (size > ssize)                     /* more than what's left ? */
            size = ssize;
@@ -1950,7 +1974,7 @@ start_etir_record (abfd, index, offset, justoffset)
     bfd *abfd;
     int index;
     uquad offset;
-    boolean justoffset;
+    bfd_boolean justoffset;
 {
   if (!justoffset)
     {
@@ -2055,7 +2079,7 @@ _bfd_vms_write_tir (abfd, objtype)
          vaddr = (bfd_vma) (sptr->offset);
 
          start_etir_record (abfd, section->index, (uquad) sptr->offset,
-                            false);
+                            FALSE);
 
          while (sptr != NULL)  /* one STA_PQ, CTL_SETRB per vms_section */
            {
@@ -2111,7 +2135,7 @@ _bfd_vms_write_tir (abfd, objtype)
                                        end_etir_record (abfd);
                                        start_etir_record (abfd,
                                                           section->index,
-                                                          vaddr, false);
+                                                          vaddr, FALSE);
                                      }
                                    _bfd_vms_output_begin (abfd,
                                                           ETIR_S_C_STO_GBL_LW,
@@ -2128,7 +2152,7 @@ _bfd_vms_write_tir (abfd, objtype)
                                        end_etir_record (abfd);
                                        start_etir_record (abfd,
                                                           section->index,
-                                                          vaddr, false);
+                                                          vaddr, FALSE);
                                      }
                                    _bfd_vms_output_begin (abfd,
                                                           ETIR_S_C_STA_LW,
@@ -2148,7 +2172,7 @@ _bfd_vms_write_tir (abfd, objtype)
                                        end_etir_record (abfd);
                                        start_etir_record (abfd,
                                                           section->index,
-                                                          vaddr, false);
+                                                          vaddr, FALSE);
                                      }
                                    _bfd_vms_output_begin (abfd,
                                                           ETIR_S_C_STA_PQ,
@@ -2178,7 +2202,7 @@ _bfd_vms_write_tir (abfd, objtype)
                                        end_etir_record (abfd);
                                        start_etir_record (abfd,
                                                           section->index,
-                                                          vaddr, false);
+                                                          vaddr, FALSE);
                                      }
                                    _bfd_vms_output_begin (abfd,
                                                           ETIR_S_C_STO_GBL,
@@ -2195,7 +2219,7 @@ _bfd_vms_write_tir (abfd, objtype)
                                        end_etir_record (abfd);
                                        start_etir_record (abfd,
                                                           section->index,
-                                                          vaddr, false);
+                                                          vaddr, FALSE);
                                      }
                                    _bfd_vms_output_begin (abfd,
                                                           ETIR_S_C_STA_QW,
@@ -2215,7 +2239,7 @@ _bfd_vms_write_tir (abfd, objtype)
                                        end_etir_record (abfd);
                                        start_etir_record (abfd,
                                                           section->index,
-                                                          vaddr, false);
+                                                          vaddr, FALSE);
                                      }
                                    _bfd_vms_output_begin (abfd,
                                                           ETIR_S_C_STA_PQ,
@@ -2266,7 +2290,7 @@ _bfd_vms_write_tir (abfd, objtype)
                                  {
                                    end_etir_record (abfd);
                                    start_etir_record (abfd, section->index,
-                                                      vaddr, false);
+                                                      vaddr, FALSE);
                                  }
                                _bfd_vms_output_begin (abfd,
                                                       ETIR_S_C_STC_LP_PSB,
@@ -2291,7 +2315,7 @@ _bfd_vms_write_tir (abfd, objtype)
                                    end_etir_record (abfd);
                                    start_etir_record (abfd,
                                                       section->index,
-                                                      vaddr, false);
+                                                      vaddr, FALSE);
                                  }
                                _bfd_vms_output_begin (abfd,
                                                       ETIR_S_C_STO_CA,
index 41a9717fcddedafa9284d1327b212d62020b0234..c98e483e637a61e7e75d8956e277c3acdec10f65 100644 (file)
--- a/bfd/vms.c
+++ b/bfd/vms.c
@@ -26,110 +26,142 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "vms.h"
 
-static boolean vms_initialize PARAMS ((bfd *));
+static bfd_boolean vms_initialize
+  PARAMS ((bfd *));
 static unsigned int priv_section_count;
-static boolean fill_section_ptr PARAMS ((struct bfd_hash_entry *, PTR));
-static boolean vms_fixup_sections PARAMS ((bfd *));
-static boolean copy_symbols PARAMS ((struct bfd_hash_entry *, PTR));
+static bfd_boolean fill_section_ptr
+  PARAMS ((struct bfd_hash_entry *, PTR));
+static bfd_boolean vms_fixup_sections
+  PARAMS ((bfd *));
+static bfd_boolean copy_symbols
+  PARAMS ((struct bfd_hash_entry *, PTR));
 static bfd_reloc_status_type reloc_nil
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static const struct bfd_target *vms_object_p PARAMS ((bfd *abfd));
-static const struct bfd_target *vms_archive_p PARAMS ((bfd *abfd));
-static boolean vms_mkobject PARAMS ((bfd *abfd));
-static boolean vms_write_object_contents PARAMS ((bfd *abfd));
-static boolean vms_close_and_cleanup PARAMS ((bfd *abfd));
-static boolean vms_bfd_free_cached_info PARAMS ((bfd *abfd));
-static boolean vms_new_section_hook PARAMS ((bfd *abfd, asection *section));
-static boolean vms_get_section_contents
+static const struct bfd_target *vms_object_p
+  PARAMS ((bfd *abfd));
+static const struct bfd_target *vms_archive_p
+  PARAMS ((bfd *abfd));
+static bfd_boolean vms_mkobject
+  PARAMS ((bfd *abfd));
+static bfd_boolean vms_write_object_contents
+  PARAMS ((bfd *abfd));
+static bfd_boolean vms_close_and_cleanup
+  PARAMS ((bfd *abfd));
+static bfd_boolean vms_bfd_free_cached_info
+  PARAMS ((bfd *abfd));
+static bfd_boolean vms_new_section_hook
+  PARAMS ((bfd *abfd, asection *section));
+static bfd_boolean vms_get_section_contents
   PARAMS ((bfd *abfd, asection *section, PTR x1, file_ptr x2,
           bfd_size_type x3));
-static boolean vms_get_section_contents_in_window
+static bfd_boolean vms_get_section_contents_in_window
   PARAMS ((bfd *abfd, asection *section, bfd_window *w, file_ptr offset,
           bfd_size_type count));
-static boolean vms_bfd_copy_private_bfd_data PARAMS ((bfd *src, bfd *dest));
-static boolean vms_bfd_copy_private_section_data
+static bfd_boolean vms_bfd_copy_private_bfd_data
+  PARAMS ((bfd *src, bfd *dest));
+static bfd_boolean vms_bfd_copy_private_section_data
   PARAMS ((bfd *srcbfd, asection *srcsec, bfd *dstbfd, asection *dstsec));
-static boolean vms_bfd_copy_private_symbol_data
+static bfd_boolean vms_bfd_copy_private_symbol_data
   PARAMS ((bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym));
-static boolean vms_bfd_print_private_bfd_data
+static bfd_boolean vms_bfd_print_private_bfd_data
   PARAMS ((bfd *abfd, void *file));
-static char *vms_core_file_failing_command PARAMS ((bfd *abfd));
-static int vms_core_file_failing_signal PARAMS ((bfd *abfd));
-static boolean vms_core_file_matches_executable_p
+static char *vms_core_file_failing_command
+  PARAMS ((bfd *abfd));
+static int vms_core_file_failing_signal
+  PARAMS ((bfd *abfd));
+static bfd_boolean vms_core_file_matches_executable_p
   PARAMS ((bfd *abfd, bfd *bbfd));
-static boolean vms_slurp_armap PARAMS ((bfd *abfd));
-static boolean vms_slurp_extended_name_table PARAMS ((bfd *abfd));
-static boolean vms_construct_extended_name_table
+static bfd_boolean vms_slurp_armap
+  PARAMS ((bfd *abfd));
+static bfd_boolean vms_slurp_extended_name_table
+  PARAMS ((bfd *abfd));
+static bfd_boolean vms_construct_extended_name_table
   PARAMS ((bfd *abfd, char **tabloc, bfd_size_type *tablen,
           const char **name));
 static void vms_truncate_arname
   PARAMS ((bfd *abfd, const char *pathname, char *arhdr));
-static boolean vms_write_armap
+static bfd_boolean vms_write_armap
   PARAMS ((bfd *arch, unsigned int elength, struct orl *map,
           unsigned int orl_count, int stridx));
-static PTR vms_read_ar_hdr PARAMS ((bfd *abfd));
-static bfd *vms_get_elt_at_index PARAMS ((bfd *abfd, symindex index));
-static bfd *vms_openr_next_archived_file PARAMS ((bfd *arch, bfd *prev));
-static boolean vms_update_armap_timestamp PARAMS ((bfd *abfd));
-static int vms_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
-static long vms_get_symtab_upper_bound PARAMS ((bfd *abfd));
-static long vms_get_symtab PARAMS ((bfd *abfd, asymbol **symbols));
+static PTR vms_read_ar_hdr
+  PARAMS ((bfd *abfd));
+static bfd *vms_get_elt_at_index
+  PARAMS ((bfd *abfd, symindex index));
+static bfd *vms_openr_next_archived_file
+  PARAMS ((bfd *arch, bfd *prev));
+static bfd_boolean vms_update_armap_timestamp
+  PARAMS ((bfd *abfd));
+static int vms_generic_stat_arch_elt
+  PARAMS ((bfd *, struct stat *));
+static long vms_get_symtab_upper_bound
+  PARAMS ((bfd *abfd));
+static long vms_get_symtab
+  PARAMS ((bfd *abfd, asymbol **symbols));
 static void vms_print_symbol
   PARAMS ((bfd *abfd, PTR file, asymbol *symbol, bfd_print_symbol_type how));
 static void vms_get_symbol_info
   PARAMS ((bfd *abfd, asymbol *symbol, symbol_info *ret));
-static boolean vms_bfd_is_local_label_name PARAMS ((bfd *abfd, const char *));
-static alent *vms_get_lineno PARAMS ((bfd *abfd, asymbol *symbol));
-static boolean vms_find_nearest_line
+static bfd_boolean vms_bfd_is_local_label_name
+  PARAMS ((bfd *abfd, const char *));
+static alent *vms_get_lineno
+  PARAMS ((bfd *abfd, asymbol *symbol));
+static bfd_boolean vms_find_nearest_line
   PARAMS ((bfd *abfd, asection *section, asymbol **symbols, bfd_vma offset,
           const char **file, const char **func, unsigned int *line));
 static asymbol *vms_bfd_make_debug_symbol
   PARAMS ((bfd *abfd, void *ptr, unsigned long size));
 static long vms_read_minisymbols
-  PARAMS ((bfd *abfd, boolean dynamic, PTR *minisymsp, unsigned int *sizep));
+  PARAMS ((bfd *abfd, bfd_boolean dynamic, PTR *minisymsp,
+          unsigned int *sizep));
 static asymbol *vms_minisymbol_to_symbol
-  PARAMS ((bfd *abfd, boolean dynamic, const PTR minisym, asymbol *sym));
-static long vms_get_reloc_upper_bound PARAMS ((bfd *abfd, asection *sect));
+  PARAMS ((bfd *abfd, bfd_boolean dynamic, const PTR minisym, asymbol *sym));
+static long vms_get_reloc_upper_bound
+  PARAMS ((bfd *abfd, asection *sect));
 static long vms_canonicalize_reloc
   PARAMS ((bfd *abfd, asection *srcsec, arelent **location,
           asymbol **symbols));
 static const struct reloc_howto_struct *vms_bfd_reloc_type_lookup
   PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
-static boolean vms_set_arch_mach
+static bfd_boolean vms_set_arch_mach
   PARAMS ((bfd *abfd, enum bfd_architecture arch, unsigned long mach));
-static boolean vms_set_section_contents
+static bfd_boolean vms_set_section_contents
   PARAMS ((bfd *abfd, asection *section, PTR location, file_ptr offset,
           bfd_size_type count));
-static int vms_sizeof_headers PARAMS ((bfd *abfd, boolean reloc));
+static int vms_sizeof_headers
+  PARAMS ((bfd *abfd, bfd_boolean reloc));
 static bfd_byte *vms_bfd_get_relocated_section_contents
   PARAMS ((bfd *abfd, struct bfd_link_info *link_info,
           struct bfd_link_order *link_order, bfd_byte *data,
-          boolean relocateable, asymbol **symbols));
-static boolean vms_bfd_relax_section
+          bfd_boolean relocateable, asymbol **symbols));
+static bfd_boolean vms_bfd_relax_section
   PARAMS ((bfd *abfd, asection *section, struct bfd_link_info *link_info,
-          boolean *again));
-static boolean vms_bfd_gc_sections
+          bfd_boolean *again));
+static bfd_boolean vms_bfd_gc_sections
   PARAMS ((bfd *abfd, struct bfd_link_info *link_info));
-static boolean vms_bfd_merge_sections
+static bfd_boolean vms_bfd_merge_sections
   PARAMS ((bfd *abfd, struct bfd_link_info *link_info));
 static struct bfd_link_hash_table *vms_bfd_link_hash_table_create
   PARAMS ((bfd *abfd));
 static void vms_bfd_link_hash_table_free
   PARAMS ((struct bfd_link_hash_table *hash));
-static boolean vms_bfd_link_add_symbols
+static bfd_boolean vms_bfd_link_add_symbols
   PARAMS ((bfd *abfd, struct bfd_link_info *link_info));
-static boolean vms_bfd_final_link
+static bfd_boolean vms_bfd_final_link
   PARAMS ((bfd *abfd, struct bfd_link_info *link_info));
-static boolean vms_bfd_link_split_section
+static bfd_boolean vms_bfd_link_split_section
   PARAMS ((bfd *abfd, asection *section));
-static long vms_get_dynamic_symtab_upper_bound PARAMS ((bfd *abfd));
+static long vms_get_dynamic_symtab_upper_bound
+  PARAMS ((bfd *abfd));
 static long vms_canonicalize_dynamic_symtab
   PARAMS ((bfd *abfd, asymbol **symbols));
-static long vms_get_dynamic_reloc_upper_bound PARAMS ((bfd *abfd));
+static long vms_get_dynamic_reloc_upper_bound
+  PARAMS ((bfd *abfd));
 static long vms_canonicalize_dynamic_reloc
   PARAMS ((bfd *abfd, arelent **arel, asymbol **symbols));
-static boolean vms_bfd_merge_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd));
-static boolean vms_bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags));
+static bfd_boolean vms_bfd_merge_private_bfd_data
+  PARAMS ((bfd *ibfd, bfd *obfd));
+static bfd_boolean vms_bfd_set_private_flags
+  PARAMS ((bfd *abfd, flagword flags));
 
 #define vms_make_empty_symbol _bfd_generic_make_empty_symbol
 #define vms_bfd_link_just_syms _bfd_generic_link_just_syms
@@ -231,7 +263,7 @@ const bfd_target vms_vax_vec =
 
 /* Initialize private data  */
 
-static boolean
+static bfd_boolean
 vms_initialize (abfd)
      bfd *abfd;
 {
@@ -243,7 +275,7 @@ vms_initialize (abfd)
   amt = sizeof (struct vms_private_data_struct);
   abfd->tdata.any = (struct vms_private_data_struct*) bfd_alloc (abfd, amt);
   if (abfd->tdata.any == 0)
-    return false;
+    return FALSE;
 
 #ifdef __ALPHA
   PRIV (is_vax) = 0;
@@ -254,7 +286,7 @@ vms_initialize (abfd)
   PRIV (buf_size) = 0;
   PRIV (rec_length) = 0;
   PRIV (file_format) = FF_UNKNOWN;
-  PRIV (fixup_done) = false;
+  PRIV (fixup_done) = FALSE;
   PRIV (sections) = NULL;
 
   amt = sizeof (struct stack_struct) * STACKSIZE;
@@ -290,14 +322,14 @@ vms_initialize (abfd)
   PRIV (output_size) = 0;
   PRIV (output_alignment) = 1;
 
-  return true;
+  return TRUE;
 
  error_ret2:
   bfd_hash_table_free (PRIV (vms_symbol_table));
  error_ret1:
   bfd_release (abfd, abfd->tdata.any);
   abfd->tdata.any = 0;
-  return false;
+  return FALSE;
 }
 
 /* Fill symbol->section with section ptr
@@ -309,7 +341,7 @@ vms_initialize (abfd)
 
    called from bfd_hash_traverse in vms_fixup_sections  */
 
-static boolean
+static bfd_boolean
 fill_section_ptr (entry, sections)
      struct bfd_hash_entry *entry;
      PTR sections;
@@ -335,7 +367,7 @@ fill_section_ptr (entry, sections)
   if (strcmp (sym->name, sec->name) == 0)
     sym->flags |= BSF_SECTION_SYM;
 
-  return true;
+  return TRUE;
 }
 
 /* Fixup sections
@@ -347,12 +379,12 @@ fill_section_ptr (entry, sections)
    alloc PRIV(sections) according to abfd->section_count
        copy abfd->sections to PRIV(sections)  */
 
-static boolean
+static bfd_boolean
 vms_fixup_sections (abfd)
      bfd *abfd;
 {
   if (PRIV (fixup_done))
-    return true;
+    return TRUE;
 
   /*
    * traverse symbol table and fill in all section pointers
@@ -363,9 +395,9 @@ vms_fixup_sections (abfd)
   bfd_hash_traverse (PRIV (vms_symbol_table), fill_section_ptr,
                    (PTR) (PRIV (sections)));
 
-  PRIV (fixup_done) = true;
+  PRIV (fixup_done) = TRUE;
 
-  return true;
+  return TRUE;
 }
 
 /*===========================================================================*/
@@ -540,7 +572,7 @@ vms_archive_p (abfd)
 
 /* Set the format of a file being written.  */
 
-static boolean
+static bfd_boolean
 vms_mkobject (abfd)
      bfd *abfd;
 {
@@ -565,12 +597,12 @@ vms_mkobject (abfd)
     abfd->arch_info = arch;
   }
 
-  return true;
+  return TRUE;
 }
 
 /* Write cached information into a file being written, at bfd_close.  */
 
-static boolean
+static bfd_boolean
 vms_write_object_contents (abfd)
      bfd *abfd;
 {
@@ -583,50 +615,50 @@ vms_write_object_contents (abfd)
       if (PRIV (is_vax))
        {
          if (_bfd_vms_write_hdr (abfd, OBJ_S_C_HDR) != 0)
-           return false;
+           return FALSE;
          if (_bfd_vms_write_gsd (abfd, OBJ_S_C_GSD) != 0)
-           return false;
+           return FALSE;
          if (_bfd_vms_write_tir (abfd, OBJ_S_C_TIR) != 0)
-           return false;
+           return FALSE;
          if (_bfd_vms_write_tbt (abfd, OBJ_S_C_TBT) != 0)
-           return false;
+           return FALSE;
          if (_bfd_vms_write_dbg (abfd, OBJ_S_C_DBG) != 0)
-           return false;
+           return FALSE;
          if (abfd->section_count > 255)
            {
              if (_bfd_vms_write_eom (abfd, OBJ_S_C_EOMW) != 0)
-               return false;
+               return FALSE;
            }
          else
            {
              if (_bfd_vms_write_eom (abfd, OBJ_S_C_EOM) != 0)
-               return false;
+               return FALSE;
            }
        }
       else
        {
          if (_bfd_vms_write_hdr (abfd, EOBJ_S_C_EMH) != 0)
-           return false;
+           return FALSE;
          if (_bfd_vms_write_gsd (abfd, EOBJ_S_C_EGSD) != 0)
-           return false;
+           return FALSE;
          if (_bfd_vms_write_tir (abfd, EOBJ_S_C_ETIR) != 0)
-           return false;
+           return FALSE;
          if (_bfd_vms_write_tbt (abfd, EOBJ_S_C_ETBT) != 0)
-           return false;
+           return FALSE;
          if (_bfd_vms_write_dbg (abfd, EOBJ_S_C_EDBG) != 0)
-           return false;
+           return FALSE;
          if (_bfd_vms_write_eom (abfd, EOBJ_S_C_EEOM) != 0)
-           return false;
+           return FALSE;
        }
     }
-  return true;
+  return TRUE;
 }
 
 /*-- 4.1, generic -----------------------------------------------------------*/
 
 /* Called when the BFD is being closed to do any necessary cleanup.  */
 
-static boolean
+static bfd_boolean
 vms_close_and_cleanup (abfd)
      bfd *abfd;
 {
@@ -634,7 +666,7 @@ vms_close_and_cleanup (abfd)
   vms_debug (1, "vms_close_and_cleanup(%p)\n", abfd);
 #endif
   if (abfd == 0)
-    return true;
+    return TRUE;
 
   if (PRIV (vms_buf) != NULL)
     free (PRIV (vms_buf));
@@ -648,23 +680,23 @@ vms_close_and_cleanup (abfd)
   bfd_release (abfd, abfd->tdata.any);
   abfd->tdata.any = NULL;
 
-  return true;
+  return TRUE;
 }
 
 /* Ask the BFD to free all cached information.  */
-static boolean
+static bfd_boolean
 vms_bfd_free_cached_info (abfd)
      bfd *abfd ATTRIBUTE_UNUSED;
 {
 #if VMS_DEBUG
   vms_debug (1, "vms_bfd_free_cached_info(%p)\n", abfd);
 #endif
-  return true;
+  return TRUE;
 }
 
 /* Called when a new section is created.  */
 
-static boolean
+static bfd_boolean
 vms_new_section_hook (abfd, section)
      bfd *abfd;
      asection *section;
@@ -684,7 +716,7 @@ vms_new_section_hook (abfd, section)
       amt *= sizeof (asection *);
       PRIV (sections) = (asection **) bfd_realloc (PRIV (sections), amt);
       if (PRIV (sections) == 0)
-       return false;
+       return FALSE;
       PRIV (section_count) = section_count;
     }
 #if VMS_DEBUG
@@ -695,14 +727,14 @@ vms_new_section_hook (abfd, section)
   vms_debug (7, "%d: %s\n", section->index, section->name);
 #endif
 
-  return true;
+  return TRUE;
 }
 
 /* Read the contents of a section.
    buf points to a buffer of buf_size bytes to be filled with
    section data (starting at offset into section)  */
 
-static boolean
+static bfd_boolean
 vms_get_section_contents (abfd, section, buf, offset, buf_size)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section ATTRIBUTE_UNUSED;
@@ -717,14 +749,14 @@ vms_get_section_contents (abfd, section, buf, offset, buf_size)
 
   /* shouldn't be called, since all sections are IN_MEMORY  */
 
-  return false;
+  return FALSE;
 }
 
 /* Read the contents of a section.
    buf points to a buffer of buf_size bytes to be filled with
    section data (starting at offset into section)  */
 
-static boolean
+static bfd_boolean
 vms_get_section_contents_in_window (abfd, section, w, offset, count)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section ATTRIBUTE_UNUSED;
@@ -739,7 +771,7 @@ vms_get_section_contents_in_window (abfd, section, w, offset, count)
 
   /* shouldn't be called, since all sections are IN_MEMORY  */
 
-  return false;
+  return FALSE;
 }
 
 /*-- Part 4.2, copy private data --------------------------------------------*/
@@ -747,7 +779,7 @@ vms_get_section_contents_in_window (abfd, section, w, offset, count)
 /* Called to copy BFD general private data from one object file
    to another.  */
 
-static boolean
+static bfd_boolean
 vms_bfd_copy_private_bfd_data (src, dest)
      bfd *src ATTRIBUTE_UNUSED;
      bfd *dest ATTRIBUTE_UNUSED;
@@ -755,17 +787,17 @@ vms_bfd_copy_private_bfd_data (src, dest)
 #if VMS_DEBUG
   vms_debug (1, "vms_bfd_copy_private_bfd_data(%p, %p)\n", src, dest);
 #endif
-  return true;
+  return TRUE;
 }
 
 /* Merge private BFD information from the BFD @var{ibfd} to the
-   the output file BFD @var{obfd} when linking.  Return <<true>>
-   on success, <<false>> on error.  Possible error returns are:
+   the output file BFD @var{obfd} when linking.  Return <<TRUE>>
+   on success, <<FALSE>> on error.  Possible error returns are:
 
    o <<bfd_error_no_memory>> -
      Not enough memory exists to create private data for @var{obfd}.  */
 
-static boolean
+static bfd_boolean
 vms_bfd_merge_private_bfd_data (ibfd, obfd)
      bfd *ibfd ATTRIBUTE_UNUSED;
      bfd *obfd ATTRIBUTE_UNUSED;
@@ -773,17 +805,17 @@ vms_bfd_merge_private_bfd_data (ibfd, obfd)
 #if VMS_DEBUG
   vms_debug (1,"vms_bfd_merge_private_bfd_data(%p, %p)\n", ibfd, obfd);
 #endif
-  return true;
+  return TRUE;
 }
 
 /* Set private BFD flag information in the BFD @var{abfd}.
-   Return <<true>> on success, <<false>> on error.  Possible error
+   Return <<TRUE>> on success, <<FALSE>> on error.  Possible error
    returns are:
 
    o <<bfd_error_no_memory>> -
      Not enough memory exists to create private data for @var{obfd}.  */
 
-static boolean
+static bfd_boolean
 vms_bfd_set_private_flags (abfd, flags)
      bfd *abfd ATTRIBUTE_UNUSED;
      flagword flags ATTRIBUTE_UNUSED;
@@ -791,13 +823,13 @@ vms_bfd_set_private_flags (abfd, flags)
 #if VMS_DEBUG
   vms_debug (1,"vms_bfd_set_private_flags(%p, %lx)\n", abfd, (long)flags);
 #endif
-  return true;
+  return TRUE;
 }
 
 /* Called to copy BFD private section data from one object file
    to another.  */
 
-static boolean
+static bfd_boolean
 vms_bfd_copy_private_section_data (srcbfd, srcsec, dstbfd, dstsec)
      bfd *srcbfd ATTRIBUTE_UNUSED;
      asection *srcsec ATTRIBUTE_UNUSED;
@@ -808,13 +840,13 @@ vms_bfd_copy_private_section_data (srcbfd, srcsec, dstbfd, dstsec)
   vms_debug (1, "vms_bfd_copy_private_section_data(%p, %s, %p, %s)\n",
                 srcbfd, srcsec->name, dstbfd, dstsec->name);
 #endif
-  return true;
+  return TRUE;
 }
 
 /* Called to copy BFD private symbol data from one object file
    to another.  */
 
-static boolean
+static bfd_boolean
 vms_bfd_copy_private_symbol_data (ibfd, isym, obfd, osym)
      bfd *ibfd ATTRIBUTE_UNUSED;
      asymbol *isym ATTRIBUTE_UNUSED;
@@ -825,7 +857,7 @@ vms_bfd_copy_private_symbol_data (ibfd, isym, obfd, osym)
   vms_debug (1, "vms_bfd_copy_private_symbol_data(%p, %s, %p, %s)\n",
                 ibfd, isym->name, obfd, osym->name);
 #endif
-  return true;
+  return TRUE;
 }
 
 /*-- Part 4.3, core file ----------------------------------------------------*/
@@ -856,10 +888,10 @@ vms_core_file_failing_signal (abfd)
   return 0;
 }
 
-/* Return true if the core file attached to core_bfd was generated
-   by a run of the executable file attached to exec_bfd, false otherwise.  */
+/* Return TRUE if the core file attached to core_bfd was generated
+   by a run of the executable file attached to exec_bfd, FALSE otherwise.  */
 
-static boolean
+static bfd_boolean
 vms_core_file_matches_executable_p (abfd, bbfd)
      bfd *abfd ATTRIBUTE_UNUSED;
      bfd *bbfd ATTRIBUTE_UNUSED;
@@ -867,41 +899,41 @@ vms_core_file_matches_executable_p (abfd, bbfd)
 #if VMS_DEBUG
   vms_debug (1, "vms_core_file_matches_executable_p(%p, %p)\n", abfd, bbfd);
 #endif
-  return false;
+  return FALSE;
 }
 
 /*-- Part 4.4, archive ------------------------------------------------------*/
 
 /* ??? do something with an archive map.
-   Return false on error, true otherwise.  */
+   Return FALSE on error, TRUE otherwise.  */
 
-static boolean
+static bfd_boolean
 vms_slurp_armap (abfd)
      bfd *abfd ATTRIBUTE_UNUSED;
 {
 #if VMS_DEBUG
   vms_debug (1, "vms_slurp_armap(%p)\n", abfd);
 #endif
-  return false;
+  return FALSE;
 }
 
 /* ??? do something with an extended name table.
-   Return false on error, true otherwise.  */
+   Return FALSE on error, TRUE otherwise.  */
 
-static boolean
+static bfd_boolean
 vms_slurp_extended_name_table (abfd)
      bfd *abfd ATTRIBUTE_UNUSED;
 {
 #if VMS_DEBUG
   vms_debug (1, "vms_slurp_extended_name_table(%p)\n", abfd);
 #endif
-  return false;
+  return FALSE;
 }
 
 /* ??? do something with an extended name table.
-   Return false on error, true otherwise.  */
+   Return FALSE on error, TRUE otherwise.  */
 
-static boolean
+static bfd_boolean
 vms_construct_extended_name_table (abfd, tabloc, tablen, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      char **tabloc ATTRIBUTE_UNUSED;
@@ -911,7 +943,7 @@ vms_construct_extended_name_table (abfd, tabloc, tablen, name)
 #if VMS_DEBUG
   vms_debug (1, "vms_construct_extended_name_table(%p)\n", abfd);
 #endif
-  return false;
+  return FALSE;
 }
 
 /* Truncate the name of an archive to match system-dependent restrictions  */
@@ -930,7 +962,7 @@ vms_truncate_arname (abfd, pathname, arhdr)
 
 /* ??? write archive map  */
 
-static boolean
+static bfd_boolean
 vms_write_armap (arch, elength, map, orl_count, stridx)
      bfd *arch ATTRIBUTE_UNUSED;
      unsigned int elength ATTRIBUTE_UNUSED;
@@ -942,7 +974,7 @@ vms_write_armap (arch, elength, map, orl_count, stridx)
   vms_debug (1, "vms_write_armap(%p, %d, %p, %d %d)\n",
        arch, elength, map, orl_count, stridx);
 #endif
-  return true;
+  return TRUE;
 }
 
 /* Read archive header ???  */
@@ -1004,14 +1036,14 @@ vms_generic_stat_arch_elt (abfd, st)
 
 /* This is a new function in bfd 2.5  */
 
-static boolean
+static bfd_boolean
 vms_update_armap_timestamp (abfd)
      bfd *abfd ATTRIBUTE_UNUSED;
 {
 #if VMS_DEBUG
   vms_debug (1, "vms_update_armap_timestamp(%p)\n", abfd);
 #endif
-  return true;
+  return TRUE;
 }
 
 /*-- Part 4.5, symbols --------------------------------------------------------*/
@@ -1036,7 +1068,7 @@ vms_get_symtab_upper_bound (abfd)
    called from bfd_hash_traverse in vms_get_symtab
    init counter to 0 if entry == 0  */
 
-static boolean
+static bfd_boolean
 copy_symbols (entry, arg)
      struct bfd_hash_entry *entry;
      PTR arg;
@@ -1048,7 +1080,7 @@ copy_symbols (entry, arg)
   else                 /* fill vector, inc counter */
     PRIV (symcache)[PRIV (symnum)++] = ((vms_symbol_entry *)entry)->symbol;
 
-  return true;
+  return TRUE;
 }
 
 /* Read the symbols from the BFD abfd, and fills in the vector
@@ -1171,10 +1203,10 @@ vms_get_symbol_info (abfd, symbol, ret)
   return;
 }
 
-/* Return true if the given symbol sym in the BFD abfd is
-   a compiler generated local label, else return false.  */
+/* Return TRUE if the given symbol sym in the BFD abfd is
+   a compiler generated local label, else return FALSE.  */
 
-static boolean
+static bfd_boolean
 vms_bfd_is_local_label_name (abfd, name)
      bfd *abfd ATTRIBUTE_UNUSED;
      const char *name;
@@ -1202,7 +1234,7 @@ vms_get_lineno (abfd, symbol)
    return the name of the source file and the line nearest to the wanted
    location.  */
 
-static boolean
+static bfd_boolean
 vms_find_nearest_line (abfd, section, symbols, offset, file, func, line)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section ATTRIBUTE_UNUSED;
@@ -1216,7 +1248,7 @@ vms_find_nearest_line (abfd, section, symbols, offset, file, func, line)
   vms_debug (1, "vms_find_nearest_line(%p, %s, %p, %ld, <ret>, <ret>, <ret>)\n",
              abfd, section->name, symbols, (long int)offset);
 #endif
-  return false;
+  return FALSE;
 }
 
 /* Back-door to allow format-aware applications to create debug symbols
@@ -1242,7 +1274,7 @@ vms_bfd_make_debug_symbol (abfd, ptr, size)
 static long
 vms_read_minisymbols (abfd, dynamic, minisymsp, sizep)
      bfd *abfd;
-     boolean dynamic;
+     bfd_boolean dynamic;
      PTR *minisymsp;
      unsigned int *sizep;
 {
@@ -1259,7 +1291,7 @@ vms_read_minisymbols (abfd, dynamic, minisymsp, sizep)
 static asymbol *
 vms_minisymbol_to_symbol (abfd, dynamic, minisym, sym)
      bfd *abfd;
-     boolean dynamic;
+     bfd_boolean dynamic;
      const PTR minisym;
      asymbol *sym;
 {
@@ -1302,7 +1334,7 @@ vms_canonicalize_reloc (abfd, section, location, symbols)
 #if VMS_DEBUG
   vms_debug (1, "vms_canonicalize_reloc(%p, %s, <ret>, <ret>)\n", abfd, section->name);
 #endif
-  return false;
+  return FALSE;
 }
 
 /*---------------------------------------------------------------------------*/
@@ -1345,30 +1377,30 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "IGNORE",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        true),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 64 bit reference to a symbol.  */
   HOWTO (ALPHA_R_REFQUAD,      /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "REFQUAD",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 21 bit branch.  The native assembler generates these for
      branches within the text segment, and also fills in the PC
@@ -1377,90 +1409,90 @@ static reloc_howto_type alpha_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         21,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "BRADDR",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x1fffff,              /* src_mask */
         0x1fffff,              /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A hint for a jump to a register.  */
   HOWTO (ALPHA_R_HINT,         /* type */
         2,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         14,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "HINT",                /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0x3fff,                /* src_mask */
         0x3fff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 16 bit PC relative offset.  */
   HOWTO (ALPHA_R_SREL16,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "SREL16",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* 32 bit PC relative offset.  */
   HOWTO (ALPHA_R_SREL32,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "SREL32",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 64 bit PC relative offset.  */
   HOWTO (ALPHA_R_SREL64,       /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        true,                  /* pc_relative */
+        TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "SREL64",              /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         MINUS_ONE,             /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Push a value on the reloc evaluation stack.  */
   HOWTO (ALPHA_R_OP_PUSH,      /* type */
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "OP_PUSH",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Store the value from the stack at the given address.  Store it in
      a bitfield of size r_size starting at bit position r_offset.  */
@@ -1468,15 +1500,15 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "OP_STORE",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         MINUS_ONE,             /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Subtract the reloc address from the value on the top of the
      relocation stack.  */
@@ -1484,15 +1516,15 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "OP_PSUB",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Shift the value on the top of the relocation stack right by the
      given value.  */
@@ -1500,60 +1532,60 @@ static reloc_howto_type alpha_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "OP_PRSHIFT",          /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* Hack. Linkage is done by linker.  */
   HOWTO (ALPHA_R_LINKAGE,      /* type */
         0,                     /* rightshift */
         8,                     /* size (0 = byte, 1 = short, 2 = long) */
         256,                   /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "LINKAGE",             /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 32 bit reference to a symbol.  */
   HOWTO (ALPHA_R_REFLONG,      /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         reloc_nil,             /* special_function */
         "REFLONG",             /* name */
-        true,                  /* partial_inplace */
+        TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   /* A 64 bit reference to a procedure, written as 32 bit value.  */
   HOWTO (ALPHA_R_CODEADDR,     /* type */
         0,                     /* rightshift */
         4,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        false,                 /* pc_relative */
+        FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
         reloc_nil,             /* special_function */
         "CODEADDR",            /* name */
-        false,                 /* partial_inplace */
+        FALSE,                 /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        false),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
 };
 
@@ -1600,7 +1632,7 @@ vms_bfd_reloc_type_lookup (abfd, code)
    Find the correct pointer to a structure and insert it into the arch_info
    pointer.  */
 
-static boolean
+static bfd_boolean
 vms_set_arch_mach (abfd, arch, mach)
      bfd *abfd;
      enum bfd_architecture arch ATTRIBUTE_UNUSED;
@@ -1611,19 +1643,19 @@ vms_set_arch_mach (abfd, arch, mach)
 #endif
   abfd->arch_info = bfd_scan_arch("alpha");
 
-  return true;
+  return TRUE;
 }
 
 /* Sets the contents of the section section in BFD abfd to the data starting
    in memory at data. The data is written to the output section starting at
    offset offset for count bytes.
 
-   Normally true is returned, else false. Possible error returns are:
+   Normally TRUE is returned, else FALSE. Possible error returns are:
    o bfd_error_no_contents - The output section does not have the
        SEC_HAS_CONTENTS attribute, so nothing can be written to it.
    o and some more too  */
 
-static boolean
+static bfd_boolean
 vms_set_section_contents (abfd, section, location, offset, count)
      bfd *abfd;
      asection *section;
@@ -1646,7 +1678,7 @@ vms_set_section_contents (abfd, section, location, offset, count)
 static int
 vms_sizeof_headers (abfd, reloc)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean reloc ATTRIBUTE_UNUSED;
+     bfd_boolean reloc ATTRIBUTE_UNUSED;
 {
 #if VMS_DEBUG
   vms_debug (1, "vms_sizeof_headers(%p, %s)\n", abfd, (reloc)?"True":"False");
@@ -1664,7 +1696,7 @@ vms_bfd_get_relocated_section_contents (abfd, link_info, link_order, data,
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
      struct bfd_link_order *link_order ATTRIBUTE_UNUSED;
      bfd_byte *data ATTRIBUTE_UNUSED;
-     boolean relocateable ATTRIBUTE_UNUSED;
+     bfd_boolean relocateable ATTRIBUTE_UNUSED;
      asymbol **symbols ATTRIBUTE_UNUSED;
 {
 #if VMS_DEBUG
@@ -1676,21 +1708,21 @@ vms_bfd_get_relocated_section_contents (abfd, link_info, link_order, data,
 
 /* ???  */
 
-static boolean
+static bfd_boolean
 vms_bfd_relax_section (abfd, section, link_info, again)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
-     boolean *again ATTRIBUTE_UNUSED;
+     bfd_boolean *again ATTRIBUTE_UNUSED;
 {
 #if VMS_DEBUG
   vms_debug (1, "vms_bfd_relax_section(%p, %s, %p, <ret>)\n",
                                        abfd, section->name, link_info);
 #endif
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 vms_bfd_gc_sections (abfd, link_info)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
@@ -1698,10 +1730,10 @@ vms_bfd_gc_sections (abfd, link_info)
 #if VMS_DEBUG
   vms_debug (1, "vms_bfd_gc_sections(%p, %p)\n", abfd, link_info);
 #endif
-  return true;
+  return TRUE;
 }
 
-static boolean
+static bfd_boolean
 vms_bfd_merge_sections (abfd, link_info)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
@@ -1709,7 +1741,7 @@ vms_bfd_merge_sections (abfd, link_info)
 #if VMS_DEBUG
   vms_debug (1, "vms_bfd_merge_sections(%p, %p)\n", abfd, link_info);
 #endif
-  return true;
+  return TRUE;
 }
 
 /* Create a hash table for the linker.  Different backends store
@@ -1738,7 +1770,7 @@ vms_bfd_link_hash_table_free (hash)
 
 /* Add symbols from this object file into the hash table.  */
 
-static boolean
+static bfd_boolean
 vms_bfd_link_add_symbols (abfd, link_info)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
@@ -1746,13 +1778,13 @@ vms_bfd_link_add_symbols (abfd, link_info)
 #if VMS_DEBUG
   vms_debug (1, "vms_bfd_link_add_symbols(%p, %p)\n", abfd, link_info);
 #endif
-  return false;
+  return FALSE;
 }
 
 /* Do a link based on the link_order structures attached to each
    section of the BFD.  */
 
-static boolean
+static bfd_boolean
 vms_bfd_final_link (abfd, link_info)
      bfd *abfd ATTRIBUTE_UNUSED;
      struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
@@ -1760,12 +1792,12 @@ vms_bfd_final_link (abfd, link_info)
 #if VMS_DEBUG
   vms_debug (1, "vms_bfd_final_link(%p, %p)\n", abfd, link_info);
 #endif
-  return true;
+  return TRUE;
 }
 
 /* Should this section be split up into smaller pieces during linking.  */
 
-static boolean
+static bfd_boolean
 vms_bfd_link_split_section (abfd, section)
      bfd *abfd ATTRIBUTE_UNUSED;
      asection *section ATTRIBUTE_UNUSED;
@@ -1773,7 +1805,7 @@ vms_bfd_link_split_section (abfd, section)
 #if VMS_DEBUG
   vms_debug (1, "vms_bfd_link_split_section(%p, %s)\n", abfd, section->name);
 #endif
-  return false;
+  return FALSE;
 }
 
 /*-- Part 4.9, dynamic symbols and relocations ------------------------------*/
@@ -1790,7 +1822,7 @@ vms_get_dynamic_symtab_upper_bound (abfd)
   return 0;
 }
 
-static boolean
+static bfd_boolean
 vms_bfd_print_private_bfd_data (abfd, file)
     bfd *abfd ATTRIBUTE_UNUSED;
     void *file ATTRIBUTE_UNUSED;
index 5963a8c3b540ff0efe6e96ad4bad2955ead96665..137dc62e3dc860f203e5f4d85e8a62abe1e9a03c 100644 (file)
--- a/bfd/vms.h
+++ b/bfd/vms.h
@@ -1,6 +1,6 @@
 #undef vms
 /* vms.h -- Header file for VMS (Alpha and Vax) support.
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
    Written by Klaus K"ampf (kkaempf@rmi.de)
@@ -505,7 +505,7 @@ typedef struct _vms_section {
   struct _vms_section *next;
 } vms_section;
 
-extern boolean _bfd_save_vms_section
+extern bfd_boolean _bfd_save_vms_section
   PARAMS ((bfd *abfd, asection *section, PTR data, file_ptr offset,
           bfd_size_type count));
 extern vms_section *_bfd_get_vms_section PARAMS ((bfd *abfd, int index));
@@ -536,7 +536,7 @@ struct hdr_struc {
 struct eom_struc {
   long eom_l_total_lps;
   unsigned char eom_b_comcod;
-  boolean eom_has_transfer;
+  bfd_boolean eom_has_transfer;
   unsigned char eom_b_tfrflg;
   long eom_l_psindx;
   long eom_l_tfradr;
@@ -569,7 +569,7 @@ struct location_struct {
 
 struct vms_private_data_struct {
   int is_vax;
-  boolean fixup_done;                  /* Flag to indicate if all
+  bfd_boolean fixup_done;              /* Flag to indicate if all
                                           section pointers and PRIV(sections)
                                           are set up correctly  */
   unsigned char *vms_buf;              /* buffer to record  */
@@ -648,7 +648,7 @@ extern char *_bfd_vms_save_counted_string PARAMS ((unsigned char *ptr));
 extern void _bfd_vms_push PARAMS ((bfd *abfd, uquad val, int psect));
 extern uquad _bfd_vms_pop PARAMS ((bfd *abfd, int *psect));
 
-extern boolean _bfd_save_vms_section
+extern bfd_boolean _bfd_save_vms_section
   PARAMS ((bfd *abfd, asection *section, PTR data, file_ptr offset,
           bfd_size_type count));
 extern void _bfd_vms_output_begin
index 413511b96e79c6535e433312d8e49c212eb6637e..7bf3de72fa49dd436c7a8ed7a9b073eb2c42f80c 100644 (file)
@@ -57,7 +57,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #undef CORE_FILE_P
 #define CORE_FILE_P rs6000coff_core_p
 extern const bfd_target * rs6000coff_core_p ();
-extern boolean rs6000coff_core_file_matches_executable_p ();
+extern bfd_boolean rs6000coff_core_file_matches_executable_p ();
 
 #undef coff_core_file_matches_executable_p
 #define coff_core_file_matches_executable_p  \
@@ -78,8 +78,8 @@ extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd));
 #define CORE_FILE_P lynx_core_file_p
 extern const bfd_target *lynx_core_file_p PARAMS ((bfd *abfd));
 
-extern boolean lynx_core_file_matches_executable_p PARAMS ((bfd *core_bfd,
-                                                           bfd *exec_bfd));
+extern bfd_boolean lynx_core_file_matches_executable_p
+  PARAMS ((bfd *core_bfd, bfd *exec_bfd));
 #undef coff_core_file_matches_executable_p
 #define coff_core_file_matches_executable_p lynx_core_file_matches_executable_p
 
@@ -106,7 +106,7 @@ extern int lynx_core_file_failing_signal PARAMS ((bfd *abfd));
 
 #define _bfd_xcoff_slurp_extended_name_table bfd_false
 #define _bfd_xcoff_construct_extended_name_table \
-  ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
+  ((bfd_boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
    bfd_false)
 #define _bfd_xcoff_truncate_arname bfd_dont_truncate_arname
 
@@ -118,22 +118,22 @@ extern int lynx_core_file_failing_signal PARAMS ((bfd *abfd));
 
 #define _bfd_xcoff_update_armap_timestamp bfd_true
 
-extern boolean _bfd_xcoff_mkobject PARAMS ((bfd *));
-extern boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *));
-extern boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *));
+extern bfd_boolean _bfd_xcoff_mkobject PARAMS ((bfd *));
+extern bfd_boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *));
+extern bfd_boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *));
 extern void _bfd_xcoff_rtype2howto
   PARAMS ((arelent *, struct internal_reloc *));
 extern reloc_howto_type *_bfd_xcoff_reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
-extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *));
+extern bfd_boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *));
 extern const bfd_target *_bfd_xcoff_archive_p PARAMS ((bfd *));
 extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *));
 extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *));
 extern int _bfd_xcoff_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
-extern boolean _bfd_xcoff_write_armap
+extern bfd_boolean _bfd_xcoff_write_armap
   PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
-extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *));
-extern int _bfd_xcoff_sizeof_headers PARAMS ((bfd *, boolean));
+extern bfd_boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *));
+extern int _bfd_xcoff_sizeof_headers PARAMS ((bfd *, bfd_boolean));
 extern void _bfd_xcoff_swap_sym_in PARAMS ((bfd *, PTR, PTR));
 extern unsigned int _bfd_xcoff_swap_sym_out PARAMS ((bfd *, PTR, PTR));
 extern void _bfd_xcoff_swap_aux_in PARAMS ((bfd *, PTR, int, int, int, int, PTR));
index e4e4755cddbff26ac8633c46e7a3ed021c253900..0505c86c999108009ec00c33989029c3301efb6e 100644 (file)
@@ -115,34 +115,35 @@ struct xcoff_final_link_info
 
 static struct bfd_hash_entry *xcoff_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static boolean xcoff_get_section_contents PARAMS ((bfd *, asection *));
+static bfd_boolean xcoff_get_section_contents PARAMS ((bfd *, asection *));
 static struct internal_reloc *xcoff_read_internal_relocs
-  PARAMS ((bfd *, asection *, boolean, bfd_byte *, boolean,
+  PARAMS ((bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean,
           struct internal_reloc *));
-static boolean xcoff_link_add_object_symbols
+static bfd_boolean xcoff_link_add_object_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean xcoff_link_check_archive_element
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *));
-static boolean xcoff_link_check_ar_symbols
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *));
-static boolean xcoff_link_check_dynamic_ar_symbols
-  PARAMS ((bfd *, struct bfd_link_info *, boolean *));
+static bfd_boolean xcoff_link_check_archive_element
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean xcoff_link_check_ar_symbols
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *));
+static bfd_boolean xcoff_link_check_dynamic_ar_symbols
+  PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *));
 static bfd_size_type xcoff_find_reloc
   PARAMS ((struct internal_reloc *, bfd_size_type, bfd_vma));
-static boolean xcoff_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *));
-static boolean xcoff_link_add_dynamic_symbols
+static bfd_boolean xcoff_link_add_symbols
   PARAMS ((bfd *, struct bfd_link_info *));
-static boolean xcoff_mark_symbol
+static bfd_boolean xcoff_link_add_dynamic_symbols
+  PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean xcoff_mark_symbol
   PARAMS ((struct bfd_link_info *, struct xcoff_link_hash_entry *));
-static boolean xcoff_mark PARAMS ((struct bfd_link_info *, asection *));
+static bfd_boolean xcoff_mark PARAMS ((struct bfd_link_info *, asection *));
 static void xcoff_sweep PARAMS ((struct bfd_link_info *));
-static boolean xcoff_build_ldsyms
+static bfd_boolean xcoff_build_ldsyms
   PARAMS ((struct xcoff_link_hash_entry *, PTR));
-static boolean xcoff_link_input_bfd
+static bfd_boolean xcoff_link_input_bfd
   PARAMS ((struct xcoff_final_link_info *, bfd *));
-static boolean xcoff_write_global_symbol
+static bfd_boolean xcoff_write_global_symbol
   PARAMS ((struct xcoff_link_hash_entry *, PTR));
-static boolean xcoff_reloc_link_order
+static bfd_boolean xcoff_reloc_link_order
   PARAMS ((bfd *, struct xcoff_final_link_info *, asection *,
           struct bfd_link_order *));
 static int xcoff_sort_relocs PARAMS ((const PTR, const PTR));
@@ -154,7 +155,7 @@ static int xcoff_sort_relocs PARAMS ((const PTR, const PTR));
 
 /* Read the contents of a section.  */
 
-static boolean
+static bfd_boolean
 xcoff_get_section_contents (abfd, sec)
      bfd *abfd;
      asection *sec;
@@ -165,7 +166,7 @@ xcoff_get_section_contents (abfd, sec)
       bfd_size_type amt = sizeof (struct coff_section_tdata);
       sec->used_by_bfd = bfd_zalloc (abfd, amt);
       if (sec->used_by_bfd == NULL)
-       return false;
+       return FALSE;
     }
 
   if (coff_section_data (abfd, sec)->contents == NULL)
@@ -173,15 +174,15 @@ xcoff_get_section_contents (abfd, sec)
       coff_section_data (abfd, sec)->contents = ((bfd_byte *)
                                                 bfd_malloc (sec->_raw_size));
       if (coff_section_data (abfd, sec)->contents == NULL)
-       return false;
+       return FALSE;
 
       if (! bfd_get_section_contents (abfd, sec,
                                      coff_section_data (abfd, sec)->contents,
                                      (file_ptr) 0, sec->_raw_size))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Get the size required to hold the dynamic symbols.  */
@@ -247,7 +248,7 @@ _bfd_xcoff_canonicalize_dynamic_symtab (abfd, psyms)
     return -1;
   contents = coff_section_data (abfd, lsec)->contents;
 
-  coff_section_data (abfd, lsec)->keep_contents = true;
+  coff_section_data (abfd, lsec)->keep_contents = TRUE;
 
   bfd_xcoff_swap_ldhdr_in (abfd, contents, &ldhdr);
 
@@ -295,7 +296,7 @@ _bfd_xcoff_canonicalize_dynamic_symtab (abfd, psyms)
        symbuf->symbol.flags |= BSF_GLOBAL;
 
       /* FIXME: We have no way to record the other information stored
-         with the loader symbol.  */
+        with the loader symbol.  */
 
       *psyms = (asymbol *) symbuf;
     }
@@ -421,8 +422,8 @@ _bfd_xcoff_canonicalize_dynamic_reloc (abfd, prelocs, syms)
       relbuf->addend = 0;
 
       /* Most dynamic relocs have the same type.  FIXME: This is only
-         correct if ldrel.l_rtype == 0.  In other cases, we should use
-         a different howto.  */
+        correct if ldrel.l_rtype == 0.  In other cases, we should use
+        a different howto.  */
       relbuf->howto = bfd_xcoff_dynamic_reloc_howto(abfd);
 
       /* FIXME: We have no way to record the l_rsecnm field.  */
@@ -501,14 +502,14 @@ _bfd_xcoff_bfd_link_hash_table_create (abfd)
   ret->descriptor_section = NULL;
   ret->imports = NULL;
   ret->file_align = 0;
-  ret->textro = false;
-  ret->gc = false;
+  ret->textro = FALSE;
+  ret->gc = FALSE;
   memset (ret->special_sections, 0, sizeof ret->special_sections);
 
   /* The linker will always generate a full a.out header.  We need to
      record that fact now, before the sizeof_headers routine could be
      called.  */
-  xcoff_data (abfd)->full_aouthdr = true;
+  xcoff_data (abfd)->full_aouthdr = TRUE;
 
   return &ret->root;
 }
@@ -535,9 +536,9 @@ xcoff_read_internal_relocs (abfd, sec, cache, external_relocs,
                            require_internal, internal_relocs)
      bfd *abfd;
      asection *sec;
-     boolean cache;
+     bfd_boolean cache;
      bfd_byte *external_relocs;
-     boolean require_internal;
+     bfd_boolean require_internal;
      struct internal_reloc *internal_relocs;
 {
 
@@ -555,8 +556,8 @@ xcoff_read_internal_relocs (abfd, sec, cache, external_relocs,
          && cache
          && enclosing->reloc_count > 0)
        {
-         if (_bfd_coff_read_internal_relocs (abfd, enclosing, true,
-                                             external_relocs, false,
+         if (_bfd_coff_read_internal_relocs (abfd, enclosing, TRUE,
+                                             external_relocs, FALSE,
                                              (struct internal_reloc *) NULL)
              == NULL)
            return NULL;
@@ -587,7 +588,7 @@ xcoff_read_internal_relocs (abfd, sec, cache, external_relocs,
 /* Given an XCOFF BFD, add symbols to the global hash table as
    appropriate.  */
 
-boolean
+bfd_boolean
 _bfd_xcoff_bfd_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -600,21 +601,21 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, info)
 
     case bfd_archive:
       /* If the archive has a map, do the usual search.  We then need
-         to check the archive for dynamic objects, because they may not 
-        appear in the archive map even though they should, perhaps, be 
-        included.  If the archive has no map, we just consider each object 
-        file in turn, since that apparently is what the AIX native linker 
+        to check the archive for dynamic objects, because they may not
+        appear in the archive map even though they should, perhaps, be
+        included.  If the archive has no map, we just consider each object
+        file in turn, since that apparently is what the AIX native linker
         does.  */
       if (bfd_has_map (abfd))
        {
          if (! (_bfd_generic_link_add_archive_symbols
                 (abfd, info, xcoff_link_check_archive_element)))
-           return false;
+           return FALSE;
        }
 
       {
        bfd *member;
-       
+
        member = bfd_openr_next_archived_file (abfd, (bfd *) NULL);
        while (member != NULL)
          {
@@ -622,11 +623,11 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, info)
                && (info->hash->creator == member->xvec)
                && (! bfd_has_map (abfd) || (member->flags & DYNAMIC) != 0))
              {
-               boolean needed;
-               
-               if (! xcoff_link_check_archive_element (member, info, 
+               bfd_boolean needed;
+
+               if (! xcoff_link_check_archive_element (member, info,
                                                        &needed))
-                 return false;
+                 return FALSE;
                if (needed)
                  member->archive_pass = -1;
              }
@@ -634,32 +635,32 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, info)
          }
       }
 
-      return true;
+      return TRUE;
 
     default:
       bfd_set_error (bfd_error_wrong_format);
-      return false;
+      return FALSE;
     }
 }
 
 /* Add symbols from an XCOFF object file.  */
 
-static boolean
+static bfd_boolean
 xcoff_link_add_object_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
 
   if (! _bfd_coff_get_external_symbols (abfd))
-    return false;
+    return FALSE;
   if (! xcoff_link_add_symbols (abfd, info))
-    return false;
+    return FALSE;
   if (! info->keep_memory)
     {
       if (! _bfd_coff_free_symbols (abfd))
-       return false;
+       return FALSE;
     }
-  return true;
+  return TRUE;
 }
 
 /* Check a single archive element to see if we need to include it in
@@ -667,48 +668,48 @@ xcoff_link_add_object_symbols (abfd, info)
    needed in the link or not.  This is called via
    _bfd_generic_link_add_archive_symbols.  */
 
-static boolean
+static bfd_boolean
 xcoff_link_check_archive_element (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
 
   if (! _bfd_coff_get_external_symbols (abfd))
-    return false;
+    return FALSE;
 
   if (! xcoff_link_check_ar_symbols (abfd, info, pneeded))
-    return false;
+    return FALSE;
 
   if (*pneeded)
     {
       if (! xcoff_link_add_symbols (abfd, info))
-       return false;
+       return FALSE;
     }
 
   if (! info->keep_memory || ! *pneeded)
     {
       if (! _bfd_coff_free_symbols (abfd))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Look through the symbols to see if this object file should be
    included in the link.  */
 
-static boolean
+static bfd_boolean
 xcoff_link_check_ar_symbols (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
   bfd_size_type symesz;
   bfd_byte *esym;
   bfd_byte *esym_end;
 
-  *pneeded = false;
+  *pneeded = FALSE;
 
   if ((abfd->flags & DYNAMIC) != 0
       && ! info->static_link
@@ -731,13 +732,13 @@ xcoff_link_check_ar_symbols (abfd, info, pneeded)
          struct bfd_link_hash_entry *h;
 
          /* This symbol is externally visible, and is defined by this
-             object file.  */
+            object file.  */
 
          name = _bfd_coff_internal_syment_name (abfd, &sym, buf);
 
          if (name == NULL)
-           return false;
-         h = bfd_link_hash_lookup (info->hash, name, false, false, true);
+           return FALSE;
+         h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
 
          /* We are only interested in symbols that are currently
             undefined.  If a symbol is currently known to be common,
@@ -751,9 +752,9 @@ xcoff_link_check_ar_symbols (abfd, info, pneeded)
                      & XCOFF_DEF_DYNAMIC) == 0))
            {
              if (! (*info->callbacks->add_archive_element) (info, abfd, name))
-               return false;
-             *pneeded = true;
-             return true;
+               return FALSE;
+             *pneeded = TRUE;
+             return TRUE;
            }
        }
 
@@ -761,18 +762,18 @@ xcoff_link_check_ar_symbols (abfd, info, pneeded)
     }
 
   /* We do not need this object file.  */
-  return true;
+  return TRUE;
 }
 
 /* Look through the loader symbols to see if this dynamic object
    should be included in the link.  The native linker uses the loader
    symbols, not the normal symbol table, so we do too.  */
 
-static boolean
+static bfd_boolean
 xcoff_link_check_dynamic_ar_symbols (abfd, info, pneeded)
      bfd *abfd;
      struct bfd_link_info *info;
-     boolean *pneeded;
+     bfd_boolean *pneeded;
 {
   asection *lsec;
   bfd_byte *contents;
@@ -780,17 +781,17 @@ xcoff_link_check_dynamic_ar_symbols (abfd, info, pneeded)
   const char *strings;
   bfd_byte *elsym, *elsymend;
 
-  *pneeded = false;
+  *pneeded = FALSE;
 
   lsec = bfd_get_section_by_name (abfd, ".loader");
   if (lsec == NULL)
     {
       /* There are no symbols, so don't try to include it.  */
-      return true;
+      return TRUE;
     }
 
   if (! xcoff_get_section_contents (abfd, lsec))
-    return false;
+    return FALSE;
   contents = coff_section_data (abfd, lsec)->contents;
 
   bfd_xcoff_swap_ldhdr_in (abfd, contents, &ldhdr);
@@ -822,20 +823,20 @@ xcoff_link_check_dynamic_ar_symbols (abfd, info, pneeded)
          name = nambuf;
        }
 
-      h = bfd_link_hash_lookup (info->hash, name, false, false, true);
+      h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
 
       /* We are only interested in symbols that are currently
-         undefined.  At this point we know that we are using an XCOFF
-         hash table.  */
+        undefined.  At this point we know that we are using an XCOFF
+        hash table.  */
       if (h != NULL
          && h->type == bfd_link_hash_undefined
          && (((struct xcoff_link_hash_entry *) h)->flags
              & XCOFF_DEF_DYNAMIC) == 0)
        {
          if (! (*info->callbacks->add_archive_element) (info, abfd, name))
-           return false;
-         *pneeded = true;
-         return true;
+           return FALSE;
+         *pneeded = TRUE;
+         return TRUE;
        }
     }
 
@@ -847,7 +848,7 @@ xcoff_link_check_dynamic_ar_symbols (abfd, info, pneeded)
       coff_section_data (abfd, lsec)->contents = NULL;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Returns the index of reloc in RELOCS with the least address greater
@@ -905,11 +906,11 @@ xcoff_find_reloc (relocs, count, address)
 
    Takes care of creating the .loader, .gl, .ds, .debug and sections.  */
 
-static boolean
+static bfd_boolean
 xcoff_link_create_extra_sections(bfd * abfd, struct bfd_link_info *info)
 {
 
-  boolean return_value = false;
+  bfd_boolean return_value = FALSE;
 
   if (info->hash->creator == abfd->xvec)
     {
@@ -998,7 +999,7 @@ xcoff_link_create_extra_sections(bfd * abfd, struct bfd_link_info *info)
        }
     }
 
-  return_value = true;
+  return_value = TRUE;
 
  end_return:
 
@@ -1023,21 +1024,21 @@ xcoff_link_create_extra_sections(bfd * abfd, struct bfd_link_info *info)
    relocation entries carefully, since the only way to tell which
    csect they belong to is to examine the address.  */
 
-static boolean
+static bfd_boolean
 xcoff_link_add_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
 {
   unsigned int n_tmask;
   unsigned int n_btshft;
-  boolean default_copy;
+  bfd_boolean default_copy;
   bfd_size_type symcount;
   struct xcoff_link_hash_entry **sym_hash;
   asection **csect_cache;
   bfd_size_type linesz;
   asection *o;
   asection *last_real;
-  boolean keep_syms;
+  bfd_boolean keep_syms;
   asection *csect;
   unsigned int csect_index;
   asection *first_csect;
@@ -1058,16 +1059,16 @@ xcoff_link_add_symbols (abfd, info)
       && ! info->static_link)
     {
       if (! xcoff_link_add_dynamic_symbols (abfd, info))
-       return false;
+       return FALSE;
     }
 
   /* create the loader, toc, gl, ds and debug sections, if needed */
-  if (false == xcoff_link_create_extra_sections(abfd, info))
+  if (! xcoff_link_create_extra_sections (abfd, info))
     goto error_return;
 
   if ((abfd->flags & DYNAMIC) != 0
       && ! info->static_link)
-    return true;
+    return TRUE;
 
   n_tmask = coff_data (abfd)->local_n_tmask;
   n_btshft = coff_data (abfd)->local_n_btshft;
@@ -1077,9 +1078,9 @@ xcoff_link_add_symbols (abfd, info)
 #define N_BTSHFT n_btshft
 
   if (info->keep_memory)
-    default_copy = false;
+    default_copy = FALSE;
   else
-    default_copy = true;
+    default_copy = TRUE;
 
   symcount = obj_raw_syment_count (abfd);
 
@@ -1122,8 +1123,8 @@ xcoff_link_add_symbols (abfd, info)
        {
 
          reloc_info[o->target_index].relocs =
-           xcoff_read_internal_relocs (abfd, o, true, (bfd_byte *) NULL,
-                                       false, (struct internal_reloc *) NULL);
+           xcoff_read_internal_relocs (abfd, o, TRUE, (bfd_byte *) NULL,
+                                       FALSE, (struct internal_reloc *) NULL);
          amt = o->reloc_count;
          amt *= sizeof (asection *);
          reloc_info[o->target_index].csects = (asection **) bfd_zmalloc (amt);
@@ -1150,7 +1151,7 @@ xcoff_link_add_symbols (abfd, info)
     }
 
   /* Don't let the linker relocation routines discard the symbols.  */
-  obj_coff_keep_syms (abfd) = true;
+  obj_coff_keep_syms (abfd) = TRUE;
 
   csect = NULL;
   csect_index = 0;
@@ -1214,11 +1215,11 @@ xcoff_link_add_symbols (abfd, info)
        goto error_return;
 
       /* If this symbol has line number information attached to it,
-         and we're not stripping it, count the number of entries and
-         add them to the count for this csect.  In the final link pass
-         we are going to attach line number information by symbol,
-         rather than by section, in order to more easily handle
-         garbage collection.  */
+        and we're not stripping it, count the number of entries and
+        add them to the count for this csect.  In the final link pass
+        we are going to attach line number information by symbol,
+        rather than by section, in order to more easily handle
+        garbage collection.  */
       if ((info->strip == strip_none || info->strip == strip_some)
          && sym.n_numaux > 1
          && csect != NULL
@@ -1336,7 +1337,7 @@ xcoff_link_add_symbols (abfd, info)
            }
 
          /* An XMC_XO external reference is actually a reference to
-             an absolute location.  */
+            an absolute location.  */
          if (aux.x_csect.x_smclas != XMC_XO)
            section = bfd_und_section_ptr;
          else
@@ -1430,7 +1431,7 @@ xcoff_link_add_symbols (abfd, info)
                    {
                      const char *relname;
                      char relbuf[SYMNMLEN + 1];
-                     boolean copy;
+                     bfd_boolean copy;
                      struct xcoff_link_hash_entry *h;
 
                      /* At this point we know that the TOC entry is
@@ -1453,8 +1454,8 @@ xcoff_link_add_symbols (abfd, info)
                                  || relsym._n._n_n._n_zeroes != 0
                                  || relsym._n._n_n._n_offset == 0);
                          h = xcoff_link_hash_lookup (xcoff_hash_table (info),
-                                                     relname, true, copy,
-                                                     false);
+                                                     relname, TRUE, copy,
+                                                     FALSE);
                          if (h == NULL)
                            goto error_return;
 
@@ -1606,19 +1607,19 @@ xcoff_link_add_symbols (abfd, info)
             follow its appropriate XTY_SD symbol.  The .set pseudo op can
             cause the XTY_LD to not follow the XTY_SD symbol. */
          {
-           boolean bad;
+           bfd_boolean bad;
 
-           bad = false;
+           bad = FALSE;
            if (aux.x_csect.x_scnlen.l < 0
                || (aux.x_csect.x_scnlen.l
                    >= esym - (bfd_byte *) obj_coff_external_syms (abfd)))
-             bad = true;
+             bad = TRUE;
            if (! bad)
              {
                section = xcoff_data (abfd)->csects[aux.x_csect.x_scnlen.l];
                if (section == NULL
                    || (section->flags & SEC_HAS_CONTENTS) == 0)
-                 bad = true;
+                 bad = TRUE;
              }
            if (bad)
              {
@@ -1635,11 +1636,11 @@ xcoff_link_add_symbols (abfd, info)
 
        case XTY_CM:
          /* This is an unitialized csect.  We could base the name on
-             the storage mapping class, but we don't bother except for
-             an XMC_TD symbol.  If this csect is externally visible,
-             it is a common symbol.  We put XMC_TD symbols in sections
-             named .tocbss, and rely on the linker script to put that
-             in the TOC area.  */
+            the storage mapping class, but we don't bother except for
+            an XMC_TD symbol.  If this csect is externally visible,
+            it is a common symbol.  We put XMC_TD symbols in sections
+            named .tocbss, and rely on the linker script to put that
+            in the TOC area.  */
 
          if (csect != NULL)
            {
@@ -1730,20 +1731,20 @@ xcoff_link_add_symbols (abfd, info)
        }
 
       /* Now we have enough information to add the symbol to the
-         linker hash table.  */
+        linker hash table.  */
 
       if (sym.n_sclass == C_EXT)
        {
-         boolean copy;
+         bfd_boolean copy;
 
          BFD_ASSERT (section != NULL);
 
          /* We must copy the name into memory if we got it from the
-             syment itself, rather than the string table.  */
+            syment itself, rather than the string table.  */
          copy = default_copy;
          if (sym._n._n_n._n_zeroes != 0
              || sym._n._n_n._n_offset == 0)
-           copy = true;
+           copy = TRUE;
 
          /* The AIX linker appears to only detect multiple symbol
             definitions when there is a reference to the symbol.  If
@@ -1775,7 +1776,7 @@ xcoff_link_add_symbols (abfd, info)
              if (! bfd_is_und_section (section))
                {
                  *sym_hash = xcoff_link_hash_lookup (xcoff_hash_table (info),
-                                                     name, true, copy, false);
+                                                     name, TRUE, copy, FALSE);
                }
              else
                {
@@ -1783,8 +1784,8 @@ xcoff_link_add_symbols (abfd, info)
                     merging symbols.  */
                  *sym_hash = ((struct xcoff_link_hash_entry *)
                               bfd_wrapped_link_hash_lookup (abfd, info, name,
-                                                            true, true, 
-                                                            false));
+                                                            TRUE, TRUE,
+                                                            FALSE));
                }
              if (*sym_hash == NULL)
                goto error_return;
@@ -1801,11 +1802,11 @@ xcoff_link_add_symbols (abfd, info)
                              & DYNAMIC) == 0))
                    {
                      /* The new symbol is from a shared library, and
-                         either the existing symbol is not global
-                         linkage code or this symbol is global linkage
-                         code.  If the existing symbol is global
-                         linkage code and the new symbol is not, then
-                         we want to use the new symbol.  */
+                        either the existing symbol is not global
+                        linkage code or this symbol is global linkage
+                        code.  If the existing symbol is global
+                        linkage code and the new symbol is not, then
+                        we want to use the new symbol.  */
                      section = bfd_und_section_ptr;
                      value = 0;
                    }
@@ -1813,7 +1814,7 @@ xcoff_link_add_symbols (abfd, info)
                            & DYNAMIC) != 0)
                    {
                      /* The existing symbol is from a shared library.
-                         Replace it.  */
+                        Replace it.  */
                      (*sym_hash)->root.type = bfd_link_hash_undefined;
                      (*sym_hash)->root.u.undef.abfd =
                        (*sym_hash)->root.u.def.section->owner;
@@ -1821,8 +1822,8 @@ xcoff_link_add_symbols (abfd, info)
                  else if (abfd->my_archive != NULL)
                    {
                      /* This is a redefinition in an object contained
-                         in an archive.  Just ignore it.  See the
-                         comment above.  */
+                        in an archive.  Just ignore it.  See the
+                        comment above.  */
                      section = bfd_und_section_ptr;
                      value = 0;
                    }
@@ -1830,15 +1831,15 @@ xcoff_link_add_symbols (abfd, info)
                           || info->hash->undefs_tail == &(*sym_hash)->root)
                    {
                      /* This symbol has been referenced.  In this
-                         case, we just continue and permit the
-                         multiple definition error.  See the comment
-                         above about the behaviour of the AIX linker.  */
+                        case, we just continue and permit the
+                        multiple definition error.  See the comment
+                        above about the behaviour of the AIX linker.  */
                    }
                  else if ((*sym_hash)->smclas == aux.x_csect.x_smclas)
                    {
                      /* The symbols are both csects of the same
-                         class.  There is at least a chance that this
-                         is a semi-legitimate redefinition.  */
+                        class.  There is at least a chance that this
+                        is a semi-legitimate redefinition.  */
                      section = bfd_und_section_ptr;
                      value = 0;
                      (*sym_hash)->flags |= XCOFF_MULTIPLY_DEFINED;
@@ -1883,7 +1884,7 @@ xcoff_link_add_symbols (abfd, info)
          last_real->next = NULL;
          if (! (_bfd_generic_link_add_one_symbol
                 (info, abfd, name, flags, section, value,
-                 (const char *) NULL, copy, true,
+                 (const char *) NULL, copy, TRUE,
                  (struct bfd_link_hash_entry **) sym_hash)))
            goto error_return;
          last_real->next = first_csect;
@@ -1974,14 +1975,14 @@ xcoff_link_add_symbols (abfd, info)
                  h = obj_xcoff_sym_hashes (abfd)[rel->r_symndx];
                  h->flags |= XCOFF_CALLED;
                  /* If the symbol name starts with a period, it is
-                     the code of a function.  If the symbol is
-                     currently undefined, then add an undefined symbol
-                     for the function descriptor.  This should do no
-                     harm, because any regular object that defines the
-                     function should also define the function
-                     descriptor.  It helps, because it means that we
-                     will identify the function descriptor with a
-                     dynamic object if a dynamic object defines it.  */
+                    the code of a function.  If the symbol is
+                    currently undefined, then add an undefined symbol
+                    for the function descriptor.  This should do no
+                    harm, because any regular object that defines the
+                    function should also define the function
+                    descriptor.  It helps, because it means that we
+                    will identify the function descriptor with a
+                    dynamic object if a dynamic object defines it.  */
                  if (h->root.root.string[0] == '.'
                      && h->descriptor == NULL)
                    {
@@ -1990,7 +1991,7 @@ xcoff_link_add_symbols (abfd, info)
 
                      hds = xcoff_link_hash_lookup (xcoff_hash_table (info),
                                                    h->root.root.string + 1,
-                                                   true, false, true);
+                                                   TRUE, FALSE, TRUE);
                      if (hds == NULL)
                        goto error_return;
                      if (hds->root.type == bfd_link_hash_new)
@@ -1999,8 +2000,8 @@ xcoff_link_add_symbols (abfd, info)
                          if (! (_bfd_generic_link_add_one_symbol
                                 (info, abfd, hds->root.root.string,
                                  (flagword) 0, bfd_und_section_ptr,
-                                 (bfd_vma) 0, (const char *) NULL, false,
-                                 true, &bh)))
+                                 (bfd_vma) 0, (const char *) NULL, FALSE,
+                                 TRUE, &bh)))
                            goto error_return;
                          hds = (struct xcoff_link_hash_entry *) bh;
                        }
@@ -2033,7 +2034,7 @@ xcoff_link_add_symbols (abfd, info)
        }
 
       /* Free up the line numbers.  FIXME: We could cache these
-         somewhere for the final link, to avoid reading them again.  */
+        somewhere for the final link, to avoid reading them again.  */
       if (reloc_info[o->target_index].linenos != NULL)
        {
          free (reloc_info[o->target_index].linenos);
@@ -2045,7 +2046,7 @@ xcoff_link_add_symbols (abfd, info)
 
   obj_coff_keep_syms (abfd) = keep_syms;
 
-  return true;
+  return TRUE;
 
  error_return:
   if (reloc_info != NULL)
@@ -2060,7 +2061,7 @@ xcoff_link_add_symbols (abfd, info)
       free (reloc_info);
     }
   obj_coff_keep_syms (abfd) = keep_syms;
-  return false;
+  return FALSE;
 }
 
 #undef N_TMASK
@@ -2069,7 +2070,7 @@ xcoff_link_add_symbols (abfd, info)
 /* This function is used to add symbols from a dynamic object to the
    global symbol table.  */
 
-static boolean
+static bfd_boolean
 xcoff_link_add_dynamic_symbols (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -2094,7 +2095,7 @@ xcoff_link_add_dynamic_symbols (abfd, info)
        (_("%s: XCOFF shared object when not producing XCOFF output"),
         bfd_get_filename (abfd));
       bfd_set_error (bfd_error_invalid_operation);
-      return false;
+      return FALSE;
     }
 
   /* The symbols we use from a dynamic object are not the symbols in
@@ -2115,12 +2116,12 @@ xcoff_link_add_dynamic_symbols (abfd, info)
        (_("%s: dynamic object with no .loader section"),
         bfd_get_filename (abfd));
       bfd_set_error (bfd_error_no_symbols);
-      return false;
+      return FALSE;
     }
 
 
   if (! xcoff_get_section_contents (abfd, lsec))
-    return false;
+    return FALSE;
   contents = coff_section_data (abfd, lsec)->contents;
 
   /* Remove the sections from this object, so that they do not get
@@ -2162,10 +2163,10 @@ xcoff_link_add_dynamic_symbols (abfd, info)
         table.  However, we verified above that we are using an XCOFF
         hash table.  */
 
-      h = xcoff_link_hash_lookup (xcoff_hash_table (info), name, true,
-                                 true, true);
+      h = xcoff_link_hash_lookup (xcoff_hash_table (info), name, TRUE,
+                                 TRUE, TRUE);
       if (h == NULL)
-       return false;
+       return FALSE;
 
       h->flags |= XCOFF_DEF_DYNAMIC;
 
@@ -2191,9 +2192,9 @@ xcoff_link_add_dynamic_symbols (abfd, info)
        h->smclas = ldsym.l_smclas;
 
       /* Unless this is an XMC_XO symbol, we don't bother to actually
-         define it, since we don't have a section to put it in anyhow.
-         Instead, the relocation routines handle the DEF_DYNAMIC flag
-         correctly.  */
+        define it, since we don't have a section to put it in anyhow.
+        Instead, the relocation routines handle the DEF_DYNAMIC flag
+        correctly.  */
 
       if (h->smclas == XMC_XO
          && (h->root.type == bfd_link_hash_undefined
@@ -2221,21 +2222,21 @@ xcoff_link_add_dynamic_symbols (abfd, info)
 
              dsnm = bfd_malloc ((bfd_size_type) strlen (name) + 2);
              if (dsnm == NULL)
-               return false;
+               return FALSE;
              dsnm[0] = '.';
              strcpy (dsnm + 1, name);
              hds = xcoff_link_hash_lookup (xcoff_hash_table (info), dsnm,
-                                           true, true, true);
+                                           TRUE, TRUE, TRUE);
              free (dsnm);
              if (hds == NULL)
-               return false;
+               return FALSE;
 
              if (hds->root.type == bfd_link_hash_new)
                {
                  hds->root.type = bfd_link_hash_undefined;
                  hds->root.u.undef.abfd = abfd;
                  /* We do not want to add this to the undefined
-                     symbol list.  */
+                    symbol list.  */
                }
 
              hds->descriptor = h;
@@ -2272,7 +2273,7 @@ xcoff_link_add_dynamic_symbols (abfd, info)
   n = ((struct xcoff_import_file *)
        bfd_alloc (abfd, (bfd_size_type) sizeof (struct xcoff_import_file)));
   if (n == NULL)
-    return false;
+    return FALSE;
   n->next = NULL;
 
   /* For some reason, the path entry in the import file list for a
@@ -2305,7 +2306,7 @@ xcoff_link_add_dynamic_symbols (abfd, info)
 
   xcoff_data (abfd)->import_file_id = c;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Routines that are called after all the input files have been
@@ -2314,14 +2315,14 @@ xcoff_link_add_dynamic_symbols (abfd, info)
 /* Mark a symbol as not being garbage, including the section in which
    it is defined.  */
 
-static INLINE boolean
+static INLINE bfd_boolean
 xcoff_mark_symbol (info, h)
      struct bfd_link_info *info;
      struct xcoff_link_hash_entry *h;
 {
 
   if ((h->flags & XCOFF_MARK) != 0)
-    return true;
+    return TRUE;
 
   h->flags |= XCOFF_MARK;
   if (h->root.type == bfd_link_hash_defined
@@ -2334,7 +2335,7 @@ xcoff_mark_symbol (info, h)
          && (hsec->flags & SEC_MARK) == 0)
        {
          if (! xcoff_mark (info, hsec))
-           return false;
+           return FALSE;
        }
     }
 
@@ -2342,10 +2343,10 @@ xcoff_mark_symbol (info, h)
       && (h->toc_section->flags & SEC_MARK) == 0)
     {
       if (! xcoff_mark (info, h->toc_section))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* The mark phase of garbage collection.  For a given section, mark
@@ -2354,14 +2355,14 @@ xcoff_mark_symbol (info, h)
    the number of relocs which need to be copied into the .loader
    section.  */
 
-static boolean
+static bfd_boolean
 xcoff_mark (info, sec)
      struct bfd_link_info *info;
      asection *sec;
 {
   if (bfd_is_abs_section (sec)
       || (sec->flags & SEC_MARK) != 0)
-    return true;
+    return TRUE;
 
   sec->flags |= SEC_MARK;
 
@@ -2387,7 +2388,7 @@ xcoff_mark (info, sec)
              && (h->flags & XCOFF_MARK) == 0)
            {
              if (! xcoff_mark_symbol (info, h))
-               return false;
+               return FALSE;
            }
        }
 
@@ -2396,11 +2397,11 @@ xcoff_mark (info, sec)
       if ((sec->flags & SEC_RELOC) != 0
          && sec->reloc_count > 0)
        {
-         rel = xcoff_read_internal_relocs (sec->owner, sec, true,
-                                           (bfd_byte *) NULL, false,
+         rel = xcoff_read_internal_relocs (sec->owner, sec, TRUE,
+                                           (bfd_byte *) NULL, FALSE,
                                            (struct internal_reloc *) NULL);
          if (rel == NULL)
-           return false;
+           return FALSE;
          relend = rel + sec->reloc_count;
          for (; rel < relend; rel++)
            {
@@ -2416,7 +2417,7 @@ xcoff_mark (info, sec)
                  && (h->flags & XCOFF_MARK) == 0)
                {
                  if (! xcoff_mark_symbol (info, h))
-                   return false;
+                   return FALSE;
                }
 
              rsec = xcoff_data (sec->owner)->csects[rel->r_symndx];
@@ -2424,11 +2425,11 @@ xcoff_mark (info, sec)
                  && (rsec->flags & SEC_MARK) == 0)
                {
                  if (! xcoff_mark (info, rsec))
-                   return false;
+                   return FALSE;
                }
 
              /* See if this reloc needs to be copied into the .loader
-                 section.  */
+                section.  */
              switch (rel->r_type)
                {
                default:
@@ -2477,7 +2478,7 @@ xcoff_mark (info, sec)
        }
     }
 
-  return true;
+  return TRUE;
 }
 
 /* The sweep phase of garbage collection.  Remove all garbage
@@ -2498,8 +2499,8 @@ xcoff_sweep (info)
          if ((o->flags & SEC_MARK) == 0)
            {
              /* Keep all sections from non-XCOFF input files.  Keep
-                 special sections.  Keep .debug sections for the
-                 moment.  */
+                special sections.  Keep .debug sections for the
+                moment.  */
              if (sub->xvec != info->hash->creator
                  || o == xcoff_hash_table (info)->debug_section
                  || o == xcoff_hash_table (info)->loader_section
@@ -2522,7 +2523,7 @@ xcoff_sweep (info)
 /* Record the number of elements in a set.  This is used to output the
    correct csect length.  */
 
-boolean
+bfd_boolean
 bfd_xcoff_link_record_set (output_bfd, info, harg, size)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2534,7 +2535,7 @@ bfd_xcoff_link_record_set (output_bfd, info, harg, size)
   bfd_size_type amt;
 
   if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour)
-    return true;
+    return TRUE;
 
   /* This will hardly ever be called.  I don't want to burn four bytes
      per global symbol, so instead the size is kept on a linked list
@@ -2543,7 +2544,7 @@ bfd_xcoff_link_record_set (output_bfd, info, harg, size)
   amt = sizeof (struct xcoff_link_size_list);
   n = (struct xcoff_link_size_list *) bfd_alloc (output_bfd, amt);
   if (n == NULL)
-    return false;
+    return FALSE;
   n->next = xcoff_hash_table (info)->size_list;
   n->h = h;
   n->size = size;
@@ -2551,12 +2552,12 @@ bfd_xcoff_link_record_set (output_bfd, info, harg, size)
 
   h->flags |= XCOFF_HAS_SIZE;
 
-  return true;
+  return TRUE;
 }
 
 /* Import a symbol.  */
 
-boolean
+bfd_boolean
 bfd_xcoff_import_symbol (output_bfd, info, harg, val, imppath, impfile,
                         impmember, syscall_flag)
      bfd *output_bfd;
@@ -2571,7 +2572,7 @@ bfd_xcoff_import_symbol (output_bfd, info, harg, val, imppath, impfile,
   struct xcoff_link_hash_entry *h = (struct xcoff_link_hash_entry *) harg;
 
   if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour)
-    return true;
+    return TRUE;
 
   /* A symbol name which starts with a period is the code for a
      function.  If the symbol is undefined, then add an undefined
@@ -2587,9 +2588,9 @@ bfd_xcoff_import_symbol (output_bfd, info, harg, val, imppath, impfile,
        {
          hds = xcoff_link_hash_lookup (xcoff_hash_table (info),
                                        h->root.root.string + 1,
-                                       true, false, true);
+                                       TRUE, FALSE, TRUE);
          if (hds == NULL)
-           return false;
+           return FALSE;
          if (hds->root.type == bfd_link_hash_new)
            {
              hds->root.type = bfd_link_hash_undefined;
@@ -2603,8 +2604,8 @@ bfd_xcoff_import_symbol (output_bfd, info, harg, val, imppath, impfile,
        }
 
       /* Now, if the descriptor is undefined, import the descriptor
-         rather than the symbol we were told to import.  FIXME: Is
-         this correct in all cases?  */
+        rather than the symbol we were told to import.  FIXME: Is
+        this correct in all cases?  */
       if (hds->root.type == bfd_link_hash_undefined)
        h = hds;
     }
@@ -2621,7 +2622,7 @@ bfd_xcoff_import_symbol (output_bfd, info, harg, val, imppath, impfile,
                 (info, h->root.root.string, h->root.u.def.section->owner,
                  h->root.u.def.section, h->root.u.def.value,
                  output_bfd, bfd_abs_section_ptr, val)))
-           return false;
+           return FALSE;
        }
 
       h->root.type = bfd_link_hash_defined;
@@ -2641,7 +2642,7 @@ bfd_xcoff_import_symbol (output_bfd, info, harg, val, imppath, impfile,
       struct xcoff_import_file **pp;
 
       /* We start c at 1 because the first entry in the import list is
-         reserved for the library search path.  */
+        reserved for the library search path.  */
       for (pp = &xcoff_hash_table (info)->imports, c = 1;
           *pp != NULL;
           pp = &(*pp)->next, ++c)
@@ -2659,7 +2660,7 @@ bfd_xcoff_import_symbol (output_bfd, info, harg, val, imppath, impfile,
 
          n = (struct xcoff_import_file *) bfd_alloc (output_bfd, amt);
          if (n == NULL)
-           return false;
+           return FALSE;
          n->next = NULL;
          n->path = imppath;
          n->file = impfile;
@@ -2670,12 +2671,12 @@ bfd_xcoff_import_symbol (output_bfd, info, harg, val, imppath, impfile,
       h->ldindx = c;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Export a symbol.  */
 
-boolean
+bfd_boolean
 bfd_xcoff_export_symbol (output_bfd, info, harg)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2684,7 +2685,7 @@ bfd_xcoff_export_symbol (output_bfd, info, harg)
   struct xcoff_link_hash_entry *h = (struct xcoff_link_hash_entry *) harg;
 
   if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour)
-    return true;
+    return TRUE;
 
   h->flags |= XCOFF_EXPORT;
 
@@ -2702,11 +2703,11 @@ bfd_xcoff_export_symbol (output_bfd, info, harg)
 
       fnname = (char *) bfd_malloc (amt);
       if (fnname == NULL)
-       return false;
+       return FALSE;
       fnname[0] = '.';
       strcpy (fnname + 1, h->root.root.string);
       hfn = xcoff_link_hash_lookup (xcoff_hash_table (info),
-                                   fnname, false, false, true);
+                                   fnname, FALSE, FALSE, TRUE);
       free (fnname);
       if (hfn != NULL
          && hfn->smclas == XMC_PR
@@ -2721,7 +2722,7 @@ bfd_xcoff_export_symbol (output_bfd, info, harg)
 
   /* Make sure we don't garbage collect this symbol.  */
   if (! xcoff_mark_symbol (info, h))
-    return false;
+    return FALSE;
 
   /* If this is a function descriptor, make sure we don't garbage
      collect the associated function code.  We normally don't have to
@@ -2731,17 +2732,17 @@ bfd_xcoff_export_symbol (output_bfd, info, harg)
   if ((h->flags & XCOFF_DESCRIPTOR) != 0)
     {
       if (! xcoff_mark_symbol (info, h->descriptor))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 /* Count a reloc against a symbol.  This is called for relocs
    generated by the linker script, typically for global constructors
    and destructors.  */
 
-boolean
+bfd_boolean
 bfd_xcoff_link_count_reloc (output_bfd, info, name)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2750,16 +2751,16 @@ bfd_xcoff_link_count_reloc (output_bfd, info, name)
   struct xcoff_link_hash_entry *h;
 
   if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour)
-    return true;
+    return TRUE;
 
   h = ((struct xcoff_link_hash_entry *)
-       bfd_wrapped_link_hash_lookup (output_bfd, info, name, false, false,
-                                    false));
+       bfd_wrapped_link_hash_lookup (output_bfd, info, name, FALSE, FALSE,
+                                    FALSE));
   if (h == NULL)
     {
       (*_bfd_error_handler) (_("%s: no such symbol"), name);
       bfd_set_error (bfd_error_no_symbols);
-      return false;
+      return FALSE;
     }
 
   h->flags |= XCOFF_REF_REGULAR | XCOFF_LDREL;
@@ -2767,15 +2768,15 @@ bfd_xcoff_link_count_reloc (output_bfd, info, name)
 
   /* Mark the symbol to avoid garbage collection.  */
   if (! xcoff_mark_symbol (info, h))
-    return false;
+    return FALSE;
 
-  return true;
+  return TRUE;
 }
 
 /* This function is called for each symbol to which the linker script
    assigns a value.  */
 
-boolean
+bfd_boolean
 bfd_xcoff_record_link_assignment (output_bfd, info, name)
      bfd *output_bfd;
      struct bfd_link_info *info;
@@ -2784,16 +2785,16 @@ bfd_xcoff_record_link_assignment (output_bfd, info, name)
   struct xcoff_link_hash_entry *h;
 
   if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour)
-    return true;
+    return TRUE;
 
-  h = xcoff_link_hash_lookup (xcoff_hash_table (info), name, true, true,
-                             false);
+  h = xcoff_link_hash_lookup (xcoff_hash_table (info), name, TRUE, TRUE,
+                             FALSE);
   if (h == NULL)
-    return false;
+    return FALSE;
 
   h->flags |= XCOFF_DEF_REGULAR;
 
-  return true;
+  return TRUE;
 }
 
 /* Build the .loader section.  This is called by the XCOFF linker
@@ -2813,7 +2814,7 @@ bfd_xcoff_record_link_assignment (output_bfd, info, name)
    option).  SPECIAL_SECTIONS is set by this routine to csects with
    magic names like _end.  */
 
-boolean
+bfd_boolean
 bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
                                 file_align, maxstack, maxdata, gc,
                                 modtype, textro, export_defineds,
@@ -2825,12 +2826,12 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
      unsigned long file_align;
      unsigned long maxstack;
      unsigned long maxdata;
-     boolean gc;
+     bfd_boolean gc;
      int modtype;
-     boolean textro;
-     boolean export_defineds;
+     bfd_boolean textro;
+     bfd_boolean export_defineds;
      asection **special_sections;
-     boolean rtld;
+     bfd_boolean rtld;
 {
   struct xcoff_link_hash_entry *hentry;
   asection *lsec;
@@ -2851,10 +2852,10 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
     {
       for (i = 0; i < XCOFF_NUMBER_OF_SPECIAL_SECTIONS; i++)
        special_sections[i] = NULL;
-      return true;
+      return TRUE;
     }
 
-  ldinfo.failed = false;
+  ldinfo.failed = FALSE;
   ldinfo.output_bfd = output_bfd;
   ldinfo.info = info;
   ldinfo.export_defineds = export_defineds;
@@ -2874,56 +2875,55 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
   if (entry != NULL)
     {
       hentry = xcoff_link_hash_lookup (xcoff_hash_table (info), entry,
-                                      false, false, true);
+                                      FALSE, FALSE, TRUE);
       if (hentry != NULL)
        hentry->flags |= XCOFF_ENTRY;
     }
 
   /* __rtinit */
-  if (info->init_function || info->fini_function || rtld) 
+  if (info->init_function || info->fini_function || rtld)
     {
       struct xcoff_link_hash_entry *hsym;
       struct internal_ldsym *ldsym;
-      
+
       hsym = xcoff_link_hash_lookup (xcoff_hash_table (info),
-                                    "__rtinit", false, false, true);
+                                    "__rtinit", FALSE, FALSE, TRUE);
       if (hsym == NULL)
        {
          (*_bfd_error_handler)
            (_("error: undefined symbol __rtinit"));
-         return false;
+         return FALSE;
        }
-      
+
       xcoff_mark_symbol (info, hsym);
       hsym->flags |= (XCOFF_DEF_REGULAR | XCOFF_RTINIT);
 
       /* __rtinit initalized */
       amt = sizeof (struct internal_ldsym);
       ldsym = (struct internal_ldsym *) bfd_malloc (amt);
-      
-      ldsym->l_value = 0;                  /* will be filled in later */
-      ldsym->l_scnum = 2;                  /* data section */
-      ldsym->l_smtype = XTY_SD;            /* csect section definition */
-      ldsym->l_smclas = 5;                 /* .rw */
-      ldsym->l_ifile = 0;                  /* special system loader symbol */
-      ldsym->l_parm = 0;                   /* NA */
-      
+
+      ldsym->l_value = 0;              /* will be filled in later */
+      ldsym->l_scnum = 2;              /* data section */
+      ldsym->l_smtype = XTY_SD;                /* csect section definition */
+      ldsym->l_smclas = 5;             /* .rw */
+      ldsym->l_ifile = 0;              /* special system loader symbol */
+      ldsym->l_parm = 0;               /* NA */
+
       /* Force __rtinit to be the first symbol in the loader symbol table
         See xcoff_build_ldsyms
-        
+
         The first 3 symbol table indices are reserved to indicate the data,
         text and bss sections.  */
       BFD_ASSERT (0 == ldinfo.ldsym_count);
-      
+
       hsym->ldindx = 3;
       ldinfo.ldsym_count = 1;
       hsym->ldsym = ldsym;
-      
-      if (false == bfd_xcoff_put_ldsymbol_name (ldinfo.output_bfd, &ldinfo,
-                                               hsym->ldsym,
-                                               hsym->root.root.string))
-       return false;
-      
+
+      if (! bfd_xcoff_put_ldsymbol_name (ldinfo.output_bfd, &ldinfo,
+                                        hsym->ldsym, hsym->root.root.string))
+       return FALSE;
+
       /* This symbol is written out by xcoff_write_global_symbol
         Set stuff up so xcoff_write_global_symbol logic works.  */
       hsym->flags |= XCOFF_DEF_REGULAR | XCOFF_MARK;
@@ -2938,11 +2938,11 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
       || (hentry->root.type != bfd_link_hash_defined
          && hentry->root.type != bfd_link_hash_defweak))
     {
-      gc = false;
-      xcoff_hash_table (info)->gc = false;
+      gc = FALSE;
+      xcoff_hash_table (info)->gc = FALSE;
 
       /* We still need to call xcoff_mark, in order to set ldrel_count
-         correctly.  */
+        correctly.  */
       for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
        {
          asection *o;
@@ -2962,7 +2962,7 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
       if (! xcoff_mark (info, hentry->root.u.def.section))
        goto error_return;
       xcoff_sweep (info);
-      xcoff_hash_table (info)->gc = true;
+      xcoff_hash_table (info)->gc = TRUE;
     }
 
   /* Return special sections to the caller.  */
@@ -2982,7 +2982,7 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
   if (info->input_bfds == NULL)
     {
       /* I'm not sure what to do in this bizarre case.  */
-      return true;
+      return TRUE;
     }
 
   xcoff_link_hash_traverse (xcoff_hash_table (info), xcoff_build_ldsyms,
@@ -3158,7 +3158,7 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
       csectpp = xcoff_data (sub)->csects;
 
       /* Dynamic object do not have csectpp's.  */
-      if (NULL != csectpp) 
+      if (NULL != csectpp)
        {
          symesz = bfd_coff_symesz (sub);
          esym = (bfd_byte *) obj_coff_external_syms (sub);
@@ -3183,7 +3183,7 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
                  bfd_size_type indx;
 
                  name = (char *) debug_contents + sym._n._n_n._n_offset;
-                 indx = _bfd_stringtab_add (debug_strtab, name, true, true);
+                 indx = _bfd_stringtab_add (debug_strtab, name, TRUE, TRUE);
                  if (indx == (bfd_size_type) -1)
                    goto error_return;
                  *debug_index = indx;
@@ -3213,29 +3213,29 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
     xcoff_hash_table (info)->debug_section->_raw_size =
       _bfd_stringtab_size (debug_strtab);
 
-  return true;
+  return TRUE;
 
  error_return:
   if (ldinfo.strings != NULL)
     free (ldinfo.strings);
   if (debug_contents != NULL)
     free (debug_contents);
-  return false;
+  return FALSE;
 }
 
-boolean 
+bfd_boolean
 bfd_xcoff_link_generate_rtinit (abfd, init, fini, rtld)
      bfd *abfd;
      const char *init;
      const char *fini;
-     boolean rtld;
+     bfd_boolean rtld;
 {
   struct bfd_in_memory *bim;
-  
+
   bim = ((struct bfd_in_memory *)
         bfd_malloc ((bfd_size_type) sizeof (struct bfd_in_memory)));
   if (bim == NULL)
-    return false;
+    return FALSE;
 
   bim->size = 0;
   bim->buffer = 0;
@@ -3247,21 +3247,21 @@ bfd_xcoff_link_generate_rtinit (abfd, init, fini, rtld)
   abfd->direction = write_direction;
   abfd->where = 0;
 
-  if (false == bfd_xcoff_generate_rtinit (abfd, init, fini, rtld)) 
-    return false;
+  if (! bfd_xcoff_generate_rtinit (abfd, init, fini, rtld))
+    return FALSE;
 
   /* need to reset to unknown or it will not be read back in correctly */
   abfd->format = bfd_unknown;
   abfd->direction = read_direction;
   abfd->where = 0;
 
-  return true;
+  return TRUE;
 }
 
 
 /* Add a symbol to the .loader symbols, if necessary.  */
 
-static boolean
+static bfd_boolean
 xcoff_build_ldsyms (h, p)
      struct xcoff_link_hash_entry *h;
      PTR p;
@@ -3274,7 +3274,7 @@ xcoff_build_ldsyms (h, p)
 
   /* __rtinit, this symbol has special handling. */
   if (h->flags & XCOFF_RTINIT)
-      return true;
+      return TRUE;
 
   /* If this is a final link, and the symbol was defined as a common
      symbol in a regular object file, and there was no definition in
@@ -3296,7 +3296,7 @@ xcoff_build_ldsyms (h, p)
       && (h->flags & XCOFF_DEF_REGULAR) != 0
       && h->root.root.string[0] != '.')
     {
-      boolean export;
+      bfd_boolean export;
 
       /* We don't export a symbol which is being defined by an object
         included from an archive which contains a shared object.  The
@@ -3312,7 +3312,7 @@ xcoff_build_ldsyms (h, p)
         them.  This is confusing, but I haven't been able to think of
         a different approach.  Note that the symbols can, of course,
         be exported explicitly.  */
-      export = true;
+      export = TRUE;
       if ((h->root.type == bfd_link_hash_defined
           || h->root.type == bfd_link_hash_defweak)
          && h->root.u.def.section->owner != NULL
@@ -3326,7 +3326,7 @@ xcoff_build_ldsyms (h, p)
            {
              if ((member->flags & DYNAMIC) != 0)
                {
-                 export = false;
+                 export = FALSE;
                  break;
                }
              member = bfd_openr_next_archived_file (arbfd, member);
@@ -3375,7 +3375,7 @@ xcoff_build_ldsyms (h, p)
       sec->_raw_size += bfd_xcoff_glink_code_size(ldinfo->output_bfd);
 
       /* The global linkage code requires a TOC entry for the
-         descriptor.  */
+        descriptor.  */
       hds = h->descriptor;
       BFD_ASSERT ((hds->root.type == bfd_link_hash_undefined
                   || hds->root.type == bfd_link_hash_undefweak)
@@ -3393,7 +3393,7 @@ xcoff_build_ldsyms (h, p)
          else if (bfd_xcoff_is_xcoff32 (ldinfo->output_bfd))
            byte_size = 4;
          else
-           return false;
+           return FALSE;
 
          hds->toc_section = xcoff_hash_table (ldinfo->info)->toc_section;
          hds->u.toc_offset = hds->toc_section->_raw_size;
@@ -3425,10 +3425,10 @@ xcoff_build_ldsyms (h, p)
          asection *sec;
 
          /* This is an undefined function descriptor associated with
-             a defined entry point.  We can build up a function
-             descriptor ourselves.  Believe it or not, the AIX linker
-             actually does this, and there are cases where we need to
-             do it as well.  */
+            a defined entry point.  We can build up a function
+            descriptor ourselves.  Believe it or not, the AIX linker
+            actually does this, and there are cases where we need to
+            do it as well.  */
          sec = xcoff_hash_table (ldinfo->info)->descriptor_section;
          h->root.type = bfd_link_hash_defined;
          h->root.u.def.section = sec;
@@ -3455,7 +3455,7 @@ xcoff_build_ldsyms (h, p)
            (_("warning: attempt to export undefined symbol `%s'"),
             h->root.root.string);
          h->ldsym = NULL;
-         return true;
+         return TRUE;
        }
     }
 
@@ -3484,7 +3484,7 @@ xcoff_build_ldsyms (h, p)
       && (h->flags & XCOFF_EXPORT) == 0)
     {
       h->ldsym = NULL;
-      return true;
+      return TRUE;
     }
 
   /* We don't need to add this symbol if we did garbage collection and
@@ -3493,13 +3493,13 @@ xcoff_build_ldsyms (h, p)
       && (h->flags & XCOFF_MARK) == 0)
     {
       h->ldsym = NULL;
-      return true;
+      return TRUE;
     }
 
   /* We may have already processed this symbol due to the recursive
      call above.  */
   if ((h->flags & XCOFF_BUILT_LDSYM) != 0)
-    return true;
+    return TRUE;
 
   /* We need to add this symbol to the .loader symbols.  */
 
@@ -3508,8 +3508,8 @@ xcoff_build_ldsyms (h, p)
   h->ldsym = (struct internal_ldsym *) bfd_zalloc (ldinfo->output_bfd, amt);
   if (h->ldsym == NULL)
     {
-      ldinfo->failed = true;
-      return false;
+      ldinfo->failed = TRUE;
+      return FALSE;
     }
 
   if ((h->flags & XCOFF_IMPORT) != 0)
@@ -3521,21 +3521,20 @@ xcoff_build_ldsyms (h, p)
 
   ++ldinfo->ldsym_count;
 
-  if (false == bfd_xcoff_put_ldsymbol_name (ldinfo->output_bfd, ldinfo,
-                                           h->ldsym,
-                                           h->root.root.string))
+  if (! bfd_xcoff_put_ldsymbol_name (ldinfo->output_bfd, ldinfo,
+                                    h->ldsym, h->root.root.string))
     {
-      return false;
+      return FALSE;
     }
 
   h->flags |= XCOFF_BUILT_LDSYM;
 
-  return true;
+  return TRUE;
 }
 \f
 /* Do the final link step.  */
 
-boolean
+bfd_boolean
 _bfd_xcoff_bfd_final_link (abfd, info)
      bfd *abfd;
      struct bfd_link_info *info;
@@ -3611,7 +3610,7 @@ _bfd_xcoff_bfd_final_link (abfd, info)
                 link.  This will normally be every section.  We need
                 to do this so that we can identify any sections which
                 the linker has decided to not include.  */
-             sec->linker_mark = true;
+             sec->linker_mark = TRUE;
 
              if (info->strip == strip_none
                  || info->strip == strip_some)
@@ -3651,49 +3650,49 @@ _bfd_xcoff_bfd_final_link (abfd, info)
       file_align = xcoff_hash_table (info)->file_align;
       if (file_align != 0)
        {
-         boolean saw_contents;
+         bfd_boolean saw_contents;
          int indx;
          asection **op;
          file_ptr sofar;
-         
+
          /* Insert .pad sections before every section which has
-             contents and is loaded, if it is preceded by some other
-             section which has contents and is loaded.  */
-         saw_contents = true;
+            contents and is loaded, if it is preceded by some other
+            section which has contents and is loaded.  */
+         saw_contents = TRUE;
          for (op = &abfd->sections; *op != NULL; op = &(*op)->next)
            {
              if (strcmp ((*op)->name, ".pad") == 0)
-               saw_contents = false;
+               saw_contents = FALSE;
              else if (((*op)->flags & SEC_HAS_CONTENTS) != 0
                       && ((*op)->flags & SEC_LOAD) != 0)
                {
                  if (! saw_contents)
-                   saw_contents = true;
+                   saw_contents = TRUE;
                  else
                    {
                      asection *n, **st;
-                     
+
                      /* Create a pad section and place it before the section
-                        that needs padding.  This requires unlinking and 
+                        that needs padding.  This requires unlinking and
                         relinking the bfd's section list.  */
-                     
+
                      st = abfd->section_tail;
                      n = bfd_make_section_anyway (abfd, ".pad");
                      n->flags = SEC_HAS_CONTENTS;
-                     n->alignment_power = 0; 
+                     n->alignment_power = 0;
 
                      BFD_ASSERT (*st == n);
                      bfd_section_list_remove (abfd, st);
                      bfd_section_list_insert (abfd, op, n);
 
                      op = &n->next;
-                     saw_contents = false;
+                     saw_contents = FALSE;
                    }
                }
            }
-         
+
          /* Reset the section indices after inserting the new
-             sections.  */
+            sections.  */
          indx = 0;
          for (o = abfd->sections; o != NULL; o = o->next)
            {
@@ -3703,9 +3702,9 @@ _bfd_xcoff_bfd_final_link (abfd, info)
          BFD_ASSERT ((unsigned int) indx == abfd->section_count);
 
          /* Work out appropriate sizes for the .pad sections to force
-             each section to land on a page boundary.  This bit of
-             code knows what compute_section_file_positions is going
-             to do.  */
+            each section to land on a page boundary.  This bit of
+            code knows what compute_section_file_positions is going
+            to do.  */
          sofar = bfd_coff_filhsz (abfd);
          sofar += bfd_coff_aoutsz (abfd);
          sofar += abfd->section_count * bfd_coff_scnhsz (abfd);
@@ -3775,8 +3774,8 @@ _bfd_xcoff_bfd_final_link (abfd, info)
       else
        {
          /* A stripped file has no relocs.  However, we still
-             allocate the buffers, so that later code doesn't have to
-             worry about whether we are stripping or not.  */
+            allocate the buffers, so that later code doesn't have to
+            worry about whether we are stripping or not.  */
          if (info->strip == strip_all)
            o->rel_filepos = 0;
          else
@@ -3787,13 +3786,13 @@ _bfd_xcoff_bfd_final_link (abfd, info)
            }
 
          /* We don't know the indices of global symbols until we have
-             written out all the local symbols.  For each section in
-             the output file, we keep an array of pointers to hash
-             table entries.  Each entry in the array corresponds to a
-             reloc.  When we find a reloc against a global symbol, we
-             set the corresponding entry in this array so that we can
-             fix up the symbol index after we have written out all the
-             local symbols.
+            written out all the local symbols.  For each section in
+            the output file, we keep an array of pointers to hash
+            table entries.  Each entry in the array corresponds to a
+            reloc.  When we find a reloc against a global symbol, we
+            set the corresponding entry in this array so that we can
+            fix up the symbol index after we have written out all the
+            local symbols.
 
             Because of this problem, we also keep the relocs in
             memory until the end of the link.  This wastes memory.
@@ -3850,7 +3849,7 @@ _bfd_xcoff_bfd_final_link (abfd, info)
     {
       bfd_size_type sz;
 
-      sub->output_has_begun = false;
+      sub->output_has_begun = FALSE;
       sz = obj_raw_syment_count (sub);
       if (sz > max_sym_count)
        max_sym_count = sz;
@@ -3903,7 +3902,7 @@ _bfd_xcoff_bfd_final_link (abfd, info)
                {
                  if (! xcoff_link_input_bfd (&finfo, sub))
                    goto error_return;
-                 sub->output_has_begun = true;
+                 sub->output_has_begun = TRUE;
                }
            }
          else if (p->type == bfd_section_reloc_link_order
@@ -4142,7 +4141,7 @@ _bfd_xcoff_bfd_final_link (abfd, info)
      not try to write out the symbols.  */
   bfd_get_symcount (abfd) = 0;
 
-  return true;
+  return TRUE;
 
  error_return:
   if (finfo.strtab != NULL)
@@ -4176,13 +4175,13 @@ _bfd_xcoff_bfd_final_link (abfd, info)
     free (finfo.external_relocs);
   if (external_relocs != NULL)
     free (external_relocs);
-  return false;
+  return FALSE;
 }
 
 /* Link an input file into the linker output file.  This function
    handles all the sections and relocations of the input file at once.  */
 
-static boolean
+static bfd_boolean
 xcoff_link_input_bfd (finfo, input_bfd)
      struct xcoff_final_link_info *finfo;
      bfd *input_bfd;
@@ -4192,7 +4191,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
   bfd_size_type syment_base;
   unsigned int n_tmask;
   unsigned int n_btshft;
-  boolean copy, hash;
+  bfd_boolean copy, hash;
   bfd_size_type isymesz;
   bfd_size_type osymesz;
   bfd_size_type linesz;
@@ -4207,13 +4206,13 @@ xcoff_link_input_bfd (finfo, input_bfd)
   bfd_byte *outsym;
   unsigned int incls;
   asection *oline;
-  boolean keep_syms;
+  bfd_boolean keep_syms;
   asection *o;
 
   /* We can just skip DYNAMIC files, unless this is a static link.  */
   if ((input_bfd->flags & DYNAMIC) != 0
       && ! finfo->info->static_link)
-    return true;
+    return TRUE;
 
   /* Move all the symbols to the output file.  */
 
@@ -4232,15 +4231,15 @@ xcoff_link_input_bfd (finfo, input_bfd)
 #define N_TMASK n_tmask
 #define N_BTSHFT n_btshft
 
-  copy = false;
+  copy = FALSE;
   if (! finfo->info->keep_memory)
-    copy = true;
-  hash = true;
+    copy = TRUE;
+  hash = TRUE;
   if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
-    hash = false;
+    hash = FALSE;
 
   if (! _bfd_coff_get_external_symbols (input_bfd))
-    return false;
+    return FALSE;
 
   esym = (bfd_byte *) obj_coff_external_syms (input_bfd);
   esym_end = esym + obj_raw_syment_count (input_bfd) * isymesz;
@@ -4260,14 +4259,14 @@ xcoff_link_input_bfd (finfo, input_bfd)
       struct internal_syment isym;
       union internal_auxent aux;
       int smtyp = 0;
-      boolean skip;
-      boolean require;
+      bfd_boolean skip;
+      bfd_boolean require;
       int add;
 
       bfd_coff_swap_sym_in (input_bfd, (PTR) esym, (PTR) isymp);
 
       /* If this is a C_EXT or C_HIDEXT symbol, we need the csect
-         information.  */
+        information.  */
       if (isymp->n_sclass == C_EXT || isymp->n_sclass == C_HIDEXT)
        {
          BFD_ASSERT (isymp->n_numaux > 0);
@@ -4287,9 +4286,9 @@ xcoff_link_input_bfd (finfo, input_bfd)
       isym = *isymp;
 
       /* If this symbol is in the .loader section, swap out the
-         .loader symbol information.  If this is an external symbol
-         reference to a defined symbol, though, then wait until we get
-         to the definition.  */
+        .loader symbol information.  If this is an external symbol
+        reference to a defined symbol, though, then wait until we get
+        to the definition.  */
       if (isym.n_sclass == C_EXT
          && *sym_hash != NULL
          && (*sym_hash)->ldsym != NULL
@@ -4379,26 +4378,26 @@ xcoff_link_input_bfd (finfo, input_bfd)
 
       *indexp = -1;
 
-      skip = false;
-      require = false;
+      skip = FALSE;
+      require = FALSE;
       add = 1 + isym.n_numaux;
 
       /* If we are skipping this csect, we want to skip this symbol.  */
       if (*csectpp == NULL)
-       skip = true;
+       skip = TRUE;
 
       /* If we garbage collected this csect, we want to skip this
-         symbol.  */
+        symbol.  */
       if (! skip
          && xcoff_hash_table (finfo->info)->gc
          && ((*csectpp)->flags & SEC_MARK) == 0
          && *csectpp != bfd_abs_section_ptr)
-       skip = true;
+       skip = TRUE;
 
       /* An XCOFF linker always skips C_STAT symbols.  */
       if (! skip
          && isymp->n_sclass == C_STAT)
-       skip = true;
+       skip = TRUE;
 
       /* We skip all but the first TOC anchor.  */
       if (! skip
@@ -4406,7 +4405,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
          && aux.x_csect.x_smclas == XMC_TC0)
        {
          if (finfo->toc_symindx != -1)
-           skip = true;
+           skip = TRUE;
          else
            {
              bfd_vma tocval, tocend;
@@ -4418,11 +4417,11 @@ xcoff_link_input_bfd (finfo, input_bfd)
                        - (*csectpp)->vma);
 
              /* We want to find out if tocval is a good value to use
-                 as the TOC anchor--that is, whether we can access all
-                 of the TOC using a 16 bit offset from tocval.  This
-                 test assumes that the TOC comes at the end of the
-                 output section, as it does in the default linker
-                 script.  */
+                as the TOC anchor--that is, whether we can access all
+                of the TOC using a 16 bit offset from tocval.  This
+                test assumes that the TOC comes at the end of the
+                output section, as it does in the default linker
+                script.  */
              tocend = ((*csectpp)->output_section->vma
                        + (*csectpp)->output_section->_raw_size);
              for (inp = finfo->info->input_bfds;
@@ -4449,7 +4448,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                    (_("TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"),
                     (unsigned long) (tocend - tocval));
                  bfd_set_error (bfd_error_file_too_big);
-                 return false;
+                 return FALSE;
                }
 
              if (tocval + 0x8000 < tocend)
@@ -4465,7 +4464,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
              xcoff_data (finfo->output_bfd)->toc = tocval;
              xcoff_data (finfo->output_bfd)->sntoc =
                (*csectpp)->output_section->target_index;
-             require = true;
+             require = TRUE;
 
            }
        }
@@ -4473,17 +4472,17 @@ xcoff_link_input_bfd (finfo, input_bfd)
       /* If we are stripping all symbols, we want to skip this one.  */
       if (! skip
          && finfo->info->strip == strip_all)
-       skip = true;
+       skip = TRUE;
 
       /* We can skip resolved external references.  */
       if (! skip
          && isym.n_sclass == C_EXT
          && smtyp == XTY_ER
          && (*sym_hash)->root.type != bfd_link_hash_undefined)
-       skip = true;
+       skip = TRUE;
 
       /* We can skip common symbols if they got defined somewhere
-         else.  */
+        else.  */
       if (! skip
          && isym.n_sclass == C_EXT
          && smtyp == XTY_CM
@@ -4491,7 +4490,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
              || (*sym_hash)->root.u.c.p->section != *csectpp)
          && ((*sym_hash)->root.type != bfd_link_hash_defined
              || (*sym_hash)->root.u.def.section != *csectpp))
-       skip = true;
+       skip = TRUE;
 
       /* Skip local symbols if we are discarding them.  */
       if (! skip
@@ -4499,14 +4498,14 @@ xcoff_link_input_bfd (finfo, input_bfd)
          && isym.n_sclass != C_EXT
          && (isym.n_sclass != C_HIDEXT
              || smtyp != XTY_SD))
-       skip = true;
+       skip = TRUE;
 
       /* If we stripping debugging symbols, and this is a debugging
-         symbol, then skip it.  */
+        symbol, then skip it.  */
       if (! skip
          && finfo->info->strip == strip_debugger
          && isym.n_scnum == N_DEBUG)
-       skip = true;
+       skip = TRUE;
 
       /* If some symbols are stripped based on the name, work out the
         name and decide whether to skip this symbol.  We don't handle
@@ -4524,24 +4523,24 @@ xcoff_link_input_bfd (finfo, input_bfd)
          name = _bfd_coff_internal_syment_name (input_bfd, &isym, buf);
 
          if (name == NULL)
-           return false;
+           return FALSE;
 
          if ((finfo->info->strip == strip_some
-              && (bfd_hash_lookup (finfo->info->keep_hash, name, false,
-                                   false) == NULL))
+              && (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE,
+                                   FALSE) == NULL))
              || (finfo->info->discard == discard_l
                  && (isym.n_sclass != C_EXT
                      && (isym.n_sclass != C_HIDEXT
                          || smtyp != XTY_SD))
                  && bfd_is_local_label_name (input_bfd, name)))
-           skip = true;
+           skip = TRUE;
        }
 
       /* We can not skip the first TOC anchor.  */
       if (skip
          && require
          && finfo->info->strip != strip_all)
-       skip = false;
+       skip = FALSE;
 
       /* We now know whether we are to skip this symbol or not.  */
       if (! skip)
@@ -4565,10 +4564,10 @@ xcoff_link_input_bfd (finfo, input_bfd)
                                                         (char *) NULL);
 
                  if (name == NULL)
-                   return false;
+                   return FALSE;
                  indx = _bfd_stringtab_add (finfo->strtab, name, hash, copy);
                  if (indx == (bfd_size_type) -1)
-                   return false;
+                   return FALSE;
                  isym._n._n_n._n_offset = STRING_SIZE_SIZE + indx;
                }
            }
@@ -4622,7 +4621,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                      if (bfd_seek (output_bfd, pos, SEEK_SET) != 0
                          || (bfd_bwrite (outsym, osymesz, output_bfd)
                              != osymesz))
-                       return false;
+                       return FALSE;
                    }
                }
 
@@ -4631,8 +4630,8 @@ xcoff_link_input_bfd (finfo, input_bfd)
            }
 
          /* The value of a C_BINCL or C_EINCL symbol is a file offset
-             into the line numbers.  We update the symbol values when
-             we handle the line numbers.  */
+            into the line numbers.  We update the symbol values when
+            we handle the line numbers.  */
          if (isym.n_sclass == C_BINCL
              || isym.n_sclass == C_EINCL)
            {
@@ -4659,8 +4658,8 @@ xcoff_link_input_bfd (finfo, input_bfd)
            }
 
          /* If this is a symbol in the TOC which we may have merged
-             (class XMC_TC), remember the symbol index of the TOC
-             symbol.  */
+            (class XMC_TC), remember the symbol index of the TOC
+            symbol.  */
          if (isym.n_sclass == C_HIDEXT
              && aux.x_csect.x_smclas == XMC_TC
              && *sym_hash != NULL)
@@ -4715,7 +4714,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
              bfd_vma indx;
 
              /* The value of a C_BSTAT symbol is the symbol table
-                 index of the containing csect.  */
+                index of the containing csect.  */
              bfd_coff_swap_sym_in (output_bfd, (PTR) outsym, (PTR) &isym);
              indx = isym.n_value;
              if (indx < obj_raw_syment_count (input_bfd))
@@ -4760,13 +4759,13 @@ xcoff_link_input_bfd (finfo, input_bfd)
                        {
                          strings = _bfd_coff_read_string_table (input_bfd);
                          if (strings == NULL)
-                           return false;
+                           return FALSE;
                        }
                      filename = strings + aux.x_file.x_n.x_offset;
                      indx = _bfd_stringtab_add (finfo->strtab, filename,
                                                 hash, copy);
                      if (indx == (bfd_size_type) -1)
-                       return false;
+                       return FALSE;
                      aux.x_file.x_n.x_offset = STRING_SIZE_SIZE + indx;
                    }
                }
@@ -4776,10 +4775,10 @@ xcoff_link_input_bfd (finfo, input_bfd)
                {
 
                  /* We don't support type checking.  I don't know if
-                     anybody does.  */
+                    anybody does.  */
                  aux.x_csect.x_parmhash = 0;
                  /* I don't think anybody uses these fields, but we'd
-                     better clobber them just in case.  */
+                    better clobber them just in case.  */
                  aux.x_csect.x_stab = 0;
                  aux.x_csect.x_snstab = 0;
 
@@ -4818,9 +4817,9 @@ xcoff_link_input_bfd (finfo, input_bfd)
                          && indx < obj_raw_syment_count (input_bfd))
                        {
                          /* We look forward through the symbol for
-                             the index of the next symbol we are going
-                             to include.  I don't know if this is
-                             entirely right.  */
+                            the index of the next symbol we are going
+                            to include.  I don't know if this is
+                            entirely right.  */
                          while (finfo->sym_indices[indx] < 0
                                 && indx < obj_raw_syment_count (input_bfd))
                            ++indx;
@@ -4877,7 +4876,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                          if (bfd_seek (input_bfd, pos, SEEK_SET) != 0
                              || (bfd_bread (finfo->linenos, amt, input_bfd)
                                  != amt))
-                           return false;
+                           return FALSE;
                          oline = enclosing;
                        }
 
@@ -4937,7 +4936,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                              || (bfd_bwrite (finfo->linenos + linoff,
                                             linesz * count, output_bfd)
                                  != linesz * count))
-                           return false;
+                           return FALSE;
 
                          o->output_section->lineno_count += count;
 
@@ -4949,8 +4948,8 @@ xcoff_link_input_bfd (finfo, input_bfd)
                              int iiadd;
 
                              /* Update any C_BINCL or C_EINCL symbols
-                                 that refer to a line number in the
-                                 range we just output.  */
+                                that refer to a line number in the
+                                range we just output.  */
                              iisp = finfo->internal_syms;
                              iispend = (iisp
                                         + obj_raw_syment_count (input_bfd));
@@ -5028,7 +5027,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
       bfd_size_type amt = outsym - finfo->outsyms;
       if (bfd_seek (output_bfd, pos, SEEK_SET) != 0
          || bfd_bwrite (finfo->outsyms, amt, output_bfd) != amt)
-       return false;
+       return FALSE;
 
       BFD_ASSERT ((obj_raw_syment_count (output_bfd)
                   + (outsym - finfo->outsyms) / osymesz)
@@ -5039,7 +5038,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
 
   /* Don't let the linker relocation routines discard the symbols.  */
   keep_syms = obj_coff_keep_syms (input_bfd);
-  obj_coff_keep_syms (input_bfd) = true;
+  obj_coff_keep_syms (input_bfd) = TRUE;
 
   /* Relocate the contents of each section.  */
   for (o = input_bfd->sections; o != NULL; o = o->next)
@@ -5066,7 +5065,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
       else {
        if (! bfd_get_section_contents (input_bfd, o, finfo->contents,
                                        (file_ptr) 0, o->_raw_size))
-         return false;
+         return FALSE;
        contents = finfo->contents;
       }
 
@@ -5083,12 +5082,12 @@ xcoff_link_input_bfd (finfo, input_bfd)
          /* Read in the relocs.  */
          target_index = o->output_section->target_index;
          internal_relocs = (xcoff_read_internal_relocs
-                            (input_bfd, o, false, finfo->external_relocs,
-                             true,
+                            (input_bfd, o, FALSE, finfo->external_relocs,
+                             TRUE,
                              (finfo->section_info[target_index].relocs
                               + o->output_section->reloc_count)));
          if (internal_relocs == NULL)
-           return false;
+           return FALSE;
 
          /* Call processor specific code to relocate the section
             contents.  */
@@ -5098,7 +5097,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                                           internal_relocs,
                                           finfo->internal_syms,
                                           xcoff_data (input_bfd)->csects))
-           return false;
+           return FALSE;
 
          offset = o->output_section->vma + o->output_offset - o->vma;
          irel = internal_relocs;
@@ -5109,7 +5108,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
            {
              struct xcoff_link_hash_entry *h = NULL;
              struct internal_ldrel ldrel;
-             boolean quiet;
+             bfd_boolean quiet;
 
              *rel_hash = NULL;
 
@@ -5153,7 +5152,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                          n = ((struct xcoff_toc_rel_hash *)
                               bfd_alloc (finfo->output_bfd, amt));
                          if (n == NULL)
-                           return false;
+                           return FALSE;
                          si = finfo->section_info + target_index;
                          n->next = si->toc_rel_hashes;
                          n->h = h;
@@ -5233,17 +5232,17 @@ xcoff_link_input_bfd (finfo, input_bfd)
                                  (input_bfd, is, buf));
 
                          if (name == NULL)
-                           return false;
+                           return FALSE;
 
                          if (! ((*finfo->info->callbacks->unattached_reloc)
                                 (finfo->info, name, input_bfd, o,
                                  irel->r_vaddr)))
-                           return false;
+                           return FALSE;
                        }
                    }
                }
 
-             quiet = false;
+             quiet = FALSE;
              switch (irel->r_type)
                {
                default:
@@ -5290,7 +5289,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                             bfd_archive_filename (input_bfd),
                             sec->name);
                          bfd_set_error (bfd_error_nonrepresentable_section);
-                         return false;
+                         return FALSE;
                        }
                    }
                  else
@@ -5303,7 +5302,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                             callback for this relocation, in
                             _bfd_ppc_xcoff_relocate_section.  Don't
                             issue any more warnings.  */
-                         quiet = true;
+                         quiet = TRUE;
                        }
                      if (h->ldindx < 0 && ! quiet)
                        {
@@ -5312,7 +5311,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                             bfd_archive_filename (input_bfd),
                             h->root.root.string);
                          bfd_set_error (bfd_error_bad_value);
-                         return false;
+                         return FALSE;
                        }
                      ldrel.l_symndx = h->ldindx;
                    }
@@ -5328,7 +5327,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                         bfd_get_section_name (finfo->output_bfd,
                                               o->output_section));
                      bfd_set_error (bfd_error_invalid_operation);
-                     return false;
+                     return FALSE;
                    }
                  bfd_xcoff_swap_ldrel_out (output_bfd, &ldrel,
                                            finfo->ldrel);
@@ -5356,7 +5355,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
                                      (o->_cooked_size != 0
                                       ? o->_cooked_size
                                       : o->_raw_size)))
-       return false;
+       return FALSE;
     }
 
   obj_coff_keep_syms (input_bfd) = keep_syms;
@@ -5364,10 +5363,10 @@ xcoff_link_input_bfd (finfo, input_bfd)
   if (! finfo->info->keep_memory)
     {
       if (! _bfd_coff_free_symbols (input_bfd))
-       return false;
+       return FALSE;
     }
 
-  return true;
+  return TRUE;
 }
 
 #undef N_TMASK
@@ -5376,7 +5375,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
 /* Write out a non-XCOFF global symbol.  */
 
 
-static boolean
+static bfd_boolean
 xcoff_write_global_symbol (h, inf)
      struct xcoff_link_hash_entry *h;
      PTR inf;
@@ -5386,7 +5385,7 @@ xcoff_write_global_symbol (h, inf)
   bfd_byte *outsym;
   struct internal_syment isym;
   union internal_auxent aux;
-  boolean result;
+  bfd_boolean result;
   file_ptr pos;
   bfd_size_type amt;
 
@@ -5397,13 +5396,13 @@ xcoff_write_global_symbol (h, inf)
     {
       h = (struct xcoff_link_hash_entry *) h->root.u.i.link;
       if (h->root.type == bfd_link_hash_new)
-       return true;
+       return TRUE;
     }
 
   /* If this symbol was garbage collected, just skip it.  */
   if (xcoff_hash_table (finfo->info)->gc
       && (h->flags & XCOFF_MARK) == 0)
-    return true;
+    return TRUE;
 
   /* If we need a .loader section entry, write it out.  */
   if (h->ldsym != NULL)
@@ -5625,7 +5624,7 @@ xcoff_write_global_symbol (h, inf)
        }
       else
        {
-         return false;
+         return FALSE;
        }
       irel->r_type = R_POS;
       finfo->section_info[oindx].rel_hashes[osec->reloc_count] = NULL;
@@ -5645,10 +5644,8 @@ xcoff_write_global_symbol (h, inf)
 
          result = bfd_xcoff_put_symbol_name (output_bfd, finfo->strtab,
                                              &irsym, h->root.root.string);
-         if (false == result)
-           {
-             return false;
-           }
+         if (!result)
+           return FALSE;
 
          irsym.n_value = irel->r_vaddr;
          irsym.n_scnum = osec->target_index;
@@ -5674,7 +5671,7 @@ xcoff_write_global_symbol (h, inf)
              amt = outsym - finfo->outsyms;
              if (bfd_seek (output_bfd, pos, SEEK_SET) != 0
                  || bfd_bwrite (finfo->outsyms, amt, output_bfd) != amt)
-               return false;
+               return FALSE;
              obj_raw_syment_count (output_bfd) +=
                (outsym - finfo->outsyms) / bfd_coff_symesz (output_bfd);
 
@@ -5721,7 +5718,7 @@ xcoff_write_global_symbol (h, inf)
        }
       else
        {
-         return false;
+         return FALSE;
        }
 
       sec = h->root.u.def.section;
@@ -5759,7 +5756,7 @@ xcoff_write_global_symbol (h, inf)
             bfd_get_filename (output_bfd),
             esec->output_section->name);
          bfd_set_error (bfd_error_nonrepresentable_section);
-         return false;
+         return FALSE;
        }
       ldrel.l_rtype = (reloc_size << 8) | R_POS;
       ldrel.l_rsecnm = oindx;
@@ -5821,7 +5818,7 @@ xcoff_write_global_symbol (h, inf)
             bfd_get_filename (output_bfd),
             tsec->output_section->name);
          bfd_set_error (bfd_error_nonrepresentable_section);
-         return false;
+         return FALSE;
        }
       ldrel.l_rtype = (reloc_size << 8) | R_POS;
       ldrel.l_rsecnm = oindx;
@@ -5832,24 +5829,24 @@ xcoff_write_global_symbol (h, inf)
   if (h->indx >= 0 || finfo->info->strip == strip_all)
     {
       BFD_ASSERT (outsym == finfo->outsyms);
-      return true;
+      return TRUE;
     }
 
   if (h->indx != -2
       && (finfo->info->strip == strip_all
          || (finfo->info->strip == strip_some
              && bfd_hash_lookup (finfo->info->keep_hash, h->root.root.string,
-                                 false, false) == NULL)))
+                                 FALSE, FALSE) == NULL)))
     {
       BFD_ASSERT (outsym == finfo->outsyms);
-      return true;
+      return TRUE;
     }
 
   if (h->indx != -2
       && (h->flags & (XCOFF_REF_REGULAR | XCOFF_DEF_REGULAR)) == 0)
     {
       BFD_ASSERT (outsym == finfo->outsyms);
-      return true;
+      return TRUE;
     }
 
   memset (&aux, 0, sizeof aux);
@@ -5858,10 +5855,8 @@ xcoff_write_global_symbol (h, inf)
 
   result = bfd_xcoff_put_symbol_name (output_bfd, finfo->strtab, &isym,
                                      h->root.root.string);
-  if (false == result)
-    {
-      return false;
-    }
+  if (!result)
+    return FALSE;
 
   if (h->root.type == bfd_link_hash_undefined
       || h->root.type == bfd_link_hash_undefweak)
@@ -5957,16 +5952,16 @@ xcoff_write_global_symbol (h, inf)
   amt = outsym - finfo->outsyms;
   if (bfd_seek (output_bfd, pos, SEEK_SET) != 0
       || bfd_bwrite (finfo->outsyms, amt, output_bfd) != amt)
-    return false;
+    return FALSE;
   obj_raw_syment_count (output_bfd) +=
     (outsym - finfo->outsyms) / bfd_coff_symesz (output_bfd);
 
-  return true;
+  return TRUE;
 }
 
 /* Handle a link order which is supposed to generate a reloc.  */
 
-static boolean
+static bfd_boolean
 xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
      bfd *output_bfd;
      struct xcoff_final_link_info *finfo;
@@ -5985,9 +5980,9 @@ xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
   if (link_order->type == bfd_section_reloc_link_order)
     {
       /* We need to somehow locate a symbol in the right section.  The
-         symbol must either have a value of zero, or we must adjust
-         the addend by the value of the symbol.  FIXME: Write this
-         when we need it.  The old linker couldn't handle this anyhow.  */
+        symbol must either have a value of zero, or we must adjust
+        the addend by the value of the symbol.  FIXME: Write this
+        when we need it.  The old linker couldn't handle this anyhow.  */
       abort ();
     }
 
@@ -5995,20 +5990,20 @@ xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
   if (howto == NULL)
     {
       bfd_set_error (bfd_error_bad_value);
-      return false;
+      return FALSE;
     }
 
   h = ((struct xcoff_link_hash_entry *)
        bfd_wrapped_link_hash_lookup (output_bfd, finfo->info,
                                     link_order->u.reloc.p->u.name,
-                                    false, false, true));
+                                    FALSE, FALSE, TRUE));
   if (h == NULL)
     {
       if (! ((*finfo->info->callbacks->unattached_reloc)
             (finfo->info, link_order->u.reloc.p->u.name, (bfd *) NULL,
              (asection *) NULL, (bfd_vma) 0)))
-       return false;
-      return true;
+       return FALSE;
+      return TRUE;
     }
 
   if (h->root.type == bfd_link_hash_common)
@@ -6039,12 +6034,12 @@ xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
       bfd_size_type size;
       bfd_byte *buf;
       bfd_reloc_status_type rstat;
-      boolean ok;
+      bfd_boolean ok;
 
       size = bfd_get_reloc_size (howto);
       buf = (bfd_byte *) bfd_zmalloc (size);
       if (buf == NULL)
-       return false;
+       return FALSE;
 
       rstat = _bfd_relocate_contents (howto, output_bfd, addend, buf);
       switch (rstat)
@@ -6061,7 +6056,7 @@ xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
                  (bfd_vma) 0)))
            {
              free (buf);
-             return false;
+             return FALSE;
            }
          break;
        }
@@ -6069,7 +6064,7 @@ xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
                                     (file_ptr) link_order->offset, size);
       free (buf);
       if (! ok)
-       return false;
+       return FALSE;
     }
 
   /* Store the reloc information in the right place.  It will get
@@ -6124,7 +6119,7 @@ xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
            (_("%s: loader reloc in unrecognized section `%s'"),
             bfd_get_filename (output_bfd), secname);
          bfd_set_error (bfd_error_nonrepresentable_section);
-         return false;
+         return FALSE;
        }
     }
   else
@@ -6136,7 +6131,7 @@ xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
             bfd_get_filename (output_bfd),
             h->root.root.string);
          bfd_set_error (bfd_error_bad_value);
-         return false;
+         return FALSE;
        }
       ldrel.l_symndx = h->ldindx;
     }
@@ -6146,7 +6141,7 @@ xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
   bfd_xcoff_swap_ldrel_out (output_bfd, &ldrel, finfo->ldrel);
   finfo->ldrel += bfd_xcoff_ldrelsz(output_bfd);
 
-  return true;
+  return TRUE;
 }
 
 /* Sort relocs by VMA.  This is called via qsort.  */
index e6b3c4b11d59011c0a12b20bee2deca4b5beaa0d..65475742f13c64a7b829b7aad92f6f18d9ea5176 100644 (file)
@@ -92,11 +92,11 @@ compute_offset (first_page, page_size, entry_size, index)
   return (page_number * page_size) + page_offset;
 }
 
-boolean
+bfd_boolean
 bfd_sym_mkobject (abfd)
      bfd *abfd ATTRIBUTE_UNUSED;
 {
-  return (boolean) true;
+  return 1;
 }
 
 void
@@ -109,7 +109,7 @@ bfd_sym_print_symbol (abfd, afile, symbol, how)
   return;
 }
 
-boolean
+bfd_boolean
 bfd_sym_valid (abfd)
      bfd *abfd;
 {
@@ -242,7 +242,7 @@ bfd_sym_read_header (abfd, header, version)
       return bfd_sym_read_header_v32 (abfd, header);
     case BFD_SYM_VERSION_3_1:
     default:
-      return false;
+      return FALSE;
     }
 }
 
@@ -2423,7 +2423,7 @@ bfd_sym_get_symtab (abfd, sym)
 int
 bfd_sym_sizeof_headers (abfd, exec)
      bfd *abfd ATTRIBUTE_UNUSED;
-     boolean exec ATTRIBUTE_UNUSED;
+     bfd_boolean exec ATTRIBUTE_UNUSED;
 {
   return 0;
 }
index a381c5538d3a5282cf6d19497357bb606eeac97e..8108e71fa83e660473f27a1ba6be4a4fb6a5d7a2 100644 (file)
@@ -545,157 +545,157 @@ struct bfd_sym_data_struct
 };
 typedef struct bfd_sym_data_struct bfd_sym_data_struct;
 
-extern boolean               bfd_sym_mkobject
+extern bfd_boolean bfd_sym_mkobject
   PARAMS ((bfd *));
-extern void                  bfd_sym_print_symbol
+extern void bfd_sym_print_symbol
   PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
-extern boolean               bfd_sym_valid
+extern bfd_boolean bfd_sym_valid
   PARAMS ((bfd *));
-extern unsigned char *       bfd_sym_read_name_table
+extern unsigned char * bfd_sym_read_name_table
   PARAMS ((bfd *, bfd_sym_header_block *));
-extern void                  bfd_sym_parse_file_reference_v32
+extern void bfd_sym_parse_file_reference_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_file_reference *));
-extern void                  bfd_sym_parse_disk_table_v32
+extern void bfd_sym_parse_disk_table_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_table_info *));
-extern void                  bfd_sym_parse_header_v32
+extern void bfd_sym_parse_header_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_header_block *));
-extern int                   bfd_sym_read_header_v32
+extern int bfd_sym_read_header_v32
   PARAMS ((bfd *, bfd_sym_header_block *));
-extern int                   bfd_sym_read_header_v34
+extern int bfd_sym_read_header_v34
   PARAMS ((bfd *, bfd_sym_header_block *));
-extern int                   bfd_sym_read_header
+extern int bfd_sym_read_header
   PARAMS ((bfd *, bfd_sym_header_block *, bfd_sym_version));
-extern int                   bfd_sym_read_version
+extern int bfd_sym_read_version
   PARAMS ((bfd *, bfd_sym_version *));
-extern void                  bfd_sym_display_table_summary
+extern void bfd_sym_display_table_summary
   PARAMS ((FILE *, bfd_sym_table_info *, const char *));
-extern void                  bfd_sym_display_header
+extern void bfd_sym_display_header
   PARAMS ((FILE *, bfd_sym_header_block *));
-extern void                  bfd_sym_parse_resources_table_entry_v32
+extern void bfd_sym_parse_resources_table_entry_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_resources_table_entry *));
-extern void                  bfd_sym_parse_modules_table_entry_v33
+extern void bfd_sym_parse_modules_table_entry_v33
   PARAMS ((unsigned char *, size_t, bfd_sym_modules_table_entry *));
-extern void                  bfd_sym_parse_file_references_table_entry_v32
+extern void bfd_sym_parse_file_references_table_entry_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_file_references_table_entry *));
-extern void                  bfd_sym_parse_contained_modules_table_entry_v32
+extern void bfd_sym_parse_contained_modules_table_entry_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_contained_modules_table_entry *));
-extern void                  bfd_sym_parse_contained_variables_table_entry_v32
+extern void bfd_sym_parse_contained_variables_table_entry_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_contained_variables_table_entry *));
-extern void                  bfd_sym_parse_contained_statements_table_entry_v32
+extern void bfd_sym_parse_contained_statements_table_entry_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_contained_statements_table_entry *));
-extern void                  bfd_sym_parse_contained_labels_table_entry_v32
+extern void bfd_sym_parse_contained_labels_table_entry_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_contained_labels_table_entry *));
-extern void                  bfd_sym_parse_type_table_entry_v32
+extern void bfd_sym_parse_type_table_entry_v32
   PARAMS ((unsigned char *, size_t, bfd_sym_type_table_entry *));
-extern int                   bfd_sym_fetch_resources_table_entry
+extern int bfd_sym_fetch_resources_table_entry
   PARAMS ((bfd *, bfd_sym_resources_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_modules_table_entry
+extern int bfd_sym_fetch_modules_table_entry
   PARAMS ((bfd *, bfd_sym_modules_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_file_references_table_entry
+extern int bfd_sym_fetch_file_references_table_entry
   PARAMS ((bfd *, bfd_sym_file_references_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_contained_modules_table_entry
+extern int bfd_sym_fetch_contained_modules_table_entry
   PARAMS ((bfd *, bfd_sym_contained_modules_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_contained_variables_table_entry
+extern int bfd_sym_fetch_contained_variables_table_entry
   PARAMS ((bfd *, bfd_sym_contained_variables_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_contained_statements_table_entry
+extern int bfd_sym_fetch_contained_statements_table_entry
   PARAMS ((bfd *, bfd_sym_contained_statements_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_contained_labels_table_entry
+extern int bfd_sym_fetch_contained_labels_table_entry
   PARAMS ((bfd *, bfd_sym_contained_labels_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_contained_types_table_entry
+extern int bfd_sym_fetch_contained_types_table_entry
   PARAMS ((bfd *, bfd_sym_contained_types_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_file_references_index_table_entry
+extern int bfd_sym_fetch_file_references_index_table_entry
   PARAMS ((bfd *, bfd_sym_file_references_index_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_constant_pool_entry
+extern int bfd_sym_fetch_constant_pool_entry
   PARAMS ((bfd *, bfd_sym_constant_pool_entry *, unsigned long));
-extern int                   bfd_sym_fetch_type_table_entry
+extern int bfd_sym_fetch_type_table_entry
   PARAMS ((bfd *, bfd_sym_type_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_type_information_table_entry
+extern int bfd_sym_fetch_type_information_table_entry
   PARAMS ((bfd *, bfd_sym_type_information_table_entry *, unsigned long));
-extern int                   bfd_sym_fetch_type_table_information
+extern int bfd_sym_fetch_type_table_information
   PARAMS ((bfd *, bfd_sym_type_information_table_entry *, unsigned long));
 extern const unsigned char * bfd_sym_symbol_name
   PARAMS ((bfd *, unsigned long));
 extern const unsigned char * bfd_sym_module_name
   PARAMS ((bfd *, unsigned long));
-extern const char *          bfd_sym_unparse_storage_kind
+extern const char * bfd_sym_unparse_storage_kind
   PARAMS ((enum bfd_sym_storage_kind));
-extern const char *          bfd_sym_unparse_storage_class
+extern const char * bfd_sym_unparse_storage_class
   PARAMS ((enum bfd_sym_storage_class));
-extern const char *          bfd_sym_unparse_module_kind
+extern const char * bfd_sym_unparse_module_kind
   PARAMS ((enum bfd_sym_module_kind));
-extern const char *          bfd_sym_unparse_symbol_scope
+extern const char * bfd_sym_unparse_symbol_scope
   PARAMS ((enum bfd_sym_symbol_scope));
-extern void                  bfd_sym_print_file_reference
+extern void bfd_sym_print_file_reference
   PARAMS ((bfd *, FILE *, bfd_sym_file_reference *));
-extern void                  bfd_sym_print_resources_table_entry
+extern void bfd_sym_print_resources_table_entry
   PARAMS ((bfd *, FILE *, bfd_sym_resources_table_entry *));
-extern void                  bfd_sym_print_modules_table_entry
+extern void bfd_sym_print_modules_table_entry
   PARAMS ((bfd *, FILE *, bfd_sym_modules_table_entry *));
-extern void                  bfd_sym_print_file_references_table_entry
+extern void bfd_sym_print_file_references_table_entry
   PARAMS ((bfd *, FILE *, bfd_sym_file_references_table_entry *));
-extern void                  bfd_sym_print_contained_modules_table_entry
+extern void bfd_sym_print_contained_modules_table_entry
   PARAMS ((bfd *, FILE *, bfd_sym_contained_modules_table_entry *));
-extern void                  bfd_sym_print_contained_variables_table_entry
+extern void bfd_sym_print_contained_variables_table_entry
   PARAMS ((bfd *, FILE *f, bfd_sym_contained_variables_table_entry *));
-extern void                  bfd_sym_print_contained_statements_table_entry
+extern void bfd_sym_print_contained_statements_table_entry
   PARAMS ((bfd *, FILE *, bfd_sym_contained_statements_table_entry *));
-extern void                  bfd_sym_print_contained_labels_table_entry
+extern void bfd_sym_print_contained_labels_table_entry
   PARAMS ((bfd *, FILE *, bfd_sym_contained_labels_table_entry *));
-extern void                  bfd_sym_print_contained_types_table_entry
+extern void bfd_sym_print_contained_types_table_entry
   PARAMS ((bfd *, FILE *, bfd_sym_contained_types_table_entry *));
-extern const char *          bfd_sym_type_operator_name
+extern const char * bfd_sym_type_operator_name
   PARAMS ((unsigned char));
-extern const char *          bfd_sym_type_basic_name
+extern const char * bfd_sym_type_basic_name
   PARAMS ((unsigned char));
-extern int                   bfd_sym_fetch_long
+extern int bfd_sym_fetch_long
   PARAMS ((unsigned char *, unsigned long, unsigned long, unsigned long *, long *));
-extern void                  bfd_sym_print_type_information
+extern void bfd_sym_print_type_information
   PARAMS ((bfd *, FILE *, unsigned char *, unsigned long, unsigned long, unsigned long *));
-extern void                  bfd_sym_print_type_information_table_entry
+extern void bfd_sym_print_type_information_table_entry
   PARAMS ((bfd *, FILE *, bfd_sym_type_information_table_entry *));
-extern void                  bfd_sym_print_file_references_index_table_entry
+extern void bfd_sym_print_file_references_index_table_entry
   PARAMS ((bfd *, FILE *, bfd_sym_file_references_index_table_entry *));
-extern void                  bfd_sym_print_constant_pool_entry
+extern void bfd_sym_print_constant_pool_entry
   PARAMS ((bfd *, FILE *, bfd_sym_constant_pool_entry *));
-extern unsigned char *       bfd_sym_display_name_table_entry
+extern unsigned char * bfd_sym_display_name_table_entry
   PARAMS ((bfd *, FILE *, unsigned char *));
-extern void                  bfd_sym_display_name_table
+extern void bfd_sym_display_name_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_resources_table
+extern void bfd_sym_display_resources_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_modules_table
+extern void bfd_sym_display_modules_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_file_references_table
+extern void bfd_sym_display_file_references_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_contained_modules_table
+extern void bfd_sym_display_contained_modules_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_contained_variables_table
+extern void bfd_sym_display_contained_variables_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_contained_statements_table
+extern void bfd_sym_display_contained_statements_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_contained_labels_table
+extern void bfd_sym_display_contained_labels_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_contained_types_table
+extern void bfd_sym_display_contained_types_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_file_references_index_table
+extern void bfd_sym_display_file_references_index_table
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_constant_pool
+extern void bfd_sym_display_constant_pool
   PARAMS ((bfd *, FILE *));
-extern void                  bfd_sym_display_type_information_table
+extern void bfd_sym_display_type_information_table
   PARAMS ((bfd *, FILE *));
-extern int                   bfd_sym_scan
+extern int bfd_sym_scan
   PARAMS ((bfd *, bfd_sym_version, bfd_sym_data_struct *));
-extern const bfd_target *    bfd_sym_object_p
+extern const bfd_target * bfd_sym_object_p
   PARAMS ((bfd *));
-extern asymbol *             bfd_sym_make_empty_symbol
+extern asymbol * bfd_sym_make_empty_symbol
   PARAMS ((bfd *));
-extern void                  bfd_sym_get_symbol_info
+extern void bfd_sym_get_symbol_info
   PARAMS ((bfd *, asymbol *, symbol_info *));
-extern long                  bfd_sym_get_symtab_upper_bound
+extern long bfd_sym_get_symtab_upper_bound
   PARAMS ((bfd *));
-extern long                  bfd_sym_get_symtab
+extern long bfd_sym_get_symtab
   PARAMS ((bfd *, asymbol **));
-extern int                   bfd_sym_sizeof_headers
-  PARAMS ((bfd *, boolean));
+extern int bfd_sym_sizeof_headers
+  PARAMS ((bfd *, bfd_boolean));
 
 #endif /* __xSYM_H__ */
index 3f985d32a070871504b072f7ca8c044c50c17389..c183693fd6b8ec7606d211bd46350285de5a0578 100644 (file)
@@ -1,3 +1,11 @@
+2002-12-16  Christopher Faylor  <cgf@redhat.com>
+
+       * mh-cygwin: Don't build libtermcap if it doesn't exist.
+
+2002-11-23  H.J. Lu <hjl@gnu.org>
+
+       * accross.m4: New.
+
 2002-11-10  Stan Shebs  <shebs@apple.com>
 
        Retire common MPW configury bits.
index 241027fb8debff5a1004fc03747d92adf19e9f29..6c3ab8034d6f258b788e58dcfec0650660ff6155 100644 (file)
@@ -1,6 +1,6 @@
-EXTRA_TARGET_HOST_ALL_MODULES=all-libtermcap
-EXTRA_TARGET_HOST_INSTALL_MODULES=install-libtermcap
+EXTRA_TARGET_HOST_ALL_MODULES=maybe-all-libtermcap
+EXTRA_TARGET_HOST_INSTALL_MODULES=maybe-install-libtermcap
 
-all-gdb: all-libtermcap
+all-gdb: maybe-all-libtermcap
 
-install-gdb: all-libtermcap
+install-gdb: maybe-all-libtermcap
index ec9bebf5020d75a0affd77fb5117f039107f1ee3..6b4d9b495623f5f4443c72b45c0809bd4a13c561 100755 (executable)
--- a/configure
+++ b/configure
@@ -79,13 +79,11 @@ program_suffixoption=
 program_transform_name=
 program_transform_nameoption=
 redirect=
-removing=
 site=
 site_makefile_frag=
 site_option=
 srcdir=
 srctrigger=
-subdirs=
 target_alias=NOTARGET
 target_makefile_frag=
 undefs=NOUNDEFS
@@ -317,9 +315,6 @@ do
                program_transform_name="${program_transform_name} -e `echo ${optarg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`"
                program_transform_nameoption="${program_transform_nameoption} --program-transform-name='$optarg'"
                ;;
-       --rm)
-               removing=--rm
-               ;;
        --sb*)
                sbindir=$optarg
                diroptions="$diroptions --sbindir=$optarg"
@@ -590,28 +585,6 @@ case "${exec_prefixoption}" in
 *) ;;
 esac
 
-# Define the trigger file to make sure configure will re-run whenever
-# the gcc version number changes.
-if [ "${with_gcc_version_trigger+set}" = set ]; then
-    gcc_version_trigger="$with_gcc_version_trigger"
-    gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
-else
-    # If gcc's sources are available, define the trigger file.
-    if [ -f ${topsrcdir}/gcc/version.c ] ; then
-       gcc_version_trigger=${topsrcdir}/gcc/version.c
-       gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
-       case "$arguments" in
-         *--with-gcc-version-trigger=$gcc_version_trigger* )
-           ;;
-         * )
-           # Make sure configure.in knows about this.
-           arguments="--with-gcc-version-trigger=$gcc_version_trigger $arguments"
-           ;;
-       esac
-       withoptions="--with-gcc-version-trigger=$gcc_version_trigger $withoptions"
-    fi
-fi
-
 ### break up ${srcdir}/configure.in.
 case "`grep '^# per\-host:' ${srcdir}/configure.in`" in
 "")
@@ -639,7 +612,7 @@ case "`grep '^# per\-host:' ${srcdir}/configure.in`" in
                ${program_transform_nameoption} ${site_option} \
                ${withoptions} ${withoutoptions} \
                ${enableoptions} ${disableoptions} ${floating_pointoption} \
-               ${cache_file_option} ${removing} ${other_options} ${redirect}
+               ${cache_file_option} ${other_options} ${redirect}
          else
            echo '***' There is no configure script present though. 1>&2
          fi
@@ -687,24 +660,8 @@ fi
 
 ### do common part of configure.in
 
-# If the language specific compiler does not exist, but the "gcc" directory does,
-# we will skip this directory; in this case the sub-directory's common part
-# of configure.in will create a small shell script "skip-this-dir" containing
-# commands to completely clean up any temporary or created files.
-
 . ${tmpfile}.com
 
-if test -f skip-this-dir; then
-       # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
-       # and reset the trap handler.
-       trap 0
-       rm -rf Makefile* ${tmpdir}
-       # Execute the final clean-up actions
-       ${config_shell} skip-this-dir
-       # and stop configuring this directory.
-       exit 0
-fi
-
 # some sanity checks on configure.in
 case "${srctrigger}" in
 "")
@@ -911,10 +868,10 @@ do
   test -n "$DEFAULT_LEX" && break
 done
 
+
 if [ "${build}" != "${host}" ]; then
   # If we are doing a Canadian Cross, in which the host and build systems
   # are not the same, we set reasonable default values for the tools.
-
   tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD"
   tools="${tools} CC_FOR_TARGET CXX_FOR_TARGET GCJ_FOR_TARGET"
   tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET BUILD_PREFIX"
@@ -941,6 +898,7 @@ t loop
 
   AR=${AR-${host_alias}-ar}
   AR_FOR_TARGET=${AR_FOR_TARGET-${target_alias}-ar}
+  AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
   AS=${AS-${host_alias}-as}
   AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as}
   BISON=${BISON-bison}
@@ -962,6 +920,7 @@ t loop
   MAKEINFO=${MAKEINFO-makeinfo}
   NM=${NM-${host_alias}-nm}
   NM_FOR_TARGET=${NM_FOR_TARGET-${target_alias}-nm}
+  NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
   RANLIB=${RANLIB-${host_alias}-ranlib}
   RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib}
   WINDRES=${WINDRES-${host_alias}-windres}
@@ -1021,6 +980,44 @@ t loop
   export OBJCOPY
   export OBJDUMP
 else
+  # Set reasonable default values for some tools even if not Canadian.
+  # Of course, these are different reasonable default values, originally
+  # specified directly in the Makefile.
+  # We don't export, so that autoconf can do its job.
+  # Note that all these settings are above the fragment inclusion point
+  # in Makefile.in, so can still be overridden by fragments.
+  # This is all going to change when we autoconfiscate...
+
+  tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD"
+  tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET BUILD_PREFIX"
+  tools="${tools} BUILD_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM"
+  tools="${tools} NM_FOR_TARGET RANLIB_FOR_TARGET"
+  tools="${tools} WINDRES WINDRES_FOR_TARGET YACC"
+
+  AR=ar
+  AR_FOR_TARGET='\$(USUAL_AR_FOR_TARGET)'
+  AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
+  AS=as
+  AS_FOR_TARGET='\$(USUAL_AS_FOR_TARGET)'
+  BISON='$(USUAL_BISON)'
+  CC_FOR_BUILD='\$(CC)'
+  DLLTOOL=dlltool
+  DLLTOOL_FOR_TARGET='\$(USUAL_DLLTOOL_FOR_TARGET)'
+  GCC_FOR_TARGET='\$(USUAL_GCC_FOR_TARGET)'
+  BUILD_PREFIX=
+  BUILD_PREFIX_1=loser-
+  LD=ld
+  LD_FOR_TARGET='\$(USUAL_LD_FOR_TARGET)'
+  MAKEINFO='\$(USUAL_MAKEINFO)'
+  NM=nm
+  NM_FOR_TARGET='\$(USUAL_NM_FOR_TARGET)'
+  NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
+  RANLIB_FOR_TARGET='\$(USUAL_RANLIB_FOR_TARGET)'
+  WINDRES=windres
+  WINDRES_FOR_TARGET='\$(USUAL_WINDRES_FOR_TARGET)'
+  LEX='\$(USUAL_LEX)'
+  YACC='\$(USUAL_YACC)'
+
   # If CC is still not set, try to get gcc.
   if [ -z "${CC}" ]; then
     IFS="${IFS=        }"; save_ifs="$IFS"; IFS="${IFS}:"
@@ -1072,526 +1069,308 @@ export CXX
 export CFLAGS
 export CXXFLAGS
 
-all_build_modules=
-if test x"${build_alias}" != x"${host_alias}"
-then
-  all_build_modules='$(ALL_BUILD_MODULES_LIST)'
-fi
+# FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
+# Set up the list of links to be made.
+# ${links} is the list of link names, and ${files} is the list of names to link to.
 
-for subdir in . ${subdirs} ; do
-
-    # ${subdir} is relative path from . to the directory we're currently
-    # configuring.
-    # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed.
-    invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'`
-
-    ### figure out what to do with srcdir
-    case "${srcdir}" in
-        ".")  # no -srcdir option.  We're building in place.
-                makesrcdir=. ;;
-        /* | [A-Za-z]:[\\/]* ) # absolute path
-                makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'`
-                ;;
-        *) # otherwise relative
-                case "${subdir}" in
-                .) makesrcdir=${srcdir} ;;
-                *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;;
-                esac
-                ;;
-    esac
-
-    if [ "${subdir}/" != "./" ] ; then
-        Makefile=${subdir}/Makefile
-    fi
-
-    if [ ! -d ${subdir} ] ; then
-        if mkdir ${subdir} ; then
-                true
-        else
-                echo '***' "${progname}: could not make ${PWD=`${PWDCMD-pwd}`}/${subdir}" 1>&2
-                exit 1
-        fi
+# Make the links.
+configlinks="${links}"
+if [ -r ./config.status ] ; then
+  mv -f ./config.status ./config.back
+fi
+while [ -n "${files}" ] ; do
+  # set file to car of files, files to cdr of files
+  set ${files}; file=$1; shift; files=$*
+  set ${links}; link=$1; shift; links=$*
+
+  if [ ! -r ${srcdir}/${file} ] ; then
+    if [ ! -r ${file} ] ; then
+      echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
+      echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
+      exit 1
+    else
+      srcfile=${file}
     fi
+  else
+    srcfile=${srcdir}/${file}
+  fi
 
-    case "${removing}" in
-    "")
-        case "${subdir}" in
-        .) ;;
-        *) eval echo Building in ${subdir} ${redirect} ;;
-        esac
-
-        # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
-        # Set up the list of links to be made.
-        # ${links} is the list of link names, and ${files} is the list of names to link to.
-
-        # Make the links.
-        configlinks="${links}"
-        if [ -r ${subdir}/config.status ] ; then
-                mv -f ${subdir}/config.status ${subdir}/config.back
-        fi
-        while [ -n "${files}" ] ; do
-                # set file to car of files, files to cdr of files
-                set ${files}; file=$1; shift; files=$*
-                set ${links}; link=$1; shift; links=$*
-
-                if [ ! -r ${srcdir}/${file} ] ; then
-                  if [ ! -r ${file} ] ; then
-                   
-                        echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
-                        echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
-                        exit 1
-                 else
-                       srcfile=${file}
-                 fi
-               else
-                       srcfile=${srcdir}/${file}
-                fi
-
-                ${remove} -f ${link}
-               # Make a symlink if possible, otherwise try a hard link
-               if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
-                       true
-               else
-                       # We need to re-remove the file because Lynx leaves a 
-                       # very strange directory there when it fails an NFS symlink.
-                       ${remove} -r -f ${link}
-                       ${hard_link} ${srcfile} ${link}
-               fi
-                if [ ! -r ${link} ] ; then
-                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
-                        exit 1
-                fi
+  ${remove} -f ${link}
+  # Make a symlink if possible, otherwise try a hard link
+  if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
+    true
+  else
+    # We need to re-remove the file because Lynx leaves a 
+    # very strange directory there when it fails an NFS symlink.
+    ${remove} -r -f ${link}
+    ${hard_link} ${srcfile} ${link}
+  fi
+  if [ ! -r ${link} ] ; then
+    echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
+    exit 1
+  fi
 
-                echo "Linked \"${link}\" to \"${srcfile}\"."
-        done
+  echo "Linked \"${link}\" to \"${srcfile}\"."
+done
 
-        # Create a .gdbinit file which runs the one in srcdir
-        # and tells GDB to look there for source files.
+# Create a .gdbinit file which runs the one in srcdir
+# and tells GDB to look there for source files.
 
-        if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then
-                case ${srcdir} in
-                .) ;;
-                *) cat > ${subdir}/.gdbinit <<EOF
+if [ -r ${srcdir}/.gdbinit ] ; then
+  case ${srcdir} in
+    .) ;;
+    *) cat > ./.gdbinit <<EOF
 # ${NO_EDIT}
-dir ${makesrcdir}
+dir ${srcdir}
 dir .
-source ${makesrcdir}/.gdbinit
+source ${srcdir}/.gdbinit
 EOF
-                        ;;
-                esac
-        fi
+    ;;
+  esac
+fi
 
-        # Install a makefile, and make it set VPATH
-        # if necessary so that the sources are found.
-        # Also change its value of srcdir.
-        # NOTE: Makefile generation constitutes the majority of the time in configure.  Hence, this section has
-        # been somewhat optimized and is perhaps a bit twisty.
-
-        # code is order so as to try to sed the smallest input files we know.
-        # so do these separately because I don't trust the order of sed -e expressions.
-
-        # the five makefile fragments MUST end up in the resulting Makefile in this order: 
-        # package macros, target, host, site, and package rules.
-
-        if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
-
-            # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
-            rm -f ${subdir}/${Makefile}.tem
-            case "${package_makefile_rules_frag}" in
-              "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
-              *)
-                      if [ ! -f ${package_makefile_rules_frag} ] ; then
-                              package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
-                      fi
-                      if [ -f ${package_makefile_rules_frag} ] ; then
-                              sed -e "/^####/  r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
-                      else
-                              echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
-                              echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2
-                              cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
-                      fi
-            esac
-            # working copy now in ${Makefile}.tem
-
-            # Conditionalize for this site.
-            rm -f ${Makefile}
-              case "${site}" in
-              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
-              *)
-                      site_makefile_frag=${srcdir}/config/ms-${site}
-
-                      if [ -f ${site_makefile_frag} ] ; then
-                              sed -e "/^####/  r ${site_makefile_frag}" ${subdir}/Makefile.tem \
-                                      > ${Makefile}
-                      else
-                              mv ${subdir}/Makefile.tem ${Makefile}
-                              site_makefile_frag=
-                      fi
-                      ;;
-            esac
-            # working copy now in ${Makefile}
-
-            # Conditionalize the makefile for this host.
-            rm -f ${subdir}/Makefile.tem
-            case "${host_makefile_frag}" in
-              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
-              *)
-                      if [ ! -f ${host_makefile_frag} ] ; then
-                              host_makefile_frag=${srcdir}/${host_makefile_frag}
-                      fi
-                      if [ -f ${host_makefile_frag} ] ; then
-                              sed -e "/^####/  r ${host_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
-                      else
-                              echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2
-                              echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2
-                              mv ${Makefile} ${subdir}/Makefile.tem
-                      fi
-            esac
-            # working copy now in ${subdir)/Makefile.tem
-
-            # Conditionalize the makefile for this target.
-            rm -f ${Makefile}
-            case "${target_makefile_frag}" in
-              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
-              *)
-                      if [ ! -f ${target_makefile_frag} ] ; then
-                              target_makefile_frag=${srcdir}/${target_makefile_frag}
-                      fi
-                      if [ -f ${target_makefile_frag} ] ; then
-                              sed -e "/^####/  r ${target_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile}
-                      else
-                              mv ${subdir}/Makefile.tem ${Makefile}
-                              target_makefile_frag=
-                      fi
-                      ;;
-            esac
-            # working copy now in ${Makefile}
-
-            # Emit the default values of this package's macros.
-            rm -f ${subdir}/Makefile.tem
-            case "${package_makefile_frag}" in
-              "") mv ${Makefile} ${subdir}/Makefile.tem ;;
-              *)
-                      if [ ! -f ${package_makefile_frag} ] ; then
-                              package_makefile_frag=${srcdir}/${package_makefile_frag}
-                      fi
-                      if [ -f ${package_makefile_frag} ] ; then
-                              sed -e "/^####/  r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
-                      else
-                              echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
-                              echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2
-                              mv ${Makefile} ${subdir}/Makefile.tem
-                      fi
-            esac
-            # real copy now in ${subdir}/Makefile.tem
-
-            # prepend warning about editing, and a bunch of variables.
-            rm -f ${Makefile}
-            cat > ${Makefile} <<EOF
-# ${NO_EDIT}
-VPATH = ${makesrcdir}
-links = ${configlinks}
-host_alias = ${host_alias}
-host_cpu = ${host_cpu}
-host_vendor = ${host_vendor}
-host_os = ${host_os}
-host_canonical = ${host_cpu}-${host_vendor}-${host_os}
-target_alias = ${target_alias}
-target_cpu = ${target_cpu}
-target_vendor = ${target_vendor}
-target_os = ${target_os}
-target_canonical = ${target_cpu}-${target_vendor}-${target_os}
-EOF
-           case "${build}" in
-             "") ;;
-             *)  cat >> ${Makefile} << EOF
-build_alias = ${build_alias}
-build_cpu = ${build_cpu}
-build_vendor = ${build_vendor}
-build_os = ${build_os}
-build_canonical = ${build_cpu}-${build_vendor}-${build_os}
-EOF
-           esac
+# Install a makefile, and make it set VPATH
+# if necessary so that the sources are found.
+# Also change its value of srcdir.
+# NOTE: Makefile generation constitutes the majority of the time in configure.  Hence, this section has
+# been somewhat optimized and is perhaps a bit twisty.
 
-            case "${package_makefile_frag}" in
-              "") ;;
-              /* | [A-Za-z]:[\\/]* ) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;;
-              *)  echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;;
-            esac
-
-            case "${target_makefile_frag}" in
-              "") ;;
-              /* | [A-Za-z]:[\\/]* ) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;;
-              *)  echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;;
-            esac
-
-            case "${host_makefile_frag}" in
-              "") ;;
-              /* | [A-Za-z]:[\\/]* ) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;;
-              *)  echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;;
-            esac
-
-            if [ "${site_makefile_frag}" != "" ] ; then
-                echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile}
-            fi 
-
-           echo enable_shared = ${enable_shared} >> ${Makefile}
-           echo enable_threads = ${enable_threads} >> ${Makefile}
-           # record if we want to rumtime library stuff installed in libsubdir.
-           if test -z "${enable_version_specific_runtime_libs}"; then
-               echo enable_version_specific_runtime_libs = no >> ${Makefile}
-           else
-               echo enable_version_specific_runtime_libs = ${enable_version_specific_runtime_libs} >> ${Makefile}
-           fi
+# code is order so as to try to sed the smallest input files we know.
+# so do these separately because I don't trust the order of sed -e expressions.
 
-           # Emit a macro which describes the file containing gcc's
-           # version number.
-           echo gcc_version_trigger = ${gcc_version_trigger} >> ${Makefile}
-           # And emit a macro defining gcc's version number.
-           echo gcc_version = ${gcc_version} >> ${Makefile}
-
-            # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
-            # remove any form feeds.
-            if [ -z "${subdirs}" ]; then
-                rm -f ${subdir}/Makefile.tm2
-                sedtemp=sed.$$
-                cat >$sedtemp <<EOF
-s:@configdirs@:${configdirs}:
-EOF
-                sed -f $sedtemp \
-                    ${subdir}/Makefile.tem > ${subdir}/Makefile.tm2
-                rm -f $sedtemp
-                rm -f ${subdir}/Makefile.tem
-                mv ${subdir}/Makefile.tm2 ${subdir}/Makefile.tem
-           fi
-           sed     -e "s|@prefix@|${prefix}|" \
-                    -e "s|@exec_prefix@|${exec_prefix}|" \
-                    -e "s|@bindir@|${bindir}|" \
-                    -e "s|@sbindir@|${sbindir}|" \
-                    -e "s|@libexecdir@|${libexecdir}|" \
-                    -e "s|@datadir@|${datadir}|" \
-                    -e "s|@sysconfdir@|${sysconfdir}|" \
-                    -e "s|@sharedstatedir@|${sharedstatedir}|" \
-                    -e "s|@localstatedir@|${localstatedir}|" \
-                    -e "s|@libdir@|${libdir}|" \
-                    -e "s|@includedir@|${includedir}|" \
-                    -e "s|@oldincludedir@|${oldincludedir}|" \
-                    -e "s|@infodir@|${infodir}|" \
-                    -e "s|@mandir@|${mandir}|" \
-                   -e "s|@all_build_modules@|${all_build_modules}|" \
-                   -e "/^CC[   ]*=/{
-                       :loop1
-                       /\\\\$/ N
-                       s/\\\\\\n//g
-                       t loop1
-                       s%^CC[  ]*=.*$%CC = ${CC}%
-                       }" \
-                   -e "/^CXX[  ]*=/{
-                       :loop2
-                       /\\\\$/ N
-                       s/\\\\\\n//g
-                       t loop2
-                       s%^CXX[         ]*=.*$%CXX = ${CXX}%
-                       }" \
-                   -e "/^CFLAGS[       ]*=/{
-                       :loop3
-                       /\\\\$/ N
-                       s/\\\\\\n//g
-                       t loop3
-                       s%^CFLAGS[      ]*=.*$%CFLAGS = ${CFLAGS}%
-                       }" \
-                   -e "/^CXXFLAGS[     ]*=/{
-                       :loop4
-                       /\\\\$/ N
-                       s/\\\\\\n//g
-                       t loop4
-                       s%^CXXFLAGS[    ]*=.*$%CXXFLAGS = ${CXXFLAGS}%
-                       }" \
-                   -e "s|@config_shell@|${config_shell}|" \
-                    -e "s|@srcdir@|${makesrcdir}|" \
-                    -e "s/\f//" \
-                    -e "s:@program_transform_name@:${program_transform_name}:" \
-                    -e "s|@tooldir@|${tooldir}|" \
-                    -e "s|@build_tooldir@|${tooldir}|" \
-                   -e "s:@DEFAULT_YACC@:${DEFAULT_YACC}:" \
-                   -e "s:@DEFAULT_LEX@:${DEFAULT_LEX}:" \
-                   -e "s:@DEFAULT_M4@:${DEFAULT_M4}:" \
-                    ${subdir}/Makefile.tem >> ${Makefile}
-  
-           sed -e "s:@GDB_TK@:${GDB_TK}:" ${Makefile} >${Makefile}.tem
-           mv -f ${Makefile}.tem ${Makefile}
-
-           # If this is a Canadian Cross, preset the values of many more
-           # tools.
-           if [ "${build}" != "${host}" ]; then
-               for var in ${tools}; do
-                   eval val=\$${var}
-                   sed -e "/^${var}[   ]*=/{
-                          :loop1
-                          /\\\\$/ N
-                          /\\\\$/ b loop1
-                          s/\\\\\\n//g
-                          s%^${var}[   ]*=.*$%${var} = ${val}%
-                          }" ${Makefile} > ${Makefile}.tem
-                   mv -f ${Makefile}.tem ${Makefile}
-               done
-           fi
+# the five makefile fragments MUST end up in the resulting Makefile in this order: 
+# package macros, target, host, site, and package rules.
 
-            # final copy now in ${Makefile}
+if [ -f ${srcdir}/${Makefile_in} ] ; then
 
-        else
-           echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2
-        fi
+  # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
+  rm -f ./${Makefile}.tem
+  case "${package_makefile_rules_frag}" in
+    "") cp ${srcdir}/${Makefile_in} ./Makefile.tem ;;
+    *)
+      if [ ! -f ${package_makefile_rules_frag} ] ; then
+        package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
+      fi
+      if [ -f ${package_makefile_rules_frag} ] ; then
+        sed -e "/^####/  r ${package_makefile_rules_frag}" ${srcdir}/${Makefile_in} > ${Makefile}.tem
+      else
+        echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
+        echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2
+        cp ${srcdir}/${Makefile_in} ./Makefile.tem
+      fi
+  esac
+  # working copy now in ${Makefile}.tem
+
+  # Conditionalize for this site.
+  rm -f ${Makefile}
+  case "${site}" in
+    "") mv ./Makefile.tem ${Makefile} ;;
+    *)
+      site_makefile_frag=${srcdir}/config/ms-${site}
+
+      if [ -f ${site_makefile_frag} ] ; then
+        sed -e "/^####/  r ${site_makefile_frag}" ./Makefile.tem > ${Makefile}
+      else
+        mv ./Makefile.tem ${Makefile}
+        site_makefile_frag=
+      fi
+      ;;
+  esac
+  # working copy now in ${Makefile}
+
+  # Conditionalize the makefile for this host.
+  rm -f ./Makefile.tem
+  case "${host_makefile_frag}" in
+    "") mv ${Makefile} ./Makefile.tem ;;
+    *)
+      if [ ! -f ${host_makefile_frag} ] ; then
+        host_makefile_frag=${srcdir}/${host_makefile_frag}
+      fi
+      if [ -f ${host_makefile_frag} ] ; then
+        sed -e "/^####/  r ${host_makefile_frag}" ${Makefile} > ./Makefile.tem
+      else
+        echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2
+        echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2
+        mv ${Makefile} ./Makefile.tem
+      fi
+  esac
+  # working copy now in ./Makefile.tem
+
+  # Conditionalize the makefile for this target.
+  rm -f ${Makefile}
+  case "${target_makefile_frag}" in
+    "") mv ./Makefile.tem ${Makefile} ;;
+    *)
+      if [ ! -f ${target_makefile_frag} ] ; then
+        target_makefile_frag=${srcdir}/${target_makefile_frag}
+      fi
+      if [ -f ${target_makefile_frag} ] ; then
+        sed -e "/^####/  r ${target_makefile_frag}" ./Makefile.tem > ${Makefile}
+      else
+        mv ./Makefile.tem ${Makefile}
+        target_makefile_frag=
+      fi
+      ;;
+  esac
+  # working copy now in ${Makefile}
+
+  # Emit the default values of this package's macros.
+  rm -f ./Makefile.tem
+  case "${package_makefile_frag}" in
+    "") mv ${Makefile} ./Makefile.tem ;;
+    *)
+      if [ ! -f ${package_makefile_frag} ] ; then
+        package_makefile_frag=${srcdir}/${package_makefile_frag}
+      fi
+      if [ -f ${package_makefile_frag} ] ; then
+        sed -e "/^####/  r ${package_makefile_frag}" ${Makefile} > ./Makefile.tem
+      else
+        echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
+        echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2
+        mv ${Makefile} ./Makefile.tem
+      fi
+  esac
+  # real copy now in ./Makefile.tem
 
-        rm -f ${subdir}/Makefile.tem
+  # record if we want runtime library stuff installed in libsubdir.
+  # Blank means no.
+  if test -z "${enable_version_specific_runtime_libs}"; then
+    enable_version_specific_runtime_libs=no
+  fi
 
-        case "${host_makefile_frag}" in
-        "") using= ;;
-        *) using="and \"${host_makefile_frag}\"" ;;
-        esac
+  sed -e "s|@configlinks@|${configlinks}|" \
+      -e "s|@build_alias@|${build_alias}|" \
+      -e "s|@build_cpu@|${build_cpu}|" \
+      -e "s|@build_vendor@|${build_vendor}|" \
+      -e "s|@build_os@|${build_os}|" \
+      -e "s|@host_alias@|${host_alias}|" \
+      -e "s|@host_cpu@|${host_cpu}|" \
+      -e "s|@host_vendor@|${host_vendor}|" \
+      -e "s|@host_os@|${host_os}|" \
+      -e "s|@target_alias@|${target_alias}|" \
+      -e "s|@target_cpu@|${target_cpu}|" \
+      -e "s|@target_vendor@|${target_vendor}|" \
+      -e "s|@target_os@|${target_os}|" \
+      -e "s|@target_makefile_frag@|${target_makefile_frag}|" \
+      -e "s|@host_makefile_frag@|${host_makefile_frag}|" \
+      -e "s|@enable_shared@|${enable_shared}|" \
+      -e "s|@enable_threads@|${enable_threads}|" \
+      -e "s|@enable_version_specific_runtime_libs@|${enable_version_specific_runtime_libs}|" \
+      -e "s|@gcc_version_trigger@|${gcc_version_trigger}|" \
+      -e "s|@gcc_version@|${gcc_version}|" \
+      ./Makefile.tem > ${Makefile}
+  mv -f ${Makefile} ./Makefile.tem
+  # Real copy now in Makefile.tem; no prologue.
+
+  # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
+  # remove any form feeds.
+  sed -e "s|@configdirs@|${configdirs}|" \
+      -e "s|@prefix@|${prefix}|" \
+      -e "s|@exec_prefix@|${exec_prefix}|" \
+      -e "s|@bindir@|${bindir}|" \
+      -e "s|@sbindir@|${sbindir}|" \
+      -e "s|@libexecdir@|${libexecdir}|" \
+      -e "s|@datadir@|${datadir}|" \
+      -e "s|@sysconfdir@|${sysconfdir}|" \
+      -e "s|@sharedstatedir@|${sharedstatedir}|" \
+      -e "s|@localstatedir@|${localstatedir}|" \
+      -e "s|@libdir@|${libdir}|" \
+      -e "s|@includedir@|${includedir}|" \
+      -e "s|@oldincludedir@|${oldincludedir}|" \
+      -e "s|@infodir@|${infodir}|" \
+      -e "s|@mandir@|${mandir}|" \
+      -e "s|@CC@|${CC}|" \
+      -e "s|@CXX@|${CXX}|" \
+      -e "s|@CFLAGS@|${CFLAGS}|" \
+      -e "s|@CXXFLAGS@|${CXXFLAGS}|" \
+      -e "s|@config_shell@|${config_shell}|" \
+      -e "s|@srcdir@|${srcdir}|" \
+      -e "s/\f//" \
+      -e "s:@program_transform_name@:${program_transform_name}:" \
+      -e "s|@tooldir@|${tooldir}|" \
+      -e "s|@build_tooldir@|${tooldir}|" \
+      -e "s:@DEFAULT_YACC@:${DEFAULT_YACC}:" \
+      -e "s:@DEFAULT_LEX@:${DEFAULT_LEX}:" \
+      -e "s:@DEFAULT_M4@:${DEFAULT_M4}:" \
+          ./Makefile.tem > ${Makefile}
+
+  # If this is a Canadian Cross, preset the values of many more
+  # tools.
+  if [ "${build}" != "${host}" ]; then
+    for var in ${tools}; do
+      eval val=\$${var}
+      sed -e "/^${var}[        ]*=/{
+              :loop1
+              /\\\\$/ N
+              /\\\\$/ b loop1
+              s/\\\\\\n//g
+              s%^${var}[       ]*=.*$%${var} = ${val}%
+              }" ${Makefile} > ${Makefile}.tem
+      mv -f ${Makefile}.tem ${Makefile}
+    done
+  fi
+  # If this is NOT a Canadian Cross, preset the values of some more
+  # tools.  The above line should get merged into this, but this
+  # substitutes *once* where the above substitutes *globally*; that
+  # needs to be worked out before the merger.  The issue is in Makefile
+  # fragment elements (ick, yuck, ugh).
+  if [ "${build}" = "${host}" ]; then
+    for var in ${tools}; do
+      eval val=\$${var}
+      sed -e "s%@${var}@%${val}%" ${Makefile} > ${Makefile}.tem
+      mv -f ${Makefile}.tem ${Makefile}
+    done
+  fi
 
-        case "${target_makefile_frag}" in
-        "") ;;
-        *) using="${using} and \"${target_makefile_frag}\"" ;;
-        esac
+  # final copy now in ${Makefile}
 
-        case "${site_makefile_frag}" in
-        "") ;;
-        *) using="${using} and \"${site_makefile_frag}\"" ;;
-        esac
+else
+  echo "No Makefile.in found in ${srcdir}/., unable to configure" 1>&2
+fi
 
-        newusing=`echo "${using}" | sed 's/and/using/'`
-        using=${newusing}
-        echo "Created \"${Makefile}\" in" ${PWD=`${PWDCMD-pwd}`} ${using}
+rm -f ./Makefile.tem
 
-        . ${tmpfile}.pos
+case "${host_makefile_frag}" in
+  "") using= ;;
+  *) using="and \"${host_makefile_frag}\"" ;;
+esac
 
-        # describe the chosen configuration in config.status.
-        # Make that file a shellscript which will reestablish
-        # the same configuration.  Used in Makefiles to rebuild
-        # Makefiles.
+case "${target_makefile_frag}" in
+  "") ;;
+  *) using="${using} and \"${target_makefile_frag}\"" ;;
+esac
 
-        case "${norecursion}" in
-        "") arguments="${arguments} --norecursion" ;;
-        *) ;;
-        esac
+case "${site_makefile_frag}" in
+  "") ;;
+  *) using="${using} and \"${site_makefile_frag}\"" ;;
+esac
 
-        if [ ${subdir} = . ] ; then
-            echo "#!/bin/sh
-# ${NO_EDIT}
-# This directory was configured as follows:
-${progname}" ${arguments}  "
-# ${using}" > ${subdir}/config.new
-        else
-            echo "#!/bin/sh
-# ${NO_EDIT}
-# This directory was configured as follows:
-cd ${invsubdir}
-${progname}" ${arguments}  "
-# ${using}" > ${subdir}/config.new
-        fi
-        chmod a+x ${subdir}/config.new
-        if [ -r ${subdir}/config.back ] ; then
-                mv -f ${subdir}/config.back ${subdir}/config.status
-        fi
-       ${config_shell} ${moveifchange} ${subdir}/config.new ${subdir}/config.status
-        ;;
+newusing=`echo "${using}" | sed 's/and/using/'`
+using=${newusing}
+echo "Created \"${Makefile}\" in" ${PWD=`${PWDCMD-pwd}`} ${using}
 
-    *)  rm -f ${Makefile} ${subdir}/config.status ${links} ;;
-    esac
-done
+. ${tmpfile}.pos
 
-# If there are subdirectories, then recur.
-if [ -z "${norecursion}" ] && [ -n "${configdirs}" ] ; then 
-        for configdir in ${configdirs} ${extraconfigdirs} ; do
-
-               # If configdir contains ',' it is
-               # srcdir,builddir,target_alias
-               # These come from extraconfigdirs.
-               case ${configdir} in
-               *,*)
-                   eval `echo ${configdir} | sed -e 's/\([^,]*\),\([^,]*\),\(.*\)/cfg_dir=\1 bld_dir=\2 tgt_alias=\3/'`
-                   ;;
-               *)
-                   cfg_dir=${configdir}
-                   bld_dir=${configdir}
-                   tgt_alias=${target_alias}
-                   ;;
-               esac
+# describe the chosen configuration in config.status.
+# Make that file a shellscript which will reestablish
+# the same configuration.  Used in Makefiles to rebuild
+# Makefiles.
 
-                if [ -d ${srcdir}/${cfg_dir} ] ; then
-                        eval echo Configuring ${configdir}... ${redirect}
-                        case "${srcdir}" in
-                        ".") ;;
-                        *)
-                                if [ ! -d ./${bld_dir} ] ; then
-                                        if mkdir ./${bld_dir} ; then
-                                                true
-                                        else
-                                                echo '***' "${progname}: could not make ${PWD=`${PWDCMD-pwd}`}/${bld_dir}" 1>&2
-                                                exit 1
-                                        fi
-                                fi
-                                ;;
-                        esac
-
-                        POPDIR=${PWD=`${PWDCMD-pwd}`}
-                        cd ${bld_dir} 
-
-### figure out what to do with srcdir
-                        case "${srcdir}" in
-                        ".") newsrcdir=${srcdir} ;; # no -srcdir option.  We're building in place.
-                        /* | [A-Za-z]:[\\/]* ) # absolute path
-                                newsrcdir=${srcdir}/${cfg_dir}
-                                srcdiroption="--srcdir=${newsrcdir}"
-                                ;;
-                        *) # otherwise relative
-                                newsrcdir=../${srcdir}/${cfg_dir}
-                                srcdiroption="--srcdir=${newsrcdir}"
-                                ;;
-                        esac
-
-                       # Handle --cache-file=../XXX
-                       case "${cache_file}" in
-                       "") # empty
-                               ;;
-                       /* | [A-Za-z]:[\\/]* ) # absolute path
-                               cache_file_option="--cache-file=${cache_file}"
-                               ;;
-                       *) # relative path
-                               cache_file_option="--cache-file=../${cache_file}"
-                               ;;
-                       esac
-
-### check for guested configure, otherwise fix possibly relative progname
-                        if [ -f ${newsrcdir}/configure ] ; then
-                                recprog=${newsrcdir}/configure
-                        elif [ -f ${newsrcdir}/configure.in ] ; then
-                                case "${progname}" in
-                                /* | [A-Za-z]:[\\/]* )  recprog=${progname} ;;
-                                *)                      recprog=../${progname} ;;
-                                esac
-                       else
-                               eval echo No configuration information in ${cfg_dir} ${redirect}
-                               recprog=
-                        fi
-
-### The recursion line is here.
-                       if [ ! -z "${recprog}" ] ; then
-                               if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${tgt_alias} \
-                                       ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
-                                       ${srcdiroption} ${diroptions} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${floating_pointoption} ${cache_file_option} ${removing} ${other_options} ${redirect} ; then
-                                       true
-                               else
-                                       echo Configure in `${PWDCMD-pwd}` failed, exiting. 1>&2
-                                       exit 1
-                               fi
-                       fi
+case "${norecursion}" in
+  "") arguments="${arguments} --norecursion" ;;
+  *) ;;
+esac
 
-                        cd ${POPDIR}
-                fi
-        done
+echo "#!/bin/sh
+# ${NO_EDIT}
+# This directory was configured as follows:
+${progname}" ${arguments}  "
+# ${using}" > ./config.new
+chmod a+x ./config.new
+if [ -r ./config.back ] ; then
+  mv -f ./config.back ./config.status
 fi
+${config_shell} ${moveifchange} ./config.new ./config.status
 
 # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
 # and reset the trap handler.
index 21b86fde476f6c6336780f7388d5c8db464ecfbc..82cca6c2383a2aa8a4cc0540a8bd45fa81713ac8 100644 (file)
 
 ##############################################################################
 
+extra_host_args=
+# Define the trigger file to make sure configure will re-run whenever
+# the gcc version number changes.
+if [ "${with_gcc_version_trigger+set}" = set ]; then
+    gcc_version_trigger="$with_gcc_version_trigger"
+    gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
+else
+    # If gcc's sources are available, define the trigger file.
+    if [ -f ${topsrcdir}/gcc/version.c ] ; then
+       gcc_version_trigger=${topsrcdir}/gcc/version.c
+       gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
+       case "$arguments" in
+         *--with-gcc-version-trigger=$gcc_version_trigger* )
+           ;;
+         * )
+           # Add to all subconfigure arguments: build, host, and target.
+           arguments="--with-gcc-version-trigger=$gcc_version_trigger $arguments"
+           ;;
+       esac
+       # This will be redundant when we start all subconfigures from the Makefile.
+       extra_host_args="--with-gcc-version-trigger=$gcc_version_trigger $extra_host_args"
+    fi
+fi
+
 ### To add a new directory to the tree, first choose whether it is a target
 ### or a host dependent tool.  Then put it into the appropriate list
-### (library or tools, host or target), doing a dependency sort.  For
-### example, gdb requires that byacc (or bison) be built first, so it is in
-### the ${host_tools} list after byacc and bison.  
+### (library or tools, host or target), doing a dependency sort.
+
+# Subdirs will be configured in the order listed in build_configdirs, 
+# configdirs, or target_configdirs; see the serialization section below.
 
+# Dependency sorting is only needed when *configuration* must be done in 
+# a particular order.  In all cases a dependency should be specified in 
+# the Makefile, whether or not it's implicitly specified here.
+
+# Double entries in build_configdirs, configdirs, or target_configdirs may
+# cause circular dependencies and break everything horribly.
 
 # these libraries are used by various programs built for the host environment
 #
-host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk tclX itcl tix libgui zlib"
+host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk itcl tix libgui zlib"
 
 libstdcxx_version="target-libstdc++-v3"
 
 # these tools are built for the host environment
 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
 # know that we are building the simulator.
-host_tools="texinfo byacc flex bison binutils ld gas gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool grep diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils snavigator libtool gettext zip fastjar"
+# binutils, gas and ld appear in that order because it makes sense to run
+# "make check" in that particular order.
+host_tools="texinfo byacc flex bison binutils gas ld gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool grep diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils snavigator gettext zip fastjar"
 
 # libgcj represents the runtime libraries only used by gcj.
 libgcj="target-libffi \
@@ -123,7 +156,8 @@ if test ! -d ${target_subdir} ; then
   fi
 fi
 
-build_subdir=${build_alias}
+build_prefix=build-
+build_subdir=${build_prefix}${build_alias}
 
 if test x"${build_alias}" != x"${host}" ; then
   if test ! -d ${build_subdir} ; then
@@ -197,12 +231,8 @@ esac
 # Configure extra directories which are host specific
 
 case "${host}" in
-  i[3456]86-*-go32*)
-    configdirs="$configdirs dosrel" ;;
-  i[3456]86-*-mingw32*)
-    configdirs="$configdirs dosrel" ;;
   *-cygwin*)
-    configdirs="$configdirs libtermcap dosrel" ;;
+    configdirs="$configdirs libtermcap" ;;
 esac
 
 # Remove more programs from consideration, based on the host or 
@@ -238,6 +268,9 @@ case "${host}" in
   powerpc-*-beos*)
     noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline"
     ;;
+  *-*-darwin*)
+    noconfigdirs="$noconfigdirs tk itcl tix libgui"
+    ;;
 esac
 
 # Save it here so that, even in case of --enable-libgcj, if the Java
@@ -499,7 +532,7 @@ case "${target}" in
     noconfigdirs="$noconfigdirs target-libstdc++-v3"
     ;;
   mmix-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
+    noconfigdirs="$noconfigdirs ${libgcj} gdb libgloss"
     ;;
   mn10200-*-*)
     noconfigdirs="$noconfigdirs ${libgcj}"
@@ -525,7 +558,7 @@ case "${target}" in
     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
     ;;
   powerpc-*-darwin*)
-    noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb tk itcl tix libgui gprof ${libgcj}"
+    noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof ${libgcj}"
     ;;
   powerpc-*-eabi)
     noconfigdirs="$noconfigdirs ${libgcj}"
@@ -852,13 +885,6 @@ case "$host" in
   *msdosdjgpp*)
     enable_gdbtk=no ;;
 esac
-# Determine whether gdb needs tk/tcl or not.
-case "$enable_gdbtk" in
-  no)
-    GDB_TK="" ;;
-  *)
-    GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui" ;;
-esac
 
 copy_dirs=
 
@@ -1118,10 +1144,9 @@ if test -n "${host_makefile_frag}" ; then
   host_makefile_frag=mh-frag
 fi
 
+extra_arflags_for_target=
+extra_nmflags_for_target=
 case "${target}" in
-  v810*)
-    target_makefile_frag="config/mt-v810"
-    ;;
   i[3456]86-*-netware*)
     target_makefile_frag="config/mt-netware"
     ;;
@@ -1132,7 +1157,11 @@ case "${target}" in
     target_makefile_frag="config/mt-linux"
     ;;
   *-*-aix4.[3456789]* | *-*-aix[56789].*)
-    target_makefile_frag="config/mt-aix43"
+    # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
+    # commands to handle both 32-bit and 64-bit objects.  These flags are
+    # harmless if we're using GNU nm or ar.
+    extra_arflags_for_target=" -X32_64"
+    extra_nmflags_for_target=" -B -X32_64"
     ;;
   mips*-*-pe | sh*-*-pe | *arm-wince-pe)
     target_makefile_frag="config/mt-wince"
@@ -1194,21 +1223,21 @@ fi
 if test x${use_gnu_as} = x &&
    echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
   with_gnu_as=yes
-  withoptions="$withoptions --with-gnu-as"
+  extra_host_args="$extra_host_args --with-gnu-as"
 fi
 
 if test x${use_gnu_ld} = x &&
    echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
   with_gnu_ld=yes
-  withoptions="$withoptions --with-gnu-ld"
+  extra_host_args="$extra_host_args --with-gnu-ld"
 fi
 
-# If using newlib, add --with-newlib to the withoptions so that gcc/configure
+# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
 # can detect this case.
 
 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
   with_newlib=yes
-  withoptions="$withoptions --with-newlib"
+  extra_host_args="$extra_host_args --with-newlib"
 fi
 
 # We default to --with-shared on platforms where -fpic is meaningless.
@@ -1235,13 +1264,13 @@ if test x${with_stabs} = x ; then
   case "${target}" in
   mips*-*-irix6*o32)
     with_stabs=yes;
-    withoptions="${withoptions} --with-stabs"
+    extra_host_args="${extra_host_args} --with-stabs"
     ;;
   mips*-*-irix6*)
     ;;
   mips*-*-* | alpha*-*-osf*)
     with_stabs=yes;
-    withoptions="${withoptions} --with-stabs"
+    extra_host_args="${extra_host_args} --with-stabs"
     ;;
   esac
 fi
@@ -1250,10 +1279,13 @@ fi
 # them automatically.
 case "${host}" in
   hppa*64*-*-hpux11*)  
-    withoptions="$withoptions -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
+    extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
     ;;
 esac
 
+# This will go away when we start subconfigures from the Makefile.
+withoptions="${withoptions} ${extra_host_args}"
+
 # If we aren't going to be using gcc, see if we can extract a definition
 # of CC from the fragment.
 # Actually, use the 'pre-extracted' version above.
@@ -1345,6 +1377,107 @@ sed -e "s/@RPATH_ENVVAR@/${RPATH_ENVVAR}/" Makefile > Makefile.tem
 rm -f Makefile
 mv -f Makefile.tem Makefile
 
+# Record target_configdirs and the configure arguments for target and
+# build configuration in Makefile.
+target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
+
+# This is the final value for target_configdirs.  configdirs already
+# has its final value.  It's time to create some lists of valid targets.
+
+all_build_modules=
+configure_build_modules=
+# Only make build modules if build != host.
+# This should be done more generally, but at the moment it doesn't matter.
+if test ${host_alias} != ${build_alias} ; then
+  all_build_modules=all-build-libiberty
+  configure_build_modules=configure-build-libiberty
+fi
+
+all_host_modules=
+check_host_modules=
+install_host_modules=
+configure_host_modules=
+for module in ${configdirs} ; do
+  all_host_modules="${all_host_modules} all-${module}"
+  check_host_modules="${check_host_modules} check-${module}"
+  install_host_modules="${install_host_modules} install-${module}"
+  configure_host_modules="${configure_host_modules} configure-${module}"
+done
+install_host_modules_nogcc=`echo "${install_host_modules}" | sed -e 's/install-gcc//g'`
+
+all_target_modules=
+check_target_modules=
+install_target_modules=
+configure_target_modules=
+for module in ${target_configdirs} ; do
+  all_target_modules="${all_target_modules} all-target-${module}"
+  check_target_modules="${check_target_modules} check-target-${module}"
+  install_target_modules="${install_target_modules} install-target-${module}"
+  configure_target_modules="${configure_target_modules} configure-target-${module}"
+done
+
+# Determine whether gdb needs tk/tcl or not.
+# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
+# and in that case we want gdb to be built without tk.  Ugh!
+# In fact I believe gdb is the *only* package directly dependent on tk,
+# so we should be able to put the 'maybe's in unconditionally and
+# leave out the maybe dependencies when enable_gdbtk is false.  I'm not
+# 100% sure that that's safe though.
+case "$enable_gdbtk" in
+  no)
+    GDB_TK="" ;;
+  *)
+    GDB_TK="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui" ;;
+esac
+
+# Create the 'maybe dependencies'.  This uses a temporary file.
+rm -f maybedep.tmp
+for item in ${all_build_modules} ${all_host_modules} ${all_target_modules} \
+       ${install_host_modules} ${install_target_modules} \
+       ${configure_build_modules} ${configure_host_modules} ${configure_target_modules} \
+       ; do
+  echo "maybe-${item}: ${item}" >> maybedep.tmp
+done
+sed -e '/@maybe_dependencies@/r maybedep.tmp' \
+    -e 's/@maybe_dependencies@//' Makefile > Makefile.tem
+rm -f Makefile
+mv -f Makefile.tem Makefile
+rm -f maybedep.tmp
+
+# Create the serialization dependencies.  This uses a temporary file.
+
+# These force 'configure's to be done one at a time, to avoid problems
+# with contention over a shared config.cache.
+rm -f serdep.tmp
+olditem=
+for item in ${build_configdirs} ; do
+  case ${olditem} in
+    "") ;;
+    *) echo "\$(BUILD_SUBDIR)/${item}/Makefile: \$(BUILD_SUBDIR)/${olditem}/Makefile" >> serdep.tmp ;;
+  esac
+  olditem=${item}
+done
+olditem=
+for item in ${configdirs} ; do
+  case ${olditem} in
+    "") ;;
+    *) echo "${item}/Makefile: ${olditem}/Makefile" >> serdep.tmp ;;
+  esac
+  olditem=${item}
+done
+olditem=
+for item in ${target_configdirs} ; do
+  case ${olditem} in
+    "") ;;
+    *) echo "\$(TARGET_SUBDIR)/${item}/Makefile: \$(TARGET_SUBDIR)/${olditem}/Makefile" >> serdep.tmp ;;
+  esac
+  olditem=${item}
+done
+sed -e '/@serialization_dependencies@/r serdep.tmp' \
+    -e 's/@serialization_dependencies@//' Makefile > Makefile.tem
+rm -f Makefile
+mv -f Makefile.tem Makefile
+rm -f serdep.tmp
 
 # Base args.  Strip norecursion, cache-file, srcdir, host, build, target.
 # These are the ones we might not want to pass down to subconfigures.
@@ -1361,9 +1494,18 @@ baseargs=`echo "${arguments}" | \
 # desired.
 buildargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}"
 
-# Record target_configdirs and the configure arguments for target and
-# build configuration in Makefile.
-target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
+# For host modules, accept cache file option, or specification as blank.
+case "${cache_file}" in
+"") # empty
+  cache_file_option="" ;;
+/* | [A-Za-z]:[\\/]* ) # absolute path
+  cache_file_option="--cache-file=${cache_file}" ;;
+*) # relative path
+  cache_file_option="--cache-file=../${cache_file}" ;;
+esac
+
+hostargs="${cache_file_option} ${buildopt} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}"
+
 targargs=${baseargs}
 
 # Passing a --with-cross-host argument lets the target libraries know
@@ -1515,7 +1657,8 @@ case $GCJ_FOR_TARGET in
 esac
 
 # Don't use libstdc++-v3's flags to configure/build itself.
-libstdcxx_flags='`case $$dir in libstdc++-v3 | libjava) ;; *) test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
+libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
+raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
 
 if test "x${CXX_FOR_TARGET+set}" = xset; then
   :
@@ -1523,17 +1666,28 @@ elif test -d ${srcdir}/gcc; then
   # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead
   # of g++ for linking C++ or Java, because g++ has -shared-libgcc by
   # default whereas gcc does not.
-  CXX_FOR_TARGET='$$r/gcc/`case $$dir in libstdc++-v3 | libjava) echo xgcc -shared-libgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
+  # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for
+  # all other cases.
+  CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
+  RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags
 elif test "$host" = "$target"; then
   CXX_FOR_TARGET='$(CXX)'
+  RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
 else
   CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}`
+  RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
 fi
 case $CXX_FOR_TARGET in
 *' $(FLAGS_FOR_TARGET)') ;;
 *) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
 esac
+case $RAW_CXX_FOR_TARGET in
+*' $(FLAGS_FOR_TARGET)') ;;
+*) RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
+esac
+
 qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
+qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
 
 # We want to defer the evaluation of `cmd`s and shell variables in
 # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
@@ -1542,27 +1696,47 @@ qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
 # can be expanded by the nested make as shell variables, not as make
 # macros.
 qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
+qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
+
+# BASE_CC_FOR_TARGET is the actual program file of CC_FOR_TARGET,
+# for use in dependencies.  Replace $$r with a relative
+# path if it's present.
+set dummy $CC_FOR_TARGET; cc_for_target_first_word=$2
+BASE_CC_FOR_TARGET=`echo "$cc_for_target_first_word" | sed -e 's,[$][$]r,.,'`
 
 sedtemp=sed.$$
 cat >$sedtemp <<EOF
+s%@GDB_TK@%${GDB_TK}%
+s%@configure_build_modules@%${configure_build_modules}%
+s%@all_build_modules@%${all_build_modules}%
+s%@configure_host_modules@%${configure_host_modules}%
+s%@all_host_modules@%${all_host_modules}%
+s%@check_host_modules@%${check_host_modules}%
+s%@install_host_modules@%${install_host_modules}%
+s%@install_host_modules_nogcc@%${install_host_modules_nogcc}%
+s%@configure_target_modules@%${configure_target_modules}%
+s%@all_target_modules@%${all_target_modules}%
+s%@check_target_modules@%${check_target_modules}%
+s%@install_target_modules@%${install_target_modules}%
 s:@target_configdirs@:${target_configdirs}:
 s%@target_configargs@%${targargs}%
 s%@FLAGS_FOR_TARGET@%${FLAGS_FOR_TARGET}%
 s%@CC_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}%
+s%@BASE_CC_FOR_TARGET@%${BASE_CC_FOR_TARGET}%
 s%@GCJ_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}%
 s%@CXX_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}%
+s%@RAW_CXX_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}%
 s%@CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}%
+s%@RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}%
 s%@target_subdir@%${target_subdir}%
 s%@build_subdir@%${build_subdir}%
 s%@build_configargs@%${buildargs}%
 s%@gxx_include_dir@%${gxx_include_dir}%
+s%@libstdcxx_incdir@%${libstdcxx_incdir}%
+s%@host_configargs@%${hostargs}%
 EOF
 sed -f $sedtemp Makefile > Makefile.tem
 rm -f Makefile $sedtemp
 mv -f Makefile.tem Makefile
 
 #
-# Local Variables:
-# fill-column: 131
-# End:
-#
index a6b11ee2a92b8aa9bdb64266368808060b70a9e3..ab12afcc74fbfaf9b086bf758fbc3a62c7159d8c 100644 (file)
+2002-12-23  David Carlton  <carlton@math.stanford.edu>
+
+       * Merge from mainline; tag is carlton_dictionary-20021223-merge.
+
+2002-12-23  Daniel Jacobowitz  <drow@mvista.com>
+
+       * config/pa/nm-hppab.h: Delete duplicate CANNOT_STORE_REGISTER decl.
+       * config/pa/nm-hppao.h: Delete duplicate CANNOT_STORE_REGISTER decl.
+
+2002-12-23  Rodney Brown  <rbrown64@csc.com.au>
+
+       * config/pa/nm-hppah.h: Delete duplicate CANNOT_STORE_REGISTER decl.
+
+2002-12-23  David Carlton  <carlton@math.stanford.edu>
+
+       * symtab.c (lookup_symbol_aux): Delete 'force_return' variable.
+       (lookup_symbol_aux_minsyms): Delete 'force_return' argument.
+       (search_symbols): Call lookup_symbol_aux_minsyms to find debugging
+       information associated to a minsym, not lookup_symbol.
+
+2002-12-21  Mark Kettenis  <kettenis@gnu.org>
+
+       * x86-64-tdep.h (x86_64_init_abi): New prototype.
+       * x86-64-tdep.c (i386_fp_regnum_p): Remove function.
+       (x86_64_init_abi): Make non-static.  Set number of pseudo
+       registers to 0.
+       (x86_64_gdbarch_init): Remove function.
+       (_initialize_x86_64_tdep): Renove register_gdbarch_init call.
+       Remove code dealing with dissambly.
+       * x86-64-linux-tdep.c (x86_64_linux_init_abi): New function.
+       (_initialize_x86_64_linux_tdep): New function.
+       * config/i386/x86-64linux.mt (TDEPFILES): Add i386-tdep.o and
+       i386-tdep.o.
+
+2002-12-14  Mark Kettenis  <kettenis@gnu.org>
+
+       * osabi.c: Include "gdb_assert.h" and "gdb_string.h".
+       (struct gdb_osabi_handler): Remove member `arch'.  Add member
+       `arch_info'.
+       (gdbarch_register_osabi): Add new argument `machine'.  Use ot to
+       construct a `struct bfd_arch_info' and store it in the `struct
+       gdb_osabi_handler' that is created.
+       (gdbarch_init_osabi): Check for compatibility based on machine
+       type and architecture.
+       * osabi.h (gdbarch_register_osabi): Adjust prototype and update
+       comment.
+       * alpha-linux-tdep.c (_initialize_alpha_linux_tdep): Add 0 as
+       second argument in call to gdbarch_register_osabi.
+       * alpha-osf1-tdep.c (_initialize_alpha_osf1_tdep): Likewise.
+       * alphafbsd-tdep.c (_initialize_alphafbsd_tdep): Likewise.
+       * alphanbsd-tdep.c (_initialize_alphanbsd_tdep): Likewise.
+       * arm-linux-tdep.c (_initialize_arm_linux_tdep): Likewise.
+       * arm-tdep.c (_initialize_arm_tdep): Likewise.
+       * armnbsd-tdep.c (_initialize_armnbsd_tdep): Likewise.
+       * hppa-hpux-tdep.c (_initialize_hppa_hpux_tdep): Likewise.
+       * i386-interix-tdep.c (_initialize_i386_interix_tdep): Likewise.
+       * i386-linux-tdep.c (_initialize_i386_linux_tdep): Likewise.
+       * i386-sol2-tdep.c (_initialize_i386_sol2_tdep): Likewise.
+       * i386-tdep.c (_initialize_i386_tdep): Likewise.
+       * i386bsd-tdep.c (_initialize_i386bsd_tdep): Likewise.
+       * i386gnu-tdep.c (_initialize_i386gnu_tdep): Likewise.
+       * i386ly-tdep.c (_initialize_i386lynx_tdep): Renamed from
+       _initialize_i386bsd_tdep and updated likewise.
+       * i386nbsd-tdep.c (_initialize_i386nbsd_tdep): Likewise.
+       * i386obsd-tdep.c (_initialize_i386obsd_tdep): Likewise.
+       * mips-irix-tdep.c (_initialize_mips_irix_tdep): Likewise.
+       * mips-linux-tdep.c (_initialize_mips_linux_tdep): Likewise.
+       * mipsnbsd-tdep.c (_initialize_mipsnbsd__tdep): Likewise.
+       * ns32knbsd-tdep.c (_initialize_ns32kmnsd_tdep): Likewise.
+       * ppc-linux-tdep.c (_initialize_ppc_linux_tdep): Likewise.
+       * ppcnbsd-tdep.c (_initialize_ppcnbsd_tdep): Likewise.
+       * shnbsd-tdep.c (_initialize_shnbsd_tdep): Likewise.
+       * sparcnbsd-tdep.c (_initialize_sparcnbsd_tdep): Likewise.
+
+2002-12-20  Kevin Buettner  <kevinb@redhat.com>
+
+       * solib-svr4.c (elf_locate_base): Fix sizeof() related bug.  Add
+       DT_MIPS_RLD_MAP case for 64-bit targets.
+
+2002-12-20  Kevin Buettner  <kevinb@redhat.com>
+
+       * mips-tdep.c (heuristic_proc_desc): Clear memory associated with
+       ``temp_saved_regs'', not the pointer or other storage contiguous
+       to this pointer.
+
+2002-12-20  Kevin Buettner  <kevinb@redhat.com>
+
+       * Makefile.in (mips-linux-tdep.o): Add $(osabi_h) and $(gdb_string_h).
+       * config/mips/tm-linux.h (mips_linux_svr4_fetch_link_map_offsets)
+       (mips_linux_get_longjmp_target): Delete declarations.
+       (SVR4_FETCH_LINK_MAP_OFFSETS, GET_LONGJMP_TARGET)
+       (MIPS_LINUX_JB_ELEMENT_SIZE, MIPS_LINUX_JB_PC): Delete definitions.
+       * mips-linux-tdep.c (osabi.h, gdb_string.h): Include.
+       (MIPS_LINUX_JB_ELEMENT_SIZE, MIPS_LINUX_JB_PC): Define.
+       (mips_linux_get_longjmp_target)
+       (mips_linux_svr4_fetch_link_map_offsets): Make static.
+       (mips_linux_init_abi): New function.
+       (_initialize_mips_linux_tdep): Register mips_linux_init_abi().
+
+2002-12-19  Keith Seitz  <keiths@redhat.com>
+
+       patch committed by Elena Zannoni  <ezannoni@redhat.com>
+       * thread.c (do_captured_list_thread_ids): Call prune_threads and
+       target_find_new_threads. Fix for PR mi/669.
+
+2002-12-19  David Carlton  <carlton@math.stanford.edu>
+
+       * linespec.c (decode_line_1): Move code into decode_all_digits.
+       (decode_all_digits): New function.
+
+2002-12-19  Kevin Buettner  <kevinb@redhat.com>
+
+       * exec.c (print_section_info): Select a format string to use with
+       local_hex_string_custom() based upon the value of TARGET_ADDR_BIT.
+
+2002-12-18  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.c (deprecated_update_current_frame_pc_hack): Replace 
+       deprecated_update_current_frame_pc_hack.
+       (deprecated_update_frame_base_hack): New function.
+       * frame.h (deprecated_update_frame_pc_hack): Replace
+       (deprecated_update_frame_base_hack): Declare.
+       * infrun.c (normal_stop): Update.
+
+2002-12-18  Andrew Cagney  <ac131313@redhat.com>
+
+       * rs6000-tdep.c (rs6000_init_extra_frame_info): Use
+       frame_extra_info_zalloc.
+       (rs6000_frame_args_address): Use get_frame_extra_info.
+       (frame_get_saved_regs): Use get_frame_saved_regs.
+       (frame_initial_stack_address): Use get_frame_saved_regs and
+       get_frame_extra_info.
+       (frame_initial_stack_address): Use get_frame_extra_info.
+
+2002-12-17  Kevin Buettner  <kevinb@redhat.com>
+
+       * dve3900-rom.c (r3900_regnames): Don't use NUM_REGS to determine
+       array size.
+       (fetch_bitmapped_register, store_bitmapped_register): Add bounds
+       checks for r3900_regnames[].
+
+2002-12-17  Richard Earnshaw  <rearnsha@arm.com>
+
+       * armnbsd-tdep.c (ARM_NBSD_JB_PC): Renamed from JB_PC.
+       All uses changed
+       (ARM_NBSD_JB_ELELMENT_SIZE): Similarly.
+
+2002-12-17  David Carlton  <carlton@math.stanford.edu>
+
+       * symtab.c (lookup_partial_symbol): Don't search past the end of
+       the partial symbols.
+
+2002-12-17  Andrew Cagney  <ac131313@redhat.com>
+
+       * stack.c (frame_info): Use get_frame_saved_regs.
+       * breakpoint.c (until_break_command): Use get_frame_pc.
+
+2002-12-16  Kevin Buettner  <kevinb@redhat.com>
+
+       * buildsym.c (block_end_complaint, anon_block_end_complaint)
+       (innerblock_complaint, innerblock_anon_complaint)
+       (blockvector_complaint): Delete deprecated complaint structs.
+       (finish_block, make_blockvector, end_symtab): Replace calls
+       to complain() with calls to complaint().
+       * coffread.c (ef_complaint, ef_stack_complaint, eb_stack_complaint)
+       (bf_no_aux_complaint, ef_no_aux_complaint, lineno_complaint)
+       (unexpected_type_complaint, bad_sclass_complaint)
+       (misordered_blocks_complaint, tagndx_bad_complaint, eb_complaint):
+       Delete deprecated complaint structs.
+       (coff_symtab_read, enter_linenos, decode_type, decode_base_type):
+       Replace calls to complain() with calls to complaint().
+       * dbxread.c (lbrac_complaint, string_table_offset_complaint)
+       (unknown_symtype_complaint, unknown_symchar_complaint)
+       (lbrac_rbrac_complaint, lbrac_unmatched_complaint)
+       (lbrac_mismatch_complaint, repeated_header_complaint)
+       (unclaimed_bincl_complaint, discarding_local_symbols_complaint):
+       Delete deprecated complaint structs.
+       (unknown_symtype_complaint, lbrac_mismatch_complaint)
+       (repeated_header_complaint)
+       (function_outside_compiliation_unit_complaint): New functions.
+       (add_old_header_file, find_corresponding_bincl_psymtab)
+       (set_namestring, find_stab_function_addr, read_dbx_symtab)
+       (process_one_symbol): Replace calls to complain() with, possibly
+       indirect, calls to complaint().
+       * dwarfread.c (no_bfd_get_N, malformed_die, bad_die_ref)
+       (unknown_attribute_form, unknown_attribute_length)
+       (unexpected_fund_type, unknown_type_modifier, volatile_ignored)
+       (const_ignored, botched_modified_type, op_deref2, op_deref4)
+       (basereg_not_handled, dup_user_type_allocation)
+       (dup_user_type_definition, missing_tag, bad_array_element_type)
+       (subscript_data_items, unhandled_array_subscript_format)
+       (unknown_array_subscript_format, not_row_major)
+       (missing_at_name): Delete deprecated complaint structs.
+       (bad_die_ref_complaint, unknown_attribute_form_complaint)
+       (dup_user_type_definition_complaint)
+       (bad_array_element_type_complaint): New functions.
+       (lookup_utype, alloc_utype, struct_type, decode_array_element_type)
+       (decode_subscript_data_item, dwarf_read_array_type)
+       (read_tag_string_type, read_subroutine_type, read_func_scope)
+       (locval, scan_partial_symbols, decode_modified_type)
+       (decode_func_type, basicdieinfo, completeddieinfo, target_to_host)
+       (attribute_size): Replace calls to complain() with, possibly
+       indirect, calls to complaint().
+       * elfread.c (section_info_complaint, section_info_dup_complaint)
+       (stab_info_mismatch_complaint, stab_info_questionable_complaint):
+       Delete deprecated complaint structs.
+       (elf_symtab_read, elfstab_offset_sections): Replace calls to
+       complain() with calls to complaint().
+       * gdbtypes.c (stub_noname_complaint): Delete deprecated complaint
+       struct.
+       (stub_noname_complaint): New function.
+       (check_typedef, add_mangled_type): Replace calls to complain()
+       with calls to complaint().
+       * hpread.c (string_table_offset_complaint, lbrac_unmatched_complaint)
+       (lbrac_mismatch_complaint, hpread_unhandled_end_common_complaint)
+       (hpread_unhandled_type_complaint, hpread_struct_complaint)
+       (hpread_array_complaint, hpread_type_lookup_complaint)
+       (hpread_unexpected_end_complaint, hpread_tagdef_complaint)
+       (hpread_unhandled_common_complaint)
+       (hpread_unhandled_blockdata_complaint): Delete deprecated complaint
+       struct definitions and declarations.
+       (lbrac_unmatched_complaint, lbrac_mismatch_complaint): New functions.
+       (SET_NAMESTRING, hpread_type_lookup, hpread_process_one_debug_symbol):
+       Replace calls to complain() with, possibly indirect, calls to
+       complaint().
+       * macrotab.c (macro_include, check_for_redefinition, macro_undef):
+       Likewise.
+       * mdebugread.c (bad_file_number_complaint, index_complaint)
+       (aux_index_complaint, block_index_complaint)
+       (unknown_ext_complaint, unknown_sym_complaint)
+       (unknown_st_complaint, block_overflow_complaint)
+       (basic_type_complaint, unknown_type_qual_complaint)
+       (array_index_type_complaint, bad_tag_guess_complaint)
+       (block_member_complaint, stEnd_complaint)
+       (unknown_mdebug_symtype_complaint, stab_unknown_complaint)
+       (pdr_for_nonsymbol_complaint, pdr_static_symbol_complaint)
+       (bad_setjmp_pdr_complaint, bad_fbitfield_complaint)
+       (bad_continued_complaint, bad_rfd_entry_complaint)
+       (unexpected_type_code_complaint, unable_to_cross_ref_complaint)
+       (bad_indirect_xref_complaint, illegal_forward_tq0_complaint)
+       (illegal_forward_bt_complaint, bad_linetable_guess_complaint)
+       (bad_ext_ifd_complaint, bad_ext_iss_complaint): Delete deprecated
+       complaint structs.
+       (index_complaint, unknown_ext_complaint, basic_type_complaint)
+       (bad_tag_guess_complaint, bad_rfd_entry_complaint)
+       (unexpected_type_code_complaint)
+       (function_outside_compilation_unit_complaint): New functions.
+       (parse_symbol, parse_type, upgrade_type, parse_procedure)
+       (parse_partial_symbols, psymtab_to_symtab_1, cross_ref, add_symbol):
+       Replace calls to complain() with, possibly indirect calls to
+       complaint().
+       * objc-lang.c (noclass_lookup_complaint, nosel_lookup_complaint):
+       Delete deprecated complaint structs.
+       (lookup__objc_class, lookup_child_selector): Replace complain()
+       with complaint().
+       * remote-vx.c (cant_contact_target): Delete deprecated complaint
+       struct.
+       (vx_lookup_symbol): Replace complain() with complaint().
+       * stabsread.c (invalid_cpp_abbrev_complaint)
+       (invalid_cpp_type_complaint, member_fn_complaint)
+       (const_vol_complaint, error_type_complaint)
+       (invalid_member_complaint, range_type_base_complaint)
+       (reg_value_complaint, vtbl_notfound_complaint)
+       (unrecognized_cplus_name_complaint, rs6000_builtin_complaint)
+       (unresolved_sym_chain_complaint, stabs_general_complaint)
+       (lrs_general_complaint, multiply_defined_struct): Delete
+       deprecated complaint structs.
+       (invalid_cpp_abbrev_complaint, ref_value_complaint)
+       (stabs_general_complaint, lrs_general_complaint)
+       (msg_unknown_complaint): New functions.
+       (dbx_lookup_type, read_cfront_baseclasses)
+       (read_cfront_member_functions, resolve_symbol_reference)
+       (define_symbol, resolve_live_range, add_live_range, read_type)
+       (rs6000_builtin_type, read_member_functions, read_cpp_abbrev)
+       (read_one_struct_field, read_baseclasses, read_tilde_fields)
+       (read_cfront_static_fields, attach_fields_to_type)
+       (complain_about_struct_wipeout, read_range_type)
+       (common_block_start, common_block_end, cleanup_undefined_types)
+       (scan_file_globals): Replace complain() with complaint().
+       * stabsread.h (unknown_symtype_complaint, unknown_symchar_complaint):
+       Delete deprecated complaint struct declarations.
+       * xcoffread.c (storclass_complaint, bf_notfound_complaint)
+       (ef_complaint, eb_complaint): Delete deprecated complaint structs.
+       (bf_not_found_complaint, ef_complaint, eb_complaint)
+       (function_outside_compilation_unit_complaint): New functions.
+       (record_include_begin, record_include_end, enter_line_range)
+       (xcoff_next_symbol_text, read_xcoff_symtab, process_xcoff_symbol)
+       (read_symbol, read_symbol_lineno, scan_xcoff_symtab) Replace
+       complain() with complaint().
+
+2002-12-16  Andrew Cagney  <ac131313@redhat.com>
+
+       * config/arc/arc.mt, config/arc/tm-arc.h: Delete.
+       * config/d30v/d30v.mt, config/d30v/tm-d30v.h: Delete.
+       * config/fr30/fr30.mt, config/fr30/tm-fr30.h: Delete.
+       * config/i386/i386aix.mh, config/i386/i386aix.mt: Delete.
+       * config/i386/i386m3.mh, config/i386/i386m3.mt: Delete.
+       * config/i386/i386mach.mh, config/i386/i386os9k.mt: Delete.
+       * config/i386/nm-i386aix.h, config/i386/nm-i386mach.h: Delete.
+       * config/i386/nm-m3.h, config/i386/tm-i386aix.h: Delete.
+       * config/i386/tm-i386m3.h, config/i386/tm-i386mk.h: Delete.
+       * config/i386/xm-i386aix.h, config/i386/xm-i386m3.h: Delete.
+       * config/i386/xm-i386mach.h, config/i386/xm-i386mk.h: Delete.
+       * config/i960/mon960.mt, config/i960/nindy960.mt: Delete.
+       * config/i960/tm-i960.h, config/i960/tm-mon960.h: Delete.
+       * config/i960/tm-nindy960.h, config/i960/tm-vx960.h: Delete.
+       * config/i960/vxworks960.mt, config/m68k/apollo68b.mh: Delete.
+       * config/m68k/apollo68b.mt, config/m68k/apollo68v.mh: Delete.
+       * config/m68k/hp300bsd.mh, config/m68k/hp300bsd.mt: Delete.
+       * config/m68k/hp300hpux.mh, config/m68k/hp300hpux.mt: Delete.
+       * config/m88k/delta88.mh, config/m88k/delta88.mt: Delete.
+       * config/m88k/delta88v4.mh, config/m88k/delta88v4.mt: Delete.
+       * config/m88k/m88k.mh, config/m88k/m88k.mt: Delete.
+       * config/m88k/nm-delta88v4.h, config/m88k/nm-m88k.h: Delete.
+       * config/m88k/tm-delta88.h, config/m88k/tm-delta88v4.h: Delete.
+       * config/m88k/tm-m88k.h, config/m88k/xm-delta88.h: Delete.
+       * config/m88k/xm-dgux.h: Delete.
+       * fr30-tdep.c, i386aix-nat.c, i386m3-nat.c: Delete.
+       * i386mach-nat.c, i960-tdep.c, m88k-nat.c: Delete.
+       * os9kread.c, remote-bug.c, remote-nindy.c: Delete.
+       * remote-nrom.c, remote-os9k.c, remote-vx960.c: Delete.
+       * d30v-tdep.c, arc-tdep.c, cxux-nat.c, dst.h, dstread.c: Delete.
+       * ch-exp.c, ch-lang.c, ch-lang.h, ch-typeprint.c: Delete.
+       * ch-valprint.c: Delete.
+       
+2002-12-15  Daniel Jacobowitz  <drow@mvista.com>
+
+       * infrun.c (handle_inferior_event): Rearrange code to resume if
+       no catchpoint triggers for an event.
+
+2002-12-15  Daniel Jacobowitz  <drow@mvista.com>
+
+       * infrun.c (handle_inferior_event): Merge TARGET_WAITKIND_FORKED
+       and TARGET_WAITKIND_VFORKED cases.
+
+2002-12-15  Daniel Jacobowitz  <drow@mvista.com>
+
+       * infrun.c (handle_inferior_event): Assume that catchpoints
+       are not affected by DECR_PC_AFTER_BREAK.
+
+2002-12-15  Daniel Jacobowitz  <drow@mvista.com>
+
+       * target.c (update_current_target): Don't inherit DONT_USE.
+       * target.h (struct target_ops): Remove DONT_USE.
+       (target_next): Remove macro.
+
+2002-12-15  Mark Kettenis  <kettenis@gnu.org>
+
+       * ui-out.c (MAX_UI_OUT_LEVELS): Raise to 6.  Fixes PR cli/654.
+
+2002-12-14  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm-tdep.c (convert_from_extended): New argument to hold the
+       type of floating point result we want to convert to.  Make input 
+       argument const.  Fix all callers.
+       (convert_to_extended): Similarly.
+       (arm_extract_return_value): Now takes a regcache argument.  Change
+       code to use regcache accessor functions.  Correctly extract 
+       smaller-than-word results on big-endian machines.
+       (arm_store_return_value): Now takes a regcache argument.  Change
+       code to use regcache accessor functions.  Correctly zero/sign extend
+       smaller than word results before storing into r0.
+       (arm_gdbarch_init): Register new-style extract_return_value and
+       store_return_value functions.
+
+2002-12-13  Michael Snyder  <msnyder@to-limbo.toronto.redhat.com>
+
+       * thread-db.c (thread_from_lwp): Uniquify error msg.
+       (lwp_from_thread): Ditto.
+       (check_event): Ditto.
+       (find_new_threads_callback): Ditto.
+       (thread_db_pid_to_str): Ditto.
+
+2002-12-13  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.h (get_frame_saved_regs): Declare.
+       (frame_saved_regs_zalloc): Change return type to CORE_ADDR
+       pointer.
+       * frame.c (get_frame_saved_regs): New function.
+       (frame_saved_regs_zalloc): Return the allocated saved_regs.
+
+2002-12-13  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.c (deprecated_update_current_frame_pc_hack): New
+       function.
+       * frame.h (deprecated_update_current_frame_pc_hack): Declare.
+       * infrun.c (normal_stop): Use said function instead of directly
+       modifying the frame's PC.
+       
+2002-12-13  Alexandre Oliva  <aoliva@redhat.com>
+
+       * frame.h (frame_id_unwind_ftype): Fix typo in return type.
+
+2002-12-13  Kevin Buettner  <kevinb@redhat.com>
+
+       * config/mips/tm-mips.h, config/mips/tm-irix3.h,
+       config/mips/tm-irix6.h (NUM_REGS): Delete.
+       * mips-tdep.c (mips_gdbarch_init): Call set_gdbarch_num_regs().
+       (temp_saved_regs): Declare as a pointer rather than an array.
+       (mips32_heuristic_proc_desc, heuristic_proc_desc): Make sure
+       that ``temp_saved_regs'' has storage allocated to it and that
+       it's the correct size.
+
+2002-12-13  Jeff Johnston  <jjohnstn@redhat.com>
+
+       * defs.h (init_last_source_visited): New prototype.
+       (add_path): Ditto.
+       * source.c (add_path): New function that adds to a specified path.
+       (mod_path): Change to call add_path.
+       (init_last_source_visited): New function to allow interfaces to
+       initialize static variable: last_source_visited.  Part of fix
+       for PR gdb/741.
+       * Makefile.in: Add support for mi/mi-cmd-env.c.
+
+2002-12-13  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.h (frame_id_unwind): Declare.
+       (struct frame_info): Add fields id_unwind, id_unwind_cache_p and
+       id_unwind_cache.
+       (frame_id_unwind_ftype): Declare.
+       * frame.c (frame_id_unwind): New function.
+       (set_unwind_by_pc): Add unwind_id parameter.  Initialized.
+       (create_new_frame, get_prev_frame): Pass id_unwind to
+       set_unwind_by_pc.
+       (frame_saved_regs_id_unwind): New function.
+       (frame_saved_regs_id_unwind): New function.
+       * dummy-frame.c (dummy_frame_id_unwind): New function.
+       (struct dummy_frame): Add field id.
+       (generic_push_dummy_frame): Initialize `id'.
+       * dummy-frame.h (dummy_frame_id_unwind): Declare.
+
+2002-12-13  Andrew Cagney  <ac131313@redhat.com>
+
+       * infcmd.c (run_stack_dummy): Create a frame ID directly and then
+       pass that to set_momentary_breakpoint.  Move comments to where they
+       belong.
+       * frame.h (set_current_frame): Delete declaration.
+       * frame.c (set_current_frame): Delete function.
+
+2002-12-13  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.c (frame_extra_info_zalloc): New function.
+       * frame.h (frame_extra_info_zalloc): Declare.
+
+2002-12-13  Joel Brobecker  <brobecker@gnat.com>
+
+       * hppa-tdep.c (hppa_pop_frame): Fix a compilation error introduced
+       in the previous prototype change to set_momentary_breakpoint.
+
+2002-12-12  Daniel Jacobowitz  <drow@mvista.com>
+
+       * infrun.c (pending_follow): Remove saw_parent_fork, saw_child_fork,
+       and saw_child_exec.
+       (follow_fork, init_wait_for_inferior, handle_inferior_event): Remove
+       references to saw_parent_fork, saw_child_fork, and saw_child_exec.
+       (stop_stepping): Remove outdated check for child vfork events.
+
+2002-12-12  Andrew Cagney  <ac131313@redhat.com>
+
+       * GDB 5.3 released from gdb_5_3-branch.
+
+2002-12-11  Daniel Jacobowitz  <drow@mvista.com>
+
+       * corelow.c (init_core_ops): Delete references to to_require_attach
+       and to_require_detach.
+       * exec.c (init_exec_ops): Likewise.
+       * hppah-nat.c (child_follow_fork): Call hppa_require_attach and
+       hppa_require_detach directly.
+       * inferior.h (REQUIRE_ATTACH, REQUIRE_DETACH): Delete.
+       * inftarg.c (child_detach): Remove.
+       (child_detach_from_process): Rename to child_detach, remove
+       after_fork argument.
+       (child_attach): Remove.
+       (child_attach_to_process): Rename to child_attach, remove after_fork
+       argument.
+       (init_child_ops): Delete references to to_require_attach
+       and to_require_detach.
+       * infttrace.c (hppa_require_attach): Update comment.
+       * target.c (cleanup_target, update_current_target)
+       (init_dummy_target, setup_target_debug): Delete references to
+       to_require_attach and to_require_detach.
+       (find_default_require_detach, find_default_require_attach)
+       (debug_to_require_attach, debug_to_require_detach): Remove
+       functions.
+       * target.h (struct target_ops): Remove to_require_attach
+       and to_require_detach.
+       (target_require_attach, target_require_detach): Delete macros.
+       (find_default_require_detach, find_default_require_attach): Delete
+       prototypes.
+       * config/pa/nm-hppah.h (REQUIRE_ATTACH, REQUIRE_DETACH): Delete.
+
+2002-12-11  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.c (get_frame_extra_info): New function.
+       * frame.h (get_frame_extra_info): Declare.
+
+2002-12-11  Andrew Cagney  <ac131313@redhat.com>
+
+       * breakpoint.h (struct breakpoint): Replace frame with frame_id.
+       (set_momentary_breaokpoint): Replace `struct frame_info' parameter
+       with `struct frame_id'.
+       (set_longjmp_resume_breakpoint): Ditto.
+       * infrun.c (handle_inferior_event): Update.
+       * breakpoint.c (watch_command_1, until_break_command): Update.
+       * infrun.c (handle_inferior_event, check_sigtramp2): Update.
+       (handle_inferior_event, step_over_function): Update.
+       * breakpoint.c (bpstat_stop_status, print_one_breakpoint): Update.
+       (set_raw_breakpoint, set_longjmp_resume_breakpoint): Update.
+       (set_momentary_breakpoint, deprecated_frame_in_dummy): Update.
+       * infcmd.c (finish_command, run_stack_dummy): Update.
+
+2002-12-11  Kevin Buettner  <kevinb@redhat.com>
+
+       * dwarf2read.c (dwarf2_const_ignored, dwarf2_volatile_ignored)
+       (dwarf2_non_const_array_bound_ignored)
+       (dwarf2_missing_line_number_section)
+       (dwarf2_statement_list_fits_in_line_number_section)
+       (dwarf2_mangled_line_number_section, dwarf2_unsupported_die_ref_attr)
+       (dwarf2_unsupported_stack_op, dwarf2_complex_location_expr)
+       (dwarf2_unsupported_tag, dwarf2_unsupported_at_encoding)
+       (dwarf2_unsupported_at_frame_base, dwarf2_unexpected_tag)
+       (dwarf2_missing_at_frame_base, dwarf2_bad_static_member_name)
+       (dwarf2_unsupported_accessibility, dwarf2_bad_member_name_complaint)
+       (dwarf2_missing_member_fn_type_complaint)
+       (dwarf2_vtbl_not_found_complaint, dwarf2_absolute_sibling_complaint)
+       (dwarf2_const_value_length_mismatch)
+       (dwarf2_unsupported_const_value_attr, dwarf2_misplaced_line_number)
+       (dwarf2_line_header_too_long, dwarf2_missing_macinfo_section)
+       (dwarf2_macros_too_long, dwarf2_macros_not_terminated)
+       (dwarf2_macro_outside_file, dwarf2_macro_unmatched_end_file)
+       (dwarf2_macro_malformed_definition, dwarf2_macro_spaces_in_definition)
+       (dwarf2_invalid_attrib_class, dwarf2_invalid_pointer_size): Delete
+       complaints using deprecated struct..
+       (dwarf2_non_const_array_bound_ignored_complaint)
+       (dwarf2_complex_location_expr_complaint)
+       (dwarf2_unsupported_at_frame_base_complaint)
+       (dwarf2_const_value_length_mismatch_complaint)
+       (dwarf2_macros_too_long_complaint)
+       (dwarf2_macro_malformed_definition_complaint)
+       (dwarf2_invalid_attrib_class_complaint): New functions.
+       (read_func_scope, dwarf2_attach_fields_to_type, dwarf2_add_member_fn)
+       (read_structure_scope, read_array_type, read_common_block)
+       (read_tag_pointer_type, read_base_type, read_partial_die)
+       (dwarf_decode_line_header, check_cu_functions, dwarf_decode_lines)
+       (new_symbol, dwarf2_const_value, read_type_die)
+       (dwarf2_get_ref_die_offset, decode_locdesc, consume_improper_spaces)
+       (parse_macro_definition, dwarf_decode_macros): Replace calls to
+       complain() with, possibly indirect, calls to complaint().
+
+2002-12-11  Andrew Cagney  <cagney@redhat.com>
+
+       * frame.c (deprecated_get_frame_saved_regs): Rename
+       get_frame_saved_regs.
+       * frame.h (deprecated_get_frame_saved_regs): Update declaration.
+       * sparc-tdep.c: Update.
+       * hppa-tdep.c: Update.
+       * h8500-tdep.c: Update.
+
+2002-12-11  Kevin Buettner  <kevinb@redhat.com>
+
+       * gdbarch.sh (ADDRESS_CLASS_TYPE_FLAGS_TO_NAME)
+       (ADDRESS_CLASS_NAME_TO_TYPE_FLAGS): Use ``const char *'' instead of
+       ``char *'' for return and parameter types.
+       * gdbarch.h, gdbarch.c: Regenerate.
+       * gdbtypes.h, gdbtypes.c (address_space_int_to_name): Change
+       return type from ``char *'' to ``const char *''.
+       * c-typeprint.c (c_type_print_modifier): Make ``address_space_id''
+       const.
+
+2002-12-11  Mark Kettenis  <kettenis@gnu.org>
+
+       * i386-tdep.c: Include "dummy-frame.h".
+       (i386_frame_chain, i386_frame_saved_pc): Replace
+       DEPRECATED_PC_IN_CALL_DUMMY with call to pc_in_dummy_frame.
+       (i386_gdbarch_init): Don't set deprecated_pc_in_call_dummy.
+
+2002-12-10  Andrew Cagney  <cagney@redhat.com>
+
+       * gdbarch.sh (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC.
+       Change to a function with predicate.
+       * gdbarch.h, gdbarch.c: Re-generate.
+       * frame.c (get_prev_frame): Update.  Test
+       DEPRECATED_INIT_FRAME_PC_P.
+       * config/sparc/tm-sparc.h (DEPRECATED_INIT_FRAME_PC): Update.
+       * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC): Update.
+       * config/mn10200/tm-mn10200.h (DEPRECATED_INIT_FRAME_PC): Update.
+       * alpha-tdep.c (alpha_gdbarch_init): Update.
+       * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+       * mips-tdep.c (mips_gdbarch_init): Update.
+       * i386-interix-tdep.c (i386_interix_init_abi): Update.
+       * arm-tdep.c: Update comments.
+       * h8300-tdep.c (h8300_gdbarch_init): Explicitly set init_frame_pc.
+       * config/m32r/tm-m32r.h (DEPRECATED_INIT_FRAME_PC): Ditto.
+       * frv-tdep.c (frv_gdbarch_init): Ditto.
+       * x86-64-tdep.c (x86_64_init_abi): Ditto.
+       * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+       * s390-tdep.c (s390_gdbarch_init): Ditto.
+       * v850-tdep.c (v850_gdbarch_init): Ditto.
+       * vax-tdep.c (vax_gdbarch_init): Ditto.
+       * sh-tdep.c (sh_gdbarch_init): Ditto.
+       * ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
+       * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+       * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+       * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.
+       * i386-tdep.c (i386_gdbarch_init): Ditto.
+       * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+       * cris-tdep.c (cris_gdbarch_init): Ditto.
+       * avr-tdep.c (avr_gdbarch_init): Ditto.
+       * arm-tdep.c (arm_gdbarch_init): Ditto.
+       * config/z8k/tm-z8k.h (INIT_FRAME_PC_FIRST): Delete macro.
+       (DEPRECATED_INIT_FRAME_PC): Rename INIT_FRAME_PC.
+
+2002-12-10  Daniel Jacobowitz  <drow@mvista.com>
+
+       * config/pa/nm-hppah.h (CHILD_POST_FOLLOW_VFORK): Change to
+       CHILD_FOLLOW_FORK.
+       * hppah-nat.c (saved_vfork_pid): Add.
+       (child_post_follow_vfork): Remove.
+       (child_follow_fork): New function.
+       (child_wait): Call detach_breakpoints after receiving the child vfork.
+       Call child_resume directly instead of going through resume ().
+       Make sure we have the exec before reporting the vfork.
+       * inferior.h (follow_inferior_reset_breakpoints): Add prototype.
+       * infrun.c (follow_fork, follow_vfork, follow_inferior_fork): Remove.
+       (follow_fork): New function.  Call target_follow_fork.
+       (follow_inferior_reset_breakpoints): New function broken out from
+       old follow_inferior_fork.
+       (resume): Remove hack to follow exec after vfork.
+       * inftarg.c (child_post_follow_vfork): Remove.
+       (child_follow_fork): New function.
+       (init_child_ops): Replace to_post_follow_vfork with to_follow_fork.
+       * target.c (cleanup_target): Replace to_post_follow_vfork with
+       to_follow_fork.
+       (update_current_target): Likewise.
+       (setup_target_debug): Likewise.
+       (debug_to_post_follow_vfork): Remove.
+       (debug_to_follow_fork): New function.
+       * target.h (struct target_ops): Replace to_post_folow_vfork with
+       to_follow_fork.
+       (child_post_follow_vfork): Remove prototype.
+       (child_follow_fork): Add prototype.
+       (target_post_follow_vfork): Remove macro.
+       (target_follow_fork): Add macro.
+
+2002-12-10  Daniel Jacobowitz  <drow@mvista.com>
+
+       * hppah-nat.c (saved_child_execd_pathname, saved_vfork_state): New.
+       (child_post_follow_vfork): Cancel pending exec event if we follow
+       the parent.
+       (child_wait): Only return TARGET_WAITKIND_VFORKED when all necessary
+       events have been processed.  Return a fake TARGET_WAITKIND_EXECD
+       event at the following wait call if necessary.
+       * infrun.c (follow_vfork): Don't follow_exec here.
+       (handle_inferior_event): Add comment to TARGET_WAITKIND_EXECD
+       case about HP/UX 10.20.  Remove code pushed down to
+       hppah-nat.c:child_wait.
+       * infttrace.c (child_resume): Use TT_PROC_CONTINUE if
+       vfork_in_flight is set.
+
+2002-12-10  Daniel Jacobowitz  <drow@mvista.com>
+
+       * hppah-nat.c (child_wait): Return TARGET_WAITKIND_IGNORE
+       for the parent's fork event.
+       * infrun.c (handle_inferior_event): Only expect one fork event.
+       Call prepare_to_wait for TARGET_WAITKIND_IGNORE.  Update comment.
+       * target.h: Update comment for TARGET_WAITKIND_IGNORE.
+
+2002-12-10  Andrew Cagney  <ac131313@redhat.com>
+
+       * PROBLEMS: Delete reference to PR gdb/725.
+       
+       * MAINTAINERS (gdb.c++): Add David Carlton.
+
+2002-12-09  David Carlton  <carlton@math.stanford.edu>
+
+       * cli/cli-setshow.c: #include <readline/tilde.h> after defs.h.
+       * cli/cli-cmds.c: Ditto.
+
+2002-12-09  Andrew Cagney  <cagney@redhat.com>
+
+       * gdbarch.sh (gdbarch_dump): Print NAME_OF_MALLOC using %s.  Wrap
+       function address in <>.
+       * gdbarch.c: Re-generate.
+
+2002-12-09  David Carlton  <carlton@math.stanford.edu>
+
+       * p-exp.y: Rename TRUE and FALSE to TRUEKEYWORD and FALSEKEYWORD.
+
+2002-12-09  David Carlton  <carlton@math.stanford.edu>
+
+       * linespec.c (symtab_from_filename): New function.
+       (decode_line_1): Move code into symtab_from_filename.
+
+2002-12-09  Kevin Buettner  <kevinb@redhat.com>
+
+       * lin-lwp.c (strsignal): Make extern declaration match that of glibc.
+
+2002-12-07  Andrew Cagney  <ac131313@redhat.com>
+
+       * f-valprint.c (info_common_command): Use get_frame_pc.
+       * std-regs.c (value_of_builtin_frame_pc_reg): Ditto.
+       * ax-gdb.c (agent_command): Ditto.
+       * rs6000-tdep.c (rs6000_init_extra_frame_info): Ditto.
+       (rs6000_pop_frame): Ditto.
+       (rs6000_frameless_function_invocation): Ditto.
+       (rs6000_frame_saved_pc, frame_get_saved_regs): Ditto.
+       (frame_initial_stack_address, rs6000_frame_chain): Ditto.
+       * macroscope.c (default_macro_scope): Ditto.
+       * stack.c (print_frame_info_base): Ditto.
+       (print_frame, frame_info, print_frame_label_vars): Ditto.
+       (return_command, func_command, get_frame_language): Ditto.
+       * infcmd.c (finish_command): Ditto.
+       * dummy-frame.c (cached_find_dummy_frame): Ditto.
+       * breakpoint.c (deprecated_frame_in_dummy): Ditto.
+       (break_at_finish_at_depth_command_1): Ditto.
+       (break_at_finish_command_1): Ditto.
+       (until_break_command, get_catch_sals): Ditto.
+       * blockframe.c (func_frame_chain_valid): Ditto.
+       (frameless_look_for_prologue): Ditto.
+       (frame_address_in_block, generic_func_frame_chain_valid): Ditto.
+
+2002-12-08  Andrew Cagney  <ac131313@redhat.com>
+
+       * config/rs6000/tm-rs6000.h (init_frame_pc_noop): Add declaration.
+       * dwarf2cfi.c (cfi_init_frame_pc): Cast the PC to a pointer.
+
+2002-12-08  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh (INIT_FRAME_PC_FIRST, INIT_FRAME_PC_DEFAULT): Convert
+       to pure functions.
+       * gdbarch.h, gdbarch.c: Re-generate.
+       * frame.c (get_prev_frame): Explictly assign prev's pc with value
+       returned by INIT_FRAME_PC_FIRST and INIT_EXTRA_FRAME_INFO.
+
+       * arch-utils.h (init_frame_pc_default, init_frame_pc_noop): Change
+       declaration to a function returning a CORE_ADDR.
+       * x86-64-tdep.h (x86_64_init_frame_pc): Ditto.
+       * arch-utils.c (init_frame_pc_noop): Return the PC value.
+       (init_frame_pc_default): Ditto.
+       * x86-64-linux-tdep.c (x86_64_init_frame_pc): Ditto.
+       * s390-tdep.c (s390_init_frame_pc_first): Ditto.
+       * mips-tdep.c (mips_init_frame_pc_first): Ditto.
+       * dwarf2cfi.h (cfi_init_frame_pc): Ditto.
+       * dwarf2cfi.c (cfi_init_frame_pc): Ditto.
+       * alpha-tdep.c (alpha_init_frame_pc_first): Ditto.
+
+       * i386-interix-tdep.c (i386_interix_init_abi): Set init_frame_pc
+       to init_frame_pc_noop.
+       (i386_interix_init_frame_pc): Delete function.
+       * z8k-tdep.c (init_frame_pc): Delete function.
+       * config/z8k/tm-z8k.h (INIT_FRAME_PC): Define as init_frame_pc_noop.
+       (INIT_FRAME_PC_FIRST): Ditto.
+       * config/mn10200/tm-mn10200.h (INIT_FRAME_PC): Ditto.
+       (INIT_FRAME_PC_FIRST): Ditto.
+       * config/sparc/tm-sparc.h (INIT_FRAME_PC): Ditto.
+       * config/rs6000/tm-rs6000.h (INIT_FRAME_PC): Redefine as
+       init_frame_pc_noop.
+       (INIT_FRAME_PC_FIRST): Convert to an expression.
+       * config/sparc/tm-sparc.h (INIT_FRAME_PC_FIRST): Ditto.
+
+2002-12-08  Andrew Cagney  <ac131313@redhat.com>
+
+       * blockframe.c: Use get_frame_base instead of directly accessing
+       the `struct frame_info' member frame.
+       * f-valprint.c, std-regs.c, rs6000-tdep.c: Ditto.
+       * stack.c, dummy-frame.c, breakpoint.c: Ditto.
+
+2002-12-08  Elena Zannoni  <ezannoni@redhat.com>
+
+       * Makefile.in (readline_h): Define.
+       (completer.o): Depend on readline_h.
+       (corelow.o): Ditto.
+       (event-top.o): Ditto.
+       (exec.o): Ditto.
+       (solib.o): Ditto.
+       (source.o): Ditto. 
+       (symfile.o): Ditto. 
+       (symmisc.o): Ditto. 
+       (top.o): Ditto.
+       (tracepoint.o): Ditto. 
+       (utils.o): Ditto.
+       (cli-dump.o): Ditto.
+       (tui-hooks.o): Ditto. 
+       (tuiWin.o): Ditto. 
+
+2002-12-08  Elena Zannoni  <ezannoni@redhat.com>
+
+       More cleanup from import of readline 4.3.
+       * completer.h (complete_line, readline_line_completion_function):
+       Update prototypes.
+       (line_completion_function): Removed, not used outside of completer.c.
+       * completer.c (readline_line_completion_function,
+       complete_function, line_completion_function): Use const for first
+       parameter.
+       (line_completion_function): Make static.
+       (filename_completer): filename_completion_function is now called
+       rl_filename_completion_function
+       * corelow.c: Include <readline/readline.h>.
+       * exec.c: Ditto.
+       * solib.c: Ditto.
+       * source.c: Ditto.
+       * symfile.c: Ditto.
+       * symmisc.c: Ditto.
+       * top.c (init_main): No need to coerce
+       readline_line_completion_function anymore.
+       * cli/cli-dump.c: Include <readline/readline.h>.
+
+2002-12-08  Andrew Cagney  <ac131313@redhat.com>
+
+       * stack.c (frame_info): Use get_prev_frame.
+       * blockframe.c (frame_address_in_block): Ditto.
+       * rs6000-tdep.c (rs6000_init_extra_frame_info): Ditto.
+       (rs6000_frameless_function_invocation): Ditto.
+       (rs6000_frame_saved_pc): Ditto.
+       (rs6000_frame_chain): Ditto.
+       * arch-utils.c (init_frame_pc_default): Ditto.
+
+2002-12-08  Andrew Cagney  <ac131313@redhat.com>
+
+       * config/mn10200/tm-mn10200.h (DEPRECATED_PC_IN_CALL_DUMMY):
+       Delete redundant definition.
+
+2002-12-08  Elena Zannoni  <ezannoni@redhat.com>
+
+        Import of readline 4.3:
+        * cli/cli-cmds.c: Include readline/tilde.h.
+        * cli/cli-setshow.c: Ditto.
+        * defs.h: Don't declare tilde_expand anymore, since readline
+        exports it.
+
+2002-12-08  Elena Zannoni  <ezannoni@redhat.com>
+
+       * Makefile.in (thread-db.o): Add explicit rule to ignore the use of
+       -Werror on this file.
+
+2002-12-07  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh (TARGET_FLOAT_FORMAT): Use the macro when printing
+       the format name.
+       (TARGET_DOUBLE_FORMAT, TARGET_LONG_DOUBLE_FORMAT): Ditto.
+       * gdbarch.c: Regenerate.
+       
+2002-12-06  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh (DEPRECATED_INIT_FRAME_PC_FIRST): Rename
+       INIT_FRAME_PC_FIRST.  Change to a function with predicate.  Do not
+       provide a default value.
+       * gdbarch.h, gdbarch.c: Regenerate.
+       * frame.c (get_prev_frame): Update.  Check
+       DEPRECATED_INIT_FRAME_PC_FIRST_P.
+       * s390-tdep.c (s390_gdbarch_init): Update.
+       * mips-tdep.c (mips_gdbarch_init): Update.
+       * config/sparc/tm-sparc.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
+       * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
+       * alpha-tdep.c (alpha_gdbarch_init): Update.
+       
+2002-12-06  Elena Zannoni  <ezannoni@redhat.com>
+
+       * ia64-linux-nat.c: Include gdb_string.h.
+       * alpha-nat.c: Ditto.
+       * ppc-linux-nat.c: Ditto.
+       * Makefile.in (ia64-linux-nat.o, alpha-nat.o, ppc-linux-nat.o):
+       Update dependencies.
+
+2002-12-05  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbthread.h: Include "frame.h".
+       (struct thread_info): Replace step_frame_address with
+       step_frame_id.
+       * inferior.h: Include "frame.h".
+       (step_frame_id): Replace external variable step_frame_address.
+       * gdbthread.h (save_infrun_state): Replace step_frame_address
+       parameter with step_frame_id parameter.
+       (load_infrun_state): Ditto.
+       * Makefile.in (gdbthread_h, inferior_h): Add $(frame_h).
+       * infcmd.c (step_frame_id, step_1, step_once): Update.
+       * thread.c (load_infrun_state, save_infrun_state): Update.
+       * infrun.c (clear_proceed_status, save_inferior_status): Update.
+       (handle_inferior_event, step_over_function): Update.
+       (normal_stop, context_switch, restore_inferior_status): Update.
+       (struct inferior_status): Replace step_frame_address with
+       step_frame_id.
+
+2002-12-05  David Carlton  <carlton@math.stanford.edu>
+
+       * dwarf2read.c (dwarf2_add_field): Treat a field that is a
+       DW_TAG_member as well as a declaration as being a C++ static data
+       member.
+       (read_structure_scope): Combine tests for DW_TAG_member and
+       DW_TAG_variable.
+
+2002-12-05  David Carlton  <carlton@math.stanford.edu>
+
+       * linespec.c (decode_compound): New function.
+       (decode_line_1): Move code into decode_compound.
+
+2002-12-05  David Carlton  <carlton@math.stanford.edu>
+
+       * symtab.c (lookup_symbol_aux_local): Add 'static_block'
+       argument.
+       (lookup_symbol_aux): Do the 'field_of_this' check before checking
+       the static block.  See PR gdb/804.
+
+2002-12-05  David Carlton  <carlton@math.stanford.edu>
+
+       * symtab.c (lookup_symbol_aux_block): New function.
+       (lookup_symbol_aux_local): Move code into lookup_symbol_aux_block.
+
+2002-12-05  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh: Dump the predicate function and macro values.
+       (read): Print error on standard error.
+       * gdbarch.c: Regenerate.
+       
+2002-12-04  Kevin Buettner  <kevinb@redhat.com>
+
+       * Makefile.in (mips_tdep_h): Define.
+       (mips-tdep.o): Add mips_tdep_h to dependency list.
+       * mips-tdep.h: New file.
+       * mips-tdep.c (mips-tdep.h): Include.
+       (enum mips_abi): Move to mips-tdep.h.
+       (mips_abi): New function.
+
+2002-12-04  David Carlton  <carlton@math.stanford.edu>
+
+       * Makefile.in (f-exp.tab.c): Don't depend on c-exp.tab.c.
+
+2002-12-04  David Carlton  <carlton@math.stanford.edu>
+
+       * symtab.c (lookup_symbol_aux): Move minsym code into a separate
+       function.
+       (lookup_symbol_aux_minsyms): New function.
+
+2002-12-04  J. Brobecker  <brobecker@gnat.com>
+
+       * pa64solib.c: s/boolean/int/. Fixes a build failure on hppa64-hpux.
+
+2002-12-04  J. Brobecker  <brobecker@gnat.com>
+
+       * config/pa/tm-hppah.h (PC_IN_SIGTRAMP): Renamed from IN_SIGTRAMP,
+       which is an obsolete macro name.
+
+2002-12-04  Daniel Jacobowitz  <drow@mvista.com>
+
+       * doublest.c (convert_floatformat_to_doublest): Cast exp_bias to int.
+       * config/alpha/alpha-linux.mh (MH_CFLAGS): Add -mieee.
+
+2002-12-03  H.J. Lu  (hjl@gnu.org)
+
+       * breakpoint.c (create_thread_event_breakpoint): Use xasprintf.
+       (create_breakpoints): Make sure the addr_string field is not
+       NULL.
+
+2002-12-03  Andrew Cagney  <ac131313@redhat.com>
+
+       * sparc-nat.c (fetch_inferior_registers)
+       (store_inferior_registers): Add comment on problem of LWP vs
+       threads.
+       
+       From 2002-11-21 Daniel Jacobowitz <drow@mvista.com>
+       * lin-lwp.c (lin_lwp_fetch_registers): Remove.
+       (lin_lwp_store_registers): Remove.
+       (init_lin_lwp_ops): Use fetch_inferior_registers
+       and store_inferior_registers directly.
+       * sparc-nat.c (fetch_inferior_registers): Honor LWP ID.
+       (store_inferior_registers): Likewise.
+       Fix PR gdb/725.
+
+2002-12-03  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.h (get_frame_id): Convert to a function.
+       (null_frame_id, frame_id_p): Declare.
+       (frame_id_eq, frame_id_inner): Declare.
+       (frame_id_build): New function.
+       * frame.c (get_frame_id): Update.  Use null_frame_id.
+       (frame_find_by_id): Rewrite using frame_id_p, frame_id_eq and
+       frame_id_inner.
+       (null_frame_id, frame_id_p): Define.
+       (frame_id_eq, frame_id_inner): Define.
+       (frame_id_build): New function.
+       * varobj.c (varobj_create): Update.
+       (varobj_update): Update.
+       * valops.c (value_assign): Update.
+       (new_root_variable): Update.
+       * infrun.c (save_inferior_status): Update.
+       * breakpoint.c (watch_command_1): Update.
+
+2002-12-03  J. Brobecker  <brobecker@gnat.com>
+
+       * config/pa/tm-hppah.h (SNAP1): Remove unused macro.
+       (SNAP2): Likewise.
+
+2002-12-03  Andrew Cagney  <cagney@redhat.com>
+
+       * NEWS: Mention Daniel Jacobowitz's multi-threaded shared library
+       patch.
+
+       * PROBLEMS: Mention PR gdb/725.
+
+2002-12-03  Andreas Schwab  <schwab@suse.de>
+
+       * infcmd.c (construct_inferior_arguments): Handle empty arguments.
+
+2002-12-02  Adam Fedor  <fedor@gnu.org>
+           Klee Dienes  <kdienes@apple.com>
+
+       * objc-lang.c (objc_printstr): Add width arg to match
+       printstr prototype.
+       (compare_selectors): Add 'const' to arg types.
+       (compare_classes): Likewise.
+       (find_imps): Cast msym pointer to avoid compiler warning.
+       (print_object_command): Validate the address before
+       passing it to the print routine.
+       (find_objc_msgcall_submethod): Change function argument to
+       return an int.
+       * objc-lang.h: Add 'extern' to all function declarations.
+       (value_nsstring): Add declaration.
+
+2002-12-02  J. Brobecker  <brobecker@gnat.com>
+
+       * somsolib.c (dld_cache): Replace boolean by int for field is_valid.
+       Fixes a build failure on HP/UX.
+
+       * hpread.c (told_objfile): Replace boolean type by int. Fixes a build
+       failure on HP/UX. 
+       (hpread_has_name): Advance declaration to avoid a compilation warning.
+       (pst_syms_count): Add missing variable type. By change, the compiler
+       was defaulting to int, which seems a good choice. Fixes a compilation
+       warning.
+       (pst_syms_size): Likewise.
+2002-12-02  J. Brobecker  <brobecker@gnat.com>
+
+       * hppa-tdep.c: Add #include "osabi.h" (for hppa_gdbarch_init).
+       (hppa_gdbarch_init): Detect osabi from objfile. Will be needed
+       later to set the proper gdbarch methods depending on the osabi.
+       * Makefile.in (hppa-tdep.o): Add dependency on osabi.h.
+
+2002-12-02  J. Brobecker  <brobecker@gnat.com>
+
+       * osabi.h (gdb_osabi): Add two new enum values for HPUX ELF and SOM.
+       * osabi.c (gdb_osabi_name): Add strings images for the two new
+       enum values.
+       (generic_elf_osabi_sniffer): Handle HPUX objfiles.
+
+2002-12-02  Andrew Cagney  <ac131313@redhat.com>
+
+       * MAINTAINERS (Java): Global maintainers are responible for Java.
+       (Past Maintainers): Mention both Anthony Green and Per Bothner as
+       part Java maintainers.
+
+2002-12-02  J. Brobecker  <brobecker@gnat.com>
+
+       * xcoffread.c (read_symbol_lineno): Replace boolean by int.
+       Fixes a compilation failure on AiX.
+
+2002-12-02  J. Brobecker  <brobecker@gnat.com>
+
+       * config/powerpc/aix432.mh (NATDEPFILES): Add a comment explaining
+       why aix-thread.o is not listed.
+
+2002-12-01  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh (DEPRECATED_PC_IN_CALL_DUMMY): Rename
+       PC_IN_CALL_DUMMY.  Change to predicate.  Always allow call.
+       * gdbarch.h, gdbarch.c: Re-generate.
+       * config/sparc/tm-sparc.h, config/sparc/tm-sp64.h: Update.
+       * config/mn10200/tm-mn10200.h, config/h8500/tm-h8500.h: Update.
+       * config/pa/tm-hppa.h, frame.h: Update.
+       * x86-64-tdep.c, vax-tdep.c, sparc-tdep.c: Update.
+       * s390-tdep.c, ns32k-tdep.c, mn10300-tdep.c: Update.
+       * m68k-tdep.c, i386-tdep.c, frv-tdep.c: Update.
+       * cris-tdep.c, alpha-tdep.c: Update.
+       * frame.c (set_unwind_by_pc, create_new_frame): Use either
+       DEPRECATED_PC_IN_CALL_DUMMY or pc_in_dummy_frame.
+       (get_prev_frame): Ditto.
+
+2002-11-30  Andrew Cagney  <cagney@redhat.com>
+
+       * exec.c (xfer_memory): Replace boolean with int.
+       * p-exp.y: Use 0 instead of false.
+       * corelow.c (gdb_check_format): Change return type to int from
+       boolean.
+       * utils.c: Don't include <curses.h> or <term.h> first.
+
+2002-11-29  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * m68hc11-tdep.c (m68hc11_register_raw_size): Remove.
+       (m68hc11_register_byte): Remove.
+       (m68hc11_gdbarch_init): Don't set the above.
+
+2002-11-29  Andrew Cagney  <cagney@redhat.com>
+
+       * remote-mips.c (mips_initialize): Force a selected frame rebuild
+       by calling get_selected_frame.
+       * ocd.c (ocd_start_remote): Use get_selected frame instead of
+       set_current_frame, create_new_frame, select_frame and
+       get_current_frame.
+       * remote-e7000.c (e7000_start_remote): Ditto.
+       * remote-mips.c (common_open): Ditto
+       * remote-rdp.c (remote_rdp_open): Ditto.
+
+2002-11-29  Andreas Schwab  <schwab@suse.de>
+
+       * m68k-tdep.c (m68k_frame_chain, m68k_frame_saved_pc)
+       (altos_skip_prologue, delta68_frame_saved_pc, isi_frame_num_args)
+       (delta68_frame_num_args, news_frame_num_args, m68k_skip_prologue)
+       (m68k_frame_init_saved_regs, m68k_saved_pc_after_call): Use
+       read_memory_unsigned_integer instead of read_memory_integer when
+       dealing with addresses and instruction opcodes.
+       * m68klinux-tdep.c (m68k_linux_sigtramp_saved_pc) 
+       (m68k_linux_frame_saved_pc): Likewise.
+
+2002-11-29  Andrew Cagney  <ac131313@redhat.com>
+
+       * stack.c (selected_frame, select_frame): Move from here ...
+       * frame.c (selected_frame, select_frame): ... to here.  Include
+       "language.h".
+       * Makefile.in (frame.o): Update dependencies.
+       * frame.c (get_selected_frame): New function.
+       * frame.h (get_selected_frame): Declare.
+       (deprecated_selected_frame): Rename selected_frame.
+       * ada-lang.c, ada-tasks.c, breakpoint.c, corelow.c: Update.
+       * eval.c, f-valprint.c, findvar.c, frame.c, frame.h: Update.
+       * h8300-tdep.c, h8500-tdep.c, hppa-tdep.c, infcmd.c: Update.
+       * inflow.c, infrun.c, macroscope.c, mips-tdep.c: Update.
+       * mn10300-tdep.c, ocd.c, regcache.h, remote-e7000.c: Update.
+       * remote-mips.c, remote-rdp.c, sh-tdep.c, sparc-tdep.c: Update.
+       * stack.c, thread.c, tracepoint.c, valops.c, varobj.c: Update.
+       * z8k-tdep.c, cli/cli-cmds.c: Update.
+       
+2002-11-29  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.h (get_selected_block): Add comments.
+
+2002-11-28  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.c (pc_notcurrent): New function.
+       (find_frame_sal): New function.
+       * frame.h (find_frame_sal): Declare.
+       (struct symtab_and_line): Add opaque declaration.
+       * stack.c (print_frame_info_base): Use find_frame_sal instead of
+       find_pc_line.
+       (frame_info): Ditto.
+       * ada-lang.c (find_printable_frame): Ditto.
+
+2002-11-28  J. Brobecker  <brobecker@gnat.com>
+
+       * configure.in: Check that the pthdebug library is recent enough
+       before enabling thread support on native AiX.
+       * configure: Regenerate.
+
+       * config/powerpc/aix432.mh (NATDEPFILES): Remove aix-thread.o
+       from the list of object files as it is now appended by configure
+       if thread support is enabled.
+       (NAT_CLIBS): Removed as -lpthdebug is also appended by configure
+       if thread support is enabled.
+
+2002-11-28  Andrew Cagney  <cagney@redhat.com>
+
+       * stack.c (get_selected_block): In-line get_current_block.
+       * frame.h (get_current_block): Delete declaration.
+       * blockframe.c (get_current_block): Delete function.
+
+2002-11-28  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh (DEPRECATED_USE_GENERIC_DUMMY_FRAMES): Rename
+       USE_GENERIC_DUMMY_FRAMES.
+       * gdbarch.h, gdbarch.c: Regenerate.
+       * valops.c, frame.c: Update.
+       * config/z8k/tm-z8k.h, config/mn10200/tm-mn10200.h: Update.
+       * config/m32r/tm-m32r.h, config/h8500/tm-h8500.h: Update.
+       * config/pa/tm-hppa.h, blockframe.c: Update.
+       * vax-tdep.c, sparc-tdep.c, ns32k-tdep.c: Ditto.
+       * m68k-tdep.c, alpha-tdep.c: Ditto.
+
+       * arm-tdep.c: Eliminate USE_GENERIC_DUMMY_FRAMES as always 1.
+       * mips-tdep.c: Ditto.
+
+2002-11-27  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh (CALL_DUMMY_LOCATION): Default to AT_ENTRY_POINT.
+       (USE_GENERIC_DUMMY_FRAMES): Default to true.
+       (PC_IN_CALL_DUMMY): Default to generic_pc_in_call_dummy.
+       * gdbarch.c, gdbarch.h: Re-generate.
+       * inferior.h (USE_GENERIC_DUMMY_FRAMES): Delete macro definition.
+       (CALL_DUMMY_LOCATION): Delete macro definition.
+       (PC_IN_CALL_DUMMY): Delete macro definitions.
+       
+       * arm-tdep.c (arm_gdbarch_init): Do not set pc_in_call_dummy,
+       default is already generic_pc_in_call_dummy.
+       * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.
+       * v850-tdep.c (v850_gdbarch_init): Ditto.
+       * sh-tdep.c (sh_gdbarch_init): Ditto.
+       * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+       * mips-tdep.c (mips_gdbarch_init): Ditto.
+       * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+       * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+       * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+       * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+       * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+       * avr-tdep.c (avr_gdbarch_init): Ditto.
+       
+       * arm-tdep.c (arm_gdbarch_init): Do not set
+       use_generic_dummy_frames, default is already 1.
+       * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.
+       * x86-64-tdep.c (x86_64_gdbarch_init): Ditto.
+       * v850-tdep.c (v850_gdbarch_init): Ditto.
+       * sh-tdep.c (sh_gdbarch_init): Ditto.
+       * s390-tdep.c (s390_gdbarch_init): Ditto.
+       * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+       * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+       * mips-tdep.c (mips_gdbarch_init): Ditto.
+       * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+       * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+       * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+       * i386-tdep.c (i386_gdbarch_init): Ditto.
+       * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+       * frv-tdep.c (frv_gdbarch_init): Ditto.
+       * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+       * cris-tdep.c (cris_gdbarch_init): Ditto.
+       * avr-tdep.c (avr_gdbarch_init): Ditto.
+
+       * xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
+       call_dummy_location, default is already AT_ENTRY_POINT.
+       * x86-64-tdep.c (x86_64_gdbarch_init): Ditto.
+       * v850-tdep.c (v850_gdbarch_init): Ditto.
+       * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+       * sh-tdep.c (sh_gdbarch_init): Ditto.
+       * s390-tdep.c (s390_gdbarch_init): Ditto.
+       * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+       * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+       * mips-tdep.c (mips_gdbarch_init): Ditto.
+       * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+       * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+       * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+       * i386-tdep.c (i386_gdbarch_init): Ditto.
+       * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+       * frv-tdep.c (frv_gdbarch_init): Ditto.
+       * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+       * cris-tdep.c (cris_gdbarch_init): Ditto.
+       * avr-tdep.c (avr_gdbarch_init): Ditto.
+       * arm-tdep.c (arm_gdbarch_init): Ditto.
+       * alpha-tdep.c (alpha_gdbarch_init): Ditto.
+
+2002-11-28  Andrew Cagney  <cagney@redhat.com>
+
+       * frame.h: Update comments on set_current_frame, create_new_frame,
+       flush_cached_frames, reinit_frame_cache, select_frame and
+       selected_frame.
+       
+2002-11-27  Andrew Cagney  <cagney@redhat.com>
+
+       * config/z8k/tm-z8k.h (PC_IN_CALL_DUMMY): Update definition to use
+       deprecated pc_in_call_dummy function.
+       * config/sparc/tm-sparc.h (PC_IN_CALL_DUMMY): Ditto.
+       * config/sparc/tm-sp64.h (PC_IN_CALL_DUMMY): Ditto.
+       * config/pa/tm-hppa.h (PC_IN_CALL_DUMMY): Ditto.
+       * config/mn10200/tm-mn10200.h (PC_IN_CALL_DUMMY): Ditto.
+       * config/h8500/tm-h8500.h (PC_IN_CALL_DUMMY): Ditto.
+
+2002-11-26  Martin M. Hunt  <hunt@redhat.com>
+
+       * Makefile.in: Remove Tix dependencies.
+       * acinclude.m4: Ditto.
+       * aclocal.m4: Ditto.
+       * configure.in: Ditto.
+       * configure: Regenerated.
+       
+2002-11-26  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh (TARGET_FLOAT_FORMAT): Print the float format name.
+       (TARGET_DOUBLE_FORMAT, TARGET_LONG_DOUBLE_FORMAT): Ditto.
+       * gdbarch.c: Re-generate.
+       
+2002-11-26  Andrew Cagney  <ac131313@redhat.com>
+
+       * config/h8500/tm-h8500.h (CALL_DUMMY_LOCATION): Define as ON_STACK.
+       (USE_GENERIC_DUMMY_FRAMES): Define as zero.
+       (PC_IN_CALL_DUMMY): Define as pc_in_call_dummy_on_stack.
+       * config/mn10200/tm-mn10200.h (PC_IN_CALL_DUMMY): Define as
+       pc_in_call_dummy_at_entry_point.
+       * config/pa/tm-hppa.h (CALL_DUMMY_LOCATION): Define as ON_STACK.
+       (USE_GENERIC_DUMMY_FRAMES): Define as zero.
+       (PC_IN_CALL_DUMMY): Define as pc_in_call_dummy_on_stack.
+       * config/pa/tm-hppa64.h (CALL_DUMMY_LOCATION): Delete undefine.
+       * config/sparc/tm-sparc.h (PC_IN_CALL_DUMMY): Define as
+       pc_in_call_dummy_on_stack.
+       * config/sparc/tm-sp64.h (PC_IN_CALL_DUMMY): Redefine as
+       pc_in_call_dummy_at_entry_point and pc_in_call_dummy_on_stack.
+       * config/z8k/tm-z8k.h (CALL_DUMMY_LOCATION): Define as ON_STACK.
+       (USE_GENERIC_DUMMY_FRAMES): Define as zero.
+       (PC_IN_CALL_DUMMY): Defile as pc_in_call_dummy_on_stack.
+       
+2002-11-26  Andrew Cagney  <ac131313@redhat.com>
+
+       * inferior.h (deprecated_pc_in_call_dummy_before_text_end): Rename
+       pc_in_call_dummy_before_text_end
+       (deprecated_pc_in_call_dummy_after_text_end): Rename
+       pc_in_call_dummy_after_text_end.
+       (deprecated_pc_in_call_dummy_on_stack): Rename
+       pc_in_call_dummy_on_stack.
+       (deprecated_pc_in_call_dummy_at_entry_point): Rename
+       pc_in_call_dummy_at_entry_point.
+       * m68k-tdep.c (m68k_gdbarch_init): Update.
+       * s390-tdep.c (s390_gdbarch_init): Update.
+       * x86-64-tdep.c (x86_64_gdbarch_init): Update.
+       * vax-tdep.c (vax_gdbarch_init): Update.
+       * sparc-tdep.c (sparc_gdbarch_init): Update.
+       * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+       * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+       * i386-tdep.c (i386_gdbarch_init): Update.
+       * frv-tdep.c (frv_gdbarch_init): Update.
+       * cris-tdep.c (cris_gdbarch_init): Update.
+       * config/sparc/tm-sparc.h (PC_IN_CALL_DUMMY): Update.
+       * blockframe.c (deprecated_pc_in_call_dummy_before_text_end)
+       (deprecated_pc_in_call_dummy_after_text_end)
+       (deprecated_pc_in_call_dummy_on_stack)
+       (deprecated_pc_in_call_dummy_at_entry_point): Update.
+       * alpha-tdep.c (alpha_gdbarch_init): Update.
+
+2002-11-25  Daniel Jacobowitz  <drow@mvista.com>
+
+       * acconfig.h (HAVE_PREAD64): Add.
+       * configure.in: Check for pread64.
+       * config.in: Regenerated.
+       * configure: Regenerated.
+       * lin-lwp.c (lin_lwp_xfer_memory): Call linux_proc_xfer_memory.
+       * linux-proc.c (linux_proc_xfer_memory): New function.
+       * config/nm-linux.h (linux_proc_xfer_memory): Add prototype.
+
+2002-11-25  David Carlton  <carlton@math.stanford.edu>
+
+       * dwarf2read.c (scan_partial_symbols): Descend into namespace
+       pdi's with no name.
+
+2002-11-25  Andrew Cagney  <ac131313@redhat.com>
+
+       * MAINTAINERS: Mark h8500 as broken.  Breakage occured Fri Nov 5
+       16:32:04 1999 Andrew Cagney <cagney@b1.cygnus.com>.
+
+2002-11-25  Jim Blandy  <jimb@redhat.com>
+
+       * symfile.c (init_objfile_sect_indices): New function.
+       (default_symfile_offsets): Move the section-index-initializing
+       stuff into init_objfile_sect_indices, and call that.
+
+       * symtab.h (SIZEOF_N_SECTION_OFFSETS): New macro.
+       (SIZEOF_SECTION_OFFSETS): Use SIZEOF_N_SECTION_OFFSETS.
+
+       * symfile.c (syms_from_objfile): Adjust indentation.
+
+       * symfile.c (symbol_file_add): Flush gdb_stdout even if from_tty
+       || info_verbose isn't true.
+
+2002-11-24  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh (FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS): Change
+       default to get_frame_base.
+       * gdbarch.h, gdbarch.c: Regenerate.
+       * arch-utils.c (default_frame_address): Delete function.
+       * arch-utils.h (default_frame_address): Delete declaration
+
+2002-11-24  Pierre Muller  <muller@ics.u-strasbg.fr>
+
+       * varobj.c (find_frame_addr_in_frame_chain):
+       Use get_frame_base instead of FRAME_FP,
+       obvious fix.
+
+2002-11-19  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.h (FRAME_FP): Delete macro.
+       (get_frame_base): New function declaration.
+       * frame.c (get_frame_base): New function.
+       (get_frame_id): Use ->frame.
+       (frame_find_by_id): Rewrite to use get_frame_id.
+       * blockframe.c: Use get_frame_base instead of FRAME_FP.
+       * cris-tdep.c, d10v-tdep.c, findvar.c, h8500-tdep.c: Ditto.
+       * hppa-tdep.c, i386-tdep.c, infcmd.c, infrun.c: Ditto.
+       * m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c, mips-tdep.c: Ditto.
+       * mn10200-tdep.c, mn10300-tdep.c, rs6000-tdep.c: Ditto.
+       * sh-tdep.c, sparc-tdep.c, stack.c, tracepoint.c: Ditto.
+       * v850-tdep.c, valops.c, z8k-tdep.c: Ditto.
+
+2002-11-24  Andrew Cagney  <ac131313@redhat.com>
+
+       * arm-tdep.c (arm_gdbarch_init): Do not set get_saved_register.
+
+2002-11-24  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.c (set_unwind_by_pc): Revert change below, use
+       PC_IN_CALL_DUMMY.
+       (get_prev_frame): Ditto.
+
+2002-11-24  Andrew Cagney  <ac131313@redhat.com>
+
+       * dummy-frame.c (pc_in_dummy_frame): New function.
+       (generic_pc_in_call_dummy): Call pc_in_dummy_frame.
+       (find_dummy_frame): Update comment.
+       (generic_pop_current_frame): Use get_frame_type.
+       * dummy-frame.h (pc_in_dummy_frame): Declare.
+       * frame.c (set_unwind_by_pc): Use pc_in_dummy_frame.
+       (create_new_frame): Use pc_in_dummy_frame.
+       (get_prev_frame): Use pc_in_dummy_frame.
+       (frame_saved_regs_register_unwind): Use get_prev_frame.
+       (deprecated_generic_get_saved_register): Use get_prev_frame.
+
+2002-11-23  Andrew Cagney  <ac131313@redhat.com>
+
+       * blockframe.c (find_frame_addr_in_frame_chain): Move function
+       from here ...
+       * varobj.c (find_frame_addr_in_frame_chain): ... to here.
+       (varobj_create): Note that frame ID should be used.
+       * frame.h (find_frame_addr_in_frame_chain): Delete declaration.
+
+2002-11-23  Andrew Cagney  <ac131313@redhat.com>
+
+       * breakpoint.c: Include "gdb_assert.h".
+       (deprecated_frame_in_dummy): Assert that generic dummy frames are
+       not being used.
+       * Makefile.in (breakpoint.o): Update dependencies.
+       * ada-lang.c (find_printable_frame): Use get_frame_type instead of
+       deprecated_frame_in_dummy.
+       * stack.c (print_frame_info_base): Ditto.
+       (frame_info): Ditto.
+       (print_frame_info_base): Ditto.  Delete dead code.
+       
+2002-11-23  Andreas Schwab  <schwab@suse.de>
+
+       * Makefile.in (m68k_tdep_h): Define.
+       (abug-rom.o, cpu32bug-rom.o, dbug-rom.o, m68k-tdep.o, m68klinux-nat.o)
+       (remote-est.o, rom68k-rom.o): Add $(m68k_tdep_h).
+       * m68k-tdep.c: Move register number enum ...
+       * m68k-tdep.h: ... to this new file and rename the constants from
+       E_* to M68K_*.  All uses changed.
+       * config/m68k/tm-m68k.h (D0_REGNUM, A0_REGNUM): Remove definitions.
+       * abug-rom.c: Include "m68k-tdep.h".  Use
+       M68K_D0_REGNUM/M68K_A0_REGNUM instead of D0_REGNUM/A0_REGNUM.
+       * cpu32bug-rom.c: Likewise.
+       * dbug-rom.c: Likewise.
+       * m68k-tdep.c: Likewise.
+       * m68klinux-nat.c: Likewise.
+       * remote-est.c: Likewise.
+       * rom68k-rom.c: Likewise.
+       * config/m68k/tm-linux.h: Likewise.
+
+2002-11-23  Andrew Cagney  <ac131313@redhat.com>
+
+       * arm-tdep.c (arm_gdbarch_init): Remove old style non-generic
+       dummy frame initialization code.
+       * mips-tdep.c (mips_gdbarch_init): Ditto.
+
+2002-11-22  Christopher Faylor  <cgf@redhat.com>
+
+       * win32-nat.c (child_attach): Reset saw_create counter or subsequent
+       attach will hang.
+
+2002-11-22  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbarch.sh (FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS): Default
+       to default_frame_address.
+       * gdbarch.h, gdbarch.c: Re-generate.
+
+       * d10v-tdep.c (d10v_gdbarch_init): Do not set frame_args_address
+       or frame_locals_address to default_frame_address.
+       * m68k-tdep.c (m68k_gdbarch_init): Update.
+       * i386-tdep.c (i386_gdbarch_init): Update.
+       * frv-tdep.c (frv_gdbarch_init): Update.
+       * sh-tdep.c (sh_gdbarch_init): Update.
+       * v850-tdep.c (v850_gdbarch_init): Update.
+       * sparc-tdep.c (sparc_gdbarch_init): Update.
+       * mips-tdep.c (mips_gdbarch_init): Update.
+       * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+       * x86-64-tdep.c (x86_64_gdbarch_init): Update.
+       * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+
+       * cris-tdep.c (cris_frame_args_address): Delete function.
+       (cris_frame_locals_address): Delete function.
+       (cris_gdbarch_init): Do not set frame_args_address or
+       frame_locals_address.
+
+2002-11-22  Michael Snyder  <msnyder@redhat.com>
+
+       * thread-db.c (thread_db_load): Tell the user what's going on
+       if dlopen fails on libthread_db.
+
+2002-11-23  Andreas Schwab  <schwab@suse.de>
+
+       * m68k-tdep.c (m68k_register_virtual_type): Use architecture
+       invariant return values.
+
+2002-11-22  Andreas Schwab  <schwab@suse.de>
+
+       * valops.c (value_slice): Move declaration of `offset' to avoid
+       warning.
+
+2002-11-22  Christopher Faylor  <cgf@redhat.com>
+
+       * win32-nat.c (psapi_get_dll_name): Fix a compiler warning.
+       (struct so_stuff): Add end_addr field.
+       (register_loaded_dll): Calculate and store end address of loaded dll.
+       (solib_address): New function.
+       (child_solib_loaded_library_pathname): Pass carefully constructed
+       section info to safe_symbol_file_add rather than ignoring it.
+       (get_child_debug_event): Call re_enable_breakpoints_in_shlibs when a
+       DLL is loaded.
+       (do_initial_child_stuff): Call disable_breakpoints_in_shlibs.
+       (child_create_inferior): Fix a compiler warning.
+       * config/i386/tm-cygwin.h (PC_SOLIB): Define new macro.
+       (solib_address): Declare new function.
+
+2002-11-22  Andreas Schwab  <schwab@suse.de>
+
+       * m68k-tdep.c (m68k_register_virtual_type): Return int for SR, FPC
+       and FPS registers.
+
+2002-11-21  Daniel Jacobowitz  <drow@mvista.com>
+
+       * maint.c (_initialize_maint_cmds): Fix typo.  From
+       Francesco Potorti` <pot@gnu.org>.
+
+2002-11-21  Andrew Cagney  <cagney@redhat.com>
+
+       * mips-tdep.c (mips_dump_tdep): Delete references to
+       GDB_TARGET_UNMASK_DISAS_PC and GDB_TARGET_MASK_DISAS_PC.
+       * config/mips/tm-mips.h (GDB_TARGET_MASK_DISAS_PC): Delete macro.
+       (GDB_TARGET_UNMASK_DISAS_PC): Delete macro.
+       * printcmd.c (build_address_symbolic): Delete calls to
+       GDB_TARGET_UNMASK_DISAS_PC and GDB_TARGET_MASK_DISAS_PC.
+       (address_info): Ditto.
+       Fix PR gdb/773.
+       
+2002-11-19  Klee Dienes  <kdienes@apple.com>
+            Adam Fedor  <fedor@gnu.org>
+
+       * completer.c (skip_quoted_chars): Renamed from skip_chars.  Add
+       the ability to explicitly specify the quote characters and word
+       break characters; if NULL is specified for either, use the old
+       behavior of using the characters used by the completer.
+       (skip_chars): New function.  Convenience wrapper around
+       skip_quoted_chars to provide the original skip_chars behavior.
+       * completer.h (skip_quoted_chars): Add prototype.
+
+2002-11-19  Andrew Cagney  <ac131313@redhat.com>
+
+       Problems reported by Paul Eggert.
+       * gdbarch.sh: Use `sort -k 3`.  Fix PR gdb/527.
+
+2002-11-19  Andreas Schwab  <schwab@suse.de>
+
+       * m68klinux-nat.c (IS_SIGTRAMP, IS_RT_SIGTRAMP) 
+       (m68k_linux_in_sigtramp, SIGCONTEXT_PC_OFFSET) 
+       (UCONTEXT_PC_OFFSET, m68k_linux_sigtramp_saved_pc) 
+       (m68k_linux_frame_saved_pc): Move to ...
+       * m68klinux-tdep.c: ... here.  New file.
+       * Makefile.in (m68klinux-tdep.o): Add dependencies.
+       * config/m68k/linux.mt (TDEPFILES): Add m68klinux-tdep.o.
+
+2002-11-19  Adam Fedor  <fedor@gnu.org>
+
+       * objc-exp.y: Revert to old skip_quoted usage.
+
+2002-11-19  Adam Fedor  <fedor@gnu.org>
+
+       * Makefile.in (SFILES): Add objc-exp.y objc-lang.c.
+       (objc_lang_h): Define.
+       (YYFILES): Add objc-exp.tab.c.
+       (local-maintainer-clean): Remove objc-exp.tab.c.
+       (objc-exp.tab.c, objc-exp.tab.o, objc-lang.o): New target.
+       
+2002-11-19  Pierre Muller  <muller@ics.u-strasbg.fr>
+
+       * p-exp.y (typecast rule): Add automatic dereference of
+       pascal classes if needed.
+       (THIS): Set current_type.
+       Automatically dereference pascal classes. 
+       (typebase rule): Add ^typebase recognition.
+
+2002-11-18  Adam Fedor  <fedor@gnu.org>
+
+       * expprint.c (print_subexp): Handle OP_OBJC_NSSTRING,
+       OP_OBJC_MSGCALL, and OP_OBJC_SELF.      
+       (op_name): Handle OP_OBJC_SELF.
+       * Makefile.in (expprint.o): Add additional depends.
+
+2002-11-18  Adam Fedor  <fedor@gnu.org>
+
+       * expression.h: Rename ObjC ops to OP_OBJC_MSGCALL,
+       OP_OBJC_SELECTOR, OP_OBJC_NSSTRING, and OP_OBJC_SELF.
+       * parse.c (length_of_subexp, prefixify_subexp): Likewise.
+       * objc-exp.y: Likewise. 
+
+2002-11-18  Adam Fedor  <fedor@gnu.org>
+
+       * gdb/parser-defs.h: (struct objc_class_str): New structure
+       for parsing ObjC classes.
+
+2002-11-18  Andrew Cagney  <ac131313@redhat.com>
+
+       * stack.c (frame_relative_level): Copy function from here ...
+       * frame.c (frame_relative_level): ...to here.
+
+2002-11-18  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.h (enum frame_type): Define.
+       (get_frame_type): Declare.
+       (struct frame_info): Add field `type'.  Delete field
+       signal_handler_caller.
+       (deprecated_set_frame_signal_handler_caller): Declare.
+       * frame.c (get_frame_type): New function.
+       (deprecated_set_frame_type): New function.
+       (create_new_frame): Set the frame's type.
+       (get_prev_frame): Similar.
+       * sparc-tdep.c: Use get_frame_type instead of signal_handler_caller.
+       * s390-tdep.c: Ditto.
+       * m68klinux-nat.c: Ditto.
+       * ns32k-tdep.c: Ditto.
+       * x86-64-linux-tdep.c: Ditto.
+       * vax-tdep.c: Ditto.
+       * rs6000-tdep.c: Ditto.
+       * ppc-linux-tdep.c: Ditto.
+       * i386-interix-tdep.c: Ditto.
+       * mips-tdep.c: Ditto.
+       * m68k-tdep.c: Ditto.
+       * hppa-tdep.c: Ditto.
+       * ia64-tdep.c: Ditto.
+       * cris-tdep.c: Ditto.
+       * arm-tdep.c: Ditto.
+       * alpha-tdep.c: Ditto.
+       * i386-tdep.c: Ditto.
+       * stack.c: Ditto.
+       * ada-lang.c: Ditto.
+       * blockframe.c: Update.
+       * i386-interix-tdep.c (i386_interix_back_one_frame): Use
+       deprecated_set_frame_type instead of signal_handler_caller.
+       * ppc-linux-tdep.c (ppc_linux_init_extra_frame_info): Ditto.
+       * rs6000-tdep.c (rs6000_init_extra_frame_info): Ditto.
+       * breakpoint.h: Delete FIXME suggesting get_frame_type.
+
+2002-11-18   Klee Dienes  <kdienes@apple.com>
+
+       * Makefile.in (buildsym.o): Add dependency for gdb_assert.h.
+
+2002-11-18  Klee Dienes  <kdienes@apple.com>
+
+       * buildsym.c (pop_context): Add comment.
+       
+2002-11-18  Klee Dienes  <kdienes@apple.com>
+
+        * buildsym.h (pop_context): Convert to function, defined in
+       buildsym.c.
+       * buildsym.c: Include gdb_assert.h.
+       (pop_context): Implement as C function.  Add check for stack
+       underflow.
+        * dbxread.c (process_one_symbol): Complain and stop processing
+       that symbol if we are already at the top of the context stack for
+       a function-end N_FUN (this would imply an umatched RBRAC).  Ditto
+       when processing N_RBRAC.
+
+2002-11-16  Daniel Jacobowitz  <drow@mvista.com>
+
+       * config/pa/nm-hppah.h (CHILD_POST_FOLLOW_INFERIOR_BY_CLONE): Don't
+       define.
+       (struct target_waitstatus): Add opaque definition.
+       * corelow.c (init_core_ops): Don't set to_clone_and_follow_inferior.
+       * exec.c (init_exec_ops): Likewise.
+       * fork-child.c (clone_and_follow_inferior): Remove.
+       * hppah-nat.c (child_post_follow_inferior_by_clone): Remove.
+       * inferior.h (clone_and_follow_inferior): Remove prototype.
+       * infrun.c (follow_fork_mode_both): Remove.
+       (follow_fork_mode_kind_names): Remove commented out "both".
+       (follow_inferior_fork): Remove follow_fork_mode_both support.
+       * inftarg.c (child_clone_and_follow_inferior): Remove.
+       (child_post_follow_inferior_by_clone): Remove.
+       (init_child_ops): Don't set to_clone_and_follow_inferior
+       or to_post_follow_inferior_by_clone.
+       * target.c (default_clone_and_follow_inferior): Remove.
+       (cleanup_target): Don't set to_clone_and_follow_inferior
+       or to_post_follow_inferior_by_clone.
+       (find_default_clone_and_follow_inferior): Remove.
+       (init_dummy_target): Don't set to_clone_and_follow_inferior.
+       (debug_to_clone_and_follow_inferior): Remove.
+       (debug_to_post_follow_inferior_by_clone): Remove.
+       (setup_target_debug): Don't set to_clone_and_follow_inferior
+       or to_post_follow_inferior_by_clone.
+       * target.h (struct target_ops): Remove to_clone_and_follow_inferior
+       and to_post_follow_inferior_by_clone.
+       (child_clone_and_follow_inferior): Remove prototype.
+       (child_post_follow_inferior_by_clone): Remove prototype.
+       (target_clone_and_follow_inferior): Remove macro.
+       (target_post_follow_inferior_by_clone): Remove macro.
+       (find_default_clone_and_follow_inferior): Remove prototype.
+
+2002-11-16  Daniel Jacobowitz  <drow@mvista.com>
+
+       * breakpoint.c (bpstat_stop_status): Call inferior_has_forked,
+       inferior_has_vforked, and inferior_has_execd instead of
+       target_has_forked, target_has_vforked, and target_has_execd.
+       * config/pa/nm-hppah.h (CHILD_HAS_FORKED, CHILD_HAS_VFORKED)
+       (CHILD_HAS_EXECD, CHILD_HAS_SYSCALL_EVENT): Don't define.
+       (CHILD_WAIT): Define.
+       (child_wait): Add prototype.
+       * hppah-nat.c (hpux_has_forked): Rename from child_has_forked.
+       Add prototype.
+       (hpux_has_vforked): Likewise, from child_has_vforked.
+       (hpux_has_execd): Likewise, from child_has_execd.
+       (hpux_has_syscall_event): Likewise, from child_has_syscall_event.
+       (not_same_real_pid, child_wait): New, copied from inftarg.c.
+       Call hpux_has_forked, hpux_has_vforked, hpux_has_execd,
+       and hpux_has_syscall_event instead of the target hooks.
+       * infrun.c (inferior_has_forked, inferior_has_vforked)
+       (inferior_has_execd): New functions.
+       * inftarg.c (not_same_real_pid): Remove.
+       (child_wait): Remove references to not_same_real_pid,
+       target_has_forked, target_has_vforked, target_has_execd,
+       and target_has_syscall_event.
+       (child_has_forked, child_has_vforked, child_has_execd)
+       (child_has_syscall_event): Remove.
+       (init_child_ops): Remove references to child_has_forked,
+       child_has_vforked, child_has_execd, and child_has_syscall_event.
+       * infttrace.c (hpux_has_forked): Rename from child_has_forked.
+       (hpux_has_vforked): Likewise, from child_has_vforked.
+       (hpux_has_execd): Likewise, from child_has_execd.
+       (hpux_has_syscall_event): Likewise, from child_has_syscall_event.
+       * target.c (cleanup_target): Remove references to
+       to_has_forked, to_has_vforked, to_has_execd, and
+       to_has_syscall_event.
+       (update_current_target): Likewise.
+       (setup_target_debug): Likewise.
+       (debug_to_has_forked): Remove.
+       (debug_to_has_vforked): Remove.
+       (debug_to_has_execd): Remove.
+       (debug_to_has_syscall_event): Remove.
+       * target.h (struct target_ops): Remove to_has_forked.
+       to_has_vforked, to_has_execd, and to_has_syscall_event.
+       (child_has_forked, child_has_vforked, child_has_execd)
+       (child_has_syscall_event): Remove prototypes.
+       (inferior_has_forked, inferior_has_vforked, inferior_has_execd): Add
+       prototypes.
+       (target_has_forked, target_has_vforked, target_has_execd)
+       (target_has_syscall_event): Remove macros.
+
+2002-11-16  Daniel Jacobowitz  <drow@mvista.com>
+
+       * hppah-nat.c (child_can_follow_vfork_prior_to_exec): Remove.
+       * inftarg.c (child_can_follow_vfork_prior_to_exec): Remove.
+       (init_child_ops): Don't initialize to_can_follow_vfork_prior_to_exec.
+       * infttrace.c (child_can_follow_vfork_prior_to_exec): Remove.
+       * target.c (cleanup_target): Remove reference to
+       to_can_follow_vfork_prior_to_exec.
+       (update_current_target): Likewise.
+       (debug_to_can_follow_vfork_prior_to_exec): Remove.
+       (setup_target_debug): Remove reference to
+       to_can_follow_vfork_prior_to_exec.
+       * target.h (struct target_ops): Remove
+       to_can_follow_vfork_prior_to_exec.
+       (child_can_follow_vfork_prior_to_exec): Remove prototype.
+       (target_can_follow_vfork_prior_to_exec): Remove definition.
+       * config/pa/nm-hppah.h (CHILD_CAN_FOLLOW_VFORK_PRIOR_TO_EXEC): Don't
+       define.
+       * infrun.c (follow_vfork_when_exec): Remove.
+       (follow_inferior_fork): Remove references to follow_vfork_when_exec.
+       (follow_exec): Likewise.
+       (handle_inferior_event): Likewise.
+       (keep_going): Likewise.
+
+2002-11-15  Andrew Cagney  <cagney@redhat.com>
+
+       * frame.c (generic_unwind_get_saved_register): Make static.
+       * frame.h (generic_unwind_get_saved_register): Delete declaration.
+       * avr-tdep.c (avr_gdbarch_init): Do not set get_saved_register,
+       defaults to generic_unwind_get_saved_register.
+       * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+       * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+       * frv-tdep.c (frv_gdbarch_init): Ditto.
+       * i386-tdep.c (i386_gdbarch_init): Ditto.
+       * s390-tdep.c (s390_gdbarch_init): Ditto.
+       * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+       * v850-tdep.c (v850_gdbarch_init): Ditto.
+       * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+       * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+       * config/mn10200/tm-mn10200.h (GET_SAVED_REGISTER): Delete macro.
+
+2002-11-15  Andrew Cagney  <cagney@redhat.com>
+
+       * x86-64-linux-nat.c (i386_sse_regnum_p): New function.  Copy from
+       i386-tdep.c.
+
+2002-11-15  Andrew Cagney  <cagney@redhat.com>
+
+       * frame.h (sigtramp_saved_pc): Delete declaration.
+       * blockframe.c (sigtramp_saved_pc): Delete function.
+       * ns32k-tdep.c (ns32k_sigtramp_saved_pc): New function.
+       (ns32k_frame_saved_pc): Call ns32k_sigtramp_saved_pc.
+       * vax-tdep.c (vax_sigtramp_saved_pc): New function.
+       (vax_frame_saved_pc): Call vax_sigtramp_saved_pc.
+
+2002-11-15  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.c (frame_pc_unwind): New function.
+       (frame_saved_regs_pc_unwind): New function.
+       (frame_register_unwind): Pass unwind_cache instead of
+       register_unwind_cache.
+       (set_unwind_by_pc): Add unwind_pc parameter, set.
+       (create_new_frame): Pass frame->pc_unwind to set_unwind_by_pc.
+       (get_prev_frame): Ditto.
+       * frame.h (frame_pc_unwind_ftype): Declare.
+       (struct frame_info): Add pc_unwind, pc_unwind_cache_p and
+       pc_unwind_cache.  Rename register_unwind_cache to unwind_cache.
+       (frame_pc_unwind): Declare.
+       * dummy-frame.c (dummy_frame_pc_unwind): New function.
+       (struct dummy_frame): Add comment mentioning that values are for
+       previous frame.
+       * dummy-frame.h (dummy_frame_pc_unwind): Declare.
+       * blockframe.c (file_frame_chain_valid): Use frame_pc_unwind.
+       (generic_file_frame_chain_valid): Ditto.
+       * stack.c (frame_info): Ditto.
+
+2002-11-15  David Carlton  <carlton@math.stanford.edu>
+
+       * linespec.c (locate_first_half): New function.
+       (decode_line_1): Move code into locate_first_half.
+
+2002-11-15  Andrew Cagney  <ac131313@redhat.com>
+
+       * complaints.h: Add comment explaining how to eliminate a
+       deprecated_complain call.
+       * complaints.h: Fix spelling errors.
+
+2002-11-15  David Carlton  <carlton@math.stanford.edu>
+
+       * printcmd.c: Remove #include "disasm.h".
+
 2002-12-20  David Carlton  <carlton@math.stanford.edu>
 
        * symtab.c (lookup_symbol_aux_minsyms): Don't call
index 2947317f542bcfcc72f2ab81d9437844c54a94d8..257b718129fa4f27e78adf4901cdd7346ae3fcd1 100644 (file)
@@ -84,7 +84,7 @@ maintainer works with the native maintainer when resolving API issues.
        h8300           --target=h8300hms ,-Werror
                        Maintenance only
 
-       h8500           --target=h8500hms -Werror
+       h8500           (--target=h8500hms broken)
                        Maintenance only
                        Not multi-arch, work in progress
 
@@ -279,9 +279,7 @@ breakpoints         Michael Snyder          msnyder@redhat.com
                        Jim Blandy              jimb@redhat.com
 language support       (Blanket Write Privs Maintainers)
   C++                  Daniel Jacobowitz       dan@debian.org
-  Java support (devolved)
-                       Per Bothner             per@bothner.com
-                       Anthony Green           green@redhat.com
+  Java support         (Global Maintainers)
   Pascal support       Pierre Muller           muller@sources.redhat.com
   Scheme support       Jim Blandy              jimb@redhat.com
 
@@ -300,6 +298,7 @@ testsuite           Fernando Nasser         fnasser@redhat.com
   lib                   Mark Salter             msalter@redhat.com
   gdbtk (gdb.gdbtk)     Keith Seitz             keiths@redhat.com
   c++ (gdb.c++)                Michael Chastain        mec@shout.net
+                       David Carlton           carlton@math.stanford.edu
   mi tests (gdb.mi)     Elena Zannoni           ezannoni@redhat.com
                         Andrew Cagney           cagney@redhat.com
   stabs (gdb.stabs)     Elena Zannoni           ezannoni@redhat.com
@@ -450,6 +449,8 @@ David Taylor (d10v, sparc, utils, defs,
   expression evaluator, language support)      taylor at candd dot org
 J.T. Conklin (dcache, NetBSD, remote)          jtc at redback dot com
 Frank Ch. Eigler (sim)                         fche at redhat dot com
+Per Bothner (Java)                             per at bothner dot com
+Anthony Green (Java)                           green at redhat dot com
 
 
 
index d3a2f4fc60179c4e2cbd726b4fc2937436683723..c42791486a767574d81e420402398dc466cb3e35 100644 (file)
@@ -168,12 +168,12 @@ SUBDIR_CLI_UNINSTALL=
 #
 SUBDIR_MI_OBS = \
        mi-out.o mi-console.o \
-       mi-cmds.o mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o \
+       mi-cmds.o mi-cmd-env.o mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o \
        mi-cmd-disas.o \
        mi-main.o mi-parse.o mi-getopt.o
 SUBDIR_MI_SRCS = \
        mi/mi-out.c mi/mi-console.c \
-       mi/mi-cmds.c \
+       mi/mi-cmds.c mi/mi-cmd-env.c \
        mi/mi-cmd-var.c mi/mi-cmd-break.c mi/mi-cmd-stack.c \
        mi/mi-cmd-disas.c \
        mi/mi-main.c mi/mi-parse.c mi/mi-getopt.c
@@ -261,11 +261,6 @@ ITK_CFLAGS = @ITKHDIR@
 ITK = @ITKLIB@
 ITK_DEPS = @ITK_DEPS@ 
 
-# Where is Tix?  Typically in ../tix.
-TIX_CFLAGS = @TIXHDIR@
-TIX = @TIXLIB@
-TIX_DEPS = @TIX_DEPS@
-
 X11_CFLAGS = @TK_XINCLUDES@
 X11_LDFLAGS =
 X11_LIBS =
@@ -295,7 +290,7 @@ SUBDIR_GDBTK_SRCS = \
        gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c \
        gdbtk/generic/gdbtk-main.c
 SUBDIR_GDBTK_DEPS = \
-       $(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)
+       $(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TK_DEPS) $(TCL_DEPS)
 SUBDIR_GDBTK_INITS = gdbtk/generic/gdbtk.c
 SUBDIR_GDBTK_LDFLAGS=
 SUBDIR_GDBTK_CFLAGS= -DGDBTK
@@ -551,6 +546,7 @@ SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \
        macrotab.c macroexp.c macrocmd.c macroscope.c main.c maint.c \
        mdebugread.c memattr.c mem-break.c minsyms.c mipsread.c \
        nlmread.c \
+       objc-exp.y objc-lang.c \
        objfiles.c osabi.c \
        p-exp.y p-lang.c p-typeprint.c p-valprint.c parse.c printcmd.c \
        regcache.c reggroups.c remote.c \
@@ -593,6 +589,7 @@ remote_sim_h =      $(INCLUDE_DIR)/gdb/remote-sim.h
 demangle_h =    $(INCLUDE_DIR)/demangle.h
 obstack_h =     $(INCLUDE_DIR)/obstack.h
 opcode_m68hc11_h = $(INCLUDE_DIR)/opcode/m68hc11.h
+readline_h =   $(READLINE_SRC)/readline.h
 sh_opc_h =     $(OPCODES_SRC)/sh-opc.h
 gdb_sim_arm_h =        $(INCLUDE_DIR)/gdb/sim-arm.h
 gdb_sim_d10v_h = $(INCLUDE_DIR)/gdb/sim-d10v.h
@@ -670,7 +667,7 @@ gdb_wait_h = gdb_wait.h
 gdbarch_h = gdbarch.h $(dis_asm_h) $(value_h) $(inferior_h)
 gdbcmd_h = gdbcmd.h $(command_h) $(ui_out_h)
 gdbcore_h = gdbcore.h $(bfd_h)
-gdbthread_h = gdbthread.h $(breakpoint_h)
+gdbthread_h = gdbthread.h $(breakpoint_h) $(frame_h)
 gdbtypes_h = gdbtypes.h
 gnu_nat_h = gnu-nat.h
 gregset_h = gregset.h
@@ -678,22 +675,25 @@ i386_linux_tdep_h = i386-linux-tdep.h
 i386_tdep_h = i386-tdep.h $(osabi_h)
 i387_tdep_h = i387-tdep.h
 inf_loop_h = inf-loop.h
-inferior_h = inferior.h $(breakpoint_h) $(target_h)
+inferior_h = inferior.h $(breakpoint_h) $(target_h) $(frame_h)
 jv_lang_h = jv-lang.h
 kod_h = kod.h
 language_h = language.h
 linespec_h = linespec.h
 m2_lang_h = m2-lang.h
+m68k_tdep_h = m68k-tdep.h
 macroexp_h = macroexp.h
 macroscope_h = macroscope.h $(macrotab_h) $(symtab_h)
 macrotab_h = macrotab.h
 main_h = main.h
 memattr_h = memattr.h
 minimon_h = minimon.h
+mips_tdep_h = mips-tdep.h
 mipsnbsd_tdep_h = mipsnbsd-tdep.h
 monitor_h = monitor.h
 nbsd_tdep_h = nbsd-tdep.h
 ns32k_tdep_h = ns32k-tdep.h $(osabi_h)
+objc_lang_h = objc-lang.h
 objfiles_h = objfiles.h $(gdb_obstack_h) $(symfile_h)
 ocd_h = ocd.h
 osabi_h = osabi.h
@@ -872,6 +872,7 @@ SUBDIRS = @SUBDIRS@
 
 # For now, shortcut the "configure GDB for fewer languages" stuff.
 YYFILES = c-exp.tab.c \
+       objc-exp.tab.c \
        ada-exp.tab.c \
        jv-exp.tab.c \
        f-exp.tab.c m2-exp.tab.c p-exp.tab.c
@@ -1137,6 +1138,7 @@ local-maintainer-clean:
        @echo "it deletes files that may require special tools to rebuild."
        rm -f c-exp.tab.c \
                ada-lex.c ada-exp.tab.c \
+               objc-exp.tab.c \
                jv-exp.tab \
                f-exp.tab.c m2-exp.tab.c p-exp.tab.c
        rm -f TAGS $(INFOFILES)
@@ -1231,6 +1233,22 @@ c-exp.tab.c: c-exp.y
        -rm c-exp.tmp
        mv c-exp.new ./c-exp.tab.c
 
+# See comments above ...
+.PRECIOUS: objc-exp.tab.c
+objc-exp.tab.o: objc-exp.tab.c
+objc-exp.tab.c: objc-exp.y
+       $(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/objc-exp.y y.tab.c objc-exp.tmp -- $(YFLAGS) 
+       -sed -e '/extern.*malloc/d' \
+            -e '/extern.*realloc/d' \
+            -e '/extern.*free/d' \
+            -e '/include.*malloc.h/d' \
+            -e 's/malloc/xmalloc/g' \
+            -e 's/realloc/xrealloc/g' \
+            -e '/^#line.*y.tab.c/d' \
+         < objc-exp.tmp > objc-exp.new
+       -rm objc-exp.tmp
+       mv objc-exp.new ./objc-exp.tab.c
+
 # See comments above ...
 .PRECIOUS: jv-exp.tab.c
 jv-exp.tab.o: jv-exp.tab.c
@@ -1361,7 +1379,8 @@ ALLDEPFILES = a68v-nat.c \
        core-sol2.c core-regset.c core-aout.c corelow.c \
        dcache.c delta68-nat.c dpx2-nat.c exec.c fork-child.c \
        go32-nat.c h8300-tdep.c h8500-tdep.c \
-       hp300ux-nat.c hppa-tdep.c hppab-nat.c hppah-nat.c hpread.c \
+       hp300ux-nat.c hppa-tdep.c hppa-hpux-tdep.c \
+       hppab-nat.c hppah-nat.c hpread.c \
        i386-tdep.c i386b-nat.c i386v-nat.c i386-linux-nat.c \
        i386v4-nat.c i386ly-tdep.c \
        i386bsd-nat.c i386bsd-tdep.c i386fbsd-nat.c \
@@ -1425,9 +1444,15 @@ hpux-thread.o: $(srcdir)/hpux-thread.c
 procfs.o: $(srcdir)/procfs.c
        $(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) $(srcdir)/procfs.c
 
+# FIXME: Thread-db.o gets warnings because the definitions of the register
+# sets are different from kernel to kernel.
+thread-db.o: $(srcdir)/thread-db.c
+       $(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) \
+               $(srcdir)/thread-db.c
+
 v850ice.o: $(srcdir)/v850ice.c
        $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) \
-               $(TIX_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) \
+               $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) \
                $(GDBTK_CFLAGS) \
                $(srcdir)/v850ice.c
 
@@ -1447,6 +1472,10 @@ c-exp.tab.o: c-exp.tab.c $(defs_h) $(gdb_string_h) $(expression_h) \
        $(charset_h) \
        $(symfile_h) $(objfiles_h) $(block_h)
 
+objc-exp.tab.o: objc-exp.tab.c $(objc_lang_h) $(defs_h) $(expression_h) \
+       $(gdbtypes_h) $(language_h) $(parser_defs_h) $(symtab_h) $(value_h) \
+       $(bfd_h) $(objfiles_h) $(symfile_h)
+
 jv-exp.tab.o: jv-exp.tab.c jv-lang.h $(defs_h) $(expression_h) \
        $(gdbtypes_h) $(language_h) $(parser_defs_h) $(symtab_h) $(value_h) \
        $(bfd_h) $(objfiles_h) $(symfile_h) $(block_h)
@@ -1474,7 +1503,7 @@ ada-exp.tab.o: ada-exp.tab.c ada-lex.c ada-lang.h \
 
 a68v-nat.o: a68v-nat.c $(defs_h) $(inferior_h) $(regcache_h)
 abug-rom.o: abug-rom.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \
-       $(serial_h) $(regcache_h)
+       $(serial_h) $(regcache_h) $(m68k_tdep_h)
 ada-lang.o: ada-lang.c $(gdb_string_h) $(demangle_h) $(defs_h) $(symtab_h) \
        $(gdbtypes_h) $(gdbcmd_h) $(expression_h) $(parser_defs_h) \
        $(language_h) $(c_lang_h) $(inferior_h) $(symfile_h) $(objfiles_h) \
@@ -1496,7 +1525,7 @@ aix-thread.o: aix-thread.c $(defs_h) $(gdb_assert_h) $(gdbthread_h) \
 alpha-linux-tdep.o: alpha-linux-tdep.c $(defs_h) $(frame_h) $(gdbcore_h) \
        $(value_h) $(alpha_tdep_h)
 alpha-nat.o: alpha-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) $(target_h) \
-       $(regcache_h) $(alpha_tdep_h) $(gregset_h)
+       $(regcache_h) $(alpha_tdep_h) $(gregset_h) $(gdb_string_h)
 alpha-osf1-tdep.o: alpha-osf1-tdep.c $(defs_h) $(frame_h) $(gdbcore_h) \
        $(value_h) $(alpha_tdep_h)
 alpha-tdep.o: alpha-tdep.c $(defs_h) $(frame_h) $(inferior_h) $(symtab_h) \
@@ -1550,14 +1579,13 @@ breakpoint.o: breakpoint.c $(defs_h) $(symtab_h) $(frame_h) $(breakpoint_h) \
        $(command_h) $(inferior_h) $(gdbthread_h) $(target_h) $(language_h) \
        $(gdb_string_h) $(demangle_h) $(annotate_h) $(symfile_h) \
        $(objfiles_h) $(linespec_h) $(completer_h) $(gdb_h) $(ui_out_h) \
-       $(cli_script_h) $(gdb_events_h) $(source_h) $(dictionary_h) \
-       $(block_h)
+       $(cli_script_h) $(gdb_events_h) $(source_h) $(gdb_assert_h) \
+       $(block_h) $(dictionary_h)
 buildsym.o: buildsym.c $(defs_h) $(bfd_h) $(gdb_obstack_h) $(symtab_h) \
-       $(symfile_h) $(objfiles_h) $(gdbtypes_h) $(complaints_h) \
-       $(gdb_string_h) $(expression_h) $(language_h) $(bcache_h) \
-       $(filenames_h) $(macrotab_h) $(demangle_h) $(buildsym_h) \
-       $(stabsread_h) $(dictionary_h) $(gdb_assert_h) $(cp_support_h) \
-       $(block_h)
+       $(symfile_h) $(objfiles_h) $(gdbtypes_h) $(gdb_assert_h) \
+       $(complaints_h) $(gdb_string_h) $(expression_h) $(language_h) \
+       $(bcache_h) $(filenames_h) $(macrotab_h) $(demangle_h) $(buildsym_h) \
+       $(stabsread_h) $(dictionary_h) $(cp_support_h) $(block_h)
 builtin-regs.o: builtin-regs.c $(defs_h) $(builtin_regs_h) $(gdbtypes_h) \
        $(gdb_string_h) $(gdb_assert_h)
 c-lang.o: c-lang.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \
@@ -1587,7 +1615,7 @@ coffread.o: coffread.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(demangle_h) \
 complaints.o: complaints.c $(defs_h) $(complaints_h) $(gdb_assert_h) \
        $(command_h) $(gdbcmd_h)
 completer.o: completer.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \
-       $(filenames_h) $(cli_decode_h) $(gdbcmd_h) $(completer_h)
+       $(filenames_h) $(cli_decode_h) $(gdbcmd_h) $(completer_h) $(readline_h)
 copying.o: copying.c $(defs_h) $(command_h) $(gdbcmd_h)
 core-aout.o: core-aout.c $(defs_h) $(gdbcore_h) $(value_h) $(regcache_h) \
        $(gdb_dirent_h) $(gdb_stat_h)
@@ -1600,7 +1628,7 @@ corefile.o: corefile.c $(defs_h) $(gdb_string_h) $(inferior_h) $(symtab_h) \
        $(dis_asm_h) $(gdb_stat_h) $(completer_h)
 corelow.o: corelow.c $(defs_h) $(gdb_string_h) $(frame_h) $(inferior_h) \
        $(symtab_h) $(command_h) $(bfd_h) $(target_h) $(gdbcore_h) \
-       $(gdbthread_h) $(regcache_h) $(symfile_h)
+       $(gdbthread_h) $(regcache_h) $(symfile_h) $(readline_h)
 cp-abi.o: cp-abi.c $(defs_h) $(value_h) $(cp_abi_h) $(gdb_string_h)
 cp-support.o: cp-support.c $(defs_h) $(cp_support_h) $(gdb_string_h) \
        $(demangle_h) $(gdb_obstack_h) $(gdb_assert_h) $(symtab_h) \
@@ -1611,7 +1639,7 @@ cp-valprint.o: cp-valprint.c $(defs_h) $(gdb_obstack_h) $(symtab_h) \
        $(demangle_h) $(annotate_h) $(gdb_string_h) $(c_lang_h) $(target_h) \
        $(cp_abi_h)
 cpu32bug-rom.o: cpu32bug-rom.c $(defs_h) $(gdbcore_h) $(target_h) \
-       $(monitor_h) $(serial_h) $(regcache_h)
+       $(monitor_h) $(serial_h) $(regcache_h) $(m68k_tdep_h)
 cris-tdep.o: cris-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(inferior_h) \
        $(gdbtypes_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) $(value_h) \
        $(opcode_cris_h) $(arch_utils_h) $(regcache_h) $(symfile_h) \
@@ -1624,7 +1652,7 @@ d10v-tdep.o: d10v-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(gdbtypes_h) \
        $(sim_regno_h)
 # OBSOLETE d30v-tdep.o: d30v-tdep.c
 dbug-rom.o: dbug-rom.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \
-       $(serial_h) $(regcache_h)
+       $(serial_h) $(regcache_h) $(m68k_tdep_h)
 dbxread.o: dbxread.c $(defs_h) $(gdb_string_h) $(gdb_obstack_h) \
        $(gdb_stat_h) $(symtab_h) $(breakpoint_h) $(target_h) $(gdbcore_h) \
        $(libaout_h) $(symfile_h) $(objfiles_h) $(buildsym_h) $(stabsread_h) \
@@ -1671,12 +1699,14 @@ eval.o: eval.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \
 event-loop.o: event-loop.c $(defs_h) $(event_loop_h) $(event_top_h) \
        $(gdb_string_h)
 event-top.o: event-top.c $(defs_h) $(top_h) $(inferior_h) $(target_h) \
-       $(terminal_h) $(event_loop_h) $(event_top_h) $(gdbcmd_h)
+       $(terminal_h) $(event_loop_h) $(event_top_h) $(gdbcmd_h) $(readline_h)
 exec.o: exec.c $(defs_h) $(frame_h) $(inferior_h) $(target_h) $(gdbcmd_h) \
        $(language_h) $(symfile_h) $(objfiles_h) $(completer_h) $(value_h) \
-       $(gdb_string_h) $(gdbcore_h) $(gdb_stat_h) $(xcoffsolib_h)
+       $(gdb_string_h) $(gdbcore_h) $(gdb_stat_h) $(xcoffsolib_h) \
+       $(readline_h)
 expprint.o: expprint.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \
-       $(value_h) $(language_h) $(parser_defs_h) $(block_h)
+       $(value_h) $(language_h) $(parser_defs_h) $(target_h) $(gdb_string_h) \
+       $(block_h)
 f-lang.o: f-lang.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \
        $(expression_h) $(parser_defs_h) $(language_h) $(f_lang_h) \
        $(valprint_h)
@@ -1697,8 +1727,9 @@ fork-child.o: fork-child.c $(defs_h) $(gdb_string_h) $(frame_h) \
        $(terminal_h) $(gdbthread_h) $(command_h)
 # OBSOLETE fr30-tdep.o: fr30-tdep.c
 frame.o: frame.c $(defs_h) $(frame_h) $(target_h) $(value_h) $(inferior_h) \
-       $(regcache_h) $(gdb_assert_h) $(gdb_obstack_h) $(dummy_frame_h) \
-       $(gdbcore_h) $(annotate_h)
+       $(regcache_h) $(gdb_assert_h) $(gdb_string_h) $(builtin_regs_h) \
+       $(gdb_obstack_h) $(dummy_frame_h) $(gdbcore_h) $(annotate_h) \
+       $(language_h)
 frv-tdep.o: frv-tdep.c $(defs_h) $(inferior_h) $(symfile_h) $(gdbcore_h) \
        $(arch_utils_h) $(regcache_h)
 gcore.o: gcore.c $(defs_h) $(cli_decode_h) $(inferior_h) $(gdbcore_h) \
@@ -1739,7 +1770,8 @@ hpacc-abi.o: hpacc-abi.c $(defs_h) $(value_h) $(gdb_regex_h) $(gdb_string_h) \
 hppa-tdep.o: hppa-tdep.c $(defs_h) $(frame_h) $(bfd_h) $(inferior_h) \
        $(value_h) $(regcache_h) $(completer_h) $(symtab_h) $(a_out_encap_h) \
        $(gdb_stat_h) $(gdb_wait_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) \
-       $(symfile_h) $(objfiles_h) $(language_h)
+       $(symfile_h) $(objfiles_h) $(language_h) $(osabi_h)
+hppa-hpux-tdep.o: hppa-hpux-tdep.c $(defs_h) $(arch_utils_h) $(osabi_h)
 hppab-nat.o: hppab-nat.c $(defs_h) $(inferior_h) $(target_h) $(regcache_h)
 hppah-nat.o: hppah-nat.c $(defs_h) $(inferior_h) $(target_h) $(gdbcore_h) \
        $(gdb_wait_h) $(regcache_h)
@@ -1799,7 +1831,7 @@ ia64-aix-nat.o: ia64-aix-nat.c $(defs_h) $(inferior_h) $(target_h) \
        $(objfiles_h) $(gdb_stat_h)
 ia64-aix-tdep.o: ia64-aix-tdep.c $(defs_h)
 ia64-linux-nat.o: ia64-linux-nat.c $(defs_h) $(inferior_h) $(target_h) \
-       $(gdbcore_h) $(regcache_h) $(gregset_h)
+       $(gdbcore_h) $(regcache_h) $(gregset_h) $(gdb_string_h)
 ia64-linux-tdep.o: ia64-linux-tdep.c $(defs_h) $(arch_utils_h)
 ia64-tdep.o: ia64-tdep.c $(defs_h) $(inferior_h) $(symfile_h) $(gdbcore_h) \
        $(arch_utils_h) $(floatformat_h) $(regcache_h) $(doublest_h) \
@@ -1879,10 +1911,12 @@ m68hc11-tdep.o: m68hc11-tdep.c $(defs_h) $(frame_h) $(symtab_h) \
 m68k-stub.o: m68k-stub.c
 m68k-tdep.o: m68k-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(gdbcore_h) \
        $(value_h) $(gdb_string_h) $(inferior_h) $(regcache_h) \
-       $(arch_utils_h) $(gregset_h)
+       $(arch_utils_h) $(gregset_h) $(m68k_tdep_h)
 m68klinux-nat.o: m68klinux-nat.c $(defs_h) $(frame_h) $(inferior_h) \
        $(language_h) $(gdbcore_h) $(regcache_h) $(gdb_stat_h) \
-       $(floatformat_h) $(target_h) $(gregset_h)
+       $(floatformat_h) $(target_h) $(gregset_h) $(m68k_tdep_h)
+m68klinux-tdep.o: m68klinux-tdep.c $(defs_h) $(gdbcore_h) $(frame_h) \
+       $(target_h)
 m68knbsd-nat.o: m68knbsd-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) \
        $(regcache_h)
 m68knbsd-tdep.o: m68knbsd-tdep.c $(defs_h) $(gdbtypes_h) $(regcache_h)
@@ -1924,13 +1958,13 @@ minsyms.o: minsyms.c $(defs_h) $(gdb_string_h) $(symtab_h) $(bfd_h) \
 mips-irix-tdep.o: mips-irix-tdep.c $(defs_h) $(osabi_h) $(elf_bfd_h)
 mips-linux-nat.o: mips-linux-nat.c $(defs_h)
 mips-linux-tdep.o: mips-linux-tdep.c $(defs_h) $(gdbcore_h) $(target_h) \
-       $(solib_svr4_h)
+       $(solib_svr4_h) $(osabi_h) $(gdb_string_h)
 mips-nat.o: mips-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) $(regcache_h)
 mips-tdep.o: mips-tdep.c $(defs_h) $(gdb_string_h) $(frame_h) $(inferior_h) \
        $(symtab_h) $(value_h) $(gdbcmd_h) $(language_h) $(gdbcore_h) \
        $(symfile_h) $(objfiles_h) $(gdbtypes_h) $(target_h) $(arch_utils_h) \
-       $(regcache_h) $(osabi_h) $(opcode_mips_h) $(elf_mips_h) $(elf_bfd_h) \
-       $(symcat_h) $(block_h)
+       $(regcache_h) $(osabi_h) $(mips_tdep_h) $(opcode_mips_h) \
+       $(elf_mips_h) $(elf_bfd_h) $(symcat_h) $(block_h)
 mipsm3-nat.o: mipsm3-nat.c $(defs_h) $(inferior_h) $(regcache_h)
 mipsnbsd-nat.o: mipsnbsd-nat.c $(defs_h) $(inferior_h) $(regcache_h) \
        $(mipsnbsd_tdep_h)
@@ -1965,6 +1999,11 @@ ns32k-tdep.o: ns32k-tdep.c $(defs_h) $(frame_h) $(gdbtypes_h) $(gdbcore_h) \
 ns32knbsd-nat.o: ns32knbsd-nat.c $(defs_h) $(inferior_h) $(target_h) \
        $(gdbcore_h) $(regcache_h)
 ns32knbsd-tdep.o: ns32knbsd-tdep.c $(defs_h) $(ns32k_tdep_h) $(gdb_string_h)
+objc-lang.o: objc-lang.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \
+       $(parser_defs_h) $(language_h) $(c_lang_h) $(objc_lang_h) \
+       $(complaints_h) $(value_h) $(symfile_h) $(objfiles_h) \
+       $(gdb_string_h) $(target_h) $(gdbcore_h) $(gdbcmd_h) $(frame_h) \
+       $(gdb_regex_h) $(regcache_h)
 objfiles.o: objfiles.c $(defs_h) $(bfd_h) $(symtab_h) $(symfile_h) \
        $(objfiles_h) $(gdb_stabs_h) $(target_h) $(bcache_h) $(gdb_stat_h) \
        $(gdb_obstack_h) $(gdb_string_h) $(breakpoint_h) $(mmalloc_h) \
@@ -1999,7 +2038,7 @@ ppc-bdm.o: ppc-bdm.c $(defs_h) $(gdbcore_h) $(gdb_string_h) $(frame_h) \
        $(objfiles_h) $(gdb_stabs_h) $(serial_h) $(ocd_h) $(ppc_tdep_h) \
        $(regcache_h)
 ppc-linux-nat.o: ppc-linux-nat.c $(defs_h) $(frame_h) $(inferior_h) \
-       $(gdbcore_h) $(regcache_h) $(gregset_h) $(ppc_tdep_h)
+       $(gdbcore_h) $(regcache_h) $(gregset_h) $(ppc_tdep_h) $(gdb_string_h)
 ppc-linux-tdep.o: ppc-linux-tdep.c $(defs_h) $(frame_h) $(inferior_h) \
        $(symtab_h) $(target_h) $(gdbcore_h) $(gdbcmd_h) $(symfile_h) \
        $(objfiles_h) $(regcache_h) $(value_h) $(solib_svr4_h) $(ppc_tdep_h)
@@ -2044,7 +2083,7 @@ remote-es.o: remote-es.c $(defs_h) $(gdb_string_h) $(frame_h) $(inferior_h) \
        $(target_h) $(command_h) $(symfile_h) $(remote_utils_h) $(gdbcore_h) \
        $(serial_h) $(regcache_h) $(value_h)
 remote-est.o: remote-est.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \
-       $(serial_h) $(regcache_h)
+       $(serial_h) $(regcache_h) $(m68k_tdep_h)
 remote-hms.o: remote-hms.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \
        $(serial_h) $(regcache_h)
 remote-mips.o: remote-mips.c $(defs_h) $(inferior_h) $(bfd_h) $(symfile_h) \
@@ -2101,7 +2140,7 @@ remote.o: remote.c $(defs_h) $(gdb_string_h) $(inferior_h) $(bfd_h) \
        $(event_loop_h) $(event_top_h) $(inf_loop_h) $(serial_h) \
        $(gdbcore_h)
 rom68k-rom.o: rom68k-rom.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \
-       $(serial_h) $(regcache_h) $(value_h)
+       $(serial_h) $(regcache_h) $(value_h) $(m68k_tdep_h)
 rs6000-nat.o: rs6000-nat.c $(defs_h) $(inferior_h) $(target_h) $(gdbcore_h) \
        $(xcoffsolib_h) $(symfile_h) $(objfiles_h) $(libbfd_h) $(bfd_h) \
        $(gdb_stabs_h) $(regcache_h) $(arch_utils_h) $(language_h) \
@@ -2167,7 +2206,7 @@ solib-svr4.o: solib-svr4.c $(defs_h) $(elf_external_h) $(elf_common_h) \
 solib.o: solib.c $(defs_h) $(gdb_string_h) $(symtab_h) $(bfd_h) $(symfile_h) \
        $(objfiles_h) $(gdbcore_h) $(command_h) $(target_h) $(frame_h) \
        $(gdb_regex_h) $(inferior_h) $(environ_h) $(language_h) $(gdbcmd_h) \
-       $(completer_h) $(filenames_h) $(solist_h)
+       $(completer_h) $(filenames_h) $(solist_h) $(readline_h)
 somread.o: somread.c $(defs_h) $(bfd_h) $(symtab_h) $(symfile_h) \
        $(objfiles_h) $(buildsym_h) $(stabsread_h) $(gdb_stabs_h) \
        $(complaints_h) $(gdb_string_h) $(demangle_h) $(som_h) $(libhppa_h)
@@ -2179,7 +2218,7 @@ source.o: source.c $(defs_h) $(symtab_h) $(expression_h) $(language_h) \
        $(command_h) $(source_h) $(gdbcmd_h) $(frame_h) $(value_h) \
        $(gdb_string_h) $(gdb_stat_h) $(gdbcore_h) $(gdb_regex_h) \
        $(symfile_h) $(objfiles_h) $(annotate_h) $(gdbtypes_h) $(linespec_h) \
-       $(filenames_h) $(completer_h) $(ui_out_h)
+       $(filenames_h) $(completer_h) $(ui_out_h) $(readline_h)
 sparc-linux-nat.o: sparc-linux-nat.c $(defs_h) $(regcache_h) $(gregset_h)
 sparc-nat.o: sparc-nat.c $(defs_h) $(inferior_h) $(target_h) $(gdbcore_h) \
        $(regcache_h)
@@ -2221,7 +2260,7 @@ symfile.o: symfile.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(gdbcore_h) \
        $(gdbcmd_h) $(breakpoint_h) $(language_h) $(complaints_h) \
        $(demangle_h) $(inferior_h) $(gdb_stabs_h) $(gdb_obstack_h) \
        $(completer_h) $(bcache_h) $(gdb_string_h) $(gdb_stat_h) $(source_h) \
-       $(block_h)
+       $(readline_h) $(block_h)
 symm-nat.o: symm-nat.c $(defs_h) $(frame_h) $(inferior_h) $(symtab_h) \
        $(target_h) $(regcache_h) $(gdb_stat_h) $(gdbcore_h) $(gdbcore_h)
 symm-tdep.o: symm-tdep.c $(defs_h) $(frame_h) $(inferior_h) $(symtab_h) \
@@ -2229,7 +2268,7 @@ symm-tdep.o: symm-tdep.c $(defs_h) $(frame_h) $(inferior_h) $(symtab_h) \
 symmisc.o: symmisc.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(bfd_h) \
        $(symfile_h) $(objfiles_h) $(breakpoint_h) $(command_h) \
        $(gdb_obstack_h) $(language_h) $(bcache_h) $(dictionary_h) \
-       $(gdb_string_h) $(block_h)
+       $(gdb_string_h) $(readline_h) $(block_h)
 symtab.o: symtab.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(gdbcore_h) \
        $(frame_h) $(target_h) $(value_h) $(symfile_h) $(objfiles_h)      \
        $(gdbcmd_h) $(call_cmds_h) $(gdb_regex_h) $(expression_h) \
@@ -2252,12 +2291,12 @@ top.o: top.c $(defs_h) $(gdbcmd_h) $(call_cmds_h) $(cli_cmds_h) \
        $(expression_h) $(value_h) $(language_h) $(terminal_h) $(annotate_h) \
        $(completer_h) $(top_h) $(version_h) $(serial_h) $(doublest_h) \
        $(gdb_assert_h) $(event_top_h) $(gdb_string_h) $(gdb_stat_h) \
-       $(ui_out_h) $(cli_out_h)
+       $(ui_out_h) $(cli_out_h) $(readline_h)
 tracepoint.o: tracepoint.c $(defs_h) $(symtab_h) $(frame_h) $(gdbtypes_h) \
        $(expression_h) $(gdbcmd_h) $(value_h) $(target_h) $(language_h) \
        $(gdb_string_h) $(inferior_h) $(tracepoint_h) $(remote_h) \
        $(linespec_h) $(regcache_h) $(completer_h) $(gdb_events_h) $(ax_h) \
-       $(ax_gdb_h) $(dictionary_h) $(block_h)
+       $(ax_gdb_h) $(dictionary_h) $(block_h) $(readline_h)
 typeprint.o: typeprint.c $(defs_h) $(gdb_obstack_h) $(bfd_h) $(symtab_h) \
        $(gdbtypes_h) $(expression_h) $(value_h) $(gdbcore_h) $(command_h) \
        $(gdbcmd_h) $(target_h) $(language_h) $(cp_abi_h) $(gdb_string_h)
@@ -2267,7 +2306,7 @@ ui-out.o: ui-out.c $(defs_h) $(gdb_string_h) $(expression_h) $(language_h) \
 utils.o: utils.c $(config_h) $(defs_h) $(gdb_assert_h) $(gdb_string_h) \
        $(event_top_h) $(gdbcmd_h) $(serial_h) $(bfd_h) $(target_h) \
        $(demangle_h) $(expression_h) $(language_h) $(annotate_h) \
-       $(filenames_h) $(inferior_h) $(mmalloc_h) $(charset_h)
+       $(filenames_h) $(inferior_h) $(mmalloc_h) $(charset_h) $(readline_h)
 uw-thread.o: uw-thread.c $(defs_h) $(gdbthread_h) $(target_h) $(inferior_h) \
        $(regcache_h) $(gregset_h)
 v850-tdep.o: v850-tdep.c $(defs_h) $(frame_h) $(inferior_h) $(target_h) \
@@ -2346,7 +2385,7 @@ cli-decode.o: $(srcdir)/cli/cli-decode.c $(defs_h) $(symtab_h) \
        $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-decode.c
 cli-dump.o: $(srcdir)/cli/cli-dump.c $(defs_h) $(gdb_string_h) \
        $(cli_decode_h) $(cli_cmds_h) $(value_h) $(completer_h) \
-       $(cli_dump_h) $(gdb_assert_h) $(target_h)
+       $(cli_dump_h) $(gdb_assert_h) $(target_h) $(readline_h)
        $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-dump.c
 cli-script.o: $(srcdir)/cli/cli-script.c $(defs_h) $(value_h) $(language_h) \
        $(ui_out_h) $(gdb_string_h) $(top_h) $(cli_cmds_h) $(cli_decode_h) \
@@ -2428,7 +2467,7 @@ gdbtk.o: $(srcdir)/gdbtk/generic/gdbtk.c \
        $(bfd_h) $(symfile_h) $(objfiles_h) $(target_h) $(gdb_string_h) \
        $(tracepoint_h) $(top_h) 
        $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) \
-        $(ITK_CFLAGS) $(TIX_CFLAGS) \
+        $(ITK_CFLAGS)  \
        $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) $(GDBTK_CFLAGS)\
                $(srcdir)/gdbtk/generic/gdbtk.c \
                -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\" -DSRC_DIR=\"$(GDBTK_SRC_DIR)\"
@@ -2439,7 +2478,7 @@ gdbtk-bp.o: $(srcdir)/gdbtk/generic/gdbtk-bp.c \
                $(defs_h) $(breakpoint_h) $(tracepoint_h) \
                $(symfile_h) $(symtab_h) $(gdb_string_h)
        $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) \
-       $(TIX_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)   \
+        $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)   \
        $(GDBTK_CFLAGS) $(srcdir)/gdbtk/generic/gdbtk-bp.c \
        -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"
 
@@ -2449,7 +2488,7 @@ gdbtk-cmds.o: $(srcdir)/gdbtk/generic/gdbtk-cmds.c \
        $(command_h) $(bfd_h) $(top_h) $(symfile_h) $(objfiles_h) $(target_h) \
        $(gdb_string_h) $(tracepoint_h) $(source_h) $(regcache_h)
        $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS)        \
-       $(TIX_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)          \
+        $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)               \
        $(GDBTK_CFLAGS) $(srcdir)/gdbtk/generic/gdbtk-cmds.c            \
        -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"
 
@@ -2458,13 +2497,13 @@ gdbtk-hooks.o: $(srcdir)/gdbtk/generic/gdbtk-hooks.c \
        $(symtab_h) $(inferior_h) $(command_h) \
        $(bfd_h) $(symfile_h) $(objfiles_h) $(target_h) $(gdb_string_h) \
        $(tracepoint_h)
-       $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) $(TIX_CFLAGS) \
+       $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS)  \
        $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) $(GDBTK_CFLAGS)\
                $(srcdir)/gdbtk/generic/gdbtk-hooks.c -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"
 
 gdbtk-main.o: $(srcdir)/gdbtk/generic/gdbtk-main.c $(defs_h) $(main_h) \
        $(gdb_string_h)
-       $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) $(TIX_CFLAGS) \
+       $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS)  \
        $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) $(GDBTK_CFLAGS)\
                $(srcdir)/gdbtk/generic/gdbtk-main.c -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"
 
@@ -2473,7 +2512,7 @@ gdbtk-register.o: $(srcdir)/gdbtk/generic/gdbtk-register.c \
                $(srcdir)/gdbtk/generic/gdbtk-cmds.h \
                $(defs_h) $(frame_h) $(value_h) $(gdb_string_h)
        $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) \
-       $(TIX_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)   \
+        $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)   \
        $(GDBTK_CFLAGS) $(srcdir)/gdbtk/generic/gdbtk-register.c \
        -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"
 
@@ -2483,14 +2522,14 @@ gdbtk-stack.o: $(srcdir)/gdbtk/generic/gdbtk-stack.c \
        $(defs_h) $(frame_h) $(value_h) $(target_h) $(breakpoint_h) \
        $(linespec_h)
        $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) \
-       $(TIX_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)   \
+        $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS)   \
        $(GDBTK_CFLAGS) $(srcdir)/gdbtk/generic/gdbtk-stack.c \
        -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\"
 
 gdbtk-varobj.o: $(srcdir)/gdbtk/generic/gdbtk-varobj.c \
                $(srcdir)/gdbtk/generic/gdbtk.h \
                $(defs_h) $(value_h) $(varobj_h) $(gdb_string_h)
-       $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS) $(TIX_CFLAGS) \
+       $(CC) -c $(INTERNAL_CFLAGS) $(IDE_CFLAGS) $(ITCL_CFLAGS)  \
        $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) $(GDBTK_CFLAGS)\
                $(srcdir)/gdbtk/generic/gdbtk-varobj.c
 
@@ -2513,6 +2552,10 @@ mi-cmd-break.o: $(srcdir)/mi/mi-cmd-break.c $(defs_h) $(mi_cmds_h) \
 mi-cmd-disas.o: $(srcdir)/mi/mi-cmd-disas.c $(defs_h) $(target_h) $(value_h) \
        $(mi_cmds_h) $(mi_getopt_h) $(ui_out_h) $(gdb_string_h) $(disasm_h)
        $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmd-disas.c
+mi-cmd-env.o: $(srcdir)/mi/mi-cmd-env.c $(defs_h) $(mi_cmds_h) $(ui_out_h) \
+       $(mi_out_h) $(varobj_h) $(value_h) $(gdb_string_h) $(inferior.h) \
+       $(mi_getopt_h) $(environ_h) $(gdbcmd_h) $(top_h)
+       $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmd-env.c
 mi-cmd-stack.o: $(srcdir)/mi/mi-cmd-stack.c $(defs_h) $(target_h) $(frame_h) \
        $(value_h) $(mi_cmds_h) $(ui_out_h) $(symtab_h) $(dictionary_h) \
        $(block_h)
@@ -2597,7 +2640,7 @@ tui-hooks.o: $(srcdir)/tui/tui-hooks.c $(config_h) $(defs_h) $(symtab_h) \
        $(target_h) $(gdbcore_h) $(event_loop_h) $(frame_h) $(breakpoint_h) \
        $(gdb_events_h) $(tui_h) $(tuiData_h) $(tuiLayout_h) $(tuiIO_h) \
        $(tuiRegs_h) $(tuiWin_h) $(tuiStack_h) $(tuiDataWin_h) \
-       $(tuiSourceWin_h)
+       $(tuiSourceWin_h) $(readline_h)
        $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/tui/tui-hooks.c
 tui-out.o: $(srcdir)/tui/tui-out.c $(defs_h) $(ui_out_h) $(tui_h) \
        $(gdb_string_h) $(gdb_assert_h)
@@ -2655,7 +2698,8 @@ tuiStack.o: $(srcdir)/tui/tuiStack.c $(config_h) $(defs_h) $(symtab_h) \
 tuiWin.o: $(srcdir)/tui/tuiWin.c $(config_h) $(defs_h) $(command_h) \
        $(symtab_h) $(breakpoint_h) $(frame_h) $(cli_cmds_h) $(tui_h) \
        $(tuiData_h) $(tuiGeneralWin_h) $(tuiStack_h) $(tuiRegs_h) \
-       $(tuiDisassem_h) $(tuiSource_h) $(tuiSourceWin_h) $(tuiDataWin_h)
+       $(tuiDisassem_h) $(tuiSource_h) $(tuiSourceWin_h) $(tuiDataWin_h) \
+       $(readline_h)
        $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/tui/tuiWin.c
 
 #
index 0ba805d88d55b92135a585964b203a88e2b8e846..f9feaf095ba702017d15bb503338b01fc9cb6773 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -31,6 +31,14 @@ The GNU Source-Level Debugger''.
 
 *** Changes in GDB 5.3:
 
+* GNU/Linux shared library multi-threaded performance improved.
+
+When debugging a multi-threaded application on GNU/Linux, GDB now uses
+`/proc', in preference to `ptrace' for memory reads.  This may result
+in an improvement in the start-up time of multi-threaded, shared
+library applications when run under GDB.  One GDB user writes: ``loads
+shared libs like mad''.
+
 * ``gdbserver'' now supports multi-threaded applications on some targets
 
 Support for debugging multi-threaded applications which use  
index 8a9e8ff47c7fdbc1925997c9b7ea48eba6d7e7c9..d3a9c2e82df28698a096e3cad33dba06804213ca 100644 (file)
@@ -28,6 +28,8 @@
 #include "serial.h"
 #include "regcache.h"
 
+#include "m68k-tdep.h"
+
 /* Prototypes for local functions. */
 
 static void abug_open (char *args, int from_tty);
@@ -55,12 +57,12 @@ abug_supply_register (char *regname, int regnamelen, char *val, int vallen)
     case 'D':
       if (regname[1] < '0' || regname[1] > '7')
        return;
-      regno = regname[1] - '0' + D0_REGNUM;
+      regno = regname[1] - '0' + M68K_D0_REGNUM;
       break;
     case 'A':
       if (regname[1] < '0' || regname[1] > '7')
        return;
-      regno = regname[1] - '0' + A0_REGNUM;
+      regno = regname[1] - '0' + M68K_A0_REGNUM;
       break;
     default:
       return;
index 619b0ae97b4ffef37e7316f10cd86fd55ab1a553..88c15e1263a48ae81295358016f1ec7735bf9b92 100644 (file)
@@ -49,6 +49,9 @@
 /* Define if <sys/procfs.h> has pr_siginfo64_t */
 #undef HAVE_PR_SIGINFO64_T
 
+/* Define if the pread64 function is available.  */
+#undef HAVE_PREAD64
+
 /* Define if <link.h> exists and defines struct link_map which has
    members with an ``l_'' prefix.  (For Solaris, SVR4, and
    SVR4-like systems.) */
index 8aa4602475a7b0bc2e9d447760e676965a0eaffa..ef6876d17cd216dc6936a0bccd470e295150cf97 100644 (file)
@@ -733,132 +733,6 @@ AC_SUBST(ITKHDIR)
 #AC_SUBST(ITKLIB)
 ])
 
-# check for Tix headers. 
-
-AC_DEFUN(CY_AC_PATH_TIXH, [
-AC_MSG_CHECKING(for Tix private headers. srcdir=${srcdir})
-if test x"${ac_cv_c_tixh}" = x ; then
-  for i in ${srcdir}/../tix ${srcdir}/../../tix ${srcdir}/../../../tix ; do
-    if test -f $i/generic/tix.h ; then
-      ac_cv_c_tixh=`(cd $i/generic; pwd)`
-      break
-    fi
-  done
-fi
-if test x"${ac_cv_c_tixh}" = x ; then
-  TIXHDIR="# no Tix private headers found"
-  AC_MSG_ERROR([Can't find Tix private headers])
-fi
-if test x"${ac_cv_c_tixh}" != x ; then
-     TIXHDIR="-I${ac_cv_c_tixh}"
-fi
-AC_SUBST(TIXHDIR)
-])
-
-AC_DEFUN(CY_AC_PATH_TIXCONFIG, [
-#
-# Ok, lets find the tix configuration
-# First, look for one uninstalled.  
-# the alternative search directory is invoked by --with-itkconfig
-#
-
-if test x"${no_tix}" = x ; then
-  # we reset no_tix in case something fails here
-  no_tix=true
-  AC_ARG_WITH(tixconfig, [  --with-tixconfig        Directory containing tix configuration (tixConfig.sh)],
-         with_tixconfig=${withval})
-  AC_MSG_CHECKING([for Tix configuration])
-  AC_CACHE_VAL(ac_cv_c_tixconfig,[
-
-  # First check to see if --with-tixconfig was specified.
-  if test x"${with_tixconfig}" != x ; then
-    if test -f "${with_tixconfig}/tixConfig.sh" ; then
-      ac_cv_c_tixconfig=`(cd ${with_tixconfig}; pwd)`
-    else
-      AC_MSG_ERROR([${with_tixconfig} directory doesn't contain tixConfig.sh])
-    fi
-  fi
-
-  # then check for a private Tix library
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    for i in \
-               ../tix \
-               `ls -dr ../tix 2>/dev/null` \
-               ../../tix \
-               `ls -dr ../../tix 2>/dev/null` \
-               ../../../tix \
-               `ls -dr ../../../tix 2>/dev/null` ; do
-      echo "**** Looking at $i - with ${configdir}"
-      if test -f "$i/tixConfig.sh" ; then
-        ac_cv_c_tixconfig=`(cd $i; pwd)`
-       break
-      fi
-    done
-  fi
-  # check in a few common install locations
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do
-      echo "**** Looking at $i"
-      if test -f "$i/tixConfig.sh" ; then
-        ac_cv_c_tixconfig=`(cd $i; pwd)`
-       break
-      fi
-    done
-  fi
-  # check in a few other private locations
-  echo "**** Other private locations"
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    for i in \
-               ${srcdir}/../tix \
-               `ls -dr ${srcdir}/../tix 2>/dev/null` ; do
-      echo "**** Looking at $i - with ${configdir}"
-      if test -f "$i/${configdir}/tixConfig.sh" ; then
-        ac_cv_c_tixconfig=`(cd $i/${configdir}; pwd)`
-       break
-      fi
-    done
-  fi
-  ])
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    TIXCONFIG="# no Tix configs found"
-    AC_MSG_WARN(Can't find Tix configuration definitions)
-  else
-    no_tix=
-    TIXCONFIG=${ac_cv_c_tixconfig}/tixConfig.sh
-    AC_MSG_RESULT(found $TIXCONFIG)
-  fi
-fi
-
-])
-
-# Defined as a separate macro so we don't have to cache the values
-# from PATH_TIXCONFIG (because this can also be cached).
-AC_DEFUN(CY_AC_LOAD_TIXCONFIG, [
-    if test -f "$TIXCONFIG" ; then
-      . $TIXCONFIG
-    fi
-
-    AC_SUBST(TIX_VERSION)
-dnl not actually used, don't export to save symbols
-dnl    AC_SUBST(TIX_MAJOR_VERSION)
-dnl    AC_SUBST(TIX_MINOR_VERSION)
-dnl    AC_SUBST(TIX_DEFS)
-
-dnl not used, don't export to save symbols
-dnl    dnl AC_SUBST(TIX_LIB_FILE)
-
-dnl not used outside of configure
-dnl    AC_SUBST(TIX_LIBS)
-dnl not used, don't export to save symbols
-dnl    AC_SUBST(TIX_PREFIX)
-
-dnl not used, don't export to save symbols
-dnl    AC_SUBST(TIX_EXEC_PREFIX)
-
-dnl    AC_SUBST(TIX_BUILD_INCLUDES)
-    AC_SUBST(TIX_BUILD_LIB_SPEC)
-dnl    AC_SUBST(TIX_LIB_SPEC)
-])
 
 dnl sinclude(../gettext.m4) already included by bfd/acinclude.m4
 dnl The lines below arrange for aclocal not to bring gettext.m4's
index 8701621048665775f59ac5bee6966ff65e9aec14..4ac265139e24ccfe22ae860c21dc01421bc483cd 100644 (file)
@@ -745,132 +745,6 @@ AC_SUBST(ITKHDIR)
 #AC_SUBST(ITKLIB)
 ])
 
-# check for Tix headers. 
-
-AC_DEFUN(CY_AC_PATH_TIXH, [
-AC_MSG_CHECKING(for Tix private headers. srcdir=${srcdir})
-if test x"${ac_cv_c_tixh}" = x ; then
-  for i in ${srcdir}/../tix ${srcdir}/../../tix ${srcdir}/../../../tix ; do
-    if test -f $i/generic/tix.h ; then
-      ac_cv_c_tixh=`(cd $i/generic; pwd)`
-      break
-    fi
-  done
-fi
-if test x"${ac_cv_c_tixh}" = x ; then
-  TIXHDIR="# no Tix private headers found"
-  AC_MSG_ERROR([Can't find Tix private headers])
-fi
-if test x"${ac_cv_c_tixh}" != x ; then
-     TIXHDIR="-I${ac_cv_c_tixh}"
-fi
-AC_SUBST(TIXHDIR)
-])
-
-AC_DEFUN(CY_AC_PATH_TIXCONFIG, [
-#
-# Ok, lets find the tix configuration
-# First, look for one uninstalled.  
-# the alternative search directory is invoked by --with-itkconfig
-#
-
-if test x"${no_tix}" = x ; then
-  # we reset no_tix in case something fails here
-  no_tix=true
-  AC_ARG_WITH(tixconfig, [  --with-tixconfig        Directory containing tix configuration (tixConfig.sh)],
-         with_tixconfig=${withval})
-  AC_MSG_CHECKING([for Tix configuration])
-  AC_CACHE_VAL(ac_cv_c_tixconfig,[
-
-  # First check to see if --with-tixconfig was specified.
-  if test x"${with_tixconfig}" != x ; then
-    if test -f "${with_tixconfig}/tixConfig.sh" ; then
-      ac_cv_c_tixconfig=`(cd ${with_tixconfig}; pwd)`
-    else
-      AC_MSG_ERROR([${with_tixconfig} directory doesn't contain tixConfig.sh])
-    fi
-  fi
-
-  # then check for a private Tix library
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    for i in \
-               ../tix \
-               `ls -dr ../tix 2>/dev/null` \
-               ../../tix \
-               `ls -dr ../../tix 2>/dev/null` \
-               ../../../tix \
-               `ls -dr ../../../tix 2>/dev/null` ; do
-      echo "**** Looking at $i - with ${configdir}"
-      if test -f "$i/tixConfig.sh" ; then
-        ac_cv_c_tixconfig=`(cd $i; pwd)`
-       break
-      fi
-    done
-  fi
-  # check in a few common install locations
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do
-      echo "**** Looking at $i"
-      if test -f "$i/tixConfig.sh" ; then
-        ac_cv_c_tixconfig=`(cd $i; pwd)`
-       break
-      fi
-    done
-  fi
-  # check in a few other private locations
-  echo "**** Other private locations"
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    for i in \
-               ${srcdir}/../tix \
-               `ls -dr ${srcdir}/../tix 2>/dev/null` ; do
-      echo "**** Looking at $i - with ${configdir}"
-      if test -f "$i/${configdir}/tixConfig.sh" ; then
-        ac_cv_c_tixconfig=`(cd $i/${configdir}; pwd)`
-       break
-      fi
-    done
-  fi
-  ])
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    TIXCONFIG="# no Tix configs found"
-    AC_MSG_WARN(Can't find Tix configuration definitions)
-  else
-    no_tix=
-    TIXCONFIG=${ac_cv_c_tixconfig}/tixConfig.sh
-    AC_MSG_RESULT(found $TIXCONFIG)
-  fi
-fi
-
-])
-
-# Defined as a separate macro so we don't have to cache the values
-# from PATH_TIXCONFIG (because this can also be cached).
-AC_DEFUN(CY_AC_LOAD_TIXCONFIG, [
-    if test -f "$TIXCONFIG" ; then
-      . $TIXCONFIG
-    fi
-
-    AC_SUBST(TIX_VERSION)
-dnl not actually used, don't export to save symbols
-dnl    AC_SUBST(TIX_MAJOR_VERSION)
-dnl    AC_SUBST(TIX_MINOR_VERSION)
-dnl    AC_SUBST(TIX_DEFS)
-
-dnl not used, don't export to save symbols
-dnl    dnl AC_SUBST(TIX_LIB_FILE)
-
-dnl not used outside of configure
-dnl    AC_SUBST(TIX_LIBS)
-dnl not used, don't export to save symbols
-dnl    AC_SUBST(TIX_PREFIX)
-
-dnl not used, don't export to save symbols
-dnl    AC_SUBST(TIX_EXEC_PREFIX)
-
-dnl    AC_SUBST(TIX_BUILD_INCLUDES)
-    AC_SUBST(TIX_BUILD_LIB_SPEC)
-dnl    AC_SUBST(TIX_LIB_SPEC)
-])
 
 dnl sinclude(../gettext.m4) already included by bfd/acinclude.m4
 dnl The lines below arrange for aclocal not to bring gettext.m4's
index 99abad6c0dda361b5ccdbb3d37473ba0c82d21b5..23c882714868f3229230830679b5af3367e83307 100644 (file)
@@ -3542,7 +3542,7 @@ add_symbols_from_enclosing_procs (const char *name, namespace_enum namespace,
        -(long) TYPE_LENGTH (SYMBOL_TYPE (static_link));
     }
 
-  frame = selected_frame;
+  frame = deprecated_selected_frame;
   while (frame != NULL && ndefns == 0)
     {
       struct block *block;
@@ -4973,17 +4973,7 @@ find_printable_frame (struct frame_info *fi, int level)
 
   for (; fi != NULL; level += 1, fi = get_prev_frame (fi))
     {
-      /* If fi is not the innermost frame, that normally means that fi->pc
-         points to *after* the call instruction, and we want to get the line
-         containing the call, never the next line.  But if the next frame is
-         a signal_handler_caller or a dummy frame, then the next frame was
-         not entered as the result of a call, and we want to get the line
-         containing fi->pc.  */
-      sal =
-       find_pc_line (fi->pc,
-                     fi->next != NULL
-                     && !fi->next->signal_handler_caller
-                     && !deprecated_frame_in_dummy (fi->next));
+      find_frame_sal (fi, &sal);
       if (sal.symtab && !is_ada_runtime_file (sal.symtab->filename))
        {
 #if defined(__alpha__) && defined(__osf__) && !defined(VXWORKS_TARGET)
@@ -4994,7 +4984,7 @@ find_printable_frame (struct frame_info *fi, int level)
              STREQ (sal.symtab->objfile->name, "/usr/shlib/libpthread.so"))
            continue;
 #endif
-         selected_frame = fi;
+         deprecated_selected_frame = fi;
          break;
        }
     }
index 2e6bff3b18e7809766c2a31c2fff2493a442c61f..ad67cba10fe7660402e5f47512dea88fae44aae5 100644 (file)
@@ -795,10 +795,10 @@ task_command (char *tidstr, int from_tty)
     {
       /* FIXME: find_printable_frame should be defined in frame.h, and
          implemented in ada-lang.c */
-      /*      find_printable_frame (selected_frame, frame_relative_level (selected_frame)); */
+      /*      find_printable_frame (deprecated_selected_frame, frame_relative_level (deprecated_selected_frame)); */
       printf_filtered ("[Switching to task %d]\n", num);
-      print_stack_frame (selected_frame,
-                        frame_relative_level (selected_frame), 1);
+      print_stack_frame (deprecated_selected_frame,
+                        frame_relative_level (deprecated_selected_frame), 1);
     }
   else
     printf_filtered ("Unable to switch to task %d\n", num);
index 4596d37e3279f64eba0b5a4d492e47c93ef59fc7..26f4db433f1738c77212fa296a92c69fa29db842 100644 (file)
@@ -116,6 +116,6 @@ alpha_linux_init_abi (struct gdbarch_info info,
 void
 _initialize_alpha_linux_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_alpha, GDB_OSABI_LINUX,
+  gdbarch_register_osabi (bfd_arch_alpha, 0, GDB_OSABI_LINUX,
                           alpha_linux_init_abi);
 }
index 6d7a3d67c17d55611d8b1cc4f234bf71b76056bc..f315508ddb0b69fb554867239d8ae156aff1c758 100644 (file)
@@ -20,6 +20,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
+#include "gdb_string.h"
 #include "inferior.h"
 #include "gdbcore.h"
 #include "target.h"
index ece5e2694f24027694effe0422f6e03b6a8ea965..c170a37c6ea603b8b611196cc2fecc3d113bba79 100644 (file)
@@ -73,5 +73,6 @@ alpha_osf1_init_abi (struct gdbarch_info info,
 void
 _initialize_alpha_osf1_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_alpha, GDB_OSABI_OSF1, alpha_osf1_init_abi);
+  gdbarch_register_osabi (bfd_arch_alpha, 0, GDB_OSABI_OSF1,
+                         alpha_osf1_init_abi);
 }
index 5ff21f0989ae11388491d332494651c7056bcceb..ed4be145d40bcce4d5de61b3829d20f3d3c0544c 100644 (file)
@@ -74,7 +74,6 @@ static gdbarch_push_arguments_ftype alpha_push_arguments;
 static gdbarch_push_dummy_frame_ftype alpha_push_dummy_frame;
 static gdbarch_pop_frame_ftype alpha_pop_frame;
 static gdbarch_fix_call_dummy_ftype alpha_fix_call_dummy;
-static gdbarch_init_frame_pc_first_ftype alpha_init_frame_pc_first;
 static gdbarch_init_extra_frame_info_ftype alpha_init_extra_frame_info;
 
 static gdbarch_get_longjmp_target_ftype alpha_get_longjmp_target;
@@ -378,7 +377,7 @@ alpha_find_saved_regs (struct frame_info *frame)
 #define SIGFRAME_REGSAVE_OFF   (4 * 8)
 #define SIGFRAME_FPREGSAVE_OFF (SIGFRAME_REGSAVE_OFF + 32 * 8 + 8)
 #endif
-  if (frame->signal_handler_caller)
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
     {
       CORE_ADDR sigcontext_addr;
 
@@ -458,11 +457,12 @@ alpha_frame_init_saved_regs (struct frame_info *fi)
   fi->saved_regs[SP_REGNUM] = fi->frame;
 }
 
-static void
+static CORE_ADDR
 alpha_init_frame_pc_first (int fromleaf, struct frame_info *prev)
 {
-  prev->pc = (fromleaf ? SAVED_PC_AFTER_CALL (prev->next) :
-             prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ());
+  return (fromleaf ? SAVED_PC_AFTER_CALL (get_next_frame (prev)) 
+         : get_next_frame (prev) ? FRAME_SAVED_PC (prev->next)
+         : read_pc ());
 }
 
 static CORE_ADDR
@@ -472,7 +472,7 @@ read_next_frame_reg (struct frame_info *fi, int regno)
     {
       /* We have to get the saved sp from the sigcontext
          if it is a signal handler frame.  */
-      if (regno == SP_REGNUM && !fi->signal_handler_caller)
+      if (regno == SP_REGNUM && !(get_frame_type (fi) == SIGTRAMP_FRAME))
        return fi->frame;
       else
        {
@@ -491,7 +491,7 @@ alpha_frame_saved_pc (struct frame_info *frame)
   alpha_extra_func_info_t proc_desc = frame->extra_info->proc_desc;
   /* We have to get the saved pc from the sigcontext
      if it is a signal handler frame.  */
-  int pcreg = frame->signal_handler_caller ? PC_REGNUM
+  int pcreg = (get_frame_type (frame) == SIGTRAMP_FRAME) ? PC_REGNUM
                                            : frame->extra_info->pc_reg;
 
   if (proc_desc && PROC_DESC_IS_DUMMY (proc_desc))
@@ -516,7 +516,7 @@ alpha_saved_pc_after_call (struct frame_info *frame)
   proc_desc = find_proc_desc (pc, frame->next);
   pcreg = proc_desc ? PROC_PC_REG (proc_desc) : ALPHA_RA_REGNUM;
 
-  if (frame->signal_handler_caller)
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
     return alpha_frame_saved_pc (frame);
   else
     return read_register (pcreg);
@@ -823,7 +823,7 @@ find_proc_desc (CORE_ADDR pc, struct frame_info *next_frame)
      So we have to find the proc_desc whose frame is closest to the current
      stack pointer.  */
 
-  if (PC_IN_CALL_DUMMY (pc, 0, 0))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (pc, 0, 0))
     {
       struct linked_proc_info *link;
       CORE_ADDR sp = read_next_frame_reg (next_frame, SP_REGNUM);
@@ -957,7 +957,7 @@ alpha_frame_chain (struct frame_info *frame)
       && PROC_FRAME_OFFSET (proc_desc) == 0
   /* The previous frame from a sigtramp frame might be frameless
      and have frame size zero.  */
-      && !frame->signal_handler_caller)
+      && !(get_frame_type (frame) == SIGTRAMP_FRAME))
     return alpha_frame_past_sigtramp_frame (frame, saved_pc);
   else
     return read_next_frame_reg (frame, PROC_FRAME_REG (proc_desc))
@@ -1020,8 +1020,12 @@ alpha_init_extra_frame_info (int fromleaf, struct frame_info *frame)
          char *name;
 
          /* Do not set the saved registers for a sigtramp frame,
-            alpha_find_saved_registers will do that for us.
-            We can't use frame->signal_handler_caller, it is not yet set.  */
+            alpha_find_saved_registers will do that for us.  We can't
+            use (get_frame_type (frame) == SIGTRAMP_FRAME), it is not
+            yet set.  */
+         /* FIXME: cagney/2002-11-18: This problem will go away once
+             frame.c:get_prev_frame() is modified to set the frame's
+             type before calling functions like this.  */
          find_pc_partial_function (frame->pc, &name,
                                    (CORE_ADDR *) NULL, (CORE_ADDR *) NULL);
          if (!PC_IN_SIGTRAMP (frame->pc, name))
@@ -1866,7 +1870,7 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
                                            alpha_extract_struct_value_address);
 
   /* Settings for calling functions in the inferior.  */
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 0);
+  set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0);
   set_gdbarch_call_dummy_length (gdbarch, 0);
   set_gdbarch_push_arguments (gdbarch, alpha_push_arguments);
   set_gdbarch_pop_frame (gdbarch, alpha_pop_frame);
@@ -1885,17 +1889,16 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   /* Alpha OSF/1 inhibits execution of code on the stack.  But there is
      no need for a dummy on the Alpha.  PUSH_ARGUMENTS takes care of all
      argument handling and bp_call_dummy takes care of stopping the dummy.  */
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, alpha_call_dummy_address);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
+  set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
   set_gdbarch_push_dummy_frame (gdbarch, alpha_push_dummy_frame);
   set_gdbarch_fix_call_dummy (gdbarch, alpha_fix_call_dummy);
-  set_gdbarch_init_frame_pc (gdbarch, init_frame_pc_noop);
-  set_gdbarch_init_frame_pc_first (gdbarch, alpha_init_frame_pc_first);
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop);
+  set_gdbarch_deprecated_init_frame_pc_first (gdbarch, alpha_init_frame_pc_first);
 
   set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
index f8f515d3cc8c8ae9e03c22f486311fa9173fe9a1..6af3b4df84f5893f54c19a16993360840744f7e4 100644 (file)
@@ -78,6 +78,6 @@ alphafbsd_init_abi (struct gdbarch_info info,
 void
 _initialize_alphafbsd_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_alpha, GDB_OSABI_FREEBSD_ELF,
+  gdbarch_register_osabi (bfd_arch_alpha, 0, GDB_OSABI_FREEBSD_ELF,
                           alphafbsd_init_abi);
 }
index bc7b1a410dbf0b85b9913ca9d36618f56e7817c0..e09b945bd9714cf377b50ecf456e92042aeca586 100644 (file)
@@ -232,7 +232,7 @@ alphanbsd_init_abi (struct gdbarch_info info,
 void
 _initialize_alphanbsd_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_alpha, GDB_OSABI_NETBSD_ELF,
+  gdbarch_register_osabi (bfd_arch_alpha, 0, GDB_OSABI_NETBSD_ELF,
                           alphanbsd_init_abi);
 
   add_core_fns (&alphanbsd_core_fns);
diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c
deleted file mode 100644 (file)
index 5c44915..0000000
+++ /dev/null
@@ -1,738 +0,0 @@
-// OBSOLETE /* ARC target-dependent stuff.
-// OBSOLETE    Copyright 1995, 1996, 1999, 2000, 2001 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "target.h"
-// OBSOLETE #include "floatformat.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "gdbcmd.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE 
-// OBSOLETE /* Local functions */
-// OBSOLETE 
-// OBSOLETE static int arc_set_cpu_type (char *str);
-// OBSOLETE 
-// OBSOLETE /* Current CPU, set with the "set cpu" command.  */
-// OBSOLETE static int arc_bfd_mach_type;
-// OBSOLETE char *arc_cpu_type;
-// OBSOLETE char *tmp_arc_cpu_type;
-// OBSOLETE 
-// OBSOLETE /* Table of cpu names.  */
-// OBSOLETE struct
-// OBSOLETE   {
-// OBSOLETE     char *name;
-// OBSOLETE     int value;
-// OBSOLETE   }
-// OBSOLETE arc_cpu_type_table[] =
-// OBSOLETE {
-// OBSOLETE   { "arc5", bfd_mach_arc_5 },
-// OBSOLETE   { "arc6", bfd_mach_arc_6 },
-// OBSOLETE   { "arc7", bfd_mach_arc_7 },
-// OBSOLETE   { "arc8", bfd_mach_arc_8 },
-// OBSOLETE   {  NULL,  0 }
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE /* Used by simulator.  */
-// OBSOLETE int display_pipeline_p;
-// OBSOLETE int cpu_timer;
-// OBSOLETE /* This one must have the same type as used in the emulator.
-// OBSOLETE    It's currently an enum so this should be ok for now.  */
-// OBSOLETE int debug_pipeline_p;
-// OBSOLETE 
-// OBSOLETE #define ARC_CALL_SAVED_REG(r) ((r) >= 16 && (r) < 24)
-// OBSOLETE 
-// OBSOLETE #define OPMASK     0xf8000000
-// OBSOLETE 
-// OBSOLETE /* Instruction field accessor macros.
-// OBSOLETE    See the Programmer's Reference Manual.  */
-// OBSOLETE #define X_OP(i) (((i) >> 27) & 0x1f)
-// OBSOLETE #define X_A(i) (((i) >> 21) & 0x3f)
-// OBSOLETE #define X_B(i) (((i) >> 15) & 0x3f)
-// OBSOLETE #define X_C(i) (((i) >> 9) & 0x3f)
-// OBSOLETE #define X_D(i) ((((i) & 0x1ff) ^ 0x100) - 0x100)
-// OBSOLETE #define X_L(i) (((((i) >> 5) & 0x3ffffc) ^ 0x200000) - 0x200000)
-// OBSOLETE #define X_N(i) (((i) >> 5) & 3)
-// OBSOLETE #define X_Q(i) ((i) & 0x1f)
-// OBSOLETE 
-// OBSOLETE /* Return non-zero if X is a short immediate data indicator.  */
-// OBSOLETE #define SHIMM_P(x) ((x) == 61 || (x) == 63)
-// OBSOLETE 
-// OBSOLETE /* Return non-zero if X is a "long" (32 bit) immediate data indicator.  */
-// OBSOLETE #define LIMM_P(x) ((x) == 62)
-// OBSOLETE 
-// OBSOLETE /* Build a simple instruction.  */
-// OBSOLETE #define BUILD_INSN(op, a, b, c, d) \
-// OBSOLETE   ((((op) & 31) << 27) \
-// OBSOLETE    | (((a) & 63) << 21) \
-// OBSOLETE    | (((b) & 63) << 15) \
-// OBSOLETE    | (((c) & 63) << 9) \
-// OBSOLETE    | ((d) & 511))
-// OBSOLETE \f
-// OBSOLETE /* Codestream stuff.  */
-// OBSOLETE static void codestream_read (unsigned int *, int);
-// OBSOLETE static void codestream_seek (CORE_ADDR);
-// OBSOLETE static unsigned int codestream_fill (int);
-// OBSOLETE 
-// OBSOLETE #define CODESTREAM_BUFSIZ 16
-// OBSOLETE static CORE_ADDR codestream_next_addr;
-// OBSOLETE static CORE_ADDR codestream_addr;
-// OBSOLETE /* FIXME assumes sizeof (int) == 32? */
-// OBSOLETE static unsigned int codestream_buf[CODESTREAM_BUFSIZ];
-// OBSOLETE static int codestream_off;
-// OBSOLETE static int codestream_cnt;
-// OBSOLETE 
-// OBSOLETE #define codestream_tell() \
-// OBSOLETE   (codestream_addr + codestream_off * sizeof (codestream_buf[0]))
-// OBSOLETE #define codestream_peek() \
-// OBSOLETE   (codestream_cnt == 0 \
-// OBSOLETE    ? codestream_fill (1) \
-// OBSOLETE    : codestream_buf[codestream_off])
-// OBSOLETE #define codestream_get() \
-// OBSOLETE   (codestream_cnt-- == 0 \
-// OBSOLETE    ? codestream_fill (0) \
-// OBSOLETE    : codestream_buf[codestream_off++])
-// OBSOLETE 
-// OBSOLETE static unsigned int
-// OBSOLETE codestream_fill (int peek_flag)
-// OBSOLETE {
-// OBSOLETE   codestream_addr = codestream_next_addr;
-// OBSOLETE   codestream_next_addr += CODESTREAM_BUFSIZ * sizeof (codestream_buf[0]);
-// OBSOLETE   codestream_off = 0;
-// OBSOLETE   codestream_cnt = CODESTREAM_BUFSIZ;
-// OBSOLETE   read_memory (codestream_addr, (char *) codestream_buf,
-// OBSOLETE           CODESTREAM_BUFSIZ * sizeof (codestream_buf[0]));
-// OBSOLETE   /* FIXME: check return code?  */
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE   /* Handle byte order differences -> convert to host byte ordering.  */
-// OBSOLETE   {
-// OBSOLETE     int i;
-// OBSOLETE     for (i = 0; i < CODESTREAM_BUFSIZ; i++)
-// OBSOLETE       codestream_buf[i] =
-// OBSOLETE    extract_unsigned_integer (&codestream_buf[i],
-// OBSOLETE                              sizeof (codestream_buf[i]));
-// OBSOLETE   }
-// OBSOLETE 
-// OBSOLETE   if (peek_flag)
-// OBSOLETE     return codestream_peek ();
-// OBSOLETE   else
-// OBSOLETE     return codestream_get ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE codestream_seek (CORE_ADDR place)
-// OBSOLETE {
-// OBSOLETE   codestream_next_addr = place / CODESTREAM_BUFSIZ;
-// OBSOLETE   codestream_next_addr *= CODESTREAM_BUFSIZ;
-// OBSOLETE   codestream_cnt = 0;
-// OBSOLETE   codestream_fill (1);
-// OBSOLETE   while (codestream_tell () != place)
-// OBSOLETE     codestream_get ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* This function is currently unused but leave in for now.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE codestream_read (unsigned int *buf, int count)
-// OBSOLETE {
-// OBSOLETE   unsigned int *p;
-// OBSOLETE   int i;
-// OBSOLETE   p = buf;
-// OBSOLETE   for (i = 0; i < count; i++)
-// OBSOLETE     *p++ = codestream_get ();
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Set up prologue scanning and return the first insn.  */
-// OBSOLETE 
-// OBSOLETE static unsigned int
-// OBSOLETE setup_prologue_scan (CORE_ADDR pc)
-// OBSOLETE {
-// OBSOLETE   unsigned int insn;
-// OBSOLETE 
-// OBSOLETE   codestream_seek (pc);
-// OBSOLETE   insn = codestream_get ();
-// OBSOLETE 
-// OBSOLETE   return insn;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Find & return amount a local space allocated, and advance codestream to
-// OBSOLETE  * first register push (if any).
-// OBSOLETE  * If entry sequence doesn't make sense, return -1, and leave 
-// OBSOLETE  * codestream pointer random.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static long
-// OBSOLETE arc_get_frame_setup (CORE_ADDR pc)
-// OBSOLETE {
-// OBSOLETE   unsigned int insn;
-// OBSOLETE   /* Size of frame or -1 if unrecognizable prologue.  */
-// OBSOLETE   int frame_size = -1;
-// OBSOLETE   /* An initial "sub sp,sp,N" may or may not be for a stdarg fn.  */
-// OBSOLETE   int maybe_stdarg_decr = -1;
-// OBSOLETE 
-// OBSOLETE   insn = setup_prologue_scan (pc);
-// OBSOLETE 
-// OBSOLETE   /* The authority for what appears here is the home-grown ABI.
-// OBSOLETE      The most recent version is 1.2.  */
-// OBSOLETE 
-// OBSOLETE   /* First insn may be "sub sp,sp,N" if stdarg fn.  */
-// OBSOLETE   if ((insn & BUILD_INSN (-1, -1, -1, -1, 0))
-// OBSOLETE       == BUILD_INSN (10, SP_REGNUM, SP_REGNUM, SHIMM_REGNUM, 0))
-// OBSOLETE     {
-// OBSOLETE       maybe_stdarg_decr = X_D (insn);
-// OBSOLETE       insn = codestream_get ();
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if ((insn & BUILD_INSN (-1, 0, -1, -1, -1))      /* st blink,[sp,4] */
-// OBSOLETE       == BUILD_INSN (2, 0, SP_REGNUM, BLINK_REGNUM, 4))
-// OBSOLETE     {
-// OBSOLETE       insn = codestream_get ();
-// OBSOLETE       /* Frame may not be necessary, even though blink is saved.
-// OBSOLETE          At least this is something we recognize.  */
-// OBSOLETE       frame_size = 0;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if ((insn & BUILD_INSN (-1, 0, -1, -1, -1))      /* st fp,[sp] */
-// OBSOLETE       == BUILD_INSN (2, 0, SP_REGNUM, FP_REGNUM, 0))
-// OBSOLETE     {
-// OBSOLETE       insn = codestream_get ();
-// OBSOLETE       if ((insn & BUILD_INSN (-1, -1, -1, -1, 0))
-// OBSOLETE      != BUILD_INSN (12, FP_REGNUM, SP_REGNUM, SP_REGNUM, 0))
-// OBSOLETE    return -1;
-// OBSOLETE 
-// OBSOLETE       /* Check for stack adjustment sub sp,sp,N.  */
-// OBSOLETE       insn = codestream_peek ();
-// OBSOLETE       if ((insn & BUILD_INSN (-1, -1, -1, 0, 0))
-// OBSOLETE      == BUILD_INSN (10, SP_REGNUM, SP_REGNUM, 0, 0))
-// OBSOLETE    {
-// OBSOLETE      if (LIMM_P (X_C (insn)))
-// OBSOLETE        frame_size = codestream_get ();
-// OBSOLETE      else if (SHIMM_P (X_C (insn)))
-// OBSOLETE        frame_size = X_D (insn);
-// OBSOLETE      else
-// OBSOLETE        return -1;
-// OBSOLETE      if (frame_size < 0)
-// OBSOLETE        return -1;
-// OBSOLETE 
-// OBSOLETE      codestream_get ();
-// OBSOLETE 
-// OBSOLETE      /* This sequence is used to get the address of the return
-// OBSOLETE         buffer for a function that returns a structure.  */
-// OBSOLETE      insn = codestream_peek ();
-// OBSOLETE      if ((insn & OPMASK) == 0x60000000)
-// OBSOLETE        codestream_get ();
-// OBSOLETE    }
-// OBSOLETE       /* Frameless fn.  */
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      frame_size = 0;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* If we found a "sub sp,sp,N" and nothing else, it may or may not be a
-// OBSOLETE      stdarg fn.  The stdarg decrement is not treated as part of the frame size,
-// OBSOLETE      so we have a dilemma: what do we return?  For now, if we get a
-// OBSOLETE      "sub sp,sp,N" and nothing else assume this isn't a stdarg fn.  One way
-// OBSOLETE      to fix this completely would be to add a bit to the function descriptor
-// OBSOLETE      that says the function is a stdarg function.  */
-// OBSOLETE 
-// OBSOLETE   if (frame_size < 0 && maybe_stdarg_decr > 0)
-// OBSOLETE     return maybe_stdarg_decr;
-// OBSOLETE   return frame_size;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Given a pc value, skip it forward past the function prologue by
-// OBSOLETE    disassembling instructions that appear to be a prologue.
-// OBSOLETE 
-// OBSOLETE    If FRAMELESS_P is set, we are only testing to see if the function
-// OBSOLETE    is frameless.  If it is a frameless function, return PC unchanged.
-// OBSOLETE    This allows a quicker answer.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE arc_skip_prologue (CORE_ADDR pc, int frameless_p)
-// OBSOLETE {
-// OBSOLETE   unsigned int insn;
-// OBSOLETE   int i, frame_size;
-// OBSOLETE 
-// OBSOLETE   if ((frame_size = arc_get_frame_setup (pc)) < 0)
-// OBSOLETE     return (pc);
-// OBSOLETE 
-// OBSOLETE   if (frameless_p)
-// OBSOLETE     return frame_size == 0 ? pc : codestream_tell ();
-// OBSOLETE 
-// OBSOLETE   /* Skip over register saves.  */
-// OBSOLETE   for (i = 0; i < 8; i++)
-// OBSOLETE     {
-// OBSOLETE       insn = codestream_peek ();
-// OBSOLETE       if ((insn & BUILD_INSN (-1, 0, -1, 0, 0))
-// OBSOLETE      != BUILD_INSN (2, 0, SP_REGNUM, 0, 0))
-// OBSOLETE    break;                  /* not st insn */
-// OBSOLETE       if (!ARC_CALL_SAVED_REG (X_C (insn)))
-// OBSOLETE    break;
-// OBSOLETE       codestream_get ();
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return codestream_tell ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Is the prologue at PC frameless?  */
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE arc_prologue_frameless_p (CORE_ADDR pc)
-// OBSOLETE {
-// OBSOLETE   return (pc == arc_skip_prologue (pc, 1));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Return the return address for a frame.
-// OBSOLETE    This is used to implement FRAME_SAVED_PC.
-// OBSOLETE    This is taken from frameless_look_for_prologue.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE arc_frame_saved_pc (struct frame_info *frame)
-// OBSOLETE {
-// OBSOLETE   CORE_ADDR func_start;
-// OBSOLETE   unsigned int insn;
-// OBSOLETE 
-// OBSOLETE   func_start = get_pc_function_start (frame->pc) + FUNCTION_START_OFFSET;
-// OBSOLETE   if (func_start == 0)
-// OBSOLETE     {
-// OBSOLETE       /* Best guess.  */
-// OBSOLETE       return ARC_PC_TO_REAL_ADDRESS (read_memory_integer (FRAME_FP (frame) + 4, 4));
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* The authority for what appears here is the home-grown ABI.
-// OBSOLETE      The most recent version is 1.2.  */
-// OBSOLETE 
-// OBSOLETE   insn = setup_prologue_scan (func_start);
-// OBSOLETE 
-// OBSOLETE   /* First insn may be "sub sp,sp,N" if stdarg fn.  */
-// OBSOLETE   if ((insn & BUILD_INSN (-1, -1, -1, -1, 0))
-// OBSOLETE       == BUILD_INSN (10, SP_REGNUM, SP_REGNUM, SHIMM_REGNUM, 0))
-// OBSOLETE     insn = codestream_get ();
-// OBSOLETE 
-// OBSOLETE   /* If the next insn is "st blink,[sp,4]" we can get blink from there.
-// OBSOLETE      Otherwise this is a leaf function and we can use blink.  Note that
-// OBSOLETE      this still allows for the case where a leaf function saves/clobbers/
-// OBSOLETE      restores blink.  */
-// OBSOLETE 
-// OBSOLETE   if ((insn & BUILD_INSN (-1, 0, -1, -1, -1))      /* st blink,[sp,4] */
-// OBSOLETE       != BUILD_INSN (2, 0, SP_REGNUM, BLINK_REGNUM, 4))
-// OBSOLETE     return ARC_PC_TO_REAL_ADDRESS (read_register (BLINK_REGNUM));
-// OBSOLETE   else
-// OBSOLETE     return ARC_PC_TO_REAL_ADDRESS (read_memory_integer (FRAME_FP (frame) + 4, 4));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Parse the first few instructions of the function to see
-// OBSOLETE  * what registers were stored.
-// OBSOLETE  *
-// OBSOLETE  * The startup sequence can be at the start of the function.
-// OBSOLETE  * 'st blink,[sp+4], st fp,[sp], mov fp,sp' 
-// OBSOLETE  *
-// OBSOLETE  * Local space is allocated just below by sub sp,sp,nnn.
-// OBSOLETE  * Next, the registers used by this function are stored (as offsets from sp).
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE frame_find_saved_regs (struct frame_info *fip, struct frame_saved_regs *fsrp)
-// OBSOLETE {
-// OBSOLETE   long locals;
-// OBSOLETE   unsigned int insn;
-// OBSOLETE   CORE_ADDR dummy_bottom;
-// OBSOLETE   CORE_ADDR adr;
-// OBSOLETE   int i, regnum, offset;
-// OBSOLETE 
-// OBSOLETE   memset (fsrp, 0, sizeof *fsrp);
-// OBSOLETE 
-// OBSOLETE   /* If frame is the end of a dummy, compute where the beginning would be.  */
-// OBSOLETE   dummy_bottom = fip->frame - 4 - REGISTER_BYTES - CALL_DUMMY_LENGTH;
-// OBSOLETE 
-// OBSOLETE   /* Check if the PC is in the stack, in a dummy frame.  */
-// OBSOLETE   if (dummy_bottom <= fip->pc && fip->pc <= fip->frame)
-// OBSOLETE     {
-// OBSOLETE       /* all regs were saved by push_call_dummy () */
-// OBSOLETE       adr = fip->frame;
-// OBSOLETE       for (i = 0; i < NUM_REGS; i++)
-// OBSOLETE    {
-// OBSOLETE      adr -= REGISTER_RAW_SIZE (i);
-// OBSOLETE      fsrp->regs[i] = adr;
-// OBSOLETE    }
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   locals = arc_get_frame_setup (get_pc_function_start (fip->pc));
-// OBSOLETE 
-// OBSOLETE   if (locals >= 0)
-// OBSOLETE     {
-// OBSOLETE       /* Set `adr' to the value of `sp'.  */
-// OBSOLETE       adr = fip->frame - locals;
-// OBSOLETE       for (i = 0; i < 8; i++)
-// OBSOLETE    {
-// OBSOLETE      insn = codestream_get ();
-// OBSOLETE      if ((insn & BUILD_INSN (-1, 0, -1, 0, 0))
-// OBSOLETE          != BUILD_INSN (2, 0, SP_REGNUM, 0, 0))
-// OBSOLETE        break;
-// OBSOLETE      regnum = X_C (insn);
-// OBSOLETE      offset = X_D (insn);
-// OBSOLETE      fsrp->regs[regnum] = adr + offset;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   fsrp->regs[PC_REGNUM] = fip->frame + 4;
-// OBSOLETE   fsrp->regs[FP_REGNUM] = fip->frame;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE arc_push_dummy_frame (void)
-// OBSOLETE {
-// OBSOLETE   CORE_ADDR sp = read_register (SP_REGNUM);
-// OBSOLETE   int regnum;
-// OBSOLETE   char regbuf[MAX_REGISTER_RAW_SIZE];
-// OBSOLETE 
-// OBSOLETE   read_register_gen (PC_REGNUM, regbuf);
-// OBSOLETE   write_memory (sp + 4, regbuf, REGISTER_SIZE);
-// OBSOLETE   read_register_gen (FP_REGNUM, regbuf);
-// OBSOLETE   write_memory (sp, regbuf, REGISTER_SIZE);
-// OBSOLETE   write_register (FP_REGNUM, sp);
-// OBSOLETE   for (regnum = 0; regnum < NUM_REGS; regnum++)
-// OBSOLETE     {
-// OBSOLETE       read_register_gen (regnum, regbuf);
-// OBSOLETE       sp = push_bytes (sp, regbuf, REGISTER_RAW_SIZE (regnum));
-// OBSOLETE     }
-// OBSOLETE   sp += (2 * REGISTER_SIZE);
-// OBSOLETE   write_register (SP_REGNUM, sp);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE arc_pop_frame (void)
-// OBSOLETE {
-// OBSOLETE   struct frame_info *frame = get_current_frame ();
-// OBSOLETE   CORE_ADDR fp;
-// OBSOLETE   int regnum;
-// OBSOLETE   struct frame_saved_regs fsr;
-// OBSOLETE   char regbuf[MAX_REGISTER_RAW_SIZE];
-// OBSOLETE 
-// OBSOLETE   fp = FRAME_FP (frame);
-// OBSOLETE   get_frame_saved_regs (frame, &fsr);
-// OBSOLETE   for (regnum = 0; regnum < NUM_REGS; regnum++)
-// OBSOLETE     {
-// OBSOLETE       CORE_ADDR adr;
-// OBSOLETE       adr = fsr.regs[regnum];
-// OBSOLETE       if (adr)
-// OBSOLETE    {
-// OBSOLETE      read_memory (adr, regbuf, REGISTER_RAW_SIZE (regnum));
-// OBSOLETE      write_register_bytes (REGISTER_BYTE (regnum), regbuf,
-// OBSOLETE                            REGISTER_RAW_SIZE (regnum));
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   write_register (FP_REGNUM, read_memory_integer (fp, 4));
-// OBSOLETE   write_register (PC_REGNUM, read_memory_integer (fp + 4, 4));
-// OBSOLETE   write_register (SP_REGNUM, fp + 8);
-// OBSOLETE   flush_cached_frames ();
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Simulate single-step.  */
-// OBSOLETE 
-// OBSOLETE typedef enum
-// OBSOLETE {
-// OBSOLETE   NORMAL4,                 /* a normal 4 byte insn */
-// OBSOLETE   NORMAL8,                 /* a normal 8 byte insn */
-// OBSOLETE   BRANCH4,                 /* a 4 byte branch insn, including ones without delay slots */
-// OBSOLETE   BRANCH8,                 /* an 8 byte branch insn, including ones with delay slots */
-// OBSOLETE }
-// OBSOLETE insn_type;
-// OBSOLETE 
-// OBSOLETE /* Return the type of INSN and store in TARGET the destination address of a
-// OBSOLETE    branch if this is one.  */
-// OBSOLETE /* ??? Need to verify all cases are properly handled.  */
-// OBSOLETE 
-// OBSOLETE static insn_type
-// OBSOLETE get_insn_type (unsigned long insn, CORE_ADDR pc, CORE_ADDR *target)
-// OBSOLETE {
-// OBSOLETE   unsigned long limm;
-// OBSOLETE 
-// OBSOLETE   switch (insn >> 27)
-// OBSOLETE     {
-// OBSOLETE     case 0:
-// OBSOLETE     case 1:
-// OBSOLETE     case 2:                        /* load/store insns */
-// OBSOLETE       if (LIMM_P (X_A (insn))
-// OBSOLETE      || LIMM_P (X_B (insn))
-// OBSOLETE      || LIMM_P (X_C (insn)))
-// OBSOLETE    return NORMAL8;
-// OBSOLETE       return NORMAL4;
-// OBSOLETE     case 4:
-// OBSOLETE     case 5:
-// OBSOLETE     case 6:                        /* branch insns */
-// OBSOLETE       *target = pc + 4 + X_L (insn);
-// OBSOLETE       /* ??? It isn't clear that this is always the right answer.
-// OBSOLETE          The problem occurs when the next insn is an 8 byte insn.  If the
-// OBSOLETE          branch is conditional there's no worry as there shouldn't be an 8
-// OBSOLETE          byte insn following.  The programmer may be cheating if s/he knows
-// OBSOLETE          the branch will never be taken, but we don't deal with that.
-// OBSOLETE          Note that the programmer is also allowed to play games by putting
-// OBSOLETE          an insn with long immediate data in the delay slot and then duplicate
-// OBSOLETE          the long immediate data at the branch target.  Ugh!  */
-// OBSOLETE       if (X_N (insn) == 0)
-// OBSOLETE    return BRANCH4;
-// OBSOLETE       return BRANCH8;
-// OBSOLETE     case 7:                        /* jump insns */
-// OBSOLETE       if (LIMM_P (X_B (insn)))
-// OBSOLETE    {
-// OBSOLETE      limm = read_memory_integer (pc + 4, 4);
-// OBSOLETE      *target = ARC_PC_TO_REAL_ADDRESS (limm);
-// OBSOLETE      return BRANCH8;
-// OBSOLETE    }
-// OBSOLETE       if (SHIMM_P (X_B (insn)))
-// OBSOLETE    *target = ARC_PC_TO_REAL_ADDRESS (X_D (insn));
-// OBSOLETE       else
-// OBSOLETE    *target = ARC_PC_TO_REAL_ADDRESS (read_register (X_B (insn)));
-// OBSOLETE       if (X_Q (insn) == 0 && X_N (insn) == 0)
-// OBSOLETE    return BRANCH4;
-// OBSOLETE       return BRANCH8;
-// OBSOLETE     default:                       /* arithmetic insns, etc. */
-// OBSOLETE       if (LIMM_P (X_A (insn))
-// OBSOLETE      || LIMM_P (X_B (insn))
-// OBSOLETE      || LIMM_P (X_C (insn)))
-// OBSOLETE    return NORMAL8;
-// OBSOLETE       return NORMAL4;
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* single_step() is called just before we want to resume the inferior, if we
-// OBSOLETE    want to single-step it but there is no hardware or kernel single-step
-// OBSOLETE    support.  We find all the possible targets of the coming instruction and
-// OBSOLETE    breakpoint them.
-// OBSOLETE 
-// OBSOLETE    single_step is also called just after the inferior stops.  If we had
-// OBSOLETE    set up a simulated single-step, we undo our damage.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE arc_software_single_step (enum target_signal ignore,       /* sig but we don't need it */
-// OBSOLETE                      int insert_breakpoints_p)
-// OBSOLETE {
-// OBSOLETE   static CORE_ADDR next_pc, target;
-// OBSOLETE   static int brktrg_p;
-// OBSOLETE   typedef char binsn_quantum[BREAKPOINT_MAX];
-// OBSOLETE   static binsn_quantum break_mem[2];
-// OBSOLETE 
-// OBSOLETE   if (insert_breakpoints_p)
-// OBSOLETE     {
-// OBSOLETE       insn_type type;
-// OBSOLETE       CORE_ADDR pc;
-// OBSOLETE       unsigned long insn;
-// OBSOLETE 
-// OBSOLETE       pc = read_register (PC_REGNUM);
-// OBSOLETE       insn = read_memory_integer (pc, 4);
-// OBSOLETE       type = get_insn_type (insn, pc, &target);
-// OBSOLETE 
-// OBSOLETE       /* Always set a breakpoint for the insn after the branch.  */
-// OBSOLETE       next_pc = pc + ((type == NORMAL8 || type == BRANCH8) ? 8 : 4);
-// OBSOLETE       target_insert_breakpoint (next_pc, break_mem[0]);
-// OBSOLETE 
-// OBSOLETE       brktrg_p = 0;
-// OBSOLETE 
-// OBSOLETE       if ((type == BRANCH4 || type == BRANCH8)
-// OBSOLETE       /* Watch out for branches to the following location.
-// OBSOLETE          We just stored a breakpoint there and another call to
-// OBSOLETE          target_insert_breakpoint will think the real insn is the
-// OBSOLETE          breakpoint we just stored there.  */
-// OBSOLETE      && target != next_pc)
-// OBSOLETE    {
-// OBSOLETE      brktrg_p = 1;
-// OBSOLETE      target_insert_breakpoint (target, break_mem[1]);
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       /* Remove breakpoints.  */
-// OBSOLETE       target_remove_breakpoint (next_pc, break_mem[0]);
-// OBSOLETE 
-// OBSOLETE       if (brktrg_p)
-// OBSOLETE    target_remove_breakpoint (target, break_mem[1]);
-// OBSOLETE 
-// OBSOLETE       /* Fix the pc.  */
-// OBSOLETE       stop_pc -= DECR_PC_AFTER_BREAK;
-// OBSOLETE       write_pc (stop_pc);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Because of Multi-arch, GET_LONGJMP_TARGET is always defined.  So test
-// OBSOLETE    for a definition of JB_PC.  */
-// OBSOLETE #ifdef JB_PC
-// OBSOLETE /* Figure out where the longjmp will land.  Slurp the args out of the stack.
-// OBSOLETE    We expect the first arg to be a pointer to the jmp_buf structure from which
-// OBSOLETE    we extract the pc (JB_PC) that we will land at.  The pc is copied into PC.
-// OBSOLETE    This routine returns true on success. */
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE get_longjmp_target (CORE_ADDR *pc)
-// OBSOLETE {
-// OBSOLETE   char buf[TARGET_PTR_BIT / TARGET_CHAR_BIT];
-// OBSOLETE   CORE_ADDR sp, jb_addr;
-// OBSOLETE 
-// OBSOLETE   sp = read_register (SP_REGNUM);
-// OBSOLETE 
-// OBSOLETE   if (target_read_memory (sp + SP_ARG0,            /* Offset of first arg on stack */
-// OBSOLETE                      buf,
-// OBSOLETE                      TARGET_PTR_BIT / TARGET_CHAR_BIT))
-// OBSOLETE     return 0;
-// OBSOLETE 
-// OBSOLETE   jb_addr = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT);
-// OBSOLETE 
-// OBSOLETE   if (target_read_memory (jb_addr + JB_PC * JB_ELEMENT_SIZE, buf,
-// OBSOLETE                      TARGET_PTR_BIT / TARGET_CHAR_BIT))
-// OBSOLETE     return 0;
-// OBSOLETE 
-// OBSOLETE   *pc = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT);
-// OBSOLETE 
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE #endif /* GET_LONGJMP_TARGET */
-// OBSOLETE \f
-// OBSOLETE /* Disassemble one instruction.  */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE arc_print_insn (bfd_vma vma, disassemble_info *info)
-// OBSOLETE {
-// OBSOLETE   static int current_mach;
-// OBSOLETE   static int current_endian;
-// OBSOLETE   static disassembler_ftype current_disasm;
-// OBSOLETE 
-// OBSOLETE   if (current_disasm == NULL
-// OBSOLETE       || arc_bfd_mach_type != current_mach
-// OBSOLETE       || TARGET_BYTE_ORDER != current_endian)
-// OBSOLETE     {
-// OBSOLETE       current_mach = arc_bfd_mach_type;
-// OBSOLETE       current_endian = TARGET_BYTE_ORDER;
-// OBSOLETE       current_disasm = arc_get_disassembler (NULL);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return (*current_disasm) (vma, info);
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Command to set cpu type.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE arc_set_cpu_type_command (char *args, int from_tty)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE 
-// OBSOLETE   if (tmp_arc_cpu_type == NULL || *tmp_arc_cpu_type == '\0')
-// OBSOLETE     {
-// OBSOLETE       printf_unfiltered ("The known ARC cpu types are as follows:\n");
-// OBSOLETE       for (i = 0; arc_cpu_type_table[i].name != NULL; ++i)
-// OBSOLETE    printf_unfiltered ("%s\n", arc_cpu_type_table[i].name);
-// OBSOLETE 
-// OBSOLETE       /* Restore the value.  */
-// OBSOLETE       tmp_arc_cpu_type = xstrdup (arc_cpu_type);
-// OBSOLETE 
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (!arc_set_cpu_type (tmp_arc_cpu_type))
-// OBSOLETE     {
-// OBSOLETE       error ("Unknown cpu type `%s'.", tmp_arc_cpu_type);
-// OBSOLETE       /* Restore its value.  */
-// OBSOLETE       tmp_arc_cpu_type = xstrdup (arc_cpu_type);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE arc_show_cpu_type_command (char *args, int from_tty)
-// OBSOLETE {
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Modify the actual cpu type.
-// OBSOLETE    Result is a boolean indicating success.  */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE arc_set_cpu_type (char *str)
-// OBSOLETE {
-// OBSOLETE   int i, j;
-// OBSOLETE 
-// OBSOLETE   if (str == NULL)
-// OBSOLETE     return 0;
-// OBSOLETE 
-// OBSOLETE   for (i = 0; arc_cpu_type_table[i].name != NULL; ++i)
-// OBSOLETE     {
-// OBSOLETE       if (strcasecmp (str, arc_cpu_type_table[i].name) == 0)
-// OBSOLETE    {
-// OBSOLETE      arc_cpu_type = str;
-// OBSOLETE      arc_bfd_mach_type = arc_cpu_type_table[i].value;
-// OBSOLETE      return 1;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return 0;
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE void
-// OBSOLETE _initialize_arc_tdep (void)
-// OBSOLETE {
-// OBSOLETE   struct cmd_list_element *c;
-// OBSOLETE 
-// OBSOLETE   c = add_set_cmd ("cpu", class_support, var_string_noescape,
-// OBSOLETE               (char *) &tmp_arc_cpu_type,
-// OBSOLETE               "Set the type of ARC cpu in use.\n\
-// OBSOLETE This command has two purposes.  In a multi-cpu system it lets one\n\
-// OBSOLETE change the cpu being debugged.  It also gives one access to\n\
-// OBSOLETE cpu-type-specific registers and recognize cpu-type-specific instructions.\
-// OBSOLETE ",
-// OBSOLETE               &setlist);
-// OBSOLETE   set_cmd_cfunc (c, arc_set_cpu_type_command);
-// OBSOLETE   c = add_show_from_set (c, &showlist);
-// OBSOLETE   set_cmd_cfunc (c, arc_show_cpu_type_command);
-// OBSOLETE 
-// OBSOLETE   /* We have to use xstrdup() here because the `set' command frees it
-// OBSOLETE      before setting a new value.  */
-// OBSOLETE   tmp_arc_cpu_type = xstrdup (DEFAULT_ARC_CPU_TYPE);
-// OBSOLETE   arc_set_cpu_type (tmp_arc_cpu_type);
-// OBSOLETE 
-// OBSOLETE   c = add_set_cmd ("displaypipeline", class_support, var_zinteger,
-// OBSOLETE               (char *) &display_pipeline_p,
-// OBSOLETE               "Set pipeline display (simulator only).\n\
-// OBSOLETE When enabled, the state of the pipeline after each cycle is displayed.",
-// OBSOLETE               &setlist);
-// OBSOLETE   c = add_show_from_set (c, &showlist);
-// OBSOLETE 
-// OBSOLETE   c = add_set_cmd ("debugpipeline", class_support, var_zinteger,
-// OBSOLETE               (char *) &debug_pipeline_p,
-// OBSOLETE               "Set pipeline debug display (simulator only).\n\
-// OBSOLETE When enabled, debugging information about the pipeline is displayed.",
-// OBSOLETE               &setlist);
-// OBSOLETE   c = add_show_from_set (c, &showlist);
-// OBSOLETE 
-// OBSOLETE   c = add_set_cmd ("cputimer", class_support, var_zinteger,
-// OBSOLETE               (char *) &cpu_timer,
-// OBSOLETE               "Set maximum cycle count (simulator only).\n\
-// OBSOLETE Control will return to gdb if the timer expires.\n\
-// OBSOLETE A negative value disables the timer.",
-// OBSOLETE               &setlist);
-// OBSOLETE   c = add_show_from_set (c, &showlist);
-// OBSOLETE 
-// OBSOLETE   tm_print_insn = arc_print_insn;
-// OBSOLETE }
index 732c40bda6aeb662d5af428ef8d8927dc65053e8..de3d284a8c801b38a453e1e400806834f337c091 100644 (file)
@@ -313,13 +313,6 @@ no_op_reg_to_regnum (int reg)
   return reg;
 }
 
-/* For use by frame_args_address and frame_locals_address.  */
-CORE_ADDR
-default_frame_address (struct frame_info *fi)
-{
-  return fi->frame;
-}
-
 /* Default prepare_to_procced().  */
 int
 default_prepare_to_proceed (int select_it)
@@ -380,21 +373,22 @@ generic_prepare_to_proceed (int select_it)
   
 }
 
-void
+CORE_ADDR
 init_frame_pc_noop (int fromleaf, struct frame_info *prev)
 {
-  return;
+  /* Do nothing, implies return the same PC value.  */
+  return get_frame_pc (prev);
 }
 
-void
+CORE_ADDR
 init_frame_pc_default (int fromleaf, struct frame_info *prev)
 {
   if (fromleaf)
-    prev->pc = SAVED_PC_AFTER_CALL (prev->next);
-  else if (prev->next != NULL)
-    prev->pc = FRAME_SAVED_PC (prev->next);
+    return SAVED_PC_AFTER_CALL (get_next_frame (prev));
+  else if (get_next_frame (prev) != NULL)
+    return FRAME_SAVED_PC (get_next_frame (prev));
   else
-    prev->pc = read_pc ();
+    return read_pc ();
 }
 
 void
index 91aa2f89f5c3ed14790054144ad69b3ad86f6b3b..3452fc81350615c1cf4d9663dcd7bf2755b5853c 100644 (file)
@@ -109,10 +109,6 @@ extern CORE_ADDR core_addr_identity (CORE_ADDR addr);
 
 extern int no_op_reg_to_regnum (int reg);
 
-/* Default frame_args_address and frame_locals_address.  */
-
-extern CORE_ADDR default_frame_address (struct frame_info *);
-
 /* Default prepare_to_procced. */
 
 extern int default_prepare_to_proceed (int select_it);
@@ -121,9 +117,9 @@ extern int generic_prepare_to_proceed (int select_it);
 
 /* Versions of init_frame_pc().  Do nothing; do the default. */
 
-void init_frame_pc_noop (int fromleaf, struct frame_info *prev);
+extern CORE_ADDR init_frame_pc_noop (int fromleaf, struct frame_info *prev);
 
-void init_frame_pc_default (int fromleaf, struct frame_info *prev);
+extern CORE_ADDR init_frame_pc_default (int fromleaf, struct frame_info *prev);
 
 /* Do nothing version of elf_make_msymbol_special. */
 
index cb930b640688473e2560e04601c4b2eb2815d1a4..627ed8dda477cb02a1bbcfaa211d59710e9ffa24 100644 (file)
@@ -543,5 +543,6 @@ arm_linux_init_abi (struct gdbarch_info info,
 void
 _initialize_arm_linux_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_arm, GDB_OSABI_LINUX, arm_linux_init_abi);
+  gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_LINUX,
+                         arm_linux_init_abi);
 }
index 2adce63d8eb9f014a8ed5a478ce3a8bca953ab4d..3543cc1f0cc4fd43c3f4c74e2bff618088f0adc2 100644 (file)
@@ -131,7 +131,10 @@ static void set_disassembly_flavor_sfunc(char *, int,
                                         struct cmd_list_element *);
 static void set_disassembly_flavor (void);
 
-static void convert_from_extended (void *ptr, void *dbl);
+static void convert_from_extended (const struct floatformat *, const void *,
+                                  void *);
+static void convert_to_extended (const struct floatformat *, void *,
+                                const void *);
 
 /* Define other aspects of the stack frame.  We keep the offsets of
    all saved registers, 'cause we need 'em a lot!  We also keep the
@@ -215,7 +218,7 @@ arm_pc_is_thumb_dummy (CORE_ADDR memaddr)
      frame location (true if we have not pushed large data structures or
      gone too many levels deep) and that our 1024 is not enough to consider
      code regions as part of the stack (true for most practical purposes).  */
-  if (PC_IN_CALL_DUMMY (memaddr, sp, sp + 1024))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (memaddr, sp, sp + 1024))
     return caller_is_thumb;
   else
     return 0;
@@ -410,8 +413,7 @@ arm_skip_prologue (CORE_ADDR pc)
   struct symtab_and_line sal;
 
   /* If we're in a dummy frame, don't even try to skip the prologue.  */
-  if (USE_GENERIC_DUMMY_FRAMES
-      && PC_IN_CALL_DUMMY (pc, 0, 0))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (pc, 0, 0))
     return pc;
 
   /* See what the symbol table says.  */
@@ -536,9 +538,8 @@ thumb_scan_prologue (struct frame_info *fi)
   int i;
 
   /* Don't try to scan dummy frames.  */
-  if (USE_GENERIC_DUMMY_FRAMES
-      && fi != NULL
-      && PC_IN_CALL_DUMMY (fi->pc, 0, 0))
+  if (fi != NULL
+      && DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, 0, 0))
     return;
 
   if (find_pc_partial_function (fi->pc, NULL, &prologue_start, &prologue_end))
@@ -992,8 +993,7 @@ arm_find_callers_reg (struct frame_info *fi, int regnum)
      function could be called directly.  */
   for (; fi; fi = fi->next)
     {
-      if (USE_GENERIC_DUMMY_FRAMES
-         && PC_IN_CALL_DUMMY (fi->pc, 0, 0))
+      if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, 0, 0))
        {
          return deprecated_read_register_dummy (fi->pc, fi->frame, regnum);
        }
@@ -1012,9 +1012,9 @@ arm_find_callers_reg (struct frame_info *fi, int regnum)
 }
 /* Function: frame_chain Given a GDB frame, determine the address of
    the calling function's frame.  This will be used to create a new
-   GDB frame struct, and then INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC
-   will be called for the new frame.  For ARM, we save the frame size
-   when we initialize the frame_info.  */
+   GDB frame struct, and then INIT_EXTRA_FRAME_INFO and
+   DEPRECATED_INIT_FRAME_PC will be called for the new frame.  For
+   ARM, we save the frame size when we initialize the frame_info.  */
 
 static CORE_ADDR
 arm_frame_chain (struct frame_info *fi)
@@ -1022,8 +1022,7 @@ arm_frame_chain (struct frame_info *fi)
   CORE_ADDR caller_pc;
   int framereg = fi->extra_info->framereg;
 
-  if (USE_GENERIC_DUMMY_FRAMES
-      && PC_IN_CALL_DUMMY (fi->pc, 0, 0))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, 0, 0))
     /* A generic call dummy's frame is the same as caller's.  */
     return fi->frame;
 
@@ -1106,8 +1105,7 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi)
      the sigtramp and call dummy cases.  */
   if (!fi->next)
     sp = read_sp();
-  else if (USE_GENERIC_DUMMY_FRAMES
-          && PC_IN_CALL_DUMMY (fi->next->pc, 0, 0))
+  else if (DEPRECATED_PC_IN_CALL_DUMMY (fi->next->pc, 0, 0))
     /* For generic dummy frames, pull the value direct from the frame.
        Having an unwind function to do this would be nice.  */
     sp = deprecated_read_register_dummy (fi->next->pc, fi->next->frame,
@@ -1117,19 +1115,24 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi)
          + fi->next->extra_info->framesize);
 
   /* Determine whether or not we're in a sigtramp frame.
-     Unfortunately, it isn't sufficient to test
-     fi->signal_handler_caller because this value is sometimes set
-     after invoking INIT_EXTRA_FRAME_INFO.  So we test *both*
-     fi->signal_handler_caller and PC_IN_SIGTRAMP to determine if we
-     need to use the sigcontext addresses for the saved registers.
+     Unfortunately, it isn't sufficient to test (get_frame_type (fi)
+     == SIGTRAMP_FRAME) because this value is sometimes set after
+     invoking INIT_EXTRA_FRAME_INFO.  So we test *both*
+     (get_frame_type (fi) == SIGTRAMP_FRAME) and PC_IN_SIGTRAMP to
+     determine if we need to use the sigcontext addresses for the
+     saved registers.
 
      Note: If an ARM PC_IN_SIGTRAMP method ever needs to compare
      against the name of the function, the code below will have to be
      changed to first fetch the name of the function and then pass
      this name to PC_IN_SIGTRAMP.  */
 
+  /* FIXME: cagney/2002-11-18: This problem will go away once
+     frame.c:get_prev_frame() is modified to set the frame's type
+     before calling functions like this.  */
+
   if (SIGCONTEXT_REGISTER_ADDRESS_P () 
-      && (fi->signal_handler_caller || PC_IN_SIGTRAMP (fi->pc, (char *)0)))
+      && ((get_frame_type (fi) == SIGTRAMP_FRAME) || PC_IN_SIGTRAMP (fi->pc, (char *)0)))
     {
       for (reg = 0; reg < NUM_REGS; reg++)
        fi->saved_regs[reg] = SIGCONTEXT_REGISTER_ADDRESS (sp, fi->pc, reg);
@@ -1143,33 +1146,6 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi)
       fi->extra_info->frameoffset = 0;
 
     }
-  else if (!USE_GENERIC_DUMMY_FRAMES
-          && PC_IN_CALL_DUMMY (fi->pc, sp, fi->frame))
-    {
-      CORE_ADDR rp;
-      CORE_ADDR callers_sp;
-
-      /* Set rp point at the high end of the saved registers.  */
-      rp = fi->frame - REGISTER_SIZE;
-
-      /* Fill in addresses of saved registers.  */
-      fi->saved_regs[ARM_PS_REGNUM] = rp;
-      rp -= REGISTER_RAW_SIZE (ARM_PS_REGNUM);
-      for (reg = ARM_PC_REGNUM; reg >= 0; reg--)
-       {
-         fi->saved_regs[reg] = rp;
-         rp -= REGISTER_RAW_SIZE (reg);
-       }
-
-      callers_sp = read_memory_integer (fi->saved_regs[ARM_SP_REGNUM],
-                                        REGISTER_RAW_SIZE (ARM_SP_REGNUM));
-      if (arm_pc_is_thumb (fi->pc))
-       fi->extra_info->framereg = THUMB_FP_REGNUM;
-      else
-       fi->extra_info->framereg = ARM_FP_REGNUM;
-      fi->extra_info->framesize = callers_sp - sp;
-      fi->extra_info->frameoffset = fi->frame - sp;
-    }
   else
     {
       arm_scan_prologue (fi);
@@ -1177,8 +1153,7 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi)
       if (!fi->next)
        /* This is the innermost frame?  */
        fi->frame = read_register (fi->extra_info->framereg);
-      else if (USE_GENERIC_DUMMY_FRAMES
-              && PC_IN_CALL_DUMMY (fi->next->pc, 0, 0))
+      else if (DEPRECATED_PC_IN_CALL_DUMMY (fi->next->pc, 0, 0))
        /* Next inner most frame is a dummy, just grab its frame.
            Dummy frames always have the same FP as their caller.  */
        fi->frame = fi->next->frame;
@@ -1219,11 +1194,10 @@ static CORE_ADDR
 arm_frame_saved_pc (struct frame_info *fi)
 {
   /* If a dummy frame, pull the PC out of the frame's register buffer.  */
-  if (USE_GENERIC_DUMMY_FRAMES
-      && PC_IN_CALL_DUMMY (fi->pc, 0, 0))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, 0, 0))
     return deprecated_read_register_dummy (fi->pc, fi->frame, ARM_PC_REGNUM);
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame - fi->extra_info->frameoffset,
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame - fi->extra_info->frameoffset,
                        fi->frame))
     {
       return read_memory_integer (fi->saved_regs[ARM_PC_REGNUM],
@@ -1549,8 +1523,7 @@ arm_pop_frame (void)
   CORE_ADDR old_SP = (frame->frame - frame->extra_info->frameoffset
                      + frame->extra_info->framesize);
 
-  if (USE_GENERIC_DUMMY_FRAMES
-      && PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     {
       generic_pop_dummy_frame ();
       flush_cached_frames ();
@@ -1694,7 +1667,8 @@ arm_register_sim_regno (int regnum)
    little-endian systems.  */
 
 static void
-convert_from_extended (void *ptr, void *dbl)
+convert_from_extended (const struct floatformat *fmt, const void *ptr,
+                      void *dbl)
 {
   DOUBLEST d;
   if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
@@ -1702,14 +1676,14 @@ convert_from_extended (void *ptr, void *dbl)
   else
     floatformat_to_doublest (&floatformat_arm_ext_littlebyte_bigword,
                             ptr, &d);
-  floatformat_from_doublest (TARGET_DOUBLE_FORMAT, &d, dbl);
+  floatformat_from_doublest (fmt, &d, dbl);
 }
 
 static void
-convert_to_extended (void *dbl, void *ptr)
+convert_to_extended (const struct floatformat *fmt, void *dbl, const void *ptr)
 {
   DOUBLEST d;
-  floatformat_to_doublest (TARGET_DOUBLE_FORMAT, ptr, &d);
+  floatformat_to_doublest (fmt, ptr, &d);
   if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
     floatformat_from_doublest (&floatformat_arm_ext_big, &d, dbl);
   else
@@ -2247,9 +2221,11 @@ arm_breakpoint_from_pc (CORE_ADDR *pcptr, int *lenptr)
 
 static void
 arm_extract_return_value (struct type *type,
-                         char regbuf[REGISTER_BYTES],
-                         char *valbuf)
+                         struct regcache *regs,
+                         void *dst)
 {
+  bfd_byte *valbuf = dst;
+
   if (TYPE_CODE_FLT == TYPE_CODE (type))
     {
       struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
@@ -2257,14 +2233,24 @@ arm_extract_return_value (struct type *type,
       switch (tdep->fp_model)
        {
        case ARM_FLOAT_FPA:
-         convert_from_extended (&regbuf[REGISTER_BYTE (ARM_F0_REGNUM)],
-                                valbuf);
+         {
+           /* The value is in register F0 in internal format.  We need to
+              extract the raw value and then convert it to the desired
+              internal type.  */
+           bfd_byte tmpbuf[FP_REGISTER_RAW_SIZE];
+
+           regcache_cooked_read (regs, ARM_F0_REGNUM, tmpbuf);
+           convert_from_extended (floatformat_from_type (type), tmpbuf,
+                                  valbuf);
+         }
          break;
 
        case ARM_FLOAT_SOFT:
        case ARM_FLOAT_SOFT_VFP:
-         memcpy (valbuf, &regbuf[REGISTER_BYTE (ARM_A1_REGNUM)],
-                 TYPE_LENGTH (type));
+         regcache_cooked_read (regs, ARM_A1_REGNUM, valbuf);
+         if (TYPE_LENGTH (type) > 4)
+           regcache_cooked_read (regs, ARM_A1_REGNUM + 1,
+                                 valbuf + INT_REGISTER_RAW_SIZE);
          break;
 
        default:
@@ -2274,9 +2260,50 @@ arm_extract_return_value (struct type *type,
          break;
        }
     }
+  else if (TYPE_CODE (type) == TYPE_CODE_INT
+          || TYPE_CODE (type) == TYPE_CODE_CHAR
+          || TYPE_CODE (type) == TYPE_CODE_BOOL
+          || TYPE_CODE (type) == TYPE_CODE_PTR
+          || TYPE_CODE (type) == TYPE_CODE_REF
+          || TYPE_CODE (type) == TYPE_CODE_ENUM)
+    {
+      /* If the the type is a plain integer, then the access is
+        straight-forward.  Otherwise we have to play around a bit more.  */
+      int len = TYPE_LENGTH (type);
+      int regno = ARM_A1_REGNUM;
+      ULONGEST tmp;
+
+      while (len > 0)
+       {
+         /* By using store_unsigned_integer we avoid having to do
+            anything special for small big-endian values.  */
+         regcache_cooked_read_unsigned (regs, regno++, &tmp);
+         store_unsigned_integer (valbuf, 
+                                 (len > INT_REGISTER_RAW_SIZE
+                                  ? INT_REGISTER_RAW_SIZE : len),
+                                 tmp);
+         len -= INT_REGISTER_RAW_SIZE;
+         valbuf += INT_REGISTER_RAW_SIZE;
+       }
+    }
   else
-    memcpy (valbuf, &regbuf[REGISTER_BYTE (ARM_A1_REGNUM)],
-           TYPE_LENGTH (type));
+    {
+      /* For a structure or union the behaviour is as if the value had
+         been stored to word-aligned memory and then loaded into 
+         registers with 32-bit load instruction(s).  */
+      int len = TYPE_LENGTH (type);
+      int regno = ARM_A1_REGNUM;
+      bfd_byte tmpbuf[INT_REGISTER_RAW_SIZE];
+
+      while (len > 0)
+       {
+         regcache_cooked_read (regs, regno++, tmpbuf);
+         memcpy (valbuf, tmpbuf,
+                 len > INT_REGISTER_RAW_SIZE ? INT_REGISTER_RAW_SIZE : len);
+         len -= INT_REGISTER_RAW_SIZE;
+         valbuf += INT_REGISTER_RAW_SIZE;
+       }
+    }
 }
 
 /* Extract from an array REGBUF containing the (raw) register state
@@ -2389,8 +2416,11 @@ arm_use_struct_convention (int gcc_p, struct type *type)
    TYPE, given in virtual format.  */
 
 static void
-arm_store_return_value (struct type *type, char *valbuf)
+arm_store_return_value (struct type *type, struct regcache *regs,
+                       const void *src)
 {
+  const bfd_byte *valbuf = src;
+
   if (TYPE_CODE (type) == TYPE_CODE_FLT)
     {
       struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
@@ -2400,15 +2430,16 @@ arm_store_return_value (struct type *type, char *valbuf)
        {
        case ARM_FLOAT_FPA:
 
-         convert_to_extended (valbuf, buf);
-         deprecated_write_register_bytes (REGISTER_BYTE (ARM_F0_REGNUM), buf,
-                                          FP_REGISTER_RAW_SIZE);
+         convert_to_extended (floatformat_from_type (type), buf, valbuf);
+         regcache_cooked_write (regs, ARM_F0_REGNUM, buf);
          break;
 
        case ARM_FLOAT_SOFT:
        case ARM_FLOAT_SOFT_VFP:
-         deprecated_write_register_bytes (ARM_A1_REGNUM, valbuf,
-                                          TYPE_LENGTH (type));
+         regcache_cooked_write (regs, ARM_A1_REGNUM, valbuf);
+         if (TYPE_LENGTH (type) > 4)
+           regcache_cooked_write (regs, ARM_A1_REGNUM + 1, 
+                                  valbuf + INT_REGISTER_RAW_SIZE);
          break;
 
        default:
@@ -2418,9 +2449,57 @@ arm_store_return_value (struct type *type, char *valbuf)
          break;
        }
     }
+  else if (TYPE_CODE (type) == TYPE_CODE_INT
+          || TYPE_CODE (type) == TYPE_CODE_CHAR
+          || TYPE_CODE (type) == TYPE_CODE_BOOL
+          || TYPE_CODE (type) == TYPE_CODE_PTR
+          || TYPE_CODE (type) == TYPE_CODE_REF
+          || TYPE_CODE (type) == TYPE_CODE_ENUM)
+    {
+      if (TYPE_LENGTH (type) <= 4)
+       {
+         /* Values of one word or less are zero/sign-extended and
+            returned in r0.  */
+         bfd_byte tmpbuf[INT_REGISTER_RAW_SIZE];
+         LONGEST val = unpack_long (type, valbuf);
+
+         store_signed_integer (tmpbuf, INT_REGISTER_RAW_SIZE, val);
+         regcache_cooked_write (regs, ARM_A1_REGNUM, tmpbuf);
+       }
+      else
+       {
+         /* Integral values greater than one word are stored in consecutive
+            registers starting with r0.  This will always be a multiple of
+            the regiser size.  */
+         int len = TYPE_LENGTH (type);
+         int regno = ARM_A1_REGNUM;
+
+         while (len > 0)
+           {
+             regcache_cooked_write (regs, regno++, valbuf);
+             len -= INT_REGISTER_RAW_SIZE;
+             valbuf += INT_REGISTER_RAW_SIZE;
+           }
+       }
+    }
   else
-    deprecated_write_register_bytes (ARM_A1_REGNUM, valbuf,
-                                    TYPE_LENGTH (type));
+    {
+      /* For a structure or union the behaviour is as if the value had
+         been stored to word-aligned memory and then loaded into 
+         registers with 32-bit load instruction(s).  */
+      int len = TYPE_LENGTH (type);
+      int regno = ARM_A1_REGNUM;
+      bfd_byte tmpbuf[INT_REGISTER_RAW_SIZE];
+
+      while (len > 0)
+       {
+         memcpy (tmpbuf, valbuf,
+                 len > INT_REGISTER_RAW_SIZE ? INT_REGISTER_RAW_SIZE : len);
+         regcache_cooked_write (regs, regno++, tmpbuf);
+         len -= INT_REGISTER_RAW_SIZE;
+         valbuf += INT_REGISTER_RAW_SIZE;
+       }
+    }
 }
 
 /* Store the address of the place in which to copy the structure the
@@ -2778,6 +2857,10 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   tdep = xmalloc (sizeof (struct gdbarch_tdep));
   gdbarch = gdbarch_alloc (&info, tdep);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   tdep->osabi = osabi;
 
   /* This is the way it has always defaulted.  */
@@ -2814,34 +2897,6 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   tdep->lowest_pc = 0x20;
   tdep->jb_pc = -1;    /* Longjump support not enabled by default.  */
 
-#if OLD_STYLE_ARM_DUMMY_FRAMES
-  /* NOTE: cagney/2002-05-07: Enable the below to restore the old ARM
-     specific (non-generic) dummy frame code.  Might be useful if
-     there appears to be a problem with the generic dummy frame
-     mechanism that replaced it.  */
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 0);
-
-  /* Call dummy code.  */
-  set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
-  set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
-  /* We have to give this a value now, even though we will re-set it 
-     during each call to arm_fix_call_dummy.  */
-  set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 8);
-  set_gdbarch_call_dummy_p (gdbarch, 1);
-  set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
-
-  set_gdbarch_call_dummy_words (gdbarch, arm_call_dummy_words);
-  set_gdbarch_sizeof_call_dummy_words (gdbarch, sizeof (arm_call_dummy_words));
-  set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_call_dummy_length (gdbarch, 0);
-
-  set_gdbarch_fix_call_dummy (gdbarch, arm_fix_call_dummy);
-
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_on_stack);
-#else
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
-
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
 
@@ -2854,13 +2909,10 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_call_dummy_length (gdbarch, 0);
 
   set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
 
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_push_return_address (gdbarch, arm_push_return_address);
-#endif
 
-  set_gdbarch_get_saved_register (gdbarch, deprecated_generic_get_saved_register);
   set_gdbarch_push_arguments (gdbarch, arm_push_arguments);
   set_gdbarch_coerce_float_to_double (gdbarch,
                                      standard_coerce_float_to_double);
@@ -2878,15 +2930,7 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frame_num_args (gdbarch, arm_frame_num_args);
   set_gdbarch_frame_args_skip (gdbarch, 0);
   set_gdbarch_frame_init_saved_regs (gdbarch, arm_frame_init_saved_regs);
-#if OLD_STYLE_ARM_DUMMY_FRAMES
-  /* NOTE: cagney/2002-05-07: Enable the below to restore the old ARM
-     specific (non-generic) dummy frame code.  Might be useful if
-     there appears to be a problem with the generic dummy frame
-     mechanism that replaced it.  */
-  set_gdbarch_push_dummy_frame (gdbarch, arm_push_dummy_frame);
-#else
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
-#endif
   set_gdbarch_pop_frame (gdbarch, arm_pop_frame);
 
   /* Address manipulation.  */
@@ -2934,8 +2978,8 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_register_name (gdbarch, arm_register_name);
 
   /* Returning results.  */
-  set_gdbarch_deprecated_extract_return_value (gdbarch, arm_extract_return_value);
-  set_gdbarch_deprecated_store_return_value (gdbarch, arm_store_return_value);
+  set_gdbarch_extract_return_value (gdbarch, arm_extract_return_value);
+  set_gdbarch_store_return_value (gdbarch, arm_store_return_value);
   set_gdbarch_store_struct_return (gdbarch, arm_store_struct_return);
   set_gdbarch_use_struct_convention (gdbarch, arm_use_struct_convention);
   set_gdbarch_extract_struct_value_address (gdbarch,
@@ -3066,11 +3110,11 @@ _initialize_arm_tdep (void)
                                  arm_elf_osabi_sniffer);
 
   /* Register some ABI variants for embedded systems.  */
-  gdbarch_register_osabi (bfd_arch_arm, GDB_OSABI_ARM_EABI_V1,
+  gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_ARM_EABI_V1,
                           arm_init_abi_eabi_v1);
-  gdbarch_register_osabi (bfd_arch_arm, GDB_OSABI_ARM_EABI_V2,
+  gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_ARM_EABI_V2,
                           arm_init_abi_eabi_v2);
-  gdbarch_register_osabi (bfd_arch_arm, GDB_OSABI_ARM_APCS,
+  gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_ARM_APCS,
                           arm_init_abi_apcs);
 
   tm_print_insn = gdb_print_insn_arm;
index ea920207d3240c0c46f91c27c6e88216134e3271..80113f519c6d26329ee5c9e6895b857c90daff2c 100644 (file)
@@ -25,8 +25,8 @@
 #include "solib-svr4.h"
 
 /* Description of the longjmp buffer.  */
-#define JB_PC 24
-#define JB_ELEMENT_SIZE INT_REGISTER_RAW_SIZE
+#define ARM_NBSD_JB_PC 24
+#define ARM_NBSD_JB_ELEMENT_SIZE INT_REGISTER_RAW_SIZE
 
 /* For compatibility with previous implemenations of GDB on arm/NetBSD,
    override the default little-endian breakpoint.  */
@@ -51,8 +51,8 @@ arm_netbsd_init_abi_common (struct gdbarch_info info,
   tdep->arm_breakpoint = arm_nbsd_arm_le_breakpoint;
   tdep->arm_breakpoint_size = sizeof (arm_nbsd_arm_le_breakpoint);
 
-  tdep->jb_pc = JB_PC;
-  tdep->jb_elt_size = JB_ELEMENT_SIZE;
+  tdep->jb_pc = ARM_NBSD_JB_PC;
+  tdep->jb_elt_size = ARM_NBSD_JB_ELEMENT_SIZE;
 }
   
 static void
@@ -97,8 +97,8 @@ _initialize_arm_netbsd_tdep (void)
   gdbarch_register_osabi_sniffer (bfd_arch_arm, bfd_target_aout_flavour,
                                  arm_netbsd_aout_osabi_sniffer);
 
-  gdbarch_register_osabi (bfd_arch_arm, GDB_OSABI_NETBSD_AOUT,
+  gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_NETBSD_AOUT,
                           arm_netbsd_aout_init_abi);
-  gdbarch_register_osabi (bfd_arch_arm, GDB_OSABI_NETBSD_ELF,
+  gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_NETBSD_ELF,
                           arm_netbsd_elf_init_abi);
 }
index c67e4e8d8d50fcbda3782694655242b555b5ab36..1c93860c34712f6fe39e5c879d0fdd57c0f897f2 100644 (file)
@@ -750,7 +750,7 @@ avr_init_extra_frame_info (int fromleaf, struct frame_info *fi)
 
   avr_scan_prologue (fi);
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       /* We need to setup fi->frame here because run_stack_dummy gets it wrong
          by assuming it's always FP.  */
@@ -833,7 +833,7 @@ avr_pop_frame (void)
   CORE_ADDR saddr;
   struct frame_info *frame = get_current_frame ();
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     {
       generic_pop_dummy_frame ();
     }
@@ -866,7 +866,7 @@ avr_pop_frame (void)
 static CORE_ADDR
 avr_frame_saved_pc (struct frame_info *frame)
 {
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     return deprecated_read_register_dummy (frame->pc, frame->frame,
                                           AVR_PC_REGNUM);
   else
@@ -1020,9 +1020,10 @@ avr_frame_address (struct frame_info *fi)
   return avr_make_saddr (fi->frame);
 }
 
-/* Given a GDB frame, determine the address of the calling function's frame.
-   This will be used to create a new GDB frame struct, and then
-   INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
+/* Given a GDB frame, determine the address of the calling function's
+   frame.  This will be used to create a new GDB frame struct, and
+   then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be
+   called for the new frame.
 
    For us, the frame address is its stack pointer value, so we look up
    the function prologue to determine the caller's sp value, and return it.  */
@@ -1030,7 +1031,7 @@ avr_frame_address (struct frame_info *fi)
 static CORE_ADDR
 avr_frame_chain (struct frame_info *frame)
 {
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     {
       /* initialize the return_pc now */
       frame->extra_info->return_pc
@@ -1166,6 +1167,10 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   tdep = XMALLOC (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   /* If we ever need to differentiate the device types, do it here. */
   switch (info.bfd_arch_info->mach)
     {
@@ -1215,18 +1220,13 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_max_register_virtual_size (gdbarch, 4);
   set_gdbarch_register_virtual_type (gdbarch, avr_register_virtual_type);
 
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
-
   set_gdbarch_print_insn (gdbarch, print_insn_avr);
 
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, avr_call_dummy_address);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_p (gdbarch, 1);
   set_gdbarch_call_dummy_words (gdbarch, avr_call_dummy_words);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
index dc2adef2b43446d94ca7104a911fe4b4406b76d1..2bf12a894bf28b14bc421338e6390dad87144dc9 100644 (file)
@@ -1837,7 +1837,7 @@ agent_command (char *exp, int from_tty)
 
   expr = parse_expression (exp);
   old_chain = make_cleanup (free_current_contents, &expr);
-  agent = gen_trace_for_expr (fi->pc, expr);
+  agent = gen_trace_for_expr (get_frame_pc (fi), expr);
   make_cleanup_free_agent_expr (agent);
   ax_print (gdb_stdout, agent);
 
index 7b920442709800179ec66ec8204e1c29458c97c5..7b9641fc771ff44092a4c4c3ff43c37a119639b8 100644 (file)
@@ -50,7 +50,7 @@ int
 file_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
 {
   return ((chain) != 0
-         && !inside_entry_file (FRAME_SAVED_PC (thisframe)));
+         && !inside_entry_file (frame_pc_unwind (thisframe)));
 }
 
 /* Use the alternate method of avoiding running up off the end of the
@@ -61,8 +61,8 @@ int
 func_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
 {
   return ((chain) != 0
-         && !inside_main_func ((thisframe)->pc)
-         && !inside_entry_func ((thisframe)->pc));
+         && !inside_main_func (get_frame_pc (thisframe))
+         && !inside_entry_func (get_frame_pc (thisframe)));
 }
 
 /* A very simple method of determining a valid frame */
@@ -93,7 +93,7 @@ inside_entry_file (CORE_ADDR addr)
       /* Do not stop backtracing if the pc is in the call dummy
          at the entry point.  */
       /* FIXME: Won't always work with zeros for the last two arguments */
-      if (PC_IN_CALL_DUMMY (addr, 0, 0))
+      if (DEPRECATED_PC_IN_CALL_DUMMY (addr, 0, 0))
        return 0;
     }
   return (addr >= symfile_objfile->ei.entry_file_lowpc &&
@@ -158,7 +158,7 @@ inside_entry_func (CORE_ADDR pc)
       /* Do not stop backtracing if the pc is in the call dummy
          at the entry point.  */
       /* FIXME: Won't always work with zeros for the last two arguments */
-      if (PC_IN_CALL_DUMMY (pc, 0, 0))
+      if (DEPRECATED_PC_IN_CALL_DUMMY (pc, 0, 0))
        return 0;
     }
   return (symfile_objfile->ei.entry_func_lowpc <= pc &&
@@ -174,7 +174,7 @@ frameless_look_for_prologue (struct frame_info *frame)
 {
   CORE_ADDR func_start, after_prologue;
 
-  func_start = get_pc_function_start (frame->pc);
+  func_start = get_pc_function_start (get_frame_pc (frame));
   if (func_start)
     {
       func_start += FUNCTION_START_OFFSET;
@@ -182,7 +182,7 @@ frameless_look_for_prologue (struct frame_info *frame)
          prologue, not how long it is.  */
       return PROLOGUE_FRAMELESS_P (func_start);
     }
-  else if (frame->pc == 0)
+  else if (get_frame_pc (frame) == 0)
     /* A frame with a zero PC is usually created by dereferencing a
        NULL function pointer, normally causing an immediate core dump
        of the inferior. Mark function as frameless, as the inferior
@@ -203,7 +203,7 @@ frameless_look_for_prologue (struct frame_info *frame)
 CORE_ADDR
 frame_address_in_block (struct frame_info *frame)
 {
-  CORE_ADDR pc = frame->pc;
+  CORE_ADDR pc = get_frame_pc (frame);
 
   /* If we are not in the innermost frame, and we are not interrupted
      by a signal, frame->pc points to the instruction following the
@@ -211,7 +211,11 @@ frame_address_in_block (struct frame_info *frame)
      instruction. Unfortunately, this is not straightforward to do, so
      we just use the address minus one, which is a good enough
      approximation.  */
-  if (frame->next != 0 && frame->next->signal_handler_caller == 0)
+  /* FIXME: cagney/2002-11-10: Should this instead test for
+     NORMAL_FRAME?  A dummy frame (in fact all the abnormal frames)
+     save the PC value in the block.  */
+  if (get_next_frame (frame) != 0
+      && get_frame_type (get_next_frame (frame)) != SIGTRAMP_FRAME)
     --pc;
 
   return pc;
@@ -244,17 +248,6 @@ get_frame_block (struct frame_info *frame, CORE_ADDR *addr_in_block)
   return block_for_pc (pc);
 }
 
-struct block *
-get_current_block (CORE_ADDR *addr_in_block)
-{
-  CORE_ADDR pc = read_pc ();
-
-  if (addr_in_block)
-    *addr_in_block = pc;
-
-  return block_for_pc (pc);
-}
-
 CORE_ADDR
 get_pc_function_start (CORE_ADDR pc)
 {
@@ -640,56 +633,6 @@ block_innermost_frame (const struct block *block)
     }
 }
 
-/* Return the full FRAME which corresponds to the given CORE_ADDR
-   or NULL if no FRAME on the chain corresponds to CORE_ADDR.  */
-
-struct frame_info *
-find_frame_addr_in_frame_chain (CORE_ADDR frame_addr)
-{
-  struct frame_info *frame = NULL;
-
-  if (frame_addr == (CORE_ADDR) 0)
-    return NULL;
-
-  while (1)
-    {
-      frame = get_prev_frame (frame);
-      if (frame == NULL)
-       return NULL;
-      if (FRAME_FP (frame) == frame_addr)
-       return frame;
-    }
-}
-
-#ifdef SIGCONTEXT_PC_OFFSET
-/* Get saved user PC for sigtramp from sigcontext for BSD style sigtramp.  */
-
-CORE_ADDR
-sigtramp_saved_pc (struct frame_info *frame)
-{
-  CORE_ADDR sigcontext_addr;
-  char *buf;
-  int ptrbytes = TYPE_LENGTH (builtin_type_void_func_ptr);
-  int sigcontext_offs = (2 * TARGET_INT_BIT) / TARGET_CHAR_BIT;
-
-  buf = alloca (ptrbytes);
-  /* Get sigcontext address, it is the third parameter on the stack.  */
-  if (frame->next)
-    sigcontext_addr = read_memory_typed_address
-      (FRAME_ARGS_ADDRESS (frame->next) + FRAME_ARGS_SKIP + sigcontext_offs,
-       builtin_type_void_data_ptr);
-  else
-    sigcontext_addr = read_memory_typed_address
-      (read_register (SP_REGNUM) + sigcontext_offs, builtin_type_void_data_ptr);
-
-  /* Don't cause a memory_error when accessing sigcontext in case the stack
-     layout has changed or the stack is corrupt.  */
-  target_read_memory (sigcontext_addr + SIGCONTEXT_PC_OFFSET, buf, ptrbytes);
-  return extract_typed_address (buf, builtin_type_void_func_ptr);
-}
-#endif /* SIGCONTEXT_PC_OFFSET */
-
-
 /* Are we in a call dummy?  The code below which allows DECR_PC_AFTER_BREAK
    below is for infrun.c, which may give the macro a pc without that
    subtracted out.  */
@@ -697,16 +640,16 @@ sigtramp_saved_pc (struct frame_info *frame)
 extern CORE_ADDR text_end;
 
 int
-pc_in_call_dummy_before_text_end (CORE_ADDR pc, CORE_ADDR sp,
-                                 CORE_ADDR frame_address)
+deprecated_pc_in_call_dummy_before_text_end (CORE_ADDR pc, CORE_ADDR sp,
+                                            CORE_ADDR frame_address)
 {
   return ((pc) >= text_end - CALL_DUMMY_LENGTH
          && (pc) <= text_end + DECR_PC_AFTER_BREAK);
 }
 
 int
-pc_in_call_dummy_after_text_end (CORE_ADDR pc, CORE_ADDR sp,
-                                CORE_ADDR frame_address)
+deprecated_pc_in_call_dummy_after_text_end (CORE_ADDR pc, CORE_ADDR sp,
+                                           CORE_ADDR frame_address)
 {
   return ((pc) >= text_end
          && (pc) <= text_end + CALL_DUMMY_LENGTH + DECR_PC_AFTER_BREAK);
@@ -723,7 +666,7 @@ pc_in_call_dummy_after_text_end (CORE_ADDR pc, CORE_ADDR sp,
    have that meaning, but the 29k doesn't use ON_STACK.  This could be
    fixed by generalizing this scheme, perhaps by passing in a frame
    and adding a few fields, at least on machines which need them for
-   PC_IN_CALL_DUMMY.
+   DEPRECATED_PC_IN_CALL_DUMMY.
 
    Something simpler, like checking for the stack segment, doesn't work,
    since various programs (threads implementations, gcc nested function
@@ -731,7 +674,8 @@ pc_in_call_dummy_after_text_end (CORE_ADDR pc, CORE_ADDR sp,
    allocate other kinds of code on the stack.  */
 
 int
-pc_in_call_dummy_on_stack (CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address)
+deprecated_pc_in_call_dummy_on_stack (CORE_ADDR pc, CORE_ADDR sp,
+                                     CORE_ADDR frame_address)
 {
   return (INNER_THAN ((sp), (pc))
          && (frame_address != 0)
@@ -739,8 +683,8 @@ pc_in_call_dummy_on_stack (CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address)
 }
 
 int
-pc_in_call_dummy_at_entry_point (CORE_ADDR pc, CORE_ADDR sp,
-                                CORE_ADDR frame_address)
+deprecated_pc_in_call_dummy_at_entry_point (CORE_ADDR pc, CORE_ADDR sp,
+                                           CORE_ADDR frame_address)
 {
   return ((pc) >= CALL_DUMMY_ADDRESS ()
          && (pc) <= (CALL_DUMMY_ADDRESS () + DECR_PC_AFTER_BREAK));
@@ -754,24 +698,26 @@ pc_in_call_dummy_at_entry_point (CORE_ADDR pc, CORE_ADDR sp,
 int
 generic_file_frame_chain_valid (CORE_ADDR fp, struct frame_info *fi)
 {
-  if (PC_IN_CALL_DUMMY (FRAME_SAVED_PC (fi), fp, fp))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame_pc_unwind (fi), fp, fp))
     return 1;                  /* don't prune CALL_DUMMY frames */
   else                         /* fall back to default algorithm (see frame.h) */
     return (fp != 0
-           && (INNER_THAN (fi->frame, fp) || fi->frame == fp)
-           && !inside_entry_file (FRAME_SAVED_PC (fi)));
+           && (INNER_THAN (get_frame_base (fi), fp)
+               || get_frame_base (fi) == fp)
+           && !inside_entry_file (frame_pc_unwind (fi)));
 }
 
 int
 generic_func_frame_chain_valid (CORE_ADDR fp, struct frame_info *fi)
 {
-  if (USE_GENERIC_DUMMY_FRAMES
-      && PC_IN_CALL_DUMMY ((fi)->pc, 0, 0))
+  if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES
+      && DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (fi), 0, 0))
     return 1;                  /* don't prune CALL_DUMMY frames */
   else                         /* fall back to default algorithm (see frame.h) */
     return (fp != 0
-           && (INNER_THAN (fi->frame, fp) || fi->frame == fp)
-           && !inside_main_func ((fi)->pc)
-           && !inside_entry_func ((fi)->pc));
+           && (INNER_THAN (get_frame_base (fi), fp)
+               || get_frame_base (fi) == fp)
+           && !inside_main_func (get_frame_pc (fi))
+           && !inside_entry_func (get_frame_pc (fi)));
 }
 
index 80f31c28bf67fcff25ad27f31b4963ec3dab5eb2..e3083e6ebc173e516b8967db2b5feeb5bb71f983 100644 (file)
@@ -49,6 +49,7 @@
 #include "ui-out.h"
 #include "cli/cli-script.h"
 #include "dictionary.h"
+#include "gdb_assert.h"
 
 #include "gdb-events.h"
 
@@ -953,8 +954,8 @@ insert_breakpoints (void)
 
        /* Save the current frame and level so we can restore it after
           evaluating the watchpoint expression on its own frame.  */
-       saved_frame = selected_frame;
-       saved_level = frame_relative_level (selected_frame);
+       saved_frame = deprecated_selected_frame;
+       saved_level = frame_relative_level (deprecated_selected_frame);
 
        /* Determine if the watchpoint is within scope.  */
        if (b->exp_valid_block == NULL)
@@ -1050,8 +1051,8 @@ insert_breakpoints (void)
          }
 
        /* Restore the frame and level.  */
-       if ((saved_frame != selected_frame) ||
-           (saved_level != frame_relative_level (selected_frame)))
+       if ((saved_frame != deprecated_selected_frame) ||
+           (saved_level != frame_relative_level (deprecated_selected_frame)))
          select_frame (saved_frame);
 
        if (val)
@@ -1684,9 +1685,9 @@ breakpoint_inserted_here_p (CORE_ADDR pc)
 }
 
 /* Return nonzero if FRAME is a dummy frame.  We can't use
-   PC_IN_CALL_DUMMY because figuring out the saved SP would take too
-   much time, at least using get_saved_register on the 68k.  This
-   means that for this function to work right a port must use the
+   DEPRECATED_PC_IN_CALL_DUMMY because figuring out the saved SP would
+   take too much time, at least using get_saved_register on the 68k.
+   This means that for this function to work right a port must use the
    bp_call_dummy breakpoint.  */
 
 int
@@ -1697,19 +1698,21 @@ deprecated_frame_in_dummy (struct frame_info *frame)
   if (!CALL_DUMMY_P)
     return 0;
 
-  if (USE_GENERIC_DUMMY_FRAMES)
-    return generic_pc_in_call_dummy (frame->pc, frame->frame, frame->frame);
+  /* This function is used by two files: get_frame_type(), after first
+     checking that !DEPRECATED_USE_GENERIC_DUMMY_FRAMES; and
+     sparc-tdep.c, which doesn't yet use generic dummy frames anyway.  */
+  gdb_assert (!DEPRECATED_USE_GENERIC_DUMMY_FRAMES);
 
   ALL_BREAKPOINTS (b)
   {
     if (b->type == bp_call_dummy
-       && b->frame == frame->frame
+       && frame_id_eq (b->frame_id, get_frame_id (frame))
     /* We need to check the PC as well as the frame on the sparc,
        for signals.exp in the testsuite.  */
-       && (frame->pc
+       && (get_frame_pc (frame)
            >= (b->address
-             - SIZEOF_CALL_DUMMY_WORDS / sizeof (LONGEST) * REGISTER_SIZE))
-       && frame->pc <= b->address)
+               - SIZEOF_CALL_DUMMY_WORDS / sizeof (LONGEST) * REGISTER_SIZE))
+       && get_frame_pc (frame) <= b->address)
       return 1;
   }
   return 0;
@@ -2572,17 +2575,17 @@ bpstat_stop_status (CORE_ADDR *pc, int not_a_sw_breakpoint)
       continue;
 
     if ((b->type == bp_catch_fork)
-       && !target_has_forked (PIDGET (inferior_ptid),
-                              &b->forked_inferior_pid))
+       && !inferior_has_forked (PIDGET (inferior_ptid),
+                                &b->forked_inferior_pid))
       continue;
 
     if ((b->type == bp_catch_vfork)
-       && !target_has_vforked (PIDGET (inferior_ptid),
-                               &b->forked_inferior_pid))
+       && !inferior_has_vforked (PIDGET (inferior_ptid),
+                                 &b->forked_inferior_pid))
       continue;
 
     if ((b->type == bp_catch_exec)
-       && !target_has_execd (PIDGET (inferior_ptid), &b->exec_pathname))
+       && !inferior_has_execd (PIDGET (inferior_ptid), &b->exec_pathname))
       continue;
 
     if (ep_is_exception_catchpoint (b) &&
@@ -2726,8 +2729,8 @@ bpstat_stop_status (CORE_ADDR *pc, int not_a_sw_breakpoint)
        real_breakpoint = 1;
       }
 
-    if (b->frame &&
-       b->frame != (get_current_frame ())->frame)
+    if (frame_id_p (b->frame_id)
+       && !frame_id_eq (b->frame_id, get_frame_id (get_current_frame ())))
       bs->stop = 0;
     else
       {
@@ -3416,11 +3419,13 @@ print_one_breakpoint (struct breakpoint *b,
   
   ui_out_text (uiout, "\n");
   
-  if (b->frame)
+  if (frame_id_p (b->frame_id))
     {
       annotate_field (6);
       ui_out_text (uiout, "\tstop only in stack frame at ");
-      ui_out_field_core_addr (uiout, "frame", b->frame);
+      /* FIXME: cagney/2002-12-01: Shouldn't be poeking around inside
+         the frame ID.  */
+      ui_out_field_core_addr (uiout, "frame", b->frame_id.base);
       ui_out_text (uiout, "\n");
     }
   
@@ -3841,7 +3846,7 @@ set_raw_breakpoint (struct symtab_and_line sal, enum bptype bptype)
   b->silent = 0;
   b->ignore_count = 0;
   b->commands = NULL;
-  b->frame = 0;
+  b->frame_id = null_frame_id;
   b->dll_pathname = NULL;
   b->triggered_dll_pathname = NULL;
   b->forked_inferior_pid = 0;
@@ -4009,14 +4014,12 @@ struct breakpoint *
 create_thread_event_breakpoint (CORE_ADDR address)
 {
   struct breakpoint *b;
-  char addr_string[80];                /* Surely an addr can't be longer than that. */
 
   b = create_internal_breakpoint (address, bp_thread_event);
   
   b->enable_state = bp_enabled;
   /* addr_string has to be used or breakpoint_re_set will delete me.  */
-  sprintf (addr_string, "*0x%s", paddr (b->address));
-  b->addr_string = xstrdup (addr_string);
+  xasprintf (&b->addr_string, "*0x%s", paddr (b->address));
 
   return b;
 }
@@ -4309,7 +4312,7 @@ hw_watchpoint_used_count (enum bptype type, int *other_type_used)
    that gets deleted automatically... */
 
 void
-set_longjmp_resume_breakpoint (CORE_ADDR pc, struct frame_info *frame)
+set_longjmp_resume_breakpoint (CORE_ADDR pc, struct frame_id frame_id)
 {
   register struct breakpoint *b;
 
@@ -4318,10 +4321,7 @@ set_longjmp_resume_breakpoint (CORE_ADDR pc, struct frame_info *frame)
     {
       b->address = pc;
       b->enable_state = bp_enabled;
-      if (frame != NULL)
-       b->frame = frame->frame;
-      else
-       b->frame = 0;
+      b->frame_id = frame_id;
       check_duplicates (b);
       return;
     }
@@ -4373,14 +4373,14 @@ enable_watchpoints_after_interactive_call_stop (void)
    Restrict it to frame FRAME if FRAME is nonzero.  */
 
 struct breakpoint *
-set_momentary_breakpoint (struct symtab_and_line sal, struct frame_info *frame,
+set_momentary_breakpoint (struct symtab_and_line sal, struct frame_id frame_id,
                          enum bptype type)
 {
   register struct breakpoint *b;
   b = set_raw_breakpoint (sal, type);
   b->enable_state = bp_enabled;
   b->disposition = disp_donttouch;
-  b->frame = (frame ? frame->frame : 0);
+  b->frame_id = frame_id;
 
   /* If we're debugging a multi-threaded program, then we
      want momentary breakpoints to be active in only a 
@@ -4572,7 +4572,12 @@ create_breakpoints (struct symtabs_and_lines sals, char **addr_string,
        b->number = breakpoint_count;
        b->cond = cond[i];
        b->thread = thread;
-       b->addr_string = addr_string[i];
+       if (addr_string[i])
+         b->addr_string = addr_string[i];
+       else
+         /* addr_string has to be used or breakpoint_re_set will delete
+            me.  */
+         xasprintf (&b->addr_string, "*0x%s", paddr (b->address));
        b->cond_string = cond_string[i];
        b->ignore_count = ignore_count;
        b->enable_state = bp_enabled;
@@ -4962,9 +4967,9 @@ break_at_finish_at_depth_command_1 (char *arg, int flag, int from_tty)
 
       if (default_breakpoint_valid)
        {
-         if (selected_frame)
+         if (deprecated_selected_frame)
            {
-             selected_pc = selected_frame->pc;
+             selected_pc = get_frame_pc (deprecated_selected_frame);
              if (arg)
                if_arg = 1;
            }
@@ -4993,7 +4998,7 @@ break_at_finish_at_depth_command_1 (char *arg, int flag, int from_tty)
 
       frame = parse_frame_specification (level_arg);
       if (frame)
-       selected_pc = frame->pc;
+       selected_pc = get_frame_pc (frame);
       else
        selected_pc = 0;
     }
@@ -5040,10 +5045,11 @@ break_at_finish_command_1 (char *arg, int flag, int from_tty)
     {
       if (default_breakpoint_valid)
        {
-         if (selected_frame)
+         if (deprecated_selected_frame)
            {
              addr_string = (char *) xmalloc (15);
-             sprintf (addr_string, "*0x%s", paddr_nz (selected_frame->pc));
+             sprintf (addr_string, "*0x%s",
+                      paddr_nz (get_frame_pc (deprecated_selected_frame)));
              if (arg)
                if_arg = 1;
            }
@@ -5399,7 +5405,7 @@ watch_command_1 (char *arg, int accessflag, int from_tty)
   if (frame)
     {
       prev_frame = get_prev_frame (frame);
-      get_frame_id (frame, &b->watchpoint_frame);
+      b->watchpoint_frame = get_frame_id (frame);
     }
   else
     {
@@ -5423,7 +5429,7 @@ watch_command_1 (char *arg, int accessflag, int from_tty)
          scope_breakpoint->disposition = disp_del;
 
          /* Only break in the proper frame (help with recursion).  */
-         scope_breakpoint->frame = prev_frame->frame;
+         scope_breakpoint->frame_id = get_frame_id (prev_frame);
 
          /* Set the address at which we will stop.  */
          scope_breakpoint->address = get_frame_pc (prev_frame);
@@ -5582,7 +5588,7 @@ until_break_command (char *arg, int from_tty)
 {
   struct symtabs_and_lines sals;
   struct symtab_and_line sal;
-  struct frame_info *prev_frame = get_prev_frame (selected_frame);
+  struct frame_info *prev_frame = get_prev_frame (deprecated_selected_frame);
   struct breakpoint *breakpoint;
   struct cleanup *old_chain;
   struct continuation_arg *arg1;
@@ -5611,7 +5617,9 @@ until_break_command (char *arg, int from_tty)
 
   resolve_sal_pc (&sal);
 
-  breakpoint = set_momentary_breakpoint (sal, selected_frame, bp_until);
+  breakpoint = 
+    set_momentary_breakpoint (sal,get_frame_id (deprecated_selected_frame),
+                             bp_until);
 
   if (!event_loop_p || !target_can_async_p ())
     old_chain = make_cleanup_delete_breakpoint (breakpoint);
@@ -5643,9 +5651,10 @@ until_break_command (char *arg, int from_tty)
 
   if (prev_frame)
     {
-      sal = find_pc_line (prev_frame->pc, 0);
-      sal.pc = prev_frame->pc;
-      breakpoint = set_momentary_breakpoint (sal, prev_frame, bp_until);
+      sal = find_pc_line (get_frame_pc (prev_frame), 0);
+      sal.pc = get_frame_pc (prev_frame);
+      breakpoint = set_momentary_breakpoint (sal, get_frame_id (prev_frame),
+                                            bp_until);
       if (!event_loop_p || !target_can_async_p ())
        make_cleanup_delete_breakpoint (breakpoint);
       else
@@ -5769,10 +5778,10 @@ get_catch_sals (int this_level_only)
 
   /* Not sure whether an error message is always the correct response,
      but it's better than a core dump.  */
-  if (selected_frame == NULL)
+  if (deprecated_selected_frame == NULL)
     error ("No selected frame.");
-  block = get_frame_block (selected_frame, 0);
-  pc = selected_frame->pc;
+  block = get_frame_block (deprecated_selected_frame, 0);
+  pc = get_frame_pc (deprecated_selected_frame);
 
   sals.nelts = 0;
   sals.sals = NULL;
@@ -7367,8 +7376,8 @@ is valid is not currently in scope.\n", bpt->number);
              return;
            }
 
-         save_selected_frame = selected_frame;
-         save_selected_frame_level = frame_relative_level (selected_frame);
+         save_selected_frame = deprecated_selected_frame;
+         save_selected_frame_level = frame_relative_level (deprecated_selected_frame);
          select_frame (fr);
        }
 
index 3abdca746907534192d8a13242bc2cc9a9b6b002..7b359cb22060bafb0ba1054438d58bd7282e128b 100644 (file)
@@ -237,7 +237,7 @@ struct breakpoint
     struct command_line *commands;
     /* Stack depth (address of frame).  If nonzero, break only if fp
        equals this.  */
-    CORE_ADDR frame;
+    struct frame_id frame_id;
     /* Conditional.  Break only if this expression's value is nonzero.  */
     struct expression *cond;
 
@@ -521,9 +521,6 @@ enum breakpoint_here
 
 /* Prototypes for breakpoint-related functions.  */
 
-/* Forward declarations for prototypes */
-struct frame_info;
-
 extern enum breakpoint_here breakpoint_here_p (CORE_ADDR);
 
 extern int breakpoint_inserted_here_p (CORE_ADDR);
@@ -532,11 +529,7 @@ extern int breakpoint_inserted_here_p (CORE_ADDR);
    implements a functional superset of this function.  The only reason
    it hasn't been removed is because some architectures still don't
    use the new framework.  Once they have been fixed, this can go.  */
-/* FIXME: cagney/2002-11-10: There should be a function (hmm,
-   something like, enum { NORMAL_FRAME, DUMMY_FRAME, SIGTRAMP_FRAME }
-   get_frame_type() ...) that the caller can use to determine the
-   frame's type.  This could replace this function, PC_IN_CALL_DUMMY,
-   and fi->signal_handler_caller.  */
+struct frame_info;
 extern int deprecated_frame_in_dummy (struct frame_info *);
 
 extern int breakpoint_thread_match (CORE_ADDR, ptid_t);
@@ -550,7 +543,7 @@ extern void breakpoint_re_set_thread (struct breakpoint *);
 extern int ep_is_exception_catchpoint (struct breakpoint *);
 
 extern struct breakpoint *set_momentary_breakpoint
-  (struct symtab_and_line, struct frame_info *, enum bptype);
+  (struct symtab_and_line, struct frame_id, enum bptype);
 
 extern void set_ignore_count (int, int, int);
 
@@ -624,7 +617,7 @@ extern void disable_longjmp_breakpoint (void);
 extern void enable_overlay_breakpoints (void);
 extern void disable_overlay_breakpoints (void);
 
-extern void set_longjmp_resume_breakpoint (CORE_ADDR, struct frame_info *);
+extern void set_longjmp_resume_breakpoint (CORE_ADDR, struct frame_id);
 /* These functions respectively disable or reenable all currently
    enabled watchpoints.  When disabled, the watchpoints are marked
    call_disabled.  When reenabled, they are marked enabled.
index 8583942fadacb248b14513e8c826fb7aa15fc35d..66650bd9bb98917cef5a351406ca28ebb791221c 100644 (file)
@@ -34,6 +34,7 @@
 #include "symfile.h"
 #include "objfiles.h"
 #include "gdbtypes.h"
+#include "gdb_assert.h"
 #include "complaints.h"
 #include "gdb_string.h"
 #include "expression.h"                /* For "enum exp_opcode" used by... */
@@ -89,23 +90,6 @@ static struct using_direct_node *copy_usings_to_obstack (struct
 #define        INITIAL_LINE_VECTOR_LENGTH      1000
 \f
 
-/* Complaints about the symbols we have encountered.  */
-
-struct deprecated_complaint block_end_complaint =
-{"block end address less than block start address in %s (patched it)", 0, 0};
-
-struct deprecated_complaint anon_block_end_complaint =
-{"block end address 0x%lx less than block start address 0x%lx (patched it)", 0, 0};
-
-struct deprecated_complaint innerblock_complaint =
-{"inner block not inside outer block in %s", 0, 0};
-
-struct deprecated_complaint innerblock_anon_complaint =
-{"inner block (0x%lx-0x%lx) not inside outer block (0x%lx-0x%lx)", 0, 0};
-
-struct deprecated_complaint blockvector_complaint =
-{"block at %s out of order", 0, 0};
-\f
 /* maintain the lists of symbols and blocks */
 
 /* Add a pending list to free_pendings. */
@@ -508,11 +492,15 @@ finish_block (struct symbol *symbol, struct pending **listhead,
     {
       if (symbol)
        {
-         complain (&block_end_complaint, SYMBOL_PRINT_NAME (symbol));
+         complaint (&symfile_complaints,
+                    "block end address less than block start address in %s (patched it)",
+                    SYMBOL_PRINT_NAME (symbol));
        }
       else
        {
-         complain (&anon_block_end_complaint, BLOCK_END (block), BLOCK_START (block));
+         complaint (&symfile_complaints,
+                    "block end address 0x%s less than block start address 0x%s (patched it)",
+                    paddr_nz (BLOCK_END (block)), paddr_nz (BLOCK_START (block)));
        }
       /* Better than nothing */
       BLOCK_END (block) = BLOCK_START (block);
@@ -538,14 +526,18 @@ finish_block (struct symbol *symbol, struct pending **listhead,
            {
              if (symbol)
                {
-                 complain (&innerblock_complaint,
-                           SYMBOL_PRINT_NAME (symbol));
+                 complaint (&symfile_complaints,
+                            "inner block not inside outer block in %s",
+                            SYMBOL_PRINT_NAME (symbol));
                }
              else
                {
-                 complain (&innerblock_anon_complaint, BLOCK_START (pblock->block),
-                           BLOCK_END (pblock->block), BLOCK_START (block),
-                           BLOCK_END (block));
+                 complaint (&symfile_complaints,
+                            "inner block (0x%s-0x%s) not inside outer block (0x%s-0x%s)",
+                            paddr_nz (BLOCK_START (pblock->block)),
+                            paddr_nz (BLOCK_END (pblock->block)),
+                            paddr_nz (BLOCK_START (block)),
+                            paddr_nz (BLOCK_END (block)));
                }
              if (BLOCK_START (pblock->block) < BLOCK_START (block))
                BLOCK_START (pblock->block) = BLOCK_START (block);
@@ -650,8 +642,8 @@ make_blockvector (struct objfile *objfile)
              CORE_ADDR start
                = BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i));
 
-             complain (&blockvector_complaint,
-                       local_hex_string ((LONGEST) start));
+             complaint (&symfile_complaints, "block at %s out of order",
+                        local_hex_string ((LONGEST) start));
            }
        }
     }
@@ -972,9 +964,8 @@ end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
             same.  FIXME: Find out why it is happening.  This is not
             believed to happen in most cases (even for coffread.c);
             it used to be an abort().  */
-         static struct deprecated_complaint msg =
-         {"Context stack not empty in end_symtab", 0, 0};
-         complain (&msg);
+         complaint (&symfile_complaints,
+                    "Context stack not empty in end_symtab");
          context_stack_depth = 0;
        }
     }
@@ -1237,6 +1228,17 @@ push_context (int desc, CORE_ADDR valu)
 
   return new;
 }
+
+/* Pop a context block.  Returns the address of the context block just
+   popped. */
+
+struct context_stack *
+pop_context (void)
+{
+  gdb_assert (context_stack_depth > 0);
+  return (&context_stack[--context_stack_depth]);
+}
+
 \f
 
 /* Compute a small integer hash code for the given name. */
index 92e101ebea32ed59da5f39a1cf2401089bbba5ab..41c85fd8452c0a39bfd84ea92e9cb8361b03d74f 100644 (file)
@@ -187,12 +187,6 @@ EXTERN int context_stack_depth;
 
 EXTERN int context_stack_size;
 
-/* Macro "function" for popping contexts from the stack.  Pushing is
-   done by a real function, push_context.  This returns a pointer to a
-   struct context_stack.  */
-
-#define        pop_context() (&context_stack[--context_stack_depth]);
-
 /* Non-zero if the context stack is empty.  */
 #define outermost_context_p() (context_stack_depth == 0)
 
@@ -289,6 +283,8 @@ extern void buildsym_init (void);
 
 extern struct context_stack *push_context (int desc, CORE_ADDR valu);
 
+extern struct context_stack *pop_context (void);
+
 extern void record_line (struct subfile *subfile, int line, CORE_ADDR pc);
 
 extern void start_symtab (char *name, char *dirname, CORE_ADDR start_addr);
index 07a84497fdb855d01f557a4f6998d0f246341cfb..fa26abc12b4614a9f507cded1db6cf4c7d6e36c0 100644 (file)
@@ -302,7 +302,7 @@ c_type_print_modifier (struct type *type, struct ui_file *stream,
                       int need_pre_space, int need_post_space)
 {
   int did_print_modifier = 0;
-  char *address_space_id;
+  const char *address_space_id;
 
   /* We don't print `const' qualifiers for references --- since all
      operators affect the thing referenced, not the reference itself,
diff --git a/gdb/ch-exp.c b/gdb/ch-exp.c
deleted file mode 100644 (file)
index d588ec2..0000000
+++ /dev/null
@@ -1,2233 +0,0 @@
-// OBSOLETE /* Parser for GNU CHILL (CCITT High-Level Language)  -*- C -*-
-// OBSOLETE    Copyright 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* Parse a Chill expression from text in a string,
-// OBSOLETE    and return the result as a  struct expression  pointer.
-// OBSOLETE    That structure contains arithmetic operations in reverse polish,
-// OBSOLETE    with constants represented by operations that are followed by special data.
-// OBSOLETE    See expression.h for the details of the format.
-// OBSOLETE    What is important here is that it can be built up sequentially
-// OBSOLETE    during the process of parsing; the lower levels of the tree always
-// OBSOLETE    come first in the result.
-// OBSOLETE 
-// OBSOLETE    Note that the language accepted by this parser is more liberal
-// OBSOLETE    than the one accepted by an actual Chill compiler.  For example, the
-// OBSOLETE    language rule that a simple name string can not be one of the reserved
-// OBSOLETE    simple name strings is not enforced (e.g "case" is not treated as a
-// OBSOLETE    reserved name).  Another example is that Chill is a strongly typed
-// OBSOLETE    language, and certain expressions that violate the type constraints
-// OBSOLETE    may still be evaluated if gdb can do so in a meaningful manner, while
-// OBSOLETE    such expressions would be rejected by the compiler.  The reason for
-// OBSOLETE    this more liberal behavior is the philosophy that the debugger
-// OBSOLETE    is intended to be a tool that is used by the programmer when things
-// OBSOLETE    go wrong, and as such, it should provide as few artificial barriers
-// OBSOLETE    to it's use as possible.  If it can do something meaningful, even
-// OBSOLETE    something that violates language contraints that are enforced by the
-// OBSOLETE    compiler, it should do so without complaint.
-// OBSOLETE 
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE #include <ctype.h>
-// OBSOLETE #include "expression.h"
-// OBSOLETE #include "language.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE #include "parser-defs.h"
-// OBSOLETE #include "ch-lang.h"
-// OBSOLETE #include "bfd.h"           /* Required by objfiles.h.  */
-// OBSOLETE #include "symfile.h"               /* Required by objfiles.h.  */
-// OBSOLETE #include "objfiles.h"              /* For have_full_symbols and have_partial_symbols */
-// OBSOLETE 
-// OBSOLETE #ifdef __GNUC__
-// OBSOLETE #define INLINE __inline__
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE typedef union
-// OBSOLETE 
-// OBSOLETE   {
-// OBSOLETE     LONGEST lval;
-// OBSOLETE     ULONGEST ulval;
-// OBSOLETE     struct
-// OBSOLETE       {
-// OBSOLETE    LONGEST val;
-// OBSOLETE    struct type *type;
-// OBSOLETE       }
-// OBSOLETE     typed_val;
-// OBSOLETE     double dval;
-// OBSOLETE     struct symbol *sym;
-// OBSOLETE     struct type *tval;
-// OBSOLETE     struct stoken sval;
-// OBSOLETE     struct ttype tsym;
-// OBSOLETE     struct symtoken ssym;
-// OBSOLETE   }
-// OBSOLETE YYSTYPE;
-// OBSOLETE 
-// OBSOLETE enum ch_terminal
-// OBSOLETE   {
-// OBSOLETE     END_TOKEN = 0,
-// OBSOLETE     /* '\001' ... '\xff' come first. */
-// OBSOLETE     OPEN_PAREN = '(',
-// OBSOLETE     TOKEN_NOT_READ = 999,
-// OBSOLETE     INTEGER_LITERAL,
-// OBSOLETE     BOOLEAN_LITERAL,
-// OBSOLETE     CHARACTER_LITERAL,
-// OBSOLETE     FLOAT_LITERAL,
-// OBSOLETE     GENERAL_PROCEDURE_NAME,
-// OBSOLETE     LOCATION_NAME,
-// OBSOLETE     EMPTINESS_LITERAL,
-// OBSOLETE     CHARACTER_STRING_LITERAL,
-// OBSOLETE     BIT_STRING_LITERAL,
-// OBSOLETE     TYPENAME,
-// OBSOLETE     DOT_FIELD_NAME,                /* '.' followed by <field name> */
-// OBSOLETE     CASE,
-// OBSOLETE     OF,
-// OBSOLETE     ESAC,
-// OBSOLETE     LOGIOR,
-// OBSOLETE     ORIF,
-// OBSOLETE     LOGXOR,
-// OBSOLETE     LOGAND,
-// OBSOLETE     ANDIF,
-// OBSOLETE     NOTEQUAL,
-// OBSOLETE     GEQ,
-// OBSOLETE     LEQ,
-// OBSOLETE     IN,
-// OBSOLETE     SLASH_SLASH,
-// OBSOLETE     MOD,
-// OBSOLETE     REM,
-// OBSOLETE     NOT,
-// OBSOLETE     POINTER,
-// OBSOLETE     RECEIVE,
-// OBSOLETE     UP,
-// OBSOLETE     IF,
-// OBSOLETE     THEN,
-// OBSOLETE     ELSE,
-// OBSOLETE     FI,
-// OBSOLETE     ELSIF,
-// OBSOLETE     ILLEGAL_TOKEN,
-// OBSOLETE     NUM,
-// OBSOLETE     PRED,
-// OBSOLETE     SUCC,
-// OBSOLETE     ABS,
-// OBSOLETE     CARD,
-// OBSOLETE     MAX_TOKEN,
-// OBSOLETE     MIN_TOKEN,
-// OBSOLETE     ADDR_TOKEN,
-// OBSOLETE     SIZE,
-// OBSOLETE     UPPER,
-// OBSOLETE     LOWER,
-// OBSOLETE     LENGTH,
-// OBSOLETE     ARRAY,
-// OBSOLETE     GDB_VARIABLE,
-// OBSOLETE     GDB_ASSIGNMENT
-// OBSOLETE   };
-// OBSOLETE 
-// OBSOLETE /* Forward declarations. */
-// OBSOLETE 
-// OBSOLETE static void write_lower_upper_value (enum exp_opcode, struct type *);
-// OBSOLETE static enum ch_terminal match_bitstring_literal (void);
-// OBSOLETE static enum ch_terminal match_integer_literal (void);
-// OBSOLETE static enum ch_terminal match_character_literal (void);
-// OBSOLETE static enum ch_terminal match_string_literal (void);
-// OBSOLETE static enum ch_terminal match_float_literal (void);
-// OBSOLETE static int decode_integer_literal (LONGEST *, char **);
-// OBSOLETE static int decode_integer_value (int, char **, LONGEST *);
-// OBSOLETE static char *match_simple_name_string (void);
-// OBSOLETE static void growbuf_by_size (int);
-// OBSOLETE static void parse_case_label (void);
-// OBSOLETE static void parse_untyped_expr (void);
-// OBSOLETE static void parse_if_expression (void);
-// OBSOLETE static void parse_if_expression_body (void);
-// OBSOLETE static void parse_else_alternative (void);
-// OBSOLETE static void parse_then_alternative (void);
-// OBSOLETE static void parse_expr (void);
-// OBSOLETE static void parse_operand0 (void);
-// OBSOLETE static void parse_operand1 (void);
-// OBSOLETE static void parse_operand2 (void);
-// OBSOLETE static void parse_operand3 (void);
-// OBSOLETE static void parse_operand4 (void);
-// OBSOLETE static void parse_operand5 (void);
-// OBSOLETE static void parse_operand6 (void);
-// OBSOLETE static void parse_primval (void);
-// OBSOLETE static void parse_tuple (struct type *);
-// OBSOLETE static void parse_opt_element_list (struct type *);
-// OBSOLETE static void parse_tuple_element (struct type *);
-// OBSOLETE static void parse_named_record_element (void);
-// OBSOLETE static void parse_call (void);
-// OBSOLETE static struct type *parse_mode_or_normal_call (void);
-// OBSOLETE #if 0
-// OBSOLETE static struct type *parse_mode_call (void);
-// OBSOLETE #endif
-// OBSOLETE static void parse_unary_call (void);
-// OBSOLETE static int parse_opt_untyped_expr (void);
-// OBSOLETE static int expect (enum ch_terminal, char *);
-// OBSOLETE static enum ch_terminal ch_lex (void);
-// OBSOLETE INLINE static enum ch_terminal PEEK_TOKEN (void);
-// OBSOLETE static enum ch_terminal peek_token_ (int);
-// OBSOLETE static void forward_token_ (void);
-// OBSOLETE static void require (enum ch_terminal);
-// OBSOLETE static int check_token (enum ch_terminal);
-// OBSOLETE 
-// OBSOLETE #define MAX_LOOK_AHEAD 2
-// OBSOLETE static enum ch_terminal terminal_buffer[MAX_LOOK_AHEAD + 1] =
-// OBSOLETE {
-// OBSOLETE   TOKEN_NOT_READ, TOKEN_NOT_READ, TOKEN_NOT_READ};
-// OBSOLETE static YYSTYPE yylval;
-// OBSOLETE static YYSTYPE val_buffer[MAX_LOOK_AHEAD + 1];
-// OBSOLETE 
-// OBSOLETE /*int current_token, lookahead_token; */
-// OBSOLETE 
-// OBSOLETE INLINE static enum ch_terminal
-// OBSOLETE PEEK_TOKEN (void)
-// OBSOLETE {
-// OBSOLETE   if (terminal_buffer[0] == TOKEN_NOT_READ)
-// OBSOLETE     {
-// OBSOLETE       terminal_buffer[0] = ch_lex ();
-// OBSOLETE       val_buffer[0] = yylval;
-// OBSOLETE     }
-// OBSOLETE   return terminal_buffer[0];
-// OBSOLETE }
-// OBSOLETE #define PEEK_LVAL() val_buffer[0]
-// OBSOLETE #define PEEK_TOKEN1() peek_token_(1)
-// OBSOLETE #define PEEK_TOKEN2() peek_token_(2)
-// OBSOLETE static enum ch_terminal
-// OBSOLETE peek_token_ (int i)
-// OBSOLETE {
-// OBSOLETE   if (i > MAX_LOOK_AHEAD)
-// OBSOLETE     internal_error (__FILE__, __LINE__,
-// OBSOLETE                "too much lookahead");
-// OBSOLETE   if (terminal_buffer[i] == TOKEN_NOT_READ)
-// OBSOLETE     {
-// OBSOLETE       terminal_buffer[i] = ch_lex ();
-// OBSOLETE       val_buffer[i] = yylval;
-// OBSOLETE     }
-// OBSOLETE   return terminal_buffer[i];
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE pushback_token (enum ch_terminal code, YYSTYPE node)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE   if (terminal_buffer[MAX_LOOK_AHEAD] != TOKEN_NOT_READ)
-// OBSOLETE     internal_error (__FILE__, __LINE__,
-// OBSOLETE                "cannot pushback token");
-// OBSOLETE   for (i = MAX_LOOK_AHEAD; i > 0; i--)
-// OBSOLETE     {
-// OBSOLETE       terminal_buffer[i] = terminal_buffer[i - 1];
-// OBSOLETE       val_buffer[i] = val_buffer[i - 1];
-// OBSOLETE     }
-// OBSOLETE   terminal_buffer[0] = code;
-// OBSOLETE   val_buffer[0] = node;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE forward_token_ (void)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE   for (i = 0; i < MAX_LOOK_AHEAD; i++)
-// OBSOLETE     {
-// OBSOLETE       terminal_buffer[i] = terminal_buffer[i + 1];
-// OBSOLETE       val_buffer[i] = val_buffer[i + 1];
-// OBSOLETE     }
-// OBSOLETE   terminal_buffer[MAX_LOOK_AHEAD] = TOKEN_NOT_READ;
-// OBSOLETE }
-// OBSOLETE #define FORWARD_TOKEN() forward_token_()
-// OBSOLETE 
-// OBSOLETE /* Skip the next token.
-// OBSOLETE    if it isn't TOKEN, the parser is broken. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE require (enum ch_terminal token)
-// OBSOLETE {
-// OBSOLETE   if (PEEK_TOKEN () != token)
-// OBSOLETE     {
-// OBSOLETE       internal_error (__FILE__, __LINE__,
-// OBSOLETE                  "expected token %d", (int) token);
-// OBSOLETE     }
-// OBSOLETE   FORWARD_TOKEN ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE check_token (enum ch_terminal token)
-// OBSOLETE {
-// OBSOLETE   if (PEEK_TOKEN () != token)
-// OBSOLETE     return 0;
-// OBSOLETE   FORWARD_TOKEN ();
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* return 0 if expected token was not found,
-// OBSOLETE    else return 1.
-// OBSOLETE  */
-// OBSOLETE static int
-// OBSOLETE expect (enum ch_terminal token, char *message)
-// OBSOLETE {
-// OBSOLETE   if (PEEK_TOKEN () != token)
-// OBSOLETE     {
-// OBSOLETE       if (message)
-// OBSOLETE    error (message);
-// OBSOLETE       else if (token < 256)
-// OBSOLETE    error ("syntax error - expected a '%c' here \"%s\"", token, lexptr);
-// OBSOLETE       else
-// OBSOLETE    error ("syntax error");
-// OBSOLETE       return 0;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     FORWARD_TOKEN ();
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE /* Parse a name string.  If ALLOW_ALL is 1, ALL is allowed as a postfix. */
-// OBSOLETE 
-// OBSOLETE static tree
-// OBSOLETE parse_opt_name_string (int allow_all)
-// OBSOLETE {
-// OBSOLETE   int token = PEEK_TOKEN ();
-// OBSOLETE   tree name;
-// OBSOLETE   if (token != NAME)
-// OBSOLETE     {
-// OBSOLETE       if (token == ALL && allow_all)
-// OBSOLETE    {
-// OBSOLETE      FORWARD_TOKEN ();
-// OBSOLETE      return ALL_POSTFIX;
-// OBSOLETE    }
-// OBSOLETE       return NULL_TREE;
-// OBSOLETE     }
-// OBSOLETE   name = PEEK_LVAL ();
-// OBSOLETE   for (;;)
-// OBSOLETE     {
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       token = PEEK_TOKEN ();
-// OBSOLETE       if (token != '!')
-// OBSOLETE    return name;
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       token = PEEK_TOKEN ();
-// OBSOLETE       if (token == ALL && allow_all)
-// OBSOLETE    return get_identifier3 (IDENTIFIER_POINTER (name), "!", "*");
-// OBSOLETE       if (token != NAME)
-// OBSOLETE    {
-// OBSOLETE      if (pass == 1)
-// OBSOLETE        error ("'%s!' is not followed by an identifier",
-// OBSOLETE               IDENTIFIER_POINTER (name));
-// OBSOLETE      return name;
-// OBSOLETE    }
-// OBSOLETE       name = get_identifier3 (IDENTIFIER_POINTER (name),
-// OBSOLETE                          "!", IDENTIFIER_POINTER (PEEK_LVAL ()));
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static tree
-// OBSOLETE parse_simple_name_string (void)
-// OBSOLETE {
-// OBSOLETE   int token = PEEK_TOKEN ();
-// OBSOLETE   tree name;
-// OBSOLETE   if (token != NAME)
-// OBSOLETE     {
-// OBSOLETE       error ("expected a name here");
-// OBSOLETE       return error_mark_node;
-// OBSOLETE     }
-// OBSOLETE   name = PEEK_LVAL ();
-// OBSOLETE   FORWARD_TOKEN ();
-// OBSOLETE   return name;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static tree
-// OBSOLETE parse_name_string (void)
-// OBSOLETE {
-// OBSOLETE   tree name = parse_opt_name_string (0);
-// OBSOLETE   if (name)
-// OBSOLETE     return name;
-// OBSOLETE   if (pass == 1)
-// OBSOLETE     error ("expected a name string here");
-// OBSOLETE   return error_mark_node;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Matches: <name_string>
-// OBSOLETE    Returns if pass 1: the identifier.
-// OBSOLETE    Returns if pass 2: a decl or value for identifier. */
-// OBSOLETE 
-// OBSOLETE static tree
-// OBSOLETE parse_name (void)
-// OBSOLETE {
-// OBSOLETE   tree name = parse_name_string ();
-// OBSOLETE   if (pass == 1 || ignoring)
-// OBSOLETE     return name;
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       tree decl = lookup_name (name);
-// OBSOLETE       if (decl == NULL_TREE)
-// OBSOLETE    {
-// OBSOLETE      error ("`%s' undeclared", IDENTIFIER_POINTER (name));
-// OBSOLETE      return error_mark_node;
-// OBSOLETE    }
-// OBSOLETE       else if (TREE_CODE (TREE_TYPE (decl)) == ERROR_MARK)
-// OBSOLETE    return error_mark_node;
-// OBSOLETE       else if (TREE_CODE (decl) == CONST_DECL)
-// OBSOLETE    return DECL_INITIAL (decl);
-// OBSOLETE       else if (TREE_CODE (TREE_TYPE (decl)) == REFERENCE_TYPE)
-// OBSOLETE    return convert_from_reference (decl);
-// OBSOLETE       else
-// OBSOLETE    return decl;
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE static void
-// OBSOLETE pushback_paren_expr (tree expr)
-// OBSOLETE {
-// OBSOLETE   if (pass == 1 && !ignoring)
-// OBSOLETE     expr = build1 (PAREN_EXPR, NULL_TREE, expr);
-// OBSOLETE   pushback_token (EXPR, expr);
-// OBSOLETE }
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE /* Matches: <case label> */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_case_label (void)
-// OBSOLETE {
-// OBSOLETE   if (check_token (ELSE))
-// OBSOLETE     error ("ELSE in tuples labels not implemented");
-// OBSOLETE   /* Does not handle the case of a mode name.  FIXME */
-// OBSOLETE   parse_expr ();
-// OBSOLETE   if (check_token (':'))
-// OBSOLETE     {
-// OBSOLETE       parse_expr ();
-// OBSOLETE       write_exp_elt_opcode (BINOP_RANGE);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE parse_opt_untyped_expr (void)
-// OBSOLETE {
-// OBSOLETE   switch (PEEK_TOKEN ())
-// OBSOLETE     {
-// OBSOLETE     case ',':
-// OBSOLETE     case ':':
-// OBSOLETE     case ')':
-// OBSOLETE       return 0;
-// OBSOLETE     default:
-// OBSOLETE       parse_untyped_expr ();
-// OBSOLETE       return 1;
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_unary_call (void)
-// OBSOLETE {
-// OBSOLETE   FORWARD_TOKEN ();
-// OBSOLETE   expect ('(', NULL);
-// OBSOLETE   parse_expr ();
-// OBSOLETE   expect (')', NULL);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Parse NAME '(' MODENAME ')'. */
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE 
-// OBSOLETE static struct type *
-// OBSOLETE parse_mode_call (void)
-// OBSOLETE {
-// OBSOLETE   struct type *type;
-// OBSOLETE   FORWARD_TOKEN ();
-// OBSOLETE   expect ('(', NULL);
-// OBSOLETE   if (PEEK_TOKEN () != TYPENAME)
-// OBSOLETE     error ("expect MODENAME here `%s'", lexptr);
-// OBSOLETE   type = PEEK_LVAL ().tsym.type;
-// OBSOLETE   FORWARD_TOKEN ();
-// OBSOLETE   expect (')', NULL);
-// OBSOLETE   return type;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE static struct type *
-// OBSOLETE parse_mode_or_normal_call (void)
-// OBSOLETE {
-// OBSOLETE   struct type *type;
-// OBSOLETE   FORWARD_TOKEN ();
-// OBSOLETE   expect ('(', NULL);
-// OBSOLETE   if (PEEK_TOKEN () == TYPENAME)
-// OBSOLETE     {
-// OBSOLETE       type = PEEK_LVAL ().tsym.type;
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       parse_expr ();
-// OBSOLETE       type = NULL;
-// OBSOLETE     }
-// OBSOLETE   expect (')', NULL);
-// OBSOLETE   return type;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Parse something that looks like a function call.
-// OBSOLETE    Assume we have parsed the function, and are at the '('. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_call (void)
-// OBSOLETE {
-// OBSOLETE   int arg_count;
-// OBSOLETE   require ('(');
-// OBSOLETE   /* This is to save the value of arglist_len
-// OBSOLETE      being accumulated for each dimension. */
-// OBSOLETE   start_arglist ();
-// OBSOLETE   if (parse_opt_untyped_expr ())
-// OBSOLETE     {
-// OBSOLETE       int tok = PEEK_TOKEN ();
-// OBSOLETE       arglist_len = 1;
-// OBSOLETE       if (tok == UP || tok == ':')
-// OBSOLETE    {
-// OBSOLETE      FORWARD_TOKEN ();
-// OBSOLETE      parse_expr ();
-// OBSOLETE      expect (')', "expected ')' to terminate slice");
-// OBSOLETE      end_arglist ();
-// OBSOLETE      write_exp_elt_opcode (tok == UP ? TERNOP_SLICE_COUNT
-// OBSOLETE                            : TERNOP_SLICE);
-// OBSOLETE      return;
-// OBSOLETE    }
-// OBSOLETE       while (check_token (','))
-// OBSOLETE    {
-// OBSOLETE      parse_untyped_expr ();
-// OBSOLETE      arglist_len++;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     arglist_len = 0;
-// OBSOLETE   expect (')', NULL);
-// OBSOLETE   arg_count = end_arglist ();
-// OBSOLETE   write_exp_elt_opcode (MULTI_SUBSCRIPT);
-// OBSOLETE   write_exp_elt_longcst (arg_count);
-// OBSOLETE   write_exp_elt_opcode (MULTI_SUBSCRIPT);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_named_record_element (void)
-// OBSOLETE {
-// OBSOLETE   struct stoken label;
-// OBSOLETE   char buf[256];
-// OBSOLETE 
-// OBSOLETE   label = PEEK_LVAL ().sval;
-// OBSOLETE   sprintf (buf, "expected a field name here `%s'", lexptr);
-// OBSOLETE   expect (DOT_FIELD_NAME, buf);
-// OBSOLETE   if (check_token (','))
-// OBSOLETE     parse_named_record_element ();
-// OBSOLETE   else if (check_token (':'))
-// OBSOLETE     parse_expr ();
-// OBSOLETE   else
-// OBSOLETE     error ("syntax error near `%s' in named record tuple element", lexptr);
-// OBSOLETE   write_exp_elt_opcode (OP_LABELED);
-// OBSOLETE   write_exp_string (label);
-// OBSOLETE   write_exp_elt_opcode (OP_LABELED);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Returns one or more TREE_LIST nodes, in reverse order. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_tuple_element (struct type *type)
-// OBSOLETE {
-// OBSOLETE   if (PEEK_TOKEN () == DOT_FIELD_NAME)
-// OBSOLETE     {
-// OBSOLETE       /* Parse a labelled structure tuple. */
-// OBSOLETE       parse_named_record_element ();
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (check_token ('('))
-// OBSOLETE     {
-// OBSOLETE       if (check_token ('*'))
-// OBSOLETE    {
-// OBSOLETE      expect (')', "missing ')' after '*' case label list");
-// OBSOLETE      if (type)
-// OBSOLETE        {
-// OBSOLETE          if (TYPE_CODE (type) == TYPE_CODE_ARRAY)
-// OBSOLETE            {
-// OBSOLETE              /* do this as a range from low to high */
-// OBSOLETE              struct type *range_type = TYPE_FIELD_TYPE (type, 0);
-// OBSOLETE              LONGEST low_bound, high_bound;
-// OBSOLETE              if (get_discrete_bounds (range_type, &low_bound, &high_bound) < 0)
-// OBSOLETE                error ("cannot determine bounds for (*)");
-// OBSOLETE              /* lower bound */
-// OBSOLETE              write_exp_elt_opcode (OP_LONG);
-// OBSOLETE              write_exp_elt_type (range_type);
-// OBSOLETE              write_exp_elt_longcst (low_bound);
-// OBSOLETE              write_exp_elt_opcode (OP_LONG);
-// OBSOLETE              /* upper bound */
-// OBSOLETE              write_exp_elt_opcode (OP_LONG);
-// OBSOLETE              write_exp_elt_type (range_type);
-// OBSOLETE              write_exp_elt_longcst (high_bound);
-// OBSOLETE              write_exp_elt_opcode (OP_LONG);
-// OBSOLETE              write_exp_elt_opcode (BINOP_RANGE);
-// OBSOLETE            }
-// OBSOLETE          else
-// OBSOLETE            error ("(*) in invalid context");
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        error ("(*) only possible with modename in front of tuple (mode[..])");
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      parse_case_label ();
-// OBSOLETE      while (check_token (','))
-// OBSOLETE        {
-// OBSOLETE          parse_case_label ();
-// OBSOLETE          write_exp_elt_opcode (BINOP_COMMA);
-// OBSOLETE        }
-// OBSOLETE      expect (')', NULL);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     parse_untyped_expr ();
-// OBSOLETE   if (check_token (':'))
-// OBSOLETE     {
-// OBSOLETE       /* A powerset range or a labeled Array. */
-// OBSOLETE       parse_untyped_expr ();
-// OBSOLETE       write_exp_elt_opcode (BINOP_RANGE);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Matches:  a COMMA-separated list of tuple elements.
-// OBSOLETE    Returns a list (of TREE_LIST nodes). */
-// OBSOLETE static void
-// OBSOLETE parse_opt_element_list (struct type *type)
-// OBSOLETE {
-// OBSOLETE   arglist_len = 0;
-// OBSOLETE   if (PEEK_TOKEN () == ']')
-// OBSOLETE     return;
-// OBSOLETE   for (;;)
-// OBSOLETE     {
-// OBSOLETE       parse_tuple_element (type);
-// OBSOLETE       arglist_len++;
-// OBSOLETE       if (PEEK_TOKEN () == ']')
-// OBSOLETE    break;
-// OBSOLETE       if (!check_token (','))
-// OBSOLETE    error ("bad syntax in tuple");
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Parses: '[' elements ']'
-// OBSOLETE    If modename is non-NULL it prefixed the tuple.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_tuple (struct type *mode)
-// OBSOLETE {
-// OBSOLETE   struct type *type;
-// OBSOLETE   if (mode)
-// OBSOLETE     type = check_typedef (mode);
-// OBSOLETE   else
-// OBSOLETE     type = 0;
-// OBSOLETE   require ('[');
-// OBSOLETE   start_arglist ();
-// OBSOLETE   parse_opt_element_list (type);
-// OBSOLETE   expect (']', "missing ']' after tuple");
-// OBSOLETE   write_exp_elt_opcode (OP_ARRAY);
-// OBSOLETE   write_exp_elt_longcst ((LONGEST) 0);
-// OBSOLETE   write_exp_elt_longcst ((LONGEST) end_arglist () - 1);
-// OBSOLETE   write_exp_elt_opcode (OP_ARRAY);
-// OBSOLETE   if (type)
-// OBSOLETE     {
-// OBSOLETE       if (TYPE_CODE (type) != TYPE_CODE_ARRAY
-// OBSOLETE      && TYPE_CODE (type) != TYPE_CODE_STRUCT
-// OBSOLETE      && TYPE_CODE (type) != TYPE_CODE_SET)
-// OBSOLETE    error ("invalid tuple mode");
-// OBSOLETE       write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE       write_exp_elt_type (mode);
-// OBSOLETE       write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_primval (void)
-// OBSOLETE {
-// OBSOLETE   struct type *type;
-// OBSOLETE   enum exp_opcode op;
-// OBSOLETE   char *op_name;
-// OBSOLETE   switch (PEEK_TOKEN ())
-// OBSOLETE     {
-// OBSOLETE     case INTEGER_LITERAL:
-// OBSOLETE     case CHARACTER_LITERAL:
-// OBSOLETE       write_exp_elt_opcode (OP_LONG);
-// OBSOLETE       write_exp_elt_type (PEEK_LVAL ().typed_val.type);
-// OBSOLETE       write_exp_elt_longcst (PEEK_LVAL ().typed_val.val);
-// OBSOLETE       write_exp_elt_opcode (OP_LONG);
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       break;
-// OBSOLETE     case BOOLEAN_LITERAL:
-// OBSOLETE       write_exp_elt_opcode (OP_BOOL);
-// OBSOLETE       write_exp_elt_longcst ((LONGEST) PEEK_LVAL ().ulval);
-// OBSOLETE       write_exp_elt_opcode (OP_BOOL);
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       break;
-// OBSOLETE     case FLOAT_LITERAL:
-// OBSOLETE       write_exp_elt_opcode (OP_DOUBLE);
-// OBSOLETE       write_exp_elt_type (builtin_type_double);
-// OBSOLETE       write_exp_elt_dblcst (PEEK_LVAL ().dval);
-// OBSOLETE       write_exp_elt_opcode (OP_DOUBLE);
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       break;
-// OBSOLETE     case EMPTINESS_LITERAL:
-// OBSOLETE       write_exp_elt_opcode (OP_LONG);
-// OBSOLETE       write_exp_elt_type (lookup_pointer_type (builtin_type_void));
-// OBSOLETE       write_exp_elt_longcst (0);
-// OBSOLETE       write_exp_elt_opcode (OP_LONG);
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       break;
-// OBSOLETE     case CHARACTER_STRING_LITERAL:
-// OBSOLETE       write_exp_elt_opcode (OP_STRING);
-// OBSOLETE       write_exp_string (PEEK_LVAL ().sval);
-// OBSOLETE       write_exp_elt_opcode (OP_STRING);
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       break;
-// OBSOLETE     case BIT_STRING_LITERAL:
-// OBSOLETE       write_exp_elt_opcode (OP_BITSTRING);
-// OBSOLETE       write_exp_bitstring (PEEK_LVAL ().sval);
-// OBSOLETE       write_exp_elt_opcode (OP_BITSTRING);
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       break;
-// OBSOLETE     case ARRAY:
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       /* This is pseudo-Chill, similar to C's '(TYPE[])EXPR'
-// OBSOLETE          which casts to an artificial array. */
-// OBSOLETE       expect ('(', NULL);
-// OBSOLETE       expect (')', NULL);
-// OBSOLETE       if (PEEK_TOKEN () != TYPENAME)
-// OBSOLETE    error ("missing MODENAME after ARRAY()");
-// OBSOLETE       type = PEEK_LVAL ().tsym.type;
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       expect ('(', NULL);
-// OBSOLETE       parse_expr ();
-// OBSOLETE       expect (')', "missing right parenthesis");
-// OBSOLETE       type = create_array_type ((struct type *) NULL, type,
-// OBSOLETE                            create_range_type ((struct type *) NULL,
-// OBSOLETE                                               builtin_type_int, 0, 0));
-// OBSOLETE       TYPE_ARRAY_UPPER_BOUND_TYPE (type) = BOUND_CANNOT_BE_DETERMINED;
-// OBSOLETE       write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE       write_exp_elt_type (type);
-// OBSOLETE       write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE       break;
-// OBSOLETE #if 0
-// OBSOLETE     case CONST:
-// OBSOLETE     case EXPR:
-// OBSOLETE       val = PEEK_LVAL ();
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       break;
-// OBSOLETE #endif
-// OBSOLETE     case '(':
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       parse_expr ();
-// OBSOLETE       expect (')', "missing right parenthesis");
-// OBSOLETE       break;
-// OBSOLETE     case '[':
-// OBSOLETE       parse_tuple (NULL);
-// OBSOLETE       break;
-// OBSOLETE     case GENERAL_PROCEDURE_NAME:
-// OBSOLETE     case LOCATION_NAME:
-// OBSOLETE       write_exp_elt_opcode (OP_VAR_VALUE);
-// OBSOLETE       write_exp_elt_block (NULL);
-// OBSOLETE       write_exp_elt_sym (PEEK_LVAL ().ssym.sym);
-// OBSOLETE       write_exp_elt_opcode (OP_VAR_VALUE);
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       break;
-// OBSOLETE     case GDB_VARIABLE:             /* gdb specific */
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       break;
-// OBSOLETE     case NUM:
-// OBSOLETE       parse_unary_call ();
-// OBSOLETE       write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE       write_exp_elt_type (builtin_type_int);
-// OBSOLETE       write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE       break;
-// OBSOLETE     case CARD:
-// OBSOLETE       parse_unary_call ();
-// OBSOLETE       write_exp_elt_opcode (UNOP_CARD);
-// OBSOLETE       break;
-// OBSOLETE     case MAX_TOKEN:
-// OBSOLETE       parse_unary_call ();
-// OBSOLETE       write_exp_elt_opcode (UNOP_CHMAX);
-// OBSOLETE       break;
-// OBSOLETE     case MIN_TOKEN:
-// OBSOLETE       parse_unary_call ();
-// OBSOLETE       write_exp_elt_opcode (UNOP_CHMIN);
-// OBSOLETE       break;
-// OBSOLETE     case PRED:
-// OBSOLETE       op_name = "PRED";
-// OBSOLETE       goto unimplemented_unary_builtin;
-// OBSOLETE     case SUCC:
-// OBSOLETE       op_name = "SUCC";
-// OBSOLETE       goto unimplemented_unary_builtin;
-// OBSOLETE     case ABS:
-// OBSOLETE       op_name = "ABS";
-// OBSOLETE       goto unimplemented_unary_builtin;
-// OBSOLETE     unimplemented_unary_builtin:
-// OBSOLETE       parse_unary_call ();
-// OBSOLETE       error ("not implemented:  %s builtin function", op_name);
-// OBSOLETE       break;
-// OBSOLETE     case ADDR_TOKEN:
-// OBSOLETE       parse_unary_call ();
-// OBSOLETE       write_exp_elt_opcode (UNOP_ADDR);
-// OBSOLETE       break;
-// OBSOLETE     case SIZE:
-// OBSOLETE       type = parse_mode_or_normal_call ();
-// OBSOLETE       if (type)
-// OBSOLETE    {
-// OBSOLETE      write_exp_elt_opcode (OP_LONG);
-// OBSOLETE      write_exp_elt_type (builtin_type_int);
-// OBSOLETE      CHECK_TYPEDEF (type);
-// OBSOLETE      write_exp_elt_longcst ((LONGEST) TYPE_LENGTH (type));
-// OBSOLETE      write_exp_elt_opcode (OP_LONG);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    write_exp_elt_opcode (UNOP_SIZEOF);
-// OBSOLETE       break;
-// OBSOLETE     case LOWER:
-// OBSOLETE       op = UNOP_LOWER;
-// OBSOLETE       goto lower_upper;
-// OBSOLETE     case UPPER:
-// OBSOLETE       op = UNOP_UPPER;
-// OBSOLETE       goto lower_upper;
-// OBSOLETE     lower_upper:
-// OBSOLETE       type = parse_mode_or_normal_call ();
-// OBSOLETE       write_lower_upper_value (op, type);
-// OBSOLETE       break;
-// OBSOLETE     case LENGTH:
-// OBSOLETE       parse_unary_call ();
-// OBSOLETE       write_exp_elt_opcode (UNOP_LENGTH);
-// OBSOLETE       break;
-// OBSOLETE     case TYPENAME:
-// OBSOLETE       type = PEEK_LVAL ().tsym.type;
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       switch (PEEK_TOKEN ())
-// OBSOLETE    {
-// OBSOLETE    case '[':
-// OBSOLETE      parse_tuple (type);
-// OBSOLETE      break;
-// OBSOLETE    case '(':
-// OBSOLETE      FORWARD_TOKEN ();
-// OBSOLETE      parse_expr ();
-// OBSOLETE      expect (')', "missing right parenthesis");
-// OBSOLETE      write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE      write_exp_elt_type (type);
-// OBSOLETE      write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE      break;
-// OBSOLETE    default:
-// OBSOLETE      error ("typename in invalid context");
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     default:
-// OBSOLETE       error ("invalid expression syntax at `%s'", lexptr);
-// OBSOLETE     }
-// OBSOLETE   for (;;)
-// OBSOLETE     {
-// OBSOLETE       switch (PEEK_TOKEN ())
-// OBSOLETE    {
-// OBSOLETE    case DOT_FIELD_NAME:
-// OBSOLETE      write_exp_elt_opcode (STRUCTOP_STRUCT);
-// OBSOLETE      write_exp_string (PEEK_LVAL ().sval);
-// OBSOLETE      write_exp_elt_opcode (STRUCTOP_STRUCT);
-// OBSOLETE      FORWARD_TOKEN ();
-// OBSOLETE      continue;
-// OBSOLETE    case POINTER:
-// OBSOLETE      FORWARD_TOKEN ();
-// OBSOLETE      if (PEEK_TOKEN () == TYPENAME)
-// OBSOLETE        {
-// OBSOLETE          type = PEEK_LVAL ().tsym.type;
-// OBSOLETE          write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE          write_exp_elt_type (lookup_pointer_type (type));
-// OBSOLETE          write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE          FORWARD_TOKEN ();
-// OBSOLETE        }
-// OBSOLETE      write_exp_elt_opcode (UNOP_IND);
-// OBSOLETE      continue;
-// OBSOLETE    case OPEN_PAREN:
-// OBSOLETE      parse_call ();
-// OBSOLETE      continue;
-// OBSOLETE    case CHARACTER_STRING_LITERAL:
-// OBSOLETE    case CHARACTER_LITERAL:
-// OBSOLETE    case BIT_STRING_LITERAL:
-// OBSOLETE      /* Handle string repetition. (See comment in parse_operand5.) */
-// OBSOLETE      parse_primval ();
-// OBSOLETE      write_exp_elt_opcode (MULTI_SUBSCRIPT);
-// OBSOLETE      write_exp_elt_longcst (1);
-// OBSOLETE      write_exp_elt_opcode (MULTI_SUBSCRIPT);
-// OBSOLETE      continue;
-// OBSOLETE    case END_TOKEN:
-// OBSOLETE    case TOKEN_NOT_READ:
-// OBSOLETE    case INTEGER_LITERAL:
-// OBSOLETE    case BOOLEAN_LITERAL:
-// OBSOLETE    case FLOAT_LITERAL:
-// OBSOLETE    case GENERAL_PROCEDURE_NAME:
-// OBSOLETE    case LOCATION_NAME:
-// OBSOLETE    case EMPTINESS_LITERAL:
-// OBSOLETE    case TYPENAME:
-// OBSOLETE    case CASE:
-// OBSOLETE    case OF:
-// OBSOLETE    case ESAC:
-// OBSOLETE    case LOGIOR:
-// OBSOLETE    case ORIF:
-// OBSOLETE    case LOGXOR:
-// OBSOLETE    case LOGAND:
-// OBSOLETE    case ANDIF:
-// OBSOLETE    case NOTEQUAL:
-// OBSOLETE    case GEQ:
-// OBSOLETE    case LEQ:
-// OBSOLETE    case IN:
-// OBSOLETE    case SLASH_SLASH:
-// OBSOLETE    case MOD:
-// OBSOLETE    case REM:
-// OBSOLETE    case NOT:
-// OBSOLETE    case RECEIVE:
-// OBSOLETE    case UP:
-// OBSOLETE    case IF:
-// OBSOLETE    case THEN:
-// OBSOLETE    case ELSE:
-// OBSOLETE    case FI:
-// OBSOLETE    case ELSIF:
-// OBSOLETE    case ILLEGAL_TOKEN:
-// OBSOLETE    case NUM:
-// OBSOLETE    case PRED:
-// OBSOLETE    case SUCC:
-// OBSOLETE    case ABS:
-// OBSOLETE    case CARD:
-// OBSOLETE    case MAX_TOKEN:
-// OBSOLETE    case MIN_TOKEN:
-// OBSOLETE    case ADDR_TOKEN:
-// OBSOLETE    case SIZE:
-// OBSOLETE    case UPPER:
-// OBSOLETE    case LOWER:
-// OBSOLETE    case LENGTH:
-// OBSOLETE    case ARRAY:
-// OBSOLETE    case GDB_VARIABLE:
-// OBSOLETE    case GDB_ASSIGNMENT:
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE   return;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_operand6 (void)
-// OBSOLETE {
-// OBSOLETE   if (check_token (RECEIVE))
-// OBSOLETE     {
-// OBSOLETE       parse_primval ();
-// OBSOLETE       error ("not implemented:  RECEIVE expression");
-// OBSOLETE     }
-// OBSOLETE   else if (check_token (POINTER))
-// OBSOLETE     {
-// OBSOLETE       parse_primval ();
-// OBSOLETE       write_exp_elt_opcode (UNOP_ADDR);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     parse_primval ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_operand5 (void)
-// OBSOLETE {
-// OBSOLETE   enum exp_opcode op;
-// OBSOLETE   /* We are supposed to be looking for a <string repetition operator>,
-// OBSOLETE      but in general we can't distinguish that from a parenthesized
-// OBSOLETE      expression.  This is especially difficult if we allow the
-// OBSOLETE      string operand to be a constant expression (as requested by
-// OBSOLETE      some users), and not just a string literal.
-// OBSOLETE      Consider:  LPRN expr RPRN LPRN expr RPRN
-// OBSOLETE      Is that a function call or string repetition?
-// OBSOLETE      Instead, we handle string repetition in parse_primval,
-// OBSOLETE      and build_generalized_call. */
-// OBSOLETE   switch (PEEK_TOKEN ())
-// OBSOLETE     {
-// OBSOLETE     case NOT:
-// OBSOLETE       op = UNOP_LOGICAL_NOT;
-// OBSOLETE       break;
-// OBSOLETE     case '-':
-// OBSOLETE       op = UNOP_NEG;
-// OBSOLETE       break;
-// OBSOLETE     default:
-// OBSOLETE       op = OP_NULL;
-// OBSOLETE     }
-// OBSOLETE   if (op != OP_NULL)
-// OBSOLETE     FORWARD_TOKEN ();
-// OBSOLETE   parse_operand6 ();
-// OBSOLETE   if (op != OP_NULL)
-// OBSOLETE     write_exp_elt_opcode (op);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_operand4 (void)
-// OBSOLETE {
-// OBSOLETE   enum exp_opcode op;
-// OBSOLETE   parse_operand5 ();
-// OBSOLETE   for (;;)
-// OBSOLETE     {
-// OBSOLETE       switch (PEEK_TOKEN ())
-// OBSOLETE    {
-// OBSOLETE    case '*':
-// OBSOLETE      op = BINOP_MUL;
-// OBSOLETE      break;
-// OBSOLETE    case '/':
-// OBSOLETE      op = BINOP_DIV;
-// OBSOLETE      break;
-// OBSOLETE    case MOD:
-// OBSOLETE      op = BINOP_MOD;
-// OBSOLETE      break;
-// OBSOLETE    case REM:
-// OBSOLETE      op = BINOP_REM;
-// OBSOLETE      break;
-// OBSOLETE    default:
-// OBSOLETE      return;
-// OBSOLETE    }
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       parse_operand5 ();
-// OBSOLETE       write_exp_elt_opcode (op);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_operand3 (void)
-// OBSOLETE {
-// OBSOLETE   enum exp_opcode op;
-// OBSOLETE   parse_operand4 ();
-// OBSOLETE   for (;;)
-// OBSOLETE     {
-// OBSOLETE       switch (PEEK_TOKEN ())
-// OBSOLETE    {
-// OBSOLETE    case '+':
-// OBSOLETE      op = BINOP_ADD;
-// OBSOLETE      break;
-// OBSOLETE    case '-':
-// OBSOLETE      op = BINOP_SUB;
-// OBSOLETE      break;
-// OBSOLETE    case SLASH_SLASH:
-// OBSOLETE      op = BINOP_CONCAT;
-// OBSOLETE      break;
-// OBSOLETE    default:
-// OBSOLETE      return;
-// OBSOLETE    }
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       parse_operand4 ();
-// OBSOLETE       write_exp_elt_opcode (op);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_operand2 (void)
-// OBSOLETE {
-// OBSOLETE   enum exp_opcode op;
-// OBSOLETE   parse_operand3 ();
-// OBSOLETE   for (;;)
-// OBSOLETE     {
-// OBSOLETE       if (check_token (IN))
-// OBSOLETE    {
-// OBSOLETE      parse_operand3 ();
-// OBSOLETE      write_exp_elt_opcode (BINOP_IN);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      switch (PEEK_TOKEN ())
-// OBSOLETE        {
-// OBSOLETE        case '>':
-// OBSOLETE          op = BINOP_GTR;
-// OBSOLETE          break;
-// OBSOLETE        case GEQ:
-// OBSOLETE          op = BINOP_GEQ;
-// OBSOLETE          break;
-// OBSOLETE        case '<':
-// OBSOLETE          op = BINOP_LESS;
-// OBSOLETE          break;
-// OBSOLETE        case LEQ:
-// OBSOLETE          op = BINOP_LEQ;
-// OBSOLETE          break;
-// OBSOLETE        case '=':
-// OBSOLETE          op = BINOP_EQUAL;
-// OBSOLETE          break;
-// OBSOLETE        case NOTEQUAL:
-// OBSOLETE          op = BINOP_NOTEQUAL;
-// OBSOLETE          break;
-// OBSOLETE        default:
-// OBSOLETE          return;
-// OBSOLETE        }
-// OBSOLETE      FORWARD_TOKEN ();
-// OBSOLETE      parse_operand3 ();
-// OBSOLETE      write_exp_elt_opcode (op);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_operand1 (void)
-// OBSOLETE {
-// OBSOLETE   enum exp_opcode op;
-// OBSOLETE   parse_operand2 ();
-// OBSOLETE   for (;;)
-// OBSOLETE     {
-// OBSOLETE       switch (PEEK_TOKEN ())
-// OBSOLETE    {
-// OBSOLETE    case LOGAND:
-// OBSOLETE      op = BINOP_BITWISE_AND;
-// OBSOLETE      break;
-// OBSOLETE    case ANDIF:
-// OBSOLETE      op = BINOP_LOGICAL_AND;
-// OBSOLETE      break;
-// OBSOLETE    default:
-// OBSOLETE      return;
-// OBSOLETE    }
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       parse_operand2 ();
-// OBSOLETE       write_exp_elt_opcode (op);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_operand0 (void)
-// OBSOLETE {
-// OBSOLETE   enum exp_opcode op;
-// OBSOLETE   parse_operand1 ();
-// OBSOLETE   for (;;)
-// OBSOLETE     {
-// OBSOLETE       switch (PEEK_TOKEN ())
-// OBSOLETE    {
-// OBSOLETE    case LOGIOR:
-// OBSOLETE      op = BINOP_BITWISE_IOR;
-// OBSOLETE      break;
-// OBSOLETE    case LOGXOR:
-// OBSOLETE      op = BINOP_BITWISE_XOR;
-// OBSOLETE      break;
-// OBSOLETE    case ORIF:
-// OBSOLETE      op = BINOP_LOGICAL_OR;
-// OBSOLETE      break;
-// OBSOLETE    default:
-// OBSOLETE      return;
-// OBSOLETE    }
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE       parse_operand1 ();
-// OBSOLETE       write_exp_elt_opcode (op);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_expr (void)
-// OBSOLETE {
-// OBSOLETE   parse_operand0 ();
-// OBSOLETE   if (check_token (GDB_ASSIGNMENT))
-// OBSOLETE     {
-// OBSOLETE       parse_expr ();
-// OBSOLETE       write_exp_elt_opcode (BINOP_ASSIGN);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_then_alternative (void)
-// OBSOLETE {
-// OBSOLETE   expect (THEN, "missing 'THEN' in 'IF' expression");
-// OBSOLETE   parse_expr ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_else_alternative (void)
-// OBSOLETE {
-// OBSOLETE   if (check_token (ELSIF))
-// OBSOLETE     parse_if_expression_body ();
-// OBSOLETE   else if (check_token (ELSE))
-// OBSOLETE     parse_expr ();
-// OBSOLETE   else
-// OBSOLETE     error ("missing ELSE/ELSIF in IF expression");
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Matches: <boolean expression> <then alternative> <else alternative> */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_if_expression_body (void)
-// OBSOLETE {
-// OBSOLETE   parse_expr ();
-// OBSOLETE   parse_then_alternative ();
-// OBSOLETE   parse_else_alternative ();
-// OBSOLETE   write_exp_elt_opcode (TERNOP_COND);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_if_expression (void)
-// OBSOLETE {
-// OBSOLETE   require (IF);
-// OBSOLETE   parse_if_expression_body ();
-// OBSOLETE   expect (FI, "missing 'FI' at end of conditional expression");
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* An <untyped_expr> is a superset of <expr>.  It also includes
-// OBSOLETE    <conditional expressions> and untyped <tuples>, whose types
-// OBSOLETE    are not given by their constituents.  Hence, these are only
-// OBSOLETE    allowed in certain contexts that expect a certain type.
-// OBSOLETE    You should call convert() to fix up the <untyped_expr>. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE parse_untyped_expr (void)
-// OBSOLETE {
-// OBSOLETE   switch (PEEK_TOKEN ())
-// OBSOLETE     {
-// OBSOLETE     case IF:
-// OBSOLETE       parse_if_expression ();
-// OBSOLETE       return;
-// OBSOLETE     case CASE:
-// OBSOLETE       error ("not implemented:  CASE expression");
-// OBSOLETE     case '(':
-// OBSOLETE       switch (PEEK_TOKEN1 ())
-// OBSOLETE    {
-// OBSOLETE    case IF:
-// OBSOLETE    case CASE:
-// OBSOLETE      goto skip_lprn;
-// OBSOLETE    case '[':
-// OBSOLETE    skip_lprn:
-// OBSOLETE      FORWARD_TOKEN ();
-// OBSOLETE      parse_untyped_expr ();
-// OBSOLETE      expect (')', "missing ')'");
-// OBSOLETE      return;
-// OBSOLETE    default:;
-// OBSOLETE      /* fall through */
-// OBSOLETE    }
-// OBSOLETE     default:
-// OBSOLETE       parse_operand0 ();
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE chill_parse (void)
-// OBSOLETE {
-// OBSOLETE   terminal_buffer[0] = TOKEN_NOT_READ;
-// OBSOLETE   if (PEEK_TOKEN () == TYPENAME && PEEK_TOKEN1 () == END_TOKEN)
-// OBSOLETE     {
-// OBSOLETE       write_exp_elt_opcode (OP_TYPE);
-// OBSOLETE       write_exp_elt_type (PEEK_LVAL ().tsym.type);
-// OBSOLETE       write_exp_elt_opcode (OP_TYPE);
-// OBSOLETE       FORWARD_TOKEN ();
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     parse_expr ();
-// OBSOLETE   if (terminal_buffer[0] != END_TOKEN)
-// OBSOLETE     {
-// OBSOLETE       if (comma_terminates && terminal_buffer[0] == ',')
-// OBSOLETE    lexptr--;               /* Put the comma back.  */
-// OBSOLETE       else
-// OBSOLETE    error ("Junk after end of expression.");
-// OBSOLETE     }
-// OBSOLETE   return 0;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Implementation of a dynamically expandable buffer for processing input
-// OBSOLETE    characters acquired through lexptr and building a value to return in
-// OBSOLETE    yylval. */
-// OBSOLETE 
-// OBSOLETE static char *tempbuf;              /* Current buffer contents */
-// OBSOLETE static int tempbufsize;            /* Size of allocated buffer */
-// OBSOLETE static int tempbufindex;   /* Current index into buffer */
-// OBSOLETE 
-// OBSOLETE #define GROWBY_MIN_SIZE 64 /* Minimum amount to grow buffer by */
-// OBSOLETE 
-// OBSOLETE #define CHECKBUF(size) \
-// OBSOLETE   do { \
-// OBSOLETE     if (tempbufindex + (size) >= tempbufsize) \
-// OBSOLETE       { \
-// OBSOLETE    growbuf_by_size (size); \
-// OBSOLETE       } \
-// OBSOLETE   } while (0);
-// OBSOLETE 
-// OBSOLETE /* Grow the static temp buffer if necessary, including allocating the first one
-// OBSOLETE    on demand. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE growbuf_by_size (int count)
-// OBSOLETE {
-// OBSOLETE   int growby;
-// OBSOLETE 
-// OBSOLETE   growby = max (count, GROWBY_MIN_SIZE);
-// OBSOLETE   tempbufsize += growby;
-// OBSOLETE   if (tempbuf == NULL)
-// OBSOLETE     {
-// OBSOLETE       tempbuf = (char *) xmalloc (tempbufsize);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       tempbuf = (char *) xrealloc (tempbuf, tempbufsize);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Try to consume a simple name string token.  If successful, returns
-// OBSOLETE    a pointer to a nullbyte terminated copy of the name that can be used
-// OBSOLETE    in symbol table lookups.  If not successful, returns NULL. */
-// OBSOLETE 
-// OBSOLETE static char *
-// OBSOLETE match_simple_name_string (void)
-// OBSOLETE {
-// OBSOLETE   char *tokptr = lexptr;
-// OBSOLETE 
-// OBSOLETE   if (isalpha (*tokptr) || *tokptr == '_')
-// OBSOLETE     {
-// OBSOLETE       char *result;
-// OBSOLETE       do
-// OBSOLETE    {
-// OBSOLETE      tokptr++;
-// OBSOLETE    }
-// OBSOLETE       while (isalnum (*tokptr) || (*tokptr == '_'));
-// OBSOLETE       yylval.sval.ptr = lexptr;
-// OBSOLETE       yylval.sval.length = tokptr - lexptr;
-// OBSOLETE       lexptr = tokptr;
-// OBSOLETE       result = copy_name (yylval.sval);
-// OBSOLETE       return result;
-// OBSOLETE     }
-// OBSOLETE   return (NULL);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Start looking for a value composed of valid digits as set by the base
-// OBSOLETE    in use.  Note that '_' characters are valid anywhere, in any quantity,
-// OBSOLETE    and are simply ignored.  Since we must find at least one valid digit,
-// OBSOLETE    or reject this token as an integer literal, we keep track of how many
-// OBSOLETE    digits we have encountered. */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE decode_integer_value (int base, char **tokptrptr, LONGEST *ivalptr)
-// OBSOLETE {
-// OBSOLETE   char *tokptr = *tokptrptr;
-// OBSOLETE   int temp;
-// OBSOLETE   int digits = 0;
-// OBSOLETE 
-// OBSOLETE   while (*tokptr != '\0')
-// OBSOLETE     {
-// OBSOLETE       temp = *tokptr;
-// OBSOLETE       if (isupper (temp))
-// OBSOLETE    temp = tolower (temp);
-// OBSOLETE       tokptr++;
-// OBSOLETE       switch (temp)
-// OBSOLETE    {
-// OBSOLETE    case '_':
-// OBSOLETE      continue;
-// OBSOLETE    case '0':
-// OBSOLETE    case '1':
-// OBSOLETE    case '2':
-// OBSOLETE    case '3':
-// OBSOLETE    case '4':
-// OBSOLETE    case '5':
-// OBSOLETE    case '6':
-// OBSOLETE    case '7':
-// OBSOLETE    case '8':
-// OBSOLETE    case '9':
-// OBSOLETE      temp -= '0';
-// OBSOLETE      break;
-// OBSOLETE    case 'a':
-// OBSOLETE    case 'b':
-// OBSOLETE    case 'c':
-// OBSOLETE    case 'd':
-// OBSOLETE    case 'e':
-// OBSOLETE    case 'f':
-// OBSOLETE      temp -= 'a';
-// OBSOLETE      temp += 10;
-// OBSOLETE      break;
-// OBSOLETE    default:
-// OBSOLETE      temp = base;
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       if (temp < base)
-// OBSOLETE    {
-// OBSOLETE      digits++;
-// OBSOLETE      *ivalptr *= base;
-// OBSOLETE      *ivalptr += temp;
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      /* Found something not in domain for current base. */
-// OBSOLETE      tokptr--;             /* Unconsume what gave us indigestion. */
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* If we didn't find any digits, then we don't have a valid integer
-// OBSOLETE      value, so reject the entire token.  Otherwise, update the lexical
-// OBSOLETE      scan pointer, and return non-zero for success. */
-// OBSOLETE 
-// OBSOLETE   if (digits == 0)
-// OBSOLETE     {
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       *tokptrptr = tokptr;
-// OBSOLETE       return (1);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE decode_integer_literal (LONGEST *valptr, char **tokptrptr)
-// OBSOLETE {
-// OBSOLETE   char *tokptr = *tokptrptr;
-// OBSOLETE   int base = 0;
-// OBSOLETE   LONGEST ival = 0;
-// OBSOLETE   int explicit_base = 0;
-// OBSOLETE 
-// OBSOLETE   /* Look for an explicit base specifier, which is optional. */
-// OBSOLETE 
-// OBSOLETE   switch (*tokptr)
-// OBSOLETE     {
-// OBSOLETE     case 'd':
-// OBSOLETE     case 'D':
-// OBSOLETE       explicit_base++;
-// OBSOLETE       base = 10;
-// OBSOLETE       tokptr++;
-// OBSOLETE       break;
-// OBSOLETE     case 'b':
-// OBSOLETE     case 'B':
-// OBSOLETE       explicit_base++;
-// OBSOLETE       base = 2;
-// OBSOLETE       tokptr++;
-// OBSOLETE       break;
-// OBSOLETE     case 'h':
-// OBSOLETE     case 'H':
-// OBSOLETE       explicit_base++;
-// OBSOLETE       base = 16;
-// OBSOLETE       tokptr++;
-// OBSOLETE       break;
-// OBSOLETE     case 'o':
-// OBSOLETE     case 'O':
-// OBSOLETE       explicit_base++;
-// OBSOLETE       base = 8;
-// OBSOLETE       tokptr++;
-// OBSOLETE       break;
-// OBSOLETE     default:
-// OBSOLETE       base = 10;
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* If we found an explicit base ensure that the character after the
-// OBSOLETE      explicit base is a single quote. */
-// OBSOLETE 
-// OBSOLETE   if (explicit_base && (*tokptr++ != '\''))
-// OBSOLETE     {
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Attempt to decode whatever follows as an integer value in the
-// OBSOLETE      indicated base, updating the token pointer in the process and
-// OBSOLETE      computing the value into ival.  Also, if we have an explicit
-// OBSOLETE      base, then the next character must not be a single quote, or we
-// OBSOLETE      have a bitstring literal, so reject the entire token in this case.
-// OBSOLETE      Otherwise, update the lexical scan pointer, and return non-zero
-// OBSOLETE      for success. */
-// OBSOLETE 
-// OBSOLETE   if (!decode_integer_value (base, &tokptr, &ival))
-// OBSOLETE     {
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE   else if (explicit_base && (*tokptr == '\''))
-// OBSOLETE     {
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       *valptr = ival;
-// OBSOLETE       *tokptrptr = tokptr;
-// OBSOLETE       return (1);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /*  If it wasn't for the fact that floating point values can contain '_'
-// OBSOLETE    characters, we could just let strtod do all the hard work by letting it
-// OBSOLETE    try to consume as much of the current token buffer as possible and
-// OBSOLETE    find a legal conversion.  Unfortunately we need to filter out the '_'
-// OBSOLETE    characters before calling strtod, which we do by copying the other
-// OBSOLETE    legal chars to a local buffer to be converted.  However since we also
-// OBSOLETE    need to keep track of where the last unconsumed character in the input
-// OBSOLETE    buffer is, we have transfer only as many characters as may compose a
-// OBSOLETE    legal floating point value. */
-// OBSOLETE 
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_float_literal (void)
-// OBSOLETE {
-// OBSOLETE   char *tokptr = lexptr;
-// OBSOLETE   char *buf;
-// OBSOLETE   char *copy;
-// OBSOLETE   double dval;
-// OBSOLETE   extern double strtod ();
-// OBSOLETE 
-// OBSOLETE   /* Make local buffer in which to build the string to convert.  This is
-// OBSOLETE      required because underscores are valid in chill floating point numbers
-// OBSOLETE      but not in the string passed to strtod to convert.  The string will be
-// OBSOLETE      no longer than our input string. */
-// OBSOLETE 
-// OBSOLETE   copy = buf = (char *) alloca (strlen (tokptr) + 1);
-// OBSOLETE 
-// OBSOLETE   /* Transfer all leading digits to the conversion buffer, discarding any
-// OBSOLETE      underscores. */
-// OBSOLETE 
-// OBSOLETE   while (isdigit (*tokptr) || *tokptr == '_')
-// OBSOLETE     {
-// OBSOLETE       if (*tokptr != '_')
-// OBSOLETE    {
-// OBSOLETE      *copy++ = *tokptr;
-// OBSOLETE    }
-// OBSOLETE       tokptr++;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Now accept either a '.', or one of [eEdD].  Dot is legal regardless
-// OBSOLETE      of whether we found any leading digits, and we simply accept it and
-// OBSOLETE      continue on to look for the fractional part and/or exponent.  One of
-// OBSOLETE      [eEdD] is legal only if we have seen digits, and means that there
-// OBSOLETE      is no fractional part.  If we find neither of these, then this is
-// OBSOLETE      not a floating point number, so return failure. */
-// OBSOLETE 
-// OBSOLETE   switch (*tokptr++)
-// OBSOLETE     {
-// OBSOLETE     case '.':
-// OBSOLETE       /* Accept and then look for fractional part and/or exponent. */
-// OBSOLETE       *copy++ = '.';
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case 'e':
-// OBSOLETE     case 'E':
-// OBSOLETE     case 'd':
-// OBSOLETE     case 'D':
-// OBSOLETE       if (copy == buf)
-// OBSOLETE    {
-// OBSOLETE      return (0);
-// OBSOLETE    }
-// OBSOLETE       *copy++ = 'e';
-// OBSOLETE       goto collect_exponent;
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     default:
-// OBSOLETE       return (0);
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* We found a '.', copy any fractional digits to the conversion buffer, up
-// OBSOLETE      to the first nondigit, non-underscore character. */
-// OBSOLETE 
-// OBSOLETE   while (isdigit (*tokptr) || *tokptr == '_')
-// OBSOLETE     {
-// OBSOLETE       if (*tokptr != '_')
-// OBSOLETE    {
-// OBSOLETE      *copy++ = *tokptr;
-// OBSOLETE    }
-// OBSOLETE       tokptr++;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Look for an exponent, which must start with one of [eEdD].  If none
-// OBSOLETE      is found, jump directly to trying to convert what we have collected
-// OBSOLETE      so far. */
-// OBSOLETE 
-// OBSOLETE   switch (*tokptr)
-// OBSOLETE     {
-// OBSOLETE     case 'e':
-// OBSOLETE     case 'E':
-// OBSOLETE     case 'd':
-// OBSOLETE     case 'D':
-// OBSOLETE       *copy++ = 'e';
-// OBSOLETE       tokptr++;
-// OBSOLETE       break;
-// OBSOLETE     default:
-// OBSOLETE       goto convert_float;
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Accept an optional '-' or '+' following one of [eEdD]. */
-// OBSOLETE 
-// OBSOLETE collect_exponent:
-// OBSOLETE   if (*tokptr == '+' || *tokptr == '-')
-// OBSOLETE     {
-// OBSOLETE       *copy++ = *tokptr++;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Now copy an exponent into the conversion buffer.  Note that at the 
-// OBSOLETE      moment underscores are *not* allowed in exponents. */
-// OBSOLETE 
-// OBSOLETE   while (isdigit (*tokptr))
-// OBSOLETE     {
-// OBSOLETE       *copy++ = *tokptr++;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* If we transfered any chars to the conversion buffer, try to interpret its
-// OBSOLETE      contents as a floating point value.  If any characters remain, then we
-// OBSOLETE      must not have a valid floating point string. */
-// OBSOLETE 
-// OBSOLETE convert_float:
-// OBSOLETE   *copy = '\0';
-// OBSOLETE   if (copy != buf)
-// OBSOLETE     {
-// OBSOLETE       dval = strtod (buf, &copy);
-// OBSOLETE       if (*copy == '\0')
-// OBSOLETE    {
-// OBSOLETE      yylval.dval = dval;
-// OBSOLETE      lexptr = tokptr;
-// OBSOLETE      return (FLOAT_LITERAL);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   return (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Recognize a string literal.  A string literal is a sequence
-// OBSOLETE    of characters enclosed in matching single or double quotes, except that
-// OBSOLETE    a single character inside single quotes is a character literal, which
-// OBSOLETE    we reject as a string literal.  To embed the terminator character inside
-// OBSOLETE    a string, it is simply doubled (I.E. "this""is""one""string") */
-// OBSOLETE 
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_string_literal (void)
-// OBSOLETE {
-// OBSOLETE   char *tokptr = lexptr;
-// OBSOLETE   int in_ctrlseq = 0;
-// OBSOLETE   LONGEST ival;
-// OBSOLETE 
-// OBSOLETE   for (tempbufindex = 0, tokptr++; *tokptr != '\0'; tokptr++)
-// OBSOLETE     {
-// OBSOLETE       CHECKBUF (1);
-// OBSOLETE     tryagain:;
-// OBSOLETE       if (in_ctrlseq)
-// OBSOLETE    {
-// OBSOLETE      /* skip possible whitespaces */
-// OBSOLETE      while ((*tokptr == ' ' || *tokptr == '\t') && *tokptr)
-// OBSOLETE        tokptr++;
-// OBSOLETE      if (*tokptr == ')')
-// OBSOLETE        {
-// OBSOLETE          in_ctrlseq = 0;
-// OBSOLETE          tokptr++;
-// OBSOLETE          goto tryagain;
-// OBSOLETE        }
-// OBSOLETE      else if (*tokptr != ',')
-// OBSOLETE        error ("Invalid control sequence");
-// OBSOLETE      tokptr++;
-// OBSOLETE      /* skip possible whitespaces */
-// OBSOLETE      while ((*tokptr == ' ' || *tokptr == '\t') && *tokptr)
-// OBSOLETE        tokptr++;
-// OBSOLETE      if (!decode_integer_literal (&ival, &tokptr))
-// OBSOLETE        error ("Invalid control sequence");
-// OBSOLETE      tokptr--;
-// OBSOLETE    }
-// OBSOLETE       else if (*tokptr == *lexptr)
-// OBSOLETE    {
-// OBSOLETE      if (*(tokptr + 1) == *lexptr)
-// OBSOLETE        {
-// OBSOLETE          ival = *tokptr++;
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       else if (*tokptr == '^')
-// OBSOLETE    {
-// OBSOLETE      if (*(tokptr + 1) == '(')
-// OBSOLETE        {
-// OBSOLETE          in_ctrlseq = 1;
-// OBSOLETE          tokptr += 2;
-// OBSOLETE          if (!decode_integer_literal (&ival, &tokptr))
-// OBSOLETE            error ("Invalid control sequence");
-// OBSOLETE          tokptr--;
-// OBSOLETE        }
-// OBSOLETE      else if (*(tokptr + 1) == '^')
-// OBSOLETE        ival = *tokptr++;
-// OBSOLETE      else
-// OBSOLETE        error ("Invalid control sequence");
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    ival = *tokptr;
-// OBSOLETE       tempbuf[tempbufindex++] = ival;
-// OBSOLETE     }
-// OBSOLETE   if (in_ctrlseq)
-// OBSOLETE     error ("Invalid control sequence");
-// OBSOLETE 
-// OBSOLETE   if (*tokptr == '\0'              /* no terminator */
-// OBSOLETE       || (tempbufindex == 1 && *tokptr == '\''))   /* char literal */
-// OBSOLETE     {
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       tempbuf[tempbufindex] = '\0';
-// OBSOLETE       yylval.sval.ptr = tempbuf;
-// OBSOLETE       yylval.sval.length = tempbufindex;
-// OBSOLETE       lexptr = ++tokptr;
-// OBSOLETE       return (CHARACTER_STRING_LITERAL);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Recognize a character literal.  A character literal is single character
-// OBSOLETE    or a control sequence, enclosed in single quotes.  A control sequence
-// OBSOLETE    is a comma separated list of one or more integer literals, enclosed
-// OBSOLETE    in parenthesis and introduced with a circumflex character.
-// OBSOLETE 
-// OBSOLETE    EX:  'a'  '^(7)'  '^(7,8)'
-// OBSOLETE 
-// OBSOLETE    As a GNU chill extension, the syntax C'xx' is also recognized as a 
-// OBSOLETE    character literal, where xx is a hex value for the character.
-// OBSOLETE 
-// OBSOLETE    Note that more than a single character, enclosed in single quotes, is
-// OBSOLETE    a string literal.
-// OBSOLETE 
-// OBSOLETE    Returns CHARACTER_LITERAL if a match is found.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_character_literal (void)
-// OBSOLETE {
-// OBSOLETE   char *tokptr = lexptr;
-// OBSOLETE   LONGEST ival = 0;
-// OBSOLETE 
-// OBSOLETE   if ((*tokptr == 'c' || *tokptr == 'C') && (*(tokptr + 1) == '\''))
-// OBSOLETE     {
-// OBSOLETE       /* We have a GNU chill extension form, so skip the leading "C'",
-// OBSOLETE          decode the hex value, and then ensure that we have a trailing
-// OBSOLETE          single quote character. */
-// OBSOLETE       tokptr += 2;
-// OBSOLETE       if (!decode_integer_value (16, &tokptr, &ival) || (*tokptr != '\''))
-// OBSOLETE    {
-// OBSOLETE      return (0);
-// OBSOLETE    }
-// OBSOLETE       tokptr++;
-// OBSOLETE     }
-// OBSOLETE   else if (*tokptr == '\'')
-// OBSOLETE     {
-// OBSOLETE       tokptr++;
-// OBSOLETE 
-// OBSOLETE       /* Determine which form we have, either a control sequence or the
-// OBSOLETE          single character form. */
-// OBSOLETE 
-// OBSOLETE       if (*tokptr == '^')
-// OBSOLETE    {
-// OBSOLETE      if (*(tokptr + 1) == '(')
-// OBSOLETE        {
-// OBSOLETE          /* Match and decode a control sequence.  Return zero if we don't
-// OBSOLETE             find a valid integer literal, or if the next unconsumed character
-// OBSOLETE             after the integer literal is not the trailing ')'. */
-// OBSOLETE          tokptr += 2;
-// OBSOLETE          if (!decode_integer_literal (&ival, &tokptr) || (*tokptr++ != ')'))
-// OBSOLETE            {
-// OBSOLETE              return (0);
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE      else if (*(tokptr + 1) == '^')
-// OBSOLETE        {
-// OBSOLETE          ival = *tokptr;
-// OBSOLETE          tokptr += 2;
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        /* fail */
-// OBSOLETE        error ("Invalid control sequence");
-// OBSOLETE    }
-// OBSOLETE       else if (*tokptr == '\'')
-// OBSOLETE    {
-// OBSOLETE      /* this must be duplicated */
-// OBSOLETE      ival = *tokptr;
-// OBSOLETE      tokptr += 2;
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      ival = *tokptr++;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       /* The trailing quote has not yet been consumed.  If we don't find
-// OBSOLETE          it, then we have no match. */
-// OBSOLETE 
-// OBSOLETE       if (*tokptr++ != '\'')
-// OBSOLETE    {
-// OBSOLETE      return (0);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       /* Not a character literal. */
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE   yylval.typed_val.val = ival;
-// OBSOLETE   yylval.typed_val.type = builtin_type_chill_char;
-// OBSOLETE   lexptr = tokptr;
-// OBSOLETE   return (CHARACTER_LITERAL);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Recognize an integer literal, as specified in Z.200 sec 5.2.4.2.
-// OBSOLETE    Note that according to 5.2.4.2, a single "_" is also a valid integer
-// OBSOLETE    literal, however GNU-chill requires there to be at least one "digit"
-// OBSOLETE    in any integer literal. */
-// OBSOLETE 
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_integer_literal (void)
-// OBSOLETE {
-// OBSOLETE   char *tokptr = lexptr;
-// OBSOLETE   LONGEST ival;
-// OBSOLETE 
-// OBSOLETE   if (!decode_integer_literal (&ival, &tokptr))
-// OBSOLETE     {
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       yylval.typed_val.val = ival;
-// OBSOLETE #if defined(CC_HAS_LONG_LONG)
-// OBSOLETE       if (ival > (LONGEST) 2147483647U || ival < -(LONGEST) 2147483648U)
-// OBSOLETE    yylval.typed_val.type = builtin_type_long_long;
-// OBSOLETE       else
-// OBSOLETE #endif
-// OBSOLETE    yylval.typed_val.type = builtin_type_int;
-// OBSOLETE       lexptr = tokptr;
-// OBSOLETE       return (INTEGER_LITERAL);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Recognize a bit-string literal, as specified in Z.200 sec 5.2.4.8
-// OBSOLETE    Note that according to 5.2.4.8, a single "_" is also a valid bit-string
-// OBSOLETE    literal, however GNU-chill requires there to be at least one "digit"
-// OBSOLETE    in any bit-string literal. */
-// OBSOLETE 
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_bitstring_literal (void)
-// OBSOLETE {
-// OBSOLETE   register char *tokptr = lexptr;
-// OBSOLETE   int bitoffset = 0;
-// OBSOLETE   int bitcount = 0;
-// OBSOLETE   int bits_per_char;
-// OBSOLETE   int digit;
-// OBSOLETE 
-// OBSOLETE   tempbufindex = 0;
-// OBSOLETE   CHECKBUF (1);
-// OBSOLETE   tempbuf[0] = 0;
-// OBSOLETE 
-// OBSOLETE   /* Look for the required explicit base specifier. */
-// OBSOLETE 
-// OBSOLETE   switch (*tokptr++)
-// OBSOLETE     {
-// OBSOLETE     case 'b':
-// OBSOLETE     case 'B':
-// OBSOLETE       bits_per_char = 1;
-// OBSOLETE       break;
-// OBSOLETE     case 'o':
-// OBSOLETE     case 'O':
-// OBSOLETE       bits_per_char = 3;
-// OBSOLETE       break;
-// OBSOLETE     case 'h':
-// OBSOLETE     case 'H':
-// OBSOLETE       bits_per_char = 4;
-// OBSOLETE       break;
-// OBSOLETE     default:
-// OBSOLETE       return (0);
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Ensure that the character after the explicit base is a single quote. */
-// OBSOLETE 
-// OBSOLETE   if (*tokptr++ != '\'')
-// OBSOLETE     {
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   while (*tokptr != '\0' && *tokptr != '\'')
-// OBSOLETE     {
-// OBSOLETE       digit = *tokptr;
-// OBSOLETE       if (isupper (digit))
-// OBSOLETE    digit = tolower (digit);
-// OBSOLETE       tokptr++;
-// OBSOLETE       switch (digit)
-// OBSOLETE    {
-// OBSOLETE    case '_':
-// OBSOLETE      continue;
-// OBSOLETE    case '0':
-// OBSOLETE    case '1':
-// OBSOLETE    case '2':
-// OBSOLETE    case '3':
-// OBSOLETE    case '4':
-// OBSOLETE    case '5':
-// OBSOLETE    case '6':
-// OBSOLETE    case '7':
-// OBSOLETE    case '8':
-// OBSOLETE    case '9':
-// OBSOLETE      digit -= '0';
-// OBSOLETE      break;
-// OBSOLETE    case 'a':
-// OBSOLETE    case 'b':
-// OBSOLETE    case 'c':
-// OBSOLETE    case 'd':
-// OBSOLETE    case 'e':
-// OBSOLETE    case 'f':
-// OBSOLETE      digit -= 'a';
-// OBSOLETE      digit += 10;
-// OBSOLETE      break;
-// OBSOLETE    default:
-// OBSOLETE      /* this is not a bitstring literal, probably an integer */
-// OBSOLETE      return 0;
-// OBSOLETE    }
-// OBSOLETE       if (digit >= 1 << bits_per_char)
-// OBSOLETE    {
-// OBSOLETE      /* Found something not in domain for current base. */
-// OBSOLETE      error ("Too-large digit in bitstring or integer.");
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      /* Extract bits from digit, packing them into the bitstring byte. */
-// OBSOLETE      int k = TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? bits_per_char - 1 : 0;
-// OBSOLETE      for (; TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? k >= 0 : k < bits_per_char;
-// OBSOLETE           TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? k-- : k++)
-// OBSOLETE        {
-// OBSOLETE          bitcount++;
-// OBSOLETE          if (digit & (1 << k))
-// OBSOLETE            {
-// OBSOLETE              tempbuf[tempbufindex] |=
-// OBSOLETE                (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
-// OBSOLETE                ? (1 << (HOST_CHAR_BIT - 1 - bitoffset))
-// OBSOLETE                : (1 << bitoffset);
-// OBSOLETE            }
-// OBSOLETE          bitoffset++;
-// OBSOLETE          if (bitoffset == HOST_CHAR_BIT)
-// OBSOLETE            {
-// OBSOLETE              bitoffset = 0;
-// OBSOLETE              tempbufindex++;
-// OBSOLETE              CHECKBUF (1);
-// OBSOLETE              tempbuf[tempbufindex] = 0;
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Verify that we consumed everything up to the trailing single quote,
-// OBSOLETE      and that we found some bits (IE not just underbars). */
-// OBSOLETE 
-// OBSOLETE   if (*tokptr++ != '\'')
-// OBSOLETE     {
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       yylval.sval.ptr = tempbuf;
-// OBSOLETE       yylval.sval.length = bitcount;
-// OBSOLETE       lexptr = tokptr;
-// OBSOLETE       return (BIT_STRING_LITERAL);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE struct token
-// OBSOLETE {
-// OBSOLETE   char *operator;
-// OBSOLETE   int token;
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static const struct token idtokentab[] =
-// OBSOLETE {
-// OBSOLETE   {"array", ARRAY},
-// OBSOLETE   {"length", LENGTH},
-// OBSOLETE   {"lower", LOWER},
-// OBSOLETE   {"upper", UPPER},
-// OBSOLETE   {"andif", ANDIF},
-// OBSOLETE   {"pred", PRED},
-// OBSOLETE   {"succ", SUCC},
-// OBSOLETE   {"card", CARD},
-// OBSOLETE   {"size", SIZE},
-// OBSOLETE   {"orif", ORIF},
-// OBSOLETE   {"num", NUM},
-// OBSOLETE   {"abs", ABS},
-// OBSOLETE   {"max", MAX_TOKEN},
-// OBSOLETE   {"min", MIN_TOKEN},
-// OBSOLETE   {"mod", MOD},
-// OBSOLETE   {"rem", REM},
-// OBSOLETE   {"not", NOT},
-// OBSOLETE   {"xor", LOGXOR},
-// OBSOLETE   {"and", LOGAND},
-// OBSOLETE   {"in", IN},
-// OBSOLETE   {"or", LOGIOR},
-// OBSOLETE   {"up", UP},
-// OBSOLETE   {"addr", ADDR_TOKEN},
-// OBSOLETE   {"null", EMPTINESS_LITERAL}
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static const struct token tokentab2[] =
-// OBSOLETE {
-// OBSOLETE   {":=", GDB_ASSIGNMENT},
-// OBSOLETE   {"//", SLASH_SLASH},
-// OBSOLETE   {"->", POINTER},
-// OBSOLETE   {"/=", NOTEQUAL},
-// OBSOLETE   {"<=", LEQ},
-// OBSOLETE   {">=", GEQ}
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE /* Read one token, getting characters through lexptr.  */
-// OBSOLETE /* This is where we will check to make sure that the language and the
-// OBSOLETE    operators used are compatible.  */
-// OBSOLETE 
-// OBSOLETE static enum ch_terminal
-// OBSOLETE ch_lex (void)
-// OBSOLETE {
-// OBSOLETE   unsigned int i;
-// OBSOLETE   enum ch_terminal token;
-// OBSOLETE   char *inputname;
-// OBSOLETE   struct symbol *sym;
-// OBSOLETE 
-// OBSOLETE   /* Skip over any leading whitespace. */
-// OBSOLETE   while (isspace (*lexptr))
-// OBSOLETE     {
-// OBSOLETE       lexptr++;
-// OBSOLETE     }
-// OBSOLETE   /* Look for special single character cases which can't be the first
-// OBSOLETE      character of some other multicharacter token. */
-// OBSOLETE   switch (*lexptr)
-// OBSOLETE     {
-// OBSOLETE     case '\0':
-// OBSOLETE       return END_TOKEN;
-// OBSOLETE     case ',':
-// OBSOLETE     case '=':
-// OBSOLETE     case ';':
-// OBSOLETE     case '!':
-// OBSOLETE     case '+':
-// OBSOLETE     case '*':
-// OBSOLETE     case '(':
-// OBSOLETE     case ')':
-// OBSOLETE     case '[':
-// OBSOLETE     case ']':
-// OBSOLETE       return (*lexptr++);
-// OBSOLETE     }
-// OBSOLETE   /* Look for characters which start a particular kind of multicharacter
-// OBSOLETE      token, such as a character literal, register name, convenience
-// OBSOLETE      variable name, string literal, etc. */
-// OBSOLETE   switch (*lexptr)
-// OBSOLETE     {
-// OBSOLETE     case '\'':
-// OBSOLETE     case '\"':
-// OBSOLETE       /* First try to match a string literal, which is any
-// OBSOLETE          sequence of characters enclosed in matching single or double
-// OBSOLETE          quotes, except that a single character inside single quotes
-// OBSOLETE          is a character literal, so we have to catch that case also. */
-// OBSOLETE       token = match_string_literal ();
-// OBSOLETE       if (token != 0)
-// OBSOLETE    {
-// OBSOLETE      return (token);
-// OBSOLETE    }
-// OBSOLETE       if (*lexptr == '\'')
-// OBSOLETE    {
-// OBSOLETE      token = match_character_literal ();
-// OBSOLETE      if (token != 0)
-// OBSOLETE        {
-// OBSOLETE          return (token);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE     case 'C':
-// OBSOLETE     case 'c':
-// OBSOLETE       token = match_character_literal ();
-// OBSOLETE       if (token != 0)
-// OBSOLETE    {
-// OBSOLETE      return (token);
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE     case '$':
-// OBSOLETE       yylval.sval.ptr = lexptr;
-// OBSOLETE       do
-// OBSOLETE    {
-// OBSOLETE      lexptr++;
-// OBSOLETE    }
-// OBSOLETE       while (isalnum (*lexptr) || *lexptr == '_' || *lexptr == '$');
-// OBSOLETE       yylval.sval.length = lexptr - yylval.sval.ptr;
-// OBSOLETE       write_dollar_variable (yylval.sval);
-// OBSOLETE       return GDB_VARIABLE;
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE   /* See if it is a special token of length 2.  */
-// OBSOLETE   for (i = 0; i < sizeof (tokentab2) / sizeof (tokentab2[0]); i++)
-// OBSOLETE     {
-// OBSOLETE       if (STREQN (lexptr, tokentab2[i].operator, 2))
-// OBSOLETE    {
-// OBSOLETE      lexptr += 2;
-// OBSOLETE      return (tokentab2[i].token);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   /* Look for single character cases which which could be the first
-// OBSOLETE      character of some other multicharacter token, but aren't, or we
-// OBSOLETE      would already have found it. */
-// OBSOLETE   switch (*lexptr)
-// OBSOLETE     {
-// OBSOLETE     case '-':
-// OBSOLETE     case ':':
-// OBSOLETE     case '/':
-// OBSOLETE     case '<':
-// OBSOLETE     case '>':
-// OBSOLETE       return (*lexptr++);
-// OBSOLETE     }
-// OBSOLETE   /* Look for a float literal before looking for an integer literal, so
-// OBSOLETE      we match as much of the input stream as possible. */
-// OBSOLETE   token = match_float_literal ();
-// OBSOLETE   if (token != 0)
-// OBSOLETE     {
-// OBSOLETE       return (token);
-// OBSOLETE     }
-// OBSOLETE   token = match_bitstring_literal ();
-// OBSOLETE   if (token != 0)
-// OBSOLETE     {
-// OBSOLETE       return (token);
-// OBSOLETE     }
-// OBSOLETE   token = match_integer_literal ();
-// OBSOLETE   if (token != 0)
-// OBSOLETE     {
-// OBSOLETE       return (token);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Try to match a simple name string, and if a match is found, then
-// OBSOLETE      further classify what sort of name it is and return an appropriate
-// OBSOLETE      token.  Note that attempting to match a simple name string consumes
-// OBSOLETE      the token from lexptr, so we can't back out if we later find that
-// OBSOLETE      we can't classify what sort of name it is. */
-// OBSOLETE 
-// OBSOLETE   inputname = match_simple_name_string ();
-// OBSOLETE 
-// OBSOLETE   if (inputname != NULL)
-// OBSOLETE     {
-// OBSOLETE       char *simplename = (char *) alloca (strlen (inputname) + 1);
-// OBSOLETE 
-// OBSOLETE       char *dptr = simplename, *sptr = inputname;
-// OBSOLETE       for (; *sptr; sptr++)
-// OBSOLETE    *dptr++ = isupper (*sptr) ? tolower (*sptr) : *sptr;
-// OBSOLETE       *dptr = '\0';
-// OBSOLETE 
-// OBSOLETE       /* See if it is a reserved identifier. */
-// OBSOLETE       for (i = 0; i < sizeof (idtokentab) / sizeof (idtokentab[0]); i++)
-// OBSOLETE    {
-// OBSOLETE      if (STREQ (simplename, idtokentab[i].operator))
-// OBSOLETE        {
-// OBSOLETE          return (idtokentab[i].token);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       /* Look for other special tokens. */
-// OBSOLETE       if (STREQ (simplename, "true"))
-// OBSOLETE    {
-// OBSOLETE      yylval.ulval = 1;
-// OBSOLETE      return (BOOLEAN_LITERAL);
-// OBSOLETE    }
-// OBSOLETE       if (STREQ (simplename, "false"))
-// OBSOLETE    {
-// OBSOLETE      yylval.ulval = 0;
-// OBSOLETE      return (BOOLEAN_LITERAL);
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       sym = lookup_symbol (inputname, expression_context_block,
-// OBSOLETE                       VAR_NAMESPACE, (int *) NULL,
-// OBSOLETE                       (struct symtab **) NULL);
-// OBSOLETE       if (sym == NULL && strcmp (inputname, simplename) != 0)
-// OBSOLETE    {
-// OBSOLETE      sym = lookup_symbol (simplename, expression_context_block,
-// OBSOLETE                           VAR_NAMESPACE, (int *) NULL,
-// OBSOLETE                           (struct symtab **) NULL);
-// OBSOLETE    }
-// OBSOLETE       if (sym != NULL)
-// OBSOLETE    {
-// OBSOLETE      yylval.ssym.stoken.ptr = NULL;
-// OBSOLETE      yylval.ssym.stoken.length = 0;
-// OBSOLETE      yylval.ssym.sym = sym;
-// OBSOLETE      yylval.ssym.is_a_field_of_this = 0;   /* FIXME, C++'ism */
-// OBSOLETE      switch (SYMBOL_CLASS (sym))
-// OBSOLETE        {
-// OBSOLETE        case LOC_BLOCK:
-// OBSOLETE          /* Found a procedure name. */
-// OBSOLETE          return (GENERAL_PROCEDURE_NAME);
-// OBSOLETE        case LOC_STATIC:
-// OBSOLETE          /* Found a global or local static variable. */
-// OBSOLETE          return (LOCATION_NAME);
-// OBSOLETE        case LOC_REGISTER:
-// OBSOLETE        case LOC_ARG:
-// OBSOLETE        case LOC_REF_ARG:
-// OBSOLETE        case LOC_REGPARM:
-// OBSOLETE        case LOC_REGPARM_ADDR:
-// OBSOLETE        case LOC_LOCAL:
-// OBSOLETE        case LOC_LOCAL_ARG:
-// OBSOLETE        case LOC_BASEREG:
-// OBSOLETE        case LOC_BASEREG_ARG:
-// OBSOLETE          if (innermost_block == NULL
-// OBSOLETE              || contained_in (block_found, innermost_block))
-// OBSOLETE            {
-// OBSOLETE              innermost_block = block_found;
-// OBSOLETE            }
-// OBSOLETE          return (LOCATION_NAME);
-// OBSOLETE          break;
-// OBSOLETE        case LOC_CONST:
-// OBSOLETE        case LOC_LABEL:
-// OBSOLETE          return (LOCATION_NAME);
-// OBSOLETE          break;
-// OBSOLETE        case LOC_TYPEDEF:
-// OBSOLETE          yylval.tsym.type = SYMBOL_TYPE (sym);
-// OBSOLETE          return TYPENAME;
-// OBSOLETE        case LOC_UNDEF:
-// OBSOLETE        case LOC_CONST_BYTES:
-// OBSOLETE        case LOC_OPTIMIZED_OUT:
-// OBSOLETE          error ("Symbol \"%s\" names no location.", inputname);
-// OBSOLETE          break;
-// OBSOLETE        default:
-// OBSOLETE          internal_error (__FILE__, __LINE__,
-// OBSOLETE                          "unhandled SYMBOL_CLASS in ch_lex()");
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       else if (!have_full_symbols () && !have_partial_symbols ())
-// OBSOLETE    {
-// OBSOLETE      error ("No symbol table is loaded.  Use the \"file\" command.");
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      error ("No symbol \"%s\" in current context.", inputname);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Catch single character tokens which are not part of some
-// OBSOLETE      longer token. */
-// OBSOLETE 
-// OBSOLETE   switch (*lexptr)
-// OBSOLETE     {
-// OBSOLETE     case '.':                      /* Not float for example. */
-// OBSOLETE       lexptr++;
-// OBSOLETE       while (isspace (*lexptr))
-// OBSOLETE    lexptr++;
-// OBSOLETE       inputname = match_simple_name_string ();
-// OBSOLETE       if (!inputname)
-// OBSOLETE    return '.';
-// OBSOLETE       return DOT_FIELD_NAME;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return (ILLEGAL_TOKEN);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE write_lower_upper_value (enum exp_opcode opcode,   /* Either UNOP_LOWER or UNOP_UPPER */
-// OBSOLETE                     struct type *type)
-// OBSOLETE {
-// OBSOLETE   if (type == NULL)
-// OBSOLETE     write_exp_elt_opcode (opcode);
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       struct type *result_type;
-// OBSOLETE       LONGEST val = type_lower_upper (opcode, type, &result_type);
-// OBSOLETE       write_exp_elt_opcode (OP_LONG);
-// OBSOLETE       write_exp_elt_type (result_type);
-// OBSOLETE       write_exp_elt_longcst (val);
-// OBSOLETE       write_exp_elt_opcode (OP_LONG);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE chill_error (char *msg)
-// OBSOLETE {
-// OBSOLETE   /* Never used. */
-// OBSOLETE }
diff --git a/gdb/ch-lang.c b/gdb/ch-lang.c
deleted file mode 100644 (file)
index 50b446e..0000000
+++ /dev/null
@@ -1,663 +0,0 @@
-// OBSOLETE /* Chill language support routines for GDB, the GNU debugger.
-// OBSOLETE    Copyright 1992, 1993, 1994, 1995, 1996, 2000, 2001, 2002
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "gdbtypes.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE #include "expression.h"
-// OBSOLETE #include "parser-defs.h"
-// OBSOLETE #include "language.h"
-// OBSOLETE #include "ch-lang.h"
-// OBSOLETE #include "valprint.h"
-// OBSOLETE 
-// OBSOLETE extern void _initialize_chill_language (void);
-// OBSOLETE 
-// OBSOLETE static struct value *evaluate_subexp_chill (struct type *, struct expression *,
-// OBSOLETE                                        int *, enum noside);
-// OBSOLETE 
-// OBSOLETE static struct value *value_chill_max_min (enum exp_opcode, struct value *);
-// OBSOLETE 
-// OBSOLETE static struct value *value_chill_card (struct value *);
-// OBSOLETE 
-// OBSOLETE static struct value *value_chill_length (struct value *);
-// OBSOLETE 
-// OBSOLETE static struct type *chill_create_fundamental_type (struct objfile *, int);
-// OBSOLETE 
-// OBSOLETE static void chill_printstr (struct ui_file * stream, char *string,
-// OBSOLETE                        unsigned int length, int width,
-// OBSOLETE                        int force_ellipses);
-// OBSOLETE 
-// OBSOLETE static void chill_printchar (int, struct ui_file *);
-// OBSOLETE 
-// OBSOLETE /* For now, Chill uses a simple mangling algorithm whereby you simply
-// OBSOLETE    discard everything after the occurance of two successive CPLUS_MARKER
-// OBSOLETE    characters to derive the demangled form. */
-// OBSOLETE 
-// OBSOLETE char *
-// OBSOLETE chill_demangle (const char *mangled)
-// OBSOLETE {
-// OBSOLETE   const char *joiner = NULL;
-// OBSOLETE   char *demangled;
-// OBSOLETE   const char *cp = mangled;
-// OBSOLETE 
-// OBSOLETE   while (*cp)
-// OBSOLETE     {
-// OBSOLETE       if (is_cplus_marker (*cp))
-// OBSOLETE    {
-// OBSOLETE      joiner = cp;
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       cp++;
-// OBSOLETE     }
-// OBSOLETE   if (joiner != NULL && *(joiner + 1) == *joiner)
-// OBSOLETE     {
-// OBSOLETE       demangled = savestring (mangled, joiner - mangled);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       demangled = NULL;
-// OBSOLETE     }
-// OBSOLETE   return (demangled);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE chill_printchar (register int c, struct ui_file *stream)
-// OBSOLETE {
-// OBSOLETE   c &= 0xFF;                       /* Avoid sign bit follies */
-// OBSOLETE 
-// OBSOLETE   if (PRINT_LITERAL_FORM (c))
-// OBSOLETE     {
-// OBSOLETE       if (c == '\'' || c == '^')
-// OBSOLETE    fprintf_filtered (stream, "'%c%c'", c, c);
-// OBSOLETE       else
-// OBSOLETE    fprintf_filtered (stream, "'%c'", c);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       fprintf_filtered (stream, "'^(%u)'", (unsigned int) c);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Print the character string STRING, printing at most LENGTH characters.
-// OBSOLETE    Printing stops early if the number hits print_max; repeat counts
-// OBSOLETE    are printed as appropriate.  Print ellipses at the end if we
-// OBSOLETE    had to stop before printing LENGTH characters, or if FORCE_ELLIPSES.
-// OBSOLETE    Note that gdb maintains the length of strings without counting the
-// OBSOLETE    terminating null byte, while chill strings are typically written with
-// OBSOLETE    an explicit null byte.  So we always assume an implied null byte
-// OBSOLETE    until gdb is able to maintain non-null terminated strings as well
-// OBSOLETE    as null terminated strings (FIXME).
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE chill_printstr (struct ui_file *stream, char *string, unsigned int length,
-// OBSOLETE            int width, int force_ellipses)
-// OBSOLETE {
-// OBSOLETE   register unsigned int i;
-// OBSOLETE   unsigned int things_printed = 0;
-// OBSOLETE   int in_literal_form = 0;
-// OBSOLETE   int in_control_form = 0;
-// OBSOLETE   int need_slashslash = 0;
-// OBSOLETE   unsigned int c;
-// OBSOLETE 
-// OBSOLETE   if (length == 0)
-// OBSOLETE     {
-// OBSOLETE       fputs_filtered ("\"\"", stream);
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   for (i = 0; i < length && things_printed < print_max; ++i)
-// OBSOLETE     {
-// OBSOLETE       /* Position of the character we are examining
-// OBSOLETE          to see whether it is repeated.  */
-// OBSOLETE       unsigned int rep1;
-// OBSOLETE       /* Number of repetitions we have detected so far.  */
-// OBSOLETE       unsigned int reps;
-// OBSOLETE 
-// OBSOLETE       QUIT;
-// OBSOLETE 
-// OBSOLETE       if (need_slashslash)
-// OBSOLETE    {
-// OBSOLETE      fputs_filtered ("//", stream);
-// OBSOLETE      need_slashslash = 0;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       rep1 = i + 1;
-// OBSOLETE       reps = 1;
-// OBSOLETE       while (rep1 < length && string[rep1] == string[i])
-// OBSOLETE    {
-// OBSOLETE      ++rep1;
-// OBSOLETE      ++reps;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       c = string[i];
-// OBSOLETE       if (reps > repeat_count_threshold)
-// OBSOLETE    {
-// OBSOLETE      if (in_control_form || in_literal_form)
-// OBSOLETE        {
-// OBSOLETE          if (in_control_form)
-// OBSOLETE            fputs_filtered (")", stream);
-// OBSOLETE          fputs_filtered ("\"//", stream);
-// OBSOLETE          in_control_form = in_literal_form = 0;
-// OBSOLETE        }
-// OBSOLETE      chill_printchar (c, stream);
-// OBSOLETE      fprintf_filtered (stream, "<repeats %u times>", reps);
-// OBSOLETE      i = rep1 - 1;
-// OBSOLETE      things_printed += repeat_count_threshold;
-// OBSOLETE      need_slashslash = 1;
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      if (!in_literal_form && !in_control_form)
-// OBSOLETE        fputs_filtered ("\"", stream);
-// OBSOLETE      if (PRINT_LITERAL_FORM (c))
-// OBSOLETE        {
-// OBSOLETE          if (!in_literal_form)
-// OBSOLETE            {
-// OBSOLETE              if (in_control_form)
-// OBSOLETE                {
-// OBSOLETE                  fputs_filtered (")", stream);
-// OBSOLETE                  in_control_form = 0;
-// OBSOLETE                }
-// OBSOLETE              in_literal_form = 1;
-// OBSOLETE            }
-// OBSOLETE          fprintf_filtered (stream, "%c", c);
-// OBSOLETE          if (c == '"' || c == '^')
-// OBSOLETE            /* duplicate this one as must be done at input */
-// OBSOLETE            fprintf_filtered (stream, "%c", c);
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          if (!in_control_form)
-// OBSOLETE            {
-// OBSOLETE              if (in_literal_form)
-// OBSOLETE                {
-// OBSOLETE                  in_literal_form = 0;
-// OBSOLETE                }
-// OBSOLETE              fputs_filtered ("^(", stream);
-// OBSOLETE              in_control_form = 1;
-// OBSOLETE            }
-// OBSOLETE          else
-// OBSOLETE            fprintf_filtered (stream, ",");
-// OBSOLETE          c = c & 0xff;
-// OBSOLETE          fprintf_filtered (stream, "%u", (unsigned int) c);
-// OBSOLETE        }
-// OBSOLETE      ++things_printed;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Terminate the quotes if necessary.  */
-// OBSOLETE   if (in_control_form)
-// OBSOLETE     {
-// OBSOLETE       fputs_filtered (")", stream);
-// OBSOLETE     }
-// OBSOLETE   if (in_literal_form || in_control_form)
-// OBSOLETE     {
-// OBSOLETE       fputs_filtered ("\"", stream);
-// OBSOLETE     }
-// OBSOLETE   if (force_ellipses || (i < length))
-// OBSOLETE     {
-// OBSOLETE       fputs_filtered ("...", stream);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct type *
-// OBSOLETE chill_create_fundamental_type (struct objfile *objfile, int typeid)
-// OBSOLETE {
-// OBSOLETE   register struct type *type = NULL;
-// OBSOLETE 
-// OBSOLETE   switch (typeid)
-// OBSOLETE     {
-// OBSOLETE     default:
-// OBSOLETE       /* FIXME:  For now, if we are asked to produce a type not in this
-// OBSOLETE          language, create the equivalent of a C integer type with the
-// OBSOLETE          name "<?type?>".  When all the dust settles from the type
-// OBSOLETE          reconstruction work, this should probably become an error. */
-// OBSOLETE       type = init_type (TYPE_CODE_INT, 2, 0, "<?type?>", objfile);
-// OBSOLETE       warning ("internal error: no chill fundamental type %d", typeid);
-// OBSOLETE       break;
-// OBSOLETE     case FT_VOID:
-// OBSOLETE       /* FIXME:  Currently the GNU Chill compiler emits some DWARF entries for
-// OBSOLETE          typedefs, unrelated to anything directly in the code being compiled,
-// OBSOLETE          that have some FT_VOID types.  Just fake it for now. */
-// OBSOLETE       type = init_type (TYPE_CODE_VOID, 0, 0, "<?VOID?>", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_BOOLEAN:
-// OBSOLETE       type = init_type (TYPE_CODE_BOOL, 1, TYPE_FLAG_UNSIGNED, "BOOL", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_CHAR:
-// OBSOLETE       type = init_type (TYPE_CODE_CHAR, 1, TYPE_FLAG_UNSIGNED, "CHAR", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_SIGNED_CHAR:
-// OBSOLETE       type = init_type (TYPE_CODE_INT, 1, 0, "BYTE", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_UNSIGNED_CHAR:
-// OBSOLETE       type = init_type (TYPE_CODE_INT, 1, TYPE_FLAG_UNSIGNED, "UBYTE", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_SHORT:         /* Chill ints are 2 bytes */
-// OBSOLETE       type = init_type (TYPE_CODE_INT, 2, 0, "INT", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_UNSIGNED_SHORT:        /* Chill ints are 2 bytes */
-// OBSOLETE       type = init_type (TYPE_CODE_INT, 2, TYPE_FLAG_UNSIGNED, "UINT", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_INTEGER:               /* FIXME? */
-// OBSOLETE     case FT_SIGNED_INTEGER:        /* FIXME? */
-// OBSOLETE     case FT_LONG:          /* Chill longs are 4 bytes */
-// OBSOLETE     case FT_SIGNED_LONG:   /* Chill longs are 4 bytes */
-// OBSOLETE       type = init_type (TYPE_CODE_INT, 4, 0, "LONG", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_UNSIGNED_INTEGER:      /* FIXME? */
-// OBSOLETE     case FT_UNSIGNED_LONG: /* Chill longs are 4 bytes */
-// OBSOLETE       type = init_type (TYPE_CODE_INT, 4, TYPE_FLAG_UNSIGNED, "ULONG", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_FLOAT:
-// OBSOLETE       type = init_type (TYPE_CODE_FLT, 4, 0, "REAL", objfile);
-// OBSOLETE       break;
-// OBSOLETE     case FT_DBL_PREC_FLOAT:
-// OBSOLETE       type = init_type (TYPE_CODE_FLT, 8, 0, "LONG_REAL", objfile);
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE   return (type);
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Table of operators and their precedences for printing expressions.  */
-// OBSOLETE 
-// OBSOLETE static const struct op_print chill_op_print_tab[] =
-// OBSOLETE {
-// OBSOLETE   {"AND", BINOP_LOGICAL_AND, PREC_LOGICAL_AND, 0},
-// OBSOLETE   {"OR", BINOP_LOGICAL_OR, PREC_LOGICAL_OR, 0},
-// OBSOLETE   {"NOT", UNOP_LOGICAL_NOT, PREC_PREFIX, 0},
-// OBSOLETE   {"MOD", BINOP_MOD, PREC_MUL, 0},
-// OBSOLETE   {"REM", BINOP_REM, PREC_MUL, 0},
-// OBSOLETE   {"SIZE", UNOP_SIZEOF, PREC_BUILTIN_FUNCTION, 0},
-// OBSOLETE   {"LOWER", UNOP_LOWER, PREC_BUILTIN_FUNCTION, 0},
-// OBSOLETE   {"UPPER", UNOP_UPPER, PREC_BUILTIN_FUNCTION, 0},
-// OBSOLETE   {"CARD", UNOP_CARD, PREC_BUILTIN_FUNCTION, 0},
-// OBSOLETE   {"MAX", UNOP_CHMAX, PREC_BUILTIN_FUNCTION, 0},
-// OBSOLETE   {"MIN", UNOP_CHMIN, PREC_BUILTIN_FUNCTION, 0},
-// OBSOLETE   {":=", BINOP_ASSIGN, PREC_ASSIGN, 1},
-// OBSOLETE   {"=", BINOP_EQUAL, PREC_EQUAL, 0},
-// OBSOLETE   {"/=", BINOP_NOTEQUAL, PREC_EQUAL, 0},
-// OBSOLETE   {"<=", BINOP_LEQ, PREC_ORDER, 0},
-// OBSOLETE   {">=", BINOP_GEQ, PREC_ORDER, 0},
-// OBSOLETE   {">", BINOP_GTR, PREC_ORDER, 0},
-// OBSOLETE   {"<", BINOP_LESS, PREC_ORDER, 0},
-// OBSOLETE   {"+", BINOP_ADD, PREC_ADD, 0},
-// OBSOLETE   {"-", BINOP_SUB, PREC_ADD, 0},
-// OBSOLETE   {"*", BINOP_MUL, PREC_MUL, 0},
-// OBSOLETE   {"/", BINOP_DIV, PREC_MUL, 0},
-// OBSOLETE   {"//", BINOP_CONCAT, PREC_PREFIX, 0},            /* FIXME: precedence? */
-// OBSOLETE   {"-", UNOP_NEG, PREC_PREFIX, 0},
-// OBSOLETE   {"->", UNOP_IND, PREC_SUFFIX, 1},
-// OBSOLETE   {"->", UNOP_ADDR, PREC_PREFIX, 0},
-// OBSOLETE   {":", BINOP_RANGE, PREC_ASSIGN, 0},
-// OBSOLETE   {NULL, 0, 0, 0}
-// OBSOLETE };
-// OBSOLETE \f
-// OBSOLETE /* The built-in types of Chill.  */
-// OBSOLETE 
-// OBSOLETE struct type *builtin_type_chill_bool;
-// OBSOLETE struct type *builtin_type_chill_char;
-// OBSOLETE struct type *builtin_type_chill_long;
-// OBSOLETE struct type *builtin_type_chill_ulong;
-// OBSOLETE struct type *builtin_type_chill_real;
-// OBSOLETE 
-// OBSOLETE struct type **const (chill_builtin_types[]) =
-// OBSOLETE {
-// OBSOLETE   &builtin_type_chill_bool,
-// OBSOLETE     &builtin_type_chill_char,
-// OBSOLETE     &builtin_type_chill_long,
-// OBSOLETE     &builtin_type_chill_ulong,
-// OBSOLETE     &builtin_type_chill_real,
-// OBSOLETE     0
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE /* Calculate LOWER or UPPER of TYPE.
-// OBSOLETE    Returns the result as an integer.
-// OBSOLETE    *RESULT_TYPE is the appropriate type for the result. */
-// OBSOLETE 
-// OBSOLETE LONGEST
-// OBSOLETE type_lower_upper (enum exp_opcode op,      /* Either UNOP_LOWER or UNOP_UPPER */
-// OBSOLETE              struct type *type, struct type **result_type)
-// OBSOLETE {
-// OBSOLETE   LONGEST low, high;
-// OBSOLETE   *result_type = type;
-// OBSOLETE   CHECK_TYPEDEF (type);
-// OBSOLETE   switch (TYPE_CODE (type))
-// OBSOLETE     {
-// OBSOLETE     case TYPE_CODE_STRUCT:
-// OBSOLETE       *result_type = builtin_type_int;
-// OBSOLETE       if (chill_varying_type (type))
-// OBSOLETE    return type_lower_upper (op, TYPE_FIELD_TYPE (type, 1), result_type);
-// OBSOLETE       break;
-// OBSOLETE     case TYPE_CODE_ARRAY:
-// OBSOLETE     case TYPE_CODE_BITSTRING:
-// OBSOLETE     case TYPE_CODE_STRING:
-// OBSOLETE       type = TYPE_FIELD_TYPE (type, 0);            /* Get index type */
-// OBSOLETE 
-// OBSOLETE       /* ... fall through ... */
-// OBSOLETE     case TYPE_CODE_RANGE:
-// OBSOLETE       *result_type = TYPE_TARGET_TYPE (type);
-// OBSOLETE       return op == UNOP_LOWER ? TYPE_LOW_BOUND (type) : TYPE_HIGH_BOUND (type);
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_ENUM:
-// OBSOLETE     case TYPE_CODE_BOOL:
-// OBSOLETE     case TYPE_CODE_INT:
-// OBSOLETE     case TYPE_CODE_CHAR:
-// OBSOLETE       if (get_discrete_bounds (type, &low, &high) >= 0)
-// OBSOLETE    {
-// OBSOLETE      *result_type = type;
-// OBSOLETE      return op == UNOP_LOWER ? low : high;
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE     case TYPE_CODE_UNDEF:
-// OBSOLETE     case TYPE_CODE_PTR:
-// OBSOLETE     case TYPE_CODE_UNION:
-// OBSOLETE     case TYPE_CODE_FUNC:
-// OBSOLETE     case TYPE_CODE_FLT:
-// OBSOLETE     case TYPE_CODE_VOID:
-// OBSOLETE     case TYPE_CODE_SET:
-// OBSOLETE     case TYPE_CODE_ERROR:
-// OBSOLETE     case TYPE_CODE_MEMBER:
-// OBSOLETE     case TYPE_CODE_METHOD:
-// OBSOLETE     case TYPE_CODE_REF:
-// OBSOLETE     case TYPE_CODE_COMPLEX:
-// OBSOLETE     default:
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE   error ("unknown mode for LOWER/UPPER builtin");
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct value *
-// OBSOLETE value_chill_length (struct value *val)
-// OBSOLETE {
-// OBSOLETE   LONGEST tmp;
-// OBSOLETE   struct type *type = VALUE_TYPE (val);
-// OBSOLETE   struct type *ttype;
-// OBSOLETE   CHECK_TYPEDEF (type);
-// OBSOLETE   switch (TYPE_CODE (type))
-// OBSOLETE     {
-// OBSOLETE     case TYPE_CODE_ARRAY:
-// OBSOLETE     case TYPE_CODE_BITSTRING:
-// OBSOLETE     case TYPE_CODE_STRING:
-// OBSOLETE       tmp = type_lower_upper (UNOP_UPPER, type, &ttype)
-// OBSOLETE    - type_lower_upper (UNOP_LOWER, type, &ttype) + 1;
-// OBSOLETE       break;
-// OBSOLETE     case TYPE_CODE_STRUCT:
-// OBSOLETE       if (chill_varying_type (type))
-// OBSOLETE    {
-// OBSOLETE      tmp = unpack_long (TYPE_FIELD_TYPE (type, 0), VALUE_CONTENTS (val));
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       /* ... else fall through ... */
-// OBSOLETE     default:
-// OBSOLETE       error ("bad argument to LENGTH builtin");
-// OBSOLETE     }
-// OBSOLETE   return value_from_longest (builtin_type_int, tmp);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct value *
-// OBSOLETE value_chill_card (struct value *val)
-// OBSOLETE {
-// OBSOLETE   LONGEST tmp = 0;
-// OBSOLETE   struct type *type = VALUE_TYPE (val);
-// OBSOLETE   CHECK_TYPEDEF (type);
-// OBSOLETE 
-// OBSOLETE   if (TYPE_CODE (type) == TYPE_CODE_SET)
-// OBSOLETE     {
-// OBSOLETE       struct type *range_type = TYPE_INDEX_TYPE (type);
-// OBSOLETE       LONGEST lower_bound, upper_bound;
-// OBSOLETE       int i;
-// OBSOLETE 
-// OBSOLETE       get_discrete_bounds (range_type, &lower_bound, &upper_bound);
-// OBSOLETE       for (i = lower_bound; i <= upper_bound; i++)
-// OBSOLETE    if (value_bit_index (type, VALUE_CONTENTS (val), i) > 0)
-// OBSOLETE      tmp++;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     error ("bad argument to CARD builtin");
-// OBSOLETE 
-// OBSOLETE   return value_from_longest (builtin_type_int, tmp);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct value *
-// OBSOLETE value_chill_max_min (enum exp_opcode op, struct value *val)
-// OBSOLETE {
-// OBSOLETE   LONGEST tmp = 0;
-// OBSOLETE   struct type *type = VALUE_TYPE (val);
-// OBSOLETE   struct type *elttype;
-// OBSOLETE   CHECK_TYPEDEF (type);
-// OBSOLETE 
-// OBSOLETE   if (TYPE_CODE (type) == TYPE_CODE_SET)
-// OBSOLETE     {
-// OBSOLETE       LONGEST lower_bound, upper_bound;
-// OBSOLETE       int i, empty = 1;
-// OBSOLETE 
-// OBSOLETE       elttype = TYPE_INDEX_TYPE (type);
-// OBSOLETE       CHECK_TYPEDEF (elttype);
-// OBSOLETE       get_discrete_bounds (elttype, &lower_bound, &upper_bound);
-// OBSOLETE 
-// OBSOLETE       if (op == UNOP_CHMAX)
-// OBSOLETE    {
-// OBSOLETE      for (i = upper_bound; i >= lower_bound; i--)
-// OBSOLETE        {
-// OBSOLETE          if (value_bit_index (type, VALUE_CONTENTS (val), i) > 0)
-// OBSOLETE            {
-// OBSOLETE              tmp = i;
-// OBSOLETE              empty = 0;
-// OBSOLETE              break;
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      for (i = lower_bound; i <= upper_bound; i++)
-// OBSOLETE        {
-// OBSOLETE          if (value_bit_index (type, VALUE_CONTENTS (val), i) > 0)
-// OBSOLETE            {
-// OBSOLETE              tmp = i;
-// OBSOLETE              empty = 0;
-// OBSOLETE              break;
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       if (empty)
-// OBSOLETE    error ("%s for empty powerset", op == UNOP_CHMAX ? "MAX" : "MIN");
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     error ("bad argument to %s builtin", op == UNOP_CHMAX ? "MAX" : "MIN");
-// OBSOLETE 
-// OBSOLETE   return value_from_longest (TYPE_CODE (elttype) == TYPE_CODE_RANGE
-// OBSOLETE                         ? TYPE_TARGET_TYPE (elttype)
-// OBSOLETE                         : elttype,
-// OBSOLETE                         tmp);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct value *
-// OBSOLETE evaluate_subexp_chill (struct type *expect_type,
-// OBSOLETE                   register struct expression *exp, register int *pos,
-// OBSOLETE                   enum noside noside)
-// OBSOLETE {
-// OBSOLETE   int pc = *pos;
-// OBSOLETE   struct type *type;
-// OBSOLETE   int tem, nargs;
-// OBSOLETE   struct value *arg1;
-// OBSOLETE   struct value **argvec;
-// OBSOLETE   enum exp_opcode op = exp->elts[*pos].opcode;
-// OBSOLETE   switch (op)
-// OBSOLETE     {
-// OBSOLETE     case MULTI_SUBSCRIPT:
-// OBSOLETE       if (noside == EVAL_SKIP)
-// OBSOLETE    break;
-// OBSOLETE       (*pos) += 3;
-// OBSOLETE       nargs = longest_to_int (exp->elts[pc + 1].longconst);
-// OBSOLETE       arg1 = evaluate_subexp_with_coercion (exp, pos, noside);
-// OBSOLETE       type = check_typedef (VALUE_TYPE (arg1));
-// OBSOLETE 
-// OBSOLETE       if (nargs == 1 && TYPE_CODE (type) == TYPE_CODE_INT)
-// OBSOLETE    {
-// OBSOLETE      /* Looks like string repetition. */
-// OBSOLETE      struct value *string = evaluate_subexp_with_coercion (exp, pos,
-// OBSOLETE                                                            noside);
-// OBSOLETE      return value_concat (arg1, string);
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       switch (TYPE_CODE (type))
-// OBSOLETE    {
-// OBSOLETE    case TYPE_CODE_PTR:
-// OBSOLETE      type = check_typedef (TYPE_TARGET_TYPE (type));
-// OBSOLETE      if (!type || TYPE_CODE (type) != TYPE_CODE_FUNC)
-// OBSOLETE        error ("reference value used as function");
-// OBSOLETE      /* ... fall through ... */
-// OBSOLETE    case TYPE_CODE_FUNC:
-// OBSOLETE      /* It's a function call. */
-// OBSOLETE      if (noside == EVAL_AVOID_SIDE_EFFECTS)
-// OBSOLETE        break;
-// OBSOLETE 
-// OBSOLETE      /* Allocate arg vector, including space for the function to be
-// OBSOLETE         called in argvec[0] and a terminating NULL */
-// OBSOLETE      argvec = (struct value **) alloca (sizeof (struct value *)
-// OBSOLETE                                         * (nargs + 2));
-// OBSOLETE      argvec[0] = arg1;
-// OBSOLETE      tem = 1;
-// OBSOLETE      for (; tem <= nargs && tem <= TYPE_NFIELDS (type); tem++)
-// OBSOLETE        {
-// OBSOLETE          argvec[tem]
-// OBSOLETE            = evaluate_subexp_chill (TYPE_FIELD_TYPE (type, tem - 1),
-// OBSOLETE                                     exp, pos, noside);
-// OBSOLETE        }
-// OBSOLETE      for (; tem <= nargs; tem++)
-// OBSOLETE        argvec[tem] = evaluate_subexp_with_coercion (exp, pos, noside);
-// OBSOLETE      argvec[tem] = 0;      /* signal end of arglist */
-// OBSOLETE 
-// OBSOLETE      return call_function_by_hand (argvec[0], nargs, argvec + 1);
-// OBSOLETE    default:
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       while (nargs-- > 0)
-// OBSOLETE    {
-// OBSOLETE      struct value *index = evaluate_subexp_with_coercion (exp, pos,
-// OBSOLETE                                                           noside);
-// OBSOLETE      arg1 = value_subscript (arg1, index);
-// OBSOLETE    }
-// OBSOLETE       return (arg1);
-// OBSOLETE 
-// OBSOLETE     case UNOP_LOWER:
-// OBSOLETE     case UNOP_UPPER:
-// OBSOLETE       (*pos)++;
-// OBSOLETE       if (noside == EVAL_SKIP)
-// OBSOLETE    {
-// OBSOLETE      (*exp->language_defn->evaluate_exp) (NULL_TYPE, exp, pos, EVAL_SKIP);
-// OBSOLETE      goto nosideret;
-// OBSOLETE    }
-// OBSOLETE       arg1 = (*exp->language_defn->evaluate_exp) (NULL_TYPE, exp, pos,
-// OBSOLETE                                              EVAL_AVOID_SIDE_EFFECTS);
-// OBSOLETE       tem = type_lower_upper (op, VALUE_TYPE (arg1), &type);
-// OBSOLETE       return value_from_longest (type, tem);
-// OBSOLETE 
-// OBSOLETE     case UNOP_LENGTH:
-// OBSOLETE       (*pos)++;
-// OBSOLETE       arg1 = (*exp->language_defn->evaluate_exp) (NULL_TYPE, exp, pos, noside);
-// OBSOLETE       return value_chill_length (arg1);
-// OBSOLETE 
-// OBSOLETE     case UNOP_CARD:
-// OBSOLETE       (*pos)++;
-// OBSOLETE       arg1 = (*exp->language_defn->evaluate_exp) (NULL_TYPE, exp, pos, noside);
-// OBSOLETE       return value_chill_card (arg1);
-// OBSOLETE 
-// OBSOLETE     case UNOP_CHMAX:
-// OBSOLETE     case UNOP_CHMIN:
-// OBSOLETE       (*pos)++;
-// OBSOLETE       arg1 = (*exp->language_defn->evaluate_exp) (NULL_TYPE, exp, pos, noside);
-// OBSOLETE       return value_chill_max_min (op, arg1);
-// OBSOLETE 
-// OBSOLETE     case BINOP_COMMA:
-// OBSOLETE       error ("',' operator used in invalid context");
-// OBSOLETE 
-// OBSOLETE     default:
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return evaluate_subexp_standard (expect_type, exp, pos, noside);
-// OBSOLETE nosideret:
-// OBSOLETE   return value_from_longest (builtin_type_long, (LONGEST) 1);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE const struct language_defn chill_language_defn =
-// OBSOLETE {
-// OBSOLETE   "chill",
-// OBSOLETE   language_chill,
-// OBSOLETE   chill_builtin_types,
-// OBSOLETE   range_check_on,
-// OBSOLETE   type_check_on,
-// OBSOLETE   case_sensitive_on,
-// OBSOLETE   chill_parse,                     /* parser */
-// OBSOLETE   chill_error,                     /* parser error function */
-// OBSOLETE   evaluate_subexp_chill,
-// OBSOLETE   chill_printchar,         /* print a character constant */
-// OBSOLETE   chill_printstr,          /* function to print a string constant */
-// OBSOLETE   NULL,                            /* Function to print a single char */
-// OBSOLETE   chill_create_fundamental_type,   /* Create fundamental type in this language */
-// OBSOLETE   chill_print_type,                /* Print a type using appropriate syntax */
-// OBSOLETE   chill_val_print,         /* Print a value using appropriate syntax */
-// OBSOLETE   chill_value_print,               /* Print a top-levl value */
-// OBSOLETE   {"", "B'", "", ""},              /* Binary format info */
-// OBSOLETE   {"O'%lo", "O'", "o", ""},        /* Octal format info */
-// OBSOLETE   {"D'%ld", "D'", "d", ""},        /* Decimal format info */
-// OBSOLETE   {"H'%lx", "H'", "x", ""},        /* Hex format info */
-// OBSOLETE   chill_op_print_tab,              /* expression operators for printing */
-// OBSOLETE   0,                               /* arrays are first-class (not c-style) */
-// OBSOLETE   0,                               /* String lower bound */
-// OBSOLETE   &builtin_type_chill_char,        /* Type of string elements */
-// OBSOLETE   LANG_MAGIC
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE /* Initialization for Chill */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_chill_language (void)
-// OBSOLETE {
-// OBSOLETE   builtin_type_chill_bool =
-// OBSOLETE     init_type (TYPE_CODE_BOOL, TARGET_CHAR_BIT / TARGET_CHAR_BIT,
-// OBSOLETE           TYPE_FLAG_UNSIGNED,
-// OBSOLETE           "BOOL", (struct objfile *) NULL);
-// OBSOLETE   builtin_type_chill_char =
-// OBSOLETE     init_type (TYPE_CODE_CHAR, TARGET_CHAR_BIT / TARGET_CHAR_BIT,
-// OBSOLETE           TYPE_FLAG_UNSIGNED,
-// OBSOLETE           "CHAR", (struct objfile *) NULL);
-// OBSOLETE   builtin_type_chill_long =
-// OBSOLETE     init_type (TYPE_CODE_INT, TARGET_LONG_BIT / TARGET_CHAR_BIT,
-// OBSOLETE           0,
-// OBSOLETE           "LONG", (struct objfile *) NULL);
-// OBSOLETE   builtin_type_chill_ulong =
-// OBSOLETE     init_type (TYPE_CODE_INT, TARGET_LONG_BIT / TARGET_CHAR_BIT,
-// OBSOLETE           TYPE_FLAG_UNSIGNED,
-// OBSOLETE           "ULONG", (struct objfile *) NULL);
-// OBSOLETE   builtin_type_chill_real =
-// OBSOLETE     init_type (TYPE_CODE_FLT, TARGET_DOUBLE_BIT / TARGET_CHAR_BIT,
-// OBSOLETE           0,
-// OBSOLETE           "LONG_REAL", (struct objfile *) NULL);
-// OBSOLETE 
-// OBSOLETE   add_language (&chill_language_defn);
-// OBSOLETE }
diff --git a/gdb/ch-lang.h b/gdb/ch-lang.h
deleted file mode 100644 (file)
index d4e5356..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// OBSOLETE /* Chill language support definitions for GDB, the GNU debugger.
-// OBSOLETE    Copyright 1992, 1994, 1996, 1998, 1999, 2000
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* Forward decls for prototypes */
-// OBSOLETE struct value;
-// OBSOLETE 
-// OBSOLETE extern int chill_parse (void);     /* Defined in ch-exp.y */
-// OBSOLETE 
-// OBSOLETE extern void chill_error (char *);  /* Defined in ch-exp.y */
-// OBSOLETE 
-// OBSOLETE /* Defined in ch-typeprint.c */
-// OBSOLETE extern void chill_print_type (struct type *, char *, struct ui_file *, int,
-// OBSOLETE                          int);
-// OBSOLETE 
-// OBSOLETE extern int chill_val_print (struct type *, char *, int, CORE_ADDR,
-// OBSOLETE                        struct ui_file *, int, int, int,
-// OBSOLETE                        enum val_prettyprint);
-// OBSOLETE 
-// OBSOLETE extern int chill_value_print (struct value *, struct ui_file *,
-// OBSOLETE                          int, enum val_prettyprint);
-// OBSOLETE 
-// OBSOLETE extern LONGEST
-// OBSOLETE type_lower_upper (enum exp_opcode, struct type *, struct type **);
diff --git a/gdb/ch-typeprint.c b/gdb/ch-typeprint.c
deleted file mode 100644 (file)
index 32590f8..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-// OBSOLETE /* Support for printing Chill types for GDB, the GNU debugger.
-// OBSOLETE    Copyright 1986, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 2000
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "gdb_obstack.h"
-// OBSOLETE #include "bfd.h"           /* Binary File Description */
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "gdbtypes.h"
-// OBSOLETE #include "expression.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "target.h"
-// OBSOLETE #include "language.h"
-// OBSOLETE #include "ch-lang.h"
-// OBSOLETE #include "typeprint.h"
-// OBSOLETE 
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE #include <errno.h>
-// OBSOLETE 
-// OBSOLETE static void chill_type_print_base (struct type *, struct ui_file *, int, int);
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE chill_print_type (struct type *type, char *varstring, struct ui_file *stream,
-// OBSOLETE              int show, int level)
-// OBSOLETE {
-// OBSOLETE   if (varstring != NULL && *varstring != '\0')
-// OBSOLETE     {
-// OBSOLETE       fputs_filtered (varstring, stream);
-// OBSOLETE       fputs_filtered (" ", stream);
-// OBSOLETE     }
-// OBSOLETE   chill_type_print_base (type, stream, show, level);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Print the name of the type (or the ultimate pointer target,
-// OBSOLETE    function value or array element).
-// OBSOLETE 
-// OBSOLETE    SHOW nonzero means don't print this type as just its name;
-// OBSOLETE    show its real definition even if it has a name.
-// OBSOLETE    SHOW zero means print just typename or tag if there is one
-// OBSOLETE    SHOW negative means abbreviate structure elements.
-// OBSOLETE    SHOW is decremented for printing of structure elements.
-// OBSOLETE 
-// OBSOLETE    LEVEL is the depth to indent by.
-// OBSOLETE    We increase it for some recursive calls.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE chill_type_print_base (struct type *type, struct ui_file *stream, int show,
-// OBSOLETE                   int level)
-// OBSOLETE {
-// OBSOLETE   register int len;
-// OBSOLETE   register int i;
-// OBSOLETE   struct type *index_type;
-// OBSOLETE   struct type *range_type;
-// OBSOLETE   LONGEST low_bound;
-// OBSOLETE   LONGEST high_bound;
-// OBSOLETE 
-// OBSOLETE   QUIT;
-// OBSOLETE 
-// OBSOLETE   wrap_here ("    ");
-// OBSOLETE   if (type == NULL)
-// OBSOLETE     {
-// OBSOLETE       fputs_filtered ("<type unknown>", stream);
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* When SHOW is zero or less, and there is a valid type name, then always
-// OBSOLETE      just print the type name directly from the type. */
-// OBSOLETE 
-// OBSOLETE   if ((show <= 0) && (TYPE_NAME (type) != NULL))
-// OBSOLETE     {
-// OBSOLETE       fputs_filtered (TYPE_NAME (type), stream);
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (TYPE_CODE (type) != TYPE_CODE_TYPEDEF)
-// OBSOLETE     CHECK_TYPEDEF (type);
-// OBSOLETE 
-// OBSOLETE   switch (TYPE_CODE (type))
-// OBSOLETE     {
-// OBSOLETE     case TYPE_CODE_TYPEDEF:
-// OBSOLETE       chill_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
-// OBSOLETE       break;
-// OBSOLETE     case TYPE_CODE_PTR:
-// OBSOLETE       if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_VOID)
-// OBSOLETE    {
-// OBSOLETE      fprintf_filtered (stream,
-// OBSOLETE                        TYPE_NAME (type) ? TYPE_NAME (type) : "PTR");
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       fprintf_filtered (stream, "REF ");
-// OBSOLETE       chill_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_BOOL:
-// OBSOLETE       /* FIXME: we should probably just print the TYPE_NAME, in case
-// OBSOLETE          anyone ever fixes the compiler to give us the real names
-// OBSOLETE          in the presence of the chill equivalent of typedef (assuming
-// OBSOLETE          there is one).  */
-// OBSOLETE       fprintf_filtered (stream,
-// OBSOLETE                    TYPE_NAME (type) ? TYPE_NAME (type) : "BOOL");
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_ARRAY:
-// OBSOLETE       fputs_filtered ("ARRAY (", stream);
-// OBSOLETE       range_type = TYPE_FIELD_TYPE (type, 0);
-// OBSOLETE       if (TYPE_CODE (range_type) != TYPE_CODE_RANGE)
-// OBSOLETE    chill_print_type (range_type, "", stream, 0, level);
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      index_type = TYPE_TARGET_TYPE (range_type);
-// OBSOLETE      low_bound = TYPE_FIELD_BITPOS (range_type, 0);
-// OBSOLETE      high_bound = TYPE_FIELD_BITPOS (range_type, 1);
-// OBSOLETE      print_type_scalar (index_type, low_bound, stream);
-// OBSOLETE      fputs_filtered (":", stream);
-// OBSOLETE      print_type_scalar (index_type, high_bound, stream);
-// OBSOLETE    }
-// OBSOLETE       fputs_filtered (") ", stream);
-// OBSOLETE       chill_print_type (TYPE_TARGET_TYPE (type), "", stream, 0, level);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_BITSTRING:
-// OBSOLETE       fprintf_filtered (stream, "BOOLS (%d)",
-// OBSOLETE                  TYPE_FIELD_BITPOS (TYPE_FIELD_TYPE (type, 0), 1) + 1);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_SET:
-// OBSOLETE       fputs_filtered ("POWERSET ", stream);
-// OBSOLETE       chill_print_type (TYPE_INDEX_TYPE (type), "", stream,
-// OBSOLETE                    show - 1, level);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_STRING:
-// OBSOLETE       range_type = TYPE_FIELD_TYPE (type, 0);
-// OBSOLETE       index_type = TYPE_TARGET_TYPE (range_type);
-// OBSOLETE       high_bound = TYPE_FIELD_BITPOS (range_type, 1);
-// OBSOLETE       fputs_filtered ("CHARS (", stream);
-// OBSOLETE       print_type_scalar (index_type, high_bound + 1, stream);
-// OBSOLETE       fputs_filtered (")", stream);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_MEMBER:
-// OBSOLETE       fprintf_filtered (stream, "MEMBER ");
-// OBSOLETE       chill_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
-// OBSOLETE       break;
-// OBSOLETE     case TYPE_CODE_REF:
-// OBSOLETE       fprintf_filtered (stream, "/*LOC*/ ");
-// OBSOLETE       chill_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
-// OBSOLETE       break;
-// OBSOLETE     case TYPE_CODE_FUNC:
-// OBSOLETE       fprintf_filtered (stream, "PROC (");
-// OBSOLETE       len = TYPE_NFIELDS (type);
-// OBSOLETE       for (i = 0; i < len; i++)
-// OBSOLETE    {
-// OBSOLETE      struct type *param_type = TYPE_FIELD_TYPE (type, i);
-// OBSOLETE      if (i > 0)
-// OBSOLETE        {
-// OBSOLETE          fputs_filtered (", ", stream);
-// OBSOLETE          wrap_here ("    ");
-// OBSOLETE        }
-// OBSOLETE      if (TYPE_CODE (param_type) == TYPE_CODE_REF)
-// OBSOLETE        {
-// OBSOLETE          chill_type_print_base (TYPE_TARGET_TYPE (param_type),
-// OBSOLETE                                 stream, 0, level);
-// OBSOLETE          fputs_filtered (" LOC", stream);
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        chill_type_print_base (param_type, stream, show, level);
-// OBSOLETE    }
-// OBSOLETE       fprintf_filtered (stream, ")");
-// OBSOLETE       if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
-// OBSOLETE    {
-// OBSOLETE      fputs_filtered (" RETURNS (", stream);
-// OBSOLETE      chill_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
-// OBSOLETE      fputs_filtered (")", stream);
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_STRUCT:
-// OBSOLETE       if (chill_varying_type (type))
-// OBSOLETE    {
-// OBSOLETE      chill_type_print_base (TYPE_FIELD_TYPE (type, 1),
-// OBSOLETE                             stream, 0, level);
-// OBSOLETE      fputs_filtered (" VARYING", stream);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      fprintf_filtered (stream, "STRUCT ");
-// OBSOLETE 
-// OBSOLETE      fprintf_filtered (stream, "(\n");
-// OBSOLETE      if ((TYPE_NFIELDS (type) == 0) && (TYPE_NFN_FIELDS (type) == 0))
-// OBSOLETE        {
-// OBSOLETE          if (TYPE_STUB (type))
-// OBSOLETE            {
-// OBSOLETE              fprintfi_filtered (level + 4, stream, "<incomplete type>\n");
-// OBSOLETE            }
-// OBSOLETE          else
-// OBSOLETE            {
-// OBSOLETE              fprintfi_filtered (level + 4, stream, "<no data fields>\n");
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          len = TYPE_NFIELDS (type);
-// OBSOLETE          for (i = TYPE_N_BASECLASSES (type); i < len; i++)
-// OBSOLETE            {
-// OBSOLETE              struct type *field_type = TYPE_FIELD_TYPE (type, i);
-// OBSOLETE              QUIT;
-// OBSOLETE              print_spaces_filtered (level + 4, stream);
-// OBSOLETE              if (TYPE_CODE (field_type) == TYPE_CODE_UNION)
-// OBSOLETE                {
-// OBSOLETE                  int j;    /* variant number */
-// OBSOLETE                  fputs_filtered ("CASE OF\n", stream);
-// OBSOLETE                  for (j = 0; j < TYPE_NFIELDS (field_type); j++)
-// OBSOLETE                    {
-// OBSOLETE                      int k;        /* variant field index */
-// OBSOLETE                      struct type *variant_type
-// OBSOLETE                      = TYPE_FIELD_TYPE (field_type, j);
-// OBSOLETE                      int var_len = TYPE_NFIELDS (variant_type);
-// OBSOLETE                      print_spaces_filtered (level + 4, stream);
-// OBSOLETE                      if (strcmp (TYPE_FIELD_NAME (field_type, j),
-// OBSOLETE                                  "else") == 0)
-// OBSOLETE                        fputs_filtered ("ELSE\n", stream);
-// OBSOLETE                      else
-// OBSOLETE                        fputs_filtered (":\n", stream);
-// OBSOLETE                      if (TYPE_CODE (variant_type) != TYPE_CODE_STRUCT)
-// OBSOLETE                        error ("variant record confusion");
-// OBSOLETE                      for (k = 0; k < var_len; k++)
-// OBSOLETE                        {
-// OBSOLETE                          print_spaces_filtered (level + 8, stream);
-// OBSOLETE                          chill_print_type (TYPE_FIELD_TYPE (variant_type, k),
-// OBSOLETE                                      TYPE_FIELD_NAME (variant_type, k),
-// OBSOLETE                                            stream, show - 1, level + 8);
-// OBSOLETE                          if (k < (var_len - 1))
-// OBSOLETE                            fputs_filtered (",", stream);
-// OBSOLETE                          fputs_filtered ("\n", stream);
-// OBSOLETE                        }
-// OBSOLETE                    }
-// OBSOLETE                  print_spaces_filtered (level + 4, stream);
-// OBSOLETE                  fputs_filtered ("ESAC", stream);
-// OBSOLETE                }
-// OBSOLETE              else
-// OBSOLETE                chill_print_type (field_type,
-// OBSOLETE                                  TYPE_FIELD_NAME (type, i),
-// OBSOLETE                                  stream, show - 1, level + 4);
-// OBSOLETE              if (i < (len - 1))
-// OBSOLETE                {
-// OBSOLETE                  fputs_filtered (",", stream);
-// OBSOLETE                }
-// OBSOLETE              fputs_filtered ("\n", stream);
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE      fprintfi_filtered (level, stream, ")");
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_RANGE:
-// OBSOLETE       {
-// OBSOLETE    struct type *target = TYPE_TARGET_TYPE (type);
-// OBSOLETE    if (target && TYPE_NAME (target))
-// OBSOLETE      fputs_filtered (TYPE_NAME (target), stream);
-// OBSOLETE    else
-// OBSOLETE      fputs_filtered ("RANGE", stream);
-// OBSOLETE    if (target == NULL)
-// OBSOLETE      target = builtin_type_long;
-// OBSOLETE    fputs_filtered (" (", stream);
-// OBSOLETE    print_type_scalar (target, TYPE_LOW_BOUND (type), stream);
-// OBSOLETE    fputs_filtered (":", stream);
-// OBSOLETE    print_type_scalar (target, TYPE_HIGH_BOUND (type), stream);
-// OBSOLETE    fputs_filtered (")", stream);
-// OBSOLETE       }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_ENUM:
-// OBSOLETE       {
-// OBSOLETE    register int lastval = 0;
-// OBSOLETE    fprintf_filtered (stream, "SET (");
-// OBSOLETE    len = TYPE_NFIELDS (type);
-// OBSOLETE    for (i = 0; i < len; i++)
-// OBSOLETE      {
-// OBSOLETE        QUIT;
-// OBSOLETE        if (i)
-// OBSOLETE          fprintf_filtered (stream, ", ");
-// OBSOLETE        wrap_here ("    ");
-// OBSOLETE        fputs_filtered (TYPE_FIELD_NAME (type, i), stream);
-// OBSOLETE        if (lastval != TYPE_FIELD_BITPOS (type, i))
-// OBSOLETE          {
-// OBSOLETE            fprintf_filtered (stream, " = %d", TYPE_FIELD_BITPOS (type, i));
-// OBSOLETE            lastval = TYPE_FIELD_BITPOS (type, i);
-// OBSOLETE          }
-// OBSOLETE        lastval++;
-// OBSOLETE      }
-// OBSOLETE    fprintf_filtered (stream, ")");
-// OBSOLETE       }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_VOID:
-// OBSOLETE     case TYPE_CODE_UNDEF:
-// OBSOLETE     case TYPE_CODE_ERROR:
-// OBSOLETE     case TYPE_CODE_UNION:
-// OBSOLETE     case TYPE_CODE_METHOD:
-// OBSOLETE       error ("missing language support in chill_type_print_base");
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     default:
-// OBSOLETE 
-// OBSOLETE       /* Handle types not explicitly handled by the other cases,
-// OBSOLETE          such as fundamental types.  For these, just print whatever
-// OBSOLETE          the type name is, as recorded in the type itself.  If there
-// OBSOLETE          is no type name, then complain. */
-// OBSOLETE 
-// OBSOLETE       if (TYPE_NAME (type) != NULL)
-// OBSOLETE    {
-// OBSOLETE      fputs_filtered (TYPE_NAME (type), stream);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      error ("Unrecognized type code (%d) in symbol table.",
-// OBSOLETE             TYPE_CODE (type));
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE }
diff --git a/gdb/ch-valprint.c b/gdb/ch-valprint.c
deleted file mode 100644 (file)
index f2a35b3..0000000
+++ /dev/null
@@ -1,605 +0,0 @@
-// OBSOLETE /* Support for printing Chill values for GDB, the GNU debugger.
-// OBSOLETE    Copyright 1986, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-// OBSOLETE    1998, 2000, 2001
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "gdb_obstack.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "gdbtypes.h"
-// OBSOLETE #include "valprint.h"
-// OBSOLETE #include "expression.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE #include "language.h"
-// OBSOLETE #include "demangle.h"
-// OBSOLETE #include "c-lang.h"                /* For c_val_print */
-// OBSOLETE #include "typeprint.h"
-// OBSOLETE #include "ch-lang.h"
-// OBSOLETE #include "annotate.h"
-// OBSOLETE 
-// OBSOLETE static void chill_print_value_fields (struct type *, char *,
-// OBSOLETE                                  struct ui_file *, int, int,
-// OBSOLETE                                  enum val_prettyprint, struct type **);
-// OBSOLETE 
-// OBSOLETE static void chill_print_type_scalar (struct type *, LONGEST,
-// OBSOLETE                                 struct ui_file *);
-// OBSOLETE 
-// OBSOLETE static void chill_val_print_array_elements (struct type *, char *,
-// OBSOLETE                                        CORE_ADDR, struct ui_file *,
-// OBSOLETE                                        int, int, int,
-// OBSOLETE                                        enum val_prettyprint);
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Print integral scalar data VAL, of type TYPE, onto stdio stream STREAM.
-// OBSOLETE    Used to print data from type structures in a specified type.  For example,
-// OBSOLETE    array bounds may be characters or booleans in some languages, and this
-// OBSOLETE    allows the ranges to be printed in their "natural" form rather than as
-// OBSOLETE    decimal integer values. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE chill_print_type_scalar (struct type *type, LONGEST val, struct ui_file *stream)
-// OBSOLETE {
-// OBSOLETE   switch (TYPE_CODE (type))
-// OBSOLETE     {
-// OBSOLETE     case TYPE_CODE_RANGE:
-// OBSOLETE       if (TYPE_TARGET_TYPE (type))
-// OBSOLETE    {
-// OBSOLETE      chill_print_type_scalar (TYPE_TARGET_TYPE (type), val, stream);
-// OBSOLETE      return;
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE     case TYPE_CODE_UNDEF:
-// OBSOLETE     case TYPE_CODE_PTR:
-// OBSOLETE     case TYPE_CODE_ARRAY:
-// OBSOLETE     case TYPE_CODE_STRUCT:
-// OBSOLETE     case TYPE_CODE_UNION:
-// OBSOLETE     case TYPE_CODE_ENUM:
-// OBSOLETE     case TYPE_CODE_FUNC:
-// OBSOLETE     case TYPE_CODE_INT:
-// OBSOLETE     case TYPE_CODE_FLT:
-// OBSOLETE     case TYPE_CODE_VOID:
-// OBSOLETE     case TYPE_CODE_SET:
-// OBSOLETE     case TYPE_CODE_STRING:
-// OBSOLETE     case TYPE_CODE_BITSTRING:
-// OBSOLETE     case TYPE_CODE_ERROR:
-// OBSOLETE     case TYPE_CODE_MEMBER:
-// OBSOLETE     case TYPE_CODE_METHOD:
-// OBSOLETE     case TYPE_CODE_REF:
-// OBSOLETE     case TYPE_CODE_CHAR:
-// OBSOLETE     case TYPE_CODE_BOOL:
-// OBSOLETE     case TYPE_CODE_COMPLEX:
-// OBSOLETE     case TYPE_CODE_TYPEDEF:
-// OBSOLETE     default:
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE   print_type_scalar (type, val, stream);
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Print the elements of an array.
-// OBSOLETE    Similar to val_print_array_elements, but prints
-// OBSOLETE    element indexes (in Chill syntax). */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE chill_val_print_array_elements (struct type *type, char *valaddr,
-// OBSOLETE                            CORE_ADDR address, struct ui_file *stream,
-// OBSOLETE                            int format, int deref_ref, int recurse,
-// OBSOLETE                            enum val_prettyprint pretty)
-// OBSOLETE {
-// OBSOLETE   unsigned int i = 0;
-// OBSOLETE   unsigned int things_printed = 0;
-// OBSOLETE   unsigned len;
-// OBSOLETE   struct type *elttype;
-// OBSOLETE   struct type *range_type = TYPE_FIELD_TYPE (type, 0);
-// OBSOLETE   struct type *index_type = TYPE_TARGET_TYPE (range_type);
-// OBSOLETE   unsigned eltlen;
-// OBSOLETE   /* Position of the array element we are examining to see
-// OBSOLETE      whether it is repeated.  */
-// OBSOLETE   unsigned int rep1;
-// OBSOLETE   /* Number of repetitions we have detected so far.  */
-// OBSOLETE   unsigned int reps;
-// OBSOLETE   LONGEST low_bound = TYPE_FIELD_BITPOS (range_type, 0);
-// OBSOLETE 
-// OBSOLETE   elttype = check_typedef (TYPE_TARGET_TYPE (type));
-// OBSOLETE   eltlen = TYPE_LENGTH (elttype);
-// OBSOLETE   len = TYPE_LENGTH (type) / eltlen;
-// OBSOLETE 
-// OBSOLETE   annotate_array_section_begin (i, elttype);
-// OBSOLETE 
-// OBSOLETE   for (; i < len && things_printed < print_max; i++)
-// OBSOLETE     {
-// OBSOLETE       if (i != 0)
-// OBSOLETE    {
-// OBSOLETE      if (prettyprint_arrays)
-// OBSOLETE        {
-// OBSOLETE          fprintf_filtered (stream, ",\n");
-// OBSOLETE          print_spaces_filtered (2 + 2 * recurse, stream);
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          fprintf_filtered (stream, ", ");
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       wrap_here (n_spaces (2 + 2 * recurse));
-// OBSOLETE 
-// OBSOLETE       rep1 = i + 1;
-// OBSOLETE       reps = 1;
-// OBSOLETE       while ((rep1 < len) &&
-// OBSOLETE         !memcmp (valaddr + i * eltlen, valaddr + rep1 * eltlen, eltlen))
-// OBSOLETE    {
-// OBSOLETE      ++reps;
-// OBSOLETE      ++rep1;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       fputs_filtered ("(", stream);
-// OBSOLETE       chill_print_type_scalar (index_type, low_bound + i, stream);
-// OBSOLETE       if (reps > 1)
-// OBSOLETE    {
-// OBSOLETE      fputs_filtered (":", stream);
-// OBSOLETE      chill_print_type_scalar (index_type, low_bound + i + reps - 1,
-// OBSOLETE                               stream);
-// OBSOLETE      fputs_filtered ("): ", stream);
-// OBSOLETE      val_print (elttype, valaddr + i * eltlen, 0, 0, stream, format,
-// OBSOLETE                 deref_ref, recurse + 1, pretty);
-// OBSOLETE 
-// OBSOLETE      i = rep1 - 1;
-// OBSOLETE      things_printed += 1;
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      fputs_filtered ("): ", stream);
-// OBSOLETE      val_print (elttype, valaddr + i * eltlen, 0, 0, stream, format,
-// OBSOLETE                 deref_ref, recurse + 1, pretty);
-// OBSOLETE      annotate_elt ();
-// OBSOLETE      things_printed++;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   annotate_array_section_end ();
-// OBSOLETE   if (i < len)
-// OBSOLETE     {
-// OBSOLETE       fprintf_filtered (stream, "...");
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Print data of type TYPE located at VALADDR (within GDB), which came from
-// OBSOLETE    the inferior at address ADDRESS, onto stdio stream STREAM according to
-// OBSOLETE    FORMAT (a letter or 0 for natural format).  The data at VALADDR is in
-// OBSOLETE    target byte order.
-// OBSOLETE 
-// OBSOLETE    If the data are a string pointer, returns the number of string characters
-// OBSOLETE    printed.
-// OBSOLETE 
-// OBSOLETE    If DEREF_REF is nonzero, then dereference references, otherwise just print
-// OBSOLETE    them like pointers.
-// OBSOLETE 
-// OBSOLETE    The PRETTY parameter controls prettyprinting.  */
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE chill_val_print (struct type *type, char *valaddr, int embedded_offset,
-// OBSOLETE             CORE_ADDR address, struct ui_file *stream, int format,
-// OBSOLETE             int deref_ref, int recurse, enum val_prettyprint pretty)
-// OBSOLETE {
-// OBSOLETE   LONGEST val;
-// OBSOLETE   unsigned int i = 0;              /* Number of characters printed.  */
-// OBSOLETE   struct type *elttype;
-// OBSOLETE   CORE_ADDR addr;
-// OBSOLETE 
-// OBSOLETE   CHECK_TYPEDEF (type);
-// OBSOLETE 
-// OBSOLETE   switch (TYPE_CODE (type))
-// OBSOLETE     {
-// OBSOLETE     case TYPE_CODE_ARRAY:
-// OBSOLETE       if (TYPE_LENGTH (type) > 0 && TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0)
-// OBSOLETE    {
-// OBSOLETE      if (prettyprint_arrays)
-// OBSOLETE        {
-// OBSOLETE          print_spaces_filtered (2 + 2 * recurse, stream);
-// OBSOLETE        }
-// OBSOLETE      fprintf_filtered (stream, "[");
-// OBSOLETE      chill_val_print_array_elements (type, valaddr, address, stream,
-// OBSOLETE                                    format, deref_ref, recurse, pretty);
-// OBSOLETE      fprintf_filtered (stream, "]");
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      error ("unimplemented in chill_val_print; unspecified array length");
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_INT:
-// OBSOLETE       format = format ? format : output_format;
-// OBSOLETE       if (format)
-// OBSOLETE    {
-// OBSOLETE      print_scalar_formatted (valaddr, type, format, 0, stream);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      val_print_type_code_int (type, valaddr, stream);
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_CHAR:
-// OBSOLETE       format = format ? format : output_format;
-// OBSOLETE       if (format)
-// OBSOLETE    {
-// OBSOLETE      print_scalar_formatted (valaddr, type, format, 0, stream);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      LA_PRINT_CHAR ((unsigned char) unpack_long (type, valaddr),
-// OBSOLETE                     stream);
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_FLT:
-// OBSOLETE       if (format)
-// OBSOLETE    {
-// OBSOLETE      print_scalar_formatted (valaddr, type, format, 0, stream);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      print_floating (valaddr, type, stream);
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_BOOL:
-// OBSOLETE       format = format ? format : output_format;
-// OBSOLETE       if (format)
-// OBSOLETE    {
-// OBSOLETE      print_scalar_formatted (valaddr, type, format, 0, stream);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      /* FIXME: Why is this using builtin_type_chill_bool not type?  */
-// OBSOLETE      val = unpack_long (builtin_type_chill_bool, valaddr);
-// OBSOLETE      fprintf_filtered (stream, val ? "TRUE" : "FALSE");
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_UNDEF:
-// OBSOLETE       /* This happens (without TYPE_FLAG_STUB set) on systems which don't use
-// OBSOLETE          dbx xrefs (NO_DBX_XREFS in gcc) if a file has a "struct foo *bar"
-// OBSOLETE          and no complete type for struct foo in that file.  */
-// OBSOLETE       fprintf_filtered (stream, "<incomplete type>");
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_PTR:
-// OBSOLETE       if (format && format != 's')
-// OBSOLETE    {
-// OBSOLETE      print_scalar_formatted (valaddr, type, format, 0, stream);
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       addr = unpack_pointer (type, valaddr);
-// OBSOLETE       elttype = check_typedef (TYPE_TARGET_TYPE (type));
-// OBSOLETE 
-// OBSOLETE       /* We assume a NULL pointer is all zeros ... */
-// OBSOLETE       if (addr == 0)
-// OBSOLETE    {
-// OBSOLETE      fputs_filtered ("NULL", stream);
-// OBSOLETE      return 0;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       if (TYPE_CODE (elttype) == TYPE_CODE_FUNC)
-// OBSOLETE    {
-// OBSOLETE      /* Try to print what function it points to.  */
-// OBSOLETE      print_address_demangle (addr, stream, demangle);
-// OBSOLETE      /* Return value is irrelevant except for string pointers.  */
-// OBSOLETE      return (0);
-// OBSOLETE    }
-// OBSOLETE       if (addressprint && format != 's')
-// OBSOLETE    {
-// OBSOLETE      print_address_numeric (addr, 1, stream);
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       /* For a pointer to char or unsigned char, also print the string
-// OBSOLETE          pointed to, unless pointer is null.  */
-// OBSOLETE       if (TYPE_LENGTH (elttype) == 1
-// OBSOLETE      && TYPE_CODE (elttype) == TYPE_CODE_CHAR
-// OBSOLETE      && (format == 0 || format == 's')
-// OBSOLETE      && addr != 0
-// OBSOLETE      &&                    /* If print_max is UINT_MAX, the alloca below will fail.
-// OBSOLETE                               In that case don't try to print the string.  */
-// OBSOLETE      print_max < UINT_MAX)
-// OBSOLETE    i = val_print_string (addr, -1, TYPE_LENGTH (elttype), stream);
-// OBSOLETE 
-// OBSOLETE       /* Return number of characters printed, plus one for the
-// OBSOLETE          terminating null if we have "reached the end".  */
-// OBSOLETE       return (i + (print_max && i != print_max));
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_STRING:
-// OBSOLETE       i = TYPE_LENGTH (type);
-// OBSOLETE       LA_PRINT_STRING (stream, valaddr, i, 1, 0);
-// OBSOLETE       /* Return number of characters printed, plus one for the terminating
-// OBSOLETE          null if we have "reached the end".  */
-// OBSOLETE       return (i + (print_max && i != print_max));
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_BITSTRING:
-// OBSOLETE     case TYPE_CODE_SET:
-// OBSOLETE       elttype = TYPE_INDEX_TYPE (type);
-// OBSOLETE       CHECK_TYPEDEF (elttype);
-// OBSOLETE       if (TYPE_STUB (elttype))
-// OBSOLETE    {
-// OBSOLETE      fprintf_filtered (stream, "<incomplete type>");
-// OBSOLETE      gdb_flush (stream);
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       {
-// OBSOLETE    struct type *range = elttype;
-// OBSOLETE    LONGEST low_bound, high_bound;
-// OBSOLETE    int i;
-// OBSOLETE    int is_bitstring = TYPE_CODE (type) == TYPE_CODE_BITSTRING;
-// OBSOLETE    int need_comma = 0;
-// OBSOLETE 
-// OBSOLETE    if (is_bitstring)
-// OBSOLETE      fputs_filtered ("B'", stream);
-// OBSOLETE    else
-// OBSOLETE      fputs_filtered ("[", stream);
-// OBSOLETE 
-// OBSOLETE    i = get_discrete_bounds (range, &low_bound, &high_bound);
-// OBSOLETE       maybe_bad_bstring:
-// OBSOLETE    if (i < 0)
-// OBSOLETE      {
-// OBSOLETE        fputs_filtered ("<error value>", stream);
-// OBSOLETE        goto done;
-// OBSOLETE      }
-// OBSOLETE 
-// OBSOLETE    for (i = low_bound; i <= high_bound; i++)
-// OBSOLETE      {
-// OBSOLETE        int element = value_bit_index (type, valaddr, i);
-// OBSOLETE        if (element < 0)
-// OBSOLETE          {
-// OBSOLETE            i = element;
-// OBSOLETE            goto maybe_bad_bstring;
-// OBSOLETE          }
-// OBSOLETE        if (is_bitstring)
-// OBSOLETE          fprintf_filtered (stream, "%d", element);
-// OBSOLETE        else if (element)
-// OBSOLETE          {
-// OBSOLETE            if (need_comma)
-// OBSOLETE              fputs_filtered (", ", stream);
-// OBSOLETE            chill_print_type_scalar (range, (LONGEST) i, stream);
-// OBSOLETE            need_comma = 1;
-// OBSOLETE 
-// OBSOLETE            /* Look for a continuous range of true elements. */
-// OBSOLETE            if (i + 1 <= high_bound && value_bit_index (type, valaddr, ++i))
-// OBSOLETE              {
-// OBSOLETE                int j = i;  /* j is the upper bound so far of the range */
-// OBSOLETE                fputs_filtered (":", stream);
-// OBSOLETE                while (i + 1 <= high_bound
-// OBSOLETE                       && value_bit_index (type, valaddr, ++i))
-// OBSOLETE                  j = i;
-// OBSOLETE                chill_print_type_scalar (range, (LONGEST) j, stream);
-// OBSOLETE              }
-// OBSOLETE          }
-// OBSOLETE      }
-// OBSOLETE       done:
-// OBSOLETE    if (is_bitstring)
-// OBSOLETE      fputs_filtered ("'", stream);
-// OBSOLETE    else
-// OBSOLETE      fputs_filtered ("]", stream);
-// OBSOLETE       }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_STRUCT:
-// OBSOLETE       if (chill_varying_type (type))
-// OBSOLETE    {
-// OBSOLETE      struct type *inner = check_typedef (TYPE_FIELD_TYPE (type, 1));
-// OBSOLETE      long length = unpack_long (TYPE_FIELD_TYPE (type, 0), valaddr);
-// OBSOLETE      char *data_addr = valaddr + TYPE_FIELD_BITPOS (type, 1) / 8;
-// OBSOLETE 
-// OBSOLETE      switch (TYPE_CODE (inner))
-// OBSOLETE        {
-// OBSOLETE        case TYPE_CODE_STRING:
-// OBSOLETE          if (length > TYPE_LENGTH (type) - 2)
-// OBSOLETE            {
-// OBSOLETE              fprintf_filtered (stream,
-// OBSOLETE                    "<dynamic length %ld > static length %d> *invalid*",
-// OBSOLETE                                length, TYPE_LENGTH (type));
-// OBSOLETE 
-// OBSOLETE              /* Don't print the string; doing so might produce a
-// OBSOLETE                 segfault.  */
-// OBSOLETE              return length;
-// OBSOLETE            }
-// OBSOLETE          LA_PRINT_STRING (stream, data_addr, length, 1, 0);
-// OBSOLETE          return length;
-// OBSOLETE        default:
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       chill_print_value_fields (type, valaddr, stream, format, recurse, pretty,
-// OBSOLETE                            0);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_REF:
-// OBSOLETE       if (addressprint)
-// OBSOLETE    {
-// OBSOLETE      fprintf_filtered (stream, "LOC(");
-// OBSOLETE      print_address_numeric
-// OBSOLETE        (extract_address (valaddr, TARGET_PTR_BIT / HOST_CHAR_BIT),
-// OBSOLETE         1,
-// OBSOLETE         stream);
-// OBSOLETE      fprintf_filtered (stream, ")");
-// OBSOLETE      if (deref_ref)
-// OBSOLETE        fputs_filtered (": ", stream);
-// OBSOLETE    }
-// OBSOLETE       /* De-reference the reference.  */
-// OBSOLETE       if (deref_ref)
-// OBSOLETE    {
-// OBSOLETE      if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_UNDEF)
-// OBSOLETE        {
-// OBSOLETE          struct value *deref_val =
-// OBSOLETE          value_at
-// OBSOLETE          (TYPE_TARGET_TYPE (type),
-// OBSOLETE           unpack_pointer (lookup_pointer_type (builtin_type_void),
-// OBSOLETE                           valaddr),
-// OBSOLETE           NULL);
-// OBSOLETE          val_print (VALUE_TYPE (deref_val),
-// OBSOLETE                     VALUE_CONTENTS (deref_val),
-// OBSOLETE                     0,
-// OBSOLETE                     VALUE_ADDRESS (deref_val), stream, format,
-// OBSOLETE                     deref_ref, recurse + 1, pretty);
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        fputs_filtered ("???", stream);
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_ENUM:
-// OBSOLETE       c_val_print (type, valaddr, 0, address, stream, format,
-// OBSOLETE               deref_ref, recurse, pretty);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_RANGE:
-// OBSOLETE       if (TYPE_TARGET_TYPE (type))
-// OBSOLETE    chill_val_print (TYPE_TARGET_TYPE (type), valaddr, 0, address, stream,
-// OBSOLETE                     format, deref_ref, recurse, pretty);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case TYPE_CODE_MEMBER:
-// OBSOLETE     case TYPE_CODE_UNION:
-// OBSOLETE     case TYPE_CODE_FUNC:
-// OBSOLETE     case TYPE_CODE_VOID:
-// OBSOLETE     case TYPE_CODE_ERROR:
-// OBSOLETE     default:
-// OBSOLETE       /* Let's defer printing to the C printer, rather than
-// OBSOLETE          print an error message.  FIXME! */
-// OBSOLETE       c_val_print (type, valaddr, 0, address, stream, format,
-// OBSOLETE               deref_ref, recurse, pretty);
-// OBSOLETE     }
-// OBSOLETE   gdb_flush (stream);
-// OBSOLETE   return (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Mutually recursive subroutines of cplus_print_value and c_val_print to
-// OBSOLETE    print out a structure's fields: cp_print_value_fields and cplus_print_value.
-// OBSOLETE 
-// OBSOLETE    TYPE, VALADDR, STREAM, RECURSE, and PRETTY have the
-// OBSOLETE    same meanings as in cplus_print_value and c_val_print.
-// OBSOLETE 
-// OBSOLETE    DONT_PRINT is an array of baseclass types that we
-// OBSOLETE    should not print, or zero if called from top level.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE chill_print_value_fields (struct type *type, char *valaddr,
-// OBSOLETE                      struct ui_file *stream, int format, int recurse,
-// OBSOLETE                      enum val_prettyprint pretty, struct type **dont_print)
-// OBSOLETE {
-// OBSOLETE   int i, len;
-// OBSOLETE   int fields_seen = 0;
-// OBSOLETE 
-// OBSOLETE   CHECK_TYPEDEF (type);
-// OBSOLETE 
-// OBSOLETE   fprintf_filtered (stream, "[");
-// OBSOLETE   len = TYPE_NFIELDS (type);
-// OBSOLETE   if (len == 0)
-// OBSOLETE     {
-// OBSOLETE       fprintf_filtered (stream, "<No data fields>");
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       for (i = 0; i < len; i++)
-// OBSOLETE    {
-// OBSOLETE      if (fields_seen)
-// OBSOLETE        {
-// OBSOLETE          fprintf_filtered (stream, ", ");
-// OBSOLETE        }
-// OBSOLETE      fields_seen = 1;
-// OBSOLETE      if (pretty)
-// OBSOLETE        {
-// OBSOLETE          fprintf_filtered (stream, "\n");
-// OBSOLETE          print_spaces_filtered (2 + 2 * recurse, stream);
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          wrap_here (n_spaces (2 + 2 * recurse));
-// OBSOLETE        }
-// OBSOLETE      fputs_filtered (".", stream);
-// OBSOLETE      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
-// OBSOLETE                               language_chill, DMGL_NO_OPTS);
-// OBSOLETE      fputs_filtered (": ", stream);
-// OBSOLETE      if (TYPE_FIELD_PACKED (type, i))
-// OBSOLETE        {
-// OBSOLETE          struct value *v;
-// OBSOLETE 
-// OBSOLETE          /* Bitfields require special handling, especially due to byte
-// OBSOLETE             order problems.  */
-// OBSOLETE          v = value_from_longest (TYPE_FIELD_TYPE (type, i),
-// OBSOLETE                               unpack_field_as_long (type, valaddr, i));
-// OBSOLETE 
-// OBSOLETE          chill_val_print (TYPE_FIELD_TYPE (type, i), VALUE_CONTENTS (v), 0, 0,
-// OBSOLETE                           stream, format, 0, recurse + 1, pretty);
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          chill_val_print (TYPE_FIELD_TYPE (type, i),
-// OBSOLETE                           valaddr + TYPE_FIELD_BITPOS (type, i) / 8, 0,
-// OBSOLETE                           0, stream, format, 0, recurse + 1, pretty);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       if (pretty)
-// OBSOLETE    {
-// OBSOLETE      fprintf_filtered (stream, "\n");
-// OBSOLETE      print_spaces_filtered (2 * recurse, stream);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   fprintf_filtered (stream, "]");
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE int
-// OBSOLETE chill_value_print (struct value *val, struct ui_file *stream, int format,
-// OBSOLETE               enum val_prettyprint pretty)
-// OBSOLETE {
-// OBSOLETE   struct type *type = VALUE_TYPE (val);
-// OBSOLETE   struct type *real_type = check_typedef (type);
-// OBSOLETE 
-// OBSOLETE   /* If it is a pointer, indicate what it points to.
-// OBSOLETE 
-// OBSOLETE      Print type also if it is a reference. */
-// OBSOLETE 
-// OBSOLETE   if (TYPE_CODE (real_type) == TYPE_CODE_PTR ||
-// OBSOLETE       TYPE_CODE (real_type) == TYPE_CODE_REF)
-// OBSOLETE     {
-// OBSOLETE       char *valaddr = VALUE_CONTENTS (val);
-// OBSOLETE       CORE_ADDR addr = unpack_pointer (type, valaddr);
-// OBSOLETE       if (TYPE_CODE (type) != TYPE_CODE_PTR || addr != 0)
-// OBSOLETE    {
-// OBSOLETE      int i;
-// OBSOLETE      char *name = TYPE_NAME (type);
-// OBSOLETE      if (name)
-// OBSOLETE        fputs_filtered (name, stream);
-// OBSOLETE      else if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_VOID)
-// OBSOLETE        fputs_filtered ("PTR", stream);
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          fprintf_filtered (stream, "(");
-// OBSOLETE          type_print (type, "", stream, -1);
-// OBSOLETE          fprintf_filtered (stream, ")");
-// OBSOLETE        }
-// OBSOLETE      fprintf_filtered (stream, "(");
-// OBSOLETE      i = val_print (type, valaddr, 0, VALUE_ADDRESS (val),
-// OBSOLETE                     stream, format, 1, 0, pretty);
-// OBSOLETE      fprintf_filtered (stream, ")");
-// OBSOLETE      return i;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   return (val_print (type, VALUE_CONTENTS (val), 0,
-// OBSOLETE                 VALUE_ADDRESS (val), stream, format, 1, 0, pretty));
-// OBSOLETE }
index fb7c2374c2899d3250dab0ba4bc0ad143d034d1f..0e74575cf2e8005aa4ded2c1b37b1e39767f0165 100644 (file)
@@ -20,6 +20,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
+#include <readline/tilde.h>
 #include "completer.h"
 #include "target.h"     /* For baud_rate, remote_debug and remote_timeout */
 #include "gdb_wait.h"          /* For shell escape implementation */
@@ -844,10 +845,10 @@ disassemble_command (char *arg, int from_tty)
   name = NULL;
   if (!arg)
     {
-      if (!selected_frame)
+      if (!deprecated_selected_frame)
        error ("No frame selected.\n");
 
-      pc = get_frame_pc (selected_frame);
+      pc = get_frame_pc (deprecated_selected_frame);
       if (find_pc_partial_function (pc, &name, &low, &high) == 0)
        error ("No function contains program counter for selected frame.\n");
 #if defined(TUI)
index a648093dd47e5047a29d9f0eeeafb452c20e1620..7a58fcbbd7ba145f731a16da16c2c3357ddc07c0 100644 (file)
@@ -31,6 +31,7 @@
 #include "gdb_assert.h"
 #include <ctype.h>
 #include "target.h"
+#include <readline/readline.h>
 
 #define XMALLOC(TYPE) ((TYPE*) xmalloc (sizeof (TYPE)))
 
index 44b0b4ec46026f5a6d848764f835ab465e1da58f..6fe2ff0816ba2c7d67f8626a7343b67cf88a6669 100644 (file)
@@ -18,6 +18,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
+#include <readline/tilde.h>
 #include "value.h"
 #include <ctype.h>
 #include "gdb_string.h"
index a6f615a691601e9116ade8e37c8a4efb7e9b6976..cfd5a9f61e77c0e1c20fc9be547d8d0b5bb556ee 100644 (file)
@@ -124,41 +124,6 @@ static int pe_file;
 
 static struct symbol *opaque_type_chain[HASHSIZE];
 
-/* Complaints about various problems in the file being read  */
-
-struct deprecated_complaint ef_complaint =
-{"Unmatched .ef symbol(s) ignored starting at symnum %d", 0, 0};
-
-struct deprecated_complaint ef_stack_complaint =
-{"`.ef' symbol without matching `.bf' symbol ignored starting at symnum %d", 0, 0};
-
-struct deprecated_complaint eb_stack_complaint =
-{"`.eb' symbol without matching `.bb' symbol ignored starting at symnum %d", 0, 0};
-
-struct deprecated_complaint bf_no_aux_complaint =
-{"`.bf' symbol %d has no aux entry", 0, 0};
-
-struct deprecated_complaint ef_no_aux_complaint =
-{"`.ef' symbol %d has no aux entry", 0, 0};
-
-struct deprecated_complaint lineno_complaint =
-{"Line number pointer %d lower than start of line numbers", 0, 0};
-
-struct deprecated_complaint unexpected_type_complaint =
-{"Unexpected type for symbol %s", 0, 0};
-
-struct deprecated_complaint bad_sclass_complaint =
-{"Bad n_sclass for symbol %s", 0, 0};
-
-struct deprecated_complaint misordered_blocks_complaint =
-{"Blocks out of order at address %x", 0, 0};
-
-struct deprecated_complaint tagndx_bad_complaint =
-{"Symbol table entry for %s has bad tagndx value", 0, 0};
-
-struct deprecated_complaint eb_complaint =
-{"Mismatched .eb symbol ignored starting at symnum %d", 0, 0};
-
 /* Simplified internal version of coff symbol table information */
 
 struct coff_symbol
@@ -814,7 +779,8 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
        case C_LINE:
        case C_ALIAS:
        case C_HIDDEN:
-         complain (&bad_sclass_complaint, cs->c_name);
+         complaint (&symfile_complaints, "Bad n_sclass for symbol %s",
+                    cs->c_name);
          break;
 
        case C_FILE:
@@ -980,7 +946,8 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
              /* main_aux.x_sym.x_misc.x_lnsz.x_lnno
                 contains line number of '{' } */
              if (cs->c_naux != 1)
-               complain (&bf_no_aux_complaint, cs->c_symnum);
+               complaint (&symfile_complaints,
+                          "`.bf' symbol %d has no aux entry", cs->c_symnum);
              fcn_first_line = main_aux.x_sym.x_misc.x_lnsz.x_lnno;
              fcn_first_line_addr = cs->c_value;
 
@@ -1004,7 +971,9 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
 
              if (context_stack_depth <= 0)
                {               /* We attempted to pop an empty context stack */
-                 complain (&ef_stack_complaint, cs->c_symnum);
+                 complaint (&symfile_complaints,
+                            "`.ef' symbol without matching `.bf' symbol ignored starting at symnum %d",
+                            cs->c_symnum);
                  within_function = 0;
                  break;
                }
@@ -1013,13 +982,16 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
              /* Stack must be empty now.  */
              if (context_stack_depth > 0 || new == NULL)
                {
-                 complain (&ef_complaint, cs->c_symnum);
+                 complaint (&symfile_complaints,
+                            "Unmatched .ef symbol(s) ignored starting at symnum %d",
+                            cs->c_symnum);
                  within_function = 0;
                  break;
                }
              if (cs->c_naux != 1)
                {
-                 complain (&ef_no_aux_complaint, cs->c_symnum);
+                 complaint (&symfile_complaints,
+                            "`.ef' symbol %d has no aux entry", cs->c_symnum);
                  fcn_last_line = 0x7FFFFFFF;
                }
              else
@@ -1074,14 +1046,18 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
            {
              if (context_stack_depth <= 0)
                {               /* We attempted to pop an empty context stack */
-                 complain (&eb_stack_complaint, cs->c_symnum);
+                 complaint (&symfile_complaints,
+                            "`.eb' symbol without matching `.bb' symbol ignored starting at symnum %d",
+                            cs->c_symnum);
                  break;
                }
 
              new = pop_context ();
              if (depth-- != new->depth)
                {
-                 complain (&eb_complaint, symnum);
+                 complaint (&symfile_complaints,
+                            "Mismatched .eb symbol ignored starting at symnum %d",
+                            symnum);
                  break;
                }
              if (local_symbols && context_stack_depth > 0)
@@ -1360,7 +1336,9 @@ enter_linenos (long file_offset, register int first_line,
     return;
   if (file_offset < linetab_offset)
     {
-      complain (&lineno_complaint, file_offset);
+      complaint (&symfile_complaints,
+                "Line number pointer %ld lower than start of line numbers",
+                file_offset);
       if (file_offset > linetab_size)  /* Too big to be an offset? */
        return;
       file_offset += linetab_offset;   /* Try reading at that linetab offset */
@@ -1765,7 +1743,9 @@ decode_type (register struct coff_symbol *cs, unsigned int c_type,
        }
       else
        {
-         complain (&tagndx_bad_complaint, cs->c_name);
+         complaint (&symfile_complaints,
+                    "Symbol table entry for %s has bad tagndx value",
+                    cs->c_name);
          /* And fall through to decode_base_type... */
        }
     }
@@ -1931,7 +1911,7 @@ decode_base_type (register struct coff_symbol *cs, unsigned int c_type,
       else
        return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG);
     }
-  complain (&unexpected_type_complaint, cs->c_name);
+  complaint (&symfile_complaints, "Unexpected type for symbol %s", cs->c_name);
   return lookup_fundamental_type (current_objfile, FT_VOID);
 }
 \f
index 159dcd13bcee8dac21268c890cf103c97d6aced0..a94de27c8efb72cd73a40101f844824c6aafdbae 100644 (file)
@@ -53,12 +53,24 @@ extern void clear_complaints (struct complaints **complaints,
 /* Deprecated interfaces to keep the old code working (until it is all
    converted to the above).  Existing code such as:
 
-     struct deprecated_complaint msg = { "msg", 0, 0 };
-     complaint (&msg);
+     struct deprecated_complaint msg = { "msg 0x%08x[sic]", 0, 0 };
+     deprecated_complain (&msg, addr);
 
-   should be replaced by:
+   should be replaced by either the new call (for the singular case):
 
-     complaint (&symtab_complaints, __FILE__, __LINE__, "msg");
+     complaint (&symtab_complaints, "msg 0x%s", paddr (addr));
+
+   or with a wrapper function (for the many-of case):
+
+     msg_complaint (CORE_ADDR addr)
+     { complaint (&symtab_complaints, "msg 0x%s", paddr (addr)); }
+     ...
+     msg_complaint (addr);
+
+   Yes, the typo is intentional.  The motivation behind this interface
+   change is to eliminate all possibility of this problem re-occurring
+   (it has occurred in the past and no one is sure that it isn't
+   present now).
 
    Support for complaining about things in the symbol file that aren't
    catastrophic.
index 67ea300f14bb50d2d72900c7ae45e69f0149defc..4274241b00e0f6757a93982693968ee0c6663e31 100644 (file)
@@ -31,7 +31,7 @@
 #include "gdbcmd.h"
 
 /* Needed for rl_completer_word_break_characters() and for
-   filename_completion_function.  */
+   rl_filename_completion_function.  */
 #include <readline/readline.h>
 
 /* readline defines this.  */
@@ -40,7 +40,8 @@
 #include "completer.h"
 
 /* Prototypes for local functions */
-char *line_completion_function (char *text, int matches, char *line_buffer,
+static
+char *line_completion_function (const char *text, int matches, char *line_buffer,
                                int point);
 
 /* readline uses the word breaks for two things:
@@ -104,7 +105,7 @@ get_gdb_completer_quote_characters (void)
 /* Line completion interface function for readline.  */
 
 char *
-readline_line_completion_function (char *text, int matches)
+readline_line_completion_function (const char *text, int matches)
 {
   return line_completion_function (text, matches, rl_line_buffer, rl_point);
 }
@@ -135,7 +136,7 @@ filename_completer (char *text, char *word)
   while (1)
     {
       char *p;
-      p = filename_completion_function (text, subsequent_name);
+      p = rl_filename_completion_function (text, subsequent_name);
       if (return_val_used >= return_val_alloced)
        {
          return_val_alloced *= 2;
@@ -382,7 +383,7 @@ command_completer (char *text, char *word)
    should pretend that the line ends at POINT.  */
 
 char **
-complete_line (char *text, char *line_buffer, int point)
+complete_line (const char *text, char *line_buffer, int point)
 {
   char **list = NULL;
   char *tmp_command, *p;
@@ -628,8 +629,8 @@ complete_line (char *text, char *line_buffer, int point)
    which is a possible completion, it is the caller's responsibility to
    free the string.  */
 
-char *
-line_completion_function (char *text, int matches, char *line_buffer, int point)
+static char *
+line_completion_function (const char *text, int matches, char *line_buffer, int point)
 {
   static char **list = (char **) NULL; /* Cache of completions */
   static int index;            /* Next cached completion */
@@ -678,16 +679,25 @@ line_completion_function (char *text, int matches, char *line_buffer, int point)
 
   return (output);
 }
-/* Skip over a possibly quoted word (as defined by the quote characters
-   and word break characters the completer uses).  Returns pointer to the
-   location after the "word". */
+
+/* Skip over the possibly quoted word STR (as defined by the quote
+   characters QUOTECHARS and the the word break characters
+   BREAKCHARS).  Returns pointer to the location after the "word".  If
+   either QUOTECHARS or BREAKCHARS is NULL, use the same values used
+   by the completer.  */
 
 char *
-skip_quoted (char *str)
+skip_quoted_chars (char *str, char *quotechars, char *breakchars)
 {
   char quote_char = '\0';
   char *scan;
 
+  if (quotechars == NULL)
+    quotechars = gdb_completer_quote_characters;
+
+  if (breakchars == NULL)
+    breakchars = gdb_completer_word_break_characters;
+
   for (scan = str; *scan != '\0'; scan++)
     {
       if (quote_char != '\0')
@@ -700,16 +710,26 @@ skip_quoted (char *str)
              break;
            }
        }
-      else if (strchr (gdb_completer_quote_characters, *scan))
+      else if (strchr (quotechars, *scan))
        {
          /* Found start of a quoted string. */
          quote_char = *scan;
        }
-      else if (strchr (gdb_completer_word_break_characters, *scan))
+      else if (strchr (breakchars, *scan))
        {
          break;
        }
     }
+
   return (scan);
 }
 
+/* Skip over the possibly quoted word STR (as defined by the quote
+   characters and word break characters used by the completer).
+   Returns pointer to the location after the "word". */
+
+char *
+skip_quoted (char *str)
+{
+  return skip_quoted_chars (str, NULL, NULL);
+}
index 98b9ed8374538bca466d91893388f71be8588089..7a96951aae3ead727c8b34df53e7e94f3c5bdada 100644 (file)
 #if !defined (COMPLETER_H)
 #define COMPLETER_H 1
 
-extern char **complete_line (char *text, char *line_buffer, int point);
+extern char **complete_line (const char *text, char *line_buffer, int point);
 
-extern char *line_completion_function (char *, int, char *, int);
-
-extern char *readline_line_completion_function (char *text, int matches);
+extern char *readline_line_completion_function (const char *text, int matches);
 
 extern char **noop_completer (char *, char *);
 
@@ -39,6 +37,8 @@ extern char *get_gdb_completer_quote_characters (void);
 
 /* Exported to linespec.c */
 
-extern char *skip_quoted (char *str);
+extern char *skip_quoted_chars (char *, char *, char *);
+
+extern char *skip_quoted (char *);
 
 #endif /* defined (COMPLETER_H) */
index fa1ab9aef70c6c6817e0df352bb67c24beb13623..921b1682042746071e993de8e792fcb0b1b52832 100644 (file)
@@ -80,6 +80,9 @@
 /* Define if your struct reg has r_gs.  */
 #undef HAVE_STRUCT_REG_R_GS
 
+/* Define if the pread64 function is available.  */
+#undef HAVE_PREAD64
+
 /* Define if <link.h> exists and defines struct link_map which has
    members with an ``l_'' prefix.  (For Solaris, SVR4, and
    SVR4-like systems.) */
 /* Define if <thread_db.h> has the TD_NOTALLOC error code. */
 #undef THREAD_DB_HAS_TD_NOTALLOC
 
+/* Define to be a string naming the default host character set. */
+#undef GDB_DEFAULT_HOST_CHARSET
+
+/* Define if you have the iconv() function. */
+#undef HAVE_ICONV
+
+/* Define as const if the declaration of iconv() needs const. */
+#undef ICONV_CONST
+
index 39f353201882a8b4776899cffc503938552651ba..7691d0729eb4c198f4452551eaf95224c90b3b80 100644 (file)
@@ -8,3 +8,7 @@ LOADLIBES = -ldl -rdynamic
 
 MMALLOC = 
 MMALLOC_CFLAGS = -DNO_MMALLOC 
+
+# doublest.c currently assumes some properties of FP arithmetic
+# on the host which require this.
+MH_CFLAGS = -mieee
diff --git a/gdb/config/arc/arc.mt b/gdb/config/arc/arc.mt
deleted file mode 100644 (file)
index 3ed7410..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# OBSOLETE # Target: ARC processor
-# OBSOLETE TDEPFILES = arc-tdep.o
-# OBSOLETE TM_FILE = tm-arc.h
diff --git a/gdb/config/arc/tm-arc.h b/gdb/config/arc/tm-arc.h
deleted file mode 100644 (file)
index 1c7c74f..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-// OBSOLETE /* Parameters for target machine ARC, for GDB, the GNU debugger.
-// OBSOLETE    Copyright 1995, 1996, 1998, 1999, 2000 Free Software Foundation, Inc.
-// OBSOLETE    Contributed by Cygnus Support.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE /* Used by arc-tdep.c to set the default cpu type.  */
-// OBSOLETE #define DEFAULT_ARC_CPU_TYPE "base"
-// OBSOLETE 
-// OBSOLETE /* Offset from address of function to start of its code.
-// OBSOLETE    Zero on most machines.  */
-// OBSOLETE #define FUNCTION_START_OFFSET 0
-// OBSOLETE 
-// OBSOLETE /* Advance PC across any function entry prologue instructions
-// OBSOLETE    to reach some "real" code.  */
-// OBSOLETE 
-// OBSOLETE #define SKIP_PROLOGUE(pc) (arc_skip_prologue (pc, 0))
-// OBSOLETE extern CORE_ADDR arc_skip_prologue (CORE_ADDR, int);
-// OBSOLETE 
-// OBSOLETE #define PROLOGUE_FRAMELESS_P(pc) arc_prologue_frameless_p(pc)
-// OBSOLETE extern int arc_prologue_frameless_p (CORE_ADDR);
-// OBSOLETE 
-// OBSOLETE /* Sequence of bytes for breakpoint instruction.
-// OBSOLETE    ??? The current value is "sr -1,[-1]" and is for the simulator only.
-// OBSOLETE    The simulator watches for this and does the right thing.
-// OBSOLETE    The hardware version will have to associate with each breakpoint
-// OBSOLETE    the sequence "flag 1; nop; nop; nop".  IE: The breakpoint insn will not
-// OBSOLETE    be a fixed set of bits but instead will be a branch to a semi-random
-// OBSOLETE    address.  Presumably this will be cleaned up for "second silicon".  */
-// OBSOLETE #define BIG_BREAKPOINT { 0x12, 0x1f, 0xff, 0xff }
-// OBSOLETE #define LITTLE_BREAKPOINT { 0xff, 0xff, 0x1f, 0x12 }
-// OBSOLETE 
-// OBSOLETE /* Given the exposed pipeline, there isn't any one correct value.
-// OBSOLETE    However, this value must be 4.  GDB can't handle any other value (other than
-// OBSOLETE    zero).  See for example infrun.c:
-// OBSOLETE    "prev_pc != stop_pc - DECR_PC_AFTER_BREAK"  */
-// OBSOLETE /* FIXME */
-// OBSOLETE #define DECR_PC_AFTER_BREAK 8
-// OBSOLETE 
-// OBSOLETE /* We don't have a reliable single step facility.
-// OBSOLETE    ??? We do have a cycle single step facility, but that won't work.  */
-// OBSOLETE #define SOFTWARE_SINGLE_STEP_P() 1
-// OBSOLETE extern void arc_software_single_step (enum target_signal, int);
-// OBSOLETE #define SOFTWARE_SINGLE_STEP(sig,bp_p) arc_software_single_step (sig, bp_p)
-// OBSOLETE 
-// OBSOLETE /* FIXME: Need to set STEP_SKIPS_DELAY.  */
-// OBSOLETE 
-// OBSOLETE /* Given a pc value as defined by the hardware, return the real address.
-// OBSOLETE    Remember that on the ARC blink contains that status register which
-// OBSOLETE    includes PC + flags (so we have to mask out the flags).  */
-// OBSOLETE #define ARC_PC_TO_REAL_ADDRESS(pc) (((pc) & 0xffffff) << 2)
-// OBSOLETE 
-// OBSOLETE /* Immediately after a function call, return the saved pc.
-// OBSOLETE    Can't always go through the frames for this because on some machines
-// OBSOLETE    the new frame is not set up until the new function
-// OBSOLETE    executes some instructions.  */
-// OBSOLETE 
-// OBSOLETE #define SAVED_PC_AFTER_CALL(frame) \
-// OBSOLETE   (ARC_PC_TO_REAL_ADDRESS (read_register (BLINK_REGNUM)))
-// OBSOLETE 
-// OBSOLETE /* Stack grows upward */
-// OBSOLETE 
-// OBSOLETE #define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
-// OBSOLETE 
-// OBSOLETE /* Say how long (ordinary) registers are.  This is a piece of bogosity
-// OBSOLETE    used in push_word and a few other places; REGISTER_RAW_SIZE is the
-// OBSOLETE    real way to know how big a register is.  */
-// OBSOLETE #define REGISTER_SIZE 4
-// OBSOLETE 
-// OBSOLETE /* Number of machine registers */
-// OBSOLETE #define NUM_REGS 92
-// OBSOLETE 
-// OBSOLETE /* Initializer for an array of names of registers.
-// OBSOLETE    There should be NUM_REGS strings in this initializer.  */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_NAMES \
-// OBSOLETE { \
-// OBSOLETE     /*  0 */ "r0",  "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7", \
-// OBSOLETE     /*  8 */ "r8",  "r9",  "r10", "r11", "r12", "r13", "r14", "r15", \
-// OBSOLETE     /* 16 */ "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", \
-// OBSOLETE     /* 24 */ "r24", "r25", "r26", "fp", "sp", "ilink1", "ilink2", "blink", \
-// OBSOLETE     /* 32 */ "r32", "r33", "r34", "r35", "r36", "r37", "r38", "r39", \
-// OBSOLETE     /* 40 */ "r40", "r41", "r42", "r43", "r44", "r45", "r46", "r47", \
-// OBSOLETE     /* 48 */ "r48", "r49", "r50", "r51", "r52", "r53", "r54", "r55", \
-// OBSOLETE     /* 56 */ "r56", "mlo", "mmid", "mhi", "lp_count", \
-// OBSOLETE     /* 61 */ "status", "sema", "lp_start", "lp_end", "identity", "debug", \
-// OBSOLETE     /* 67 */ "aux10", "aux11", "aux12", "aux13", "aux14", \
-// OBSOLETE     /* 72 */ "aux15", "aux16", "aux17", "aux18", "aux19", \
-// OBSOLETE     /* 77 */ "aux1a", "aux1b", "aux1c", "aux1d", "aux1e", \
-// OBSOLETE     /* 82 */ "aux1f", "aux20", "aux21", "aux22", \
-// OBSOLETE     /* 86 */ "aux30", "aux31", "aux32", "aux33", "aux40", \
-// OBSOLETE     /* 91 */ "pc" \
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Register numbers of various important registers (used to index
-// OBSOLETE    into arrays of register names and register values).  */
-// OBSOLETE 
-// OBSOLETE #define R0_REGNUM   0              /* First local register           */
-// OBSOLETE #define R59_REGNUM 59              /* Last local register            */
-// OBSOLETE #define FP_REGNUM  27              /* Contains address of executing stack frame */
-// OBSOLETE #define SP_REGNUM  28              /* stack pointer */
-// OBSOLETE #define BLINK_REGNUM 31            /* link register */
-// OBSOLETE #define    STA_REGNUM 61           /* processor status word */
-// OBSOLETE #define PC_REGNUM  91              /* instruction pointer */
-// OBSOLETE #define AUX_BEG_REGNUM  61 /* aux reg begins */
-// OBSOLETE #define AUX_END_REGNUM  90 /* aux reg ends, pc not real aux reg */
-// OBSOLETE 
-// OBSOLETE /* Fake registers used to mark immediate data.  */
-// OBSOLETE #define SHIMM_FLAG_REGNUM 61
-// OBSOLETE #define LIMM_REGNUM 62
-// OBSOLETE #define SHIMM_REGNUM 63
-// OBSOLETE 
-// OBSOLETE #define AUX_REG_MAP \
-// OBSOLETE { \
-// OBSOLETE    {  0,  1,  2,  3,  4,  5, \
-// OBSOLETE      16, -1, -1, -1, -1, \
-// OBSOLETE      -1, -1, -1, -1, -1, \
-// OBSOLETE      -1, -1, -1, -1, 30, \
-// OBSOLETE      -1, 32, 33, -1, \
-// OBSOLETE       48, 49, 50, 51, 64, \
-// OBSOLETE       0 \
-// OBSOLETE     }, \
-// OBSOLETE    {  0,  1,  2,  3,  4,  5, \
-// OBSOLETE      16, -1, -1, -1, -1, \
-// OBSOLETE      -1, -1, -1, -1, -1, \
-// OBSOLETE      -1, -1, -1, -1, 30, \
-// OBSOLETE      31, 32, 33, -1, \
-// OBSOLETE      -1, -1, -1, -1, -1, \
-// OBSOLETE       0 \
-// OBSOLETE     }, \
-// OBSOLETE    {  0,  1,  2,  3,  4,  5, \
-// OBSOLETE       16, 17, 18, 19, 20, \
-// OBSOLETE       21, 22, 23, 24, 25, \
-// OBSOLETE       26, 27, 28, 29, 30, \
-// OBSOLETE       31, 32, 33, 34, \
-// OBSOLETE      -1, -1, -1, -1, -1, \
-// OBSOLETE       0 \
-// OBSOLETE     } \
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #define PFP_REGNUM R0_REGNUM       /* Previous frame pointer */
-// OBSOLETE 
-// OBSOLETE /* Total amount of space needed to store our copies of the machine's
-// OBSOLETE    register state, the array `registers'.  */
-// OBSOLETE #define REGISTER_BYTES (NUM_REGS * 4)
-// OBSOLETE 
-// OBSOLETE /* Index within `registers' of the first byte of the space for register N.  */
-// OBSOLETE #define REGISTER_BYTE(N) (4*(N))
-// OBSOLETE 
-// OBSOLETE /* Number of bytes of storage in the actual machine representation
-// OBSOLETE    for register N. */
-// OBSOLETE #define REGISTER_RAW_SIZE(N) 4
-// OBSOLETE 
-// OBSOLETE /* Number of bytes of storage in the program's representation for register N. */
-// OBSOLETE #define REGISTER_VIRTUAL_SIZE(N) 4
-// OBSOLETE 
-// OBSOLETE /* Largest value REGISTER_RAW_SIZE can have.  */
-// OBSOLETE #define MAX_REGISTER_RAW_SIZE 4
-// OBSOLETE 
-// OBSOLETE /* Largest value REGISTER_VIRTUAL_SIZE can have.  */
-// OBSOLETE #define MAX_REGISTER_VIRTUAL_SIZE 4
-// OBSOLETE 
-// OBSOLETE /* Return the GDB type object for the "standard" data type
-// OBSOLETE    of data in register N.  */
-// OBSOLETE #define REGISTER_VIRTUAL_TYPE(N) (builtin_type_int)
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Macros for understanding function return values... */
-// OBSOLETE 
-// OBSOLETE /* Does the specified function use the "struct returning" convention
-// OBSOLETE    or the "value returning" convention?  The "value returning" convention
-// OBSOLETE    almost invariably returns the entire value in registers.  The
-// OBSOLETE    "struct returning" convention often returns the entire value in
-// OBSOLETE    memory, and passes a pointer (out of or into the function) saying
-// OBSOLETE    where the value (is or should go).
-// OBSOLETE 
-// OBSOLETE    Since this sometimes depends on whether it was compiled with GCC,
-// OBSOLETE    this is also an argument.  This is used in call_function to build a
-// OBSOLETE    stack, and in value_being_returned to print return values.
-// OBSOLETE 
-// OBSOLETE    On arc, a structure is always retunred with pointer in r0. */
-// OBSOLETE 
-// OBSOLETE #define USE_STRUCT_CONVENTION(gcc_p, type) 1
-// OBSOLETE 
-// OBSOLETE /* Extract from an array REGBUF containing the (raw) register state
-// OBSOLETE    a function return value of type TYPE, and copy that, in virtual format,
-// OBSOLETE    into VALBUF.  This is only called if USE_STRUCT_CONVENTION for this
-// OBSOLETE    type is 0.
-// OBSOLETE  */
-// OBSOLETE #define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
-// OBSOLETE    memcpy(VALBUF, REGBUF+REGISTER_BYTE(R0_REGNUM), TYPE_LENGTH (TYPE))
-// OBSOLETE 
-// OBSOLETE /* If USE_STRUCT_CONVENTION produces a 1, 
-// OBSOLETE    extract from an array REGBUF containing the (raw) register state
-// OBSOLETE    the address in which a function should return its structure value,
-// OBSOLETE    as a CORE_ADDR (or an expression that can be used as one). */
-// OBSOLETE #define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
-// OBSOLETE    (error("Don't know where large structure is returned on arc"), 0)
-// OBSOLETE 
-// OBSOLETE /* Write into appropriate registers a function return value
-// OBSOLETE    of type TYPE, given in virtual format, for "value returning" functions.
-// OBSOLETE    For 'return' command:  not (yet) implemented for arc.  */
-// OBSOLETE #define STORE_RETURN_VALUE(TYPE,VALBUF) \
-// OBSOLETE     error ("Returning values from functions is not implemented in arc gdb")
-// OBSOLETE 
-// OBSOLETE /* Store the address of the place in which to copy the structure the
-// OBSOLETE    subroutine will return.  This is called from call_function. */
-// OBSOLETE #define STORE_STRUCT_RETURN(ADDR, SP) \
-// OBSOLETE     error ("Returning values from functions is not implemented in arc gdb")
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Describe the pointer in each stack frame to the previous stack frame
-// OBSOLETE    (its caller).  */
-// OBSOLETE 
-// OBSOLETE /* We cache information about saved registers in the frame structure,
-// OBSOLETE    to save us from having to re-scan function prologues every time
-// OBSOLETE    a register in a non-current frame is accessed.  */
-// OBSOLETE 
-// OBSOLETE #define EXTRA_FRAME_INFO \
-// OBSOLETE    struct frame_saved_regs *fsr; \
-// OBSOLETE    CORE_ADDR arg_pointer;
-// OBSOLETE 
-// OBSOLETE /* Zero the frame_saved_regs pointer when the frame is initialized,
-// OBSOLETE    so that FRAME_FIND_SAVED_REGS () will know to allocate and
-// OBSOLETE    initialize a frame_saved_regs struct the first time it is called.
-// OBSOLETE    Set the arg_pointer to -1, which is not valid; 0 and other values
-// OBSOLETE    indicate real, cached values.  */
-// OBSOLETE 
-// OBSOLETE #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) \
-// OBSOLETE    ((fi)->fsr = 0, (fi)->arg_pointer = -1)
-// OBSOLETE 
-// OBSOLETE /* FRAME_CHAIN takes a frame's nominal address
-// OBSOLETE    and produces the frame's chain-pointer.
-// OBSOLETE    However, if FRAME_CHAIN_VALID returns zero,
-// OBSOLETE    it means the given frame is the outermost one and has no caller.  */
-// OBSOLETE /* On the arc, we get the chain pointer by reading the PFP saved
-// OBSOLETE    on the stack. */
-// OBSOLETE /* The PFP and RPC is in fp and fp+4.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_CHAIN(thisframe) \
-// OBSOLETE   (read_memory_integer (FRAME_FP (thisframe), 4))
-// OBSOLETE 
-// OBSOLETE /* FRAME_CHAIN_VALID returns zero if the given frame is the outermost one
-// OBSOLETE    and has no caller.  */
-// OBSOLETE #define FRAME_CHAIN_VALID(chain, thisframe) nonnull_frame_chain_valid (chain, thisframe)
-// OBSOLETE 
-// OBSOLETE /* An expression that tells us whether the function invocation represented
-// OBSOLETE    by FI does not have a frame on the stack associated with it. */
-// OBSOLETE 
-// OBSOLETE #define FRAMELESS_FUNCTION_INVOCATION(FI) \
-// OBSOLETE      (((FI)->signal_handler_caller) ? 0 : frameless_look_for_prologue (FI))
-// OBSOLETE 
-// OBSOLETE /* Where is the PC for a specific frame.
-// OBSOLETE    A leaf function may never save blink, so we have to check for that here.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_SAVED_PC(frame) (arc_frame_saved_pc (frame))
-// OBSOLETE struct frame_info;         /* in case frame.h not included yet */
-// OBSOLETE CORE_ADDR arc_frame_saved_pc (struct frame_info *);
-// OBSOLETE 
-// OBSOLETE /* If the argument is on the stack, it will be here.
-// OBSOLETE    We cache this value in the frame info if we've already looked it up.  */
-// OBSOLETE /* ??? Is the arg_pointer check necessary?  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_ARGS_ADDRESS(fi) \
-// OBSOLETE   (((fi)->arg_pointer != -1) ? (fi)->arg_pointer : (fi)->frame)
-// OBSOLETE 
-// OBSOLETE /* This is the same except it should return 0 when
-// OBSOLETE    it does not really know where the args are, rather than guessing.
-// OBSOLETE    This value is not cached since it is only used infrequently.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_LOCALS_ADDRESS(fi)   ((fi)->frame)
-// OBSOLETE 
-// OBSOLETE /* Set NUMARGS to the number of args passed to a frame.
-// OBSOLETE    Can return -1, meaning no way to tell.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_NUM_ARGS(fi) (-1)
-// OBSOLETE 
-// OBSOLETE /* Return number of bytes at start of arglist that are not really args.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_ARGS_SKIP 0
-// OBSOLETE 
-// OBSOLETE /* Produce the positions of the saved registers in a stack frame.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_FIND_SAVED_REGS(frame_info_addr, sr) \
-// OBSOLETE    frame_find_saved_regs (frame_info_addr, &sr)
-// OBSOLETE extern void frame_find_saved_regs ();      /* See arc-tdep.c */
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Things needed for making calls to functions in the inferior process */
-// OBSOLETE void arc_push_dummy_frame (void);
-// OBSOLETE #define PUSH_DUMMY_FRAME \
-// OBSOLETE    arc_push_dummy_frame ()
-// OBSOLETE 
-// OBSOLETE /* Discard from the stack the innermost frame, restoring all registers.  */
-// OBSOLETE void arc_pop_frame (void);
-// OBSOLETE #define POP_FRAME \
-// OBSOLETE    arc_pop_frame ()
-// OBSOLETE 
-// OBSOLETE /* This sequence of words is the instructions  bl xxxx, flag 1 */
-// OBSOLETE #define CALL_DUMMY { 0x28000000, 0x1fbe8001 }
-// OBSOLETE #define CALL_DUMMY_LENGTH 8
-// OBSOLETE 
-// OBSOLETE /* Start execution at beginning of dummy */
-// OBSOLETE #define CALL_DUMMY_START_OFFSET 0
-// OBSOLETE 
-// OBSOLETE /* Insert the specified number of args and function address
-// OBSOLETE    into a call sequence of the above form stored at 'dummyname'. */
-// OBSOLETE #define FIX_CALL_DUMMY(dummyname, pc, fun, nargs, args, type, gcc_p) \
-// OBSOLETE { \
-// OBSOLETE         int from, to, delta, loc; \
-// OBSOLETE         loc = (int)(read_register (SP_REGNUM) - CALL_DUMMY_LENGTH); \
-// OBSOLETE         from = loc + 4; \
-// OBSOLETE         to = (int)(fun); \
-// OBSOLETE         delta = (to - from) >> 2; \
-// OBSOLETE         *((char *)(dummyname) + 1) = (delta & 0x1); \
-// OBSOLETE         *((char *)(dummyname) + 2) = ((delta >> 1) & 0xff); \
-// OBSOLETE         *((char *)(dummyname) + 3) = ((delta >> 9) & 0xff); \
-// OBSOLETE         *((char *)(dummyname) + 4) = ((delta >> 17) & 0x7); \
-// OBSOLETE }
diff --git a/gdb/config/d30v/d30v.mt b/gdb/config/d30v/d30v.mt
deleted file mode 100644 (file)
index 49bd83b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# OBSOLETE # Target: Mitsubishi D30V processor
-# OBSOLETE TDEPFILES= d30v-tdep.o
-# OBSOLETE TM_FILE= tm-d30v.h
-# OBSOLETE SIM_OBS= remote-sim.o
-# OBSOLETE SIM= ../sim/d30v/libsim.a
diff --git a/gdb/config/d30v/tm-d30v.h b/gdb/config/d30v/tm-d30v.h
deleted file mode 100644 (file)
index 3e1ea3f..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/* OBSOLETE /* Target-specific definition for the Mitsubishi D30V */
-/* OBSOLETE    Copyright 1997, 1998, 1999, 2000 Free Software Foundation, Inc. */
-/* OBSOLETE  */
-/* OBSOLETE    This file is part of GDB. */
-/* OBSOLETE  */
-/* OBSOLETE    This program is free software; you can redistribute it and/or modify */
-/* OBSOLETE    it under the terms of the GNU General Public License as published by */
-/* OBSOLETE    the Free Software Foundation; either version 2 of the License, or */
-/* OBSOLETE    (at your option) any later version. */
-/* OBSOLETE  */
-/* OBSOLETE    This program is distributed in the hope that it will be useful, */
-/* OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of */
-/* OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the */
-/* OBSOLETE    GNU General Public License for more details. */
-/* OBSOLETE  */
-/* OBSOLETE    You should have received a copy of the GNU General Public License */
-/* OBSOLETE    along with this program; if not, write to the Free Software */
-/* OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330, */
-/* OBSOLETE    Boston, MA 02111-1307, USA.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #ifndef TM_D30V_H */
-/* OBSOLETE #define TM_D30V_H */
-/* OBSOLETE  */
-/* OBSOLETE #include "regcache.h" */
-/* OBSOLETE  */
-/* OBSOLETE /* Offset from address of function to start of its code. */
-/* OBSOLETE    Zero on most machines.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define FUNCTION_START_OFFSET 0 */
-/* OBSOLETE  */
-/* OBSOLETE /* these are the addresses the D30V-EVA board maps data */ */
-/* OBSOLETE /* and instruction memory to. */ */
-/* OBSOLETE  */
-/* OBSOLETE #define DMEM_START 0x20000000 */
-/* OBSOLETE #define IMEM_START 0x00000000      /* was 0x10000000 */ */
-/* OBSOLETE #define STACK_START        0x20007ffe */
-/* OBSOLETE  */
-/* OBSOLETE /* Forward decls for prototypes */ */
-/* OBSOLETE struct frame_info; */
-/* OBSOLETE struct frame_saved_regs; */
-/* OBSOLETE struct type; */
-/* OBSOLETE struct value; */
-/* OBSOLETE  */
-/* OBSOLETE /* Advance PC across any function entry prologue instructions */
-/* OBSOLETE    to reach some "real" code.  */ */
-/* OBSOLETE  */
-/* OBSOLETE extern CORE_ADDR d30v_skip_prologue (CORE_ADDR); */
-/* OBSOLETE #define SKIP_PROLOGUE(ip) (d30v_skip_prologue (ip)) */
-/* OBSOLETE  */
-/* OBSOLETE  */
-/* OBSOLETE /* Stack grows downward.  */ */
-/* OBSOLETE #define INNER_THAN(lhs,rhs) ((lhs) < (rhs)) */
-/* OBSOLETE  */
-/* OBSOLETE /* for a breakpoint, use "dbt || nop" */ */
-/* OBSOLETE #define BREAKPOINT {0x00, 0xb0, 0x00, 0x00,\ */
-/* OBSOLETE                0x00, 0xf0, 0x00, 0x00} */
-/* OBSOLETE  */
-/* OBSOLETE /* If your kernel resets the pc after the trap happens you may need to */
-/* OBSOLETE    define this before including this file.  */ */
-/* OBSOLETE #define DECR_PC_AFTER_BREAK 0 */
-/* OBSOLETE  */
-/* OBSOLETE #define REGISTER_NAMES \ */
-/* OBSOLETE {   "r0",  "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7", \ */
-/* OBSOLETE     "r8",  "r9",  "r10", "r11", "r12", "r13", "r14", "r15",        \ */
-/* OBSOLETE     "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",        \ */
-/* OBSOLETE     "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",        \ */
-/* OBSOLETE     "r32", "r33", "r34", "r35", "r36", "r37", "r38", "r39",        \ */
-/* OBSOLETE     "r40", "r41", "r42", "r43", "r44", "r45", "r46", "r47",        \ */
-/* OBSOLETE     "r48", "r49", "r50", "r51", "r52", "r53", "r54", "r55",        \ */
-/* OBSOLETE     "r56", "r57", "r58", "r59", "r60", "r61", "r62", "r63",        \ */
-/* OBSOLETE     "spi", "spu", \ */
-/* OBSOLETE     "psw", "bpsw", "pc", "bpc", "dpsw", "dpc", "cr6", "rpt_c",     \ */
-/* OBSOLETE     "rpt_s", "rpt_e", "mod_s", "mod_e", "cr12", "cr13", "iba", "eit_vb",\ */
-/* OBSOLETE     "int_s", "int_m", "a0", "a1" \ */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE #define NUM_REGS 86 */
-/* OBSOLETE  */
-/* OBSOLETE /* Register numbers of various important registers. */
-/* OBSOLETE    Note that some of these values are "real" register numbers, */
-/* OBSOLETE    and correspond to the general registers of the machine, */
-/* OBSOLETE    and some are "phony" register numbers which are too large */
-/* OBSOLETE    to be actual register numbers as far as the user is concerned */
-/* OBSOLETE    but do serve to get the desired values when passed to read_register.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define R0_REGNUM  0 */
-/* OBSOLETE #define FP_REGNUM  61 */
-/* OBSOLETE #define LR_REGNUM  62 */
-/* OBSOLETE #define SP_REGNUM  63 */
-/* OBSOLETE #define SPI_REGNUM 64      /* Interrupt stack pointer */ */
-/* OBSOLETE #define SPU_REGNUM 65      /* User stack pointer */ */
-/* OBSOLETE #define CREGS_START        66 */
-/* OBSOLETE  */
-/* OBSOLETE #define PSW_REGNUM         (CREGS_START + 0)       /* psw, bpsw, or dpsw??? */ */
-/* OBSOLETE #define     PSW_SM (((unsigned long)0x80000000) >> 0)      /* Stack mode: 0/SPI */ */
-/* OBSOLETE                                                    /*             1/SPU */ */
-/* OBSOLETE #define     PSW_EA (((unsigned long)0x80000000) >> 2)      /* Execution status */ */
-/* OBSOLETE #define     PSW_DB (((unsigned long)0x80000000) >> 3)      /* Debug mode */ */
-/* OBSOLETE #define     PSW_DS (((unsigned long)0x80000000) >> 4)      /* Debug EIT status */ */
-/* OBSOLETE #define     PSW_IE (((unsigned long)0x80000000) >> 5)      /* Interrupt enable */ */
-/* OBSOLETE #define     PSW_RP (((unsigned long)0x80000000) >> 6)      /* Repeat enable */ */
-/* OBSOLETE #define     PSW_MD (((unsigned long)0x80000000) >> 7)      /* Modulo enable */ */
-/* OBSOLETE #define     PSW_F0 (((unsigned long)0x80000000) >> 17)     /* F0 flag */ */
-/* OBSOLETE #define     PSW_F1 (((unsigned long)0x80000000) >> 19)     /* F1 flag */ */
-/* OBSOLETE #define     PSW_F2 (((unsigned long)0x80000000) >> 21)     /* F2 flag */ */
-/* OBSOLETE #define     PSW_F3 (((unsigned long)0x80000000) >> 23)     /* F3 flag */ */
-/* OBSOLETE #define     PSW_S  (((unsigned long)0x80000000) >> 25)     /* Saturation flag */ */
-/* OBSOLETE #define     PSW_V  (((unsigned long)0x80000000) >> 27)     /* Overflow flag */ */
-/* OBSOLETE #define     PSW_VA (((unsigned long)0x80000000) >> 29)     /* Accum. overflow */ */
-/* OBSOLETE #define     PSW_C  (((unsigned long)0x80000000) >> 31)     /* Carry/Borrow flag */ */
-/* OBSOLETE  */
-/* OBSOLETE #define BPSW_REGNUM        (CREGS_START + 1)       /* Backup PSW (on interrupt) */ */
-/* OBSOLETE #define PC_REGNUM  (CREGS_START + 2)       /* pc, bpc, or dpc??? */ */
-/* OBSOLETE #define BPC_REGNUM         (CREGS_START + 3)       /* Backup PC (on interrupt) */ */
-/* OBSOLETE #define DPSW_REGNUM        (CREGS_START + 4)       /* Backup PSW (on debug trap) */ */
-/* OBSOLETE #define DPC_REGNUM         (CREGS_START + 5)       /* Backup PC (on debug trap) */ */
-/* OBSOLETE #define RPT_C_REGNUM       (CREGS_START + 7)       /* Loop count */ */
-/* OBSOLETE #define RPT_S_REGNUM       (CREGS_START + 8)       /* Loop start address */ */
-/* OBSOLETE #define RPT_E_REGNUM       (CREGS_START + 9)       /* Loop end address */ */
-/* OBSOLETE #define MOD_S_REGNUM       (CREGS_START + 10) */
-/* OBSOLETE #define MOD_E_REGNUM       (CREGS_START + 11) */
-/* OBSOLETE #define IBA_REGNUM (CREGS_START + 14)      /* Instruction break address */ */
-/* OBSOLETE #define EIT_VB_REGNUM      (CREGS_START + 15)      /* Vector base address */ */
-/* OBSOLETE #define INT_S_REGNUM       (CREGS_START + 16)      /* Interrupt status */ */
-/* OBSOLETE #define INT_M_REGNUM       (CREGS_START + 17)      /* Interrupt mask */ */
-/* OBSOLETE #define A0_REGNUM  84 */
-/* OBSOLETE #define A1_REGNUM  85 */
-/* OBSOLETE  */
-/* OBSOLETE /* Say how much memory is needed to store a copy of the register set */ */
-/* OBSOLETE #define REGISTER_BYTES    ((NUM_REGS - 2) * 4 + 2 * 8) */
-/* OBSOLETE  */
-/* OBSOLETE /* Index within `registers' of the first byte of the space for */
-/* OBSOLETE    register N.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define REGISTER_BYTE(N)  \ */
-/* OBSOLETE ( ((N) >= A0_REGNUM) ? ( ((N) - A0_REGNUM) * 8 + A0_REGNUM * 4 ) : ((N) * 4) ) */
-/* OBSOLETE  */
-/* OBSOLETE /* Number of bytes of storage in the actual machine representation */
-/* OBSOLETE    for register N.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define REGISTER_RAW_SIZE(N) ( ((N) >= A0_REGNUM) ? 8 : 4 ) */
-/* OBSOLETE  */
-/* OBSOLETE /* Number of bytes of storage in the program's representation */
-/* OBSOLETE    for register N.  */ */
-/* OBSOLETE #define REGISTER_VIRTUAL_SIZE(N) REGISTER_RAW_SIZE(N) */
-/* OBSOLETE  */
-/* OBSOLETE /* Largest value REGISTER_RAW_SIZE can have.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define MAX_REGISTER_RAW_SIZE 8 */
-/* OBSOLETE  */
-/* OBSOLETE /* Largest value REGISTER_VIRTUAL_SIZE can have.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define MAX_REGISTER_VIRTUAL_SIZE 8 */
-/* OBSOLETE  */
-/* OBSOLETE /* Return the GDB type object for the "standard" data type */
-/* OBSOLETE    of data in register N.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define REGISTER_VIRTUAL_TYPE(N) \ */
-/* OBSOLETE ( ((N) < A0_REGNUM ) ? builtin_type_long : builtin_type_long_long) */
-/* OBSOLETE  */
-/* OBSOLETE /* Writing to r0 is a noop (not an error or exception or anything like */
-/* OBSOLETE    that, however).  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define CANNOT_STORE_REGISTER(regno) ((regno) == R0_REGNUM) */
-/* OBSOLETE  */
-/* OBSOLETE void d30v_do_registers_info (int regnum, int fpregs); */
-/* OBSOLETE  */
-/* OBSOLETE #define DO_REGISTERS_INFO d30v_do_registers_info */
-/* OBSOLETE  */
-/* OBSOLETE /* Store the address of the place in which to copy the structure the */
-/* OBSOLETE    subroutine will return.  This is called from call_function.  */
-/* OBSOLETE  */
-/* OBSOLETE    We store structs through a pointer passed in R2 */ */
-/* OBSOLETE  */
-/* OBSOLETE #define STORE_STRUCT_RETURN(ADDR, SP) \ */
-/* OBSOLETE     { write_register (2, (ADDR));  } */
-/* OBSOLETE  */
-/* OBSOLETE  */
-/* OBSOLETE /* Write into appropriate registers a function return value */
-/* OBSOLETE    of type TYPE, given in virtual format.   */
-/* OBSOLETE  */
-/* OBSOLETE    Things always get returned in R2/R3 */ */
-/* OBSOLETE  */
-/* OBSOLETE #define STORE_RETURN_VALUE(TYPE,VALBUF) \ */
-/* OBSOLETE   write_register_bytes (REGISTER_BYTE(2), VALBUF, TYPE_LENGTH (TYPE)) */
-/* OBSOLETE  */
-/* OBSOLETE  */
-/* OBSOLETE /* Extract from an array REGBUF containing the (raw) register state */
-/* OBSOLETE    the address in which a function should return its structure value, */
-/* OBSOLETE    as a CORE_ADDR (or an expression that can be used as one).  */ */
-/* OBSOLETE #define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) (((CORE_ADDR *)(REGBUF))[2]) */
-/* OBSOLETE \f */
-/* OBSOLETE  */
-/* OBSOLETE /* Define other aspects of the stack frame.  */
-/* OBSOLETE    we keep a copy of the worked out return pc lying around, since it */
-/* OBSOLETE    is a useful bit of info */ */
-/* OBSOLETE  */
-/* OBSOLETE #define EXTRA_FRAME_INFO \ */
-/* OBSOLETE     CORE_ADDR return_pc; \ */
-/* OBSOLETE     CORE_ADDR dummy; \ */
-/* OBSOLETE     int frameless; \ */
-/* OBSOLETE     int size; */
-/* OBSOLETE  */
-/* OBSOLETE #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) \ */
-/* OBSOLETE     d30v_init_extra_frame_info(fromleaf, fi) */
-/* OBSOLETE  */
-/* OBSOLETE extern void d30v_init_extra_frame_info (int fromleaf, struct frame_info *fi); */
-/* OBSOLETE  */
-/* OBSOLETE /* A macro that tells us whether the function invocation represented */
-/* OBSOLETE    by FI does not have a frame on the stack associated with it.  If it */
-/* OBSOLETE    does not, FRAMELESS is set to 1, else 0.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define FRAMELESS_FUNCTION_INVOCATION(FI) \ */
-/* OBSOLETE   (frameless_look_for_prologue (FI)) */
-/* OBSOLETE  */
-/* OBSOLETE CORE_ADDR d30v_frame_chain (struct frame_info *frame); */
-/* OBSOLETE #define FRAME_CHAIN(FRAME)       d30v_frame_chain(FRAME) */
-/* OBSOLETE extern int d30v_frame_chain_valid (CORE_ADDR, struct frame_info *); */
-/* OBSOLETE #define FRAME_CHAIN_VALID(chain, thisframe) d30v_frame_chain_valid (chain, thisframe) */
-/* OBSOLETE #define FRAME_SAVED_PC(FRAME)    ((FRAME)->return_pc) */
-/* OBSOLETE #define FRAME_ARGS_ADDRESS(fi)   (fi)->frame */
-/* OBSOLETE #define FRAME_LOCALS_ADDRESS(fi) (fi)->frame */
-/* OBSOLETE  */
-/* OBSOLETE void d30v_init_frame_pc (int fromleaf, struct frame_info *prev); */
-/* OBSOLETE #define INIT_FRAME_PC_FIRST(fromleaf, prev)        d30v_init_frame_pc(fromleaf, prev) */
-/* OBSOLETE #define INIT_FRAME_PC(fromleaf, prev)      /* nada */ */
-/* OBSOLETE  */
-/* OBSOLETE /* Immediately after a function call, return the saved pc.  We can't */ */
-/* OBSOLETE /* use frame->return_pc beause that is determined by reading R62 off the */ */
-/* OBSOLETE /* stack and that may not be written yet. */ */
-/* OBSOLETE  */
-/* OBSOLETE #define SAVED_PC_AFTER_CALL(frame) (read_register(LR_REGNUM)) */
-/* OBSOLETE  */
-/* OBSOLETE /* Set VAL to the number of args passed to frame described by FI. */
-/* OBSOLETE    Can set VAL to -1, meaning no way to tell.  */ */
-/* OBSOLETE /* We can't tell how many args there are */ */
-/* OBSOLETE  */
-/* OBSOLETE #define FRAME_NUM_ARGS(fi) (-1) */
-/* OBSOLETE  */
-/* OBSOLETE /* Return number of bytes at start of arglist that are not really args.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define FRAME_ARGS_SKIP 0 */
-/* OBSOLETE  */
-/* OBSOLETE  */
-/* OBSOLETE /* Put here the code to store, into a struct frame_saved_regs, */
-/* OBSOLETE    the addresses of the saved registers of frame described by FRAME_INFO. */
-/* OBSOLETE    This includes special registers such as pc and fp saved in special */
-/* OBSOLETE    ways in the stack frame.  sp is even more special: */
-/* OBSOLETE    the address we return for it IS the sp for the next frame.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs)            \ */
-/* OBSOLETE    d30v_frame_find_saved_regs(frame_info, &(frame_saved_regs)) */
-/* OBSOLETE  */
-/* OBSOLETE extern void d30v_frame_find_saved_regs (struct frame_info *, */
-/* OBSOLETE                                    struct frame_saved_regs *); */
-/* OBSOLETE  */
-/* OBSOLETE /* DUMMY FRAMES.  Need these to support inferior function calls. */
-/* OBSOLETE    They work like this on D30V: */
-/* OBSOLETE    First we set a breakpoint at 0 or __start. */
-/* OBSOLETE    Then we push all the registers onto the stack. */
-/* OBSOLETE    Then put the function arguments in the proper registers and set r13 */
-/* OBSOLETE    to our breakpoint address. */
-/* OBSOLETE    Finally call the function directly. */
-/* OBSOLETE    When it hits the breakpoint, clear the break point and pop the old */
-/* OBSOLETE    register contents off the stack. */ */
-/* OBSOLETE  */
-/* OBSOLETE #define CALL_DUMMY         { 0 } */
-/* OBSOLETE #define PUSH_DUMMY_FRAME */
-/* OBSOLETE #define CALL_DUMMY_START_OFFSET    0 */
-/* OBSOLETE #define CALL_DUMMY_LOCATION        AT_ENTRY_POINT */
-/* OBSOLETE #define CALL_DUMMY_BREAKPOINT_OFFSET (0) */
-/* OBSOLETE  */
-/* OBSOLETE extern CORE_ADDR d30v_call_dummy_address (void); */
-/* OBSOLETE #define CALL_DUMMY_ADDRESS() d30v_call_dummy_address() */
-/* OBSOLETE  */
-/* OBSOLETE #define FIX_CALL_DUMMY(dummyname, pc, fun, nargs, args, type, gcc_p) \ */
-/* OBSOLETE sp = d30v_fix_call_dummy (dummyname, pc, fun, nargs, args, type, gcc_p) */
-/* OBSOLETE  */
-/* OBSOLETE #define PC_IN_CALL_DUMMY(pc, sp, frame_address)    ( pc == IMEM_START + 4 ) */
-/* OBSOLETE  */
-/* OBSOLETE extern CORE_ADDR d30v_fix_call_dummy (char *, CORE_ADDR, CORE_ADDR, */
-/* OBSOLETE                                  int, struct value **, */
-/* OBSOLETE                                  struct type *, int); */
-/* OBSOLETE #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ */
-/* OBSOLETE   (d30v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))) */
-/* OBSOLETE extern CORE_ADDR d30v_push_arguments (int, struct value **, CORE_ADDR, int, */
-/* OBSOLETE                                  CORE_ADDR); */
-/* OBSOLETE  */
-/* OBSOLETE  */
-/* OBSOLETE /* Extract from an array REGBUF containing the (raw) register state */
-/* OBSOLETE    a function return value of type TYPE, and copy that, in virtual format, */
-/* OBSOLETE    into VALBUF.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \ */
-/* OBSOLETE d30v_extract_return_value(TYPE, REGBUF, VALBUF) */
-/* OBSOLETE extern void d30v_extract_return_value (struct type *, char *, char *); */
-/* OBSOLETE  */
-/* OBSOLETE  */
-/* OBSOLETE /* Discard from the stack the innermost frame, */
-/* OBSOLETE    restoring all saved registers.  */ */
-/* OBSOLETE #define POP_FRAME d30v_pop_frame(); */
-/* OBSOLETE extern void d30v_pop_frame (void); */
-/* OBSOLETE  */
-/* OBSOLETE #define REGISTER_SIZE 4 */
-/* OBSOLETE  */
-/* OBSOLETE /* Need to handle SP special, as we need to select between spu and spi.  */ */
-/* OBSOLETE #if 0                              /* XXX until the simulator is fixed */ */
-/* OBSOLETE #define TARGET_READ_SP() ((read_register (PSW_REGNUM) & PSW_SM) \ */
-/* OBSOLETE                      ? read_register (SPU_REGNUM) \ */
-/* OBSOLETE                      : read_register (SPI_REGNUM)) */
-/* OBSOLETE  */
-/* OBSOLETE #define TARGET_WRITE_SP(val) ((read_register (PSW_REGNUM) & PSW_SM) \ */
-/* OBSOLETE                      ? write_register (SPU_REGNUM, (val)) \ */
-/* OBSOLETE                      : write_register (SPI_REGNUM, (val))) */
-/* OBSOLETE #endif */
-/* OBSOLETE  */
-/* OBSOLETE #define STACK_ALIGN(len)   (((len) + 7 ) & ~7) */
-/* OBSOLETE  */
-/* OBSOLETE /* Turn this on to cause remote-sim.c to use sim_set/clear_breakpoint. */ */
-/* OBSOLETE  */
-/* OBSOLETE #define SIM_HAS_BREAKPOINTS */
-/* OBSOLETE  */
-/* OBSOLETE #endif /* TM_D30V_H */ */
diff --git a/gdb/config/fr30/fr30.mt b/gdb/config/fr30/fr30.mt
deleted file mode 100644 (file)
index b702970..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# OBSOLETE # Target: Fujitsu FR30 processor
-# OBSOLETE TDEPFILES= fr30-tdep.o
-# OBSOLETE TM_FILE= tm-fr30.h
-# OBSOLETE SIM_OBS = remote-sim.o
-# OBSOLETE SIM = ../sim/fr30/libsim.a
diff --git a/gdb/config/fr30/tm-fr30.h b/gdb/config/fr30/tm-fr30.h
deleted file mode 100644 (file)
index 7a58337..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-// OBSOLETE /* Parameters for execution on a Fujitsu FR30 processor.
-// OBSOLETE    Copyright 1999, 2000 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE #define FR30_GENREGS               16
-// OBSOLETE #define FR30_DEDICATEDREGS 8
-// OBSOLETE #define FR30_REGSIZE               4       /* bytes */
-// OBSOLETE 
-// OBSOLETE #define NUM_REGS (FR30_GENREGS + FR30_DEDICATEDREGS)
-// OBSOLETE #define REGISTER_BYTES ((FR30_GENREGS + FR30_DEDICATEDREGS)*FR30_REGSIZE)
-// OBSOLETE 
-// OBSOLETE /* Index within `registers' of the first byte of the space for
-// OBSOLETE    register N.  */
-// OBSOLETE #define REGISTER_BYTE(N) ((N) * FR30_REGSIZE)
-// OBSOLETE 
-// OBSOLETE /* Initializer for an array of names of registers.
-// OBSOLETE    There should be NUM_REGS strings in this initializer.  */
-// OBSOLETE #define REGISTER_NAMES \
-// OBSOLETE { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", \
-// OBSOLETE   "r9", "r10", "r11", "r12", "r13", "r14", "r15", \
-// OBSOLETE   "pc", "ps", "tbr", "rp", "ssp", "usp", "mdh", "mdl" }
-// OBSOLETE 
-// OBSOLETE /* Offset from address of function to start of its code.
-// OBSOLETE    Zero on most machines.  */
-// OBSOLETE #define FUNCTION_START_OFFSET 0
-// OBSOLETE 
-// OBSOLETE /* Amount PC must be decremented by after a breakpoint.
-// OBSOLETE    This is often the number of bytes in BREAKPOINT
-// OBSOLETE    but not always.  */
-// OBSOLETE 
-// OBSOLETE #define DECR_PC_AFTER_BREAK 0
-// OBSOLETE 
-// OBSOLETE /* Stack grows downward.  */
-// OBSOLETE 
-// OBSOLETE #define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
-// OBSOLETE 
-// OBSOLETE #define R0_REGNUM  0
-// OBSOLETE #define R1_REGNUM  1
-// OBSOLETE #define R2_REGNUM  2
-// OBSOLETE #define R3_REGNUM  3
-// OBSOLETE #define R4_REGNUM  4
-// OBSOLETE #define R5_REGNUM  5
-// OBSOLETE #define R6_REGNUM  6
-// OBSOLETE #define R7_REGNUM  7
-// OBSOLETE #define R8_REGNUM  8
-// OBSOLETE #define R9_REGNUM  9
-// OBSOLETE #define R10_REGNUM  10
-// OBSOLETE #define R11_REGNUM  11
-// OBSOLETE #define R12_REGNUM  12
-// OBSOLETE #define R13_REGNUM  13
-// OBSOLETE #define FP_REGNUM 14               /* Frame pointer */
-// OBSOLETE #define SP_REGNUM 15               /* Stack pointer */
-// OBSOLETE #define PC_REGNUM 16               /* Program counter */
-// OBSOLETE #define RP_REGNUM 19               /* Return pointer */
-// OBSOLETE 
-// OBSOLETE #define FIRST_ARGREG       R4_REGNUM       /* first arg (or struct ret val addr) */
-// OBSOLETE #define LAST_ARGREG        R7_REGNUM       /* fourth (or third arg) */
-// OBSOLETE #define RETVAL_REG R4_REGNUM       /* return vaue */
-// OBSOLETE 
-// OBSOLETE /* Say how long (ordinary) registers are.  This is a piece of bogosity
-// OBSOLETE    used in push_word and a few other places; REGISTER_RAW_SIZE is the
-// OBSOLETE    real way to know how big a register is.  */
-// OBSOLETE #define REGISTER_SIZE FR30_REGSIZE
-// OBSOLETE 
-// OBSOLETE /* Number of bytes of storage in the actual machine representation
-// OBSOLETE    for register N.  */
-// OBSOLETE #define REGISTER_RAW_SIZE(N) FR30_REGSIZE
-// OBSOLETE 
-// OBSOLETE /* Largest value REGISTER_RAW_SIZE can have.  */
-// OBSOLETE #define MAX_REGISTER_RAW_SIZE FR30_REGSIZE
-// OBSOLETE 
-// OBSOLETE /* Number of bytes of storage in the program's representation
-// OBSOLETE    for register N.  */
-// OBSOLETE #define REGISTER_VIRTUAL_SIZE(N) REGISTER_RAW_SIZE(N)
-// OBSOLETE 
-// OBSOLETE /* Largest value REGISTER_VIRTUAL_SIZE can have.  */
-// OBSOLETE #define MAX_REGISTER_VIRTUAL_SIZE FR30_REGSIZE
-// OBSOLETE 
-// OBSOLETE extern void fr30_pop_frame (void);
-// OBSOLETE #define POP_FRAME fr30_pop_frame()
-// OBSOLETE 
-// OBSOLETE #define USE_GENERIC_DUMMY_FRAMES 1
-// OBSOLETE #define CALL_DUMMY                   {0}
-// OBSOLETE #define CALL_DUMMY_START_OFFSET      (0)
-// OBSOLETE #define CALL_DUMMY_BREAKPOINT_OFFSET (0)
-// OBSOLETE #define CALL_DUMMY_LOCATION          AT_ENTRY_POINT
-// OBSOLETE #define FIX_CALL_DUMMY(DUMMY, START, FUNADDR, NARGS, ARGS, TYPE, GCCP)
-// OBSOLETE #define CALL_DUMMY_ADDRESS()         entry_point_address ()
-// OBSOLETE #define PUSH_RETURN_ADDRESS(PC, SP)  (write_register(RP_REGNUM, CALL_DUMMY_ADDRESS()), SP)
-// OBSOLETE #define PUSH_DUMMY_FRAME   generic_push_dummy_frame ()
-// OBSOLETE 
-// OBSOLETE /* Number of bytes at start of arglist that are not really args.  */
-// OBSOLETE #define FRAME_ARGS_SKIP 0
-// OBSOLETE 
-// OBSOLETE /* Return the GDB type object for the "standard" data type
-// OBSOLETE    of data in register N.  */
-// OBSOLETE #define REGISTER_VIRTUAL_TYPE(REG) builtin_type_int
-// OBSOLETE 
-// OBSOLETE /* Extract from an array REGBUF containing the (raw) register state
-// OBSOLETE    a function return value of type TYPE, and copy that, in virtual format,
-// OBSOLETE    into VALBUF.  */
-// OBSOLETE #define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
-// OBSOLETE     memcpy (VALBUF, REGBUF + REGISTER_BYTE(RETVAL_REG) +  \
-// OBSOLETE    (TYPE_LENGTH(TYPE) < 4 ? 4 - TYPE_LENGTH(TYPE) : 0), TYPE_LENGTH (TYPE))
-// OBSOLETE 
-// OBSOLETE /* Extract from an array REGBUF containing the (raw) register state
-// OBSOLETE    the address in which a function should return its structure value,
-// OBSOLETE    as a CORE_ADDR (or an expression that can be used as one).  */
-// OBSOLETE #define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
-// OBSOLETE   extract_address (REGBUF + REGISTER_BYTE (RETVAL_REG), \
-// OBSOLETE               REGISTER_RAW_SIZE (RETVAL_REG))
-// OBSOLETE 
-// OBSOLETE #define STORE_STRUCT_RETURN(ADDR, SP) \
-// OBSOLETE   { write_register (RETVAL_REG, (ADDR)); }
-// OBSOLETE 
-// OBSOLETE #define FRAME_ARGS_ADDRESS(fi) ((fi)->frame)
-// OBSOLETE #define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
-// OBSOLETE 
-// OBSOLETE /* Return number of args passed to a frame.
-// OBSOLETE    Can return -1, meaning no way to tell.  */
-// OBSOLETE #define FRAME_NUM_ARGS(fi) (-1)
-// OBSOLETE 
-// OBSOLETE /* Forward decls for prototypes */
-// OBSOLETE struct frame_info;
-// OBSOLETE struct frame_saved_regs;
-// OBSOLETE struct type;
-// OBSOLETE struct value;
-// OBSOLETE 
-// OBSOLETE #define EXTRA_FRAME_INFO \
-// OBSOLETE   struct frame_saved_regs fsr;  \
-// OBSOLETE   int framesize;           \
-// OBSOLETE   int frameoffset;         \
-// OBSOLETE   int framereg;
-// OBSOLETE 
-// OBSOLETE extern CORE_ADDR fr30_frame_chain (struct frame_info *fi);
-// OBSOLETE #define FRAME_CHAIN(fi) fr30_frame_chain (fi)
-// OBSOLETE 
-// OBSOLETE extern CORE_ADDR fr30_frame_saved_pc (struct frame_info *);
-// OBSOLETE #define FRAME_SAVED_PC(fi) (fr30_frame_saved_pc (fi))
-// OBSOLETE 
-// OBSOLETE #define SAVED_PC_AFTER_CALL(fi) read_register (RP_REGNUM)
-// OBSOLETE 
-// OBSOLETE extern CORE_ADDR fr30_skip_prologue (CORE_ADDR pc);
-// OBSOLETE #define SKIP_PROLOGUE(pc) (fr30_skip_prologue (pc))
-// OBSOLETE 
-// OBSOLETE /* Write into appropriate registers a function return value of type
-// OBSOLETE    TYPE, given in virtual format.  VALBUF is in the target byte order;
-// OBSOLETE    it's typically the VALUE_CONTENTS of some struct value, and those
-// OBSOLETE    are in the target's byte order.  */
-// OBSOLETE extern void fr30_store_return_value (struct type *type, char *valbuf);
-// OBSOLETE 
-// OBSOLETE #define STORE_RETURN_VALUE(TYPE,VALBUF) \
-// OBSOLETE   (fr30_store_return_value ((TYPE), (VALBUF)))
-// OBSOLETE 
-// OBSOLETE /* Put here the code to store, into a struct frame_saved_regs,
-// OBSOLETE    the addresses of the saved registers of frame described by FRAME_INFO.
-// OBSOLETE    This includes special registers such as pc and fp saved in special
-// OBSOLETE    ways in the stack frame.  sp is even more special:
-// OBSOLETE    the address we return for it IS the sp for the next frame.  */
-// OBSOLETE #define FRAME_FIND_SAVED_REGS(fi, regaddr) regaddr = fi->fsr
-// OBSOLETE 
-// OBSOLETE /* Use INT #BREAKPOINT_INTNUM instruction for breakpoint */
-// OBSOLETE #define FR30_BREAKOP       0x1f    /* opcode, type D instruction */
-// OBSOLETE #define BREAKPOINT_INTNUM 9        /* one of the reserved traps */
-// OBSOLETE #define BREAKPOINT {FR30_BREAKOP, BREAKPOINT_INTNUM}
-// OBSOLETE 
-// OBSOLETE /* Define this for Wingdb */
-// OBSOLETE #define TARGET_FR30
-// OBSOLETE 
-// OBSOLETE /* Define other aspects of the stack frame.  */
-// OBSOLETE 
-// OBSOLETE /* An expression that tells us whether the function invocation represented
-// OBSOLETE    by FI does not have a frame on the stack associated with it.  */
-// OBSOLETE extern int fr30_frameless_function_invocation (struct frame_info *frame);
-// OBSOLETE #define FRAMELESS_FUNCTION_INVOCATION(FI) (fr30_frameless_function_invocation (FI));
-// OBSOLETE 
-// OBSOLETE extern void fr30_init_extra_frame_info (struct frame_info *fi);
-// OBSOLETE #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) fr30_init_extra_frame_info (fi)
-// OBSOLETE 
-// OBSOLETE #define FRAME_CHAIN_VALID(FP, FI)  generic_file_frame_chain_valid (FP, FI)
-// OBSOLETE 
-// OBSOLETE extern CORE_ADDR
-// OBSOLETE fr30_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
-// OBSOLETE                 int struct_return, CORE_ADDR struct_addr);
-// OBSOLETE #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
-// OBSOLETE   (fr30_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR))
-// OBSOLETE 
-// OBSOLETE #define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
-// OBSOLETE 
-// OBSOLETE /* Fujitsu's ABI requires all structs to be passed using a pointer.
-// OBSOLETE    That is obviously not very efficient, so I am leaving the definitions
-// OBSOLETE    to make gdb work with GCC style struct passing, in case we decide
-// OBSOLETE    to go for better performance, rather than for compatibility with
-// OBSOLETE    Fujitsu (just change STRUCT_ALWAYS_BY_ADDR to 0) */
-// OBSOLETE 
-// OBSOLETE #define STRUCT_ALWAYS_BY_ADDR      1
-// OBSOLETE 
-// OBSOLETE #if(STRUCT_ALWAYS_BY_ADDR)
-// OBSOLETE #define REG_STRUCT_HAS_ADDR(gcc_p,type)            1
-// OBSOLETE #else
-// OBSOLETE /* more standard GCC (optimized) */
-// OBSOLETE #define REG_STRUCT_HAS_ADDR(gcc_p,type)            \
-// OBSOLETE            ((TYPE_LENGTH(type) > 4) && (TYPE_LENGTH(type) & 0x3))
-// OBSOLETE #endif
-// OBSOLETE /* alway return struct by value by input pointer */
-// OBSOLETE #define USE_STRUCT_CONVENTION(GCC_P, TYPE) 1
-// OBSOLETE 
-// OBSOLETE /* The stack should always be aligned on a four-word boundary.  */
-// OBSOLETE #define STACK_ALIGN(len) (((len) + 3) & ~3)
-// OBSOLETE 
-// OBSOLETE /* I think the comment about this in value_arg_coerce is wrong; this
-// OBSOLETE    should be true on any system where you can rely on the prototyping
-// OBSOLETE    information.  When this is true, value_arg_coerce will promote
-// OBSOLETE    floats to doubles iff the function is not prototyped.  */
-// OBSOLETE #define COERCE_FLOAT_TO_DOUBLE(formal, actual) (1)
index 8c4ae455efc707070aa06761c59c89475d049a31..4f8f3479d4adeb96eab3229ee028270987400fa9 100644 (file)
 
 #include "regcache.h"
 
+/* NOTE: cagney/2002-11-24: This is a guess.  */
+#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 0
+#define CALL_DUMMY_LOCATION ON_STACK
+#define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_on_stack (pc, sp, frame_address)
+
 /* Contributed by Steve Chamberlain sac@cygnus.com */
 
 #define GDB_TARGET_IS_H8500
diff --git a/gdb/config/i386/i386aix.mh b/gdb/config/i386/i386aix.mh
deleted file mode 100644 (file)
index df571bf..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# OBSOLETE # Host: IBM PS/2 (i386) running AIX PS/2
-# OBSOLETE 
-# OBSOLETE XM_FILE= xm-i386aix.h
-# OBSOLETE 
-# OBSOLETE NAT_FILE= nm-i386aix.h
-# OBSOLETE NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o i386aix-nat.o
-# OBSOLETE 
-# OBSOLETE # Use gcc. Only coff output can be debugged
-# OBSOLETE CC=gcc
diff --git a/gdb/config/i386/i386aix.mt b/gdb/config/i386/i386aix.mt
deleted file mode 100644 (file)
index 57d124d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# OBSOLETE # This port, for aix ps/2 (i386), will allow you to debug the coff
-# OBSOLETE # output generated gcc-2.3.3 + gas.  It will not understand IBM's
-# OBSOLETE # proprietary debug info.
-# OBSOLETE #
-# OBSOLETE # Target: IBM PS/2 (i386) running AIX PS/2
-# OBSOLETE TDEPFILES= i386-tdep.o i387-tdep.o
-# OBSOLETE TM_FILE= tm-i386aix.h
diff --git a/gdb/config/i386/i386m3.mh b/gdb/config/i386/i386m3.mh
deleted file mode 100644 (file)
index 7b840e2..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# OBSOLETE # Host: Intel 386 running Mach3
-# OBSOLETE 
-# OBSOLETE NATDEPFILES= i386m3-nat.o m3-nat.o fork-child.o i387-tdep.o core-aout.o
-# OBSOLETE NAT_CLIBS= -lmachid -lnetname -lmach
-# OBSOLETE XM_FILE= xm-i386m3.h
-# OBSOLETE NAT_FILE= nm-m3.h
diff --git a/gdb/config/i386/i386m3.mt b/gdb/config/i386/i386m3.mt
deleted file mode 100644 (file)
index 550e92e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# OBSOLETE # Target: Intel 386 with a.out under Mach 3
-# OBSOLETE TDEPFILES= i386-tdep.o 
-# OBSOLETE TM_FILE= tm-i386m3.h
diff --git a/gdb/config/i386/i386mach.mh b/gdb/config/i386/i386mach.mh
deleted file mode 100644 (file)
index 4e4e097..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# OBSOLETE # Host: Intel 386 running Mach
-# OBSOLETE 
-# OBSOLETE # This is for mach2, maybe, or is obsolete (and seems to have only
-# OBSOLETE # host and native, not target).  Once we get the mach3 stuff working,
-# OBSOLETE # I think it can go away.
-# OBSOLETE 
-# OBSOLETE XM_FILE= xm-i386mach.h
-# OBSOLETE NAT_FILE= nm-i386mach.h
-# OBSOLETE NATDEPFILES= infptrace.o inftarg.o fork-child.o i386mach-nat.o
diff --git a/gdb/config/i386/i386os9k.mt b/gdb/config/i386/i386os9k.mt
deleted file mode 100644 (file)
index 939e9e2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# OBSOLETE # Target: Intel 386 running OS9000
-# OBSOLETE TDEPFILES= i386-tdep.o remote-os9k.o
-# OBSOLETE TM_FILE= tm-i386os9k.h
diff --git a/gdb/config/i386/nm-i386aix.h b/gdb/config/i386/nm-i386aix.h
deleted file mode 100644 (file)
index 08f0779..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// OBSOLETE /* Native support for i386 aix ps/2.
-// OBSOLETE    Copyright 1986, 1987, 1989, 1992, 1993 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Changes for IBM AIX PS/2 by Minh Tran-Le (tranle@intellicorp.com)
-// OBSOLETE  * Revision:     5-May-93 00:11:35
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE #ifndef NM_I386AIX_H
-// OBSOLETE #define NM_I386AIX_H 1
-// OBSOLETE 
-// OBSOLETE /* code to execute to print interesting information about the
-// OBSOLETE  * floating point processor (if any)
-// OBSOLETE  * No need to define if there is nothing to do.
-// OBSOLETE  */
-// OBSOLETE #define FLOAT_INFO { i386_float_info (); }
-// OBSOLETE 
-// OBSOLETE /* This is the amount to subtract from u.u_ar0
-// OBSOLETE    to get the offset in the core file of the register values.  */
-// OBSOLETE #undef  KERNEL_U_ADDR
-// OBSOLETE #define KERNEL_U_ADDR 0xf03fd000
-// OBSOLETE 
-// OBSOLETE /* Override copies of {fetch,store}_inferior_registers in infptrace.c.  */
-// OBSOLETE #define FETCH_INFERIOR_REGISTERS
-// OBSOLETE 
-// OBSOLETE #endif /* NM_I386AIX_H */
diff --git a/gdb/config/i386/nm-i386mach.h b/gdb/config/i386/nm-i386mach.h
deleted file mode 100644 (file)
index 21f3c61..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// OBSOLETE /* Native definitions for Mach on an Intel 386
-// OBSOLETE    Copyright 1986, 1987, 1989, 1991, 1992, 1996
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE /* Do implement the attach and detach commands.  */
-// OBSOLETE /* #define ATTACH_DETACH        1 */
-// OBSOLETE 
-// OBSOLETE /* Override copies of {fetch,store}_inferior_registers in infptrace.c.  */
-// OBSOLETE #define FETCH_INFERIOR_REGISTERS
-// OBSOLETE 
-// OBSOLETE #define CHILD_PREPARE_TO_STORE() read_register_bytes (0, NULL, REGISTER_BYTES)
diff --git a/gdb/config/i386/nm-m3.h b/gdb/config/i386/nm-m3.h
deleted file mode 100644 (file)
index 87d587b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-// OBSOLETE /* Native-dependent definitions for Intel 386 running Mach 3.
-// OBSOLETE    Copyright 1994 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* Include the generic Mach 3 definitions.  */
-// OBSOLETE 
-// OBSOLETE #include "config/nm-m3.h"
index 59f60f0fe3a8bc17505bad60a8a2c29a310354b6..f30c43291441f488bd5251696752dc5118a72af6 100644 (file)
@@ -1,5 +1,5 @@
 /* Macro definitions for i386 running under the win32 API Unix.
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000
+   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -30,6 +30,7 @@
 
 #define ATTACH_NO_WAIT
 #define SOLIB_ADD(filename, from_tty, targ, readsyms) child_solib_add(filename, from_tty, targ, readsyms)
+#define PC_SOLIB(addr) solib_address (addr)
 #define SOLIB_LOADED_LIBRARY_PATHNAME(pid) child_solib_loaded_library_pathname(pid)
 #define CLEAR_SOLIB child_clear_solibs
 #define ADD_SHARED_SYMBOL_FILES dll_symbol_command
@@ -37,6 +38,9 @@
 struct target_ops;
 char *cygwin_pid_to_str (ptid_t ptid);
 void child_solib_add (char *, int, struct target_ops *, int);
+char *solib_address (CORE_ADDR);
 char *child_solib_loaded_library_pathname(int);
 void child_clear_solibs (void);
 void dll_symbol_command (char *, int);
+
+#define LINKER_SYMBOLS_HAVE_WIN32_STDCALL_ARG_SIZES (1)
diff --git a/gdb/config/i386/tm-i386aix.h b/gdb/config/i386/tm-i386aix.h
deleted file mode 100644 (file)
index fe11420..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// OBSOLETE /* Macro defintions for IBM AIX PS/2 (i386).
-// OBSOLETE    Copyright 1986, 1987, 1989, 1992, 1993, 1994, 1995, 2000
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* Changes for IBM AIX PS/2 by Minh Tran-Le (tranle@intellicorp.com).  */
-// OBSOLETE 
-// OBSOLETE #ifndef TM_I386AIX_H
-// OBSOLETE #define TM_I386AIX_H 1
-// OBSOLETE 
-// OBSOLETE #include "i386/tm-i386.h"
-// OBSOLETE #include <sys/reg.h>
-// OBSOLETE 
-// OBSOLETE #ifndef I386
-// OBSOLETE #define I386 1
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE /* AIX/i386 has FPU support.  However, the native configuration (which
-// OBSOLETE    is the only supported configuration) doesn't make the FPU control
-// OBSOLETE    registers available.  Override the appropriate symbols such that
-// OBSOLETE    only the normal FPU registers are included in GDB's register array.  */
-// OBSOLETE 
-// OBSOLETE #undef NUM_FPREGS
-// OBSOLETE #define NUM_FPREGS (8)
-// OBSOLETE 
-// OBSOLETE #undef NUM_REGS
-// OBSOLETE #define NUM_REGS (NUM_GREGS + NUM_FPREGS)
-// OBSOLETE 
-// OBSOLETE #undef REGISTER_BYTES
-// OBSOLETE #define REGISTER_BYTES (SIZEOF_GREGS + SIZEOF_FPU_REGS)
-// OBSOLETE 
-// OBSOLETE #endif /* TM_I386AIX_H */
diff --git a/gdb/config/i386/tm-i386m3.h b/gdb/config/i386/tm-i386m3.h
deleted file mode 100644 (file)
index cadd5cd..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// OBSOLETE /* Macro definitions for i386, Mach 3.0
-// OBSOLETE    Copyright 1992, 1993, 1995, 1999 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* Include common definitions for Mach3 systems */
-// OBSOLETE #include "config/nm-m3.h"
-// OBSOLETE 
-// OBSOLETE /* Define offsets to access CPROC stack when it does not have
-// OBSOLETE  * a kernel thread.
-// OBSOLETE  */
-// OBSOLETE #define MACHINE_CPROC_SP_OFFSET 20
-// OBSOLETE #define MACHINE_CPROC_PC_OFFSET 16
-// OBSOLETE #define MACHINE_CPROC_FP_OFFSET 12
-// OBSOLETE 
-// OBSOLETE /* Thread flavors used in re-setting the T bit.
-// OBSOLETE  * @@ this is also bad for cross debugging.
-// OBSOLETE  */
-// OBSOLETE #define TRACE_FLAVOR               i386_THREAD_STATE
-// OBSOLETE #define TRACE_FLAVOR_SIZE  i386_THREAD_STATE_COUNT
-// OBSOLETE #define TRACE_SET(x,state) \
-// OBSOLETE    ((struct i386_thread_state *)state)->efl |= 0x100
-// OBSOLETE #define TRACE_CLEAR(x,state) \
-// OBSOLETE    ((((struct i386_thread_state *)state)->efl &= ~0x100), 1)
-// OBSOLETE 
-// OBSOLETE /* we can do it */
-// OBSOLETE #define ATTACH_DETACH 1
-// OBSOLETE 
-// OBSOLETE /* Sigh. There should be a file for i386 but no sysv stuff in it */
-// OBSOLETE #include "i386/tm-i386.h"
-// OBSOLETE 
-// OBSOLETE /* I want to test this float info code. See comment in tm-i386v.h */
-// OBSOLETE #undef FLOAT_INFO
-// OBSOLETE #define FLOAT_INFO { i386_mach3_float_info (); }
-// OBSOLETE 
-// OBSOLETE /* Address of end of stack space.
-// OBSOLETE  * for MACH, see <machine/vmparam.h>
-// OBSOLETE  * @@@ I don't know what is in the 5 ints...
-// OBSOLETE  */
-// OBSOLETE #undef  STACK_END_ADDR
-// OBSOLETE #define STACK_END_ADDR (0xc0000000-sizeof(int [5]))
diff --git a/gdb/config/i386/tm-i386mk.h b/gdb/config/i386/tm-i386mk.h
deleted file mode 100644 (file)
index 74355a8..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// OBSOLETE /* Macro definitions for i386, Mach 3.0, OSF 1/MK
-// OBSOLETE    Copyright 1992, 1993, 2000 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* Until OSF switches to a newer Mach kernel that has
-// OBSOLETE  * a different get_emul_vector() interface.
-// OBSOLETE  */
-// OBSOLETE #define MK67 1
-// OBSOLETE 
-// OBSOLETE #include "i386/tm-i386m3.h"
-// OBSOLETE 
-// OBSOLETE /* FIMXE: kettenis/2000-03-26: On OSF 1, `long double' is equivalent
-// OBSOLETE    to `double'.  However, I'm not sure what is the consequence of:
-// OBSOLETE 
-// OBSOLETE    #define TARGET_LONG_DOUBLE_FORMAT TARGET_DOUBLE_FORMAT
-// OBSOLETE    #define TARGET_LONG_DOUBLE_BIT TARGET_DOUBLE_BIT
-// OBSOLETE 
-// OBSOLETE    So I'll go with the current status quo instead.  It looks like this
-// OBSOLETE    target won't compile anyway.  Perhaps it should be obsoleted?  */
-// OBSOLETE    
-// OBSOLETE #undef TARGET_LONG_DOUBLE_FORMAT
-// OBSOLETE #undef TARGET_LONG_DOUBLE_BIT
index 7d0c491943a29fa23fd6e23f56545091bfd81bd8..d0ffb34f97a1a365393b7d64c18fc79523175386 100644 (file)
@@ -1,5 +1,6 @@
 # Target: AMD x86-64 running GNU/Linux
 TDEPFILES= x86-64-tdep.o x86-64-linux-tdep.o dwarf2cfi.o \
+       i386-tdep.o i387-tdep.o \
        solib.o solib-svr4.o solib-legacy.o
 
 GDB_MULTI_ARCH=GDB_MULTI_ARCH_TM
diff --git a/gdb/config/i386/xm-i386aix.h b/gdb/config/i386/xm-i386aix.h
deleted file mode 100644 (file)
index 03cb86c..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-// OBSOLETE /* Macro defintions for AIX PS/2 (i386)
-// OBSOLETE    Copyright 1986, 1987, 1989, 1992, 1993 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Changed for IBM AIX ps/2 by Minh Tran Le (tranle@intellicorp.com)
-// OBSOLETE  * Revision:    23-Oct-92 17:42:49
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE #include "i386/xm-i386v.h"
-// OBSOLETE 
-// OBSOLETE #undef HAVE_TERMIO
-// OBSOLETE #define HAVE_SGTTY
diff --git a/gdb/config/i386/xm-i386m3.h b/gdb/config/i386/xm-i386m3.h
deleted file mode 100644 (file)
index da44215..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// OBSOLETE /* Definitions to make GDB run on Mach 3 on an Intel 386
-// OBSOLETE    Copyright 1986, 1987, 1989, 1991, 1993, 1994, 1996
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* Do implement the attach and detach commands.  */
-// OBSOLETE #define ATTACH_DETACH      1
-// OBSOLETE 
-// OBSOLETE /* Not needeed */
-// OBSOLETE #define KERNEL_U_ADDR 0
-// OBSOLETE 
-// OBSOLETE #ifndef EMULATOR_BASE
-// OBSOLETE /* For EMULATOR_BASE and EMULATOR_END.
-// OBSOLETE  * OSF 1/MK has different values in some other place.
-// OBSOLETE  */
-// OBSOLETE #include <machine/vmparam.h>
-// OBSOLETE #endif /* EMULATOR_BASE */
diff --git a/gdb/config/i386/xm-i386mach.h b/gdb/config/i386/xm-i386mach.h
deleted file mode 100644 (file)
index b36c79c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// OBSOLETE /* Definitions to make GDB run on Mach on an Intel 386
-// OBSOLETE    Copyright 1986, 1987, 1989, 1991, 1992, 1994, 1996, 2001
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* This is the amount to subtract from u.u_ar0
-// OBSOLETE    to get the offset in the core file of the register values.  */
-// OBSOLETE 
-// OBSOLETE #define KERNEL_U_ADDR (0x80000000 - (UPAGES * NBPG))
-// OBSOLETE 
-// OBSOLETE /* <errno.h> only defines this if __STDC__!!! */
-// OBSOLETE extern int errno;
diff --git a/gdb/config/i386/xm-i386mk.h b/gdb/config/i386/xm-i386mk.h
deleted file mode 100644 (file)
index 4609604..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-// OBSOLETE /* Definitions to make GDB run on Mach 3 OSF 1/MK on an Intel 386
-// OBSOLETE    Copyright 1992, 1993, 1998 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #define HAVE_TERMIO        1
-// OBSOLETE 
-// OBSOLETE #define EMULATOR_BASE      0xa0000000
-// OBSOLETE #define EMULATOR_END       0xa0040000
-// OBSOLETE 
-// OBSOLETE #include "i386/xm-i386m3.h"
diff --git a/gdb/config/i960/mon960.mt b/gdb/config/i960/mon960.mt
deleted file mode 100644 (file)
index c735d94..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# OBSOLETE # Target: Intel 960 rom monitor
-# OBSOLETE TDEPFILES= i960-tdep.o monitor.o mon960-rom.o ttyflush.o xmodem.o dsrec.o
-# OBSOLETE TM_FILE= tm-mon960.h
-# OBSOLETE SIM_OBS = remote-sim.o
-# OBSOLETE SIM = ../sim/i960/libsim.a
diff --git a/gdb/config/i960/nindy960.mt b/gdb/config/i960/nindy960.mt
deleted file mode 100644 (file)
index 5ed15a8..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# OBSOLETE # Target: Intel 80960, in an embedded system under the NINDY monitor
-# OBSOLETE TDEPFILES= i960-tdep.o nindy-tdep.o remote-nindy.o nindy.o Onindy.o ttyflush.o
-# OBSOLETE TM_FILE= tm-nindy960.h
diff --git a/gdb/config/i960/tm-i960.h b/gdb/config/i960/tm-i960.h
deleted file mode 100644 (file)
index 91bdf91..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-// OBSOLETE /* Parameters for target machine Intel 960, for GDB, the GNU debugger.
-// OBSOLETE 
-// OBSOLETE    Copyright 1990, 1991, 1993, 1994, 1996, 1998, 1999, 2000, 2002 Free
-// OBSOLETE    Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    Contributed by Intel Corporation.
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* Definitions to target GDB to any i960.  */
-// OBSOLETE 
-// OBSOLETE #ifndef I80960
-// OBSOLETE #define I80960
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE #include "doublest.h"
-// OBSOLETE 
-// OBSOLETE /* Hook for the SYMBOL_CLASS of a parameter when decoding DBX symbol
-// OBSOLETE    information.  In the i960, parameters can be stored as locals or as
-// OBSOLETE    args, depending on the type of the debug record.
-// OBSOLETE 
-// OBSOLETE    From empirical observation, gcc960 uses N_LSYM to indicate
-// OBSOLETE    arguments passed in registers and then copied immediately
-// OBSOLETE    to the frame, and N_PSYM to indicate arguments passed in a
-// OBSOLETE    g14-relative argument block.  */
-// OBSOLETE 
-// OBSOLETE #define    DBX_PARM_SYMBOL_CLASS(type) ((type == N_LSYM)? LOC_LOCAL_ARG: LOC_ARG)
-// OBSOLETE 
-// OBSOLETE /* Offset from address of function to start of its code.
-// OBSOLETE    Zero on most machines.  */
-// OBSOLETE 
-// OBSOLETE #define FUNCTION_START_OFFSET 0
-// OBSOLETE 
-// OBSOLETE /* Advance ip across any function entry prologue instructions
-// OBSOLETE    to reach some "real" code.  */
-// OBSOLETE 
-// OBSOLETE #define SKIP_PROLOGUE(ip)  (i960_skip_prologue (ip))
-// OBSOLETE extern CORE_ADDR i960_skip_prologue ();
-// OBSOLETE 
-// OBSOLETE /* Immediately after a function call, return the saved ip.
-// OBSOLETE    Can't always go through the frames for this because on some machines
-// OBSOLETE    the new frame is not set up until the new function
-// OBSOLETE    executes some instructions.  */
-// OBSOLETE 
-// OBSOLETE #define SAVED_PC_AFTER_CALL(frame) (saved_pc_after_call (frame))
-// OBSOLETE extern CORE_ADDR saved_pc_after_call ();
-// OBSOLETE 
-// OBSOLETE /* Stack grows upward */
-// OBSOLETE 
-// OBSOLETE #define INNER_THAN(lhs,rhs) ((lhs) > (rhs))
-// OBSOLETE 
-// OBSOLETE /* Say how long (ordinary) registers are.  This is a piece of bogosity
-// OBSOLETE    used in push_word and a few other places; REGISTER_RAW_SIZE is the
-// OBSOLETE    real way to know how big a register is.  */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_SIZE 4
-// OBSOLETE 
-// OBSOLETE /* Number of machine registers */
-// OBSOLETE #define NUM_REGS 40
-// OBSOLETE 
-// OBSOLETE /* Initializer for an array of names of registers.
-// OBSOLETE    There should be NUM_REGS strings in this initializer.  */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_NAMES { \
-// OBSOLETE    /*  0 */ "pfp", "sp",  "rip", "r3",  "r4",  "r5",  "r6",  "r7", \
-// OBSOLETE    /*  8 */ "r8",  "r9",  "r10", "r11", "r12", "r13", "r14", "r15",\
-// OBSOLETE    /* 16 */ "g0",  "g1",  "g2",  "g3",  "g4",  "g5",  "g6",  "g7", \
-// OBSOLETE    /* 24 */ "g8",  "g9",  "g10", "g11", "g12", "g13", "g14", "fp", \
-// OBSOLETE    /* 32 */ "pcw", "ac",  "tc",  "ip",  "fp0", "fp1", "fp2", "fp3",\
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Register numbers of various important registers (used to index
-// OBSOLETE    into arrays of register names and register values).  */
-// OBSOLETE 
-// OBSOLETE #define R0_REGNUM   0              /* First local register           */
-// OBSOLETE #define SP_REGNUM   1              /* Contains address of top of stack */
-// OBSOLETE #define RIP_REGNUM  2              /* Return instruction pointer (local r2) */
-// OBSOLETE #define R15_REGNUM 15              /* Last local register            */
-// OBSOLETE #define G0_REGNUM  16              /* First global register  */
-// OBSOLETE #define G13_REGNUM 29              /* g13 - holds struct return address */
-// OBSOLETE #define G14_REGNUM 30              /* g14 - ptr to arg block / leafproc return address */
-// OBSOLETE #define FP_REGNUM  31              /* Contains address of executing stack frame */
-// OBSOLETE #define    PCW_REGNUM 32           /* process control word */
-// OBSOLETE #define    ACW_REGNUM 33           /* arithmetic control word */
-// OBSOLETE #define    TCW_REGNUM 34           /* trace control word */
-// OBSOLETE #define IP_REGNUM  35              /* instruction pointer */
-// OBSOLETE #define FP0_REGNUM 36              /* First floating point register */
-// OBSOLETE 
-// OBSOLETE /* Some registers have more than one name */
-// OBSOLETE 
-// OBSOLETE #define PC_REGNUM  IP_REGNUM       /* GDB refers to ip as the Program Counter */
-// OBSOLETE #define PFP_REGNUM R0_REGNUM       /* Previous frame pointer */
-// OBSOLETE 
-// OBSOLETE /* Total amount of space needed to store our copies of the machine's
-// OBSOLETE    register state, the array `registers'.  */
-// OBSOLETE #define REGISTER_BYTES ((36*4) + (4*10))
-// OBSOLETE 
-// OBSOLETE /* Index within `registers' of the first byte of the space for register N.  */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_BYTE(N) ( (N) < FP0_REGNUM ? \
-// OBSOLETE                            (4*(N)) : ((10*(N)) - (6*FP0_REGNUM)) )
-// OBSOLETE 
-// OBSOLETE /* The i960 has register windows, sort of.  */
-// OBSOLETE 
-// OBSOLETE extern void i960_get_saved_register (char *raw_buffer,
-// OBSOLETE                                 int *optimized,
-// OBSOLETE                                 CORE_ADDR *addrp,
-// OBSOLETE                                 struct frame_info *frame,
-// OBSOLETE                                 int regnum,
-// OBSOLETE                                 enum lval_type *lval);
-// OBSOLETE 
-// OBSOLETE #define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
-// OBSOLETE   i960_get_saved_register(raw_buffer, optimized, addrp, frame, regnum, lval)
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Number of bytes of storage in the actual machine representation
-// OBSOLETE    for register N.  On the i960, all regs are 4 bytes except for floating
-// OBSOLETE    point, which are 10.  NINDY only sends us 8 byte values for these,
-// OBSOLETE    which is a pain, but VxWorks handles this correctly, so we must.  */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_RAW_SIZE(N)               ( (N) < FP0_REGNUM ? 4 : 10 )
-// OBSOLETE 
-// OBSOLETE /* Number of bytes of storage in the program's representation for register N. */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_VIRTUAL_SIZE(N)   ( (N) < FP0_REGNUM ? 4 : 8 )
-// OBSOLETE 
-// OBSOLETE /* Largest value REGISTER_RAW_SIZE can have.  */
-// OBSOLETE 
-// OBSOLETE #define MAX_REGISTER_RAW_SIZE 10
-// OBSOLETE 
-// OBSOLETE /* Largest value REGISTER_VIRTUAL_SIZE can have.  */
-// OBSOLETE 
-// OBSOLETE #define MAX_REGISTER_VIRTUAL_SIZE 8
-// OBSOLETE 
-// OBSOLETE #include "floatformat.h"
-// OBSOLETE 
-// OBSOLETE #define TARGET_LONG_DOUBLE_FORMAT &floatformat_i960_ext
-// OBSOLETE 
-// OBSOLETE /* Return the GDB type object for the "standard" data type
-// OBSOLETE    of data in register N.  */
-// OBSOLETE 
-// OBSOLETE struct type *i960_register_type (int regnum);
-// OBSOLETE #define REGISTER_VIRTUAL_TYPE(N) i960_register_type (N)
-// OBSOLETE \f
-// OBSOLETE /* Macros for understanding function return values... */
-// OBSOLETE 
-// OBSOLETE /* Does the specified function use the "struct returning" convention
-// OBSOLETE    or the "value returning" convention?  The "value returning" convention
-// OBSOLETE    almost invariably returns the entire value in registers.  The
-// OBSOLETE    "struct returning" convention often returns the entire value in
-// OBSOLETE    memory, and passes a pointer (out of or into the function) saying
-// OBSOLETE    where the value (is or should go).
-// OBSOLETE 
-// OBSOLETE    Since this sometimes depends on whether it was compiled with GCC,
-// OBSOLETE    this is also an argument.  This is used in call_function to build a
-// OBSOLETE    stack, and in value_being_returned to print return values.
-// OBSOLETE 
-// OBSOLETE    On i960, a structure is returned in registers g0-g3, if it will fit.
-// OBSOLETE    If it's more than 16 bytes long, g13 pointed to it on entry.  */
-// OBSOLETE 
-// OBSOLETE extern use_struct_convention_fn i960_use_struct_convention;
-// OBSOLETE #define USE_STRUCT_CONVENTION(gcc_p, type) i960_use_struct_convention (gcc_p, type)
-// OBSOLETE 
-// OBSOLETE /* Extract from an array REGBUF containing the (raw) register state
-// OBSOLETE    a function return value of type TYPE, and copy that, in virtual format,
-// OBSOLETE    into VALBUF.  This is only called if USE_STRUCT_CONVENTION for this
-// OBSOLETE    type is 0.
-// OBSOLETE 
-// OBSOLETE    On the i960 we just take as many bytes as we need from G0 through G3.  */
-// OBSOLETE 
-// OBSOLETE #define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
-// OBSOLETE    memcpy(VALBUF, REGBUF+REGISTER_BYTE(G0_REGNUM), TYPE_LENGTH (TYPE))
-// OBSOLETE 
-// OBSOLETE /* If USE_STRUCT_CONVENTION produces a 1, 
-// OBSOLETE    extract from an array REGBUF containing the (raw) register state
-// OBSOLETE    the address in which a function should return its structure value,
-// OBSOLETE    as a CORE_ADDR (or an expression that can be used as one).
-// OBSOLETE 
-// OBSOLETE    Address of where to put structure was passed in in global
-// OBSOLETE    register g13 on entry.  God knows what's in g13 now.  The
-// OBSOLETE    (..., 0) below is to make it appear to return a value, though
-// OBSOLETE    actually all it does is call error().  */
-// OBSOLETE 
-// OBSOLETE #define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
-// OBSOLETE    (error("Don't know where large structure is returned on i960"), 0)
-// OBSOLETE 
-// OBSOLETE /* Write into appropriate registers a function return value
-// OBSOLETE    of type TYPE, given in virtual format, for "value returning" functions.
-// OBSOLETE 
-// OBSOLETE    For 'return' command:  not (yet) implemented for i960.  */
-// OBSOLETE 
-// OBSOLETE #define STORE_RETURN_VALUE(TYPE,VALBUF) \
-// OBSOLETE     error ("Returning values from functions is not implemented in i960 gdb")
-// OBSOLETE 
-// OBSOLETE /* Store the address of the place in which to copy the structure the
-// OBSOLETE    subroutine will return.  This is called from call_function. */
-// OBSOLETE 
-// OBSOLETE #define STORE_STRUCT_RETURN(ADDR, SP) \
-// OBSOLETE     error ("Returning values from functions is not implemented in i960 gdb")
-// OBSOLETE \f
-// OBSOLETE /* Describe the pointer in each stack frame to the previous stack frame
-// OBSOLETE    (its caller).  */
-// OBSOLETE 
-// OBSOLETE /* FRAME_CHAIN takes a frame's nominal address
-// OBSOLETE    and produces the frame's chain-pointer.
-// OBSOLETE 
-// OBSOLETE    However, if FRAME_CHAIN_VALID returns zero,
-// OBSOLETE    it means the given frame is the outermost one and has no caller.  */
-// OBSOLETE 
-// OBSOLETE /* We cache information about saved registers in the frame structure,
-// OBSOLETE    to save us from having to re-scan function prologues every time
-// OBSOLETE    a register in a non-current frame is accessed.  */
-// OBSOLETE 
-// OBSOLETE #define EXTRA_FRAME_INFO   \
-// OBSOLETE    struct frame_saved_regs *fsr;   \
-// OBSOLETE    CORE_ADDR arg_pointer;
-// OBSOLETE 
-// OBSOLETE /* Zero the frame_saved_regs pointer when the frame is initialized,
-// OBSOLETE    so that FRAME_FIND_SAVED_REGS () will know to allocate and
-// OBSOLETE    initialize a frame_saved_regs struct the first time it is called.
-// OBSOLETE    Set the arg_pointer to -1, which is not valid; 0 and other values
-// OBSOLETE    indicate real, cached values.  */
-// OBSOLETE 
-// OBSOLETE #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) \
-// OBSOLETE    ((fi)->fsr = 0, (fi)->arg_pointer = -1)
-// OBSOLETE 
-// OBSOLETE /* On the i960, we get the chain pointer by reading the PFP saved
-// OBSOLETE    on the stack and clearing the status bits.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_CHAIN(thisframe) \
-// OBSOLETE   (read_memory_integer (FRAME_FP(thisframe), 4) & ~0xf)
-// OBSOLETE 
-// OBSOLETE /* FRAME_CHAIN_VALID returns zero if the given frame is the outermost one
-// OBSOLETE    and has no caller.
-// OBSOLETE 
-// OBSOLETE    On the i960, each various target system type must define FRAME_CHAIN_VALID,
-// OBSOLETE    since it differs between NINDY and VxWorks, the two currently supported
-// OBSOLETE    targets types.  We leave it undefined here.  */
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* A macro that tells us whether the function invocation represented
-// OBSOLETE    by FI does not have a frame on the stack associated with it.  If it
-// OBSOLETE    does not, FRAMELESS is set to 1, else 0.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR leafproc_return (CORE_ADDR ip);
-// OBSOLETE #define FRAMELESS_FUNCTION_INVOCATION(FI) \
-// OBSOLETE   (leafproc_return ((FI)->pc) != 0)
-// OBSOLETE 
-// OBSOLETE /* Note that in the i960 architecture the return pointer is saved in the
-// OBSOLETE    *caller's* stack frame.
-// OBSOLETE 
-// OBSOLETE    Make sure to zero low-order bits because of bug in 960CA A-step part
-// OBSOLETE    (instruction addresses should always be word-aligned anyway).  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_SAVED_PC(frame) \
-// OBSOLETE                    ((read_memory_integer(FRAME_CHAIN(frame)+8,4)) & ~3)
-// OBSOLETE 
-// OBSOLETE /* On the i960, FRAME_ARGS_ADDRESS should return the value of
-// OBSOLETE    g14 as passed into the frame, if known.  We need a function for this.
-// OBSOLETE    We cache this value in the frame info if we've already looked it up.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_ARGS_ADDRESS(fi)     \
-// OBSOLETE   (((fi)->arg_pointer != -1)? (fi)->arg_pointer: frame_args_address (fi, 0))
-// OBSOLETE extern CORE_ADDR frame_args_address ();            /* i960-tdep.c */
-// OBSOLETE 
-// OBSOLETE /* This is the same except it should return 0 when
-// OBSOLETE    it does not really know where the args are, rather than guessing.
-// OBSOLETE    This value is not cached since it is only used infrequently.  */
-// OBSOLETE 
-// OBSOLETE #define    FRAME_ARGS_ADDRESS_CORRECT(fi)  (frame_args_address (fi, 1))
-// OBSOLETE 
-// OBSOLETE #define FRAME_LOCALS_ADDRESS(fi)   (fi)->frame
-// OBSOLETE 
-// OBSOLETE /* Set NUMARGS to the number of args passed to a frame.
-// OBSOLETE    Can return -1, meaning no way to tell.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_NUM_ARGS(fi) (-1)
-// OBSOLETE 
-// OBSOLETE /* Return number of bytes at start of arglist that are not really args.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_ARGS_SKIP 0
-// OBSOLETE 
-// OBSOLETE /* Produce the positions of the saved registers in a stack frame.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_FIND_SAVED_REGS(frame_info_addr, sr) \
-// OBSOLETE    frame_find_saved_regs (frame_info_addr, &sr)
-// OBSOLETE extern void frame_find_saved_regs ();      /* See i960-tdep.c */
-// OBSOLETE \f
-// OBSOLETE /* Things needed for making calls to functions in the inferior process */
-// OBSOLETE 
-// OBSOLETE /* Push an empty stack frame, to record the current ip, etc.
-// OBSOLETE 
-// OBSOLETE    Not (yet?) implemented for i960.  */
-// OBSOLETE 
-// OBSOLETE #define PUSH_DUMMY_FRAME   \
-// OBSOLETE error("Function calls into the inferior process are not supported on the i960")
-// OBSOLETE 
-// OBSOLETE /* Discard from the stack the innermost frame, restoring all registers.  */
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE void i960_pop_frame (void);
-// OBSOLETE #define POP_FRAME \
-// OBSOLETE    i960_pop_frame ()
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* This sequence of words is the instructions
-// OBSOLETE 
-// OBSOLETE    callx 0x00000000
-// OBSOLETE    fmark
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE /* #define CALL_DUMMY { 0x86003000, 0x00000000, 0x66003e00 } */
-// OBSOLETE 
-// OBSOLETE                                                                                                                                                        /* #define CALL_DUMMY_START_OFFSET 0 *//* Start execution at beginning of dummy */
-// OBSOLETE 
-// OBSOLETE /* Indicate that we don't support calling inferior child functions.  */
-// OBSOLETE 
-// OBSOLETE #undef CALL_DUMMY
-// OBSOLETE 
-// OBSOLETE /* Insert the specified number of args and function address
-// OBSOLETE    into a call sequence of the above form stored at 'dummyname'.
-// OBSOLETE 
-// OBSOLETE    Ignore arg count on i960.  */
-// OBSOLETE 
-// OBSOLETE /* #define FIX_CALL_DUMMY(dummyname, fun, nargs) *(((int *)dummyname)+1) = fun */
-// OBSOLETE 
-// OBSOLETE #undef FIX_CALL_DUMMY
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Interface definitions for kernel debugger KDB */
-// OBSOLETE /* (Not relevant to i960.) */
diff --git a/gdb/config/i960/tm-mon960.h b/gdb/config/i960/tm-mon960.h
deleted file mode 100644 (file)
index dedce0e..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-// OBSOLETE /* Parameters for Intel 960 running MON960 monitor, for GDB, the GNU debugger.
-// OBSOLETE    Copyright 1990, 1991, 1996, 1999, 2000 Free Software Foundation, Inc.
-// OBSOLETE    Contributed by Intel Corporation and Cygnus Support.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /*****************************************************************************
-// OBSOLETE  * Definitions to target GDB to an i960 debugged over a serial line.
-// OBSOLETE  ******************************************************************************/
-// OBSOLETE 
-// OBSOLETE #include "i960/tm-i960.h"
-// OBSOLETE 
-// OBSOLETE /* forward declarations */
-// OBSOLETE struct frame_info;
-// OBSOLETE 
-// OBSOLETE /* redefined from tm-i960.h */
-// OBSOLETE /* Number of machine registers */
-// OBSOLETE #undef NUM_REGS
-// OBSOLETE #define NUM_REGS 40
-// OBSOLETE 
-// OBSOLETE /* Initializer for an array of names of registers.
-// OBSOLETE    There should be NUM_REGS strings in this initializer.  */
-// OBSOLETE #undef REGISTER_NAMES
-// OBSOLETE #define REGISTER_NAMES { \
-// OBSOLETE    /*  0 */ "pfp", "sp",  "rip", "r3",  "r4",  "r5",  "r6",  "r7", \
-// OBSOLETE    /*  8 */ "r8",  "r9",  "r10", "r11", "r12", "r13", "r14", "r15",\
-// OBSOLETE    /* 16 */ "g0",  "g1",  "g2",  "g3",  "g4",  "g5",  "g6",  "g7", \
-// OBSOLETE    /* 24 */ "g8",  "g9",  "g10", "g11", "g12", "g13", "g14", "fp", \
-// OBSOLETE    /* 32 */ "pc",  "ac",  "tc",  "ip",  "fp0", "fp1", "fp2", "fp3",\
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Override the standard gdb prompt when compiled for this target.  */
-// OBSOLETE 
-// OBSOLETE #define    DEFAULT_PROMPT  "(gdb960) "
-// OBSOLETE 
-// OBSOLETE /* FRAME_CHAIN_VALID returns zero if the given frame is the outermost one
-// OBSOLETE    and has no caller.
-// OBSOLETE 
-// OBSOLETE    On the i960, each various target system type defines FRAME_CHAIN_VALID,
-// OBSOLETE    since it differs between Nindy, Mon960 and VxWorks, the currently supported
-// OBSOLETE    target types.  */
-// OBSOLETE 
-// OBSOLETE extern int mon960_frame_chain_valid (CORE_ADDR, struct frame_info *);
-// OBSOLETE #define    FRAME_CHAIN_VALID(chain, thisframe) mon960_frame_chain_valid (chain, thisframe)
-// OBSOLETE 
-// OBSOLETE /* Sequence of bytes for breakpoint instruction */
-// OBSOLETE 
-// OBSOLETE #define BREAKPOINT {0x00, 0x3e, 0x00, 0x66}
-// OBSOLETE 
-// OBSOLETE /* Amount ip must be decremented by after a breakpoint.
-// OBSOLETE  * This is often the number of bytes in BREAKPOINT but not always.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE #define DECR_PC_AFTER_BREAK 4
diff --git a/gdb/config/i960/tm-nindy960.h b/gdb/config/i960/tm-nindy960.h
deleted file mode 100644 (file)
index 6a6dca2..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-// OBSOLETE /* Parameters for Intel 960 running NINDY monitor, for GDB, the GNU debugger.
-// OBSOLETE    Copyright 1990, 1991, 1996, 1999, 2000 Free Software Foundation, Inc.
-// OBSOLETE    Contributed by Intel Corporation and Cygnus Support.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /*****************************************************************************
-// OBSOLETE  * Definitions to target GDB to an i960 debugged over a serial line.
-// OBSOLETE  ******************************************************************************/
-// OBSOLETE 
-// OBSOLETE #include "i960/tm-i960.h"
-// OBSOLETE 
-// OBSOLETE /* forward declarations */
-// OBSOLETE struct frame_info;
-// OBSOLETE 
-// OBSOLETE /* Override the standard gdb prompt when compiled for this target.  */
-// OBSOLETE 
-// OBSOLETE #define    DEFAULT_PROMPT  "(gdb960) "
-// OBSOLETE 
-// OBSOLETE /* Additional command line options accepted by nindy gdb's, for handling
-// OBSOLETE    the remote-nindy.c interface.  These should really be target-specific
-// OBSOLETE    rather than architecture-specific.  */
-// OBSOLETE 
-// OBSOLETE extern int nindy_old_protocol;     /* nonzero if old NINDY serial protocol */
-// OBSOLETE extern int nindy_initial_brk;      /* Send a BREAK to reset board first */
-// OBSOLETE extern char *nindy_ttyname;        /* Name of serial port to talk to nindy */
-// OBSOLETE 
-// OBSOLETE #define    ADDITIONAL_OPTIONS \
-// OBSOLETE    {"O", no_argument, &nindy_old_protocol, 1},     \
-// OBSOLETE    {"brk", no_argument, &nindy_initial_brk, 1},    \
-// OBSOLETE    {"ser", required_argument, 0, 1004},    /* 1004 is magic cookie for ADDL_CASES */
-// OBSOLETE 
-// OBSOLETE #define    ADDITIONAL_OPTION_CASES \
-// OBSOLETE    case 1004:      /* -ser option:  remote nindy auto-start */     \
-// OBSOLETE      nindy_ttyname = optarg;       \
-// OBSOLETE      break;
-// OBSOLETE 
-// OBSOLETE #define    ADDITIONAL_OPTION_HELP \
-// OBSOLETE    "\
-// OBSOLETE   -O                Use old protocol to talk to a Nindy target\n\
-// OBSOLETE   -brk              Send a break to a Nindy target to reset it.\n\
-// OBSOLETE   -ser SERIAL       Open remote Nindy session to SERIAL port.\n\
-// OBSOLETE "
-// OBSOLETE 
-// OBSOLETE /* If specified on the command line, open tty for talking to nindy,
-// OBSOLETE    and download the executable file if one was specified.  */
-// OBSOLETE 
-// OBSOLETE extern void nindy_open (char *name, int from_tty);
-// OBSOLETE #define    ADDITIONAL_OPTION_HANDLER                                       \
-// OBSOLETE    if (nindy_ttyname != NULL)                                      \
-// OBSOLETE           {                                                                \
-// OBSOLETE             if (catch_command_errors (nindy_open, nindy_ttyname,   \
-// OBSOLETE                                  !batch, RETURN_MASK_ALL))         \
-// OBSOLETE          {                                                         \
-// OBSOLETE                 if (execarg != NULL)                                       \
-// OBSOLETE                   catch_command_errors (target_load, execarg, !batch,      \
-// OBSOLETE                                    RETURN_MASK_ALL);               \
-// OBSOLETE          }                                                         \
-// OBSOLETE      }
-// OBSOLETE 
-// OBSOLETE /* If configured for i960 target, we take control before main loop
-// OBSOLETE    and demand that we configure for a nindy target.  */
-// OBSOLETE 
-// OBSOLETE #define    BEFORE_MAIN_LOOP_HOOK   \
-// OBSOLETE   nindy_before_main_loop();
-// OBSOLETE 
-// OBSOLETE extern void
-// OBSOLETE   nindy_before_main_loop ();       /* In remote-nindy.c */
-// OBSOLETE 
-// OBSOLETE /* FRAME_CHAIN_VALID returns zero if the given frame is the outermost one
-// OBSOLETE    and has no caller.
-// OBSOLETE 
-// OBSOLETE    On the i960, each various target system type defines FRAME_CHAIN_VALID,
-// OBSOLETE    since it differs between NINDY and VxWorks, the two currently supported
-// OBSOLETE    targets types.  */
-// OBSOLETE 
-// OBSOLETE extern int nindy_frame_chain_valid (CORE_ADDR, struct frame_info *);
-// OBSOLETE #define    FRAME_CHAIN_VALID(chain, thisframe) nindy_frame_chain_valid (chain, thisframe)
-// OBSOLETE 
-// OBSOLETE extern int
-// OBSOLETE   nindy_frame_chain_valid ();      /* See nindy-tdep.c */
-// OBSOLETE 
-// OBSOLETE /* Sequence of bytes for breakpoint instruction */
-// OBSOLETE 
-// OBSOLETE #define BREAKPOINT {0x00, 0x3e, 0x00, 0x66}
-// OBSOLETE 
-// OBSOLETE /* Amount ip must be decremented by after a breakpoint.
-// OBSOLETE  * This is often the number of bytes in BREAKPOINT but not always.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE #define DECR_PC_AFTER_BREAK 0
diff --git a/gdb/config/i960/tm-vx960.h b/gdb/config/i960/tm-vx960.h
deleted file mode 100644 (file)
index 44ff627..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// OBSOLETE /* Parameters for VxWorks Intel 960's, for GDB, the GNU debugger.
-// OBSOLETE    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1998, 1999
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE    Contributed by Cygnus Support.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "i960/tm-i960.h"
-// OBSOLETE #include "config/tm-vxworks.h"
-// OBSOLETE 
-// OBSOLETE /* Under VxWorks the IP isn't filled in.  Skip it, go with RIP, which has
-// OBSOLETE    the real value.  */
-// OBSOLETE #undef PC_REGNUM
-// OBSOLETE #define PC_REGNUM RIP_REGNUM
-// OBSOLETE 
-// OBSOLETE /* We have more complex, useful breakpoints on the target.
-// OBSOLETE    Amount ip must be decremented by after a breakpoint.  */
-// OBSOLETE 
-// OBSOLETE #define    DECR_PC_AFTER_BREAK     0
-// OBSOLETE 
-// OBSOLETE /* We are guaranteed to have a zero frame pointer at bottom of stack, too. */
-// OBSOLETE 
-// OBSOLETE #define FRAME_CHAIN_VALID(chain, thisframe) nonnull_frame_chain_valid (chain, thisframe)
-// OBSOLETE 
-// OBSOLETE /* Breakpoint patching is handled at the target end in VxWorks.  */
-// OBSOLETE /* #define BREAKPOINT {0x00, 0x3e, 0x00, 0x66} */
-// OBSOLETE 
-// OBSOLETE /* Number of registers in a ptrace_getregs call. */
-// OBSOLETE 
-// OBSOLETE #define VX_NUM_REGS (16 + 16 + 3)
-// OBSOLETE 
-// OBSOLETE /* Number of registers in a ptrace_getfpregs call. */
-// OBSOLETE 
-// OBSOLETE     /* @@ Can't use this -- the rdb library for the 960 target
-// OBSOLETE        doesn't support setting or retrieving FP regs.  KR  */
-// OBSOLETE 
-// OBSOLETE /* #define VX_SIZE_FPREGS (REGISTER_RAW_SIZE (FP0_REGNUM) * 4) */
diff --git a/gdb/config/i960/vxworks960.mt b/gdb/config/i960/vxworks960.mt
deleted file mode 100644 (file)
index e7f04c4..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# OBSOLETE # Target: VxWorks running on an Intel 960
-# OBSOLETE TDEPFILES= i960-tdep.o remote-vx.o remote-vx960.o xdr_ld.o xdr_ptrace.o xdr_rdb.o
-# OBSOLETE TM_FILE= tm-vx960.h
-# OBSOLETE 
-# OBSOLETE # Define this for the vx-share routines, which don't see param.h.
-# OBSOLETE MT_CFLAGS= -DI80960
index f38a760deb8a3ef73f3e698e1d54fbda30eb90b9..70a30a8a55774d969f4708574973adc1ebf2db49 100644 (file)
@@ -109,8 +109,8 @@ struct value;
 extern void m32r_init_extra_frame_info (struct frame_info *fi);
 /* mvs_check  INIT_EXTRA_FRAME_INFO */
 #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) m32r_init_extra_frame_info (fi)
-/* mvs_no_check  INIT_FRAME_PC */
-#define INIT_FRAME_PC          /* Not necessary */
+/* mvs_no_check  DEPRECATED_INIT_FRAME_PC */
+#define DEPRECATED_INIT_FRAME_PC               init_frame_pc_noop
 
 extern void
 m32r_frame_find_saved_regs (struct frame_info *fi,
@@ -191,7 +191,7 @@ extern use_struct_convention_fn m32r_use_struct_convention;
 /* generic dummy frame stuff */
 
 #define PUSH_DUMMY_FRAME             generic_push_dummy_frame ()
-#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
+#define DEPRECATED_PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
 
 
 /* target-specific dummy_frame stuff */
@@ -224,7 +224,7 @@ extern CORE_ADDR m32r_push_arguments (int nargs,
      deprecated_generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
 
 
-#define USE_GENERIC_DUMMY_FRAMES 1
+#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 1
 #define CALL_DUMMY                   {0}
 #define CALL_DUMMY_LENGTH            (0)
 #define CALL_DUMMY_START_OFFSET      (0)
diff --git a/gdb/config/m68k/apollo68b.mh b/gdb/config/m68k/apollo68b.mh
deleted file mode 100644 (file)
index 99d034b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# OBSOLETE # Host: Apollo m68k, BSD mode.
-# OBSOLETE 
-# OBSOLETE XM_FILE= xm-apollo68b.h
-# OBSOLETE NAT_FILE= nm-apollo68b.h
-# OBSOLETE NATDEPFILES= infptrace.o inftarg.o fork-child.o a68v-nat.o
diff --git a/gdb/config/m68k/apollo68b.mt b/gdb/config/m68k/apollo68b.mt
deleted file mode 100644 (file)
index 11c0c02..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# OBSOLETE # Target: Apollo m68k in BSD mode
-# OBSOLETE TDEPFILES= m68k-tdep.o dstread.o
-# OBSOLETE TM_FILE= tm-apollo68b.h
diff --git a/gdb/config/m68k/apollo68v.mh b/gdb/config/m68k/apollo68v.mh
deleted file mode 100644 (file)
index 4ab84f0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-# OBSOLETE # Host: Apollo, System V mode (?)
-# OBSOLETE 
-# OBSOLETE XM_FILE= xm-apollo68v.h
-# OBSOLETE XM_CLIBS= -lPW
-# OBSOLETE 
-# OBSOLETE NAT_FILE= nm-apollo68v.h
-# OBSOLETE NATDEPFILES= infptrace.o inftarg.o fork-child.o a68v-nat.o
-# OBSOLETE 
-# OBSOLETE RANLIB=echo >/dev/null
-# OBSOLETE CC= cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_SYS_FILE
diff --git a/gdb/config/m68k/hp300bsd.mh b/gdb/config/m68k/hp300bsd.mh
deleted file mode 100644 (file)
index 76aa9a5..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# OBSOLETE # Host: Hewlett-Packard 9000 series 300, running BSD
-# OBSOLETE 
-# OBSOLETE XM_FILE= xm-hp300bsd.h
-# OBSOLETE 
-# OBSOLETE NAT_FILE= nm-hp300bsd.h
-# OBSOLETE NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o core-aout.o
diff --git a/gdb/config/m68k/hp300bsd.mt b/gdb/config/m68k/hp300bsd.mt
deleted file mode 100644 (file)
index c3225e9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# OBSOLETE # Target: Hewlett-Packard 9000 series 300, running BSD
-# OBSOLETE TDEPFILES= m68k-tdep.o
-# OBSOLETE TM_FILE= tm-hp300bsd.h
diff --git a/gdb/config/m68k/hp300hpux.mh b/gdb/config/m68k/hp300hpux.mh
deleted file mode 100644 (file)
index 410c03c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# OBSOLETE # Host: Hewlett-Packard 9000 series 300, running HPUX
-# OBSOLETE # The following is true because gcc uses a different .o file format
-# OBSOLETE # than the native HPUX compiler
-# OBSOLETE 
-# OBSOLETE XM_FILE= xm-hp300hpux.h
-# OBSOLETE 
-# OBSOLETE NAT_FILE= nm-hp300hpux.h
-# OBSOLETE NATDEPFILES= infptrace.o inftarg.o fork-child.o hp300ux-nat.o corelow.o core-aout.o
diff --git a/gdb/config/m68k/hp300hpux.mt b/gdb/config/m68k/hp300hpux.mt
deleted file mode 100644 (file)
index a1848af..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# OBSOLETE # Target: Hewlett-Packard 9000 series 300, running HPUX
-# OBSOLETE 
-# OBSOLETE #msg Note that GDB can only read symbols from programs that were
-# OBSOLETE #msg compiled with GCC using GAS.
-# OBSOLETE #msg
-# OBSOLETE 
-# OBSOLETE TDEPFILES= m68k-tdep.o
-# OBSOLETE TM_FILE= tm-hp300hpux.h
index 7598fc5331c4bc2270bf62680e044a60bbdcb513..42171335aaa613c63f4811d1b684ae98d678544a 100644 (file)
@@ -1,3 +1,3 @@
 # Target: Motorola m68k with a.out and ELF
-TDEPFILES= m68k-tdep.o solib.o solib-svr4.o solib-legacy.o
+TDEPFILES= m68k-tdep.o m68klinux-tdep.o solib.o solib-svr4.o solib-legacy.o
 TM_FILE= tm-linux.h
index 0bae116537e046bbaaca6f9b983af0c1fdb54896..4990bb0dabc330afc94ac2e4853506aab9193710 100644 (file)
@@ -21,6 +21,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "regcache.h"
+#include "m68k-tdep.h"
 
 /* Number of traps that happen between exec'ing the shell to run an
    inferior, and when we finally get to the inferior code.  This is 2
@@ -46,7 +47,7 @@
                                    VALBUF);                            \
     }                                                                  \
   else if (TYPE_CODE (TYPE) == TYPE_CODE_PTR)                          \
-    memcpy (VALBUF, (char *) (REGBUF) + REGISTER_BYTE (A0_REGNUM),     \
+    memcpy (VALBUF, (char *) (REGBUF) + REGISTER_BYTE (M68K_A0_REGNUM),        \
            TYPE_LENGTH (TYPE));                                        \
   else                                                                 \
     memcpy (VALBUF,                                                    \
     {                                                                  \
       char raw_buffer[REGISTER_RAW_SIZE (FP0_REGNUM)];                 \
       REGISTER_CONVERT_TO_RAW (TYPE, FP0_REGNUM, VALBUF, raw_buffer);  \
-      deprecated_write_register_bytes (REGISTER_BYTE (FP0_REGNUM),                     \
-                           raw_buffer, TYPE_LENGTH (TYPE));            \
+      deprecated_write_register_bytes (REGISTER_BYTE (FP0_REGNUM),     \
+                                      raw_buffer, TYPE_LENGTH (TYPE)); \
     }                                                                  \
   else                                                                 \
     {                                                                  \
       if (TYPE_CODE (TYPE) == TYPE_CODE_PTR)                           \
-       deprecated_write_register_bytes (REGISTER_BYTE (A0_REGNUM), VALBUF,     \
-                             TYPE_LENGTH (TYPE));                      \
-      deprecated_write_register_bytes (0, VALBUF, TYPE_LENGTH (TYPE));         \
+       deprecated_write_register_bytes (REGISTER_BYTE (M68K_A0_REGNUM), VALBUF, \
+                                        TYPE_LENGTH (TYPE));           \
+      deprecated_write_register_bytes (0, VALBUF, TYPE_LENGTH (TYPE)); \
     }                                                                  \
 }
 
@@ -85,7 +86,7 @@
 
 #undef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS
 #define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
-  (*(CORE_ADDR *)((char *) (REGBUF) + REGISTER_BYTE (A0_REGNUM)))
+  (*(CORE_ADDR *)((char *) (REGBUF) + REGISTER_BYTE (M68K_A0_REGNUM)))
 
 /* Offsets (in target ints) into jmp_buf.  */
 
index 8b922815cf600d72cf5f5c31286fc8b42fc4828a..523cc4a01936333a3e441af6fafc15fb0188d701 100644 (file)
 #include "regcache.h"
 
 #define GDB_MULTI_ARCH GDB_MULTI_ARCH_PARTIAL
-
-/* Generic 68000 stuff, to be included by other tm-*.h files.  */
-
-/* D0_REGNM and A0_REGNUM must be defined here because they are
-   used by the monitor.  */
-
-#define D0_REGNUM 0
-#define A0_REGNUM 8
-
diff --git a/gdb/config/m88k/delta88.mh b/gdb/config/m88k/delta88.mh
deleted file mode 100644 (file)
index 3c079fe..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# OBSOLETE # Host: Motorola 88k running SVR3
-# OBSOLETE 
-# OBSOLETE XM_FILE= xm-delta88.h
-# OBSOLETE 
-# OBSOLETE NAT_FILE= nm-m88k.h
-# OBSOLETE NATDEPFILES= infptrace.o inftarg.o fork-child.o m88k-nat.o corelow.o core-aout.o
diff --git a/gdb/config/m88k/delta88.mt b/gdb/config/m88k/delta88.mt
deleted file mode 100644 (file)
index 83d4ad1..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# OBSOLETE # Target: Motorola 88k running SVR3
-# OBSOLETE TDEPFILES= m88k-tdep.o
-# OBSOLETE TM_FILE= tm-delta88.h
diff --git a/gdb/config/m88k/delta88v4.mh b/gdb/config/m88k/delta88v4.mh
deleted file mode 100644 (file)
index bc2abc5..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# OBSOLETE # Host: Motorola 88k running SVR4
-# OBSOLETE 
-# OBSOLETE XM_FILE= xm-delta88v4.h
-# OBSOLETE 
-# OBSOLETE NAT_FILE= nm-delta88v4.h
-# OBSOLETE NATDEPFILES= fork-child.o m88k-nat.o corelow.o core-regset.o \
-# OBSOLETE     solib.o solib-svr4.o solib-legacy.o \
-# OBSOLETE     procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o
diff --git a/gdb/config/m88k/delta88v4.mt b/gdb/config/m88k/delta88v4.mt
deleted file mode 100644 (file)
index c8f9df2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# OBSOLETE # Target: Motorola 88k running SVR4
-# OBSOLETE TDEPFILES= m88k-tdep.o
-# OBSOLETE TM_FILE= tm-delta88v4.h
diff --git a/gdb/config/m88k/m88k.mh b/gdb/config/m88k/m88k.mh
deleted file mode 100644 (file)
index a09e7a1..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# OBSOLETE # Host: Motorola 88000 running DGUX
-# OBSOLETE XM_FILE= xm-dgux.h
-# OBSOLETE NAT_FILE= nm-m88k.h
-# OBSOLETE NATDEPFILES= infptrace.o inftarg.o fork-child.o m88k-nat.o
diff --git a/gdb/config/m88k/m88k.mt b/gdb/config/m88k/m88k.mt
deleted file mode 100644 (file)
index c4068e0..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# OBSOLETE # Target: Motorola 88k Binary Compatibility Standard
-# OBSOLETE TDEPFILES= m88k-tdep.o remote-bug.o
-# OBSOLETE TM_FILE= tm-m88k.h
diff --git a/gdb/config/m88k/nm-delta88v4.h b/gdb/config/m88k/nm-delta88v4.h
deleted file mode 100644 (file)
index 976cfa0..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-// OBSOLETE /* Native machine description for Motorola Delta 88 box, for GDB.
-// OBSOLETE    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "m88k/nm-m88k.h"
-// OBSOLETE #include "config/nm-sysv4.h"
diff --git a/gdb/config/m88k/nm-m88k.h b/gdb/config/m88k/nm-m88k.h
deleted file mode 100644 (file)
index 6521a2a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-// OBSOLETE /* Native support macros for m88k, for GDB.
-// OBSOLETE    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #define FETCH_INFERIOR_REGISTERS
-// OBSOLETE 
-// OBSOLETE #define REGISTER_U_ADDR(addr, blockend, regno) \
-// OBSOLETE         (addr) = m88k_register_u_addr ((blockend),(regno));
diff --git a/gdb/config/m88k/tm-delta88.h b/gdb/config/m88k/tm-delta88.h
deleted file mode 100644 (file)
index f63fca3..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// OBSOLETE /* Target machine description for Motorola Delta 88 box, for GDB.
-// OBSOLETE    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1994
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "m88k/tm-m88k.h"
-// OBSOLETE 
-// OBSOLETE #define DELTA88
-// OBSOLETE 
-// OBSOLETE #define IN_SIGTRAMP(pc, name) ((name) && STREQ ("_sigcode", (name)))
-// OBSOLETE #define SIGTRAMP_FRAME_FIXUP(frame) (frame) += 0x20
-// OBSOLETE #define SIGTRAMP_SP_FIXUP(sp) (sp) = read_memory_integer((sp), 4)
diff --git a/gdb/config/m88k/tm-delta88v4.h b/gdb/config/m88k/tm-delta88v4.h
deleted file mode 100644 (file)
index e343a05..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// OBSOLETE /* Target machine description for Motorola Delta 88 box, for GDB.
-// OBSOLETE    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1994, 1998, 1999
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #define DELTA88
-// OBSOLETE 
-// OBSOLETE #include "m88k/tm-m88k.h"
-// OBSOLETE #include "config/tm-sysv4.h"
-// OBSOLETE 
-// OBSOLETE /* If we don't define this, backtraces go on forever.  */
-// OBSOLETE #define FRAME_CHAIN_VALID(fp,fi) func_frame_chain_valid (fp, fi)
-// OBSOLETE 
-// OBSOLETE #define IN_SIGTRAMP(pc, name) ((name) && (STREQ ("signalhandler", (name)) \
-// OBSOLETE                                           || STREQ("sigacthandler", (name))))
-// OBSOLETE #define SIGTRAMP_SP_FIXUP(sp) (sp) = read_memory_integer((sp)+0xcd8, 4)
diff --git a/gdb/config/m88k/tm-m88k.h b/gdb/config/m88k/tm-m88k.h
deleted file mode 100644 (file)
index 2f08f1a..0000000
+++ /dev/null
@@ -1,587 +0,0 @@
-// OBSOLETE /* Target machine description for generic Motorola 88000, for GDB.
-// OBSOLETE 
-// OBSOLETE    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1994, 1996,
-// OBSOLETE    1998, 1999, 2000, 2002 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "doublest.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE /* g++ support is not yet included.  */
-// OBSOLETE 
-// OBSOLETE /* We cache information about saved registers in the frame structure,
-// OBSOLETE    to save us from having to re-scan function prologues every time
-// OBSOLETE    a register in a non-current frame is accessed.  */
-// OBSOLETE 
-// OBSOLETE #define EXTRA_FRAME_INFO   \
-// OBSOLETE    struct frame_saved_regs *fsr;   \
-// OBSOLETE    CORE_ADDR locals_pointer;       \
-// OBSOLETE    CORE_ADDR args_pointer;
-// OBSOLETE 
-// OBSOLETE /* Zero the frame_saved_regs pointer when the frame is initialized,
-// OBSOLETE    so that FRAME_FIND_SAVED_REGS () will know to allocate and
-// OBSOLETE    initialize a frame_saved_regs struct the first time it is called.
-// OBSOLETE    Set the arg_pointer to -1, which is not valid; 0 and other values
-// OBSOLETE    indicate real, cached values.  */
-// OBSOLETE 
-// OBSOLETE #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) \
-// OBSOLETE    init_extra_frame_info (fromleaf, fi)
-// OBSOLETE extern void init_extra_frame_info ();
-// OBSOLETE 
-// OBSOLETE /* Offset from address of function to start of its code.
-// OBSOLETE    Zero on most machines.  */
-// OBSOLETE 
-// OBSOLETE #define FUNCTION_START_OFFSET 0
-// OBSOLETE 
-// OBSOLETE /* Advance PC across any function entry prologue instructions
-// OBSOLETE    to reach some "real" code.  */
-// OBSOLETE 
-// OBSOLETE extern CORE_ADDR m88k_skip_prologue (CORE_ADDR);
-// OBSOLETE #define SKIP_PROLOGUE(frompc) (m88k_skip_prologue (frompc))
-// OBSOLETE 
-// OBSOLETE /* The m88k kernel aligns all instructions on 4-byte boundaries.  The
-// OBSOLETE    kernel also uses the least significant two bits for its own hocus
-// OBSOLETE    pocus.  When gdb receives an address from the kernel, it needs to
-// OBSOLETE    preserve those right-most two bits, but gdb also needs to be careful
-// OBSOLETE    to realize that those two bits are not really a part of the address
-// OBSOLETE    of an instruction.  Shrug.  */
-// OBSOLETE 
-// OBSOLETE extern CORE_ADDR m88k_addr_bits_remove (CORE_ADDR);
-// OBSOLETE #define ADDR_BITS_REMOVE(addr) m88k_addr_bits_remove (addr)
-// OBSOLETE 
-// OBSOLETE /* Immediately after a function call, return the saved pc.
-// OBSOLETE    Can't always go through the frames for this because on some machines
-// OBSOLETE    the new frame is not set up until the new function executes
-// OBSOLETE    some instructions.  */
-// OBSOLETE 
-// OBSOLETE #define SAVED_PC_AFTER_CALL(frame) \
-// OBSOLETE   (ADDR_BITS_REMOVE (read_register (SRP_REGNUM)))
-// OBSOLETE 
-// OBSOLETE /* Stack grows downward.  */
-// OBSOLETE 
-// OBSOLETE #define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
-// OBSOLETE 
-// OBSOLETE /* Sequence of bytes for breakpoint instruction.  */
-// OBSOLETE 
-// OBSOLETE /* instruction 0xF000D1FF is 'tb0 0,r0,511'
-// OBSOLETE    If Bit bit 0 of r0 is clear (always true),
-// OBSOLETE    initiate exception processing (trap).
-// OBSOLETE  */
-// OBSOLETE #define BREAKPOINT {0xF0, 0x00, 0xD1, 0xFF}
-// OBSOLETE 
-// OBSOLETE /* Amount PC must be decremented by after a breakpoint.
-// OBSOLETE    This is often the number of bytes in BREAKPOINT
-// OBSOLETE    but not always.  */
-// OBSOLETE 
-// OBSOLETE #define DECR_PC_AFTER_BREAK 0
-// OBSOLETE 
-// OBSOLETE /* Say how long (ordinary) registers are.  This is a piece of bogosity
-// OBSOLETE    used in push_word and a few other places; REGISTER_RAW_SIZE is the
-// OBSOLETE    real way to know how big a register is.  */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_SIZE 4
-// OBSOLETE 
-// OBSOLETE /* Number of machine registers */
-// OBSOLETE 
-// OBSOLETE #define GP_REGS (38)
-// OBSOLETE #define FP_REGS (32)
-// OBSOLETE #define NUM_REGS (GP_REGS + FP_REGS)
-// OBSOLETE 
-// OBSOLETE /* Initializer for an array of names of registers.
-// OBSOLETE    There should be NUM_REGS strings in this initializer.  */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_NAMES {\
-// OBSOLETE                      "r0",\
-// OBSOLETE                      "r1",\
-// OBSOLETE                      "r2",\
-// OBSOLETE                      "r3",\
-// OBSOLETE                      "r4",\
-// OBSOLETE                      "r5",\
-// OBSOLETE                      "r6",\
-// OBSOLETE                      "r7",\
-// OBSOLETE                      "r8",\
-// OBSOLETE                      "r9",\
-// OBSOLETE                      "r10",\
-// OBSOLETE                      "r11",\
-// OBSOLETE                      "r12",\
-// OBSOLETE                      "r13",\
-// OBSOLETE                      "r14",\
-// OBSOLETE                      "r15",\
-// OBSOLETE                      "r16",\
-// OBSOLETE                      "r17",\
-// OBSOLETE                      "r18",\
-// OBSOLETE                      "r19",\
-// OBSOLETE                      "r20",\
-// OBSOLETE                      "r21",\
-// OBSOLETE                      "r22",\
-// OBSOLETE                      "r23",\
-// OBSOLETE                      "r24",\
-// OBSOLETE                      "r25",\
-// OBSOLETE                      "r26",\
-// OBSOLETE                      "r27",\
-// OBSOLETE                      "r28",\
-// OBSOLETE                      "r29",\
-// OBSOLETE                      "r30",\
-// OBSOLETE                      "r31",\
-// OBSOLETE                      "psr",\
-// OBSOLETE                      "fpsr",\
-// OBSOLETE                      "fpcr",\
-// OBSOLETE                      "sxip",\
-// OBSOLETE                      "snip",\
-// OBSOLETE                      "sfip",\
-// OBSOLETE                      "x0",\
-// OBSOLETE                      "x1",\
-// OBSOLETE                      "x2",\
-// OBSOLETE                      "x3",\
-// OBSOLETE                      "x4",\
-// OBSOLETE                      "x5",\
-// OBSOLETE                      "x6",\
-// OBSOLETE                      "x7",\
-// OBSOLETE                      "x8",\
-// OBSOLETE                      "x9",\
-// OBSOLETE                      "x10",\
-// OBSOLETE                      "x11",\
-// OBSOLETE                      "x12",\
-// OBSOLETE                      "x13",\
-// OBSOLETE                      "x14",\
-// OBSOLETE                      "x15",\
-// OBSOLETE                      "x16",\
-// OBSOLETE                      "x17",\
-// OBSOLETE                      "x18",\
-// OBSOLETE                      "x19",\
-// OBSOLETE                      "x20",\
-// OBSOLETE                      "x21",\
-// OBSOLETE                      "x22",\
-// OBSOLETE                      "x23",\
-// OBSOLETE                      "x24",\
-// OBSOLETE                      "x25",\
-// OBSOLETE                      "x26",\
-// OBSOLETE                      "x27",\
-// OBSOLETE                      "x28",\
-// OBSOLETE                      "x29",\
-// OBSOLETE                      "x30",\
-// OBSOLETE                      "x31",\
-// OBSOLETE                      "vbr",\
-// OBSOLETE                      "dmt0",\
-// OBSOLETE                      "dmd0",\
-// OBSOLETE                      "dma0",\
-// OBSOLETE                      "dmt1",\
-// OBSOLETE                      "dmd1",\
-// OBSOLETE                      "dma1",\
-// OBSOLETE                      "dmt2",\
-// OBSOLETE                      "dmd2",\
-// OBSOLETE                      "dma2",\
-// OBSOLETE                      "sr0",\
-// OBSOLETE                      "sr1",\
-// OBSOLETE                      "sr2",\
-// OBSOLETE                      "sr3",\
-// OBSOLETE                      "fpecr",\
-// OBSOLETE                      "fphs1",\
-// OBSOLETE                      "fpls1",\
-// OBSOLETE                      "fphs2",\
-// OBSOLETE                      "fpls2",\
-// OBSOLETE                      "fppt",\
-// OBSOLETE                      "fprh",\
-// OBSOLETE                      "fprl",\
-// OBSOLETE                      "fpit",\
-// OBSOLETE                      "fpsr",\
-// OBSOLETE                      "fpcr",\
-// OBSOLETE                  }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Register numbers of various important registers.
-// OBSOLETE    Note that some of these values are "real" register numbers,
-// OBSOLETE    and correspond to the general registers of the machine,
-// OBSOLETE    and some are "phony" register numbers which are too large
-// OBSOLETE    to be actual register numbers as far as the user is concerned
-// OBSOLETE    but do serve to get the desired values when passed to read_register.  */
-// OBSOLETE 
-// OBSOLETE #define R0_REGNUM 0                /* Contains the constant zero */
-// OBSOLETE #define SRP_REGNUM 1               /* Contains subroutine return pointer */
-// OBSOLETE #define RV_REGNUM 2                /* Contains simple return values */
-// OBSOLETE #define SRA_REGNUM 12              /* Contains address of struct return values */
-// OBSOLETE #define SP_REGNUM 31               /* Contains address of top of stack */
-// OBSOLETE 
-// OBSOLETE /* Instruction pointer notes...
-// OBSOLETE 
-// OBSOLETE    On the m88100:
-// OBSOLETE 
-// OBSOLETE    * cr04 = sxip.  On exception, contains the excepting pc (probably).
-// OBSOLETE    On rte, is ignored.
-// OBSOLETE 
-// OBSOLETE    * cr05 = snip.  On exception, contains the NPC (next pc).  On rte,
-// OBSOLETE    pc is loaded from here.
-// OBSOLETE 
-// OBSOLETE    * cr06 = sfip.  On exception, contains the NNPC (next next pc).  On
-// OBSOLETE    rte, the NPC is loaded from here.
-// OBSOLETE 
-// OBSOLETE    * lower two bits of each are flag bits.  Bit 1 is V means address
-// OBSOLETE    is valid.  If address is not valid, bit 0 is ignored.  Otherwise,
-// OBSOLETE    bit 0 is E and asks for an exception to be taken if this
-// OBSOLETE    instruction is executed.
-// OBSOLETE 
-// OBSOLETE    On the m88110:
-// OBSOLETE 
-// OBSOLETE    * cr04 = exip.  On exception, contains the address of the excepting
-// OBSOLETE    pc (always).  On rte, pc is loaded from here.  Bit 0, aka the D
-// OBSOLETE    bit, is a flag saying that the offending instruction was in a
-// OBSOLETE    branch delay slot.  If set, then cr05 contains the NPC.
-// OBSOLETE 
-// OBSOLETE    * cr05 = enip.  On exception, if the instruction pointed to by cr04
-// OBSOLETE    was in a delay slot as indicated by the bit 0 of cr04, aka the D
-// OBSOLETE    bit, the cr05 contains the NPC.  Otherwise ignored.
-// OBSOLETE 
-// OBSOLETE    * cr06 is invalid  */
-// OBSOLETE 
-// OBSOLETE /* Note that the Harris Unix kernels emulate the m88100's behavior on
-// OBSOLETE    the m88110.  */
-// OBSOLETE 
-// OBSOLETE #define SXIP_REGNUM 35             /* On m88100, Contains Shadow Execute
-// OBSOLETE                               Instruction Pointer.  */
-// OBSOLETE #define SNIP_REGNUM 36             /* On m88100, Contains Shadow Next
-// OBSOLETE                               Instruction Pointer.  */
-// OBSOLETE #define SFIP_REGNUM 37             /* On m88100, Contains Shadow Fetched
-// OBSOLETE                               Intruction pointer.  */
-// OBSOLETE 
-// OBSOLETE #define EXIP_REGNUM 35             /* On m88110, Contains Exception
-// OBSOLETE                               Executing Instruction Pointer.  */
-// OBSOLETE #define ENIP_REGNUM 36             /* On m88110, Contains the Exception
-// OBSOLETE                               Next Instruction Pointer.  */
-// OBSOLETE 
-// OBSOLETE #define PC_REGNUM SXIP_REGNUM      /* Program Counter */
-// OBSOLETE #define NPC_REGNUM SNIP_REGNUM     /* Next Program Counter */
-// OBSOLETE #define M88K_NNPC_REGNUM SFIP_REGNUM        /* Next Next Program Counter */
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE #define PSR_REGNUM 32              /* Processor Status Register */
-// OBSOLETE #define FPSR_REGNUM 33             /* Floating Point Status Register */
-// OBSOLETE #define FPCR_REGNUM 34             /* Floating Point Control Register */
-// OBSOLETE #define XFP_REGNUM 38              /* First Extended Float Register */
-// OBSOLETE #define X0_REGNUM XFP_REGNUM       /* Which also contains the constant zero */
-// OBSOLETE 
-// OBSOLETE /* This is rather a confusing lie.  Our m88k port using a stack pointer value
-// OBSOLETE    for the frame address.  Hence, the frame address and the frame pointer are
-// OBSOLETE    only indirectly related.  The value of this macro is the register number
-// OBSOLETE    fetched by the machine "independent" portions of gdb when they want to know
-// OBSOLETE    about a frame address.  Thus, we lie here and claim that FP_REGNUM is
-// OBSOLETE    SP_REGNUM.  */
-// OBSOLETE #define FP_REGNUM SP_REGNUM        /* Reg fetched to locate frame when pgm stops */
-// OBSOLETE #define ACTUAL_FP_REGNUM 30
-// OBSOLETE 
-// OBSOLETE /* PSR status bit definitions.  */
-// OBSOLETE 
-// OBSOLETE #define PSR_MODE           0x80000000
-// OBSOLETE #define PSR_BYTE_ORDER             0x40000000
-// OBSOLETE #define PSR_SERIAL_MODE            0x20000000
-// OBSOLETE #define PSR_CARRY          0x10000000
-// OBSOLETE #define PSR_SFU_DISABLE            0x000003f0
-// OBSOLETE #define PSR_SFU1_DISABLE   0x00000008
-// OBSOLETE #define PSR_MXM                    0x00000004
-// OBSOLETE #define PSR_IND                    0x00000002
-// OBSOLETE #define PSR_SFRZ           0x00000001
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* The following two comments come from the days prior to the m88110
-// OBSOLETE    port.  The m88110 handles the instruction pointers differently.  I
-// OBSOLETE    do not know what any m88110 kernels do as the m88110 port I'm
-// OBSOLETE    working with is for an embedded system.  rich@cygnus.com
-// OBSOLETE    13-sept-93.  */
-// OBSOLETE 
-// OBSOLETE /* BCS requires that the SXIP_REGNUM (or PC_REGNUM) contain the
-// OBSOLETE    address of the next instr to be executed when a breakpoint occurs.
-// OBSOLETE    Because the kernel gets the next instr (SNIP_REGNUM), the instr in
-// OBSOLETE    SNIP needs to be put back into SFIP, and the instr in SXIP should
-// OBSOLETE    be shifted to SNIP */
-// OBSOLETE 
-// OBSOLETE /* Are you sitting down?  It turns out that the 88K BCS (binary
-// OBSOLETE    compatibility standard) folks originally felt that the debugger
-// OBSOLETE    should be responsible for backing up the IPs, not the kernel (as is
-// OBSOLETE    usually done).  Well, they have reversed their decision, and in
-// OBSOLETE    future releases our kernel will be handling the backing up of the
-// OBSOLETE    IPs.  So, eventually, we won't need to do the SHIFT_INST_REGS
-// OBSOLETE    stuff.  But, for now, since there are 88K systems out there that do
-// OBSOLETE    need the debugger to do the IP shifting, and since there will be
-// OBSOLETE    systems where the kernel does the shifting, the code is a little
-// OBSOLETE    more complex than perhaps it needs to be (we still go inside
-// OBSOLETE    SHIFT_INST_REGS, and if the shifting hasn't occurred then gdb goes
-// OBSOLETE    ahead and shifts).  */
-// OBSOLETE 
-// OBSOLETE extern int target_is_m88110;
-// OBSOLETE #define SHIFT_INST_REGS() \
-// OBSOLETE if (!target_is_m88110) \
-// OBSOLETE { \
-// OBSOLETE     CORE_ADDR pc = read_register (PC_REGNUM); \
-// OBSOLETE     CORE_ADDR npc = read_register (NPC_REGNUM); \
-// OBSOLETE     if (pc != npc) \
-// OBSOLETE     { \
-// OBSOLETE    write_register (M88K_NNPC_REGNUM, npc); \
-// OBSOLETE    write_register (NPC_REGNUM, pc); \
-// OBSOLETE     } \
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE     /* Storing the following registers is a no-op. */
-// OBSOLETE #define CANNOT_STORE_REGISTER(regno)       (((regno) == R0_REGNUM) \
-// OBSOLETE                                     || ((regno) == X0_REGNUM))
-// OBSOLETE 
-// OBSOLETE   /* Number of bytes of storage in the actual machine representation
-// OBSOLETE      for register N.  On the m88k,  the general purpose registers are 4
-// OBSOLETE      bytes and the 88110 extended registers are 10 bytes. */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_RAW_SIZE(N) ((N) < XFP_REGNUM ? 4 : 10)
-// OBSOLETE 
-// OBSOLETE   /* Total amount of space needed to store our copies of the machine's
-// OBSOLETE      register state, the array `registers'.  */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_BYTES ((GP_REGS * REGISTER_RAW_SIZE(0)) \
-// OBSOLETE                    + (FP_REGS * REGISTER_RAW_SIZE(XFP_REGNUM)))
-// OBSOLETE 
-// OBSOLETE   /* Index within `registers' of the first byte of the space for
-// OBSOLETE      register N.  */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_BYTE(N) (((N) * REGISTER_RAW_SIZE(0)) \
-// OBSOLETE                      + ((N) >= XFP_REGNUM \
-// OBSOLETE                         ? (((N) - XFP_REGNUM) \
-// OBSOLETE                            * REGISTER_RAW_SIZE(XFP_REGNUM)) \
-// OBSOLETE                         : 0))
-// OBSOLETE 
-// OBSOLETE   /* Number of bytes of storage in the program's representation for
-// OBSOLETE      register N.  On the m88k, all registers are 4 bytes excepting the
-// OBSOLETE      m88110 extended registers which are 8 byte doubles. */
-// OBSOLETE 
-// OBSOLETE #define REGISTER_VIRTUAL_SIZE(N) ((N) < XFP_REGNUM ? 4 : 8)
-// OBSOLETE 
-// OBSOLETE   /* Largest value REGISTER_RAW_SIZE can have.  */
-// OBSOLETE 
-// OBSOLETE #define MAX_REGISTER_RAW_SIZE (REGISTER_RAW_SIZE(XFP_REGNUM))
-// OBSOLETE 
-// OBSOLETE   /* Largest value REGISTER_VIRTUAL_SIZE can have.
-// OBSOLETE      Are FPS1, FPS2, FPR "virtual" regisers? */
-// OBSOLETE 
-// OBSOLETE #define MAX_REGISTER_VIRTUAL_SIZE (REGISTER_RAW_SIZE(XFP_REGNUM))
-// OBSOLETE 
-// OBSOLETE /* Return the GDB type object for the "standard" data type
-// OBSOLETE    of data in register N.  */
-// OBSOLETE 
-// OBSOLETE struct type *m88k_register_type (int regnum);
-// OBSOLETE #define REGISTER_VIRTUAL_TYPE(N) m88k_register_type (N)
-// OBSOLETE 
-// OBSOLETE /* The 88k call/return conventions call for "small" values to be returned
-// OBSOLETE    into consecutive registers starting from r2.  */
-// OBSOLETE 
-// OBSOLETE #define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
-// OBSOLETE   memcpy ((VALBUF), &(((char *)REGBUF)[REGISTER_BYTE(RV_REGNUM)]), TYPE_LENGTH (TYPE))
-// OBSOLETE 
-// OBSOLETE #define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) (*(int *)(REGBUF))
-// OBSOLETE 
-// OBSOLETE /* Write into appropriate registers a function return value
-// OBSOLETE    of type TYPE, given in virtual format.  */
-// OBSOLETE 
-// OBSOLETE #define STORE_RETURN_VALUE(TYPE,VALBUF) \
-// OBSOLETE   write_register_bytes (2*REGISTER_RAW_SIZE(0), (VALBUF), TYPE_LENGTH (TYPE))
-// OBSOLETE 
-// OBSOLETE /* In COFF, if PCC says a parameter is a short or a char, do not
-// OBSOLETE    change it to int (it seems the convention is to change it). */
-// OBSOLETE 
-// OBSOLETE #define BELIEVE_PCC_PROMOTION 1
-// OBSOLETE 
-// OBSOLETE /* Describe the pointer in each stack frame to the previous stack frame
-// OBSOLETE    (its caller).  */
-// OBSOLETE 
-// OBSOLETE /* FRAME_CHAIN takes a frame's nominal address
-// OBSOLETE    and produces the frame's chain-pointer.
-// OBSOLETE 
-// OBSOLETE    However, if FRAME_CHAIN_VALID returns zero,
-// OBSOLETE    it means the given frame is the outermost one and has no caller.  */
-// OBSOLETE 
-// OBSOLETE extern CORE_ADDR frame_chain ();
-// OBSOLETE extern int frame_chain_valid ();
-// OBSOLETE extern int frameless_function_invocation ();
-// OBSOLETE 
-// OBSOLETE #define FRAME_CHAIN(thisframe) \
-// OBSOLETE    frame_chain (thisframe)
-// OBSOLETE 
-// OBSOLETE #define    FRAMELESS_FUNCTION_INVOCATION(frame)    \
-// OBSOLETE    (frameless_function_invocation (frame))
-// OBSOLETE 
-// OBSOLETE /* Define other aspects of the stack frame.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_SAVED_PC(FRAME)      \
-// OBSOLETE    frame_saved_pc (FRAME)
-// OBSOLETE extern CORE_ADDR frame_saved_pc ();
-// OBSOLETE 
-// OBSOLETE #define FRAME_ARGS_ADDRESS(fi)     \
-// OBSOLETE    frame_args_address (fi)
-// OBSOLETE extern CORE_ADDR frame_args_address ();
-// OBSOLETE 
-// OBSOLETE #define FRAME_LOCALS_ADDRESS(fi) \
-// OBSOLETE    frame_locals_address (fi)
-// OBSOLETE extern CORE_ADDR frame_locals_address ();
-// OBSOLETE 
-// OBSOLETE /* Return number of args passed to a frame.
-// OBSOLETE    Can return -1, meaning no way to tell.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_NUM_ARGS(fi)  (-1)
-// OBSOLETE 
-// OBSOLETE /* Return number of bytes at start of arglist that are not really args.  */
-// OBSOLETE 
-// OBSOLETE #define FRAME_ARGS_SKIP 0
-// OBSOLETE 
-// OBSOLETE /* Put here the code to store, into a struct frame_saved_regs,
-// OBSOLETE    the addresses of the saved registers of frame described by FRAME_INFO.
-// OBSOLETE    This includes special registers such as pc and fp saved in special
-// OBSOLETE    ways in the stack frame.  sp is even more special:
-// OBSOLETE    the address we return for it IS the sp for the next frame.  */
-// OBSOLETE 
-// OBSOLETE /* On the 88k, parameter registers get stored into the so called "homing"
-// OBSOLETE    area.  This *always* happens when you compiled with GCC and use -g.
-// OBSOLETE    Also, (with GCC and -g) the saving of the parameter register values
-// OBSOLETE    always happens right within the function prologue code, so these register
-// OBSOLETE    values can generally be relied upon to be already copied into their
-// OBSOLETE    respective homing slots by the time you will normally try to look at
-// OBSOLETE    them (we hope).
-// OBSOLETE 
-// OBSOLETE    Note that homing area stack slots are always at *positive* offsets from
-// OBSOLETE    the frame pointer.  Thus, the homing area stack slots for the parameter
-// OBSOLETE    registers (passed values) for a given function are actually part of the
-// OBSOLETE    frame area of the caller.  This is unusual, but it should not present
-// OBSOLETE    any special problems for GDB.
-// OBSOLETE 
-// OBSOLETE    Note also that on the 88k, we are only interested in finding the
-// OBSOLETE    registers that might have been saved in memory.  This is a subset of
-// OBSOLETE    the whole set of registers because the standard calling sequence allows
-// OBSOLETE    the called routine to clobber many registers.
-// OBSOLETE 
-// OBSOLETE    We could manage to locate values for all of the so called "preserved"
-// OBSOLETE    registers (some of which may get saved within any particular frame) but
-// OBSOLETE    that would require decoding all of the tdesc information.  That would be
-// OBSOLETE    nice information for GDB to have, but it is not strictly manditory if we
-// OBSOLETE    can live without the ability to look at values within (or backup to)
-// OBSOLETE    previous frames.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE struct frame_saved_regs;
-// OBSOLETE struct frame_info;
-// OBSOLETE 
-// OBSOLETE void frame_find_saved_regs (struct frame_info *fi,
-// OBSOLETE                        struct frame_saved_regs *fsr);
-// OBSOLETE 
-// OBSOLETE #define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
-// OBSOLETE         frame_find_saved_regs (frame_info, &frame_saved_regs)
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE #define POP_FRAME pop_frame ()
-// OBSOLETE extern void pop_frame ();
-// OBSOLETE 
-// OBSOLETE /* Call function stuff contributed by Kevin Buettner of Motorola.  */
-// OBSOLETE 
-// OBSOLETE #define CALL_DUMMY_LOCATION AFTER_TEXT_END
-// OBSOLETE 
-// OBSOLETE extern void m88k_push_dummy_frame ();
-// OBSOLETE #define PUSH_DUMMY_FRAME   m88k_push_dummy_frame()
-// OBSOLETE 
-// OBSOLETE #define CALL_DUMMY {                               \
-// OBSOLETE 0x67ff00c0,        /*   0:   subu  #sp,#sp,0xc0 */ \
-// OBSOLETE 0x243f0004,        /*   4:   st    #r1,#sp,0x4 */ \
-// OBSOLETE 0x245f0008,        /*   8:   st    #r2,#sp,0x8 */ \
-// OBSOLETE 0x247f000c,        /*   c:   st    #r3,#sp,0xc */ \
-// OBSOLETE 0x249f0010,        /*  10:   st    #r4,#sp,0x10 */ \
-// OBSOLETE 0x24bf0014,        /*  14:   st    #r5,#sp,0x14 */ \
-// OBSOLETE 0x24df0018,        /*  18:   st    #r6,#sp,0x18 */ \
-// OBSOLETE 0x24ff001c,        /*  1c:   st    #r7,#sp,0x1c */ \
-// OBSOLETE 0x251f0020,        /*  20:   st    #r8,#sp,0x20 */ \
-// OBSOLETE 0x253f0024,        /*  24:   st    #r9,#sp,0x24 */ \
-// OBSOLETE 0x255f0028,        /*  28:   st    #r10,#sp,0x28 */ \
-// OBSOLETE 0x257f002c,        /*  2c:   st    #r11,#sp,0x2c */ \
-// OBSOLETE 0x259f0030,        /*  30:   st    #r12,#sp,0x30 */ \
-// OBSOLETE 0x25bf0034,        /*  34:   st    #r13,#sp,0x34 */ \
-// OBSOLETE 0x25df0038,        /*  38:   st    #r14,#sp,0x38 */ \
-// OBSOLETE 0x25ff003c,        /*  3c:   st    #r15,#sp,0x3c */ \
-// OBSOLETE 0x261f0040,        /*  40:   st    #r16,#sp,0x40 */ \
-// OBSOLETE 0x263f0044,        /*  44:   st    #r17,#sp,0x44 */ \
-// OBSOLETE 0x265f0048,        /*  48:   st    #r18,#sp,0x48 */ \
-// OBSOLETE 0x267f004c,        /*  4c:   st    #r19,#sp,0x4c */ \
-// OBSOLETE 0x269f0050,        /*  50:   st    #r20,#sp,0x50 */ \
-// OBSOLETE 0x26bf0054,        /*  54:   st    #r21,#sp,0x54 */ \
-// OBSOLETE 0x26df0058,        /*  58:   st    #r22,#sp,0x58 */ \
-// OBSOLETE 0x26ff005c,        /*  5c:   st    #r23,#sp,0x5c */ \
-// OBSOLETE 0x271f0060,        /*  60:   st    #r24,#sp,0x60 */ \
-// OBSOLETE 0x273f0064,        /*  64:   st    #r25,#sp,0x64 */ \
-// OBSOLETE 0x275f0068,        /*  68:   st    #r26,#sp,0x68 */ \
-// OBSOLETE 0x277f006c,        /*  6c:   st    #r27,#sp,0x6c */ \
-// OBSOLETE 0x279f0070,        /*  70:   st    #r28,#sp,0x70 */ \
-// OBSOLETE 0x27bf0074,        /*  74:   st    #r29,#sp,0x74 */ \
-// OBSOLETE 0x27df0078,        /*  78:   st    #r30,#sp,0x78 */ \
-// OBSOLETE 0x63df0000,        /*  7c:   addu  #r30,#sp,0x0 */ \
-// OBSOLETE 0x145f0000,        /*  80:   ld    #r2,#sp,0x0 */ \
-// OBSOLETE 0x147f0004,        /*  84:   ld    #r3,#sp,0x4 */ \
-// OBSOLETE 0x149f0008,        /*  88:   ld    #r4,#sp,0x8 */ \
-// OBSOLETE 0x14bf000c,        /*  8c:   ld    #r5,#sp,0xc */ \
-// OBSOLETE 0x14df0010,        /*  90:   ld    #r6,#sp,0x10 */ \
-// OBSOLETE 0x14ff0014,        /*  94:   ld    #r7,#sp,0x14 */ \
-// OBSOLETE 0x151f0018,        /*  98:   ld    #r8,#sp,0x18 */ \
-// OBSOLETE 0x153f001c,        /*  9c:   ld    #r9,#sp,0x1c */ \
-// OBSOLETE 0x5c200000,        /*  a0:   or.u  #r1,#r0,0x0 */ \
-// OBSOLETE 0x58210000,        /*  a4:   or    #r1,#r1,0x0 */ \
-// OBSOLETE 0xf400c801,        /*  a8:   jsr   #r1 */ \
-// OBSOLETE 0xf000d1ff /*  ac:   tb0   0x0,#r0,0x1ff */ \
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #define CALL_DUMMY_START_OFFSET 0x80
-// OBSOLETE #define CALL_DUMMY_LENGTH 0xb0
-// OBSOLETE 
-// OBSOLETE /* FIXME: byteswapping.  */
-// OBSOLETE #define FIX_CALL_DUMMY(dummy, pc, fun, nargs, args, type, gcc_p)   \
-// OBSOLETE {                                                                  \
-// OBSOLETE   *(unsigned long *)((char *) (dummy) + 0xa0) |=                   \
-// OBSOLETE    (((unsigned long) (fun)) >> 16);                                \
-// OBSOLETE   *(unsigned long *)((char *) (dummy) + 0xa4) |=                   \
-// OBSOLETE    (((unsigned long) (fun)) & 0xffff);                             \
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Stack must be aligned on 64-bit boundaries when synthesizing
-// OBSOLETE    function calls. */
-// OBSOLETE 
-// OBSOLETE #define STACK_ALIGN(addr) (((addr) + 7) & -8)
-// OBSOLETE 
-// OBSOLETE #define STORE_STRUCT_RETURN(addr, sp) \
-// OBSOLETE     write_register (SRA_REGNUM, (addr))
-// OBSOLETE 
-// OBSOLETE #define NEED_TEXT_START_END 1
-// OBSOLETE 
-// OBSOLETE /* According to the MC88100 RISC Microprocessor User's Manual, section
-// OBSOLETE    6.4.3.1.2:
-// OBSOLETE 
-// OBSOLETE    ... can be made to return to a particular instruction by placing a
-// OBSOLETE    valid instruction address in the SNIP and the next sequential
-// OBSOLETE    instruction address in the SFIP (with V bits set and E bits clear).
-// OBSOLETE    The rte resumes execution at the instruction pointed to by the 
-// OBSOLETE    SNIP, then the SFIP.
-// OBSOLETE 
-// OBSOLETE    The E bit is the least significant bit (bit 0).  The V (valid) bit is
-// OBSOLETE    bit 1.  This is why we logical or 2 into the values we are writing
-// OBSOLETE    below.  It turns out that SXIP plays no role when returning from an
-// OBSOLETE    exception so nothing special has to be done with it.  We could even
-// OBSOLETE    (presumably) give it a totally bogus value.
-// OBSOLETE 
-// OBSOLETE    -- Kevin Buettner
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE extern void m88k_target_write_pc (CORE_ADDR pc, ptid_t ptid);
-// OBSOLETE #define TARGET_WRITE_PC(VAL, PID) m88k_target_write_pc (VAL, PID)
diff --git a/gdb/config/m88k/xm-delta88.h b/gdb/config/m88k/xm-delta88.h
deleted file mode 100644 (file)
index df2b8e6..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// OBSOLETE /* Host machine description for Motorola Delta 88 system, for GDB.
-// OBSOLETE    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #if !defined (USG)
-// OBSOLETE #define USG 1
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE #include <sys/param.h>
-// OBSOLETE #include <sys/time.h>
-// OBSOLETE 
-// OBSOLETE #define HAVE_TERMIO
-// OBSOLETE 
-// OBSOLETE /*#define USIZE 2048 */
-// OBSOLETE /*#define NBPG NBPC */
-// OBSOLETE /* Might be defined in <sys/param.h>.  I suspect this define was a relic
-// OBSOLETE    from before when BFD did core files.  */
-// OBSOLETE /* #define UPAGES USIZE */
-// OBSOLETE 
-// OBSOLETE /* This is the amount to subtract from u.u_ar0
-// OBSOLETE    to get the offset in the core file of the register values.  */
-// OBSOLETE 
-// OBSOLETE /* Since registers r0 through r31 are stored directly in the struct ptrace_user,
-// OBSOLETE    (for m88k BCS)
-// OBSOLETE    the ptrace_user offsets are sufficient and KERNEL_U_ADDRESS can be 0 */
-// OBSOLETE 
-// OBSOLETE #define KERNEL_U_ADDR 0
diff --git a/gdb/config/m88k/xm-dgux.h b/gdb/config/m88k/xm-dgux.h
deleted file mode 100644 (file)
index dc99f97..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// OBSOLETE /* Host-machine dependent parameters for Motorola 88000, for GDB.
-// OBSOLETE    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1998
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #if !defined (USG)
-// OBSOLETE #define USG 1
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE #include <sys/param.h>
-// OBSOLETE 
-// OBSOLETE #ifdef __GNUC__
-// OBSOLETE #define memcpy __builtin_memcpy
-// OBSOLETE /* gcc doesn't have this, at least not gcc 1.92.  */
-// OBSOLETE /* #define memset __builtin_memset */
-// OBSOLETE #define strcmp __builtin_strcmp
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE #define x_foff _x_x._x_offset
-// OBSOLETE #define x_fname _x_name
-// OBSOLETE #define USER ptrace_user
-// OBSOLETE #define _BSD_WAIT_FLAVOR
-// OBSOLETE 
-// OBSOLETE #define HAVE_TERMIO
-// OBSOLETE 
-// OBSOLETE #ifndef USIZE
-// OBSOLETE #define USIZE 2048
-// OBSOLETE #endif
-// OBSOLETE #define NBPG NBPC
-// OBSOLETE #define UPAGES USIZE
-// OBSOLETE 
-// OBSOLETE /* This is the amount to subtract from u.u_ar0
-// OBSOLETE    to get the offset in the core file of the register values.  */
-// OBSOLETE 
-// OBSOLETE /* Since registers r0 through r31 are stored directly in the struct ptrace_user,
-// OBSOLETE    (for m88k BCS)
-// OBSOLETE    the ptrace_user offsets are sufficient and KERNEL_U_ADDRESS can be 0 */
-// OBSOLETE 
-// OBSOLETE #define KERNEL_U_ADDR 0
index c298a391f8037401feb2d628adcb767d0ef9346b..8875f79b0ad050638deb9f73513b0155714badd9 100644 (file)
@@ -23,7 +23,6 @@
 
 /* Redefine register numbers for SGI. */
 
-#undef NUM_REGS
 #undef MIPS_REGISTER_NAMES
 #undef FP0_REGNUM
 #undef PC_REGNUM
 #undef FCRCS_REGNUM
 #undef FCRIR_REGNUM
 
-/* Number of machine registers */
-
-#define NUM_REGS 71
-
 /* Initializer for an array of names of registers.
    There should be NUM_REGS strings in this initializer.  */
 
index ce9c2261854a3168998eb262c2b8e8672879fdbc..26813ba4fb9179c3df6de77fd8efb20e26600080 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Redefine register numbers for SGI. */
 
-#undef NUM_REGS
 #undef MIPS_REGISTER_NAMES
 #undef FP0_REGNUM
 #undef PC_REGNUM
 #undef FCRCS_REGNUM
 #undef FCRIR_REGNUM
 
-/* Number of machine registers */
-
-#define NUM_REGS 71
-
 /* Initializer for an array of names of registers.
    There should be NUM_REGS strings in this initializer.  */
 
index 60e9bee87825565392a3610fe73c23cfafc48b4b..c049c29aa727c84c236b8c4f7b95d3affc77dc7d 100644 (file)
 
 #include "config/tm-linux.h"
 
-/* Use target_specific function to define link map offsets.  */
-
-extern struct link_map_offsets *mips_linux_svr4_fetch_link_map_offsets (void);
-#define SVR4_FETCH_LINK_MAP_OFFSETS() \
-  mips_linux_svr4_fetch_link_map_offsets ()
-
-/* Details about jmp_buf.  */
-
-#define MIPS_LINUX_JB_ELEMENT_SIZE 4
-#define MIPS_LINUX_JB_PC 0
-
-/* Figure out where the longjmp will land.  Slurp the arguments out of the
-   stack.  We expect the first arg to be a pointer to the jmp_buf structure
-   from which we extract the pc (JB_PC) that we will land at.  The pc is
-   copied into ADDR.  This routine returns 1 on success.  */
-
-#define GET_LONGJMP_TARGET(ADDR) mips_linux_get_longjmp_target(ADDR)
-extern int mips_linux_get_longjmp_target (CORE_ADDR *);
-
 /* We do single stepping in software.  */
 
 #define SOFTWARE_SINGLE_STEP_P() 1
index ded8e109e125f30f8892e7f7c7062a20502093a9..e092d4a92cb66a017185a801eb5acc39329cceb3 100644 (file)
@@ -39,14 +39,6 @@ struct value;
 #include "coff/sym.h"          /* Needed for PDR below.  */
 #include "coff/symconst.h"
 
-/* PC should be masked to remove possible MIPS16 flag */
-#if !defined (GDB_TARGET_MASK_DISAS_PC)
-#define GDB_TARGET_MASK_DISAS_PC(addr) UNMAKE_MIPS16_ADDR(addr)
-#endif
-#if !defined (GDB_TARGET_UNMASK_DISAS_PC)
-#define GDB_TARGET_UNMASK_DISAS_PC(addr) MAKE_MIPS16_ADDR(addr)
-#endif
-
 /* Return non-zero if PC points to an instruction which will cause a step
    to execute both the instruction at PC and an instruction at PC+4.  */
 extern int mips_step_skips_delay (CORE_ADDR);
@@ -67,12 +59,6 @@ extern int mips_step_skips_delay (CORE_ADDR);
 #define MIPS_REGSIZE 4
 #endif
 
-/* Number of machine registers */
-
-#ifndef NUM_REGS
-#define NUM_REGS 90
-#endif
-
 /* Initializer for an array of names of registers.
    There should be NUM_REGS strings in this initializer.  */
 
index 47bd7a04c528bf2cd94cfda93051d7c9d0399a75..b2d03857c56724d1fbfa1560866072c6d986480b 100644 (file)
@@ -107,7 +107,8 @@ struct value;
 
 extern void mn10200_init_extra_frame_info (struct frame_info *);
 #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) mn10200_init_extra_frame_info (fi)
-#define INIT_FRAME_PC(x,y)
+#define DEPRECATED_INIT_FRAME_PC(x,y) (init_frame_pc_noop (x, y))
+#define INIT_FRAME_PC_FIRST(x,y) (init_frame_pc_noop (x, y))
 
 extern void mn10200_frame_find_saved_regs (struct frame_info *,
                                           struct frame_saved_regs *);
@@ -184,7 +185,7 @@ extern CORE_ADDR mn10200_skip_prologue (CORE_ADDR);
 extern void mn10200_pop_frame (struct frame_info *);
 #define POP_FRAME mn10200_pop_frame (get_current_frame ())
 
-#define USE_GENERIC_DUMMY_FRAMES 1
+#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 1
 #define CALL_DUMMY                   {0}
 #define CALL_DUMMY_START_OFFSET      (0)
 #define CALL_DUMMY_BREAKPOINT_OFFSET (0)
@@ -202,7 +203,7 @@ extern CORE_ADDR mn10200_push_arguments (int, struct value **, CORE_ADDR,
 #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
   (mn10200_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR))
 
-#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
+#define DEPRECATED_PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
 
 #define REG_STRUCT_HAS_ADDR(gcc_p,TYPE) \
        (TYPE_LENGTH (TYPE) > 8)
@@ -210,10 +211,5 @@ extern CORE_ADDR mn10200_push_arguments (int, struct value **, CORE_ADDR,
 extern use_struct_convention_fn mn10200_use_struct_convention;
 #define USE_STRUCT_CONVENTION(GCC_P, TYPE) mn10200_use_struct_convention (GCC_P, TYPE)
 
-/* Override the default get_saved_register function with
-   one that takes account of generic CALL_DUMMY frames.  */
-#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
-      generic_unwind_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
-
 /* Define this for Wingdb */
 #define TARGET_MN10200
index a2d429214d9f214c4cea1faa3eddf6bfe6997b4d..114acd8b67c289e47f6c0dabba1019e84f79bb04 100644 (file)
@@ -71,4 +71,7 @@ extern void lin_thread_get_thread_signals (sigset_t *mask);
 /* Override child_pid_to_exec_file in 'inftarg.c'.  */
 #define CHILD_PID_TO_EXEC_FILE
 
-
+struct mem_attrib;
+extern int linux_proc_xfer_memory (CORE_ADDR addr, char *myaddr, int len,
+                                  int write, struct mem_attrib *attrib,
+                                  struct target_ops *target);
index d55da77342276ce560c909876b9b7f3bcde40f4b..9e3e6863a33941dd97fd214e3450401f77ee0baa 100644 (file)
@@ -1,4 +1,4 @@
 # Target: HP PA-RISC 2.0 running HPUX 11.00 in wide mode
-TDEPFILES= hppa-tdep.o
+TDEPFILES= hppa-tdep.o hppa-hpux-tdep.o
 TM_FILE= tm-hppa64.h
 TM_CLIBS=
index dddb3f569a2f1420c71264b8d8a462e82f5a8ea2..806e91c7f4dfb83ff1c4efa5505bcb0bd03b2de3 100644 (file)
@@ -1,3 +1,3 @@
 # Target: HP PA-RISC running hpux
-TDEPFILES= hppa-tdep.o
+TDEPFILES= hppa-tdep.o hppa-hpux-tdep.o
 TM_FILE= tm-hppah.h
index 995e8e773d580c1b06de9cd4746eb2debda2a606..d9827dcf79060c23b61faca2de5ec0c2a0281be2 100644 (file)
@@ -1,5 +1,5 @@
 /* HPPA PA-RISC machine native support for BSD, for GDB.
-   Copyright 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+   Copyright 1991, 1992, 1993, 1994, 1995, 2002 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #define FIVE_ARG_PTRACE
 
 
-/* This macro defines the register numbers (from REGISTER_NAMES) that
-   are effectively unavailable to the user through ptrace().  It allows
-   us to include the whole register set in REGISTER_NAMES (inorder to
-   better support remote debugging).  If it is used in
-   fetch/store_inferior_registers() gdb will not complain about I/O errors
-   on fetching these registers.  If all registers in REGISTER_NAMES
-   are available, then return false (0).  */
-
-#define CANNOT_STORE_REGISTER(regno)            \
-                   ((regno) == 0) ||     \
-                   ((regno) == PCSQ_HEAD_REGNUM) || \
-                   ((regno) >= PCSQ_TAIL_REGNUM && (regno) < IPSW_REGNUM) ||  \
-                   ((regno) > IPSW_REGNUM && (regno) < FP4_REGNUM)
-
 /* fetch_inferior_registers is in hppab-nat.c.  */
 #define FETCH_INFERIOR_REGISTERS
 
index 7609d67804acad3ff9505acefb356f92b785ffbb..83871158d356b8fa85ff400381970213f2ed7575 100644 (file)
@@ -1,5 +1,5 @@
 /* Native support for HPPA-RISC machine running HPUX, for GDB.
-   Copyright 1991, 1992, 1994, 1996, 1998, 1999, 2000
+   Copyright 1991, 1992, 1994, 1996, 1998, 1999, 2000, 2002
    Free Software Foundation, Inc.
 
    This file is part of GDB.
    user space will crap out HPUX.  */
 #define NEED_TEXT_START_END 1
 
-/* This macro defines the register numbers (from REGISTER_NAMES) that
-   are effectively unavailable to the user through ptrace().  It allows
-   us to include the whole register set in REGISTER_NAMES (inorder to
-   better support remote debugging).  If it is used in
-   fetch/store_inferior_registers() gdb will not complain about I/O errors
-   on fetching these registers.  If all registers in REGISTER_NAMES
-   are available, then return false (0).  */
-
-#define CANNOT_STORE_REGISTER(regno)            \
-                   ((regno) == 0) ||     \
-                   ((regno) == PCSQ_HEAD_REGNUM) || \
-                   ((regno) >= PCSQ_TAIL_REGNUM && (regno) < IPSW_REGNUM) ||  \
-                   ((regno) > IPSW_REGNUM && (regno) < FP4_REGNUM)
-
 /* In hppah-nat.c: */
 #define FETCH_INFERIOR_REGISTERS
 #define CHILD_XFER_MEMORY
-#define CHILD_POST_FOLLOW_INFERIOR_BY_CLONE
-#define CHILD_POST_FOLLOW_VFORK
+#define CHILD_FOLLOW_FORK
 
 /* While this is for use by threaded programs, it doesn't appear
  * to hurt non-threaded ones.  This is used in infrun.c: */
@@ -81,22 +66,17 @@ extern int hppa_prepare_to_proceed (void);
 #define CHILD_REMOVE_FORK_CATCHPOINT
 #define CHILD_INSERT_VFORK_CATCHPOINT
 #define CHILD_REMOVE_VFORK_CATCHPOINT
-#define CHILD_HAS_FORKED
-#define CHILD_HAS_VFORKED
-#define CHILD_CAN_FOLLOW_VFORK_PRIOR_TO_EXEC
 #define CHILD_INSERT_EXEC_CATCHPOINT
 #define CHILD_REMOVE_EXEC_CATCHPOINT
-#define CHILD_HAS_EXECD
 #define CHILD_REPORTED_EXEC_EVENTS_PER_EXEC_CALL
-#define CHILD_HAS_SYSCALL_EVENT
 #define CHILD_POST_ATTACH
 #define CHILD_THREAD_ALIVE
 #define CHILD_PID_TO_STR
+#define CHILD_WAIT
+struct target_waitstatus;
+extern ptid_t child_wait (ptid_t, struct target_waitstatus *);
 
-#define REQUIRE_ATTACH(pid) hppa_require_attach(pid)
 extern int hppa_require_attach (int);
-
-#define REQUIRE_DETACH(pid,signal) hppa_require_detach(pid,signal)
 extern int hppa_require_detach (int, int);
 
 /* So we can cleanly use code in infptrace.c.  */
index 6650a4bd19a7333c6d3b5862a3658c8f63768895..6389b2c18682b8a76ca476e9525e5f5a6e66abc3 100644 (file)
@@ -1,5 +1,5 @@
 /* HPPA PA-RISC machine native support for Lites, for GDB.
-   Copyright 1995 Free Software Foundation, Inc.
+   Copyright 1995, 2002 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #define REGISTER_U_ADDR(addr, blockend, regno)                         \
 { addr = (int)(blockend) + REGISTER_BYTE (regno);}
 
-/* This macro defines the register numbers (from REGISTER_NAMES) that
-   are effectively unavailable to the user through ptrace().  It allows
-   us to include the whole register set in REGISTER_NAMES (inorder to
-   better support remote debugging).  If it is used in
-   fetch/store_inferior_registers() gdb will not complain about I/O errors
-   on fetching these registers.  If all registers in REGISTER_NAMES
-   are available, then return false (0).  */
-
-#define CANNOT_STORE_REGISTER(regno)            \
-                   ((regno) == 0) ||     \
-                   ((regno) == PCSQ_HEAD_REGNUM) || \
-                   ((regno) >= PCSQ_TAIL_REGNUM && (regno) < IPSW_REGNUM) ||  \
-                   ((regno) > IPSW_REGNUM && (regno) < FP4_REGNUM)
-
 /* fetch_inferior_registers is in hppab-nat.c.  */
 #define FETCH_INFERIOR_REGISTERS
 
index 319576d25e1a27076c1df085ee5a83ee9bb31a05..ce35906d2bdf1af6103815f12f8d5221c58c1406 100644 (file)
 
 #define GDB_MULTI_ARCH 0
 
+/* NOTE: cagney/2002-11-24: This is a guess.  */
+#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 0
+#define CALL_DUMMY_LOCATION ON_STACK
+#define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_on_stack (pc, sp, frame_address)
+#define DEPRECATED_INIT_FRAME_PC(l,f) (init_frame_pc_default (l, f))
+
 /* Forward declarations of some types we use in prototypes */
 
 struct frame_info;
@@ -511,7 +517,7 @@ extern void hppa_pop_frame (void);
    we'll consider that to mean that we've reached the call dummy's
    end after its successful completion. */
 #define CALL_DUMMY_HAS_COMPLETED(pc, sp, frame_address) \
-  (PC_IN_CALL_DUMMY((pc), (sp), (frame_address)) && \
+  (DEPRECATED_PC_IN_CALL_DUMMY((pc), (sp), (frame_address)) && \
    (read_memory_integer((pc), 4) == BREAKPOINT32))
 
 /*
index 022e1249d7a9bea61fd4d814e45352ff61cfa61f..d94b381434c8ffe899e1db29b56c089df77d3399 100644 (file)
@@ -21,9 +21,6 @@
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#define HPUX_SNAP1
-#define HPUX_SNAP2
-
 /* The solib hooks are not really designed to have a list of hook
    and handler routines.  So until we clean up those interfaces you
    either get SOM shared libraries or HP's unusual PA64 ELF shared
@@ -39,7 +36,7 @@
 /* Actually, for a PA running HPUX the kernel calls the signal handler
    without an intermediate trampoline.  Luckily the kernel always sets
    the return pointer for the signal handler to point to _sigreturn.  */
-#define IN_SIGTRAMP(pc, name) (name && STREQ ("_sigreturn", name))
+#define PC_IN_SIGTRAMP(pc, name) (name && STREQ ("_sigreturn", name))
 
 /* For HPUX:
 
index fc74eb730263ce59cb78c7469ad95d06baec80ec..fc7a8b18e27dee6e557e155250ad5ace32d85580 100644 (file)
@@ -3,7 +3,9 @@
 XM_FILE= xm-aix.h
 
 NAT_FILE= nm-aix.h
-NATDEPFILES= aix-thread.o fork-child.o infptrace.o inftarg.o corelow.o \
+
+# aix-thread.o is not listed in NATDEPFILES as it is pulled in by configure.
+NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o \
             rs6000-nat.o xcoffread.o xcoffsolib.o
 
 # When compiled with cc, for debugging, this argument should be passed.
@@ -15,5 +17,3 @@ NATDEPFILES= aix-thread.o fork-child.o infptrace.o inftarg.o corelow.o \
 # This switch may be needed for some vendor compilers.
 # MH_LDFLAGS = -Wl,-bbigtoc
 
-# pthread debugging support
-NAT_CLIBS = -lpthdebug
index 478e9bd164b1fc0c4cdd7006a4399d0255298273..1bdd9ebd526c7b65f589edda1f52e324d3132b36 100644 (file)
@@ -78,10 +78,15 @@ extern void aix_process_linenos (void);
 
 /* Define other aspects of the stack frame.  */
 
-#define INIT_FRAME_PC_FIRST(fromleaf, prev) \
-  prev->pc = (fromleaf ? SAVED_PC_AFTER_CALL (prev->next) : \
-             prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ());
-#define INIT_FRAME_PC(fromleaf, prev)  /* nothing */
+#define DEPRECATED_INIT_FRAME_PC_FIRST(fromleaf, prev) \
+  (fromleaf ? SAVED_PC_AFTER_CALL (prev->next) : \
+             prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ())
+/* NOTE: cagney/2002-12-08: Add local declaration of
+   init_frame_pc_noop() because it isn't possible to include
+   "arch-utils.h" here.  Not too bad as this entire file is going away
+   anyway.  */
+extern CORE_ADDR init_frame_pc_noop (int fromleaf, struct frame_info *prev);
+#define DEPRECATED_INIT_FRAME_PC(fromleaf, prev) (init_frame_pc_noop (fromleaf, prev))
 
 /* Flag for machine-specific stuff in shared files.  FIXME */
 #define IBM6000_TARGET
index 4c07f1fc1baeb700b000994a8e71b268f5a5c450..0c3731f3065b798cc1ebc4ab41490ed5dd053b09 100644 (file)
 #define CALL_DUMMY_BREAKPOINT_OFFSET_P 1
 #undef  CALL_DUMMY_LOCATION 
 #define CALL_DUMMY_LOCATION AT_ENTRY_POINT
+#undef  DEPRECATED_PC_IN_CALL_DUMMY
+#define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_at_entry_point (pc, sp, frame_address)
 #undef  CALL_DUMMY_STACK_ADJUST
 #define CALL_DUMMY_STACK_ADJUST 128
 #undef  SIZEOF_CALL_DUMMY_WORDS
@@ -168,6 +170,8 @@ sparc_at_entry_store_struct_return (CORE_ADDR addr, CORE_ADDR sp);
 /* Call dummy will be located on the stack.  */
 #undef  CALL_DUMMY_LOCATION
 #define CALL_DUMMY_LOCATION ON_STACK
+#undef  DEPRECATED_PC_IN_CALL_DUMMY
+#define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_on_stack (pc, sp, frame_address)
 
 /* Insert the function address into the call dummy.  */
 #undef  FIX_CALL_DUMMY
index 6042ac6cecb3b3e20be2d11fdb3b2282a9dc1319..f0a457223cbe95a677ef8b155f7f132beb3b71c2 100644 (file)
@@ -519,10 +519,10 @@ extern void sparc_print_extra_frame_info (struct frame_info *);
 
 /* INIT_EXTRA_FRAME_INFO needs the PC to detect flat frames.  */
 
-#define        INIT_FRAME_PC(FROMLEAF, PREV)   /* nothing */
-#define INIT_FRAME_PC_FIRST(FROMLEAF, PREV) \
-  (PREV)->pc = ((FROMLEAF) ? SAVED_PC_AFTER_CALL ((PREV)->next) : \
-             (PREV)->next ? FRAME_SAVED_PC ((PREV)->next) : read_pc ());
+#define        DEPRECATED_INIT_FRAME_PC(FROMLEAF, PREV)        (init_frame_pc_noop (FROMLEAF, PREV))
+#define DEPRECATED_INIT_FRAME_PC_FIRST(FROMLEAF, PREV) \
+  ((FROMLEAF) ? SAVED_PC_AFTER_CALL ((PREV)->next) : \
+             (PREV)->next ? FRAME_SAVED_PC ((PREV)->next) : read_pc ())
 
 /* Define other aspects of the stack frame.  */
 
@@ -657,11 +657,12 @@ extern void sparc_print_extra_frame_info (struct frame_info *);
 /* Call dummy method (eg. on stack, at entry point, etc.) */
 
 #define CALL_DUMMY_LOCATION ON_STACK
+#define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_on_stack (pc, sp, frame_address)
 
 /* Method for detecting dummy frames.  */
 
-#define PC_IN_CALL_DUMMY(PC, SP, FRAME_ADDRESS) \
-     pc_in_call_dummy_on_stack (PC, SP, FRAME_ADDRESS)
+#define DEPRECATED_PC_IN_CALL_DUMMY(PC, SP, FRAME_ADDRESS) \
+     deprecated_pc_in_call_dummy_on_stack (PC, SP, FRAME_ADDRESS)
 
 #endif /* GDB_MULTI_ARCH */
 
index edc5664e7a1ddace8afad60da3565abf99836ea1..86cc4a4b59d650bfaf1ea6d0cd7ac52fc5352e44 100644 (file)
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
+/* NOTE: cagney/2002-11-24: This is a guess.  */
+#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 0
+#define CALL_DUMMY_LOCATION ON_STACK
+#define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) deprecated_pc_in_call_dummy_on_stack (pc, sp, frame_address)
+
 #undef TARGET_INT_BIT
 #undef TARGET_LONG_BIT
 #undef TARGET_SHORT_BIT
@@ -103,9 +108,8 @@ extern int z8k_saved_pc_after_call (struct frame_info *frame);
 #define REGISTER_VIRTUAL_TYPE(N) \
  (REGISTER_VIRTUAL_SIZE(N) == 2? builtin_type_unsigned_int : builtin_type_long)
 
-/*#define INIT_FRAME_PC(x,y) init_frame_pc(x,y) */
-/* Initializer for an array of names of registers.
-   Entries beyond the first NUM_REGS are ignored.  */
+#define DEPRECATED_INIT_FRAME_PC(x,y) (init_frame_pc_noop (x, y))
+#define INIT_FRAME_PC_FIRST(x,y) (init_frame_pc_noop (x, y))
 
 #define REGISTER_NAMES  \
  {"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \
index f96b8f906809c187f1f27bb03307b006031af3f3..b6e9acb8794ec423db80c5f8ccb055c46205b0a6 100755 (executable)
@@ -54,8 +54,6 @@ ac_help="$ac_help
   --with-itclconfig       Directory containing itcl configuration (itclConfig.sh)"
 ac_help="$ac_help
   --with-itkconfig        Directory containing itk configuration (itkConfig.sh)"
-ac_help="$ac_help
-  --with-tixconfig        Directory containing tix configuration (tixConfig.sh)"
 ac_help="$ac_help
   --with-x                use the X Window System"
 ac_help="$ac_help
@@ -587,7 +585,7 @@ fi
 
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:591: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:589: checking whether to enable maintainer-specific portions of Makefiles" >&5
     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval="$enable_maintainer_mode"
@@ -613,7 +611,7 @@ fi
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:617: checking for $ac_word" >&5
+echo "configure:615: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -643,7 +641,7 @@ 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:647: checking for $ac_word" >&5
+echo "configure:645: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -694,7 +692,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:698: checking for $ac_word" >&5
+echo "configure:696: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -726,7 +724,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:730: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:728: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -737,12 +735,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 741 "configure"
+#line 739 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -768,12 +766,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:772: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:770: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:777: checking whether we are using GNU C" >&5
+echo "configure:775: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -782,7 +780,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -801,7 +799,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:805: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:803: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -833,7 +831,7 @@ else
 fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:837: checking how to run the C preprocessor" >&5
+echo "configure:835: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -848,13 +846,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 852 "configure"
+#line 850 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:858: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:856: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -865,13 +863,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 869 "configure"
+#line 867 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:875: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:873: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -882,13 +880,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 886 "configure"
+#line 884 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:892: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:890: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -913,9 +911,9 @@ fi
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:917: checking for AIX" >&5
+echo "configure:915: checking for AIX" >&5
 cat > conftest.$ac_ext <<EOF
-#line 919 "configure"
+#line 917 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -937,7 +935,7 @@ rm -f conftest*
 
 
 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:941: checking for POSIXized ISC" >&5
+echo "configure:939: checking for POSIXized ISC" >&5
 if test -d /etc/conf/kconfig.d &&
   grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
 then
@@ -961,7 +959,7 @@ fi
 
 
 echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:965: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:963: checking for ${CC-cc} option to accept ANSI C" >&5
 if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -978,7 +976,7 @@ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIO
 do
   CC="$ac_save_CC $ac_arg"
   cat > conftest.$ac_ext <<EOF
-#line 982 "configure"
+#line 980 "configure"
 #include "confdefs.h"
 #include <stdarg.h>
 #include <stdio.h>
@@ -1015,7 +1013,7 @@ return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
 
 ; return 0; }
 EOF
-if { (eval echo configure:1019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   am_cv_prog_cc_stdc="$ac_arg"; break
 else
@@ -1086,7 +1084,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:1090: checking host system type" >&5
+echo "configure:1088: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -1107,7 +1105,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$host" 1>&6
 
 echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:1111: checking target system type" >&5
+echo "configure:1109: checking target system type" >&5
 
 target_alias=$target
 case "$target_alias" in
@@ -1125,7 +1123,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$target" 1>&6
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1129: checking build system type" >&5
+echo "configure:1127: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
@@ -1150,7 +1148,7 @@ test "$host_alias" != "$target_alias" &&
 
 ALL_LINGUAS=
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1154: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1152: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1179,7 +1177,7 @@ fi
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1183: checking for $ac_word" >&5
+echo "configure:1181: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1207,12 +1205,12 @@ else
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1211: checking for ANSI C header files" >&5
+echo "configure:1209: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1216 "configure"
+#line 1214 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1220,7 +1218,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1237,7 +1235,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 1241 "configure"
+#line 1239 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1255,7 +1253,7 @@ 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 <<EOF
-#line 1259 "configure"
+#line 1257 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1276,7 +1274,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1280 "configure"
+#line 1278 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1287,7 +1285,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:1291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1311,12 +1309,12 @@ EOF
 fi
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1315: checking for working const" >&5
+echo "configure:1313: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1320 "configure"
+#line 1318 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1365,7 +1363,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:1369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1367: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -1386,21 +1384,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1390: checking for inline" >&5
+echo "configure:1388: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 1397 "configure"
+#line 1395 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:1404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -1426,12 +1424,12 @@ EOF
 esac
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:1430: checking for off_t" >&5
+echo "configure:1428: checking for off_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1435 "configure"
+#line 1433 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1459,12 +1457,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1463: checking for size_t" >&5
+echo "configure:1461: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1468 "configure"
+#line 1466 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1494,19 +1492,19 @@ fi
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:1498: checking for working alloca.h" >&5
+echo "configure:1496: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1503 "configure"
+#line 1501 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:1510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -1527,12 +1525,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:1531: checking for alloca" >&5
+echo "configure:1529: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1536 "configure"
+#line 1534 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -1560,7 +1558,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:1564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -1592,12 +1590,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:1596: checking whether alloca needs Cray hooks" >&5
+echo "configure:1594: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1601 "configure"
+#line 1599 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -1622,12 +1620,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1626: checking for $ac_func" >&5
+echo "configure:1624: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1631 "configure"
+#line 1629 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1650,7 +1648,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:1654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -1677,7 +1675,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:1681: checking stack direction for C alloca" >&5
+echo "configure:1679: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1685,7 +1683,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 1689 "configure"
+#line 1687 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -1704,7 +1702,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:1708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -1729,17 +1727,17 @@ for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1733: checking for $ac_hdr" >&5
+echo "configure:1731: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1738 "configure"
+#line 1736 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1741: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1768,12 +1766,12 @@ done
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1772: checking for $ac_func" >&5
+echo "configure:1770: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1777 "configure"
+#line 1775 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1796,7 +1794,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:1800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -1821,7 +1819,7 @@ fi
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:1825: checking for working mmap" >&5
+echo "configure:1823: checking for working mmap" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1829,7 +1827,7 @@ else
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 1833 "configure"
+#line 1831 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -1969,7 +1967,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:1973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
@@ -1997,17 +1995,17 @@ unistd.h values.h sys/param.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2001: checking for $ac_hdr" >&5
+echo "configure:1999: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2006 "configure"
+#line 2004 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2011: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2009: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2037,12 +2035,12 @@ done
 __argz_count __argz_stringify __argz_next
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2041: checking for $ac_func" >&5
+echo "configure:2039: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2046 "configure"
+#line 2044 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2065,7 +2063,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2094,12 +2092,12 @@ done
      for ac_func in stpcpy
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2098: checking for $ac_func" >&5
+echo "configure:2096: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2103 "configure"
+#line 2101 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2122,7 +2120,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2156,19 +2154,19 @@ EOF
 
    if test $ac_cv_header_locale_h = yes; then
     echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:2160: checking for LC_MESSAGES" >&5
+echo "configure:2158: checking for LC_MESSAGES" >&5
 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2165 "configure"
+#line 2163 "configure"
 #include "confdefs.h"
 #include <locale.h>
 int main() {
 return LC_MESSAGES
 ; return 0; }
 EOF
-if { (eval echo configure:2172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_val_LC_MESSAGES=yes
 else
@@ -2189,7 +2187,7 @@ EOF
     fi
   fi
    echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:2193: checking whether NLS is requested" >&5
+echo "configure:2191: checking whether NLS is requested" >&5
         # Check whether --enable-nls or --disable-nls was given.
 if test "${enable_nls+set}" = set; then
   enableval="$enable_nls"
@@ -2209,7 +2207,7 @@ fi
 EOF
 
       echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:2213: checking whether included gettext is requested" >&5
+echo "configure:2211: checking whether included gettext is requested" >&5
       # Check whether --with-included-gettext or --without-included-gettext was given.
 if test "${with_included_gettext+set}" = set; then
   withval="$with_included_gettext"
@@ -2228,17 +2226,17 @@ fi
 
        ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:2232: checking for libintl.h" >&5
+echo "configure:2230: checking for libintl.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2237 "configure"
+#line 2235 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2240: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2255,19 +2253,19 @@ fi
 if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
-echo "configure:2259: checking for gettext in libc" >&5
+echo "configure:2257: checking for gettext in libc" >&5
 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2264 "configure"
+#line 2262 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 int main() {
 return (int) gettext ("")
 ; return 0; }
 EOF
-if { (eval echo configure:2271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gt_cv_func_gettext_libc=yes
 else
@@ -2283,7 +2281,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
 
           if test "$gt_cv_func_gettext_libc" != "yes"; then
             echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:2287: checking for bindtextdomain in -lintl" >&5
+echo "configure:2285: checking for bindtextdomain in -lintl" >&5
 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2291,7 +2289,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2295 "configure"
+#line 2293 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2302,7 +2300,7 @@ int main() {
 bindtextdomain()
 ; return 0; }
 EOF
-if { (eval echo configure:2306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2318,19 +2316,19 @@ fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
-echo "configure:2322: checking for gettext in libintl" >&5
+echo "configure:2320: checking for gettext in libintl" >&5
 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2327 "configure"
+#line 2325 "configure"
 #include "confdefs.h"
 
 int main() {
 return (int) gettext ("")
 ; return 0; }
 EOF
-if { (eval echo configure:2334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gt_cv_func_gettext_libintl=yes
 else
@@ -2358,7 +2356,7 @@ EOF
              # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2362: checking for $ac_word" >&5
+echo "configure:2360: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2392,12 +2390,12 @@ fi
                for ac_func in dcgettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2396: checking for $ac_func" >&5
+echo "configure:2394: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2401 "configure"
+#line 2399 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2420,7 +2418,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2447,7 +2445,7 @@ done
                # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2451: checking for $ac_word" >&5
+echo "configure:2449: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2483,7 +2481,7 @@ fi
                # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2487: checking for $ac_word" >&5
+echo "configure:2485: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2515,7 +2513,7 @@ else
 fi
 
                cat > conftest.$ac_ext <<EOF
-#line 2519 "configure"
+#line 2517 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2523,7 +2521,7 @@ extern int _nl_msg_cat_cntr;
                               return _nl_msg_cat_cntr
 ; return 0; }
 EOF
-if { (eval echo configure:2527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   CATOBJEXT=.gmo
                   DATADIRNAME=share
@@ -2555,7 +2553,7 @@ fi
         # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2559: checking for $ac_word" >&5
+echo "configure:2557: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2589,7 +2587,7 @@ fi
         # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2593: checking for $ac_word" >&5
+echo "configure:2591: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2625,7 +2623,7 @@ fi
         # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2629: checking for $ac_word" >&5
+echo "configure:2627: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2715,7 +2713,7 @@ fi
        LINGUAS=
      else
        echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:2719: checking for catalogs to be installed" >&5
+echo "configure:2717: checking for catalogs to be installed" >&5
        NEW_LINGUAS=
        for lang in ${LINGUAS=$ALL_LINGUAS}; do
          case "$ALL_LINGUAS" in
@@ -2743,17 +2741,17 @@ echo "configure:2719: checking for catalogs to be installed" >&5
       if test "$CATOBJEXT" = ".cat"; then
         ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
-echo "configure:2747: checking for linux/version.h" >&5
+echo "configure:2745: checking for linux/version.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2752 "configure"
+#line 2750 "configure"
 #include "confdefs.h"
 #include <linux/version.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2757: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2755: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2882,7 +2880,7 @@ 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2886: checking for $ac_word" >&5
+echo "configure:2884: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2923,7 +2921,7 @@ done
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:2927: checking for a BSD compatible install" >&5
+echo "configure:2925: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2984,7 +2982,7 @@ fi
 # 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2988: checking for $ac_word" >&5
+echo "configure:2986: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3016,7 +3014,7 @@ fi
 # 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3020: checking for $ac_word" >&5
+echo "configure:3018: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3048,7 +3046,7 @@ if test -n "$ac_tool_prefix"; then
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3052: checking for $ac_word" >&5
+echo "configure:3050: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3083,7 +3081,7 @@ fi
 # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3087: checking for $ac_word" >&5
+echo "configure:3085: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3115,7 +3113,7 @@ fi
 # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
 set dummy ${ac_tool_prefix}windres; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3119: checking for $ac_word" >&5
+echo "configure:3117: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3149,7 +3147,7 @@ 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3153: checking for $ac_word" >&5
+echo "configure:3151: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3183,7 +3181,7 @@ test -n "$YACC" || YACC="yacc"
 # Extract the first word of "${ac_tool_prefix}mig", so it can be a program name with args.
 set dummy ${ac_tool_prefix}mig; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3187: checking for $ac_word" >&5
+echo "configure:3185: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3234,12 +3232,12 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x,"
 
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3238: checking return type of signal handlers" >&5
+echo "configure:3236: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3243 "configure"
+#line 3241 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3256,7 +3254,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3260: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3276,12 +3274,12 @@ EOF
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3280: checking for ANSI C header files" >&5
+echo "configure:3278: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3285 "configure"
+#line 3283 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -3289,7 +3287,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3293: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3306,7 +3304,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3310 "configure"
+#line 3308 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -3324,7 +3322,7 @@ 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 <<EOF
-#line 3328 "configure"
+#line 3326 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -3345,7 +3343,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 3349 "configure"
+#line 3347 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3356,7 +3354,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:3360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -3400,17 +3398,17 @@ for ac_hdr in ctype.h nlist.h link.h thread_db.h proc_service.h \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3404: checking for $ac_hdr" >&5
+echo "configure:3402: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3409 "configure"
+#line 3407 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3412: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3437,12 +3435,12 @@ fi
 done
 
 echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
-echo "configure:3441: checking whether stat file-mode macros are broken" >&5
+echo "configure:3439: checking whether stat file-mode macros are broken" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3446 "configure"
+#line 3444 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -3494,12 +3492,12 @@ fi
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3498: checking for working const" >&5
+echo "configure:3496: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3503 "configure"
+#line 3501 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3548,7 +3546,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:3552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3550: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -3569,21 +3567,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:3573: checking for inline" >&5
+echo "configure:3571: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 3580 "configure"
+#line 3578 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:3587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3585: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -3613,12 +3611,12 @@ for ac_func in bcopy btowc bzero canonicalize_file_name isascii poll \
        realpath sbrk setpgid setpgrp sigaction sigprocmask sigsetmask 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3617: checking for $ac_func" >&5
+echo "configure:3615: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3622 "configure"
+#line 3620 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3641,7 +3639,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3668,19 +3666,19 @@ done
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:3672: checking for working alloca.h" >&5
+echo "configure:3670: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3677 "configure"
+#line 3675 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:3684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -3701,12 +3699,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:3705: checking for alloca" >&5
+echo "configure:3703: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3710 "configure"
+#line 3708 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -3734,7 +3732,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:3738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -3766,12 +3764,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:3770: checking whether alloca needs Cray hooks" >&5
+echo "configure:3768: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3775 "configure"
+#line 3773 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -3796,12 +3794,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3800: checking for $ac_func" >&5
+echo "configure:3798: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3805 "configure"
+#line 3803 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3824,7 +3822,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3851,7 +3849,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:3855: checking stack direction for C alloca" >&5
+echo "configure:3853: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3859,7 +3857,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 3863 "configure"
+#line 3861 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -3878,7 +3876,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:3882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -3900,12 +3898,12 @@ EOF
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3904: checking for pid_t" >&5
+echo "configure:3902: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3909 "configure"
+#line 3907 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3934,17 +3932,17 @@ fi
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:3938: checking for vfork.h" >&5
+echo "configure:3936: checking for vfork.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3943 "configure"
+#line 3941 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3948: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3946: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3969,18 +3967,18 @@ else
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:3973: checking for working vfork" >&5
+echo "configure:3971: checking for working vfork" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test "$cross_compiling" = yes; then
   echo $ac_n "checking for vfork""... $ac_c" 1>&6
-echo "configure:3979: checking for vfork" >&5
+echo "configure:3977: checking for vfork" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3984 "configure"
+#line 3982 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vfork(); below.  */
@@ -4003,7 +4001,7 @@ vfork();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vfork=yes"
 else
@@ -4025,7 +4023,7 @@ fi
 ac_cv_func_vfork_works=$ac_cv_func_vfork
 else
   cat > conftest.$ac_ext <<EOF
-#line 4029 "configure"
+#line 4027 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -4120,7 +4118,7 @@ main() {
   }
 }
 EOF
-if { (eval echo configure:4124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_vfork_works=yes
 else
@@ -4144,7 +4142,7 @@ fi
 
 if test "$cross_compiling" = no; then
   echo $ac_n "checking whether setpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:4148: checking whether setpgrp takes no argument" >&5
+echo "configure:4146: checking whether setpgrp takes no argument" >&5
 if eval "test \"`echo '$''{'ac_cv_func_setpgrp_void'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4152,7 +4150,7 @@ else
   { echo "configure: error: cannot check setpgrp if cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4156 "configure"
+#line 4154 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_UNISTD_H
@@ -4172,7 +4170,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:4176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_setpgrp_void=no
 else
@@ -4197,12 +4195,12 @@ fi
 
 else
   echo $ac_n "checking whether setpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:4201: checking whether setpgrp takes no argument" >&5
+echo "configure:4199: checking whether setpgrp takes no argument" >&5
 if eval "test \"`echo '$''{'ac_cv_func_setpgrp_void'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4206 "configure"
+#line 4204 "configure"
 #include "confdefs.h"
 
 #include <unistd.h>
@@ -4216,7 +4214,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4220: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_func_setpgrp_void=no
 else
@@ -4240,12 +4238,12 @@ fi
 # Check if sigsetjmp is available.  Using AC_CHECK_FUNCS won't do
 # since sigsetjmp might only be defined as a macro.
 echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:4244: checking for sigsetjmp" >&5
+echo "configure:4242: checking for sigsetjmp" >&5
 if eval "test \"`echo '$''{'gdb_cv_func_sigsetjmp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4249 "configure"
+#line 4247 "configure"
 #include "confdefs.h"
 
 #include <setjmp.h>
@@ -4254,7 +4252,7 @@ int main() {
 sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);
 ; return 0; }
 EOF
-if { (eval echo configure:4258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4256: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_func_sigsetjmp=yes
 else
@@ -4277,19 +4275,19 @@ fi
 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
 echo $ac_n "checking for r_fs in struct reg""... $ac_c" 1>&6
-echo "configure:4281: checking for r_fs in struct reg" >&5
+echo "configure:4279: checking for r_fs in struct reg" >&5
 if eval "test \"`echo '$''{'gdb_cv_struct_reg_r_fs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4286 "configure"
+#line 4284 "configure"
 #include "confdefs.h"
 #include <machine/reg.h>
 int main() {
 struct reg r; r.r_fs;
 ; return 0; }
 EOF
-if { (eval echo configure:4293: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_struct_reg_r_fs=yes
 else
@@ -4309,19 +4307,19 @@ EOF
 
 fi
 echo $ac_n "checking for r_gs in struct reg""... $ac_c" 1>&6
-echo "configure:4313: checking for r_gs in struct reg" >&5
+echo "configure:4311: checking for r_gs in struct reg" >&5
 if eval "test \"`echo '$''{'gdb_cv_struct_reg_r_gs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4318 "configure"
+#line 4316 "configure"
 #include "confdefs.h"
 #include <machine/reg.h>
 int main() {
 struct reg r; r.r_gs;
 ; return 0; }
 EOF
-if { (eval echo configure:4325: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4323: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_struct_reg_r_gs=yes
 else
@@ -4343,19 +4341,19 @@ fi
 
 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
 echo $ac_n "checking for PTRACE_GETREGS""... $ac_c" 1>&6
-echo "configure:4347: checking for PTRACE_GETREGS" >&5
+echo "configure:4345: checking for PTRACE_GETREGS" >&5
 if eval "test \"`echo '$''{'gdb_cv_have_ptrace_getregs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4352 "configure"
+#line 4350 "configure"
 #include "confdefs.h"
 #include <sys/ptrace.h>
 int main() {
 PTRACE_GETREGS;
 ; return 0; }
 EOF
-if { (eval echo configure:4359: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4357: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_ptrace_getregs=yes
 else
@@ -4377,19 +4375,19 @@ fi
 
 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
 echo $ac_n "checking for PTRACE_GETFPXREGS""... $ac_c" 1>&6
-echo "configure:4381: checking for PTRACE_GETFPXREGS" >&5
+echo "configure:4379: checking for PTRACE_GETFPXREGS" >&5
 if eval "test \"`echo '$''{'gdb_cv_have_ptrace_getfpxregs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4386 "configure"
+#line 4384 "configure"
 #include "confdefs.h"
 #include <sys/ptrace.h>
 int main() {
 PTRACE_GETFPXREGS;
 ; return 0; }
 EOF
-if { (eval echo configure:4393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_ptrace_getfpxregs=yes
 else
@@ -4411,12 +4409,12 @@ fi
 
 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
 echo $ac_n "checking for PT_GETDBREGS""... $ac_c" 1>&6
-echo "configure:4415: checking for PT_GETDBREGS" >&5
+echo "configure:4413: checking for PT_GETDBREGS" >&5
 if eval "test \"`echo '$''{'gdb_cv_have_pt_getdbregs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4420 "configure"
+#line 4418 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/ptrace.h>
@@ -4424,7 +4422,7 @@ int main() {
 PT_GETDBREGS;
 ; return 0; }
 EOF
-if { (eval echo configure:4428: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_pt_getdbregs=yes
 else
@@ -4446,12 +4444,12 @@ fi
 
 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
 echo $ac_n "checking for PT_GETXMMREGS""... $ac_c" 1>&6
-echo "configure:4450: checking for PT_GETXMMREGS" >&5
+echo "configure:4448: checking for PT_GETXMMREGS" >&5
 if eval "test \"`echo '$''{'gdb_cv_have_pt_getxmmregs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4455 "configure"
+#line 4453 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/ptrace.h>
@@ -4459,7 +4457,7 @@ int main() {
 PT_GETXMMREGS;
 ; return 0; }
 EOF
-if { (eval echo configure:4463: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4461: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_pt_getxmmregs=yes
 else
@@ -4481,7 +4479,7 @@ fi
 
 
 echo $ac_n "checking for socketpair in -lsocket""... $ac_c" 1>&6
-echo "configure:4485: checking for socketpair in -lsocket" >&5
+echo "configure:4483: checking for socketpair in -lsocket" >&5
 ac_lib_var=`echo socket'_'socketpair | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4489,7 +4487,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4493 "configure"
+#line 4491 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4500,7 +4498,7 @@ int main() {
 socketpair()
 ; return 0; }
 EOF
-if { (eval echo configure:4504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4530,12 +4528,12 @@ fi
 for ac_func in socketpair
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4534: checking for $ac_func" >&5
+echo "configure:4532: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4539 "configure"
+#line 4537 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4558,7 +4556,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4585,12 +4583,12 @@ done
 
 
 echo $ac_n "checking whether malloc must be declared""... $ac_c" 1>&6
-echo "configure:4589: checking whether malloc must be declared" >&5
+echo "configure:4587: checking whether malloc must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_malloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4594 "configure"
+#line 4592 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4611,7 +4609,7 @@ int main() {
 char *(*pfn) = (char *(*)) malloc
 ; return 0; }
 EOF
-if { (eval echo configure:4615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4613: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_malloc=no
 else
@@ -4632,12 +4630,12 @@ EOF
 fi
 
 echo $ac_n "checking whether realloc must be declared""... $ac_c" 1>&6
-echo "configure:4636: checking whether realloc must be declared" >&5
+echo "configure:4634: checking whether realloc must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_realloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4641 "configure"
+#line 4639 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4658,7 +4656,7 @@ int main() {
 char *(*pfn) = (char *(*)) realloc
 ; return 0; }
 EOF
-if { (eval echo configure:4662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_realloc=no
 else
@@ -4679,12 +4677,12 @@ EOF
 fi
 
 echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6
-echo "configure:4683: checking whether free must be declared" >&5
+echo "configure:4681: checking whether free must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_free'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4688 "configure"
+#line 4686 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4705,7 +4703,7 @@ int main() {
 char *(*pfn) = (char *(*)) free
 ; return 0; }
 EOF
-if { (eval echo configure:4709: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4707: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_free=no
 else
@@ -4726,12 +4724,12 @@ EOF
 fi
 
 echo $ac_n "checking whether strerror must be declared""... $ac_c" 1>&6
-echo "configure:4730: checking whether strerror must be declared" >&5
+echo "configure:4728: checking whether strerror must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_strerror'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4735 "configure"
+#line 4733 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4752,7 +4750,7 @@ int main() {
 char *(*pfn) = (char *(*)) strerror
 ; return 0; }
 EOF
-if { (eval echo configure:4756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4754: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_strerror=no
 else
@@ -4773,12 +4771,12 @@ EOF
 fi
 
 echo $ac_n "checking whether strdup must be declared""... $ac_c" 1>&6
-echo "configure:4777: checking whether strdup must be declared" >&5
+echo "configure:4775: checking whether strdup must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_strdup'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4782 "configure"
+#line 4780 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4799,7 +4797,7 @@ int main() {
 char *(*pfn) = (char *(*)) strdup
 ; return 0; }
 EOF
-if { (eval echo configure:4803: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4801: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_strdup=no
 else
@@ -4820,12 +4818,12 @@ EOF
 fi
 
 echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6
-echo "configure:4824: checking whether strstr must be declared" >&5
+echo "configure:4822: checking whether strstr must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4829 "configure"
+#line 4827 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4846,7 +4844,7 @@ int main() {
 char *(*pfn) = (char *(*)) strstr
 ; return 0; }
 EOF
-if { (eval echo configure:4850: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_strstr=no
 else
@@ -4867,12 +4865,12 @@ EOF
 fi
 
 echo $ac_n "checking whether canonicalize_file_name must be declared""... $ac_c" 1>&6
-echo "configure:4871: checking whether canonicalize_file_name must be declared" >&5
+echo "configure:4869: checking whether canonicalize_file_name must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_canonicalize_file_name'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4876 "configure"
+#line 4874 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4893,7 +4891,7 @@ int main() {
 char *(*pfn) = (char *(*)) canonicalize_file_name
 ; return 0; }
 EOF
-if { (eval echo configure:4897: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4895: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_canonicalize_file_name=no
 else
@@ -4919,9 +4917,9 @@ fi
 # could be expunged. --jsm 1999-03-22
 
 echo $ac_n "checking for HPUX save_state structure""... $ac_c" 1>&6
-echo "configure:4923: checking for HPUX save_state structure" >&5
+echo "configure:4921: checking for HPUX save_state structure" >&5
 cat > conftest.$ac_ext <<EOF
-#line 4925 "configure"
+#line 4923 "configure"
 #include "confdefs.h"
 #include <machine/save_state.h>
 EOF
@@ -4936,7 +4934,7 @@ fi
 rm -f conftest*
 
 cat > conftest.$ac_ext <<EOF
-#line 4940 "configure"
+#line 4938 "configure"
 #include "confdefs.h"
 #include <machine/save_state.h>
 EOF
@@ -5006,12 +5004,12 @@ fi
 
 if test "$ac_cv_header_sys_procfs_h" = yes; then
   echo $ac_n "checking for pstatus_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5010: checking for pstatus_t in sys/procfs.h" >&5
+echo "configure:5008: checking for pstatus_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pstatus_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5015 "configure"
+#line 5013 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5020,7 +5018,7 @@ int main() {
 pstatus_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5024: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5022: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_pstatus_t=yes
 else
@@ -5042,12 +5040,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_pstatus_t" 1>&6
 
   echo $ac_n "checking for prrun_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5046: checking for prrun_t in sys/procfs.h" >&5
+echo "configure:5044: checking for prrun_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prrun_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5051 "configure"
+#line 5049 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5056,7 +5054,7 @@ int main() {
 prrun_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5058: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_prrun_t=yes
 else
@@ -5078,12 +5076,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_prrun_t" 1>&6
 
   echo $ac_n "checking for gregset_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5082: checking for gregset_t in sys/procfs.h" >&5
+echo "configure:5080: checking for gregset_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_gregset_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5087 "configure"
+#line 5085 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5092,7 +5090,7 @@ int main() {
 gregset_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5096: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5094: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_gregset_t=yes
 else
@@ -5114,12 +5112,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_gregset_t" 1>&6
 
   echo $ac_n "checking for fpregset_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5118: checking for fpregset_t in sys/procfs.h" >&5
+echo "configure:5116: checking for fpregset_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_fpregset_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5123 "configure"
+#line 5121 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5128,7 +5126,7 @@ int main() {
 fpregset_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_fpregset_t=yes
 else
@@ -5150,12 +5148,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_fpregset_t" 1>&6
 
   echo $ac_n "checking for prgregset_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5154: checking for prgregset_t in sys/procfs.h" >&5
+echo "configure:5152: checking for prgregset_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prgregset_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5159 "configure"
+#line 5157 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5164,7 +5162,7 @@ int main() {
 prgregset_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5168: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5166: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_prgregset_t=yes
 else
@@ -5186,12 +5184,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_prgregset_t" 1>&6
 
   echo $ac_n "checking for prfpregset_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5190: checking for prfpregset_t in sys/procfs.h" >&5
+echo "configure:5188: checking for prfpregset_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prfpregset_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5195 "configure"
+#line 5193 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5200,7 +5198,7 @@ int main() {
 prfpregset_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5204: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5202: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_prfpregset_t=yes
 else
@@ -5222,12 +5220,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_prfpregset_t" 1>&6
 
   echo $ac_n "checking for prgregset32_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5226: checking for prgregset32_t in sys/procfs.h" >&5
+echo "configure:5224: checking for prgregset32_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prgregset32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5231 "configure"
+#line 5229 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5236,7 +5234,7 @@ int main() {
 prgregset32_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5240: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5238: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_prgregset32_t=yes
 else
@@ -5258,12 +5256,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_prgregset32_t" 1>&6
 
   echo $ac_n "checking for prfpregset32_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5262: checking for prfpregset32_t in sys/procfs.h" >&5
+echo "configure:5260: checking for prfpregset32_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prfpregset32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5267 "configure"
+#line 5265 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5272,7 +5270,7 @@ int main() {
 prfpregset32_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5276: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5274: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_prfpregset32_t=yes
 else
@@ -5294,12 +5292,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_prfpregset32_t" 1>&6
 
   echo $ac_n "checking for lwpid_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5298: checking for lwpid_t in sys/procfs.h" >&5
+echo "configure:5296: checking for lwpid_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5303 "configure"
+#line 5301 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5308,7 +5306,7 @@ int main() {
 lwpid_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5312: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_lwpid_t=yes
 else
@@ -5330,12 +5328,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpid_t" 1>&6
 
   echo $ac_n "checking for psaddr_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5334: checking for psaddr_t in sys/procfs.h" >&5
+echo "configure:5332: checking for psaddr_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psaddr_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5339 "configure"
+#line 5337 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5344,7 +5342,7 @@ int main() {
 psaddr_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5346: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_psaddr_t=yes
 else
@@ -5366,12 +5364,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_psaddr_t" 1>&6
 
   echo $ac_n "checking for prsysent_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5370: checking for prsysent_t in sys/procfs.h" >&5
+echo "configure:5368: checking for prsysent_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prsysent_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5375 "configure"
+#line 5373 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5380,7 +5378,7 @@ int main() {
 prsysent_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5384: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5382: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_prsysent_t=yes
 else
@@ -5402,12 +5400,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_prsysent_t" 1>&6
 
   echo $ac_n "checking for pr_sigset_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5406: checking for pr_sigset_t in sys/procfs.h" >&5
+echo "configure:5404: checking for pr_sigset_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pr_sigset_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5411 "configure"
+#line 5409 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5416,7 +5414,7 @@ int main() {
 pr_sigset_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5418: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_pr_sigset_t=yes
 else
@@ -5438,12 +5436,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_pr_sigset_t" 1>&6
 
   echo $ac_n "checking for pr_sigaction64_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5442: checking for pr_sigaction64_t in sys/procfs.h" >&5
+echo "configure:5440: checking for pr_sigaction64_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pr_sigaction64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5447 "configure"
+#line 5445 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5452,7 +5450,7 @@ int main() {
 pr_sigaction64_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_pr_sigaction64_t=yes
 else
@@ -5474,12 +5472,12 @@ EOF
  echo "$ac_t""$bfd_cv_have_sys_procfs_type_pr_sigaction64_t" 1>&6
 
   echo $ac_n "checking for pr_siginfo64_t in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5478: checking for pr_siginfo64_t in sys/procfs.h" >&5
+echo "configure:5476: checking for pr_siginfo64_t in sys/procfs.h" >&5
  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pr_siginfo64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5483 "configure"
+#line 5481 "configure"
 #include "confdefs.h"
 
 #define _SYSCALL32
@@ -5488,7 +5486,7 @@ int main() {
 pr_siginfo64_t avar
 ; return 0; }
 EOF
-if { (eval echo configure:5492: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5490: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_have_sys_procfs_type_pr_siginfo64_t=yes
 else
@@ -5515,7 +5513,7 @@ EOF
         
   if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
     echo $ac_n "checking whether prfpregset_t type is broken""... $ac_c" 1>&6
-echo "configure:5519: checking whether prfpregset_t type is broken" >&5
+echo "configure:5517: checking whether prfpregset_t type is broken" >&5
     if eval "test \"`echo '$''{'gdb_cv_prfpregset_t_broken'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5523,7 +5521,7 @@ else
   gdb_cv_prfpregset_t_broken=yes
 else
   cat > conftest.$ac_ext <<EOF
-#line 5527 "configure"
+#line 5525 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
        int main ()
@@ -5533,7 +5531,7 @@ else
          return 0;
        }
 EOF
-if { (eval echo configure:5537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   gdb_cv_prfpregset_t_broken=no
 else
@@ -5558,12 +5556,12 @@ EOF
 
   
   echo $ac_n "checking for PIOCSET ioctl entry in sys/procfs.h""... $ac_c" 1>&6
-echo "configure:5562: checking for PIOCSET ioctl entry in sys/procfs.h" >&5
+echo "configure:5560: checking for PIOCSET ioctl entry in sys/procfs.h" >&5
   if eval "test \"`echo '$''{'gdb_cv_have_procfs_piocset'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5567 "configure"
+#line 5565 "configure"
 #include "confdefs.h"
 #include <unistd.h>
 #include <sys/types.h>
@@ -5576,7 +5574,7 @@ int main() {
   
 ; return 0; }
 EOF
-if { (eval echo configure:5580: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_procfs_piocset=yes
 else
@@ -5600,19 +5598,19 @@ fi
 if test ${host} = ${target} ; then
     
   echo $ac_n "checking for member l_addr in struct link_map""... $ac_c" 1>&6
-echo "configure:5604: checking for member l_addr in struct link_map" >&5
+echo "configure:5602: checking for member l_addr in struct link_map" >&5
   if eval "test \"`echo '$''{'gdb_cv_have_struct_link_map_with_l_members'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5609 "configure"
+#line 5607 "configure"
 #include "confdefs.h"
 #include <link.h>
 int main() {
 struct link_map lm; (void) lm.l_addr;
 ; return 0; }
 EOF
-if { (eval echo configure:5616: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5614: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_struct_link_map_with_l_members=yes
 else
@@ -5634,12 +5632,12 @@ EOF
 
     
   echo $ac_n "checking for member lm_addr in struct link_map""... $ac_c" 1>&6
-echo "configure:5638: checking for member lm_addr in struct link_map" >&5
+echo "configure:5636: checking for member lm_addr in struct link_map" >&5
   if eval "test \"`echo '$''{'gdb_cv_have_struct_link_map_with_lm_members'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5643 "configure"
+#line 5641 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <link.h>
@@ -5647,7 +5645,7 @@ int main() {
 struct link_map lm; (void) lm.lm_addr;
 ; return 0; }
 EOF
-if { (eval echo configure:5651: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5649: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_struct_link_map_with_lm_members=yes
 else
@@ -5669,12 +5667,12 @@ EOF
 
     
   echo $ac_n "checking for member som_addr in struct so_map""... $ac_c" 1>&6
-echo "configure:5673: checking for member som_addr in struct so_map" >&5
+echo "configure:5671: checking for member som_addr in struct so_map" >&5
   if eval "test \"`echo '$''{'gdb_cv_have_struct_so_map_with_som_members'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5678 "configure"
+#line 5676 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_NLIST_H
@@ -5685,7 +5683,7 @@ int main() {
 struct so_map lm; (void) lm.som_addr;
 ; return 0; }
 EOF
-if { (eval echo configure:5689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5687: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_struct_so_map_with_som_members=yes
 else
@@ -5707,12 +5705,12 @@ EOF
 
     
   echo $ac_n "checking for struct link_map32 in sys/link.h""... $ac_c" 1>&6
-echo "configure:5711: checking for struct link_map32 in sys/link.h" >&5
+echo "configure:5709: checking for struct link_map32 in sys/link.h" >&5
   if eval "test \"`echo '$''{'gdb_cv_have_struct_link_map32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5716 "configure"
+#line 5714 "configure"
 #include "confdefs.h"
 #define _SYSCALL32
 #include <sys/link.h>
@@ -5720,7 +5718,7 @@ int main() {
 struct link_map32 l;
 ; return 0; }
 EOF
-if { (eval echo configure:5724: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_struct_link_map32=yes
 else
@@ -5746,7 +5744,7 @@ EOF
 fi
 
 echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:5750: checking for main in -lm" >&5
+echo "configure:5748: checking for main in -lm" >&5
 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5754,14 +5752,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5758 "configure"
+#line 5756 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5790,7 +5788,7 @@ fi
 
 
 echo $ac_n "checking for wctype in -lc""... $ac_c" 1>&6
-echo "configure:5794: checking for wctype in -lc" >&5
+echo "configure:5792: checking for wctype in -lc" >&5
 ac_lib_var=`echo c'_'wctype | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5798,7 +5796,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5802 "configure"
+#line 5800 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5809,7 +5807,7 @@ int main() {
 wctype()
 ; return 0; }
 EOF
-if { (eval echo configure:5813: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5828,7 +5826,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for wctype in -lw""... $ac_c" 1>&6
-echo "configure:5832: checking for wctype in -lw" >&5
+echo "configure:5830: checking for wctype in -lw" >&5
 ac_lib_var=`echo w'_'wctype | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5836,7 +5834,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lw  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5840 "configure"
+#line 5838 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5847,7 +5845,7 @@ int main() {
 wctype()
 ; return 0; }
 EOF
-if { (eval echo configure:5851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5879,12 +5877,12 @@ fi
 
 
 echo $ac_n "checking for long long support in compiler""... $ac_c" 1>&6
-echo "configure:5883: checking for long long support in compiler" >&5
+echo "configure:5881: checking for long long support in compiler" >&5
 if eval "test \"`echo '$''{'gdb_cv_c_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5888 "configure"
+#line 5886 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -5894,7 +5892,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_c_long_long=yes
 else
@@ -5916,7 +5914,7 @@ fi
 
 
 echo $ac_n "checking for long long support in printf""... $ac_c" 1>&6
-echo "configure:5920: checking for long long support in printf" >&5
+echo "configure:5918: checking for long long support in printf" >&5
 if eval "test \"`echo '$''{'gdb_cv_printf_has_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5924,7 +5922,7 @@ else
   gdb_cv_printf_has_long_long=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 5928 "configure"
+#line 5926 "configure"
 #include "confdefs.h"
 
 int main () {
@@ -5938,7 +5936,7 @@ int main () {
   return (strcmp ("0x0123456789abcdef", buf));
 }
 EOF
-if { (eval echo configure:5942: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   gdb_cv_printf_has_long_long=yes
 else
@@ -5962,19 +5960,19 @@ echo "$ac_t""$gdb_cv_printf_has_long_long" 1>&6
 
 
 echo $ac_n "checking for long double support in compiler""... $ac_c" 1>&6
-echo "configure:5966: checking for long double support in compiler" >&5
+echo "configure:5964: checking for long double support in compiler" >&5
 if eval "test \"`echo '$''{'ac_cv_c_long_double'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5971 "configure"
+#line 5969 "configure"
 #include "confdefs.h"
 
 int main() {
 long double foo;
 ; return 0; }
 EOF
-if { (eval echo configure:5978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5976: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_long_double=yes
 else
@@ -5996,7 +5994,7 @@ fi
 
 
 echo $ac_n "checking for long double support in printf""... $ac_c" 1>&6
-echo "configure:6000: checking for long double support in printf" >&5
+echo "configure:5998: checking for long double support in printf" >&5
 if eval "test \"`echo '$''{'gdb_cv_printf_has_long_double'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6004,7 +6002,7 @@ else
   gdb_cv_printf_has_long_double=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 6008 "configure"
+#line 6006 "configure"
 #include "confdefs.h"
 
 int main () {
@@ -6014,7 +6012,7 @@ int main () {
   return (strncmp ("3.14159", buf, 7));
 }
 EOF
-if { (eval echo configure:6018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   gdb_cv_printf_has_long_double=yes
 else
@@ -6038,7 +6036,7 @@ echo "$ac_t""$gdb_cv_printf_has_long_double" 1>&6
 
 
 echo $ac_n "checking for long double support in scanf""... $ac_c" 1>&6
-echo "configure:6042: checking for long double support in scanf" >&5
+echo "configure:6040: checking for long double support in scanf" >&5
 if eval "test \"`echo '$''{'gdb_cv_scanf_has_long_double'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6046,7 +6044,7 @@ else
   gdb_cv_scanf_has_long_double=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 6050 "configure"
+#line 6048 "configure"
 #include "confdefs.h"
 
 int main () {
@@ -6056,7 +6054,7 @@ int main () {
   return !(f > 3.14159 && f < 3.14160);
 }
 EOF
-if { (eval echo configure:6060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   gdb_cv_scanf_has_long_double=yes
 else
@@ -6082,17 +6080,17 @@ for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6086: checking for $ac_hdr" >&5
+echo "configure:6084: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6091 "configure"
+#line 6089 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6096: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6094: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6121,12 +6119,12 @@ done
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6125: checking for $ac_func" >&5
+echo "configure:6123: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6130 "configure"
+#line 6128 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6149,7 +6147,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6174,7 +6172,7 @@ fi
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:6178: checking for working mmap" >&5
+echo "configure:6176: checking for working mmap" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6182,7 +6180,7 @@ else
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 6186 "configure"
+#line 6184 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -6322,7 +6320,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:6326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
@@ -6348,7 +6346,7 @@ fi
 case ${host_os} in
 aix*)
   echo $ac_n "checking for -bbigtoc option""... $ac_c" 1>&6
-echo "configure:6352: checking for -bbigtoc option" >&5
+echo "configure:6350: checking for -bbigtoc option" >&5
 if eval "test \"`echo '$''{'gdb_cv_bigtoc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6362,14 +6360,14 @@ else
 
     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
     cat > conftest.$ac_ext <<EOF
-#line 6366 "configure"
+#line 6364 "configure"
 #include "confdefs.h"
 
 int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:6373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -6392,7 +6390,7 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
    case ${host_os} in
    hpux*)
       echo $ac_n "checking for HPUX/OSF thread support""... $ac_c" 1>&6
-echo "configure:6396: checking for HPUX/OSF thread support" >&5
+echo "configure:6394: checking for HPUX/OSF thread support" >&5
       if test -f /usr/include/dce/cma_config.h ; then
          if test "$GCC" = "yes" ; then
             echo "$ac_t""yes" 1>&6
@@ -6410,8 +6408,12 @@ EOF
       fi
       ;;
    solaris*)
+      # See if thread_db library is around for Solaris thread debugging.
+      # Note that we must explicitly test for version 1 of the library
+      # because version 0 (present on Solaris 2.4 or earlier) doesn't have
+      # the same API.
       echo $ac_n "checking for Solaris thread debugging library""... $ac_c" 1>&6
-echo "configure:6415: checking for Solaris thread debugging library" >&5
+echo "configure:6417: checking for Solaris thread debugging library" >&5
       if test -f /usr/lib/libthread_db.so.1 ; then
          echo "$ac_t""yes" 1>&6
          cat >> confdefs.h <<\EOF
@@ -6421,7 +6423,7 @@ EOF
          CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
          CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
          echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:6425: checking for dlopen in -ldl" >&5
+echo "configure:6427: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6429,7 +6431,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6433 "configure"
+#line 6435 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6440,7 +6442,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:6444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6472,17 +6474,17 @@ fi
             # all symbols visible in the dynamic symbol table.
             hold_ldflags=$LDFLAGS
             echo $ac_n "checking for the ld -export-dynamic flag""... $ac_c" 1>&6
-echo "configure:6476: checking for the ld -export-dynamic flag" >&5
+echo "configure:6478: checking for the ld -export-dynamic flag" >&5
             LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
             cat > conftest.$ac_ext <<EOF
-#line 6479 "configure"
+#line 6481 "configure"
 #include "confdefs.h"
 
 int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:6486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   found=yes
 else
@@ -6501,13 +6503,13 @@ rm -f conftest*
         # Sun randomly tweaked the prototypes in <proc_service.h>
         # at one point.
         echo $ac_n "checking if <proc_service.h> is old""... $ac_c" 1>&6
-echo "configure:6505: checking if <proc_service.h> is old" >&5
+echo "configure:6507: checking if <proc_service.h> is old" >&5
         if eval "test \"`echo '$''{'gdb_cv_proc_service_is_old'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
            cat > conftest.$ac_ext <<EOF
-#line 6511 "configure"
+#line 6513 "configure"
 #include "confdefs.h"
 
                #include <proc_service.h>
@@ -6518,7 +6520,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:6522: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_proc_service_is_old=no
 else
@@ -6542,25 +6544,60 @@ EOF
          echo "$ac_t""no" 1>&6
       fi
       ;;
+   aix*)
+      echo $ac_n "checking for AiX thread debugging library""... $ac_c" 1>&6
+echo "configure:6550: checking for AiX thread debugging library" >&5
+      if eval "test \"`echo '$''{'gdb_cv_have_aix_thread_debug'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 6555 "configure"
+#include "confdefs.h"
+#include <sys/pthdebug.h>
+int main() {
+#ifndef PTHDB_VERSION_3
+                                    #error
+                                    #endif
+; return 0; }
+EOF
+if { (eval echo configure:6564: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  gdb_cv_have_aix_thread_debug=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  gdb_cv_have_aix_thread_debug=no
+fi
+rm -f conftest*
+fi
+
+      echo "$ac_t""$gdb_cv_have_aix_thread_debug" 1>&6
+      if test $gdb_cv_have_aix_thread_debug = yes; then
+         CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
+         CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
+         CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
+      fi
+      ;;
    esac
    
 fi
 
 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
    echo $ac_n "checking whether <thread_db.h> has TD_NOTALLOC""... $ac_c" 1>&6
-echo "configure:6552: checking whether <thread_db.h> has TD_NOTALLOC" >&5
+echo "configure:6589: checking whether <thread_db.h> has TD_NOTALLOC" >&5
 if eval "test \"`echo '$''{'gdb_cv_thread_db_h_has_td_notalloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6557 "configure"
+#line 6594 "configure"
 #include "confdefs.h"
 #include <thread_db.h>
 int main() {
 int i = TD_NOTALLOC;
 ; return 0; }
 EOF
-if { (eval echo configure:6564: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_thread_db_h_has_td_notalloc=yes
 else
@@ -6583,6 +6620,36 @@ EOF
 
 fi
 
+if test $host = $target; then
+  case $target in
+    *-linux*)
+      save_CFLAGS=$CFLAGS
+      CFLAGS="$CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
+      cat > conftest.$ac_ext <<EOF
+#line 6630 "configure"
+#include "confdefs.h"
+#include <unistd.h>
+int main() {
+pread64 (0, NULL, 0, 0);
+; return 0; }
+EOF
+if { (eval echo configure:6637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  ENABLE_CFLAGS="$ENABLE_CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
+                  cat >> confdefs.h <<\EOF
+#define HAVE_PREAD64 1
+EOF
+
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+      CFLAGS=$save_CFLAGS
+      ;;
+  esac
+fi
+
 
 # Check whether --enable-gdbcli or --disable-gdbcli was given.
 if test "${enable_gdbcli+set}" = set; then
@@ -6774,7 +6841,7 @@ WERROR_CFLAGS=""
 if test "x${build_warnings}" != x -a "x$GCC" = xyes
 then
     echo $ac_n "checking compiler warning flags""... $ac_c" 1>&6
-echo "configure:6778: checking compiler warning flags" >&5
+echo "configure:6845: checking compiler warning flags" >&5
     # Separate out the -Werror flag as some files just cannot be
     # compiled with it enabled.
     for w in ${build_warnings}; do
@@ -6784,14 +6851,14 @@ echo "configure:6778: checking compiler warning flags" >&5
            saved_CFLAGS="$CFLAGS"
            CFLAGS="$CFLAGS $w"
            cat > conftest.$ac_ext <<EOF
-#line 6788 "configure"
+#line 6855 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:6795: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6862: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   WARN_CFLAGS="${WARN_CFLAGS} $w"
 else
@@ -6851,12 +6918,12 @@ fi
 
 if test $want_included_regex = false; then
   echo $ac_n "checking for GNU regex""... $ac_c" 1>&6
-echo "configure:6855: checking for GNU regex" >&5
+echo "configure:6922: checking for GNU regex" >&5
   if eval "test \"`echo '$''{'gdb_cv_have_gnu_regex'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6860 "configure"
+#line 6927 "configure"
 #include "confdefs.h"
 #include <gnu-versions.h>
 #include <sys/types.h>
@@ -6868,7 +6935,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:6872: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6939: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gdb_cv_have_gnu_regex=yes
 else
@@ -6897,12 +6964,12 @@ fi
 
 # In the Cygwin environment, we need some additional flags.
 echo $ac_n "checking for cygwin""... $ac_c" 1>&6
-echo "configure:6901: checking for cygwin" >&5
+echo "configure:6968: checking for cygwin" >&5
 if eval "test \"`echo '$''{'gdb_cv_os_cygwin'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6906 "configure"
+#line 6973 "configure"
 #include "confdefs.h"
 
 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
@@ -6940,7 +7007,7 @@ if test x$gdb_cv_os_cygwin = xyes; then
 else
   TERM_LIB=
   echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:6944: checking for tgetent in -lncurses" >&5
+echo "configure:7011: checking for tgetent in -lncurses" >&5
 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6948,7 +7015,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lncurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6952 "configure"
+#line 7019 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6959,7 +7026,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:6963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6978,7 +7045,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -lHcurses""... $ac_c" 1>&6
-echo "configure:6982: checking for tgetent in -lHcurses" >&5
+echo "configure:7049: checking for tgetent in -lHcurses" >&5
 ac_lib_var=`echo Hcurses'_'tgetent | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6986,7 +7053,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lHcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6990 "configure"
+#line 7057 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6997,7 +7064,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:7001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7016,7 +7083,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermlib""... $ac_c" 1>&6
-echo "configure:7020: checking for tgetent in -ltermlib" >&5
+echo "configure:7087: checking for tgetent in -ltermlib" >&5
 ac_lib_var=`echo termlib'_'tgetent | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7024,7 +7091,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ltermlib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7028 "configure"
+#line 7095 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7035,7 +7102,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:7039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7054,7 +7121,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:7058: checking for tgetent in -ltermcap" >&5
+echo "configure:7125: checking for tgetent in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7062,7 +7129,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ltermcap  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7066 "configure"
+#line 7133 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7073,7 +7140,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:7077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7092,7 +7159,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:7096: checking for tgetent in -lcurses" >&5
+echo "configure:7163: checking for tgetent in -lcurses" >&5
 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7100,7 +7167,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7104 "configure"
+#line 7171 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7111,7 +7178,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:7115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7130,7 +7197,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -lterminfo""... $ac_c" 1>&6
-echo "configure:7134: checking for tgetent in -lterminfo" >&5
+echo "configure:7201: checking for tgetent in -lterminfo" >&5
 ac_lib_var=`echo terminfo'_'tgetent | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7138,7 +7205,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lterminfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7142 "configure"
+#line 7209 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7149,7 +7216,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:7153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7314,7 +7381,7 @@ if test "${with_tclconfig+set}" = set; then
 fi
 
   echo $ac_n "checking for Tcl configuration""... $ac_c" 1>&6
-echo "configure:7318: checking for Tcl configuration" >&5
+echo "configure:7385: checking for Tcl configuration" >&5
   if eval "test \"`echo '$''{'ac_cv_c_tclconfig'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7422,7 +7489,7 @@ if test "${with_tkconfig+set}" = set; then
 fi
 
   echo $ac_n "checking for Tk configuration""... $ac_c" 1>&6
-echo "configure:7426: checking for Tk configuration" >&5
+echo "configure:7493: checking for Tk configuration" >&5
   if eval "test \"`echo '$''{'ac_cv_c_tkconfig'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7531,7 +7598,7 @@ fi
 
 no_tcl=true
 echo $ac_n "checking for Tcl private headers. dir=${configdir}""... $ac_c" 1>&6
-echo "configure:7535: checking for Tcl private headers. dir=${configdir}" >&5
+echo "configure:7602: checking for Tcl private headers. dir=${configdir}" >&5
 # Check whether --with-tclinclude or --without-tclinclude was given.
 if test "${with_tclinclude+set}" = set; then
   withval="$with_tclinclude"
@@ -7597,17 +7664,17 @@ fi
 if test x"${ac_cv_c_tclh}" = x ; then
    ac_safe=`echo "tclInt.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for tclInt.h""... $ac_c" 1>&6
-echo "configure:7601: checking for tclInt.h" >&5
+echo "configure:7668: checking for tclInt.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7606 "configure"
+#line 7673 "configure"
 #include "confdefs.h"
 #include <tclInt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7678: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7667,7 +7734,7 @@ fi
 #
 no_tk=true
 echo $ac_n "checking for Tk private headers""... $ac_c" 1>&6
-echo "configure:7671: checking for Tk private headers" >&5
+echo "configure:7738: checking for Tk private headers" >&5
 # Check whether --with-tkinclude or --without-tkinclude was given.
 if test "${with_tkinclude+set}" = set; then
   withval="$with_tkinclude"
@@ -7733,17 +7800,17 @@ fi
 if test x"${ac_cv_c_tkh}" = x ; then
    ac_safe=`echo "tk.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for tk.h""... $ac_c" 1>&6
-echo "configure:7737: checking for tk.h" >&5
+echo "configure:7804: checking for tk.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7742 "configure"
+#line 7809 "configure"
 #include "confdefs.h"
 #include <tk.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7747: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7814: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7789,7 +7856,7 @@ fi
 
           
 echo $ac_n "checking for Itcl private headers. srcdir=${srcdir}""... $ac_c" 1>&6
-echo "configure:7793: checking for Itcl private headers. srcdir=${srcdir}" >&5
+echo "configure:7860: checking for Itcl private headers. srcdir=${srcdir}" >&5
 if test x"${ac_cv_c_itclh}" = x ; then
   for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ${srcdir}/../itcl/itcl; do
     if test -f $i/generic/itcl.h ; then
@@ -7812,7 +7879,7 @@ fi
 
           
 echo $ac_n "checking for Itk private headers. srcdir=${srcdir}""... $ac_c" 1>&6
-echo "configure:7816: checking for Itk private headers. srcdir=${srcdir}" >&5
+echo "configure:7883: checking for Itk private headers. srcdir=${srcdir}" >&5
 if test x"${ac_cv_c_itkh}" = x ; then
   for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ${srcdir}/../itcl/itk; do
     if test -f $i/generic/itk.h ; then
@@ -7833,26 +7900,6 @@ fi
 
 #AC_SUBST(ITKLIB)
 
-          
-echo $ac_n "checking for Tix private headers. srcdir=${srcdir}""... $ac_c" 1>&6
-echo "configure:7839: checking for Tix private headers. srcdir=${srcdir}" >&5
-if test x"${ac_cv_c_tixh}" = x ; then
-  for i in ${srcdir}/../tix ${srcdir}/../../tix ${srcdir}/../../../tix ; do
-    if test -f $i/generic/tix.h ; then
-      ac_cv_c_tixh=`(cd $i/generic; pwd)`
-      break
-    fi
-  done
-fi
-if test x"${ac_cv_c_tixh}" = x ; then
-  TIXHDIR="# no Tix private headers found"
-  { echo "configure: error: Can't find Tix private headers" 1>&2; exit 1; }
-fi
-if test x"${ac_cv_c_tixh}" != x ; then
-     TIXHDIR="-I${ac_cv_c_tixh}"
-fi
-
-
 
 
           # now look for Tk library stuff
@@ -7887,7 +7934,7 @@ if test "${with_itclconfig+set}" = set; then
 fi
 
   echo $ac_n "checking for Itcl configuration""... $ac_c" 1>&6
-echo "configure:7891: checking for Itcl configuration" >&5
+echo "configure:7938: checking for Itcl configuration" >&5
   if eval "test \"`echo '$''{'ac_cv_c_itclconfig'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7990,7 +8037,7 @@ if test "${with_itkconfig+set}" = set; then
 fi
 
   echo $ac_n "checking for Itk configuration""... $ac_c" 1>&6
-echo "configure:7994: checking for Itk configuration" >&5
+echo "configure:8041: checking for Itk configuration" >&5
   if eval "test \"`echo '$''{'ac_cv_c_itkconfig'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8075,109 +8122,6 @@ fi
             ITK_DEPS="${ITK_LIB_FULL_PATH}"
            fi
 
-          # now look for Tix library stuff
-          
-#
-# Ok, lets find the tix configuration
-# First, look for one uninstalled.  
-# the alternative search directory is invoked by --with-itkconfig
-#
-
-if test x"${no_tix}" = x ; then
-  # we reset no_tix in case something fails here
-  no_tix=true
-  # Check whether --with-tixconfig or --without-tixconfig was given.
-if test "${with_tixconfig+set}" = set; then
-  withval="$with_tixconfig"
-  with_tixconfig=${withval}
-fi
-
-  echo $ac_n "checking for Tix configuration""... $ac_c" 1>&6
-echo "configure:8097: checking for Tix configuration" >&5
-  if eval "test \"`echo '$''{'ac_cv_c_tixconfig'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-
-  # First check to see if --with-tixconfig was specified.
-  if test x"${with_tixconfig}" != x ; then
-    if test -f "${with_tixconfig}/tixConfig.sh" ; then
-      ac_cv_c_tixconfig=`(cd ${with_tixconfig}; pwd)`
-    else
-      { echo "configure: error: ${with_tixconfig} directory doesn't contain tixConfig.sh" 1>&2; exit 1; }
-    fi
-  fi
-
-  # then check for a private Tix library
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    for i in \
-               ../tix \
-               `ls -dr ../tix 2>/dev/null` \
-               ../../tix \
-               `ls -dr ../../tix 2>/dev/null` \
-               ../../../tix \
-               `ls -dr ../../../tix 2>/dev/null` ; do
-      echo "**** Looking at $i - with ${configdir}"
-      if test -f "$i/tixConfig.sh" ; then
-        ac_cv_c_tixconfig=`(cd $i; pwd)`
-       break
-      fi
-    done
-  fi
-  # check in a few common install locations
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do
-      echo "**** Looking at $i"
-      if test -f "$i/tixConfig.sh" ; then
-        ac_cv_c_tixconfig=`(cd $i; pwd)`
-       break
-      fi
-    done
-  fi
-  # check in a few other private locations
-  echo "**** Other private locations"
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    for i in \
-               ${srcdir}/../tix \
-               `ls -dr ${srcdir}/../tix 2>/dev/null` ; do
-      echo "**** Looking at $i - with ${configdir}"
-      if test -f "$i/${configdir}/tixConfig.sh" ; then
-        ac_cv_c_tixconfig=`(cd $i/${configdir}; pwd)`
-       break
-      fi
-    done
-  fi
-  
-fi
-
-  if test x"${ac_cv_c_tixconfig}" = x ; then
-    TIXCONFIG="# no Tix configs found"
-    echo "configure: warning: Can't find Tix configuration definitions" 1>&2
-  else
-    no_tix=
-    TIXCONFIG=${ac_cv_c_tixconfig}/tixConfig.sh
-    echo "$ac_t""found $TIXCONFIG" 1>&6
-  fi
-fi
-
-
-           if test -z "${no_tix}"; then
-             
-    if test -f "$TIXCONFIG" ; then
-      . $TIXCONFIG
-    fi
-
-    
-
-
-
-
-    
-
-            TIXLIB="${TIX_BUILD_LIB_SPEC}"
-            TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
-           fi
-
            ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
           # Tcl/Tk 8.1 require -fwritable strings.  I don't
            # know whether 8.2 will or not, but I bet it will.
@@ -8190,7 +8134,7 @@ fi
            fi
 
           # Include some libraries that Tcl and Tk want.
-          TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
+          TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
           # Yes, the ordering seems wrong here.  But it isn't.
           # TK_LIBS is the list of libraries that need to be linked
           # after Tcl/Tk.  Note that this isn't put into LIBS.  If it
@@ -8232,14 +8176,12 @@ fi
 
 
 
-
-
 # If we find X, set shell vars x_includes and x_libraries to the
 # paths, otherwise set no_x=yes.
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:8243: checking for X" >&5
+echo "configure:8185: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -8301,12 +8243,12 @@ if test "$ac_x_includes" = NO; then
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 8305 "configure"
+#line 8247 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8310: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8375,14 +8317,14 @@ if test "$ac_x_libraries" = NO; then
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8379 "configure"
+#line 8321 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:8386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -8674,7 +8616,7 @@ fi
 # ``gdbserver'' can only be built in a native configuration.
 if test x"${target}" = x"${host}"; then
     echo $ac_n "checking whether gdbserver is supported on this host""... $ac_c" 1>&6
-echo "configure:8678: checking whether gdbserver is supported on this host" >&5
+echo "configure:8620: checking whether gdbserver is supported on this host" >&5
     if test x"${build_gdbserver}" = xyes ; then
        configdirs="${configdirs} gdbserver"
        SUBDIRS="${SUBDIRS} gdbserver"
@@ -8736,7 +8678,7 @@ fi
 
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:8740: checking whether ln -s works" >&5
+echo "configure:8682: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8760,12 +8702,12 @@ fi
 
 
 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:8764: checking for Cygwin environment" >&5
+echo "configure:8706: checking for Cygwin environment" >&5
 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8769 "configure"
+#line 8711 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -8776,7 +8718,7 @@ int main() {
 return __CYGWIN__;
 ; return 0; }
 EOF
-if { (eval echo configure:8780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_cygwin=yes
 else
@@ -8793,19 +8735,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
 CYGWIN=
 test "$ac_cv_cygwin" = yes && CYGWIN=yes
 echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:8797: checking for mingw32 environment" >&5
+echo "configure:8739: checking for mingw32 environment" >&5
 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8802 "configure"
+#line 8744 "configure"
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
-if { (eval echo configure:8809: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8751: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_mingw32=yes
 else
@@ -8824,7 +8766,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
 
 
 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:8828: checking for executable suffix" >&5
+echo "configure:8770: checking for executable suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8834,7 +8776,7 @@ else
   rm -f conftest*
   echo 'int main () { return 0; }' > conftest.$ac_ext
   ac_cv_exeext=
-  if { (eval echo configure:8838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+  if { (eval echo configure:8780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
     for file in conftest.*; do
       case $file in
       *.c | *.o | *.obj | *.ilk | *.pdb) ;;
@@ -8876,7 +8818,7 @@ fi
 
 
   echo $ac_n "checking for iconv""... $ac_c" 1>&6
-echo "configure:8880: checking for iconv" >&5
+echo "configure:8822: checking for iconv" >&5
 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8884,7 +8826,7 @@ else
     am_cv_func_iconv="no, consider installing GNU libiconv"
     am_cv_lib_iconv=no
     cat > conftest.$ac_ext <<EOF
-#line 8888 "configure"
+#line 8830 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <iconv.h>
@@ -8894,7 +8836,7 @@ iconv_t cd = iconv_open("","");
        iconv_close(cd);
 ; return 0; }
 EOF
-if { (eval echo configure:8898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8840: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_func_iconv=yes
 else
@@ -8906,7 +8848,7 @@ rm -f conftest*
       am_save_LIBS="$LIBS"
       LIBS="$LIBS -liconv"
       cat > conftest.$ac_ext <<EOF
-#line 8910 "configure"
+#line 8852 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <iconv.h>
@@ -8916,7 +8858,7 @@ iconv_t cd = iconv_open("","");
          iconv_close(cd);
 ; return 0; }
 EOF
-if { (eval echo configure:8920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_lib_iconv=yes
         am_cv_func_iconv=yes
@@ -8937,13 +8879,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6
 EOF
 
     echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6
-echo "configure:8941: checking for iconv declaration" >&5
+echo "configure:8883: checking for iconv declaration" >&5
     if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
       cat > conftest.$ac_ext <<EOF
-#line 8947 "configure"
+#line 8889 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -8962,7 +8904,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:8966: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   am_cv_proto_iconv_arg1=""
 else
@@ -9218,7 +9160,6 @@ s%@TCLHDIR@%$TCLHDIR%g
 s%@TKHDIR@%$TKHDIR%g
 s%@ITCLHDIR@%$ITCLHDIR%g
 s%@ITKHDIR@%$ITKHDIR%g
-s%@TIXHDIR@%$TIXHDIR%g
 s%@ITCL_VERSION@%$ITCL_VERSION%g
 s%@ITCL_DEFS@%$ITCL_DEFS%g
 s%@ITCL_BUILD_INCLUDES@%$ITCL_BUILD_INCLUDES%g
@@ -9229,8 +9170,6 @@ s%@ITK_DEFS@%$ITK_DEFS%g
 s%@ITK_BUILD_INCLUDES@%$ITK_BUILD_INCLUDES%g
 s%@ITK_BUILD_LIB_SPEC@%$ITK_BUILD_LIB_SPEC%g
 s%@ITK_LIB_SPEC@%$ITK_LIB_SPEC%g
-s%@TIX_VERSION@%$TIX_VERSION%g
-s%@TIX_BUILD_LIB_SPEC@%$TIX_BUILD_LIB_SPEC%g
 s%@X_CFLAGS@%$X_CFLAGS%g
 s%@X_LDFLAGS@%$X_LDFLAGS%g
 s%@X_LIBS@%$X_LIBS%g
@@ -9240,8 +9179,6 @@ s%@ITCLLIB@%$ITCLLIB%g
 s%@ITCL_DEPS@%$ITCL_DEPS%g
 s%@ITKLIB@%$ITKLIB%g
 s%@ITK_DEPS@%$ITK_DEPS%g
-s%@TIXLIB@%$TIXLIB%g
-s%@TIX_DEPS@%$TIX_DEPS%g
 s%@GDBTKLIBS@%$GDBTKLIBS%g
 s%@GDBTK_CFLAGS@%$GDBTK_CFLAGS%g
 s%@GDBTK_SRC_DIR@%$GDBTK_SRC_DIR%g
index 4c2e06363a5a87a4dbe8abad3db10ef1258e23d0..f91503a3e72e54f2543d6103b7b1bc71c0fe04f1 100644 (file)
@@ -532,12 +532,12 @@ aix*)
   ;;
 esac
 
-dnl See if thread_db library is around for Solaris thread debugging.  Note that
-dnl we must explicitly test for version 1 of the library because version 0
-dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
 
-dnl Note that we only want this if we are both native (host == target), and
-dnl not doing a canadian cross build (build == host).
+dnl For certain native configurations, we need to check whether thread
+dnl support can be built in or not.
+dnl
+dnl Note that we only want this if we are both native (host == target),
+dnl and not doing a canadian cross build (build == host).
 
 if test ${build} = ${host} -a ${host} = ${target} ; then
    case ${host_os} in
@@ -557,6 +557,10 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
       fi
       ;;
    solaris*)
+      # See if thread_db library is around for Solaris thread debugging.
+      # Note that we must explicitly test for version 1 of the library
+      # because version 0 (present on Solaris 2.4 or earlier) doesn't have
+      # the same API.
       AC_MSG_CHECKING(for Solaris thread debugging library)
       if test -f /usr/lib/libthread_db.so.1 ; then
          AC_MSG_RESULT(yes)
@@ -596,6 +600,22 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
          AC_MSG_RESULT(no)
       fi
       ;;
+   aix*)
+      AC_MSG_CHECKING(for AiX thread debugging library)
+      AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
+                   [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
+                                   [#ifndef PTHDB_VERSION_3
+                                    #error
+                                    #endif],
+                                   gdb_cv_have_aix_thread_debug=yes,
+                                   gdb_cv_have_aix_thread_debug=no)])
+      AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
+      if test $gdb_cv_have_aix_thread_debug = yes; then
+         CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
+         CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
+         CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
+      fi
+      ;;
    esac
    AC_SUBST(CONFIG_LDFLAGS)
 fi
@@ -617,6 +637,23 @@ if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
             [Define if <thread_db.h> has the TD_NOTALLOC error code.])
 fi
 
+dnl linux-proc.c wants to use pread64, which may require special CFLAGS
+dnl -D_BSD_SOURCE is normally assumed but we have to specify it because of
+dnl -D_XOPEN_SOURCE=500.
+if test $host = $target; then
+  case $target in
+    *-linux*)
+      save_CFLAGS=$CFLAGS
+      CFLAGS="$CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
+      AC_TRY_LINK([#include <unistd.h>],
+                 [pread64 (0, NULL, 0, 0);],
+                 [ENABLE_CFLAGS="$ENABLE_CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
+                  AC_DEFINE(HAVE_PREAD64)], [])
+      CFLAGS=$save_CFLAGS
+      ;;
+  esac
+fi
+
 dnl The CLI cannot be disabled yet, but may be in the future  
 
 dnl Handle CLI sub-directory configury.
@@ -1025,7 +1062,6 @@ if test "${enable_gdbtk}" = "yes"; then
           CY_AC_PATH_TKH
           CY_AC_PATH_ITCLH
           CY_AC_PATH_ITKH
-          CY_AC_PATH_TIXH
 
 
           # now look for Tk library stuff
@@ -1061,14 +1097,6 @@ if test "${enable_gdbtk}" = "yes"; then
             ITK_DEPS="${ITK_LIB_FULL_PATH}"
            fi
 
-          # now look for Tix library stuff
-          CY_AC_PATH_TIXCONFIG
-           if test -z "${no_tix}"; then
-             CY_AC_LOAD_TIXCONFIG
-            TIXLIB="${TIX_BUILD_LIB_SPEC}"
-            TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
-           fi
-
            ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
           # Tcl/Tk 8.1 require -fwritable strings.  I don't
            # know whether 8.2 will or not, but I bet it will.
@@ -1081,7 +1109,7 @@ if test "${enable_gdbtk}" = "yes"; then
            fi
 
           # Include some libraries that Tcl and Tk want.
-          TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
+          TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
           # Yes, the ordering seems wrong here.  But it isn't.
           # TK_LIBS is the list of libraries that need to be linked
           # after Tcl/Tk.  Note that this isn't put into LIBS.  If it
@@ -1119,8 +1147,6 @@ AC_SUBST(ITCLLIB)
 AC_SUBST(ITCL_DEPS)
 AC_SUBST(ITKLIB)
 AC_SUBST(ITK_DEPS)
-AC_SUBST(TIXLIB)
-AC_SUBST(TIX_DEPS)
 AC_SUBST(GDBTKLIBS)
 AC_SUBST(GDBTK_CFLAGS)
 AC_SUBST(GDBTK_SRC_DIR)
index f7e3cf0f4259f4cedb3ad10713da42e31456049b..ff758b81c9dd654726fc1ae5f90f67f54f3113d8 100644 (file)
@@ -38,6 +38,7 @@
 #include "gdbthread.h"
 #include "regcache.h"
 #include "symfile.h"
+#include <readline/readline.h>
 
 #ifndef O_BINARY
 #define O_BINARY 0
@@ -62,7 +63,7 @@ static int solib_add_stub (PTR);
 
 static struct core_fns *sniff_core_bfd (bfd *);
 
-static boolean gdb_check_format (bfd *);
+static int gdb_check_format (bfd *);
 
 static void core_open (char *, int);
 
@@ -160,7 +161,7 @@ default_check_format (bfd *abfd)
 
 /* Attempt to recognize core file formats that BFD rejects. */
 
-static boolean 
+static int
 gdb_check_format (bfd *abfd)
 {
   struct core_fns *cf;
@@ -364,8 +365,8 @@ core_open (char *filename, int from_tty)
       /* Now, set up the frame cache, and print the top of stack.  */
       flush_cached_frames ();
       select_frame (get_current_frame ());
-      print_stack_frame (selected_frame,
-                        frame_relative_level (selected_frame), 1);
+      print_stack_frame (deprecated_selected_frame,
+                        frame_relative_level (deprecated_selected_frame), 1);
     }
   else
     {
@@ -509,16 +510,13 @@ init_core_ops (void)
   core_ops.to_open = core_open;
   core_ops.to_close = core_close;
   core_ops.to_attach = find_default_attach;
-  core_ops.to_require_attach = find_default_require_attach;
   core_ops.to_detach = core_detach;
-  core_ops.to_require_detach = find_default_require_detach;
   core_ops.to_fetch_registers = get_core_registers;
   core_ops.to_xfer_memory = xfer_memory;
   core_ops.to_files_info = core_files_info;
   core_ops.to_insert_breakpoint = ignore;
   core_ops.to_remove_breakpoint = ignore;
   core_ops.to_create_inferior = find_default_create_inferior;
-  core_ops.to_clone_and_follow_inferior = find_default_clone_and_follow_inferior;
   core_ops.to_thread_alive = core_file_thread_alive;
   core_ops.to_stratum = core_stratum;
   core_ops.to_has_memory = 1;
index efaf89a4b70844775a8fe2a7565613749e9cdf42..4341789e1656e8ce2c6a2586be700b3d9859c9d9 100644 (file)
@@ -28,6 +28,8 @@
 #include "serial.h"
 #include "regcache.h"
 
+#include "m68k-tdep.h"
+
 static void cpu32bug_open (char *args, int from_tty);
 
 static void
@@ -53,12 +55,12 @@ cpu32bug_supply_register (char *regname, int regnamelen, char *val, int vallen)
     case 'D':
       if (regname[1] < '0' || regname[1] > '7')
        return;
-      regno = regname[1] - '0' + D0_REGNUM;
+      regno = regname[1] - '0' + M68K_D0_REGNUM;
       break;
     case 'A':
       if (regname[1] < '0' || regname[1] > '7')
        return;
-      regno = regname[1] - '0' + A0_REGNUM;
+      regno = regname[1] - '0' + M68K_A0_REGNUM;
       break;
     default:
       return;
index 046c08b072ae64c88094a592b02bf84d840643bd..0d552b8bda4c65df756d0e010edc918136d6313f 100644 (file)
@@ -392,7 +392,7 @@ static CORE_ADDR bfd_lookup_symbol (bfd *, const char *);
 
    CORE_ADDR frame
    CORE_ADDR pc
-   int signal_handler_caller
+   enum frame_type type;
    CORE_ADDR return_pc
    int leaf_function
 
@@ -405,8 +405,9 @@ static CORE_ADDR bfd_lookup_symbol (bfd *, const char *);
    of the register PC.  All other frames contain the content of the
    register PC in the next frame.
 
-   The variable signal_handler_caller is non-zero when the frame is
-   associated with the call of a signal handler.
+   The variable `type' indicates the frame's type: normal, SIGTRAMP
+   (associated with a signal handler), dummy (associated with a dummy
+   frame).
 
    The variable return_pc contains the address where execution should be
    resumed when the present frame has finished, the return address.
@@ -680,29 +681,29 @@ cris_examine (CORE_ADDR ip, CORE_ADDR limit, struct frame_info *fi,
 
   if (have_fp)
     {
-      fi->saved_regs[FP_REGNUM] = FRAME_FP (fi);
+      fi->saved_regs[FP_REGNUM] = get_frame_base (fi);
       
       /* Calculate the addresses.  */
       for (regno = regsave; regno >= 0; regno--)
         {
-          fi->saved_regs[regno] = FRAME_FP (fi) - val;
+          fi->saved_regs[regno] = get_frame_base (fi) - val;
           val -= 4;
         }
       if (fi->extra_info->leaf_function)
         {
           /* Set the register SP to contain the stack pointer of 
              the caller.  */
-          fi->saved_regs[SP_REGNUM] = FRAME_FP (fi) + 4;
+          fi->saved_regs[SP_REGNUM] = get_frame_base (fi) + 4;
         }
       else
         {
           /* Set the register SP to contain the stack pointer of 
              the caller.  */
-          fi->saved_regs[SP_REGNUM] = FRAME_FP (fi) + 8;
+          fi->saved_regs[SP_REGNUM] = get_frame_base (fi) + 8;
       
           /* Set the register SRP to contain the return address of 
              the caller.  */
-          fi->saved_regs[SRP_REGNUM] = FRAME_FP (fi) + 4;
+          fi->saved_regs[SRP_REGNUM] = get_frame_base (fi) + 4;
         }
     }
   return ip;
@@ -1140,7 +1141,7 @@ cris_abi_v2_reg_struct_has_addr (int gcc_p, struct type *type)
 int
 cris_frameless_function_invocation (struct frame_info *fi)
 {
-  if (fi->signal_handler_caller)
+  if ((get_frame_type (fi) == SIGTRAMP_FRAME))
     return 0;
   else
     return frameless_look_for_prologue (fi);
@@ -1212,7 +1213,7 @@ cris_init_extra_frame_info (int fromleaf, struct frame_info *fi)
   fi->extra_info->return_pc = 0;
   fi->extra_info->leaf_function = 0;
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {    
       /* We need to setup fi->frame here because run_stack_dummy gets it wrong
          by assuming it's always FP.  */
@@ -1253,13 +1254,13 @@ cris_init_extra_frame_info (int fromleaf, struct frame_info *fi)
 CORE_ADDR
 cris_frame_chain (struct frame_info *fi)
 {
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       return fi->frame;
     }
   else if (!inside_entry_file (fi->pc))
     {
-      return read_memory_unsigned_integer (FRAME_FP (fi), 4);
+      return read_memory_unsigned_integer (get_frame_base (fi), 4);
     }
   else
     {
@@ -1275,24 +1276,6 @@ cris_frame_saved_pc (struct frame_info *fi)
   return fi->extra_info->return_pc;
 }
 
-/* Return the address of the argument block for the frame described 
-   by struct frame_info.  */
-
-CORE_ADDR
-cris_frame_args_address (struct frame_info *fi)
-{
-  return FRAME_FP (fi);
-}
-
-/* Return the address of the locals block for the frame
-   described by struct frame_info.  */
-
-CORE_ADDR
-cris_frame_locals_address (struct frame_info *fi)
-{
-  return FRAME_FP (fi);
-}
-
 /* Setup the function arguments for calling a function in the inferior.  */
 
 CORE_ADDR 
@@ -1529,7 +1512,7 @@ cris_pop_frame (void)
   register int regno;
   register int stack_offset = 0;
   
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       /* This happens when we hit a breakpoint set at the entry point,
          when returning from a dummy frame.  */
@@ -4140,6 +4123,10 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   tdep = (struct gdbarch_tdep *) xmalloc (sizeof (struct gdbarch_tdep));
   gdbarch = gdbarch_alloc (&info, tdep);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   tdep->cris_version = cris_version;
   tdep->cris_mode = cris_mode;
   tdep->cris_abi = cris_abi;
@@ -4263,10 +4250,8 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_register_virtual_type (gdbarch, cris_register_virtual_type);
   
   /* Use generic dummy frames.  */
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   
   /* Where to execute the call in the memory segments.  */
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   
   /* Start execution at the beginning of dummy.  */
@@ -4278,7 +4263,7 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   
   /* Read all about dummy frames in blockframe.c.  */
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
+  set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
   
   /* Defined to 1 to indicate that the target supports inferior function 
      calls.  */
@@ -4330,8 +4315,6 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
 
   set_gdbarch_frame_saved_pc (gdbarch, cris_frame_saved_pc);
-  set_gdbarch_frame_args_address (gdbarch, cris_frame_args_address);
-  set_gdbarch_frame_locals_address (gdbarch, cris_frame_locals_address);
   set_gdbarch_saved_pc_after_call (gdbarch, cris_saved_pc_after_call);
 
   set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
diff --git a/gdb/cxux-nat.c b/gdb/cxux-nat.c
deleted file mode 100644 (file)
index e8f35a3..0000000
+++ /dev/null
@@ -1,537 +0,0 @@
-// OBSOLETE /* Native support for Motorola 88k running Harris CX/UX.
-// OBSOLETE    Copyright 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000,
-// OBSOLETE    2001 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE 
-// OBSOLETE #include <sys/types.h>
-// OBSOLETE #include <sys/param.h>
-// OBSOLETE #include <sys/dir.h>
-// OBSOLETE #include <signal.h>
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include <sys/user.h>
-// OBSOLETE 
-// OBSOLETE #include "bfd.h"
-// OBSOLETE #include "symfile.h"
-// OBSOLETE #include "objfiles.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE #ifndef USER                       /* added to support BCS ptrace_user */
-// OBSOLETE #define USER ptrace_user
-// OBSOLETE #endif
-// OBSOLETE #include <sys/ioctl.h>
-// OBSOLETE #include <fcntl.h>
-// OBSOLETE #include <sys/file.h>
-// OBSOLETE #include "gdb_stat.h"
-// OBSOLETE 
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "setjmp.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE 
-// OBSOLETE #include <sys/ptrace.h>
-// OBSOLETE 
-// OBSOLETE /* CX/UX provides them already, but as word offsets instead of char offsets */
-// OBSOLETE #define SXIP_OFFSET (PT_SXIP * 4)
-// OBSOLETE #define SNIP_OFFSET (PT_SNIP * 4)
-// OBSOLETE #define SFIP_OFFSET (PT_SFIP * 4)
-// OBSOLETE #define PSR_OFFSET  (PT_PSR  * sizeof(int))
-// OBSOLETE #define FPSR_OFFSET (PT_FPSR * sizeof(int))
-// OBSOLETE #define FPCR_OFFSET (PT_FPCR * sizeof(int))
-// OBSOLETE 
-// OBSOLETE #define XREGADDR(r) (((char *)&u.pt_x0-(char *)&u) + \
-// OBSOLETE                      ((r)-X0_REGNUM)*sizeof(X_REGISTER_RAW_TYPE))
-// OBSOLETE 
-// OBSOLETE extern int have_symbol_file_p ();
-// OBSOLETE 
-// OBSOLETE extern jmp_buf stack_jmp;
-// OBSOLETE 
-// OBSOLETE extern int errno;
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE fetch_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   register unsigned int regaddr;
-// OBSOLETE   char buf[MAX_REGISTER_RAW_SIZE];
-// OBSOLETE   register int i;
-// OBSOLETE 
-// OBSOLETE   struct USER u;
-// OBSOLETE   unsigned int offset;
-// OBSOLETE 
-// OBSOLETE   offset = (char *) &u.pt_r0 - (char *) &u;
-// OBSOLETE   regaddr = offset;                /* byte offset to r0; */
-// OBSOLETE 
-// OBSOLETE /*  offset = ptrace (3, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) offset, 0) - KERNEL_U_ADDR; */
-// OBSOLETE   for (regno = 0; regno < PC_REGNUM; regno++)
-// OBSOLETE     {
-// OBSOLETE       /*regaddr = register_addr (regno, offset); */
-// OBSOLETE       /* 88k enhancement  */
-// OBSOLETE 
-// OBSOLETE       for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
-// OBSOLETE    {
-// OBSOLETE      *(int *) &buf[i] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                                 (PTRACE_ARG3_TYPE) regaddr, 0);
-// OBSOLETE      regaddr += sizeof (int);
-// OBSOLETE    }
-// OBSOLETE       supply_register (regno, buf);
-// OBSOLETE     }
-// OBSOLETE   /* now load up registers 32-37; special pc registers */
-// OBSOLETE   *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                         (PTRACE_ARG3_TYPE) PSR_OFFSET, 0);
-// OBSOLETE   supply_register (PSR_REGNUM, buf);
-// OBSOLETE   *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                         (PTRACE_ARG3_TYPE) FPSR_OFFSET, 0);
-// OBSOLETE   supply_register (FPSR_REGNUM, buf);
-// OBSOLETE   *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                         (PTRACE_ARG3_TYPE) FPCR_OFFSET, 0);
-// OBSOLETE   supply_register (FPCR_REGNUM, buf);
-// OBSOLETE   *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                         (PTRACE_ARG3_TYPE) SXIP_OFFSET, 0);
-// OBSOLETE   supply_register (SXIP_REGNUM, buf);
-// OBSOLETE   *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                         (PTRACE_ARG3_TYPE) SNIP_OFFSET, 0);
-// OBSOLETE   supply_register (SNIP_REGNUM, buf);
-// OBSOLETE   *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                         (PTRACE_ARG3_TYPE) SFIP_OFFSET, 0);
-// OBSOLETE   supply_register (SFIP_REGNUM, buf);
-// OBSOLETE 
-// OBSOLETE   if (target_is_m88110)
-// OBSOLETE     {
-// OBSOLETE       for (regaddr = XREGADDR (X0_REGNUM), regno = X0_REGNUM;
-// OBSOLETE       regno < NUM_REGS;
-// OBSOLETE       regno++, regaddr += 16)
-// OBSOLETE    {
-// OBSOLETE      X_REGISTER_RAW_TYPE xval;
-// OBSOLETE 
-// OBSOLETE      *(int *) &xval.w1 = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                                  (PTRACE_ARG3_TYPE) regaddr, 0);
-// OBSOLETE      *(int *) &xval.w2 = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                                  (PTRACE_ARG3_TYPE) (regaddr + 4), 0);
-// OBSOLETE      *(int *) &xval.w3 = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                                  (PTRACE_ARG3_TYPE) (regaddr + 8), 0);
-// OBSOLETE      *(int *) &xval.w4 = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                                  (PTRACE_ARG3_TYPE) (regaddr + 12), 0);
-// OBSOLETE      supply_register (regno, (void *) &xval);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Store our register values back into the inferior.
-// OBSOLETE    If REGNO is -1, do this for all registers.
-// OBSOLETE    Otherwise, REGNO specifies which register (so we can save time).  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE store_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   register unsigned int regaddr;
-// OBSOLETE   char buf[80];
-// OBSOLETE 
-// OBSOLETE   struct USER u;
-// OBSOLETE 
-// OBSOLETE   unsigned int offset = (char *) &u.pt_r0 - (char *) &u;
-// OBSOLETE 
-// OBSOLETE   regaddr = offset;
-// OBSOLETE 
-// OBSOLETE   /* Don't try to deal with EXIP_REGNUM or ENIP_REGNUM, because I think either
-// OBSOLETE      svr3 doesn't run on an 88110, or the kernel isolates the different (not
-// OBSOLETE      completely sure this is true, but seems to be.  */
-// OBSOLETE   if (regno >= 0)
-// OBSOLETE     {
-// OBSOLETE       /*      regaddr = register_addr (regno, offset); */
-// OBSOLETE       if (regno < PC_REGNUM)
-// OBSOLETE    {
-// OBSOLETE      regaddr = offset + regno * sizeof (int);
-// OBSOLETE      errno = 0;
-// OBSOLETE      ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE              (PTRACE_ARG3_TYPE) regaddr, read_register (regno));
-// OBSOLETE      if (errno != 0)
-// OBSOLETE        {
-// OBSOLETE          sprintf (buf, "writing register number %d", regno);
-// OBSOLETE          perror_with_name (buf);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       else if (regno == PSR_REGNUM)
-// OBSOLETE    ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE            (PTRACE_ARG3_TYPE) PSR_OFFSET, read_register (regno));
-// OBSOLETE       else if (regno == FPSR_REGNUM)
-// OBSOLETE    ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE            (PTRACE_ARG3_TYPE) FPSR_OFFSET, read_register (regno));
-// OBSOLETE       else if (regno == FPCR_REGNUM)
-// OBSOLETE    ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE            (PTRACE_ARG3_TYPE) FPCR_OFFSET, read_register (regno));
-// OBSOLETE       else if (regno == SXIP_REGNUM)
-// OBSOLETE    ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE            (PTRACE_ARG3_TYPE) SXIP_OFFSET, read_register (regno));
-// OBSOLETE       else if (regno == SNIP_REGNUM)
-// OBSOLETE    ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE            (PTRACE_ARG3_TYPE) SNIP_OFFSET, read_register (regno));
-// OBSOLETE       else if (regno == SFIP_REGNUM)
-// OBSOLETE    ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE            (PTRACE_ARG3_TYPE) SFIP_OFFSET, read_register (regno));
-// OBSOLETE       else if (target_is_m88110 && regno < NUM_REGS)
-// OBSOLETE    {
-// OBSOLETE      X_REGISTER_RAW_TYPE xval;
-// OBSOLETE 
-// OBSOLETE      read_register_bytes (REGISTER_BYTE (regno), (char *) &xval,
-// OBSOLETE                           sizeof (X_REGISTER_RAW_TYPE));
-// OBSOLETE      regaddr = XREGADDR (regno);
-// OBSOLETE      ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr, xval.w1);
-// OBSOLETE      ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr + 4, xval.w2);
-// OBSOLETE      ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr + 8, xval.w3);
-// OBSOLETE      ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr + 12, xval.w4);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    printf_unfiltered ("Bad register number for store_inferior routine\n");
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       for (regno = 0; regno < PC_REGNUM; regno++)
-// OBSOLETE    {
-// OBSOLETE      /*      regaddr = register_addr (regno, offset); */
-// OBSOLETE      errno = 0;
-// OBSOLETE      regaddr = offset + regno * sizeof (int);
-// OBSOLETE      ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE              (PTRACE_ARG3_TYPE) regaddr, read_register (regno));
-// OBSOLETE      if (errno != 0)
-// OBSOLETE        {
-// OBSOLETE          sprintf (buf, "writing register number %d", regno);
-// OBSOLETE          perror_with_name (buf);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) PSR_OFFSET, read_register (regno));
-// OBSOLETE       ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) FPSR_OFFSET, read_register (regno));
-// OBSOLETE       ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) FPCR_OFFSET, read_register (regno));
-// OBSOLETE       ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) SXIP_OFFSET, read_register (SXIP_REGNUM));
-// OBSOLETE       ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) SNIP_OFFSET, read_register (SNIP_REGNUM));
-// OBSOLETE       ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) SFIP_OFFSET, read_register (SFIP_REGNUM));
-// OBSOLETE       if (target_is_m88110)
-// OBSOLETE    {
-// OBSOLETE      for (regno = X0_REGNUM; regno < NUM_REGS; regno++)
-// OBSOLETE        {
-// OBSOLETE          X_REGISTER_RAW_TYPE xval;
-// OBSOLETE 
-// OBSOLETE          read_register_bytes (REGISTER_BYTE (regno), (char *) &xval,
-// OBSOLETE                               sizeof (X_REGISTER_RAW_TYPE));
-// OBSOLETE          regaddr = XREGADDR (regno);
-// OBSOLETE          ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr, xval.w1);
-// OBSOLETE          ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) (regaddr + 4), xval.w2);
-// OBSOLETE          ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) (regaddr + 8), xval.w3);
-// OBSOLETE          ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) (regaddr + 12), xval.w4);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* blockend is the address of the end of the user structure */
-// OBSOLETE 
-// OBSOLETE m88k_register_u_addr (int blockend, int regnum)
-// OBSOLETE {
-// OBSOLETE   struct USER u;
-// OBSOLETE   int ustart = blockend - sizeof (struct USER);
-// OBSOLETE 
-// OBSOLETE   if (regnum < PSR_REGNUM)
-// OBSOLETE     return (ustart + ((int) &u.pt_r0 - (int) &u) +
-// OBSOLETE        REGISTER_SIZE * regnum);
-// OBSOLETE   else if (regnum == PSR_REGNUM)
-// OBSOLETE     return (ustart + ((int) &u.pt_psr) - (int) &u);
-// OBSOLETE   else if (regnum == FPSR_REGNUM)
-// OBSOLETE     return (ustart + ((int) &u.pt_fpsr) - (int) &u);
-// OBSOLETE   else if (regnum == FPCR_REGNUM)
-// OBSOLETE     return (ustart + ((int) &u.pt_fpcr) - (int) &u);
-// OBSOLETE   else if (regnum == SXIP_REGNUM)
-// OBSOLETE     return (ustart + SXIP_OFFSET);
-// OBSOLETE   else if (regnum == SNIP_REGNUM)
-// OBSOLETE     return (ustart + SNIP_OFFSET);
-// OBSOLETE   else if (regnum == SFIP_REGNUM)
-// OBSOLETE     return (ustart + SFIP_OFFSET);
-// OBSOLETE   else if (target_is_m88110)
-// OBSOLETE     return (ustart + ((int) &u.pt_x0 - (int) &u) + /* Must be X register */
-// OBSOLETE        sizeof (u.pt_x0) * (regnum - X0_REGNUM));
-// OBSOLETE   else
-// OBSOLETE     return (blockend + REGISTER_SIZE * regnum);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #ifdef USE_PROC_FS
-// OBSOLETE 
-// OBSOLETE #include <sys/procfs.h>
-// OBSOLETE 
-// OBSOLETE /* Prototypes for supply_gregset etc. */
-// OBSOLETE #include "gregset.h"
-// OBSOLETE 
-// OBSOLETE /*  Given a pointer to a general register set in /proc format (gregset_t *),
-// OBSOLETE    unpack the register contents and supply them as gdb's idea of the current
-// OBSOLETE    register values. */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE supply_gregset (gregset_t *gregsetp)
-// OBSOLETE {
-// OBSOLETE   register int regi;
-// OBSOLETE   register greg_t *regp = (greg_t *) gregsetp;
-// OBSOLETE 
-// OBSOLETE   for (regi = 0; regi <= SP_REGNUM; regi++)
-// OBSOLETE     supply_register (regi, (char *) (regp + regi));
-// OBSOLETE 
-// OBSOLETE   supply_register (SXIP_REGNUM, (char *) (regp + R_XIP));
-// OBSOLETE   supply_register (SNIP_REGNUM, (char *) (regp + R_NIP));
-// OBSOLETE   supply_register (SFIP_REGNUM, (char *) (regp + R_FIP));
-// OBSOLETE   supply_register (PSR_REGNUM, (char *) (regp + R_PSR));
-// OBSOLETE   supply_register (FPSR_REGNUM, (char *) (regp + R_FPSR));
-// OBSOLETE   supply_register (FPCR_REGNUM, (char *) (regp + R_FPCR));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE fill_gregset (gregset_t *gregsetp, int regno)
-// OBSOLETE {
-// OBSOLETE   int regi;
-// OBSOLETE   register greg_t *regp = (greg_t *) gregsetp;
-// OBSOLETE 
-// OBSOLETE   for (regi = 0; regi <= R_R31; regi++)
-// OBSOLETE     if ((regno == -1) || (regno == regi))
-// OBSOLETE       *(regp + regi) = *(int *) &registers[REGISTER_BYTE (regi)];
-// OBSOLETE 
-// OBSOLETE   if ((regno == -1) || (regno == SXIP_REGNUM))
-// OBSOLETE     *(regp + R_XIP) = *(int *) &registers[REGISTER_BYTE (SXIP_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == SNIP_REGNUM))
-// OBSOLETE     *(regp + R_NIP) = *(int *) &registers[REGISTER_BYTE (SNIP_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == SFIP_REGNUM))
-// OBSOLETE     *(regp + R_FIP) = *(int *) &registers[REGISTER_BYTE (SFIP_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == PSR_REGNUM))
-// OBSOLETE     *(regp + R_PSR) = *(int *) &registers[REGISTER_BYTE (PSR_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == FPSR_REGNUM))
-// OBSOLETE     *(regp + R_FPSR) = *(int *) &registers[REGISTER_BYTE (FPSR_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == FPCR_REGNUM))
-// OBSOLETE     *(regp + R_FPCR) = *(int *) &registers[REGISTER_BYTE (FPCR_REGNUM)];
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #endif /* USE_PROC_FS */
-// OBSOLETE 
-// OBSOLETE /* This support adds the equivalent of adb's % command.  When
-// OBSOLETE    the `add-shared-symbol-files' command is given, this routine scans 
-// OBSOLETE    the dynamic linker's link map and reads the minimal symbols
-// OBSOLETE    from each shared object file listed in the map. */
-// OBSOLETE 
-// OBSOLETE struct link_map
-// OBSOLETE {
-// OBSOLETE   unsigned long l_addr;            /* address at which object is mapped */
-// OBSOLETE   char *l_name;                    /* full name of loaded object */
-// OBSOLETE   void *l_ld;                      /* dynamic structure of object */
-// OBSOLETE   struct link_map *l_next; /* next link object */
-// OBSOLETE   struct link_map *l_prev; /* previous link object */
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE #define LINKS_MAP_POINTER "_ld_tail"
-// OBSOLETE #define LIBC_FILE "/usr/lib/libc.so.1"
-// OBSOLETE #define SHARED_OFFSET 0xf0001000
-// OBSOLETE 
-// OBSOLETE #ifndef PATH_MAX
-// OBSOLETE #define PATH_MAX 1023              /* maximum size of path name on OS */
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE add_shared_symbol_files (void)
-// OBSOLETE {
-// OBSOLETE   void *desc;
-// OBSOLETE   struct link_map *ld_map, *lm, lms;
-// OBSOLETE   struct minimal_symbol *minsym;
-// OBSOLETE   struct objfile *objfile;
-// OBSOLETE   char *path_name;
-// OBSOLETE 
-// OBSOLETE   if (ptid_equal (inferior_ptid, null_ptid))
-// OBSOLETE     {
-// OBSOLETE       warning ("The program has not yet been started.");
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   objfile = symbol_file_add (LIBC_FILE, 0, NULL, 0, OBJF_READNOW);
-// OBSOLETE   minsym = lookup_minimal_symbol (LINKS_MAP_POINTER, objfile);
-// OBSOLETE 
-// OBSOLETE   ld_map = (struct link_map *)
-// OBSOLETE     read_memory_integer (((int) SYMBOL_VALUE_ADDRESS (minsym) + SHARED_OFFSET), 4);
-// OBSOLETE   lm = ld_map;
-// OBSOLETE   while (lm)
-// OBSOLETE     {
-// OBSOLETE       int local_errno = 0;
-// OBSOLETE 
-// OBSOLETE       read_memory ((CORE_ADDR) lm, (char *) &lms, sizeof (struct link_map));
-// OBSOLETE       if (lms.l_name)
-// OBSOLETE    {
-// OBSOLETE      if (target_read_string ((CORE_ADDR) lms.l_name, &path_name,
-// OBSOLETE                              PATH_MAX, &local_errno))
-// OBSOLETE        {
-// OBSOLETE          struct section_addr_info section_addrs;
-// OBSOLETE          memset (&section_addrs, 0, sizeof (section_addrs));
-// OBSOLETE          section_addrs.other[0].addr = lms.l_addr;
-// OBSOLETE               section_addrs.other[0].name = ".text";
-// OBSOLETE          symbol_file_add (path_name, 1, &section_addrs, 0, 0);
-// OBSOLETE          xfree (path_name);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       /* traverse links in reverse order so that we get the
-// OBSOLETE          the symbols the user actually gets. */
-// OBSOLETE       lm = lms.l_prev;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Getting new symbols may change our opinion about what is
-// OBSOLETE      frameless.  */
-// OBSOLETE   reinit_frame_cache ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #if defined(_ES_MP)
-// OBSOLETE 
-// OBSOLETE #include <sys/regset.h>
-// OBSOLETE 
-// OBSOLETE unsigned int
-// OBSOLETE m88k_harris_core_register_addr (int regno, int reg_ptr)
-// OBSOLETE {
-// OBSOLETE   unsigned int word_offset;
-// OBSOLETE 
-// OBSOLETE   switch (regno)
-// OBSOLETE     {
-// OBSOLETE     case PSR_REGNUM:
-// OBSOLETE       word_offset = R_EPSR;
-// OBSOLETE       break;
-// OBSOLETE     case FPSR_REGNUM:
-// OBSOLETE       word_offset = R_FPSR;
-// OBSOLETE       break;
-// OBSOLETE     case FPCR_REGNUM:
-// OBSOLETE       word_offset = R_FPCR;
-// OBSOLETE       break;
-// OBSOLETE     case SXIP_REGNUM:
-// OBSOLETE       word_offset = R_EXIP;
-// OBSOLETE       break;
-// OBSOLETE     case SNIP_REGNUM:
-// OBSOLETE       word_offset = R_ENIP;
-// OBSOLETE       break;
-// OBSOLETE     case SFIP_REGNUM:
-// OBSOLETE       word_offset = R_EFIP;
-// OBSOLETE       break;
-// OBSOLETE     default:
-// OBSOLETE       if (regno <= FP_REGNUM)
-// OBSOLETE    word_offset = regno;
-// OBSOLETE       else
-// OBSOLETE    word_offset = ((regno - X0_REGNUM) * 4);
-// OBSOLETE     }
-// OBSOLETE   return (word_offset * 4);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #endif /* _ES_MP */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_m88k_nat (void)
-// OBSOLETE {
-// OBSOLETE #ifdef _ES_MP
-// OBSOLETE   /* Enable 88110 support, as we don't support the 88100 under ES/MP.  */
-// OBSOLETE 
-// OBSOLETE   target_is_m88110 = 1;
-// OBSOLETE #elif defined(_CX_UX)
-// OBSOLETE   /* Determine whether we're running on an 88100 or an 88110.  */
-// OBSOLETE   target_is_m88110 = (sinfo (SYSMACHINE, 0) == SYS5800);
-// OBSOLETE #endif /* _CX_UX */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #ifdef _ES_MP
-// OBSOLETE /* Given a pointer to a general register set in /proc format (gregset_t *),
-// OBSOLETE    unpack the register contents and supply them as gdb's idea of the current
-// OBSOLETE    register values. */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE supply_gregset (gregset_t *gregsetp)
-// OBSOLETE {
-// OBSOLETE   register int regi;
-// OBSOLETE   register greg_t *regp = (greg_t *) gregsetp;
-// OBSOLETE 
-// OBSOLETE   for (regi = 0; regi < R_R31; regi++)
-// OBSOLETE     {
-// OBSOLETE       supply_register (regi, (char *) (regp + regi));
-// OBSOLETE     }
-// OBSOLETE   supply_register (PSR_REGNUM, (char *) (regp + R_EPSR));
-// OBSOLETE   supply_register (FPSR_REGNUM, (char *) (regp + R_FPSR));
-// OBSOLETE   supply_register (FPCR_REGNUM, (char *) (regp + R_FPCR));
-// OBSOLETE   supply_register (SXIP_REGNUM, (char *) (regp + R_EXIP));
-// OBSOLETE   supply_register (SNIP_REGNUM, (char *) (regp + R_ENIP));
-// OBSOLETE   supply_register (SFIP_REGNUM, (char *) (regp + R_EFIP));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Given a pointer to a floating point register set in /proc format
-// OBSOLETE    (fpregset_t *), unpack the register contents and supply them as gdb's
-// OBSOLETE    idea of the current floating point register values.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE supply_fpregset (fpregset_t *fpregsetp)
-// OBSOLETE {
-// OBSOLETE   register int regi;
-// OBSOLETE   char *from;
-// OBSOLETE 
-// OBSOLETE   for (regi = FP0_REGNUM; regi <= FPLAST_REGNUM; regi++)
-// OBSOLETE     {
-// OBSOLETE       from = (char *) &((*fpregsetp)[regi - FP0_REGNUM]);
-// OBSOLETE       supply_register (regi, from);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #endif /* _ES_MP */
-// OBSOLETE 
-// OBSOLETE #ifdef _CX_UX
-// OBSOLETE 
-// OBSOLETE #include <sys/regset.h>
-// OBSOLETE 
-// OBSOLETE unsigned int
-// OBSOLETE m88k_harris_core_register_addr (int regno, int reg_ptr)
-// OBSOLETE {
-// OBSOLETE   unsigned int word_offset;
-// OBSOLETE 
-// OBSOLETE   switch (regno)
-// OBSOLETE     {
-// OBSOLETE     case PSR_REGNUM:
-// OBSOLETE       word_offset = R_PSR;
-// OBSOLETE       break;
-// OBSOLETE     case FPSR_REGNUM:
-// OBSOLETE       word_offset = R_FPSR;
-// OBSOLETE       break;
-// OBSOLETE     case FPCR_REGNUM:
-// OBSOLETE       word_offset = R_FPCR;
-// OBSOLETE       break;
-// OBSOLETE     case SXIP_REGNUM:
-// OBSOLETE       word_offset = R_XIP;
-// OBSOLETE       break;
-// OBSOLETE     case SNIP_REGNUM:
-// OBSOLETE       word_offset = R_NIP;
-// OBSOLETE       break;
-// OBSOLETE     case SFIP_REGNUM:
-// OBSOLETE       word_offset = R_FIP;
-// OBSOLETE       break;
-// OBSOLETE     default:
-// OBSOLETE       if (regno <= FP_REGNUM)
-// OBSOLETE    word_offset = regno;
-// OBSOLETE       else
-// OBSOLETE    word_offset = ((regno - X0_REGNUM) * 4) + R_X0;
-// OBSOLETE     }
-// OBSOLETE   return (word_offset * 4);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #endif /* _CX_UX */
index 1b2987ad67ed8c7b7c9e6724f87ad50d79d147eb..14fd95a032f1cdd115314fa261f57e38dfa543a0 100644 (file)
@@ -114,7 +114,7 @@ d10v_frame_chain_valid (CORE_ADDR chain, struct frame_info *frame)
 {
   if (chain != 0 && frame != NULL)
     {
-      if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+      if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
        return 1;       /* Path back from a call dummy must be valid. */
       return ((frame)->pc > IMEM_START
              && !inside_main_func (frame->pc));
@@ -512,7 +512,7 @@ d10v_extract_struct_value_address (char *regbuf)
 static CORE_ADDR
 d10v_frame_saved_pc (struct frame_info *frame)
 {
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     return d10v_make_iaddr (deprecated_read_register_dummy (frame->pc, 
                                                            frame->frame, 
                                                            PC_REGNUM));
@@ -547,7 +547,7 @@ do_d10v_pop_frame (struct frame_info *fi)
   int regnum;
   char raw_buffer[8];
 
-  fp = FRAME_FP (fi);
+  fp = get_frame_base (fi);
   /* fill out fsr with the address of where each */
   /* register was stored in the frame */
   d10v_frame_init_saved_regs (fi);
@@ -677,10 +677,10 @@ d10v_skip_prologue (CORE_ADDR pc)
   return pc;
 }
 
-/* Given a GDB frame, determine the address of the calling function's frame.
-   This will be used to create a new GDB frame struct, and then
-   INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
- */
+/* Given a GDB frame, determine the address of the calling function's
+   frame.  This will be used to create a new GDB frame struct, and
+   then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be
  called for the new frame.  */
 
 static CORE_ADDR
 d10v_frame_chain (struct frame_info *fi)
@@ -688,7 +688,7 @@ d10v_frame_chain (struct frame_info *fi)
   CORE_ADDR addr;
 
   /* A generic call dummy's frame is the same as caller's.  */
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     return fi->frame;
 
   d10v_frame_init_saved_regs (fi);
@@ -699,7 +699,7 @@ d10v_frame_chain (struct frame_info *fi)
     {
       /* This is meant to halt the backtrace at "_start".
         Make sure we don't halt it at a generic dummy frame. */
-      if (!PC_IN_CALL_DUMMY (fi->extra_info->return_pc, 0, 0))
+      if (!DEPRECATED_PC_IN_CALL_DUMMY (fi->extra_info->return_pc, 0, 0))
        return (CORE_ADDR) 0;
     }
 
@@ -911,13 +911,13 @@ d10v_init_extra_frame_info (int fromleaf, struct frame_info *fi)
 
   /* If fi->pc is zero, but this is not the outermost frame, 
      then let's snatch the return_pc from the callee, so that
-     PC_IN_CALL_DUMMY will work.  */
+     DEPRECATED_PC_IN_CALL_DUMMY will work.  */
   if (fi->pc == 0 && fi->level != 0 && fi->next != NULL)
     fi->pc = d10v_frame_saved_pc (fi->next);
 
   /* The call dummy doesn't save any registers on the stack, so we can
      return now.  */
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       return;
     }
@@ -1518,6 +1518,10 @@ d10v_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   tdep = XMALLOC (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   switch (info.bfd_arch_info->mach)
     {
     case bfd_mach_d10v_ts2:
@@ -1592,19 +1596,15 @@ d10v_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
                      "d10v_gdbarch_init: bad byte order for float format");
     }
 
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_words (gdbarch, d10v_call_dummy_words);
   set_gdbarch_sizeof_call_dummy_words (gdbarch, sizeof (d10v_call_dummy_words));
   set_gdbarch_call_dummy_p (gdbarch, 1);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
   set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
 
   set_gdbarch_deprecated_extract_return_value (gdbarch, d10v_extract_return_value);
@@ -1635,8 +1635,7 @@ d10v_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frame_chain (gdbarch, d10v_frame_chain);
   set_gdbarch_frame_chain_valid (gdbarch, d10v_frame_chain_valid);
   set_gdbarch_frame_saved_pc (gdbarch, d10v_frame_saved_pc);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
+
   set_gdbarch_saved_pc_after_call (gdbarch, d10v_saved_pc_after_call);
   set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_stack_align (gdbarch, d10v_stack_align);
diff --git a/gdb/d30v-tdep.c b/gdb/d30v-tdep.c
deleted file mode 100644 (file)
index 0891370..0000000
+++ /dev/null
@@ -1,1365 +0,0 @@
-/* OBSOLETE /* Target-dependent code for Mitsubishi D30V, for GDB. */
-/* OBSOLETE  */
-/* OBSOLETE    Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software */
-/* OBSOLETE    Foundation, Inc. */
-/* OBSOLETE  */
-/* OBSOLETE    This file is part of GDB. */
-/* OBSOLETE  */
-/* OBSOLETE    This program is free software; you can redistribute it and/or modify */
-/* OBSOLETE    it under the terms of the GNU General Public License as published by */
-/* OBSOLETE    the Free Software Foundation; either version 2 of the License, or */
-/* OBSOLETE    (at your option) any later version. */
-/* OBSOLETE  */
-/* OBSOLETE    This program is distributed in the hope that it will be useful, */
-/* OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of */
-/* OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the */
-/* OBSOLETE    GNU General Public License for more details. */
-/* OBSOLETE  */
-/* OBSOLETE    You should have received a copy of the GNU General Public License */
-/* OBSOLETE    along with this program; if not, write to the Free Software */
-/* OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330, */
-/* OBSOLETE    Boston, MA 02111-1307, USA.  */ */
-/* OBSOLETE  */
-/* OBSOLETE /*  Contributed by Martin Hunt, hunt@cygnus.com */ */
-/* OBSOLETE  */
-/* OBSOLETE #include "defs.h" */
-/* OBSOLETE #include "frame.h" */
-/* OBSOLETE #include "obstack.h" */
-/* OBSOLETE #include "symtab.h" */
-/* OBSOLETE #include "gdbtypes.h" */
-/* OBSOLETE #include "gdbcmd.h" */
-/* OBSOLETE #include "gdbcore.h" */
-/* OBSOLETE #include "gdb_string.h" */
-/* OBSOLETE #include "value.h" */
-/* OBSOLETE #include "inferior.h" */
-/* OBSOLETE #include "dis-asm.h" */
-/* OBSOLETE #include "symfile.h" */
-/* OBSOLETE #include "objfiles.h" */
-/* OBSOLETE #include "regcache.h" */
-/* OBSOLETE  */
-/* OBSOLETE #include "language.h" /* For local_hex_string() */ */
-/* OBSOLETE  */
-/* OBSOLETE void d30v_frame_find_saved_regs (struct frame_info *fi, */
-/* OBSOLETE                             struct frame_saved_regs *fsr); */
-/* OBSOLETE void d30v_frame_find_saved_regs_offsets (struct frame_info *fi, */
-/* OBSOLETE                                     struct frame_saved_regs *fsr); */
-/* OBSOLETE static void d30v_pop_dummy_frame (struct frame_info *fi); */
-/* OBSOLETE static void d30v_print_flags (void); */
-/* OBSOLETE static void print_flags_command (char *, int); */
-/* OBSOLETE  */
-/* OBSOLETE /* the following defines assume: */
-/* OBSOLETE    fp is r61, lr is r62, sp is r63, and ?? is r22 */
-/* OBSOLETE    if that changes, they will need to be updated */ */
-/* OBSOLETE  */
-/* OBSOLETE #define OP_MASK_ALL_BUT_RA 0x0ffc0fff      /* throw away Ra, keep the rest */ */
-/* OBSOLETE  */
-/* OBSOLETE #define OP_STW_SPM         0x054c0fc0      /* stw Ra, @(sp-) */ */
-/* OBSOLETE #define OP_STW_SP_R0               0x05400fc0      /* stw Ra, @(sp,r0) */ */
-/* OBSOLETE #define OP_STW_SP_IMM0             0x05480fc0      /* st Ra, @(sp, 0x0) */ */
-/* OBSOLETE #define OP_STW_R22P_R0             0x05440580      /* stw Ra, @(r22+,r0) */ */
-/* OBSOLETE  */
-/* OBSOLETE #define OP_ST2W_SPM                0x056c0fc0      /* st2w Ra, @(sp-) */ */
-/* OBSOLETE #define OP_ST2W_SP_R0              0x05600fc0      /* st2w Ra, @(sp, r0) */ */
-/* OBSOLETE #define OP_ST2W_SP_IMM0            0x05680fc0      /* st2w Ra, @(sp, 0x0) */ */
-/* OBSOLETE #define OP_ST2W_R22P_R0            0x05640580      /* st2w Ra, @(r22+, r0) */ */
-/* OBSOLETE  */
-/* OBSOLETE #define OP_MASK_OPCODE             0x0ffc0000      /* just the opcode, ign operands */ */
-/* OBSOLETE #define OP_NOP                     0x00f00000      /* nop */ */
-/* OBSOLETE  */
-/* OBSOLETE #define OP_MASK_ALL_BUT_IMM        0x0fffffc0      /* throw away imm, keep the rest */ */
-/* OBSOLETE #define OP_SUB_SP_IMM              0x082bffc0      /* sub sp,sp,imm */ */
-/* OBSOLETE #define OP_ADD_SP_IMM              0x080bffc0      /* add sp,sp,imm */ */
-/* OBSOLETE #define OP_ADD_R22_SP_IMM  0x08096fc0      /* add r22,sp,imm */ */
-/* OBSOLETE #define OP_STW_FP_SP_IMM   0x054bdfc0      /* stw fp,@(sp,imm) */ */
-/* OBSOLETE #define OP_OR_SP_R0_IMM            0x03abf000      /* or sp,r0,imm */ */
-/* OBSOLETE  */
-/* OBSOLETE /* no mask */ */
-/* OBSOLETE #define OP_OR_FP_R0_SP             0x03a3d03f      /* or fp,r0,sp */ */
-/* OBSOLETE #define OP_OR_FP_SP_R0             0x03a3dfc0      /* or fp,sp,r0 */ */
-/* OBSOLETE #define OP_OR_FP_IMM0_SP   0x03abd03f      /* or fp,0x0,sp */ */
-/* OBSOLETE #define OP_STW_FP_R22P_R0  0x0547d580      /* stw fp,@(r22+,r0) */ */
-/* OBSOLETE #define OP_STW_LR_R22P_R0  0x0547e580      /* stw lr,@(r22+,r0) */ */
-/* OBSOLETE  */
-/* OBSOLETE #define OP_MASK_OP_AND_RB  0x0ff80fc0      /* keep op and rb,throw away rest */ */
-/* OBSOLETE #define OP_STW_SP_IMM              0x05480fc0      /* stw Ra,@(sp,imm) */ */
-/* OBSOLETE #define OP_ST2W_SP_IMM             0x05680fc0      /* st2w Ra,@(sp,imm) */ */
-/* OBSOLETE #define OP_STW_FP_IMM              0x05480f40      /* stw Ra,@(fp,imm) */ */
-/* OBSOLETE #define OP_STW_FP_R0               0x05400f40      /* stw Ra,@(fp,r0) */ */
-/* OBSOLETE  */
-/* OBSOLETE #define OP_MASK_FM_BIT             0x80000000 */
-/* OBSOLETE #define OP_MASK_CC_BITS            0x70000000 */
-/* OBSOLETE #define OP_MASK_SUB_INST   0x0fffffff */
-/* OBSOLETE  */
-/* OBSOLETE #define EXTRACT_RA(op)             (((op) >> 12) & 0x3f) */
-/* OBSOLETE #define EXTRACT_RB(op)             (((op) >> 6) & 0x3f) */
-/* OBSOLETE #define EXTRACT_RC(op)             (((op) & 0x3f) */
-/* OBSOLETE #define EXTRACT_UIMM6(op)  ((op) & 0x3f) */
-/* OBSOLETE #define EXTRACT_IMM6(op)   ((((int)EXTRACT_UIMM6(op)) << 26) >> 26) */
-/* OBSOLETE #define EXTRACT_IMM26(op)  ((((op)&0x0ff00000) >> 2) | ((op)&0x0003ffff)) */
-/* OBSOLETE #define EXTRACT_IMM32(opl, opr)    ((EXTRACT_UIMM6(opl) << 26)|EXTRACT_IMM26(opr)) */
-/* OBSOLETE  */
-/* OBSOLETE  */
-/* OBSOLETE int */
-/* OBSOLETE d30v_frame_chain_valid (CORE_ADDR chain, struct frame_info *fi) */
-/* OBSOLETE { */
-/* OBSOLETE #if 0 */
-/* OBSOLETE   return ((chain) != 0 && (fi) != 0 && (fi)->return_pc != 0); */
-/* OBSOLETE #else */
-/* OBSOLETE   return ((chain) != 0 && (fi) != 0 && (fi)->frame <= chain); */
-/* OBSOLETE #endif */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE /* Discard from the stack the innermost frame, restoring all saved */
-/* OBSOLETE    registers.  */ */
-/* OBSOLETE  */
-/* OBSOLETE void */
-/* OBSOLETE d30v_pop_frame (void) */
-/* OBSOLETE { */
-/* OBSOLETE   struct frame_info *frame = get_current_frame (); */
-/* OBSOLETE   CORE_ADDR fp; */
-/* OBSOLETE   int regnum; */
-/* OBSOLETE   struct frame_saved_regs fsr; */
-/* OBSOLETE   char raw_buffer[8]; */
-/* OBSOLETE  */
-/* OBSOLETE   fp = FRAME_FP (frame); */
-/* OBSOLETE   if (frame->dummy) */
-/* OBSOLETE     { */
-/* OBSOLETE       d30v_pop_dummy_frame (frame); */
-/* OBSOLETE       return; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* fill out fsr with the address of where each */ */
-/* OBSOLETE   /* register was stored in the frame */ */
-/* OBSOLETE   get_frame_saved_regs (frame, &fsr); */
-/* OBSOLETE  */
-/* OBSOLETE   /* now update the current registers with the old values */ */
-/* OBSOLETE   for (regnum = A0_REGNUM; regnum < A0_REGNUM + 2; regnum++) */
-/* OBSOLETE     { */
-/* OBSOLETE       if (fsr.regs[regnum]) */
-/* OBSOLETE    { */
-/* OBSOLETE      read_memory (fsr.regs[regnum], raw_buffer, 8); */
-/* OBSOLETE      write_register_bytes (REGISTER_BYTE (regnum), raw_buffer, 8); */
-/* OBSOLETE    } */
-/* OBSOLETE     } */
-/* OBSOLETE   for (regnum = 0; regnum < SP_REGNUM; regnum++) */
-/* OBSOLETE     { */
-/* OBSOLETE       if (fsr.regs[regnum]) */
-/* OBSOLETE    { */
-/* OBSOLETE      write_register (regnum, read_memory_unsigned_integer (fsr.regs[regnum], 4)); */
-/* OBSOLETE    } */
-/* OBSOLETE     } */
-/* OBSOLETE   if (fsr.regs[PSW_REGNUM]) */
-/* OBSOLETE     { */
-/* OBSOLETE       write_register (PSW_REGNUM, read_memory_unsigned_integer (fsr.regs[PSW_REGNUM], 4)); */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   write_register (PC_REGNUM, read_register (LR_REGNUM)); */
-/* OBSOLETE   write_register (SP_REGNUM, fp + frame->size); */
-/* OBSOLETE   target_store_registers (-1); */
-/* OBSOLETE   flush_cached_frames (); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static int */
-/* OBSOLETE check_prologue (unsigned long op) */
-/* OBSOLETE { */
-/* OBSOLETE   /* add sp,sp,imm -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_IMM) == OP_ADD_SP_IMM) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* add r22,sp,imm -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_IMM) == OP_ADD_R22_SP_IMM) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* or  fp,r0,sp -- observed */ */
-/* OBSOLETE   if (op == OP_OR_FP_R0_SP) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* nop */ */
-/* OBSOLETE   if ((op & OP_MASK_OPCODE) == OP_NOP) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw  Ra,@(sp,r0) */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_STW_SP_R0) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw  Ra,@(sp,0x0) */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_STW_SP_IMM0) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* st2w  Ra,@(sp,r0) */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_ST2W_SP_R0) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* st2w  Ra,@(sp,0x0) */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_ST2W_SP_IMM0) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw fp, @(r22+,r0) -- observed */ */
-/* OBSOLETE   if (op == OP_STW_FP_R22P_R0) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw r62, @(r22+,r0) -- observed */ */
-/* OBSOLETE   if (op == OP_STW_LR_R22P_R0) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw Ra, @(fp,r0) -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_STW_FP_R0) */
-/* OBSOLETE     return 1;                      /* first arg */ */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw Ra, @(fp,imm) -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_OP_AND_RB) == OP_STW_FP_IMM) */
-/* OBSOLETE     return 1;                      /* second and subsequent args */ */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw fp,@(sp,imm) -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_IMM) == OP_STW_FP_SP_IMM) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* st2w Ra,@(r22+,r0) */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_ST2W_R22P_R0) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw  Ra, @(sp-) */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_STW_SPM) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* st2w  Ra, @(sp-) */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_ST2W_SPM) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* sub.?  sp,sp,imm */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_IMM) == OP_SUB_SP_IMM) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   return 0; */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE CORE_ADDR */
-/* OBSOLETE d30v_skip_prologue (CORE_ADDR pc) */
-/* OBSOLETE { */
-/* OBSOLETE   unsigned long op[2]; */
-/* OBSOLETE   unsigned long opl, opr;  /* left / right sub operations */ */
-/* OBSOLETE   unsigned long fm0, fm1;  /* left / right mode bits */ */
-/* OBSOLETE   unsigned long cc0, cc1; */
-/* OBSOLETE   unsigned long op1, op2; */
-/* OBSOLETE   CORE_ADDR func_addr, func_end; */
-/* OBSOLETE   struct symtab_and_line sal; */
-/* OBSOLETE  */
-/* OBSOLETE   /* If we have line debugging information, then the end of the */ */
-/* OBSOLETE   /* prologue should the first assembly instruction of  the first source line */ */
-/* OBSOLETE   if (find_pc_partial_function (pc, NULL, &func_addr, &func_end)) */
-/* OBSOLETE     { */
-/* OBSOLETE       sal = find_pc_line (func_addr, 0); */
-/* OBSOLETE       if (sal.end && sal.end < func_end) */
-/* OBSOLETE    return sal.end; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   if (target_read_memory (pc, (char *) &op[0], 8)) */
-/* OBSOLETE     return pc;                     /* Can't access it -- assume no prologue. */ */
-/* OBSOLETE  */
-/* OBSOLETE   while (1) */
-/* OBSOLETE     { */
-/* OBSOLETE       opl = (unsigned long) read_memory_integer (pc, 4); */
-/* OBSOLETE       opr = (unsigned long) read_memory_integer (pc + 4, 4); */
-/* OBSOLETE  */
-/* OBSOLETE       fm0 = (opl & OP_MASK_FM_BIT); */
-/* OBSOLETE       fm1 = (opr & OP_MASK_FM_BIT); */
-/* OBSOLETE  */
-/* OBSOLETE       cc0 = (opl & OP_MASK_CC_BITS); */
-/* OBSOLETE       cc1 = (opr & OP_MASK_CC_BITS); */
-/* OBSOLETE  */
-/* OBSOLETE       opl = (opl & OP_MASK_SUB_INST); */
-/* OBSOLETE       opr = (opr & OP_MASK_SUB_INST); */
-/* OBSOLETE  */
-/* OBSOLETE       if (fm0 && fm1) */
-/* OBSOLETE    { */
-/* OBSOLETE      /* long instruction (opl contains the opcode) */ */
-/* OBSOLETE      if (((opl & OP_MASK_ALL_BUT_IMM) != OP_ADD_SP_IMM) &&         /* add sp,sp,imm */ */
-/* OBSOLETE          ((opl & OP_MASK_ALL_BUT_IMM) != OP_ADD_R22_SP_IMM) &&     /* add r22,sp,imm */ */
-/* OBSOLETE          ((opl & OP_MASK_OP_AND_RB) != OP_STW_SP_IMM) &&   /* stw Ra, @(sp,imm) */ */
-/* OBSOLETE          ((opl & OP_MASK_OP_AND_RB) != OP_ST2W_SP_IMM))    /* st2w Ra, @(sp,imm) */ */
-/* OBSOLETE        break; */
-/* OBSOLETE    } */
-/* OBSOLETE       else */
-/* OBSOLETE    { */
-/* OBSOLETE      /* short instructions */ */
-/* OBSOLETE      if (fm0 && !fm1) */
-/* OBSOLETE        { */
-/* OBSOLETE          op1 = opr; */
-/* OBSOLETE          op2 = opl; */
-/* OBSOLETE        } */
-/* OBSOLETE      else */
-/* OBSOLETE        { */
-/* OBSOLETE          op1 = opl; */
-/* OBSOLETE          op2 = opr; */
-/* OBSOLETE        } */
-/* OBSOLETE      if (check_prologue (op1)) */
-/* OBSOLETE        { */
-/* OBSOLETE          if (!check_prologue (op2)) */
-/* OBSOLETE            { */
-/* OBSOLETE              /* if the previous opcode was really part of the prologue */ */
-/* OBSOLETE              /* and not just a NOP, then we want to break after both instructions */ */
-/* OBSOLETE              if ((op1 & OP_MASK_OPCODE) != OP_NOP) */
-/* OBSOLETE                pc += 8; */
-/* OBSOLETE              break; */
-/* OBSOLETE            } */
-/* OBSOLETE        } */
-/* OBSOLETE      else */
-/* OBSOLETE        break; */
-/* OBSOLETE    } */
-/* OBSOLETE       pc += 8; */
-/* OBSOLETE     } */
-/* OBSOLETE   return pc; */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static int end_of_stack; */
-/* OBSOLETE  */
-/* OBSOLETE /* Given a GDB frame, determine the address of the calling function's frame. */
-/* OBSOLETE    This will be used to create a new GDB frame struct, and then */
-/* OBSOLETE    INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. */
-/* OBSOLETE  */ */
-/* OBSOLETE  */
-/* OBSOLETE CORE_ADDR */
-/* OBSOLETE d30v_frame_chain (struct frame_info *frame) */
-/* OBSOLETE { */
-/* OBSOLETE   struct frame_saved_regs fsr; */
-/* OBSOLETE  */
-/* OBSOLETE   d30v_frame_find_saved_regs (frame, &fsr); */
-/* OBSOLETE  */
-/* OBSOLETE   if (end_of_stack) */
-/* OBSOLETE     return (CORE_ADDR) 0; */
-/* OBSOLETE  */
-/* OBSOLETE   if (frame->return_pc == IMEM_START) */
-/* OBSOLETE     return (CORE_ADDR) 0; */
-/* OBSOLETE  */
-/* OBSOLETE   if (!fsr.regs[FP_REGNUM]) */
-/* OBSOLETE     { */
-/* OBSOLETE       if (!fsr.regs[SP_REGNUM] || fsr.regs[SP_REGNUM] == STACK_START) */
-/* OBSOLETE    return (CORE_ADDR) 0; */
-/* OBSOLETE  */
-/* OBSOLETE       return fsr.regs[SP_REGNUM]; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   if (!read_memory_unsigned_integer (fsr.regs[FP_REGNUM], 4)) */
-/* OBSOLETE     return (CORE_ADDR) 0; */
-/* OBSOLETE  */
-/* OBSOLETE   return read_memory_unsigned_integer (fsr.regs[FP_REGNUM], 4); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static int next_addr, uses_frame; */
-/* OBSOLETE static int frame_size; */
-/* OBSOLETE  */
-/* OBSOLETE static int */
-/* OBSOLETE prologue_find_regs (unsigned long op, struct frame_saved_regs *fsr, */
-/* OBSOLETE                CORE_ADDR addr) */
-/* OBSOLETE { */
-/* OBSOLETE   int n; */
-/* OBSOLETE   int offset; */
-/* OBSOLETE  */
-/* OBSOLETE   /* add sp,sp,imm -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_IMM) == OP_ADD_SP_IMM) */
-/* OBSOLETE     { */
-/* OBSOLETE       offset = EXTRACT_IMM6 (op); */
-/* OBSOLETE       /*next_addr += offset; */ */
-/* OBSOLETE       frame_size += -offset; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* add r22,sp,imm -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_IMM) == OP_ADD_R22_SP_IMM) */
-/* OBSOLETE     { */
-/* OBSOLETE       offset = EXTRACT_IMM6 (op); */
-/* OBSOLETE       next_addr = (offset - frame_size); */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw Ra, @(fp, offset) -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_OP_AND_RB) == OP_STW_FP_IMM) */
-/* OBSOLETE     { */
-/* OBSOLETE       n = EXTRACT_RA (op); */
-/* OBSOLETE       offset = EXTRACT_IMM6 (op); */
-/* OBSOLETE       fsr->regs[n] = (offset - frame_size); */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw Ra, @(fp, r0) -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_STW_FP_R0) */
-/* OBSOLETE     { */
-/* OBSOLETE       n = EXTRACT_RA (op); */
-/* OBSOLETE       fsr->regs[n] = (-frame_size); */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* or  fp,0,sp -- observed */ */
-/* OBSOLETE   if ((op == OP_OR_FP_R0_SP) || */
-/* OBSOLETE       (op == OP_OR_FP_SP_R0) || */
-/* OBSOLETE       (op == OP_OR_FP_IMM0_SP)) */
-/* OBSOLETE     { */
-/* OBSOLETE       uses_frame = 1; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* nop */ */
-/* OBSOLETE   if ((op & OP_MASK_OPCODE) == OP_NOP) */
-/* OBSOLETE     return 1; */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw Ra,@(r22+,r0) -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_STW_R22P_R0) */
-/* OBSOLETE     { */
-/* OBSOLETE       n = EXTRACT_RA (op); */
-/* OBSOLETE       fsr->regs[n] = next_addr; */
-/* OBSOLETE       next_addr += 4; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE #if 0                              /* subsumed in pattern above */ */
-/* OBSOLETE   /* stw fp,@(r22+,r0) -- observed */ */
-/* OBSOLETE   if (op == OP_STW_FP_R22P_R0) */
-/* OBSOLETE     { */
-/* OBSOLETE       fsr->regs[FP_REGNUM] = next_addr;            /* XXX */ */
-/* OBSOLETE       next_addr += 4; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw r62,@(r22+,r0) -- observed */ */
-/* OBSOLETE   if (op == OP_STW_LR_R22P_R0) */
-/* OBSOLETE     { */
-/* OBSOLETE       fsr->regs[LR_REGNUM] = next_addr; */
-/* OBSOLETE       next_addr += 4; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE #endif */
-/* OBSOLETE   /* st2w Ra,@(r22+,r0) -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_ST2W_R22P_R0) */
-/* OBSOLETE     { */
-/* OBSOLETE       n = EXTRACT_RA (op); */
-/* OBSOLETE       fsr->regs[n] = next_addr; */
-/* OBSOLETE       fsr->regs[n + 1] = next_addr + 4; */
-/* OBSOLETE       next_addr += 8; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw  rn, @(sp-) */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_RA) == OP_STW_SPM) */
-/* OBSOLETE     { */
-/* OBSOLETE       n = EXTRACT_RA (op); */
-/* OBSOLETE       fsr->regs[n] = next_addr; */
-/* OBSOLETE       next_addr -= 4; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* st2w  Ra, @(sp-) */ */
-/* OBSOLETE   else if ((op & OP_MASK_ALL_BUT_RA) == OP_ST2W_SPM) */
-/* OBSOLETE     { */
-/* OBSOLETE       n = EXTRACT_RA (op); */
-/* OBSOLETE       fsr->regs[n] = next_addr; */
-/* OBSOLETE       fsr->regs[n + 1] = next_addr + 4; */
-/* OBSOLETE       next_addr -= 8; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* sub  sp,sp,imm */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_IMM) == OP_SUB_SP_IMM) */
-/* OBSOLETE     { */
-/* OBSOLETE       offset = EXTRACT_IMM6 (op); */
-/* OBSOLETE       frame_size += -offset; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* st  rn, @(sp,0) -- observed */ */
-/* OBSOLETE   if (((op & OP_MASK_ALL_BUT_RA) == OP_STW_SP_R0) || */
-/* OBSOLETE       ((op & OP_MASK_ALL_BUT_RA) == OP_STW_SP_IMM0)) */
-/* OBSOLETE     { */
-/* OBSOLETE       n = EXTRACT_RA (op); */
-/* OBSOLETE       fsr->regs[n] = (-frame_size); */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* st2w  rn, @(sp,0) */ */
-/* OBSOLETE   if (((op & OP_MASK_ALL_BUT_RA) == OP_ST2W_SP_R0) || */
-/* OBSOLETE       ((op & OP_MASK_ALL_BUT_RA) == OP_ST2W_SP_IMM0)) */
-/* OBSOLETE     { */
-/* OBSOLETE       n = EXTRACT_RA (op); */
-/* OBSOLETE       fsr->regs[n] = (-frame_size); */
-/* OBSOLETE       fsr->regs[n + 1] = (-frame_size) + 4; */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* stw fp,@(sp,imm) -- observed */ */
-/* OBSOLETE   if ((op & OP_MASK_ALL_BUT_IMM) == OP_STW_FP_SP_IMM) */
-/* OBSOLETE     { */
-/* OBSOLETE       offset = EXTRACT_IMM6 (op); */
-/* OBSOLETE       fsr->regs[FP_REGNUM] = (offset - frame_size); */
-/* OBSOLETE       return 1; */
-/* OBSOLETE     } */
-/* OBSOLETE   return 0; */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE /* Put here the code to store, into a struct frame_saved_regs, the */
-/* OBSOLETE    addresses of the saved registers of frame described by FRAME_INFO. */
-/* OBSOLETE    This includes special registers such as pc and fp saved in special */
-/* OBSOLETE    ways in the stack frame.  sp is even more special: the address we */
-/* OBSOLETE    return for it IS the sp for the next frame. */ */
-/* OBSOLETE void */
-/* OBSOLETE d30v_frame_find_saved_regs (struct frame_info *fi, struct frame_saved_regs *fsr) */
-/* OBSOLETE { */
-/* OBSOLETE   CORE_ADDR fp, pc; */
-/* OBSOLETE   unsigned long opl, opr; */
-/* OBSOLETE   unsigned long op1, op2; */
-/* OBSOLETE   unsigned long fm0, fm1; */
-/* OBSOLETE   int i; */
-/* OBSOLETE  */
-/* OBSOLETE   fp = fi->frame; */
-/* OBSOLETE   memset (fsr, 0, sizeof (*fsr)); */
-/* OBSOLETE   next_addr = 0; */
-/* OBSOLETE   frame_size = 0; */
-/* OBSOLETE   end_of_stack = 0; */
-/* OBSOLETE  */
-/* OBSOLETE   uses_frame = 0; */
-/* OBSOLETE  */
-/* OBSOLETE   d30v_frame_find_saved_regs_offsets (fi, fsr); */
-/* OBSOLETE  */
-/* OBSOLETE   fi->size = frame_size; */
-/* OBSOLETE  */
-/* OBSOLETE   if (!fp) */
-/* OBSOLETE     fp = read_register (SP_REGNUM); */
-/* OBSOLETE  */
-/* OBSOLETE   for (i = 0; i < NUM_REGS - 1; i++) */
-/* OBSOLETE     if (fsr->regs[i]) */
-/* OBSOLETE       { */
-/* OBSOLETE    fsr->regs[i] = fsr->regs[i] + fp + frame_size; */
-/* OBSOLETE       } */
-/* OBSOLETE  */
-/* OBSOLETE   if (fsr->regs[LR_REGNUM]) */
-/* OBSOLETE     fi->return_pc = read_memory_unsigned_integer (fsr->regs[LR_REGNUM], 4); */
-/* OBSOLETE   else */
-/* OBSOLETE     fi->return_pc = read_register (LR_REGNUM); */
-/* OBSOLETE  */
-/* OBSOLETE   /* the SP is not normally (ever?) saved, but check anyway */ */
-/* OBSOLETE   if (!fsr->regs[SP_REGNUM]) */
-/* OBSOLETE     { */
-/* OBSOLETE       /* if the FP was saved, that means the current FP is valid, */ */
-/* OBSOLETE       /* otherwise, it isn't being used, so we use the SP instead */ */
-/* OBSOLETE       if (uses_frame) */
-/* OBSOLETE    fsr->regs[SP_REGNUM] = read_register (FP_REGNUM) + fi->size; */
-/* OBSOLETE       else */
-/* OBSOLETE    { */
-/* OBSOLETE      fsr->regs[SP_REGNUM] = fp + fi->size; */
-/* OBSOLETE      fi->frameless = 1; */
-/* OBSOLETE      fsr->regs[FP_REGNUM] = 0; */
-/* OBSOLETE    } */
-/* OBSOLETE     } */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE void */
-/* OBSOLETE d30v_frame_find_saved_regs_offsets (struct frame_info *fi, */
-/* OBSOLETE                                struct frame_saved_regs *fsr) */
-/* OBSOLETE { */
-/* OBSOLETE   CORE_ADDR fp, pc; */
-/* OBSOLETE   unsigned long opl, opr; */
-/* OBSOLETE   unsigned long op1, op2; */
-/* OBSOLETE   unsigned long fm0, fm1; */
-/* OBSOLETE   int i; */
-/* OBSOLETE  */
-/* OBSOLETE   fp = fi->frame; */
-/* OBSOLETE   memset (fsr, 0, sizeof (*fsr)); */
-/* OBSOLETE   next_addr = 0; */
-/* OBSOLETE   frame_size = 0; */
-/* OBSOLETE   end_of_stack = 0; */
-/* OBSOLETE  */
-/* OBSOLETE   pc = get_pc_function_start (fi->pc); */
-/* OBSOLETE  */
-/* OBSOLETE   uses_frame = 0; */
-/* OBSOLETE   while (pc < fi->pc) */
-/* OBSOLETE     { */
-/* OBSOLETE       opl = (unsigned long) read_memory_integer (pc, 4); */
-/* OBSOLETE       opr = (unsigned long) read_memory_integer (pc + 4, 4); */
-/* OBSOLETE  */
-/* OBSOLETE       fm0 = (opl & OP_MASK_FM_BIT); */
-/* OBSOLETE       fm1 = (opr & OP_MASK_FM_BIT); */
-/* OBSOLETE  */
-/* OBSOLETE       opl = (opl & OP_MASK_SUB_INST); */
-/* OBSOLETE       opr = (opr & OP_MASK_SUB_INST); */
-/* OBSOLETE  */
-/* OBSOLETE       if (fm0 && fm1) */
-/* OBSOLETE    { */
-/* OBSOLETE      /* long instruction */ */
-/* OBSOLETE      if ((opl & OP_MASK_ALL_BUT_IMM) == OP_ADD_SP_IMM) */
-/* OBSOLETE        { */
-/* OBSOLETE          /* add sp,sp,n */ */
-/* OBSOLETE          long offset = EXTRACT_IMM32 (opl, opr); */
-/* OBSOLETE          frame_size += -offset; */
-/* OBSOLETE        } */
-/* OBSOLETE      else if ((opl & OP_MASK_ALL_BUT_IMM) == OP_ADD_R22_SP_IMM) */
-/* OBSOLETE        { */
-/* OBSOLETE          /* add r22,sp,offset */ */
-/* OBSOLETE          long offset = EXTRACT_IMM32 (opl, opr); */
-/* OBSOLETE          next_addr = (offset - frame_size); */
-/* OBSOLETE        } */
-/* OBSOLETE      else if ((opl & OP_MASK_OP_AND_RB) == OP_STW_SP_IMM) */
-/* OBSOLETE        { */
-/* OBSOLETE          /* st Ra, @(sp,imm) */ */
-/* OBSOLETE          long offset = EXTRACT_IMM32 (opl, opr); */
-/* OBSOLETE          short n = EXTRACT_RA (opl); */
-/* OBSOLETE          fsr->regs[n] = (offset - frame_size); */
-/* OBSOLETE        } */
-/* OBSOLETE      else if ((opl & OP_MASK_OP_AND_RB) == OP_ST2W_SP_IMM) */
-/* OBSOLETE        { */
-/* OBSOLETE          /* st2w Ra, @(sp,offset) */ */
-/* OBSOLETE          long offset = EXTRACT_IMM32 (opl, opr); */
-/* OBSOLETE          short n = EXTRACT_RA (opl); */
-/* OBSOLETE          fsr->regs[n] = (offset - frame_size); */
-/* OBSOLETE          fsr->regs[n + 1] = (offset - frame_size) + 4; */
-/* OBSOLETE        } */
-/* OBSOLETE      else if ((opl & OP_MASK_ALL_BUT_IMM) == OP_OR_SP_R0_IMM) */
-/* OBSOLETE        { */
-/* OBSOLETE          end_of_stack = 1; */
-/* OBSOLETE        } */
-/* OBSOLETE      else */
-/* OBSOLETE        break; */
-/* OBSOLETE    } */
-/* OBSOLETE       else */
-/* OBSOLETE    { */
-/* OBSOLETE      /* short instructions */ */
-/* OBSOLETE      if (fm0 && !fm1) */
-/* OBSOLETE        { */
-/* OBSOLETE          op2 = opl; */
-/* OBSOLETE          op1 = opr; */
-/* OBSOLETE        } */
-/* OBSOLETE      else */
-/* OBSOLETE        { */
-/* OBSOLETE          op1 = opl; */
-/* OBSOLETE          op2 = opr; */
-/* OBSOLETE        } */
-/* OBSOLETE      if (!prologue_find_regs (op1, fsr, pc) || !prologue_find_regs (op2, fsr, pc)) */
-/* OBSOLETE        break; */
-/* OBSOLETE    } */
-/* OBSOLETE       pc += 8; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE #if 0 */
-/* OBSOLETE   fi->size = frame_size; */
-/* OBSOLETE  */
-/* OBSOLETE   if (!fp) */
-/* OBSOLETE     fp = read_register (SP_REGNUM); */
-/* OBSOLETE  */
-/* OBSOLETE   for (i = 0; i < NUM_REGS - 1; i++) */
-/* OBSOLETE     if (fsr->regs[i]) */
-/* OBSOLETE       { */
-/* OBSOLETE    fsr->regs[i] = fsr->regs[i] + fp + frame_size; */
-/* OBSOLETE       } */
-/* OBSOLETE  */
-/* OBSOLETE   if (fsr->regs[LR_REGNUM]) */
-/* OBSOLETE     fi->return_pc = read_memory_unsigned_integer (fsr->regs[LR_REGNUM], 4); */
-/* OBSOLETE   else */
-/* OBSOLETE     fi->return_pc = read_register (LR_REGNUM); */
-/* OBSOLETE  */
-/* OBSOLETE   /* the SP is not normally (ever?) saved, but check anyway */ */
-/* OBSOLETE   if (!fsr->regs[SP_REGNUM]) */
-/* OBSOLETE     { */
-/* OBSOLETE       /* if the FP was saved, that means the current FP is valid, */ */
-/* OBSOLETE       /* otherwise, it isn't being used, so we use the SP instead */ */
-/* OBSOLETE       if (uses_frame) */
-/* OBSOLETE    fsr->regs[SP_REGNUM] = read_register (FP_REGNUM) + fi->size; */
-/* OBSOLETE       else */
-/* OBSOLETE    { */
-/* OBSOLETE      fsr->regs[SP_REGNUM] = fp + fi->size; */
-/* OBSOLETE      fi->frameless = 1; */
-/* OBSOLETE      fsr->regs[FP_REGNUM] = 0; */
-/* OBSOLETE    } */
-/* OBSOLETE     } */
-/* OBSOLETE #endif */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE void */
-/* OBSOLETE d30v_init_extra_frame_info (int fromleaf, struct frame_info *fi) */
-/* OBSOLETE { */
-/* OBSOLETE   struct frame_saved_regs dummy; */
-/* OBSOLETE  */
-/* OBSOLETE   if (fi->next && (fi->pc == 0)) */
-/* OBSOLETE     fi->pc = fi->next->return_pc; */
-/* OBSOLETE  */
-/* OBSOLETE   d30v_frame_find_saved_regs_offsets (fi, &dummy); */
-/* OBSOLETE  */
-/* OBSOLETE   if (uses_frame == 0) */
-/* OBSOLETE     fi->frameless = 1; */
-/* OBSOLETE   else */
-/* OBSOLETE     fi->frameless = 0; */
-/* OBSOLETE  */
-/* OBSOLETE   if ((fi->next == 0) && (uses_frame == 0)) */
-/* OBSOLETE     /* innermost frame and it's "frameless", */
-/* OBSOLETE        so the fi->frame field is wrong, fix it! */ */
-/* OBSOLETE     fi->frame = read_sp (); */
-/* OBSOLETE  */
-/* OBSOLETE   if (dummy.regs[LR_REGNUM]) */
-/* OBSOLETE     { */
-/* OBSOLETE       /* it was saved, grab it! */ */
-/* OBSOLETE       dummy.regs[LR_REGNUM] += (fi->frame + frame_size); */
-/* OBSOLETE       fi->return_pc = read_memory_unsigned_integer (dummy.regs[LR_REGNUM], 4); */
-/* OBSOLETE     } */
-/* OBSOLETE   else */
-/* OBSOLETE     fi->return_pc = read_register (LR_REGNUM); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE void */
-/* OBSOLETE d30v_init_frame_pc (int fromleaf, struct frame_info *prev) */
-/* OBSOLETE { */
-/* OBSOLETE   /* default value, put here so we can breakpoint on it and */
-/* OBSOLETE      see if the default value is really the right thing to use */ */
-/* OBSOLETE   prev->pc = (fromleaf ? SAVED_PC_AFTER_CALL (prev->next) : \ */
-/* OBSOLETE          prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ()); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static void d30v_print_register (int regnum, int tabular); */
-/* OBSOLETE  */
-/* OBSOLETE static void */
-/* OBSOLETE d30v_print_register (int regnum, int tabular) */
-/* OBSOLETE { */
-/* OBSOLETE   if (regnum < A0_REGNUM) */
-/* OBSOLETE     { */
-/* OBSOLETE       if (tabular) */
-/* OBSOLETE    printf_filtered ("%08lx", (long) read_register (regnum)); */
-/* OBSOLETE       else */
-/* OBSOLETE    printf_filtered ("0x%lx %ld", */
-/* OBSOLETE                     (long) read_register (regnum), */
-/* OBSOLETE                     (long) read_register (regnum)); */
-/* OBSOLETE     } */
-/* OBSOLETE   else */
-/* OBSOLETE     { */
-/* OBSOLETE       char regbuf[MAX_REGISTER_RAW_SIZE]; */
-/* OBSOLETE  */
-/* OBSOLETE       frame_register_read (selected_frame, regnum, regbuf); */
-/* OBSOLETE  */
-/* OBSOLETE       val_print (REGISTER_VIRTUAL_TYPE (regnum), regbuf, 0, 0, */
-/* OBSOLETE             gdb_stdout, 'x', 1, 0, Val_pretty_default); */
-/* OBSOLETE  */
-/* OBSOLETE       if (!tabular) */
-/* OBSOLETE    { */
-/* OBSOLETE      printf_filtered ("    "); */
-/* OBSOLETE      val_print (REGISTER_VIRTUAL_TYPE (regnum), regbuf, 0, 0, */
-/* OBSOLETE                 gdb_stdout, 'd', 1, 0, Val_pretty_default); */
-/* OBSOLETE    } */
-/* OBSOLETE     } */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static void */
-/* OBSOLETE d30v_print_flags (void) */
-/* OBSOLETE { */
-/* OBSOLETE   long psw = read_register (PSW_REGNUM); */
-/* OBSOLETE   printf_filtered ("flags #1"); */
-/* OBSOLETE   printf_filtered ("   (sm) %d", (psw & PSW_SM) != 0); */
-/* OBSOLETE   printf_filtered ("   (ea) %d", (psw & PSW_EA) != 0); */
-/* OBSOLETE   printf_filtered ("   (db) %d", (psw & PSW_DB) != 0); */
-/* OBSOLETE   printf_filtered ("   (ds) %d", (psw & PSW_DS) != 0); */
-/* OBSOLETE   printf_filtered ("   (ie) %d", (psw & PSW_IE) != 0); */
-/* OBSOLETE   printf_filtered ("   (rp) %d", (psw & PSW_RP) != 0); */
-/* OBSOLETE   printf_filtered ("   (md) %d\n", (psw & PSW_MD) != 0); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("flags #2"); */
-/* OBSOLETE   printf_filtered ("   (f0) %d", (psw & PSW_F0) != 0); */
-/* OBSOLETE   printf_filtered ("   (f1) %d", (psw & PSW_F1) != 0); */
-/* OBSOLETE   printf_filtered ("   (f2) %d", (psw & PSW_F2) != 0); */
-/* OBSOLETE   printf_filtered ("   (f3) %d", (psw & PSW_F3) != 0); */
-/* OBSOLETE   printf_filtered ("    (s) %d", (psw & PSW_S) != 0); */
-/* OBSOLETE   printf_filtered ("    (v) %d", (psw & PSW_V) != 0); */
-/* OBSOLETE   printf_filtered ("   (va) %d", (psw & PSW_VA) != 0); */
-/* OBSOLETE   printf_filtered ("    (c) %d\n", (psw & PSW_C) != 0); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static void */
-/* OBSOLETE print_flags_command (char *args, int from_tty) */
-/* OBSOLETE { */
-/* OBSOLETE   d30v_print_flags (); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE void */
-/* OBSOLETE d30v_do_registers_info (int regnum, int fpregs) */
-/* OBSOLETE { */
-/* OBSOLETE   long long num1, num2; */
-/* OBSOLETE   long psw; */
-/* OBSOLETE  */
-/* OBSOLETE   if (regnum != -1) */
-/* OBSOLETE     { */
-/* OBSOLETE       if (REGISTER_NAME (0) == NULL || REGISTER_NAME (0)[0] == '\000') */
-/* OBSOLETE    return; */
-/* OBSOLETE  */
-/* OBSOLETE       printf_filtered ("%s ", REGISTER_NAME (regnum)); */
-/* OBSOLETE       d30v_print_register (regnum, 0); */
-/* OBSOLETE  */
-/* OBSOLETE       printf_filtered ("\n"); */
-/* OBSOLETE       return; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* Have to print all the registers.  Format them nicely.  */ */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("PC="); */
-/* OBSOLETE   print_address (read_pc (), gdb_stdout); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" PSW="); */
-/* OBSOLETE   d30v_print_register (PSW_REGNUM, 1); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" BPC="); */
-/* OBSOLETE   print_address (read_register (BPC_REGNUM), gdb_stdout); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" BPSW="); */
-/* OBSOLETE   d30v_print_register (BPSW_REGNUM, 1); */
-/* OBSOLETE   printf_filtered ("\n"); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("DPC="); */
-/* OBSOLETE   print_address (read_register (DPC_REGNUM), gdb_stdout); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" DPSW="); */
-/* OBSOLETE   d30v_print_register (DPSW_REGNUM, 1); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" IBA="); */
-/* OBSOLETE   print_address (read_register (IBA_REGNUM), gdb_stdout); */
-/* OBSOLETE   printf_filtered ("\n"); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("RPT_C="); */
-/* OBSOLETE   d30v_print_register (RPT_C_REGNUM, 1); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" RPT_S="); */
-/* OBSOLETE   print_address (read_register (RPT_S_REGNUM), gdb_stdout); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" RPT_E="); */
-/* OBSOLETE   print_address (read_register (RPT_E_REGNUM), gdb_stdout); */
-/* OBSOLETE   printf_filtered ("\n"); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("MOD_S="); */
-/* OBSOLETE   print_address (read_register (MOD_S_REGNUM), gdb_stdout); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" MOD_E="); */
-/* OBSOLETE   print_address (read_register (MOD_E_REGNUM), gdb_stdout); */
-/* OBSOLETE   printf_filtered ("\n"); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("EIT_VB="); */
-/* OBSOLETE   print_address (read_register (EIT_VB_REGNUM), gdb_stdout); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" INT_S="); */
-/* OBSOLETE   d30v_print_register (INT_S_REGNUM, 1); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered (" INT_M="); */
-/* OBSOLETE   d30v_print_register (INT_M_REGNUM, 1); */
-/* OBSOLETE   printf_filtered ("\n"); */
-/* OBSOLETE  */
-/* OBSOLETE   d30v_print_flags (); */
-/* OBSOLETE   for (regnum = 0; regnum <= 63;) */
-/* OBSOLETE     { */
-/* OBSOLETE       int i; */
-/* OBSOLETE  */
-/* OBSOLETE       printf_filtered ("R%d-R%d ", regnum, regnum + 7); */
-/* OBSOLETE       if (regnum < 10) */
-/* OBSOLETE    printf_filtered (" "); */
-/* OBSOLETE       if (regnum + 7 < 10) */
-/* OBSOLETE    printf_filtered (" "); */
-/* OBSOLETE  */
-/* OBSOLETE       for (i = 0; i < 8; i++) */
-/* OBSOLETE    { */
-/* OBSOLETE      printf_filtered (" "); */
-/* OBSOLETE      d30v_print_register (regnum++, 1); */
-/* OBSOLETE    } */
-/* OBSOLETE  */
-/* OBSOLETE       printf_filtered ("\n"); */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("A0-A1    "); */
-/* OBSOLETE  */
-/* OBSOLETE   d30v_print_register (A0_REGNUM, 1); */
-/* OBSOLETE   printf_filtered ("    "); */
-/* OBSOLETE   d30v_print_register (A1_REGNUM, 1); */
-/* OBSOLETE   printf_filtered ("\n"); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE CORE_ADDR */
-/* OBSOLETE d30v_fix_call_dummy (char *dummyname, CORE_ADDR start_sp, CORE_ADDR fun, */
-/* OBSOLETE                 int nargs, struct value **args, */
-/* OBSOLETE                 struct type *type, int gcc_p) */
-/* OBSOLETE { */
-/* OBSOLETE   int regnum; */
-/* OBSOLETE   CORE_ADDR sp; */
-/* OBSOLETE   char buffer[MAX_REGISTER_RAW_SIZE]; */
-/* OBSOLETE   struct frame_info *frame = get_current_frame (); */
-/* OBSOLETE   frame->dummy = start_sp; */
-/* OBSOLETE   /*start_sp |= DMEM_START; */ */
-/* OBSOLETE  */
-/* OBSOLETE   sp = start_sp; */
-/* OBSOLETE   for (regnum = 0; regnum < NUM_REGS; regnum++) */
-/* OBSOLETE     { */
-/* OBSOLETE       sp -= REGISTER_RAW_SIZE (regnum); */
-/* OBSOLETE       store_address (buffer, REGISTER_RAW_SIZE (regnum), read_register (regnum)); */
-/* OBSOLETE       write_memory (sp, buffer, REGISTER_RAW_SIZE (regnum)); */
-/* OBSOLETE     } */
-/* OBSOLETE   write_register (SP_REGNUM, (LONGEST) sp); */
-/* OBSOLETE   /* now we need to load LR with the return address */ */
-/* OBSOLETE   write_register (LR_REGNUM, (LONGEST) d30v_call_dummy_address ()); */
-/* OBSOLETE   return sp; */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static void */
-/* OBSOLETE d30v_pop_dummy_frame (struct frame_info *fi) */
-/* OBSOLETE { */
-/* OBSOLETE   CORE_ADDR sp = fi->dummy; */
-/* OBSOLETE   int regnum; */
-/* OBSOLETE  */
-/* OBSOLETE   for (regnum = 0; regnum < NUM_REGS; regnum++) */
-/* OBSOLETE     { */
-/* OBSOLETE       sp -= REGISTER_RAW_SIZE (regnum); */
-/* OBSOLETE       write_register (regnum, read_memory_unsigned_integer (sp, REGISTER_RAW_SIZE (regnum))); */
-/* OBSOLETE     } */
-/* OBSOLETE   flush_cached_frames ();  /* needed? */ */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE  */
-/* OBSOLETE CORE_ADDR */
-/* OBSOLETE d30v_push_arguments (int nargs, struct value **args, CORE_ADDR sp, */
-/* OBSOLETE                 int struct_return, CORE_ADDR struct_addr) */
-/* OBSOLETE { */
-/* OBSOLETE   int i, len, index = 0, regnum = 2; */
-/* OBSOLETE   char buffer[4], *contents; */
-/* OBSOLETE   LONGEST val; */
-/* OBSOLETE   CORE_ADDR ptrs[10]; */
-/* OBSOLETE  */
-/* OBSOLETE #if 0 */
-/* OBSOLETE   /* Pass 1. Put all large args on stack */ */
-/* OBSOLETE   for (i = 0; i < nargs; i++) */
-/* OBSOLETE     { */
-/* OBSOLETE       struct value *arg = args[i]; */
-/* OBSOLETE       struct type *arg_type = check_typedef (VALUE_TYPE (arg)); */
-/* OBSOLETE       len = TYPE_LENGTH (arg_type); */
-/* OBSOLETE       contents = VALUE_CONTENTS (arg); */
-/* OBSOLETE       val = extract_signed_integer (contents, len); */
-/* OBSOLETE       if (len > 4) */
-/* OBSOLETE    { */
-/* OBSOLETE      /* put on stack and pass pointers */ */
-/* OBSOLETE      sp -= len; */
-/* OBSOLETE      write_memory (sp, contents, len); */
-/* OBSOLETE      ptrs[index++] = sp; */
-/* OBSOLETE    } */
-/* OBSOLETE     } */
-/* OBSOLETE #endif */
-/* OBSOLETE   index = 0; */
-/* OBSOLETE  */
-/* OBSOLETE   for (i = 0; i < nargs; i++) */
-/* OBSOLETE     { */
-/* OBSOLETE       struct value *arg = args[i]; */
-/* OBSOLETE       struct type *arg_type = check_typedef (VALUE_TYPE (arg)); */
-/* OBSOLETE       len = TYPE_LENGTH (arg_type); */
-/* OBSOLETE       contents = VALUE_CONTENTS (arg); */
-/* OBSOLETE       if (len > 4) */
-/* OBSOLETE    { */
-/* OBSOLETE      /* we need multiple registers */ */
-/* OBSOLETE      int ndx; */
-/* OBSOLETE  */
-/* OBSOLETE      for (ndx = 0; len > 0; ndx += 8, len -= 8) */
-/* OBSOLETE        { */
-/* OBSOLETE          if (regnum & 1) */
-/* OBSOLETE            regnum++;       /* all args > 4 bytes start in even register */ */
-/* OBSOLETE  */
-/* OBSOLETE          if (regnum < 18) */
-/* OBSOLETE            { */
-/* OBSOLETE              val = extract_signed_integer (&contents[ndx], 4); */
-/* OBSOLETE              write_register (regnum++, val); */
-/* OBSOLETE  */
-/* OBSOLETE              if (len >= 8) */
-/* OBSOLETE                val = extract_signed_integer (&contents[ndx + 4], 4); */
-/* OBSOLETE              else */
-/* OBSOLETE                val = extract_signed_integer (&contents[ndx + 4], len - 4); */
-/* OBSOLETE              write_register (regnum++, val); */
-/* OBSOLETE            } */
-/* OBSOLETE          else */
-/* OBSOLETE            { */
-/* OBSOLETE              /* no more registers available.  put it on the stack */ */
-/* OBSOLETE  */
-/* OBSOLETE              /* all args > 4 bytes are padded to a multiple of 8 bytes */
-/* OBSOLETE                 and start on an 8 byte boundary */ */
-/* OBSOLETE              if (sp & 7) */
-/* OBSOLETE                sp -= (sp & 7);     /* align it */ */
-/* OBSOLETE  */
-/* OBSOLETE              sp -= ((len + 7) & ~7);       /* allocate space */ */
-/* OBSOLETE              write_memory (sp, &contents[ndx], len); */
-/* OBSOLETE              break; */
-/* OBSOLETE            } */
-/* OBSOLETE        } */
-/* OBSOLETE    } */
-/* OBSOLETE       else */
-/* OBSOLETE    { */
-/* OBSOLETE      if (regnum < 18) */
-/* OBSOLETE        { */
-/* OBSOLETE          val = extract_signed_integer (contents, len); */
-/* OBSOLETE          write_register (regnum++, val); */
-/* OBSOLETE        } */
-/* OBSOLETE      else */
-/* OBSOLETE        { */
-/* OBSOLETE          /* all args are padded to a multiple of 4 bytes (at least) */ */
-/* OBSOLETE          sp -= ((len + 3) & ~3); */
-/* OBSOLETE          write_memory (sp, contents, len); */
-/* OBSOLETE        } */
-/* OBSOLETE    } */
-/* OBSOLETE     } */
-/* OBSOLETE   if (sp & 7) */
-/* OBSOLETE     /* stack pointer is not on an 8 byte boundary -- align it */ */
-/* OBSOLETE     sp -= (sp & 7); */
-/* OBSOLETE   return sp; */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE  */
-/* OBSOLETE /* pick an out-of-the-way place to set the return value */ */
-/* OBSOLETE /* for an inferior function call.  The link register is set to this  */ */
-/* OBSOLETE /* value and a momentary breakpoint is set there.  When the breakpoint */ */
-/* OBSOLETE /* is hit, the dummy frame is popped and the previous environment is */ */
-/* OBSOLETE /* restored. */ */
-/* OBSOLETE  */
-/* OBSOLETE CORE_ADDR */
-/* OBSOLETE d30v_call_dummy_address (void) */
-/* OBSOLETE { */
-/* OBSOLETE   CORE_ADDR entry; */
-/* OBSOLETE   struct minimal_symbol *sym; */
-/* OBSOLETE  */
-/* OBSOLETE   entry = entry_point_address (); */
-/* OBSOLETE  */
-/* OBSOLETE   if (entry != 0) */
-/* OBSOLETE     return entry; */
-/* OBSOLETE  */
-/* OBSOLETE   sym = lookup_minimal_symbol ("_start", NULL, symfile_objfile); */
-/* OBSOLETE  */
-/* OBSOLETE   if (!sym || MSYMBOL_TYPE (sym) != mst_text) */
-/* OBSOLETE     return 0; */
-/* OBSOLETE   else */
-/* OBSOLETE     return SYMBOL_VALUE_ADDRESS (sym); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE /* Given a return value in `regbuf' with a type `valtype',  */
-/* OBSOLETE    extract and copy its value into `valbuf'.  */ */
-/* OBSOLETE  */
-/* OBSOLETE void */
-/* OBSOLETE d30v_extract_return_value (struct type *valtype, char regbuf[REGISTER_BYTES], */
-/* OBSOLETE                       char *valbuf) */
-/* OBSOLETE { */
-/* OBSOLETE   memcpy (valbuf, regbuf + REGISTER_BYTE (2), TYPE_LENGTH (valtype)); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE /* The following code implements access to, and display of, the D30V's */
-/* OBSOLETE    instruction trace buffer.  The buffer consists of 64K or more */
-/* OBSOLETE    4-byte words of data, of which each words includes an 8-bit count, */
-/* OBSOLETE    an 8-bit segment number, and a 16-bit instruction address. */
-/* OBSOLETE  */
-/* OBSOLETE    In theory, the trace buffer is continuously capturing instruction */
-/* OBSOLETE    data that the CPU presents on its "debug bus", but in practice, the */
-/* OBSOLETE    ROMified GDB stub only enables tracing when it continues or steps */
-/* OBSOLETE    the program, and stops tracing when the program stops; so it */
-/* OBSOLETE    actually works for GDB to read the buffer counter out of memory and */
-/* OBSOLETE    then read each trace word.  The counter records where the tracing */
-/* OBSOLETE    stops, but there is no record of where it started, so we remember */
-/* OBSOLETE    the PC when we resumed and then search backwards in the trace */
-/* OBSOLETE    buffer for a word that includes that address.  This is not perfect, */
-/* OBSOLETE    because you will miss trace data if the resumption PC is the target */
-/* OBSOLETE    of a branch.  (The value of the buffer counter is semi-random, any */
-/* OBSOLETE    trace data from a previous program stop is gone.)  */ */
-/* OBSOLETE  */
-/* OBSOLETE /* The address of the last word recorded in the trace buffer.  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define DBBC_ADDR (0xd80000) */
-/* OBSOLETE  */
-/* OBSOLETE /* The base of the trace buffer, at least for the "Board_0".  */ */
-/* OBSOLETE  */
-/* OBSOLETE #define TRACE_BUFFER_BASE (0xf40000) */
-/* OBSOLETE  */
-/* OBSOLETE static void trace_command (char *, int); */
-/* OBSOLETE  */
-/* OBSOLETE static void untrace_command (char *, int); */
-/* OBSOLETE  */
-/* OBSOLETE static void trace_info (char *, int); */
-/* OBSOLETE  */
-/* OBSOLETE static void tdisassemble_command (char *, int); */
-/* OBSOLETE  */
-/* OBSOLETE static void display_trace (int, int); */
-/* OBSOLETE  */
-/* OBSOLETE /* True when instruction traces are being collected.  */ */
-/* OBSOLETE  */
-/* OBSOLETE static int tracing; */
-/* OBSOLETE  */
-/* OBSOLETE /* Remembered PC.  */ */
-/* OBSOLETE  */
-/* OBSOLETE static CORE_ADDR last_pc; */
-/* OBSOLETE  */
-/* OBSOLETE /* True when trace output should be displayed whenever program stops.  */ */
-/* OBSOLETE  */
-/* OBSOLETE static int trace_display; */
-/* OBSOLETE  */
-/* OBSOLETE /* True when trace listing should include source lines.  */ */
-/* OBSOLETE  */
-/* OBSOLETE static int default_trace_show_source = 1; */
-/* OBSOLETE  */
-/* OBSOLETE struct trace_buffer */
-/* OBSOLETE   { */
-/* OBSOLETE     int size; */
-/* OBSOLETE     short *counts; */
-/* OBSOLETE     CORE_ADDR *addrs; */
-/* OBSOLETE   } */
-/* OBSOLETE trace_data; */
-/* OBSOLETE  */
-/* OBSOLETE static void */
-/* OBSOLETE trace_command (char *args, int from_tty) */
-/* OBSOLETE { */
-/* OBSOLETE   /* Clear the host-side trace buffer, allocating space if needed.  */ */
-/* OBSOLETE   trace_data.size = 0; */
-/* OBSOLETE   if (trace_data.counts == NULL) */
-/* OBSOLETE     trace_data.counts = (short *) xmalloc (65536 * sizeof (short)); */
-/* OBSOLETE   if (trace_data.addrs == NULL) */
-/* OBSOLETE     trace_data.addrs = (CORE_ADDR *) xmalloc (65536 * sizeof (CORE_ADDR)); */
-/* OBSOLETE  */
-/* OBSOLETE   tracing = 1; */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("Tracing is now on.\n"); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static void */
-/* OBSOLETE untrace_command (char *args, int from_tty) */
-/* OBSOLETE { */
-/* OBSOLETE   tracing = 0; */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("Tracing is now off.\n"); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static void */
-/* OBSOLETE trace_info (char *args, int from_tty) */
-/* OBSOLETE { */
-/* OBSOLETE   int i; */
-/* OBSOLETE  */
-/* OBSOLETE   if (trace_data.size) */
-/* OBSOLETE     { */
-/* OBSOLETE       printf_filtered ("%d entries in trace buffer:\n", trace_data.size); */
-/* OBSOLETE  */
-/* OBSOLETE       for (i = 0; i < trace_data.size; ++i) */
-/* OBSOLETE    { */
-/* OBSOLETE      printf_filtered ("%d: %d instruction%s at 0x%s\n", */
-/* OBSOLETE                       i, trace_data.counts[i], */
-/* OBSOLETE                       (trace_data.counts[i] == 1 ? "" : "s"), */
-/* OBSOLETE                       paddr_nz (trace_data.addrs[i])); */
-/* OBSOLETE    } */
-/* OBSOLETE     } */
-/* OBSOLETE   else */
-/* OBSOLETE     printf_filtered ("No entries in trace buffer.\n"); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("Tracing is currently %s.\n", (tracing ? "on" : "off")); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE /* Print the instruction at address MEMADDR in debugged memory, */
-/* OBSOLETE    on STREAM.  Returns length of the instruction, in bytes.  */ */
-/* OBSOLETE  */
-/* OBSOLETE static int */
-/* OBSOLETE print_insn (CORE_ADDR memaddr, struct ui_file *stream) */
-/* OBSOLETE { */
-/* OBSOLETE   /* If there's no disassembler, something is very wrong.  */ */
-/* OBSOLETE   if (tm_print_insn == NULL) */
-/* OBSOLETE     internal_error (__FILE__, __LINE__, */
-/* OBSOLETE                "print_insn: no disassembler"); */
-/* OBSOLETE  */
-/* OBSOLETE   if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG) */
-/* OBSOLETE     tm_print_insn_info.endian = BFD_ENDIAN_BIG; */
-/* OBSOLETE   else */
-/* OBSOLETE     tm_print_insn_info.endian = BFD_ENDIAN_LITTLE; */
-/* OBSOLETE   return TARGET_PRINT_INSN (memaddr, &tm_print_insn_info); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE void */
-/* OBSOLETE d30v_eva_prepare_to_trace (void) */
-/* OBSOLETE { */
-/* OBSOLETE   if (!tracing) */
-/* OBSOLETE     return; */
-/* OBSOLETE  */
-/* OBSOLETE   last_pc = read_register (PC_REGNUM); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE /* Collect trace data from the target board and format it into a form */
-/* OBSOLETE    more useful for display.  */ */
-/* OBSOLETE  */
-/* OBSOLETE void */
-/* OBSOLETE d30v_eva_get_trace_data (void) */
-/* OBSOLETE { */
-/* OBSOLETE   int count, i, j, oldsize; */
-/* OBSOLETE   int trace_addr, trace_seg, trace_cnt, next_cnt; */
-/* OBSOLETE   unsigned int last_trace, trace_word, next_word; */
-/* OBSOLETE   unsigned int *tmpspace; */
-/* OBSOLETE  */
-/* OBSOLETE   if (!tracing) */
-/* OBSOLETE     return; */
-/* OBSOLETE  */
-/* OBSOLETE   tmpspace = xmalloc (65536 * sizeof (unsigned int)); */
-/* OBSOLETE  */
-/* OBSOLETE   last_trace = read_memory_unsigned_integer (DBBC_ADDR, 2) << 2; */
-/* OBSOLETE  */
-/* OBSOLETE   /* Collect buffer contents from the target, stopping when we reach */
-/* OBSOLETE      the word recorded when execution resumed.  */ */
-/* OBSOLETE  */
-/* OBSOLETE   count = 0; */
-/* OBSOLETE   while (last_trace > 0) */
-/* OBSOLETE     { */
-/* OBSOLETE       QUIT; */
-/* OBSOLETE       trace_word = */
-/* OBSOLETE    read_memory_unsigned_integer (TRACE_BUFFER_BASE + last_trace, 4); */
-/* OBSOLETE       trace_addr = trace_word & 0xffff; */
-/* OBSOLETE       last_trace -= 4; */
-/* OBSOLETE       /* Ignore an apparently nonsensical entry.  */ */
-/* OBSOLETE       if (trace_addr == 0xffd5) */
-/* OBSOLETE    continue; */
-/* OBSOLETE       tmpspace[count++] = trace_word; */
-/* OBSOLETE       if (trace_addr == last_pc) */
-/* OBSOLETE    break; */
-/* OBSOLETE       if (count > 65535) */
-/* OBSOLETE    break; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   /* Move the data to the host-side trace buffer, adjusting counts to */
-/* OBSOLETE      include the last instruction executed and transforming the address */
-/* OBSOLETE      into something that GDB likes.  */ */
-/* OBSOLETE  */
-/* OBSOLETE   for (i = 0; i < count; ++i) */
-/* OBSOLETE     { */
-/* OBSOLETE       trace_word = tmpspace[i]; */
-/* OBSOLETE       next_word = ((i == 0) ? 0 : tmpspace[i - 1]); */
-/* OBSOLETE       trace_addr = trace_word & 0xffff; */
-/* OBSOLETE       next_cnt = (next_word >> 24) & 0xff; */
-/* OBSOLETE       j = trace_data.size + count - i - 1; */
-/* OBSOLETE       trace_data.addrs[j] = (trace_addr << 2) + 0x1000000; */
-/* OBSOLETE       trace_data.counts[j] = next_cnt + 1; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   oldsize = trace_data.size; */
-/* OBSOLETE   trace_data.size += count; */
-/* OBSOLETE  */
-/* OBSOLETE   xfree (tmpspace); */
-/* OBSOLETE  */
-/* OBSOLETE   if (trace_display) */
-/* OBSOLETE     display_trace (oldsize, trace_data.size); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static void */
-/* OBSOLETE tdisassemble_command (char *arg, int from_tty) */
-/* OBSOLETE { */
-/* OBSOLETE   int i, count; */
-/* OBSOLETE   CORE_ADDR low, high; */
-/* OBSOLETE   char *space_index; */
-/* OBSOLETE  */
-/* OBSOLETE   if (!arg) */
-/* OBSOLETE     { */
-/* OBSOLETE       low = 0; */
-/* OBSOLETE       high = trace_data.size; */
-/* OBSOLETE     } */
-/* OBSOLETE   else if (!(space_index = (char *) strchr (arg, ' '))) */
-/* OBSOLETE     { */
-/* OBSOLETE       low = parse_and_eval_address (arg); */
-/* OBSOLETE       high = low + 5; */
-/* OBSOLETE     } */
-/* OBSOLETE   else */
-/* OBSOLETE     { */
-/* OBSOLETE       /* Two arguments.  */ */
-/* OBSOLETE       *space_index = '\0'; */
-/* OBSOLETE       low = parse_and_eval_address (arg); */
-/* OBSOLETE       high = parse_and_eval_address (space_index + 1); */
-/* OBSOLETE       if (high < low) */
-/* OBSOLETE    high = low; */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("Dump of trace from %s to %s:\n", */
-/* OBSOLETE               paddr_u (low), */
-/* OBSOLETE               paddr_u (high)); */
-/* OBSOLETE  */
-/* OBSOLETE   display_trace (low, high); */
-/* OBSOLETE  */
-/* OBSOLETE   printf_filtered ("End of trace dump.\n"); */
-/* OBSOLETE   gdb_flush (gdb_stdout); */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE static void */
-/* OBSOLETE display_trace (int low, int high) */
-/* OBSOLETE { */
-/* OBSOLETE   int i, count, trace_show_source, first, suppress; */
-/* OBSOLETE   CORE_ADDR next_address; */
-/* OBSOLETE  */
-/* OBSOLETE   trace_show_source = default_trace_show_source; */
-/* OBSOLETE   if (!have_full_symbols () && !have_partial_symbols ()) */
-/* OBSOLETE     { */
-/* OBSOLETE       trace_show_source = 0; */
-/* OBSOLETE       printf_filtered ("No symbol table is loaded.  Use the \"file\" command.\n"); */
-/* OBSOLETE       printf_filtered ("Trace will not display any source.\n"); */
-/* OBSOLETE     } */
-/* OBSOLETE  */
-/* OBSOLETE   first = 1; */
-/* OBSOLETE   suppress = 0; */
-/* OBSOLETE   for (i = low; i < high; ++i) */
-/* OBSOLETE     { */
-/* OBSOLETE       next_address = trace_data.addrs[i]; */
-/* OBSOLETE       count = trace_data.counts[i]; */
-/* OBSOLETE       while (count-- > 0) */
-/* OBSOLETE    { */
-/* OBSOLETE      QUIT; */
-/* OBSOLETE      if (trace_show_source) */
-/* OBSOLETE        { */
-/* OBSOLETE          struct symtab_and_line sal, sal_prev; */
-/* OBSOLETE  */
-/* OBSOLETE          sal_prev = find_pc_line (next_address - 4, 0); */
-/* OBSOLETE          sal = find_pc_line (next_address, 0); */
-/* OBSOLETE  */
-/* OBSOLETE          if (sal.symtab) */
-/* OBSOLETE            { */
-/* OBSOLETE              if (first || sal.line != sal_prev.line) */
-/* OBSOLETE                print_source_lines (sal.symtab, sal.line, sal.line + 1, 0); */
-/* OBSOLETE              suppress = 0; */
-/* OBSOLETE            } */
-/* OBSOLETE          else */
-/* OBSOLETE            { */
-/* OBSOLETE              if (!suppress) */
-/* OBSOLETE                /* FIXME-32x64--assumes sal.pc fits in long.  */ */
-/* OBSOLETE                printf_filtered ("No source file for address %s.\n", */
-/* OBSOLETE                             local_hex_string ((unsigned long) sal.pc)); */
-/* OBSOLETE              suppress = 1; */
-/* OBSOLETE            } */
-/* OBSOLETE        } */
-/* OBSOLETE      first = 0; */
-/* OBSOLETE      print_address (next_address, gdb_stdout); */
-/* OBSOLETE      printf_filtered (":"); */
-/* OBSOLETE      printf_filtered ("\t"); */
-/* OBSOLETE      wrap_here ("    "); */
-/* OBSOLETE      next_address = next_address + print_insn (next_address, gdb_stdout); */
-/* OBSOLETE      printf_filtered ("\n"); */
-/* OBSOLETE      gdb_flush (gdb_stdout); */
-/* OBSOLETE    } */
-/* OBSOLETE     } */
-/* OBSOLETE } */
-/* OBSOLETE  */
-/* OBSOLETE extern void (*target_resume_hook) (void); */
-/* OBSOLETE extern void (*target_wait_loop_hook) (void); */
-/* OBSOLETE  */
-/* OBSOLETE void */
-/* OBSOLETE _initialize_d30v_tdep (void) */
-/* OBSOLETE { */
-/* OBSOLETE   tm_print_insn = print_insn_d30v; */
-/* OBSOLETE  */
-/* OBSOLETE   target_resume_hook = d30v_eva_prepare_to_trace; */
-/* OBSOLETE   target_wait_loop_hook = d30v_eva_get_trace_data; */
-/* OBSOLETE  */
-/* OBSOLETE   add_info ("flags", print_flags_command, "Print d30v flags."); */
-/* OBSOLETE  */
-/* OBSOLETE   add_com ("trace", class_support, trace_command, */
-/* OBSOLETE       "Enable tracing of instruction execution."); */
-/* OBSOLETE  */
-/* OBSOLETE   add_com ("untrace", class_support, untrace_command, */
-/* OBSOLETE       "Disable tracing of instruction execution."); */
-/* OBSOLETE  */
-/* OBSOLETE   add_com ("tdisassemble", class_vars, tdisassemble_command, */
-/* OBSOLETE       "Disassemble the trace buffer.\n\ */
-/* OBSOLETE Two optional arguments specify a range of trace buffer entries\n\ */
-/* OBSOLETE as reported by info trace (NOT addresses!)."); */
-/* OBSOLETE  */
-/* OBSOLETE   add_info ("trace", trace_info, */
-/* OBSOLETE        "Display info about the trace data buffer."); */
-/* OBSOLETE  */
-/* OBSOLETE   add_show_from_set (add_set_cmd ("tracedisplay", no_class, */
-/* OBSOLETE                              var_integer, (char *) &trace_display, */
-/* OBSOLETE                         "Set automatic display of trace.\n", &setlist), */
-/* OBSOLETE                 &showlist); */
-/* OBSOLETE   add_show_from_set (add_set_cmd ("tracesource", no_class, */
-/* OBSOLETE                       var_integer, (char *) &default_trace_show_source, */
-/* OBSOLETE                  "Set display of source code with trace.\n", &setlist), */
-/* OBSOLETE                 &showlist); */
-/* OBSOLETE  */
-/* OBSOLETE } */
index bd20184c006ec6905ce66c28fd96439a42a18fd6..aadab6f5b065c4072c8d153b4724bca6b1bf2a4c 100644 (file)
@@ -32,6 +32,8 @@
 #include "serial.h"
 #include "regcache.h"
 
+#include "m68k-tdep.h"
+
 static void dbug_open (char *args, int from_tty);
 
 static void
@@ -57,12 +59,12 @@ dbug_supply_register (char *regname, int regnamelen, char *val, int vallen)
     case 'D':
       if (regname[1] < '0' || regname[1] > '7')
        return;
-      regno = regname[1] - '0' + D0_REGNUM;
+      regno = regname[1] - '0' + M68K_D0_REGNUM;
       break;
     case 'A':
       if (regname[1] < '0' || regname[1] > '7')
        return;
-      regno = regname[1] - '0' + A0_REGNUM;
+      regno = regname[1] - '0' + M68K_A0_REGNUM;
       break;
     default:
       return;
index 4c80ed80f6b030673c62722b03257e67b388f427..39a53ca1b4ce7e22e79358885cbc3e40ea286db9 100644 (file)
@@ -167,36 +167,27 @@ static int has_line_numbers;
 
 /* Complaints about the symbols we have encountered.  */
 
-struct deprecated_complaint lbrac_complaint =
-{"bad block start address patched", 0, 0};
-
-struct deprecated_complaint string_table_offset_complaint =
-{"bad string table offset in symbol %d", 0, 0};
-
-struct deprecated_complaint unknown_symtype_complaint =
-{"unknown symbol type %s", 0, 0};
-
-struct deprecated_complaint unknown_symchar_complaint =
-{"unknown symbol descriptor `%c'", 0, 0};
-
-struct deprecated_complaint lbrac_rbrac_complaint =
-{"block start larger than block end", 0, 0};
-
-struct deprecated_complaint lbrac_unmatched_complaint =
-{"unmatched N_LBRAC before symtab pos %d", 0, 0};
-
-struct deprecated_complaint lbrac_mismatch_complaint =
-{"N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d", 0, 0};
+static void
+unknown_symtype_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints, "unknown symbol type %s", arg1);
+}
 
-struct deprecated_complaint repeated_header_complaint =
-{"\"repeated\" header file %s not previously seen, at symtab pos %d", 0, 0};
+static void
+lbrac_mismatch_complaint (int arg1)
+{
+  complaint (&symfile_complaints,
+            "N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d", arg1);
+}
 
-struct deprecated_complaint unclaimed_bincl_complaint =
-{"N_BINCL %s not in entries for any file, at symtab pos %d", 0, 0};
+static void
+repeated_header_complaint (const char *arg1, int arg2)
+{
+  complaint (&symfile_complaints,
+            "\"repeated\" header file %s not previously seen, at symtab pos %d",
+            arg1, arg2);
+}
 
-struct deprecated_complaint discarding_local_symbols_complaint =
-{"misplaced N_LBRAC entry; discarding local symbols which have no enclosing block", 0, 0};
-\f
 /* find_text_range --- find start and end of loadable code sections
 
    The find_text_range function finds the shortest address range that
@@ -367,7 +358,7 @@ add_old_header_file (char *name, int instance)
        add_this_object_header_file (i);
        return;
       }
-  complain (&repeated_header_complaint, name, symnum);
+  repeated_header_complaint (name, symnum);
 }
 
 /* Add to this file a "new" header file: definitions for its types follow.
@@ -1022,7 +1013,7 @@ find_corresponding_bincl_psymtab (char *name, int instance)
        && STREQ (name, bincl->name))
       return bincl->pst;
 
-  complain (&repeated_header_complaint, name, symnum);
+  repeated_header_complaint (name, symnum);
   return (struct partial_symtab *) 0;
 }
 
@@ -1059,7 +1050,8 @@ set_namestring (struct objfile *objfile, struct internal_nlist nlist)
   if (((unsigned) nlist.n_strx + file_string_table_offset) >=
       DBX_STRINGTAB_SIZE (objfile))
     {
-      complain (&string_table_offset_complaint, symnum);
+      complaint (&symfile_complaints, "bad string table offset in symbol %d",
+                symnum);
       namestring = "<bad string table offset>";
     } 
   else
@@ -1256,6 +1248,14 @@ find_stab_function_addr (char *namestring, char *filename,
 }
 #endif /* SOFUN_ADDRESS_MAYBE_MISSING */
 
+static void
+function_outside_compilation_unit_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints,
+            "function `%s' appears to be defined outside of all compilation units",
+            arg1);
+}
+
 /* Setup partial_symtab's describing each source file for which
    debugging information is available. */
 
@@ -1360,9 +1360,6 @@ read_dbx_symtab (struct objfile *objfile)
 
       switch (nlist.n_type)
        {
-         static struct deprecated_complaint function_outside_compilation_unit = {
-           "function `%s' appears to be defined outside of all compilation units", 0, 0
-         };
          char *p;
          /*
           * Standard, external, non-debugger, symbols
@@ -1613,7 +1610,9 @@ read_dbx_symtab (struct objfile *objfile)
            {
              /* FIXME: we should not get here without a PST to work on.
                 Attempt to recover.  */
-             complain (&unclaimed_bincl_complaint, namestring, symnum);
+             complaint (&symfile_complaints,
+                        "N_BINCL %s not in entries for any file, at symtab pos %d",
+                        namestring, symnum);
              continue;
            }
            add_bincl_to_list (pst, namestring, nlist.n_value);
@@ -1887,7 +1886,7 @@ read_dbx_symtab (struct objfile *objfile)
                char *name = xmalloc (name_len + 1);
                memcpy (name, namestring, name_len);
                name[name_len] = '\0';
-               complain (&function_outside_compilation_unit, name);
+               function_outside_compilation_unit_complaint (name);
                xfree (name);
              }
            nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@@ -1952,7 +1951,7 @@ read_dbx_symtab (struct objfile *objfile)
                char *name = xmalloc (name_len + 1);
                memcpy (name, namestring, name_len);
                name[name_len] = '\0';
-               complain (&function_outside_compilation_unit, name);
+               function_outside_compilation_unit_complaint (name);
                xfree (name);
              }
            nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@@ -2047,7 +2046,8 @@ read_dbx_symtab (struct objfile *objfile)
               time searching to the end of every string looking for
               a backslash.  */
 
-           complain (&unknown_symchar_complaint, p[1]);
+           complaint (&symfile_complaints, "unknown symbol descriptor `%c'",
+                      p[1]);
 
            /* Ignore it; perhaps it is an extension that we don't
               know about.  */
@@ -2161,8 +2161,7 @@ read_dbx_symtab (struct objfile *objfile)
          default:
          /* If we haven't found it yet, ignore it.  It's probably some
             new type we don't know about yet.  */
-         complain (&unknown_symtype_complaint,
-                   local_hex_string (nlist.n_type));
+         unknown_symtype_complaint (local_hex_string (nlist.n_type));
          continue;
        }
     }
@@ -2773,6 +2772,13 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
        {
          /* This N_FUN marks the end of a function.  This closes off the
             current block.  */
+
+         if (context_stack_depth <= 0)
+           {
+             lbrac_mismatch_complaint (symnum);
+             break;
+           }
+
          record_line (current_subfile, 0, function_start_offset + valu);
          within_function = 0;
          new = pop_context ();
@@ -2819,7 +2825,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
       if (!SUN_FIXED_LBRAC_BUG && valu < last_pc_address)
        {
          /* Patch current LBRAC pc value to match last handy pc value */
-         complain (&lbrac_complaint);
+         complaint (&symfile_complaints, "bad block start address patched");
          valu = last_pc_address;
        }
 #endif
@@ -2842,9 +2848,15 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
           N_SO, the linker did not relocate them (sigh).  */
        valu += last_source_start_addr;
 
+      if (context_stack_depth <= 0)
+       {
+         lbrac_mismatch_complaint (symnum);
+         break;
+       }
+
       new = pop_context ();
       if (desc != new->depth)
-       complain (&lbrac_mismatch_complaint, symnum);
+       lbrac_mismatch_complaint (symnum);
 
       /* Some compilers put the variable decls inside of an
          LBRAC/RBRAC block.  This macro should be nonzero if this
@@ -2869,7 +2881,8 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
                 symbols within an LBRAC/RBRAC block; this complaint
                 might also help sort out problems in which
                 VARIABLES_INSIDE_BLOCK is incorrectly defined.  */
-             complain (&discarding_local_symbols_complaint);
+             complaint (&symfile_complaints,
+                        "misplaced N_LBRAC entry; discarding local symbols which have no enclosing block");
            }
          local_symbols = new->locals;
        }
@@ -2889,7 +2902,8 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
                 compilers?  Is this ever harmful?).  */
              if (new->start_addr > valu)
                {
-                 complain (&lbrac_rbrac_complaint);
+                 complaint (&symfile_complaints,
+                            "block start larger than block end");
                  new->start_addr = valu;
                }
              /* Make a block for the local symbols within.  */
@@ -3113,7 +3127,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
     case N_NBBSS:
     case N_NBSTS:
     case N_NBLCS:
-      complain (&unknown_symtype_complaint, local_hex_string (type));
+      unknown_symtype_complaint (local_hex_string (type));
       /* FALLTHROUGH */
 
       /* The following symbol types don't need the address field relocated,
@@ -3225,7 +3239,8 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
 
              if (context_stack_depth > 1)
                {
-                 complain (&lbrac_unmatched_complaint, symnum);
+                 complaint (&symfile_complaints,
+                            "unmatched N_LBRAC before symtab pos %d", symnum);
                  break;
                }
 
index eded2389f7b1ec0f048739c6391d89780f5c7f2f..413c415b4448a92eb6a8884766defed90a79918a 100644 (file)
@@ -572,10 +572,16 @@ extern int source_full_path_of (char *, char **);
 
 extern void mod_path (char *, char **);
 
+extern void add_path (char *, char **, int);
+
 extern void directory_command (char *, int);
 
+extern char *source_path;
+
 extern void init_source_path (void);
 
+extern void init_last_source_visited (void);
+
 extern char *symtab_to_filename (struct symtab *);
 
 /* From exec.c */
@@ -614,10 +620,6 @@ enum lval_type
 
 struct frame_info;
 
-/* From readline (but not in any readline .h files).  */
-
-extern char *tilde_expand (char *);
-
 /* Control types for commands */
 
 enum misc_command_type
index 7f05283d24b9fb5a7491329de3b93f3445c7c1a7..9e3e6b448b370eec066a1a362393d695426ef5f2 100644 (file)
@@ -1,3 +1,42 @@
+2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * agentexpr.texi: Fix typos.
+       * annotate.texi: Likewise.
+       * fdl.texi: Likewise.
+
+2002-12-10  Andrew Cagney  <cagney@redhat.com>
+
+       * gdbint.texinfo (Algorithms): Replace INIT_FRAME_PC with
+       DEPRECATED_INIT_FRAME_PC.
+
+2002-12-01  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbint.texinfo (Target Architecture Definition): Delete
+       PC_IN_CALL_DUMMY.
+
+2002-11-28  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdbint.texinfo (Host Definition): Delete documentation on
+       USE_GENERIC_DUMMY_FRAMES.
+
+2002-11-26  Elena Zannoni  <ezannoni@redhat.com>
+
+        Fix PR gdb/723 and PR gdb/245.
+       * Makefile.in (install-info): Run the install-info command as part
+       of the post install steps only.
+       (uninstall-info): New target.
+       (uninstall): New target.
+
+2002-11-22  Elena Zannoni  <ezannoni@redhat.com>
+
+       * Makefile.in (install): Make install do some real work.
+
+2002-11-19  Andrew Cagney  <ac131313@redhat.com>
+
+       Fix POSIX problem reported by Paul Eggert.
+       * Makefile.in (GDBvn.texi): Use `sed q' instead of `head -1'.
+       Fix PR gdb/527.
+
 2002-10-26  Andrew Cagney  <cagney@redhat.com>
 
        * gdbint.texinfo (Target Architecture Definition): Delete
index ba0031a50bca7c965881f3e8f6c3639805993d9e..b17cce83dad11c99560d0b2a1433553bd6671ef2 100644 (file)
@@ -134,7 +134,7 @@ STABS_DOC_FILES = \
 #### Host, target, and site specific Makefile fragments come in here.
 ###
 
-all install:
+all:
 
 info: $(INFO_DEPS)
 dvi: gdb.dvi gdbint.dvi stabs.dvi refcard.dvi
@@ -156,6 +156,7 @@ install-info: $(INFO_DEPS)
            else : ; fi; \
          done; \
        done
+       $(POST_INSTALL)
        @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
          list='$(INFO_DEPS)'; \
          for file in $$list; do \
@@ -164,6 +165,22 @@ install-info: $(INFO_DEPS)
          done; \
        else : ; fi
 
+uninstall-info:
+       $(PRE_UNINSTALL)
+       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+         ii=yes; \
+       else ii=; fi; \
+       list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         test -z "$$ii" \
+           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
+       done
+       $(NORMAL_UNINSTALL)
+       list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
+       done
+
 install-html: html
        for i in *.html ; do \
                $(INSTALL_DATA) $$i $(htmldir)/$$i ; \
@@ -218,7 +235,7 @@ refcard.ps : refcard.dvi
 
 # File to record current GDB version number (copied from main dir version.in)
 GDBvn.texi : ${gdbdir}/version.in
-       echo "@set GDBVN `head -1 $(srcdir)/../version.in`" > ./GDBvn.new
+       echo "@set GDBVN `sed q $(srcdir)/../version.in`" > ./GDBvn.new
        mv GDBvn.new GDBvn.texi
 
 # Updated atomically
@@ -432,3 +449,6 @@ distclean: clean
 maintainer-clean realclean: distclean
        rm -f GDBvn.texi *.info* *.dvi *.ps *.html *.pdf
 
+install: install-info
+
+uninstall: uninstall-info
index 54186675e280e4af7c86fbbb8dc639085ed04903..0135391bac212a8696a269a70a1f93f3648776e5 100644 (file)
@@ -397,7 +397,7 @@ Thus, an offset of zero denotes the beginning of the expression.
 
 The @var{offset} is stored as a sixteen-bit unsigned value, stored
 immediately following the @code{if_goto} bytecode.  It is always stored
-most signficant byte first, regardless of the target's normal
+most significant byte first, regardless of the target's normal
 endianness.  The offset is not guaranteed to fall at any particular
 alignment within the bytecode stream; thus, on machines where fetching a
 16-bit on an unaligned address raises an exception, you should fetch the
@@ -431,7 +431,7 @@ registers are numbered following GDB's conventions.
 
 The register number @var{n} is encoded as a 16-bit unsigned integer
 immediately following the @code{reg} bytecode.  It is always stored most
-signficant byte first, regardless of the target's normal endianness.
+significant byte first, regardless of the target's normal endianness.
 The register number is not guaranteed to fall at any particular
 alignment within the bytecode stream; thus, on machines where fetching a
 16-bit on an unaligned address raises an exception, you should fetch the
index 59d599b5ff4cf1787dfeb6953e218cdd3d214cc3..fc269243578ae9c9f6adc80ecfaf56a9f9c5d2b3 100644 (file)
@@ -247,17 +247,17 @@ or a repeated element
 @smallexample
 @samp{,} @var{whitespace}         ; @r{omitted for the first element}
 @var{the-value}
-^Z^Zelt-rep @var{number-of-repititions}
+^Z^Zelt-rep @var{number-of-repetitions}
 @var{repetition-string}
 ^Z^Zelt-rep-end
 @end smallexample
 
 In both cases, @var{the-value} is the output for the value of the
 element and @var{whitespace} can contain spaces, tabs, and newlines.  In
-the repeated case, @var{number-of-repititons} is the number of
+the repeated case, @var{number-of-repetitions} is the number of
 consecutive array elements which contain that value, and
 @var{repetition-string} is a string which is designed to convey to the
-user that repitition is being depicted.
+user that repetition is being depicted.
 
 @findex array-section-end
 Once all the array elements have been output, the array annotation is
index f4726b9b149dcbfd2f87cbf263fa3337f8710b81..142a8e1b7176bb2a134b383f64fa6f93a513bb22 100644 (file)
@@ -197,9 +197,9 @@ J. Preserve the network location, if any, given in the Document for
    You may omit a network location for a work that was published at
    least four years before the Document itself, or if the original
    publisher of the version it refers to gives permission.@*
-K. In any section entitled ``Acknowledgements'' or ``Dedications'',
+K. In any section entitled ``Acknowledgments'' or ``Dedications'',
    preserve the section's title, and preserve in the section all the
-   substance and tone of each of the contributor acknowledgements
+   substance and tone of each of the contributor acknowledgments
    and/or dedications given therein.@*
 L. Preserve all the Invariant Sections of the Document,
    unaltered in their text and in their titles.  Section numbers
@@ -257,7 +257,7 @@ Invariant Sections in the license notice of the combined work.
 
 In the combination, you must combine any sections entitled ``History''
 in the various original documents, forming one section entitled
-``History''; likewise combine any sections entitled ``Acknowledgements'',
+``History''; likewise combine any sections entitled ``Acknowledgments'',
 and any sections entitled ``Dedications.''  You must delete all sections
 entitled ``Endorsements.''
 @sp 1
index 0cdbc053376e3364979d79165a85916e7fff5a5a..26fd5236c116c201c80c4d8a1e9250c89ab06405 100644 (file)
@@ -253,9 +253,9 @@ your frames are nonstandard.)
 
 @cindex frame chain
 Given a @value{GDBN} frame, define @code{FRAME_CHAIN} to determine the
-address of the calling function's frame.  This will be used to create
-a new @value{GDBN} frame struct, and then @code{INIT_EXTRA_FRAME_INFO}
-and @code{INIT_FRAME_PC} will be called for the new frame.
+address of the calling function's frame.  This will be used to create a
+new @value{GDBN} frame struct, and then @code{INIT_EXTRA_FRAME_INFO} and
+@code{DEPRECATED_INIT_FRAME_PC} will be called for the new frame.
 
 @section Breakpoint Handling
 
@@ -2245,11 +2245,6 @@ of functions to indicate that they never return.  The default is already
 set correctly if compiling with GCC.  This will almost never need to be
 defined.
 
-@item USE_GENERIC_DUMMY_FRAMES
-@cindex generic dummy frames
-Define this to 1 if the target is using the generic inferior function
-call code.  See @code{blockframe.c} for more information.
-
 @item USE_MMALLOC
 @findex mmalloc
 @value{GDBN} will use the @code{mmalloc} library for memory allocation
@@ -3458,8 +3453,8 @@ If additional information about the frame is required this should be
 stored in @code{frame->extra_info}.  Space for @code{frame->extra_info}
 is allocated using @code{frame_obstack_alloc}.
 
-@item INIT_FRAME_PC (@var{fromleaf}, @var{prev})
-@findex INIT_FRAME_PC
+@item DEPRECATED_INIT_FRAME_PC (@var{fromleaf}, @var{prev})
+@findex DEPRECATED_INIT_FRAME_PC
 This is a C statement that sets the pc of the frame pointed to by
 @var{prev}.  [By default...]
 
@@ -3680,10 +3675,6 @@ them.
 @findex PCC_SOL_BROKEN
 (Used only in the Convex target.)
 
-@item PC_IN_CALL_DUMMY
-@findex PC_IN_CALL_DUMMY
-See @file{inferior.h}.
-
 @item PC_IN_SIGTRAMP (@var{pc}, @var{name})
 @findex PC_IN_SIGTRAMP
 @cindex sigtramp
index 6e96d78f0c0bc12ba519d458acd000497aed29b4..49e36899111418c7c9a23f1e2d622b84b537d921 100644 (file)
@@ -172,12 +172,14 @@ convert_floatformat_to_doublest (const struct floatformat *fmt,
 
   special_exponent = exponent == 0 || exponent == fmt->exp_nan;
 
-/* Don't bias NaNs. Use minimum exponent for denorms. For simplicity,
-   we don't check for zero as the exponent doesn't matter. */
+  /* Don't bias NaNs. Use minimum exponent for denorms. For simplicity,
+     we don't check for zero as the exponent doesn't matter.  Note the cast
+     to int; exp_bias is unsigned, so it's important to make sure the
+     operation is done in signed arithmetic.  */
   if (!special_exponent)
     exponent -= fmt->exp_bias;
   else if (exponent == 0)
-    exponent = 1 - fmt->exp_bias;
+    exponent = 1 - (int) fmt->exp_bias;
 
   /* Build the result algebraically.  Might go infinite, underflow, etc;
      who cares. */
diff --git a/gdb/dst.h b/gdb/dst.h
deleted file mode 100644 (file)
index 89ad9ec..0000000
--- a/gdb/dst.h
+++ /dev/null
@@ -1,1671 +0,0 @@
-// OBSOLETE /* <apollo/dst.h> */
-// OBSOLETE /* Apollo object module DST (debug symbol table) description */
-// OBSOLETE 
-// OBSOLETE #ifndef apollo_dst_h
-// OBSOLETE #define apollo_dst_h
-// OBSOLETE 
-// OBSOLETE #if defined(apollo) && !defined(__GNUC__)
-// OBSOLETE #define ALIGNED1  __attribute( (aligned(1)) )
-// OBSOLETE #else
-// OBSOLETE /* Remove attribute directives from non-Apollo code: */
-// OBSOLETE #define ALIGNED1           /* nil */
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Identification of this version of the debug symbol table.  Producers of the
-// OBSOLETE    debug symbol table must write these values into the version number field of
-// OBSOLETE    the compilation unit record in .blocks .
-// OBSOLETE  */
-// OBSOLETE #define dst_version_major    1
-// OBSOLETE #define dst_version_minor    3
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    ** Enumeration of debug record types appearing in .blocks and .symbols ...
-// OBSOLETE  */
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_typ_pad,           /*  0 */
-// OBSOLETE     dst_typ_comp_unit,             /*  1 */
-// OBSOLETE     dst_typ_section_tab,   /*  2 */
-// OBSOLETE     dst_typ_file_tab,              /*  3 */
-// OBSOLETE     dst_typ_block,         /*  4 */
-// OBSOLETE     dst_typ_5,
-// OBSOLETE     dst_typ_var,
-// OBSOLETE     dst_typ_pointer,               /*  7 */
-// OBSOLETE     dst_typ_array,         /*  8 */
-// OBSOLETE     dst_typ_subrange,              /*  9 */
-// OBSOLETE     dst_typ_set,           /* 10 */
-// OBSOLETE     dst_typ_implicit_enum, /* 11 */
-// OBSOLETE     dst_typ_explicit_enum, /* 12 */
-// OBSOLETE     dst_typ_short_rec,             /* 13 */
-// OBSOLETE     dst_typ_old_record,
-// OBSOLETE     dst_typ_short_union,   /* 15 */
-// OBSOLETE     dst_typ_old_union,
-// OBSOLETE     dst_typ_file,          /* 17 */
-// OBSOLETE     dst_typ_offset,                /* 18 */
-// OBSOLETE     dst_typ_alias,         /* 19 */
-// OBSOLETE     dst_typ_signature,             /* 20 */
-// OBSOLETE     dst_typ_21,
-// OBSOLETE     dst_typ_old_label,             /* 22 */
-// OBSOLETE     dst_typ_scope,         /* 23 */
-// OBSOLETE     dst_typ_end_scope,             /* 24 */
-// OBSOLETE     dst_typ_25,
-// OBSOLETE     dst_typ_26,
-// OBSOLETE     dst_typ_string_tab,            /* 27 */
-// OBSOLETE     dst_typ_global_name_tab,       /* 28 */
-// OBSOLETE     dst_typ_forward,               /* 29 */
-// OBSOLETE     dst_typ_aux_size,              /* 30 */
-// OBSOLETE     dst_typ_aux_align,             /* 31 */
-// OBSOLETE     dst_typ_aux_field_size,        /* 32 */
-// OBSOLETE     dst_typ_aux_field_off, /* 33 */
-// OBSOLETE     dst_typ_aux_field_align,       /* 34 */
-// OBSOLETE     dst_typ_aux_qual,              /* 35 */
-// OBSOLETE     dst_typ_aux_var_bound, /* 36 */
-// OBSOLETE     dst_typ_extension,             /* 37 */
-// OBSOLETE     dst_typ_string,                /* 38 */
-// OBSOLETE     dst_typ_old_entry,
-// OBSOLETE     dst_typ_const,         /* 40 */
-// OBSOLETE     dst_typ_reference,             /* 41 */
-// OBSOLETE     dst_typ_record,                /* 42 */
-// OBSOLETE     dst_typ_union,         /* 43 */
-// OBSOLETE     dst_typ_aux_type_deriv,        /* 44 */
-// OBSOLETE     dst_typ_locpool,               /* 45 */
-// OBSOLETE     dst_typ_variable,              /* 46 */
-// OBSOLETE     dst_typ_label,         /* 47 */
-// OBSOLETE     dst_typ_entry,         /* 48 */
-// OBSOLETE     dst_typ_aux_lifetime,  /* 49 */
-// OBSOLETE     dst_typ_aux_ptr_base,  /* 50 */
-// OBSOLETE     dst_typ_aux_src_range, /* 51 */
-// OBSOLETE     dst_typ_aux_reg_val,   /* 52 */
-// OBSOLETE     dst_typ_aux_unit_names,        /* 53 */
-// OBSOLETE     dst_typ_aux_sect_info, /* 54 */
-// OBSOLETE     dst_typ_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_rec_type_t;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    ** Dummy bounds for variably dimensioned arrays:
-// OBSOLETE  */
-// OBSOLETE #define dst_dummy_array_size  100
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    ** Reference to another item in the symbol table.
-// OBSOLETE    **
-// OBSOLETE    ** The value of a dst_rel_offset_t is the relative offset from the start of the
-// OBSOLETE    ** referencing record to the start of the referenced record, string, etc. 
-// OBSOLETE    **
-// OBSOLETE    ** The value of a NIL dst_rel_offset_t is zero.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef long dst_rel_offset_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* FIXME: Here and many places we make assumptions about sizes of host
-// OBSOLETE    data types, structure layout, etc.  Only needs to be fixed if we care
-// OBSOLETE    about cross-debugging, though.  */
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    ** Section-relative reference. 
-// OBSOLETE    **
-// OBSOLETE    ** The section index field is an index into the local compilation unit's
-// OBSOLETE    ** section table (see dst_rec_section_tab_t)--NOT into the object module
-// OBSOLETE    ** section table!
-// OBSOLETE    **
-// OBSOLETE    ** The sect_offset field is the offset in bytes into the section.
-// OBSOLETE    **
-// OBSOLETE    ** A NIL dst_sect_ref_t has a sect_index field of zero.  Indexes originate
-// OBSOLETE    ** at one.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short sect_index;
-// OBSOLETE     unsigned long sect_offset ALIGNED1;
-// OBSOLETE   }
-// OBSOLETE dst_sect_ref_t;
-// OBSOLETE 
-// OBSOLETE #define dst_sect_index_nil    0
-// OBSOLETE #define dst_sect_index_origin 1
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    ** Source location descriptor.
-// OBSOLETE    **
-// OBSOLETE    ** The file_index field is an index into the local compilation unit's
-// OBSOLETE    ** file table (see dst_rec_file_tab_t).
-// OBSOLETE    **
-// OBSOLETE    ** A NIL dst_src_loc_t has a file_index field of zero.  Indexes originate
-// OBSOLETE    ** at one.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     boolean reserved:1;            /* reserved for future use */
-// OBSOLETE     int file_index:11;             /* index into .blocks source file list */
-// OBSOLETE     int line_number:20;            /* source line number */
-// OBSOLETE   }
-// OBSOLETE dst_src_loc_t;
-// OBSOLETE 
-// OBSOLETE #define dst_file_index_nil    0
-// OBSOLETE #define dst_file_index_origin 1
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    ** Standard (primitive) type codes.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_non_std_type,
-// OBSOLETE     dst_int8_type,         /* 8 bit integer */
-// OBSOLETE     dst_int16_type,                /* 16 bit integer */
-// OBSOLETE     dst_int32_type,                /* 32 bit integer */
-// OBSOLETE     dst_uint8_type,                /* 8 bit unsigned integer */
-// OBSOLETE     dst_uint16_type,               /* 16 bit unsigned integer */
-// OBSOLETE     dst_uint32_type,               /* 32 bit unsigned integer */
-// OBSOLETE     dst_real32_type,               /* single precision ieee floatining point */
-// OBSOLETE     dst_real64_type,               /* double precision ieee floatining point */
-// OBSOLETE     dst_complex_type,              /* single precision complex */
-// OBSOLETE     dst_dcomplex_type,             /* double precision complex */
-// OBSOLETE     dst_bool8_type,                /* boolean =logical*1 */
-// OBSOLETE     dst_bool16_type,               /* boolean =logical*2 */
-// OBSOLETE     dst_bool32_type,               /* boolean =logical*4 */
-// OBSOLETE     dst_char_type,         /* 8 bit ascii character */
-// OBSOLETE     dst_string_type,               /* string of 8 bit ascii characters */
-// OBSOLETE     dst_ptr_type,          /* univ_pointer */
-// OBSOLETE     dst_set_type,          /* generic 256 bit set */
-// OBSOLETE     dst_proc_type,         /* generic procedure (signature not specified) */
-// OBSOLETE     dst_func_type,         /* generic function (signature not specified) */
-// OBSOLETE     dst_void_type,         /* c void type */
-// OBSOLETE     dst_uchar_type,                /* c unsigned char */
-// OBSOLETE     dst_std_type_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_std_type_t;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    ** General data type descriptor
-// OBSOLETE    **
-// OBSOLETE    ** If the user_defined_type bit is clear, then the type is a standard type, and
-// OBSOLETE    ** the remaining bits contain the dst_std_type_t of the type.  If the bit is
-// OBSOLETE    ** set, then the type is defined in a separate dst record, which is referenced
-// OBSOLETE    ** by the remaining bits as a dst_rel_offset_t.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef union
-// OBSOLETE   {
-// OBSOLETE     struct
-// OBSOLETE       {
-// OBSOLETE    boolean user_defined_type:1;    /* tag field */
-// OBSOLETE    int must_be_zero:23;    /* 23 bits of pad */
-// OBSOLETE    dst_std_type_t dtc:8;   /* 8 bit primitive data */
-// OBSOLETE       }
-// OBSOLETE     std_type;
-// OBSOLETE 
-// OBSOLETE     struct
-// OBSOLETE       {
-// OBSOLETE    boolean user_defined_type:1;    /* tag field */
-// OBSOLETE    int doffset:31;         /* offset to type record */
-// OBSOLETE       }
-// OBSOLETE     user_type;
-// OBSOLETE   }
-// OBSOLETE dst_type_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE /* The user_type.doffset field is a 31-bit signed value.  Some versions of C
-// OBSOLETE    do not support signed bit fields.  The following macro will extract that
-// OBSOLETE    field as a signed value:
-// OBSOLETE  */
-// OBSOLETE #define dst_user_type_offset(type_rec) \
-// OBSOLETE     ( ((int) ((type_rec).user_type.doffset << 1)) >> 1 )
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*================================================*/
-// OBSOLETE /*========== RECORDS IN .blocks SECTION ==========*/
-// OBSOLETE /*================================================*/
-// OBSOLETE 
-// OBSOLETE /*-----------------------
-// OBSOLETE   COMPILATION UNIT record 
-// OBSOLETE   -----------------------
-// OBSOLETE   This must be the first record in each .blocks section.
-// OBSOLETE   Provides a set of information describing the output of a single compilation
-// OBSOLETE   and pointers to additional information for the compilation unit.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_pc_code_locs,              /* ranges in loc strings are pc ranges */
-// OBSOLETE     dst_comp_unit_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_comp_unit_flag_t;
-// OBSOLETE 
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_lang_unk,          /* unknown language */
-// OBSOLETE     dst_lang_pas,          /* Pascal */
-// OBSOLETE     dst_lang_ftn,          /* FORTRAN */
-// OBSOLETE     dst_lang_c,                    /* C */
-// OBSOLETE     dst_lang_mod2,         /* Modula-2 */
-// OBSOLETE     dst_lang_asm_m68k,             /* 68K assembly language */
-// OBSOLETE     dst_lang_asm_a88k,             /* AT assembly language */
-// OBSOLETE     dst_lang_ada,          /* Ada */
-// OBSOLETE     dst_lang_cxx,          /* C++ */
-// OBSOLETE     dst_lang_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_lang_type_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     struct
-// OBSOLETE       {
-// OBSOLETE    unsigned char major_part;       /* = dst_version_major */
-// OBSOLETE    unsigned char minor_part;       /* = dst_version_minor */
-// OBSOLETE       }
-// OBSOLETE     version;                       /* version of dst */
-// OBSOLETE     unsigned short flags;  /* mask of dst_comp_unit_flag_t */
-// OBSOLETE     unsigned short lang_type;      /* source language */
-// OBSOLETE     unsigned short number_of_blocks;       /* number of blocks records */
-// OBSOLETE     dst_rel_offset_t root_block_offset;            /* offset to root block (module?) */
-// OBSOLETE     dst_rel_offset_t section_table /* offset to section table record */ ;
-// OBSOLETE     dst_rel_offset_t file_table;   /* offset to file table record */
-// OBSOLETE     unsigned long data_size;       /* total size of .blocks data */
-// OBSOLETE   }
-// OBSOLETE dst_rec_comp_unit_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*--------------------
-// OBSOLETE   SECTION TABLE record
-// OBSOLETE   --------------------
-// OBSOLETE   There must be one section table associated with each compilation unit.
-// OBSOLETE   Other debug records refer to sections via their index in this table.  The
-// OBSOLETE   section base addresses in the table are virtual addresses of the sections,
-// OBSOLETE   relocated by the linker.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short number_of_sections;     /* size of array: */
-// OBSOLETE     unsigned long section_base[dst_dummy_array_size] ALIGNED1;
-// OBSOLETE   }
-// OBSOLETE dst_rec_section_tab_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------
-// OBSOLETE   FILE TABLE record
-// OBSOLETE   -----------------
-// OBSOLETE   There must be one file table associated with each compilation unit describing
-// OBSOLETE   the source (and include) files used by each compilation unit.  Other debug 
-// OBSOLETE   records refer to files via their index in this table.  The first entry is the
-// OBSOLETE   primary source file.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     long dtm;                      /* time last modified (time_$clock_t) */
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string for source file */
-// OBSOLETE   }
-// OBSOLETE dst_file_desc_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short number_of_files;        /* size of array: */
-// OBSOLETE     dst_file_desc_t files[dst_dummy_array_size] ALIGNED1;
-// OBSOLETE   }
-// OBSOLETE dst_rec_file_tab_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------
-// OBSOLETE   NAME TABLE record
-// OBSOLETE   -----------------
-// OBSOLETE   A name table record may appear as an auxiliary record to the file table,
-// OBSOLETE   providing additional qualification of the file indexes for languages that 
-// OBSOLETE   need it (i.e. Ada).  Name table entries parallel file table entries of the
-// OBSOLETE   same file index.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short number_of_names;        /* size of array: */
-// OBSOLETE     dst_rel_offset_t names[dst_dummy_array_size] ALIGNED1;
-// OBSOLETE   }
-// OBSOLETE dst_rec_name_tab_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*--------------
-// OBSOLETE   BLOCK record
-// OBSOLETE   --------------
-// OBSOLETE   Describes a lexical program block--a procedure, function, module, etc.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE /* Block types.  These may be used in any way desired by the compiler writers. 
-// OBSOLETE    The debugger uses them only to give a description to the user of the type of
-// OBSOLETE    a block.  The debugger makes no other assumptions about the meaning of any
-// OBSOLETE    of these.  For example, the fact that a block is executable (e.g., program)
-// OBSOLETE    or not (e.g., module) is expressed in block attributes (see below), not
-// OBSOLETE    guessed at from the block type.
-// OBSOLETE  */
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_block_module,              /* some pascal = modula = ada types */
-// OBSOLETE     dst_block_program,
-// OBSOLETE     dst_block_procedure,
-// OBSOLETE     dst_block_function,            /* C function */
-// OBSOLETE     dst_block_subroutine,  /* some fortran block types */
-// OBSOLETE     dst_block_block_data,
-// OBSOLETE     dst_block_stmt_function,
-// OBSOLETE     dst_block_package,             /* a few particular to Ada */
-// OBSOLETE     dst_block_package_body,
-// OBSOLETE     dst_block_subunit,
-// OBSOLETE     dst_block_task,
-// OBSOLETE     dst_block_file,                /* a C outer scope? */
-// OBSOLETE     dst_block_class,               /* C++ or Simula */
-// OBSOLETE     dst_block_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_block_type_t;
-// OBSOLETE 
-// OBSOLETE /* Block attributes.  This is the information used by the debugger to represent
-// OBSOLETE    the semantics of blocks.
-// OBSOLETE  */
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_block_main_entry,  /* the block's entry point is a main entry into
-// OBSOLETE                               the compilation unit */
-// OBSOLETE     dst_block_executable,  /* the block has an entry point */
-// OBSOLETE     dst_block_attr_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_block_attr_t;
-// OBSOLETE 
-// OBSOLETE /* Code range.  Each block has associated with it one or more code ranges. An
-// OBSOLETE    individual code range is identified by a range of source (possibly nil) and
-// OBSOLETE    a range of executable code.  For example, a block which has its executable
-// OBSOLETE    code spread over multiple sections will have one code range per section.
-// OBSOLETE  */
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned long code_size;       /* size of executable code (in bytes ) */
-// OBSOLETE     dst_sect_ref_t code_start;     /* starting address of executable code */
-// OBSOLETE     dst_sect_ref_t lines_start;    /* start of line number tables */
-// OBSOLETE   }
-// OBSOLETE dst_code_range_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_block_type_t block_type:8;
-// OBSOLETE     unsigned short flags:8;        /* mask of dst_block_attr_t flags */
-// OBSOLETE     dst_rel_offset_t sibling_block_off;            /* offset to next sibling block */
-// OBSOLETE     dst_rel_offset_t child_block_off;      /* offset to first contained block */
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to block name string */
-// OBSOLETE     dst_sect_ref_t symbols_start;  /* start of debug symbols  */
-// OBSOLETE     unsigned short n_of_code_ranges;       /* size of array... */
-// OBSOLETE     dst_code_range_t code_ranges[dst_dummy_array_size] ALIGNED1;
-// OBSOLETE   }
-// OBSOLETE dst_rec_block_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*--------------------------
-// OBSOLETE   AUX SECT INFO TABLE record
-// OBSOLETE   --------------------------
-// OBSOLETE   Appears as an auxiliary to a block record.  Expands code range information
-// OBSOLETE   by providing references into additional, language-dependent sections for 
-// OBSOLETE   information related to specific code ranges of the block.  Sect info table
-// OBSOLETE   entries parallel code range array entries of the same index.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned char tag;             /* currently can only be zero */
-// OBSOLETE     unsigned char number_of_refs;  /* size of array: */
-// OBSOLETE     dst_sect_ref_t refs[dst_dummy_array_size] ALIGNED1;
-// OBSOLETE   }
-// OBSOLETE dst_rec_sect_info_tab_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE /*=================================================*/
-// OBSOLETE /*========== RECORDS IN .symbols SECTION ==========*/
-// OBSOLETE /*=================================================*/
-// OBSOLETE 
-// OBSOLETE /*-----------------
-// OBSOLETE   CONSTANT record
-// OBSOLETE   -----------------
-// OBSOLETE   Describes a symbolic constant.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     float r;                       /* real part */
-// OBSOLETE     float i;                       /* imaginary part */
-// OBSOLETE   }
-// OBSOLETE dst_complex_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     double dr;                     /* real part */
-// OBSOLETE     double di;                     /* imaginary part */
-// OBSOLETE   }
-// OBSOLETE dst_double_complex_t;
-// OBSOLETE 
-// OBSOLETE /* The following record provides a way of describing constant values with 
-// OBSOLETE    non-standard type and no limit on size. 
-// OBSOLETE  */
-// OBSOLETE typedef union
-// OBSOLETE   {
-// OBSOLETE     char char_data[dst_dummy_array_size];
-// OBSOLETE     short int_data[dst_dummy_array_size];
-// OBSOLETE     long long_data[dst_dummy_array_size];
-// OBSOLETE   }
-// OBSOLETE dst_big_kon_t;
-// OBSOLETE 
-// OBSOLETE /* Representation of the value of a general constant.
-// OBSOLETE  */
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short length; /* size of constant value (bytes) */
-// OBSOLETE 
-// OBSOLETE     union
-// OBSOLETE       {
-// OBSOLETE    unsigned short kon_int8;
-// OBSOLETE    short kon_int16;
-// OBSOLETE    long kon_int32 ALIGNED1;
-// OBSOLETE    float kon_real ALIGNED1;
-// OBSOLETE    double kon_dbl ALIGNED1;
-// OBSOLETE    dst_complex_t kon_cplx ALIGNED1;
-// OBSOLETE    dst_double_complex_t kon_dcplx ALIGNED1;
-// OBSOLETE    char kon_char;
-// OBSOLETE    dst_big_kon_t kon ALIGNED1;
-// OBSOLETE       }
-// OBSOLETE     val;                   /* value data of constant */
-// OBSOLETE   }
-// OBSOLETE dst_const_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of const definition */
-// OBSOLETE     dst_type_t type_desc;  /* type of this (manifest) constant */
-// OBSOLETE     dst_const_t value;
-// OBSOLETE   }
-// OBSOLETE dst_rec_const_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE /*----------------
-// OBSOLETE   VARIABLE record
-// OBSOLETE   ----------------
-// OBSOLETE   Describes a program variable.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE /* Variable attributes.  These define certain variable semantics to the
-// OBSOLETE    debugger.
-// OBSOLETE  */
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_var_attr_read_only,        /* is read-only (a program literal) */
-// OBSOLETE     dst_var_attr_volatile, /* same as compiler's VOLATILE attribute */
-// OBSOLETE     dst_var_attr_global,   /* is a global definition or reference */
-// OBSOLETE     dst_var_attr_compiler_gen,     /* is compiler-generated */
-// OBSOLETE     dst_var_attr_static,   /* has static location */
-// OBSOLETE     dst_var_attr_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_var_attr_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_rel_offset_t loffset;      /* offset to loc string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of variable definition */
-// OBSOLETE     dst_type_t type_desc;  /* type descriptor */
-// OBSOLETE     unsigned short attributes;     /* mask of dst_var_attr_t flags */
-// OBSOLETE   }
-// OBSOLETE dst_rec_variable_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*----------------
-// OBSOLETE   old VAR record
-// OBSOLETE  -----------------
-// OBSOLETE  Used by older compilers to describe a variable
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_var_loc_unknown,   /* Actually defined as "unknown" */
-// OBSOLETE     dst_var_loc_abs,               /* Absolute address */
-// OBSOLETE     dst_var_loc_sect_off,  /* Absolute address as a section offset */
-// OBSOLETE     dst_var_loc_ind_sect_off,      /* An indexed section offset ???? */
-// OBSOLETE     dst_var_loc_reg,               /* register */
-// OBSOLETE     dst_var_loc_reg_rel,   /* register relative - usually fp */
-// OBSOLETE     dst_var_loc_ind_reg_rel,       /* Indexed register relative */
-// OBSOLETE     dst_var_loc_ftn_ptr_based,     /* Fortran pointer based */
-// OBSOLETE     dst_var_loc_pc_rel,            /* PC relative. Really. */
-// OBSOLETE     dst_var_loc_external,  /* External */
-// OBSOLETE     dst_var_loc_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_var_loc_t;
-// OBSOLETE 
-// OBSOLETE /* Locations come in two versions. The short, and the long. The difference
-// OBSOLETE  * between the short and the long is the addition of a statement number
-// OBSOLETE  * field to the start andend of the range of the long, and and unkown
-// OBSOLETE  * purpose field in the middle. Also, loc_type and loc_index aren't
-// OBSOLETE  * bitfields in the long version.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short loc_type:4;
-// OBSOLETE     unsigned short loc_index:12;
-// OBSOLETE     long location;
-// OBSOLETE     short start_line;              /* start_line and end_line? */
-// OBSOLETE     short end_line;                /* I'm guessing here.       */
-// OBSOLETE   }
-// OBSOLETE dst_var_loc_short_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short loc_type;
-// OBSOLETE     unsigned short loc_index;
-// OBSOLETE     long location;
-// OBSOLETE     short unknown;         /* Always 0003 or 3b3c. Why? */
-// OBSOLETE     short start_statement;
-// OBSOLETE     short start_line;
-// OBSOLETE     short end_statement;
-// OBSOLETE     short end_line;
-// OBSOLETE   }
-// OBSOLETE dst_var_loc_long_t;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of description */
-// OBSOLETE     dst_type_t type_desc;  /* Type description */
-// OBSOLETE     unsigned short attributes;     /* mask of dst_var_attr_t flags */
-// OBSOLETE     unsigned short no_of_locs:15;  /* Number of locations */
-// OBSOLETE     unsigned short short_locs:1;   /* True if short locations. */
-// OBSOLETE     union
-// OBSOLETE       {
-// OBSOLETE    dst_var_loc_short_t shorts[dst_dummy_array_size];
-// OBSOLETE    dst_var_loc_long_t longs[dst_dummy_array_size];
-// OBSOLETE       }
-// OBSOLETE     locs;
-// OBSOLETE   }
-// OBSOLETE dst_rec_var_t;
-// OBSOLETE 
-// OBSOLETE /*----------------
-// OBSOLETE   old LABEL record
-// OBSOLETE  -----------------
-// OBSOLETE  Used by older compilers to describe a label
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of description */
-// OBSOLETE     char location[12];             /* location string */
-// OBSOLETE   }
-// OBSOLETE dst_rec_old_label_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE /*----------------
-// OBSOLETE   POINTER record
-// OBSOLETE   ----------------
-// OBSOLETE   Describes a pointer type.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to the name string for this type */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of definition */
-// OBSOLETE     dst_type_t type_desc;  /* base type of this pointer */
-// OBSOLETE   }
-// OBSOLETE dst_rec_pointer_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-------------
-// OBSOLETE   ARRAY record
-// OBSOLETE   -------------
-// OBSOLETE   Describes an array type.
-// OBSOLETE 
-// OBSOLETE   Multidimensional arrays are described with a number of dst_rec_array_t 
-// OBSOLETE   records, one per array dimension, each linked to the next through the
-// OBSOLETE   elem_type_desc.doffset field.  Each record must have its multi_dim flag
-// OBSOLETE   set.
-// OBSOLETE 
-// OBSOLETE   If column_major is true (as with FORTRAN arrays) then the last array bound in
-// OBSOLETE   the declaration is the first array index in memory, which is the opposite of
-// OBSOLETE   the usual case (as with Pascal and C arrays).
-// OBSOLETE 
-// OBSOLETE   Variable array bounds are described by auxiliary records; if aux_var_bound
-// OBSOLETE   records are present, the lo_bound and hi_bound fields of this record are
-// OBSOLETE   ignored by the debugger.
-// OBSOLETE 
-// OBSOLETE   span_comp identifies one of the language-dependent ways in which the distance
-// OBSOLETE   between successive array elements (span) is calculated.  
-// OBSOLETE      dst_use_span_field    -- the span is the value of span field.
-// OBSOLETE      dst_compute_from_prev -- the span is the size of the previous dimension.
-// OBSOLETE      dst_compute_from_next -- the span is the size of the next dimension.
-// OBSOLETE   In the latter two cases, the span field contains an amount of padding to add
-// OBSOLETE   to the size of the appropriate dimension to calculate the span.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_use_span_field,
-// OBSOLETE     dst_compute_from_prev,
-// OBSOLETE     dst_compute_from_next,
-// OBSOLETE     dst_span_comp_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_span_comp_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of definition */
-// OBSOLETE     dst_type_t elem_type_desc;     /* array element type */
-// OBSOLETE     dst_type_t indx_type_desc;     /* array index type */
-// OBSOLETE     long lo_bound;         /* lower bound of index */
-// OBSOLETE     long hi_bound;         /* upper bound of index */
-// OBSOLETE     unsigned long span;            /* see above */
-// OBSOLETE     unsigned long size;            /* total array size (bytes) */
-// OBSOLETE     boolean multi_dim:1;
-// OBSOLETE     boolean is_packed:1;   /* true if packed array */
-// OBSOLETE     boolean is_signed:1;   /* true if packed elements are signed */
-// OBSOLETE     dst_span_comp_t span_comp:2;   /* how to compute span */
-// OBSOLETE     boolean column_major:1;
-// OBSOLETE     unsigned short reserved:2;     /* must be zero */
-// OBSOLETE     unsigned short elem_size:8;    /* element size if packed (bits) */
-// OBSOLETE   }
-// OBSOLETE dst_rec_array_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------
-// OBSOLETE   SUBRANGE record
-// OBSOLETE   -----------------
-// OBSOLETE   Describes a subrange type.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE /* Variable subrange bounds are described by auxiliary records; if aux_var_bound
-// OBSOLETE    records are present, the lo_bound and hi_bound fields of this record are
-// OBSOLETE    ignored by the debugger.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of subrange definition */
-// OBSOLETE     dst_type_t type_desc;  /* parent type */
-// OBSOLETE     long lo_bound;         /* lower bound of subrange */
-// OBSOLETE     long hi_bound;         /* upper bound of subrange */
-// OBSOLETE     unsigned short size;   /* storage size (bytes) */
-// OBSOLETE   }
-// OBSOLETE dst_rec_subrange_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*---------------
-// OBSOLETE   STRING record 
-// OBSOLETE   ---------------
-// OBSOLETE   Describes a string type.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE /* Variable subrange bounds are described by auxiliary records; if aux_var_bound
-// OBSOLETE    records are present, the lo_bound and hi_bound fields of this record are
-// OBSOLETE    ignored by the debugger.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of string definition */
-// OBSOLETE     dst_type_t elem_type_desc;     /* element type */
-// OBSOLETE     dst_type_t indx_type_desc;     /* index type */
-// OBSOLETE     long lo_bound;         /* lower bound */
-// OBSOLETE     long hi_bound;         /* upper bound */
-// OBSOLETE     unsigned long size;            /* total string size (bytes) if fixed */
-// OBSOLETE   }
-// OBSOLETE dst_rec_string_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*---------------
-// OBSOLETE   SET record 
-// OBSOLETE   ---------------
-// OBSOLETE   Describes a set type.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of definition */
-// OBSOLETE     dst_type_t type_desc;  /* element type */
-// OBSOLETE     unsigned short nbits;  /* number of bits in set */
-// OBSOLETE     unsigned short size;   /* storage size (bytes) */
-// OBSOLETE   }
-// OBSOLETE dst_rec_set_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------------------
-// OBSOLETE   IMPLICIT ENUMERATION record 
-// OBSOLETE   -----------------------------
-// OBSOLETE   Describes an enumeration type with implicit element values = 0, 1, 2, ...
-// OBSOLETE   (Pascal-style).
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of definition */
-// OBSOLETE     unsigned short nelems; /* number of elements in enumeration */
-// OBSOLETE     unsigned short size;   /* storage size (bytes) */
-// OBSOLETE     /* offsets to name strings of elements 0, 1, 2, ... */
-// OBSOLETE     dst_rel_offset_t elem_noffsets[dst_dummy_array_size];
-// OBSOLETE   }
-// OBSOLETE dst_rec_implicit_enum_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------------------
-// OBSOLETE   EXPLICIT ENUMERATION record 
-// OBSOLETE   -----------------------------
-// OBSOLETE   Describes an enumeration type with explicitly assigned element values
-// OBSOLETE   (C-style).
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to element name string */
-// OBSOLETE     long value;                    /* element value */
-// OBSOLETE   }
-// OBSOLETE dst_enum_elem_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of definition */
-// OBSOLETE     unsigned short nelems; /* number of elements in enumeration */
-// OBSOLETE     unsigned short size;   /* storage size (bytes) */
-// OBSOLETE     /* name/value pairs, one describing each enumeration value: */
-// OBSOLETE     dst_enum_elem_t elems[dst_dummy_array_size];
-// OBSOLETE   }
-// OBSOLETE dst_rec_explicit_enum_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------------
-// OBSOLETE   RECORD / UNION record 
-// OBSOLETE   -----------------------
-// OBSOLETE   Describes a record (struct) or union.
-// OBSOLETE 
-// OBSOLETE   If the record is larger than 2**16 bytes then an attached aux record
-// OBSOLETE   specifies its size.  Also, if the record is stored in short form then
-// OBSOLETE   attached records specify field offsets larger than 2**16 bytes.
-// OBSOLETE 
-// OBSOLETE   Whether the fields[] array or sfields[] array is used is selected by
-// OBSOLETE   the dst_rec_type_t of the overall dst record.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    Record field descriptor, short form.  This form handles only fields which
-// OBSOLETE    are an even number of bytes long, located some number of bytes from the
-// OBSOLETE    start of the record.
-// OBSOLETE  */
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to field name string */
-// OBSOLETE     dst_type_t type_desc;  /* field type */
-// OBSOLETE     unsigned short foffset;        /* field offset from start of record (bytes) */
-// OBSOLETE   }
-// OBSOLETE dst_short_field_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_type_t type_desc;  /* field type */
-// OBSOLETE     unsigned short foffset;        /* byte offset */
-// OBSOLETE     unsigned short is_packed:1;    /* True if field is packed */
-// OBSOLETE     unsigned short bit_offset:6;   /* Bit offset */
-// OBSOLETE     unsigned short size:6; /* Size in bits */
-// OBSOLETE     unsigned short sign:1; /* True if signed */
-// OBSOLETE     unsigned short pad:2;  /* Padding. Must be 0 */
-// OBSOLETE   }
-// OBSOLETE dst_old_field_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE /* Tag enumeration for long record field descriptor:
-// OBSOLETE  */
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_field_byte,
-// OBSOLETE     dst_field_bit,
-// OBSOLETE     dst_field_loc,
-// OBSOLETE     dst_field_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_field_format_t;
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    Record field descriptor, long form.  The format of the field information
-// OBSOLETE    is identified by the format_tag, which contains one of the above values.
-// OBSOLETE    The field_byte variant is equivalent to the short form of field descriptor.
-// OBSOLETE    The field_bit variant handles fields which are any number of bits long,
-// OBSOLETE    located some number of bits from the start of the record.  The field_loc
-// OBSOLETE    variant allows the location of the field to be described by a general loc
-// OBSOLETE    string.
-// OBSOLETE  */
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name of field */
-// OBSOLETE     dst_type_t type_desc;  /* type of field */
-// OBSOLETE     union
-// OBSOLETE       {
-// OBSOLETE    struct
-// OBSOLETE      {
-// OBSOLETE        dst_field_format_t format_tag:2;    /* dst_field_byte */
-// OBSOLETE        unsigned long offset:30;    /* offset of field in bytes */
-// OBSOLETE      }
-// OBSOLETE    field_byte ALIGNED1;
-// OBSOLETE    struct
-// OBSOLETE      {
-// OBSOLETE        dst_field_format_t format_tag:2;    /* dst_field_bit */
-// OBSOLETE        unsigned long nbits:6;      /* bit size of field */
-// OBSOLETE        unsigned long is_signed:1;  /* signed/unsigned attribute */
-// OBSOLETE        unsigned long bit_offset:3;         /* bit offset from byte boundary */
-// OBSOLETE        int pad:4;          /* must be zero */
-// OBSOLETE        unsigned short byte_offset;         /* offset of byte boundary */
-// OBSOLETE      }
-// OBSOLETE    field_bit ALIGNED1;
-// OBSOLETE    struct
-// OBSOLETE      {
-// OBSOLETE        dst_field_format_t format_tag:2;    /* dst_field_loc */
-// OBSOLETE        int loffset:30;     /* dst_rel_offset_t to loc string */
-// OBSOLETE      }
-// OBSOLETE    field_loc ALIGNED1;
-// OBSOLETE       }
-// OBSOLETE     f ALIGNED1;
-// OBSOLETE   }
-// OBSOLETE dst_field_t;
-// OBSOLETE 
-// OBSOLETE /* The field_loc.loffset field is a 30-bit signed value.  Some versions of C do
-// OBSOLETE    not support signed bit fields.  The following macro will extract that field
-// OBSOLETE    as a signed value:
-// OBSOLETE  */
-// OBSOLETE #define dst_field_loffset(field_rec) \
-// OBSOLETE     ( ((int) ((field_rec).f.field_loc.loffset << 2)) >> 2 )
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to record name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line where this record is defined */
-// OBSOLETE     unsigned short size;   /* storage size (bytes) */
-// OBSOLETE     unsigned short nfields;        /* number of fields in this record */
-// OBSOLETE     union
-// OBSOLETE       {
-// OBSOLETE    dst_field_t fields[dst_dummy_array_size];
-// OBSOLETE    dst_short_field_t sfields[dst_dummy_array_size];
-// OBSOLETE    dst_old_field_t ofields[dst_dummy_array_size];
-// OBSOLETE       }
-// OBSOLETE     f;                             /* array of fields */
-// OBSOLETE   }
-// OBSOLETE dst_rec_record_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-------------
-// OBSOLETE   FILE record
-// OBSOLETE   -------------
-// OBSOLETE   Describes a file type.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line where type was defined */
-// OBSOLETE     dst_type_t type_desc;  /* file element type */
-// OBSOLETE   }
-// OBSOLETE dst_rec_file_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*---------------
-// OBSOLETE   OFFSET record 
-// OBSOLETE   ---------------
-// OBSOLETE    Describes a Pascal offset type.
-// OBSOLETE    (This type, an undocumented Domain Pascal extension, is currently not
-// OBSOLETE    supported by the debugger)
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to the name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of definition */
-// OBSOLETE     dst_type_t area_type_desc;     /* area type */
-// OBSOLETE     dst_type_t base_type_desc;     /* base type */
-// OBSOLETE     long lo_bound;         /* low bound of the offset range */
-// OBSOLETE     long hi_bound;         /* high bound of the offset range */
-// OBSOLETE     long bias;                     /* bias */
-// OBSOLETE     unsigned short scale;  /* scale factor */
-// OBSOLETE     unsigned short size;   /* storage size (bytes) */
-// OBSOLETE   }
-// OBSOLETE dst_rec_offset_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*--------------
-// OBSOLETE   ALIAS record 
-// OBSOLETE   --------------
-// OBSOLETE   Describes a type alias (e.g., typedef).
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of definition */
-// OBSOLETE     dst_type_t type_desc;  /* parent type */
-// OBSOLETE   }
-// OBSOLETE dst_rec_alias_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*------------------
-// OBSOLETE   SIGNATURE record
-// OBSOLETE   ------------------
-// OBSOLETE   Describes a procedure/function type.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE /* Enumeration of argument semantics.  Note that most are mutually
-// OBSOLETE    exclusive.
-// OBSOLETE  */
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_arg_attr_val,              /* passed by value */
-// OBSOLETE     dst_arg_attr_ref,              /* passed by reference */
-// OBSOLETE     dst_arg_attr_name,             /* passed by name */
-// OBSOLETE     dst_arg_attr_in,               /* readable in the callee */
-// OBSOLETE     dst_arg_attr_out,              /* writable in the callee */
-// OBSOLETE     dst_arg_attr_hidden,   /* not visible in the caller */
-// OBSOLETE     dst_arg_attr_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_arg_attr_t;
-// OBSOLETE 
-// OBSOLETE /* Argument descriptor.  Actually points to a variable record for most of the
-// OBSOLETE    information.
-// OBSOLETE  */
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t var_offset;   /* offset to variable record */
-// OBSOLETE     unsigned short attributes;     /* a mask of dst_arg_attr_t flags */
-// OBSOLETE   }
-// OBSOLETE dst_arg_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of function definition */
-// OBSOLETE     dst_rel_offset_t result;       /* offset to function result variable record */
-// OBSOLETE     unsigned short nargs;  /* number of arguments */
-// OBSOLETE     dst_arg_t args[dst_dummy_array_size];
-// OBSOLETE   }
-// OBSOLETE dst_rec_signature_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE /*--------------
-// OBSOLETE   SCOPE record
-// OBSOLETE   --------------
-// OBSOLETE   Obsolete. Use the new ENTRY type instead.
-// OBSOLETE   Old compilers may put this in as the first entry in a function,
-// OBSOLETE   terminated by an end of scope entry.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* Name offset */
-// OBSOLETE     dst_src_loc_t start_line;      /* Starting line */
-// OBSOLETE     dst_src_loc_t end_line;        /* Ending line */
-// OBSOLETE   }
-// OBSOLETE dst_rec_scope_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE /*--------------
-// OBSOLETE   ENTRY record
-// OBSOLETE   --------------
-// OBSOLETE   Describes a procedure/function entry point.  An entry record is to a
-// OBSOLETE   signature record roughly as a variable record is to a type descriptor record.
-// OBSOLETE 
-// OBSOLETE   The entry_number field is keyed to the entry numbers in .lines -- the 
-// OBSOLETE   debugger locates the code location of an entry by searching the line
-// OBSOLETE   number table for an entry numbered with the value of entry_number.  The
-// OBSOLETE   main entry is numbered zero.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to entry name string */
-// OBSOLETE     dst_rel_offset_t loffset;      /* where to jump to call this entry */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of definition */
-// OBSOLETE     dst_rel_offset_t sig_desc;     /* offset to signature descriptor */
-// OBSOLETE     unsigned int entry_number:8;
-// OBSOLETE     int pad:8;                     /* must be zero */
-// OBSOLETE   }
-// OBSOLETE dst_rec_entry_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE /*-----------------------
-// OBSOLETE   Old format ENTRY record
-// OBSOLETE   -----------------------
-// OBSOLETE   Supposedly obsolete but still used by some compilers.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* Offset to entry name string */
-// OBSOLETE     dst_src_loc_t src_loc; /* Location in source */
-// OBSOLETE     dst_rel_offset_t sig_desc;     /* Signature description */
-// OBSOLETE     char unknown[36];
-// OBSOLETE   }
-// OBSOLETE dst_rec_old_entry_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE /*--------------
-// OBSOLETE   LABEL record 
-// OBSOLETE   --------------
-// OBSOLETE   Describes a program label.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t noffset;      /* offset to label string */
-// OBSOLETE     dst_rel_offset_t loffset;      /* offset to loc string */
-// OBSOLETE     dst_src_loc_t src_loc; /* file/line of definition */
-// OBSOLETE   }
-// OBSOLETE dst_rec_label_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------------
-// OBSOLETE   AUXILIARY SIZE record
-// OBSOLETE   -----------------------
-// OBSOLETE   May appear in the auxiliary record list of any type or variable record to
-// OBSOLETE   modify the default size of the type or variable.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned long size;            /* size (bytes) */
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_size_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------------
-// OBSOLETE   AUXILIARY ALIGN record
-// OBSOLETE   -----------------------
-// OBSOLETE   May appear in the auxiliary record list of any type or variable record to
-// OBSOLETE   modify the default alignment of the type or variable.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short alignment;      /* # of low order zero bits */
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_align_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------------------
-// OBSOLETE   AUXILIARY FIELD SIZE record
-// OBSOLETE   -----------------------------
-// OBSOLETE   May appear in the auxiliary record list of any RECORD/UNION record to 
-// OBSOLETE   modify the default size of a field.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short field_no;       /* field number */
-// OBSOLETE     unsigned long size;            /* size (bits) */
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_field_size_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------------------
-// OBSOLETE   AUXILIARY FIELD OFFSET record
-// OBSOLETE   -----------------------------
-// OBSOLETE   May appear in the auxiliary record list of any RECORD/UNION record to 
-// OBSOLETE   specify a field offset larger than 2**16.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short field_no;       /* field number */
-// OBSOLETE     unsigned long foffset; /* offset */
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_field_off_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------------------
-// OBSOLETE   AUXILIARY FIELD ALIGN record
-// OBSOLETE   -----------------------------
-// OBSOLETE   May appear in the auxiliary record list of any RECORD/UNION record to 
-// OBSOLETE   modify the default alignment of a field.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short field_no;       /* field number */
-// OBSOLETE     unsigned short alignment;      /* number of low order zero bits */
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_field_align_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*----------------------------
-// OBSOLETE   AUXILIARY VAR BOUND record
-// OBSOLETE   ----------------------------
-// OBSOLETE   May appear in the auxiliary record list of any ARRAY, SUBRANGE or STRING
-// OBSOLETE   record to describe a variable bound for the range of the type.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_low_bound,         /* the low bound is variable */
-// OBSOLETE     dst_high_bound,                /* the high bound is variable */
-// OBSOLETE     dst_var_bound_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_var_bound_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short which;  /* which bound */
-// OBSOLETE     dst_rel_offset_t voffset ALIGNED1;     /* variable that defines bound */
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_var_bound_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*----------------------------------
-// OBSOLETE   AUXILIARY TYPE DERIVATION record 
-// OBSOLETE   ----------------------------------
-// OBSOLETE   May appear in the auxiliary record list of any RECORD/UNION record to denote
-// OBSOLETE   class inheritance of that type from a parent type.
-// OBSOLETE 
-// OBSOLETE   Inheritance implies that it is possible to convert the inheritor type to the
-// OBSOLETE   inherited type, retaining those fields which were inherited.  To allow this,
-// OBSOLETE   orig_field_no, a field number into the record type, is provided.  If 
-// OBSOLETE   orig_is_pointer is false, then the start of the inherited record is located
-// OBSOLETE   at the location of the field indexed by orig_field_no.  If orig_is_pointer
-// OBSOLETE   is true, then it is located at the address contained in the field indexed
-// OBSOLETE   by orig_field_no (assumed to be a pointer).
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_type_t parent_type;        /* reference to inherited type */
-// OBSOLETE     unsigned short orig_field_no;
-// OBSOLETE     boolean orig_is_pointer:1;
-// OBSOLETE     int unused:15;         /* must be zero */
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_type_deriv_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*------------------------------------
-// OBSOLETE   AUXILIARY VARIABLE LIFETIME record
-// OBSOLETE   ------------------------------------
-// OBSOLETE   May appear in the auxiliary record list of a VARIABLE record to add location
-// OBSOLETE   information for an additional variable lifetime.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t loffset;
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_lifetime_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-------------------------------
-// OBSOLETE   AUXILIARY POINTER BASE record 
-// OBSOLETE   -------------------------------
-// OBSOLETE   May appear in the auxiliary record list of a VARIABLE record to provide a
-// OBSOLETE   pointer base to substitute for references to any such bases in the location
-// OBSOLETE   string of the variable.  A pointer base is another VARIABLE record.  When
-// OBSOLETE   the variable is evaluated by the debugger, it uses the current value of the
-// OBSOLETE   pointer base variable in computing its location.
-// OBSOLETE 
-// OBSOLETE   This is useful for representing FORTRAN pointer-based variables.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t voffset;
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_ptr_base_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*---------------------------------
-// OBSOLETE   AUXILIARY REGISTER VALUE record 
-// OBSOLETE   ---------------------------------
-// OBSOLETE   May appear in the auxiliary record list of an ENTRY record to specify
-// OBSOLETE   a register that must be set to a specific value before jumping to the entry
-// OBSOLETE   point in a debugger "call".  The debugger must set the debuggee register,
-// OBSOLETE   specified by the register code, to the value of the *address* to which the
-// OBSOLETE   location string resolves.  If the address is register-relative, then the
-// OBSOLETE   call cannot be made unless the current stack frame is the lexical parent
-// OBSOLETE   of the entry.  An example of this is when a (Pascal) nested procedure
-// OBSOLETE   contains references to its parent's variables, which it accesses through
-// OBSOLETE   a static link register.  The static link register must be set to some
-// OBSOLETE   address relative to the parent's stack base register.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short reg;            /* identifies register to set (isp enum) */
-// OBSOLETE     dst_rel_offset_t loffset;      /* references a location string */
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_reg_val_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*==========================================================*/
-// OBSOLETE /*========== RECORDS USED IN .blocks AND .symbols ==========*/
-// OBSOLETE /*==========================================================*/
-// OBSOLETE 
-// OBSOLETE /*---------------------
-// OBSOLETE   STRING TABLE record
-// OBSOLETE   ---------------------
-// OBSOLETE   A string table record contains any number of null-terminated, variable length
-// OBSOLETE   strings.   The length field gives the size in bytes of the text field, which
-// OBSOLETE   can be any size.
-// OBSOLETE 
-// OBSOLETE   The global name table shares this format.  This record appears in the
-// OBSOLETE   .blocks section.  Each string in the table identifies a global defined in
-// OBSOLETE   the current compilation unit.
-// OBSOLETE 
-// OBSOLETE   The loc pool record shares this format as well.  Loc strings are described
-// OBSOLETE   elsewhere.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned long length;
-// OBSOLETE     char text[dst_dummy_array_size];
-// OBSOLETE   }
-// OBSOLETE dst_rec_string_tab_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-----------------------
-// OBSOLETE   AUXILIARY QUAL record 
-// OBSOLETE   -----------------------
-// OBSOLETE   May appear in the auxiliary record list of any BLOCK, VARIABLE, or type record
-// OBSOLETE   to provide it with a fully-qualified, language-dependent name.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t lang_qual_name;
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_qual_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*----------------
-// OBSOLETE   FORWARD record
-// OBSOLETE   ----------------
-// OBSOLETE   Reference to a record somewhere else.  This allows identical definitions in
-// OBSOLETE   different scopes to share data.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rel_offset_t rec_off;
-// OBSOLETE   }
-// OBSOLETE dst_rec_forward_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*-------------------------------
-// OBSOLETE   AUXILIARY SOURCE RANGE record
-// OBSOLETE   -------------------------------
-// OBSOLETE   May appear in the auxiliary record list of any BLOCK record to specify a
-// OBSOLETE   range of source lines over which the block is active.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_src_loc_t first_line;      /* first source line */
-// OBSOLETE     dst_src_loc_t last_line;       /* last source line */
-// OBSOLETE   }
-// OBSOLETE dst_rec_aux_src_range_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*------------------
-// OBSOLETE   EXTENSION record 
-// OBSOLETE   ------------------
-// OBSOLETE   Provision for "foreign" records, such as might be generated by a non-Apollo
-// OBSOLETE   compiler.  Apollo software will ignore these.
-// OBSOLETE */
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     unsigned short rec_size;       /* record size (bytes) */
-// OBSOLETE     unsigned short ext_type;       /* defined by whoever generates it */
-// OBSOLETE     unsigned short ext_data;       /* place-holder for arbitrary amount of data */
-// OBSOLETE   }
-// OBSOLETE dst_rec_extension_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    ** DEBUG SYMBOL record -- The wrapper for all .blocks and .symbols records.
-// OBSOLETE    **
-// OBSOLETE    ** This record ties together all previous .blocks and .symbols records 
-// OBSOLETE    ** together in a union with a common header.  The rec_type field of the
-// OBSOLETE    ** header identifies the record type.  The rec_flags field currently only
-// OBSOLETE    ** defines auxiliary record lists. 
-// OBSOLETE    **
-// OBSOLETE    ** If a record carries with it a non-null auxiliary record list, its
-// OBSOLETE    ** dst_flag_has_aux_recs flag is set, and each of the records that follow
-// OBSOLETE    ** it are treated as its auxiliary records, until the end of the compilation
-// OBSOLETE    ** unit or scope is reached, or until an auxiliary record with its
-// OBSOLETE    ** dst_flag_last_aux_rec flag set is reached.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_flag_has_aux_recs,
-// OBSOLETE     dst_flag_last_aux_rec,
-// OBSOLETE     dst_rec_flag_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_rec_flags_t;
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     dst_rec_type_t rec_type:8;     /* record type */
-// OBSOLETE     int rec_flags:8;               /* mask of dst_rec_flags_t */
-// OBSOLETE     union                  /* switched on rec_type field above */
-// OBSOLETE       {
-// OBSOLETE    /* dst_typ_pad requires no additional fields */
-// OBSOLETE    dst_rec_comp_unit_t comp_unit_;
-// OBSOLETE    dst_rec_section_tab_t section_tab_;
-// OBSOLETE    dst_rec_file_tab_t file_tab_;
-// OBSOLETE    dst_rec_block_t block_;
-// OBSOLETE    dst_rec_var_t var_;
-// OBSOLETE    dst_rec_pointer_t pointer_;
-// OBSOLETE    dst_rec_array_t array_;
-// OBSOLETE    dst_rec_subrange_t subrange_;
-// OBSOLETE    dst_rec_set_t set_;
-// OBSOLETE    dst_rec_implicit_enum_t implicit_enum_;
-// OBSOLETE    dst_rec_explicit_enum_t explicit_enum_;
-// OBSOLETE    /* dst_typ_short_{rec,union} are represented by 'rec' (below) */
-// OBSOLETE    dst_rec_file_t file_;
-// OBSOLETE    dst_rec_offset_t offset_;
-// OBSOLETE    dst_rec_alias_t alias_;
-// OBSOLETE    dst_rec_signature_t signature_;
-// OBSOLETE    dst_rec_old_label_t old_label_;
-// OBSOLETE    dst_rec_scope_t scope_;
-// OBSOLETE    /* dst_typ_end_scope requires no additional fields */
-// OBSOLETE    dst_rec_string_tab_t string_tab_;
-// OBSOLETE    /* dst_typ_global_name_tab is represented by 'string_tab' (above) */
-// OBSOLETE    dst_rec_forward_t forward_;
-// OBSOLETE    dst_rec_aux_size_t aux_size_;
-// OBSOLETE    dst_rec_aux_align_t aux_align_;
-// OBSOLETE    dst_rec_aux_field_size_t aux_field_size_;
-// OBSOLETE    dst_rec_aux_field_off_t aux_field_off_;
-// OBSOLETE    dst_rec_aux_field_align_t aux_field_align_;
-// OBSOLETE    dst_rec_aux_qual_t aux_qual_;
-// OBSOLETE    dst_rec_aux_var_bound_t aux_var_bound_;
-// OBSOLETE    dst_rec_extension_t extension_;
-// OBSOLETE    dst_rec_string_t string_;
-// OBSOLETE    dst_rec_const_t const_;
-// OBSOLETE    /* dst_typ_reference is represented by 'pointer' (above) */
-// OBSOLETE    dst_rec_record_t record_;
-// OBSOLETE    /* dst_typ_union is represented by 'record' (above) */
-// OBSOLETE    dst_rec_aux_type_deriv_t aux_type_deriv_;
-// OBSOLETE    /* dst_typ_locpool is represented by 'string_tab' (above) */
-// OBSOLETE    dst_rec_variable_t variable_;
-// OBSOLETE    dst_rec_label_t label_;
-// OBSOLETE    dst_rec_entry_t entry_;
-// OBSOLETE    dst_rec_aux_lifetime_t aux_lifetime_;
-// OBSOLETE    dst_rec_aux_ptr_base_t aux_ptr_base_;
-// OBSOLETE    dst_rec_aux_src_range_t aux_src_range_;
-// OBSOLETE    dst_rec_aux_reg_val_t aux_reg_val_;
-// OBSOLETE    dst_rec_name_tab_t aux_unit_names_;
-// OBSOLETE    dst_rec_sect_info_tab_t aux_sect_info_;
-// OBSOLETE       }
-// OBSOLETE     rec_data ALIGNED1;
-// OBSOLETE   }
-// OBSOLETE dst_rec_t, *dst_rec_ptr_t;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*===============================================*/
-// OBSOLETE /*========== .lines SECTION DEFINITIONS =========*/
-// OBSOLETE /*===============================================*/
-// OBSOLETE /*
-// OBSOLETE    The .lines section contains a sequence of line number tables.  There is no
-// OBSOLETE    record structure within the section.  The start of the table for a routine
-// OBSOLETE    is pointed to by the block record, and the end of the table is signaled by
-// OBSOLETE    an escape code.
-// OBSOLETE 
-// OBSOLETE    A line number table is a sequence of bytes.  The default entry contains a line
-// OBSOLETE    number delta (-7..+7) in the high 4 bits and a pc delta (0..15) in the low 4 
-// OBSOLETE    bits. Special cases, including when one or both of the values is too large
-// OBSOLETE    to fit in 4 bits and other special cases are handled through escape entries.
-// OBSOLETE    Escape entries are identified by the value 0x8 in the high 4 bits.  The low 4
-// OBSOLETE    bits are occupied by a function code.  Some escape entries are followed by
-// OBSOLETE    additional arguments, which may be bytes, words, or longwords.  This data is
-// OBSOLETE    not aligned. 
-// OBSOLETE 
-// OBSOLETE    The initial PC offset, file number and line number are zero.  Normally, the
-// OBSOLETE    table begins with a dst_ln_file escape which establishes the initial file
-// OBSOLETE    and line number.  All PC deltas are unsigned (thus the table is ordered by
-// OBSOLETE    increasing PC); line number deltas are signed.  The table ends with a 
-// OBSOLETE    dst_ln_end escape, which is followed by a final table entry whose PC delta
-// OBSOLETE    gives the code size of the last statement.
-// OBSOLETE 
-// OBSOLETE    Escape     Semantic
-// OBSOLETE    ---------  ------------------------------------------------------------
-// OBSOLETE    file       Changes file state.  The current source file remains constant
-// OBSOLETE    until another file escape.  Though the line number state is
-// OBSOLETE    also updated by a file escape, a file escape does NOT 
-// OBSOLETE    constitute a line table entry.
-// OBSOLETE 
-// OBSOLETE    statement  Alters the statement number of the next table entry.  By 
-// OBSOLETE    default, all table entries refer to the first statement on a
-// OBSOLETE    line.  Statement number one is the second statement, and so on.
-// OBSOLETE 
-// OBSOLETE    entry      Identifies the next table entry as the position of an entry 
-// OBSOLETE    point for the current block.  The PC position should follow 
-// OBSOLETE    any procedure prologue code.  An argument specifies the entry
-// OBSOLETE    number, which is keyed to the entry number of the corresponding
-// OBSOLETE    .symbols ENTRY record.
-// OBSOLETE 
-// OBSOLETE    exit       Identifies the next table entry as the last position within 
-// OBSOLETE    the current block before a procedure epiloge and subsequent
-// OBSOLETE    procedure exit.
-// OBSOLETE 
-// OBSOLETE    gap        By default, the executable code corresponding to a table entry 
-// OBSOLETE    is assumed to extend to the beginning of the next table entry.
-// OBSOLETE    If this is not the case--there is a "hole" in the table--then
-// OBSOLETE    a gap escape should follow the first table entry to specify
-// OBSOLETE    where the code for that entry ends.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE #define dst_ln_escape_flag    -8
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    Escape function codes:
-// OBSOLETE  */
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_ln_pad,                    /* pad byte */
-// OBSOLETE     dst_ln_file,           /* file escape.  Next 4 bytes are a dst_src_loc_t */
-// OBSOLETE     dst_ln_dln1_dpc1,              /* 1 byte line delta, 1 byte pc delta */
-// OBSOLETE     dst_ln_dln2_dpc2,              /* 2 bytes line delta, 2 bytes pc delta */
-// OBSOLETE     dst_ln_ln4_pc4,                /* 4 bytes ABSOLUTE line number, 4 bytes ABSOLUTE pc */
-// OBSOLETE     dst_ln_dln1_dpc0,              /* 1 byte line delta, pc delta = 0 */
-// OBSOLETE     dst_ln_ln_off_1,               /* statement escape, stmt # = 1 (2nd stmt on line) */
-// OBSOLETE     dst_ln_ln_off,         /* statement escape, stmt # = next byte */
-// OBSOLETE     dst_ln_entry,          /* entry escape, next byte is entry number */
-// OBSOLETE     dst_ln_exit,           /* exit escape */
-// OBSOLETE     dst_ln_stmt_end,               /* gap escape, 4 bytes pc delta */
-// OBSOLETE     dst_ln_escape_11,              /* reserved */
-// OBSOLETE     dst_ln_escape_12,              /* reserved */
-// OBSOLETE     dst_ln_escape_13,              /* reserved */
-// OBSOLETE     dst_ln_nxt_byte,               /* next byte contains the real escape code */
-// OBSOLETE     dst_ln_end,                    /* end escape, final entry follows */
-// OBSOLETE     dst_ln_escape_END_OF_ENUM
-// OBSOLETE   }
-// OBSOLETE dst_ln_escape_t;
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    Line number table entry
-// OBSOLETE  */
-// OBSOLETE typedef union
-// OBSOLETE   {
-// OBSOLETE     struct
-// OBSOLETE       {
-// OBSOLETE    unsigned int ln_delta:4;        /* 4 bit line number delta */
-// OBSOLETE    unsigned int pc_delta:4;        /* 4 bit pc delta */
-// OBSOLETE       }
-// OBSOLETE     delta;
-// OBSOLETE 
-// OBSOLETE     struct
-// OBSOLETE       {
-// OBSOLETE    unsigned int esc_flag:4;        /* alias for ln_delta */
-// OBSOLETE    dst_ln_escape_t esc_code:4;     /* escape function code */
-// OBSOLETE       }
-// OBSOLETE     esc;
-// OBSOLETE 
-// OBSOLETE     char sdata;                    /* signed data byte */
-// OBSOLETE     unsigned char udata;   /* unsigned data byte */
-// OBSOLETE   }
-// OBSOLETE dst_ln_entry_t,
-// OBSOLETE  *dst_ln_entry_ptr_t,
-// OBSOLETE   dst_ln_table_t[dst_dummy_array_size];
-// OBSOLETE 
-// OBSOLETE /* The following macro will extract the ln_delta field as a signed value:
-// OBSOLETE  */
-// OBSOLETE #define dst_ln_ln_delta(ln_rec) \
-// OBSOLETE     ( ((short) ((ln_rec).delta.ln_delta << 12)) >> 12 )
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE typedef struct dst_sec_struct
-// OBSOLETE   {
-// OBSOLETE     char *buffer;
-// OBSOLETE     long position;
-// OBSOLETE     long size;
-// OBSOLETE     long base;
-// OBSOLETE   }
-// OBSOLETE dst_sec;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Macros for access to the data */
-// OBSOLETE 
-// OBSOLETE #define DST_comp_unit(x)   ((x)->rec_data.comp_unit_)
-// OBSOLETE #define DST_section_tab(x)         ((x)->rec_data.section_tab_)
-// OBSOLETE #define DST_file_tab(x)    ((x)->rec_data.file_tab_)
-// OBSOLETE #define DST_block(x)               ((x)->rec_data.block_)
-// OBSOLETE #define    DST_var(x)              ((x)->rec_data.var_)
-// OBSOLETE #define DST_pointer(x)             ((x)->rec_data.pointer_)
-// OBSOLETE #define DST_array(x)               ((x)->rec_data.array_)
-// OBSOLETE #define DST_subrange(x)    ((x)->rec_data.subrange_)
-// OBSOLETE #define DST_set(x)         ((x)->rec_data.set_)
-// OBSOLETE #define DST_implicit_enum(x)       ((x)->rec_data.implicit_enum_)
-// OBSOLETE #define DST_explicit_enum(x)       ((x)->rec_data.explicit_enum_)
-// OBSOLETE #define DST_short_rec(x)   ((x)->rec_data.record_)
-// OBSOLETE #define DST_short_union(x)         ((x)->rec_data.record_)
-// OBSOLETE #define DST_file(x)                ((x)->rec_data.file_)
-// OBSOLETE #define DST_offset(x)              ((x)->rec_data.offset_)
-// OBSOLETE #define DST_alias(x)               ((x)->rec_data.alias_)
-// OBSOLETE #define DST_signature(x)   ((x)->rec_data.signature_)
-// OBSOLETE #define DST_old_label(x)   ((x)->rec_data.old_label_)
-// OBSOLETE #define DST_scope(x)               ((x)->rec_data.scope_)
-// OBSOLETE #define DST_string_tab(x)  ((x)->rec_data.string_tab_)
-// OBSOLETE #define DST_global_name_tab(x)     ((x)->rec_data.string_tab_)
-// OBSOLETE #define DST_forward(x)             ((x)->rec_data.forward_)
-// OBSOLETE #define DST_aux_size(x)    ((x)->rec_data.aux_size_)
-// OBSOLETE #define DST_aux_align(x)   ((x)->rec_data.aux_align_)
-// OBSOLETE #define DST_aux_field_size(x)      ((x)->rec_data.aux_field_size_)
-// OBSOLETE #define DST_aux_field_off(x)       ((x)->rec_data.aux_field_off_)
-// OBSOLETE #define DST_aux_field_align(x)     ((x)->rec_data.aux_field_align_)
-// OBSOLETE #define DST_aux_qual(x)    ((x)->rec_data.aux_qual_)
-// OBSOLETE #define DST_aux_var_bound(x)       ((x)->rec_data.aux_var_bound_)
-// OBSOLETE #define DST_extension(x)   ((x)->rec_data.extension_)
-// OBSOLETE #define DST_string(x)              ((x)->rec_data.string_)
-// OBSOLETE #define DST_const(x)               ((x)->rec_data.const_)
-// OBSOLETE #define DST_reference(x)   ((x)->rec_data.pointer_)
-// OBSOLETE #define DST_record(x)              ((x)->rec_data.record_)
-// OBSOLETE #define DST_union(x)               ((x)->rec_data.record_)
-// OBSOLETE #define DST_aux_type_deriv(x)      ((x)->rec_data.aux_type_deriv_)
-// OBSOLETE #define DST_locpool(x)             ((x)->rec_data.string_tab_)
-// OBSOLETE #define DST_variable(x)    ((x)->rec_data.variable_)
-// OBSOLETE #define DST_label(x)               ((x)->rec_data.label_)
-// OBSOLETE #define DST_entry(x)               ((x)->rec_data.entry_)
-// OBSOLETE #define DST_aux_lifetime(x)        ((x)->rec_data.aux_lifetime_)
-// OBSOLETE #define DST_aux_ptr_base(x)        ((x)->rec_data.aux_ptr_base_)
-// OBSOLETE #define DST_aux_src_range(x)       ((x)->rec_data.aux_src_range_)
-// OBSOLETE #define DST_aux_reg_val(x)         ((x)->rec_data.aux_reg_val_)
-// OBSOLETE #define DST_aux_unit_names(x)      ((x)->rec_data.aux_unit_names_)
-// OBSOLETE #define DST_aux_sect_info(x)       ((x)->rec_data.aux_sect_info_)
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Type codes for loc strings. I'm not entirely certain about all of
-// OBSOLETE  * these, but they seem to work.
-// OBSOLETE  *                              troy@cbme.unsw.EDU.AU
-// OBSOLETE  * If you find a variable whose location can't be decoded, you should
-// OBSOLETE  * find out it's code using "dstdump -s filename". It will record an
-// OBSOLETE  * entry for the variable, and give a text representation of what
-// OBSOLETE  * the locstring means. Before that explaination there will be a
-// OBSOLETE  * number. In the LOCSTRING table, that number will appear before
-// OBSOLETE  * the start of the location string. Location string codes are
-// OBSOLETE  * five bit codes with a 3 bit argument. Check the high 5 bits of
-// OBSOLETE  * the one byte code, and figure out where it goes in here.
-// OBSOLETE  * Then figure out exactly what the meaning is and code it in
-// OBSOLETE  * dstread.c
-// OBSOLETE  *
-// OBSOLETE  * Note that ranged locs mean that the variable is in different locations
-// OBSOLETE  * depending on the current PC. We ignore these because (a) gcc can't handle
-// OBSOLETE  * them, and (b), If you don't use high levels of optimisation they won't
-// OBSOLETE  * occur.
-// OBSOLETE  */
-// OBSOLETE typedef enum
-// OBSOLETE   {
-// OBSOLETE     dst_lsc_end,           /* End of string */
-// OBSOLETE     dst_lsc_indirect,              /* Indirect through previous. Arg == 6 */
-// OBSOLETE     /* Or register ax (x=arg) */
-// OBSOLETE     dst_lsc_dreg,          /* register dx (x=arg) */
-// OBSOLETE     dst_lsc_03,
-// OBSOLETE     dst_lsc_section,               /* Section (arg+1) */
-// OBSOLETE     dst_lsc_05,
-// OBSOLETE     dst_lsc_06,
-// OBSOLETE     dst_lsc_add,           /* Add (arg+1)*2 */
-// OBSOLETE     dst_lsc_sub,           /* Subtract (arg+1)*2 */
-// OBSOLETE     dst_lsc_09,
-// OBSOLETE     dst_lsc_0a,
-// OBSOLETE     dst_lsc_sec_byte,              /* Section of next byte+1 */
-// OBSOLETE     dst_lsc_add_byte,              /* Add next byte (arg == 5) or next word
-// OBSOLETE                             * (arg == 6)
-// OBSOLETE                             */
-// OBSOLETE     dst_lsc_sub_byte,              /* Subtract next byte. (arg == 1) or next
-// OBSOLETE                             * word (arg == 6 ?)
-// OBSOLETE                             */
-// OBSOLETE     dst_lsc_sbreg,         /* Stack base register (frame pointer). Arg==0 */
-// OBSOLETE     dst_lsc_0f,
-// OBSOLETE     dst_lsc_ranged,                /* location is pc dependent */
-// OBSOLETE     dst_lsc_11,
-// OBSOLETE     dst_lsc_12,
-// OBSOLETE     dst_lsc_13,
-// OBSOLETE     dst_lsc_14,
-// OBSOLETE     dst_lsc_15,
-// OBSOLETE     dst_lsc_16,
-// OBSOLETE     dst_lsc_17,
-// OBSOLETE     dst_lsc_18,
-// OBSOLETE     dst_lsc_19,
-// OBSOLETE     dst_lsc_1a,
-// OBSOLETE     dst_lsc_1b,
-// OBSOLETE     dst_lsc_1c,
-// OBSOLETE     dst_lsc_1d,
-// OBSOLETE     dst_lsc_1e,
-// OBSOLETE     dst_lsc_1f
-// OBSOLETE   }
-// OBSOLETE dst_loc_string_code_t;
-// OBSOLETE 
-// OBSOLETE /* If the following occurs after an addition/subtraction, that addition
-// OBSOLETE  * or subtraction should be multiplied by 256. It's a complete byte, not
-// OBSOLETE  * a code.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE #define    dst_multiply_256        ((char) 0x73)
-// OBSOLETE 
-// OBSOLETE typedef struct
-// OBSOLETE   {
-// OBSOLETE     char code:5;
-// OBSOLETE     char arg:3;
-// OBSOLETE   }
-// OBSOLETE dst_loc_header_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE typedef union
-// OBSOLETE   {
-// OBSOLETE     dst_loc_header_t header;
-// OBSOLETE     char data;
-// OBSOLETE   }
-// OBSOLETE dst_loc_entry_t ALIGNED1;
-// OBSOLETE 
-// OBSOLETE #undef ALIGNED1
-// OBSOLETE #endif /* apollo_dst_h */
diff --git a/gdb/dstread.c b/gdb/dstread.c
deleted file mode 100644 (file)
index 8692c98..0000000
+++ /dev/null
@@ -1,1598 +0,0 @@
-// OBSOLETE /* Read apollo DST symbol tables and convert to internal format, for GDB.
-// OBSOLETE    Contributed by Troy Rollo, University of NSW (troy@cbme.unsw.edu.au).
-// OBSOLETE    Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE \f
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "gdbtypes.h"
-// OBSOLETE #include "breakpoint.h"
-// OBSOLETE #include "bfd.h"
-// OBSOLETE #include "symfile.h"
-// OBSOLETE #include "objfiles.h"
-// OBSOLETE #include "buildsym.h"
-// OBSOLETE #include "gdb_obstack.h"
-// OBSOLETE 
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE 
-// OBSOLETE #include "dst.h"
-// OBSOLETE 
-// OBSOLETE CORE_ADDR cur_src_start_addr, cur_src_end_addr;
-// OBSOLETE dst_sec blocks_info, lines_info, symbols_info;
-// OBSOLETE 
-// OBSOLETE /* Vector of line number information.  */
-// OBSOLETE 
-// OBSOLETE static struct linetable *line_vector;
-// OBSOLETE 
-// OBSOLETE /* Index of next entry to go in line_vector_index.  */
-// OBSOLETE 
-// OBSOLETE static int line_vector_index;
-// OBSOLETE 
-// OBSOLETE /* Last line number recorded in the line vector.  */
-// OBSOLETE 
-// OBSOLETE static int prev_line_number;
-// OBSOLETE 
-// OBSOLETE /* Number of elements allocated for line_vector currently.  */
-// OBSOLETE 
-// OBSOLETE static int line_vector_length;
-// OBSOLETE 
-// OBSOLETE static int init_dst_sections (int);
-// OBSOLETE 
-// OBSOLETE static void read_dst_symtab (struct objfile *);
-// OBSOLETE 
-// OBSOLETE static void find_dst_sections (bfd *, sec_ptr, PTR);
-// OBSOLETE 
-// OBSOLETE static void dst_symfile_init (struct objfile *);
-// OBSOLETE 
-// OBSOLETE static void dst_new_init (struct objfile *);
-// OBSOLETE 
-// OBSOLETE static void dst_symfile_read (struct objfile *, int);
-// OBSOLETE 
-// OBSOLETE static void dst_symfile_finish (struct objfile *);
-// OBSOLETE 
-// OBSOLETE static void dst_end_symtab (struct objfile *);
-// OBSOLETE 
-// OBSOLETE static void complete_symtab (char *, CORE_ADDR, unsigned int);
-// OBSOLETE 
-// OBSOLETE static void dst_start_symtab (void);
-// OBSOLETE 
-// OBSOLETE static void dst_record_line (int, CORE_ADDR);
-// OBSOLETE 
-// OBSOLETE /* Manage the vector of line numbers.  */
-// OBSOLETE /* FIXME: Use record_line instead.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE dst_record_line (int line, CORE_ADDR pc)
-// OBSOLETE {
-// OBSOLETE   struct linetable_entry *e;
-// OBSOLETE   /* Make sure line vector is big enough.  */
-// OBSOLETE 
-// OBSOLETE   if (line_vector_index + 2 >= line_vector_length)
-// OBSOLETE     {
-// OBSOLETE       line_vector_length *= 2;
-// OBSOLETE       line_vector = (struct linetable *)
-// OBSOLETE    xrealloc ((char *) line_vector, sizeof (struct linetable)
-// OBSOLETE              + (line_vector_length
-// OBSOLETE                 * sizeof (struct linetable_entry)));
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   e = line_vector->item + line_vector_index++;
-// OBSOLETE   e->line = line;
-// OBSOLETE   e->pc = pc;
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Start a new symtab for a new source file.
-// OBSOLETE    It indicates the start of data for one original source file.  */
-// OBSOLETE /* FIXME: use start_symtab, like coffread.c now does.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE dst_start_symtab (void)
-// OBSOLETE {
-// OBSOLETE   /* Initialize the source file line number information for this file.  */
-// OBSOLETE 
-// OBSOLETE   if (line_vector)         /* Unlikely, but maybe possible? */
-// OBSOLETE     xfree (line_vector);
-// OBSOLETE   line_vector_index = 0;
-// OBSOLETE   line_vector_length = 1000;
-// OBSOLETE   prev_line_number = -2;   /* Force first line number to be explicit */
-// OBSOLETE   line_vector = (struct linetable *)
-// OBSOLETE     xmalloc (sizeof (struct linetable)
-// OBSOLETE         + line_vector_length * sizeof (struct linetable_entry));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Save the vital information from when starting to read a file,
-// OBSOLETE    for use when closing off the current file.
-// OBSOLETE    NAME is the file name the symbols came from, START_ADDR is the first
-// OBSOLETE    text address for the file, and SIZE is the number of bytes of text.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE complete_symtab (char *name, CORE_ADDR start_addr, unsigned int size)
-// OBSOLETE {
-// OBSOLETE   last_source_file = savestring (name, strlen (name));
-// OBSOLETE   cur_src_start_addr = start_addr;
-// OBSOLETE   cur_src_end_addr = start_addr + size;
-// OBSOLETE 
-// OBSOLETE   if (current_objfile->ei.entry_point >= cur_src_start_addr &&
-// OBSOLETE       current_objfile->ei.entry_point < cur_src_end_addr)
-// OBSOLETE     {
-// OBSOLETE       current_objfile->ei.entry_file_lowpc = cur_src_start_addr;
-// OBSOLETE       current_objfile->ei.entry_file_highpc = cur_src_end_addr;
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Finish the symbol definitions for one main source file,
-// OBSOLETE    close off all the lexical contexts for that file
-// OBSOLETE    (creating struct block's for them), then make the
-// OBSOLETE    struct symtab for that file and put it in the list of all such. */
-// OBSOLETE /* FIXME: Use end_symtab, like coffread.c now does.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE dst_end_symtab (struct objfile *objfile)
-// OBSOLETE {
-// OBSOLETE   register struct symtab *symtab;
-// OBSOLETE   register struct blockvector *blockvector;
-// OBSOLETE   register struct linetable *lv;
-// OBSOLETE 
-// OBSOLETE   /* Create the blockvector that points to all the file's blocks.  */
-// OBSOLETE 
-// OBSOLETE   blockvector = make_blockvector (objfile);
-// OBSOLETE 
-// OBSOLETE   /* Now create the symtab object for this source file.  */
-// OBSOLETE   symtab = allocate_symtab (last_source_file, objfile);
-// OBSOLETE 
-// OBSOLETE   /* Fill in its components.  */
-// OBSOLETE   symtab->blockvector = blockvector;
-// OBSOLETE   symtab->free_code = free_linetable;
-// OBSOLETE   symtab->free_ptr = 0;
-// OBSOLETE   symtab->filename = last_source_file;
-// OBSOLETE   symtab->dirname = NULL;
-// OBSOLETE   symtab->debugformat = obsavestring ("Apollo DST", 10,
-// OBSOLETE                                  &objfile->symbol_obstack);
-// OBSOLETE   lv = line_vector;
-// OBSOLETE   lv->nitems = line_vector_index;
-// OBSOLETE   symtab->linetable = (struct linetable *)
-// OBSOLETE     xrealloc ((char *) lv, (sizeof (struct linetable)
-// OBSOLETE                        + lv->nitems * sizeof (struct linetable_entry)));
-// OBSOLETE 
-// OBSOLETE   free_named_symtabs (symtab->filename);
-// OBSOLETE 
-// OBSOLETE   /* Reinitialize for beginning of new file. */
-// OBSOLETE   line_vector = 0;
-// OBSOLETE   line_vector_length = -1;
-// OBSOLETE   last_source_file = NULL;
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* dst_symfile_init ()
-// OBSOLETE    is the dst-specific initialization routine for reading symbols.
-// OBSOLETE 
-// OBSOLETE    We will only be called if this is a DST or DST-like file.
-// OBSOLETE    BFD handles figuring out the format of the file, and code in symtab.c
-// OBSOLETE    uses BFD's determination to vector to us.
-// OBSOLETE 
-// OBSOLETE    The ultimate result is a new symtab (or, FIXME, eventually a psymtab).  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE dst_symfile_init (struct objfile *objfile)
-// OBSOLETE {
-// OBSOLETE   asection *section;
-// OBSOLETE   bfd *abfd = objfile->obfd;
-// OBSOLETE 
-// OBSOLETE   init_entry_point_info (objfile);
-// OBSOLETE 
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* This function is called for every section; it finds the outer limits
-// OBSOLETE    of the line table (minimum and maximum file offset) so that the
-// OBSOLETE    mainline code can read the whole thing for efficiency.  */
-// OBSOLETE 
-// OBSOLETE /* ARGSUSED */
-// OBSOLETE static void
-// OBSOLETE find_dst_sections (bfd *abfd, sec_ptr asect, PTR vpinfo)
-// OBSOLETE {
-// OBSOLETE   int size, count;
-// OBSOLETE   long base;
-// OBSOLETE   file_ptr offset, maxoff;
-// OBSOLETE   dst_sec *section;
-// OBSOLETE 
-// OBSOLETE /* WARNING WILL ROBINSON!  ACCESSING BFD-PRIVATE DATA HERE!  FIXME!  */
-// OBSOLETE   size = asect->_raw_size;
-// OBSOLETE   offset = asect->filepos;
-// OBSOLETE   base = asect->vma;
-// OBSOLETE /* End of warning */
-// OBSOLETE 
-// OBSOLETE   section = NULL;
-// OBSOLETE   if (!strcmp (asect->name, ".blocks"))
-// OBSOLETE     section = &blocks_info;
-// OBSOLETE   else if (!strcmp (asect->name, ".lines"))
-// OBSOLETE     section = &lines_info;
-// OBSOLETE   else if (!strcmp (asect->name, ".symbols"))
-// OBSOLETE     section = &symbols_info;
-// OBSOLETE   if (!section)
-// OBSOLETE     return;
-// OBSOLETE   section->size = size;
-// OBSOLETE   section->position = offset;
-// OBSOLETE   section->base = base;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* The BFD for this file -- only good while we're actively reading
-// OBSOLETE    symbols into a psymtab or a symtab.  */
-// OBSOLETE 
-// OBSOLETE static bfd *symfile_bfd;
-// OBSOLETE 
-// OBSOLETE /* Read a symbol file, after initialization by dst_symfile_init.  */
-// OBSOLETE /* FIXME!  Addr and Mainline are not used yet -- this will not work for
-// OBSOLETE    shared libraries or add_file!  */
-// OBSOLETE 
-// OBSOLETE /* ARGSUSED */
-// OBSOLETE static void
-// OBSOLETE dst_symfile_read (struct objfile *objfile, int mainline)
-// OBSOLETE {
-// OBSOLETE   bfd *abfd = objfile->obfd;
-// OBSOLETE   char *name = bfd_get_filename (abfd);
-// OBSOLETE   int desc;
-// OBSOLETE   register int val;
-// OBSOLETE   int num_symbols;
-// OBSOLETE   int symtab_offset;
-// OBSOLETE   int stringtab_offset;
-// OBSOLETE 
-// OBSOLETE   symfile_bfd = abfd;              /* Kludge for swap routines */
-// OBSOLETE 
-// OBSOLETE /* WARNING WILL ROBINSON!  ACCESSING BFD-PRIVATE DATA HERE!  FIXME!  */
-// OBSOLETE   desc = fileno ((FILE *) (abfd->iostream));       /* File descriptor */
-// OBSOLETE 
-// OBSOLETE   /* Read the line number table, all at once.  */
-// OBSOLETE   bfd_map_over_sections (abfd, find_dst_sections, (PTR) NULL);
-// OBSOLETE 
-// OBSOLETE   val = init_dst_sections (desc);
-// OBSOLETE   if (val < 0)
-// OBSOLETE     error ("\"%s\": error reading debugging symbol tables\n", name);
-// OBSOLETE 
-// OBSOLETE   init_minimal_symbol_collection ();
-// OBSOLETE   make_cleanup_discard_minimal_symbols ();
-// OBSOLETE 
-// OBSOLETE   /* Now that the executable file is positioned at symbol table,
-// OBSOLETE      process it and define symbols accordingly.  */
-// OBSOLETE 
-// OBSOLETE   read_dst_symtab (objfile);
-// OBSOLETE 
-// OBSOLETE   /* Sort symbols alphabetically within each block.  */
-// OBSOLETE 
-// OBSOLETE   {
-// OBSOLETE     struct symtab *s;
-// OBSOLETE     for (s = objfile->symtabs; s != NULL; s = s->next)
-// OBSOLETE       {
-// OBSOLETE    sort_symtab_syms (s);
-// OBSOLETE       }
-// OBSOLETE   }
-// OBSOLETE 
-// OBSOLETE   /* Install any minimal symbols that have been collected as the current
-// OBSOLETE      minimal symbols for this objfile. */
-// OBSOLETE 
-// OBSOLETE   install_minimal_symbols (objfile);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE dst_new_init (struct objfile *ignore)
-// OBSOLETE {
-// OBSOLETE   /* Nothin' to do */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Perform any local cleanups required when we are done with a particular
-// OBSOLETE    objfile.  I.E, we are in the process of discarding all symbol information
-// OBSOLETE    for an objfile, freeing up all memory held for it, and unlinking the
-// OBSOLETE    objfile struct from the global list of known objfiles. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE dst_symfile_finish (struct objfile *objfile)
-// OBSOLETE {
-// OBSOLETE   /* Nothing to do */
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Get the next line number from the DST. Returns 0 when we hit an
-// OBSOLETE  * end directive or cannot continue for any other reason.
-// OBSOLETE  *
-// OBSOLETE  * Note that ordinary pc deltas are multiplied by two. Apparently
-// OBSOLETE  * this is what was really intended.
-// OBSOLETE  */
-// OBSOLETE static int
-// OBSOLETE get_dst_line (signed char **buffer, long *pc)
-// OBSOLETE {
-// OBSOLETE   static last_pc = 0;
-// OBSOLETE   static long last_line = 0;
-// OBSOLETE   static int last_file = 0;
-// OBSOLETE   dst_ln_entry_ptr_t entry;
-// OBSOLETE   int size;
-// OBSOLETE   dst_src_loc_t *src_loc;
-// OBSOLETE 
-// OBSOLETE   if (*pc != -1)
-// OBSOLETE     {
-// OBSOLETE       last_pc = *pc;
-// OBSOLETE       *pc = -1;
-// OBSOLETE     }
-// OBSOLETE   entry = (dst_ln_entry_ptr_t) * buffer;
-// OBSOLETE 
-// OBSOLETE   while (dst_ln_ln_delta (*entry) == dst_ln_escape_flag)
-// OBSOLETE     {
-// OBSOLETE       switch (entry->esc.esc_code)
-// OBSOLETE    {
-// OBSOLETE    case dst_ln_pad:
-// OBSOLETE      size = 1;             /* pad byte */
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_file:
-// OBSOLETE      /* file escape.  Next 4 bytes are a dst_src_loc_t */
-// OBSOLETE      size = 5;
-// OBSOLETE      src_loc = (dst_src_loc_t *) (*buffer + 1);
-// OBSOLETE      last_line = src_loc->line_number;
-// OBSOLETE      last_file = src_loc->file_index;
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_dln1_dpc1:
-// OBSOLETE      /* 1 byte line delta, 1 byte pc delta */
-// OBSOLETE      last_line += (*buffer)[1];
-// OBSOLETE      last_pc += 2 * (unsigned char) (*buffer)[2];
-// OBSOLETE      dst_record_line (last_line, last_pc);
-// OBSOLETE      size = 3;
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_dln2_dpc2:
-// OBSOLETE      /* 2 bytes line delta, 2 bytes pc delta */
-// OBSOLETE      last_line += *(short *) (*buffer + 1);
-// OBSOLETE      last_pc += 2 * (*(short *) (*buffer + 3));
-// OBSOLETE      size = 5;
-// OBSOLETE      dst_record_line (last_line, last_pc);
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_ln4_pc4:
-// OBSOLETE      /* 4 bytes ABSOLUTE line number, 4 bytes ABSOLUTE pc */
-// OBSOLETE      last_line = *(unsigned long *) (*buffer + 1);
-// OBSOLETE      last_pc = *(unsigned long *) (*buffer + 5);
-// OBSOLETE      size = 9;
-// OBSOLETE      dst_record_line (last_line, last_pc);
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_dln1_dpc0:
-// OBSOLETE      /* 1 byte line delta, pc delta = 0 */
-// OBSOLETE      size = 2;
-// OBSOLETE      last_line += (*buffer)[1];
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_ln_off_1:
-// OBSOLETE      /* statement escape, stmt # = 1 (2nd stmt on line) */
-// OBSOLETE      size = 1;
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_ln_off:
-// OBSOLETE      /* statement escape, stmt # = next byte */
-// OBSOLETE      size = 2;
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_entry:
-// OBSOLETE      /* entry escape, next byte is entry number */
-// OBSOLETE      size = 2;
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_exit:
-// OBSOLETE      /* exit escape */
-// OBSOLETE      size = 1;
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_stmt_end:
-// OBSOLETE      /* gap escape, 4 bytes pc delta */
-// OBSOLETE      size = 5;
-// OBSOLETE      /* last_pc += 2 * (*(long *) (*buffer + 1)); */
-// OBSOLETE      /* Apparently this isn't supposed to actually modify
-// OBSOLETE       * the pc value. Totally weird.
-// OBSOLETE       */
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_escape_11:
-// OBSOLETE    case dst_ln_escape_12:
-// OBSOLETE    case dst_ln_escape_13:
-// OBSOLETE      size = 1;
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_nxt_byte:
-// OBSOLETE      /* This shouldn't happen. If it does, we're SOL */
-// OBSOLETE      return 0;
-// OBSOLETE      break;
-// OBSOLETE    case dst_ln_end:
-// OBSOLETE      /* end escape, final entry follows */
-// OBSOLETE      return 0;
-// OBSOLETE    }
-// OBSOLETE       *buffer += (size < 0) ? -size : size;
-// OBSOLETE       entry = (dst_ln_entry_ptr_t) * buffer;
-// OBSOLETE     }
-// OBSOLETE   last_line += dst_ln_ln_delta (*entry);
-// OBSOLETE   last_pc += entry->delta.pc_delta * 2;
-// OBSOLETE   (*buffer)++;
-// OBSOLETE   dst_record_line (last_line, last_pc);
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE enter_all_lines (char *buffer, long address)
-// OBSOLETE {
-// OBSOLETE   if (buffer)
-// OBSOLETE     while (get_dst_line (&buffer, &address));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE get_dst_entry (char *buffer, dst_rec_ptr_t *ret_entry)
-// OBSOLETE {
-// OBSOLETE   int size;
-// OBSOLETE   dst_rec_ptr_t entry;
-// OBSOLETE   static int last_type;
-// OBSOLETE   int ar_size;
-// OBSOLETE   static unsigned lu3;
-// OBSOLETE 
-// OBSOLETE   entry = (dst_rec_ptr_t) buffer;
-// OBSOLETE   switch (entry->rec_type)
-// OBSOLETE     {
-// OBSOLETE     case dst_typ_pad:
-// OBSOLETE       size = 0;
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_comp_unit:
-// OBSOLETE       size = sizeof (DST_comp_unit (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_section_tab:
-// OBSOLETE       size = sizeof (DST_section_tab (entry))
-// OBSOLETE    + ((int) DST_section_tab (entry).number_of_sections
-// OBSOLETE       - dst_dummy_array_size) * sizeof (long);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_file_tab:
-// OBSOLETE       size = sizeof (DST_file_tab (entry))
-// OBSOLETE    + ((int) DST_file_tab (entry).number_of_files
-// OBSOLETE       - dst_dummy_array_size) * sizeof (dst_file_desc_t);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_block:
-// OBSOLETE       size = sizeof (DST_block (entry))
-// OBSOLETE    + ((int) DST_block (entry).n_of_code_ranges
-// OBSOLETE       - dst_dummy_array_size) * sizeof (dst_code_range_t);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_5:
-// OBSOLETE       size = -1;
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_var:
-// OBSOLETE       size = sizeof (DST_var (entry)) -
-// OBSOLETE    sizeof (dst_var_loc_long_t) * dst_dummy_array_size +
-// OBSOLETE    DST_var (entry).no_of_locs *
-// OBSOLETE    (DST_var (entry).short_locs ?
-// OBSOLETE     sizeof (dst_var_loc_short_t) :
-// OBSOLETE     sizeof (dst_var_loc_long_t));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_pointer:
-// OBSOLETE       size = sizeof (DST_pointer (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_array:
-// OBSOLETE       size = sizeof (DST_array (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_subrange:
-// OBSOLETE       size = sizeof (DST_subrange (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_set:
-// OBSOLETE       size = sizeof (DST_set (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_implicit_enum:
-// OBSOLETE       size = sizeof (DST_implicit_enum (entry))
-// OBSOLETE    + ((int) DST_implicit_enum (entry).nelems
-// OBSOLETE       - dst_dummy_array_size) * sizeof (dst_rel_offset_t);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_explicit_enum:
-// OBSOLETE       size = sizeof (DST_explicit_enum (entry))
-// OBSOLETE    + ((int) DST_explicit_enum (entry).nelems
-// OBSOLETE       - dst_dummy_array_size) * sizeof (dst_enum_elem_t);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_short_rec:
-// OBSOLETE       size = sizeof (DST_short_rec (entry))
-// OBSOLETE    + DST_short_rec (entry).nfields * sizeof (dst_short_field_t)
-// OBSOLETE    - dst_dummy_array_size * sizeof (dst_field_t);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_short_union:
-// OBSOLETE       size = sizeof (DST_short_union (entry))
-// OBSOLETE    + DST_short_union (entry).nfields * sizeof (dst_short_field_t)
-// OBSOLETE    - dst_dummy_array_size * sizeof (dst_field_t);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_file:
-// OBSOLETE       size = sizeof (DST_file (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_offset:
-// OBSOLETE       size = sizeof (DST_offset (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_alias:
-// OBSOLETE       size = sizeof (DST_alias (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_signature:
-// OBSOLETE       size = sizeof (DST_signature (entry)) +
-// OBSOLETE    ((int) DST_signature (entry).nargs -
-// OBSOLETE     dst_dummy_array_size) * sizeof (dst_arg_t);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_21:
-// OBSOLETE       size = -1;
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_old_label:
-// OBSOLETE       size = sizeof (DST_old_label (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_scope:
-// OBSOLETE       size = sizeof (DST_scope (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_end_scope:
-// OBSOLETE       size = 0;
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_25:
-// OBSOLETE     case dst_typ_26:
-// OBSOLETE       size = -1;
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_string_tab:
-// OBSOLETE     case dst_typ_global_name_tab:
-// OBSOLETE       size = sizeof (DST_string_tab (entry))
-// OBSOLETE    + DST_string_tab (entry).length
-// OBSOLETE    - dst_dummy_array_size;
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_forward:
-// OBSOLETE       size = sizeof (DST_forward (entry));
-// OBSOLETE       get_dst_entry ((char *) entry + DST_forward (entry).rec_off, &entry);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_size:
-// OBSOLETE       size = sizeof (DST_aux_size (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_align:
-// OBSOLETE       size = sizeof (DST_aux_align (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_field_size:
-// OBSOLETE       size = sizeof (DST_aux_field_size (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_field_off:
-// OBSOLETE       size = sizeof (DST_aux_field_off (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_field_align:
-// OBSOLETE       size = sizeof (DST_aux_field_align (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_qual:
-// OBSOLETE       size = sizeof (DST_aux_qual (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_var_bound:
-// OBSOLETE       size = sizeof (DST_aux_var_bound (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_extension:
-// OBSOLETE       size = DST_extension (entry).rec_size;
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_string:
-// OBSOLETE       size = sizeof (DST_string (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_old_entry:
-// OBSOLETE       size = 48;           /* Obsolete entry type */
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_const:
-// OBSOLETE       size = sizeof (DST_const (entry))
-// OBSOLETE    + DST_const (entry).value.length
-// OBSOLETE    - sizeof (DST_const (entry).value.val);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_reference:
-// OBSOLETE       size = sizeof (DST_reference (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_old_record:
-// OBSOLETE     case dst_typ_old_union:
-// OBSOLETE     case dst_typ_record:
-// OBSOLETE     case dst_typ_union:
-// OBSOLETE       size = sizeof (DST_record (entry))
-// OBSOLETE    + ((int) DST_record (entry).nfields
-// OBSOLETE       - dst_dummy_array_size) * sizeof (dst_field_t);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_type_deriv:
-// OBSOLETE       size = sizeof (DST_aux_type_deriv (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_locpool:
-// OBSOLETE       size = sizeof (DST_locpool (entry))
-// OBSOLETE    + ((int) DST_locpool (entry).length -
-// OBSOLETE       dst_dummy_array_size);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_variable:
-// OBSOLETE       size = sizeof (DST_variable (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_label:
-// OBSOLETE       size = sizeof (DST_label (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_entry:
-// OBSOLETE       size = sizeof (DST_entry (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_lifetime:
-// OBSOLETE       size = sizeof (DST_aux_lifetime (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_ptr_base:
-// OBSOLETE       size = sizeof (DST_aux_ptr_base (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_src_range:
-// OBSOLETE       size = sizeof (DST_aux_src_range (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_reg_val:
-// OBSOLETE       size = sizeof (DST_aux_reg_val (entry));
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_unit_names:
-// OBSOLETE       size = sizeof (DST_aux_unit_names (entry))
-// OBSOLETE    + ((int) DST_aux_unit_names (entry).number_of_names
-// OBSOLETE       - dst_dummy_array_size) * sizeof (dst_rel_offset_t);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_aux_sect_info:
-// OBSOLETE       size = sizeof (DST_aux_sect_info (entry))
-// OBSOLETE    + ((int) DST_aux_sect_info (entry).number_of_refs
-// OBSOLETE       - dst_dummy_array_size) * sizeof (dst_sect_ref_t);
-// OBSOLETE       break;
-// OBSOLETE     default:
-// OBSOLETE       size = -1;
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE   if (size == -1)
-// OBSOLETE     {
-// OBSOLETE       fprintf_unfiltered (gdb_stderr, "Warning: unexpected DST entry type (%d) found\nLast valid entry was of type: %d\n",
-// OBSOLETE                      (int) entry->rec_type,
-// OBSOLETE                      last_type);
-// OBSOLETE       fprintf_unfiltered (gdb_stderr, "Last unknown_3 value: %d\n", lu3);
-// OBSOLETE       size = 0;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     last_type = entry->rec_type;
-// OBSOLETE   if (size & 1)                    /* Align on a word boundary */
-// OBSOLETE     size++;
-// OBSOLETE   size += 2;
-// OBSOLETE   *ret_entry = entry;
-// OBSOLETE   return size;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE next_dst_entry (char **buffer, dst_rec_ptr_t *entry, dst_sec *table)
-// OBSOLETE {
-// OBSOLETE   if (*buffer - table->buffer >= table->size)
-// OBSOLETE     {
-// OBSOLETE       *entry = NULL;
-// OBSOLETE       return 0;
-// OBSOLETE     }
-// OBSOLETE   *buffer += get_dst_entry (*buffer, entry);
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #define NEXT_BLK(a, b) next_dst_entry(a, b, &blocks_info)
-// OBSOLETE #define NEXT_SYM(a, b) next_dst_entry(a, b, &symbols_info)
-// OBSOLETE #define    DST_OFFSET(a, b) ((char *) (a) + (b))
-// OBSOLETE 
-// OBSOLETE static dst_rec_ptr_t section_table = NULL;
-// OBSOLETE 
-// OBSOLETE char *
-// OBSOLETE get_sec_ref (dst_sect_ref_t *ref)
-// OBSOLETE {
-// OBSOLETE   dst_sec *section = NULL;
-// OBSOLETE   long offset;
-// OBSOLETE 
-// OBSOLETE   if (!section_table || !ref->sect_index)
-// OBSOLETE     return NULL;
-// OBSOLETE   offset = DST_section_tab (section_table).section_base[ref->sect_index - 1]
-// OBSOLETE     + ref->sect_offset;
-// OBSOLETE   if (offset >= blocks_info.base &&
-// OBSOLETE       offset < blocks_info.base + blocks_info.size)
-// OBSOLETE     section = &blocks_info;
-// OBSOLETE   else if (offset >= symbols_info.base &&
-// OBSOLETE       offset < symbols_info.base + symbols_info.size)
-// OBSOLETE     section = &symbols_info;
-// OBSOLETE   else if (offset >= lines_info.base &&
-// OBSOLETE       offset < lines_info.base + lines_info.size)
-// OBSOLETE     section = &lines_info;
-// OBSOLETE   if (!section)
-// OBSOLETE     return NULL;
-// OBSOLETE   return section->buffer + (offset - section->base);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE dst_get_addr (int section, long offset)
-// OBSOLETE {
-// OBSOLETE   if (!section_table || !section)
-// OBSOLETE     return 0;
-// OBSOLETE   return DST_section_tab (section_table).section_base[section - 1] + offset;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE dst_sym_addr (dst_sect_ref_t *ref)
-// OBSOLETE {
-// OBSOLETE   if (!section_table || !ref->sect_index)
-// OBSOLETE     return 0;
-// OBSOLETE   return DST_section_tab (section_table).section_base[ref->sect_index - 1]
-// OBSOLETE     + ref->sect_offset;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct symbol *
-// OBSOLETE create_new_symbol (struct objfile *objfile, char *name)
-// OBSOLETE {
-// OBSOLETE   struct symbol *sym = (struct symbol *)
-// OBSOLETE   obstack_alloc (&objfile->symbol_obstack, sizeof (struct symbol));
-// OBSOLETE   memset (sym, 0, sizeof (struct symbol));
-// OBSOLETE   SYMBOL_NAME (sym) = obsavestring (name, strlen (name),
-// OBSOLETE                                &objfile->symbol_obstack);
-// OBSOLETE   SYMBOL_VALUE (sym) = 0;
-// OBSOLETE   SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
-// OBSOLETE 
-// OBSOLETE   SYMBOL_CLASS (sym) = LOC_BLOCK;
-// OBSOLETE   return sym;
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static struct type *decode_dst_type (struct objfile *, dst_rec_ptr_t);
-// OBSOLETE 
-// OBSOLETE static struct type *
-// OBSOLETE decode_type_desc (struct objfile *objfile, dst_type_t *type_desc,
-// OBSOLETE              dst_rec_ptr_t base)
-// OBSOLETE {
-// OBSOLETE   struct type *type;
-// OBSOLETE   dst_rec_ptr_t entry;
-// OBSOLETE   if (type_desc->std_type.user_defined_type)
-// OBSOLETE     {
-// OBSOLETE       entry = (dst_rec_ptr_t) DST_OFFSET (base,
-// OBSOLETE                                      dst_user_type_offset (*type_desc));
-// OBSOLETE       type = decode_dst_type (objfile, entry);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       switch (type_desc->std_type.dtc)
-// OBSOLETE    {
-// OBSOLETE    case dst_int8_type:
-// OBSOLETE      type = builtin_type_signed_char;
-// OBSOLETE      break;
-// OBSOLETE    case dst_int16_type:
-// OBSOLETE      type = builtin_type_short;
-// OBSOLETE      break;
-// OBSOLETE    case dst_int32_type:
-// OBSOLETE      type = builtin_type_long;
-// OBSOLETE      break;
-// OBSOLETE    case dst_uint8_type:
-// OBSOLETE      type = builtin_type_unsigned_char;
-// OBSOLETE      break;
-// OBSOLETE    case dst_uint16_type:
-// OBSOLETE      type = builtin_type_unsigned_short;
-// OBSOLETE      break;
-// OBSOLETE    case dst_uint32_type:
-// OBSOLETE      type = builtin_type_unsigned_long;
-// OBSOLETE      break;
-// OBSOLETE    case dst_real32_type:
-// OBSOLETE      type = builtin_type_float;
-// OBSOLETE      break;
-// OBSOLETE    case dst_real64_type:
-// OBSOLETE      type = builtin_type_double;
-// OBSOLETE      break;
-// OBSOLETE    case dst_complex_type:
-// OBSOLETE      type = builtin_type_complex;
-// OBSOLETE      break;
-// OBSOLETE    case dst_dcomplex_type:
-// OBSOLETE      type = builtin_type_double_complex;
-// OBSOLETE      break;
-// OBSOLETE    case dst_bool8_type:
-// OBSOLETE      type = builtin_type_char;
-// OBSOLETE      break;
-// OBSOLETE    case dst_bool16_type:
-// OBSOLETE      type = builtin_type_short;
-// OBSOLETE      break;
-// OBSOLETE    case dst_bool32_type:
-// OBSOLETE      type = builtin_type_long;
-// OBSOLETE      break;
-// OBSOLETE    case dst_char_type:
-// OBSOLETE      type = builtin_type_char;
-// OBSOLETE      break;
-// OBSOLETE      /* The next few are more complex. I will take care
-// OBSOLETE       * of them properly at a later point.
-// OBSOLETE       */
-// OBSOLETE    case dst_string_type:
-// OBSOLETE      type = builtin_type_void;
-// OBSOLETE      break;
-// OBSOLETE    case dst_ptr_type:
-// OBSOLETE      type = builtin_type_void;
-// OBSOLETE      break;
-// OBSOLETE    case dst_set_type:
-// OBSOLETE      type = builtin_type_void;
-// OBSOLETE      break;
-// OBSOLETE    case dst_proc_type:
-// OBSOLETE      type = builtin_type_void;
-// OBSOLETE      break;
-// OBSOLETE    case dst_func_type:
-// OBSOLETE      type = builtin_type_void;
-// OBSOLETE      break;
-// OBSOLETE      /* Back tto some ordinary ones */
-// OBSOLETE    case dst_void_type:
-// OBSOLETE      type = builtin_type_void;
-// OBSOLETE      break;
-// OBSOLETE    case dst_uchar_type:
-// OBSOLETE      type = builtin_type_unsigned_char;
-// OBSOLETE      break;
-// OBSOLETE    default:
-// OBSOLETE      type = builtin_type_void;
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   return type;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE struct structure_list
-// OBSOLETE {
-// OBSOLETE   struct structure_list *next;
-// OBSOLETE   struct type *type;
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static struct structure_list *struct_list = NULL;
-// OBSOLETE 
-// OBSOLETE static struct type *
-// OBSOLETE find_dst_structure (char *name)
-// OBSOLETE {
-// OBSOLETE   struct structure_list *element;
-// OBSOLETE 
-// OBSOLETE   for (element = struct_list; element; element = element->next)
-// OBSOLETE     if (!strcmp (name, TYPE_NAME (element->type)))
-// OBSOLETE       return element->type;
-// OBSOLETE   return NULL;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE static struct type *
-// OBSOLETE decode_dst_structure (struct objfile *objfile, dst_rec_ptr_t entry, int code,
-// OBSOLETE                  int version)
-// OBSOLETE {
-// OBSOLETE   struct type *type, *child_type;
-// OBSOLETE   char *struct_name;
-// OBSOLETE   char *name, *field_name;
-// OBSOLETE   int i;
-// OBSOLETE   int fieldoffset, fieldsize;
-// OBSOLETE   dst_type_t type_desc;
-// OBSOLETE   struct structure_list *element;
-// OBSOLETE 
-// OBSOLETE   struct_name = DST_OFFSET (entry, DST_record (entry).noffset);
-// OBSOLETE   name = concat ((code == TYPE_CODE_UNION) ? "union " : "struct ",
-// OBSOLETE             struct_name, NULL);
-// OBSOLETE   type = find_dst_structure (name);
-// OBSOLETE   if (type)
-// OBSOLETE     {
-// OBSOLETE       xfree (name);
-// OBSOLETE       return type;
-// OBSOLETE     }
-// OBSOLETE   type = alloc_type (objfile);
-// OBSOLETE   TYPE_NAME (type) = obstack_copy0 (&objfile->symbol_obstack,
-// OBSOLETE                                name, strlen (name));
-// OBSOLETE   xfree (name);
-// OBSOLETE   TYPE_CODE (type) = code;
-// OBSOLETE   TYPE_LENGTH (type) = DST_record (entry).size;
-// OBSOLETE   TYPE_NFIELDS (type) = DST_record (entry).nfields;
-// OBSOLETE   TYPE_FIELDS (type) = (struct field *)
-// OBSOLETE     obstack_alloc (&objfile->symbol_obstack, sizeof (struct field) *
-// OBSOLETE               DST_record (entry).nfields);
-// OBSOLETE   fieldoffset = fieldsize = 0;
-// OBSOLETE   INIT_CPLUS_SPECIFIC (type);
-// OBSOLETE   element = (struct structure_list *)
-// OBSOLETE     xmalloc (sizeof (struct structure_list));
-// OBSOLETE   element->type = type;
-// OBSOLETE   element->next = struct_list;
-// OBSOLETE   struct_list = element;
-// OBSOLETE   for (i = 0; i < DST_record (entry).nfields; i++)
-// OBSOLETE     {
-// OBSOLETE       switch (version)
-// OBSOLETE    {
-// OBSOLETE    case 2:
-// OBSOLETE      field_name = DST_OFFSET (entry,
-// OBSOLETE                               DST_record (entry).f.ofields[i].noffset);
-// OBSOLETE      fieldoffset = DST_record (entry).f.ofields[i].foffset * 8 +
-// OBSOLETE        DST_record (entry).f.ofields[i].bit_offset;
-// OBSOLETE      fieldsize = DST_record (entry).f.ofields[i].size;
-// OBSOLETE      type_desc = DST_record (entry).f.ofields[i].type_desc;
-// OBSOLETE      break;
-// OBSOLETE    case 1:
-// OBSOLETE      field_name = DST_OFFSET (entry,
-// OBSOLETE                               DST_record (entry).f.fields[i].noffset);
-// OBSOLETE      type_desc = DST_record (entry).f.fields[i].type_desc;
-// OBSOLETE      switch (DST_record (entry).f.fields[i].f.field_loc.format_tag)
-// OBSOLETE        {
-// OBSOLETE        case dst_field_byte:
-// OBSOLETE          fieldoffset = DST_record (entry).f.
-// OBSOLETE            fields[i].f.field_byte.offset * 8;
-// OBSOLETE          fieldsize = -1;
-// OBSOLETE          break;
-// OBSOLETE        case dst_field_bit:
-// OBSOLETE          fieldoffset = DST_record (entry).f.
-// OBSOLETE            fields[i].f.field_bit.byte_offset * 8 +
-// OBSOLETE            DST_record (entry).f.
-// OBSOLETE            fields[i].f.field_bit.bit_offset;
-// OBSOLETE          fieldsize = DST_record (entry).f.
-// OBSOLETE            fields[i].f.field_bit.nbits;
-// OBSOLETE          break;
-// OBSOLETE        case dst_field_loc:
-// OBSOLETE          fieldoffset += fieldsize;
-// OBSOLETE          fieldsize = -1;
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE      break;
-// OBSOLETE    case 0:
-// OBSOLETE      field_name = DST_OFFSET (entry,
-// OBSOLETE                               DST_record (entry).f.sfields[i].noffset);
-// OBSOLETE      fieldoffset = DST_record (entry).f.sfields[i].foffset;
-// OBSOLETE      type_desc = DST_record (entry).f.sfields[i].type_desc;
-// OBSOLETE      if (i < DST_record (entry).nfields - 1)
-// OBSOLETE        fieldsize = DST_record (entry).f.sfields[i + 1].foffset;
-// OBSOLETE      else
-// OBSOLETE        fieldsize = DST_record (entry).size;
-// OBSOLETE      fieldsize -= fieldoffset;
-// OBSOLETE      fieldoffset *= 8;
-// OBSOLETE      fieldsize *= 8;
-// OBSOLETE    }
-// OBSOLETE       TYPE_FIELDS (type)[i].name =
-// OBSOLETE    obstack_copy0 (&objfile->symbol_obstack,
-// OBSOLETE                   field_name, strlen (field_name));
-// OBSOLETE       TYPE_FIELDS (type)[i].type = decode_type_desc (objfile,
-// OBSOLETE                                                 &type_desc,
-// OBSOLETE                                                 entry);
-// OBSOLETE       if (fieldsize == -1)
-// OBSOLETE    fieldsize = TYPE_LENGTH (TYPE_FIELDS (type)[i].type) *
-// OBSOLETE      8;
-// OBSOLETE       TYPE_FIELDS (type)[i].bitsize = fieldsize;
-// OBSOLETE       TYPE_FIELDS (type)[i].bitpos = fieldoffset;
-// OBSOLETE     }
-// OBSOLETE   return type;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct type *
-// OBSOLETE decode_dst_type (struct objfile *objfile, dst_rec_ptr_t entry)
-// OBSOLETE {
-// OBSOLETE   struct type *child_type, *type, *range_type, *index_type;
-// OBSOLETE 
-// OBSOLETE   switch (entry->rec_type)
-// OBSOLETE     {
-// OBSOLETE     case dst_typ_var:
-// OBSOLETE       return decode_type_desc (objfile,
-// OBSOLETE                           &DST_var (entry).type_desc,
-// OBSOLETE                           entry);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_variable:
-// OBSOLETE       return decode_type_desc (objfile,
-// OBSOLETE                           &DST_variable (entry).type_desc,
-// OBSOLETE                           entry);
-// OBSOLETE       break;
-// OBSOLETE     case dst_typ_short_rec:
-// OBSOLETE       return decode_dst_structure (objfile, entry, TYPE_CODE_STRUCT, 0);
-// OBSOLETE     case dst_typ_short_union:
-// OBSOLETE       return decode_dst_structure (objfile, entry, TYPE_CODE_UNION, 0);
-// OBSOLETE     case dst_typ_union:
-// OBSOLETE       return decode_dst_structure (objfile, entry, TYPE_CODE_UNION, 1);
-// OBSOLETE     case dst_typ_record:
-// OBSOLETE       return decode_dst_structure (objfile, entry, TYPE_CODE_STRUCT, 1);
-// OBSOLETE     case dst_typ_old_union:
-// OBSOLETE       return decode_dst_structure (objfile, entry, TYPE_CODE_UNION, 2);
-// OBSOLETE     case dst_typ_old_record:
-// OBSOLETE       return decode_dst_structure (objfile, entry, TYPE_CODE_STRUCT, 2);
-// OBSOLETE     case dst_typ_pointer:
-// OBSOLETE       return make_pointer_type (
-// OBSOLETE                             decode_type_desc (objfile,
-// OBSOLETE                                         &DST_pointer (entry).type_desc,
-// OBSOLETE                                               entry),
-// OBSOLETE                             NULL);
-// OBSOLETE     case dst_typ_array:
-// OBSOLETE       child_type = decode_type_desc (objfile,
-// OBSOLETE                                 &DST_pointer (entry).type_desc,
-// OBSOLETE                                 entry);
-// OBSOLETE       index_type = lookup_fundamental_type (objfile,
-// OBSOLETE                                        FT_INTEGER);
-// OBSOLETE       range_type = create_range_type ((struct type *) NULL,
-// OBSOLETE                                  index_type, DST_array (entry).lo_bound,
-// OBSOLETE                                  DST_array (entry).hi_bound);
-// OBSOLETE       return create_array_type ((struct type *) NULL, child_type,
-// OBSOLETE                            range_type);
-// OBSOLETE     case dst_typ_alias:
-// OBSOLETE       return decode_type_desc (objfile,
-// OBSOLETE                           &DST_alias (entry).type_desc,
-// OBSOLETE                           entry);
-// OBSOLETE     default:
-// OBSOLETE       return builtin_type_int;
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE struct symbol_list
-// OBSOLETE {
-// OBSOLETE   struct symbol_list *next;
-// OBSOLETE   struct symbol *symbol;
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static struct symbol_list *dst_global_symbols = NULL;
-// OBSOLETE static int total_globals = 0;
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE decode_dst_locstring (char *locstr, struct symbol *sym)
-// OBSOLETE {
-// OBSOLETE   dst_loc_entry_t *entry, *next_entry;
-// OBSOLETE   CORE_ADDR temp;
-// OBSOLETE   int count = 0;
-// OBSOLETE 
-// OBSOLETE   while (1)
-// OBSOLETE     {
-// OBSOLETE       if (count++ == 100)
-// OBSOLETE    {
-// OBSOLETE      fprintf_unfiltered (gdb_stderr, "Error reading locstring\n");
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       entry = (dst_loc_entry_t *) locstr;
-// OBSOLETE       next_entry = (dst_loc_entry_t *) (locstr + 1);
-// OBSOLETE       switch (entry->header.code)
-// OBSOLETE    {
-// OBSOLETE    case dst_lsc_end:       /* End of string */
-// OBSOLETE      return;
-// OBSOLETE    case dst_lsc_indirect:  /* Indirect through previous. Arg == 6 */
-// OBSOLETE      /* Or register ax x == arg */
-// OBSOLETE      if (entry->header.arg < 6)
-// OBSOLETE        {
-// OBSOLETE          SYMBOL_CLASS (sym) = LOC_REGISTER;
-// OBSOLETE          SYMBOL_VALUE (sym) = entry->header.arg + 8;
-// OBSOLETE        }
-// OBSOLETE      /* We predict indirects */
-// OBSOLETE      locstr++;
-// OBSOLETE      break;
-// OBSOLETE    case dst_lsc_dreg:
-// OBSOLETE      SYMBOL_CLASS (sym) = LOC_REGISTER;
-// OBSOLETE      SYMBOL_VALUE (sym) = entry->header.arg;
-// OBSOLETE      locstr++;
-// OBSOLETE      break;
-// OBSOLETE    case dst_lsc_section:   /* Section (arg+1) */
-// OBSOLETE      SYMBOL_VALUE (sym) = dst_get_addr (entry->header.arg + 1, 0);
-// OBSOLETE      locstr++;
-// OBSOLETE      break;
-// OBSOLETE    case dst_lsc_sec_byte:  /* Section (next_byte+1) */
-// OBSOLETE      SYMBOL_VALUE (sym) = dst_get_addr (locstr[1] + 1, 0);
-// OBSOLETE      locstr += 2;
-// OBSOLETE      break;
-// OBSOLETE    case dst_lsc_add:       /* Add (arg+1)*2 */
-// OBSOLETE    case dst_lsc_sub:       /* Subtract (arg+1)*2 */
-// OBSOLETE      temp = (entry->header.arg + 1) * 2;
-// OBSOLETE      locstr++;
-// OBSOLETE      if (*locstr == dst_multiply_256)
-// OBSOLETE        {
-// OBSOLETE          temp <<= 8;
-// OBSOLETE          locstr++;
-// OBSOLETE        }
-// OBSOLETE      switch (entry->header.code)
-// OBSOLETE        {
-// OBSOLETE        case dst_lsc_add:
-// OBSOLETE          if (SYMBOL_CLASS (sym) == LOC_LOCAL)
-// OBSOLETE            SYMBOL_CLASS (sym) = LOC_ARG;
-// OBSOLETE          SYMBOL_VALUE (sym) += temp;
-// OBSOLETE          break;
-// OBSOLETE        case dst_lsc_sub:
-// OBSOLETE          SYMBOL_VALUE (sym) -= temp;
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE      break;
-// OBSOLETE    case dst_lsc_add_byte:
-// OBSOLETE    case dst_lsc_sub_byte:
-// OBSOLETE      switch (entry->header.arg & 0x03)
-// OBSOLETE        {
-// OBSOLETE        case 1:
-// OBSOLETE          temp = (unsigned char) locstr[1];
-// OBSOLETE          locstr += 2;
-// OBSOLETE          break;
-// OBSOLETE        case 2:
-// OBSOLETE          temp = *(unsigned short *) (locstr + 1);
-// OBSOLETE          locstr += 3;
-// OBSOLETE          break;
-// OBSOLETE        case 3:
-// OBSOLETE          temp = *(unsigned long *) (locstr + 1);
-// OBSOLETE          locstr += 5;
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE      if (*locstr == dst_multiply_256)
-// OBSOLETE        {
-// OBSOLETE          temp <<= 8;
-// OBSOLETE          locstr++;
-// OBSOLETE        }
-// OBSOLETE      switch (entry->header.code)
-// OBSOLETE        {
-// OBSOLETE        case dst_lsc_add_byte:
-// OBSOLETE          if (SYMBOL_CLASS (sym) == LOC_LOCAL)
-// OBSOLETE            SYMBOL_CLASS (sym) = LOC_ARG;
-// OBSOLETE          SYMBOL_VALUE (sym) += temp;
-// OBSOLETE          break;
-// OBSOLETE        case dst_lsc_sub_byte:
-// OBSOLETE          SYMBOL_VALUE (sym) -= temp;
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE      break;
-// OBSOLETE    case dst_lsc_sbreg:     /* Stack base register (frame pointer). Arg==0 */
-// OBSOLETE      if (next_entry->header.code != dst_lsc_indirect)
-// OBSOLETE        {
-// OBSOLETE          SYMBOL_VALUE (sym) = 0;
-// OBSOLETE          SYMBOL_CLASS (sym) = LOC_STATIC;
-// OBSOLETE          return;
-// OBSOLETE        }
-// OBSOLETE      SYMBOL_VALUE (sym) = 0;
-// OBSOLETE      SYMBOL_CLASS (sym) = LOC_LOCAL;
-// OBSOLETE      locstr++;
-// OBSOLETE      break;
-// OBSOLETE    default:
-// OBSOLETE      SYMBOL_VALUE (sym) = 0;
-// OBSOLETE      SYMBOL_CLASS (sym) = LOC_STATIC;
-// OBSOLETE      return;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct symbol_list *
-// OBSOLETE process_dst_symbols (struct objfile *objfile, dst_rec_ptr_t entry, char *name,
-// OBSOLETE                 int *nsyms_ret)
-// OBSOLETE {
-// OBSOLETE   struct symbol_list *list = NULL, *element;
-// OBSOLETE   struct symbol *sym;
-// OBSOLETE   char *symname;
-// OBSOLETE   int nsyms = 0;
-// OBSOLETE   char *location;
-// OBSOLETE   long line;
-// OBSOLETE   dst_type_t symtype;
-// OBSOLETE   struct type *type;
-// OBSOLETE   dst_var_attr_t attr;
-// OBSOLETE   dst_var_loc_t loc_type;
-// OBSOLETE   unsigned loc_index;
-// OBSOLETE   long loc_value;
-// OBSOLETE 
-// OBSOLETE   if (!entry)
-// OBSOLETE     {
-// OBSOLETE       *nsyms_ret = 0;
-// OBSOLETE       return NULL;
-// OBSOLETE     }
-// OBSOLETE   location = (char *) entry;
-// OBSOLETE   while (NEXT_SYM (&location, &entry) &&
-// OBSOLETE     entry->rec_type != dst_typ_end_scope)
-// OBSOLETE     {
-// OBSOLETE       if (entry->rec_type == dst_typ_var)
-// OBSOLETE    {
-// OBSOLETE      if (DST_var (entry).short_locs)
-// OBSOLETE        {
-// OBSOLETE          loc_type = DST_var (entry).locs.shorts[0].loc_type;
-// OBSOLETE          loc_index = DST_var (entry).locs.shorts[0].loc_index;
-// OBSOLETE          loc_value = DST_var (entry).locs.shorts[0].location;
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          loc_type = DST_var (entry).locs.longs[0].loc_type;
-// OBSOLETE          loc_index = DST_var (entry).locs.longs[0].loc_index;
-// OBSOLETE          loc_value = DST_var (entry).locs.longs[0].location;
-// OBSOLETE        }
-// OBSOLETE      if (loc_type == dst_var_loc_external)
-// OBSOLETE        continue;
-// OBSOLETE      symname = DST_OFFSET (entry, DST_var (entry).noffset);
-// OBSOLETE      line = DST_var (entry).src_loc.line_number;
-// OBSOLETE      symtype = DST_var (entry).type_desc;
-// OBSOLETE      attr = DST_var (entry).attributes;
-// OBSOLETE    }
-// OBSOLETE       else if (entry->rec_type == dst_typ_variable)
-// OBSOLETE    {
-// OBSOLETE      symname = DST_OFFSET (entry,
-// OBSOLETE                            DST_variable (entry).noffset);
-// OBSOLETE      line = DST_variable (entry).src_loc.line_number;
-// OBSOLETE      symtype = DST_variable (entry).type_desc;
-// OBSOLETE      attr = DST_variable (entry).attributes;
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      continue;
-// OBSOLETE    }
-// OBSOLETE       if (symname && name && !strcmp (symname, name))
-// OBSOLETE    /* It's the function return value */
-// OBSOLETE    continue;
-// OBSOLETE       sym = create_new_symbol (objfile, symname);
-// OBSOLETE 
-// OBSOLETE       if ((attr & (1 << dst_var_attr_global)) ||
-// OBSOLETE      (attr & (1 << dst_var_attr_static)))
-// OBSOLETE    SYMBOL_CLASS (sym) = LOC_STATIC;
-// OBSOLETE       else
-// OBSOLETE    SYMBOL_CLASS (sym) = LOC_LOCAL;
-// OBSOLETE       SYMBOL_LINE (sym) = line;
-// OBSOLETE       SYMBOL_TYPE (sym) = decode_type_desc (objfile, &symtype,
-// OBSOLETE                                        entry);
-// OBSOLETE       SYMBOL_VALUE (sym) = 0;
-// OBSOLETE       switch (entry->rec_type)
-// OBSOLETE    {
-// OBSOLETE    case dst_typ_var:
-// OBSOLETE      switch (loc_type)
-// OBSOLETE        {
-// OBSOLETE        case dst_var_loc_abs:
-// OBSOLETE          SYMBOL_VALUE_ADDRESS (sym) = loc_value;
-// OBSOLETE          break;
-// OBSOLETE        case dst_var_loc_sect_off:
-// OBSOLETE        case dst_var_loc_ind_sect_off:      /* What is this? */
-// OBSOLETE          SYMBOL_VALUE_ADDRESS (sym) = dst_get_addr (
-// OBSOLETE                                                      loc_index,
-// OBSOLETE                                                      loc_value);
-// OBSOLETE          break;
-// OBSOLETE        case dst_var_loc_ind_reg_rel:       /* What is this? */
-// OBSOLETE        case dst_var_loc_reg_rel:
-// OBSOLETE          /* If it isn't fp relative, specify the
-// OBSOLETE           * register it's relative to.
-// OBSOLETE           */
-// OBSOLETE          if (loc_index)
-// OBSOLETE            {
-// OBSOLETE              sym->aux_value.basereg = loc_index;
-// OBSOLETE            }
-// OBSOLETE          SYMBOL_VALUE (sym) = loc_value;
-// OBSOLETE          if (loc_value > 0 &&
-// OBSOLETE              SYMBOL_CLASS (sym) == LOC_BASEREG)
-// OBSOLETE            SYMBOL_CLASS (sym) = LOC_BASEREG_ARG;
-// OBSOLETE          break;
-// OBSOLETE        case dst_var_loc_reg:
-// OBSOLETE          SYMBOL_VALUE (sym) = loc_index;
-// OBSOLETE          SYMBOL_CLASS (sym) = LOC_REGISTER;
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE      break;
-// OBSOLETE    case dst_typ_variable:
-// OBSOLETE      /* External variable..... don't try to interpret
-// OBSOLETE       * its nonexistant locstring.
-// OBSOLETE       */
-// OBSOLETE      if (DST_variable (entry).loffset == -1)
-// OBSOLETE        continue;
-// OBSOLETE      decode_dst_locstring (DST_OFFSET (entry,
-// OBSOLETE                                        DST_variable (entry).loffset),
-// OBSOLETE                            sym);
-// OBSOLETE    }
-// OBSOLETE       element = (struct symbol_list *)
-// OBSOLETE    xmalloc (sizeof (struct symbol_list));
-// OBSOLETE 
-// OBSOLETE       if (attr & (1 << dst_var_attr_global))
-// OBSOLETE    {
-// OBSOLETE      element->next = dst_global_symbols;
-// OBSOLETE      dst_global_symbols = element;
-// OBSOLETE      total_globals++;
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      element->next = list;
-// OBSOLETE      list = element;
-// OBSOLETE      nsyms++;
-// OBSOLETE    }
-// OBSOLETE       element->symbol = sym;
-// OBSOLETE     }
-// OBSOLETE   *nsyms_ret = nsyms;
-// OBSOLETE   return list;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE static struct symbol *
-// OBSOLETE process_dst_function (struct objfile *objfile, dst_rec_ptr_t entry, char *name,
-// OBSOLETE                  CORE_ADDR address)
-// OBSOLETE {
-// OBSOLETE   struct symbol *sym;
-// OBSOLETE   struct type *type, *ftype;
-// OBSOLETE   dst_rec_ptr_t sym_entry, typ_entry;
-// OBSOLETE   char *location;
-// OBSOLETE   struct symbol_list *element;
-// OBSOLETE 
-// OBSOLETE   type = builtin_type_int;
-// OBSOLETE   sym = create_new_symbol (objfile, name);
-// OBSOLETE   SYMBOL_CLASS (sym) = LOC_BLOCK;
-// OBSOLETE 
-// OBSOLETE   if (entry)
-// OBSOLETE     {
-// OBSOLETE       location = (char *) entry;
-// OBSOLETE       do
-// OBSOLETE    {
-// OBSOLETE      NEXT_SYM (&location, &sym_entry);
-// OBSOLETE    }
-// OBSOLETE       while (sym_entry && sym_entry->rec_type != dst_typ_signature);
-// OBSOLETE 
-// OBSOLETE       if (sym_entry)
-// OBSOLETE    {
-// OBSOLETE      SYMBOL_LINE (sym) =
-// OBSOLETE        DST_signature (sym_entry).src_loc.line_number;
-// OBSOLETE      if (DST_signature (sym_entry).result)
-// OBSOLETE        {
-// OBSOLETE          typ_entry = (dst_rec_ptr_t)
-// OBSOLETE            DST_OFFSET (sym_entry,
-// OBSOLETE                        DST_signature (sym_entry).result);
-// OBSOLETE          type = decode_dst_type (objfile, typ_entry);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (!type->function_type)
-// OBSOLETE     {
-// OBSOLETE       ftype = alloc_type (objfile);
-// OBSOLETE       type->function_type = ftype;
-// OBSOLETE       TYPE_TARGET_TYPE (ftype) = type;
-// OBSOLETE       TYPE_CODE (ftype) = TYPE_CODE_FUNC;
-// OBSOLETE     }
-// OBSOLETE   SYMBOL_TYPE (sym) = type->function_type;
-// OBSOLETE 
-// OBSOLETE   /* Now add ourselves to the global symbols list */
-// OBSOLETE   element = (struct symbol_list *)
-// OBSOLETE     xmalloc (sizeof (struct symbol_list));
-// OBSOLETE 
-// OBSOLETE   element->next = dst_global_symbols;
-// OBSOLETE   dst_global_symbols = element;
-// OBSOLETE   total_globals++;
-// OBSOLETE   element->symbol = sym;
-// OBSOLETE 
-// OBSOLETE   return sym;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct block *
-// OBSOLETE process_dst_block (struct objfile *objfile, dst_rec_ptr_t entry)
-// OBSOLETE {
-// OBSOLETE   struct block *block;
-// OBSOLETE   struct symbol *function = NULL;
-// OBSOLETE   CORE_ADDR address;
-// OBSOLETE   long size;
-// OBSOLETE   char *name;
-// OBSOLETE   dst_rec_ptr_t child_entry, symbol_entry;
-// OBSOLETE   struct block *child_block;
-// OBSOLETE   int total_symbols = 0;
-// OBSOLETE   char fake_name[20];
-// OBSOLETE   static long fake_seq = 0;
-// OBSOLETE   struct symbol_list *symlist, *nextsym;
-// OBSOLETE   int symnum;
-// OBSOLETE 
-// OBSOLETE   if (DST_block (entry).noffset)
-// OBSOLETE     name = DST_OFFSET (entry, DST_block (entry).noffset);
-// OBSOLETE   else
-// OBSOLETE     name = NULL;
-// OBSOLETE   if (DST_block (entry).n_of_code_ranges)
-// OBSOLETE     {
-// OBSOLETE       address = dst_sym_addr (
-// OBSOLETE                           &DST_block (entry).code_ranges[0].code_start);
-// OBSOLETE       size = DST_block (entry).code_ranges[0].code_size;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       address = -1;
-// OBSOLETE       size = 0;
-// OBSOLETE     }
-// OBSOLETE   symbol_entry = (dst_rec_ptr_t) get_sec_ref (&DST_block (entry).symbols_start);
-// OBSOLETE   switch (DST_block (entry).block_type)
-// OBSOLETE     {
-// OBSOLETE       /* These are all really functions. Even the "program" type.
-// OBSOLETE        * This is because the Apollo OS was written in Pascal, and
-// OBSOLETE        * in Pascal, the main procedure is described as the Program.
-// OBSOLETE        * Cute, huh?
-// OBSOLETE        */
-// OBSOLETE     case dst_block_procedure:
-// OBSOLETE     case dst_block_function:
-// OBSOLETE     case dst_block_subroutine:
-// OBSOLETE     case dst_block_program:
-// OBSOLETE       prim_record_minimal_symbol (name, address, mst_text, objfile);
-// OBSOLETE       function = process_dst_function (
-// OBSOLETE                                    objfile,
-// OBSOLETE                                    symbol_entry,
-// OBSOLETE                                    name,
-// OBSOLETE                                    address);
-// OBSOLETE       enter_all_lines (get_sec_ref (&DST_block (entry).code_ranges[0].lines_start), address);
-// OBSOLETE       break;
-// OBSOLETE     case dst_block_block_data:
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     default:
-// OBSOLETE       /* GDB has to call it something, and the module name
-// OBSOLETE        * won't cut it
-// OBSOLETE        */
-// OBSOLETE       sprintf (fake_name, "block_%08lx", fake_seq++);
-// OBSOLETE       function = process_dst_function (
-// OBSOLETE                                    objfile, NULL, fake_name, address);
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE   symlist = process_dst_symbols (objfile, symbol_entry,
-// OBSOLETE                             name, &total_symbols);
-// OBSOLETE   block = (struct block *)
-// OBSOLETE     obstack_alloc (&objfile->symbol_obstack,
-// OBSOLETE               sizeof (struct block) +
-// OBSOLETE                 (total_symbols - 1) * sizeof (struct symbol *));
-// OBSOLETE 
-// OBSOLETE   symnum = 0;
-// OBSOLETE   while (symlist)
-// OBSOLETE     {
-// OBSOLETE       nextsym = symlist->next;
-// OBSOLETE 
-// OBSOLETE       block->sym[symnum] = symlist->symbol;
-// OBSOLETE 
-// OBSOLETE       xfree (symlist);
-// OBSOLETE       symlist = nextsym;
-// OBSOLETE       symnum++;
-// OBSOLETE     }
-// OBSOLETE   BLOCK_NSYMS (block) = total_symbols;
-// OBSOLETE   BLOCK_HASHTABLE (block) = 0;
-// OBSOLETE   BLOCK_START (block) = address;
-// OBSOLETE   BLOCK_END (block) = address + size;
-// OBSOLETE   BLOCK_SUPERBLOCK (block) = 0;
-// OBSOLETE   if (function)
-// OBSOLETE     {
-// OBSOLETE       SYMBOL_BLOCK_VALUE (function) = block;
-// OBSOLETE       BLOCK_FUNCTION (block) = function;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     BLOCK_FUNCTION (block) = 0;
-// OBSOLETE 
-// OBSOLETE   if (DST_block (entry).child_block_off)
-// OBSOLETE     {
-// OBSOLETE       child_entry = (dst_rec_ptr_t) DST_OFFSET (entry,
-// OBSOLETE                                     DST_block (entry).child_block_off);
-// OBSOLETE       while (child_entry)
-// OBSOLETE    {
-// OBSOLETE      child_block = process_dst_block (objfile, child_entry);
-// OBSOLETE      if (child_block)
-// OBSOLETE        {
-// OBSOLETE          if (BLOCK_START (child_block) <
-// OBSOLETE              BLOCK_START (block) ||
-// OBSOLETE              BLOCK_START (block) == -1)
-// OBSOLETE            BLOCK_START (block) =
-// OBSOLETE              BLOCK_START (child_block);
-// OBSOLETE          if (BLOCK_END (child_block) >
-// OBSOLETE              BLOCK_END (block) ||
-// OBSOLETE              BLOCK_END (block) == -1)
-// OBSOLETE            BLOCK_END (block) =
-// OBSOLETE              BLOCK_END (child_block);
-// OBSOLETE          BLOCK_SUPERBLOCK (child_block) = block;
-// OBSOLETE        }
-// OBSOLETE      if (DST_block (child_entry).sibling_block_off)
-// OBSOLETE        child_entry = (dst_rec_ptr_t) DST_OFFSET (
-// OBSOLETE                                                   child_entry,
-// OBSOLETE                             DST_block (child_entry).sibling_block_off);
-// OBSOLETE      else
-// OBSOLETE        child_entry = NULL;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   record_pending_block (objfile, block, NULL);
-// OBSOLETE   return block;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE read_dst_symtab (struct objfile *objfile)
-// OBSOLETE {
-// OBSOLETE   char *buffer;
-// OBSOLETE   dst_rec_ptr_t entry, file_table, root_block;
-// OBSOLETE   char *source_file;
-// OBSOLETE   struct block *block, *global_block;
-// OBSOLETE   int symnum;
-// OBSOLETE   struct symbol_list *nextsym;
-// OBSOLETE   int module_num = 0;
-// OBSOLETE   struct structure_list *element;
-// OBSOLETE 
-// OBSOLETE   current_objfile = objfile;
-// OBSOLETE   buffer = blocks_info.buffer;
-// OBSOLETE   while (NEXT_BLK (&buffer, &entry))
-// OBSOLETE     {
-// OBSOLETE       if (entry->rec_type == dst_typ_comp_unit)
-// OBSOLETE    {
-// OBSOLETE      file_table = (dst_rec_ptr_t) DST_OFFSET (entry,
-// OBSOLETE                                      DST_comp_unit (entry).file_table);
-// OBSOLETE      section_table = (dst_rec_ptr_t) DST_OFFSET (entry,
-// OBSOLETE                                   DST_comp_unit (entry).section_table);
-// OBSOLETE      root_block = (dst_rec_ptr_t) DST_OFFSET (entry,
-// OBSOLETE                               DST_comp_unit (entry).root_block_offset);
-// OBSOLETE      source_file = DST_OFFSET (file_table,
-// OBSOLETE                            DST_file_tab (file_table).files[0].noffset);
-// OBSOLETE      /* Point buffer to the start of the next comp_unit */
-// OBSOLETE      buffer = DST_OFFSET (entry,
-// OBSOLETE                           DST_comp_unit (entry).data_size);
-// OBSOLETE      dst_start_symtab ();
-// OBSOLETE 
-// OBSOLETE      block = process_dst_block (objfile, root_block);
-// OBSOLETE 
-// OBSOLETE      global_block = (struct block *)
-// OBSOLETE        obstack_alloc (&objfile->symbol_obstack,
-// OBSOLETE                       sizeof (struct block) +
-// OBSOLETE                         (total_globals - 1) *
-// OBSOLETE                       sizeof (struct symbol *));
-// OBSOLETE      BLOCK_NSYMS (global_block) = total_globals;
-// OBSOLETE      BLOCK_HASHTABLE (global_block) = 0;
-// OBSOLETE      for (symnum = 0; symnum < total_globals; symnum++)
-// OBSOLETE        {
-// OBSOLETE          nextsym = dst_global_symbols->next;
-// OBSOLETE 
-// OBSOLETE          global_block->sym[symnum] =
-// OBSOLETE            dst_global_symbols->symbol;
-// OBSOLETE 
-// OBSOLETE          xfree (dst_global_symbols);
-// OBSOLETE          dst_global_symbols = nextsym;
-// OBSOLETE        }
-// OBSOLETE      dst_global_symbols = NULL;
-// OBSOLETE      total_globals = 0;
-// OBSOLETE      BLOCK_FUNCTION (global_block) = 0;
-// OBSOLETE      BLOCK_START (global_block) = BLOCK_START (block);
-// OBSOLETE      BLOCK_END (global_block) = BLOCK_END (block);
-// OBSOLETE      BLOCK_SUPERBLOCK (global_block) = 0;
-// OBSOLETE      BLOCK_SUPERBLOCK (block) = global_block;
-// OBSOLETE      record_pending_block (objfile, global_block, NULL);
-// OBSOLETE 
-// OBSOLETE      complete_symtab (source_file,
-// OBSOLETE                       BLOCK_START (block),
-// OBSOLETE                       BLOCK_END (block) - BLOCK_START (block));
-// OBSOLETE      module_num++;
-// OBSOLETE      dst_end_symtab (objfile);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   if (module_num)
-// OBSOLETE     prim_record_minimal_symbol ("<end_of_program>",
-// OBSOLETE                            BLOCK_END (block), mst_text, objfile);
-// OBSOLETE   /* One more faked symbol to make sure nothing can ever run off the
-// OBSOLETE    * end of the symbol table. This one represents the end of the
-// OBSOLETE    * text space. It used to be (CORE_ADDR) -1 (effectively the highest
-// OBSOLETE    * int possible), but some parts of gdb treated it as a signed
-// OBSOLETE    * number and failed comparisons. We could equally use 7fffffff,
-// OBSOLETE    * but no functions are ever mapped to an address higher than
-// OBSOLETE    * 40000000
-// OBSOLETE    */
-// OBSOLETE   prim_record_minimal_symbol ("<end_of_text>",
-// OBSOLETE                          (CORE_ADDR) 0x40000000,
-// OBSOLETE                          mst_text, objfile);
-// OBSOLETE   while (struct_list)
-// OBSOLETE     {
-// OBSOLETE       element = struct_list;
-// OBSOLETE       struct_list = element->next;
-// OBSOLETE       xfree (element);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Support for line number handling */
-// OBSOLETE static char *linetab = NULL;
-// OBSOLETE static long linetab_offset;
-// OBSOLETE static unsigned long linetab_size;
-// OBSOLETE 
-// OBSOLETE /* Read in all the line numbers for fast lookups later.  Leave them in
-// OBSOLETE    external (unswapped) format in memory; we'll swap them as we enter
-// OBSOLETE    them into GDB's data structures.  */
-// OBSOLETE static int
-// OBSOLETE init_one_section (int chan, dst_sec *secinfo)
-// OBSOLETE {
-// OBSOLETE   if (secinfo->size == 0
-// OBSOLETE       || lseek (chan, secinfo->position, 0) == -1
-// OBSOLETE       || (secinfo->buffer = xmalloc (secinfo->size)) == NULL
-// OBSOLETE       || myread (chan, secinfo->buffer, secinfo->size) == -1)
-// OBSOLETE     return 0;
-// OBSOLETE   else
-// OBSOLETE     return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE init_dst_sections (int chan)
-// OBSOLETE {
-// OBSOLETE 
-// OBSOLETE   if (!init_one_section (chan, &blocks_info) ||
-// OBSOLETE       !init_one_section (chan, &lines_info) ||
-// OBSOLETE       !init_one_section (chan, &symbols_info))
-// OBSOLETE     return -1;
-// OBSOLETE   else
-// OBSOLETE     return 0;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Fake up support for relocating symbol addresses.  FIXME.  */
-// OBSOLETE 
-// OBSOLETE struct section_offsets dst_symfile_faker =
-// OBSOLETE {0};
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE dst_symfile_offsets (struct objfile *objfile, struct section_addr_info *addrs)
-// OBSOLETE {
-// OBSOLETE   objfile->num_sections = 1;
-// OBSOLETE   objfile->section_offsets = &dst_symfile_faker;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Register our ability to parse symbols for DST BFD files */
-// OBSOLETE 
-// OBSOLETE static struct sym_fns dst_sym_fns =
-// OBSOLETE {
-// OBSOLETE   /* FIXME: Can this be integrated with coffread.c?  If not, should it be
-// OBSOLETE      a separate flavour like ecoff?  */
-// OBSOLETE   (enum bfd_flavour) -2,
-// OBSOLETE 
-// OBSOLETE   dst_new_init,                    /* sym_new_init: init anything gbl to entire symtab */
-// OBSOLETE   dst_symfile_init,                /* sym_init: read initial info, setup for sym_read() */
-// OBSOLETE   dst_symfile_read,                /* sym_read: read a symbol file into symtab */
-// OBSOLETE   dst_symfile_finish,              /* sym_finish: finished with file, cleanup */
-// OBSOLETE   dst_symfile_offsets,             /* sym_offsets:  xlate external to internal form */
-// OBSOLETE   NULL                             /* next: pointer to next struct sym_fns */
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_dstread (void)
-// OBSOLETE {
-// OBSOLETE   add_symtab_fns (&dst_sym_fns);
-// OBSOLETE }
index ddc4db8f4b36c88f9c79dec1e162163091fbf67c..fab10c08e021f04f004350a0e0004fafd6043cea 100644 (file)
@@ -37,10 +37,13 @@ struct dummy_frame
 {
   struct dummy_frame *next;
 
+  /* These values belong to the caller (the previous frame, the frame
+     that this unwinds back to).  */
   CORE_ADDR pc;
   CORE_ADDR fp;
   CORE_ADDR sp;
   CORE_ADDR top;
+  struct frame_id id;
   struct regcache *regcache;
 
   /* Address range of the call dummy code.  Look for PC in the range
@@ -54,7 +57,7 @@ static struct dummy_frame *dummy_frame_stack = NULL;
 /* Function: find_dummy_frame(pc, fp, sp)
 
    Search the stack of dummy frames for one matching the given PC and
-   FP/SP.  Unlike PC_IN_CALL_DUMMY, this function doesn't need to
+   FP/SP.  Unlike pc_in_dummy_frame(), this function doesn't need to
    adjust for DECR_PC_AFTER_BREAK.  This is because it is only legal
    to call this function after the PC has been adjusted.  */
 
@@ -104,7 +107,7 @@ struct dummy_frame *
 cached_find_dummy_frame (struct frame_info *frame, void **cache)
 {
   if ((*cache) == NULL)
-    (*cache) = find_dummy_frame (frame->pc, frame->frame);
+    (*cache) = find_dummy_frame (get_frame_pc (frame), get_frame_base (frame));
   return (*cache);
 }
 
@@ -136,6 +139,24 @@ deprecated_generic_find_dummy_frame (CORE_ADDR pc, CORE_ADDR fp)
 
 int
 generic_pc_in_call_dummy (CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR fp)
+{
+  return pc_in_dummy_frame (pc);
+}
+
+/* Return non-zero if the PC falls in a dummy frame.
+
+   The code below which allows DECR_PC_AFTER_BREAK is for infrun.c,
+   which may give the function a PC without that subtracted out.
+
+   FIXME: cagney/2002-11-23: This is silly.  Surely "infrun.c" can
+   figure out what the real PC (as in the resume address) is BEFORE
+   calling this function (Oh, and I'm not even sure that this function
+   is called with an decremented PC, the call to pc_in_call_dummy() in
+   that file is conditional on !CALL_DUMMY_BREAKPOINT_OFFSET_P yet
+   generic dummy targets set CALL_DUMMY_BREAKPOINT_OFFSET. True?).  */
+
+int
+pc_in_dummy_frame (CORE_ADDR pc)
 {
   struct dummy_frame *dummyframe;
   for (dummyframe = dummy_frame_stack;
@@ -187,7 +208,7 @@ void
 generic_push_dummy_frame (void)
 {
   struct dummy_frame *dummy_frame;
-  CORE_ADDR fp = (get_current_frame ())->frame;
+  CORE_ADDR fp = get_frame_base (get_current_frame ());
 
   /* check to see if there are stale dummy frames, 
      perhaps left over from when a longjump took us out of a 
@@ -212,6 +233,7 @@ generic_push_dummy_frame (void)
   dummy_frame->sp = read_sp ();
   dummy_frame->top = 0;
   dummy_frame->fp = fp;
+  dummy_frame->id = get_frame_id (get_current_frame ());
   regcache_cpy (dummy_frame->regcache, current_regcache);
   dummy_frame->next = dummy_frame_stack;
   dummy_frame_stack = dummy_frame;
@@ -239,8 +261,9 @@ void
 generic_pop_current_frame (void (*popper) (struct frame_info * frame))
 {
   struct frame_info *frame = get_current_frame ();
-
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (get_frame_type (frame) == DUMMY_FRAME)
+    /* NOTE: cagney/2002-22-23: Does this ever occure?  Surely a dummy
+       frame will have already been poped by the "infrun.c" code.  */
     generic_pop_dummy_frame ();
   else
     (*popper) (frame);
@@ -308,3 +331,30 @@ dummy_frame_register_unwind (struct frame_info *frame, void **cache,
     }
 }
 
+CORE_ADDR
+dummy_frame_pc_unwind (struct frame_info *frame,
+                      void **cache)
+{
+  struct dummy_frame *dummy = cached_find_dummy_frame (frame, cache);
+  /* Oops!  In a dummy-frame but can't find the stack dummy.  Pretend
+     that the frame doesn't unwind.  Should this function instead
+     return a has-no-caller indication?  */
+  if (dummy == NULL)
+    return 0;
+  return dummy->pc;
+}
+
+
+struct frame_id
+dummy_frame_id_unwind (struct frame_info *frame,
+                      void **cache)
+{
+  struct dummy_frame *dummy = cached_find_dummy_frame (frame, cache);
+  /* Oops!  In a dummy-frame but can't find the stack dummy.  Pretend
+     that the frame doesn't unwind.  Should this function instead
+     return a has-no-caller indication?  */
+  if (dummy == NULL)
+    return null_frame_id;
+  return dummy->id;
+}
+
index bd4e199c758ca2cf63e501e34e47f1f929f1d455..cfa2709142e14125878ddfe88748f252a9ff8613 100644 (file)
@@ -54,6 +54,43 @@ extern void dummy_frame_register_unwind (struct frame_info *frame,
                                         int *realnump,
                                         void *valuep);
 
+/* Assuming that FRAME is a dummy, return the resume address for the
+   previous frame.  */
+
+extern CORE_ADDR dummy_frame_pc_unwind (struct frame_info *frame,
+                                       void **unwind_cache);
+
+/* Assuming that FRAME is a dummy, return the ID of the calling frame
+   (the frame that the dummy has the saved state of).  */
+
+extern struct frame_id dummy_frame_id_unwind (struct frame_info *frame,
+                                             void **unwind_cache);
+
+/* Does the PC fall in a dummy frame?
+
+   This function is used by "frame.c" when creating a new `struct
+   frame_info'.
+
+   Note that there is also very similar code in breakpoint.c (where
+   the bpstat stop reason is computed).  It is looking for a PC
+   falling on a dummy_frame breakpoint.  Perhaphs this, and that code
+   should be combined?
+
+   Architecture dependant code, that has access to a frame, should not
+   use this function.  Instead (get_frame_type() == DUMMY_FRAME)
+   should be used.
+
+   Hmm, but what about threads?  When the dummy-frame code tries to
+   relocate a dummy frame's saved registers it definitly needs to
+   differentiate between threads (otherwize it will do things like
+   clean-up the wrong threads frames).  However, when just trying to
+   identify a dummy-frame that shouldn't matter.  The wost that can
+   happen is that a thread is marked as sitting in a dummy frame when,
+   in reality, its corrupted its stack, to the point that a PC is
+   pointing into a dummy frame.  */
+
+extern int pc_in_dummy_frame (CORE_ADDR pc);
+
 /* Return the regcache that belongs to the dummy-frame identifed by PC
    and FP, or NULL if no such frame exists.  */
 /* FIXME: cagney/2002-11-08: The function only exists because of
index feb8e12001a9c72c37113985075260b045b2b731..c8834e927956dff6629307a1ca2665b1e0bc34f1 100644 (file)
@@ -113,7 +113,7 @@ static int ethernet = 0;
    different names than GDB does, and don't support all the registers
    either.  */
 
-static char *r3900_regnames[NUM_REGS] =
+static char *r3900_regnames[] =
 {
   "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
   "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
@@ -456,8 +456,15 @@ fetch_bitmapped_register (int regno, struct bit_field *bf)
 {
   unsigned long val;
   unsigned char regbuf[MAX_REGISTER_RAW_SIZE];
+  char *regname = NULL;
 
-  monitor_printf ("x%s\r", r3900_regnames[regno]);
+  if (regno >= sizeof (r3900_regnames) / sizeof (r3900_regnames[0]))
+    internal_error (__FILE__, __LINE__,
+                    "fetch_bitmapped_register: regno out of bounds");
+  else
+    regname = r3900_regnames[regno];
+
+  monitor_printf ("x%s\r", regname);
   val = fetch_fields (bf);
   monitor_printf (".\r");
   monitor_expect_prompt (NULL, 0);
@@ -501,9 +508,16 @@ static void
 store_bitmapped_register (int regno, struct bit_field *bf)
 {
   unsigned long oldval, newval;
+  char *regname = NULL;
+
+  if (regno >= sizeof (r3900_regnames) / sizeof (r3900_regnames[0]))
+    internal_error (__FILE__, __LINE__,
+                    "fetch_bitmapped_register: regno out of bounds");
+  else
+    regname = r3900_regnames[regno];
 
   /* Fetch the current value of the register.  */
-  monitor_printf ("x%s\r", r3900_regnames[regno]);
+  monitor_printf ("x%s\r", regname);
   oldval = fetch_fields (bf);
   newval = read_register (regno);
 
index 30c2db7e683bcffc95347135409f8c54e74166f2..75c3c4daf8efc07a0d1c92846da8ede5d1ed8254 100644 (file)
@@ -1746,13 +1746,19 @@ cfi_frame_chain (struct frame_info *fi)
 }
 
 /* Sets the pc of the frame.  */
-void
+CORE_ADDR
 cfi_init_frame_pc (int fromleaf, struct frame_info *fi)
 {
-  if (fi->next)
-    get_reg ((char *) &(fi->pc), UNWIND_CONTEXT (fi->next), PC_REGNUM);
+  if (get_next_frame (fi))
+    {
+      CORE_ADDR pc;
+      /* FIXME: cagney/2002-12-04: This is straight wrong.  It's
+         assuming that the PC is CORE_ADDR (a host quantity) in size.  */
+      get_reg ((void *)&pc, UNWIND_CONTEXT (get_next_frame (fi)), PC_REGNUM);
+      return pc;
+    }
   else
-    fi->pc = read_pc ();
+    return read_pc ();
 }
 
 /* Initialize unwind context informations of the frame.  */
index a1cc39cb5819e09158deeeb890ac007bf3bb31e9..2c8be97ddca640dbdec8fd33841fde8ed09ae30d 100644 (file)
@@ -67,7 +67,7 @@ void cfi_pop_frame (struct frame_info *);
 CORE_ADDR cfi_frame_chain (struct frame_info *fi);
 
 /* Sets the pc of the frame.  */
-void cfi_init_frame_pc (int fromleaf, struct frame_info *fi);
+CORE_ADDR cfi_init_frame_pc (int fromleaf, struct frame_info *fi);
 
 /* Initialize unwind context informations of the frame.  */
 void cfi_init_extra_frame_info (int fromleaf, struct frame_info *fi);
index 1b6bb582ed6bba5c0a852e3298bc9ab229806fef..8f26ac4a69dc6a756b206ec11955ad6bc2f1a7e5 100644 (file)
@@ -561,138 +561,63 @@ struct field_info
 
 /* Various complaints about symbol reading that don't abort the process */
 
-static struct deprecated_complaint dwarf2_const_ignored =
-{
-  "type qualifier 'const' ignored", 0, 0
-};
-static struct deprecated_complaint dwarf2_volatile_ignored =
-{
-  "type qualifier 'volatile' ignored", 0, 0
-};
-static struct deprecated_complaint dwarf2_non_const_array_bound_ignored =
-{
-  "non-constant array bounds form '%s' ignored", 0, 0
-};
-static struct deprecated_complaint dwarf2_missing_line_number_section =
-{
-  "missing .debug_line section", 0, 0
-};
-static struct deprecated_complaint dwarf2_statement_list_fits_in_line_number_section =
-{
-  "statement list doesn't fit in .debug_line section", 0, 0
-};
-static struct deprecated_complaint dwarf2_mangled_line_number_section =
-{
-  "mangled .debug_line section", 0, 0
-};
-static struct deprecated_complaint dwarf2_unsupported_die_ref_attr =
-{
-  "unsupported die ref attribute form: '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_unsupported_stack_op =
-{
-  "unsupported stack op: '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_complex_location_expr =
-{
-  "location expression too complex", 0, 0
-};
-static struct deprecated_complaint dwarf2_unsupported_tag =
-{
-  "unsupported tag: '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_unsupported_at_encoding =
-{
-  "unsupported DW_AT_encoding: '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_unsupported_at_frame_base =
-{
-  "unsupported DW_AT_frame_base for function '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_unexpected_tag =
-{
-  "unexepected tag in read_type_die: '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_missing_at_frame_base =
-{
-  "DW_AT_frame_base missing for DW_OP_fbreg", 0, 0
-};
-static struct deprecated_complaint dwarf2_bad_static_member_name =
-{
-  "unrecognized static data member name '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_unsupported_accessibility =
-{
-  "unsupported accessibility %d", 0, 0
-};
-static struct deprecated_complaint dwarf2_bad_member_name_complaint =
-{
-  "cannot extract member name from '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_missing_member_fn_type_complaint =
-{
-  "member function type missing for '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_vtbl_not_found_complaint =
-{
-  "virtual function table pointer not found when defining class '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_absolute_sibling_complaint =
-{
-  "ignoring absolute DW_AT_sibling", 0, 0
-};
-static struct deprecated_complaint dwarf2_const_value_length_mismatch =
-{
-  "const value length mismatch for '%s', got %d, expected %d", 0, 0
-};
-static struct deprecated_complaint dwarf2_unsupported_const_value_attr =
-{
-  "unsupported const value attribute form: '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_misplaced_line_number =
-{
-  "misplaced first line number at 0x%lx for '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_line_header_too_long =
-{
-  "line number info header doesn't fit in `.debug_line' section", 0, 0
-};
-static struct deprecated_complaint dwarf2_missing_macinfo_section =
-{
-  "missing .debug_macinfo section", 0, 0
-};
-static struct deprecated_complaint dwarf2_macros_too_long =
+static void
+dwarf2_non_const_array_bound_ignored_complaint (const char *arg1)
 {
-  "macro info runs off end of `.debug_macinfo' section", 0, 0
-};
-static struct deprecated_complaint dwarf2_macros_not_terminated =
+  complaint (&symfile_complaints, "non-constant array bounds form '%s' ignored",
+            arg1);
+}
+
+static void
+dwarf2_statement_list_fits_in_line_number_section_complaint (void)
 {
-  "no terminating 0-type entry for macros in `.debug_macinfo' section", 0, 0
-};
-static struct deprecated_complaint dwarf2_macro_outside_file =
+  complaint (&symfile_complaints,
+            "statement list doesn't fit in .debug_line section");
+}
+
+static void
+dwarf2_complex_location_expr_complaint (void)
 {
-  "debug info gives macro %s outside of any file: %s", 0, 0
-};
-static struct deprecated_complaint dwarf2_macro_unmatched_end_file =
+  complaint (&symfile_complaints, "location expression too complex");
+}
+
+static void
+dwarf2_unsupported_at_frame_base_complaint (const char *arg1)
 {
-  "macro debug info has an unmatched `close_file' directive", 0, 0
-};
-static struct deprecated_complaint dwarf2_macro_malformed_definition =
+  complaint (&symfile_complaints,
+            "unsupported DW_AT_frame_base for function '%s'", arg1);
+}
+
+static void
+dwarf2_const_value_length_mismatch_complaint (const char *arg1, int arg2,
+                                             int arg3)
 {
-  "macro debug info contains a malformed macro definition:\n`%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_macro_spaces_in_definition =
+  complaint (&symfile_complaints,
+            "const value length mismatch for '%s', got %d, expected %d", arg1,
+            arg2, arg3);
+}
+
+static void
+dwarf2_macros_too_long_complaint (void)
 {
-  "macro definition contains spaces in formal argument list:\n`%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_invalid_attrib_class =
+  complaint (&symfile_complaints,
+            "macro info runs off end of `.debug_macinfo' section");
+}
+
+static void
+dwarf2_macro_malformed_definition_complaint (const char *arg1)
 {
-  "invalid attribute class or form for '%s' in '%s'", 0, 0
-};
-static struct deprecated_complaint dwarf2_invalid_pointer_size = 
+  complaint (&symfile_complaints,
+            "macro debug info contains a malformed macro definition:\n`%s'",
+            arg1);
+}
+
+static void
+dwarf2_invalid_attrib_class_complaint (const char *arg1, const char *arg2)
 {
-  "invalid pointer size %d", 0, 0
-};
+  complaint (&symfile_complaints,
+            "invalid attribute class or form for '%s' in '%s'", arg1, arg2);
+}
 
 /* local function prototypes */
 
@@ -2131,17 +2056,17 @@ read_func_scope (struct die_info *die, struct objfile *objfile,
         }
       else if (attr->form == DW_FORM_data4 || attr->form == DW_FORM_data8)
         {
-          complain (&dwarf2_complex_location_expr);
+         dwarf2_complex_location_expr_complaint ();
           addr = 0;
         }
       else
         {
-          complain (&dwarf2_invalid_attrib_class, "DW_AT_frame_base", name);
+         dwarf2_invalid_attrib_class_complaint ("DW_AT_frame_base", name);
           addr = 0;
         }
     
       if (isderef)
-       complain (&dwarf2_unsupported_at_frame_base, name);
+       dwarf2_unsupported_at_frame_base_complaint (name);
       else if (isreg)
        frame_base_reg = addr;
       else if (offreg)
@@ -2150,7 +2075,7 @@ read_func_scope (struct die_info *die, struct objfile *objfile,
          frame_base_offset = addr;
        }
       else
-       complain (&dwarf2_unsupported_at_frame_base, name);
+       dwarf2_unsupported_at_frame_base_complaint (name);
     }
 
   new = push_context (0, lowpc);
@@ -2302,8 +2227,11 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
     new_field->virtuality = DW_UNSND (attr);
 
   fp = &new_field->field;
-  if (die->tag == DW_TAG_member)
+
+  if (die->tag == DW_TAG_member && ! die_is_declaration (die))
     {
+      /* Data member other than a C++ static data member.  */
+      
       /* Get type of field.  */
       fp->type = die_type (die, objfile, cu_header);
 
@@ -2388,8 +2316,15 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
          fip->non_public_fields = 1;
        }
     }
-  else if (die->tag == DW_TAG_variable)
+  else if (die->tag == DW_TAG_member || die->tag == DW_TAG_variable)
     {
+      /* C++ static member.  */
+
+      /* NOTE: carlton/2002-11-05: It should be a DW_TAG_member that
+        is a declaration, but all versions of G++ as of this writing
+        (so through at least 3.2.1) incorrectly generate
+        DW_TAG_variable tags.  */
+      
       char *physname;
 
       /* C++ static member.
@@ -2490,8 +2425,8 @@ dwarf2_attach_fields_to_type (struct field_info *fip, struct type *type,
        default:
          /* Unknown accessibility.  Complain and treat it as public.  */
          {
-           complain (&dwarf2_unsupported_accessibility,
-                     fip->fields->accessibility);
+           complaint (&symfile_complaints, "unsupported accessibility %d",
+                      fip->fields->accessibility);
          }
          break;
        }
@@ -2598,7 +2533,8 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
        fnp->voffset = VOFFSET_STATIC;
     }
   else
-    complain (&dwarf2_missing_member_fn_type_complaint, physname);
+    complaint (&symfile_complaints, "member function type missing for '%s'",
+              physname);
 
   /* Get fcontext from DW_AT_containing_type if present.  */
   if (dwarf_attr (die, DW_AT_containing_type) != NULL)
@@ -2638,12 +2574,12 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
         }
       else if (attr->form == DW_FORM_data4 || attr->form == DW_FORM_data8)
         {
-          complain (&dwarf2_complex_location_expr);
+         dwarf2_complex_location_expr_complaint ();
         }
       else
         {
-          complain (&dwarf2_invalid_attrib_class, "DW_AT_vtable_elem_location",
-                    fieldname);
+         dwarf2_invalid_attrib_class_complaint ("DW_AT_vtable_elem_location",
+                                                fieldname);
         }
    }
 }
@@ -2777,13 +2713,14 @@ read_structure_scope (struct die_info *die, struct objfile *objfile,
 
       while (child_die && child_die->tag)
        {
-         if (child_die->tag == DW_TAG_member)
-           {
-             dwarf2_add_field (&fi, child_die, objfile, cu_header);
-           }
-         else if (child_die->tag == DW_TAG_variable)
+         if (child_die->tag == DW_TAG_member
+             || child_die->tag == DW_TAG_variable)
            {
-             /* C++ static member.  */
+             /* NOTE: carlton/2002-11-05: A C++ static data member
+                should be a DW_TAG_member that is a declaration, but
+                all versions of G++ as of this writing (so through at
+                least 3.2.1) incorrectly generate DW_TAG_variable
+                tags for them instead.  */
              dwarf2_add_field (&fi, child_die, objfile, cu_header);
            }
          else if (child_die->tag == DW_TAG_subprogram)
@@ -2843,8 +2780,10 @@ read_structure_scope (struct die_info *die, struct objfile *objfile,
 
                  /* Complain if virtual function table field not found.  */
                  if (i < TYPE_N_BASECLASSES (t))
-                   complain (&dwarf2_vtbl_not_found_complaint,
-                         TYPE_TAG_NAME (type) ? TYPE_TAG_NAME (type) : "");
+                   complaint (&symfile_complaints,
+                              "virtual function table pointer not found when defining class '%s'",
+                              TYPE_TAG_NAME (type) ? TYPE_TAG_NAME (type) :
+                              "");
                }
              else
                {
@@ -3045,8 +2984,8 @@ read_array_type (struct die_info *die, struct objfile *objfile,
                }
              else
                {
-                 complain (&dwarf2_non_const_array_bound_ignored,
-                           dwarf_form_name (attr->form));
+                 dwarf2_non_const_array_bound_ignored_complaint
+                   (dwarf_form_name (attr->form));
 #ifdef FORTRAN_HACK
                  die->type = lookup_pointer_type (element_type);
                  return;
@@ -3081,8 +3020,8 @@ read_array_type (struct die_info *die, struct objfile *objfile,
                }
              else
                {
-                 complain (&dwarf2_non_const_array_bound_ignored,
-                           dwarf_form_name (attr->form));
+                 dwarf2_non_const_array_bound_ignored_complaint
+                   (dwarf_form_name (attr->form));
 #ifdef FORTRAN_HACK
                  die->type = lookup_pointer_type (element_type);
                  return;
@@ -3149,12 +3088,12 @@ read_common_block (struct die_info *die, struct objfile *objfile,
         }
       else if (attr->form == DW_FORM_data4 || attr->form == DW_FORM_data8)
         {
-          complain (&dwarf2_complex_location_expr);
+         dwarf2_complex_location_expr_complaint ();
         }
       else
         {
-          complain (&dwarf2_invalid_attrib_class, "DW_AT_location",
-                    "common block member");
+         dwarf2_invalid_attrib_class_complaint ("DW_AT_location",
+                                                "common block member");
         }
     }
   if (die->has_children)
@@ -3279,7 +3218,7 @@ read_tag_pointer_type (struct die_info *die, struct objfile *objfile,
        }
       else if (TYPE_LENGTH (type) != byte_size)
        {
-         complain (&dwarf2_invalid_pointer_size, byte_size);
+         complaint (&symfile_complaints, "invalid pointer size %d", byte_size);
        }
       else {
        /* Should we also complain about unhandled address classes?  */
@@ -3578,8 +3517,8 @@ read_base_type (struct die_info *die, struct objfile *objfile)
          type_flags |= TYPE_FLAG_UNSIGNED;
          break;
        default:
-         complain (&dwarf2_unsupported_at_encoding,
-                   dwarf_type_encoding_name (encoding));
+         complaint (&symfile_complaints, "unsupported DW_AT_encoding: '%s'",
+                    dwarf_type_encoding_name (encoding));
          break;
        }
       type = init_type (code, size, type_flags, DW_STRING (attr), objfile);
@@ -3895,12 +3834,12 @@ read_partial_die (struct partial_die_info *part_die, bfd *abfd,
             }
           else if (attr.form == DW_FORM_data4 || attr.form == DW_FORM_data8)
             {
-              complain (&dwarf2_complex_location_expr);
+             dwarf2_complex_location_expr_complaint ();
             }
           else
             {
-              complain (&dwarf2_invalid_attrib_class, "DW_AT_location",
-                        "partial symbol information");
+             dwarf2_invalid_attrib_class_complaint ("DW_AT_location",
+                                                    "partial symbol information");
             }
          break;
        case DW_AT_language:
@@ -3924,7 +3863,7 @@ read_partial_die (struct partial_die_info *part_die, bfd *abfd,
          /* Ignore absolute siblings, they might point outside of
             the current compile unit.  */
          if (attr.form == DW_FORM_ref_addr)
-           complain (&dwarf2_absolute_sibling_complaint);
+           complaint (&symfile_complaints, "ignoring absolute DW_AT_sibling");
          else
            part_die->sibling =
              dwarf_info_buffer + dwarf2_get_ref_die_offset (&attr);
@@ -4636,7 +4575,7 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd,
 
   if (dwarf_line_buffer == NULL)
     {
-      complain (&dwarf2_missing_line_number_section);
+      complaint (&symfile_complaints, "missing .debug_line section");
       return 0;
     }
 
@@ -4644,7 +4583,7 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd,
      could be 12 bytes long, but we're just going to fudge that.  */
   if (offset + 4 >= dwarf_line_size)
     {
-      complain (&dwarf2_statement_list_fits_in_line_number_section);
+      dwarf2_statement_list_fits_in_line_number_section_complaint ();
       return 0;
     }
 
@@ -4660,7 +4599,7 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd,
   line_ptr += bytes_read;
   if (line_ptr + lh->total_length > dwarf_line_buffer + dwarf_line_size)
     {
-      complain (&dwarf2_statement_list_fits_in_line_number_section);
+      dwarf2_statement_list_fits_in_line_number_section_complaint ();
       return 0;
     }
   lh->statement_program_end = line_ptr + lh->total_length;
@@ -4715,7 +4654,8 @@ dwarf_decode_line_header (unsigned int offset, bfd *abfd,
   lh->statement_program_start = line_ptr; 
 
   if (line_ptr > dwarf_line_buffer + dwarf_line_size)
-    complain (&dwarf2_line_header_too_long);
+    complaint (&symfile_complaints,
+              "line number info header doesn't fit in `.debug_line' section");
 
   discard_cleanups (back_to);
   return lh;
@@ -4760,8 +4700,9 @@ check_cu_functions (CORE_ADDR address)
   if (fn->seen_line)
     return address;
   if (address != fn->lowpc)
-    complain (&dwarf2_misplaced_line_number,
-             (unsigned long) address, fn->name);
+    complaint (&symfile_complaints,
+              "misplaced first line number at 0x%lx for '%s'",
+              (unsigned long) address, fn->name);
   fn->seen_line = 1;
   return fn->lowpc;
 }
@@ -4864,7 +4805,8 @@ dwarf_decode_lines (struct line_header *lh, char *comp_dir, bfd *abfd,
                   }
                  break;
                default:
-                 complain (&dwarf2_mangled_line_number_section);
+                 complaint (&symfile_complaints,
+                            "mangled .debug_line section");
                  return;
                }
              break;
@@ -5088,12 +5030,12 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
                   else if (attr->form == DW_FORM_data4
                            || attr->form == DW_FORM_data8)
                     {
-                      complain (&dwarf2_complex_location_expr);
+                     dwarf2_complex_location_expr_complaint ();
                     }
                   else
                     {
-                      complain (&dwarf2_invalid_attrib_class, "DW_AT_location",
-                                "external variable");
+                     dwarf2_invalid_attrib_class_complaint ("DW_AT_location",
+                                                            "external variable");
                     }
                  add_symbol_to_list (sym, &global_symbols);
                   if (is_thread_local)
@@ -5134,12 +5076,12 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
                   else if (attr->form == DW_FORM_data4
                            || attr->form == DW_FORM_data8)
                     {
-                      complain (&dwarf2_complex_location_expr);
+                     dwarf2_complex_location_expr_complaint ();
                     }
                   else
                     {
-                      complain (&dwarf2_invalid_attrib_class, "DW_AT_location",
-                                "external variable");
+                     dwarf2_invalid_attrib_class_complaint ("DW_AT_location",
+                                                            "external variable");
                       addr = 0;
                     }
                  add_symbol_to_list (sym, list_in_scope);
@@ -5211,7 +5153,7 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
                  if (isderef)
                    {
                      if (basereg != frame_base_reg)
-                       complain (&dwarf2_complex_location_expr);
+                       dwarf2_complex_location_expr_complaint ();
                      SYMBOL_CLASS (sym) = LOC_REF_ARG;
                    }
                  else
@@ -5347,7 +5289,8 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
             trash data, but since we must specifically ignore things
             we don't recognize, there is nothing else we should do at
             this point. */
-         complain (&dwarf2_unsupported_tag, dwarf_tag_name (die->tag));
+         complaint (&symfile_complaints, "unsupported tag: '%s'",
+                    dwarf_tag_name (die->tag));
          break;
        }
     }
@@ -5367,8 +5310,10 @@ dwarf2_const_value (struct attribute *attr, struct symbol *sym,
     {
     case DW_FORM_addr:
       if (TYPE_LENGTH (SYMBOL_TYPE (sym)) != cu_header->addr_size)
-       complain (&dwarf2_const_value_length_mismatch, SYMBOL_NAME (sym),
-                 cu_header->addr_size, TYPE_LENGTH (SYMBOL_TYPE (sym)));
+       dwarf2_const_value_length_mismatch_complaint (SYMBOL_NAME (sym),
+                                                     cu_header->addr_size,
+                                                     TYPE_LENGTH (SYMBOL_TYPE
+                                                                  (sym)));
       SYMBOL_VALUE_BYTES (sym) = (char *)
        obstack_alloc (&objfile->symbol_obstack, cu_header->addr_size);
       store_address (SYMBOL_VALUE_BYTES (sym), cu_header->addr_size,
@@ -5381,8 +5326,10 @@ dwarf2_const_value (struct attribute *attr, struct symbol *sym,
     case DW_FORM_block:
       blk = DW_BLOCK (attr);
       if (TYPE_LENGTH (SYMBOL_TYPE (sym)) != blk->size)
-       complain (&dwarf2_const_value_length_mismatch, SYMBOL_NAME (sym),
-                 blk->size, TYPE_LENGTH (SYMBOL_TYPE (sym)));
+       dwarf2_const_value_length_mismatch_complaint (SYMBOL_NAME (sym),
+                                                     blk->size,
+                                                     TYPE_LENGTH (SYMBOL_TYPE
+                                                                  (sym)));
       SYMBOL_VALUE_BYTES (sym) = (char *)
        obstack_alloc (&objfile->symbol_obstack, blk->size);
       memcpy (SYMBOL_VALUE_BYTES (sym), blk->data, blk->size);
@@ -5418,8 +5365,9 @@ dwarf2_const_value (struct attribute *attr, struct symbol *sym,
       break;
 
     default:
-      complain (&dwarf2_unsupported_const_value_attr,
-               dwarf_form_name (attr->form));
+      complaint (&symfile_complaints,
+                "unsupported const value attribute form: '%s'",
+                dwarf_form_name (attr->form));
       SYMBOL_VALUE (sym) = 0;
       SYMBOL_CLASS (sym) = LOC_CONST;
       break;
@@ -5602,7 +5550,8 @@ read_type_die (struct die_info *die, struct objfile *objfile,
       read_base_type (die, objfile);
       break;
     default:
-      complain (&dwarf2_unexpected_tag, dwarf_tag_name (die->tag));
+      complaint (&symfile_complaints, "unexepected tag in read_type_die: '%s'",
+                dwarf_tag_name (die->tag));
       break;
     }
 }
@@ -6730,7 +6679,9 @@ dwarf2_get_ref_die_offset (struct attribute *attr)
       result = cu_header_offset + DW_UNSND (attr);
       break;
     default:
-      complain (&dwarf2_unsupported_die_ref_attr, dwarf_form_name (attr->form));
+      complaint (&symfile_complaints,
+                "unsupported die ref attribute form: '%s'",
+                dwarf_form_name (attr->form));
     }
   return result;
 }
@@ -6966,7 +6917,8 @@ decode_locdesc (struct dwarf_block *blk, struct objfile *objfile,
            }
          else
            {
-             complain (&dwarf2_missing_at_frame_base);
+             complaint (&symfile_complaints,
+                        "DW_AT_frame_base missing for DW_OP_fbreg");
              islocal = 1;
            }
          break;
@@ -7043,7 +6995,7 @@ decode_locdesc (struct dwarf_block *blk, struct objfile *objfile,
          /* If we're not the last op, then we definitely can't encode
             this using GDB's address_class enum.  */
          if (i < size)
-           complain (&dwarf2_complex_location_expr);
+           dwarf2_complex_location_expr_complaint ();
          break;
 
         case DW_OP_GNU_push_tls_address:
@@ -7053,11 +7005,12 @@ decode_locdesc (struct dwarf_block *blk, struct objfile *objfile,
          /* Nothing should follow this operator, so the top of stack would
             be returned.  */
          if (i < size)
-           complain (&dwarf2_complex_location_expr);
+           dwarf2_complex_location_expr_complaint ();
           break;
 
        default:
-         complain (&dwarf2_unsupported_stack_op, dwarf_stack_op_name (op));
+         complaint (&symfile_complaints, "unsupported stack op: '%s'",
+                    dwarf_stack_op_name (op));
          return (stack[stacki]);
        }
     }
@@ -7190,7 +7143,9 @@ consume_improper_spaces (const char *p, const char *body)
 {
   if (*p == ' ')
     {
-      complain (&dwarf2_macro_spaces_in_definition, body);
+      complaint (&symfile_complaints,
+                "macro definition contains spaces in formal argument list:\n`%s'",
+                body);
 
       while (*p == ' ')
         p++;
@@ -7248,7 +7203,7 @@ parse_macro_definition (struct macro_source_file *file, int line,
         replacement = body + name_len + 1;
       else
         {
-          complain (&dwarf2_macro_malformed_definition, body);
+         dwarf2_macro_malformed_definition_complaint (body);
           replacement = body + name_len;
         }
       
@@ -7278,8 +7233,7 @@ parse_macro_definition (struct macro_source_file *file, int line,
             p++;
 
           if (! *p || p == arg_start)
-            complain (&dwarf2_macro_malformed_definition,
-                      body);
+           dwarf2_macro_malformed_definition_complaint (body);
           else
             {
               /* Make sure argv has room for the new argument.  */
@@ -7315,18 +7269,18 @@ parse_macro_definition (struct macro_source_file *file, int line,
           else if (*p == '\0')
             {
               /* Complain, but do define it.  */
-              complain (&dwarf2_macro_malformed_definition, body);
+             dwarf2_macro_malformed_definition_complaint (body);
               macro_define_function (file, line, name,
                                      argc, (const char **) argv, 
                                      p);
             }
           else
             /* Just complain.  */
-            complain (&dwarf2_macro_malformed_definition, body);
+           dwarf2_macro_malformed_definition_complaint (body);
         }
       else
         /* Just complain.  */
-        complain (&dwarf2_macro_malformed_definition, body);
+       dwarf2_macro_malformed_definition_complaint (body);
 
       xfree (name);
       {
@@ -7338,7 +7292,7 @@ parse_macro_definition (struct macro_source_file *file, int line,
       xfree (argv);
     }
   else
-    complain (&dwarf2_macro_malformed_definition, body);
+    dwarf2_macro_malformed_definition_complaint (body);
 }
 
 
@@ -7353,7 +7307,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
 
   if (dwarf_macinfo_buffer == NULL)
     {
-      complain (&dwarf2_missing_macinfo_section);
+      complaint (&symfile_complaints, "missing .debug_macinfo section");
       return;
     }
 
@@ -7367,7 +7321,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
       /* Do we at least have room for a macinfo type byte?  */
       if (mac_ptr >= mac_end)
         {
-          complain (&dwarf2_macros_too_long);
+         dwarf2_macros_too_long_complaint ();
           return;
         }
 
@@ -7394,11 +7348,12 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
             mac_ptr += bytes_read;
 
             if (! current_file)
-              complain (&dwarf2_macro_outside_file,
-                        macinfo_type == DW_MACINFO_define ? "definition" :
-                        macinfo_type == DW_MACINFO_undef ? "undefinition" :
-                        "something-or-other",
-                        body);
+             complaint (&symfile_complaints,
+                        "debug info gives macro %s outside of any file: %s",
+                        macinfo_type ==
+                        DW_MACINFO_define ? "definition" : macinfo_type ==
+                        DW_MACINFO_undef ? "undefinition" :
+                        "something-or-other", body);
             else
               {
                 if (macinfo_type == DW_MACINFO_define)
@@ -7427,7 +7382,8 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
 
         case DW_MACINFO_end_file:
           if (! current_file)
-            complain (&dwarf2_macro_unmatched_end_file);
+           complaint (&symfile_complaints,
+                      "macro debug info has an unmatched `close_file' directive");
           else
             {
               current_file = current_file->included_by;
@@ -7443,7 +7399,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
                   /* Do we at least have room for a macinfo type byte?  */
                   if (mac_ptr >= mac_end)
                     {
-                      complain (&dwarf2_macros_too_long);
+                     dwarf2_macros_too_long_complaint ();
                       return;
                     }
 
@@ -7451,7 +7407,8 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
                      a look-ahead.  */
                   next_type = read_1_byte (abfd, mac_ptr);
                   if (next_type != 0)
-                    complain (&dwarf2_macros_not_terminated);
+                   complaint (&symfile_complaints,
+                              "no terminating 0-type entry for macros in `.debug_macinfo' section");
 
                   return;
                 }
index a54e6844c4c370e6db21f4992bae9a58581c7594..8050f0b42348159ade1dc134695cf0c8132eff00 100644 (file)
 
 /* Complaints that can be issued during DWARF debug info reading. */
 
-struct deprecated_complaint no_bfd_get_N =
-{
-  "DIE @ 0x%x \"%s\", no bfd support for %d byte data object", 0, 0
-};
-
-struct deprecated_complaint malformed_die =
-{
-  "DIE @ 0x%x \"%s\", malformed DIE, bad length (%d bytes)", 0, 0
-};
-
-struct deprecated_complaint bad_die_ref =
-{
-  "DIE @ 0x%x \"%s\", reference to DIE (0x%x) outside compilation unit", 0, 0
-};
-
-struct deprecated_complaint unknown_attribute_form =
-{
-  "DIE @ 0x%x \"%s\", unknown attribute form (0x%x)", 0, 0
-};
-
-struct deprecated_complaint unknown_attribute_length =
-{
-  "DIE @ 0x%x \"%s\", unknown attribute length, skipped remaining attributes", 0, 0
-};
-
-struct deprecated_complaint unexpected_fund_type =
-{
-  "DIE @ 0x%x \"%s\", unexpected fundamental type 0x%x", 0, 0
-};
-
-struct deprecated_complaint unknown_type_modifier =
-{
-  "DIE @ 0x%x \"%s\", unknown type modifier %u", 0, 0
-};
-
-struct deprecated_complaint volatile_ignored =
-{
-  "DIE @ 0x%x \"%s\", type modifier 'volatile' ignored", 0, 0
-};
-
-struct deprecated_complaint const_ignored =
-{
-  "DIE @ 0x%x \"%s\", type modifier 'const' ignored", 0, 0
-};
-
-struct deprecated_complaint botched_modified_type =
-{
-  "DIE @ 0x%x \"%s\", botched modified type decoding (mtype 0x%x)", 0, 0
-};
-
-struct deprecated_complaint op_deref2 =
-{
-  "DIE @ 0x%x \"%s\", OP_DEREF2 address 0x%x not handled", 0, 0
-};
-
-struct deprecated_complaint op_deref4 =
-{
-  "DIE @ 0x%x \"%s\", OP_DEREF4 address 0x%x not handled", 0, 0
-};
-
-struct deprecated_complaint basereg_not_handled =
-{
-  "DIE @ 0x%x \"%s\", BASEREG %d not handled", 0, 0
-};
-
-struct deprecated_complaint dup_user_type_allocation =
-{
-  "DIE @ 0x%x \"%s\", internal error: duplicate user type allocation", 0, 0
-};
-
-struct deprecated_complaint dup_user_type_definition =
-{
-  "DIE @ 0x%x \"%s\", internal error: duplicate user type definition", 0, 0
-};
-
-struct deprecated_complaint missing_tag =
-{
-  "DIE @ 0x%x \"%s\", missing class, structure, or union tag", 0, 0
-};
-
-struct deprecated_complaint bad_array_element_type =
-{
-  "DIE @ 0x%x \"%s\", bad array element type attribute 0x%x", 0, 0
-};
-
-struct deprecated_complaint subscript_data_items =
-{
-  "DIE @ 0x%x \"%s\", can't decode subscript data items", 0, 0
-};
-
-struct deprecated_complaint unhandled_array_subscript_format =
+static void
+bad_die_ref_complaint (int arg1, const char *arg2, int arg3)
 {
-  "DIE @ 0x%x \"%s\", array subscript format 0x%x not handled yet", 0, 0
-};
+  complaint (&symfile_complaints,
+            "DIE @ 0x%x \"%s\", reference to DIE (0x%x) outside compilation unit",
+            arg1, arg2, arg3);
+}
 
-struct deprecated_complaint unknown_array_subscript_format =
+static void
+unknown_attribute_form_complaint (int arg1, const char *arg2, int arg3)
 {
-  "DIE @ 0x%x \"%s\", unknown array subscript format %x", 0, 0
-};
+  complaint (&symfile_complaints,
+            "DIE @ 0x%x \"%s\", unknown attribute form (0x%x)", arg1, arg2,
+            arg3);
+}
 
-struct deprecated_complaint not_row_major =
+static void
+dup_user_type_definition_complaint (int arg1, const char *arg2)
 {
-  "DIE @ 0x%x \"%s\", array not row major; not handled correctly", 0, 0
-};
+  complaint (&symfile_complaints,
+            "DIE @ 0x%x \"%s\", internal error: duplicate user type definition",
+            arg1, arg2);
+}
 
-struct deprecated_complaint missing_at_name =
+static void
+bad_array_element_type_complaint (int arg1, const char *arg2, int arg3)
 {
-  "DIE @ 0x%x, AT_name tag missing", 0, 0
-};
+  complaint (&symfile_complaints,
+            "DIE @ 0x%x \"%s\", bad array element type attribute 0x%x", arg1,
+            arg2, arg3);
+}
 
 typedef unsigned int DIE_REF;  /* Reference to a DIE */
 
@@ -786,7 +708,7 @@ lookup_utype (DIE_REF die_ref)
   utypeidx = (die_ref - dbroff) / 4;
   if ((utypeidx < 0) || (utypeidx >= numutypes))
     {
-      complain (&bad_die_ref, DIE_ID, DIE_NAME);
+      bad_die_ref_complaint (DIE_ID, DIE_NAME, die_ref);
     }
   else
     {
@@ -828,12 +750,14 @@ alloc_utype (DIE_REF die_ref, struct type *utypep)
   if ((utypeidx < 0) || (utypeidx >= numutypes))
     {
       utypep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
-      complain (&bad_die_ref, DIE_ID, DIE_NAME);
+      bad_die_ref_complaint (DIE_ID, DIE_NAME, die_ref);
     }
   else if (*typep != NULL)
     {
       utypep = *typep;
-      complain (&dup_user_type_allocation, DIE_ID, DIE_NAME);
+      complaint (&symfile_complaints,
+                "DIE @ 0x%x \"%s\", internal error: duplicate user type allocation",
+                DIE_ID, DIE_NAME);
     }
   else
     {
@@ -978,7 +902,9 @@ struct_type (struct dieinfo *dip, char *thisdie, char *enddie,
     default:
       /* Should never happen */
       TYPE_CODE (type) = TYPE_CODE_UNDEF;
-      complain (&missing_tag, DIE_ID, DIE_NAME);
+      complaint (&symfile_complaints,
+                "DIE @ 0x%x \"%s\", missing class, structure, or union tag",
+                DIE_ID, DIE_NAME);
       break;
     }
   /* Some compilers try to be helpful by inventing "fake" names for
@@ -1191,7 +1117,7 @@ decode_array_element_type (char *scan)
   scan += SIZEOF_ATTRIBUTE;
   if ((nbytes = attribute_size (attribute)) == -1)
     {
-      complain (&bad_array_element_type, DIE_ID, DIE_NAME, attribute);
+      bad_array_element_type_complaint (DIE_ID, DIE_NAME, attribute);
       typep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
     }
   else
@@ -1218,7 +1144,7 @@ decode_array_element_type (char *scan)
          typep = decode_mod_u_d_type (scan);
          break;
        default:
-         complain (&bad_array_element_type, DIE_ID, DIE_NAME, attribute);
+         bad_array_element_type_complaint (DIE_ID, DIE_NAME, attribute);
          typep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
          break;
        }
@@ -1306,7 +1232,9 @@ decode_subscript_data_item (char *scan, char *end)
       if (nexttype == NULL)
        {
          /* Munged subscript data or other problem, fake it. */
-         complain (&subscript_data_items, DIE_ID, DIE_NAME);
+         complaint (&symfile_complaints,
+                    "DIE @ 0x%x \"%s\", can't decode subscript data items",
+                    DIE_ID, DIE_NAME);
          nexttype = dwarf_fundamental_type (current_objfile, FT_INTEGER);
        }
       rangetype = create_range_type ((struct type *) NULL, indextype,
@@ -1320,13 +1248,17 @@ decode_subscript_data_item (char *scan, char *end)
     case FMT_UT_C_X:
     case FMT_UT_X_C:
     case FMT_UT_X_X:
-      complain (&unhandled_array_subscript_format, DIE_ID, DIE_NAME, format);
+      complaint (&symfile_complaints,
+                "DIE @ 0x%x \"%s\", array subscript format 0x%x not handled yet",
+                DIE_ID, DIE_NAME, format);
       nexttype = dwarf_fundamental_type (current_objfile, FT_INTEGER);
       rangetype = create_range_type ((struct type *) NULL, nexttype, 0, 0);
       typep = create_array_type ((struct type *) NULL, nexttype, rangetype);
       break;
     default:
-      complain (&unknown_array_subscript_format, DIE_ID, DIE_NAME, format);
+      complaint (&symfile_complaints,
+                "DIE @ 0x%x \"%s\", unknown array subscript format %x", DIE_ID,
+                DIE_NAME, format);
       nexttype = dwarf_fundamental_type (current_objfile, FT_INTEGER);
       rangetype = create_range_type ((struct type *) NULL, nexttype, 0, 0);
       typep = create_array_type ((struct type *) NULL, nexttype, rangetype);
@@ -1364,7 +1296,9 @@ dwarf_read_array_type (struct dieinfo *dip)
   if (dip->at_ordering != ORD_row_major)
     {
       /* FIXME:  Can gdb even handle column major arrays? */
-      complain (&not_row_major, DIE_ID, DIE_NAME);
+      complaint (&symfile_complaints,
+                "DIE @ 0x%x \"%s\", array not row major; not handled correctly",
+                DIE_ID, DIE_NAME);
     }
   if ((sub = dip->at_subscr_data) != NULL)
     {
@@ -1394,7 +1328,7 @@ dwarf_read_array_type (struct dieinfo *dip)
        {
          /* Double ick!  Not only is a type already in our slot, but
             someone has decorated it.  Complain and leave it alone. */
-         complain (&dup_user_type_definition, DIE_ID, DIE_NAME);
+         dup_user_type_definition_complaint (DIE_ID, DIE_NAME);
        }
     }
 }
@@ -1492,7 +1426,7 @@ read_tag_string_type (struct dieinfo *dip)
          is a blank one.  If not, complain and leave it alone. */
       if (TYPE_CODE (utype) != TYPE_CODE_UNDEF)
        {
-         complain (&dup_user_type_definition, DIE_ID, DIE_NAME);
+         dup_user_type_definition_complaint (DIE_ID, DIE_NAME);
          return;
        }
     }
@@ -1558,7 +1492,7 @@ read_subroutine_type (struct dieinfo *dip, char *thisdie, char *enddie)
     }
   else
     {
-      complain (&dup_user_type_definition, DIE_ID, DIE_NAME);
+      dup_user_type_definition_complaint (DIE_ID, DIE_NAME);
     }
 }
 
@@ -1774,7 +1708,8 @@ read_func_scope (struct dieinfo *dip, char *thisdie, char *enddie,
      FIXME: Add code to handle AT_abstract_origin tags properly.  */
   if (dip->at_name == NULL)
     {
-      complain (&missing_at_name, DIE_ID);
+      complaint (&symfile_complaints, "DIE @ 0x%x, AT_name tag missing",
+                DIE_ID);
       return;
     }
 
@@ -2208,10 +2143,14 @@ locval (struct dieinfo *dip)
          break;
        case OP_DEREF2:
          /* pop, deref and push 2 bytes (as a long) */
-         complain (&op_deref2, DIE_ID, DIE_NAME, stack[stacki]);
+         complaint (&symfile_complaints,
+                    "DIE @ 0x%x \"%s\", OP_DEREF2 address 0x%lx not handled",
+                    DIE_ID, DIE_NAME, stack[stacki]);
          break;
        case OP_DEREF4: /* pop, deref and push 4 bytes (as a long) */
-         complain (&op_deref4, DIE_ID, DIE_NAME, stack[stacki]);
+         complaint (&symfile_complaints,
+                    "DIE @ 0x%x \"%s\", OP_DEREF4 address 0x%lx not handled",
+                    DIE_ID, DIE_NAME, stack[stacki]);
          break;
        case OP_ADD:            /* pop top 2 items, add, push result */
          stack[stacki - 1] += stack[stacki];
@@ -2660,8 +2599,8 @@ scan_partial_symbols (char *thisdie, char *enddie, struct objfile *objfile)
                      temp = dbbase + di.at_sibling - dbroff;
                      if ((temp < thisdie) || (temp >= enddie))
                        {
-                         complain (&bad_die_ref, DIE_ID, DIE_NAME,
-                                   di.at_sibling);
+                         bad_die_ref_complaint (DIE_ID, DIE_NAME,
+                                                di.at_sibling);
                        }
                      else
                        {
@@ -3179,7 +3118,9 @@ decode_modified_type (char *modifiers, unsigned int modcount, int mtype)
            }
          break;
        default:
-         complain (&botched_modified_type, DIE_ID, DIE_NAME, mtype);
+         complaint (&symfile_complaints,
+                    "DIE @ 0x%x \"%s\", botched modified type decoding (mtype 0x%x)",
+                    DIE_ID, DIE_NAME, mtype);
          typep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
          break;
        }
@@ -3197,16 +3138,22 @@ decode_modified_type (char *modifiers, unsigned int modcount, int mtype)
          typep = lookup_reference_type (typep);
          break;
        case MOD_const:
-         complain (&const_ignored, DIE_ID, DIE_NAME);  /* FIXME */
+         complaint (&symfile_complaints,
+                    "DIE @ 0x%x \"%s\", type modifier 'const' ignored", DIE_ID,
+                    DIE_NAME); /* FIXME */
          break;
        case MOD_volatile:
-         complain (&volatile_ignored, DIE_ID, DIE_NAME);       /* FIXME */
+         complaint (&symfile_complaints,
+                    "DIE @ 0x%x \"%s\", type modifier 'volatile' ignored",
+                    DIE_ID, DIE_NAME); /* FIXME */
          break;
        default:
          if (!(MOD_lo_user <= (unsigned char) modifier
                && (unsigned char) modifier <= MOD_hi_user))
            {
-             complain (&unknown_type_modifier, DIE_ID, DIE_NAME, modifier);
+             complaint (&symfile_complaints,
+                        "DIE @ 0x%x \"%s\", unknown type modifier %u", DIE_ID,
+                        DIE_NAME, modifier);
            }
          break;
        }
@@ -3348,7 +3295,9 @@ decode_fund_type (unsigned int fundtype)
       typep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
       if (!(FT_lo_user <= fundtype && fundtype <= FT_hi_user))
        {
-         complain (&unexpected_fund_type, DIE_ID, DIE_NAME, fundtype);
+         complaint (&symfile_complaints,
+                    "DIE @ 0x%x \"%s\", unexpected fundamental type 0x%x",
+                    DIE_ID, DIE_NAME, fundtype);
        }
     }
 
@@ -3446,7 +3395,9 @@ basicdieinfo (struct dieinfo *dip, char *diep, struct objfile *objfile)
   if ((dip->die_length < SIZEOF_DIE_LENGTH) ||
       ((diep + dip->die_length) > (dbbase + dbsize)))
     {
-      complain (&malformed_die, DIE_ID, DIE_NAME, dip->die_length);
+      complaint (&symfile_complaints,
+                "DIE @ 0x%x \"%s\", malformed DIE, bad length (%ld bytes)",
+                DIE_ID, DIE_NAME, dip->die_length);
       dip->die_length = 0;
     }
   else if (dip->die_length < (SIZEOF_DIE_LENGTH + SIZEOF_DIE_TAG))
@@ -3512,7 +3463,9 @@ completedieinfo (struct dieinfo *dip, struct objfile *objfile)
       diep += SIZEOF_ATTRIBUTE;
       if ((nbytes = attribute_size (attr)) == -1)
        {
-         complain (&unknown_attribute_length, DIE_ID, DIE_NAME);
+         complaint (&symfile_complaints,
+                    "DIE @ 0x%x \"%s\", unknown attribute length, skipped remaining attributes",
+                    DIE_ID, DIE_NAME);
          diep = end;
          continue;
        }
@@ -3669,7 +3622,7 @@ completedieinfo (struct dieinfo *dip, struct objfile *objfile)
          diep += strlen (diep) + 1;
          break;
        default:
-         complain (&unknown_attribute_form, DIE_ID, DIE_NAME, form);
+         unknown_attribute_form_complaint (DIE_ID, DIE_NAME, form);
          diep = end;
          break;
        }
@@ -3726,7 +3679,9 @@ target_to_host (char *from, int nbytes, int signextend,   /* FIXME:  Unused */
       rtnval = bfd_get_8 (objfile->obfd, (bfd_byte *) from);
       break;
     default:
-      complain (&no_bfd_get_N, DIE_ID, DIE_NAME, nbytes);
+      complaint (&symfile_complaints,
+                "DIE @ 0x%x \"%s\", no bfd support for %d byte data object",
+                DIE_ID, DIE_NAME, nbytes);
       rtnval = 0;
       break;
     }
@@ -3781,7 +3736,7 @@ attribute_size (unsigned int attr)
       nbytes = TARGET_FT_POINTER_SIZE (objfile);
       break;
     default:
-      complain (&unknown_attribute_form, DIE_ID, DIE_NAME, form);
+      unknown_attribute_form_complaint (DIE_ID, DIE_NAME, form);
       nbytes = -1;
       break;
     }
index a29a71b544d0b2f5149202c17b661f125ae72029..ba8fc490a7d9c58e36a671a8dd6c0539ec37acfe 100644 (file)
@@ -52,20 +52,6 @@ struct elfinfo
     asection *mdebugsect;      /* Section pointer for .mdebug section */
   };
 
-/* Various things we might complain about... */
-
-struct deprecated_complaint section_info_complaint =
-{"elf/stab section information %s without a preceding file symbol", 0, 0};
-
-struct deprecated_complaint section_info_dup_complaint =
-{"duplicated elf/stab section information for %s", 0, 0};
-
-struct deprecated_complaint stab_info_mismatch_complaint =
-{"elf/stab section information missing for %s", 0, 0};
-
-struct deprecated_complaint stab_info_questionable_complaint =
-{"elf/stab section information questionable for %s", 0, 0};
-
 static void free_elfinfo (void *);
 
 /* We are called once per section from elf_symfile_read.  We
@@ -415,8 +401,9 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
                                      sizeof (*sectinfo));
                              if (filesym == NULL)
                                {
-                                 complain (&section_info_complaint,
-                                           sym->name);
+                                 complaint (&symfile_complaints,
+                                            "elf/stab section information %s without a preceding file symbol",
+                                            sym->name);
                                }
                              else
                                {
@@ -428,8 +415,9 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
                            { 
                              if (sectinfo->sections[index] != 0)
                                {
-                                 complain (&section_info_dup_complaint,
-                                           sectinfo->filename);
+                                 complaint (&symfile_complaints,
+                                            "duplicated elf/stab section information for %s",
+                                            sectinfo->filename);
                                }
                            }
                          else
@@ -740,7 +728,8 @@ elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
 
   if (maybe == 0 && questionable != 0)
     {
-      complain (&stab_info_questionable_complaint, filename);
+      complaint (&symfile_complaints,
+                "elf/stab section information questionable for %s", filename);
       maybe = questionable;
     }
 
@@ -757,7 +746,8 @@ elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
 
   /* We were unable to find any offsets for this file.  Complain.  */
   if (dbx->stab_section_info)  /* If there *is* any info, */
-    complain (&stab_info_mismatch_complaint, filename);
+    complaint (&symfile_complaints,
+              "elf/stab section information missing for %s", filename);
 }
 \f
 /* Register that we are able to handle ELF object file formats.  */
index c80bfcc7ae2f7210f881637407cc603967037dd1..67afcd165fb1fdc6a71d1737f98e6f6c90d0ac06 100644 (file)
@@ -443,7 +443,7 @@ evaluate_subexp_standard (struct type *expect_type,
     case OP_REGISTER:
       {
        int regno = longest_to_int (exp->elts[pc + 1].longconst);
-       struct value *val = value_of_register (regno, selected_frame);
+       struct value *val = value_of_register (regno, deprecated_selected_frame);
        (*pos) += 2;
        if (val == NULL)
          error ("Value of register %s not available.",
index 3a3e888b9554b5e404cc45eb98947f97d040773f..16b7e5f4e8d8347c40785382f720965e7fc118dd 100644 (file)
@@ -36,6 +36,7 @@
 #endif
 
 #include <fcntl.h>
+#include <readline/readline.h>
 #include "gdb_string.h"
 
 #include "gdbcore.h"
@@ -481,10 +482,10 @@ xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
             struct mem_attrib *attrib,
             struct target_ops *target)
 {
-  boolean res;
+  int res;
   struct section_table *p;
   CORE_ADDR nextsectaddr, memend;
-  boolean (*xfer_fn) (bfd *, sec_ptr, PTR, file_ptr, bfd_size_type);
+  int (*xfer_fn) (bfd *, sec_ptr, PTR, file_ptr, bfd_size_type);
   asection *section = NULL;
 
   if (len <= 0)
@@ -544,6 +545,7 @@ void
 print_section_info (struct target_ops *t, bfd *abfd)
 {
   struct section_table *p;
+  char *fmt = TARGET_ADDR_BIT <= 32 ? "08l" : "016l";
 
   printf_filtered ("\t`%s', ", bfd_get_filename (abfd));
   wrap_here ("        ");
@@ -556,12 +558,11 @@ print_section_info (struct target_ops *t, bfd *abfd)
     }
   for (p = t->to_sections; p < t->to_sections_end; p++)
     {
-      /* FIXME-32x64 need a print_address_numeric with field width */
-      printf_filtered ("\t%s", local_hex_string_custom ((unsigned long) p->addr, "08l"));
-      printf_filtered (" - %s", local_hex_string_custom ((unsigned long) p->endaddr, "08l"));
+      printf_filtered ("\t%s", local_hex_string_custom (p->addr, fmt));
+      printf_filtered (" - %s", local_hex_string_custom (p->endaddr, fmt));
       if (info_verbose)
        printf_filtered (" @ %s",
-                        local_hex_string_custom ((unsigned long) p->the_bfd_section->filepos, "08l"));
+                        local_hex_string_custom (p->the_bfd_section->filepos, "08l"));
       printf_filtered (" is %s", bfd_section_name (p->bfd, p->the_bfd_section));
       if (p->bfd != abfd)
        {
@@ -714,14 +715,11 @@ Specify the filename of the executable file.";
   exec_ops.to_open = exec_open;
   exec_ops.to_close = exec_close;
   exec_ops.to_attach = find_default_attach;
-  exec_ops.to_require_attach = find_default_require_attach;
-  exec_ops.to_require_detach = find_default_require_detach;
   exec_ops.to_xfer_memory = xfer_memory;
   exec_ops.to_files_info = exec_files_info;
   exec_ops.to_insert_breakpoint = ignore;
   exec_ops.to_remove_breakpoint = ignore;
   exec_ops.to_create_inferior = find_default_create_inferior;
-  exec_ops.to_clone_and_follow_inferior = find_default_clone_and_follow_inferior;
   exec_ops.to_stratum = file_stratum;
   exec_ops.to_has_memory = 1;
   exec_ops.to_make_corefile_notes = exec_make_note_section;
index edaa6f95afe6ca8a1d79ec81366b6aa54ab1209c..31b82c007fa28c101840cdf111eac1b046e9dd15 100644 (file)
@@ -28,6 +28,8 @@
 #include "language.h"
 #include "parser-defs.h"
 #include "frame.h"             /* For frame_map_regnum_to_name.  */
+#include "target.h"
+#include "gdb_string.h"
 
 #ifdef HAVE_CTYPE_H
 #include <ctype.h>
@@ -178,6 +180,51 @@ print_subexp (register struct expression *exp, register int *pos,
       fprintf_unfiltered (stream, "B'<unimplemented>'");
       return;
 
+    case OP_OBJC_NSSTRING:     /* Objective-C Foundation Class NSString constant.  */
+      nargs = longest_to_int (exp->elts[pc + 1].longconst);
+      (*pos) += 3 + BYTES_TO_EXP_ELEM (nargs + 1);
+      fputs_filtered ("@\"", stream);
+      LA_PRINT_STRING (stream, &exp->elts[pc + 2].string, nargs, 1, 0);
+      fputs_filtered ("\"", stream);
+      return;
+
+    case OP_OBJC_MSGCALL:
+      {                        /* Objective C message (method) call.  */
+       char *selector;
+       (*pos) += 3;
+       nargs = longest_to_int (exp->elts[pc + 2].longconst);
+       fprintf_unfiltered (stream, "[");
+       print_subexp (exp, pos, stream, PREC_SUFFIX);
+       if (0 == target_read_string (exp->elts[pc + 1].longconst,
+                                    &selector, 1024, NULL))
+         {
+           error ("bad selector");
+           return;
+         }
+       if (nargs)
+         {
+           char *s, *nextS;
+           s = alloca (strlen (selector) + 1);
+           strcpy (s, selector);
+           for (tem = 0; tem < nargs; tem++)
+             {
+               nextS = strchr (s, ':');
+               *nextS = '\0';
+               fprintf_unfiltered (stream, " %s: ", s);
+               s = nextS + 1;
+               print_subexp (exp, pos, stream, PREC_ABOVE_COMMA);
+             }
+         }
+       else
+         {
+           fprintf_unfiltered (stream, " %s", selector);
+         }
+       fprintf_unfiltered (stream, "]");
+       /* "selector" was malloc'd by target_read_string. Free it.  */
+       free (selector);
+       return;
+      }
+
     case OP_ARRAY:
       (*pos) += 3;
       nargs = longest_to_int (exp->elts[pc + 2].longconst);
@@ -392,6 +439,13 @@ print_subexp (register struct expression *exp, register int *pos,
       fputs_filtered ("this", stream);
       return;
 
+      /* Objective-C ops */
+
+    case OP_OBJC_SELF:
+      ++(*pos);
+      fputs_filtered ("self", stream); /* The ObjC equivalent of "this".  */
+      return;
+
       /* Modula-2 ops */
 
     case MULTI_SUBSCRIPT:
@@ -685,6 +739,8 @@ op_name (int opcode)
       return "STRUCTOP_PTR";
     case OP_THIS:
       return "OP_THIS";
+    case OP_OBJC_SELF:
+      return "OP_OBJC_SELF";
     case OP_SCOPE:
       return "OP_SCOPE";
     case OP_TYPE:
index 23463b0273c9569abd5654f2467856df95577342..85329224d3b2ba1e96043ed5c0f4c3f181e0644c 100644 (file)
@@ -181,11 +181,11 @@ enum exp_opcode
        making three exp_elements.  */
     OP_FUNCALL,
 
-    /* OP_MSGCALL is followed by a string in the next exp_element and then an
+    /* OP_OBJC_MSGCALL is followed by a string in the next exp_element and then an
        integer.  The string is the selector string.  The integer is the number
        of arguments to the message call.  That many plus one values are used, 
        the first one being the object pointer.  This is an Objective C message */
-    OP_MSGCALL,
+    OP_OBJC_MSGCALL,
 
     /* This is EXACTLY like OP_FUNCALL but is semantically different.  
        In F77, array subscript expressions, substring expressions
@@ -283,12 +283,12 @@ enum exp_opcode
        It just comes in a tight (OP_THIS, OP_THIS) pair.  */
     OP_THIS,
 
-    /* Objective-C: OP_SELF is just a placeholder for the class instance
-       variable.  It just comes in a tight (OP_SELF, OP_SELF) pair.  */
-    OP_SELF,
+    /* Objective-C: OP_OBJC_SELF is just a placeholder for the class instance
+       variable.  It just comes in a tight (OP_OBJC_SELF, OP_OBJC_SELF) pair.  */
+    OP_OBJC_SELF,
 
     /* Objective C: "@selector" pseudo-operator */
-    OP_SELECTOR,
+    OP_OBJC_SELECTOR,
 
     /* OP_SCOPE surrounds a type name, a block, and a field name.  The
        type name and block are encoded as one element, but the field
@@ -321,7 +321,7 @@ enum exp_opcode
     OP_EXPRSTRING,
 
     /* An Objective C Foundation Class NSString constant */
-    OP_NSSTRING,
+    OP_OBJC_NSSTRING,
   };
 
 union exp_element
index 6c2a0aa4cb2e28054a0ec3846b8b3c162d585e8a..211da7012b19c5646953221734faad91e0eb174f 100644 (file)
@@ -75,7 +75,7 @@ f77_get_dynamic_lowerbound (struct type *type, int *lower_bound)
   switch (TYPE_ARRAY_LOWER_BOUND_TYPE (type))
     {
     case BOUND_BY_VALUE_ON_STACK:
-      current_frame_addr = selected_frame->frame;
+      current_frame_addr = get_frame_base (deprecated_selected_frame);
       if (current_frame_addr > 0)
        {
          *lower_bound =
@@ -99,7 +99,7 @@ f77_get_dynamic_lowerbound (struct type *type, int *lower_bound)
       break;
 
     case BOUND_BY_REF_ON_STACK:
-      current_frame_addr = selected_frame->frame;
+      current_frame_addr = get_frame_base (deprecated_selected_frame);
       if (current_frame_addr > 0)
        {
          ptr_to_lower_bound =
@@ -133,7 +133,7 @@ f77_get_dynamic_upperbound (struct type *type, int *upper_bound)
   switch (TYPE_ARRAY_UPPER_BOUND_TYPE (type))
     {
     case BOUND_BY_VALUE_ON_STACK:
-      current_frame_addr = selected_frame->frame;
+      current_frame_addr = get_frame_base (deprecated_selected_frame);
       if (current_frame_addr > 0)
        {
          *upper_bound =
@@ -162,7 +162,7 @@ f77_get_dynamic_upperbound (struct type *type, int *upper_bound)
       break;
 
     case BOUND_BY_REF_ON_STACK:
-      current_frame_addr = selected_frame->frame;
+      current_frame_addr = get_frame_base (deprecated_selected_frame);
       if (current_frame_addr > 0)
        {
          ptr_to_upper_bound =
@@ -588,7 +588,7 @@ info_common_command (char *comname, int from_tty)
      first make sure that it is visible and if so, let 
      us display its contents */
 
-  fi = selected_frame;
+  fi = deprecated_selected_frame;
 
   if (fi == NULL)
     error ("No frame selected");
@@ -596,7 +596,7 @@ info_common_command (char *comname, int from_tty)
   /* The following is generally ripped off from stack.c's routine 
      print_frame_info() */
 
-  func = find_pc_function (fi->pc);
+  func = find_pc_function (get_frame_pc (fi));
   if (func)
     {
       /* In certain pathological cases, the symtabs give the wrong
@@ -613,7 +613,7 @@ info_common_command (char *comname, int from_tty)
          be any minimal symbols in the middle of a function.
          FIXME:  (Not necessarily true.  What about text labels) */
 
-      struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (fi->pc);
+      struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (get_frame_pc (fi));
 
       if (msymbol != NULL
          && (SYMBOL_VALUE_ADDRESS (msymbol)
@@ -625,7 +625,7 @@ info_common_command (char *comname, int from_tty)
   else
     {
       register struct minimal_symbol *msymbol =
-      lookup_minimal_symbol_by_pc (fi->pc);
+      lookup_minimal_symbol_by_pc (get_frame_pc (fi));
 
       if (msymbol != NULL)
        funname = SYMBOL_NAME (msymbol);
@@ -680,7 +680,7 @@ there_is_a_visible_common_named (char *comname)
   if (comname == NULL)
     error ("Cannot deal with NULL common name!");
 
-  fi = selected_frame;
+  fi = deprecated_selected_frame;
 
   if (fi == NULL)
     error ("No frame selected");
index 6f38b6faff43dea8f432f45e53a5118ae93b24f9..3eff9305c03c959ccd9c3c46e267dd8a15f73122 100644 (file)
@@ -304,7 +304,7 @@ value_of_register (int regnum, struct frame_info *frame)
   /* Builtin registers lie completly outside of the range of normal
      registers.  Catch them early so that the target never sees them.  */
   if (regnum >= NUM_REGS + NUM_PSEUDO_REGS)
-    return value_of_builtin_reg (regnum, selected_frame);
+    return value_of_builtin_reg (regnum, deprecated_selected_frame);
 
   get_saved_register (raw_buffer, &optim, &addr,
                      frame, regnum, &lval);
@@ -419,7 +419,7 @@ symbol_read_needs_frame (const struct symbol *sym)
    and a stack frame id, read the value of the variable
    and return a (pointer to a) struct value containing the value. 
    If the variable cannot be found, return a zero pointer.
-   If FRAME is NULL, use the selected_frame.  */
+   If FRAME is NULL, use the deprecated_selected_frame.  */
 
 struct value *
 read_var_value (const struct symbol *var, struct frame_info *frame)
@@ -436,7 +436,7 @@ read_var_value (const struct symbol *var, struct frame_info *frame)
   len = TYPE_LENGTH (type);
 
   if (frame == NULL)
-    frame = selected_frame;
+    frame = deprecated_selected_frame;
 
   switch (SYMBOL_CLASS (var))
     {
@@ -787,7 +787,7 @@ value_from_register (struct type *type, int regnum, struct frame_info *frame)
           for some good purpose.  */
        {
          VALUE_LVAL (v) = lval_reg_frame_relative;
-         VALUE_FRAME (v) = FRAME_FP (frame);
+         VALUE_FRAME (v) = get_frame_base (frame);
          VALUE_FRAME_REGNUM (v) = regnum;
        }
       else if (mem_stor)
index aacd53cac713c2db3174c7b19cc7adfafe58f0c2..0b14a94618611a5cbf12fca858831491a5a5a815 100644 (file)
@@ -379,131 +379,6 @@ fork_inferior (char *exec_file_arg, char *allargs, char **env,
 #endif
 }
 
-/* An inferior Unix process CHILD_PID has been created by a call to
-   fork() (or variants like vfork).  It is presently stopped, and waiting
-   to be resumed.  clone_and_follow_inferior will fork the debugger,
-   and that clone will "follow" (attach to) CHILD_PID.  The original copy
-   of the debugger will not touch CHILD_PID again.
-
-   Also, the original debugger will set FOLLOWED_CHILD FALSE, while the
-   clone will set it TRUE.
- */
-void
-clone_and_follow_inferior (int child_pid, int *followed_child)
-{
-  int debugger_pid;
-  int status;
-  char pid_spelling[100];      /* Arbitrary but sufficient length. */
-
-  /* This semaphore is used to coordinate the two debuggers' handoff
-     of CHILD_PID.  The original debugger will detach from CHILD_PID,
-     and then the clone debugger will attach to it.  (It must be done
-     this way because on some targets, only one process at a time can
-     trace another.  Thus, the original debugger must relinquish its
-     tracing rights before the clone can pick them up.)
-   */
-#define SEM_TALK (1)
-#define SEM_LISTEN (0)
-  int handoff_semaphore[2];    /* Original "talks" to [1], clone "listens" to [0] */
-  int talk_value = 99;
-  int listen_value;
-
-  /* Set debug_fork then attach to the child while it sleeps, to debug. */
-  static int debug_fork = 0;
-
-  /* It is generally good practice to flush any possible pending stdio
-     output prior to doing a fork, to avoid the possibility of both the
-     parent and child flushing the same data after the fork. */
-
-  gdb_flush (gdb_stdout);
-  gdb_flush (gdb_stderr);
-
-  /* Open the semaphore pipes.
-   */
-  status = pipe (handoff_semaphore);
-  if (status < 0)
-    error ("error getting pipe for handoff semaphore");
-
-  /* Clone the debugger.  Note that the apparent call to vfork()
-     below *might* actually be a call to fork() due to the fact that
-     autoconf will ``#define vfork fork'' on certain platforms.  */
-  if (debug_fork)
-    debugger_pid = fork ();
-  else
-    debugger_pid = vfork ();
-
-  if (debugger_pid < 0)
-    perror_with_name ("fork");
-
-  /* Are we the original debugger?  If so, we must relinquish all claims
-     to CHILD_PID. */
-  if (debugger_pid != 0)
-    {
-      char signal_spelling[100];       /* Arbitrary but sufficient length */
-
-      /* Detach from CHILD_PID.  Deliver a "stop" signal when we do, though,
-         so that it remains stopped until the clone debugger can attach
-         to it.
-       */
-      detach_breakpoints (child_pid);
-
-      sprintf (signal_spelling, "%d", target_signal_to_host (TARGET_SIGNAL_STOP));
-      target_require_detach (child_pid, signal_spelling, 1);
-
-      /* Notify the clone debugger that it should attach to CHILD_PID. */
-      write (handoff_semaphore[SEM_TALK], &talk_value, sizeof (talk_value));
-
-      *followed_child = 0;
-    }
-
-  /* We're the child. */
-  else
-    {
-      if (debug_fork)
-       sleep (debug_fork);
-
-      /* The child (i.e., the cloned debugger) must now attach to
-         CHILD_PID.  inferior_ptid is presently set to the parent process
-         of the fork, while CHILD_PID should be the child process of the
-         fork.
-
-         Wait until the original debugger relinquishes control of CHILD_PID,
-         though.
-       */
-      read (handoff_semaphore[SEM_LISTEN], &listen_value, sizeof (listen_value));
-
-      /* Note that we DON'T want to actually detach from inferior_ptid,
-         because that would allow it to run free.  The original
-         debugger wants to retain control of the process.  So, we
-         just reset inferior_ptid to CHILD_PID, and then ensure that all
-         breakpoints are really set in CHILD_PID.
-       */
-      target_mourn_inferior ();
-
-      /* Ask the tty subsystem to switch to the one we specified earlier
-         (or to share the current terminal, if none was specified).  */
-
-      new_tty ();
-
-      dont_repeat ();
-      sprintf (pid_spelling, "%d", child_pid);
-      target_require_attach (pid_spelling, 1);
-
-      /* Perform any necessary cleanup, after attachment.  (This form
-         of attaching can behave differently on some targets than the
-         standard method, where a process formerly not under debugger
-         control was suddenly attached to..)
-       */
-      target_post_follow_inferior_by_clone ();
-
-      *followed_child = 1;
-    }
-
-  /* Discard the handoff sempahore. */
-  (void) close (handoff_semaphore[SEM_LISTEN]);
-  (void) close (handoff_semaphore[SEM_TALK]);
-}
-
 /* Accept NTRAPS traps from the inferior.  */
 
 void
diff --git a/gdb/fr30-tdep.c b/gdb/fr30-tdep.c
deleted file mode 100644 (file)
index 12e9f7e..0000000
+++ /dev/null
@@ -1,601 +0,0 @@
-// OBSOLETE /* Target-dependent code for the Fujitsu FR30.
-// OBSOLETE    Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "obstack.h"
-// OBSOLETE #include "target.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE #include "bfd.h"
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "symfile.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE /* An expression that tells us whether the function invocation represented
-// OBSOLETE    by FI does not have a frame on the stack associated with it.  */
-// OBSOLETE int
-// OBSOLETE fr30_frameless_function_invocation (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   int frameless;
-// OBSOLETE   CORE_ADDR func_start, after_prologue;
-// OBSOLETE   func_start = (get_pc_function_start ((fi)->pc) +
-// OBSOLETE            FUNCTION_START_OFFSET);
-// OBSOLETE   after_prologue = func_start;
-// OBSOLETE   after_prologue = SKIP_PROLOGUE (after_prologue);
-// OBSOLETE   frameless = (after_prologue == func_start);
-// OBSOLETE   return frameless;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Function: pop_frame
-// OBSOLETE    This routine gets called when either the user uses the `return'
-// OBSOLETE    command, or the call dummy breakpoint gets hit.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE fr30_pop_frame (void)
-// OBSOLETE {
-// OBSOLETE   struct frame_info *frame = get_current_frame ();
-// OBSOLETE   int regnum;
-// OBSOLETE   CORE_ADDR sp = read_register (SP_REGNUM);
-// OBSOLETE 
-// OBSOLETE   if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
-// OBSOLETE     generic_pop_dummy_frame ();
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       write_register (PC_REGNUM, FRAME_SAVED_PC (frame));
-// OBSOLETE 
-// OBSOLETE       for (regnum = 0; regnum < NUM_REGS; regnum++)
-// OBSOLETE    if (frame->fsr.regs[regnum] != 0)
-// OBSOLETE      {
-// OBSOLETE        write_register (regnum,
-// OBSOLETE                  read_memory_unsigned_integer (frame->fsr.regs[regnum],
-// OBSOLETE                                           REGISTER_RAW_SIZE (regnum)));
-// OBSOLETE      }
-// OBSOLETE       write_register (SP_REGNUM, sp + frame->framesize);
-// OBSOLETE     }
-// OBSOLETE   flush_cached_frames ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Function: fr30_store_return_value
-// OBSOLETE    Put a value where a caller expects to see it.  Used by the 'return'
-// OBSOLETE    command.  */
-// OBSOLETE void
-// OBSOLETE fr30_store_return_value (struct type *type,
-// OBSOLETE                     char *valbuf)
-// OBSOLETE {
-// OBSOLETE   /* Here's how the FR30 returns values (gleaned from gcc/config/
-// OBSOLETE      fr30/fr30.h):
-// OBSOLETE 
-// OBSOLETE      If the return value is 32 bits long or less, it goes in r4.
-// OBSOLETE 
-// OBSOLETE      If the return value is 64 bits long or less, it goes in r4 (most
-// OBSOLETE      significant word) and r5 (least significant word.
-// OBSOLETE 
-// OBSOLETE      If the function returns a structure, of any size, the caller
-// OBSOLETE      passes the function an invisible first argument where the callee
-// OBSOLETE      should store the value.  But GDB doesn't let you do that anyway.
-// OBSOLETE 
-// OBSOLETE      If you're returning a value smaller than a word, it's not really
-// OBSOLETE      necessary to zero the upper bytes of the register; the caller is
-// OBSOLETE      supposed to ignore them.  However, the FR30 typically keeps its
-// OBSOLETE      values extended to the full register width, so we should emulate
-// OBSOLETE      that.  */
-// OBSOLETE 
-// OBSOLETE   /* The FR30 is big-endian, so if we return a small value (like a
-// OBSOLETE      short or a char), we need to position it correctly within the
-// OBSOLETE      register.  We round the size up to a register boundary, and then
-// OBSOLETE      adjust the offset so as to place the value at the right end.  */
-// OBSOLETE   int value_size = TYPE_LENGTH (type);
-// OBSOLETE   int returned_size = (value_size + FR30_REGSIZE - 1) & ~(FR30_REGSIZE - 1);
-// OBSOLETE   int offset = (REGISTER_BYTE (RETVAL_REG)
-// OBSOLETE            + (returned_size - value_size));
-// OBSOLETE   char *zeros = alloca (returned_size);
-// OBSOLETE   memset (zeros, 0, returned_size);
-// OBSOLETE 
-// OBSOLETE   write_register_bytes (REGISTER_BYTE (RETVAL_REG), zeros, returned_size);
-// OBSOLETE   write_register_bytes (offset, valbuf, value_size);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Function: skip_prologue
-// OBSOLETE    Return the address of the first code past the prologue of the function.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE fr30_skip_prologue (CORE_ADDR pc)
-// OBSOLETE {
-// OBSOLETE   CORE_ADDR func_addr, func_end;
-// OBSOLETE 
-// OBSOLETE   /* See what the symbol table says */
-// OBSOLETE 
-// OBSOLETE   if (find_pc_partial_function (pc, NULL, &func_addr, &func_end))
-// OBSOLETE     {
-// OBSOLETE       struct symtab_and_line sal;
-// OBSOLETE 
-// OBSOLETE       sal = find_pc_line (func_addr, 0);
-// OBSOLETE 
-// OBSOLETE       if (sal.line != 0 && sal.end < func_end)
-// OBSOLETE    {
-// OBSOLETE      return sal.end;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE /* Either we didn't find the start of this function (nothing we can do),
-// OBSOLETE    or there's no line info, or the line after the prologue is after
-// OBSOLETE    the end of the function (there probably isn't a prologue). */
-// OBSOLETE 
-// OBSOLETE   return pc;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Function: push_arguments
-// OBSOLETE    Setup arguments and RP for a call to the target.  First four args
-// OBSOLETE    go in FIRST_ARGREG -> LAST_ARGREG, subsequent args go on stack...
-// OBSOLETE    Structs are passed by reference.  XXX not right now Z.R.
-// OBSOLETE    64 bit quantities (doubles and long longs) may be split between
-// OBSOLETE    the regs and the stack.
-// OBSOLETE    When calling a function that returns a struct, a pointer to the struct
-// OBSOLETE    is passed in as a secret first argument (always in FIRST_ARGREG).
-// OBSOLETE 
-// OBSOLETE    Stack space for the args has NOT been allocated: that job is up to us.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE fr30_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
-// OBSOLETE                 int struct_return, CORE_ADDR struct_addr)
-// OBSOLETE {
-// OBSOLETE   int argreg;
-// OBSOLETE   int argnum;
-// OBSOLETE   int stack_offset;
-// OBSOLETE   struct stack_arg
-// OBSOLETE     {
-// OBSOLETE       char *val;
-// OBSOLETE       int len;
-// OBSOLETE       int offset;
-// OBSOLETE     };
-// OBSOLETE   struct stack_arg *stack_args =
-// OBSOLETE   (struct stack_arg *) alloca (nargs * sizeof (struct stack_arg));
-// OBSOLETE   int nstack_args = 0;
-// OBSOLETE 
-// OBSOLETE   argreg = FIRST_ARGREG;
-// OBSOLETE 
-// OBSOLETE   /* the struct_return pointer occupies the first parameter-passing reg */
-// OBSOLETE   if (struct_return)
-// OBSOLETE     write_register (argreg++, struct_addr);
-// OBSOLETE 
-// OBSOLETE   stack_offset = 0;
-// OBSOLETE 
-// OBSOLETE   /* Process args from left to right.  Store as many as allowed in
-// OBSOLETE      registers, save the rest to be pushed on the stack */
-// OBSOLETE   for (argnum = 0; argnum < nargs; argnum++)
-// OBSOLETE     {
-// OBSOLETE       char *val;
-// OBSOLETE       struct value *arg = args[argnum];
-// OBSOLETE       struct type *arg_type = check_typedef (VALUE_TYPE (arg));
-// OBSOLETE       struct type *target_type = TYPE_TARGET_TYPE (arg_type);
-// OBSOLETE       int len = TYPE_LENGTH (arg_type);
-// OBSOLETE       enum type_code typecode = TYPE_CODE (arg_type);
-// OBSOLETE       CORE_ADDR regval;
-// OBSOLETE       int newarg;
-// OBSOLETE 
-// OBSOLETE       val = (char *) VALUE_CONTENTS (arg);
-// OBSOLETE 
-// OBSOLETE       {
-// OBSOLETE    /* Copy the argument to general registers or the stack in
-// OBSOLETE       register-sized pieces.  Large arguments are split between
-// OBSOLETE       registers and stack.  */
-// OBSOLETE    while (len > 0)
-// OBSOLETE      {
-// OBSOLETE        if (argreg <= LAST_ARGREG)
-// OBSOLETE          {
-// OBSOLETE            int partial_len = len < REGISTER_SIZE ? len : REGISTER_SIZE;
-// OBSOLETE            regval = extract_address (val, partial_len);
-// OBSOLETE 
-// OBSOLETE            /* It's a simple argument being passed in a general
-// OBSOLETE               register.  */
-// OBSOLETE            write_register (argreg, regval);
-// OBSOLETE            argreg++;
-// OBSOLETE            len -= partial_len;
-// OBSOLETE            val += partial_len;
-// OBSOLETE          }
-// OBSOLETE        else
-// OBSOLETE          {
-// OBSOLETE            /* keep for later pushing */
-// OBSOLETE            stack_args[nstack_args].val = val;
-// OBSOLETE            stack_args[nstack_args++].len = len;
-// OBSOLETE            break;
-// OBSOLETE          }
-// OBSOLETE      }
-// OBSOLETE       }
-// OBSOLETE     }
-// OBSOLETE   /* now do the real stack pushing, process args right to left */
-// OBSOLETE   while (nstack_args--)
-// OBSOLETE     {
-// OBSOLETE       sp -= stack_args[nstack_args].len;
-// OBSOLETE       write_memory (sp, stack_args[nstack_args].val,
-// OBSOLETE                stack_args[nstack_args].len);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Return adjusted stack pointer.  */
-// OBSOLETE   return sp;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void _initialize_fr30_tdep (void);
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_fr30_tdep (void)
-// OBSOLETE {
-// OBSOLETE   extern int print_insn_fr30 (bfd_vma, disassemble_info *);
-// OBSOLETE   tm_print_insn = print_insn_fr30;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Function: check_prologue_cache
-// OBSOLETE    Check if prologue for this frame's PC has already been scanned.
-// OBSOLETE    If it has, copy the relevant information about that prologue and
-// OBSOLETE    return non-zero.  Otherwise do not copy anything and return zero.
-// OBSOLETE 
-// OBSOLETE    The information saved in the cache includes:
-// OBSOLETE    * the frame register number;
-// OBSOLETE    * the size of the stack frame;
-// OBSOLETE    * the offsets of saved regs (relative to the old SP); and
-// OBSOLETE    * the offset from the stack pointer to the frame pointer
-// OBSOLETE 
-// OBSOLETE    The cache contains only one entry, since this is adequate
-// OBSOLETE    for the typical sequence of prologue scan requests we get.
-// OBSOLETE    When performing a backtrace, GDB will usually ask to scan
-// OBSOLETE    the same function twice in a row (once to get the frame chain,
-// OBSOLETE    and once to fill in the extra frame information).
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static struct frame_info prologue_cache;
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE check_prologue_cache (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE 
-// OBSOLETE   if (fi->pc == prologue_cache.pc)
-// OBSOLETE     {
-// OBSOLETE       fi->framereg = prologue_cache.framereg;
-// OBSOLETE       fi->framesize = prologue_cache.framesize;
-// OBSOLETE       fi->frameoffset = prologue_cache.frameoffset;
-// OBSOLETE       for (i = 0; i <= NUM_REGS; i++)
-// OBSOLETE    fi->fsr.regs[i] = prologue_cache.fsr.regs[i];
-// OBSOLETE       return 1;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     return 0;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Function: save_prologue_cache
-// OBSOLETE    Copy the prologue information from fi to the prologue cache.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE save_prologue_cache (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE 
-// OBSOLETE   prologue_cache.pc = fi->pc;
-// OBSOLETE   prologue_cache.framereg = fi->framereg;
-// OBSOLETE   prologue_cache.framesize = fi->framesize;
-// OBSOLETE   prologue_cache.frameoffset = fi->frameoffset;
-// OBSOLETE 
-// OBSOLETE   for (i = 0; i <= NUM_REGS; i++)
-// OBSOLETE     {
-// OBSOLETE       prologue_cache.fsr.regs[i] = fi->fsr.regs[i];
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Function: scan_prologue
-// OBSOLETE    Scan the prologue of the function that contains PC, and record what
-// OBSOLETE    we find in PI.  PI->fsr must be zeroed by the called.  Returns the
-// OBSOLETE    pc after the prologue.  Note that the addresses saved in pi->fsr
-// OBSOLETE    are actually just frame relative (negative offsets from the frame
-// OBSOLETE    pointer).  This is because we don't know the actual value of the
-// OBSOLETE    frame pointer yet.  In some circumstances, the frame pointer can't
-// OBSOLETE    be determined till after we have scanned the prologue.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE fr30_scan_prologue (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   int sp_offset, fp_offset;
-// OBSOLETE   CORE_ADDR prologue_start, prologue_end, current_pc;
-// OBSOLETE 
-// OBSOLETE   /* Check if this function is already in the cache of frame information. */
-// OBSOLETE   if (check_prologue_cache (fi))
-// OBSOLETE     return;
-// OBSOLETE 
-// OBSOLETE   /* Assume there is no frame until proven otherwise.  */
-// OBSOLETE   fi->framereg = SP_REGNUM;
-// OBSOLETE   fi->framesize = 0;
-// OBSOLETE   fi->frameoffset = 0;
-// OBSOLETE 
-// OBSOLETE   /* Find the function prologue.  If we can't find the function in
-// OBSOLETE      the symbol table, peek in the stack frame to find the PC.  */
-// OBSOLETE   if (find_pc_partial_function (fi->pc, NULL, &prologue_start, &prologue_end))
-// OBSOLETE     {
-// OBSOLETE       /* Assume the prologue is everything between the first instruction
-// OBSOLETE          in the function and the first source line.  */
-// OBSOLETE       struct symtab_and_line sal = find_pc_line (prologue_start, 0);
-// OBSOLETE 
-// OBSOLETE       if (sal.line == 0)   /* no line info, use current PC */
-// OBSOLETE    prologue_end = fi->pc;
-// OBSOLETE       else if (sal.end < prologue_end)     /* next line begins after fn end */
-// OBSOLETE    prologue_end = sal.end; /* (probably means no prologue)  */
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       /* XXX Z.R. What now??? The following is entirely bogus */
-// OBSOLETE       prologue_start = (read_memory_integer (fi->frame, 4) & 0x03fffffc) - 12;
-// OBSOLETE       prologue_end = prologue_start + 40;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Now search the prologue looking for instructions that set up the
-// OBSOLETE      frame pointer, adjust the stack pointer, and save registers.  */
-// OBSOLETE 
-// OBSOLETE   sp_offset = fp_offset = 0;
-// OBSOLETE   for (current_pc = prologue_start; current_pc < prologue_end; current_pc += 2)
-// OBSOLETE     {
-// OBSOLETE       unsigned int insn;
-// OBSOLETE 
-// OBSOLETE       insn = read_memory_unsigned_integer (current_pc, 2);
-// OBSOLETE 
-// OBSOLETE       if ((insn & 0xfe00) == 0x8e00)       /* stm0 or stm1 */
-// OBSOLETE    {
-// OBSOLETE      int reg, mask = insn & 0xff;
-// OBSOLETE 
-// OBSOLETE      /* scan in one sweep - create virtual 16-bit mask from either insn's mask */
-// OBSOLETE      if ((insn & 0x0100) == 0)
-// OBSOLETE        {
-// OBSOLETE          mask <<= 8;       /* stm0 - move to upper byte in virtual mask */
-// OBSOLETE        }
-// OBSOLETE 
-// OBSOLETE      /* Calculate offsets of saved registers (to be turned later into addresses). */
-// OBSOLETE      for (reg = R4_REGNUM; reg <= R11_REGNUM; reg++)
-// OBSOLETE        if (mask & (1 << (15 - reg)))
-// OBSOLETE          {
-// OBSOLETE            sp_offset -= 4;
-// OBSOLETE            fi->fsr.regs[reg] = sp_offset;
-// OBSOLETE          }
-// OBSOLETE    }
-// OBSOLETE       else if ((insn & 0xfff0) == 0x1700)  /* st rx,@-r15 */
-// OBSOLETE    {
-// OBSOLETE      int reg = insn & 0xf;
-// OBSOLETE 
-// OBSOLETE      sp_offset -= 4;
-// OBSOLETE      fi->fsr.regs[reg] = sp_offset;
-// OBSOLETE    }
-// OBSOLETE       else if ((insn & 0xff00) == 0x0f00)  /* enter */
-// OBSOLETE    {
-// OBSOLETE      fp_offset = fi->fsr.regs[FP_REGNUM] = sp_offset - 4;
-// OBSOLETE      sp_offset -= 4 * (insn & 0xff);
-// OBSOLETE      fi->framereg = FP_REGNUM;
-// OBSOLETE    }
-// OBSOLETE       else if (insn == 0x1781)     /* st rp,@-sp */
-// OBSOLETE    {
-// OBSOLETE      sp_offset -= 4;
-// OBSOLETE      fi->fsr.regs[RP_REGNUM] = sp_offset;
-// OBSOLETE    }
-// OBSOLETE       else if (insn == 0x170e)     /* st fp,@-sp */
-// OBSOLETE    {
-// OBSOLETE      sp_offset -= 4;
-// OBSOLETE      fi->fsr.regs[FP_REGNUM] = sp_offset;
-// OBSOLETE    }
-// OBSOLETE       else if (insn == 0x8bfe)     /* mov sp,fp */
-// OBSOLETE    {
-// OBSOLETE      fi->framereg = FP_REGNUM;
-// OBSOLETE    }
-// OBSOLETE       else if ((insn & 0xff00) == 0xa300)  /* addsp xx */
-// OBSOLETE    {
-// OBSOLETE      sp_offset += 4 * (signed char) (insn & 0xff);
-// OBSOLETE    }
-// OBSOLETE       else if ((insn & 0xff0f) == 0x9b00 &&        /* ldi:20 xx,r0 */
-// OBSOLETE           read_memory_unsigned_integer (current_pc + 4, 2)
-// OBSOLETE           == 0xac0f)       /* sub r0,sp */
-// OBSOLETE    {
-// OBSOLETE      /* large stack adjustment */
-// OBSOLETE      sp_offset -= (((insn & 0xf0) << 12) | read_memory_unsigned_integer (current_pc + 2, 2));
-// OBSOLETE      current_pc += 4;
-// OBSOLETE    }
-// OBSOLETE       else if (insn == 0x9f80 &&   /* ldi:32 xx,r0 */
-// OBSOLETE           read_memory_unsigned_integer (current_pc + 6, 2)
-// OBSOLETE           == 0xac0f)       /* sub r0,sp */
-// OBSOLETE    {
-// OBSOLETE      /* large stack adjustment */
-// OBSOLETE      sp_offset -=
-// OBSOLETE        (read_memory_unsigned_integer (current_pc + 2, 2) << 16 |
-// OBSOLETE         read_memory_unsigned_integer (current_pc + 4, 2));
-// OBSOLETE      current_pc += 6;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* The frame size is just the negative of the offset (from the original SP)
-// OBSOLETE      of the last thing thing we pushed on the stack.  The frame offset is
-// OBSOLETE      [new FP] - [new SP].  */
-// OBSOLETE   fi->framesize = -sp_offset;
-// OBSOLETE   fi->frameoffset = fp_offset - sp_offset;
-// OBSOLETE 
-// OBSOLETE   save_prologue_cache (fi);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Function: init_extra_frame_info
-// OBSOLETE    Setup the frame's frame pointer, pc, and frame addresses for saved
-// OBSOLETE    registers.  Most of the work is done in scan_prologue().
-// OBSOLETE 
-// OBSOLETE    Note that when we are called for the last frame (currently active frame),
-// OBSOLETE    that fi->pc and fi->frame will already be setup.  However, fi->frame will
-// OBSOLETE    be valid only if this routine uses FP.  For previous frames, fi-frame will
-// OBSOLETE    always be correct (since that is derived from fr30_frame_chain ()).
-// OBSOLETE 
-// OBSOLETE    We can be called with the PC in the call dummy under two circumstances.
-// OBSOLETE    First, during normal backtracing, second, while figuring out the frame
-// OBSOLETE    pointer just prior to calling the target function (see run_stack_dummy).  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE fr30_init_extra_frame_info (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   int reg;
-// OBSOLETE 
-// OBSOLETE   if (fi->next)
-// OBSOLETE     fi->pc = FRAME_SAVED_PC (fi->next);
-// OBSOLETE 
-// OBSOLETE   memset (fi->fsr.regs, '\000', sizeof fi->fsr.regs);
-// OBSOLETE 
-// OBSOLETE   if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
-// OBSOLETE     {
-// OBSOLETE       /* We need to setup fi->frame here because run_stack_dummy gets it wrong
-// OBSOLETE          by assuming it's always FP.  */
-// OBSOLETE       fi->frame = generic_read_register_dummy (fi->pc, fi->frame, SP_REGNUM);
-// OBSOLETE       fi->framesize = 0;
-// OBSOLETE       fi->frameoffset = 0;
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE   fr30_scan_prologue (fi);
-// OBSOLETE 
-// OBSOLETE   if (!fi->next)           /* this is the innermost frame? */
-// OBSOLETE     fi->frame = read_register (fi->framereg);
-// OBSOLETE   else
-// OBSOLETE     /* not the innermost frame */
-// OBSOLETE     /* If we have an FP,  the callee saved it. */
-// OBSOLETE     if (fi->framereg == FP_REGNUM)
-// OBSOLETE       if (fi->next->fsr.regs[fi->framereg] != 0)
-// OBSOLETE    fi->frame = read_memory_integer (fi->next->fsr.regs[fi->framereg], 4);
-// OBSOLETE 
-// OBSOLETE   /* Calculate actual addresses of saved registers using offsets determined
-// OBSOLETE      by fr30_scan_prologue.  */
-// OBSOLETE   for (reg = 0; reg < NUM_REGS; reg++)
-// OBSOLETE     if (fi->fsr.regs[reg] != 0)
-// OBSOLETE       {
-// OBSOLETE    fi->fsr.regs[reg] += fi->frame + fi->framesize - fi->frameoffset;
-// OBSOLETE       }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Function: find_callers_reg
-// OBSOLETE    Find REGNUM on the stack.  Otherwise, it's in an active register.
-// OBSOLETE    One thing we might want to do here is to check REGNUM against the
-// OBSOLETE    clobber mask, and somehow flag it as invalid if it isn't saved on
-// OBSOLETE    the stack somewhere.  This would provide a graceful failure mode
-// OBSOLETE    when trying to get the value of caller-saves registers for an inner
-// OBSOLETE    frame.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE fr30_find_callers_reg (struct frame_info *fi, int regnum)
-// OBSOLETE {
-// OBSOLETE   for (; fi; fi = fi->next)
-// OBSOLETE     if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
-// OBSOLETE       return generic_read_register_dummy (fi->pc, fi->frame, regnum);
-// OBSOLETE     else if (fi->fsr.regs[regnum] != 0)
-// OBSOLETE       return read_memory_unsigned_integer (fi->fsr.regs[regnum],
-// OBSOLETE                                       REGISTER_RAW_SIZE (regnum));
-// OBSOLETE 
-// OBSOLETE   return read_register (regnum);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Function: frame_chain
-// OBSOLETE    Figure out the frame prior to FI.  Unfortunately, this involves
-// OBSOLETE    scanning the prologue of the caller, which will also be done
-// OBSOLETE    shortly by fr30_init_extra_frame_info.  For the dummy frame, we
-// OBSOLETE    just return the stack pointer that was in use at the time the
-// OBSOLETE    function call was made.  */
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE fr30_frame_chain (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   CORE_ADDR fn_start, callers_pc, fp;
-// OBSOLETE   struct frame_info caller_fi;
-// OBSOLETE   int framereg;
-// OBSOLETE 
-// OBSOLETE   /* is this a dummy frame? */
-// OBSOLETE   if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
-// OBSOLETE     return fi->frame;              /* dummy frame same as caller's frame */
-// OBSOLETE 
-// OBSOLETE   /* is caller-of-this a dummy frame? */
-// OBSOLETE   callers_pc = FRAME_SAVED_PC (fi);        /* find out who called us: */
-// OBSOLETE   fp = fr30_find_callers_reg (fi, FP_REGNUM);
-// OBSOLETE   if (PC_IN_CALL_DUMMY (callers_pc, fp, fp))
-// OBSOLETE     return fp;                     /* dummy frame's frame may bear no relation to ours */
-// OBSOLETE 
-// OBSOLETE   if (find_pc_partial_function (fi->pc, 0, &fn_start, 0))
-// OBSOLETE     if (fn_start == entry_point_address ())
-// OBSOLETE       return 0;                    /* in _start fn, don't chain further */
-// OBSOLETE 
-// OBSOLETE   framereg = fi->framereg;
-// OBSOLETE 
-// OBSOLETE   /* If the caller is the startup code, we're at the end of the chain.  */
-// OBSOLETE   if (find_pc_partial_function (callers_pc, 0, &fn_start, 0))
-// OBSOLETE     if (fn_start == entry_point_address ())
-// OBSOLETE       return 0;
-// OBSOLETE 
-// OBSOLETE   memset (&caller_fi, 0, sizeof (caller_fi));
-// OBSOLETE   caller_fi.pc = callers_pc;
-// OBSOLETE   fr30_scan_prologue (&caller_fi);
-// OBSOLETE   framereg = caller_fi.framereg;
-// OBSOLETE 
-// OBSOLETE   /* If the caller used a frame register, return its value.
-// OBSOLETE      Otherwise, return the caller's stack pointer.  */
-// OBSOLETE   if (framereg == FP_REGNUM)
-// OBSOLETE     return fr30_find_callers_reg (fi, framereg);
-// OBSOLETE   else
-// OBSOLETE     return fi->frame + fi->framesize;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Function: frame_saved_pc 
-// OBSOLETE    Find the caller of this frame.  We do this by seeing if RP_REGNUM
-// OBSOLETE    is saved in the stack anywhere, otherwise we get it from the
-// OBSOLETE    registers.  If the inner frame is a dummy frame, return its PC
-// OBSOLETE    instead of RP, because that's where "caller" of the dummy-frame
-// OBSOLETE    will be found.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE fr30_frame_saved_pc (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
-// OBSOLETE     return generic_read_register_dummy (fi->pc, fi->frame, PC_REGNUM);
-// OBSOLETE   else
-// OBSOLETE     return fr30_find_callers_reg (fi, RP_REGNUM);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Function: fix_call_dummy
-// OBSOLETE    Pokes the callee function's address into the CALL_DUMMY assembly stub.
-// OBSOLETE    Assumes that the CALL_DUMMY looks like this:
-// OBSOLETE    jarl <offset24>, r31
-// OBSOLETE    trap
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE fr30_fix_call_dummy (char *dummy, CORE_ADDR sp, CORE_ADDR fun, int nargs,
-// OBSOLETE                 struct value **args, struct type *type, int gcc_p)
-// OBSOLETE {
-// OBSOLETE   long offset24;
-// OBSOLETE 
-// OBSOLETE   offset24 = (long) fun - (long) entry_point_address ();
-// OBSOLETE   offset24 &= 0x3fffff;
-// OBSOLETE   offset24 |= 0xff800000;  /* jarl <offset24>, r31 */
-// OBSOLETE 
-// OBSOLETE   store_unsigned_integer ((unsigned int *) &dummy[2], 2, offset24 & 0xffff);
-// OBSOLETE   store_unsigned_integer ((unsigned int *) &dummy[0], 2, offset24 >> 16);
-// OBSOLETE   return 0;
-// OBSOLETE }
index bfefc77693448cc05c069542573a0c5f30bb0e6f..ecdf408c5cf97ae3c6c8f1941cbda56f1445a5b2 100644 (file)
 #include "dummy-frame.h"
 #include "gdbcore.h"
 #include "annotate.h"
+#include "language.h"
 
-/* Return a frame uniq ID that can be used to, later re-find the
+/* Return a frame uniq ID that can be used to, later, re-find the
    frame.  */
 
-void
-get_frame_id (struct frame_info *fi, struct frame_id *id)
+struct frame_id
+get_frame_id (struct frame_info *fi)
 {
   if (fi == NULL)
     {
-      id->base = 0;
-      id->pc = 0;
+      return null_frame_id;
     }
   else
     {
-      id->base = FRAME_FP (fi);
-      id->pc = fi->pc;
+      struct frame_id id;
+      id.base = fi->frame;
+      id.pc = fi->pc;
+      return id;
     }
 }
 
+const struct frame_id null_frame_id; /* All zeros.  */
+
+struct frame_id
+frame_id_build (CORE_ADDR base, CORE_ADDR func_or_pc)
+{
+  struct frame_id id;
+  id.base = base;
+  id.pc = func_or_pc;
+  return id;
+}
+
+int
+frame_id_p (struct frame_id l)
+{
+  /* The .func can be NULL but the .base cannot.  */
+  return (l.base != 0);
+}
+
+int
+frame_id_eq (struct frame_id l, struct frame_id r)
+{
+  /* If .base is different, the frames are different.  */
+  if (l.base != r.base)
+    return 0;
+  /* Add a test to check that the frame ID's are for the same function
+     here.  */
+  return 1;
+}
+
+int
+frame_id_inner (struct frame_id l, struct frame_id r)
+{
+  /* Only return non-zero when strictly inner than.  Note that, per
+     comment in "frame.h", there is some fuzz here.  Frameless
+     functions are not strictly inner than (same .base but different
+     .func).  */
+  return INNER_THAN (l.base, r.base);
+}
+
 struct frame_info *
 frame_find_by_id (struct frame_id id)
 {
@@ -59,31 +100,52 @@ frame_find_by_id (struct frame_id id)
 
   /* ZERO denotes the null frame, let the caller decide what to do
      about it.  Should it instead return get_current_frame()?  */
-  if (id.base == 0 && id.pc == 0)
+  if (!frame_id_p (id))
     return NULL;
 
   for (frame = get_current_frame ();
        frame != NULL;
        frame = get_prev_frame (frame))
     {
-      if (INNER_THAN (FRAME_FP (frame), id.base))
-       /* ``inner/current < frame < id.base''.  Keep looking along
-           the frame chain.  */
-       continue;
-      if (INNER_THAN (id.base, FRAME_FP (frame)))
-       /* ``inner/current < id.base < frame''.  Oops, gone past it.
-           Just give up.  */
+      struct frame_id this = get_frame_id (frame);
+      if (frame_id_eq (id, this))
+       /* An exact match.  */
+       return frame;
+      if (frame_id_inner (id, this))
+       /* Gone to far.  */
        return NULL;
-      /* FIXME: cagney/2002-04-21: This isn't sufficient.  It should
-        use id.pc to check that the two frames belong to the same
-        function.  Otherwise we'll do things like match dummy frames
-        or mis-match frameless functions.  However, until someone
-        notices, stick with the existing behavour.  */
-      return frame;
+      /* Either, we're not yet gone far enough out along the frame
+         chain (inner(this,id), or we're comparing frameless functions
+         (same .base, different .func, no test available).  Struggle
+         on until we've definitly gone to far.  */
     }
   return NULL;
 }
 
+CORE_ADDR
+frame_pc_unwind (struct frame_info *frame)
+{
+  if (!frame->pc_unwind_cache_p)
+    {
+      frame->pc_unwind_cache = frame->pc_unwind (frame, &frame->unwind_cache);
+      frame->pc_unwind_cache_p = 1;
+    }
+  return frame->pc_unwind_cache;
+}
+
+struct frame_id
+frame_id_unwind (struct frame_info *frame)
+{
+  if (!frame->id_unwind_cache_p)
+    {
+      frame->id_unwind_cache =
+       frame->id_unwind (frame, &frame->unwind_cache);
+      frame->id_unwind_cache_p = 1;
+    }
+  return frame->id_unwind_cache;
+}
+
+
 void
 frame_register_unwind (struct frame_info *frame, int regnum,
                       int *optimizedp, enum lval_type *lvalp,
@@ -124,7 +186,7 @@ frame_register_unwind (struct frame_info *frame, int regnum,
     }
 
   /* Ask this frame to unwind its register.  */
-  frame->register_unwind (frame, &frame->register_unwind_cache, regnum,
+  frame->register_unwind (frame, &frame->unwind_cache, regnum,
                          optimizedp, lvalp, addrp, realnump, bufferp);
 }
 
@@ -250,7 +312,7 @@ frame_read_signed_register (struct frame_info *frame, int regnum,
   frame_unwind_signed_register (get_next_frame (frame), regnum, val);
 }
 
-void
+static void
 generic_unwind_get_saved_register (char *raw_buffer,
                                   int *optimizedp,
                                   CORE_ADDR *addrp,
@@ -399,14 +461,20 @@ frame_obstack_alloc (unsigned long size)
   return obstack_alloc (&frame_cache_obstack, size);
 }
 
-void
+CORE_ADDR *
 frame_saved_regs_zalloc (struct frame_info *fi)
 {
   fi->saved_regs = (CORE_ADDR *)
     frame_obstack_alloc (SIZEOF_FRAME_SAVED_REGS);
   memset (fi->saved_regs, 0, SIZEOF_FRAME_SAVED_REGS);
+  return fi->saved_regs;
 }
 
+CORE_ADDR *
+get_frame_saved_regs (struct frame_info *fi)
+{
+  return fi->saved_regs;
+}
 
 /* Return the innermost (currently executing) stack frame.  */
 
@@ -423,10 +491,63 @@ get_current_frame (void)
   return current_frame;
 }
 
+/* The "selected" stack frame is used by default for local and arg
+   access.  May be zero, for no selected frame.  */
+
+struct frame_info *deprecated_selected_frame;
+
+/* Return the selected frame.  Always non-null (unless there isn't an
+   inferior sufficient for creating a frame) in which case an error is
+   thrown.  */
+
+struct frame_info *
+get_selected_frame (void)
+{
+  if (deprecated_selected_frame == NULL)
+    /* Hey!  Don't trust this.  It should really be re-finding the
+       last selected frame of the currently selected thread.  This,
+       though, is better than nothing.  */
+    select_frame (get_current_frame ());
+  /* There is always a frame.  */
+  gdb_assert (deprecated_selected_frame != NULL);
+  return deprecated_selected_frame;
+}
+
+/* Select frame FI (or NULL - to invalidate the current frame).  */
+
 void
-set_current_frame (struct frame_info *frame)
+select_frame (struct frame_info *fi)
 {
-  current_frame = frame;
+  register struct symtab *s;
+
+  deprecated_selected_frame = fi;
+  /* NOTE: cagney/2002-05-04: FI can be NULL.  This occures when the
+     frame is being invalidated.  */
+  if (selected_frame_level_changed_hook)
+    selected_frame_level_changed_hook (frame_relative_level (fi));
+
+  /* FIXME: kseitz/2002-08-28: It would be nice to call
+     selected_frame_level_changed_event right here, but due to limitations
+     in the current interfaces, we would end up flooding UIs with events
+     because select_frame is used extensively internally.
+
+     Once we have frame-parameterized frame (and frame-related) commands,
+     the event notification can be moved here, since this function will only
+     be called when the users selected frame is being changed. */
+
+  /* Ensure that symbols for this frame are read in.  Also, determine the
+     source language of this frame, and switch to it if desired.  */
+  if (fi)
+    {
+      s = find_pc_symtab (fi->pc);
+      if (s
+         && s->language != current_language->la_language
+         && s->language != language_unknown
+         && language_mode == language_mode_auto)
+       {
+         set_language (s->language);
+       }
+    }
 }
 
 /* Return the register saved in the simplistic ``saved_regs'' cache.
@@ -445,8 +566,8 @@ frame_saved_regs_register_unwind (struct frame_info *frame, void **cache,
   /* If we're using generic dummy frames, we'd better not be in a call
      dummy.  (generic_call_dummy_register_unwind ought to have been called
      instead.)  */
-  gdb_assert (!(USE_GENERIC_DUMMY_FRAMES
-                && PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame)));
+  gdb_assert (!(DEPRECATED_USE_GENERIC_DUMMY_FRAMES
+               && (get_frame_type (frame) == DUMMY_FRAME)));
 
   /* Load the saved_regs register cache.  */
   if (frame->saved_regs == NULL)
@@ -524,6 +645,74 @@ frame_saved_regs_register_unwind (struct frame_info *frame, void **cache,
     }
 }
 
+static CORE_ADDR
+frame_saved_regs_pc_unwind (struct frame_info *frame, void **cache)
+{
+  return FRAME_SAVED_PC (frame);
+}
+       
+static struct frame_id
+frame_saved_regs_id_unwind (struct frame_info *next_frame, void **cache)
+{
+  int fromleaf;
+  struct frame_id id;
+
+  if (next_frame->next == NULL)
+    /* FIXME: 2002-11-09: Frameless functions can occure anywhere in
+       the frame chain, not just the inner most frame!  The generic,
+       per-architecture, frame code should handle this and the below
+       should simply be removed.  */
+    fromleaf = FRAMELESS_FUNCTION_INVOCATION (next_frame);
+  else
+    fromleaf = 0;
+
+  if (fromleaf)
+    /* A frameless inner-most frame.  The `FP' (which isn't an
+       architecture frame-pointer register!) of the caller is the same
+       as the callee.  */
+    /* FIXME: 2002-11-09: There isn't any reason to special case this
+       edge condition.  Instead the per-architecture code should hande
+       it locally.  */
+    id.base = get_frame_base (next_frame);
+  else
+    {
+      /* Two macros defined in tm.h specify the machine-dependent
+         actions to be performed here.
+
+         First, get the frame's chain-pointer.
+
+         If that is zero, the frame is the outermost frame or a leaf
+         called by the outermost frame.  This means that if start
+         calls main without a frame, we'll return 0 (which is fine
+         anyway).
+
+         Nope; there's a problem.  This also returns when the current
+         routine is a leaf of main.  This is unacceptable.  We move
+         this to after the ffi test; I'd rather have backtraces from
+         start go curfluy than have an abort called from main not show
+         main.  */
+      id.base = FRAME_CHAIN (next_frame);
+
+      /* FIXME: cagney/2002-06-08: There should be two tests here.
+         The first would check for a valid frame chain based on a user
+         selectable policy.  The default being ``stop at main'' (as
+         implemented by generic_func_frame_chain_valid()).  Other
+         policies would be available - stop at NULL, ....  The second
+         test, if provided by the target architecture, would check for
+         more exotic cases - most target architectures wouldn't bother
+         with this second case.  */
+      if (!FRAME_CHAIN_VALID (id.base, next_frame))
+       return null_frame_id;
+    }
+  if (id.base == 0)
+    return null_frame_id;
+
+  /* FIXME: cagney/2002-06-08: This should probably return the frame's
+     function and not the PC (a.k.a. resume address).  */
+  id.pc = frame_pc_unwind (next_frame);
+  return id;
+}
+       
 /* Function: get_saved_register
    Find register number REGNUM relative to FRAME and put its (raw,
    target format) contents in *RAW_BUFFER.  
@@ -571,7 +760,7 @@ deprecated_generic_get_saved_register (char *raw_buffer, int *optimized,
 
   while (frame && ((frame = frame->next) != NULL))
     {
-      if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+      if (get_frame_type (frame) == DUMMY_FRAME)
        {
          if (lval)             /* found it in a CALL_DUMMY frame */
            *lval = not_lval;
@@ -627,18 +816,34 @@ deprecated_generic_get_saved_register (char *raw_buffer, int *optimized,
 
 static void
 set_unwind_by_pc (CORE_ADDR pc, CORE_ADDR fp,
-                 frame_register_unwind_ftype **unwind)
-{
-  if (!USE_GENERIC_DUMMY_FRAMES)
-    /* Still need to set this to something.  The ``info frame'' code
-       calls this function to find out where the saved registers are.
-       Hopefully this is robust enough to stop any core dumps and
-       return vaguely correct values..  */
-    *unwind = frame_saved_regs_register_unwind;
-  else if (PC_IN_CALL_DUMMY (pc, fp, fp))
-    *unwind = dummy_frame_register_unwind;
+                 frame_register_unwind_ftype **unwind_register,
+                 frame_pc_unwind_ftype **unwind_pc,
+                 frame_id_unwind_ftype **unwind_id)
+{
+  if (!DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
+    {
+      /* Still need to set this to something.  The ``info frame'' code
+        calls this function to find out where the saved registers are.
+        Hopefully this is robust enough to stop any core dumps and
+        return vaguely correct values..  */
+      *unwind_register = frame_saved_regs_register_unwind;
+      *unwind_pc = frame_saved_regs_pc_unwind;
+      *unwind_id = frame_saved_regs_id_unwind;
+    }
+  else if (DEPRECATED_PC_IN_CALL_DUMMY_P ()
+          ? DEPRECATED_PC_IN_CALL_DUMMY (pc, 0, 0)
+          : pc_in_dummy_frame (pc))
+    {
+      *unwind_register = dummy_frame_register_unwind;
+      *unwind_pc = dummy_frame_pc_unwind;
+      *unwind_id = dummy_frame_id_unwind;
+    }
   else
-    *unwind = frame_saved_regs_register_unwind;
+    {
+      *unwind_register = frame_saved_regs_register_unwind;
+      *unwind_pc = frame_saved_regs_pc_unwind;
+      *unwind_id = frame_saved_regs_id_unwind;
+    }
 }
 
 /* Create an arbitrary (i.e. address specified by user) or innermost frame.
@@ -648,7 +853,7 @@ struct frame_info *
 create_new_frame (CORE_ADDR addr, CORE_ADDR pc)
 {
   struct frame_info *fi;
-  char *name;
+  enum frame_type type;
 
   fi = (struct frame_info *)
     obstack_alloc (&frame_cache_obstack,
@@ -659,14 +864,37 @@ create_new_frame (CORE_ADDR addr, CORE_ADDR pc)
 
   fi->frame = addr;
   fi->pc = pc;
-  find_pc_partial_function (pc, &name, (CORE_ADDR *) NULL, (CORE_ADDR *) NULL);
-  fi->signal_handler_caller = PC_IN_SIGTRAMP (fi->pc, name);
+  /* NOTE: cagney/2002-11-18: The code segments, found in
+     create_new_frame and get_prev_frame(), that initializes the
+     frames type is subtly different.  The latter only updates ->type
+     when it encounters a SIGTRAMP_FRAME or DUMMY_FRAME.  This stops
+     get_prev_frame() overriding the frame's type when the INIT code
+     has previously set it.  This is really somewhat bogus.  The
+     initialization, as seen in create_new_frame(), should occur
+     before the INIT function has been called.  */
+  if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES
+      && (DEPRECATED_PC_IN_CALL_DUMMY_P ()
+         ? DEPRECATED_PC_IN_CALL_DUMMY (pc, 0, 0)
+         : pc_in_dummy_frame (pc)))
+    /* NOTE: cagney/2002-11-11: Does this even occure?  */
+    type = DUMMY_FRAME;
+  else
+    {
+      char *name;
+      find_pc_partial_function (pc, &name, NULL, NULL);
+      if (PC_IN_SIGTRAMP (fi->pc, name))
+       type = SIGTRAMP_FRAME;
+      else
+       type = NORMAL_FRAME;
+    }
+  fi->type = type;
 
   if (INIT_EXTRA_FRAME_INFO_P ())
     INIT_EXTRA_FRAME_INFO (0, fi);
 
   /* Select/initialize an unwind function.  */
-  set_unwind_by_pc (fi->pc, fi->frame, &fi->register_unwind);
+  set_unwind_by_pc (fi->pc, fi->frame, &fi->register_unwind,
+                   &fi->pc_unwind, &fi->id_unwind);
 
   return fi;
 }
@@ -718,7 +946,6 @@ get_prev_frame (struct frame_info *next_frame)
   CORE_ADDR address = 0;
   struct frame_info *prev;
   int fromleaf;
-  char *name;
 
   /* Return the inner-most frame, when the caller passes in NULL.  */
   /* NOTE: cagney/2002-11-09: Not sure how this would happen.  The
@@ -772,7 +999,7 @@ get_prev_frame (struct frame_info *next_frame)
     /* FIXME: 2002-11-09: There isn't any reason to special case this
        edge condition.  Instead the per-architecture code should hande
        it locally.  */
-    address = FRAME_FP (next_frame);
+    address = get_frame_base (next_frame);
   else
     {
       /* Two macros defined in tm.h specify the machine-dependent
@@ -817,26 +1044,32 @@ get_prev_frame (struct frame_info *next_frame)
   prev->next = next_frame;
   prev->frame = address;
   prev->level = next_frame->level + 1;
+  /* FIXME: cagney/2002-11-18: Should be setting the frame's type
+     here, before anything else, and not last.  Various INIT functions
+     are full of work-arounds for the frames type not being set
+     correctly from the word go.  Ulgh!  */
+  prev->type = NORMAL_FRAME;
 
   /* This change should not be needed, FIXME!  We should determine
-     whether any targets *need* INIT_FRAME_PC to happen after
-     INIT_EXTRA_FRAME_INFO and come up with a simple way to express
-     what goes on here.
+     whether any targets *need* DEPRECATED_INIT_FRAME_PC to happen
+     after INIT_EXTRA_FRAME_INFO and come up with a simple way to
+     express what goes on here.
 
      INIT_EXTRA_FRAME_INFO is called from two places: create_new_frame
      (where the PC is already set up) and here (where it isn't).
-     INIT_FRAME_PC is only called from here, always after
+     DEPRECATED_INIT_FRAME_PC is only called from here, always after
      INIT_EXTRA_FRAME_INFO.
 
      The catch is the MIPS, where INIT_EXTRA_FRAME_INFO requires the
      PC value (which hasn't been set yet).  Some other machines appear
      to require INIT_EXTRA_FRAME_INFO before they can do
-     INIT_FRAME_PC.  Phoo.
+     DEPRECATED_INIT_FRAME_PC.  Phoo.
 
-     We shouldn't need INIT_FRAME_PC_FIRST to add more complication to
-     an already overcomplicated part of GDB.  gnu@cygnus.com, 15Sep92.
+     We shouldn't need DEPRECATED_INIT_FRAME_PC_FIRST to add more
+     complication to an already overcomplicated part of GDB.
+     gnu@cygnus.com, 15Sep92.
 
-     Assuming that some machines need INIT_FRAME_PC after
+     Assuming that some machines need DEPRECATED_INIT_FRAME_PC after
      INIT_EXTRA_FRAME_INFO, one possible scheme:
 
      SETUP_INNERMOST_FRAME(): Default version is just create_new_frame
@@ -848,17 +1081,17 @@ get_prev_frame (struct frame_info *next_frame)
      SETUP_ARBITRARY_FRAME would have to do that.
 
      INIT_PREV_FRAME(fromleaf, prev) Replace INIT_EXTRA_FRAME_INFO and
-     INIT_FRAME_PC.  This should also return a flag saying whether to
-     keep the new frame, or whether to discard it, because on some
-     machines (e.g.  mips) it is really awkward to have
+     DEPRECATED_INIT_FRAME_PC.  This should also return a flag saying
+     whether to keep the new frame, or whether to discard it, because
+     on some machines (e.g.  mips) it is really awkward to have
      FRAME_CHAIN_VALID called *before* INIT_EXTRA_FRAME_INFO (there is
      no good way to get information deduced in FRAME_CHAIN_VALID into
      the extra fields of the new frame).  std_frame_pc(fromleaf, prev)
 
      This is the default setting for INIT_PREV_FRAME.  It just does
-     what the default INIT_FRAME_PC does.  Some machines will call it
-     from INIT_PREV_FRAME (either at the beginning, the end, or in the
-     middle).  Some machines won't use it.
+     what the default DEPRECATED_INIT_FRAME_PC does.  Some machines
+     will call it from INIT_PREV_FRAME (either at the beginning, the
+     end, or in the middle).  Some machines won't use it.
 
      kingdon@cygnus.com, 13Apr93, 31Jan94, 14Dec94.  */
 
@@ -887,7 +1120,8 @@ get_prev_frame (struct frame_info *next_frame)
      FRAME_SAVED_PC() is being superseed by frame_pc_unwind() and that
      function does have somewhere to cache that PC value.  */
 
-  INIT_FRAME_PC_FIRST (fromleaf, prev);
+  if (DEPRECATED_INIT_FRAME_PC_FIRST_P ())
+    prev->pc = (DEPRECATED_INIT_FRAME_PC_FIRST (fromleaf, prev));
 
   if (INIT_EXTRA_FRAME_INFO_P ())
     INIT_EXTRA_FRAME_INFO (fromleaf, prev);
@@ -895,7 +1129,8 @@ get_prev_frame (struct frame_info *next_frame)
   /* This entry is in the frame queue now, which is good since
      FRAME_SAVED_PC may use that queue to figure out its value (see
      tm-sparc.h).  We want the pc saved in the inferior frame. */
-  INIT_FRAME_PC (fromleaf, prev);
+  if (DEPRECATED_INIT_FRAME_PC_P ())
+    prev->pc = DEPRECATED_INIT_FRAME_PC (fromleaf, prev);
 
   /* If ->frame and ->pc are unchanged, we are in the process of
      getting ourselves into an infinite backtrace.  Some architectures
@@ -913,12 +1148,41 @@ get_prev_frame (struct frame_info *next_frame)
      (and probably other architectural information).  The PC lets you
      check things like the debug info at that point (dwarf2cfi?) and
      use that to decide how the frame should be unwound.  */
-  set_unwind_by_pc (prev->pc, prev->frame, &prev->register_unwind);
-
-  find_pc_partial_function (prev->pc, &name,
-                           (CORE_ADDR *) NULL, (CORE_ADDR *) NULL);
-  if (PC_IN_SIGTRAMP (prev->pc, name))
-    prev->signal_handler_caller = 1;
+  set_unwind_by_pc (prev->pc, prev->frame, &prev->register_unwind,
+                   &prev->pc_unwind, &prev->id_unwind);
+
+  /* NOTE: cagney/2002-11-18: The code segments, found in
+     create_new_frame and get_prev_frame(), that initializes the
+     frames type is subtly different.  The latter only updates ->type
+     when it encounters a SIGTRAMP_FRAME or DUMMY_FRAME.  This stops
+     get_prev_frame() overriding the frame's type when the INIT code
+     has previously set it.  This is really somewhat bogus.  The
+     initialization, as seen in create_new_frame(), should occur
+     before the INIT function has been called.  */
+  if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES
+      && (DEPRECATED_PC_IN_CALL_DUMMY_P ()
+         ? DEPRECATED_PC_IN_CALL_DUMMY (prev->pc, 0, 0)
+         : pc_in_dummy_frame (prev->pc)))
+    prev->type = DUMMY_FRAME;
+  else
+    {
+      /* FIXME: cagney/2002-11-10: This should be moved to before the
+        INIT code above so that the INIT code knows what the frame's
+        type is (in fact, for a [generic] dummy-frame, the type can
+        be set and then the entire initialization can be skipped.
+        Unforunatly, its the INIT code that sets the PC (Hmm, catch
+        22).  */
+      char *name;
+      find_pc_partial_function (prev->pc, &name, NULL, NULL);
+      if (PC_IN_SIGTRAMP (prev->pc, name))
+       prev->type = SIGTRAMP_FRAME;
+      /* FIXME: cagney/2002-11-11: Leave prev->type alone.  Some
+         architectures are forcing the frame's type in INIT so we
+         don't want to override it here.  Remember, NORMAL_FRAME == 0,
+         so it all works (just :-/).  Once this initialization is
+         moved to the start of this function, all this nastness will
+         go away.  */
+    }
 
   return prev;
 }
@@ -929,14 +1193,75 @@ get_frame_pc (struct frame_info *frame)
   return frame->pc;
 }
 
+static int
+pc_notcurrent (struct frame_info *frame)
+{
+  /* If FRAME is not the innermost frame, that normally means that
+     FRAME->pc points at the return instruction (which is *after* the
+     call instruction), and we want to get the line containing the
+     call (because the call is where the user thinks the program is).
+     However, if the next frame is either a SIGTRAMP_FRAME or a
+     DUMMY_FRAME, then the next frame will contain a saved interrupt
+     PC and such a PC indicates the current (rather than next)
+     instruction/line, consequently, for such cases, want to get the
+     line containing fi->pc.  */
+  struct frame_info *next = get_next_frame (frame);
+  int notcurrent = (next != NULL && get_frame_type (next) == NORMAL_FRAME);
+  return notcurrent;
+}
+
+void
+find_frame_sal (struct frame_info *frame, struct symtab_and_line *sal)
+{
+  (*sal) = find_pc_line (frame->pc, pc_notcurrent (frame));
+}
+
+/* Per "frame.h", return the ``address'' of the frame.  Code should
+   really be using get_frame_id().  */
+CORE_ADDR
+get_frame_base (struct frame_info *fi)
+{
+  return fi->frame;
+}
+
+/* Level of the selected frame: 0 for innermost, 1 for its caller, ...
+   or -1 for a NULL frame.  */
+
+int
+frame_relative_level (struct frame_info *fi)
+{
+  if (fi == NULL)
+    return -1;
+  else
+    return fi->level;
+}
+
+enum frame_type
+get_frame_type (struct frame_info *frame)
+{
+  /* Some targets still don't use [generic] dummy frames.  Catch them
+     here.  */
+  if (!DEPRECATED_USE_GENERIC_DUMMY_FRAMES
+      && deprecated_frame_in_dummy (frame))
+    return DUMMY_FRAME;
+  return frame->type;
+}
+
+void
+deprecated_set_frame_type (struct frame_info *frame, enum frame_type type)
+{
+  /* Arrrg!  See comment in "frame.h".  */
+  frame->type = type;
+}
+
 #ifdef FRAME_FIND_SAVED_REGS
 /* XXX - deprecated.  This is a compatibility function for targets
    that do not yet implement FRAME_INIT_SAVED_REGS.  */
 /* Find the addresses in which registers are saved in FRAME.  */
 
 void
-get_frame_saved_regs (struct frame_info *frame,
-                     struct frame_saved_regs *saved_regs_addr)
+deprecated_get_frame_saved_regs (struct frame_info *frame,
+                                struct frame_saved_regs *saved_regs_addr)
 {
   if (frame->saved_regs == NULL)
     {
@@ -957,6 +1282,34 @@ get_frame_saved_regs (struct frame_info *frame,
 }
 #endif
 
+struct frame_extra_info *
+get_frame_extra_info (struct frame_info *fi)
+{
+  return fi->extra_info;
+}
+
+struct frame_extra_info *
+frame_extra_info_zalloc (struct frame_info *fi, long size)
+{
+  fi->extra_info = frame_obstack_alloc (size);
+  memset (fi->extra_info, 0, size);
+  return fi->extra_info;
+}
+
+void
+deprecated_update_frame_pc_hack (struct frame_info *frame, CORE_ADDR pc)
+{
+  /* See comment in "frame.h".  */
+  frame->pc = pc;
+}
+
+void
+deprecated_update_frame_base_hack (struct frame_info *frame, CORE_ADDR base)
+{
+  /* See comment in "frame.h".  */
+  frame->frame = base;
+}
+
 void
 _initialize_frame (void)
 {
index d39096bfbd3e9b537f9ce5794328ea93debf0df8..3d95ddaae469905a27c2ede8acb5f81a7093202f 100644 (file)
 #if !defined (FRAME_H)
 #define FRAME_H 1
 
+struct symtab_and_line;
+
 /* The frame object.  */
 
 struct frame_info;
 
 /* The frame object's ID.  This provides a per-frame unique identifier
    that can be used to relocate a `struct frame_info' after a target
-   resume or a frame cache destruct (assuming the target hasn't
-   unwound the stack past that frame - a problem handled elsewhere).  */
+   resume or a frame cache destruct.  It of course assumes that the
+   inferior hasn't unwound the stack past that frame.  */
 
 struct frame_id
 {
@@ -45,31 +47,86 @@ struct frame_id
   CORE_ADDR pc;
 };
 
+/* Methods for constructing and comparing Frame IDs.
+
+   NOTE: Given frameless functions A and B, where A calls B (and hence
+   B is inner-to A).  The relationships: !eq(A,B); !eq(B,A);
+   !inner(A,B); !inner(B,A); all hold.  This is because, while B is
+   inner to A, B is not strictly inner to A (being frameless, they
+   have the same .base value).  */
+
+/* For convenience.  All fields are zero.  */
+extern const struct frame_id null_frame_id;
+
+/* Construct a frame ID.  The second parameter isn't yet well defined.
+   It might be the containing function, or the resume PC (see comment
+   above in `struct frame_id')?  A func/pc of zero indicates a
+   wildcard (i.e., do not use func in frame ID comparisons).  */
+extern struct frame_id frame_id_build (CORE_ADDR base,
+                                      CORE_ADDR func_or_pc);
+
+/* Returns non-zero when L is a valid frame (a valid frame has a
+   non-zero .base).  */
+extern int frame_id_p (struct frame_id l);
+
+/* Returns non-zero when L and R identify the same frame, or, if
+   either L or R have a zero .func, then the same frame base.  */
+extern int frame_id_eq (struct frame_id l, struct frame_id r);
+
+/* Returns non-zero when L is strictly inner-than R (they have
+   different frame .bases).  Neither L, nor R can be `null'.  See note
+   above about frameless functions.  */
+extern int frame_id_inner (struct frame_id l, struct frame_id r);
+
+
 /* For every stopped thread, GDB tracks two frames: current and
    selected.  Current frame is the inner most frame of the selected
-   thread.  Selected frame is the frame currently being examined via
-   the GDB CLI (selected using `up', `down', ...).  The frames are
-   created on-demand (via get_prev_frame()) and then held in a frame
-   cache.  Provide mechanims for controlling these frames.  */
+   thread.  Selected frame is the one being examined by the the GDB
+   CLI (selected using `up', `down', ...).  The frames are created
+   on-demand (via get_prev_frame()) and then held in a frame cache.  */
+/* FIXME: cagney/2002-11-28: Er, there is a lie here.  If you do the
+   sequence: `thread 1; up; thread 2; thread 1' you loose thread 1's
+   selected frame.  At present GDB only tracks the selected frame of
+   the current thread.  But be warned, that might change.  */
 /* FIXME: cagney/2002-11-14: At any time, only one thread's selected
    and current frame can be active.  Switching threads causes gdb to
    discard all that cached frame information.  Ulgh!  Instead, current
    and selected frame should be bound to a thread.  */
 
-extern struct frame_info *selected_frame;
-extern void select_frame (struct frame_info *);
-extern void set_current_frame (struct frame_info *);
+/* On demand, create the inner most frame using information found in
+   the inferior.  If the inner most frame can't be created, throw an
+   error.  */
 extern struct frame_info *get_current_frame (void);
 
-/* Invalidates the frame cache.  */
+/* Invalidates the frame cache (this function should have been called
+   invalidate_cached_frames).
+
+   FIXME: cagney/2002-11-28: The only difference between
+   flush_cached_frames() and reinit_frame_cache() is that the latter
+   explicitly sets the selected frame back to the current frame there
+   isn't any real difference (except that one delays the selection of
+   a new frame).  Code can instead simply rely on get_selected_frame()
+   to reinit's the selected frame as needed.  As for invalidating the
+   cache, there should be two methods one that reverts the thread's
+   selected frame back to current frame (for when the inferior
+   resumes) and one that does not (for when the user modifies the
+   target invalidating the frame cache).  */
 extern void flush_cached_frames (void);
-
-/* Flushes the frame cache and then selects the inner most (aka
-   current) frame - it changes selected frame.  */
-/* FIXME: cagney/2002-11-14: Should this re-select the selected frame
-   from before the flush?  */
 extern void reinit_frame_cache (void);
 
+/* On demand, create the selected frame and then return it.  If the
+   selected frame can not be created, this function throws an error.  */
+/* FIXME: cagney/2002-11-28: At present, when there is no selected
+   frame, this function always returns the current (inner most) frame.
+   It should instead, when a thread has previously had its frame
+   selected (but not resumed) and the frame cache invalidated, find
+   and then return that thread's previously selected frame.  */
+extern struct frame_info *get_selected_frame (void);
+
+/* Select a specific frame.  NULL, apparently implies re-select the
+   inner most frame.  */
+extern void select_frame (struct frame_info *);
+
 /* Given a FRAME, return the next (more inner, younger) or previous
    (more outer, older) frame.  */
 extern struct frame_info *get_prev_frame (struct frame_info *);
@@ -85,14 +142,110 @@ extern struct frame_info *frame_find_by_id (struct frame_id id);
    this frame.  */
 extern CORE_ADDR get_frame_pc (struct frame_info *);
 
+/* Closely related to the resume address, various symbol table
+   attributes that are determined by the PC.  Note that for a normal
+   frame, the PC refers to the resume address after the return, and
+   not the call instruction.  In such a case, the address is adjusted
+   so that it (approximatly) identifies the call site (and not return
+   site).
+
+   NOTE: cagney/2002-11-28: The frame cache could be used to cache the
+   computed value.  Working on the assumption that the bottle-neck is
+   in the single step code, and that code causes the frame cache to be
+   constantly flushed, caching things in a frame is probably of little
+   benefit.  As they say `show us the numbers'.
+
+   NOTE: cagney/2002-11-28: Plenty more where this one came from:
+   find_frame_block(), find_frame_partial_function(),
+   find_frame_symtab(), find_frame_function().  Each will need to be
+   carefully considered to determine if the real intent was for it to
+   apply to the PC or the adjusted PC.  */
+extern void find_frame_sal (struct frame_info *frame,
+                           struct symtab_and_line *sal);
+
+/* Return the frame address from FI.  Except in the machine-dependent
+   *FRAME* macros, a frame address has no defined meaning other than
+   as a magic cookie which identifies a frame over calls to the
+   inferior (um, SEE NOTE BELOW).  The only known exception is
+   inferior.h (DEPRECATED_PC_IN_CALL_DUMMY) [ON_STACK]; see comments
+   there.  You cannot assume that a frame address contains enough
+   information to reconstruct the frame; if you want more than just to
+   identify the frame (e.g. be able to fetch variables relative to
+   that frame), then save the whole struct frame_info (and the next
+   struct frame_info, since the latter is used for fetching variables
+   on some machines) (um, again SEE NOTE BELOW).
+
+   NOTE: cagney/2002-11-18: Actually, the frame address isn't
+   sufficient for identifying a frame, and the counter examples are
+   wrong!
+
+   Code that needs to (re)identify a frame must use get_frame_id() and
+   frame_find_by_id() (and in the future, a frame_compare() function
+   instead of INNER_THAN()).  Two reasons: an architecture (e.g.,
+   ia64) can have more than one frame address (due to multiple stack
+   pointers) (frame ID is going to be expanded to accomodate this);
+   successive frameless function calls can only be differientated by
+   comparing both the frame's base and the frame's enclosing function
+   (frame_find_by_id() is going to be modified to perform this test). 
+
+   The generic dummy frame version of DEPRECATED_PC_IN_CALL_DUMMY() is
+   able to identify a dummy frame using only the PC value.  So the
+   frame address is not needed.  In fact, most
+   DEPRECATED_PC_IN_CALL_DUMMY() calls now pass zero as the frame/sp
+   values as the caller knows that those values won't be used.  Once
+   all architectures are using generic dummy frames,
+   DEPRECATED_PC_IN_CALL_DUMMY() can drop the sp/frame parameters.
+   When it comes to finding a dummy frame, the next frame's frame ID
+   (with out duing an unwind) can be used (ok, could if it wasn't for
+   the need to change the way the PPC defined frame base in a strange
+   way).
+
+   Modern architectures should be using something like dwarf2's
+   location expression to describe where a variable lives.  Such
+   expressions specify their own debug info centric frame address.
+   Consequently, a generic frame address is pretty meaningless.  */
+
+extern CORE_ADDR get_frame_base (struct frame_info *);
+
 /* Return the per-frame unique identifer.  Can be used to relocate a
-   frame after a frame cache flush (and other similar operations).  */
-extern void get_frame_id (struct frame_info *fi, struct frame_id *id);
+   frame after a frame cache flush (and other similar operations).  If
+   FI is NULL, return the null_frame_id.  */
+extern struct frame_id get_frame_id (struct frame_info *fi);
 
 /* The frame's level: 0 for innermost, 1 for its caller, ...; or -1
    for an invalid frame).  */
 extern int frame_relative_level (struct frame_info *fi);
 
+/* Return the frame's type.  Some are real, some are signal
+   trampolines, and some are completly artificial (dummy).  */
+
+enum frame_type
+{
+  /* A true stack frame, created by the target program during normal
+     execution.  */
+  NORMAL_FRAME,
+  /* A fake frame, created by GDB when performing an inferior function
+     call.  */
+  DUMMY_FRAME,
+  /* In a signal handler, various OSs handle this in various ways.
+     The main thing is that the frame may be far from normal.  */
+  SIGTRAMP_FRAME
+};
+extern enum frame_type get_frame_type (struct frame_info *);
+
+/* FIXME: cagney/2002-11-10: Some targets want to directly mark a
+   frame as being of a specific type.  This shouldn't be necessary.
+   PC_IN_SIGTRAMP() indicates a SIGTRAMP_FRAME and
+   DEPRECATED_PC_IN_CALL_DUMMY() indicates a DUMMY_FRAME.  I suspect
+   the real problem here is that get_prev_frame() only sets
+   initialized after INIT_EXTRA_FRAME_INFO as been called.
+   Consequently, some targets found that the frame's type was wrong
+   and tried to fix it.  The correct fix is to modify get_prev_frame()
+   so that it initializes the frame's type before calling any other
+   functions.  */
+extern void deprecated_set_frame_type (struct frame_info *,
+                                      enum frame_type type);
+
 /* Unwind the stack frame so that the value of REGNUM, in the previous
    (up, older) frame is returned.  If VALUEP is NULL, don't
    fetch/compute the value.  Instead just return the location of the
@@ -139,6 +292,16 @@ extern void frame_read_unsigned_register (struct frame_info *frame,
 extern int frame_map_name_to_regnum (const char *name, int strlen);
 extern const char *frame_map_regnum_to_name (int regnum);
 
+/* Unwind the PC.  Strictly speaking return the resume address of the
+   calling frame.  For GDB, `pc' is the resume address and not a
+   specific register.  */
+
+extern CORE_ADDR frame_pc_unwind (struct frame_info *frame);
+
+/* Unwind the frame ID.  Return an ID that uniquely identifies the
+   caller's frame.  */
+extern struct frame_id frame_id_unwind (struct frame_info *frame);
+
 \f
 /* Return the location (and possibly value) of REGNUM for the previous
    (older, up) frame.  All parameters except VALUEP can be assumed to
@@ -163,6 +326,18 @@ typedef void (frame_register_unwind_ftype) (struct frame_info *frame,
                                            int *realnump,
                                            void *valuep);
 
+/* Same as for registers above, but return the address at which the
+   calling frame would resume.  */
+
+typedef CORE_ADDR (frame_pc_unwind_ftype) (struct frame_info *frame,
+                                          void **unwind_cache);
+
+/* Same as for registers above, but return the ID of the frame that
+   called this one.  */
+
+typedef struct frame_id (frame_id_unwind_ftype) (struct frame_info *frame,
+                                                void **unwind_cache);
+
 /* Describe the saved registers of a frame.  */
 
 #if defined (EXTRA_FRAME_INFO) || defined (FRAME_FIND_SAVED_REGS)
@@ -194,9 +369,10 @@ struct frame_saved_regs
 
 struct frame_info
   {
-    /* Nominal address of the frame described.  See comments at FRAME_FP
-       about what this means outside the *FRAME* macros; in the *FRAME*
-       macros, it can mean whatever makes most sense for this machine.  */
+    /* Nominal address of the frame described.  See comments at
+       get_frame_base() about what this means outside the *FRAME*
+       macros; in the *FRAME* macros, it can mean whatever makes most
+       sense for this machine.  */
     CORE_ADDR frame;
 
     /* Address at which execution is occurring in this frame.
@@ -215,15 +391,8 @@ struct frame_info
        moment leave this as speculation.  */
     int level;
 
-    /* Nonzero if this is a frame associated with calling a signal handler.
-
-       Set by machine-dependent code.  On some machines, if
-       the machine-dependent code fails to check for this, the backtrace
-       will look relatively normal.  For example, on the i386
-       #3  0x158728 in sighold ()
-       On other machines (e.g. rs6000), the machine-dependent code better
-       set this to prevent us from trying to print it like a normal frame.  */
-    int signal_handler_caller;
+    /* The frame's type.  */
+    enum frame_type type;
 
     /* For each register, address of where it was saved on entry to
        the frame, or zero if it was not saved on entry to this frame.
@@ -252,10 +421,24 @@ struct frame_info
        related unwind data.  */
     struct context *context;
 
-    /* See description above.  Return the register value for the
-       previous frame.  */
+    /* Unwind cache shared between the unwind functions - they had
+       better all agree as to the contents.  */
+    void *unwind_cache;
+
+    /* See description above.  The previous frame's registers.  */
     frame_register_unwind_ftype *register_unwind;
-    void *register_unwind_cache;
+
+    /* See description above.  The previous frame's resume address.
+       Save the previous PC in a local cache.  */
+    frame_pc_unwind_ftype *pc_unwind;
+    int pc_unwind_cache_p;
+    CORE_ADDR pc_unwind_cache;
+
+    /* See description above.  The previous frame's resume address.
+       Save the previous PC in a local cache.  */
+    frame_id_unwind_ftype *id_unwind;
+    int id_unwind_cache_p;
+    struct frame_id id_unwind_cache;
 
     /* Pointers to the next (down, inner, younger) and previous (up,
        outer, older) frame_info's in the frame cache.  */
@@ -290,21 +473,6 @@ enum print_what
         (sizeof (CORE_ADDR) * (NUM_REGS+NUM_PSEUDO_REGS))
 
 extern void *frame_obstack_alloc (unsigned long size);
-extern void frame_saved_regs_zalloc (struct frame_info *);
-
-/* Return the frame address from FI.  Except in the machine-dependent
-   *FRAME* macros, a frame address has no defined meaning other than
-   as a magic cookie which identifies a frame over calls to the
-   inferior.  The only known exception is inferior.h
-   (PC_IN_CALL_DUMMY) [ON_STACK]; see comments there.  You cannot
-   assume that a frame address contains enough information to
-   reconstruct the frame; if you want more than just to identify the
-   frame (e.g. be able to fetch variables relative to that frame),
-   then save the whole struct frame_info (and the next struct
-   frame_info, since the latter is used for fetching variables on some
-   machines).  */
-
-#define FRAME_FP(fi) ((fi)->frame)
 
 /* Define a default FRAME_CHAIN_VALID, in the form that is suitable for most
    targets.  If FRAME_CHAIN_VALID returns zero it means that the given frame
@@ -321,20 +489,43 @@ extern int generic_file_frame_chain_valid (CORE_ADDR, struct frame_info *);
 extern int generic_func_frame_chain_valid (CORE_ADDR, struct frame_info *);
 extern void generic_save_dummy_frame_tos (CORE_ADDR sp);
 
-extern struct frame_info *create_new_frame (CORE_ADDR, CORE_ADDR);
 
 
 #ifdef FRAME_FIND_SAVED_REGS
 /* XXX - deprecated */
-#define FRAME_INIT_SAVED_REGS(FI) get_frame_saved_regs (FI, NULL)
-extern void get_frame_saved_regs (struct frame_info *,
-                                 struct frame_saved_regs *);
+#define FRAME_INIT_SAVED_REGS(FI) deprecated_get_frame_saved_regs (FI, NULL)
+extern void deprecated_get_frame_saved_regs (struct frame_info *,
+                                            struct frame_saved_regs *);
 #endif
 
 extern struct block *get_frame_block (struct frame_info *,
                                       CORE_ADDR *addr_in_block);
 
-extern struct block *get_current_block (CORE_ADDR *addr_in_block);
+/* Return the `struct block' that belongs to the selected thread's
+   selected frame.  If the inferior has no state, return NULL.
+
+   NOTE: cagney/2002-11-29:
+
+   No state?  Does the inferior have any execution state (a core file
+   does, an executable does not).  At present the code tests
+   `target_has_stack' but I'm left wondering if it should test
+   `target_has_registers' or, even, a merged target_has_state.
+
+   Should it look at the most recently specified SAL?  If the target
+   has no state, should this function try to extract a block from the
+   most recently selected SAL?  That way `list foo' would give it some
+   sort of reference point.  Then again, perhaphs that would confuse
+   things.
+
+   Calls to this function can be broken down into two categories: Code
+   that uses the selected block as an additional, but optional, data
+   point; Code that uses the selected block as a prop, when it should
+   have the relevant frame/block/pc explicitly passed in.
+
+   The latter can be eliminated by correctly parameterizing the code,
+   the former though is more interesting.  Per the "address" command,
+   it occures in the CLI code and makes it possible for commands to
+   work, even when the inferior has no state.  */
 
 extern struct block *get_selected_block (CORE_ADDR *addr_in_block);
 
@@ -370,10 +561,6 @@ extern void show_frame_info (struct frame_info *, int, int, int);
 
 extern struct frame_info *block_innermost_frame (const struct block *);
 
-extern struct frame_info *find_frame_addr_in_frame_chain (CORE_ADDR);
-
-extern CORE_ADDR sigtramp_saved_pc (struct frame_info *);
-
 /* NOTE: cagney/2002-09-13: There is no need for this function.
    Instead either of frame_unwind_signed_register() or
    frame_unwind_unsigned_register() can be used.  */
@@ -406,13 +593,6 @@ extern void deprecated_generic_get_saved_register (char *, int *, CORE_ADDR *,
                                                   struct frame_info *, int,
                                                   enum lval_type *);
 
-extern void generic_unwind_get_saved_register (char *raw_buffer,
-                                              int *optimized,
-                                              CORE_ADDR * addrp,
-                                              struct frame_info *frame,
-                                              int regnum,
-                                              enum lval_type *lval);
-
 extern void generic_save_call_dummy_addr (CORE_ADDR lo, CORE_ADDR hi);
 
 extern void get_saved_register (char *raw_buffer, int *optimized,
@@ -432,4 +612,66 @@ extern void (*selected_frame_level_changed_hook) (int);
 
 extern void return_command (char *, int);
 
+
+/* NOTE: cagney/2002-11-27:
+
+   You might think that the below global can simply be replaced by a
+   call to either get_selected_frame() or select_frame().
+
+   Unfortunatly, it isn't that easy.
+
+   The relevant code needs to be audited to determine if it is
+   possible (or pratical) to instead pass the applicable frame in as a
+   parameter.  For instance, DEPRECATED_DO_REGISTERS_INFO() relied on
+   the deprecated_selected_frame global, while its replacement,
+   PRINT_REGISTERS_INFO(), is parameterized with the selected frame.
+   The only real exceptions occure at the edge (in the CLI code) where
+   user commands need to pick up the selected frame before proceeding.
+
+   This is important.  GDB is trying to stamp out the hack:
+
+   saved_frame = deprecated_selected_frame;
+   deprecated_selected_frame = ...;
+   hack_using_global_selected_frame ();
+   deprecated_selected_frame = saved_frame;
+
+   Take care!  */
+
+extern struct frame_info *deprecated_selected_frame;
+
+
+/* Create a frame using the specified BASE and PC.  */
+
+extern struct frame_info *create_new_frame (CORE_ADDR base, CORE_ADDR pc);
+
+
+/* Create/access the frame's `extra info'.  The extra info is used by
+   older code to store information such as the analyzed prologue.  The
+   zalloc() should only be called by the INIT_EXTRA_INFO method.  */
+
+extern struct frame_extra_info *frame_extra_info_zalloc (struct frame_info *fi,
+                                                        long size);
+extern struct frame_extra_info *get_frame_extra_info (struct frame_info *fi);
+
+/* Create/access the frame's `saved_regs'.  The saved regs are used by
+   older code to store the address of each register (except for
+   SP_REGNUM where the value of the register in the previous frame is
+   stored).  */
+extern CORE_ADDR *frame_saved_regs_zalloc (struct frame_info *);
+extern CORE_ADDR *get_frame_saved_regs (struct frame_info *);
+
+/* FIXME: cagney/2002-12-06: Has the PC in the current frame changed?
+   "infrun.c", Thanks to DECR_PC_AFTER_BREAK, can change the PC after
+   the initial frame create.  This puts things back in sync.  */
+extern void deprecated_update_frame_pc_hack (struct frame_info *frame,
+                                            CORE_ADDR pc);
+
+/* FIXME: cagney/2002-12-18: Has the frame's base changed?  Or to be
+   more exact, whas that initial guess at the frame's base as returned
+   by read_fp() wrong.  If it was, fix it.  This shouldn't be
+   necessary since the code should be getting the frame's base correct
+   from the outset.  */
+extern void deprecated_update_frame_base_hack (struct frame_info *frame,
+                                              CORE_ADDR base);
+
 #endif /* !defined (FRAME_H)  */
index 48576cbd17dd1763030d872a0aae7cce179bf61b..0c14e53a007fc5bfe742ba21c7779829d37a0ce2 100644 (file)
@@ -1045,6 +1045,10 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   
   gdbarch = gdbarch_alloc (&info, var);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   set_gdbarch_short_bit (gdbarch, 16);
   set_gdbarch_int_bit (gdbarch, 32);
   set_gdbarch_long_bit (gdbarch, 32);
@@ -1081,8 +1085,6 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frame_chain (gdbarch, frv_frame_chain);
   set_gdbarch_frame_chain_valid (gdbarch, func_frame_chain_valid);
   set_gdbarch_frame_saved_pc (gdbarch, frv_frame_saved_pc);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
 
   set_gdbarch_frame_init_saved_regs (gdbarch, frv_frame_init_saved_regs);
 
@@ -1094,7 +1096,6 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_extract_struct_value_address (gdbarch, frv_extract_struct_value_address);
 
   /* Settings for calling functions in the inferior.  */
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
   set_gdbarch_coerce_float_to_double (gdbarch, 
                                      standard_coerce_float_to_double);
@@ -1117,17 +1118,14 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_read_sp (gdbarch, generic_target_read_sp);
   set_gdbarch_write_sp (gdbarch, generic_target_write_sp);
 
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
+  set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
   set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
 
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
-
   set_gdbarch_decr_pc_after_break (gdbarch, 0);
   set_gdbarch_function_start_offset (gdbarch, 0);
   set_gdbarch_register_convertible (gdbarch, generic_register_convertible_not);
index 468726d63f7bfd489e013e7fe80b7adc3af95129..938d9faaed231c98f70d9ea915ae02d4234e4937 100644 (file)
@@ -181,22 +181,22 @@ struct gdbarch
   gdbarch_cannot_fetch_register_ftype *cannot_fetch_register;
   gdbarch_cannot_store_register_ftype *cannot_store_register;
   gdbarch_get_longjmp_target_ftype *get_longjmp_target;
-  int use_generic_dummy_frames;
+  int deprecated_use_generic_dummy_frames;
   int call_dummy_location;
   gdbarch_call_dummy_address_ftype *call_dummy_address;
   CORE_ADDR call_dummy_start_offset;
   CORE_ADDR call_dummy_breakpoint_offset;
   int call_dummy_breakpoint_offset_p;
   int call_dummy_length;
-  gdbarch_pc_in_call_dummy_ftype *pc_in_call_dummy;
+  gdbarch_deprecated_pc_in_call_dummy_ftype *deprecated_pc_in_call_dummy;
   int call_dummy_p;
   LONGEST * call_dummy_words;
   int sizeof_call_dummy_words;
   int call_dummy_stack_adjust_p;
   int call_dummy_stack_adjust;
   gdbarch_fix_call_dummy_ftype *fix_call_dummy;
-  gdbarch_init_frame_pc_first_ftype *init_frame_pc_first;
-  gdbarch_init_frame_pc_ftype *init_frame_pc;
+  gdbarch_deprecated_init_frame_pc_first_ftype *deprecated_init_frame_pc_first;
+  gdbarch_deprecated_init_frame_pc_ftype *deprecated_init_frame_pc;
   int believe_pcc_promotion;
   int believe_pcc_promotion_type;
   gdbarch_coerce_float_to_double_ftype *coerce_float_to_double;
@@ -352,7 +352,7 @@ struct gdbarch startup_gdbarch =
   0,
   0,
   0,
-  0,
+  generic_pc_in_call_dummy,
   0,
   0,
   0,
@@ -522,17 +522,17 @@ gdbarch_alloc (const struct gdbarch_info *info,
   current_gdbarch->register_sim_regno = legacy_register_sim_regno;
   current_gdbarch->cannot_fetch_register = cannot_register_not;
   current_gdbarch->cannot_store_register = cannot_register_not;
-  current_gdbarch->use_generic_dummy_frames = -1;
+  current_gdbarch->deprecated_use_generic_dummy_frames = 1;
+  current_gdbarch->call_dummy_location = AT_ENTRY_POINT;
   current_gdbarch->call_dummy_start_offset = -1;
   current_gdbarch->call_dummy_breakpoint_offset = -1;
   current_gdbarch->call_dummy_breakpoint_offset_p = -1;
   current_gdbarch->call_dummy_length = -1;
+  current_gdbarch->deprecated_pc_in_call_dummy = generic_pc_in_call_dummy;
   current_gdbarch->call_dummy_p = -1;
   current_gdbarch->call_dummy_words = legacy_call_dummy_words;
   current_gdbarch->sizeof_call_dummy_words = legacy_sizeof_call_dummy_words;
   current_gdbarch->call_dummy_stack_adjust_p = -1;
-  current_gdbarch->init_frame_pc_first = init_frame_pc_noop;
-  current_gdbarch->init_frame_pc = init_frame_pc_default;
   current_gdbarch->coerce_float_to_double = default_coerce_float_to_double;
   current_gdbarch->register_convertible = generic_register_convertible_not;
   current_gdbarch->convert_register_p = legacy_convert_register_p;
@@ -556,6 +556,8 @@ gdbarch_alloc (const struct gdbarch_info *info,
   current_gdbarch->frame_args_skip = -1;
   current_gdbarch->frameless_function_invocation = generic_frameless_function_invocation_not;
   current_gdbarch->frame_chain_valid = generic_func_frame_chain_valid;
+  current_gdbarch->frame_args_address = get_frame_base;
+  current_gdbarch->frame_locals_address = get_frame_base;
   current_gdbarch->extra_stack_alignment_needed = 1;
   current_gdbarch->convert_from_func_ptr_addr = core_addr_identity;
   current_gdbarch->addr_bits_remove = core_addr_identity;
@@ -676,12 +678,8 @@ verify_gdbarch (struct gdbarch *gdbarch)
   /* Skip verify of cannot_fetch_register, invalid_p == 0 */
   /* Skip verify of cannot_store_register, invalid_p == 0 */
   /* Skip verify of get_longjmp_target, has predicate */
-  if ((GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL)
-      && (gdbarch->use_generic_dummy_frames == -1))
-    fprintf_unfiltered (log, "\n\tuse_generic_dummy_frames");
-  if ((GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL)
-      && (gdbarch->call_dummy_location == 0))
-    fprintf_unfiltered (log, "\n\tcall_dummy_location");
+  /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */
+  /* Skip verify of call_dummy_location, invalid_p == 0 */
   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
       && (gdbarch->call_dummy_location == AT_ENTRY_POINT && gdbarch->call_dummy_address == 0))
     fprintf_unfiltered (log, "\n\tcall_dummy_address");
@@ -697,9 +695,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
       && (gdbarch->call_dummy_length == -1))
     fprintf_unfiltered (log, "\n\tcall_dummy_length");
-  if ((GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL)
-      && (gdbarch->pc_in_call_dummy == 0))
-    fprintf_unfiltered (log, "\n\tpc_in_call_dummy");
+  /* Skip verify of deprecated_pc_in_call_dummy, has predicate */
   if ((GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL)
       && (gdbarch->call_dummy_p == -1))
     fprintf_unfiltered (log, "\n\tcall_dummy_p");
@@ -714,8 +710,8 @@ verify_gdbarch (struct gdbarch *gdbarch)
   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
       && (gdbarch->fix_call_dummy == 0))
     fprintf_unfiltered (log, "\n\tfix_call_dummy");
-  /* Skip verify of init_frame_pc_first, invalid_p == 0 */
-  /* Skip verify of init_frame_pc, invalid_p == 0 */
+  /* Skip verify of deprecated_init_frame_pc_first, has predicate */
+  /* Skip verify of deprecated_init_frame_pc, has predicate */
   /* Skip verify of coerce_float_to_double, invalid_p == 0 */
   /* Skip verify of get_saved_register, has predicate */
   /* Skip verify of register_convertible, invalid_p == 0 */
@@ -777,12 +773,8 @@ verify_gdbarch (struct gdbarch *gdbarch)
   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
       && (gdbarch->frame_saved_pc == 0))
     fprintf_unfiltered (log, "\n\tframe_saved_pc");
-  if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
-      && (gdbarch->frame_args_address == 0))
-    fprintf_unfiltered (log, "\n\tframe_args_address");
-  if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
-      && (gdbarch->frame_locals_address == 0))
-    fprintf_unfiltered (log, "\n\tframe_locals_address");
+  /* Skip verify of frame_args_address, invalid_p == 0 */
+  /* Skip verify of frame_locals_address, invalid_p == 0 */
   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
       && (gdbarch->saved_pc_after_call == 0))
     fprintf_unfiltered (log, "\n\tsaved_pc_after_call");
@@ -847,6 +839,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
   fprintf_unfiltered (file,
                       "gdbarch_dump: GDB_MULTI_ARCH = %d\n",
                       GDB_MULTI_ARCH);
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: gdbarch_frame_align_p() = %d\n",
+                        gdbarch_frame_align_p (current_gdbarch));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
                         "gdbarch_dump: frame_align = 0x%08lx\n",
@@ -859,18 +855,39 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
     fprintf_unfiltered (file,
                         "gdbarch_dump: register_reggroup_p = 0x%08lx\n",
                         (long) current_gdbarch->register_reggroup_p);
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n",
+                        gdbarch_pseudo_register_read_p (current_gdbarch));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
                         "gdbarch_dump: pseudo_register_read = 0x%08lx\n",
                         (long) current_gdbarch->pseudo_register_read);
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: gdbarch_pseudo_register_write_p() = %d\n",
+                        gdbarch_pseudo_register_write_p (current_gdbarch));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
                         "gdbarch_dump: pseudo_register_write = 0x%08lx\n",
                         (long) current_gdbarch->pseudo_register_write);
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n",
+                        gdbarch_address_class_name_to_type_flags_p (current_gdbarch));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
                         "gdbarch_dump: address_class_name_to_type_flags = 0x%08lx\n",
                         (long) current_gdbarch->address_class_name_to_type_flags);
+#ifdef ADDRESS_CLASS_TYPE_FLAGS_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "ADDRESS_CLASS_TYPE_FLAGS_P()",
+                      XSTRING (ADDRESS_CLASS_TYPE_FLAGS_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: ADDRESS_CLASS_TYPE_FLAGS_P() = %d\n",
+                      ADDRESS_CLASS_TYPE_FLAGS_P ());
+#endif
 #ifdef ADDRESS_CLASS_TYPE_FLAGS
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -878,10 +895,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (ADDRESS_CLASS_TYPE_FLAGS (byte_size, dwarf2_addr_class)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: ADDRESS_CLASS_TYPE_FLAGS = 0x%08lx\n",
+                        "gdbarch_dump: ADDRESS_CLASS_TYPE_FLAGS = <0x%08lx>\n",
                         (long) current_gdbarch->address_class_type_flags
                         /*ADDRESS_CLASS_TYPE_FLAGS ()*/);
 #endif
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: gdbarch_address_class_type_flags_to_name_p() = %d\n",
+                        gdbarch_address_class_type_flags_to_name_p (current_gdbarch));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
                         "gdbarch_dump: address_class_type_flags_to_name = 0x%08lx\n",
@@ -896,7 +917,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: ADDRESS_TO_POINTER = 0x%08lx\n",
+                        "gdbarch_dump: ADDRESS_TO_POINTER = <0x%08lx>\n",
                         (long) current_gdbarch->address_to_pointer
                         /*ADDRESS_TO_POINTER ()*/);
 #endif
@@ -907,7 +928,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (ADDR_BITS_REMOVE (addr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: ADDR_BITS_REMOVE = 0x%08lx\n",
+                        "gdbarch_dump: ADDR_BITS_REMOVE = <0x%08lx>\n",
                         (long) current_gdbarch->addr_bits_remove
                         /*ADDR_BITS_REMOVE ()*/);
 #endif
@@ -934,7 +955,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (BREAKPOINT_FROM_PC (pcptr, lenptr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: BREAKPOINT_FROM_PC = 0x%08lx\n",
+                        "gdbarch_dump: BREAKPOINT_FROM_PC = <0x%08lx>\n",
                         (long) current_gdbarch->breakpoint_from_pc
                         /*BREAKPOINT_FROM_PC ()*/);
 #endif
@@ -945,7 +966,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (CALL_DUMMY_ADDRESS ()));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: CALL_DUMMY_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: CALL_DUMMY_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->call_dummy_address
                         /*CALL_DUMMY_ADDRESS ()*/);
 #endif
@@ -1031,7 +1052,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (CANNOT_FETCH_REGISTER (regnum)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: CANNOT_FETCH_REGISTER = 0x%08lx\n",
+                        "gdbarch_dump: CANNOT_FETCH_REGISTER = <0x%08lx>\n",
                         (long) current_gdbarch->cannot_fetch_register
                         /*CANNOT_FETCH_REGISTER ()*/);
 #endif
@@ -1050,7 +1071,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (CANNOT_STORE_REGISTER (regnum)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: CANNOT_STORE_REGISTER = 0x%08lx\n",
+                        "gdbarch_dump: CANNOT_STORE_REGISTER = <0x%08lx>\n",
                         (long) current_gdbarch->cannot_store_register
                         /*CANNOT_STORE_REGISTER ()*/);
 #endif
@@ -1061,7 +1082,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (COERCE_FLOAT_TO_DOUBLE (formal, actual)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: COERCE_FLOAT_TO_DOUBLE = 0x%08lx\n",
+                        "gdbarch_dump: COERCE_FLOAT_TO_DOUBLE = <0x%08lx>\n",
                         (long) current_gdbarch->coerce_float_to_double
                         /*COERCE_FLOAT_TO_DOUBLE ()*/);
 #endif
@@ -1075,7 +1096,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: COFF_MAKE_MSYMBOL_SPECIAL = 0x%08lx\n",
+                        "gdbarch_dump: COFF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
                         (long) current_gdbarch->coff_make_msymbol_special
                         /*COFF_MAKE_MSYMBOL_SPECIAL ()*/);
 #endif
@@ -1090,7 +1111,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (CONVERT_FROM_FUNC_PTR_ADDR (addr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: CONVERT_FROM_FUNC_PTR_ADDR = 0x%08lx\n",
+                        "gdbarch_dump: CONVERT_FROM_FUNC_PTR_ADDR = <0x%08lx>\n",
                         (long) current_gdbarch->convert_from_func_ptr_addr
                         /*CONVERT_FROM_FUNC_PTR_ADDR ()*/);
 #endif
@@ -1101,7 +1122,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (CONVERT_REGISTER_P (regnum)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: CONVERT_REGISTER_P = 0x%08lx\n",
+                        "gdbarch_dump: CONVERT_REGISTER_P = <0x%08lx>\n",
                         (long) current_gdbarch->convert_register_p
                         /*CONVERT_REGISTER_P ()*/);
 #endif
@@ -1113,6 +1134,15 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: DECR_PC_AFTER_BREAK = %ld\n",
                       (long) DECR_PC_AFTER_BREAK);
 #endif
+#ifdef DEPRECATED_DO_REGISTERS_INFO_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_DO_REGISTERS_INFO_P()",
+                      XSTRING (DEPRECATED_DO_REGISTERS_INFO_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DEPRECATED_DO_REGISTERS_INFO_P() = %d\n",
+                      DEPRECATED_DO_REGISTERS_INFO_P ());
+#endif
 #ifdef DEPRECATED_DO_REGISTERS_INFO
 #if GDB_MULTI_ARCH
   /* Macro might contain `[{}]' when not multi-arch */
@@ -1123,7 +1153,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: DEPRECATED_DO_REGISTERS_INFO = 0x%08lx\n",
+                        "gdbarch_dump: DEPRECATED_DO_REGISTERS_INFO = <0x%08lx>\n",
                         (long) current_gdbarch->deprecated_do_registers_info
                         /*DEPRECATED_DO_REGISTERS_INFO ()*/);
 #endif
@@ -1137,10 +1167,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: DEPRECATED_EXTRACT_RETURN_VALUE = 0x%08lx\n",
+                        "gdbarch_dump: DEPRECATED_EXTRACT_RETURN_VALUE = <0x%08lx>\n",
                         (long) current_gdbarch->deprecated_extract_return_value
                         /*DEPRECATED_EXTRACT_RETURN_VALUE ()*/);
 #endif
+#ifdef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P()",
+                      XSTRING (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P() = %d\n",
+                      DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P ());
+#endif
 #ifdef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1148,10 +1187,70 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS (regbuf)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->deprecated_extract_struct_value_address
                         /*DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
 #endif
+#ifdef DEPRECATED_INIT_FRAME_PC_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_INIT_FRAME_PC_P()",
+                      XSTRING (DEPRECATED_INIT_FRAME_PC_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_P() = %d\n",
+                      DEPRECATED_INIT_FRAME_PC_P ());
+#endif
+#ifdef DEPRECATED_INIT_FRAME_PC
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_INIT_FRAME_PC(fromleaf, prev)",
+                      XSTRING (DEPRECATED_INIT_FRAME_PC (fromleaf, prev)));
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: DEPRECATED_INIT_FRAME_PC = <0x%08lx>\n",
+                        (long) current_gdbarch->deprecated_init_frame_pc
+                        /*DEPRECATED_INIT_FRAME_PC ()*/);
+#endif
+#ifdef DEPRECATED_INIT_FRAME_PC_FIRST_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_INIT_FRAME_PC_FIRST_P()",
+                      XSTRING (DEPRECATED_INIT_FRAME_PC_FIRST_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_FIRST_P() = %d\n",
+                      DEPRECATED_INIT_FRAME_PC_FIRST_P ());
+#endif
+#ifdef DEPRECATED_INIT_FRAME_PC_FIRST
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_INIT_FRAME_PC_FIRST(fromleaf, prev)",
+                      XSTRING (DEPRECATED_INIT_FRAME_PC_FIRST (fromleaf, prev)));
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_FIRST = <0x%08lx>\n",
+                        (long) current_gdbarch->deprecated_init_frame_pc_first
+                        /*DEPRECATED_INIT_FRAME_PC_FIRST ()*/);
+#endif
+#ifdef DEPRECATED_PC_IN_CALL_DUMMY_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_PC_IN_CALL_DUMMY_P()",
+                      XSTRING (DEPRECATED_PC_IN_CALL_DUMMY_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DEPRECATED_PC_IN_CALL_DUMMY_P() = %d\n",
+                      DEPRECATED_PC_IN_CALL_DUMMY_P ());
+#endif
+#ifdef DEPRECATED_PC_IN_CALL_DUMMY
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address)",
+                      XSTRING (DEPRECATED_PC_IN_CALL_DUMMY (pc, sp, frame_address)));
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: DEPRECATED_PC_IN_CALL_DUMMY = <0x%08lx>\n",
+                        (long) current_gdbarch->deprecated_pc_in_call_dummy
+                        /*DEPRECATED_PC_IN_CALL_DUMMY ()*/);
+#endif
 #ifdef DEPRECATED_STORE_RETURN_VALUE
 #if GDB_MULTI_ARCH
   /* Macro might contain `[{}]' when not multi-arch */
@@ -1162,10 +1261,27 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: DEPRECATED_STORE_RETURN_VALUE = 0x%08lx\n",
+                        "gdbarch_dump: DEPRECATED_STORE_RETURN_VALUE = <0x%08lx>\n",
                         (long) current_gdbarch->deprecated_store_return_value
                         /*DEPRECATED_STORE_RETURN_VALUE ()*/);
 #endif
+#ifdef DEPRECATED_USE_GENERIC_DUMMY_FRAMES
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DEPRECATED_USE_GENERIC_DUMMY_FRAMES # %s\n",
+                      XSTRING (DEPRECATED_USE_GENERIC_DUMMY_FRAMES));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DEPRECATED_USE_GENERIC_DUMMY_FRAMES = %d\n",
+                      DEPRECATED_USE_GENERIC_DUMMY_FRAMES);
+#endif
+#ifdef DWARF2_BUILD_FRAME_INFO_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DWARF2_BUILD_FRAME_INFO_P()",
+                      XSTRING (DWARF2_BUILD_FRAME_INFO_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: DWARF2_BUILD_FRAME_INFO_P() = %d\n",
+                      DWARF2_BUILD_FRAME_INFO_P ());
+#endif
 #ifdef DWARF2_BUILD_FRAME_INFO
 #if GDB_MULTI_ARCH
   /* Macro might contain `[{}]' when not multi-arch */
@@ -1176,7 +1292,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: DWARF2_BUILD_FRAME_INFO = 0x%08lx\n",
+                        "gdbarch_dump: DWARF2_BUILD_FRAME_INFO = <0x%08lx>\n",
                         (long) current_gdbarch->dwarf2_build_frame_info
                         /*DWARF2_BUILD_FRAME_INFO ()*/);
 #endif
@@ -1187,7 +1303,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (DWARF2_REG_TO_REGNUM (dwarf2_regnr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: DWARF2_REG_TO_REGNUM = 0x%08lx\n",
+                        "gdbarch_dump: DWARF2_REG_TO_REGNUM = <0x%08lx>\n",
                         (long) current_gdbarch->dwarf2_reg_to_regnum
                         /*DWARF2_REG_TO_REGNUM ()*/);
 #endif
@@ -1198,7 +1314,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (DWARF_REG_TO_REGNUM (dwarf_regnr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: DWARF_REG_TO_REGNUM = 0x%08lx\n",
+                        "gdbarch_dump: DWARF_REG_TO_REGNUM = <0x%08lx>\n",
                         (long) current_gdbarch->dwarf_reg_to_regnum
                         /*DWARF_REG_TO_REGNUM ()*/);
 #endif
@@ -1209,7 +1325,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (ECOFF_REG_TO_REGNUM (ecoff_regnr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: ECOFF_REG_TO_REGNUM = 0x%08lx\n",
+                        "gdbarch_dump: ECOFF_REG_TO_REGNUM = <0x%08lx>\n",
                         (long) current_gdbarch->ecoff_reg_to_regnum
                         /*ECOFF_REG_TO_REGNUM ()*/);
 #endif
@@ -1223,7 +1339,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: ELF_MAKE_MSYMBOL_SPECIAL = 0x%08lx\n",
+                        "gdbarch_dump: ELF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
                         (long) current_gdbarch->elf_make_msymbol_special
                         /*ELF_MAKE_MSYMBOL_SPECIAL ()*/);
 #endif
@@ -1237,10 +1353,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: EXTRACT_RETURN_VALUE = 0x%08lx\n",
+                        "gdbarch_dump: EXTRACT_RETURN_VALUE = <0x%08lx>\n",
                         (long) current_gdbarch->extract_return_value
                         /*EXTRACT_RETURN_VALUE ()*/);
 #endif
+#ifdef EXTRACT_STRUCT_VALUE_ADDRESS_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "EXTRACT_STRUCT_VALUE_ADDRESS_P()",
+                      XSTRING (EXTRACT_STRUCT_VALUE_ADDRESS_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: EXTRACT_STRUCT_VALUE_ADDRESS_P() = %d\n",
+                      EXTRACT_STRUCT_VALUE_ADDRESS_P ());
+#endif
 #ifdef EXTRACT_STRUCT_VALUE_ADDRESS
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1248,7 +1373,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (EXTRACT_STRUCT_VALUE_ADDRESS (regcache)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: EXTRACT_STRUCT_VALUE_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: EXTRACT_STRUCT_VALUE_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->extract_struct_value_address
                         /*EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
 #endif
@@ -1270,7 +1395,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: FIX_CALL_DUMMY = 0x%08lx\n",
+                        "gdbarch_dump: FIX_CALL_DUMMY = <0x%08lx>\n",
                         (long) current_gdbarch->fix_call_dummy
                         /*FIX_CALL_DUMMY ()*/);
 #endif
@@ -1297,7 +1422,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (FRAMELESS_FUNCTION_INVOCATION (fi)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAMELESS_FUNCTION_INVOCATION = 0x%08lx\n",
+                        "gdbarch_dump: FRAMELESS_FUNCTION_INVOCATION = <0x%08lx>\n",
                         (long) current_gdbarch->frameless_function_invocation
                         /*FRAMELESS_FUNCTION_INVOCATION ()*/);
 #endif
@@ -1308,7 +1433,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (FRAME_ARGS_ADDRESS (fi)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAME_ARGS_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: FRAME_ARGS_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->frame_args_address
                         /*FRAME_ARGS_ADDRESS ()*/);
 #endif
@@ -1327,7 +1452,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (FRAME_CHAIN (frame)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAME_CHAIN = 0x%08lx\n",
+                        "gdbarch_dump: FRAME_CHAIN = <0x%08lx>\n",
                         (long) current_gdbarch->frame_chain
                         /*FRAME_CHAIN ()*/);
 #endif
@@ -1338,7 +1463,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (FRAME_CHAIN_VALID (chain, thisframe)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAME_CHAIN_VALID = 0x%08lx\n",
+                        "gdbarch_dump: FRAME_CHAIN_VALID = <0x%08lx>\n",
                         (long) current_gdbarch->frame_chain_valid
                         /*FRAME_CHAIN_VALID ()*/);
 #endif
@@ -1352,7 +1477,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAME_INIT_SAVED_REGS = 0x%08lx\n",
+                        "gdbarch_dump: FRAME_INIT_SAVED_REGS = <0x%08lx>\n",
                         (long) current_gdbarch->frame_init_saved_regs
                         /*FRAME_INIT_SAVED_REGS ()*/);
 #endif
@@ -1363,7 +1488,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (FRAME_LOCALS_ADDRESS (fi)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAME_LOCALS_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: FRAME_LOCALS_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->frame_locals_address
                         /*FRAME_LOCALS_ADDRESS ()*/);
 #endif
@@ -1374,7 +1499,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (FRAME_NUM_ARGS (frame)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAME_NUM_ARGS = 0x%08lx\n",
+                        "gdbarch_dump: FRAME_NUM_ARGS = <0x%08lx>\n",
                         (long) current_gdbarch->frame_num_args
                         /*FRAME_NUM_ARGS ()*/);
 #endif
@@ -1385,7 +1510,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (FRAME_SAVED_PC (fi)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: FRAME_SAVED_PC = 0x%08lx\n",
+                        "gdbarch_dump: FRAME_SAVED_PC = <0x%08lx>\n",
                         (long) current_gdbarch->frame_saved_pc
                         /*FRAME_SAVED_PC ()*/);
 #endif
@@ -1397,6 +1522,15 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: FUNCTION_START_OFFSET = %ld\n",
                       (long) FUNCTION_START_OFFSET);
 #endif
+#ifdef GET_LONGJMP_TARGET_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "GET_LONGJMP_TARGET_P()",
+                      XSTRING (GET_LONGJMP_TARGET_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: GET_LONGJMP_TARGET_P() = %d\n",
+                      GET_LONGJMP_TARGET_P ());
+#endif
 #ifdef GET_LONGJMP_TARGET
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1404,10 +1538,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (GET_LONGJMP_TARGET (pc)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: GET_LONGJMP_TARGET = 0x%08lx\n",
+                        "gdbarch_dump: GET_LONGJMP_TARGET = <0x%08lx>\n",
                         (long) current_gdbarch->get_longjmp_target
                         /*GET_LONGJMP_TARGET ()*/);
 #endif
+#ifdef GET_SAVED_REGISTER_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "GET_SAVED_REGISTER_P()",
+                      XSTRING (GET_SAVED_REGISTER_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: GET_SAVED_REGISTER_P() = %d\n",
+                      GET_SAVED_REGISTER_P ());
+#endif
 #ifdef GET_SAVED_REGISTER
 #if GDB_MULTI_ARCH
   /* Macro might contain `[{}]' when not multi-arch */
@@ -1418,7 +1561,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: GET_SAVED_REGISTER = 0x%08lx\n",
+                        "gdbarch_dump: GET_SAVED_REGISTER = <0x%08lx>\n",
                         (long) current_gdbarch->get_saved_register
                         /*GET_SAVED_REGISTER ()*/);
 #endif
@@ -1430,6 +1573,15 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: HAVE_NONSTEPPABLE_WATCHPOINT = %d\n",
                       HAVE_NONSTEPPABLE_WATCHPOINT);
 #endif
+#ifdef INIT_EXTRA_FRAME_INFO_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "INIT_EXTRA_FRAME_INFO_P()",
+                      XSTRING (INIT_EXTRA_FRAME_INFO_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: INIT_EXTRA_FRAME_INFO_P() = %d\n",
+                      INIT_EXTRA_FRAME_INFO_P ());
+#endif
 #ifdef INIT_EXTRA_FRAME_INFO
 #if GDB_MULTI_ARCH
   /* Macro might contain `[{}]' when not multi-arch */
@@ -1440,38 +1592,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: INIT_EXTRA_FRAME_INFO = 0x%08lx\n",
+                        "gdbarch_dump: INIT_EXTRA_FRAME_INFO = <0x%08lx>\n",
                         (long) current_gdbarch->init_extra_frame_info
                         /*INIT_EXTRA_FRAME_INFO ()*/);
 #endif
-#ifdef INIT_FRAME_PC
-#if GDB_MULTI_ARCH
-  /* Macro might contain `[{}]' when not multi-arch */
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "INIT_FRAME_PC(fromleaf, prev)",
-                      XSTRING (INIT_FRAME_PC (fromleaf, prev)));
-#endif
-  if (GDB_MULTI_ARCH)
-    fprintf_unfiltered (file,
-                        "gdbarch_dump: INIT_FRAME_PC = 0x%08lx\n",
-                        (long) current_gdbarch->init_frame_pc
-                        /*INIT_FRAME_PC ()*/);
-#endif
-#ifdef INIT_FRAME_PC_FIRST
-#if GDB_MULTI_ARCH
-  /* Macro might contain `[{}]' when not multi-arch */
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "INIT_FRAME_PC_FIRST(fromleaf, prev)",
-                      XSTRING (INIT_FRAME_PC_FIRST (fromleaf, prev)));
-#endif
-  if (GDB_MULTI_ARCH)
-    fprintf_unfiltered (file,
-                        "gdbarch_dump: INIT_FRAME_PC_FIRST = 0x%08lx\n",
-                        (long) current_gdbarch->init_frame_pc_first
-                        /*INIT_FRAME_PC_FIRST ()*/);
-#endif
 #ifdef INNER_THAN
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1479,10 +1603,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (INNER_THAN (lhs, rhs)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: INNER_THAN = 0x%08lx\n",
+                        "gdbarch_dump: INNER_THAN = <0x%08lx>\n",
                         (long) current_gdbarch->inner_than
                         /*INNER_THAN ()*/);
 #endif
+#ifdef INTEGER_TO_ADDRESS_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "INTEGER_TO_ADDRESS_P()",
+                      XSTRING (INTEGER_TO_ADDRESS_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: INTEGER_TO_ADDRESS_P() = %d\n",
+                      INTEGER_TO_ADDRESS_P ());
+#endif
 #ifdef INTEGER_TO_ADDRESS
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1490,7 +1623,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (INTEGER_TO_ADDRESS (type, buf)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: INTEGER_TO_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: INTEGER_TO_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->integer_to_address
                         /*INTEGER_TO_ADDRESS ()*/);
 #endif
@@ -1501,7 +1634,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (IN_SOLIB_CALL_TRAMPOLINE (pc, name)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: IN_SOLIB_CALL_TRAMPOLINE = 0x%08lx\n",
+                        "gdbarch_dump: IN_SOLIB_CALL_TRAMPOLINE = <0x%08lx>\n",
                         (long) current_gdbarch->in_solib_call_trampoline
                         /*IN_SOLIB_CALL_TRAMPOLINE ()*/);
 #endif
@@ -1512,7 +1645,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (IN_SOLIB_RETURN_TRAMPOLINE (pc, name)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: IN_SOLIB_RETURN_TRAMPOLINE = 0x%08lx\n",
+                        "gdbarch_dump: IN_SOLIB_RETURN_TRAMPOLINE = <0x%08lx>\n",
                         (long) current_gdbarch->in_solib_return_trampoline
                         /*IN_SOLIB_RETURN_TRAMPOLINE ()*/);
 #endif
@@ -1539,7 +1672,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (MEMORY_INSERT_BREAKPOINT (addr, contents_cache)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: MEMORY_INSERT_BREAKPOINT = 0x%08lx\n",
+                        "gdbarch_dump: MEMORY_INSERT_BREAKPOINT = <0x%08lx>\n",
                         (long) current_gdbarch->memory_insert_breakpoint
                         /*MEMORY_INSERT_BREAKPOINT ()*/);
 #endif
@@ -1550,7 +1683,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (MEMORY_REMOVE_BREAKPOINT (addr, contents_cache)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: MEMORY_REMOVE_BREAKPOINT = 0x%08lx\n",
+                        "gdbarch_dump: MEMORY_REMOVE_BREAKPOINT = <0x%08lx>\n",
                         (long) current_gdbarch->memory_remove_breakpoint
                         /*MEMORY_REMOVE_BREAKPOINT ()*/);
 #endif
@@ -1559,8 +1692,8 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: NAME_OF_MALLOC # %s\n",
                       XSTRING (NAME_OF_MALLOC));
   fprintf_unfiltered (file,
-                      "gdbarch_dump: NAME_OF_MALLOC = %ld\n",
-                      (long) NAME_OF_MALLOC);
+                      "gdbarch_dump: NAME_OF_MALLOC = %s\n",
+                      NAME_OF_MALLOC);
 #endif
 #ifdef NPC_REGNUM
   fprintf_unfiltered (file,
@@ -1594,17 +1727,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: PARM_BOUNDARY = %d\n",
                       PARM_BOUNDARY);
 #endif
-#ifdef PC_IN_CALL_DUMMY
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "PC_IN_CALL_DUMMY(pc, sp, frame_address)",
-                      XSTRING (PC_IN_CALL_DUMMY (pc, sp, frame_address)));
-  if (GDB_MULTI_ARCH)
-    fprintf_unfiltered (file,
-                        "gdbarch_dump: PC_IN_CALL_DUMMY = 0x%08lx\n",
-                        (long) current_gdbarch->pc_in_call_dummy
-                        /*PC_IN_CALL_DUMMY ()*/);
-#endif
 #ifdef PC_IN_SIGTRAMP
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1612,7 +1734,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (PC_IN_SIGTRAMP (pc, name)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: PC_IN_SIGTRAMP = 0x%08lx\n",
+                        "gdbarch_dump: PC_IN_SIGTRAMP = <0x%08lx>\n",
                         (long) current_gdbarch->pc_in_sigtramp
                         /*PC_IN_SIGTRAMP ()*/);
 #endif
@@ -1631,7 +1753,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (POINTER_TO_ADDRESS (type, buf)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: POINTER_TO_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: POINTER_TO_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->pointer_to_address
                         /*POINTER_TO_ADDRESS ()*/);
 #endif
@@ -1645,7 +1767,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: POP_FRAME = 0x%08lx\n",
+                        "gdbarch_dump: POP_FRAME = <0x%08lx>\n",
                         (long) current_gdbarch->pop_frame
                         /*POP_FRAME ()*/);
 #endif
@@ -1656,10 +1778,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (PREPARE_TO_PROCEED (select_it)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: PREPARE_TO_PROCEED = 0x%08lx\n",
+                        "gdbarch_dump: PREPARE_TO_PROCEED = <0x%08lx>\n",
                         (long) current_gdbarch->prepare_to_proceed
                         /*PREPARE_TO_PROCEED ()*/);
 #endif
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: gdbarch_print_float_info_p() = %d\n",
+                        gdbarch_print_float_info_p (current_gdbarch));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
                         "gdbarch_dump: print_float_info = 0x%08lx\n",
@@ -1668,6 +1794,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
     fprintf_unfiltered (file,
                         "gdbarch_dump: print_registers_info = 0x%08lx\n",
                         (long) current_gdbarch->print_registers_info);
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: gdbarch_print_vector_info_p() = %d\n",
+                        gdbarch_print_vector_info_p (current_gdbarch));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
                         "gdbarch_dump: print_vector_info = 0x%08lx\n",
@@ -1679,7 +1809,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (PROLOGUE_FRAMELESS_P (ip)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: PROLOGUE_FRAMELESS_P = 0x%08lx\n",
+                        "gdbarch_dump: PROLOGUE_FRAMELESS_P = <0x%08lx>\n",
                         (long) current_gdbarch->prologue_frameless_p
                         /*PROLOGUE_FRAMELESS_P ()*/);
 #endif
@@ -1698,7 +1828,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (PUSH_ARGUMENTS (nargs, args, sp, struct_return, struct_addr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: PUSH_ARGUMENTS = 0x%08lx\n",
+                        "gdbarch_dump: PUSH_ARGUMENTS = <0x%08lx>\n",
                         (long) current_gdbarch->push_arguments
                         /*PUSH_ARGUMENTS ()*/);
 #endif
@@ -1712,10 +1842,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: PUSH_DUMMY_FRAME = 0x%08lx\n",
+                        "gdbarch_dump: PUSH_DUMMY_FRAME = <0x%08lx>\n",
                         (long) current_gdbarch->push_dummy_frame
                         /*PUSH_DUMMY_FRAME ()*/);
 #endif
+#ifdef PUSH_RETURN_ADDRESS_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "PUSH_RETURN_ADDRESS_P()",
+                      XSTRING (PUSH_RETURN_ADDRESS_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: PUSH_RETURN_ADDRESS_P() = %d\n",
+                      PUSH_RETURN_ADDRESS_P ());
+#endif
 #ifdef PUSH_RETURN_ADDRESS
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1723,7 +1862,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (PUSH_RETURN_ADDRESS (pc, sp)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: PUSH_RETURN_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: PUSH_RETURN_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->push_return_address
                         /*PUSH_RETURN_ADDRESS ()*/);
 #endif
@@ -1734,7 +1873,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (REGISTER_BYTE (reg_nr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_BYTE = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_BYTE = <0x%08lx>\n",
                         (long) current_gdbarch->register_byte
                         /*REGISTER_BYTE ()*/);
 #endif
@@ -1746,6 +1885,15 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: REGISTER_BYTES = %d\n",
                       REGISTER_BYTES);
 #endif
+#ifdef REGISTER_BYTES_OK_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "REGISTER_BYTES_OK_P()",
+                      XSTRING (REGISTER_BYTES_OK_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: REGISTER_BYTES_OK_P() = %d\n",
+                      REGISTER_BYTES_OK_P ());
+#endif
 #ifdef REGISTER_BYTES_OK
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1753,7 +1901,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (REGISTER_BYTES_OK (nr_bytes)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_BYTES_OK = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_BYTES_OK = <0x%08lx>\n",
                         (long) current_gdbarch->register_bytes_ok
                         /*REGISTER_BYTES_OK ()*/);
 #endif
@@ -1764,7 +1912,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (REGISTER_CONVERTIBLE (nr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_CONVERTIBLE = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_CONVERTIBLE = <0x%08lx>\n",
                         (long) current_gdbarch->register_convertible
                         /*REGISTER_CONVERTIBLE ()*/);
 #endif
@@ -1778,7 +1926,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_CONVERT_TO_RAW = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_CONVERT_TO_RAW = <0x%08lx>\n",
                         (long) current_gdbarch->register_convert_to_raw
                         /*REGISTER_CONVERT_TO_RAW ()*/);
 #endif
@@ -1792,7 +1940,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_CONVERT_TO_VIRTUAL = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_CONVERT_TO_VIRTUAL = <0x%08lx>\n",
                         (long) current_gdbarch->register_convert_to_virtual
                         /*REGISTER_CONVERT_TO_VIRTUAL ()*/);
 #endif
@@ -1803,7 +1951,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (REGISTER_NAME (regnr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_NAME = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_NAME = <0x%08lx>\n",
                         (long) current_gdbarch->register_name
                         /*REGISTER_NAME ()*/);
 #endif
@@ -1814,7 +1962,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (REGISTER_RAW_SIZE (reg_nr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_RAW_SIZE = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_RAW_SIZE = <0x%08lx>\n",
                         (long) current_gdbarch->register_raw_size
                         /*REGISTER_RAW_SIZE ()*/);
 #endif
@@ -1825,7 +1973,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (REGISTER_SIM_REGNO (reg_nr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_SIM_REGNO = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_SIM_REGNO = <0x%08lx>\n",
                         (long) current_gdbarch->register_sim_regno
                         /*REGISTER_SIM_REGNO ()*/);
 #endif
@@ -1847,7 +1995,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_TO_VALUE = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_TO_VALUE = <0x%08lx>\n",
                         (long) current_gdbarch->register_to_value
                         /*REGISTER_TO_VALUE ()*/);
 #endif
@@ -1858,7 +2006,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (REGISTER_VIRTUAL_SIZE (reg_nr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_VIRTUAL_SIZE = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_VIRTUAL_SIZE = <0x%08lx>\n",
                         (long) current_gdbarch->register_virtual_size
                         /*REGISTER_VIRTUAL_SIZE ()*/);
 #endif
@@ -1869,10 +2017,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (REGISTER_VIRTUAL_TYPE (reg_nr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REGISTER_VIRTUAL_TYPE = 0x%08lx\n",
+                        "gdbarch_dump: REGISTER_VIRTUAL_TYPE = <0x%08lx>\n",
                         (long) current_gdbarch->register_virtual_type
                         /*REGISTER_VIRTUAL_TYPE ()*/);
 #endif
+#ifdef REG_STRUCT_HAS_ADDR_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "REG_STRUCT_HAS_ADDR_P()",
+                      XSTRING (REG_STRUCT_HAS_ADDR_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: REG_STRUCT_HAS_ADDR_P() = %d\n",
+                      REG_STRUCT_HAS_ADDR_P ());
+#endif
 #ifdef REG_STRUCT_HAS_ADDR
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1880,7 +2037,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (REG_STRUCT_HAS_ADDR (gcc_p, type)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REG_STRUCT_HAS_ADDR = 0x%08lx\n",
+                        "gdbarch_dump: REG_STRUCT_HAS_ADDR = <0x%08lx>\n",
                         (long) current_gdbarch->reg_struct_has_addr
                         /*REG_STRUCT_HAS_ADDR ()*/);
 #endif
@@ -1894,7 +2051,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: REMOTE_TRANSLATE_XFER_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: REMOTE_TRANSLATE_XFER_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->remote_translate_xfer_address
                         /*REMOTE_TRANSLATE_XFER_ADDRESS ()*/);
 #endif
@@ -1905,7 +2062,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (RETURN_VALUE_ON_STACK (type)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: RETURN_VALUE_ON_STACK = 0x%08lx\n",
+                        "gdbarch_dump: RETURN_VALUE_ON_STACK = <0x%08lx>\n",
                         (long) current_gdbarch->return_value_on_stack
                         /*RETURN_VALUE_ON_STACK ()*/);
 #endif
@@ -1916,10 +2073,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (SAVED_PC_AFTER_CALL (frame)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: SAVED_PC_AFTER_CALL = 0x%08lx\n",
+                        "gdbarch_dump: SAVED_PC_AFTER_CALL = <0x%08lx>\n",
                         (long) current_gdbarch->saved_pc_after_call
                         /*SAVED_PC_AFTER_CALL ()*/);
 #endif
+#ifdef SAVE_DUMMY_FRAME_TOS_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "SAVE_DUMMY_FRAME_TOS_P()",
+                      XSTRING (SAVE_DUMMY_FRAME_TOS_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: SAVE_DUMMY_FRAME_TOS_P() = %d\n",
+                      SAVE_DUMMY_FRAME_TOS_P ());
+#endif
 #ifdef SAVE_DUMMY_FRAME_TOS
 #if GDB_MULTI_ARCH
   /* Macro might contain `[{}]' when not multi-arch */
@@ -1930,7 +2096,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: SAVE_DUMMY_FRAME_TOS = 0x%08lx\n",
+                        "gdbarch_dump: SAVE_DUMMY_FRAME_TOS = <0x%08lx>\n",
                         (long) current_gdbarch->save_dummy_frame_tos
                         /*SAVE_DUMMY_FRAME_TOS ()*/);
 #endif
@@ -1941,10 +2107,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (SDB_REG_TO_REGNUM (sdb_regnr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: SDB_REG_TO_REGNUM = 0x%08lx\n",
+                        "gdbarch_dump: SDB_REG_TO_REGNUM = <0x%08lx>\n",
                         (long) current_gdbarch->sdb_reg_to_regnum
                         /*SDB_REG_TO_REGNUM ()*/);
 #endif
+#ifdef SIGTRAMP_END_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "SIGTRAMP_END_P()",
+                      XSTRING (SIGTRAMP_END_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: SIGTRAMP_END_P() = %d\n",
+                      SIGTRAMP_END_P ());
+#endif
 #ifdef SIGTRAMP_END
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1952,10 +2127,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (SIGTRAMP_END (pc)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: SIGTRAMP_END = 0x%08lx\n",
+                        "gdbarch_dump: SIGTRAMP_END = <0x%08lx>\n",
                         (long) current_gdbarch->sigtramp_end
                         /*SIGTRAMP_END ()*/);
 #endif
+#ifdef SIGTRAMP_START_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "SIGTRAMP_START_P()",
+                      XSTRING (SIGTRAMP_START_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: SIGTRAMP_START_P() = %d\n",
+                      SIGTRAMP_START_P ());
+#endif
 #ifdef SIGTRAMP_START
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -1963,7 +2147,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (SIGTRAMP_START (pc)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: SIGTRAMP_START = 0x%08lx\n",
+                        "gdbarch_dump: SIGTRAMP_START = <0x%08lx>\n",
                         (long) current_gdbarch->sigtramp_start
                         /*SIGTRAMP_START ()*/);
 #endif
@@ -1982,7 +2166,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (SKIP_PROLOGUE (ip)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: SKIP_PROLOGUE = 0x%08lx\n",
+                        "gdbarch_dump: SKIP_PROLOGUE = <0x%08lx>\n",
                         (long) current_gdbarch->skip_prologue
                         /*SKIP_PROLOGUE ()*/);
 #endif
@@ -1993,7 +2177,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (SKIP_TRAMPOLINE_CODE (pc)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: SKIP_TRAMPOLINE_CODE = 0x%08lx\n",
+                        "gdbarch_dump: SKIP_TRAMPOLINE_CODE = <0x%08lx>\n",
                         (long) current_gdbarch->skip_trampoline_code
                         /*SKIP_TRAMPOLINE_CODE ()*/);
 #endif
@@ -2004,10 +2188,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (SMASH_TEXT_ADDRESS (addr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: SMASH_TEXT_ADDRESS = 0x%08lx\n",
+                        "gdbarch_dump: SMASH_TEXT_ADDRESS = <0x%08lx>\n",
                         (long) current_gdbarch->smash_text_address
                         /*SMASH_TEXT_ADDRESS ()*/);
 #endif
+#ifdef SOFTWARE_SINGLE_STEP_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "SOFTWARE_SINGLE_STEP_P()",
+                      XSTRING (SOFTWARE_SINGLE_STEP_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: SOFTWARE_SINGLE_STEP_P() = %d\n",
+                      SOFTWARE_SINGLE_STEP_P ());
+#endif
 #ifdef SOFTWARE_SINGLE_STEP
 #if GDB_MULTI_ARCH
   /* Macro might contain `[{}]' when not multi-arch */
@@ -2018,7 +2211,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: SOFTWARE_SINGLE_STEP = 0x%08lx\n",
+                        "gdbarch_dump: SOFTWARE_SINGLE_STEP = <0x%08lx>\n",
                         (long) current_gdbarch->software_single_step
                         /*SOFTWARE_SINGLE_STEP ()*/);
 #endif
@@ -2037,10 +2230,19 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (STAB_REG_TO_REGNUM (stab_regnr)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: STAB_REG_TO_REGNUM = 0x%08lx\n",
+                        "gdbarch_dump: STAB_REG_TO_REGNUM = <0x%08lx>\n",
                         (long) current_gdbarch->stab_reg_to_regnum
                         /*STAB_REG_TO_REGNUM ()*/);
 #endif
+#ifdef STACK_ALIGN_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "STACK_ALIGN_P()",
+                      XSTRING (STACK_ALIGN_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: STACK_ALIGN_P() = %d\n",
+                      STACK_ALIGN_P ());
+#endif
 #ifdef STACK_ALIGN
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -2048,7 +2250,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (STACK_ALIGN (sp)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: STACK_ALIGN = 0x%08lx\n",
+                        "gdbarch_dump: STACK_ALIGN = <0x%08lx>\n",
                         (long) current_gdbarch->stack_align
                         /*STACK_ALIGN ()*/);
 #endif
@@ -2062,7 +2264,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: STORE_RETURN_VALUE = 0x%08lx\n",
+                        "gdbarch_dump: STORE_RETURN_VALUE = <0x%08lx>\n",
                         (long) current_gdbarch->store_return_value
                         /*STORE_RETURN_VALUE ()*/);
 #endif
@@ -2076,7 +2278,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: STORE_STRUCT_RETURN = 0x%08lx\n",
+                        "gdbarch_dump: STORE_STRUCT_RETURN = <0x%08lx>\n",
                         (long) current_gdbarch->store_struct_return
                         /*STORE_STRUCT_RETURN ()*/);
 #endif
@@ -2134,8 +2336,8 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: TARGET_DOUBLE_FORMAT # %s\n",
                       XSTRING (TARGET_DOUBLE_FORMAT));
   fprintf_unfiltered (file,
-                      "gdbarch_dump: TARGET_DOUBLE_FORMAT = %ld\n",
-                      (long) TARGET_DOUBLE_FORMAT);
+                      "gdbarch_dump: TARGET_DOUBLE_FORMAT = %s\n",
+                      (TARGET_DOUBLE_FORMAT)->name);
 #endif
 #ifdef TARGET_FLOAT_BIT
   fprintf_unfiltered (file,
@@ -2150,8 +2352,8 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: TARGET_FLOAT_FORMAT # %s\n",
                       XSTRING (TARGET_FLOAT_FORMAT));
   fprintf_unfiltered (file,
-                      "gdbarch_dump: TARGET_FLOAT_FORMAT = %ld\n",
-                      (long) TARGET_FLOAT_FORMAT);
+                      "gdbarch_dump: TARGET_FLOAT_FORMAT = %s\n",
+                      (TARGET_FLOAT_FORMAT)->name);
 #endif
 #ifdef TARGET_INT_BIT
   fprintf_unfiltered (file,
@@ -2182,8 +2384,8 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: TARGET_LONG_DOUBLE_FORMAT # %s\n",
                       XSTRING (TARGET_LONG_DOUBLE_FORMAT));
   fprintf_unfiltered (file,
-                      "gdbarch_dump: TARGET_LONG_DOUBLE_FORMAT = %ld\n",
-                      (long) TARGET_LONG_DOUBLE_FORMAT);
+                      "gdbarch_dump: TARGET_LONG_DOUBLE_FORMAT = %s\n",
+                      (TARGET_LONG_DOUBLE_FORMAT)->name);
 #endif
 #ifdef TARGET_LONG_LONG_BIT
   fprintf_unfiltered (file,
@@ -2200,7 +2402,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (TARGET_PRINT_INSN (vma, info)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: TARGET_PRINT_INSN = 0x%08lx\n",
+                        "gdbarch_dump: TARGET_PRINT_INSN = <0x%08lx>\n",
                         (long) current_gdbarch->print_insn
                         /*TARGET_PRINT_INSN ()*/);
 #endif
@@ -2219,7 +2421,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (TARGET_READ_FP ()));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: TARGET_READ_FP = 0x%08lx\n",
+                        "gdbarch_dump: TARGET_READ_FP = <0x%08lx>\n",
                         (long) current_gdbarch->read_fp
                         /*TARGET_READ_FP ()*/);
 #endif
@@ -2230,7 +2432,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (TARGET_READ_PC (ptid)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: TARGET_READ_PC = 0x%08lx\n",
+                        "gdbarch_dump: TARGET_READ_PC = <0x%08lx>\n",
                         (long) current_gdbarch->read_pc
                         /*TARGET_READ_PC ()*/);
 #endif
@@ -2241,7 +2443,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (TARGET_READ_SP ()));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: TARGET_READ_SP = 0x%08lx\n",
+                        "gdbarch_dump: TARGET_READ_SP = <0x%08lx>\n",
                         (long) current_gdbarch->read_sp
                         /*TARGET_READ_SP ()*/);
 #endif
@@ -2263,7 +2465,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: TARGET_VIRTUAL_FRAME_POINTER = 0x%08lx\n",
+                        "gdbarch_dump: TARGET_VIRTUAL_FRAME_POINTER = <0x%08lx>\n",
                         (long) current_gdbarch->virtual_frame_pointer
                         /*TARGET_VIRTUAL_FRAME_POINTER ()*/);
 #endif
@@ -2277,7 +2479,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: TARGET_WRITE_PC = 0x%08lx\n",
+                        "gdbarch_dump: TARGET_WRITE_PC = <0x%08lx>\n",
                         (long) current_gdbarch->write_pc
                         /*TARGET_WRITE_PC ()*/);
 #endif
@@ -2291,18 +2493,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: TARGET_WRITE_SP = 0x%08lx\n",
+                        "gdbarch_dump: TARGET_WRITE_SP = <0x%08lx>\n",
                         (long) current_gdbarch->write_sp
                         /*TARGET_WRITE_SP ()*/);
 #endif
-#ifdef USE_GENERIC_DUMMY_FRAMES
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: USE_GENERIC_DUMMY_FRAMES # %s\n",
-                      XSTRING (USE_GENERIC_DUMMY_FRAMES));
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: USE_GENERIC_DUMMY_FRAMES = %d\n",
-                      USE_GENERIC_DUMMY_FRAMES);
-#endif
 #ifdef USE_STRUCT_CONVENTION
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -2310,7 +2504,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       XSTRING (USE_STRUCT_CONVENTION (gcc_p, value_type)));
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: USE_STRUCT_CONVENTION = 0x%08lx\n",
+                        "gdbarch_dump: USE_STRUCT_CONVENTION = <0x%08lx>\n",
                         (long) current_gdbarch->use_struct_convention
                         /*USE_STRUCT_CONVENTION ()*/);
 #endif
@@ -2324,7 +2518,7 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
 #endif
   if (GDB_MULTI_ARCH)
     fprintf_unfiltered (file,
-                        "gdbarch_dump: VALUE_TO_REGISTER = 0x%08lx\n",
+                        "gdbarch_dump: VALUE_TO_REGISTER = <0x%08lx>\n",
                         (long) current_gdbarch->value_to_register
                         /*VALUE_TO_REGISTER ()*/);
 #endif
@@ -3327,31 +3521,27 @@ set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch,
 }
 
 int
-gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch)
+gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
-  if (gdbarch->use_generic_dummy_frames == -1)
-    internal_error (__FILE__, __LINE__,
-                    "gdbarch: gdbarch_use_generic_dummy_frames invalid");
+  /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */
   if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_use_generic_dummy_frames called\n");
-  return gdbarch->use_generic_dummy_frames;
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_use_generic_dummy_frames called\n");
+  return gdbarch->deprecated_use_generic_dummy_frames;
 }
 
 void
-set_gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch,
-                                      int use_generic_dummy_frames)
+set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch,
+                                                 int deprecated_use_generic_dummy_frames)
 {
-  gdbarch->use_generic_dummy_frames = use_generic_dummy_frames;
+  gdbarch->deprecated_use_generic_dummy_frames = deprecated_use_generic_dummy_frames;
 }
 
 int
 gdbarch_call_dummy_location (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
-  if (gdbarch->call_dummy_location == 0)
-    internal_error (__FILE__, __LINE__,
-                    "gdbarch: gdbarch_call_dummy_location invalid");
+  /* Skip verify of call_dummy_location, invalid_p == 0 */
   if (gdbarch_debug >= 2)
     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_location called\n");
   return gdbarch->call_dummy_location;
@@ -3460,22 +3650,30 @@ set_gdbarch_call_dummy_length (struct gdbarch *gdbarch,
 }
 
 int
-gdbarch_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address)
+gdbarch_deprecated_pc_in_call_dummy_p (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
-  if (gdbarch->pc_in_call_dummy == 0)
+  return gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy;
+}
+
+int
+gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address)
+{
+  gdb_assert (gdbarch != NULL);
+  if (gdbarch->deprecated_pc_in_call_dummy == 0)
     internal_error (__FILE__, __LINE__,
-                    "gdbarch: gdbarch_pc_in_call_dummy invalid");
+                    "gdbarch: gdbarch_deprecated_pc_in_call_dummy invalid");
+  /* Ignore predicate (gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy).  */
   if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_in_call_dummy called\n");
-  return gdbarch->pc_in_call_dummy (pc, sp, frame_address);
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pc_in_call_dummy called\n");
+  return gdbarch->deprecated_pc_in_call_dummy (pc, sp, frame_address);
 }
 
 void
-set_gdbarch_pc_in_call_dummy (struct gdbarch *gdbarch,
-                              gdbarch_pc_in_call_dummy_ftype pc_in_call_dummy)
+set_gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch,
+                                         gdbarch_deprecated_pc_in_call_dummy_ftype deprecated_pc_in_call_dummy)
 {
-  gdbarch->pc_in_call_dummy = pc_in_call_dummy;
+  gdbarch->deprecated_pc_in_call_dummy = deprecated_pc_in_call_dummy;
 }
 
 int
@@ -3588,42 +3786,56 @@ set_gdbarch_fix_call_dummy (struct gdbarch *gdbarch,
   gdbarch->fix_call_dummy = fix_call_dummy;
 }
 
-void
-gdbarch_init_frame_pc_first (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
+int
+gdbarch_deprecated_init_frame_pc_first_p (struct gdbarch *gdbarch)
+{
+  gdb_assert (gdbarch != NULL);
+  return gdbarch->deprecated_init_frame_pc_first != 0;
+}
+
+CORE_ADDR
+gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
 {
   gdb_assert (gdbarch != NULL);
-  if (gdbarch->init_frame_pc_first == 0)
+  if (gdbarch->deprecated_init_frame_pc_first == 0)
     internal_error (__FILE__, __LINE__,
-                    "gdbarch: gdbarch_init_frame_pc_first invalid");
+                    "gdbarch: gdbarch_deprecated_init_frame_pc_first invalid");
   if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_init_frame_pc_first called\n");
-  gdbarch->init_frame_pc_first (fromleaf, prev);
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_frame_pc_first called\n");
+  return gdbarch->deprecated_init_frame_pc_first (fromleaf, prev);
 }
 
 void
-set_gdbarch_init_frame_pc_first (struct gdbarch *gdbarch,
-                                 gdbarch_init_frame_pc_first_ftype init_frame_pc_first)
+set_gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch,
+                                            gdbarch_deprecated_init_frame_pc_first_ftype deprecated_init_frame_pc_first)
 {
-  gdbarch->init_frame_pc_first = init_frame_pc_first;
+  gdbarch->deprecated_init_frame_pc_first = deprecated_init_frame_pc_first;
 }
 
-void
-gdbarch_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
+int
+gdbarch_deprecated_init_frame_pc_p (struct gdbarch *gdbarch)
+{
+  gdb_assert (gdbarch != NULL);
+  return gdbarch->deprecated_init_frame_pc != 0;
+}
+
+CORE_ADDR
+gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
 {
   gdb_assert (gdbarch != NULL);
-  if (gdbarch->init_frame_pc == 0)
+  if (gdbarch->deprecated_init_frame_pc == 0)
     internal_error (__FILE__, __LINE__,
-                    "gdbarch: gdbarch_init_frame_pc invalid");
+                    "gdbarch: gdbarch_deprecated_init_frame_pc invalid");
   if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_init_frame_pc called\n");
-  gdbarch->init_frame_pc (fromleaf, prev);
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_frame_pc called\n");
+  return gdbarch->deprecated_init_frame_pc (fromleaf, prev);
 }
 
 void
-set_gdbarch_init_frame_pc (struct gdbarch *gdbarch,
-                           gdbarch_init_frame_pc_ftype init_frame_pc)
+set_gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch,
+                                      gdbarch_deprecated_init_frame_pc_ftype deprecated_init_frame_pc)
 {
-  gdbarch->init_frame_pc = init_frame_pc;
+  gdbarch->deprecated_init_frame_pc = deprecated_init_frame_pc;
 }
 
 int
@@ -5156,7 +5368,7 @@ gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch)
   return gdbarch->address_class_type_flags_to_name != 0;
 }
 
-char *
+const char *
 gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
 {
   gdb_assert (gdbarch != NULL);
@@ -5183,7 +5395,7 @@ gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
 }
 
 int
-gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, char *name, int *type_flags_ptr)
+gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
 {
   gdb_assert (gdbarch != NULL);
   if (gdbarch->address_class_name_to_type_flags == 0)
index a2fa46532c89effb465dc0d8d8d2c2971146bb09..0b2381f9984fbf433d75af7e78dc2c2f49a8cc1c 100644 (file)
@@ -970,17 +970,27 @@ extern void set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch, gdbarch_get
    reqires that these methods be set up from the word go.  This also
    avoids any potential problems with moving beyond multi-arch partial. */
 
-extern int gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch);
-extern void set_gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch, int use_generic_dummy_frames);
-#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) && defined (USE_GENERIC_DUMMY_FRAMES)
-#error "Non multi-arch definition of USE_GENERIC_DUMMY_FRAMES"
+/* Default (value) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
+#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES (1)
+#endif
+
+extern int gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch);
+extern void set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch, int deprecated_use_generic_dummy_frames);
+#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
+#error "Non multi-arch definition of DEPRECATED_USE_GENERIC_DUMMY_FRAMES"
 #endif
 #if GDB_MULTI_ARCH
-#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) || !defined (USE_GENERIC_DUMMY_FRAMES)
-#define USE_GENERIC_DUMMY_FRAMES (gdbarch_use_generic_dummy_frames (current_gdbarch))
+#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
+#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES (gdbarch_deprecated_use_generic_dummy_frames (current_gdbarch))
 #endif
 #endif
 
+/* Default (value) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (CALL_DUMMY_LOCATION)
+#define CALL_DUMMY_LOCATION (AT_ENTRY_POINT)
+#endif
+
 extern int gdbarch_call_dummy_location (struct gdbarch *gdbarch);
 extern void set_gdbarch_call_dummy_location (struct gdbarch *gdbarch, int call_dummy_location);
 #if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) && defined (CALL_DUMMY_LOCATION)
@@ -1048,15 +1058,46 @@ extern void set_gdbarch_call_dummy_length (struct gdbarch *gdbarch, int call_dum
 #endif
 #endif
 
-typedef int (gdbarch_pc_in_call_dummy_ftype) (CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address);
-extern int gdbarch_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address);
-extern void set_gdbarch_pc_in_call_dummy (struct gdbarch *gdbarch, gdbarch_pc_in_call_dummy_ftype *pc_in_call_dummy);
-#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) && defined (PC_IN_CALL_DUMMY)
-#error "Non multi-arch definition of PC_IN_CALL_DUMMY"
+/* NOTE: cagney/2002-11-24: This function with predicate has a valid
+   (callable) initial value.  As a consequence, even when the predicate
+   is false, the corresponding function works.  This simplifies the
+   migration process - old code, calling DEPRECATED_PC_IN_CALL_DUMMY(),
+   doesn't need to be modified. */
+
+#if defined (DEPRECATED_PC_IN_CALL_DUMMY)
+/* Legacy for systems yet to multi-arch DEPRECATED_PC_IN_CALL_DUMMY */
+#if !defined (DEPRECATED_PC_IN_CALL_DUMMY_P)
+#define DEPRECATED_PC_IN_CALL_DUMMY_P() (1)
+#endif
+#endif
+
+/* Default predicate for non- multi-arch targets. */
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PC_IN_CALL_DUMMY_P)
+#define DEPRECATED_PC_IN_CALL_DUMMY_P() (0)
+#endif
+
+extern int gdbarch_deprecated_pc_in_call_dummy_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PC_IN_CALL_DUMMY_P)
+#error "Non multi-arch definition of DEPRECATED_PC_IN_CALL_DUMMY"
+#endif
+#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PC_IN_CALL_DUMMY_P)
+#define DEPRECATED_PC_IN_CALL_DUMMY_P() (gdbarch_deprecated_pc_in_call_dummy_p (current_gdbarch))
+#endif
+
+/* Default (function) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PC_IN_CALL_DUMMY)
+#define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) (generic_pc_in_call_dummy (pc, sp, frame_address))
+#endif
+
+typedef int (gdbarch_deprecated_pc_in_call_dummy_ftype) (CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address);
+extern int gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address);
+extern void set_gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, gdbarch_deprecated_pc_in_call_dummy_ftype *deprecated_pc_in_call_dummy);
+#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PC_IN_CALL_DUMMY)
+#error "Non multi-arch definition of DEPRECATED_PC_IN_CALL_DUMMY"
 #endif
 #if GDB_MULTI_ARCH
-#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) || !defined (PC_IN_CALL_DUMMY)
-#define PC_IN_CALL_DUMMY(pc, sp, frame_address) (gdbarch_pc_in_call_dummy (current_gdbarch, pc, sp, frame_address))
+#if (GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PC_IN_CALL_DUMMY)
+#define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) (gdbarch_deprecated_pc_in_call_dummy (current_gdbarch, pc, sp, frame_address))
 #endif
 #endif
 
@@ -1137,37 +1178,77 @@ extern void set_gdbarch_fix_call_dummy (struct gdbarch *gdbarch, gdbarch_fix_cal
 #endif
 #endif
 
+#if defined (DEPRECATED_INIT_FRAME_PC_FIRST)
+/* Legacy for systems yet to multi-arch DEPRECATED_INIT_FRAME_PC_FIRST */
+#if !defined (DEPRECATED_INIT_FRAME_PC_FIRST_P)
+#define DEPRECATED_INIT_FRAME_PC_FIRST_P() (1)
+#endif
+#endif
+
+/* Default predicate for non- multi-arch targets. */
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC_FIRST_P)
+#define DEPRECATED_INIT_FRAME_PC_FIRST_P() (0)
+#endif
+
+extern int gdbarch_deprecated_init_frame_pc_first_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_INIT_FRAME_PC_FIRST_P)
+#error "Non multi-arch definition of DEPRECATED_INIT_FRAME_PC_FIRST"
+#endif
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_INIT_FRAME_PC_FIRST_P)
+#define DEPRECATED_INIT_FRAME_PC_FIRST_P() (gdbarch_deprecated_init_frame_pc_first_p (current_gdbarch))
+#endif
+
 /* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (INIT_FRAME_PC_FIRST)
-#define INIT_FRAME_PC_FIRST(fromleaf, prev) (init_frame_pc_noop (fromleaf, prev))
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC_FIRST)
+#define DEPRECATED_INIT_FRAME_PC_FIRST(fromleaf, prev) (internal_error (__FILE__, __LINE__, "DEPRECATED_INIT_FRAME_PC_FIRST"), 0)
 #endif
 
-typedef void (gdbarch_init_frame_pc_first_ftype) (int fromleaf, struct frame_info *prev);
-extern void gdbarch_init_frame_pc_first (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev);
-extern void set_gdbarch_init_frame_pc_first (struct gdbarch *gdbarch, gdbarch_init_frame_pc_first_ftype *init_frame_pc_first);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (INIT_FRAME_PC_FIRST)
-#error "Non multi-arch definition of INIT_FRAME_PC_FIRST"
+typedef CORE_ADDR (gdbarch_deprecated_init_frame_pc_first_ftype) (int fromleaf, struct frame_info *prev);
+extern CORE_ADDR gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev);
+extern void set_gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, gdbarch_deprecated_init_frame_pc_first_ftype *deprecated_init_frame_pc_first);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_INIT_FRAME_PC_FIRST)
+#error "Non multi-arch definition of DEPRECATED_INIT_FRAME_PC_FIRST"
 #endif
 #if GDB_MULTI_ARCH
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (INIT_FRAME_PC_FIRST)
-#define INIT_FRAME_PC_FIRST(fromleaf, prev) (gdbarch_init_frame_pc_first (current_gdbarch, fromleaf, prev))
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_INIT_FRAME_PC_FIRST)
+#define DEPRECATED_INIT_FRAME_PC_FIRST(fromleaf, prev) (gdbarch_deprecated_init_frame_pc_first (current_gdbarch, fromleaf, prev))
 #endif
 #endif
 
+#if defined (DEPRECATED_INIT_FRAME_PC)
+/* Legacy for systems yet to multi-arch DEPRECATED_INIT_FRAME_PC */
+#if !defined (DEPRECATED_INIT_FRAME_PC_P)
+#define DEPRECATED_INIT_FRAME_PC_P() (1)
+#endif
+#endif
+
+/* Default predicate for non- multi-arch targets. */
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC_P)
+#define DEPRECATED_INIT_FRAME_PC_P() (0)
+#endif
+
+extern int gdbarch_deprecated_init_frame_pc_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_INIT_FRAME_PC_P)
+#error "Non multi-arch definition of DEPRECATED_INIT_FRAME_PC"
+#endif
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_INIT_FRAME_PC_P)
+#define DEPRECATED_INIT_FRAME_PC_P() (gdbarch_deprecated_init_frame_pc_p (current_gdbarch))
+#endif
+
 /* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (INIT_FRAME_PC)
-#define INIT_FRAME_PC(fromleaf, prev) (init_frame_pc_default (fromleaf, prev))
+#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC)
+#define DEPRECATED_INIT_FRAME_PC(fromleaf, prev) (internal_error (__FILE__, __LINE__, "DEPRECATED_INIT_FRAME_PC"), 0)
 #endif
 
-typedef void (gdbarch_init_frame_pc_ftype) (int fromleaf, struct frame_info *prev);
-extern void gdbarch_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev);
-extern void set_gdbarch_init_frame_pc (struct gdbarch *gdbarch, gdbarch_init_frame_pc_ftype *init_frame_pc);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (INIT_FRAME_PC)
-#error "Non multi-arch definition of INIT_FRAME_PC"
+typedef CORE_ADDR (gdbarch_deprecated_init_frame_pc_ftype) (int fromleaf, struct frame_info *prev);
+extern CORE_ADDR gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev);
+extern void set_gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, gdbarch_deprecated_init_frame_pc_ftype *deprecated_init_frame_pc);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_INIT_FRAME_PC)
+#error "Non multi-arch definition of DEPRECATED_INIT_FRAME_PC"
 #endif
 #if GDB_MULTI_ARCH
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (INIT_FRAME_PC)
-#define INIT_FRAME_PC(fromleaf, prev) (gdbarch_init_frame_pc (current_gdbarch, fromleaf, prev))
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_INIT_FRAME_PC)
+#define DEPRECATED_INIT_FRAME_PC(fromleaf, prev) (gdbarch_deprecated_init_frame_pc (current_gdbarch, fromleaf, prev))
 #endif
 #endif
 
@@ -1950,6 +2031,11 @@ extern void set_gdbarch_frame_saved_pc (struct gdbarch *gdbarch, gdbarch_frame_s
 #endif
 #endif
 
+/* Default (function) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (FRAME_ARGS_ADDRESS)
+#define FRAME_ARGS_ADDRESS(fi) (get_frame_base (fi))
+#endif
+
 typedef CORE_ADDR (gdbarch_frame_args_address_ftype) (struct frame_info *fi);
 extern CORE_ADDR gdbarch_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi);
 extern void set_gdbarch_frame_args_address (struct gdbarch *gdbarch, gdbarch_frame_args_address_ftype *frame_args_address);
@@ -1962,6 +2048,11 @@ extern void set_gdbarch_frame_args_address (struct gdbarch *gdbarch, gdbarch_fra
 #endif
 #endif
 
+/* Default (function) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (FRAME_LOCALS_ADDRESS)
+#define FRAME_LOCALS_ADDRESS(fi) (get_frame_base (fi))
+#endif
+
 typedef CORE_ADDR (gdbarch_frame_locals_address_ftype) (struct frame_info *fi);
 extern CORE_ADDR gdbarch_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi);
 extern void set_gdbarch_frame_locals_address (struct gdbarch *gdbarch, gdbarch_frame_locals_address_ftype *frame_locals_address);
@@ -2671,14 +2762,14 @@ extern void set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch, gdbar
 
 extern int gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch);
 
-typedef char * (gdbarch_address_class_type_flags_to_name_ftype) (struct gdbarch *gdbarch, int type_flags);
-extern char * gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags);
+typedef const char * (gdbarch_address_class_type_flags_to_name_ftype) (struct gdbarch *gdbarch, int type_flags);
+extern const char * gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags);
 extern void set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name);
 
 extern int gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch);
 
-typedef int (gdbarch_address_class_name_to_type_flags_ftype) (struct gdbarch *gdbarch, char *name, int *type_flags_ptr);
-extern int gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, char *name, int *type_flags_ptr);
+typedef int (gdbarch_address_class_name_to_type_flags_ftype) (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr);
+extern int gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr);
 extern void set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags);
 
 /* Is a register in a group */
index f7f9a661d8e4340506b9092cef7af85cda303ef2..e2da438173bc2a9f677c65b5e14a8fe12a7d12d1 100755 (executable)
@@ -115,19 +115,25 @@ EOF
            test "${fmt}" || fmt="%ld"
            test "${print}" || print="(long) ${macro}"
 
-           case "${invalid_p}" in
-               0 ) valid_p=1 ;;
+           case "${class}" in
+           F | V | M )
+               case "${invalid_p}" in
                "" )
-                   if [ -n "${predefault}" ]
+                   if test -n "${predefault}" -a "${predefault}" != "0"
                    then
                        #invalid_p="gdbarch->${function} == ${predefault}"
-                       valid_p="gdbarch->${function} != ${predefault}"
+                       predicate="gdbarch->${function} != ${predefault}"
                    else
-                       #invalid_p="gdbarch->${function} == 0"
-                       valid_p="gdbarch->${function} != 0"
+                       # filled in later
+                       predicate=""
                    fi
                    ;;
-               * ) valid_p="!(${invalid_p})"
+               * )
+                   echo "Predicate function ${function} with invalid_p." 1>&2
+                   kill $$
+                   exit 1
+                   ;;
+               esac
            esac
 
            # PREDEFAULT is a valid fallback definition of MEMBER when
@@ -488,22 +494,27 @@ F:2:GET_LONGJMP_TARGET:int:get_longjmp_target:CORE_ADDR *pc:pc::0:0
 # behaviour here (and hence entrench it further) gdbarch simply
 # reqires that these methods be set up from the word go.  This also
 # avoids any potential problems with moving beyond multi-arch partial.
-v:1:USE_GENERIC_DUMMY_FRAMES:int:use_generic_dummy_frames::::0:-1
-v:1:CALL_DUMMY_LOCATION:int:call_dummy_location::::0:0
+v:1:DEPRECATED_USE_GENERIC_DUMMY_FRAMES:int:deprecated_use_generic_dummy_frames:::::1::0
+v:1:CALL_DUMMY_LOCATION:int:call_dummy_location:::::AT_ENTRY_POINT::0
 f:2:CALL_DUMMY_ADDRESS:CORE_ADDR:call_dummy_address:void:::0:0::gdbarch->call_dummy_location == AT_ENTRY_POINT && gdbarch->call_dummy_address == 0
 v:2:CALL_DUMMY_START_OFFSET:CORE_ADDR:call_dummy_start_offset::::0:-1:::0x%08lx
 v:2:CALL_DUMMY_BREAKPOINT_OFFSET:CORE_ADDR:call_dummy_breakpoint_offset::::0:-1::gdbarch->call_dummy_breakpoint_offset_p && gdbarch->call_dummy_breakpoint_offset == -1:0x%08lx::CALL_DUMMY_BREAKPOINT_OFFSET_P
 v:1:CALL_DUMMY_BREAKPOINT_OFFSET_P:int:call_dummy_breakpoint_offset_p::::0:-1
 v:2:CALL_DUMMY_LENGTH:int:call_dummy_length::::0:-1:::::CALL_DUMMY_LOCATION == BEFORE_TEXT_END || CALL_DUMMY_LOCATION == AFTER_TEXT_END
-f:1:PC_IN_CALL_DUMMY:int:pc_in_call_dummy:CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address:pc, sp, frame_address::0:0
+# NOTE: cagney/2002-11-24: This function with predicate has a valid
+# (callable) initial value.  As a consequence, even when the predicate
+# is false, the corresponding function works.  This simplifies the
+# migration process - old code, calling DEPRECATED_PC_IN_CALL_DUMMY(),
+# doesn't need to be modified.
+F:1:DEPRECATED_PC_IN_CALL_DUMMY:int:deprecated_pc_in_call_dummy:CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address:pc, sp, frame_address::generic_pc_in_call_dummy:generic_pc_in_call_dummy
 v:1:CALL_DUMMY_P:int:call_dummy_p::::0:-1
 v:2:CALL_DUMMY_WORDS:LONGEST *:call_dummy_words::::0:legacy_call_dummy_words::0:0x%08lx
 v:2:SIZEOF_CALL_DUMMY_WORDS:int:sizeof_call_dummy_words::::0:legacy_sizeof_call_dummy_words::0:0x%08lx
 v:1:CALL_DUMMY_STACK_ADJUST_P:int:call_dummy_stack_adjust_p::::0:-1:::0x%08lx
 v:2:CALL_DUMMY_STACK_ADJUST:int:call_dummy_stack_adjust::::0:::gdbarch->call_dummy_stack_adjust_p && gdbarch->call_dummy_stack_adjust == 0:0x%08lx::CALL_DUMMY_STACK_ADJUST_P
 f:2:FIX_CALL_DUMMY:void:fix_call_dummy:char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p:dummy, pc, fun, nargs, args, type, gcc_p:::0
-f:2:INIT_FRAME_PC_FIRST:void:init_frame_pc_first:int fromleaf, struct frame_info *prev:fromleaf, prev:::init_frame_pc_noop::0
-f:2:INIT_FRAME_PC:void:init_frame_pc:int fromleaf, struct frame_info *prev:fromleaf, prev:::init_frame_pc_default::0
+F:2:DEPRECATED_INIT_FRAME_PC_FIRST:CORE_ADDR:deprecated_init_frame_pc_first:int fromleaf, struct frame_info *prev:fromleaf, prev
+F::DEPRECATED_INIT_FRAME_PC:CORE_ADDR:deprecated_init_frame_pc:int fromleaf, struct frame_info *prev:fromleaf, prev
 #
 v:2:BELIEVE_PCC_PROMOTION:int:believe_pcc_promotion:::::::
 v:2:BELIEVE_PCC_PROMOTION_TYPE:int:believe_pcc_promotion_type:::::::
@@ -566,8 +577,8 @@ f:2:FRAME_CHAIN:CORE_ADDR:frame_chain:struct frame_info *frame:frame::0:0
 # functions.
 f:2:FRAME_CHAIN_VALID:int:frame_chain_valid:CORE_ADDR chain, struct frame_info *thisframe:chain, thisframe:::generic_func_frame_chain_valid::0
 f:2:FRAME_SAVED_PC:CORE_ADDR:frame_saved_pc:struct frame_info *fi:fi::0:0
-f:2:FRAME_ARGS_ADDRESS:CORE_ADDR:frame_args_address:struct frame_info *fi:fi::0:0
-f:2:FRAME_LOCALS_ADDRESS:CORE_ADDR:frame_locals_address:struct frame_info *fi:fi::0:0
+f:2:FRAME_ARGS_ADDRESS:CORE_ADDR:frame_args_address:struct frame_info *fi:fi::0:get_frame_base::0
+f:2:FRAME_LOCALS_ADDRESS:CORE_ADDR:frame_locals_address:struct frame_info *fi:fi::0:get_frame_base::0
 f:2:SAVED_PC_AFTER_CALL:CORE_ADDR:saved_pc_after_call:struct frame_info *frame:frame::0:0
 f:2:FRAME_NUM_ARGS:int:frame_num_args:struct frame_info *frame:frame::0:0
 #
@@ -578,9 +589,9 @@ F:2:REG_STRUCT_HAS_ADDR:int:reg_struct_has_addr:int gcc_p, struct type *type:gcc
 F:2:SAVE_DUMMY_FRAME_TOS:void:save_dummy_frame_tos:CORE_ADDR sp:sp::0:0
 v:2:PARM_BOUNDARY:int:parm_boundary
 #
-v:2:TARGET_FLOAT_FORMAT:const struct floatformat *:float_format::::::default_float_format (gdbarch)
-v:2:TARGET_DOUBLE_FORMAT:const struct floatformat *:double_format::::::default_double_format (gdbarch)
-v:2:TARGET_LONG_DOUBLE_FORMAT:const struct floatformat *:long_double_format::::::default_double_format (gdbarch)
+v:2:TARGET_FLOAT_FORMAT:const struct floatformat *:float_format::::::default_float_format (gdbarch)::%s:(TARGET_FLOAT_FORMAT)->name
+v:2:TARGET_DOUBLE_FORMAT:const struct floatformat *:double_format::::::default_double_format (gdbarch)::%s:(TARGET_DOUBLE_FORMAT)->name
+v:2:TARGET_LONG_DOUBLE_FORMAT:const struct floatformat *:long_double_format::::::default_double_format (gdbarch)::%s:(TARGET_LONG_DOUBLE_FORMAT)->name
 f:2:CONVERT_FROM_FUNC_PTR_ADDR:CORE_ADDR:convert_from_func_ptr_addr:CORE_ADDR addr:addr:::core_addr_identity::0
 # On some machines there are bits in addresses which are not really
 # part of the address, but are used by the kernel, the hardware, etc.
@@ -661,12 +672,12 @@ m::CONSTRUCT_INFERIOR_ARGUMENTS:char *:construct_inferior_arguments:int argc, ch
 F:2:DWARF2_BUILD_FRAME_INFO:void:dwarf2_build_frame_info:struct objfile *objfile:objfile:::0
 f:2:ELF_MAKE_MSYMBOL_SPECIAL:void:elf_make_msymbol_special:asymbol *sym, struct minimal_symbol *msym:sym, msym:::default_elf_make_msymbol_special::0
 f:2:COFF_MAKE_MSYMBOL_SPECIAL:void:coff_make_msymbol_special:int val, struct minimal_symbol *msym:val, msym:::default_coff_make_msymbol_special::0
-v::NAME_OF_MALLOC:const char *:name_of_malloc::::"malloc":"malloc"::0
+v::NAME_OF_MALLOC:const char *:name_of_malloc::::"malloc":"malloc"::0:%s:NAME_OF_MALLOC
 v::CANNOT_STEP_BREAKPOINT:int:cannot_step_breakpoint::::0:0::0
 v::HAVE_NONSTEPPABLE_WATCHPOINT:int:have_nonsteppable_watchpoint::::0:0::0
 F:2:ADDRESS_CLASS_TYPE_FLAGS:int:address_class_type_flags:int byte_size, int dwarf2_addr_class:byte_size, dwarf2_addr_class
-M:2:ADDRESS_CLASS_TYPE_FLAGS_TO_NAME:char *:address_class_type_flags_to_name:int type_flags:type_flags:
-M:2:ADDRESS_CLASS_NAME_TO_TYPE_FLAGS:int:address_class_name_to_type_flags:char *name, int *type_flags_ptr:name, type_flags_ptr
+M:2:ADDRESS_CLASS_TYPE_FLAGS_TO_NAME:const char *:address_class_type_flags_to_name:int type_flags:type_flags:
+M:2:ADDRESS_CLASS_NAME_TO_TYPE_FLAGS:int:address_class_name_to_type_flags:const char *name, int *type_flags_ptr:name, type_flags_ptr
 # Is a register in a group
 m:::int:register_reggroup_p:int regnum, struct reggroup *reggroup:regnum, reggroup:::default_register_reggroup_p::0
 EOF
@@ -686,9 +697,6 @@ EOF
     do
        eval echo \"\ \ \ \ ${r}=\${${r}}\"
     done
-#    #fallbackdefault=${fallbackdefault}
-#    #valid_p=${valid_p}
-#EOF
     if class_is_predicate_p && fallback_default_p
     then
        echo "Error: predicate function ${macro} can not have a non- multi-arch default" 1>&2
@@ -1562,8 +1570,29 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                       "gdbarch_dump: GDB_MULTI_ARCH = %d\\n",
                       GDB_MULTI_ARCH);
 EOF
-function_list | sort -t: +2 | while do_read
+function_list | sort -t: -k 3 | while do_read
 do
+    # First the predicate
+    if class_is_predicate_p
+    then
+       if class_is_multiarch_p
+       then
+           printf "  if (GDB_MULTI_ARCH)\n"
+           printf "    fprintf_unfiltered (file,\n"
+           printf "                        \"gdbarch_dump: gdbarch_${function}_p() = %%d\\\\n\",\n"
+           printf "                        gdbarch_${function}_p (current_gdbarch));\n"
+       else
+           printf "#ifdef ${macro}_P\n"
+           printf "  fprintf_unfiltered (file,\n"
+           printf "                      \"gdbarch_dump: %%s # %%s\\\\n\",\n"
+           printf "                      \"${macro}_P()\",\n"
+           printf "                      XSTRING (${macro}_P ()));\n"
+           printf "  fprintf_unfiltered (file,\n"
+           printf "                      \"gdbarch_dump: ${macro}_P() = %%d\\\\n\",\n"
+           printf "                      ${macro}_P ());\n"
+           printf "#endif\n"
+       fi
+    fi
     # multiarch functions don't have macros.
     if class_is_multiarch_p
     then
@@ -1612,7 +1641,7 @@ do
     then
        printf "  if (GDB_MULTI_ARCH)\n"
        printf "    fprintf_unfiltered (file,\n"
-       printf "                        \"gdbarch_dump: ${macro} = 0x%%08lx\\\\n\",\n"
+       printf "                        \"gdbarch_dump: ${macro} = <0x%%08lx>\\\\n\",\n"
        printf "                        (long) current_gdbarch->${function}\n"
        printf "                        /*${macro} ()*/);\n"
     else
@@ -1650,11 +1679,11 @@ do
        printf "gdbarch_${function}_p (struct gdbarch *gdbarch)\n"
        printf "{\n"
         printf "  gdb_assert (gdbarch != NULL);\n"
-       if [ -n "${valid_p}" ]
+       if [ -n "${predicate}" ]
        then
-           printf "  return ${valid_p};\n"
+           printf "  return ${predicate};\n"
        else
-           printf "#error \"gdbarch_${function}_p: not defined\"\n"
+           printf "  return gdbarch->${function} != 0;\n"
        fi
        printf "}\n"
     fi
@@ -1673,6 +1702,11 @@ do
         printf "  if (gdbarch->${function} == 0)\n"
         printf "    internal_error (__FILE__, __LINE__,\n"
        printf "                    \"gdbarch: gdbarch_${function} invalid\");\n"
+       if class_is_predicate_p && test -n "${predicate}"
+       then
+           # Allow a call to a function with a predicate.
+           printf "  /* Ignore predicate (${predicate}).  */\n"
+       fi
        printf "  if (gdbarch_debug >= 2)\n"
        printf "    fprintf_unfiltered (gdb_stdlog, \"gdbarch_${function} called\\\\n\");\n"
        if [ "x${actual}" = "x-" -o "x${actual}" = "x" ]
index e7ab6093235d2b451e98844ffddc57f53487cba8..9a25c44be8779858bf961e9e6dce6c99cfa4db07 100644 (file)
@@ -1,3 +1,17 @@
+2002-11-20  Daniel Jacobowitz  <drow@mvista.com>
+
+       * linux-s390-low.c (s390_regmap): Check GPR_SIZE instead of
+       defined(PT_FPR0_HI).
+
+2002-11-17  Stuart Hughes  <seh@zee2.com>
+
+       * linux-arm-low.c (arm_num_regs): Increase.
+       (arm_regmap): Include status register.
+
+2002-11-17  Daniel Jacobowitz  <drow@mvista.com>
+
+       * linux-low.c (register_addr): Remove incorrect -1 check.
+
 2002-08-29  Daniel Jacobowitz  <drow@mvista.com>
 
        * linux-low.c (linux_create_inferior): Call setpgid.  Return
index 07e2792837c4ca9085666d8845a02421369372c5..cd075b2df8d3f8e213923e6dc434722652084c5f 100644 (file)
 #include <sys/reg.h>
 #endif
 
-#define arm_num_regs 16
+#define arm_num_regs 26
 
 static int arm_regmap[] = {
   0, 4, 8, 12, 16, 20, 24, 28,
   32, 36, 40, 44, 48, 52, 56, 60,
+  -1, -1, -1, -1, -1, -1, -1, -1, -1,
+  64
 };
 
 static int
index 7644f9e990fc874e82dcbc6a78a67922f1521f6f..2cb592ae1da6d0f32ace50ffeae9b95780c759ed 100644 (file)
@@ -894,8 +894,6 @@ register_addr (int regnum)
     error ("Invalid register number %d.", regnum);
 
   addr = the_low_target.regmap[regnum];
-  if (addr == -1)
-    addr = 0;
 
   return addr;
 }
index 8d800ae8b5f9ff0147f990f3401ca0dd2a0c780f..9213f68ef00f63a94cc7724980cf3e499c532656 100644 (file)
@@ -49,7 +49,8 @@ static int s390_regmap[] = {
   
   PT_FPC,
 
-#ifdef PT_FPR0_HI
+/* <asm/ptrace.h> defines GPR_SIZE.  */
+#if GPR_SIZE == 4
   PT_FPR0_HI, PT_FPR1_HI, PT_FPR2_HI, PT_FPR3_HI,
   PT_FPR4_HI, PT_FPR5_HI, PT_FPR6_HI, PT_FPR7_HI,
   PT_FPR8_HI, PT_FPR9_HI, PT_FPR10_HI, PT_FPR11_HI,
index da89b36eee1778ed3428d5a22870bdae7630b0b3..e3df58bbcf54692580d31dd81400664e6a0bcdcb 100644 (file)
@@ -28,6 +28,9 @@
 /* For bpstat */
 #include "breakpoint.h"
 
+/* For struct frame_id.  */
+#include "frame.h"
+
 struct thread_info
 {
   struct thread_info *next;
@@ -43,7 +46,7 @@ struct thread_info
   struct breakpoint *through_sigtramp_breakpoint;
   CORE_ADDR step_range_start;
   CORE_ADDR step_range_end;
-  CORE_ADDR step_frame_address;
+  struct frame_id step_frame_id;
   CORE_ADDR step_sp;
   int current_line;
   struct symtab *current_symtab;
@@ -118,7 +121,7 @@ extern void save_infrun_state (ptid_t ptid,
                               struct breakpoint *through_sigtramp_breakpoint,
                               CORE_ADDR step_range_start,
                               CORE_ADDR step_range_end,
-                              CORE_ADDR step_frame_address,
+                              const struct frame_id *step_frame_id,
                               int       handling_longjmp,
                               int       another_trap,
                               int       stepping_through_solib_after_catch,
@@ -139,7 +142,7 @@ extern void load_infrun_state (ptid_t ptid,
                               struct breakpoint **through_sigtramp_breakpoint,
                               CORE_ADDR *step_range_start,
                               CORE_ADDR *step_range_end,
-                              CORE_ADDR *step_frame_address,
+                              struct frame_id *step_frame_id,
                               int       *handling_longjmp,
                               int       *another_trap,
                               int       *stepping_through_solib_affter_catch,
index 5b283277fe9324d1f60117d4a62257a5bb588472..b40d1eac9a029847ee8d3ee6e53b94de442e7908 100644 (file)
@@ -416,7 +416,7 @@ address_space_name_to_int (char *space_identifier)
 /* Identify address space identifier by integer flag as defined in 
    gdbtypes.h -- return the string version of the adress space name. */
 
-extern char *
+const char *
 address_space_int_to_name (int space_flag)
 {
   struct gdbarch *gdbarch = current_gdbarch;
@@ -1341,8 +1341,11 @@ get_destructor_fn_field (struct type *t, int *method_indexp, int *field_indexp)
    This used to be coded as a macro, but I don't think it is called 
    often enough to merit such treatment.  */
 
-struct deprecated_complaint stub_noname_complaint =
-{"stub type has NULL name", 0, 0};
+static void
+stub_noname_complaint (void)
+{
+  complaint (&symfile_complaints, "stub type has NULL name");
+}
 
 struct type *
 check_typedef (struct type *type)
@@ -1369,7 +1372,7 @@ check_typedef (struct type *type)
             TYPE_TAG_NAME were separate).  */
          if (name == NULL)
            {
-             complain (&stub_noname_complaint);
+             stub_noname_complaint ();
              return type;
            }
          sym = lookup_symbol (name, 0, STRUCT_NAMESPACE, 0,
@@ -1396,7 +1399,7 @@ check_typedef (struct type *type)
       struct type *newtype;
       if (name == NULL)
        {
-         complain (&stub_noname_complaint);
+         stub_noname_complaint ();
          return type;
        }
       newtype = lookup_transparent_type (name);
@@ -1414,7 +1417,7 @@ check_typedef (struct type *type)
       struct symbol *sym;
       if (name == NULL)
        {
-         complain (&stub_noname_complaint);
+         stub_noname_complaint ();
          return type;
        }
       sym = lookup_symbol (name, 0, STRUCT_NAMESPACE, 0, (struct symtab **) NULL);
@@ -1511,12 +1514,8 @@ add_mangled_type (struct extra *pextras, struct type *t)
          break;
        default:
          {
-
-           static struct deprecated_complaint msg =
-           {"Bad int type code length x%x\n", 0, 0};
-
-           complain (&msg, tlen);
-
+           complaint (&symfile_complaints, "Bad int type code length x%x",
+                      tlen);
          }
        }
       break;
@@ -1534,9 +1533,8 @@ add_mangled_type (struct extra *pextras, struct type *t)
          break;
        default:
          {
-           static struct deprecated_complaint msg =
-           {"Bad float type code length x%x\n", 0, 0};
-           complain (&msg, tlen);
+           complaint (&symfile_complaints, "Bad float type code length x%x",
+                      tlen);
          }
        }
       break;
@@ -1550,9 +1548,8 @@ add_mangled_type (struct extra *pextras, struct type *t)
       break;
     case TYPE_CODE_TYPEDEF:
       {
-       static struct deprecated_complaint msg =
-       {"Typedefs in overloaded functions not yet supported\n", 0, 0};
-       complain (&msg);
+       complaint (&symfile_complaints,
+                  "Typedefs in overloaded functions not yet supported");
       }
       /* followed by type bytes & name */
       break;
@@ -1590,9 +1587,7 @@ add_mangled_type (struct extra *pextras, struct type *t)
     case TYPE_CODE_ERROR:
     default:
       {
-       static struct deprecated_complaint msg =
-       {"Unknown type code x%x\n", 0, 0};
-       complain (&msg, tcode);
+       complaint (&symfile_complaints, "Unknown type code x%x", tcode);
       }
     }
   if (TYPE_TARGET_TYPE (t))
index 91f156e3297cc2051bac08f55c1c829a51b1e51c..8adc89eeb2c00ec1fa987c5b2799ec295919b4d4 100644 (file)
@@ -1097,7 +1097,7 @@ extern void replace_type (struct type *, struct type *);
 
 extern int address_space_name_to_int (char *);
 
-extern char *address_space_int_to_name (int);
+extern const char *address_space_int_to_name (int);
 
 extern struct type *make_type_with_address_space (struct type *type, 
                                                  int space_identifier);
index 0b0578c5fe78a6da78a4337e99c4e00e1601439c..0fc9d86d69b7cfc41b3892be899d213f9261c527 100644 (file)
@@ -482,9 +482,10 @@ h8300_frame_init_saved_regs (struct frame_info *fi)
     }
 }
 
-/* Given a GDB frame, determine the address of the calling function's frame.
-   This will be used to create a new GDB frame struct, and then
-   INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
+/* Given a GDB frame, determine the address of the calling function's
+   frame.  This will be used to create a new GDB frame struct, and
+   then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be
+   called for the new frame.
 
    For us, the frame address is its stack pointer value, so we look up
    the function prologue to determine the caller's sp value, and return it.  */
@@ -492,7 +493,7 @@ h8300_frame_init_saved_regs (struct frame_info *fi)
 static CORE_ADDR
 h8300_frame_chain (struct frame_info *thisframe)
 {
-  if (PC_IN_CALL_DUMMY (thisframe->pc, thisframe->frame, thisframe->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (thisframe->pc, thisframe->frame, thisframe->frame))
     {                          /* initialize the from_pc now */
       thisframe->extra_info->from_pc =
        deprecated_read_register_dummy (thisframe->pc, thisframe->frame,
@@ -510,7 +511,7 @@ h8300_frame_chain (struct frame_info *thisframe)
 static CORE_ADDR
 h8300_frame_saved_pc (struct frame_info *frame)
 {
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     return deprecated_read_register_dummy (frame->pc, frame->frame,
                                           E_PC_REGNUM);
   else
@@ -540,7 +541,7 @@ h8300_init_extra_frame_info (int fromleaf, struct frame_info *fi)
 static CORE_ADDR
 h8300_frame_locals_address (struct frame_info *fi)
 {
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     return (CORE_ADDR) 0;      /* Not sure what else to do... */
   return fi->extra_info->locals_pointer;
 }
@@ -551,7 +552,7 @@ h8300_frame_locals_address (struct frame_info *fi)
 static CORE_ADDR
 h8300_frame_args_address (struct frame_info *fi)
 {
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     return (CORE_ADDR) 0;      /* Not sure what else to do... */
   return fi->extra_info->args_pointer;
 }
@@ -746,7 +747,7 @@ h8300_pop_frame (void)
   unsigned regno;
   struct frame_info *frame = get_current_frame ();
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     {
       generic_pop_dummy_frame ();
     }
@@ -904,7 +905,7 @@ h8300_print_register (struct gdbarch *gdbarch, struct ui_file *file,
       int C, Z, N, V;
       unsigned char b[h8300h_reg_size];
       unsigned char l;
-      frame_register_read (selected_frame, regno, b);
+      frame_register_read (deprecated_selected_frame, regno, b);
       l = b[REGISTER_VIRTUAL_SIZE (E_CCR_REGNUM) - 1];
       fprintf_filtered (file, "\t");
       fprintf_filtered (file, "I-%d ", (l & 0x80) != 0);
@@ -945,7 +946,7 @@ h8300_print_register (struct gdbarch *gdbarch, struct ui_file *file,
       /* EXR register */
       unsigned char b[h8300h_reg_size];
       unsigned char l;
-      frame_register_read (selected_frame, regno, b);
+      frame_register_read (deprecated_selected_frame, regno, b);
       l = b[REGISTER_VIRTUAL_SIZE (E_EXR_REGNUM) - 1];
       fprintf_filtered (file, "\t");
       fprintf_filtered (file, "T-%d - - - ", (l & 0x80) != 0);
@@ -1079,6 +1080,10 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   gdbarch = gdbarch_alloc (&info, 0);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   /*
    * Basic register fields and methods.
    */
@@ -1106,7 +1111,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_init_extra_frame_info (gdbarch, h8300_init_extra_frame_info);
   set_gdbarch_frame_init_saved_regs (gdbarch, h8300_frame_init_saved_regs);
   set_gdbarch_frame_chain (gdbarch, h8300_frame_chain);
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
   set_gdbarch_saved_pc_after_call (gdbarch, h8300_saved_pc_after_call);
   set_gdbarch_frame_saved_pc (gdbarch, h8300_frame_saved_pc);
   set_gdbarch_skip_prologue (gdbarch, h8300_skip_prologue);
@@ -1138,7 +1142,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
    * Call Dummies
    * 
    * These values and methods are used when gdb calls a target function.  */
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
   set_gdbarch_push_return_address (gdbarch, h8300_push_return_address);
   set_gdbarch_deprecated_extract_return_value (gdbarch, h8300_extract_return_value);
@@ -1148,13 +1151,11 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_store_return_value (gdbarch, h8300_store_return_value);
   set_gdbarch_deprecated_extract_struct_value_address (gdbarch, h8300_extract_struct_value_address);
   set_gdbarch_use_struct_convention (gdbarch, h8300_use_struct_convention);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_p (gdbarch, 1);
   set_gdbarch_call_dummy_words (gdbarch, call_dummy_words);
   set_gdbarch_sizeof_call_dummy_words (gdbarch, 0);
index 0bfae7a762436e01df7afb9a3d61065aa3bbbcb2..944a2976fd9e0f882d63287b8938f4808062cf8f 100644 (file)
@@ -106,9 +106,10 @@ h8500_addr_bits_remove (CORE_ADDR addr)
   return ((addr) & 0xffffff);
 }
 
-/* Given a GDB frame, determine the address of the calling function's frame.
-   This will be used to create a new GDB frame struct, and then
-   INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
+/* Given a GDB frame, determine the address of the calling function's
+   frame.  This will be used to create a new GDB frame struct, and
+   then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be
+   called for the new frame.
 
    For us, the frame address is its stack pointer value, so we look up
    the function prologue to determine the caller's sp value, and return it.  */
@@ -117,7 +118,7 @@ CORE_ADDR
 h8500_frame_chain (struct frame_info *thisframe)
 {
   if (!inside_entry_file (thisframe->pc))
-    return (read_memory_integer (FRAME_FP (thisframe), PTR_SIZE));
+    return (read_memory_integer (get_frame_base (thisframe), PTR_SIZE));
   else
     return 0;
 }
@@ -154,7 +155,7 @@ NEXT_PROLOGUE_INSN (CORE_ADDR addr, CORE_ADDR lim, char *pword1)
 CORE_ADDR
 frame_saved_pc (struct frame_info *frame)
 {
-  return read_memory_integer (FRAME_FP (frame) + 2, PTR_SIZE);
+  return read_memory_integer (get_frame_base (frame) + 2, PTR_SIZE);
 }
 
 void
@@ -164,7 +165,7 @@ h8500_pop_frame (void)
   struct frame_saved_regs fsr;
   struct frame_info *frame = get_current_frame ();
 
-  get_frame_saved_regs (frame, &fsr);
+  deprecated_get_frame_saved_regs (frame, &fsr);
 
   for (regnum = 0; regnum < 8; regnum++)
     {
@@ -186,7 +187,7 @@ h8500_print_register_hook (int regno)
       unsigned char b[2];
       unsigned char l;
 
-      frame_register_read (selected_frame, regno, b);
+      frame_register_read (deprecated_selected_frame, regno, b);
       l = b[1];
       printf_unfiltered ("\t");
       printf_unfiltered ("I-%d - ", (l & 0x80) != 0);
@@ -328,7 +329,7 @@ h8500_print_registers_info (struct gdbarch *gdbarch,
 void
 h8500_do_registers_info (int regnum, int all)
 {
-  h8500_print_registers_info (current_gdbarch, gdb_stdout, selected_frame,
+  h8500_print_registers_info (current_gdbarch, gdb_stdout, deprecated_selected_frame,
                              regnum, all);
 }
 
@@ -617,10 +618,10 @@ h8500_value_of_trapped_internalvar (struct internalvar *var)
       break;
     }
 
-  get_saved_register (regbuf, NULL, NULL, selected_frame, page_regnum, NULL);
+  get_saved_register (regbuf, NULL, NULL, deprecated_selected_frame, page_regnum, NULL);
   regval = regbuf[0] << 16;
 
-  get_saved_register (regbuf, NULL, NULL, selected_frame, regnum, NULL);
+  get_saved_register (regbuf, NULL, NULL, deprecated_selected_frame, regnum, NULL);
   regval |= regbuf[0] << 8 | regbuf[1];                /* XXX host/target byte order */
 
   xfree (var->value);          /* Free up old value */
index e0f7d9ece60d06eda4cadd7ef2def285fdb20b5c..a9c6fc715f61857eeeeb416b658f6b0e5aee9c43 100644 (file)
@@ -31,6 +31,7 @@
 #include "regcache.h"
 #include "completer.h"
 #include "language.h"
+#include "osabi.h"
 
 /* For argument passing to the inferior */
 #include "symtab.h"
@@ -891,7 +892,7 @@ hppa_frame_saved_pc (struct frame_info *frame)
 
 #ifdef FRAME_SAVED_PC_IN_SIGTRAMP
   /* Deal with signal handler caller frames too.  */
-  if (frame->signal_handler_caller)
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
     {
       CORE_ADDR rp;
       FRAME_SAVED_PC_IN_SIGTRAMP (frame, &rp);
@@ -910,12 +911,12 @@ hppa_frame_saved_pc (struct frame_info *frame)
          register area to get the return pointer (the values
          in the registers may not correspond to anything useful).  */
       if (frame->next
-         && (frame->next->signal_handler_caller
+         && ((get_frame_type (frame->next) == SIGTRAMP_FRAME)
              || pc_in_interrupt_handler (frame->next->pc)))
        {
          struct frame_saved_regs saved_regs;
 
-         get_frame_saved_regs (frame->next, &saved_regs);
+         deprecated_get_frame_saved_regs (frame->next, &saved_regs);
          if (read_memory_integer (saved_regs.regs[FLAGS_REGNUM],
                                   TARGET_PTR_BIT / 8) & 0x2)
            {
@@ -950,12 +951,12 @@ hppa_frame_saved_pc (struct frame_info *frame)
          information out of the saved register info.  */
       if (rp_offset == 0
          && frame->next
-         && (frame->next->signal_handler_caller
+         && ((get_frame_type (frame->next) == SIGTRAMP_FRAME)
              || pc_in_interrupt_handler (frame->next->pc)))
        {
          struct frame_saved_regs saved_regs;
 
-         get_frame_saved_regs (frame->next, &saved_regs);
+         deprecated_get_frame_saved_regs (frame->next, &saved_regs);
          if (read_memory_integer (saved_regs.regs[FLAGS_REGNUM],
                                   TARGET_PTR_BIT / 8) & 0x2)
            {
@@ -1079,9 +1080,10 @@ init_extra_frame_info (int fromleaf, struct frame_info *frame)
     frame->frame = read_register (SP_REGNUM) - framesize;
 }
 \f
-/* Given a GDB frame, determine the address of the calling function's frame.
-   This will be used to create a new GDB frame struct, and then
-   INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
+/* Given a GDB frame, determine the address of the calling function's
+   frame.  This will be used to create a new GDB frame struct, and
+   then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be
+   called for the new frame.
 
    This may involve searching through prologues for several functions
    at boundaries where GCC calls HP C code, or where code which has
@@ -1144,7 +1146,7 @@ frame_chain (struct frame_info *frame)
     frame_base = read_memory_integer (frame->frame + SP_REGNUM * 4,
                                      TARGET_PTR_BIT / 8);
 #ifdef FRAME_BASE_BEFORE_SIGTRAMP
-  else if (frame->signal_handler_caller)
+  else if ((get_frame_type (frame) == SIGTRAMP_FRAME))
     {
       FRAME_BASE_BEFORE_SIGTRAMP (frame, &frame_base);
     }
@@ -1215,7 +1217,7 @@ frame_chain (struct frame_info *frame)
        }
 
       if (u->Save_SP
-         || tmp_frame->signal_handler_caller
+         || (get_frame_type (tmp_frame) == SIGTRAMP_FRAME)
          || pc_in_interrupt_handler (tmp_frame->pc))
        break;
 
@@ -1226,7 +1228,7 @@ frame_chain (struct frame_info *frame)
          /* The unwind entry claims that r3 is saved here.  However,
             in optimized code, GCC often doesn't actually save r3.
             We'll discover this if we look at the prologue.  */
-         get_frame_saved_regs (tmp_frame, &saved_regs);
+         deprecated_get_frame_saved_regs (tmp_frame, &saved_regs);
          saved_regs_frame = tmp_frame;
 
          /* If we have an address for r3, that's good.  */
@@ -1240,7 +1242,7 @@ frame_chain (struct frame_info *frame)
       /* We may have walked down the chain into a function with a frame
          pointer.  */
       if (u->Save_SP
-         && !tmp_frame->signal_handler_caller
+         && !(get_frame_type (tmp_frame) == SIGTRAMP_FRAME)
          && !pc_in_interrupt_handler (tmp_frame->pc))
        {
          return read_memory_integer (tmp_frame->frame, TARGET_PTR_BIT / 8);
@@ -1275,7 +1277,7 @@ frame_chain (struct frame_info *frame)
             system call has a variable sized stack frame.  */
 
          if (tmp_frame != saved_regs_frame)
-           get_frame_saved_regs (tmp_frame, &saved_regs);
+           deprecated_get_frame_saved_regs (tmp_frame, &saved_regs);
 
          /* Abominable hack.  */
          if (current_target.to_has_execution == 0
@@ -1310,7 +1312,7 @@ frame_chain (struct frame_info *frame)
        tmp_frame = tmp_frame->next;
 
       if (tmp_frame != saved_regs_frame)
-       get_frame_saved_regs (tmp_frame, &saved_regs);
+       deprecated_get_frame_saved_regs (tmp_frame, &saved_regs);
 
       /* Abominable hack.  See above.  */
       if (current_target.to_has_execution == 0
@@ -1388,7 +1390,7 @@ hppa_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
      and doesn't "call" an interrupt routine or signal handler caller,
      then its not valid.  */
   if (u->Save_SP || u->Total_frame_size || u->stub_unwind.stub_type != 0
-      || (thisframe->next && thisframe->next->signal_handler_caller)
+      || (thisframe->next && (get_frame_type (thisframe->next) == SIGTRAMP_FRAME))
       || (next_u && next_u->HP_UX_interrupt_marker))
     return 1;
 
@@ -1532,8 +1534,8 @@ hppa_pop_frame (void)
   struct frame_saved_regs fsr;
   double freg_buffer;
 
-  fp = FRAME_FP (frame);
-  get_frame_saved_regs (frame, &fsr);
+  fp = get_frame_base (frame);
+  deprecated_get_frame_saved_regs (frame, &fsr);
 
 #ifndef NO_PC_SPACE_QUEUE_RESTORE
   if (fsr.regs[IPSW_REGNUM])   /* Restoring a call dummy frame */
@@ -1602,7 +1604,7 @@ hppa_pop_frame (void)
          for "return_command" will print the frame we returned to.  */
       sal = find_pc_line (target_pc, 0);
       sal.pc = target_pc;
-      breakpoint = set_momentary_breakpoint (sal, NULL, bp_finish);
+      breakpoint = set_momentary_breakpoint (sal, null_frame_id, bp_finish);
       breakpoint->silent = 1;
 
       /* So we can clean things up.  */
@@ -2510,7 +2512,7 @@ pa_do_registers_info (int regnum, int fpregs)
   /* Make a copy of gdb's save area (may cause actual
      reads from the target). */
   for (i = 0; i < NUM_REGS; i++)
-    frame_register_read (selected_frame, i, raw_regs + REGISTER_BYTE (i));
+    frame_register_read (deprecated_selected_frame, i, raw_regs + REGISTER_BYTE (i));
 
   if (regnum == -1)
     pa_print_registers (raw_regs, regnum, fpregs);
@@ -2554,7 +2556,7 @@ pa_do_strcat_registers_info (int regnum, int fpregs, struct ui_file *stream,
   /* Make a copy of gdb's save area (may cause actual
      reads from the target). */
   for (i = 0; i < NUM_REGS; i++)
-    frame_register_read (selected_frame, i, raw_regs + REGISTER_BYTE (i));
+    frame_register_read (deprecated_selected_frame, i, raw_regs + REGISTER_BYTE (i));
 
   if (regnum == -1)
     pa_strcat_registers (raw_regs, regnum, fpregs, stream);
@@ -2806,7 +2808,7 @@ pa_print_fp_reg (int i)
   char virtual_buffer[MAX_REGISTER_VIRTUAL_SIZE];
 
   /* Get 32bits of data.  */
-  frame_register_read (selected_frame, i, raw_buffer);
+  frame_register_read (deprecated_selected_frame, i, raw_buffer);
 
   /* Put it in the buffer.  No conversions are ever necessary.  */
   memcpy (virtual_buffer, raw_buffer, REGISTER_RAW_SIZE (i));
@@ -2824,7 +2826,7 @@ pa_print_fp_reg (int i)
   if ((i % 2) == 0)
     {
       /* Get the data in raw format for the 2nd half.  */
-      frame_register_read (selected_frame, i + 1, raw_buffer);
+      frame_register_read (deprecated_selected_frame, i + 1, raw_buffer);
 
       /* Copy it into the appropriate part of the virtual buffer.  */
       memcpy (virtual_buffer + REGISTER_RAW_SIZE (i), raw_buffer,
@@ -2852,7 +2854,7 @@ pa_strcat_fp_reg (int i, struct ui_file *stream, enum precision_type precision)
   print_spaces_filtered (8 - strlen (REGISTER_NAME (i)), stream);
 
   /* Get 32bits of data.  */
-  frame_register_read (selected_frame, i, raw_buffer);
+  frame_register_read (deprecated_selected_frame, i, raw_buffer);
 
   /* Put it in the buffer.  No conversions are ever necessary.  */
   memcpy (virtual_buffer, raw_buffer, REGISTER_RAW_SIZE (i));
@@ -2863,7 +2865,7 @@ pa_strcat_fp_reg (int i, struct ui_file *stream, enum precision_type precision)
       char raw_buf[MAX_REGISTER_RAW_SIZE];
 
       /* Get the data in raw format for the 2nd half.  */
-      frame_register_read (selected_frame, i + 1, raw_buf);
+      frame_register_read (deprecated_selected_frame, i + 1, raw_buf);
 
       /* Copy it into the appropriate part of the virtual buffer.  */
       memcpy (virtual_buffer + REGISTER_RAW_SIZE (i), raw_buf, REGISTER_RAW_SIZE (i));
@@ -3887,7 +3889,7 @@ hppa_frame_find_saved_regs (struct frame_info *frame_info,
 
 #ifdef FRAME_FIND_SAVED_REGS_IN_SIGTRAMP
   /* Handle signal handler callers.  */
-  if (frame_info->signal_handler_caller)
+  if ((get_frame_type (frame_info) == SIGTRAMP_FRAME))
     {
       FRAME_FIND_SAVED_REGS_IN_SIGTRAMP (frame_info, frame_saved_regs);
       return;
@@ -4892,6 +4894,20 @@ static struct gdbarch *
 hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 {
   struct gdbarch *gdbarch;
+  enum gdb_osabi osabi = GDB_OSABI_UNKNOWN;
+  
+  /* Try to determine the ABI of the object we are loading.  */
+
+  if (info.abfd != NULL)
+    {
+      osabi = gdbarch_lookup_osabi (info.abfd);
+      if (osabi == GDB_OSABI_UNKNOWN)
+       {
+         /* If it's a SOM file, assume it's HP/UX SOM.  */
+         if (bfd_get_flavour (info.abfd) == bfd_target_som_flavour)
+           osabi = GDB_OSABI_HPUX_SOM;
+       }
+    }
 
   /* find a candidate among the list of pre-declared architectures.  */
   arches = gdbarch_list_lookup_by_info (arches, &info);
@@ -4901,6 +4917,9 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   /* If none found, then allocate and initialize one.  */
   gdbarch = gdbarch_alloc (&info, NULL);
 
+  /* Hook in ABI-specific overrides, if they have been registered.  */
+  gdbarch_init_osabi (info, gdbarch, osabi);
+
   return gdbarch;
 }
 
index f10eb5a2bae95fbb7d26d654bca2aca6da9a3f6c..84d1f3fa5e4b7aa73920faffcdc8ad067edf0605 100644 (file)
 
 extern CORE_ADDR text_end;
 
+extern int hpux_has_forked (int pid, int *childpid);
+extern int hpux_has_vforked (int pid, int *childpid);
+extern int hpux_has_execd (int pid, char **execd_pathname);
+extern int hpux_has_syscall_event (int pid, enum target_waitkind *kind,
+                                  int *syscall_id);
+
 static void fetch_register (int);
 
 void
@@ -378,60 +384,131 @@ child_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
   return len;
 }
 
+char *saved_child_execd_pathname = NULL;
+int saved_vfork_pid;
+enum {
+  STATE_NONE,
+  STATE_GOT_CHILD,
+  STATE_GOT_EXEC,
+  STATE_GOT_PARENT,
+  STATE_FAKE_EXEC
+} saved_vfork_state = STATE_NONE;
 
-void
-child_post_follow_inferior_by_clone (void)
+int
+child_follow_fork (int follow_child)
 {
-  int status;
+  ptid_t last_ptid;
+  struct target_waitstatus last_status;
+  int has_vforked;
+  int parent_pid, child_pid;
+
+  get_last_target_status (&last_ptid, &last_status);
+  has_vforked = (last_status.kind == TARGET_WAITKIND_VFORKED);
+  parent_pid = ptid_get_pid (last_ptid);
+  child_pid = last_status.value.related_pid;
+
+  /* At this point, if we are vforking, breakpoints were already
+     detached from the child in child_wait; and the child has already
+     called execve().  If we are forking, both the parent and child
+     have breakpoints inserted.  */
+
+  if (! follow_child)
+    {
+      if (! has_vforked)
+       {
+         detach_breakpoints (child_pid);
+#ifdef SOLIB_REMOVE_INFERIOR_HOOK
+         SOLIB_REMOVE_INFERIOR_HOOK (child_pid);
+#endif
+       }
 
-  /* This function is used when following both the parent and child
-     of a fork.  In this case, the debugger clones itself.  The original
-     debugger follows the parent, the clone follows the child.  The
-     original detaches from the child, delivering a SIGSTOP to it to
-     keep it from running away until the clone can attach itself.
+      /* Detach from the child. */
+      printf_unfiltered ("Detaching after fork from %s\n",
+                        target_pid_to_str (pid_to_ptid (child_pid)));
+      hppa_require_detach (child_pid, 0);
+
+      /* The parent and child of a vfork share the same address space.
+        Also, on some targets the order in which vfork and exec events
+        are received for parent in child requires some delicate handling
+        of the events.
+
+        For instance, on ptrace-based HPUX we receive the child's vfork
+        event first, at which time the parent has been suspended by the
+        OS and is essentially untouchable until the child's exit or second
+        exec event arrives.  At that time, the parent's vfork event is
+        delivered to us, and that's when we see and decide how to follow
+        the vfork.  But to get to that point, we must continue the child
+        until it execs or exits.  To do that smoothly, all breakpoints
+        must be removed from the child, in case there are any set between
+        the vfork() and exec() calls.  But removing them from the child
+        also removes them from the parent, due to the shared-address-space
+        nature of a vfork'd parent and child.  On HPUX, therefore, we must
+        take care to restore the bp's to the parent before we continue it.
+        Else, it's likely that we may not stop in the expected place.  (The
+        worst scenario is when the user tries to step over a vfork() call;
+        the step-resume bp must be restored for the step to properly stop
+        in the parent after the call completes!)
+
+        Sequence of events, as reported to gdb from HPUX:
+
+        Parent        Child           Action for gdb to take
+        -------------------------------------------------------
+        1                VFORK               Continue child
+        2                EXEC
+        3                EXEC or EXIT
+        4  VFORK
+
+        Now that the child has safely exec'd or exited, we must restore
+        the parent's breakpoints before we continue it.  Else, we may
+        cause it run past expected stopping points.  */
+
+      if (has_vforked)
+       reattach_breakpoints (parent_pid);
+    }
+  else
+    {
+      /* Needed to keep the breakpoint lists in sync.  */
+      if (! has_vforked)
+       detach_breakpoints (child_pid);
 
-     At this point, the clone has attached to the child.  Because of
-     the SIGSTOP, we must now deliver a SIGCONT to the child, or it
-     won't behave properly. */
-  status = kill (PIDGET (inferior_ptid), SIGCONT);
-}
+      /* Before detaching from the parent, remove all breakpoints from it. */
+      remove_breakpoints ();
 
+      /* Also reset the solib inferior hook from the parent. */
+#ifdef SOLIB_REMOVE_INFERIOR_HOOK
+      SOLIB_REMOVE_INFERIOR_HOOK (PIDGET (inferior_ptid));
+#endif
 
-void
-child_post_follow_vfork (int parent_pid, int followed_parent, int child_pid,
-                        int followed_child)
-{
-  /* Are we a debugger that followed the parent of a vfork?  If so,
-     then recall that the child's vfork event was delivered to us
-     first.  And, that the parent was suspended by the OS until the
-     child's exec or exit events were received.
-
-     Upon receiving that child vfork, then, we were forced to remove
-     all breakpoints in the child and continue it so that it could
-     reach the exec or exit point.
-
-     But also recall that the parent and child of a vfork share the
-     same address space.  Thus, removing bp's in the child also
-     removed them from the parent.
-
-     Now that the child has safely exec'd or exited, we must restore
-     the parent's breakpoints before we continue it.  Else, we may
-     cause it run past expected stopping points. */
-  if (followed_parent)
-    {
-      reattach_breakpoints (parent_pid);
+      /* Detach from the parent. */
+      target_detach (NULL, 1);
+
+      /* Attach to the child. */
+      printf_unfiltered ("Attaching after fork to %s\n",
+                        target_pid_to_str (pid_to_ptid (child_pid)));
+      hppa_require_attach (child_pid);
+      inferior_ptid = pid_to_ptid (child_pid);
+
+      /* If we vforked, then we've also execed by now.  The exec will be
+        reported momentarily.  follow_exec () will handle breakpoints, so
+        we don't have to..  */
+      if (!has_vforked)
+       follow_inferior_reset_breakpoints ();
     }
 
-  /* Are we a debugger that followed the child of a vfork?  If so,
-     then recall that we don't actually acquire control of the child
-     until after it has exec'd or exited.  */
-  if (followed_child)
+  if (has_vforked)
     {
-      /* If the child has exited, then there's nothing for us to do.
-         In the case of an exec event, we'll let that be handled by
-         the normal mechanism that notices and handles exec events, in
-         resume(). */
+      /* If we followed the parent, don't try to follow the child's exec.  */
+      if (saved_vfork_state != STATE_GOT_PARENT
+         && saved_vfork_state != STATE_FAKE_EXEC)
+       fprintf_unfiltered (gdb_stdout,
+                           "hppa: post follow vfork: confused state\n");
+
+      if (! follow_child || saved_vfork_state == STATE_GOT_PARENT)
+       saved_vfork_state = STATE_NONE;
+      else
+       return 1;
     }
+  return 0;
 }
 
 /* Format a process id, given PID.  Be sure to terminate
@@ -469,6 +546,221 @@ hppa_tid_to_str (ptid_t ptid)
   return buf;
 }
 
+/*## */
+/* Enable HACK for ttrace work.  In
+ * infttrace.c/require_notification_of_events,
+ * this is set to 0 so that the loop in child_wait
+ * won't loop.
+ */
+int not_same_real_pid = 1;
+/*## */
+
+/* Wait for child to do something.  Return pid of child, or -1 in case
+   of error; store status through argument pointer OURSTATUS.  */
+
+ptid_t
+child_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
+{
+  int save_errno;
+  int status;
+  char *execd_pathname = NULL;
+  int exit_status;
+  int related_pid;
+  int syscall_id;
+  enum target_waitkind kind;
+  int pid;
+
+  if (saved_vfork_state == STATE_FAKE_EXEC)
+    {
+      saved_vfork_state = STATE_NONE;
+      ourstatus->kind = TARGET_WAITKIND_EXECD;
+      ourstatus->value.execd_pathname = saved_child_execd_pathname;
+      return inferior_ptid;
+    }
+
+  do
+    {
+      set_sigint_trap ();      /* Causes SIGINT to be passed on to the
+                                  attached process. */
+      set_sigio_trap ();
+
+      pid = ptrace_wait (inferior_ptid, &status);
+
+      save_errno = errno;
+
+      clear_sigio_trap ();
+
+      clear_sigint_trap ();
+
+      if (pid == -1)
+       {
+         if (save_errno == EINTR)
+           continue;
+
+         fprintf_unfiltered (gdb_stderr, "Child process unexpectedly missing: %s.\n",
+                             safe_strerror (save_errno));
+
+         /* Claim it exited with unknown signal.  */
+         ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
+         ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN;
+         return pid_to_ptid (-1);
+       }
+
+      /* Did it exit?
+       */
+      if (target_has_exited (pid, status, &exit_status))
+       {
+         /* ??rehrauer: For now, ignore this. */
+         continue;
+       }
+
+      if (!target_thread_alive (pid_to_ptid (pid)))
+       {
+         ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
+         return pid_to_ptid (pid);
+       }
+
+      if (hpux_has_forked (pid, &related_pid))
+       {
+         /* Ignore the parent's fork event.  */
+         if (pid == PIDGET (inferior_ptid))
+           {
+             ourstatus->kind = TARGET_WAITKIND_IGNORE;
+             return inferior_ptid;
+           }
+
+         /* If this is the child's fork event, report that the
+            process has forked.  */
+         if (related_pid == PIDGET (inferior_ptid))
+           {
+             ourstatus->kind = TARGET_WAITKIND_FORKED;
+             ourstatus->value.related_pid = pid;
+             return inferior_ptid;
+           }
+       }
+
+      if (hpux_has_vforked (pid, &related_pid))
+       {
+         if (pid == PIDGET (inferior_ptid))
+           {
+             if (saved_vfork_state == STATE_GOT_CHILD)
+               saved_vfork_state = STATE_GOT_PARENT;
+             else if (saved_vfork_state == STATE_GOT_EXEC)
+               saved_vfork_state = STATE_FAKE_EXEC;
+             else
+               fprintf_unfiltered (gdb_stdout,
+                                   "hppah: parent vfork: confused\n");
+           }
+         else if (related_pid == PIDGET (inferior_ptid))
+           {
+             if (saved_vfork_state == STATE_NONE)
+               saved_vfork_state = STATE_GOT_CHILD;
+             else
+               fprintf_unfiltered (gdb_stdout,
+                                   "hppah: child vfork: confused\n");
+           }
+         else
+           fprintf_unfiltered (gdb_stdout,
+                               "hppah: unknown vfork: confused\n");
+
+         if (saved_vfork_state == STATE_GOT_CHILD)
+           {
+             child_post_startup_inferior (pid_to_ptid (pid));
+             detach_breakpoints (pid);
+#ifdef SOLIB_REMOVE_INFERIOR_HOOK
+             SOLIB_REMOVE_INFERIOR_HOOK (pid);
+#endif
+             child_resume (pid_to_ptid (pid), 0, TARGET_SIGNAL_0);
+             ourstatus->kind = TARGET_WAITKIND_IGNORE;
+             return pid_to_ptid (related_pid);
+           }
+         else if (saved_vfork_state == STATE_FAKE_EXEC)
+           {
+             ourstatus->kind = TARGET_WAITKIND_VFORKED;
+             ourstatus->value.related_pid = related_pid;
+             return pid_to_ptid (pid);
+           }
+         else
+           {
+             /* We saw the parent's vfork, but we haven't seen the exec yet.
+                Wait for it, for simplicity's sake.  It should be pending.  */
+             saved_vfork_pid = related_pid;
+             ourstatus->kind = TARGET_WAITKIND_IGNORE;
+             return pid_to_ptid (pid);
+           }
+       }
+
+      if (hpux_has_execd (pid, &execd_pathname))
+       {
+         /* On HP-UX, events associated with a vforking inferior come in
+            threes: a vfork event for the child (always first), followed
+            a vfork event for the parent and an exec event for the child.
+            The latter two can come in either order.  Make sure we get
+            both.  */
+         if (saved_vfork_state != STATE_NONE)
+           {
+             if (saved_vfork_state == STATE_GOT_CHILD)
+               {
+                 saved_vfork_state = STATE_GOT_EXEC;
+                 /* On HP/UX with ptrace, the child must be resumed before
+                    the parent vfork event is delivered.  A single-step
+                    suffices.  */
+                 if (RESUME_EXECD_VFORKING_CHILD_TO_GET_PARENT_VFORK ())
+                   target_resume (pid_to_ptid (pid), 1, TARGET_SIGNAL_0);
+                 ourstatus->kind = TARGET_WAITKIND_IGNORE;
+               }
+             else if (saved_vfork_state == STATE_GOT_PARENT)
+               {
+                 saved_vfork_state = STATE_FAKE_EXEC;
+                 ourstatus->kind = TARGET_WAITKIND_VFORKED;
+                 ourstatus->value.related_pid = saved_vfork_pid;
+               }
+             else
+               fprintf_unfiltered (gdb_stdout,
+                                   "hppa: exec: unexpected state\n");
+
+             saved_child_execd_pathname = execd_pathname;
+
+             return inferior_ptid;
+           }
+         
+         /* Are we ignoring initial exec events?  (This is likely because
+            we're in the process of starting up the inferior, and another
+            (older) mechanism handles those.)  If so, we'll report this
+            as a regular stop, not an exec.
+          */
+         if (inferior_ignoring_startup_exec_events)
+           {
+             inferior_ignoring_startup_exec_events--;
+           }
+         else
+           {
+             ourstatus->kind = TARGET_WAITKIND_EXECD;
+             ourstatus->value.execd_pathname = execd_pathname;
+             return pid_to_ptid (pid);
+           }
+       }
+
+      /* All we must do with these is communicate their occurrence
+         to wait_for_inferior...
+       */
+      if (hpux_has_syscall_event (pid, &kind, &syscall_id))
+       {
+         ourstatus->kind = kind;
+         ourstatus->value.syscall_id = syscall_id;
+         return pid_to_ptid (pid);
+       }
+
+      /*##  } while (pid != PIDGET (inferior_ptid)); ## *//* Some other child died or stopped */
+/* hack for thread testing */
+    }
+  while ((pid != PIDGET (inferior_ptid)) && not_same_real_pid);
+/*## */
+
+  store_waitstatus (ourstatus, status);
+  return pid_to_ptid (pid);
+}
+
 #if !defined (GDB_NATIVE_HPUX_11)
 
 /* The following code is a substitute for the infttrace.c versions used
@@ -890,7 +1182,7 @@ child_remove_vfork_catchpoint (int pid)
 }
 
 int
-child_has_forked (int pid, int *childpid)
+hpux_has_forked (int pid, int *childpid)
 {
   /* This request is only available on HPUX 10.0 and later.  */
 #if !defined(PT_GET_PROCESS_STATE)
@@ -921,7 +1213,7 @@ child_has_forked (int pid, int *childpid)
 }
 
 int
-child_has_vforked (int pid, int *childpid)
+hpux_has_vforked (int pid, int *childpid)
 {
   /* This request is only available on HPUX 10.0 and later.  */
 #if !defined(PT_GET_PROCESS_STATE)
@@ -952,13 +1244,6 @@ child_has_vforked (int pid, int *childpid)
 #endif
 }
 
-int
-child_can_follow_vfork_prior_to_exec (void)
-{
-  /* ptrace doesn't allow this. */
-  return 0;
-}
-
 int
 child_insert_exec_catchpoint (int pid)
 {
@@ -990,7 +1275,7 @@ child_remove_exec_catchpoint (int pid)
 }
 
 int
-child_has_execd (int pid, char **execd_pathname)
+hpux_has_execd (int pid, char **execd_pathname)
 {
   /* This request is only available on HPUX 10.0 and later.  */
 #if !defined(PT_GET_PROCESS_STATE)
@@ -1029,7 +1314,7 @@ child_reported_exec_events_per_exec_call (void)
 }
 
 int
-child_has_syscall_event (int pid, enum target_waitkind *kind, int *syscall_id)
+hpux_has_syscall_event (int pid, enum target_waitkind *kind, int *syscall_id)
 {
   /* This request is only available on HPUX 10.30 and later, via
      the ttrace interface.  */
index 4c3bed98639ae6fdb5457baffab7ec1fb217700c..602a97ddbfbdb25932fec7fb538e11c3c054f0ea 100644 (file)
@@ -98,7 +98,8 @@ struct hpread_symfile_info
     *NAMEP = ""; \
   else if (((unsigned)(SYM)->dsfile.name) >= VT_SIZE (OBJFILE)) \
     { \
-      complain (&string_table_offset_complaint, (char *) symnum); \
+      complaint (&symfile_complaints, "bad string table offset in symbol %d", \
+                (char *) symnum); \
       *NAMEP = ""; \
     } \
   else \
@@ -127,57 +128,20 @@ struct symloc
 #define LDSYMLEN(p) (((struct symloc *)((p)->read_symtab_private))->ldsymlen)
 #define SYMLOC(p) ((struct symloc *)((p)->read_symtab_private))
 \f
-/* FIXME: Shouldn't this stuff be in a .h file somewhere?  */
 /* Complaints about the symbols we have encountered.  */
-extern struct deprecated_complaint string_table_offset_complaint;
-extern struct deprecated_complaint lbrac_unmatched_complaint;
-extern struct deprecated_complaint lbrac_mismatch_complaint;
-\f
-static struct deprecated_complaint hpread_unhandled_end_common_complaint =
-{
-  "unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON/DNTT_TYPE_END.\n", 0, 0
-};
-
-static struct deprecated_complaint hpread_unhandled_type_complaint =
-{
-  "hpread_type_translate: unhandled type code.", 0, 0
-};
-
-static struct deprecated_complaint hpread_struct_complaint =
-{
-  "hpread_read_struct_type: expected SVAR type...", 0, 0
-};
-
-static struct deprecated_complaint hpread_array_complaint =
-{
-  "error in hpread_array_type.", 0, 0
-};
-
-static struct deprecated_complaint hpread_type_lookup_complaint =
-{
-  "error in hpread_type_lookup().", 0, 0
-};
-
-
-static struct deprecated_complaint hpread_unexpected_end_complaint =
-{
-  "internal error in hp-symtab-read.c: Unexpected DNTT_TYPE_END kind.", 0, 0
-};
-
-static struct deprecated_complaint hpread_tagdef_complaint =
-{
-  "error processing class tagdef", 0, 0
-};
-
-static struct deprecated_complaint hpread_unhandled_common_complaint =
+static void
+lbrac_unmatched_complaint (int arg1)
 {
-  "unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON.", 0, 0
-};
+  complaint (&symfile_complaints, "unmatched N_LBRAC before symtab pos %d",
+            arg1);
+}
 
-static struct deprecated_complaint hpread_unhandled_blockdata_complaint =
+static void
+lbrac_mismatch_complaint (int arg1)
 {
-  "unhandled symbol in hp-symtab-read.c: DNTT_TYPE_BLOCKDATA.", 0, 0
-};
+  complaint (&symfile_complaints,
+            "N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d", arg1);
+}
 
 /* To generate dumping code, uncomment this define.  The dumping
    itself is controlled by routine-local statics called "dumping". */
@@ -220,6 +184,8 @@ static unsigned long hpread_get_line (sltpointer, struct objfile *);
 
 static CORE_ADDR hpread_get_location (sltpointer, struct objfile *);
 
+int hpread_has_name (enum dntt_entry_type kind);
+
 static void hpread_psymtab_to_symtab_1 (struct partial_symtab *);
 
 void hpread_psymtab_to_symtab (struct partial_symtab *);
@@ -596,11 +562,11 @@ pst_syms_struct;
 
 static pst_syms_struct *pst_syms_array = 0;
 
-static pst_syms_count = 0;
-static pst_syms_size = 0;
+static int pst_syms_count = 0;
+static int pst_syms_size = 0;
 
 /* used by the TELL_OBJFILE macro */
-static boolean told_objfile = 0;
+static int told_objfile = 0;
 
 /* Set up psymtab symbol index stuff */
 static void
@@ -4772,7 +4738,7 @@ hpread_type_lookup (dnttpointer hp_type, struct objfile *objfile)
          dn_bufp = hpread_get_lntt (dn_bufp->dtype.type.dnttp.index, objfile);
        else
          {
-           complain (&hpread_type_lookup_complaint);
+           complaint (&symfile_complaints, "error in hpread_type_lookup().");
            return NULL;
          }
 
@@ -5266,7 +5232,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
 
       /* Stack must be empty now.  */
       if (context_stack_depth != 0)
-       complain (&lbrac_unmatched_complaint, (char *) symnum);
+       lbrac_unmatched_complaint ((char *) symnum);
       new = push_context (0, valu);
 
       /* Built a type for the function. This includes processing
@@ -5384,7 +5350,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
       CURRENT_FUNCTION_VALUE (objfile) = valu;
       /* Stack must be empty now.  */
       if (context_stack_depth != 0)
-       complain (&lbrac_unmatched_complaint, (char *) symnum);
+       lbrac_unmatched_complaint ((char *) symnum);
       new = push_context (0, valu);
 
       /* Built a type for the function. This includes processing
@@ -5612,7 +5578,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
              new = pop_context ();
              desc = dn_bufp->dend.beginscope.dnttp.index;
              if (desc != new->depth)
-               complain (&lbrac_mismatch_complaint, (char *) symnum);
+               lbrac_mismatch_complaint ((char *) symnum);
 
              /* Make a block for the local symbols within.  */
              finish_block (new->name, &local_symbols, new->old_blocks,
@@ -5630,7 +5596,8 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
 
        case DNTT_TYPE_COMMON:
          /* End a FORTRAN common block. We don't currently handle these */
-         complain (&hpread_unhandled_end_common_complaint);
+         complaint (&symfile_complaints,
+                    "unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON/DNTT_TYPE_END.\n");
          break;
 
        case DNTT_TYPE_CLASS_SCOPE:
@@ -5647,7 +5614,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
          new = pop_context ();
          desc = dn_bufp->dend.beginscope.dnttp.index;
          if (desc != new->depth)
-           complain (&lbrac_mismatch_complaint, (char *) symnum);
+           lbrac_mismatch_complaint ((char *) symnum);
          /* Make a block for the local symbols within.  */
          finish_block (new->name, &local_symbols, new->old_blocks,
                        new->start_addr, valu, objfile);
@@ -5657,7 +5624,8 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
          break;
 
        default:
-         complain (&hpread_unexpected_end_complaint);
+         complaint (&symfile_complaints,
+                    "internal error in hp-symtab-read.c: Unexpected DNTT_TYPE_END kind.");
          break;
        }
       break;
@@ -5879,7 +5847,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
          dn_bufp = hpread_get_lntt (dn_bufp->dtag.type.dnttp.index, objfile);
        else
          {
-           complain (&hpread_tagdef_complaint);
+           complaint (&symfile_complaints, "error processing class tagdef");
            return;
          }
        if (dn_bufp->dblock.kind == DNTT_TYPE_CLASS ||
@@ -5987,7 +5955,8 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
 
     case DNTT_TYPE_COMMON:
       /* FORTRAN common. Not yet handled. */
-      complain (&hpread_unhandled_common_complaint);
+      complaint (&symfile_complaints,
+                "unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON.");
       break;
 
       /* DNTT_TYPE_COBSTRUCT is not handled by GDB.  */
@@ -5999,7 +5968,8 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
       /* Not sure what this is - part of FORTRAN support maybe? 
        * Anyway, not yet handled.
        */
-      complain (&hpread_unhandled_blockdata_complaint);
+      complaint (&symfile_complaints,
+                "unhandled symbol in hp-symtab-read.c: DNTT_TYPE_BLOCKDATA.");
       break;
 
     case DNTT_TYPE_CLASS_SCOPE:
index ff310ecad35a3c3ff3d0cc858d8b232dbfbac59b..f8252e21e6696cb169ec506a0c177ee72d2e95ae 100644 (file)
@@ -117,12 +117,6 @@ i386_interix_skip_trampoline_code (CORE_ADDR pc)
   return i386_pe_skip_trampoline_code (pc, 0);
 }
 
-static void
-i386_interix_init_frame_pc (int fromleaf, struct frame_info *prev)
-{
-  /* Nothing to do on Interix.  */
-}
-
 static int
 i386_interix_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
 {
@@ -131,16 +125,16 @@ i386_interix_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
      be a signal handler caller).  If we're dealing with a signal
      handler caller, this will return valid, which is fine.  If not,
      it'll make the correct test.  */
-  return (thisframe->signal_handler_caller
+  return ((get_frame_type (thisframe) == SIGTRAMP_FRAME)
           || (chain != 0
               && !inside_entry_file (read_memory_integer
                                      (thisframe->frame + 4, 4))));
 }
 
-/* We want to find the previous frame, which on Interix is tricky when signals
-   are involved; set frame->frame appropriately, and also get the pc
-   and tweak signal_handler_caller; this replaces a boatload of nested
-   macros, as well.  */
+/* We want to find the previous frame, which on Interix is tricky when
+   signals are involved; set frame->frame appropriately, and also get
+   the pc and tweak tye frame's type; this replaces a boatload of
+   nested macros, as well.  */
 static void
 i386_interix_back_one_frame (int fromleaf, struct frame_info *frame)
 {
@@ -169,7 +163,7 @@ i386_interix_back_one_frame (int fromleaf, struct frame_info *frame)
              NullApi or something else?  */
           ra = SAVED_PC_AFTER_CALL (frame);
           if (ra >= null_start && ra < null_end)
-            frame->signal_handler_caller = 1;
+           deprecated_set_frame_type (frame, SIGTRAMP_FRAME);
           /* There might also be an indirect call to the mini-frame,
              putting one more return address on the stack.  (XP only,
              I think?)  This can't (reasonably) return the address of the 
@@ -177,12 +171,12 @@ i386_interix_back_one_frame (int fromleaf, struct frame_info *frame)
              is safe.  */
           ra = read_memory_unsigned_integer (read_register (SP_REGNUM) + 4, 4);
           if (ra >= null_start && ra < null_end)
-            frame->signal_handler_caller = 1;
+           deprecated_set_frame_type (frame, SIGTRAMP_FRAME);
         }
       return;
     }
 
-  if (!frame->next->signal_handler_caller)
+  if (!(get_frame_type (frame->next) == SIGTRAMP_FRAME))
     {
       frame->pc = read_memory_integer (frame->next->frame + 4, 4);
       return;
@@ -316,7 +310,7 @@ i386_interix_frame_saved_pc (struct frame_info *fi)
   /* Assume that we've already unwound enough to have the caller's address
      if we're dealing with a signal handler caller (And if that fails,
      return 0).  */
-  if (fi->signal_handler_caller)
+  if ((get_frame_type (fi) == SIGTRAMP_FRAME))
     return fi->next ? fi->next->pc : 0;
   else
     return read_memory_integer (fi->frame + 4, 4);
@@ -337,7 +331,7 @@ i386_interix_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_skip_trampoline_code (gdbarch,
                                     i386_interix_skip_trampoline_code);
   set_gdbarch_init_extra_frame_info (gdbarch, i386_interix_back_one_frame);
-  set_gdbarch_init_frame_pc (gdbarch, i386_interix_init_frame_pc);
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop);
   set_gdbarch_frame_chain_valid (gdbarch, i386_interix_frame_chain_valid);
   set_gdbarch_frame_saved_pc (gdbarch, i386_interix_frame_saved_pc);
   set_gdbarch_name_of_malloc (gdbarch, "_malloc");
@@ -360,6 +354,6 @@ _initialize_i386_interix_tdep (void)
   gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_coff_flavour,
                                   i386_interix_osabi_sniffer);
 
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_INTERIX,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_INTERIX,
                           i386_interix_init_abi);
 }
index f35c4ff9f874f02ecb18248fe9aac9692819451f..1ef14fcb90037f7a8ac371b8573bf893a45d5da2 100644 (file)
@@ -482,6 +482,6 @@ extern void _initialize_i386_linux_tdep (void);
 void
 _initialize_i386_linux_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_LINUX,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_LINUX,
                          i386_linux_init_abi);
 }
index c72a7ed1df8aa8c207a17b9aa8e683e6bd70c1bc..792923cd44e579a542a9e0c41fd47c243171d2ad 100644 (file)
@@ -75,6 +75,6 @@ _initialize_i386_sol2_tdep (void)
   gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_elf_flavour,
                                  i386_sol2_osabi_sniffer);
 
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_SOLARIS,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_SOLARIS,
                          i386_sol2_init_abi);
 }
index d658e3ab26b04992f1044d4f5ee65b75faa85d8b..9d508795e8b9c051f2f650dee5d12009c41c2202 100644 (file)
@@ -38,6 +38,7 @@
 #include "value.h"
 #include "gdb_assert.h"
 #include "reggroups.h"
+#include "dummy-frame.h"
 
 #include "i386-tdep.h"
 #include "i387-tdep.h"
@@ -472,17 +473,16 @@ i386_get_frame_setup (CORE_ADDR pc)
    frame -- that is, the frame which was in progress when the signal
    trampoline was entered.  GDB mostly treats this frame pointer value
    as a magic cookie.  We detect the case of a signal trampoline by
-   looking at the SIGNAL_HANDLER_CALLER field, which is set based on
-   PC_IN_SIGTRAMP.
+   testing for get_frame_type() == SIGTRAMP_FRAME, which is set based
+   on PC_IN_SIGTRAMP.
 
    When a signal trampoline is invoked from a frameless function, we
    essentially have two frameless functions in a row.  In this case,
    we use the same magic cookie for three frames in a row.  We detect
-   this case by seeing whether the next frame has
-   SIGNAL_HANDLER_CALLER set, and, if it does, checking whether the
-   current frame is actually frameless.  In this case, we need to get
-   the PC by looking at the SP register value stored in the signal
-   context.
+   this case by seeing whether the next frame is a SIGTRAMP_FRAME,
+   and, if it does, checking whether the current frame is actually
+   frameless.  In this case, we need to get the PC by looking at the
+   SP register value stored in the signal context.
 
    This should work in most cases except in horrible situations where
    a signal occurs just as we enter a function but before the frame
@@ -498,7 +498,7 @@ i386_get_frame_setup (CORE_ADDR pc)
 int
 i386_frameless_signal_p (struct frame_info *frame)
 {
-  return (frame->next && frame->next->signal_handler_caller
+  return (frame->next && get_frame_type (frame->next) == SIGTRAMP_FRAME
          && (frameless_look_for_prologue (frame)
              || frame->pc == get_pc_function_start (frame->pc)));
 }
@@ -510,10 +510,10 @@ i386_frameless_signal_p (struct frame_info *frame)
 static CORE_ADDR
 i386_frame_chain (struct frame_info *frame)
 {
-  if (PC_IN_CALL_DUMMY (frame->pc, 0, 0))
+  if (pc_in_dummy_frame (frame->pc))
     return frame->frame;
 
-  if (frame->signal_handler_caller
+  if (get_frame_type (frame) == SIGTRAMP_FRAME
       || i386_frameless_signal_p (frame))
     return frame->frame;
 
@@ -530,7 +530,7 @@ i386_frame_chain (struct frame_info *frame)
 static int
 i386_frameless_function_invocation (struct frame_info *frame)
 {
-  if (frame->signal_handler_caller)
+  if (get_frame_type (frame) == SIGTRAMP_FRAME)
     return 0;
 
   return frameless_look_for_prologue (frame);
@@ -567,7 +567,7 @@ i386_sigtramp_saved_sp (struct frame_info *frame)
 static CORE_ADDR
 i386_frame_saved_pc (struct frame_info *frame)
 {
-  if (PC_IN_CALL_DUMMY (frame->pc, 0, 0))
+  if (pc_in_dummy_frame (frame->pc))
     {
       ULONGEST pc;
 
@@ -575,7 +575,7 @@ i386_frame_saved_pc (struct frame_info *frame)
       return pc;
     }
 
-  if (frame->signal_handler_caller)
+  if (get_frame_type (frame) == SIGTRAMP_FRAME)
     return i386_sigtramp_saved_pc (frame);
 
   if (i386_frameless_signal_p (frame))
@@ -592,7 +592,7 @@ i386_frame_saved_pc (struct frame_info *frame)
 static CORE_ADDR
 i386_saved_pc_after_call (struct frame_info *frame)
 {
-  if (frame->signal_handler_caller)
+  if (get_frame_type (frame) == SIGTRAMP_FRAME)
     return i386_sigtramp_saved_pc (frame);
 
   return read_memory_unsigned_integer (read_register (SP_REGNUM), 4);
@@ -861,7 +861,7 @@ i386_do_pop_frame (struct frame_info *frame)
   int regnum;
   char regbuf[I386_MAX_REGISTER_SIZE];
 
-  fp = FRAME_FP (frame);
+  fp = get_frame_base (frame);
   i386_frame_init_saved_regs (frame);
 
   for (regnum = 0; regnum < NUM_REGS; regnum++)
@@ -1520,6 +1520,10 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   tdep = XMALLOC (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   tdep->osabi = osabi;
 
   /* The i386 default settings don't include the SSE registers.
@@ -1578,10 +1582,7 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   set_gdbarch_get_longjmp_target (gdbarch, i386_get_longjmp_target);
 
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
-
   /* Call dummy code.  */
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
@@ -1598,10 +1599,6 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
                                           i386_register_convert_to_virtual);
   set_gdbarch_register_convert_to_raw (gdbarch, i386_register_convert_to_raw);
 
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
-
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
-
   /* "An argument's size is increased, if necessary, to make it a
      multiple of [32-bit] words.  This may require tail padding,
      depending on the size of the argument" -- from the x86 ABI.  */
@@ -1639,8 +1636,6 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frame_chain (gdbarch, i386_frame_chain);
   set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
   set_gdbarch_frame_saved_pc (gdbarch, i386_frame_saved_pc);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
   set_gdbarch_saved_pc_after_call (gdbarch, i386_saved_pc_after_call);
   set_gdbarch_frame_num_args (gdbarch, i386_frame_num_args);
   set_gdbarch_pc_in_sigtramp (gdbarch, i386_pc_in_sigtramp);
@@ -1720,11 +1715,11 @@ are \"default\", \"pcc\" and \"reg\", and the default value is \"default\".",
   gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_nlm_flavour,
                                  i386_nlm_osabi_sniffer);
 
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_SVR4,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_SVR4,
                          i386_svr4_init_abi);
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_GO32,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_GO32,
                          i386_go32_init_abi);
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_NETWARE,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_NETWARE,
                          i386_nw_init_abi);
 
   /* Initialize the i386 specific register groups.  */
diff --git a/gdb/i386aix-nat.c b/gdb/i386aix-nat.c
deleted file mode 100644 (file)
index 3cca5e4..0000000
+++ /dev/null
@@ -1,377 +0,0 @@
-// OBSOLETE /* Intel 386 native support.
-// OBSOLETE    Copyright 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
-// OBSOLETE    2000, 2001 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "language.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE #ifdef USG
-// OBSOLETE #include <sys/types.h>
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE #include <sys/param.h>
-// OBSOLETE #include <sys/dir.h>
-// OBSOLETE #include <signal.h>
-// OBSOLETE #include <sys/user.h>
-// OBSOLETE #include <sys/ioctl.h>
-// OBSOLETE #include <fcntl.h>
-// OBSOLETE 
-// OBSOLETE #include <sys/file.h>
-// OBSOLETE #include "gdb_stat.h"
-// OBSOLETE 
-// OBSOLETE #include <stddef.h>
-// OBSOLETE #include <sys/ptrace.h>
-// OBSOLETE 
-// OBSOLETE /* Does AIX define this in <errno.h>?  */
-// OBSOLETE extern int errno;
-// OBSOLETE 
-// OBSOLETE #ifdef HAVE_SYS_REG_H
-// OBSOLETE #include <sys/reg.h>
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE #include "floatformat.h"
-// OBSOLETE 
-// OBSOLETE #include "target.h"
-// OBSOLETE 
-// OBSOLETE static void fetch_core_registers (char *, unsigned, int, CORE_ADDR);
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* this table must line up with REGISTER_NAMES in tm-i386v.h */
-// OBSOLETE /* symbols like 'EAX' come from <sys/reg.h> */
-// OBSOLETE static int regmap[] =
-// OBSOLETE {
-// OBSOLETE   EAX, ECX, EDX, EBX,
-// OBSOLETE   USP, EBP, ESI, EDI,
-// OBSOLETE   EIP, EFL, CS, SS,
-// OBSOLETE   DS, ES, FS, GS,
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE /* blockend is the value of u.u_ar0, and points to the
-// OBSOLETE  * place where GS is stored
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE i386_register_u_addr (int blockend, int regnum)
-// OBSOLETE {
-// OBSOLETE #if 0
-// OBSOLETE   /* this will be needed if fp registers are reinstated */
-// OBSOLETE   /* for now, you can look at them with 'info float'
-// OBSOLETE    * sys5 wont let you change them with ptrace anyway
-// OBSOLETE    */
-// OBSOLETE   if (regnum >= FP0_REGNUM && regnum <= FP7_REGNUM)
-// OBSOLETE     {
-// OBSOLETE       int ubase, fpstate;
-// OBSOLETE       struct user u;
-// OBSOLETE       ubase = blockend + 4 * (SS + 1) - KSTKSZ;
-// OBSOLETE       fpstate = ubase + ((char *) &u.u_fpstate - (char *) &u);
-// OBSOLETE       return (fpstate + 0x1c + 10 * (regnum - FP0_REGNUM));
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE #endif
-// OBSOLETE     return (blockend + 4 * regmap[regnum]);
-// OBSOLETE 
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* The code below only work on the aix ps/2 (i386-ibm-aix) -
-// OBSOLETE  * mtranle@paris - Sat Apr 11 10:34:12 1992
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE struct env387
-// OBSOLETE {
-// OBSOLETE   unsigned short control;
-// OBSOLETE   unsigned short r0;
-// OBSOLETE   unsigned short status;
-// OBSOLETE   unsigned short r1;
-// OBSOLETE   unsigned short tag;
-// OBSOLETE   unsigned short r2;
-// OBSOLETE   unsigned long eip;
-// OBSOLETE   unsigned short code_seg;
-// OBSOLETE   unsigned short opcode;
-// OBSOLETE   unsigned long operand;
-// OBSOLETE   unsigned short operand_seg;
-// OBSOLETE   unsigned short r3;
-// OBSOLETE   unsigned char regs[8][10];
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static
-// OBSOLETE print_387_status (unsigned short status, struct env387 *ep)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE   int bothstatus;
-// OBSOLETE   int top;
-// OBSOLETE   int fpreg;
-// OBSOLETE   unsigned char *p;
-// OBSOLETE 
-// OBSOLETE   bothstatus = ((status != 0) && (ep->status != 0));
-// OBSOLETE   if (status != 0)
-// OBSOLETE     {
-// OBSOLETE       if (bothstatus)
-// OBSOLETE    printf_unfiltered ("u: ");
-// OBSOLETE       print_387_status_word (status);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (ep->status != 0)
-// OBSOLETE     {
-// OBSOLETE       if (bothstatus)
-// OBSOLETE    printf_unfiltered ("e: ");
-// OBSOLETE       print_387_status_word (ep->status);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   print_387_control_word (ep->control);
-// OBSOLETE   printf_unfiltered ("last exception: ");
-// OBSOLETE   printf_unfiltered ("opcode %s; ", local_hex_string (ep->opcode));
-// OBSOLETE   printf_unfiltered ("pc %s:", local_hex_string (ep->code_seg));
-// OBSOLETE   printf_unfiltered ("%s; ", local_hex_string (ep->eip));
-// OBSOLETE   printf_unfiltered ("operand %s", local_hex_string (ep->operand_seg));
-// OBSOLETE   printf_unfiltered (":%s\n", local_hex_string (ep->operand));
-// OBSOLETE 
-// OBSOLETE   top = ((ep->status >> 11) & 7);
-// OBSOLETE 
-// OBSOLETE   printf_unfiltered ("regno  tag  msb              lsb  value\n");
-// OBSOLETE   for (fpreg = 7; fpreg >= 0; fpreg--)
-// OBSOLETE     {
-// OBSOLETE       double val;
-// OBSOLETE 
-// OBSOLETE       printf_unfiltered ("%s %d: ", fpreg == top ? "=>" : "  ", fpreg);
-// OBSOLETE 
-// OBSOLETE       switch ((ep->tag >> ((7 - fpreg) * 2)) & 3)
-// OBSOLETE    {
-// OBSOLETE    case 0:
-// OBSOLETE      printf_unfiltered ("valid ");
-// OBSOLETE      break;
-// OBSOLETE    case 1:
-// OBSOLETE      printf_unfiltered ("zero  ");
-// OBSOLETE      break;
-// OBSOLETE    case 2:
-// OBSOLETE      printf_unfiltered ("trap  ");
-// OBSOLETE      break;
-// OBSOLETE    case 3:
-// OBSOLETE      printf_unfiltered ("empty ");
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       for (i = 9; i >= 0; i--)
-// OBSOLETE    printf_unfiltered ("%02x", ep->regs[fpreg][i]);
-// OBSOLETE 
-// OBSOLETE       i387_to_double ((char *) ep->regs[fpreg], (char *) &val);
-// OBSOLETE       printf_unfiltered ("  %#g\n", val);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct env387 core_env387;
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE i386_float_info (void)
-// OBSOLETE {
-// OBSOLETE   struct env387 fps;
-// OBSOLETE   int fpsaved = 0;
-// OBSOLETE   /* We need to reverse the order of the registers.  Apparently AIX stores
-// OBSOLETE      the highest-numbered ones first.  */
-// OBSOLETE   struct env387 fps_fixed;
-// OBSOLETE   int i;
-// OBSOLETE 
-// OBSOLETE   if (! ptid_equal (inferior_ptid, null_ptid))
-// OBSOLETE     {
-// OBSOLETE       char buf[10];
-// OBSOLETE       unsigned short status;
-// OBSOLETE 
-// OBSOLETE       ptrace (PT_READ_FPR, PIDGET (inferior_ptid), buf,
-// OBSOLETE               offsetof (struct env387, status));
-// OBSOLETE       memcpy (&status, buf, sizeof (status));
-// OBSOLETE       fpsaved = status;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       if ((fpsaved = core_env387.status) != 0)
-// OBSOLETE    memcpy (&fps, &core_env387, sizeof (fps));
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (fpsaved == 0)
-// OBSOLETE     {
-// OBSOLETE       printf_unfiltered ("no floating point status saved\n");
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (! ptid_equal (inferior_ptid, null_ptid))
-// OBSOLETE     {
-// OBSOLETE       int offset;
-// OBSOLETE       for (offset = 0; offset < sizeof (fps); offset += 10)
-// OBSOLETE    {
-// OBSOLETE      char buf[10];
-// OBSOLETE      ptrace (PT_READ_FPR, PIDGET (inferior_ptid), buf, offset);
-// OBSOLETE      memcpy ((char *) &fps.control + offset, buf,
-// OBSOLETE              MIN (10, sizeof (fps) - offset));
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   fps_fixed = fps;
-// OBSOLETE   for (i = 0; i < 8; ++i)
-// OBSOLETE     memcpy (fps_fixed.regs[i], fps.regs[7 - i], 10);
-// OBSOLETE   print_387_status (0, &fps_fixed);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Fetch one register.  */
-// OBSOLETE static void
-// OBSOLETE fetch_register (int regno)
-// OBSOLETE {
-// OBSOLETE   char buf[MAX_REGISTER_RAW_SIZE];
-// OBSOLETE   if (regno < FP0_REGNUM)
-// OBSOLETE     *(int *) buf = ptrace (PT_READ_GPR, PIDGET (inferior_ptid),
-// OBSOLETE                       PT_REG (regmap[regno]), 0, 0);
-// OBSOLETE   else
-// OBSOLETE     ptrace (PT_READ_FPR, PIDGET (inferior_ptid), buf,
-// OBSOLETE        (regno - FP0_REGNUM) * 10 + offsetof (struct env387, regs));
-// OBSOLETE   supply_register (regno, buf);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE fetch_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   if (regno < 0)
-// OBSOLETE     for (regno = 0; regno < NUM_REGS; regno++)
-// OBSOLETE       fetch_register (regno);
-// OBSOLETE   else
-// OBSOLETE     fetch_register (regno);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* store one register */
-// OBSOLETE static void
-// OBSOLETE store_register (int regno)
-// OBSOLETE {
-// OBSOLETE   char buf[80];
-// OBSOLETE   errno = 0;
-// OBSOLETE   if (regno < FP0_REGNUM)
-// OBSOLETE     ptrace (PT_WRITE_GPR, PIDGET (inferior_ptid), PT_REG (regmap[regno]),
-// OBSOLETE        *(int *) &registers[REGISTER_BYTE (regno)], 0);
-// OBSOLETE   else
-// OBSOLETE     ptrace (PT_WRITE_FPR, PIDGET (inferior_ptid),
-// OBSOLETE             &registers[REGISTER_BYTE (regno)],
-// OBSOLETE        (regno - FP0_REGNUM) * 10 + offsetof (struct env387, regs));
-// OBSOLETE 
-// OBSOLETE   if (errno != 0)
-// OBSOLETE     {
-// OBSOLETE       sprintf (buf, "writing register number %d", regno);
-// OBSOLETE       perror_with_name (buf);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Store our register values back into the inferior.
-// OBSOLETE    If REGNO is -1, do this for all registers.
-// OBSOLETE    Otherwise, REGNO specifies which register (so we can save time).  */
-// OBSOLETE void
-// OBSOLETE store_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   if (regno < 0)
-// OBSOLETE     for (regno = 0; regno < NUM_REGS; regno++)
-// OBSOLETE       store_register (regno);
-// OBSOLETE   else
-// OBSOLETE     store_register (regno);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #ifndef CD_AX                      /* defined in sys/i386/coredump.h */
-// OBSOLETE #define CD_AX      0
-// OBSOLETE #define CD_BX      1
-// OBSOLETE #define CD_CX      2
-// OBSOLETE #define CD_DX      3
-// OBSOLETE #define CD_SI      4
-// OBSOLETE #define CD_DI      5
-// OBSOLETE #define CD_BP      6
-// OBSOLETE #define CD_SP      7
-// OBSOLETE #define CD_FL      8
-// OBSOLETE #define CD_IP      9
-// OBSOLETE #define CD_CS      10
-// OBSOLETE #define CD_DS      11
-// OBSOLETE #define CD_ES      12
-// OBSOLETE #define CD_FS      13
-// OBSOLETE #define CD_GS      14
-// OBSOLETE #define CD_SS      15
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * The order here in core_regmap[] has to be the same as in 
-// OBSOLETE  * regmap[] above.
-// OBSOLETE  */
-// OBSOLETE static int core_regmap[] =
-// OBSOLETE {
-// OBSOLETE   CD_AX, CD_CX, CD_DX, CD_BX,
-// OBSOLETE   CD_SP, CD_BP, CD_SI, CD_DI,
-// OBSOLETE   CD_IP, CD_FL, CD_CS, CD_SS,
-// OBSOLETE   CD_DS, CD_ES, CD_FS, CD_GS,
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE /* Provide registers to GDB from a core file.
-// OBSOLETE 
-// OBSOLETE    CORE_REG_SECT points to an array of bytes, which were obtained from
-// OBSOLETE    a core file which BFD thinks might contain register contents. 
-// OBSOLETE    CORE_REG_SIZE is its size.
-// OBSOLETE 
-// OBSOLETE    WHICH says which register set corelow suspects this is:
-// OBSOLETE      0 --- the general-purpose register set
-// OBSOLETE      2 --- the floating-point register set
-// OBSOLETE 
-// OBSOLETE    REG_ADDR isn't used.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE fetch_core_registers (char *core_reg_sect, unsigned core_reg_size,
-// OBSOLETE                  int which, CORE_ADDR reg_addr)
-// OBSOLETE {
-// OBSOLETE 
-// OBSOLETE   if (which == 0)
-// OBSOLETE     {
-// OBSOLETE       /* Integer registers */
-// OBSOLETE 
-// OBSOLETE #define cd_regs(n) ((int *)core_reg_sect)[n]
-// OBSOLETE #define regs(n) *((int *) &registers[REGISTER_BYTE (n)])
-// OBSOLETE 
-// OBSOLETE       int i;
-// OBSOLETE       for (i = 0; i < FP0_REGNUM; i++)
-// OBSOLETE    regs (i) = cd_regs (core_regmap[i]);
-// OBSOLETE     }
-// OBSOLETE   else if (which == 2)
-// OBSOLETE     {
-// OBSOLETE       /* Floating point registers */
-// OBSOLETE 
-// OBSOLETE       if (core_reg_size >= sizeof (core_env387))
-// OBSOLETE    memcpy (&core_env387, core_reg_sect, core_reg_size);
-// OBSOLETE       else
-// OBSOLETE    fprintf_unfiltered (gdb_stderr, "Couldn't read float regs from core file\n");
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Register that we are able to handle i386aix core file formats.
-// OBSOLETE    FIXME: is this really bfd_target_unknown_flavour? */
-// OBSOLETE 
-// OBSOLETE static struct core_fns i386aix_core_fns =
-// OBSOLETE {
-// OBSOLETE   bfd_target_unknown_flavour,              /* core_flavour */
-// OBSOLETE   default_check_format,                    /* check_format */
-// OBSOLETE   default_core_sniffer,                    /* core_sniffer */
-// OBSOLETE   fetch_core_registers,                    /* core_read_registers */
-// OBSOLETE   NULL                                     /* next */
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_core_i386aix (void)
-// OBSOLETE {
-// OBSOLETE   add_core_fns (&i386aix_core_fns);
-// OBSOLETE }
index a76012368cec1708bcaa0daccdffd7f478a01769..77a4eecd90649a8ffef68813b77ed83133b2527f 100644 (file)
@@ -195,8 +195,8 @@ _initialize_i386bsd_tdep (void)
   gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_aout_flavour,
                                  i386bsd_aout_osabi_sniffer);
 
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_FREEBSD_AOUT,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_FREEBSD_AOUT,
                          i386fbsdaout_init_abi);
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_FREEBSD_ELF,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_FREEBSD_ELF,
                          i386fbsd4_init_abi);
 }
index fa56428ec55aef8accd3cc23e100948c1ba8bf68..143ddc0242002ee56fbeed410c47a01f26af944c 100644 (file)
@@ -39,5 +39,5 @@ extern void _initialize_i386gnu_tdep (void);
 void
 _initialize_i386gnu_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_HURD, i386gnu_init_abi);
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_HURD, i386gnu_init_abi);
 }
index 69c37501d5954c9f14d55678756aac2a16d8fd51..22bab3a76e9886840dfe7e8edefe6bfd2fc964d3 100644 (file)
@@ -70,11 +70,11 @@ i386lynx_coff_osabi_sniffer (bfd *abfd)
 void _initialize_i386lynx_tdep (void);
 
 void
-_initialize_i386bsd_tdep (void)
+_initialize_i386lynx_tdep (void)
 {
   gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_coff_flavour,
                                  i386lynx_coff_osabi_sniffer);
 
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_LYNXOS,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_LYNXOS,
                          i386lynx_init_abi);
 }
diff --git a/gdb/i386m3-nat.c b/gdb/i386m3-nat.c
deleted file mode 100644 (file)
index 8cb51d5..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-// OBSOLETE /* Low level interface to I386 running mach 3.0.
-// OBSOLETE    Copyright 1992, 1993, 1994, 1996, 2000, 2001
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "floatformat.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE #include <stdio.h>
-// OBSOLETE 
-// OBSOLETE #include <mach.h>
-// OBSOLETE #include <mach/message.h>
-// OBSOLETE #include <mach/exception.h>
-// OBSOLETE #include <mach_error.h>
-// OBSOLETE 
-// OBSOLETE /* Hmmm... Should this not be here?
-// OBSOLETE  * Now for i386_float_info() target_has_execution
-// OBSOLETE  */
-// OBSOLETE #include <target.h>
-// OBSOLETE 
-// OBSOLETE /* This mess is duplicated in bfd/i386mach3.h
-// OBSOLETE 
-// OBSOLETE  * This is an ugly way to hack around the incorrect
-// OBSOLETE  * definition of UPAGES in i386/machparam.h.
-// OBSOLETE  *
-// OBSOLETE  * The definition should specify the size reserved
-// OBSOLETE  * for "struct user" in core files in PAGES,
-// OBSOLETE  * but instead it gives it in 512-byte core-clicks
-// OBSOLETE  * for i386 and i860.
-// OBSOLETE  */
-// OBSOLETE #include <sys/param.h>
-// OBSOLETE #if UPAGES == 16
-// OBSOLETE #define UAREA_SIZE ctob(UPAGES)
-// OBSOLETE #elif UPAGES == 2
-// OBSOLETE #define UAREA_SIZE (NBPG*UPAGES)
-// OBSOLETE #else
-// OBSOLETE FIXME ! !UPAGES is neither 2 nor 16
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE /* @@@ Should move print_387_status() to i387-tdep.c */
-// OBSOLETE extern void print_387_control_word ();             /* i387-tdep.h */
-// OBSOLETE extern void print_387_status_word ();
-// OBSOLETE 
-// OBSOLETE #define private static
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Find offsets to thread states at compile time.
-// OBSOLETE  * If your compiler does not grok this, calculate offsets
-// OBSOLETE  * offsets yourself and use them (or get a compatible compiler :-)
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE #define  REG_OFFSET(reg) (int)(&((struct i386_thread_state *)0)->reg)
-// OBSOLETE 
-// OBSOLETE /* at reg_offset[i] is the offset to the i386_thread_state
-// OBSOLETE  * location where the gdb registers[i] is stored.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static int reg_offset[] =
-// OBSOLETE {
-// OBSOLETE   REG_OFFSET (eax), REG_OFFSET (ecx), REG_OFFSET (edx), REG_OFFSET (ebx),
-// OBSOLETE   REG_OFFSET (uesp), REG_OFFSET (ebp), REG_OFFSET (esi), REG_OFFSET (edi),
-// OBSOLETE   REG_OFFSET (eip), REG_OFFSET (efl), REG_OFFSET (cs), REG_OFFSET (ss),
-// OBSOLETE   REG_OFFSET (ds), REG_OFFSET (es), REG_OFFSET (fs), REG_OFFSET (gs)
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE #define REG_ADDRESS(state,regnum) ((char *)(state)+reg_offset[regnum])
-// OBSOLETE 
-// OBSOLETE /* Fetch COUNT contiguous registers from thread STATE starting from REGNUM
-// OBSOLETE  * Caller knows that the regs handled in one transaction are of same size.
-// OBSOLETE  */
-// OBSOLETE #define FETCH_REGS(state, regnum, count) \
-// OBSOLETE   memcpy (&registers[REGISTER_BYTE (regnum)], \
-// OBSOLETE      REG_ADDRESS (state, regnum), \
-// OBSOLETE      count*REGISTER_SIZE)
-// OBSOLETE 
-// OBSOLETE /* Store COUNT contiguous registers to thread STATE starting from REGNUM */
-// OBSOLETE #define STORE_REGS(state, regnum, count) \
-// OBSOLETE   memcpy (REG_ADDRESS (state, regnum), \
-// OBSOLETE      &registers[REGISTER_BYTE (regnum)], \
-// OBSOLETE      count*REGISTER_SIZE)
-// OBSOLETE \f
-// OBSOLETE /*
-// OBSOLETE  * Fetch inferiors registers for gdb.
-// OBSOLETE  * REGNO specifies which (as gdb views it) register, -1 for all.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE fetch_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   kern_return_t ret;
-// OBSOLETE   thread_state_data_t state;
-// OBSOLETE   unsigned int stateCnt = i386_THREAD_STATE_COUNT;
-// OBSOLETE   int index;
-// OBSOLETE 
-// OBSOLETE   if (!MACH_PORT_VALID (current_thread))
-// OBSOLETE     error ("fetch inferior registers: Invalid thread");
-// OBSOLETE 
-// OBSOLETE   if (must_suspend_thread)
-// OBSOLETE     setup_thread (current_thread, 1);
-// OBSOLETE 
-// OBSOLETE   ret = thread_get_state (current_thread,
-// OBSOLETE                      i386_THREAD_STATE,
-// OBSOLETE                      state,
-// OBSOLETE                      &stateCnt);
-// OBSOLETE 
-// OBSOLETE   if (ret != KERN_SUCCESS)
-// OBSOLETE     warning ("fetch_inferior_registers: %s ",
-// OBSOLETE         mach_error_string (ret));
-// OBSOLETE #if 0
-// OBSOLETE   /* It may be more effective to store validate all of them,
-// OBSOLETE    * since we fetched them all anyway
-// OBSOLETE    */
-// OBSOLETE   else if (regno != -1)
-// OBSOLETE     supply_register (regno, (char *) state + reg_offset[regno]);
-// OBSOLETE #endif
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       for (index = 0; index < NUM_REGS; index++)
-// OBSOLETE    supply_register (index, (char *) state + reg_offset[index]);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (must_suspend_thread)
-// OBSOLETE     setup_thread (current_thread, 0);
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Store our register values back into the inferior.
-// OBSOLETE  * If REGNO is -1, do this for all registers.
-// OBSOLETE  * Otherwise, REGNO specifies which register
-// OBSOLETE  *
-// OBSOLETE  * On mach3 all registers are always saved in one call.
-// OBSOLETE  */
-// OBSOLETE void
-// OBSOLETE store_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   kern_return_t ret;
-// OBSOLETE   thread_state_data_t state;
-// OBSOLETE   unsigned int stateCnt = i386_THREAD_STATE_COUNT;
-// OBSOLETE   register int index;
-// OBSOLETE 
-// OBSOLETE   if (!MACH_PORT_VALID (current_thread))
-// OBSOLETE     error ("store inferior registers: Invalid thread");
-// OBSOLETE 
-// OBSOLETE   if (must_suspend_thread)
-// OBSOLETE     setup_thread (current_thread, 1);
-// OBSOLETE 
-// OBSOLETE   /* Fetch the state of the current thread */
-// OBSOLETE   ret = thread_get_state (current_thread,
-// OBSOLETE                      i386_THREAD_STATE,
-// OBSOLETE                      state,
-// OBSOLETE                      &stateCnt);
-// OBSOLETE 
-// OBSOLETE   if (ret != KERN_SUCCESS)
-// OBSOLETE     {
-// OBSOLETE       warning ("store_inferior_registers (get): %s",
-// OBSOLETE           mach_error_string (ret));
-// OBSOLETE       if (must_suspend_thread)
-// OBSOLETE    setup_thread (current_thread, 0);
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* move gdb's registers to thread's state
-// OBSOLETE 
-// OBSOLETE    * Since we save all registers anyway, save the ones
-// OBSOLETE    * that gdb thinks are valid (e.g. ignore the regno
-// OBSOLETE    * parameter)
-// OBSOLETE    */
-// OBSOLETE #if 0
-// OBSOLETE   if (regno != -1)
-// OBSOLETE     STORE_REGS (state, regno, 1);
-// OBSOLETE   else
-// OBSOLETE #endif
-// OBSOLETE     {
-// OBSOLETE       for (index = 0; index < NUM_REGS; index++)
-// OBSOLETE    STORE_REGS (state, index, 1);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Write gdb's current view of register to the thread
-// OBSOLETE    */
-// OBSOLETE   ret = thread_set_state (current_thread,
-// OBSOLETE                      i386_THREAD_STATE,
-// OBSOLETE                      state,
-// OBSOLETE                      i386_THREAD_STATE_COUNT);
-// OBSOLETE 
-// OBSOLETE   if (ret != KERN_SUCCESS)
-// OBSOLETE     warning ("store_inferior_registers (set): %s",
-// OBSOLETE         mach_error_string (ret));
-// OBSOLETE 
-// OBSOLETE   if (must_suspend_thread)
-// OBSOLETE     setup_thread (current_thread, 0);
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Return the address in the core dump or inferior of register REGNO.
-// OBSOLETE  * BLOCKEND should be the address of the end of the UPAGES area read
-// OBSOLETE  * in memory, but it's not?
-// OBSOLETE  *
-// OBSOLETE  * Currently our UX server dumps the whole thread state to the
-// OBSOLETE  * core file. If your UX does something else, adapt the routine
-// OBSOLETE  * below to return the offset to the given register.
-// OBSOLETE  * 
-// OBSOLETE  * Called by core-aout.c(fetch_core_registers)
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE register_addr (int regno, CORE_ADDR blockend)
-// OBSOLETE {
-// OBSOLETE   CORE_ADDR addr;
-// OBSOLETE 
-// OBSOLETE   if (regno < 0 || regno >= NUM_REGS)
-// OBSOLETE     error ("Invalid register number %d.", regno);
-// OBSOLETE 
-// OBSOLETE   /* UAREA_SIZE == 8 kB in i386 */
-// OBSOLETE   addr = (unsigned int) REG_ADDRESS (UAREA_SIZE - sizeof (struct i386_thread_state), regno);
-// OBSOLETE 
-// OBSOLETE   return addr;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* jtv@hut.fi: I copied and modified this 387 code from
-// OBSOLETE  * gdb/i386-xdep.c. Modifications for Mach 3.0.
-// OBSOLETE  *
-// OBSOLETE  * i387 status dumper. See also i387-tdep.c
-// OBSOLETE  */
-// OBSOLETE struct env387
-// OBSOLETE {
-// OBSOLETE   unsigned short control;
-// OBSOLETE   unsigned short r0;
-// OBSOLETE   unsigned short status;
-// OBSOLETE   unsigned short r1;
-// OBSOLETE   unsigned short tag;
-// OBSOLETE   unsigned short r2;
-// OBSOLETE   unsigned long eip;
-// OBSOLETE   unsigned short code_seg;
-// OBSOLETE   unsigned short opcode;
-// OBSOLETE   unsigned long operand;
-// OBSOLETE   unsigned short operand_seg;
-// OBSOLETE   unsigned short r3;
-// OBSOLETE   unsigned char regs[8][10];
-// OBSOLETE };
-// OBSOLETE /* This routine is machine independent?
-// OBSOLETE  * Should move it to i387-tdep.c but you need to export struct env387
-// OBSOLETE  */
-// OBSOLETE private
-// OBSOLETE print_387_status (unsigned short status, struct env387 *ep)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE   int bothstatus;
-// OBSOLETE   int top;
-// OBSOLETE   int fpreg;
-// OBSOLETE   unsigned char *p;
-// OBSOLETE 
-// OBSOLETE   bothstatus = ((status != 0) && (ep->status != 0));
-// OBSOLETE   if (status != 0)
-// OBSOLETE     {
-// OBSOLETE       if (bothstatus)
-// OBSOLETE    printf_unfiltered ("u: ");
-// OBSOLETE       print_387_status_word (status);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (ep->status != 0)
-// OBSOLETE     {
-// OBSOLETE       if (bothstatus)
-// OBSOLETE    printf_unfiltered ("e: ");
-// OBSOLETE       print_387_status_word (ep->status);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   print_387_control_word (ep->control);
-// OBSOLETE   printf_unfiltered ("last exception: ");
-// OBSOLETE   printf_unfiltered ("opcode %s; ", local_hex_string (ep->opcode));
-// OBSOLETE   printf_unfiltered ("pc %s:", local_hex_string (ep->code_seg));
-// OBSOLETE   printf_unfiltered ("%s; ", local_hex_string (ep->eip));
-// OBSOLETE   printf_unfiltered ("operand %s", local_hex_string (ep->operand_seg));
-// OBSOLETE   printf_unfiltered (":%s\n", local_hex_string (ep->operand));
-// OBSOLETE 
-// OBSOLETE   top = (ep->status >> 11) & 7;
-// OBSOLETE 
-// OBSOLETE   printf_unfiltered ("regno  tag  msb              lsb  value\n");
-// OBSOLETE   for (fpreg = 7; fpreg >= 0; fpreg--)
-// OBSOLETE     {
-// OBSOLETE       double val;
-// OBSOLETE 
-// OBSOLETE       printf_unfiltered ("%s %d: ", fpreg == top ? "=>" : "  ", fpreg);
-// OBSOLETE 
-// OBSOLETE       switch ((ep->tag >> (fpreg * 2)) & 3)
-// OBSOLETE    {
-// OBSOLETE    case 0:
-// OBSOLETE      printf_unfiltered ("valid ");
-// OBSOLETE      break;
-// OBSOLETE    case 1:
-// OBSOLETE      printf_unfiltered ("zero  ");
-// OBSOLETE      break;
-// OBSOLETE    case 2:
-// OBSOLETE      printf_unfiltered ("trap  ");
-// OBSOLETE      break;
-// OBSOLETE    case 3:
-// OBSOLETE      printf_unfiltered ("empty ");
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       for (i = 9; i >= 0; i--)
-// OBSOLETE    printf_unfiltered ("%02x", ep->regs[fpreg][i]);
-// OBSOLETE 
-// OBSOLETE       floatformat_to_double (&floatformat_i387_ext, (char *) ep->regs[fpreg],
-// OBSOLETE                         &val);
-// OBSOLETE       printf_unfiltered ("  %g\n", val);
-// OBSOLETE     }
-// OBSOLETE   if (ep->r0)
-// OBSOLETE     printf_unfiltered ("warning: reserved0 is %s\n", local_hex_string (ep->r0));
-// OBSOLETE   if (ep->r1)
-// OBSOLETE     printf_unfiltered ("warning: reserved1 is %s\n", local_hex_string (ep->r1));
-// OBSOLETE   if (ep->r2)
-// OBSOLETE     printf_unfiltered ("warning: reserved2 is %s\n", local_hex_string (ep->r2));
-// OBSOLETE   if (ep->r3)
-// OBSOLETE     printf_unfiltered ("warning: reserved3 is %s\n", local_hex_string (ep->r3));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * values that go into fp_kind (from <i386/fpreg.h>)
-// OBSOLETE  */
-// OBSOLETE #define FP_NO   0          /* no fp chip, no emulator (no fp support)      */
-// OBSOLETE #define FP_SW   1          /* no fp chip, using software emulator          */
-// OBSOLETE #define FP_HW   2          /* chip present bit                             */
-// OBSOLETE #define FP_287  2          /* 80287 chip present                           */
-// OBSOLETE #define FP_387  3          /* 80387 chip present                           */
-// OBSOLETE 
-// OBSOLETE typedef struct fpstate
-// OBSOLETE {
-// OBSOLETE #if 1
-// OBSOLETE   unsigned char state[FP_STATE_BYTES];     /* "hardware" state */
-// OBSOLETE #else
-// OBSOLETE   struct env387 state;             /* Actually this */
-// OBSOLETE #endif
-// OBSOLETE   int status;                      /* Duplicate status */
-// OBSOLETE }
-// OBSOLETE  *fpstate_t;
-// OBSOLETE 
-// OBSOLETE /* Mach 3 specific routines.
-// OBSOLETE  */
-// OBSOLETE private boolean_t
-// OBSOLETE get_i387_state (struct fpstate *fstate)
-// OBSOLETE {
-// OBSOLETE   kern_return_t ret;
-// OBSOLETE   thread_state_data_t state;
-// OBSOLETE   unsigned int fsCnt = i386_FLOAT_STATE_COUNT;
-// OBSOLETE   struct i386_float_state *fsp;
-// OBSOLETE 
-// OBSOLETE   ret = thread_get_state (current_thread,
-// OBSOLETE                      i386_FLOAT_STATE,
-// OBSOLETE                      state,
-// OBSOLETE                      &fsCnt);
-// OBSOLETE 
-// OBSOLETE   if (ret != KERN_SUCCESS)
-// OBSOLETE     {
-// OBSOLETE       warning ("Can not get live floating point state: %s",
-// OBSOLETE           mach_error_string (ret));
-// OBSOLETE       return FALSE;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   fsp = (struct i386_float_state *) state;
-// OBSOLETE   /* The 387 chip (also 486 counts) or a software emulator? */
-// OBSOLETE   if (!fsp->initialized || (fsp->fpkind != FP_387 && fsp->fpkind != FP_SW))
-// OBSOLETE     return FALSE;
-// OBSOLETE 
-// OBSOLETE   /* Clear the target then copy thread's float state there.
-// OBSOLETE      Make a copy of the status word, for some reason?
-// OBSOLETE    */
-// OBSOLETE   memset (fstate, 0, sizeof (struct fpstate));
-// OBSOLETE 
-// OBSOLETE   fstate->status = fsp->exc_status;
-// OBSOLETE 
-// OBSOLETE   memcpy (fstate->state, (char *) &fsp->hw_state, FP_STATE_BYTES);
-// OBSOLETE 
-// OBSOLETE   return TRUE;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE private boolean_t
-// OBSOLETE get_i387_core_state (struct fpstate *fstate)
-// OBSOLETE {
-// OBSOLETE   /* Not implemented yet. Core files do not contain float state. */
-// OBSOLETE   return FALSE;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * This is called by "info float" command
-// OBSOLETE  */
-// OBSOLETE void
-// OBSOLETE i386_mach3_float_info (void)
-// OBSOLETE {
-// OBSOLETE   char buf[sizeof (struct fpstate) + 2 * sizeof (int)];
-// OBSOLETE   boolean_t valid = FALSE;
-// OBSOLETE   fpstate_t fps;
-// OBSOLETE 
-// OBSOLETE   if (target_has_execution)
-// OBSOLETE     valid = get_i387_state (buf);
-// OBSOLETE #if 0
-// OBSOLETE   else if (WE HAVE CORE FILE)      /* @@@@ Core files not supported */
-// OBSOLETE     valid = get_i387_core_state (buf);
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE   if (!valid)
-// OBSOLETE     {
-// OBSOLETE       warning ("no floating point status saved");
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   fps = (fpstate_t) buf;
-// OBSOLETE 
-// OBSOLETE   print_387_status (fps->status, (struct env387 *) fps->state);
-// OBSOLETE }
diff --git a/gdb/i386mach-nat.c b/gdb/i386mach-nat.c
deleted file mode 100644 (file)
index ee696c4..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-// OBSOLETE /* Native dependent code for Mach 386's for GDB, the GNU debugger.
-// OBSOLETE    Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1995, 1996, 1999, 2000,
-// OBSOLETE    2001 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE #include <sys/param.h>
-// OBSOLETE #include <sys/dir.h>
-// OBSOLETE #include <sys/user.h>
-// OBSOLETE #include <signal.h>
-// OBSOLETE #include <sys/ioctl.h>
-// OBSOLETE #include <fcntl.h>
-// OBSOLETE 
-// OBSOLETE #include <sys/ptrace.h>
-// OBSOLETE #include <machine/reg.h>
-// OBSOLETE 
-// OBSOLETE #include <sys/file.h>
-// OBSOLETE #include "gdb_stat.h"
-// OBSOLETE #include <sys/core.h>
-// OBSOLETE 
-// OBSOLETE static void fetch_core_registers (char *, unsigned, int, CORE_ADDR);
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE fetch_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   struct regs inferior_registers;
-// OBSOLETE   struct fp_state inferior_fp_registers;
-// OBSOLETE 
-// OBSOLETE   registers_fetched ();
-// OBSOLETE 
-// OBSOLETE   ptrace (PTRACE_GETREGS, PIDGET (inferior_ptid),
-// OBSOLETE      (PTRACE_ARG3_TYPE) & inferior_registers);
-// OBSOLETE   ptrace (PTRACE_GETFPREGS, PIDGET (inferior_ptid),
-// OBSOLETE      (PTRACE_ARG3_TYPE) & inferior_fp_registers);
-// OBSOLETE 
-// OBSOLETE   memcpy (registers, &inferior_registers, sizeof inferior_registers);
-// OBSOLETE 
-// OBSOLETE   memcpy (&registers[REGISTER_BYTE (FP0_REGNUM)],
-// OBSOLETE      inferior_fp_registers.f_st,
-// OBSOLETE      sizeof inferior_fp_registers.f_st);
-// OBSOLETE   memcpy (&registers[REGISTER_BYTE (FPC_REGNUM)],
-// OBSOLETE      &inferior_fp_registers.f_ctrl,
-// OBSOLETE      sizeof inferior_fp_registers - sizeof inferior_fp_registers.f_st);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Store our register values back into the inferior.
-// OBSOLETE    If REGNO is -1, do this for all registers.
-// OBSOLETE    Otherwise, REGNO specifies which register (so we can save time).  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE store_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   struct regs inferior_registers;
-// OBSOLETE   struct fp_state inferior_fp_registers;
-// OBSOLETE 
-// OBSOLETE   memcpy (&inferior_registers, registers, 20 * 4);
-// OBSOLETE 
-// OBSOLETE   memcpy (inferior_fp_registers.f_st, &registers[REGISTER_BYTE (FP0_REGNUM)],
-// OBSOLETE      sizeof inferior_fp_registers.f_st);
-// OBSOLETE   memcpy (&inferior_fp_registers.f_ctrl,
-// OBSOLETE      &registers[REGISTER_BYTE (FPC_REGNUM)],
-// OBSOLETE      sizeof inferior_fp_registers - sizeof inferior_fp_registers.f_st);
-// OBSOLETE 
-// OBSOLETE #ifdef PTRACE_FP_BUG
-// OBSOLETE   if (regno == FP_REGNUM || regno == -1)
-// OBSOLETE     /* Storing the frame pointer requires a gross hack, in which an
-// OBSOLETE        instruction that moves eax into ebp gets single-stepped.  */
-// OBSOLETE     {
-// OBSOLETE       int stack = inferior_registers.r_reg[SP_REGNUM];
-// OBSOLETE       int stuff = ptrace (PTRACE_PEEKDATA, PIDGET (inferior_ptid),
-// OBSOLETE                      (PTRACE_ARG3_TYPE) stack);
-// OBSOLETE       int reg = inferior_registers.r_reg[EAX];
-// OBSOLETE       inferior_registers.r_reg[EAX] =
-// OBSOLETE    inferior_registers.r_reg[FP_REGNUM];
-// OBSOLETE       ptrace (PTRACE_SETREGS, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) & inferior_registers);
-// OBSOLETE       ptrace (PTRACE_POKEDATA, PIDGET (inferior_ptid),
-// OBSOLETE               (PTRACE_ARG3_TYPE) stack, 0xc589);
-// OBSOLETE       ptrace (PTRACE_SINGLESTEP, PIDGET (inferior_ptid),
-// OBSOLETE               (PTRACE_ARG3_TYPE) stack, 0);
-// OBSOLETE       wait (0);
-// OBSOLETE       ptrace (PTRACE_POKEDATA, PIDGET (inferior_ptid),
-// OBSOLETE               (PTRACE_ARG3_TYPE) stack, stuff);
-// OBSOLETE       inferior_registers.r_reg[EAX] = reg;
-// OBSOLETE     }
-// OBSOLETE #endif
-// OBSOLETE   ptrace (PTRACE_SETREGS, PIDGET (inferior_ptid),
-// OBSOLETE      (PTRACE_ARG3_TYPE) & inferior_registers);
-// OBSOLETE   ptrace (PTRACE_SETFPREGS, PIDGET (inferior_ptid),
-// OBSOLETE      (PTRACE_ARG3_TYPE) & inferior_fp_registers);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Provide registers to GDB from a core file.
-// OBSOLETE 
-// OBSOLETE    CORE_REG_SECT points to an array of bytes, which were obtained from
-// OBSOLETE    a core file which BFD thinks might contain register contents. 
-// OBSOLETE    CORE_REG_SIZE is its size.
-// OBSOLETE 
-// OBSOLETE    WHICH says which register set corelow suspects this is:
-// OBSOLETE      0 --- the general-purpose register set
-// OBSOLETE      2 --- the floating-point register set
-// OBSOLETE 
-// OBSOLETE    REG_ADDR isn't used.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE fetch_core_registers (char *core_reg_sect, unsigned core_reg_size,
-// OBSOLETE                  int which, CORE_ADDR reg_addr)
-// OBSOLETE {
-// OBSOLETE   int val;
-// OBSOLETE 
-// OBSOLETE   switch (which)
-// OBSOLETE     {
-// OBSOLETE     case 0:
-// OBSOLETE     case 1:
-// OBSOLETE       memcpy (registers, core_reg_sect, core_reg_size);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case 2:
-// OBSOLETE       memcpy (&registers[REGISTER_BYTE (FP0_REGNUM)],
-// OBSOLETE          core_reg_sect,
-// OBSOLETE          core_reg_size);   /* FIXME, probably bogus */
-// OBSOLETE #ifdef FPC_REGNUM
-// OBSOLETE       memcpy (&registers[REGISTER_BYTE (FPC_REGNUM)],
-// OBSOLETE          &corestr.c_fpu.f_fpstatus.f_ctrl,
-// OBSOLETE          sizeof corestr.c_fpu.f_fpstatus -
-// OBSOLETE          sizeof corestr.c_fpu.f_fpstatus.f_st);
-// OBSOLETE #endif
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* Register that we are able to handle i386mach core file formats.
-// OBSOLETE    FIXME: is this really bfd_target_unknown_flavour? */
-// OBSOLETE 
-// OBSOLETE static struct core_fns i386mach_core_fns =
-// OBSOLETE {
-// OBSOLETE   bfd_target_unknown_flavour,              /* core_flavour */
-// OBSOLETE   default_check_format,                    /* check_format */
-// OBSOLETE   default_core_sniffer,                    /* core_sniffer */
-// OBSOLETE   fetch_core_registers,                    /* core_read_registers */
-// OBSOLETE   NULL                                     /* next */
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_core_i386mach (void)
-// OBSOLETE {
-// OBSOLETE   add_core_fns (&i386mach_core_fns);
-// OBSOLETE }
index 4558a35d2c815f85777123f981fa79f6fcf31bf4..69283f8e5f884dddca348dfde36af8dede0ffd56 100644 (file)
@@ -299,8 +299,8 @@ _initialize_i386nbsd_tdep (void)
   add_core_fns (&i386nbsd_core_fns);
   add_core_fns (&i386nbsd_elfcore_fns);
 
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_NETBSD_AOUT,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_NETBSD_AOUT,
                          i386nbsd_init_abi);
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_NETBSD_ELF,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_NETBSD_ELF,
                          i386nbsdelf_init_abi);
 }
index 7f162379a54c0c9b2029b9abc01277e3d2a59081..8bbce84fb29f0f4fefabf96873eb62e7bd004cb3 100644 (file)
@@ -117,6 +117,6 @@ _initialize_i386obsd_tdep (void)
      expected.  */
 #define GDB_OSABI_OPENBSD_AOUT GDB_OSABI_NETBSD_AOUT
 
-  gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_OPENBSD_AOUT,
+  gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_OPENBSD_AOUT,
                          i386obsd_init_abi);
 }
diff --git a/gdb/i960-tdep.c b/gdb/i960-tdep.c
deleted file mode 100644 (file)
index d059a7b..0000000
+++ /dev/null
@@ -1,1056 +0,0 @@
-// OBSOLETE /* Target-machine dependent code for the Intel 960
-// OBSOLETE 
-// OBSOLETE    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
-// OBSOLETE    2001, 2002 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    Contributed by Intel Corporation.
-// OBSOLETE    examine_prologue and other parts contributed by Wind River Systems.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "floatformat.h"
-// OBSOLETE #include "target.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE 
-// OBSOLETE static CORE_ADDR next_insn (CORE_ADDR memaddr,
-// OBSOLETE                        unsigned int *pword1, unsigned int *pword2);
-// OBSOLETE 
-// OBSOLETE struct type *
-// OBSOLETE i960_register_type (int regnum)
-// OBSOLETE {
-// OBSOLETE   if (regnum < FP0_REGNUM)
-// OBSOLETE     return builtin_type_int32;
-// OBSOLETE   else
-// OBSOLETE     return builtin_type_i960_ext;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Does the specified function use the "struct returning" convention
-// OBSOLETE    or the "value returning" convention?  The "value returning" convention
-// OBSOLETE    almost invariably returns the entire value in registers.  The
-// OBSOLETE    "struct returning" convention often returns the entire value in
-// OBSOLETE    memory, and passes a pointer (out of or into the function) saying
-// OBSOLETE    where the value (is or should go).
-// OBSOLETE 
-// OBSOLETE    Since this sometimes depends on whether it was compiled with GCC,
-// OBSOLETE    this is also an argument.  This is used in call_function to build a
-// OBSOLETE    stack, and in value_being_returned to print return values.
-// OBSOLETE 
-// OBSOLETE    On i960, a structure is returned in registers g0-g3, if it will fit.
-// OBSOLETE    If it's more than 16 bytes long, g13 pointed to it on entry.  */
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE i960_use_struct_convention (int gcc_p, struct type *type)
-// OBSOLETE {
-// OBSOLETE   return (TYPE_LENGTH (type) > 16);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* gdb960 is always running on a non-960 host.  Check its characteristics.
-// OBSOLETE    This routine must be called as part of gdb initialization.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE check_host (void)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE 
-// OBSOLETE   static struct typestruct
-// OBSOLETE     {
-// OBSOLETE       int hostsize;                /* Size of type on host         */
-// OBSOLETE       int i960size;                /* Size of type on i960         */
-// OBSOLETE       char *typename;              /* Name of type, for error msg  */
-// OBSOLETE     }
-// OBSOLETE   types[] =
-// OBSOLETE   {
-// OBSOLETE     {
-// OBSOLETE       sizeof (short), 2, "short"
-// OBSOLETE     }
-// OBSOLETE      ,
-// OBSOLETE     {
-// OBSOLETE       sizeof (int), 4, "int"
-// OBSOLETE     }
-// OBSOLETE      ,
-// OBSOLETE     {
-// OBSOLETE       sizeof (long), 4, "long"
-// OBSOLETE     }
-// OBSOLETE      ,
-// OBSOLETE     {
-// OBSOLETE       sizeof (float), 4, "float"
-// OBSOLETE     }
-// OBSOLETE      ,
-// OBSOLETE     {
-// OBSOLETE       sizeof (double), 8, "double"
-// OBSOLETE     }
-// OBSOLETE      ,
-// OBSOLETE     {
-// OBSOLETE       sizeof (char *), 4, "pointer"
-// OBSOLETE     }
-// OBSOLETE      ,
-// OBSOLETE   };
-// OBSOLETE #define TYPELEN    (sizeof(types) / sizeof(struct typestruct))
-// OBSOLETE 
-// OBSOLETE   /* Make sure that host type sizes are same as i960
-// OBSOLETE    */
-// OBSOLETE   for (i = 0; i < TYPELEN; i++)
-// OBSOLETE     {
-// OBSOLETE       if (types[i].hostsize != types[i].i960size)
-// OBSOLETE    {
-// OBSOLETE      printf_unfiltered ("sizeof(%s) != %d:  PROCEED AT YOUR OWN RISK!\n",
-// OBSOLETE                         types[i].typename, types[i].i960size);
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Is this register part of the register window system?  A yes answer
-// OBSOLETE    implies that 1) The name of this register will not be the same in
-// OBSOLETE    other frames, and 2) This register is automatically "saved" upon
-// OBSOLETE    subroutine calls and thus there is no need to search more than one
-// OBSOLETE    stack frame for it.
-// OBSOLETE 
-// OBSOLETE    On the i960, in fact, the name of this register in another frame is
-// OBSOLETE    "mud" -- there is no overlap between the windows.  Each window is
-// OBSOLETE    simply saved into the stack (true for our purposes, after having been
-// OBSOLETE    flushed; normally they reside on-chip and are restored from on-chip
-// OBSOLETE    without ever going to memory).  */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE register_in_window_p (int regnum)
-// OBSOLETE {
-// OBSOLETE   return regnum <= R15_REGNUM;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* i960_find_saved_register ()
-// OBSOLETE 
-// OBSOLETE    Return the address in which frame FRAME's value of register REGNUM
-// OBSOLETE    has been saved in memory.  Or return zero if it has not been saved.
-// OBSOLETE    If REGNUM specifies the SP, the value we return is actually the SP
-// OBSOLETE    value, not an address where it was saved.  */
-// OBSOLETE 
-// OBSOLETE static CORE_ADDR
-// OBSOLETE i960_find_saved_register (struct frame_info *frame, int regnum)
-// OBSOLETE {
-// OBSOLETE   register struct frame_info *frame1 = NULL;
-// OBSOLETE   register CORE_ADDR addr = 0;
-// OBSOLETE 
-// OBSOLETE   if (frame == NULL)               /* No regs saved if want current frame */
-// OBSOLETE     return 0;
-// OBSOLETE 
-// OBSOLETE   /* We assume that a register in a register window will only be saved
-// OBSOLETE      in one place (since the name changes and/or disappears as you go
-// OBSOLETE      towards inner frames), so we only call get_frame_saved_regs on
-// OBSOLETE      the current frame.  This is directly in contradiction to the
-// OBSOLETE      usage below, which assumes that registers used in a frame must be
-// OBSOLETE      saved in a lower (more interior) frame.  This change is a result
-// OBSOLETE      of working on a register window machine; get_frame_saved_regs
-// OBSOLETE      always returns the registers saved within a frame, within the
-// OBSOLETE      context (register namespace) of that frame. */
-// OBSOLETE 
-// OBSOLETE   /* However, note that we don't want this to return anything if
-// OBSOLETE      nothing is saved (if there's a frame inside of this one).  Also,
-// OBSOLETE      callers to this routine asking for the stack pointer want the
-// OBSOLETE      stack pointer saved for *this* frame; this is returned from the
-// OBSOLETE      next frame.  */
-// OBSOLETE 
-// OBSOLETE   if (register_in_window_p (regnum))
-// OBSOLETE     {
-// OBSOLETE       frame1 = get_next_frame (frame);
-// OBSOLETE       if (!frame1)
-// OBSOLETE    return 0;               /* Registers of this frame are active.  */
-// OBSOLETE 
-// OBSOLETE       /* Get the SP from the next frame in; it will be this
-// OBSOLETE          current frame.  */
-// OBSOLETE       if (regnum != SP_REGNUM)
-// OBSOLETE    frame1 = frame;
-// OBSOLETE 
-// OBSOLETE       FRAME_INIT_SAVED_REGS (frame1);
-// OBSOLETE       return frame1->saved_regs[regnum];   /* ... which might be zero */
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Note that this next routine assumes that registers used in
-// OBSOLETE      frame x will be saved only in the frame that x calls and
-// OBSOLETE      frames interior to it.  This is not true on the sparc, but the
-// OBSOLETE      above macro takes care of it, so we should be all right. */
-// OBSOLETE   while (1)
-// OBSOLETE     {
-// OBSOLETE       QUIT;
-// OBSOLETE       frame1 = get_next_frame (frame);
-// OBSOLETE       if (frame1 == 0)
-// OBSOLETE    break;
-// OBSOLETE       frame = frame1;
-// OBSOLETE       FRAME_INIT_SAVED_REGS (frame1);
-// OBSOLETE       if (frame1->saved_regs[regnum])
-// OBSOLETE    addr = frame1->saved_regs[regnum];
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return addr;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* i960_get_saved_register ()
-// OBSOLETE 
-// OBSOLETE    Find register number REGNUM relative to FRAME and put its (raw,
-// OBSOLETE    target format) contents in *RAW_BUFFER.  Set *OPTIMIZED if the
-// OBSOLETE    variable was optimized out (and thus can't be fetched).  Set *LVAL
-// OBSOLETE    to lval_memory, lval_register, or not_lval, depending on whether
-// OBSOLETE    the value was fetched from memory, from a register, or in a strange
-// OBSOLETE    and non-modifiable way (e.g. a frame pointer which was calculated
-// OBSOLETE    rather than fetched).  Set *ADDRP to the address, either in memory
-// OBSOLETE    on as a REGISTER_BYTE offset into the registers array.
-// OBSOLETE 
-// OBSOLETE    Note that this implementation never sets *LVAL to not_lval.  But it
-// OBSOLETE    can be replaced by defining GET_SAVED_REGISTER and supplying your
-// OBSOLETE    own.
-// OBSOLETE 
-// OBSOLETE    The argument RAW_BUFFER must point to aligned memory.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE i960_get_saved_register (char *raw_buffer,
-// OBSOLETE                     int *optimized,
-// OBSOLETE                     CORE_ADDR *addrp,
-// OBSOLETE                     struct frame_info *frame,
-// OBSOLETE                     int regnum,
-// OBSOLETE                     enum lval_type *lval)
-// OBSOLETE {
-// OBSOLETE   CORE_ADDR addr;
-// OBSOLETE 
-// OBSOLETE   if (!target_has_registers)
-// OBSOLETE     error ("No registers.");
-// OBSOLETE 
-// OBSOLETE   /* Normal systems don't optimize out things with register numbers.  */
-// OBSOLETE   if (optimized != NULL)
-// OBSOLETE     *optimized = 0;
-// OBSOLETE   addr = i960_find_saved_register (frame, regnum);
-// OBSOLETE   if (addr != 0)
-// OBSOLETE     {
-// OBSOLETE       if (lval != NULL)
-// OBSOLETE    *lval = lval_memory;
-// OBSOLETE       if (regnum == SP_REGNUM)
-// OBSOLETE    {
-// OBSOLETE      if (raw_buffer != NULL)
-// OBSOLETE        {
-// OBSOLETE          /* Put it back in target format.  */
-// OBSOLETE          store_address (raw_buffer, REGISTER_RAW_SIZE (regnum),
-// OBSOLETE                         (LONGEST) addr);
-// OBSOLETE        }
-// OBSOLETE      if (addrp != NULL)
-// OBSOLETE        *addrp = 0;
-// OBSOLETE      return;
-// OBSOLETE    }
-// OBSOLETE       if (raw_buffer != NULL)
-// OBSOLETE    target_read_memory (addr, raw_buffer, REGISTER_RAW_SIZE (regnum));
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       if (lval != NULL)
-// OBSOLETE    *lval = lval_register;
-// OBSOLETE       addr = REGISTER_BYTE (regnum);
-// OBSOLETE       if (raw_buffer != NULL)
-// OBSOLETE    read_register_gen (regnum, raw_buffer);
-// OBSOLETE     }
-// OBSOLETE   if (addrp != NULL)
-// OBSOLETE     *addrp = addr;
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Examine an i960 function prologue, recording the addresses at which
-// OBSOLETE    registers are saved explicitly by the prologue code, and returning
-// OBSOLETE    the address of the first instruction after the prologue (but not
-// OBSOLETE    after the instruction at address LIMIT, as explained below).
-// OBSOLETE 
-// OBSOLETE    LIMIT places an upper bound on addresses of the instructions to be
-// OBSOLETE    examined.  If the prologue code scan reaches LIMIT, the scan is
-// OBSOLETE    aborted and LIMIT is returned.  This is used, when examining the
-// OBSOLETE    prologue for the current frame, to keep examine_prologue () from
-// OBSOLETE    claiming that a given register has been saved when in fact the
-// OBSOLETE    instruction that saves it has not yet been executed.  LIMIT is used
-// OBSOLETE    at other times to stop the scan when we hit code after the true
-// OBSOLETE    function prologue (e.g. for the first source line) which might
-// OBSOLETE    otherwise be mistaken for function prologue.
-// OBSOLETE 
-// OBSOLETE    The format of the function prologue matched by this routine is
-// OBSOLETE    derived from examination of the source to gcc960 1.21, particularly
-// OBSOLETE    the routine i960_function_prologue ().  A "regular expression" for
-// OBSOLETE    the function prologue is given below:
-// OBSOLETE 
-// OBSOLETE    (lda LRn, g14
-// OBSOLETE    mov g14, g[0-7]
-// OBSOLETE    (mov 0, g14) | (lda 0, g14))?
-// OBSOLETE 
-// OBSOLETE    (mov[qtl]? g[0-15], r[4-15])*
-// OBSOLETE    ((addo [1-31], sp, sp) | (lda n(sp), sp))?
-// OBSOLETE    (st[qtl]? g[0-15], n(fp))*
-// OBSOLETE 
-// OBSOLETE    (cmpobne 0, g14, LFn
-// OBSOLETE    mov sp, g14
-// OBSOLETE    lda 0x30(sp), sp
-// OBSOLETE    LFn: stq g0, (g14)
-// OBSOLETE    stq g4, 0x10(g14)
-// OBSOLETE    stq g8, 0x20(g14))?
-// OBSOLETE 
-// OBSOLETE    (st g14, n(fp))?
-// OBSOLETE    (mov g13,r[4-15])?
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE /* Macros for extracting fields from i960 instructions.  */
-// OBSOLETE 
-// OBSOLETE #define BITMASK(pos, width) (((0x1 << (width)) - 1) << (pos))
-// OBSOLETE #define EXTRACT_FIELD(val, pos, width) ((val) >> (pos) & BITMASK (0, width))
-// OBSOLETE 
-// OBSOLETE #define REG_SRC1(insn)    EXTRACT_FIELD (insn, 0, 5)
-// OBSOLETE #define REG_SRC2(insn)    EXTRACT_FIELD (insn, 14, 5)
-// OBSOLETE #define REG_SRCDST(insn)  EXTRACT_FIELD (insn, 19, 5)
-// OBSOLETE #define MEM_SRCDST(insn)  EXTRACT_FIELD (insn, 19, 5)
-// OBSOLETE #define MEMA_OFFSET(insn) EXTRACT_FIELD (insn, 0, 12)
-// OBSOLETE 
-// OBSOLETE /* Fetch the instruction at ADDR, returning 0 if ADDR is beyond LIM or
-// OBSOLETE    is not the address of a valid instruction, the address of the next
-// OBSOLETE    instruction beyond ADDR otherwise.  *PWORD1 receives the first word
-// OBSOLETE    of the instruction, and (for two-word instructions), *PWORD2 receives
-// OBSOLETE    the second.  */
-// OBSOLETE 
-// OBSOLETE #define NEXT_PROLOGUE_INSN(addr, lim, pword1, pword2) \
-// OBSOLETE   (((addr) < (lim)) ? next_insn (addr, pword1, pword2) : 0)
-// OBSOLETE 
-// OBSOLETE static CORE_ADDR
-// OBSOLETE examine_prologue (register CORE_ADDR ip, register CORE_ADDR limit,
-// OBSOLETE              CORE_ADDR frame_addr, struct frame_saved_regs *fsr)
-// OBSOLETE {
-// OBSOLETE   register CORE_ADDR next_ip;
-// OBSOLETE   register int src, dst;
-// OBSOLETE   register unsigned int *pcode;
-// OBSOLETE   unsigned int insn1, insn2;
-// OBSOLETE   int size;
-// OBSOLETE   int within_leaf_prologue;
-// OBSOLETE   CORE_ADDR save_addr;
-// OBSOLETE   static unsigned int varargs_prologue_code[] =
-// OBSOLETE   {
-// OBSOLETE     0x3507a00c,                    /* cmpobne 0x0, g14, LFn */
-// OBSOLETE     0x5cf01601,                    /* mov sp, g14           */
-// OBSOLETE     0x8c086030,                    /* lda 0x30(sp), sp      */
-// OBSOLETE     0xb2879000,                    /* LFn: stq  g0, (g14)   */
-// OBSOLETE     0xb2a7a010,                    /* stq g4, 0x10(g14)     */
-// OBSOLETE     0xb2c7a020                     /* stq g8, 0x20(g14)     */
-// OBSOLETE   };
-// OBSOLETE 
-// OBSOLETE   /* Accept a leaf procedure prologue code fragment if present.
-// OBSOLETE      Note that ip might point to either the leaf or non-leaf
-// OBSOLETE      entry point; we look for the non-leaf entry point first:  */
-// OBSOLETE 
-// OBSOLETE   within_leaf_prologue = 0;
-// OBSOLETE   if ((next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn1, &insn2))
-// OBSOLETE       && ((insn1 & 0xfffff000) == 0x8cf00000       /* lda LRx, g14 (MEMA) */
-// OBSOLETE      || (insn1 & 0xfffffc60) == 0x8cf03000))       /* lda LRx, g14 (MEMB) */
-// OBSOLETE     {
-// OBSOLETE       within_leaf_prologue = 1;
-// OBSOLETE       next_ip = NEXT_PROLOGUE_INSN (next_ip, limit, &insn1, &insn2);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Now look for the prologue code at a leaf entry point:  */
-// OBSOLETE 
-// OBSOLETE   if (next_ip
-// OBSOLETE       && (insn1 & 0xff87ffff) == 0x5c80161e        /* mov g14, gx */
-// OBSOLETE       && REG_SRCDST (insn1) <= G0_REGNUM + 7)
-// OBSOLETE     {
-// OBSOLETE       within_leaf_prologue = 1;
-// OBSOLETE       if ((next_ip = NEXT_PROLOGUE_INSN (next_ip, limit, &insn1, &insn2))
-// OBSOLETE      && (insn1 == 0x8cf00000       /* lda 0, g14 */
-// OBSOLETE          || insn1 == 0x5cf01e00))  /* mov 0, g14 */
-// OBSOLETE    {
-// OBSOLETE      ip = next_ip;
-// OBSOLETE      next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn1, &insn2);
-// OBSOLETE      within_leaf_prologue = 0;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* If something that looks like the beginning of a leaf prologue
-// OBSOLETE      has been seen, but the remainder of the prologue is missing, bail.
-// OBSOLETE      We don't know what we've got.  */
-// OBSOLETE 
-// OBSOLETE   if (within_leaf_prologue)
-// OBSOLETE     return (ip);
-// OBSOLETE 
-// OBSOLETE   /* Accept zero or more instances of "mov[qtl]? gx, ry", where y >= 4.
-// OBSOLETE      This may cause us to mistake the moving of a register
-// OBSOLETE      parameter to a local register for the saving of a callee-saved
-// OBSOLETE      register, but that can't be helped, since with the
-// OBSOLETE      "-fcall-saved" flag, any register can be made callee-saved.  */
-// OBSOLETE 
-// OBSOLETE   while (next_ip
-// OBSOLETE     && (insn1 & 0xfc802fb0) == 0x5c000610
-// OBSOLETE     && (dst = REG_SRCDST (insn1)) >= (R0_REGNUM + 4))
-// OBSOLETE     {
-// OBSOLETE       src = REG_SRC1 (insn1);
-// OBSOLETE       size = EXTRACT_FIELD (insn1, 24, 2) + 1;
-// OBSOLETE       save_addr = frame_addr + ((dst - R0_REGNUM) * 4);
-// OBSOLETE       while (size--)
-// OBSOLETE    {
-// OBSOLETE      fsr->regs[src++] = save_addr;
-// OBSOLETE      save_addr += 4;
-// OBSOLETE    }
-// OBSOLETE       ip = next_ip;
-// OBSOLETE       next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn1, &insn2);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Accept an optional "addo n, sp, sp" or "lda n(sp), sp".  */
-// OBSOLETE 
-// OBSOLETE   if (next_ip &&
-// OBSOLETE       ((insn1 & 0xffffffe0) == 0x59084800  /* addo n, sp, sp */
-// OBSOLETE        || (insn1 & 0xfffff000) == 0x8c086000       /* lda n(sp), sp (MEMA) */
-// OBSOLETE        || (insn1 & 0xfffffc60) == 0x8c087400))     /* lda n(sp), sp (MEMB) */
-// OBSOLETE     {
-// OBSOLETE       ip = next_ip;
-// OBSOLETE       next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn1, &insn2);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Accept zero or more instances of "st[qtl]? gx, n(fp)".  
-// OBSOLETE      This may cause us to mistake the copying of a register
-// OBSOLETE      parameter to the frame for the saving of a callee-saved
-// OBSOLETE      register, but that can't be helped, since with the
-// OBSOLETE      "-fcall-saved" flag, any register can be made callee-saved.
-// OBSOLETE      We can, however, refuse to accept a save of register g14,
-// OBSOLETE      since that is matched explicitly below.  */
-// OBSOLETE 
-// OBSOLETE   while (next_ip &&
-// OBSOLETE     ((insn1 & 0xf787f000) == 0x9287e000    /* stl? gx, n(fp) (MEMA) */
-// OBSOLETE      || (insn1 & 0xf787fc60) == 0x9287f400         /* stl? gx, n(fp) (MEMB) */
-// OBSOLETE      || (insn1 & 0xef87f000) == 0xa287e000         /* st[tq] gx, n(fp) (MEMA) */
-// OBSOLETE      || (insn1 & 0xef87fc60) == 0xa287f400)        /* st[tq] gx, n(fp) (MEMB) */
-// OBSOLETE     && ((src = MEM_SRCDST (insn1)) != G14_REGNUM))
-// OBSOLETE     {
-// OBSOLETE       save_addr = frame_addr + ((insn1 & BITMASK (12, 1))
-// OBSOLETE                            ? insn2 : MEMA_OFFSET (insn1));
-// OBSOLETE       size = (insn1 & BITMASK (29, 1)) ? ((insn1 & BITMASK (28, 1)) ? 4 : 3)
-// OBSOLETE    : ((insn1 & BITMASK (27, 1)) ? 2 : 1);
-// OBSOLETE       while (size--)
-// OBSOLETE    {
-// OBSOLETE      fsr->regs[src++] = save_addr;
-// OBSOLETE      save_addr += 4;
-// OBSOLETE    }
-// OBSOLETE       ip = next_ip;
-// OBSOLETE       next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn1, &insn2);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Accept the varargs prologue code if present.  */
-// OBSOLETE 
-// OBSOLETE   size = sizeof (varargs_prologue_code) / sizeof (int);
-// OBSOLETE   pcode = varargs_prologue_code;
-// OBSOLETE   while (size-- && next_ip && *pcode++ == insn1)
-// OBSOLETE     {
-// OBSOLETE       ip = next_ip;
-// OBSOLETE       next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn1, &insn2);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Accept an optional "st g14, n(fp)".  */
-// OBSOLETE 
-// OBSOLETE   if (next_ip &&
-// OBSOLETE       ((insn1 & 0xfffff000) == 0x92f7e000  /* st g14, n(fp) (MEMA) */
-// OBSOLETE        || (insn1 & 0xfffffc60) == 0x92f7f400))     /* st g14, n(fp) (MEMB) */
-// OBSOLETE     {
-// OBSOLETE       fsr->regs[G14_REGNUM] = frame_addr + ((insn1 & BITMASK (12, 1))
-// OBSOLETE                                        ? insn2 : MEMA_OFFSET (insn1));
-// OBSOLETE       ip = next_ip;
-// OBSOLETE       next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn1, &insn2);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Accept zero or one instance of "mov g13, ry", where y >= 4.
-// OBSOLETE      This is saving the address where a struct should be returned.  */
-// OBSOLETE 
-// OBSOLETE   if (next_ip
-// OBSOLETE       && (insn1 & 0xff802fbf) == 0x5c00061d
-// OBSOLETE       && (dst = REG_SRCDST (insn1)) >= (R0_REGNUM + 4))
-// OBSOLETE     {
-// OBSOLETE       save_addr = frame_addr + ((dst - R0_REGNUM) * 4);
-// OBSOLETE       fsr->regs[G0_REGNUM + 13] = save_addr;
-// OBSOLETE       ip = next_ip;
-// OBSOLETE #if 0                              /* We'll need this once there is a subsequent instruction examined. */
-// OBSOLETE       next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn1, &insn2);
-// OBSOLETE #endif
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return (ip);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Given an ip value corresponding to the start of a function,
-// OBSOLETE    return the ip of the first instruction after the function 
-// OBSOLETE    prologue.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE i960_skip_prologue (CORE_ADDR ip)
-// OBSOLETE {
-// OBSOLETE   struct frame_saved_regs saved_regs_dummy;
-// OBSOLETE   struct symtab_and_line sal;
-// OBSOLETE   CORE_ADDR limit;
-// OBSOLETE 
-// OBSOLETE   sal = find_pc_line (ip, 0);
-// OBSOLETE   limit = (sal.end) ? sal.end : 0xffffffff;
-// OBSOLETE 
-// OBSOLETE   return (examine_prologue (ip, limit, (CORE_ADDR) 0, &saved_regs_dummy));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Put here the code to store, into a struct frame_saved_regs,
-// OBSOLETE    the addresses of the saved registers of frame described by FRAME_INFO.
-// OBSOLETE    This includes special registers such as pc and fp saved in special
-// OBSOLETE    ways in the stack frame.  sp is even more special:
-// OBSOLETE    the address we return for it IS the sp for the next frame.
-// OBSOLETE 
-// OBSOLETE    We cache the result of doing this in the frame_obstack, since it is
-// OBSOLETE    fairly expensive.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE frame_find_saved_regs (struct frame_info *fi, struct frame_saved_regs *fsr)
-// OBSOLETE {
-// OBSOLETE   register CORE_ADDR next_addr;
-// OBSOLETE   register CORE_ADDR *saved_regs;
-// OBSOLETE   register int regnum;
-// OBSOLETE   register struct frame_saved_regs *cache_fsr;
-// OBSOLETE   CORE_ADDR ip;
-// OBSOLETE   struct symtab_and_line sal;
-// OBSOLETE   CORE_ADDR limit;
-// OBSOLETE 
-// OBSOLETE   if (!fi->fsr)
-// OBSOLETE     {
-// OBSOLETE       cache_fsr = (struct frame_saved_regs *)
-// OBSOLETE    frame_obstack_alloc (sizeof (struct frame_saved_regs));
-// OBSOLETE       memset (cache_fsr, '\0', sizeof (struct frame_saved_regs));
-// OBSOLETE       fi->fsr = cache_fsr;
-// OBSOLETE 
-// OBSOLETE       /* Find the start and end of the function prologue.  If the PC
-// OBSOLETE          is in the function prologue, we only consider the part that
-// OBSOLETE          has executed already.  */
-// OBSOLETE 
-// OBSOLETE       ip = get_pc_function_start (fi->pc);
-// OBSOLETE       sal = find_pc_line (ip, 0);
-// OBSOLETE       limit = (sal.end && sal.end < fi->pc) ? sal.end : fi->pc;
-// OBSOLETE 
-// OBSOLETE       examine_prologue (ip, limit, fi->frame, cache_fsr);
-// OBSOLETE 
-// OBSOLETE       /* Record the addresses at which the local registers are saved.
-// OBSOLETE          Strictly speaking, we should only do this for non-leaf procedures,
-// OBSOLETE          but no one will ever look at these values if it is a leaf procedure,
-// OBSOLETE          since local registers are always caller-saved.  */
-// OBSOLETE 
-// OBSOLETE       next_addr = (CORE_ADDR) fi->frame;
-// OBSOLETE       saved_regs = cache_fsr->regs;
-// OBSOLETE       for (regnum = R0_REGNUM; regnum <= R15_REGNUM; regnum++)
-// OBSOLETE    {
-// OBSOLETE      *saved_regs++ = next_addr;
-// OBSOLETE      next_addr += 4;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       cache_fsr->regs[FP_REGNUM] = cache_fsr->regs[PFP_REGNUM];
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   *fsr = *fi->fsr;
-// OBSOLETE 
-// OBSOLETE   /* Fetch the value of the sp from memory every time, since it
-// OBSOLETE      is conceivable that it has changed since the cache was flushed.  
-// OBSOLETE      This unfortunately undoes much of the savings from caching the 
-// OBSOLETE      saved register values.  I suggest adding an argument to 
-// OBSOLETE      get_frame_saved_regs () specifying the register number we're
-// OBSOLETE      interested in (or -1 for all registers).  This would be passed
-// OBSOLETE      through to FRAME_FIND_SAVED_REGS (), permitting more efficient
-// OBSOLETE      computation of saved register addresses (e.g., on the i960,
-// OBSOLETE      we don't have to examine the prologue to find local registers). 
-// OBSOLETE      -- markf@wrs.com 
-// OBSOLETE      FIXME, we don't need to refetch this, since the cache is cleared
-// OBSOLETE      every time the child process is restarted.  If GDB itself
-// OBSOLETE      modifies SP, it has to clear the cache by hand (does it?).  -gnu */
-// OBSOLETE 
-// OBSOLETE   fsr->regs[SP_REGNUM] = read_memory_integer (fsr->regs[SP_REGNUM], 4);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Return the address of the argument block for the frame
-// OBSOLETE    described by FI.  Returns 0 if the address is unknown.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE frame_args_address (struct frame_info *fi, int must_be_correct)
-// OBSOLETE {
-// OBSOLETE   struct frame_saved_regs fsr;
-// OBSOLETE   CORE_ADDR ap;
-// OBSOLETE 
-// OBSOLETE   /* If g14 was saved in the frame by the function prologue code, return
-// OBSOLETE      the saved value.  If the frame is current and we are being sloppy,
-// OBSOLETE      return the value of g14.  Otherwise, return zero.  */
-// OBSOLETE 
-// OBSOLETE   get_frame_saved_regs (fi, &fsr);
-// OBSOLETE   if (fsr.regs[G14_REGNUM])
-// OBSOLETE     ap = read_memory_integer (fsr.regs[G14_REGNUM], 4);
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       if (must_be_correct)
-// OBSOLETE    return 0;               /* Don't cache this result */
-// OBSOLETE       if (get_next_frame (fi))
-// OBSOLETE    ap = 0;
-// OBSOLETE       else
-// OBSOLETE    ap = read_register (G14_REGNUM);
-// OBSOLETE       if (ap == 0)
-// OBSOLETE    ap = fi->frame;
-// OBSOLETE     }
-// OBSOLETE   fi->arg_pointer = ap;            /* Cache it for next time */
-// OBSOLETE   return ap;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Return the address of the return struct for the frame
-// OBSOLETE    described by FI.  Returns 0 if the address is unknown.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE frame_struct_result_address (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   struct frame_saved_regs fsr;
-// OBSOLETE   CORE_ADDR ap;
-// OBSOLETE 
-// OBSOLETE   /* If the frame is non-current, check to see if g14 was saved in the
-// OBSOLETE      frame by the function prologue code; return the saved value if so,
-// OBSOLETE      zero otherwise.  If the frame is current, return the value of g14.
-// OBSOLETE 
-// OBSOLETE      FIXME, shouldn't this use the saved value as long as we are past
-// OBSOLETE      the function prologue, and only use the current value if we have
-// OBSOLETE      no saved value and are at TOS?   -- gnu@cygnus.com */
-// OBSOLETE 
-// OBSOLETE   if (get_next_frame (fi))
-// OBSOLETE     {
-// OBSOLETE       get_frame_saved_regs (fi, &fsr);
-// OBSOLETE       if (fsr.regs[G13_REGNUM])
-// OBSOLETE    ap = read_memory_integer (fsr.regs[G13_REGNUM], 4);
-// OBSOLETE       else
-// OBSOLETE    ap = 0;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     ap = read_register (G13_REGNUM);
-// OBSOLETE 
-// OBSOLETE   return ap;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Return address to which the currently executing leafproc will return,
-// OBSOLETE    or 0 if IP, the value of the instruction pointer from the currently
-// OBSOLETE    executing function, is not in a leafproc (or if we can't tell if it
-// OBSOLETE    is).
-// OBSOLETE 
-// OBSOLETE    Do this by finding the starting address of the routine in which IP lies.
-// OBSOLETE    If the instruction there is "mov g14, gx" (where x is in [0,7]), this
-// OBSOLETE    is a leafproc and the return address is in register gx.  Well, this is
-// OBSOLETE    true unless the return address points at a RET instruction in the current
-// OBSOLETE    procedure, which indicates that we have a 'dual entry' routine that
-// OBSOLETE    has been entered through the CALL entry point.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE leafproc_return (CORE_ADDR ip)
-// OBSOLETE {
-// OBSOLETE   register struct minimal_symbol *msymbol;
-// OBSOLETE   char *p;
-// OBSOLETE   int dst;
-// OBSOLETE   unsigned int insn1, insn2;
-// OBSOLETE   CORE_ADDR return_addr;
-// OBSOLETE 
-// OBSOLETE   if ((msymbol = lookup_minimal_symbol_by_pc (ip)) != NULL)
-// OBSOLETE     {
-// OBSOLETE       if ((p = strchr (SYMBOL_NAME (msymbol), '.')) && STREQ (p, ".lf"))
-// OBSOLETE    {
-// OBSOLETE      if (next_insn (SYMBOL_VALUE_ADDRESS (msymbol), &insn1, &insn2)
-// OBSOLETE          && (insn1 & 0xff87ffff) == 0x5c80161e     /* mov g14, gx */
-// OBSOLETE          && (dst = REG_SRCDST (insn1)) <= G0_REGNUM + 7)
-// OBSOLETE        {
-// OBSOLETE          /* Get the return address.  If the "mov g14, gx" 
-// OBSOLETE             instruction hasn't been executed yet, read
-// OBSOLETE             the return address from g14; otherwise, read it
-// OBSOLETE             from the register into which g14 was moved.  */
-// OBSOLETE 
-// OBSOLETE          return_addr =
-// OBSOLETE            read_register ((ip == SYMBOL_VALUE_ADDRESS (msymbol))
-// OBSOLETE                           ? G14_REGNUM : dst);
-// OBSOLETE 
-// OBSOLETE          /* We know we are in a leaf procedure, but we don't know
-// OBSOLETE             whether the caller actually did a "bal" to the ".lf"
-// OBSOLETE             entry point, or a normal "call" to the non-leaf entry
-// OBSOLETE             point one instruction before.  In the latter case, the
-// OBSOLETE             return address will be the address of a "ret"
-// OBSOLETE             instruction within the procedure itself.  We test for
-// OBSOLETE             this below.  */
-// OBSOLETE 
-// OBSOLETE          if (!next_insn (return_addr, &insn1, &insn2)
-// OBSOLETE              || (insn1 & 0xff000000) != 0xa000000  /* ret */
-// OBSOLETE              || lookup_minimal_symbol_by_pc (return_addr) != msymbol)
-// OBSOLETE            return (return_addr);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Immediately after a function call, return the saved pc.
-// OBSOLETE    Can't go through the frames for this because on some machines
-// OBSOLETE    the new frame is not set up until the new function executes
-// OBSOLETE    some instructions. 
-// OBSOLETE    On the i960, the frame *is* set up immediately after the call,
-// OBSOLETE    unless the function is a leaf procedure.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE saved_pc_after_call (struct frame_info *frame)
-// OBSOLETE {
-// OBSOLETE   CORE_ADDR saved_pc;
-// OBSOLETE 
-// OBSOLETE   saved_pc = leafproc_return (get_frame_pc (frame));
-// OBSOLETE   if (!saved_pc)
-// OBSOLETE     saved_pc = FRAME_SAVED_PC (frame);
-// OBSOLETE 
-// OBSOLETE   return saved_pc;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Discard from the stack the innermost frame,
-// OBSOLETE    restoring all saved registers.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE i960_pop_frame (void)
-// OBSOLETE {
-// OBSOLETE   register struct frame_info *current_fi, *prev_fi;
-// OBSOLETE   register int i;
-// OBSOLETE   CORE_ADDR save_addr;
-// OBSOLETE   CORE_ADDR leaf_return_addr;
-// OBSOLETE   struct frame_saved_regs fsr;
-// OBSOLETE   char local_regs_buf[16 * 4];
-// OBSOLETE 
-// OBSOLETE   current_fi = get_current_frame ();
-// OBSOLETE 
-// OBSOLETE   /* First, undo what the hardware does when we return.
-// OBSOLETE      If this is a non-leaf procedure, restore local registers from
-// OBSOLETE      the save area in the calling frame.  Otherwise, load the return
-// OBSOLETE      address obtained from leafproc_return () into the rip.  */
-// OBSOLETE 
-// OBSOLETE   leaf_return_addr = leafproc_return (current_fi->pc);
-// OBSOLETE   if (!leaf_return_addr)
-// OBSOLETE     {
-// OBSOLETE       /* Non-leaf procedure.  Restore local registers, incl IP.  */
-// OBSOLETE       prev_fi = get_prev_frame (current_fi);
-// OBSOLETE       read_memory (prev_fi->frame, local_regs_buf, sizeof (local_regs_buf));
-// OBSOLETE       write_register_bytes (REGISTER_BYTE (R0_REGNUM), local_regs_buf,
-// OBSOLETE                        sizeof (local_regs_buf));
-// OBSOLETE 
-// OBSOLETE       /* Restore frame pointer.  */
-// OBSOLETE       write_register (FP_REGNUM, prev_fi->frame);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       /* Leaf procedure.  Just restore the return address into the IP.  */
-// OBSOLETE       write_register (RIP_REGNUM, leaf_return_addr);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Now restore any global regs that the current function had saved. */
-// OBSOLETE   get_frame_saved_regs (current_fi, &fsr);
-// OBSOLETE   for (i = G0_REGNUM; i < G14_REGNUM; i++)
-// OBSOLETE     {
-// OBSOLETE       save_addr = fsr.regs[i];
-// OBSOLETE       if (save_addr != 0)
-// OBSOLETE    write_register (i, read_memory_integer (save_addr, 4));
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Flush the frame cache, create a frame for the new innermost frame,
-// OBSOLETE      and make it the current frame.  */
-// OBSOLETE 
-// OBSOLETE   flush_cached_frames ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Given a 960 stop code (fault or trace), return the signal which
-// OBSOLETE    corresponds.  */
-// OBSOLETE 
-// OBSOLETE enum target_signal
-// OBSOLETE i960_fault_to_signal (int fault)
-// OBSOLETE {
-// OBSOLETE   switch (fault)
-// OBSOLETE     {
-// OBSOLETE     case 0:
-// OBSOLETE       return TARGET_SIGNAL_BUS;    /* parallel fault */
-// OBSOLETE     case 1:
-// OBSOLETE       return TARGET_SIGNAL_UNKNOWN;
-// OBSOLETE     case 2:
-// OBSOLETE       return TARGET_SIGNAL_ILL;    /* operation fault */
-// OBSOLETE     case 3:
-// OBSOLETE       return TARGET_SIGNAL_FPE;    /* arithmetic fault */
-// OBSOLETE     case 4:
-// OBSOLETE       return TARGET_SIGNAL_FPE;    /* floating point fault */
-// OBSOLETE 
-// OBSOLETE       /* constraint fault.  This appears not to distinguish between
-// OBSOLETE          a range constraint fault (which should be SIGFPE) and a privileged
-// OBSOLETE          fault (which should be SIGILL).  */
-// OBSOLETE     case 5:
-// OBSOLETE       return TARGET_SIGNAL_ILL;
-// OBSOLETE 
-// OBSOLETE     case 6:
-// OBSOLETE       return TARGET_SIGNAL_SEGV;   /* virtual memory fault */
-// OBSOLETE 
-// OBSOLETE       /* protection fault.  This is for an out-of-range argument to
-// OBSOLETE          "calls".  I guess it also could be SIGILL. */
-// OBSOLETE     case 7:
-// OBSOLETE       return TARGET_SIGNAL_SEGV;
-// OBSOLETE 
-// OBSOLETE     case 8:
-// OBSOLETE       return TARGET_SIGNAL_BUS;    /* machine fault */
-// OBSOLETE     case 9:
-// OBSOLETE       return TARGET_SIGNAL_BUS;    /* structural fault */
-// OBSOLETE     case 0xa:
-// OBSOLETE       return TARGET_SIGNAL_ILL;    /* type fault */
-// OBSOLETE     case 0xb:
-// OBSOLETE       return TARGET_SIGNAL_UNKNOWN;        /* reserved fault */
-// OBSOLETE     case 0xc:
-// OBSOLETE       return TARGET_SIGNAL_BUS;    /* process fault */
-// OBSOLETE     case 0xd:
-// OBSOLETE       return TARGET_SIGNAL_SEGV;   /* descriptor fault */
-// OBSOLETE     case 0xe:
-// OBSOLETE       return TARGET_SIGNAL_BUS;    /* event fault */
-// OBSOLETE     case 0xf:
-// OBSOLETE       return TARGET_SIGNAL_UNKNOWN;        /* reserved fault */
-// OBSOLETE     case 0x10:
-// OBSOLETE       return TARGET_SIGNAL_TRAP;   /* single-step trace */
-// OBSOLETE     case 0x11:
-// OBSOLETE       return TARGET_SIGNAL_TRAP;   /* branch trace */
-// OBSOLETE     case 0x12:
-// OBSOLETE       return TARGET_SIGNAL_TRAP;   /* call trace */
-// OBSOLETE     case 0x13:
-// OBSOLETE       return TARGET_SIGNAL_TRAP;   /* return trace */
-// OBSOLETE     case 0x14:
-// OBSOLETE       return TARGET_SIGNAL_TRAP;   /* pre-return trace */
-// OBSOLETE     case 0x15:
-// OBSOLETE       return TARGET_SIGNAL_TRAP;   /* supervisor call trace */
-// OBSOLETE     case 0x16:
-// OBSOLETE       return TARGET_SIGNAL_TRAP;   /* breakpoint trace */
-// OBSOLETE     default:
-// OBSOLETE       return TARGET_SIGNAL_UNKNOWN;
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /****************************************/
-// OBSOLETE /* MEM format                           */
-// OBSOLETE /****************************************/
-// OBSOLETE 
-// OBSOLETE struct tabent
-// OBSOLETE {
-// OBSOLETE   char *name;
-// OBSOLETE   char numops;
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE /* Return instruction length, either 4 or 8.  When NOPRINT is non-zero
-// OBSOLETE    (TRUE), don't output any text.  (Actually, as implemented, if NOPRINT
-// OBSOLETE    is 0, abort() is called.) */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE mem (unsigned long memaddr, unsigned long word1, unsigned long word2,
-// OBSOLETE      int noprint)
-// OBSOLETE {
-// OBSOLETE   int i, j;
-// OBSOLETE   int len;
-// OBSOLETE   int mode;
-// OBSOLETE   int offset;
-// OBSOLETE   const char *reg1, *reg2, *reg3;
-// OBSOLETE 
-// OBSOLETE   /* This lookup table is too sparse to make it worth typing in, but not
-// OBSOLETE    * so large as to make a sparse array necessary.  We allocate the
-// OBSOLETE    * table at runtime, initialize all entries to empty, and copy the
-// OBSOLETE    * real ones in from an initialization table.
-// OBSOLETE    *
-// OBSOLETE    * NOTE: In this table, the meaning of 'numops' is:
-// OBSOLETE    *       1: single operand
-// OBSOLETE    *       2: 2 operands, load instruction
-// OBSOLETE    *      -2: 2 operands, store instruction
-// OBSOLETE    */
-// OBSOLETE   static struct tabent *mem_tab = NULL;
-// OBSOLETE /* Opcodes of 0x8X, 9X, aX, bX, and cX must be in the table.  */
-// OBSOLETE #define MEM_MIN    0x80
-// OBSOLETE #define MEM_MAX    0xcf
-// OBSOLETE #define MEM_SIZ    ((MEM_MAX-MEM_MIN+1) * sizeof(struct tabent))
-// OBSOLETE 
-// OBSOLETE   static struct
-// OBSOLETE     {
-// OBSOLETE       int opcode;
-// OBSOLETE       char *name;
-// OBSOLETE       char numops;
-// OBSOLETE     }
-// OBSOLETE   mem_init[] =
-// OBSOLETE   {
-// OBSOLETE     0x80, "ldob", 2,
-// OBSOLETE       0x82, "stob", -2,
-// OBSOLETE       0x84, "bx", 1,
-// OBSOLETE       0x85, "balx", 2,
-// OBSOLETE       0x86, "callx", 1,
-// OBSOLETE       0x88, "ldos", 2,
-// OBSOLETE       0x8a, "stos", -2,
-// OBSOLETE       0x8c, "lda", 2,
-// OBSOLETE       0x90, "ld", 2,
-// OBSOLETE       0x92, "st", -2,
-// OBSOLETE       0x98, "ldl", 2,
-// OBSOLETE       0x9a, "stl", -2,
-// OBSOLETE       0xa0, "ldt", 2,
-// OBSOLETE       0xa2, "stt", -2,
-// OBSOLETE       0xb0, "ldq", 2,
-// OBSOLETE       0xb2, "stq", -2,
-// OBSOLETE       0xc0, "ldib", 2,
-// OBSOLETE       0xc2, "stib", -2,
-// OBSOLETE       0xc8, "ldis", 2,
-// OBSOLETE       0xca, "stis", -2,
-// OBSOLETE       0, NULL, 0
-// OBSOLETE   };
-// OBSOLETE 
-// OBSOLETE   if (mem_tab == NULL)
-// OBSOLETE     {
-// OBSOLETE       mem_tab = (struct tabent *) xmalloc (MEM_SIZ);
-// OBSOLETE       memset (mem_tab, '\0', MEM_SIZ);
-// OBSOLETE       for (i = 0; mem_init[i].opcode != 0; i++)
-// OBSOLETE    {
-// OBSOLETE      j = mem_init[i].opcode - MEM_MIN;
-// OBSOLETE      mem_tab[j].name = mem_init[i].name;
-// OBSOLETE      mem_tab[j].numops = mem_init[i].numops;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   i = ((word1 >> 24) & 0xff) - MEM_MIN;
-// OBSOLETE   mode = (word1 >> 10) & 0xf;
-// OBSOLETE 
-// OBSOLETE   if ((mem_tab[i].name != NULL)    /* Valid instruction */
-// OBSOLETE       && ((mode == 5) || (mode >= 12)))
-// OBSOLETE     {                              /* With 32-bit displacement */
-// OBSOLETE       len = 8;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       len = 4;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (noprint)
-// OBSOLETE     {
-// OBSOLETE       return len;
-// OBSOLETE     }
-// OBSOLETE   internal_error (__FILE__, __LINE__, "failed internal consistency check");
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Read the i960 instruction at 'memaddr' and return the address of 
-// OBSOLETE    the next instruction after that, or 0 if 'memaddr' is not the
-// OBSOLETE    address of a valid instruction.  The first word of the instruction
-// OBSOLETE    is stored at 'pword1', and the second word, if any, is stored at
-// OBSOLETE    'pword2'.  */
-// OBSOLETE 
-// OBSOLETE static CORE_ADDR
-// OBSOLETE next_insn (CORE_ADDR memaddr, unsigned int *pword1, unsigned int *pword2)
-// OBSOLETE {
-// OBSOLETE   int len;
-// OBSOLETE   char buf[8];
-// OBSOLETE 
-// OBSOLETE   /* Read the two (potential) words of the instruction at once,
-// OBSOLETE      to eliminate the overhead of two calls to read_memory ().
-// OBSOLETE      FIXME: Loses if the first one is readable but the second is not
-// OBSOLETE      (e.g. last word of the segment).  */
-// OBSOLETE 
-// OBSOLETE   read_memory (memaddr, buf, 8);
-// OBSOLETE   *pword1 = extract_unsigned_integer (buf, 4);
-// OBSOLETE   *pword2 = extract_unsigned_integer (buf + 4, 4);
-// OBSOLETE 
-// OBSOLETE   /* Divide instruction set into classes based on high 4 bits of opcode */
-// OBSOLETE 
-// OBSOLETE   switch ((*pword1 >> 28) & 0xf)
-// OBSOLETE     {
-// OBSOLETE     case 0x0:
-// OBSOLETE     case 0x1:                      /* ctrl */
-// OBSOLETE 
-// OBSOLETE     case 0x2:
-// OBSOLETE     case 0x3:                      /* cobr */
-// OBSOLETE 
-// OBSOLETE     case 0x5:
-// OBSOLETE     case 0x6:
-// OBSOLETE     case 0x7:                      /* reg */
-// OBSOLETE       len = 4;
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case 0x8:
-// OBSOLETE     case 0x9:
-// OBSOLETE     case 0xa:
-// OBSOLETE     case 0xb:
-// OBSOLETE     case 0xc:
-// OBSOLETE       len = mem (memaddr, *pword1, *pword2, 1);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     default:                       /* invalid instruction */
-// OBSOLETE       len = 0;
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (len)
-// OBSOLETE     return memaddr + len;
-// OBSOLETE   else
-// OBSOLETE     return 0;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* 'start_frame' is a variable in the MON960 runtime startup routine
-// OBSOLETE    that contains the frame pointer of the 'start' routine (the routine
-// OBSOLETE    that calls 'main').  By reading its contents out of remote memory,
-// OBSOLETE    we can tell where the frame chain ends:  backtraces should halt before
-// OBSOLETE    they display this frame.  */
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE mon960_frame_chain_valid (CORE_ADDR chain, struct frame_info *curframe)
-// OBSOLETE {
-// OBSOLETE   struct symbol *sym;
-// OBSOLETE   struct minimal_symbol *msymbol;
-// OBSOLETE 
-// OBSOLETE   /* crtmon960.o is an assembler module that is assumed to be linked
-// OBSOLETE    * first in an i80960 executable.  It contains the true entry point;
-// OBSOLETE    * it performs startup up initialization and then calls 'main'.
-// OBSOLETE    *
-// OBSOLETE    * 'sf' is the name of a variable in crtmon960.o that is set
-// OBSOLETE    *      during startup to the address of the first frame.
-// OBSOLETE    *
-// OBSOLETE    * 'a' is the address of that variable in 80960 memory.
-// OBSOLETE    */
-// OBSOLETE   static char sf[] = "start_frame";
-// OBSOLETE   CORE_ADDR a;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE   chain &= ~0x3f;          /* Zero low 6 bits because previous frame pointers
-// OBSOLETE                               contain return status info in them.  */
-// OBSOLETE   if (chain == 0)
-// OBSOLETE     {
-// OBSOLETE       return 0;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   sym = lookup_symbol (sf, 0, VAR_NAMESPACE, (int *) NULL,
-// OBSOLETE                   (struct symtab **) NULL);
-// OBSOLETE   if (sym != 0)
-// OBSOLETE     {
-// OBSOLETE       a = SYMBOL_VALUE (sym);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       msymbol = lookup_minimal_symbol (sf, NULL, NULL);
-// OBSOLETE       if (msymbol == NULL)
-// OBSOLETE    return 0;
-// OBSOLETE       a = SYMBOL_VALUE_ADDRESS (msymbol);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return (chain != read_memory_integer (a, 4));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_i960_tdep (void)
-// OBSOLETE {
-// OBSOLETE   check_host ();
-// OBSOLETE 
-// OBSOLETE   tm_print_insn = print_insn_i960;
-// OBSOLETE }
index 76b8235b4f9145e657ebfe6bcfc5ecb1c6c96eb6..492da0727ae28428440645ee721df6b7e3c85f19 100644 (file)
@@ -21,6 +21,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
+#include "gdb_string.h"
 #include "inferior.h"
 #include "target.h"
 #include "gdbcore.h"
index 59c7c73df659f417cf5880e56adad916c6fd3b81..fab210aa860e90b3a863b67c6b7cc6201a7be0ef 100644 (file)
@@ -328,9 +328,9 @@ read_sigcontext_register (struct frame_info *frame, int regnum)
   if (frame == NULL)
     internal_error (__FILE__, __LINE__,
                    "read_sigcontext_register: NULL frame");
-  if (!frame->signal_handler_caller)
+  if (!(get_frame_type (frame) == SIGTRAMP_FRAME))
     internal_error (__FILE__, __LINE__,
-                   "read_sigcontext_register: frame not a signal_handler_caller");
+                   "read_sigcontext_register: frame not a signal trampoline");
   if (SIGCONTEXT_REGISTER_ADDRESS == 0)
     internal_error (__FILE__, __LINE__,
                    "read_sigcontext_register: SIGCONTEXT_REGISTER_ADDRESS is 0");
@@ -703,9 +703,9 @@ rse_address_add(CORE_ADDR addr, int nslots)
 CORE_ADDR
 ia64_frame_chain (struct frame_info *frame)
 {
-  if (frame->signal_handler_caller)
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
     return read_sigcontext_register (frame, sp_regnum);
-  else if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  else if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     return frame->frame;
   else
     {
@@ -720,9 +720,9 @@ ia64_frame_chain (struct frame_info *frame)
 CORE_ADDR
 ia64_frame_saved_pc (struct frame_info *frame)
 {
-  if (frame->signal_handler_caller)
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
     return read_sigcontext_register (frame, pc_regnum);
-  else if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  else if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     return deprecated_read_register_dummy (frame->pc, frame->frame, pc_regnum);
   else
     {
@@ -730,7 +730,7 @@ ia64_frame_saved_pc (struct frame_info *frame)
 
       if (frame->saved_regs[IA64_VRAP_REGNUM])
        return read_memory_integer (frame->saved_regs[IA64_VRAP_REGNUM], 8);
-      else if (frame->next && frame->next->signal_handler_caller)
+      else if (frame->next && (get_frame_type (frame->next) == SIGTRAMP_FRAME))
        return read_sigcontext_register (frame->next, IA64_BR0_REGNUM);
       else     /* either frameless, or not far enough along in the prologue... */
        return ia64_saved_pc_after_call (frame);
@@ -1163,7 +1163,7 @@ ia64_frame_init_saved_regs (struct frame_info *frame)
   if (frame->saved_regs)
     return;
 
-  if (frame->signal_handler_caller && SIGCONTEXT_REGISTER_ADDRESS)
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME) && SIGCONTEXT_REGISTER_ADDRESS)
     {
       int regno;
 
@@ -1233,7 +1233,7 @@ ia64_get_saved_register (char *raw_buffer,
   if (lval != NULL)
     *lval = not_lval;
 
-  is_dummy_frame = PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame);
+  is_dummy_frame = DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame);
 
   if (regnum == SP_REGNUM && frame->next)
     {
@@ -1481,7 +1481,7 @@ ia64_init_extra_frame_info (int fromleaf, struct frame_info *frame)
 {
   CORE_ADDR bsp, cfm;
   int next_frame_is_call_dummy = ((frame->next != NULL)
-    && PC_IN_CALL_DUMMY (frame->next->pc, frame->next->frame,
+    && DEPRECATED_PC_IN_CALL_DUMMY (frame->next->pc, frame->next->frame,
                                           frame->next->frame));
 
   frame->extra_info = (struct frame_extra_info *)
@@ -1493,7 +1493,7 @@ ia64_init_extra_frame_info (int fromleaf, struct frame_info *frame)
       cfm = read_register (IA64_CFM_REGNUM);
 
     }
-  else if (frame->next->signal_handler_caller)
+  else if ((get_frame_type (frame->next) == SIGTRAMP_FRAME))
     {
       bsp = read_sigcontext_register (frame->next, IA64_BSP_REGNUM);
       cfm = read_sigcontext_register (frame->next, IA64_CFM_REGNUM);
@@ -1515,10 +1515,10 @@ ia64_init_extra_frame_info (int fromleaf, struct frame_info *frame)
 
       if (frn->saved_regs[IA64_CFM_REGNUM] != 0)
        cfm = read_memory_integer (frn->saved_regs[IA64_CFM_REGNUM], 8);
-      else if (frn->next && frn->next->signal_handler_caller)
+      else if (frn->next && (get_frame_type (frn->next) == SIGTRAMP_FRAME))
        cfm = read_sigcontext_register (frn->next, IA64_PFS_REGNUM);
       else if (frn->next
-               && PC_IN_CALL_DUMMY (frn->next->pc, frn->next->frame,
+               && DEPRECATED_PC_IN_CALL_DUMMY (frn->next->pc, frn->next->frame,
                                                   frn->next->frame))
        cfm = deprecated_read_register_dummy (frn->next->pc, frn->next->frame,
                                              IA64_PFS_REGNUM);
@@ -1531,7 +1531,7 @@ ia64_init_extra_frame_info (int fromleaf, struct frame_info *frame)
   frame->extra_info->sof = cfm & 0x7f;
   frame->extra_info->sol = (cfm >> 7) & 0x7f;
   if (frame->next == 0 
-      || frame->next->signal_handler_caller 
+      || (get_frame_type (frame->next) == SIGTRAMP_FRAME) 
       || next_frame_is_call_dummy)
     frame->extra_info->bsp = rse_address_add (bsp, -frame->extra_info->sof);
   else
@@ -2120,6 +2120,9 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   gdbarch = gdbarch_alloc (&info, tdep);
   tdep->os_ident = os_ident;
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
 
   /* Set the method of obtaining the sigcontext addresses at which
      registers are saved.  The method of checking to see if
@@ -2204,7 +2207,6 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_write_pc (gdbarch, ia64_write_pc);
 
   /* Settings for calling functions in the inferior.  */
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
   set_gdbarch_push_arguments (gdbarch, ia64_push_arguments);
   set_gdbarch_push_return_address (gdbarch, ia64_push_return_address);
@@ -2231,11 +2233,9 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_read_sp (gdbarch, generic_target_read_sp);
   set_gdbarch_write_sp (gdbarch, generic_target_write_sp);
 
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
   set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
index 9988f629f493d28e8cb54ece2df1b222ebdcb4bc..6775beb6f2dd6ebff99b181d06c480618a2d76e3 100644 (file)
@@ -183,7 +183,7 @@ CORE_ADDR step_range_end;   /* Exclusive */
    This is how we know when we step into a subroutine call,
    and how to set the frame for the breakpoint used to step out.  */
 
-CORE_ADDR step_frame_address;
+struct frame_id step_frame_id;
 
 /* Our notion of the current stack pointer.  */
 
@@ -279,7 +279,7 @@ construct_inferior_arguments (struct gdbarch *gdbarch, int argc, char **argv)
 
       /* We over-compute the size.  It shouldn't matter.  */
       for (i = 0; i < argc; ++i)
-       length += 2 * strlen (argv[i]) + 1;
+       length += 2 * strlen (argv[i]) + 1 + 2 * (argv[i][0] == '\0');
 
       result = (char *) xmalloc (length);
       out = result;
@@ -289,11 +289,20 @@ construct_inferior_arguments (struct gdbarch *gdbarch, int argc, char **argv)
          if (i > 0)
            *out++ = ' ';
 
-         for (cp = argv[i]; *cp; ++cp)
+         /* Need to handle empty arguments specially.  */
+         if (argv[i][0] == '\0')
            {
-             if (strchr (special, *cp) != NULL)
-               *out++ = '\\';
-             *out++ = *cp;
+             *out++ = '\'';
+             *out++ = '\'';
+           }
+         else
+           {
+             for (cp = argv[i]; *cp; ++cp)
+               {
+                 if (strchr (special, *cp) != NULL)
+                   *out++ = '\\';
+                 *out++ = *cp;
+               }
            }
        }
       *out = '\0';
@@ -619,7 +628,7 @@ step_1 (int skip_subroutines, int single_inst, char *count_string)
          frame = get_current_frame ();
          if (!frame)           /* Avoid coredump here.  Why tho? */
            error ("No current frame");
-         step_frame_address = FRAME_FP (frame);
+         step_frame_id = get_frame_id (frame);
          step_sp = read_sp ();
 
          if (!single_inst)
@@ -734,7 +743,7 @@ step_once (int skip_subroutines, int single_inst, int count)
       frame = get_current_frame ();
       if (!frame)              /* Avoid coredump here.  Why tho? */
        error ("No current frame");
-      step_frame_address = FRAME_FP (frame);
+      step_frame_id = get_frame_id (frame);
       step_sp = read_sp ();
 
       if (!single_inst)
@@ -993,27 +1002,28 @@ run_stack_dummy (CORE_ADDR addr, struct regcache *buffer)
        }
       else
        {
+         /* If defined, CALL_DUMMY_BREAKPOINT_OFFSET is where we need
+            to put a breakpoint instruction.  If not, the call dummy
+            already has the breakpoint instruction in it.
+
+            ADDR IS THE ADDRESS of the call dummy plus the
+            CALL_DUMMY_START_OFFSET, so we need to subtract the
+            CALL_DUMMY_START_OFFSET.  */
          sal.pc = addr - CALL_DUMMY_START_OFFSET + CALL_DUMMY_BREAKPOINT_OFFSET;
        }
       sal.section = find_pc_overlay (sal.pc);
 
-      /* Set up a FRAME for the dummy frame so we can pass it to
-         set_momentary_breakpoint.  We need to give the breakpoint a
-         frame in case there is only one copy of the dummy (e.g.
-         CALL_DUMMY_LOCATION == AFTER_TEXT_END).  */
-      flush_cached_frames ();
-      set_current_frame (create_new_frame (read_fp (), sal.pc));
-
-      /* If defined, CALL_DUMMY_BREAKPOINT_OFFSET is where we need to put
-         a breakpoint instruction.  If not, the call dummy already has the
-         breakpoint instruction in it.
-
-         addr is the address of the call dummy plus the CALL_DUMMY_START_OFFSET,
-         so we need to subtract the CALL_DUMMY_START_OFFSET.  */
-      bpt = set_momentary_breakpoint (sal,
-                                     get_current_frame (),
-                                     bp_call_dummy);
-      bpt->disposition = disp_del;
+      {
+       /* Set up a frame ID for the dummy frame so we can pass it to
+          set_momentary_breakpoint.  We need to give the breakpoint a
+          frame ID so that the breakpoint code can correctly
+          re-identify the dummy breakpoint.  */
+       struct frame_id frame = frame_id_build (read_fp (), sal.pc);
+       /* Create a momentary breakpoint at the return address of the
+           inferior.  That way it breaks when it returns.  */
+       bpt = set_momentary_breakpoint (sal, frame, bp_call_dummy);
+       bpt->disposition = disp_del;
+      }
 
       /* If all error()s out of proceed ended up calling normal_stop (and
          perhaps they should; it already does in the special case of error
@@ -1097,7 +1107,7 @@ until_next_command (int from_tty)
     }
 
   step_over_calls = STEP_OVER_ALL;
-  step_frame_address = FRAME_FP (frame);
+  step_frame_id = get_frame_id (frame);
   step_sp = read_sp ();
 
   step_multi = 0;              /* Only one call to proceed */
@@ -1264,19 +1274,19 @@ finish_command (char *arg, int from_tty)
     error ("The \"finish\" command does not take any arguments.");
   if (!target_has_execution)
     error ("The program is not running.");
-  if (selected_frame == NULL)
+  if (deprecated_selected_frame == NULL)
     error ("No selected frame.");
 
-  frame = get_prev_frame (selected_frame);
+  frame = get_prev_frame (deprecated_selected_frame);
   if (frame == 0)
     error ("\"finish\" not meaningful in the outermost frame.");
 
   clear_proceed_status ();
 
-  sal = find_pc_line (frame->pc, 0);
-  sal.pc = frame->pc;
+  sal = find_pc_line (get_frame_pc (frame), 0);
+  sal.pc = get_frame_pc (frame);
 
-  breakpoint = set_momentary_breakpoint (sal, frame, bp_finish);
+  breakpoint = set_momentary_breakpoint (sal, get_frame_id (frame), bp_finish);
 
   if (!event_loop_p || !target_can_async_p ())
     old_chain = make_cleanup_delete_breakpoint (breakpoint);
@@ -1285,15 +1295,15 @@ finish_command (char *arg, int from_tty)
 
   /* Find the function we will return from.  */
 
-  function = find_pc_function (selected_frame->pc);
+  function = find_pc_function (get_frame_pc (deprecated_selected_frame));
 
   /* Print info on the selected frame, including level number
      but not source.  */
   if (from_tty)
     {
       printf_filtered ("Run till exit from ");
-      print_stack_frame (selected_frame,
-                        frame_relative_level (selected_frame), 0);
+      print_stack_frame (deprecated_selected_frame,
+                        frame_relative_level (deprecated_selected_frame), 0);
     }
 
   /* If running asynchronously and the target support asynchronous
@@ -1681,13 +1691,13 @@ registers_info (char *addr_exp, int fpregs)
 
   if (!target_has_registers)
     error ("The program has no registers now.");
-  if (selected_frame == NULL)
+  if (deprecated_selected_frame == NULL)
     error ("No selected frame.");
 
   if (!addr_exp)
     {
       gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
-                                   selected_frame, -1, fpregs);
+                                   deprecated_selected_frame, -1, fpregs);
       return;
     }
 
@@ -1724,7 +1734,7 @@ registers_info (char *addr_exp, int fpregs)
        if (regnum >= 0)
          {
            gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
-                                         selected_frame, regnum, fpregs);
+                                         deprecated_selected_frame, regnum, fpregs);
            continue;
          }
       }
@@ -1738,7 +1748,7 @@ registers_info (char *addr_exp, int fpregs)
            && regnum < NUM_REGS + NUM_PSEUDO_REGS)
          {
            gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
-                                         selected_frame, regnum, fpregs);
+                                         deprecated_selected_frame, regnum, fpregs);
            continue;
          }
       }
@@ -1764,7 +1774,7 @@ registers_info (char *addr_exp, int fpregs)
                if (gdbarch_register_reggroup_p (current_gdbarch, regnum,
                                                 (*group)))
                  gdbarch_print_registers_info (current_gdbarch,
-                                               gdb_stdout, selected_frame,
+                                               gdb_stdout, deprecated_selected_frame,
                                                regnum, fpregs);
              }
            continue;
@@ -1794,7 +1804,7 @@ print_vector_info (struct gdbarch *gdbarch, struct ui_file *file,
 {
   if (!target_has_registers)
     error ("The program has no registers now.");
-  if (selected_frame == NULL)
+  if (deprecated_selected_frame == NULL)
     error ("No selected frame.");
 
   if (gdbarch_print_vector_info_p (gdbarch))
@@ -1820,7 +1830,7 @@ print_vector_info (struct gdbarch *gdbarch, struct ui_file *file,
 static void
 vector_info (char *args, int from_tty)
 {
-  print_vector_info (current_gdbarch, gdb_stdout, selected_frame, args);
+  print_vector_info (current_gdbarch, gdb_stdout, deprecated_selected_frame, args);
 }
 \f
 
@@ -1961,7 +1971,7 @@ print_float_info (struct gdbarch *gdbarch, struct ui_file *file,
 {
   if (!target_has_registers)
     error ("The program has no registers now.");
-  if (selected_frame == NULL)
+  if (deprecated_selected_frame == NULL)
     error ("No selected frame.");
 
   if (gdbarch_print_float_info_p (gdbarch))
@@ -1995,7 +2005,7 @@ No floating-point info available for this processor.\n");
 static void
 float_info (char *args, int from_tty)
 {
-  print_float_info (current_gdbarch, gdb_stdout, selected_frame, args);
+  print_float_info (current_gdbarch, gdb_stdout, deprecated_selected_frame, args);
 }
 \f
 /* ARGSUSED */
index 2cccda1103b99c9a434b1b3bad88ae4817d5caf6..09cd7ff4c9d0713575966932e298259e9cbf5213 100644 (file)
@@ -32,6 +32,9 @@ struct regcache;
 /* For enum target_signal.  */
 #include "target.h"
 
+/* For struct frame_id.  */
+#include "frame.h"
+
 /* Structure in which to save the status of the inferior.  Create/Save
    through "save_inferior_status", restore through
    "restore_inferior_status".
@@ -234,14 +237,6 @@ extern void terminal_init_inferior_with_pgrp (int pgrp);
 
 extern int attach (int);
 
-#if !defined(REQUIRE_ATTACH)
-#define REQUIRE_ATTACH attach
-#endif
-
-#if !defined(REQUIRE_DETACH)
-#define REQUIRE_DETACH(pid,siggnal) detach (siggnal)
-#endif
-
 extern void detach (int);
 
 /* PTRACE method of waiting for inferior process.  */
@@ -270,8 +265,6 @@ extern void fork_inferior (char *, char *, char **,
                           void (*)(int), void (*)(void), char *);
 
 
-extern void clone_and_follow_inferior (int, int *);
-
 extern void startup_inferior (int);
 
 extern char *construct_inferior_arguments (struct gdbarch *, int, char **);
@@ -303,6 +296,8 @@ extern int signal_pass_update (int, int);
 extern void get_last_target_status(ptid_t *ptid,
                                    struct target_waitstatus *status);
 
+extern void follow_inferior_reset_breakpoints (void);
+
 /* From infcmd.c */
 
 extern void tty_command (char *, int);
@@ -371,7 +366,7 @@ extern CORE_ADDR step_range_end;    /* Exclusive */
    This is how we know when we step into a subroutine call,
    and how to set the frame for the breakpoint used to step out.  */
 
-extern CORE_ADDR step_frame_address;
+extern struct frame_id step_frame_id;
 
 /* Our notion of the current stack pointer.  */
 
@@ -425,14 +420,6 @@ extern int attach_flag;
 #define AFTER_TEXT_END 3
 #define AT_ENTRY_POINT 4
 
-#if !defined (USE_GENERIC_DUMMY_FRAMES)
-#define USE_GENERIC_DUMMY_FRAMES 0
-#endif
-
-#if !defined (CALL_DUMMY_LOCATION)
-#define CALL_DUMMY_LOCATION ON_STACK
-#endif /* No CALL_DUMMY_LOCATION.  */
-
 #if !defined (CALL_DUMMY_ADDRESS)
 #define CALL_DUMMY_ADDRESS() (internal_error (__FILE__, __LINE__, "CALL_DUMMY_ADDRESS"), 0)
 #endif
@@ -488,37 +475,41 @@ extern int attach_flag;
 
 /* Are we in a call dummy? */
 
-extern int pc_in_call_dummy_before_text_end (CORE_ADDR pc, CORE_ADDR sp,
-                                            CORE_ADDR frame_address);
-#if !GDB_MULTI_ARCH
-#if !defined (PC_IN_CALL_DUMMY) && CALL_DUMMY_LOCATION == BEFORE_TEXT_END
-#define PC_IN_CALL_DUMMY(pc, sp, frame_address) pc_in_call_dummy_before_text_end (pc, sp, frame_address)
-#endif /* Before text_end.  */
-#endif
+/* NOTE: cagney/2002-11-24: Targets need to both switch to generic
+   dummy frames, and use generic_pc_in_call_dummy().  The generic
+   version should be able to handle all cases since that code works by
+   saving the address of the dummy's breakpoint (where ever it is).  */
 
-extern int pc_in_call_dummy_after_text_end (CORE_ADDR pc, CORE_ADDR sp,
-                                           CORE_ADDR frame_address);
-#if !GDB_MULTI_ARCH
-#if !defined (PC_IN_CALL_DUMMY) && CALL_DUMMY_LOCATION == AFTER_TEXT_END
-#define PC_IN_CALL_DUMMY(pc, sp, frame_address) pc_in_call_dummy_after_text_end (pc, sp, frame_address)
-#endif
-#endif
+extern int deprecated_pc_in_call_dummy_before_text_end (CORE_ADDR pc,
+                                                       CORE_ADDR sp,
+                                                       CORE_ADDR frame_address);
 
-extern int pc_in_call_dummy_on_stack (CORE_ADDR pc, CORE_ADDR sp,
-                                     CORE_ADDR frame_address);
-#if !GDB_MULTI_ARCH
-#if !defined (PC_IN_CALL_DUMMY) && CALL_DUMMY_LOCATION == ON_STACK
-#define PC_IN_CALL_DUMMY(pc, sp, frame_address) pc_in_call_dummy_on_stack (pc, sp, frame_address)
-#endif
-#endif
+/* NOTE: cagney/2002-11-24: Targets need to both switch to generic
+   dummy frames, and use generic_pc_in_call_dummy().  The generic
+   version should be able to handle all cases since that code works by
+   saving the address of the dummy's breakpoint (where ever it is).  */
 
-extern int pc_in_call_dummy_at_entry_point (CORE_ADDR pc, CORE_ADDR sp,
-                                           CORE_ADDR frame_address);
-#if !GDB_MULTI_ARCH
-#if !defined (PC_IN_CALL_DUMMY) && CALL_DUMMY_LOCATION == AT_ENTRY_POINT
-#define PC_IN_CALL_DUMMY(pc, sp, frame_address) pc_in_call_dummy_at_entry_point (pc, sp, frame_address)
-#endif
-#endif
+extern int deprecated_pc_in_call_dummy_after_text_end (CORE_ADDR pc,
+                                                      CORE_ADDR sp,
+                                                      CORE_ADDR frame_address);
+
+/* NOTE: cagney/2002-11-24: Targets need to both switch to generic
+   dummy frames, and use generic_pc_in_call_dummy().  The generic
+   version should be able to handle all cases since that code works by
+   saving the address of the dummy's breakpoint (where ever it is).  */
+
+extern int deprecated_pc_in_call_dummy_on_stack (CORE_ADDR pc,
+                                                CORE_ADDR sp,
+                                                CORE_ADDR frame_address);
+
+/* NOTE: cagney/2002-11-24: Targets need to both switch to generic
+   dummy frames, and use generic_pc_in_call_dummy().  The generic
+   version should be able to handle all cases since that code works by
+   saving the address of the dummy's breakpoint (where ever it is).  */
+
+extern int deprecated_pc_in_call_dummy_at_entry_point (CORE_ADDR pc,
+                                                      CORE_ADDR sp,
+                                                      CORE_ADDR frame_address);
 
 /* It's often not enough for our clients to know whether the PC is merely
    somewhere within the call dummy.  They may need to know whether the
@@ -539,7 +530,7 @@ extern int pc_in_call_dummy_at_entry_point (CORE_ADDR pc, CORE_ADDR sp,
  */
 #if !defined(CALL_DUMMY_HAS_COMPLETED)
 #define CALL_DUMMY_HAS_COMPLETED(pc, sp, frame_address) \
-  PC_IN_CALL_DUMMY((pc), (sp), (frame_address))
+  DEPRECATED_PC_IN_CALL_DUMMY((pc), (sp), (frame_address))
 #endif
 
 /* If STARTUP_WITH_SHELL is set, GDB's "run"
index d286b5e36dc662072623ac52ae23f2ee7ce07c0b..c8df106fe9aa58d15b6c61359299b0894649d71b 100644 (file)
@@ -608,11 +608,11 @@ kill_command (char *arg, int from_tty)
   if (target_has_stack)
     {
       printf_filtered ("In %s,\n", target_longname);
-      if (selected_frame == NULL)
+      if (deprecated_selected_frame == NULL)
        fputs_filtered ("No selected stack frame.\n", gdb_stdout);
       else
-       print_stack_frame (selected_frame,
-                          frame_relative_level (selected_frame), 1);
+       print_stack_frame (deprecated_selected_frame,
+                          frame_relative_level (deprecated_selected_frame), 1);
     }
 }
 \f
index 88c59c58fd773bfd21011dc5b2d9af34af7498e5..aa404cfcd1446d7843f72a799f63ae12de872e89 100644 (file)
@@ -66,12 +66,7 @@ static int restore_selected_frame (void *);
 
 static void build_infrun (void);
 
-static void follow_inferior_fork (int parent_pid, int child_pid,
-                                 int has_forked, int has_vforked);
-
-static void follow_fork (int parent_pid, int child_pid);
-
-static void follow_vfork (int parent_pid, int child_pid);
+static int follow_fork ();
 
 static void set_schedlock_func (char *args, int from_tty,
                                struct cmd_list_element *c);
@@ -360,43 +355,19 @@ static struct
   struct
   {
     int parent_pid;
-    int saw_parent_fork;
     int child_pid;
-    int saw_child_fork;
-    int saw_child_exec;
   }
   fork_event;
   char *execd_pathname;
 }
 pending_follow;
 
-/* Some platforms don't allow us to do anything meaningful with a
-   vforked child until it has exec'd.  Vforked processes on such
-   platforms can only be followed after they've exec'd.
-
-   When this is set to 0, a vfork can be immediately followed,
-   and an exec can be followed merely as an exec.  When this is
-   set to 1, a vfork event has been seen, but cannot be followed
-   until the exec is seen.
-
-   (In the latter case, inferior_ptid is still the parent of the
-   vfork, and pending_follow.fork_event.child_pid is the child.  The
-   appropriate process is followed, according to the setting of
-   follow-fork-mode.) */
-static int follow_vfork_when_exec;
-
 static const char follow_fork_mode_ask[] = "ask";
-static const char follow_fork_mode_both[] = "both";
 static const char follow_fork_mode_child[] = "child";
 static const char follow_fork_mode_parent[] = "parent";
 
 static const char *follow_fork_mode_kind_names[] = {
   follow_fork_mode_ask,
-  /* ??rehrauer: The "both" option is broken, by what may be a 10.20
-     kernel problem.  It's also not terribly useful without a GUI to
-     help the user drive two debuggers.  So for now, I'm disabling the
-     "both" option. */
-  /* follow_fork_mode_both, */
   follow_fork_mode_child,
   follow_fork_mode_parent,
   NULL
@@ -405,15 +376,11 @@ static const char *follow_fork_mode_kind_names[] = {
 static const char *follow_fork_mode_string = follow_fork_mode_parent;
 \f
 
-static void
-follow_inferior_fork (int parent_pid, int child_pid, int has_forked,
-                     int has_vforked)
+static int
+follow_fork ()
 {
-  int followed_parent = 0;
-  int followed_child = 0;
-
-  /* Which process did the user want us to follow? */
   const char *follow_mode = follow_fork_mode_string;
+  int follow_child = (follow_mode == follow_fork_mode_child);
 
   /* Or, did the user not know, and want us to ask? */
   if (follow_fork_mode_string == follow_fork_mode_ask)
@@ -423,175 +390,33 @@ follow_inferior_fork (int parent_pid, int child_pid, int has_forked,
       /* follow_mode = follow_fork_mode_...; */
     }
 
-  /* If we're to be following the parent, then detach from child_pid.
-     We're already following the parent, so need do nothing explicit
-     for it. */
-  if (follow_mode == follow_fork_mode_parent)
-    {
-      followed_parent = 1;
-
-      /* We're already attached to the parent, by default. */
-
-      /* Before detaching from the child, remove all breakpoints from
-         it.  (This won't actually modify the breakpoint list, but will
-         physically remove the breakpoints from the child.) */
-      if (!has_vforked || !follow_vfork_when_exec)
-       {
-         detach_breakpoints (child_pid);
-#ifdef SOLIB_REMOVE_INFERIOR_HOOK
-         SOLIB_REMOVE_INFERIOR_HOOK (child_pid);
-#endif
-       }
-
-      /* Detach from the child. */
-      dont_repeat ();
-
-      target_require_detach (child_pid, "", 1);
-    }
-
-  /* If we're to be following the child, then attach to it, detach
-     from inferior_ptid, and set inferior_ptid to child_pid. */
-  else if (follow_mode == follow_fork_mode_child)
-    {
-      char child_pid_spelling[100];    /* Arbitrary length. */
-
-      followed_child = 1;
-
-      /* Before detaching from the parent, detach all breakpoints from
-         the child.  But only if we're forking, or if we follow vforks
-         as soon as they happen.  (If we're following vforks only when
-         the child has exec'd, then it's very wrong to try to write
-         back the "shadow contents" of inserted breakpoints now -- they
-         belong to the child's pre-exec'd a.out.) */
-      if (!has_vforked || !follow_vfork_when_exec)
-       {
-         detach_breakpoints (child_pid);
-       }
-
-      /* Before detaching from the parent, remove all breakpoints from it. */
-      remove_breakpoints ();
-
-      /* Also reset the solib inferior hook from the parent. */
-#ifdef SOLIB_REMOVE_INFERIOR_HOOK
-      SOLIB_REMOVE_INFERIOR_HOOK (PIDGET (inferior_ptid));
-#endif
-
-      /* Detach from the parent. */
-      dont_repeat ();
-      target_detach (NULL, 1);
-
-      /* Attach to the child. */
-      inferior_ptid = pid_to_ptid (child_pid);
-      sprintf (child_pid_spelling, "%d", child_pid);
-      dont_repeat ();
-
-      target_require_attach (child_pid_spelling, 1);
-
-      /* Was there a step_resume breakpoint?  (There was if the user
-         did a "next" at the fork() call.)  If so, explicitly reset its
-         thread number.
-
-         step_resumes are a form of bp that are made to be per-thread.
-         Since we created the step_resume bp when the parent process
-         was being debugged, and now are switching to the child process,
-         from the breakpoint package's viewpoint, that's a switch of
-         "threads".  We must update the bp's notion of which thread
-         it is for, or it'll be ignored when it triggers... */
-      if (step_resume_breakpoint && (!has_vforked || !follow_vfork_when_exec))
-       breakpoint_re_set_thread (step_resume_breakpoint);
-
-      /* Reinsert all breakpoints in the child.  (The user may've set
-         breakpoints after catching the fork, in which case those
-         actually didn't get set in the child, but only in the parent.) */
-      if (!has_vforked || !follow_vfork_when_exec)
-       {
-         breakpoint_re_set ();
-         insert_breakpoints ();
-       }
-    }
-
-  /* If we're to be following both parent and child, then fork ourselves,
-     and attach the debugger clone to the child. */
-  else if (follow_mode == follow_fork_mode_both)
-    {
-      char pid_suffix[100];    /* Arbitrary length. */
-
-      /* Clone ourselves to follow the child.  This is the end of our
-         involvement with child_pid; our clone will take it from here... */
-      dont_repeat ();
-      target_clone_and_follow_inferior (child_pid, &followed_child);
-      followed_parent = !followed_child;
-
-      /* We continue to follow the parent.  To help distinguish the two
-         debuggers, though, both we and our clone will reset our prompts. */
-      sprintf (pid_suffix, "[%d] ", PIDGET (inferior_ptid));
-      set_prompt (strcat (get_prompt (), pid_suffix));
-    }
-
-  /* The parent and child of a vfork share the same address space.
-     Also, on some targets the order in which vfork and exec events
-     are received for parent in child requires some delicate handling
-     of the events.
-
-     For instance, on ptrace-based HPUX we receive the child's vfork
-     event first, at which time the parent has been suspended by the
-     OS and is essentially untouchable until the child's exit or second
-     exec event arrives.  At that time, the parent's vfork event is
-     delivered to us, and that's when we see and decide how to follow
-     the vfork.  But to get to that point, we must continue the child
-     until it execs or exits.  To do that smoothly, all breakpoints
-     must be removed from the child, in case there are any set between
-     the vfork() and exec() calls.  But removing them from the child
-     also removes them from the parent, due to the shared-address-space
-     nature of a vfork'd parent and child.  On HPUX, therefore, we must
-     take care to restore the bp's to the parent before we continue it.
-     Else, it's likely that we may not stop in the expected place.  (The
-     worst scenario is when the user tries to step over a vfork() call;
-     the step-resume bp must be restored for the step to properly stop
-     in the parent after the call completes!)
-
-     Sequence of events, as reported to gdb from HPUX:
-
-     Parent        Child           Action for gdb to take
-     -------------------------------------------------------
-     1                VFORK               Continue child
-     2                EXEC
-     3                EXEC or EXIT
-     4  VFORK */
-  if (has_vforked)
-    {
-      target_post_follow_vfork (parent_pid,
-                               followed_parent, child_pid, followed_child);
-    }
-
-  pending_follow.fork_event.saw_parent_fork = 0;
-  pending_follow.fork_event.saw_child_fork = 0;
+  return target_follow_fork (follow_child);
 }
 
-static void
-follow_fork (int parent_pid, int child_pid)
+void
+follow_inferior_reset_breakpoints (void)
 {
-  follow_inferior_fork (parent_pid, child_pid, 1, 0);
-}
+  /* Was there a step_resume breakpoint?  (There was if the user
+     did a "next" at the fork() call.)  If so, explicitly reset its
+     thread number.
 
+     step_resumes are a form of bp that are made to be per-thread.
+     Since we created the step_resume bp when the parent process
+     was being debugged, and now are switching to the child process,
+     from the breakpoint package's viewpoint, that's a switch of
+     "threads".  We must update the bp's notion of which thread
+     it is for, or it'll be ignored when it triggers.  */
 
-/* Forward declaration. */
-static void follow_exec (int, char *);
+  if (step_resume_breakpoint)
+    breakpoint_re_set_thread (step_resume_breakpoint);
 
-static void
-follow_vfork (int parent_pid, int child_pid)
-{
-  follow_inferior_fork (parent_pid, child_pid, 0, 1);
+  /* Reinsert all breakpoints in the child.  The user may have set
+     breakpoints after catching the fork, in which case those
+     were never set in the child, but only in the parent.  This makes
+     sure the inserted breakpoints match the breakpoint list.  */
 
-  /* Did we follow the child?  Had it exec'd before we saw the parent vfork? */
-  if (pending_follow.fork_event.saw_child_exec
-      && (PIDGET (inferior_ptid) == child_pid))
-    {
-      pending_follow.fork_event.saw_child_exec = 0;
-      pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
-      follow_exec (PIDGET (inferior_ptid), pending_follow.execd_pathname);
-      xfree (pending_follow.execd_pathname);
-    }
+  breakpoint_re_set ();
+  insert_breakpoints ();
 }
 
 /* EXECD_PATHNAME is assumed to be non-NULL. */
@@ -605,23 +430,6 @@ follow_exec (int pid, char *execd_pathname)
   if (!may_follow_exec)
     return;
 
-  /* Did this exec() follow a vfork()?  If so, we must follow the
-     vfork now too.  Do it before following the exec. */
-  if (follow_vfork_when_exec &&
-      (pending_follow.kind == TARGET_WAITKIND_VFORKED))
-    {
-      pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
-      follow_vfork (PIDGET (inferior_ptid),
-                   pending_follow.fork_event.child_pid);
-      follow_vfork_when_exec = 0;
-      saved_pid = PIDGET (inferior_ptid);
-
-      /* Did we follow the parent?  If so, we're done.  If we followed
-         the child then we must also follow its exec(). */
-      if (PIDGET (inferior_ptid) == pending_follow.fork_event.parent_pid)
-       return;
-    }
-
   /* This is an exec event that we actually wish to pay attention to.
      Refresh our symbol table to the newly exec'd program, remove any
      momentary bp's, etc.
@@ -797,38 +605,19 @@ resume (int step, enum target_signal sig)
 #endif
 
   /* If there were any forks/vforks/execs that were caught and are
-     now to be followed, then do so. */
+     now to be followed, then do so.  */
   switch (pending_follow.kind)
     {
-    case (TARGET_WAITKIND_FORKED):
+    case TARGET_WAITKIND_FORKED:
+    case TARGET_WAITKIND_VFORKED:
       pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
-      follow_fork (PIDGET (inferior_ptid),
-                  pending_follow.fork_event.child_pid);
+      if (follow_fork ())
+       should_resume = 0;
       break;
 
-    case (TARGET_WAITKIND_VFORKED):
-      {
-       int saw_child_exec = pending_follow.fork_event.saw_child_exec;
-
-       pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
-       follow_vfork (PIDGET (inferior_ptid),
-                     pending_follow.fork_event.child_pid);
-
-       /* Did we follow the child, but not yet see the child's exec event?
-          If so, then it actually ought to be waiting for us; we respond to
-          parent vfork events.  We don't actually want to resume the child
-          in this situation; we want to just get its exec event. */
-       if (!saw_child_exec &&
-           (PIDGET (inferior_ptid) == pending_follow.fork_event.child_pid))
-         should_resume = 0;
-      }
-      break;
-
-    case (TARGET_WAITKIND_EXECD):
-      /* If we saw a vfork event but couldn't follow it until we saw
-         an exec, then now might be the time! */
-      pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
+    case TARGET_WAITKIND_EXECD:
       /* follow_exec is called as soon as the exec event is seen. */
+      pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
       break;
 
     default:
@@ -887,7 +676,7 @@ clear_proceed_status (void)
   trap_expected = 0;
   step_range_start = 0;
   step_range_end = 0;
-  step_frame_address = 0;
+  step_frame_id = null_frame_id;
   step_over_calls = STEP_OVER_UNDEBUGGABLE;
   stop_after_trap = 0;
   stop_soon_quietly = 0;
@@ -1075,9 +864,6 @@ init_wait_for_inferior (void)
 
   /* The first resume is not following a fork/vfork/exec. */
   pending_follow.kind = TARGET_WAITKIND_SPURIOUS;      /* I.e., none. */
-  pending_follow.fork_event.saw_parent_fork = 0;
-  pending_follow.fork_event.saw_child_fork = 0;
-  pending_follow.fork_event.saw_child_exec = 0;
 
   /* See wait_for_inferior's handling of SYSCALL_ENTRY/RETURN events. */
   number_of_threads_in_syscalls = 0;
@@ -1356,7 +1142,7 @@ context_switch (struct execution_control_state *ecs)
                         prev_func_start, prev_func_name,
                         trap_expected, step_resume_breakpoint,
                         through_sigtramp_breakpoint, step_range_start,
-                        step_range_end, step_frame_address,
+                        step_range_end, &step_frame_id,
                         ecs->handling_longjmp, ecs->another_trap,
                         ecs->stepping_through_solib_after_catch,
                         ecs->stepping_through_solib_catchpoints,
@@ -1368,7 +1154,7 @@ context_switch (struct execution_control_state *ecs)
                         &prev_func_start, &prev_func_name,
                         &trap_expected, &step_resume_breakpoint,
                         &through_sigtramp_breakpoint, &step_range_start,
-                        &step_range_end, &step_frame_address,
+                        &step_range_end, &step_frame_id,
                         &ecs->handling_longjmp, &ecs->another_trap,
                         &ecs->stepping_through_solib_after_catch,
                         &ecs->stepping_through_solib_catchpoints,
@@ -1540,108 +1326,40 @@ handle_inferior_event (struct execution_control_state *ecs)
       /* The following are the only cases in which we keep going;
          the above cases end in a continue or goto. */
     case TARGET_WAITKIND_FORKED:
+    case TARGET_WAITKIND_VFORKED:
       stop_signal = TARGET_SIGNAL_TRAP;
       pending_follow.kind = ecs->ws.kind;
 
-      /* Ignore fork events reported for the parent; we're only
-         interested in reacting to forks of the child.  Note that
-         we expect the child's fork event to be available if we
-         waited for it now. */
-      if (ptid_equal (inferior_ptid, ecs->ptid))
-       {
-         pending_follow.fork_event.saw_parent_fork = 1;
-         pending_follow.fork_event.parent_pid = PIDGET (ecs->ptid);
-         pending_follow.fork_event.child_pid = ecs->ws.value.related_pid;
-         prepare_to_wait (ecs);
-         return;
-       }
-      else
-       {
-         pending_follow.fork_event.saw_child_fork = 1;
-         pending_follow.fork_event.child_pid = PIDGET (ecs->ptid);
-         pending_follow.fork_event.parent_pid = ecs->ws.value.related_pid;
-       }
+      pending_follow.fork_event.parent_pid = PIDGET (ecs->ptid);
+      pending_follow.fork_event.child_pid = ecs->ws.value.related_pid;
 
-      stop_pc = read_pc_pid (ecs->ptid);
-      ecs->saved_inferior_ptid = inferior_ptid;
-      inferior_ptid = ecs->ptid;
-      /* The second argument of bpstat_stop_status is meant to help
-         distinguish between a breakpoint trap and a singlestep trap.
-         This is only important on targets where DECR_PC_AFTER_BREAK
-         is non-zero.  The prev_pc test is meant to distinguish between
-         singlestepping a trap instruction, and singlestepping thru a
-         jump to the instruction following a trap instruction. */
-
-      stop_bpstat = bpstat_stop_status (&stop_pc,
-                                       currently_stepping (ecs) &&
-                                       prev_pc !=
-                                       stop_pc - DECR_PC_AFTER_BREAK);
-      ecs->random_signal = !bpstat_explains_signal (stop_bpstat);
-      inferior_ptid = ecs->saved_inferior_ptid;
-      goto process_event_stop_test;
+      stop_pc = read_pc ();
 
-      /* If this a platform which doesn't allow a debugger to touch a
-         vfork'd inferior until after it exec's, then we'd best keep
-         our fingers entirely off the inferior, other than continuing
-         it.  This has the unfortunate side-effect that catchpoints
-         of vforks will be ignored.  But since the platform doesn't
-         allow the inferior be touched at vfork time, there's really
-         little choice. */
-    case TARGET_WAITKIND_VFORKED:
-      stop_signal = TARGET_SIGNAL_TRAP;
-      pending_follow.kind = ecs->ws.kind;
+      /* Assume that catchpoints are not really software breakpoints.  If
+        some future target implements them using software breakpoints then
+        that target is responsible for fudging DECR_PC_AFTER_BREAK.  Thus
+        we pass 1 for the NOT_A_SW_BREAKPOINT argument, so that
+        bpstat_stop_status will not decrement the PC.  */
 
-      /* Is this a vfork of the parent?  If so, then give any
-         vfork catchpoints a chance to trigger now.  (It's
-         dangerous to do so if the child canot be touched until
-         it execs, and the child has not yet exec'd.  We probably
-         should warn the user to that effect when the catchpoint
-         triggers...) */
-      if (ptid_equal (ecs->ptid, inferior_ptid))
-       {
-         pending_follow.fork_event.saw_parent_fork = 1;
-         pending_follow.fork_event.parent_pid = PIDGET (ecs->ptid);
-         pending_follow.fork_event.child_pid = ecs->ws.value.related_pid;
-       }
+      stop_bpstat = bpstat_stop_status (&stop_pc, 1);
 
-      /* If we've seen the child's vfork event but cannot really touch
-         the child until it execs, then we must continue the child now.
-         Else, give any vfork catchpoints a chance to trigger now. */
-      else
+      ecs->random_signal = !bpstat_explains_signal (stop_bpstat);
+
+      /* If no catchpoint triggered for this, then keep going.  */
+      if (ecs->random_signal)
        {
-         pending_follow.fork_event.saw_child_fork = 1;
-         pending_follow.fork_event.child_pid = PIDGET (ecs->ptid);
-         pending_follow.fork_event.parent_pid = ecs->ws.value.related_pid;
-         target_post_startup_inferior (pid_to_ptid
-                                       (pending_follow.fork_event.
-                                        child_pid));
-         follow_vfork_when_exec = !target_can_follow_vfork_prior_to_exec ();
-         if (follow_vfork_when_exec)
-           {
-             target_resume (ecs->ptid, 0, TARGET_SIGNAL_0);
-             prepare_to_wait (ecs);
-             return;
-           }
+         stop_signal = TARGET_SIGNAL_0;
+         keep_going (ecs);
+         return;
        }
-
-      stop_pc = read_pc ();
-      /* The second argument of bpstat_stop_status is meant to help
-         distinguish between a breakpoint trap and a singlestep trap.
-         This is only important on targets where DECR_PC_AFTER_BREAK
-         is non-zero.  The prev_pc test is meant to distinguish between
-         singlestepping a trap instruction, and singlestepping thru a
-         jump to the instruction following a trap instruction. */
-
-      stop_bpstat = bpstat_stop_status (&stop_pc,
-                                       currently_stepping (ecs) &&
-                                       prev_pc !=
-                                       stop_pc - DECR_PC_AFTER_BREAK);
-      ecs->random_signal = !bpstat_explains_signal (stop_bpstat);
       goto process_event_stop_test;
 
     case TARGET_WAITKIND_EXECD:
       stop_signal = TARGET_SIGNAL_TRAP;
 
+      /* NOTE drow/2002-12-05: This code should be pushed down into the
+        target_wait function.  Until then following vfork on HP/UX 10.20
+        is probably broken by this.  Of course, it's broken anyway.  */
       /* Is this a target which reports multiple exec events per actual
          call to exec()?  (HP-UX using ptrace does, for example.)  If so,
          ignore all but the last one.  Just resume the exec'r, and wait
@@ -1663,36 +1381,6 @@ handle_inferior_event (struct execution_control_state *ecs)
        savestring (ecs->ws.value.execd_pathname,
                    strlen (ecs->ws.value.execd_pathname));
 
-      /* Did inferior_ptid exec, or did a (possibly not-yet-followed)
-         child of a vfork exec?
-
-         ??rehrauer: This is unabashedly an HP-UX specific thing.  On
-         HP-UX, events associated with a vforking inferior come in
-         threes: a vfork event for the child (always first), followed
-         a vfork event for the parent and an exec event for the child.
-         The latter two can come in either order.
-
-         If we get the parent vfork event first, life's good: We follow
-         either the parent or child, and then the child's exec event is
-         a "don't care".
-
-         But if we get the child's exec event first, then we delay
-         responding to it until we handle the parent's vfork.  Because,
-         otherwise we can't satisfy a "catch vfork". */
-      if (pending_follow.kind == TARGET_WAITKIND_VFORKED)
-       {
-         pending_follow.fork_event.saw_child_exec = 1;
-
-         /* On some targets, the child must be resumed before
-            the parent vfork event is delivered.  A single-step
-            suffices. */
-         if (RESUME_EXECD_VFORKING_CHILD_TO_GET_PARENT_VFORK ())
-           target_resume (ecs->ptid, 1, TARGET_SIGNAL_0);
-         /* We expect the parent vfork event to be available now. */
-         prepare_to_wait (ecs);
-         return;
-       }
-
       /* This causes the eventpoints and symbol table to be reset.  Must
          do this now, before trying to determine whether to stop. */
       follow_exec (PIDGET (inferior_ptid), pending_follow.execd_pathname);
@@ -1701,19 +1389,25 @@ handle_inferior_event (struct execution_control_state *ecs)
       stop_pc = read_pc_pid (ecs->ptid);
       ecs->saved_inferior_ptid = inferior_ptid;
       inferior_ptid = ecs->ptid;
-      /* The second argument of bpstat_stop_status is meant to help
-         distinguish between a breakpoint trap and a singlestep trap.
-         This is only important on targets where DECR_PC_AFTER_BREAK
-         is non-zero.  The prev_pc test is meant to distinguish between
-         singlestepping a trap instruction, and singlestepping thru a
-         jump to the instruction following a trap instruction. */
-
-      stop_bpstat = bpstat_stop_status (&stop_pc,
-                                       currently_stepping (ecs) &&
-                                       prev_pc !=
-                                       stop_pc - DECR_PC_AFTER_BREAK);
+
+      /* Assume that catchpoints are not really software breakpoints.  If
+        some future target implements them using software breakpoints then
+        that target is responsible for fudging DECR_PC_AFTER_BREAK.  Thus
+        we pass 1 for the NOT_A_SW_BREAKPOINT argument, so that
+        bpstat_stop_status will not decrement the PC.  */
+
+      stop_bpstat = bpstat_stop_status (&stop_pc, 1);
+
       ecs->random_signal = !bpstat_explains_signal (stop_bpstat);
       inferior_ptid = ecs->saved_inferior_ptid;
+
+      /* If no catchpoint triggered for this, then keep going.  */
+      if (ecs->random_signal)
+       {
+         stop_signal = TARGET_SIGNAL_0;
+         keep_going (ecs);
+         return;
+       }
       goto process_event_stop_test;
 
       /* These syscall events are returned on HP-UX, as part of its
@@ -1775,13 +1469,15 @@ handle_inferior_event (struct execution_control_state *ecs)
 
       /* We had an event in the inferior, but we are not interested
          in handling it at this level. The lower layers have already
-         done what needs to be done, if anything. This case can
-         occur only when the target is async or extended-async. One
-         of the circumstamces for this to happen is when the
-         inferior produces output for the console. The inferior has
-         not stopped, and we are ignoring the event. */
+         done what needs to be done, if anything.
+        
+        One of the possible circumstances for this is when the
+        inferior produces output for the console. The inferior has
+        not stopped, and we are ignoring the event.  Another possible
+        circumstance is any event which the lower level knows will be
+        reported multiple times without an intervening resume.  */
     case TARGET_WAITKIND_IGNORE:
-      ecs->wait_some_more = 1;
+      prepare_to_wait (ecs);
       return;
     }
 
@@ -2124,8 +1820,8 @@ handle_inferior_event (struct execution_control_state *ecs)
          = !(bpstat_explains_signal (stop_bpstat)
              || trap_expected
              || (!CALL_DUMMY_BREAKPOINT_OFFSET_P
-                 && PC_IN_CALL_DUMMY (stop_pc, read_sp (),
-                                      FRAME_FP (get_current_frame ())))
+                 && DEPRECATED_PC_IN_CALL_DUMMY (stop_pc, read_sp (),
+                                      get_frame_base (get_current_frame ())))
              || (step_range_end && step_resume_breakpoint == NULL));
 
       else
@@ -2135,8 +1831,8 @@ handle_inferior_event (struct execution_control_state *ecs)
                                    news) give another signal besides SIGTRAP, so
                                    check here as well as above.  */
                                 || (!CALL_DUMMY_BREAKPOINT_OFFSET_P
-                                    && PC_IN_CALL_DUMMY (stop_pc, read_sp (),
-                                                         FRAME_FP
+                                    && DEPRECATED_PC_IN_CALL_DUMMY (stop_pc, read_sp (),
+                                                         get_frame_base
                                                          (get_current_frame
                                                           ()))));
          if (!ecs->random_signal)
@@ -2150,54 +1846,8 @@ handle_inferior_event (struct execution_control_state *ecs)
 
   else
     ecs->random_signal = 1;
-  /* If a fork, vfork or exec event was seen, then there are two
-     possible responses we can make:
-
-     1. If a catchpoint triggers for the event (ecs->random_signal == 0),
-     then we must stop now and issue a prompt.  We will resume
-     the inferior when the user tells us to.
-     2. If no catchpoint triggers for the event (ecs->random_signal == 1),
-     then we must resume the inferior now and keep checking.
-
-     In either case, we must take appropriate steps to "follow" the
-     the fork/vfork/exec when the inferior is resumed.  For example,
-     if follow-fork-mode is "child", then we must detach from the
-     parent inferior and follow the new child inferior.
-
-     In either case, setting pending_follow causes the next resume()
-     to take the appropriate following action. */
-process_event_stop_test:
-  if (ecs->ws.kind == TARGET_WAITKIND_FORKED)
-    {
-      if (ecs->random_signal)  /* I.e., no catchpoint triggered for this. */
-       {
-         trap_expected = 1;
-         stop_signal = TARGET_SIGNAL_0;
-         keep_going (ecs);
-         return;
-       }
-    }
-  else if (ecs->ws.kind == TARGET_WAITKIND_VFORKED)
-    {
-      if (ecs->random_signal)  /* I.e., no catchpoint triggered for this. */
-       {
-         stop_signal = TARGET_SIGNAL_0;
-         keep_going (ecs);
-         return;
-       }
-    }
-  else if (ecs->ws.kind == TARGET_WAITKIND_EXECD)
-    {
-      pending_follow.kind = ecs->ws.kind;
-      if (ecs->random_signal)  /* I.e., no catchpoint triggered for this. */
-       {
-         trap_expected = 1;
-         stop_signal = TARGET_SIGNAL_0;
-         keep_going (ecs);
-         return;
-       }
-    }
 
+process_event_stop_test:
   /* For the program's own signals, act according to
      the signal handling tables.  */
 
@@ -2315,7 +1965,7 @@ process_event_stop_test:
          set_longjmp_resume_breakpoint (jmp_buf_pc, get_current_frame ());
        else
 #endif /* 0 */
-         set_longjmp_resume_breakpoint (jmp_buf_pc, NULL);
+         set_longjmp_resume_breakpoint (jmp_buf_pc, null_frame_id);
        ecs->handling_longjmp = 1;      /* FIXME */
        keep_going (ecs);
        return;
@@ -2327,8 +1977,8 @@ process_event_stop_test:
 #if 0
        /* FIXME - Need to implement nested temporary breakpoints */
        if (step_over_calls
-           && (INNER_THAN (FRAME_FP (get_current_frame ()),
-                           step_frame_address)))
+           && (frame_id_inner (get_frame_id (get_current_frame ()),
+                               step_frame_id)))
          {
            ecs->another_trap = 1;
            keep_going (ecs);
@@ -2538,7 +2188,7 @@ process_event_stop_test:
          case she'd better know what she's doing.  */
 
       if (CALL_DUMMY_HAS_COMPLETED (stop_pc, read_sp (),
-                                   FRAME_FP (get_current_frame ()))
+                                   get_frame_base (get_current_frame ()))
          && !step_range_end)
        {
          stop_print_frame = 0;
@@ -2608,7 +2258,7 @@ process_event_stop_test:
 
          check_for_old_step_resume_breakpoint ();
          step_resume_breakpoint =
-           set_momentary_breakpoint (sr_sal, NULL, bp_step_resume);
+           set_momentary_breakpoint (sr_sal, null_frame_id, bp_step_resume);
          if (breakpoints_inserted)
            insert_breakpoints ();
        }
@@ -2639,9 +2289,9 @@ process_event_stop_test:
 
 
       {
-       CORE_ADDR current_frame = FRAME_FP (get_current_frame ());
+       struct frame_id current_frame = get_frame_id (get_current_frame ());
 
-       if (INNER_THAN (current_frame, step_frame_address))
+       if (frame_id_inner (current_frame, step_frame_id))
          {
            /* We have just taken a signal; go until we are back to
               the point where we took it and one more.  */
@@ -2661,11 +2311,10 @@ process_event_stop_test:
            sr_sal.line = 0;
            sr_sal.pc = prev_pc;
            /* We could probably be setting the frame to
-              step_frame_address; I don't think anyone thought to
-              try it.  */
+              step_frame_id; I don't think anyone thought to try it.  */
            check_for_old_step_resume_breakpoint ();
            step_resume_breakpoint =
-             set_momentary_breakpoint (sr_sal, NULL, bp_step_resume);
+             set_momentary_breakpoint (sr_sal, null_frame_id, bp_step_resume);
            if (breakpoints_inserted)
              insert_breakpoints ();
          }
@@ -2736,17 +2385,17 @@ process_event_stop_test:
          /* We're doing a "next".  */
 
          if (PC_IN_SIGTRAMP (stop_pc, ecs->stop_func_name)
-             && INNER_THAN (step_frame_address, read_sp ()))
+             && frame_id_inner (step_frame_id,
+                                frame_id_build (read_sp (), 0)))
            /* We stepped out of a signal handler, and into its
               calling trampoline.  This is misdetected as a
               subroutine call, but stepping over the signal
-              trampoline isn't such a bad idea.  In order to do
-              that, we have to ignore the value in
-              step_frame_address, since that doesn't represent the
-              frame that'll reach when we return from the signal
-              trampoline.  Otherwise we'll probably continue to the
-              end of the program.  */
-           step_frame_address = 0;
+              trampoline isn't such a bad idea.  In order to do that,
+              we have to ignore the value in step_frame_id, since
+              that doesn't represent the frame that'll reach when we
+              return from the signal trampoline.  Otherwise we'll
+              probably continue to the end of the program.  */
+           step_frame_id = null_frame_id;
 
          step_over_function (ecs);
          keep_going (ecs);
@@ -2774,7 +2423,7 @@ process_event_stop_test:
              xxx.section = find_pc_overlay (xxx.pc);
              check_for_old_step_resume_breakpoint ();
              step_resume_breakpoint =
-               set_momentary_breakpoint (xxx, NULL, bp_step_resume);
+               set_momentary_breakpoint (xxx, null_frame_id, bp_step_resume);
              insert_breakpoints ();
              keep_going (ecs);
              return;
@@ -2852,7 +2501,7 @@ process_event_stop_test:
             is where the new fp value is established.  */
          check_for_old_step_resume_breakpoint ();
          step_resume_breakpoint =
-           set_momentary_breakpoint (sr_sal, NULL, bp_step_resume);
+           set_momentary_breakpoint (sr_sal, null_frame_id, bp_step_resume);
          if (breakpoints_inserted)
            insert_breakpoints ();
 
@@ -2910,17 +2559,17 @@ process_event_stop_test:
     }
   step_range_start = ecs->sal.pc;
   step_range_end = ecs->sal.end;
-  step_frame_address = FRAME_FP (get_current_frame ());
+  step_frame_id = get_frame_id (get_current_frame ());
   ecs->current_line = ecs->sal.line;
   ecs->current_symtab = ecs->sal.symtab;
 
-  /* In the case where we just stepped out of a function into the middle
-     of a line of the caller, continue stepping, but step_frame_address
-     must be modified to current frame */
+  /* In the case where we just stepped out of a function into the
+     middle of a line of the caller, continue stepping, but
+     step_frame_id must be modified to current frame */
   {
-    CORE_ADDR current_frame = FRAME_FP (get_current_frame ());
-    if (!(INNER_THAN (current_frame, step_frame_address)))
-      step_frame_address = current_frame;
+    struct frame_id current_frame = get_frame_id (get_current_frame ());
+    if (!(frame_id_inner (current_frame, step_frame_id)))
+      step_frame_id = current_frame;
   }
 
   keep_going (ecs);
@@ -2966,7 +2615,7 @@ check_sigtramp2 (struct execution_control_state *ecs)
       /* We perhaps could set the frame if we kept track of what the
          frame corresponding to prev_pc was.  But we don't, so don't.  */
       through_sigtramp_breakpoint =
-       set_momentary_breakpoint (sr_sal, NULL, bp_through_sigtramp);
+       set_momentary_breakpoint (sr_sal, null_frame_id, bp_through_sigtramp);
       if (breakpoints_inserted)
        insert_breakpoints ();
 
@@ -3024,7 +2673,7 @@ step_into_function (struct execution_control_state *ecs)
          established.  */
       check_for_old_step_resume_breakpoint ();
       step_resume_breakpoint =
-       set_momentary_breakpoint (sr_sal, NULL, bp_step_resume);
+       set_momentary_breakpoint (sr_sal, null_frame_id, bp_step_resume);
       if (breakpoints_inserted)
        insert_breakpoints ();
 
@@ -3043,7 +2692,7 @@ step_into_function (struct execution_control_state *ecs)
    of the call.
 
    To do this, we set the step_resume bp's frame to our current
-   caller's frame (step_frame_address, which is set by the "next" or
+   caller's frame (step_frame_id, which is set by the "next" or
    "until" command, before execution begins).  */
 
 static void
@@ -3057,10 +2706,12 @@ step_over_function (struct execution_control_state *ecs)
 
   check_for_old_step_resume_breakpoint ();
   step_resume_breakpoint =
-    set_momentary_breakpoint (sr_sal, get_current_frame (), bp_step_resume);
+    set_momentary_breakpoint (sr_sal, get_frame_id (get_current_frame ()),
+                             bp_step_resume);
 
-  if (step_frame_address && !IN_SOLIB_DYNSYM_RESOLVE_CODE (sr_sal.pc))
-    step_resume_breakpoint->frame = step_frame_address;
+  if (frame_id_p (step_frame_id)
+      && !IN_SOLIB_DYNSYM_RESOLVE_CODE (sr_sal.pc))
+    step_resume_breakpoint->frame_id = step_frame_id;
 
   if (breakpoints_inserted)
     insert_breakpoints ();
@@ -3071,30 +2722,6 @@ stop_stepping (struct execution_control_state *ecs)
 {
   if (target_has_execution)
     {
-      /* Are we stopping for a vfork event?  We only stop when we see
-         the child's event.  However, we may not yet have seen the
-         parent's event.  And, inferior_ptid is still set to the
-         parent's pid, until we resume again and follow either the
-         parent or child.
-
-         To ensure that we can really touch inferior_ptid (aka, the
-         parent process) -- which calls to functions like read_pc
-         implicitly do -- wait on the parent if necessary. */
-      if ((pending_follow.kind == TARGET_WAITKIND_VFORKED)
-         && !pending_follow.fork_event.saw_parent_fork)
-       {
-         ptid_t parent_ptid;
-
-         do
-           {
-             if (target_wait_hook)
-               parent_ptid = target_wait_hook (pid_to_ptid (-1), &(ecs->ws));
-             else
-               parent_ptid = target_wait (pid_to_ptid (-1), &(ecs->ws));
-           }
-         while (!ptid_equal (parent_ptid, inferior_ptid));
-       }
-
       /* Assuming the inferior still exists, set these up for next
          time, just like we did above if we didn't break out of the
          loop.  */
@@ -3114,16 +2741,6 @@ stop_stepping (struct execution_control_state *ecs)
 static void
 keep_going (struct execution_control_state *ecs)
 {
-  /* ??rehrauer: ttrace on HP-UX theoretically allows one to debug a
-     vforked child between its creation and subsequent exit or call to
-     exec().  However, I had big problems in this rather creaky exec
-     engine, getting that to work.  The fundamental problem is that
-     I'm trying to debug two processes via an engine that only
-     understands a single process with possibly multiple threads.
-
-     Hence, this spot is known to have problems when
-     target_can_follow_vfork_prior_to_exec returns 1. */
-
   /* Save the pc before execution, to compare with pc after stop.  */
   prev_pc = read_pc ();                /* Might have been DECR_AFTER_BREAK */
   prev_func_start = ecs->stop_func_start;      /* Ok, since if DECR_PC_AFTER
@@ -3363,8 +2980,12 @@ normal_stop (void)
   /* Make sure that the current_frame's pc is correct.  This
      is a correction for setting up the frame info before doing
      DECR_PC_AFTER_BREAK */
-  if (target_has_execution && get_current_frame ())
-    (get_current_frame ())->pc = read_pc ();
+  if (target_has_execution)
+    /* FIXME: cagney/2002-12-06: Has the PC changed?  Thanks to
+       DECR_PC_AFTER_BREAK, the program counter can change.  Ask the
+       frame code to check for this and sort out any resultant mess.
+       DECR_PC_AFTER_BREAK needs to just go away.  */
+    deprecated_update_frame_pc_hack (get_current_frame (), read_pc ());
 
   if (target_has_execution && breakpoints_inserted)
     {
@@ -3424,7 +3045,7 @@ normal_stop (void)
          bpstat_print() contains the logic deciding in detail
          what to print, based on the event(s) that just occurred. */
 
-      if (stop_print_frame && selected_frame)
+      if (stop_print_frame && deprecated_selected_frame)
        {
          int bpstat_ret;
          int source_flag;
@@ -3434,8 +3055,12 @@ normal_stop (void)
          switch (bpstat_ret)
            {
            case PRINT_UNKNOWN:
+             /* FIXME: cagney/2002-12-01: Given that a frame ID does
+                (or should) carry around the function and does (or
+                should) use that when doing a frame comparison.  */
              if (stop_step
-                 && step_frame_address == FRAME_FP (get_current_frame ())
+                 && frame_id_eq (step_frame_id,
+                                 get_frame_id (get_current_frame ()))
                  && step_start_function == find_pc_function (stop_pc))
                source_flag = SRC_LINE; /* finished step, just print source line */
              else
@@ -3468,7 +3093,7 @@ normal_stop (void)
             LOCATION: Print only location
             SRC_AND_LOC: Print location and source line */
          if (do_frame_printing)
-           show_and_print_stack_frame (selected_frame, -1, source_flag);
+           show_and_print_stack_frame (deprecated_selected_frame, -1, source_flag);
 
          /* Display the auto-display expressions.  */
          do_displays ();
@@ -3873,7 +3498,7 @@ struct inferior_status
   int trap_expected;
   CORE_ADDR step_range_start;
   CORE_ADDR step_range_end;
-  CORE_ADDR step_frame_address;
+  struct frame_id step_frame_id;
   enum step_over_calls_kind step_over_calls;
   CORE_ADDR step_resume_break_address;
   int stop_after_trap;
@@ -3920,7 +3545,7 @@ save_inferior_status (int restore_stack_info)
   inf_status->trap_expected = trap_expected;
   inf_status->step_range_start = step_range_start;
   inf_status->step_range_end = step_range_end;
-  inf_status->step_frame_address = step_frame_address;
+  inf_status->step_frame_id = step_frame_id;
   inf_status->step_over_calls = step_over_calls;
   inf_status->stop_after_trap = stop_after_trap;
   inf_status->stop_soon_quietly = stop_soon_quietly;
@@ -3938,7 +3563,7 @@ save_inferior_status (int restore_stack_info)
 
   inf_status->registers = regcache_dup (current_regcache);
 
-  get_frame_id (selected_frame, &inf_status->selected_frame_id);
+  inf_status->selected_frame_id = get_frame_id (deprecated_selected_frame);
   return inf_status;
 }
 
@@ -3950,8 +3575,8 @@ restore_selected_frame (void *args)
 
   frame = frame_find_by_id (*fid);
 
-  /* If inf_status->selected_frame_address is NULL, there was no
-     previously selected frame.  */
+  /* If inf_status->selected_frame_id is NULL, there was no previously
+     selected frame.  */
   if (frame == NULL)
     {
       warning ("Unable to restore previously selected frame.\n");
@@ -3974,7 +3599,7 @@ restore_inferior_status (struct inferior_status *inf_status)
   trap_expected = inf_status->trap_expected;
   step_range_start = inf_status->step_range_start;
   step_range_end = inf_status->step_range_end;
-  step_frame_address = inf_status->step_frame_address;
+  step_frame_id = inf_status->step_frame_id;
   step_over_calls = inf_status->step_over_calls;
   stop_after_trap = inf_status->stop_after_trap;
   stop_soon_quietly = inf_status->stop_soon_quietly;
@@ -4041,6 +3666,60 @@ discard_inferior_status (struct inferior_status *inf_status)
   xfree (inf_status);
 }
 
+int
+inferior_has_forked (int pid, int *child_pid)
+{
+  struct target_waitstatus last;
+  ptid_t last_ptid;
+
+  get_last_target_status (&last_ptid, &last);
+
+  if (last.kind != TARGET_WAITKIND_FORKED)
+    return 0;
+
+  if (ptid_get_pid (last_ptid) != pid)
+    return 0;
+
+  *child_pid = last.value.related_pid;
+  return 1;
+}
+
+int
+inferior_has_vforked (int pid, int *child_pid)
+{
+  struct target_waitstatus last;
+  ptid_t last_ptid;
+
+  get_last_target_status (&last_ptid, &last);
+
+  if (last.kind != TARGET_WAITKIND_VFORKED)
+    return 0;
+
+  if (ptid_get_pid (last_ptid) != pid)
+    return 0;
+
+  *child_pid = last.value.related_pid;
+  return 1;
+}
+
+int
+inferior_has_execd (int pid, char **execd_pathname)
+{
+  struct target_waitstatus last;
+  ptid_t last_ptid;
+
+  get_last_target_status (&last_ptid, &last);
+
+  if (last.kind != TARGET_WAITKIND_EXECD)
+    return 0;
+
+  if (ptid_get_pid (last_ptid) != pid)
+    return 0;
+
+  *execd_pathname = xstrdup (last.value.execd_pathname);
+  return 1;
+}
+
 /* Oft used ptids */
 ptid_t null_ptid;
 ptid_t minus_one_ptid;
index e49681192fee4a8ba2fecd80f1d3c8d69fda3331..471eb3cc7b5d959202f5fde6e8715fdbd7abf343 100644 (file)
@@ -61,20 +61,12 @@ static void child_files_info (struct target_ops *);
 
 static void child_detach (char *, int);
 
-static void child_detach_from_process (int, char *, int, int);
-
 static void child_attach (char *, int);
 
-static void child_attach_to_process (char *, int, int);
-
 #if !defined(CHILD_POST_ATTACH)
 extern void child_post_attach (int);
 #endif
 
-static void child_require_attach (char *, int);
-
-static void child_require_detach (int, char *, int);
-
 static void ptrace_me (void);
 
 static void ptrace_him (int);
@@ -104,16 +96,6 @@ int child_suppress_run = 0; /* Non-zero if inftarg should pretend not to
 
 #ifndef CHILD_WAIT
 
-/*## */
-/* Enable HACK for ttrace work.  In
- * infttrace.c/require_notification_of_events,
- * this is set to 0 so that the loop in child_wait
- * won't loop.
- */
-int not_same_real_pid = 1;
-/*## */
-
-
 /* Wait for child to do something.  Return pid of child, or -1 in case
    of error; store status through argument pointer OURSTATUS.  */
 
@@ -170,59 +152,7 @@ child_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
          ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
          return pid_to_ptid (pid);
        }
-
-      if (target_has_forked (pid, &related_pid)
-         && ((pid == PIDGET (inferior_ptid)) 
-             || (related_pid == PIDGET (inferior_ptid))))
-       {
-         ourstatus->kind = TARGET_WAITKIND_FORKED;
-         ourstatus->value.related_pid = related_pid;
-         return pid_to_ptid (pid);
-       }
-
-      if (target_has_vforked (pid, &related_pid)
-         && ((pid == PIDGET (inferior_ptid))
-             || (related_pid == PIDGET (inferior_ptid))))
-       {
-         ourstatus->kind = TARGET_WAITKIND_VFORKED;
-         ourstatus->value.related_pid = related_pid;
-         return pid_to_ptid (pid);
-       }
-
-      if (target_has_execd (pid, &execd_pathname))
-       {
-         /* Are we ignoring initial exec events?  (This is likely because
-            we're in the process of starting up the inferior, and another
-            (older) mechanism handles those.)  If so, we'll report this
-            as a regular stop, not an exec.
-          */
-         if (inferior_ignoring_startup_exec_events)
-           {
-             inferior_ignoring_startup_exec_events--;
-           }
-         else
-           {
-             ourstatus->kind = TARGET_WAITKIND_EXECD;
-             ourstatus->value.execd_pathname = execd_pathname;
-             return pid_to_ptid (pid);
-           }
-       }
-
-      /* All we must do with these is communicate their occurrence
-         to wait_for_inferior...
-       */
-      if (target_has_syscall_event (pid, &kind, &syscall_id))
-       {
-         ourstatus->kind = kind;
-         ourstatus->value.syscall_id = syscall_id;
-         return pid_to_ptid (pid);
-       }
-
-      /*##  } while (pid != PIDGET (inferior_ptid)); ## *//* Some other child died or stopped */
-/* hack for thread testing */
-    }
-  while ((pid != PIDGET (inferior_ptid)) && not_same_real_pid);
-/*## */
+      } while (pid != PIDGET (inferior_ptid)); /* Some other child died or stopped */
 
   store_waitstatus (ourstatus, status);
   return pid_to_ptid (pid);
@@ -257,8 +187,10 @@ child_thread_alive (ptid_t ptid)
 
 #endif
 
+/* Attach to process PID, then initialize for debugging it.  */
+
 static void
-child_attach_to_process (char *args, int from_tty, int after_fork)
+child_attach (char *args, int from_tty)
 {
   if (!args)
     error_no_arg ("process-id to attach");
@@ -284,10 +216,7 @@ child_attach_to_process (char *args, int from_tty, int after_fork)
       {
        exec_file = (char *) get_exec_file (0);
 
-       if (after_fork)
-         printf_unfiltered ("Attaching after fork to %s\n",
-                            target_pid_to_str (pid_to_ptid (pid)));
-       else if (exec_file)
+       if (exec_file)
          printf_unfiltered ("Attaching to program: %s, %s\n", exec_file,
                             target_pid_to_str (pid_to_ptid (pid)));
        else
@@ -297,10 +226,7 @@ child_attach_to_process (char *args, int from_tty, int after_fork)
        gdb_flush (gdb_stdout);
       }
 
-    if (!after_fork)
-      attach (pid);
-    else
-      REQUIRE_ATTACH (pid);
+    attach (pid);
 
     inferior_ptid = pid_to_ptid (pid);
     push_target (&child_ops);
@@ -308,15 +234,6 @@ child_attach_to_process (char *args, int from_tty, int after_fork)
 #endif /* ATTACH_DETACH */
 }
 
-
-/* Attach to process PID, then initialize for debugging it.  */
-
-static void
-child_attach (char *args, int from_tty)
-{
-  child_attach_to_process (args, from_tty, 0);
-}
-
 #if !defined(CHILD_POST_ATTACH)
 void
 child_post_attach (int pid)
@@ -326,68 +243,44 @@ child_post_attach (int pid)
 }
 #endif
 
-static void
-child_require_attach (char *args, int from_tty)
-{
-  child_attach_to_process (args, from_tty, 1);
-}
+/* Take a program previously attached to and detaches it.
+   The program resumes execution and will no longer stop
+   on signals, etc.  We'd better not have left any breakpoints
+   in the program or it'll die when it hits one.  For this
+   to work, it may be necessary for the process to have been
+   previously attached.  It *might* work if the program was
+   started via the normal ptrace (PTRACE_TRACEME).  */
 
 static void
-child_detach_from_process (int pid, char *args, int from_tty, int after_fork)
+child_detach (char *args, int from_tty)
 {
 #ifdef ATTACH_DETACH
   {
     int siggnal = 0;
+    int pid = PIDGET (inferior_ptid);
 
     if (from_tty)
       {
        char *exec_file = get_exec_file (0);
        if (exec_file == 0)
          exec_file = "";
-       if (after_fork)
-         printf_unfiltered ("Detaching after fork from %s\n",
-                            target_pid_to_str (pid_to_ptid (pid)));
-       else
-         printf_unfiltered ("Detaching from program: %s, %s\n", exec_file,
-                            target_pid_to_str (pid_to_ptid (pid)));
+       printf_unfiltered ("Detaching from program: %s, %s\n", exec_file,
+                          target_pid_to_str (pid_to_ptid (pid)));
        gdb_flush (gdb_stdout);
       }
     if (args)
       siggnal = atoi (args);
 
-    if (!after_fork)
-      detach (siggnal);
-    else
-      REQUIRE_DETACH (pid, siggnal);
+    detach (siggnal);
+
+    inferior_ptid = null_ptid;
+    unpush_target (&child_ops);
   }
 #else
   error ("This version of Unix does not support detaching a process.");
 #endif
 }
 
-/* Take a program previously attached to and detaches it.
-   The program resumes execution and will no longer stop
-   on signals, etc.  We'd better not have left any breakpoints
-   in the program or it'll die when it hits one.  For this
-   to work, it may be necessary for the process to have been
-   previously attached.  It *might* work if the program was
-   started via the normal ptrace (PTRACE_TRACEME).  */
-
-static void
-child_detach (char *args, int from_tty)
-{
-  child_detach_from_process (PIDGET (inferior_ptid), args, from_tty, 0);
-  inferior_ptid = null_ptid;
-  unpush_target (&child_ops);
-}
-
-static void
-child_require_detach (int pid, char *args, int from_tty)
-{
-  child_detach_from_process (pid, args, from_tty, 1);
-}
-
-
 /* Get ready to modify the registers array.  On machines which store
    individual registers, this doesn't need to do anything.  On machines
    which store all the registers in one fell swoop, this makes sure
@@ -495,27 +388,6 @@ child_acknowledge_created_inferior (int pid)
 #endif
 
 
-void
-child_clone_and_follow_inferior (int child_pid, int *followed_child)
-{
-  clone_and_follow_inferior (child_pid, followed_child);
-
-  /* Don't resume CHILD_PID; it's stopped where it ought to be, until
-     the decision gets made elsewhere how to continue it.
-   */
-}
-
-
-#if !defined(CHILD_POST_FOLLOW_INFERIOR_BY_CLONE)
-void
-child_post_follow_inferior_by_clone (void)
-{
-  /* This version of Unix doesn't require a meaningful "post follow inferior"
-     operation by a clone debugger.
-   */
-}
-#endif
-
 #if !defined(CHILD_INSERT_FORK_CATCHPOINT)
 int
 child_insert_fork_catchpoint (int pid)
@@ -552,51 +424,15 @@ child_remove_vfork_catchpoint (int pid)
 }
 #endif
 
-#if !defined(CHILD_HAS_FORKED)
-int
-child_has_forked (int pid, int *child_pid)
-{
-  /* This version of Unix doesn't support notification of fork events.  */
-  return 0;
-}
-#endif
-
-
-#if !defined(CHILD_HAS_VFORKED)
-int
-child_has_vforked (int pid, int *child_pid)
-{
-  /* This version of Unix doesn't support notification of vfork events.
-   */
-  return 0;
-}
-#endif
-
-
-#if !defined(CHILD_CAN_FOLLOW_VFORK_PRIOR_TO_EXEC)
+#if !defined(CHILD_FOLLOW_FORK)
 int
-child_can_follow_vfork_prior_to_exec (void)
+child_follow_fork (int follow_child)
 {
-  /* This version of Unix doesn't support notification of vfork events.
-     However, if it did, it probably wouldn't allow vforks to be followed
-     before the following exec.
-   */
+  /* This version of Unix doesn't support following fork or vfork events.  */
   return 0;
 }
 #endif
 
-
-#if !defined(CHILD_POST_FOLLOW_VFORK)
-void
-child_post_follow_vfork (int parent_pid, int followed_parent, int child_pid,
-                        int followed_child)
-{
-  /* This version of Unix doesn't require a meaningful "post follow vfork"
-     operation by a clone debugger.
-   */
-}
-#endif
-
 #if !defined(CHILD_INSERT_EXEC_CATCHPOINT)
 int
 child_insert_exec_catchpoint (int pid)
@@ -615,17 +451,6 @@ child_remove_exec_catchpoint (int pid)
 }
 #endif
 
-#if !defined(CHILD_HAS_EXECD)
-int
-child_has_execd (int pid, char **execd_pathname)
-{
-  /* This version of Unix doesn't support notification of exec events.
-   */
-  return 0;
-}
-#endif
-
-
 #if !defined(CHILD_REPORTED_EXEC_EVENTS_PER_EXEC_CALL)
 int
 child_reported_exec_events_per_exec_call (void)
@@ -636,18 +461,6 @@ child_reported_exec_events_per_exec_call (void)
 }
 #endif
 
-
-#if !defined(CHILD_HAS_SYSCALL_EVENT)
-int
-child_has_syscall_event (int pid, enum target_waitkind *kind, int *syscall_id)
-{
-  /* This version of Unix doesn't support notification of syscall events.
-   */
-  return 0;
-}
-#endif
-
-
 #if !defined(CHILD_HAS_EXITED)
 int
 child_has_exited (int pid, int wait_status, int *exit_status)
@@ -758,9 +571,7 @@ init_child_ops (void)
   child_ops.to_open = child_open;
   child_ops.to_attach = child_attach;
   child_ops.to_post_attach = child_post_attach;
-  child_ops.to_require_attach = child_require_attach;
   child_ops.to_detach = child_detach;
-  child_ops.to_require_detach = child_require_detach;
   child_ops.to_resume = child_resume;
   child_ops.to_wait = child_wait;
   child_ops.to_post_wait = child_post_wait;
@@ -781,21 +592,14 @@ init_child_ops (void)
   child_ops.to_create_inferior = child_create_inferior;
   child_ops.to_post_startup_inferior = child_post_startup_inferior;
   child_ops.to_acknowledge_created_inferior = child_acknowledge_created_inferior;
-  child_ops.to_clone_and_follow_inferior = child_clone_and_follow_inferior;
-  child_ops.to_post_follow_inferior_by_clone = child_post_follow_inferior_by_clone;
   child_ops.to_insert_fork_catchpoint = child_insert_fork_catchpoint;
   child_ops.to_remove_fork_catchpoint = child_remove_fork_catchpoint;
   child_ops.to_insert_vfork_catchpoint = child_insert_vfork_catchpoint;
   child_ops.to_remove_vfork_catchpoint = child_remove_vfork_catchpoint;
-  child_ops.to_has_forked = child_has_forked;
-  child_ops.to_has_vforked = child_has_vforked;
-  child_ops.to_can_follow_vfork_prior_to_exec = child_can_follow_vfork_prior_to_exec;
-  child_ops.to_post_follow_vfork = child_post_follow_vfork;
+  child_ops.to_follow_fork = child_follow_fork;
   child_ops.to_insert_exec_catchpoint = child_insert_exec_catchpoint;
   child_ops.to_remove_exec_catchpoint = child_remove_exec_catchpoint;
-  child_ops.to_has_execd = child_has_execd;
   child_ops.to_reported_exec_events_per_exec_call = child_reported_exec_events_per_exec_call;
-  child_ops.to_has_syscall_event = child_has_syscall_event;
   child_ops.to_has_exited = child_has_exited;
   child_ops.to_mourn_inferior = child_mourn_inferior;
   child_ops.to_can_run = child_can_run;
index a1a789c59a1c446f5a153e3f5b8213cc627a30d9..589a0e237bcab562ac252c6b5e9d6a8456f3e529 100644 (file)
@@ -2289,7 +2289,7 @@ call_ttrace_wait (int pid, ttwopt_t option, ttstate_t *tsp, size_t tsp_size)
      thread descriptor.
 
      This caches the state.  The implementation of queries like
-     target_has_execd can then use this cached state, rather than
+     hpux_has_execd can then use this cached state, rather than
      be forced to make an explicit ttrace call to get it.
 
      (Guard against the condition that this is the first time we've
@@ -3357,8 +3357,6 @@ child_remove_vfork_catchpoint (int tid)
 }
 #endif
 
-#if defined(CHILD_HAS_FORKED)
-
 /* Q: Do we need to map the returned process ID to a thread ID?
 
  * A: I don't think so--here we want a _real_ pid.  Any later
@@ -3366,7 +3364,7 @@ child_remove_vfork_catchpoint (int tid)
  *    start the mapping.
  */
 int
-child_has_forked (int tid, int *childpid)
+hpux_has_forked (int tid, int *childpid)
 {
   int tt_status;
   ttstate_t ttrace_state;
@@ -3403,15 +3401,11 @@ child_has_forked (int tid, int *childpid)
 
   return 0;
 }
-#endif
-
 
-#if defined(CHILD_HAS_VFORKED)
-
-/* See child_has_forked for pid discussion.
+/* See hpux_has_forked for pid discussion.
  */
 int
-child_has_vforked (int tid, int *childpid)
+hpux_has_vforked (int tid, int *childpid)
 {
   int tt_status;
   ttstate_t ttrace_state;
@@ -3446,22 +3440,6 @@ child_has_vforked (int tid, int *childpid)
 
   return 0;
 }
-#endif
-
-
-#if defined(CHILD_CAN_FOLLOW_VFORK_PRIOR_TO_EXEC)
-int
-child_can_follow_vfork_prior_to_exec (void)
-{
-  /* ttrace does allow this.
-
-     ??rehrauer: However, I had major-league problems trying to
-     convince wait_for_inferior to handle that case.  Perhaps when
-     it is rewritten to grok multiple processes in an explicit way...
-   */
-  return 0;
-}
-#endif
 
 
 #if defined(CHILD_INSERT_EXEC_CATCHPOINT)
@@ -3490,9 +3468,8 @@ child_remove_exec_catchpoint (int tid)
 #endif
 
 
-#if defined(CHILD_HAS_EXECD)
 int
-child_has_execd (int tid, char **execd_pathname)
+hpux_has_execd (int tid, char **execd_pathname)
 {
   int tt_status;
   ttstate_t ttrace_state;
@@ -3531,12 +3508,10 @@ child_has_execd (int tid, char **execd_pathname)
 
   return 0;
 }
-#endif
 
 
-#if defined(CHILD_HAS_SYSCALL_EVENT)
 int
-child_has_syscall_event (int pid, enum target_waitkind *kind, int *syscall_id)
+hpux_has_syscall_event (int pid, enum target_waitkind *kind, int *syscall_id)
 {
   int tt_status;
   ttstate_t ttrace_state;
@@ -3576,7 +3551,6 @@ child_has_syscall_event (int pid, enum target_waitkind *kind, int *syscall_id)
   *syscall_id = ttrace_state.tts_scno;
   return 1;
 }
-#endif
 \f
 
 
@@ -4549,7 +4523,15 @@ child_resume (ptid_t ptid, int step, enum target_signal signal)
         pending signal will be passed to the inferior.  interrupt.exp
         in the testsuite does this precise thing and fails due to the
         unwanted signal delivery to the inferior.  */
-      if (resume_all_threads)
+      /* drow/2002-12-05: However, note that we must use TT_PROC_CONTINUE
+        if we are tracing a vfork.  */
+      if (vfork_in_flight)
+       {
+         call_ttrace (TT_PROC_CONTINUE, tid, TT_NIL, TT_NIL, TT_NIL);
+         clear_all_handled ();
+         clear_all_stepping_mode ();
+       }
+      else if (resume_all_threads)
        {
 #ifdef THREAD_DEBUG
          if (debug_on)
@@ -5068,9 +5050,7 @@ pre_fork_inferior (void)
     }
 }
 
-/* Called via #define REQUIRE_ATTACH from inftarg.c,
- * ultimately from "follow_inferior_fork" in infrun.c,
- * itself called from "resume".
+/* Called from child_follow_fork in hppah-nat.c.
  *
  * This seems to be intended to attach after a fork or
  * vfork, while "attach" is used to attach to a pid
index 4b9d57d03203359b99b4d0bbd9f94db1fb983929..0b30ceac48466bcb524c3fe9f14223d73c97f667 100644 (file)
@@ -34,7 +34,7 @@
 #include "gdbcmd.h"
 
 static int debug_lin_lwp;
-extern const char *strsignal (int sig);
+extern char *strsignal (int sig);
 
 /* On GNU/Linux there are no real LWP's.  The closest thing to LWP's
    are processes sharing the same VM space.  A multi-threaded process
@@ -1343,32 +1343,6 @@ lin_lwp_mourn_inferior (void)
   child_ops.to_mourn_inferior ();
 }
 
-static void
-lin_lwp_fetch_registers (int regno)
-{
-  struct cleanup *old_chain = save_inferior_ptid ();
-
-  if (is_lwp (inferior_ptid))
-    inferior_ptid = pid_to_ptid (GET_LWP (inferior_ptid));
-
-  fetch_inferior_registers (regno);
-
-  do_cleanups (old_chain);
-}
-
-static void
-lin_lwp_store_registers (int regno)
-{
-  struct cleanup *old_chain = save_inferior_ptid ();
-
-  if (is_lwp (inferior_ptid))
-    inferior_ptid = pid_to_ptid (GET_LWP (inferior_ptid));
-
-  store_inferior_registers (regno);
-
-  do_cleanups (old_chain);
-}
-
 static int
 lin_lwp_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
                     struct mem_attrib *attrib,
@@ -1380,7 +1354,9 @@ lin_lwp_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
   if (is_lwp (inferior_ptid))
     inferior_ptid = pid_to_ptid (GET_LWP (inferior_ptid));
 
-  xfer = child_xfer_memory (memaddr, myaddr, len, write, attrib, target);
+  xfer = linux_proc_xfer_memory (memaddr, myaddr, len, write, attrib, target);
+  if (xfer == 0)
+    xfer = child_xfer_memory (memaddr, myaddr, len, write, attrib, target);
 
   do_cleanups (old_chain);
   return xfer;
@@ -1426,8 +1402,10 @@ init_lin_lwp_ops (void)
   lin_lwp_ops.to_detach = lin_lwp_detach;
   lin_lwp_ops.to_resume = lin_lwp_resume;
   lin_lwp_ops.to_wait = lin_lwp_wait;
-  lin_lwp_ops.to_fetch_registers = lin_lwp_fetch_registers;
-  lin_lwp_ops.to_store_registers = lin_lwp_store_registers;
+  /* fetch_inferior_registers and store_inferior_registers will
+     honor the LWP id, so we can use them directly.  */
+  lin_lwp_ops.to_fetch_registers = fetch_inferior_registers;
+  lin_lwp_ops.to_store_registers = store_inferior_registers;
   lin_lwp_ops.to_xfer_memory = lin_lwp_xfer_memory;
   lin_lwp_ops.to_kill = lin_lwp_kill;
   lin_lwp_ops.to_create_inferior = lin_lwp_create_inferior;
index f76def3a3a2c7f9f3373b7d09f6e7341452b1c85..2f43ae61f97004f3bfd968271037e8af05935052 100644 (file)
@@ -25,6 +25,8 @@
 #include <sys/procfs.h>        /* for elf_gregset etc. */
 #include <sys/stat.h>  /* for struct stat */
 #include <ctype.h>     /* for isdigit */
+#include <unistd.h>    /* for open, pread64 */
+#include <fcntl.h>     /* for O_RDONLY */
 #include "regcache.h"  /* for registers_changed */
 #include "gregset.h"   /* for gregset */
 #include "gdbcore.h"   /* for get_exec_file */
 #include "cli/cli-decode.h"    /* for add_info */
 #include "gdb_string.h"
 
+#ifndef O_LARGEFILE
+#define O_LARGEFILE 0
+#endif
+
 /* Function: child_pid_to_exec_file
  *
  * Accepts an integer pid
@@ -577,3 +583,46 @@ Specify any of the following keywords for detailed info:\n\
   status   -- list a different bunch of random process info.\n\
   all      -- list all available /proc info.");
 }
+
+int linux_proc_xfer_memory (CORE_ADDR addr, char *myaddr, int len, int write,
+                           struct mem_attrib *attrib,
+                           struct target_ops *target)
+{
+  int fd, ret;
+  char filename[64];
+
+  if (write)
+    return 0;
+
+  /* Don't bother for one word.  */
+  if (len < 3 * sizeof (long))
+    return 0;
+
+  /* We could keep this file open and cache it - possibly one
+     per thread.  That requires some juggling, but is even faster.  */
+  sprintf (filename, "/proc/%d/mem", PIDGET (inferior_ptid));
+  fd = open (filename, O_RDONLY | O_LARGEFILE);
+  if (fd == -1)
+    return 0;
+
+  /* If pread64 is available, use it.  It's faster if the kernel
+     supports it (only one syscall), and it's 64-bit safe even
+     on 32-bit platforms (for instance, SPARC debugging a SPARC64
+     application).
+
+     We play some autoconf and CFLAGS games to get this declaration
+     exposed: -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE.  And then
+     a -D_BSD_SOURCE to counteract the defaults for _XOPEN_SOURCE.  */
+#ifdef HAVE_PREAD64
+  if (pread64 (fd, myaddr, len, addr) != len)
+#else
+  if (lseek (fd, addr, SEEK_SET) == -1
+      || read (fd, myaddr, len) != len)
+#endif
+    ret = 0;
+  else
+    ret = len;
+
+  close (fd);
+  return ret;
+}
index b1bc3ed037b7dae2d123f526cd3995e34d821698..eeb6335131b2d27054e88fd14c34acb2657015a8 100644 (file)
@@ -386,7 +386,7 @@ m32r_init_extra_frame_info (struct frame_info *fi)
 
   memset (fi->fsr.regs, '\000', sizeof fi->fsr.regs);
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       /* We need to setup fi->frame here because run_stack_dummy gets it wrong
          by assuming it's always FP.  */
@@ -462,7 +462,7 @@ CORE_ADDR
 m32r_find_callers_reg (struct frame_info *fi, int regnum)
 {
   for (; fi; fi = fi->next)
-    if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+    if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
       return deprecated_read_register_dummy (fi->pc, fi->frame, regnum);
     else if (fi->fsr.regs[regnum] != 0)
       return read_memory_integer (fi->fsr.regs[regnum],
@@ -470,11 +470,11 @@ m32r_find_callers_reg (struct frame_info *fi, int regnum)
   return read_register (regnum);
 }
 
-/* Function: frame_chain
-   Given a GDB frame, determine the address of the calling function's frame.
-   This will be used to create a new GDB frame struct, and then
-   INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
-   For m32r, we save the frame size when we initialize the frame_info.  */
+/* Function: frame_chain Given a GDB frame, determine the address of
+   the calling function's frame.  This will be used to create a new
+   GDB frame struct, and then INIT_EXTRA_FRAME_INFO and
+   DEPRECATED_INIT_FRAME_PC will be called for the new frame.  For
+   m32r, we save the frame size when we initialize the frame_info.  */
 
 CORE_ADDR
 m32r_frame_chain (struct frame_info *fi)
@@ -482,13 +482,13 @@ m32r_frame_chain (struct frame_info *fi)
   CORE_ADDR fn_start, callers_pc, fp;
 
   /* is this a dummy frame? */
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     return fi->frame;          /* dummy frame same as caller's frame */
 
   /* is caller-of-this a dummy frame? */
   callers_pc = FRAME_SAVED_PC (fi);    /* find out who called us: */
   fp = m32r_find_callers_reg (fi, FP_REGNUM);
-  if (PC_IN_CALL_DUMMY (callers_pc, fp, fp))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (callers_pc, fp, fp))
     return fp;                 /* dummy frame's frame may bear no relation to ours */
 
   if (find_pc_partial_function (fi->pc, 0, &fn_start, 0))
@@ -527,7 +527,7 @@ m32r_pop_frame (struct frame_info *frame)
 {
   int regnum;
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     generic_pop_dummy_frame ();
   else
     {
@@ -554,7 +554,7 @@ m32r_pop_frame (struct frame_info *frame)
 CORE_ADDR
 m32r_frame_saved_pc (struct frame_info *fi)
 {
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     return deprecated_read_register_dummy (fi->pc, fi->frame, PC_REGNUM);
   else
     return m32r_find_callers_reg (fi, RP_REGNUM);
index 3045a58fa88c5b4fbb6b41d34144c6e6213a2c4c..7b2dc43809e42a12a7ca374ea05d6052f4df6889 100644 (file)
@@ -434,11 +434,11 @@ m68hc11_pop_frame (void)
   register CORE_ADDR fp, sp;
   register int regnum;
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     generic_pop_dummy_frame ();
   else
     {
-      fp = FRAME_FP (frame);
+      fp = get_frame_base (frame);
       FRAME_INIT_SAVED_REGS (frame);
 
       /* Copy regs from where they were saved in the frame.  */
@@ -802,17 +802,17 @@ m68hc11_skip_prologue (CORE_ADDR pc)
   return pc;
 }
 
-/* Given a GDB frame, determine the address of the calling function's frame.
-   This will be used to create a new GDB frame struct, and then
-   INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
-*/
+/* Given a GDB frame, determine the address of the calling function's
+   frame.  This will be used to create a new GDB frame struct, and
+   then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be
+   called for the new frame.  */
 
 static CORE_ADDR
 m68hc11_frame_chain (struct frame_info *frame)
 {
   CORE_ADDR addr;
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     return frame->frame;       /* dummy frame same as caller's frame */
 
   if (frame->extra_info->return_pc == 0
@@ -1177,33 +1177,6 @@ m68hc11_push_return_address (CORE_ADDR pc, CORE_ADDR sp)
   return sp;
 }
 
-/* Index within `registers' of the first byte of the space for
-   register N.  */
-static int
-m68hc11_register_byte (int reg_nr)
-{
-  return (reg_nr * M68HC11_REG_SIZE);
-}
-
-static int
-m68hc11_register_raw_size (int reg_nr)
-{
-  switch (reg_nr)
-    {
-    case HARD_PAGE_REGNUM:
-    case HARD_A_REGNUM:
-    case HARD_B_REGNUM:
-    case HARD_CCR_REGNUM:
-      return 1;
-
-    case M68HC12_HARD_PC_REGNUM:
-      return 4;
-
-    default:
-      return M68HC11_REG_SIZE;
-    }
-}
-
 /* Test whether the ELF symbol corresponds to a function using rtc or
    rti to return.  */
    
@@ -1263,6 +1236,10 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
   gdbarch = gdbarch_alloc (&info, tdep);
   tdep->elf_flags = elf_flags;
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   switch (info.bfd_arch_info->arch)
     {
     case bfd_arch_m68hc11:
@@ -1311,9 +1288,6 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_fp0_regnum (gdbarch, -1);
   set_gdbarch_max_register_raw_size (gdbarch, 2);
   set_gdbarch_max_register_virtual_size (gdbarch, 2);
-  set_gdbarch_register_raw_size (gdbarch, m68hc11_register_raw_size);
-  set_gdbarch_register_virtual_size (gdbarch, m68hc11_register_raw_size);
-  set_gdbarch_register_byte (gdbarch, m68hc11_register_byte);
   set_gdbarch_frame_init_saved_regs (gdbarch, m68hc11_frame_init_saved_regs);
   set_gdbarch_frame_args_skip (gdbarch, 0);
 
@@ -1332,14 +1306,11 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_pseudo_register_read (gdbarch, m68hc11_pseudo_register_read);
   set_gdbarch_pseudo_register_write (gdbarch, m68hc11_pseudo_register_write);
 
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, m68hc11_call_dummy_address);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1); /*???*/
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_words (gdbarch, m68hc11_call_dummy_words);
   set_gdbarch_sizeof_call_dummy_words (gdbarch,
                                        sizeof (m68hc11_call_dummy_words));
index d27d177d2dfbf5a77eade017160ef3e2042fce1d..8735e07bd56824d78559195f8066d28b716a1ebb 100644 (file)
@@ -28,6 +28,8 @@
 #include "inferior.h"
 #include "regcache.h"
 #include "arch-utils.h"
+
+#include "m68k-tdep.h"
 \f
 
 #define P_LINKL_FP     0x480e
 #define P_TRAP         0x4e40
 
 
-/* Register numbers of various important registers.
-   Note that some of these values are "real" register numbers,
-   and correspond to the general registers of the machine,
-   and some are "phony" register numbers which are too large
-   to be actual register numbers as far as the user is concerned
-   but do serve to get the desired values when passed to read_register.  */
-
-/* Note: Since they are used in files other than this (monitor files), 
-   D0_REGNUM and A0_REGNUM are currently defined in tm-m68k.h.  */
-
-enum
-{
-  E_A1_REGNUM = 9,
-  E_FP_REGNUM = 14,            /* Contains address of executing stack frame */
-  E_SP_REGNUM = 15,            /* Contains address of top of stack */
-  E_PS_REGNUM = 16,            /* Contains processor status */
-  E_PC_REGNUM = 17,            /* Contains program counter */
-  E_FP0_REGNUM = 18,           /* Floating point register 0 */
-  E_FPC_REGNUM = 26,           /* 68881 control register */
-  E_FPS_REGNUM = 27,           /* 68881 status register */
-  E_FPI_REGNUM = 28
-};
-
 #define REGISTER_BYTES_FP (16*4 + 8 + 8*12 + 3*4)
 #define REGISTER_BYTES_NOFP (16*4 + 8)
 
@@ -148,24 +127,31 @@ m68k_register_virtual_size (int regnum)
   return (((unsigned) (regnum) - FP0_REGNUM) < 8 ? 12 : 4);
 }
 
-/* Return the GDB type object for the "standard" data type of data 
-   in register N.  This should be int for D0-D7, long double for FP0-FP7,
-   and void pointer for all others (A0-A7, PC, SR, FPCONTROL etc).
-   Note, for registers which contain addresses return pointer to void, 
-   not pointer to char, because we don't want to attempt to print 
-   the string after printing the address.  */
+/* Return the GDB type object for the "standard" data type of data in
+   register N.  This should be int for D0-D7, SR, FPCONTROL and
+   FPSTATUS, long double for FP0-FP7, and void pointer for all others
+   (A0-A7, PC, FPIADDR).  Note, for registers which contain
+   addresses return pointer to void, not pointer to char, because we
+   don't want to attempt to print the string after printing the
+   address.  */
 
 static struct type *
 m68k_register_virtual_type (int regnum)
 {
-  if ((unsigned) regnum >= E_FPC_REGNUM)
-    return lookup_pointer_type (builtin_type_void);
-  else if ((unsigned) regnum >= FP0_REGNUM)
-    return builtin_type_long_double;
-  else if ((unsigned) regnum >= A0_REGNUM)
-    return lookup_pointer_type (builtin_type_void);
-  else
-    return builtin_type_int;
+  if (regnum >= FP0_REGNUM && regnum <= FP0_REGNUM + 7)
+    return builtin_type_m68881_ext;
+
+  if (regnum == M68K_FPI_REGNUM || regnum == PC_REGNUM)
+    return builtin_type_void_func_ptr;
+
+  if (regnum == M68K_FPC_REGNUM || regnum == M68K_FPS_REGNUM
+      || regnum == PS_REGNUM)
+    return builtin_type_int32;
+
+  if (regnum >= M68K_A0_REGNUM && regnum <= M68K_A0_REGNUM + 7)
+    return builtin_type_void_data_ptr;
+
+  return builtin_type_int32;
 }
 
 /* Function: m68k_register_name
@@ -204,8 +190,8 @@ m68k_stack_align (CORE_ADDR addr)
 static int
 m68k_register_byte (int regnum)
 {
-  if (regnum >= E_FPC_REGNUM)
-    return (((regnum - E_FPC_REGNUM) * 4) + 168);
+  if (regnum >= M68K_FPC_REGNUM)
+    return (((regnum - M68K_FPC_REGNUM) * 4) + 168);
   else if (regnum >= FP0_REGNUM)
     return (((regnum - FP0_REGNUM) * 12) + 72);
   else
@@ -218,7 +204,7 @@ m68k_register_byte (int regnum)
 static void
 m68k_store_struct_return (CORE_ADDR addr, CORE_ADDR sp)
 {
-  write_register (E_A1_REGNUM, addr);
+  write_register (M68K_A1_REGNUM, addr);
 }
 
 /* Extract from an array regbuf containing the (raw) register state
@@ -270,10 +256,10 @@ m68k_store_return_value (struct type *type, char *valbuf)
 static CORE_ADDR
 m68k_frame_chain (struct frame_info *thisframe)
 {
-  if (thisframe->signal_handler_caller)
+  if (get_frame_type (thisframe) == SIGTRAMP_FRAME)
     return thisframe->frame;
-  else if (!inside_entry_file ((thisframe)->pc))
-    return read_memory_integer ((thisframe)->frame, 4);
+  else if (!inside_entry_file (thisframe->pc))
+    return read_memory_unsigned_integer (thisframe->frame, 4);
   else
     return 0;
 }
@@ -285,7 +271,7 @@ m68k_frame_chain (struct frame_info *thisframe)
 static int
 m68k_frameless_function_invocation (struct frame_info *fi)
 {
-  if (fi->signal_handler_caller)
+  if (get_frame_type (fi) == SIGTRAMP_FRAME)
     return 0;
   else
     return frameless_look_for_prologue (fi);
@@ -294,16 +280,17 @@ m68k_frameless_function_invocation (struct frame_info *fi)
 static CORE_ADDR
 m68k_frame_saved_pc (struct frame_info *frame)
 {
-  if (frame->signal_handler_caller)
+  if (get_frame_type (frame) == SIGTRAMP_FRAME)
     {
       if (frame->next)
-       return read_memory_integer (frame->next->frame + SIG_PC_FP_OFFSET, 4);
+       return read_memory_unsigned_integer (frame->next->frame
+                                            + SIG_PC_FP_OFFSET, 4);
       else
-       return read_memory_integer (read_register (SP_REGNUM)
-                                   + SIG_PC_FP_OFFSET - 8, 4);
+       return read_memory_unsigned_integer (read_register (SP_REGNUM)
+                                            + SIG_PC_FP_OFFSET - 8, 4);
     }
   else
-    return read_memory_integer (frame->frame + 4, 4);
+    return read_memory_unsigned_integer (frame->frame + 4, 4);
 }
 
 
@@ -313,7 +300,7 @@ m68k_frame_saved_pc (struct frame_info *frame)
 extern CORE_ADDR
 altos_skip_prologue (CORE_ADDR pc)
 {
-  register int op = read_memory_integer (pc, 2);
+  register int op = read_memory_unsigned_integer (pc, 2);
   if (op == P_LINKW_FP)
     pc += 4;                   /* Skip link #word */
   else if (op == P_LINKL_FP)
@@ -343,12 +330,12 @@ delta68_frame_args_address (struct frame_info *frame_info)
 {
   /* we assume here that the only frameless functions are the system calls
      or other functions who do not put anything on the stack. */
-  if (frame_info->signal_handler_caller)
+  if (get_frame_type (frame_info) == SIGTRAMP_FRAME)
     return frame_info->frame + 12;
   else if (frameless_look_for_prologue (frame_info))
     {
       /* Check for an interrupted system call */
-      if (frame_info->next && frame_info->next->signal_handler_caller)
+      if (frame_info->next && (get_frame_type (frame_info->next) == SIGTRAMP_FRAME))
        return frame_info->next->frame + 16;
       else
        return frame_info->frame + 4;
@@ -360,7 +347,8 @@ delta68_frame_args_address (struct frame_info *frame_info)
 CORE_ADDR
 delta68_frame_saved_pc (struct frame_info *frame_info)
 {
-  return read_memory_integer (delta68_frame_args_address (frame_info) + 4, 4);
+  return read_memory_unsigned_integer (delta68_frame_args_address (frame_info)
+                                      + 4, 4);
 }
 
 /* Return number of args passed to a frame.
@@ -371,7 +359,7 @@ isi_frame_num_args (struct frame_info *fi)
 {
   int val;
   CORE_ADDR pc = FRAME_SAVED_PC (fi);
-  int insn = 0177777 & read_memory_integer (pc, 2);
+  int insn = read_memory_unsigned_integer (pc, 2);
   val = 0;
   if (insn == 0047757 || insn == 0157374)      /* lea W(sp),sp or addaw #W,sp */
     val = read_memory_integer (pc + 2, 2);
@@ -393,7 +381,7 @@ delta68_frame_num_args (struct frame_info *fi)
 {
   int val;
   CORE_ADDR pc = FRAME_SAVED_PC (fi);
-  int insn = 0177777 & read_memory_integer (pc, 2);
+  int insn = read_memory_unsigned_integer (pc, 2);
   val = 0;
   if (insn == 0047757 || insn == 0157374)      /* lea W(sp),sp or addaw #W,sp */
     val = read_memory_integer (pc + 2, 2);
@@ -415,7 +403,7 @@ news_frame_num_args (struct frame_info *fi)
 {
   int val;
   CORE_ADDR pc = FRAME_SAVED_PC (fi);
-  int insn = 0177777 & read_memory_integer (pc, 2);
+  int insn = read_memory_unsigned_integer (pc, 2);
   val = 0;
   if (insn == 0047757 || insn == 0157374)      /* lea W(sp),sp or addaw #W,sp */
     val = read_memory_integer (pc + 2, 2);
@@ -486,7 +474,7 @@ m68k_pop_frame (void)
   register int regnum;
   char raw_buffer[12];
 
-  fp = FRAME_FP (frame);
+  fp = get_frame_base (frame);
   m68k_frame_init_saved_regs (frame);
   for (regnum = FP0_REGNUM + 7; regnum >= FP0_REGNUM; regnum--)
     {
@@ -564,8 +552,7 @@ m68k_skip_prologue (CORE_ADDR ip)
 
   while (ip < limit)
     {
-      op = read_memory_integer (ip, 2);
-      op &= 0xFFFF;
+      op = read_memory_unsigned_integer (ip, 2);
 
       if (op == P_LINKW_FP)
        ip += 4;                /* Skip link.w */
@@ -601,7 +588,7 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
 
   /* First possible address for a pc in a call dummy for this frame.  */
   CORE_ADDR possible_call_dummy_start =
-    (frame_info)->frame - 28 - FP_REGNUM * 4 - 4 - 8 * 12;
+    frame_info->frame - 28 - FP_REGNUM * 4 - 4 - 8 * 12;
 
   int nextinsn;
 
@@ -612,8 +599,8 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
 
   memset (frame_info->saved_regs, 0, SIZEOF_FRAME_SAVED_REGS);
 
-  if ((frame_info)->pc >= possible_call_dummy_start
-      && (frame_info)->pc <= (frame_info)->frame)
+  if (frame_info->pc >= possible_call_dummy_start
+      && frame_info->pc <= frame_info->frame)
     {
 
       /* It is a call dummy.  We could just stop now, since we know
@@ -621,16 +608,16 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
          to parse the "prologue" which is part of the call dummy.
          This is needlessly complex and confusing.  FIXME.  */
 
-      next_addr = (frame_info)->frame;
+      next_addr = frame_info->frame;
       pc = possible_call_dummy_start;
     }
   else
     {
-      pc = get_pc_function_start ((frame_info)->pc);
+      pc = get_pc_function_start (frame_info->pc);
 
-      nextinsn = read_memory_integer (pc, 2);
+      nextinsn = read_memory_unsigned_integer (pc, 2);
       if (P_PEA_FP == nextinsn
-         && P_MOVL_SP_FP == read_memory_integer (pc + 2, 2))
+         && P_MOVL_SP_FP == read_memory_unsigned_integer (pc + 2, 2))
        {
          /* pea %fp
             move.l %sp, %fp */
@@ -642,7 +629,7 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
        /* Find the address above the saved   
           regs using the amount of storage from the link instruction.  */
        {
-         next_addr = (frame_info)->frame + read_memory_integer (pc + 2, 4);
+         next_addr = frame_info->frame + read_memory_integer (pc + 2, 4);
          pc += 6;
        }
       else if (P_LINKW_FP == nextinsn)
@@ -650,21 +637,21 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
        /* Find the address above the saved   
           regs using the amount of storage from the link instruction.  */
        {
-         next_addr = (frame_info)->frame + read_memory_integer (pc + 2, 2);
+         next_addr = frame_info->frame + read_memory_integer (pc + 2, 2);
          pc += 4;
        }
       else
        goto lose;
 
       /* If have an addal #-n, sp next, adjust next_addr.  */
-      if ((0177777 & read_memory_integer (pc, 2)) == 0157774)
+      if (read_memory_unsigned_integer (pc, 2) == 0157774)
        next_addr += read_memory_integer (pc += 2, 4), pc += 4;
     }
 
   for (;;)
     {
-      nextinsn = 0xffff & read_memory_integer (pc, 2);
-      regmask = read_memory_integer (pc + 2, 2);
+      nextinsn = read_memory_unsigned_integer (pc, 2);
+      regmask = read_memory_unsigned_integer (pc + 2, 2);
       /* fmovemx to -(sp) */
       if (0xf227 == nextinsn && (regmask & 0xff00) == 0xe000)
        {
@@ -679,7 +666,7 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
        {
          register CORE_ADDR addr;
 
-         addr = (frame_info)->frame + read_memory_integer (pc + 4, 2);
+         addr = frame_info->frame + read_memory_integer (pc + 4, 2);
          /* Regmask's low bit is for register fp7, the first pushed */
          for (regnum = FP0_REGNUM + 8; --regnum >= FP0_REGNUM; regmask >>= 1)
            if (regmask & 1)
@@ -706,7 +693,7 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
        {
          register CORE_ADDR addr;
 
-         addr = (frame_info)->frame + read_memory_integer (pc + 4, 2);
+         addr = frame_info->frame + read_memory_integer (pc + 4, 2);
          /* Regmask's low bit is for register 0, the first written */
          for (regnum = 0; regnum < 16; regnum++, regmask >>= 1)
            if (regmask & 1)
@@ -759,7 +746,7 @@ lose:;
   frame_info->saved_regs[PC_REGNUM] = (frame_info)->frame + 4;
 #ifdef SIG_SP_FP_OFFSET
   /* Adjust saved SP_REGNUM for fake _sigtramp frames.  */
-  if (frame_info->signal_handler_caller && frame_info->next)
+  if ((get_frame_type (frame_info) == SIGTRAMP_FRAME) && frame_info->next)
     frame_info->saved_regs[SP_REGNUM] =
       frame_info->next->frame + SIG_SP_FP_OFFSET;
 #endif
@@ -862,14 +849,14 @@ supply_fpregset (fpregset_t *fpregsetp)
   register int regi;
   char *from;
 
-  for (regi = FP0_REGNUM; regi < E_FPC_REGNUM; regi++)
+  for (regi = FP0_REGNUM; regi < M68K_FPC_REGNUM; regi++)
     {
       from = (char *) &(fpregsetp->f_fpregs[regi - FP0_REGNUM][0]);
       supply_register (regi, from);
     }
-  supply_register (E_FPC_REGNUM, (char *) &(fpregsetp->f_pcr));
-  supply_register (E_FPS_REGNUM, (char *) &(fpregsetp->f_psr));
-  supply_register (E_FPI_REGNUM, (char *) &(fpregsetp->f_fpiaddr));
+  supply_register (M68K_FPC_REGNUM, (char *) &(fpregsetp->f_pcr));
+  supply_register (M68K_FPS_REGNUM, (char *) &(fpregsetp->f_psr));
+  supply_register (M68K_FPI_REGNUM, (char *) &(fpregsetp->f_fpiaddr));
 }
 
 /*  Given a pointer to a floating point register set in /proc format
@@ -884,7 +871,7 @@ fill_fpregset (fpregset_t *fpregsetp, int regno)
   char *to;
   char *from;
 
-  for (regi = FP0_REGNUM; regi < E_FPC_REGNUM; regi++)
+  for (regi = FP0_REGNUM; regi < M68K_FPC_REGNUM; regi++)
     {
       if ((regno == -1) || (regno == regi))
        {
@@ -893,17 +880,17 @@ fill_fpregset (fpregset_t *fpregsetp, int regno)
          memcpy (to, from, REGISTER_RAW_SIZE (regi));
        }
     }
-  if ((regno == -1) || (regno == E_FPC_REGNUM))
+  if ((regno == -1) || (regno == M68K_FPC_REGNUM))
     {
-      fpregsetp->f_pcr = *(int *) &deprecated_registers[REGISTER_BYTE (E_FPC_REGNUM)];
+      fpregsetp->f_pcr = *(int *) &deprecated_registers[REGISTER_BYTE (M68K_FPC_REGNUM)];
     }
-  if ((regno == -1) || (regno == E_FPS_REGNUM))
+  if ((regno == -1) || (regno == M68K_FPS_REGNUM))
     {
-      fpregsetp->f_psr = *(int *) &deprecated_registers[REGISTER_BYTE (E_FPS_REGNUM)];
+      fpregsetp->f_psr = *(int *) &deprecated_registers[REGISTER_BYTE (M68K_FPS_REGNUM)];
     }
-  if ((regno == -1) || (regno == E_FPI_REGNUM))
+  if ((regno == -1) || (regno == M68K_FPI_REGNUM))
     {
-      fpregsetp->f_fpiaddr = *(int *) &deprecated_registers[REGISTER_BYTE (E_FPI_REGNUM)];
+      fpregsetp->f_fpiaddr = *(int *) &deprecated_registers[REGISTER_BYTE (M68K_FPI_REGNUM)];
     }
 }
 
@@ -962,13 +949,13 @@ m68k_saved_pc_after_call (struct frame_info *frame)
 #ifdef SYSCALL_TRAP
   int op;
 
-  op = read_memory_integer (frame->pc - SYSCALL_TRAP_OFFSET, 2);
+  op = read_memory_unsigned_integer (frame->pc - SYSCALL_TRAP_OFFSET, 2);
 
   if (op == SYSCALL_TRAP)
-    return read_memory_integer (read_register (SP_REGNUM) + 4, 4);
+    return read_memory_unsigned_integer (read_register (SP_REGNUM) + 4, 4);
   else
 #endif /* SYSCALL_TRAP */
-    return read_memory_integer (read_register (SP_REGNUM), 4);
+    return read_memory_unsigned_integer (read_register (SP_REGNUM), 4);
 }
 
 /* Function: m68k_gdbarch_init
@@ -996,6 +983,10 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
  
   gdbarch = gdbarch_alloc (&info, 0);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   set_gdbarch_long_double_format (gdbarch, &floatformat_m68881_ext);
   set_gdbarch_long_double_bit (gdbarch, 96);
 
@@ -1027,8 +1018,6 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   /* OK to default this value to 'unknown'. */
   set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frame_args_skip (gdbarch, 8);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
 
   set_gdbarch_register_raw_size (gdbarch, m68k_register_raw_size);
   set_gdbarch_register_virtual_size (gdbarch, m68k_register_virtual_size);
@@ -1041,17 +1030,17 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_num_regs (gdbarch, 29);
   set_gdbarch_register_bytes_ok (gdbarch, m68k_register_bytes_ok);
   set_gdbarch_register_bytes (gdbarch, (16 * 4 + 8 + 8 * 12 + 3 * 4));
-  set_gdbarch_sp_regnum (gdbarch, E_SP_REGNUM);
-  set_gdbarch_fp_regnum (gdbarch, E_FP_REGNUM);
-  set_gdbarch_pc_regnum (gdbarch, E_PC_REGNUM);
-  set_gdbarch_ps_regnum (gdbarch, E_PS_REGNUM);
-  set_gdbarch_fp0_regnum (gdbarch, E_FP0_REGNUM);
+  set_gdbarch_sp_regnum (gdbarch, M68K_SP_REGNUM);
+  set_gdbarch_fp_regnum (gdbarch, M68K_FP_REGNUM);
+  set_gdbarch_pc_regnum (gdbarch, M68K_PC_REGNUM);
+  set_gdbarch_ps_regnum (gdbarch, M68K_PS_REGNUM);
+  set_gdbarch_fp0_regnum (gdbarch, M68K_FP0_REGNUM);
 
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 0);
+  set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0);
   set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 24);
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_on_stack);
+  set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_on_stack);
   set_gdbarch_call_dummy_p (gdbarch, 1);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
   set_gdbarch_call_dummy_length (gdbarch, 28);
index add149026984941338589525fd2e17b46e917a06..cf47dd1dd0d5d88b3aa3b9c0423860ae58236dc3 100644 (file)
 #include "inferior.h"
 #include "language.h"
 #include "gdbcore.h"
+#include "gdb_string.h"
 #include "regcache.h"
 
+#include "m68k-tdep.h"
+
 #ifdef USG
 #include <sys/types.h>
 #endif
@@ -51,7 +54,6 @@
 
 #include "target.h"
 \f
-
 /* This table must line up with REGISTER_NAMES in tm-m68k.h */
 static const int regmap[] =
 {
@@ -78,7 +80,7 @@ getregs_supplies (int regno)
 int
 getfpregs_supplies (int regno)
 {
-  return FP0_REGNUM <= regno && regno <= FPI_REGNUM;
+  return FP0_REGNUM <= regno && regno <= M68K_FPI_REGNUM;
 }
 
 /* Does the current host support the GETREGS request?  */
@@ -275,7 +277,7 @@ supply_gregset (elf_gregset_t *gregsetp)
   elf_greg_t *regp = (elf_greg_t *) gregsetp;
   int regi;
 
-  for (regi = D0_REGNUM; regi <= SP_REGNUM; regi++)
+  for (regi = M68K_D0_REGNUM; regi <= SP_REGNUM; regi++)
     supply_register (regi, (char *) &regp[regmap[regi]]);
   supply_register (PS_REGNUM, (char *) &regp[PT_SR]);
   supply_register (PC_REGNUM, (char *) &regp[PT_PC]);
@@ -359,11 +361,11 @@ supply_fpregset (elf_fpregset_t *fpregsetp)
 {
   int regi;
 
-  for (regi = FP0_REGNUM; regi < FPC_REGNUM; regi++)
+  for (regi = FP0_REGNUM; regi < FP0_REGNUM + 8; regi++)
     supply_register (regi, FPREG_ADDR (fpregsetp, regi - FP0_REGNUM));
-  supply_register (FPC_REGNUM, (char *) &fpregsetp->fpcntl[0]);
-  supply_register (FPS_REGNUM, (char *) &fpregsetp->fpcntl[1]);
-  supply_register (FPI_REGNUM, (char *) &fpregsetp->fpcntl[2]);
+  supply_register (M68K_FPC_REGNUM, (char *) &fpregsetp->fpcntl[0]);
+  supply_register (M68K_FPS_REGNUM, (char *) &fpregsetp->fpcntl[1]);
+  supply_register (M68K_FPI_REGNUM, (char *) &fpregsetp->fpcntl[2]);
 }
 
 /* Fill register REGNO (if it is a floating-point register) in
@@ -381,9 +383,9 @@ fill_fpregset (elf_fpregset_t *fpregsetp, int regno)
       regcache_collect (regno, FPREG_ADDR (fpregsetp, regno - FP0_REGNUM));
 
   /* Fill in the floating-point control registers.  */
-  for (i = FPC_REGNUM; i <= FPI_REGNUM; i++)
+  for (i = M68K_FPC_REGNUM; i <= M68K_FPI_REGNUM; i++)
     if (regno == -1 || regno == i)
-      regcache_collect (regno, (char *) &fpregsetp->fpcntl[regno - FPC_REGNUM]);
+      regcache_collect (regno, (char *) &fpregsetp->fpcntl[regno - M68K_FPC_REGNUM]);
 }
 
 #ifdef HAVE_PTRACE_GETREGS
@@ -594,103 +596,6 @@ kernel_u_size (void)
   return (sizeof (struct user));
 }
 \f
-/* Check whether insn1 and insn2 are parts of a signal trampoline.  */
-
-#define IS_SIGTRAMP(insn1, insn2)                                      \
-  (/* addaw #20,sp; moveq #119,d0; trap #0 */                          \
-   (insn1 == 0xdefc0014 && insn2 == 0x70774e40)                                \
-   /* moveq #119,d0; trap #0 */                                                \
-   || insn1 == 0x70774e40)
-
-#define IS_RT_SIGTRAMP(insn1, insn2)                                   \
-  (/* movel #173,d0; trap #0 */                                                \
-   (insn1 == 0x203c0000 && insn2 == 0x00ad4e40)                                \
-   /* moveq #82,d0; notb d0; trap #0 */                                        \
-   || (insn1 == 0x70524600 && (insn2 >> 16) == 0x4e40))
-
-/* Return non-zero if PC points into the signal trampoline.  For the sake
-   of m68k_linux_frame_saved_pc we also distinguish between non-RT and RT
-   signal trampolines.  */
-
-int
-m68k_linux_in_sigtramp (CORE_ADDR pc)
-{
-  CORE_ADDR sp;
-  char buf[12];
-  unsigned long insn0, insn1, insn2;
-
-  if (read_memory_nobpt (pc - 4, buf, sizeof (buf)))
-    return 0;
-  insn1 = extract_unsigned_integer (buf + 4, 4);
-  insn2 = extract_unsigned_integer (buf + 8, 4);
-  if (IS_SIGTRAMP (insn1, insn2))
-    return 1;
-  if (IS_RT_SIGTRAMP (insn1, insn2))
-    return 2;
-
-  insn0 = extract_unsigned_integer (buf, 4);
-  if (IS_SIGTRAMP (insn0, insn1))
-    return 1;
-  if (IS_RT_SIGTRAMP (insn0, insn1))
-    return 2;
-
-  insn0 = (insn0 << 16) | (insn1 >> 16);
-  insn1 = (insn1 << 16) | (insn2 >> 16);
-  if (IS_SIGTRAMP (insn0, insn1))
-    return 1;
-  if (IS_RT_SIGTRAMP (insn0, insn1))
-    return 2;
-
-  return 0;
-}
-
-/* Offset to saved PC in sigcontext, from <asm/sigcontext.h>.  */
-#define SIGCONTEXT_PC_OFFSET 26
-
-/* Offset to saved PC in ucontext, from <asm/ucontext.h>.  */
-#define UCONTEXT_PC_OFFSET 88
-
-/* Get saved user PC for sigtramp from sigcontext or ucontext.  */
-
-static CORE_ADDR
-m68k_linux_sigtramp_saved_pc (struct frame_info *frame)
-{
-  CORE_ADDR sigcontext_addr;
-  char buf[TARGET_PTR_BIT / TARGET_CHAR_BIT];
-  int ptrbytes = TARGET_PTR_BIT / TARGET_CHAR_BIT;
-  int sigcontext_offs = (2 * TARGET_INT_BIT) / TARGET_CHAR_BIT;
-
-  /* Get sigcontext address, it is the third parameter on the stack.  */
-  if (frame->next)
-    sigcontext_addr = read_memory_integer (FRAME_ARGS_ADDRESS (frame->next)
-                                          + FRAME_ARGS_SKIP
-                                          + sigcontext_offs,
-                                          ptrbytes);
-  else
-    sigcontext_addr = read_memory_integer (read_register (SP_REGNUM)
-                                          + sigcontext_offs,
-                                          ptrbytes);
-
-  /* Don't cause a memory_error when accessing sigcontext in case the
-     stack layout has changed or the stack is corrupt.  */
-  if (m68k_linux_in_sigtramp (frame->pc) == 2)
-    target_read_memory (sigcontext_addr + UCONTEXT_PC_OFFSET, buf, ptrbytes);
-  else
-    target_read_memory (sigcontext_addr + SIGCONTEXT_PC_OFFSET, buf, ptrbytes);
-  return extract_unsigned_integer (buf, ptrbytes);
-}
-
-/* Return the saved program counter for FRAME.  */
-
-CORE_ADDR
-m68k_linux_frame_saved_pc (struct frame_info *frame)
-{
-  if (frame->signal_handler_caller)
-    return m68k_linux_sigtramp_saved_pc (frame);
-
-  return read_memory_integer (frame->frame + 4, 4);
-}
-\f
 /* Register that we are able to handle GNU/Linux ELF core file
    formats.  */
 
diff --git a/gdb/m88k-nat.c b/gdb/m88k-nat.c
deleted file mode 100644 (file)
index 11bde57..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-// OBSOLETE /* Native-dependent Motorola 88xxx support for GDB, the GNU Debugger.
-// OBSOLETE    Copyright 1988, 1990, 1991, 1992, 1993, 1995, 1999, 2000, 2001
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE #include <sys/types.h>
-// OBSOLETE #include <sys/param.h>
-// OBSOLETE #include <sys/dir.h>
-// OBSOLETE #include <signal.h>
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include <sys/user.h>
-// OBSOLETE 
-// OBSOLETE #ifndef USER                       /* added to support BCS ptrace_user */
-// OBSOLETE #define USER ptrace_user
-// OBSOLETE #endif
-// OBSOLETE #include <sys/ioctl.h>
-// OBSOLETE #include <fcntl.h>
-// OBSOLETE #include <sys/file.h>
-// OBSOLETE #include "gdb_stat.h"
-// OBSOLETE 
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "setjmp.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE 
-// OBSOLETE #ifdef DELTA88
-// OBSOLETE #include <sys/ptrace.h>
-// OBSOLETE 
-// OBSOLETE /* define offsets to the pc instruction offsets in ptrace_user struct */
-// OBSOLETE #define SXIP_OFFSET ((char *)&u.pt_sigframe.sig_sxip - (char *)&u)
-// OBSOLETE #define SNIP_OFFSET ((char *)&u.pt_sigframe.sig_snip - (char *)&u)
-// OBSOLETE #define SFIP_OFFSET ((char *)&u.pt_sigframe.sig_sfip - (char *)&u)
-// OBSOLETE #else
-// OBSOLETE /* define offsets to the pc instruction offsets in ptrace_user struct */
-// OBSOLETE #define SXIP_OFFSET ((char *)&u.pt_sigframe.dg_sigframe.sc_sxip - (char *)&u)
-// OBSOLETE #define SNIP_OFFSET ((char *)&u.pt_sigframe.dg_sigframe.sc_snip - (char *)&u)
-// OBSOLETE #define SFIP_OFFSET ((char *)&u.pt_sigframe.dg_sigframe.sc_sfip - (char *)&u)
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE extern int have_symbol_file_p ();
-// OBSOLETE 
-// OBSOLETE extern jmp_buf stack_jmp;
-// OBSOLETE 
-// OBSOLETE extern int errno;
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE fetch_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   register unsigned int regaddr;
-// OBSOLETE   char buf[MAX_REGISTER_RAW_SIZE];
-// OBSOLETE   register int i;
-// OBSOLETE 
-// OBSOLETE   struct USER u;
-// OBSOLETE   unsigned int offset;
-// OBSOLETE 
-// OBSOLETE   offset = (char *) &u.pt_r0 - (char *) &u;
-// OBSOLETE   regaddr = offset;                /* byte offset to r0; */
-// OBSOLETE 
-// OBSOLETE /*  offset = ptrace (3, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) offset, 0) - KERNEL_U_ADDR; */
-// OBSOLETE   for (regno = 0; regno < NUM_REGS; regno++)
-// OBSOLETE     {
-// OBSOLETE       /*regaddr = register_addr (regno, offset); */
-// OBSOLETE       /* 88k enhancement  */
-// OBSOLETE 
-// OBSOLETE       for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
-// OBSOLETE    {
-// OBSOLETE      *(int *) &buf[i] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                                 (PTRACE_ARG3_TYPE) regaddr, 0);
-// OBSOLETE      regaddr += sizeof (int);
-// OBSOLETE    }
-// OBSOLETE       supply_register (regno, buf);
-// OBSOLETE     }
-// OBSOLETE   /* now load up registers 36 - 38; special pc registers */
-// OBSOLETE   *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                         (PTRACE_ARG3_TYPE) SXIP_OFFSET, 0);
-// OBSOLETE   supply_register (SXIP_REGNUM, buf);
-// OBSOLETE   *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                         (PTRACE_ARG3_TYPE) SNIP_OFFSET, 0);
-// OBSOLETE   supply_register (SNIP_REGNUM, buf);
-// OBSOLETE   *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid),
-// OBSOLETE                         (PTRACE_ARG3_TYPE) SFIP_OFFSET, 0);
-// OBSOLETE   supply_register (SFIP_REGNUM, buf);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Store our register values back into the inferior.
-// OBSOLETE    If REGNO is -1, do this for all registers.
-// OBSOLETE    Otherwise, REGNO specifies which register (so we can save time).  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE store_inferior_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   register unsigned int regaddr;
-// OBSOLETE   char buf[80];
-// OBSOLETE 
-// OBSOLETE   struct USER u;
-// OBSOLETE 
-// OBSOLETE   unsigned int offset = (char *) &u.pt_r0 - (char *) &u;
-// OBSOLETE 
-// OBSOLETE   regaddr = offset;
-// OBSOLETE 
-// OBSOLETE   /* Don't try to deal with EXIP_REGNUM or ENIP_REGNUM, because I think either
-// OBSOLETE      svr3 doesn't run on an 88110, or the kernel isolates the different (not
-// OBSOLETE      completely sure this is true, but seems to be.  */
-// OBSOLETE   if (regno >= 0)
-// OBSOLETE     {
-// OBSOLETE       /*      regaddr = register_addr (regno, offset); */
-// OBSOLETE       if (regno < PC_REGNUM)
-// OBSOLETE    {
-// OBSOLETE      regaddr = offset + regno * sizeof (int);
-// OBSOLETE      errno = 0;
-// OBSOLETE      ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE              (PTRACE_ARG3_TYPE) regaddr, read_register (regno));
-// OBSOLETE      if (errno != 0)
-// OBSOLETE        {
-// OBSOLETE          sprintf (buf, "writing register number %d", regno);
-// OBSOLETE          perror_with_name (buf);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       else if (regno == SXIP_REGNUM)
-// OBSOLETE    ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE            (PTRACE_ARG3_TYPE) SXIP_OFFSET, read_register (regno));
-// OBSOLETE       else if (regno == SNIP_REGNUM)
-// OBSOLETE    ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE            (PTRACE_ARG3_TYPE) SNIP_OFFSET, read_register (regno));
-// OBSOLETE       else if (regno == SFIP_REGNUM)
-// OBSOLETE    ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE            (PTRACE_ARG3_TYPE) SFIP_OFFSET, read_register (regno));
-// OBSOLETE       else
-// OBSOLETE    printf_unfiltered ("Bad register number for store_inferior routine\n");
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       for (regno = 0; regno < PC_REGNUM; regno++)
-// OBSOLETE    {
-// OBSOLETE      /*      regaddr = register_addr (regno, offset); */
-// OBSOLETE      errno = 0;
-// OBSOLETE      regaddr = offset + regno * sizeof (int);
-// OBSOLETE      ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE              (PTRACE_ARG3_TYPE) regaddr, read_register (regno));
-// OBSOLETE      if (errno != 0)
-// OBSOLETE        {
-// OBSOLETE          sprintf (buf, "writing register number %d", regno);
-// OBSOLETE          perror_with_name (buf);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) SXIP_OFFSET, read_register (SXIP_REGNUM));
-// OBSOLETE       ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) SNIP_OFFSET, read_register (SNIP_REGNUM));
-// OBSOLETE       ptrace (6, PIDGET (inferior_ptid),
-// OBSOLETE          (PTRACE_ARG3_TYPE) SFIP_OFFSET, read_register (SFIP_REGNUM));
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* blockend is the address of the end of the user structure */
-// OBSOLETE m88k_register_u_addr (int blockend, int regnum)
-// OBSOLETE {
-// OBSOLETE   struct USER u;
-// OBSOLETE   int ustart = blockend - sizeof (struct USER);
-// OBSOLETE   switch (regnum)
-// OBSOLETE     {
-// OBSOLETE     case 0:
-// OBSOLETE     case 1:
-// OBSOLETE     case 2:
-// OBSOLETE     case 3:
-// OBSOLETE     case 4:
-// OBSOLETE     case 5:
-// OBSOLETE     case 6:
-// OBSOLETE     case 7:
-// OBSOLETE     case 8:
-// OBSOLETE     case 9:
-// OBSOLETE     case 10:
-// OBSOLETE     case 11:
-// OBSOLETE     case 12:
-// OBSOLETE     case 13:
-// OBSOLETE     case 14:
-// OBSOLETE     case 15:
-// OBSOLETE     case 16:
-// OBSOLETE     case 17:
-// OBSOLETE     case 18:
-// OBSOLETE     case 19:
-// OBSOLETE     case 20:
-// OBSOLETE     case 21:
-// OBSOLETE     case 22:
-// OBSOLETE     case 23:
-// OBSOLETE     case 24:
-// OBSOLETE     case 25:
-// OBSOLETE     case 26:
-// OBSOLETE     case 27:
-// OBSOLETE     case 28:
-// OBSOLETE     case 29:
-// OBSOLETE     case 30:
-// OBSOLETE     case 31:
-// OBSOLETE       return (ustart + ((int) &u.pt_r0 - (int) &u) + REGISTER_SIZE * regnum);
-// OBSOLETE     case PSR_REGNUM:
-// OBSOLETE       return (ustart + ((int) &u.pt_psr - (int) &u));
-// OBSOLETE     case FPSR_REGNUM:
-// OBSOLETE       return (ustart + ((int) &u.pt_fpsr - (int) &u));
-// OBSOLETE     case FPCR_REGNUM:
-// OBSOLETE       return (ustart + ((int) &u.pt_fpcr - (int) &u));
-// OBSOLETE     case SXIP_REGNUM:
-// OBSOLETE       return (ustart + SXIP_OFFSET);
-// OBSOLETE     case SNIP_REGNUM:
-// OBSOLETE       return (ustart + SNIP_OFFSET);
-// OBSOLETE     case SFIP_REGNUM:
-// OBSOLETE       return (ustart + SFIP_OFFSET);
-// OBSOLETE     default:
-// OBSOLETE       if (regnum < NUM_REGS)
-// OBSOLETE    /* The register is one of those which is not defined...
-// OBSOLETE       give it zero */
-// OBSOLETE    return (ustart + ((int) &u.pt_r0 - (int) &u));
-// OBSOLETE       else
-// OBSOLETE    return (blockend + REGISTER_SIZE * regnum);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #ifdef USE_PROC_FS
-// OBSOLETE 
-// OBSOLETE #include <sys/procfs.h>
-// OBSOLETE 
-// OBSOLETE /* Prototypes for supply_gregset etc. */
-// OBSOLETE #include "gregset.h"
-// OBSOLETE 
-// OBSOLETE /*  Given a pointer to a general register set in /proc format (gregset_t *),
-// OBSOLETE    unpack the register contents and supply them as gdb's idea of the current
-// OBSOLETE    register values. */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE supply_gregset (gregset_t *gregsetp)
-// OBSOLETE {
-// OBSOLETE   register int regi;
-// OBSOLETE   register greg_t *regp = (greg_t *) gregsetp;
-// OBSOLETE 
-// OBSOLETE   for (regi = 0; regi <= SP_REGNUM; regi++)
-// OBSOLETE     supply_register (regi, (char *) (regp + regi));
-// OBSOLETE 
-// OBSOLETE   supply_register (SXIP_REGNUM, (char *) (regp + R_XIP));
-// OBSOLETE   supply_register (SNIP_REGNUM, (char *) (regp + R_NIP));
-// OBSOLETE   supply_register (SFIP_REGNUM, (char *) (regp + R_FIP));
-// OBSOLETE   supply_register (PSR_REGNUM, (char *) (regp + R_PSR));
-// OBSOLETE   supply_register (FPSR_REGNUM, (char *) (regp + R_FPSR));
-// OBSOLETE   supply_register (FPCR_REGNUM, (char *) (regp + R_FPCR));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE fill_gregset (gregset_t *gregsetp, int regno)
-// OBSOLETE {
-// OBSOLETE   int regi;
-// OBSOLETE   register greg_t *regp = (greg_t *) gregsetp;
-// OBSOLETE 
-// OBSOLETE   for (regi = 0; regi <= R_R31; regi++)
-// OBSOLETE     if ((regno == -1) || (regno == regi))
-// OBSOLETE       *(regp + regi) = *(int *) &registers[REGISTER_BYTE (regi)];
-// OBSOLETE 
-// OBSOLETE   if ((regno == -1) || (regno == SXIP_REGNUM))
-// OBSOLETE     *(regp + R_XIP) = *(int *) &registers[REGISTER_BYTE (SXIP_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == SNIP_REGNUM))
-// OBSOLETE     *(regp + R_NIP) = *(int *) &registers[REGISTER_BYTE (SNIP_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == SFIP_REGNUM))
-// OBSOLETE     *(regp + R_FIP) = *(int *) &registers[REGISTER_BYTE (SFIP_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == PSR_REGNUM))
-// OBSOLETE     *(regp + R_PSR) = *(int *) &registers[REGISTER_BYTE (PSR_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == FPSR_REGNUM))
-// OBSOLETE     *(regp + R_FPSR) = *(int *) &registers[REGISTER_BYTE (FPSR_REGNUM)];
-// OBSOLETE   if ((regno == -1) || (regno == FPCR_REGNUM))
-// OBSOLETE     *(regp + R_FPCR) = *(int *) &registers[REGISTER_BYTE (FPCR_REGNUM)];
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #endif /* USE_PROC_FS */
diff --git a/gdb/m88k-tdep.c b/gdb/m88k-tdep.c
deleted file mode 100644 (file)
index da0b67c..0000000
+++ /dev/null
@@ -1,661 +0,0 @@
-// OBSOLETE /* Target-machine dependent code for Motorola 88000 series, for GDB.
-// OBSOLETE 
-// OBSOLETE    Copyright 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
-// OBSOLETE    2000, 2001, 2002 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "setjmp.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE /* Size of an instruction */
-// OBSOLETE #define    BYTES_PER_88K_INSN      4
-// OBSOLETE 
-// OBSOLETE void frame_find_saved_regs ();
-// OBSOLETE 
-// OBSOLETE /* Is this target an m88110?  Otherwise assume m88100.  This has
-// OBSOLETE    relevance for the ways in which we screw with instruction pointers.  */
-// OBSOLETE 
-// OBSOLETE int target_is_m88110 = 0;
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE m88k_target_write_pc (CORE_ADDR pc, ptid_t ptid)
-// OBSOLETE {
-// OBSOLETE   /* According to the MC88100 RISC Microprocessor User's Manual,
-// OBSOLETE      section 6.4.3.1.2:
-// OBSOLETE 
-// OBSOLETE      ... can be made to return to a particular instruction by placing
-// OBSOLETE      a valid instruction address in the SNIP and the next sequential
-// OBSOLETE      instruction address in the SFIP (with V bits set and E bits
-// OBSOLETE      clear).  The rte resumes execution at the instruction pointed to
-// OBSOLETE      by the SNIP, then the SFIP.
-// OBSOLETE 
-// OBSOLETE      The E bit is the least significant bit (bit 0).  The V (valid)
-// OBSOLETE      bit is bit 1.  This is why we logical or 2 into the values we are
-// OBSOLETE      writing below.  It turns out that SXIP plays no role when
-// OBSOLETE      returning from an exception so nothing special has to be done
-// OBSOLETE      with it.  We could even (presumably) give it a totally bogus
-// OBSOLETE      value.
-// OBSOLETE 
-// OBSOLETE      -- Kevin Buettner */
-// OBSOLETE 
-// OBSOLETE   write_register_pid (SXIP_REGNUM, pc, ptid);
-// OBSOLETE   write_register_pid (SNIP_REGNUM, (pc | 2), ptid);
-// OBSOLETE   write_register_pid (SFIP_REGNUM, (pc | 2) + 4, ptid);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* The type of a register.  */
-// OBSOLETE struct type *
-// OBSOLETE m88k_register_type (int regnum)
-// OBSOLETE {
-// OBSOLETE   if (regnum >= XFP_REGNUM)
-// OBSOLETE     return builtin_type_m88110_ext;
-// OBSOLETE   else if (regnum == PC_REGNUM || regnum == FP_REGNUM || regnum == SP_REGNUM)
-// OBSOLETE     return builtin_type_void_func_ptr;
-// OBSOLETE   else
-// OBSOLETE     return builtin_type_int32;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* The m88k kernel aligns all instructions on 4-byte boundaries.  The
-// OBSOLETE    kernel also uses the least significant two bits for its own hocus
-// OBSOLETE    pocus.  When gdb receives an address from the kernel, it needs to
-// OBSOLETE    preserve those right-most two bits, but gdb also needs to be careful
-// OBSOLETE    to realize that those two bits are not really a part of the address
-// OBSOLETE    of an instruction.  Shrug.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE m88k_addr_bits_remove (CORE_ADDR addr)
-// OBSOLETE {
-// OBSOLETE   return ((addr) & ~3);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Given a GDB frame, determine the address of the calling function's frame.
-// OBSOLETE    This will be used to create a new GDB frame struct, and then
-// OBSOLETE    INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
-// OBSOLETE 
-// OBSOLETE    For us, the frame address is its stack pointer value, so we look up
-// OBSOLETE    the function prologue to determine the caller's sp value, and return it.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE frame_chain (struct frame_info *thisframe)
-// OBSOLETE {
-// OBSOLETE 
-// OBSOLETE   frame_find_saved_regs (thisframe, (struct frame_saved_regs *) 0);
-// OBSOLETE   /* NOTE:  this depends on frame_find_saved_regs returning the VALUE, not
-// OBSOLETE      the ADDRESS, of SP_REGNUM.  It also depends on the cache of
-// OBSOLETE      frame_find_saved_regs results.  */
-// OBSOLETE   if (thisframe->fsr->regs[SP_REGNUM])
-// OBSOLETE     return thisframe->fsr->regs[SP_REGNUM];
-// OBSOLETE   else
-// OBSOLETE     return thisframe->frame;       /* Leaf fn -- next frame up has same SP. */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE frameless_function_invocation (struct frame_info *frame)
-// OBSOLETE {
-// OBSOLETE 
-// OBSOLETE   frame_find_saved_regs (frame, (struct frame_saved_regs *) 0);
-// OBSOLETE   /* NOTE:  this depends on frame_find_saved_regs returning the VALUE, not
-// OBSOLETE      the ADDRESS, of SP_REGNUM.  It also depends on the cache of
-// OBSOLETE      frame_find_saved_regs results.  */
-// OBSOLETE   if (frame->fsr->regs[SP_REGNUM])
-// OBSOLETE     return 0;                      /* Frameful -- return addr saved somewhere */
-// OBSOLETE   else
-// OBSOLETE     return 1;                      /* Frameless -- no saved return address */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE init_extra_frame_info (int fromleaf, struct frame_info *frame)
-// OBSOLETE {
-// OBSOLETE   frame->fsr = 0;          /* Not yet allocated */
-// OBSOLETE   frame->args_pointer = 0; /* Unknown */
-// OBSOLETE   frame->locals_pointer = 0;       /* Unknown */
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Examine an m88k function prologue, recording the addresses at which
-// OBSOLETE    registers are saved explicitly by the prologue code, and returning
-// OBSOLETE    the address of the first instruction after the prologue (but not
-// OBSOLETE    after the instruction at address LIMIT, as explained below).
-// OBSOLETE 
-// OBSOLETE    LIMIT places an upper bound on addresses of the instructions to be
-// OBSOLETE    examined.  If the prologue code scan reaches LIMIT, the scan is
-// OBSOLETE    aborted and LIMIT is returned.  This is used, when examining the
-// OBSOLETE    prologue for the current frame, to keep examine_prologue () from
-// OBSOLETE    claiming that a given register has been saved when in fact the
-// OBSOLETE    instruction that saves it has not yet been executed.  LIMIT is used
-// OBSOLETE    at other times to stop the scan when we hit code after the true
-// OBSOLETE    function prologue (e.g. for the first source line) which might
-// OBSOLETE    otherwise be mistaken for function prologue.
-// OBSOLETE 
-// OBSOLETE    The format of the function prologue matched by this routine is
-// OBSOLETE    derived from examination of the source to gcc 1.95, particularly
-// OBSOLETE    the routine output_prologue () in config/out-m88k.c.
-// OBSOLETE 
-// OBSOLETE    subu r31,r31,n                       # stack pointer update
-// OBSOLETE 
-// OBSOLETE    (st rn,r31,offset)?                  # save incoming regs
-// OBSOLETE    (st.d rn,r31,offset)?
-// OBSOLETE 
-// OBSOLETE    (addu r30,r31,n)?                    # frame pointer update
-// OBSOLETE 
-// OBSOLETE    (pic sequence)?                      # PIC code prologue
-// OBSOLETE 
-// OBSOLETE    (or   rn,rm,0)?                      # Move parameters to other regs
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE /* Macros for extracting fields from instructions.  */
-// OBSOLETE 
-// OBSOLETE #define BITMASK(pos, width) (((0x1 << (width)) - 1) << (pos))
-// OBSOLETE #define EXTRACT_FIELD(val, pos, width) ((val) >> (pos) & BITMASK (0, width))
-// OBSOLETE #define    SUBU_OFFSET(x)  ((unsigned)(x & 0xFFFF))
-// OBSOLETE #define    ST_OFFSET(x)    ((unsigned)((x) & 0xFFFF))
-// OBSOLETE #define    ST_SRC(x)       EXTRACT_FIELD ((x), 21, 5)
-// OBSOLETE #define    ADDU_OFFSET(x)  ((unsigned)(x & 0xFFFF))
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * prologue_insn_tbl is a table of instructions which may comprise a
-// OBSOLETE  * function prologue.  Associated with each table entry (corresponding
-// OBSOLETE  * to a single instruction or group of instructions), is an action.
-// OBSOLETE  * This action is used by examine_prologue (below) to determine
-// OBSOLETE  * the state of certain machine registers and where the stack frame lives.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE enum prologue_insn_action
-// OBSOLETE {
-// OBSOLETE   PIA_SKIP,                        /* don't care what the instruction does */
-// OBSOLETE   PIA_NOTE_ST,                     /* note register stored and where */
-// OBSOLETE   PIA_NOTE_STD,                    /* note pair of registers stored and where */
-// OBSOLETE   PIA_NOTE_SP_ADJUSTMENT,  /* note stack pointer adjustment */
-// OBSOLETE   PIA_NOTE_FP_ASSIGNMENT,  /* note frame pointer assignment */
-// OBSOLETE   PIA_NOTE_PROLOGUE_END,   /* no more prologue */
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE struct prologue_insns
-// OBSOLETE   {
-// OBSOLETE     unsigned long insn;
-// OBSOLETE     unsigned long mask;
-// OBSOLETE     enum prologue_insn_action action;
-// OBSOLETE   };
-// OBSOLETE 
-// OBSOLETE struct prologue_insns prologue_insn_tbl[] =
-// OBSOLETE {
-// OBSOLETE   /* Various register move instructions */
-// OBSOLETE   {0x58000000, 0xf800ffff, PIA_SKIP},      /* or/or.u with immed of 0 */
-// OBSOLETE   {0xf4005800, 0xfc1fffe0, PIA_SKIP},      /* or rd, r0, rs */
-// OBSOLETE   {0xf4005800, 0xfc00ffff, PIA_SKIP},      /* or rd, rs, r0 */
-// OBSOLETE 
-// OBSOLETE   /* Stack pointer setup: "subu sp, sp, n" where n is a multiple of 8 */
-// OBSOLETE   {0x67ff0000, 0xffff0007, PIA_NOTE_SP_ADJUSTMENT},
-// OBSOLETE 
-// OBSOLETE   /* Frame pointer assignment: "addu r30, r31, n" */
-// OBSOLETE   {0x63df0000, 0xffff0000, PIA_NOTE_FP_ASSIGNMENT},
-// OBSOLETE 
-// OBSOLETE   /* Store to stack instructions; either "st rx, sp, n" or "st.d rx, sp, n" */
-// OBSOLETE   {0x241f0000, 0xfc1f0000, PIA_NOTE_ST},   /* st rx, sp, n */
-// OBSOLETE   {0x201f0000, 0xfc1f0000, PIA_NOTE_STD},  /* st.d rs, sp, n */
-// OBSOLETE 
-// OBSOLETE   /* Instructions needed for setting up r25 for pic code. */
-// OBSOLETE   {0x5f200000, 0xffff0000, PIA_SKIP},      /* or.u r25, r0, offset_high */
-// OBSOLETE   {0xcc000002, 0xffffffff, PIA_SKIP},      /* bsr.n Lab */
-// OBSOLETE   {0x5b390000, 0xffff0000, PIA_SKIP},      /* or r25, r25, offset_low */
-// OBSOLETE   {0xf7396001, 0xffffffff, PIA_SKIP},      /* Lab: addu r25, r25, r1 */
-// OBSOLETE 
-// OBSOLETE   /* Various branch or jump instructions which have a delay slot -- these
-// OBSOLETE      do not form part of the prologue, but the instruction in the delay
-// OBSOLETE      slot might be a store instruction which should be noted. */
-// OBSOLETE   {0xc4000000, 0xe4000000, PIA_NOTE_PROLOGUE_END},
-// OBSOLETE                                    /* br.n, bsr.n, bb0.n, or bb1.n */
-// OBSOLETE   {0xec000000, 0xfc000000, PIA_NOTE_PROLOGUE_END}, /* bcnd.n */
-// OBSOLETE   {0xf400c400, 0xfffff7e0, PIA_NOTE_PROLOGUE_END}  /* jmp.n or jsr.n */
-// OBSOLETE 
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* Fetch the instruction at ADDR, returning 0 if ADDR is beyond LIM or
-// OBSOLETE    is not the address of a valid instruction, the address of the next
-// OBSOLETE    instruction beyond ADDR otherwise.  *PWORD1 receives the first word
-// OBSOLETE    of the instruction. */
-// OBSOLETE 
-// OBSOLETE #define NEXT_PROLOGUE_INSN(addr, lim, pword1) \
-// OBSOLETE   (((addr) < (lim)) ? next_insn (addr, pword1) : 0)
-// OBSOLETE 
-// OBSOLETE /* Read the m88k instruction at 'memaddr' and return the address of 
-// OBSOLETE    the next instruction after that, or 0 if 'memaddr' is not the
-// OBSOLETE    address of a valid instruction.  The instruction
-// OBSOLETE    is stored at 'pword1'.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE next_insn (CORE_ADDR memaddr, unsigned long *pword1)
-// OBSOLETE {
-// OBSOLETE   *pword1 = read_memory_integer (memaddr, BYTES_PER_88K_INSN);
-// OBSOLETE   return memaddr + BYTES_PER_88K_INSN;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Read a register from frames called by us (or from the hardware regs).  */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE read_next_frame_reg (struct frame_info *frame, int regno)
-// OBSOLETE {
-// OBSOLETE   for (; frame; frame = frame->next)
-// OBSOLETE     {
-// OBSOLETE       if (regno == SP_REGNUM)
-// OBSOLETE    return FRAME_FP (frame);
-// OBSOLETE       else if (frame->fsr->regs[regno])
-// OBSOLETE    return read_memory_integer (frame->fsr->regs[regno], 4);
-// OBSOLETE     }
-// OBSOLETE   return read_register (regno);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Examine the prologue of a function.  `ip' points to the first instruction.
-// OBSOLETE    `limit' is the limit of the prologue (e.g. the addr of the first 
-// OBSOLETE    linenumber, or perhaps the program counter if we're stepping through).
-// OBSOLETE    `frame_sp' is the stack pointer value in use in this frame.  
-// OBSOLETE    `fsr' is a pointer to a frame_saved_regs structure into which we put
-// OBSOLETE    info about the registers saved by this frame.  
-// OBSOLETE    `fi' is a struct frame_info pointer; we fill in various fields in it
-// OBSOLETE    to reflect the offsets of the arg pointer and the locals pointer.  */
-// OBSOLETE 
-// OBSOLETE static CORE_ADDR
-// OBSOLETE examine_prologue (register CORE_ADDR ip, register CORE_ADDR limit,
-// OBSOLETE              CORE_ADDR frame_sp, struct frame_saved_regs *fsr,
-// OBSOLETE              struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   register CORE_ADDR next_ip;
-// OBSOLETE   register int src;
-// OBSOLETE   unsigned long insn;
-// OBSOLETE   int size, offset;
-// OBSOLETE   char must_adjust[32];            /* If set, must adjust offsets in fsr */
-// OBSOLETE   int sp_offset = -1;              /* -1 means not set (valid must be mult of 8) */
-// OBSOLETE   int fp_offset = -1;              /* -1 means not set */
-// OBSOLETE   CORE_ADDR frame_fp;
-// OBSOLETE   CORE_ADDR prologue_end = 0;
-// OBSOLETE 
-// OBSOLETE   memset (must_adjust, '\0', sizeof (must_adjust));
-// OBSOLETE   next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn);
-// OBSOLETE 
-// OBSOLETE   while (next_ip)
-// OBSOLETE     {
-// OBSOLETE       struct prologue_insns *pip;
-// OBSOLETE 
-// OBSOLETE       for (pip = prologue_insn_tbl; (insn & pip->mask) != pip->insn;)
-// OBSOLETE    if (++pip >= prologue_insn_tbl + sizeof prologue_insn_tbl)
-// OBSOLETE      goto end_of_prologue_found;   /* not a prologue insn */
-// OBSOLETE 
-// OBSOLETE       switch (pip->action)
-// OBSOLETE    {
-// OBSOLETE    case PIA_NOTE_ST:
-// OBSOLETE    case PIA_NOTE_STD:
-// OBSOLETE      if (sp_offset != -1)
-// OBSOLETE        {
-// OBSOLETE          src = ST_SRC (insn);
-// OBSOLETE          offset = ST_OFFSET (insn);
-// OBSOLETE          must_adjust[src] = 1;
-// OBSOLETE          fsr->regs[src++] = offset;        /* Will be adjusted later */
-// OBSOLETE          if (pip->action == PIA_NOTE_STD && src < 32)
-// OBSOLETE            {
-// OBSOLETE              offset += 4;
-// OBSOLETE              must_adjust[src] = 1;
-// OBSOLETE              fsr->regs[src++] = offset;
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        goto end_of_prologue_found;
-// OBSOLETE      break;
-// OBSOLETE    case PIA_NOTE_SP_ADJUSTMENT:
-// OBSOLETE      if (sp_offset == -1)
-// OBSOLETE        sp_offset = -SUBU_OFFSET (insn);
-// OBSOLETE      else
-// OBSOLETE        goto end_of_prologue_found;
-// OBSOLETE      break;
-// OBSOLETE    case PIA_NOTE_FP_ASSIGNMENT:
-// OBSOLETE      if (fp_offset == -1)
-// OBSOLETE        fp_offset = ADDU_OFFSET (insn);
-// OBSOLETE      else
-// OBSOLETE        goto end_of_prologue_found;
-// OBSOLETE      break;
-// OBSOLETE    case PIA_NOTE_PROLOGUE_END:
-// OBSOLETE      if (!prologue_end)
-// OBSOLETE        prologue_end = ip;
-// OBSOLETE      break;
-// OBSOLETE    case PIA_SKIP:
-// OBSOLETE    default:
-// OBSOLETE      /* Do nothing */
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       ip = next_ip;
-// OBSOLETE       next_ip = NEXT_PROLOGUE_INSN (ip, limit, &insn);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE end_of_prologue_found:
-// OBSOLETE 
-// OBSOLETE   if (prologue_end)
-// OBSOLETE     ip = prologue_end;
-// OBSOLETE 
-// OBSOLETE   /* We're done with the prologue.  If we don't care about the stack
-// OBSOLETE      frame itself, just return.  (Note that fsr->regs has been trashed,
-// OBSOLETE      but the one caller who calls with fi==0 passes a dummy there.)  */
-// OBSOLETE 
-// OBSOLETE   if (fi == 0)
-// OBSOLETE     return ip;
-// OBSOLETE 
-// OBSOLETE   /*
-// OBSOLETE      OK, now we have:
-// OBSOLETE 
-// OBSOLETE      sp_offset  original (before any alloca calls) displacement of SP
-// OBSOLETE      (will be negative).
-// OBSOLETE 
-// OBSOLETE      fp_offset  displacement from original SP to the FP for this frame
-// OBSOLETE      or -1.
-// OBSOLETE 
-// OBSOLETE      fsr->regs[0..31]   displacement from original SP to the stack
-// OBSOLETE      location where reg[0..31] is stored.
-// OBSOLETE 
-// OBSOLETE      must_adjust[0..31] set if corresponding offset was set.
-// OBSOLETE 
-// OBSOLETE      If alloca has been called between the function prologue and the current
-// OBSOLETE      IP, then the current SP (frame_sp) will not be the original SP as set by
-// OBSOLETE      the function prologue.  If the current SP is not the original SP, then the
-// OBSOLETE      compiler will have allocated an FP for this frame, fp_offset will be set,
-// OBSOLETE      and we can use it to calculate the original SP.
-// OBSOLETE 
-// OBSOLETE      Then, we figure out where the arguments and locals are, and relocate the
-// OBSOLETE      offsets in fsr->regs to absolute addresses.  */
-// OBSOLETE 
-// OBSOLETE   if (fp_offset != -1)
-// OBSOLETE     {
-// OBSOLETE       /* We have a frame pointer, so get it, and base our calc's on it.  */
-// OBSOLETE       frame_fp = (CORE_ADDR) read_next_frame_reg (fi->next, ACTUAL_FP_REGNUM);
-// OBSOLETE       frame_sp = frame_fp - fp_offset;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       /* We have no frame pointer, therefore frame_sp is still the same value
-// OBSOLETE          as set by prologue.  But where is the frame itself?  */
-// OBSOLETE       if (must_adjust[SRP_REGNUM])
-// OBSOLETE    {
-// OBSOLETE      /* Function header saved SRP (r1), the return address.  Frame starts
-// OBSOLETE         4 bytes down from where it was saved.  */
-// OBSOLETE      frame_fp = frame_sp + fsr->regs[SRP_REGNUM] - 4;
-// OBSOLETE      fi->locals_pointer = frame_fp;
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      /* Function header didn't save SRP (r1), so we are in a leaf fn or
-// OBSOLETE         are otherwise confused.  */
-// OBSOLETE      frame_fp = -1;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* The locals are relative to the FP (whether it exists as an allocated
-// OBSOLETE      register, or just as an assumed offset from the SP) */
-// OBSOLETE   fi->locals_pointer = frame_fp;
-// OBSOLETE 
-// OBSOLETE   /* The arguments are just above the SP as it was before we adjusted it
-// OBSOLETE      on entry.  */
-// OBSOLETE   fi->args_pointer = frame_sp - sp_offset;
-// OBSOLETE 
-// OBSOLETE   /* Now that we know the SP value used by the prologue, we know where
-// OBSOLETE      it saved all the registers.  */
-// OBSOLETE   for (src = 0; src < 32; src++)
-// OBSOLETE     if (must_adjust[src])
-// OBSOLETE       fsr->regs[src] += frame_sp;
-// OBSOLETE 
-// OBSOLETE   /* The saved value of the SP is always known.  */
-// OBSOLETE   /* (we hope...) */
-// OBSOLETE   if (fsr->regs[SP_REGNUM] != 0
-// OBSOLETE       && fsr->regs[SP_REGNUM] != frame_sp - sp_offset)
-// OBSOLETE     fprintf_unfiltered (gdb_stderr, "Bad saved SP value %lx != %lx, offset %x!\n",
-// OBSOLETE                    fsr->regs[SP_REGNUM],
-// OBSOLETE                    frame_sp - sp_offset, sp_offset);
-// OBSOLETE 
-// OBSOLETE   fsr->regs[SP_REGNUM] = frame_sp - sp_offset;
-// OBSOLETE 
-// OBSOLETE   return (ip);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Given an ip value corresponding to the start of a function,
-// OBSOLETE    return the ip of the first instruction after the function 
-// OBSOLETE    prologue.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE m88k_skip_prologue (CORE_ADDR ip)
-// OBSOLETE {
-// OBSOLETE   struct frame_saved_regs saved_regs_dummy;
-// OBSOLETE   struct symtab_and_line sal;
-// OBSOLETE   CORE_ADDR limit;
-// OBSOLETE 
-// OBSOLETE   sal = find_pc_line (ip, 0);
-// OBSOLETE   limit = (sal.end) ? sal.end : 0xffffffff;
-// OBSOLETE 
-// OBSOLETE   return (examine_prologue (ip, limit, (CORE_ADDR) 0, &saved_regs_dummy,
-// OBSOLETE                        (struct frame_info *) 0));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Put here the code to store, into a struct frame_saved_regs,
-// OBSOLETE    the addresses of the saved registers of frame described by FRAME_INFO.
-// OBSOLETE    This includes special registers such as pc and fp saved in special
-// OBSOLETE    ways in the stack frame.  sp is even more special:
-// OBSOLETE    the address we return for it IS the sp for the next frame.
-// OBSOLETE 
-// OBSOLETE    We cache the result of doing this in the frame_obstack, since it is
-// OBSOLETE    fairly expensive.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE frame_find_saved_regs (struct frame_info *fi, struct frame_saved_regs *fsr)
-// OBSOLETE {
-// OBSOLETE   register struct frame_saved_regs *cache_fsr;
-// OBSOLETE   CORE_ADDR ip;
-// OBSOLETE   struct symtab_and_line sal;
-// OBSOLETE   CORE_ADDR limit;
-// OBSOLETE 
-// OBSOLETE   if (!fi->fsr)
-// OBSOLETE     {
-// OBSOLETE       cache_fsr = (struct frame_saved_regs *)
-// OBSOLETE    frame_obstack_alloc (sizeof (struct frame_saved_regs));
-// OBSOLETE       memset (cache_fsr, '\0', sizeof (struct frame_saved_regs));
-// OBSOLETE       fi->fsr = cache_fsr;
-// OBSOLETE 
-// OBSOLETE       /* Find the start and end of the function prologue.  If the PC
-// OBSOLETE          is in the function prologue, we only consider the part that
-// OBSOLETE          has executed already.  In the case where the PC is not in
-// OBSOLETE          the function prologue, we set limit to two instructions beyond
-// OBSOLETE          where the prologue ends in case if any of the prologue instructions
-// OBSOLETE          were moved into a delay slot of a branch instruction. */
-// OBSOLETE 
-// OBSOLETE       ip = get_pc_function_start (fi->pc);
-// OBSOLETE       sal = find_pc_line (ip, 0);
-// OBSOLETE       limit = (sal.end && sal.end < fi->pc) ? sal.end + 2 * BYTES_PER_88K_INSN
-// OBSOLETE    : fi->pc;
-// OBSOLETE 
-// OBSOLETE       /* This will fill in fields in *fi as well as in cache_fsr.  */
-// OBSOLETE #ifdef SIGTRAMP_FRAME_FIXUP
-// OBSOLETE       if (fi->signal_handler_caller)
-// OBSOLETE    SIGTRAMP_FRAME_FIXUP (fi->frame);
-// OBSOLETE #endif
-// OBSOLETE       examine_prologue (ip, limit, fi->frame, cache_fsr, fi);
-// OBSOLETE #ifdef SIGTRAMP_SP_FIXUP
-// OBSOLETE       if (fi->signal_handler_caller && fi->fsr->regs[SP_REGNUM])
-// OBSOLETE    SIGTRAMP_SP_FIXUP (fi->fsr->regs[SP_REGNUM]);
-// OBSOLETE #endif
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (fsr)
-// OBSOLETE     *fsr = *fi->fsr;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Return the address of the locals block for the frame
-// OBSOLETE    described by FI.  Returns 0 if the address is unknown.
-// OBSOLETE    NOTE!  Frame locals are referred to by negative offsets from the
-// OBSOLETE    argument pointer, so this is the same as frame_args_address().  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE frame_locals_address (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   struct frame_saved_regs fsr;
-// OBSOLETE 
-// OBSOLETE   if (fi->args_pointer)            /* Cached value is likely there.  */
-// OBSOLETE     return fi->args_pointer;
-// OBSOLETE 
-// OBSOLETE   /* Nope, generate it.  */
-// OBSOLETE 
-// OBSOLETE   get_frame_saved_regs (fi, &fsr);
-// OBSOLETE 
-// OBSOLETE   return fi->args_pointer;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Return the address of the argument block for the frame
-// OBSOLETE    described by FI.  Returns 0 if the address is unknown.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE frame_args_address (struct frame_info *fi)
-// OBSOLETE {
-// OBSOLETE   struct frame_saved_regs fsr;
-// OBSOLETE 
-// OBSOLETE   if (fi->args_pointer)            /* Cached value is likely there.  */
-// OBSOLETE     return fi->args_pointer;
-// OBSOLETE 
-// OBSOLETE   /* Nope, generate it.  */
-// OBSOLETE 
-// OBSOLETE   get_frame_saved_regs (fi, &fsr);
-// OBSOLETE 
-// OBSOLETE   return fi->args_pointer;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Return the saved PC from this frame.
-// OBSOLETE 
-// OBSOLETE    If the frame has a memory copy of SRP_REGNUM, use that.  If not,
-// OBSOLETE    just use the register SRP_REGNUM itself.  */
-// OBSOLETE 
-// OBSOLETE CORE_ADDR
-// OBSOLETE frame_saved_pc (struct frame_info *frame)
-// OBSOLETE {
-// OBSOLETE   return read_next_frame_reg (frame, SRP_REGNUM);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE #define DUMMY_FRAME_SIZE 192
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE write_word (CORE_ADDR sp, ULONGEST word)
-// OBSOLETE {
-// OBSOLETE   register int len = REGISTER_SIZE;
-// OBSOLETE   char buffer[MAX_REGISTER_RAW_SIZE];
-// OBSOLETE 
-// OBSOLETE   store_unsigned_integer (buffer, len, word);
-// OBSOLETE   write_memory (sp, buffer, len);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE m88k_push_dummy_frame (void)
-// OBSOLETE {
-// OBSOLETE   register CORE_ADDR sp = read_register (SP_REGNUM);
-// OBSOLETE   register int rn;
-// OBSOLETE   int offset;
-// OBSOLETE 
-// OBSOLETE   sp -= DUMMY_FRAME_SIZE;  /* allocate a bunch of space */
-// OBSOLETE 
-// OBSOLETE   for (rn = 0, offset = 0; rn <= SP_REGNUM; rn++, offset += 4)
-// OBSOLETE     write_word (sp + offset, read_register (rn));
-// OBSOLETE 
-// OBSOLETE   write_word (sp + offset, read_register (SXIP_REGNUM));
-// OBSOLETE   offset += 4;
-// OBSOLETE 
-// OBSOLETE   write_word (sp + offset, read_register (SNIP_REGNUM));
-// OBSOLETE   offset += 4;
-// OBSOLETE 
-// OBSOLETE   write_word (sp + offset, read_register (SFIP_REGNUM));
-// OBSOLETE   offset += 4;
-// OBSOLETE 
-// OBSOLETE   write_word (sp + offset, read_register (PSR_REGNUM));
-// OBSOLETE   offset += 4;
-// OBSOLETE 
-// OBSOLETE   write_word (sp + offset, read_register (FPSR_REGNUM));
-// OBSOLETE   offset += 4;
-// OBSOLETE 
-// OBSOLETE   write_word (sp + offset, read_register (FPCR_REGNUM));
-// OBSOLETE   offset += 4;
-// OBSOLETE 
-// OBSOLETE   write_register (SP_REGNUM, sp);
-// OBSOLETE   write_register (ACTUAL_FP_REGNUM, sp);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE pop_frame (void)
-// OBSOLETE {
-// OBSOLETE   register struct frame_info *frame = get_current_frame ();
-// OBSOLETE   register int regnum;
-// OBSOLETE   struct frame_saved_regs fsr;
-// OBSOLETE 
-// OBSOLETE   get_frame_saved_regs (frame, &fsr);
-// OBSOLETE 
-// OBSOLETE   if (PC_IN_CALL_DUMMY (read_pc (), read_register (SP_REGNUM), frame->frame))
-// OBSOLETE     {
-// OBSOLETE       /* FIXME: I think get_frame_saved_regs should be handling this so
-// OBSOLETE          that we can deal with the saved registers properly (e.g. frame
-// OBSOLETE          1 is a call dummy, the user types "frame 2" and then "print $ps").  */
-// OBSOLETE       register CORE_ADDR sp = read_register (ACTUAL_FP_REGNUM);
-// OBSOLETE       int offset;
-// OBSOLETE 
-// OBSOLETE       for (regnum = 0, offset = 0; regnum <= SP_REGNUM; regnum++, offset += 4)
-// OBSOLETE    (void) write_register (regnum, read_memory_integer (sp + offset, 4));
-// OBSOLETE 
-// OBSOLETE       write_register (SXIP_REGNUM, read_memory_integer (sp + offset, 4));
-// OBSOLETE       offset += 4;
-// OBSOLETE 
-// OBSOLETE       write_register (SNIP_REGNUM, read_memory_integer (sp + offset, 4));
-// OBSOLETE       offset += 4;
-// OBSOLETE 
-// OBSOLETE       write_register (SFIP_REGNUM, read_memory_integer (sp + offset, 4));
-// OBSOLETE       offset += 4;
-// OBSOLETE 
-// OBSOLETE       write_register (PSR_REGNUM, read_memory_integer (sp + offset, 4));
-// OBSOLETE       offset += 4;
-// OBSOLETE 
-// OBSOLETE       write_register (FPSR_REGNUM, read_memory_integer (sp + offset, 4));
-// OBSOLETE       offset += 4;
-// OBSOLETE 
-// OBSOLETE       write_register (FPCR_REGNUM, read_memory_integer (sp + offset, 4));
-// OBSOLETE       offset += 4;
-// OBSOLETE 
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       for (regnum = FP_REGNUM; regnum > 0; regnum--)
-// OBSOLETE    if (fsr.regs[regnum])
-// OBSOLETE      write_register (regnum,
-// OBSOLETE                      read_memory_integer (fsr.regs[regnum], 4));
-// OBSOLETE       write_pc (frame_saved_pc (frame));
-// OBSOLETE     }
-// OBSOLETE   reinit_frame_cache ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_m88k_tdep (void)
-// OBSOLETE {
-// OBSOLETE   tm_print_insn = print_insn_m88k;
-// OBSOLETE }
index b482068637cd05a4c53c1de26a8ad51bf62ffc9c..19557d7dc082296c243f510b32e02080706af636 100644 (file)
@@ -87,8 +87,8 @@ default_macro_scope (void)
   struct macro_scope *ms;
 
   /* If there's a selected frame, use its PC.  */ 
-  if (selected_frame)
-    sal = find_pc_line (selected_frame->pc, 0);
+  if (deprecated_selected_frame)
+    sal = find_pc_line (get_frame_pc (deprecated_selected_frame), 0);
   
   /* If the target has any registers at all, then use its PC.  Why we
      would have registers but no stack, I'm not sure.  */
index 5bc5b7327daf89772c77de93d7c05c8d6412ae16..1432847a8e62b78fd6918485cd7c7edd6b3bdb02 100644 (file)
@@ -445,12 +445,9 @@ macro_include (struct macro_source_file *source,
          should tolerate bad debug info.  So:
 
          First, squawk.  */
-      static struct deprecated_complaint bogus_inclusion_line = {
-        "both `%s' and `%s' allegedly #included at %s:%d", 0, 0
-      };
-
-      complain (&bogus_inclusion_line, 
-                included, (*link)->filename, source->filename, line);
+      complaint (&symfile_complaints,
+                "both `%s' and `%s' allegedly #included at %s:%d", included,
+                (*link)->filename, source->filename, line);
 
       /* Now, choose a new, unoccupied line number for this
          #inclusion, after the alleged #inclusion line.  */
@@ -707,15 +704,10 @@ check_for_redefinition (struct macro_source_file *source, int line,
 
       if (! same)
         {
-          static struct deprecated_complaint macro_redefined = {
-            "macro `%s' redefined at %s:%d; original definition at %s:%d",
-            0, 0
-          };
-          complain (&macro_redefined,
-                    name,
-                    source->filename, line,
-                    found_key->start_file->filename,
-                    found_key->start_line);
+         complaint (&symfile_complaints,
+                    "macro `%s' redefined at %s:%d; original definition at %s:%d",
+                    name, source->filename, line,
+                    found_key->start_file->filename, found_key->start_line);
         }
 
       return found_key;
@@ -801,12 +793,10 @@ macro_undef (struct macro_source_file *source, int line,
 
       if (key->end_file)
         {
-          static struct deprecated_complaint double_undef = {
-            "macro '%s' is #undefined twice, at %s:%d and %s:%d",
-            0, 0
-          };
-          complain (&double_undef, name, source->filename, line,
-                    key->end_file->filename, key->end_line);
+         complaint (&symfile_complaints,
+                    "macro '%s' is #undefined twice, at %s:%d and %s:%d", name,
+                    source->filename, line, key->end_file->filename,
+                    key->end_line);
         }
 
       /* Whatever the case, wipe out the old ending point, and 
@@ -820,11 +810,9 @@ macro_undef (struct macro_source_file *source, int line,
          has no macro definition in scope is ignored.  So we should
          ignore it too.  */
 #if 0
-      static struct deprecated_complaint no_macro_to_undefine = {
-        "no definition for macro `%s' in scope to #undef at %s:%d",
-        0, 0
-      };
-      complain (&no_macro_to_undefine, name, source->filename, line);
+      complaint (&symfile_complaints,
+                "no definition for macro `%s' in scope to #undef at %s:%d",
+                name, source->filename, line);
 #endif
     }
 }
index e45d54d3a988e1b7c82673b1965208f4c4e5e975..678fd2b866cc232818aa344586f1cc2f9c5eae6d 100644 (file)
@@ -697,7 +697,7 @@ Configure variables internal to GDB that aid in GDB's maintenance",
 #ifndef _WIN32
   add_cmd ("dump-me", class_maintenance, maintenance_dump_me,
           "Get fatal error; make debugger dump its core.\n\
-GDB sets it's handling of SIGQUIT back to SIG_DFL and then sends\n\
+GDB sets its handling of SIGQUIT back to SIG_DFL and then sends\n\
 itself a SIGQUIT signal.",
           &maintenancelist);
 #endif
index 23ee96f27904c0867c09bf81909e4fd5a57b20ef..ae2821f87f3bcf02493ebd25b88f409984ee96ae 100644 (file)
@@ -638,9 +638,10 @@ mcore_analyze_prologue (struct frame_info *fi, CORE_ADDR pc, int skip_prologue)
   return addr;
 }
 
-/* Given a GDB frame, determine the address of the calling function's frame.
-   This will be used to create a new GDB frame struct, and then
-   INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. */
+/* Given a GDB frame, determine the address of the calling function's
+   frame.  This will be used to create a new GDB frame struct, and
+   then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be
+   called for the new frame. */
 
 CORE_ADDR
 mcore_frame_chain (struct frame_info * fi)
@@ -756,7 +757,7 @@ mcore_find_callers_reg (struct frame_info *fi, int regnum)
 {
   for (; fi != NULL; fi = fi->next)
     {
-      if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+      if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
        return deprecated_read_register_dummy (fi->pc, fi->frame, regnum);
       else if (fi->saved_regs[regnum] != 0)
        return read_memory_integer (fi->saved_regs[regnum],
@@ -772,7 +773,7 @@ CORE_ADDR
 mcore_frame_saved_pc (struct frame_info * fi)
 {
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     return deprecated_read_register_dummy (fi->pc, fi->frame, PC_REGNUM);
   else
     return mcore_find_callers_reg (fi, PR_REGNUM);
@@ -789,7 +790,7 @@ mcore_pop_frame (void)
   int rn;
   struct frame_info *fi = get_current_frame ();
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     generic_pop_dummy_frame ();
   else
     {
@@ -810,7 +811,7 @@ mcore_pop_frame (void)
        }
 
       /* Actually cut back the stack. */
-      write_register (SP_REGNUM, FRAME_FP (fi));
+      write_register (SP_REGNUM, get_frame_base (fi));
     }
 
   /* Finally, throw away any cached frame information. */
@@ -1047,7 +1048,7 @@ mcore_init_extra_frame_info (int fromleaf, struct frame_info *fi)
   fi->extra_info->status = 0;
   fi->extra_info->framesize = 0;
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       /* We need to setup fi->frame here because run_stack_dummy gets it wrong
          by assuming it's always FP.  */
@@ -1084,6 +1085,10 @@ mcore_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   gdbarch = gdbarch_alloc (&info, 0);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   /* Registers: */
 
   /* All registers are 32 bits */
@@ -1100,22 +1105,18 @@ mcore_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_pc_regnum (gdbarch, 64);
   set_gdbarch_sp_regnum (gdbarch, 0);
   set_gdbarch_fp_regnum (gdbarch, 0);
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
 
   /* Call Dummies:  */
 
   set_gdbarch_call_dummy_p (gdbarch, 1);
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_call_dummy_words (gdbarch, call_dummy_words);
   set_gdbarch_sizeof_call_dummy_words (gdbarch, 0);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
   set_gdbarch_saved_pc_after_call (gdbarch, mcore_saved_pc_after_call);
   set_gdbarch_function_start_offset (gdbarch, 0);
index 77a6aa142005f94b832436ed40252c0eb01edfe8..34d162fa823ccbd1e98324a4d889c3a99f2f645a 100644 (file)
@@ -144,96 +144,43 @@ struct symloc
 #define SC_IS_UNDEF(sc) ((sc) == scUndefined || (sc) == scSUndefined)
 \f
 /* Various complaints about symbol reading that don't abort the process */
+static void
+index_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints, "bad aux index at symbol %s", arg1);
+}
 
-static struct deprecated_complaint bad_file_number_complaint =
-{"bad file number %d", 0, 0};
-
-static struct deprecated_complaint index_complaint =
-{"bad aux index at symbol %s", 0, 0};
-
-static struct deprecated_complaint aux_index_complaint =
-{"bad proc end in aux found from symbol %s", 0, 0};
-
-static struct deprecated_complaint block_index_complaint =
-{"bad aux index at block symbol %s", 0, 0};
-
-static struct deprecated_complaint unknown_ext_complaint =
-{"unknown external symbol %s", 0, 0};
-
-static struct deprecated_complaint unknown_sym_complaint =
-{"unknown local symbol %s", 0, 0};
-
-static struct deprecated_complaint unknown_st_complaint =
-{"with type %d", 0, 0};
-
-static struct deprecated_complaint block_overflow_complaint =
-{"block containing %s overfilled", 0, 0};
-
-static struct deprecated_complaint basic_type_complaint =
-{"cannot map ECOFF basic type 0x%x for %s", 0, 0};
-
-static struct deprecated_complaint unknown_type_qual_complaint =
-{"unknown type qualifier 0x%x", 0, 0};
-
-static struct deprecated_complaint array_index_type_complaint =
-{"illegal array index type for %s, assuming int", 0, 0};
-
-static struct deprecated_complaint bad_tag_guess_complaint =
-{"guessed tag type of %s incorrectly", 0, 0};
-
-static struct deprecated_complaint block_member_complaint =
-{"declaration block contains unhandled symbol type %d", 0, 0};
-
-static struct deprecated_complaint stEnd_complaint =
-{"stEnd with storage class %d not handled", 0, 0};
-
-static struct deprecated_complaint unknown_mdebug_symtype_complaint =
-{"unknown symbol type 0x%x", 0, 0};
-
-static struct deprecated_complaint stab_unknown_complaint =
-{"unknown stabs symbol %s", 0, 0};
-
-static struct deprecated_complaint pdr_for_nonsymbol_complaint =
-{"PDR for %s, but no symbol", 0, 0};
-
-static struct deprecated_complaint pdr_static_symbol_complaint =
-{"can't handle PDR for static proc at 0x%lx", 0, 0};
-
-static struct deprecated_complaint bad_setjmp_pdr_complaint =
-{"fixing bad setjmp PDR from libc", 0, 0};
-
-static struct deprecated_complaint bad_fbitfield_complaint =
-{"can't handle TIR fBitfield for %s", 0, 0};
-
-static struct deprecated_complaint bad_continued_complaint =
-{"illegal TIR continued for %s", 0, 0};
-
-static struct deprecated_complaint bad_rfd_entry_complaint =
-{"bad rfd entry for %s: file %d, index %d", 0, 0};
-
-static struct deprecated_complaint unexpected_type_code_complaint =
-{"unexpected type code for %s", 0, 0};
-
-static struct deprecated_complaint unable_to_cross_ref_complaint =
-{"unable to cross ref btTypedef for %s", 0, 0};
-
-static struct deprecated_complaint bad_indirect_xref_complaint =
-{"unable to cross ref btIndirect for %s", 0, 0};
-
-static struct deprecated_complaint illegal_forward_tq0_complaint =
-{"illegal tq0 in forward typedef for %s", 0, 0};
+static void
+unknown_ext_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints, "unknown external symbol %s", arg1);
+}
 
-static struct deprecated_complaint illegal_forward_bt_complaint =
-{"illegal bt %d in forward typedef for %s", 0, 0};
+static void
+basic_type_complaint (int arg1, const char *arg2)
+{
+  complaint (&symfile_complaints, "cannot map ECOFF basic type 0x%x for %s",
+            arg1, arg2);
+}
 
-static struct deprecated_complaint bad_linetable_guess_complaint =
-{"guessed size of linetable for %s incorrectly", 0, 0};
+static void
+bad_tag_guess_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints, "guessed tag type of %s incorrectly", arg1);
+}
 
-static struct deprecated_complaint bad_ext_ifd_complaint =
-{"bad ifd for external symbol: %d (max %d)", 0, 0};
+static void
+bad_rfd_entry_complaint (const char *arg1, int arg2, int arg3)
+{
+  complaint (&symfile_complaints, "bad rfd entry for %s: file %d, index %d",
+            arg1, arg2, arg3);
+}
 
-static struct deprecated_complaint bad_ext_iss_complaint =
-{"bad iss for external symbol: %ld (max %ld)", 0, 0};
+static void
+unexpected_type_code_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints, "unexpected type code for %s", arg1);
+}
 
 /* Macros and extra defs */
 
@@ -986,7 +933,9 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
                break;
 
              default:
-               complain (&block_member_complaint, tsym.st);
+               complaint (&symfile_complaints,
+                          "declaration block contains unhandled symbol type %d",
+                          tsym.st);
              }
          }
       end_of_fields:;
@@ -1272,7 +1221,8 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
          ;
        }
       else
-       complain (&stEnd_complaint, sh->sc);
+       complaint (&symfile_complaints,
+                  "stEnd with storage class %d not handled", sh->sc);
 
       pop_parse_stack ();      /* restore previous lexical context */
       break;
@@ -1384,7 +1334,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
     case stConstant:
       break;                   /* constant */
     default:
-      complain (&unknown_mdebug_symtype_complaint, sh->st);
+      complaint (&symfile_complaints, "unknown symbol type 0x%x", sh->st);
       break;
     }
 
@@ -1453,7 +1403,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
   /* Handle corrupt aux indices.  */
   if (aux_index >= (debug_info->fdr + fd)->caux)
     {
-      complain (&index_complaint, sym_name);
+      index_complaint (sym_name);
       return mdebug_type_int;
     }
   ax += aux_index;
@@ -1462,7 +1412,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
   (*debug_swap->swap_tir_in) (bigend, &ax->a_ti, t);
   if (t->bt >= (sizeof (map_bt) / sizeof (*map_bt)))
     {
-      complain (&basic_type_complaint, t->bt, sym_name);
+      basic_type_complaint (t->bt, sym_name);
       return mdebug_type_int;
     }
   if (map_bt[t->bt])
@@ -1501,7 +1451,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
          type_code = TYPE_CODE_ERROR;
          break;
        default:
-         complain (&basic_type_complaint, t->bt, sym_name);
+         basic_type_complaint (t->bt, sym_name);
          return mdebug_type_int;
        }
     }
@@ -1527,7 +1477,8 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
          else if (t->bt == btEnum)
            ;
          else
-           complain (&bad_fbitfield_complaint, sym_name);
+           complaint (&symfile_complaints, "can't handle TIR fBitfield for %s",
+                      sym_name);
        }
       else
        *bs = width;
@@ -1555,7 +1506,8 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
 
       if (rf == -1)
        {
-         complain (&bad_indirect_xref_complaint, sym_name);
+         complaint (&symfile_complaints,
+                    "unable to cross ref btIndirect for %s", sym_name);
          return mdebug_type_int;
        }
       xref_fh = get_rfd (fd, rf);
@@ -1595,7 +1547,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
          && TYPE_CODE (tp) != TYPE_CODE_UNION
          && TYPE_CODE (tp) != TYPE_CODE_ENUM)
        {
-         complain (&unexpected_type_code_complaint, sym_name);
+         unexpected_type_code_complaint (sym_name);
        }
       else
        {
@@ -1609,7 +1561,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
              || (TYPE_CODE (tp) != TYPE_CODE_ENUM
                  && type_code == TYPE_CODE_ENUM))
            {
-             complain (&bad_tag_guess_complaint, sym_name);
+             bad_tag_guess_complaint (sym_name);
            }
 
          if (TYPE_CODE (tp) != type_code)
@@ -1646,7 +1598,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
          are corrupted.  */
       if (TYPE_CODE (tp) != TYPE_CODE_RANGE)
        {
-         complain (&unexpected_type_code_complaint, sym_name);
+         unexpected_type_code_complaint (sym_name);
        }
       else
        {
@@ -1654,7 +1606,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
             exception is if we guessed wrong re struct/union/enum. */
          if (TYPE_CODE (tp) != type_code)
            {
-             complain (&bad_tag_guess_complaint, sym_name);
+             bad_tag_guess_complaint (sym_name);
              TYPE_CODE (tp) = type_code;
            }
          if (TYPE_NAME (tp) == NULL || !STREQ (TYPE_NAME (tp), name))
@@ -1670,7 +1622,8 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
       ax += cross_ref (fd, ax, &tp, type_code, &name, bigend, sym_name);
       if (tp == (struct type *) NULL)
        {
-         complain (&unable_to_cross_ref_complaint, sym_name);
+         complaint (&symfile_complaints,
+                    "unable to cross ref btTypedef for %s", sym_name);
          tp = mdebug_type_int;
        }
     }
@@ -1720,7 +1673,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
 
   /* Complain for illegal continuations due to corrupt aux entries.  */
   if (t->continued)
-    complain (&bad_continued_complaint, sym_name);
+    complaint (&symfile_complaints, "illegal TIR continued for %s", sym_name);
 
   return tp;
 }
@@ -1782,7 +1735,8 @@ upgrade_type (int fd, struct type **tpp, int tq, union aux_ext *ax, int bigend,
          else due to corrupt aux entries.  */
       if (TYPE_CODE (indx) != TYPE_CODE_INT)
        {
-         complain (&array_index_type_complaint, sym_name);
+         complaint (&symfile_complaints,
+                    "illegal array index type for %s, assuming int", sym_name);
          indx = mdebug_type_int;
        }
 
@@ -1832,7 +1786,7 @@ upgrade_type (int fd, struct type **tpp, int tq, union aux_ext *ax, int bigend,
       return 0;
 
     default:
-      complain (&unknown_type_qual_complaint, tq);
+      complaint (&symfile_complaints, "unknown type qualifier 0x%x", tq);
       return 0;
     }
 }
@@ -1867,7 +1821,9 @@ parse_procedure (PDR *pr, struct symtab *search_symtab,
        {
          /* Static procedure at address pr->adr.  Sigh. */
          /* FIXME-32x64.  assuming pr->adr fits in long.  */
-         complain (&pdr_static_symbol_complaint, (unsigned long) pr->adr);
+         complaint (&symfile_complaints,
+                    "can't handle PDR for static proc at 0x%lx",
+                    (unsigned long) pr->adr);
          return;
        }
       else
@@ -1927,7 +1883,7 @@ parse_procedure (PDR *pr, struct symtab *search_symtab,
     }
   else
     {
-      complain (&pdr_for_nonsymbol_complaint, sh_name);
+      complaint (&symfile_complaints, "PDR for %s, but no symbol", sh_name);
 #if 1
       return;
 #else
@@ -1975,7 +1931,7 @@ parse_procedure (PDR *pr, struct symtab *search_symtab,
          to make backtrace through setjmp work.  */
       if (e->pdr.pcreg == 0 && STREQ (sh_name, "setjmp"))
        {
-         complain (&bad_setjmp_pdr_complaint, 0);
+         complaint (&symfile_complaints, "fixing bad setjmp PDR from libc");
          e->pdr.pcreg = RA_REGNUM;
          e->pdr.regmask = 0x80000000;
          e->pdr.regoffset = -4;
@@ -2172,7 +2128,9 @@ parse_lines (FDR *fh, PDR *pr, struct linetable *lt, int maxlines,
             with corrupt binaries.  */
          if (lt->nitems >= maxlines)
            {
-             complain (&bad_linetable_guess_complaint, fdr_name (fh));
+             complaint (&symfile_complaints,
+                        "guessed size of linetable for %s incorrectly",
+                        fdr_name (fh));
              break;
            }
          k = add_line (lt, lineno, l, k);
@@ -2181,6 +2139,14 @@ parse_lines (FDR *fh, PDR *pr, struct linetable *lt, int maxlines,
     }
 }
 \f
+static void
+function_outside_compilation_unit_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints,
+            "function `%s' appears to be defined outside of all compilation units",
+            arg1);
+}
+
 /* Master parsing procedure for first-pass reading of file symbols
    into a partial_symtab.  */
 
@@ -2357,13 +2323,16 @@ parse_partial_symbols (struct objfile *objfile)
          external symbols.  */
       if (ext_in->ifd < -1 || ext_in->ifd >= hdr->ifdMax)
        {
-         complain (&bad_ext_ifd_complaint, ext_in->ifd, hdr->ifdMax);
+         complaint (&symfile_complaints,
+                    "bad ifd for external symbol: %d (max %ld)", ext_in->ifd,
+                    hdr->ifdMax);
          continue;
        }
       if (ext_in->asym.iss < 0 || ext_in->asym.iss >= hdr->issExtMax)
        {
-         complain (&bad_ext_iss_complaint, ext_in->asym.iss,
-                   hdr->issExtMax);
+         complaint (&symfile_complaints,
+                    "bad iss for external symbol: %ld (max %ld)",
+                    ext_in->asym.iss, hdr->issExtMax);
          continue;
        }
 
@@ -2489,7 +2458,7 @@ parse_partial_symbols (struct objfile *objfile)
          /* Fall through.  */
        default:
          ms_type = mst_unknown;
-         complain (&unknown_ext_complaint, name);
+         unknown_ext_complaint (name);
        }
       if (!ECOFF_IN_ELF (cur_bfd))
        prim_record_minimal_symbol (name, svalue, ms_type, objfile);
@@ -2721,9 +2690,6 @@ parse_partial_symbols (struct objfile *objfile)
 
                switch (type_code)
                  {
-                   static struct deprecated_complaint function_outside_compilation_unit = {
-                     "function `%s' appears to be defined outside of all compilation units", 0, 0
-                   };
                    char *p;
                    /*
                     * Standard, external, non-debugger, symbols
@@ -3126,7 +3092,7 @@ parse_partial_symbols (struct objfile *objfile)
                            char *name = xmalloc (name_len + 1);
                            memcpy (name, namestring, name_len);
                            name[name_len] = '\0';
-                           complain (&function_outside_compilation_unit, name);
+                           function_outside_compilation_unit_complaint (name);
                            xfree (name);
                          }
                        sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@@ -3147,7 +3113,7 @@ parse_partial_symbols (struct objfile *objfile)
                            char *name = xmalloc (name_len + 1);
                            memcpy (name, namestring, name_len);
                            name[name_len] = '\0';
-                           complain (&function_outside_compilation_unit, name);
+                           function_outside_compilation_unit_complaint (name);
                            xfree (name);
                          }
                        sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@@ -3198,7 +3164,8 @@ parse_partial_symbols (struct objfile *objfile)
                           time searching to the end of every string looking for
                           a backslash.  */
 
-                       complain (&unknown_symchar_complaint, p[1]);
+                       complaint (&symfile_complaints,
+                                  "unknown symbol descriptor `%c'", p[1]);
 
                        /* Ignore it; perhaps it is an extension that we don't
                           know about.  */
@@ -3259,8 +3226,8 @@ parse_partial_symbols (struct objfile *objfile)
                  default:
                    /* If we haven't found it yet, ignore it.  It's probably some
                       new type we don't know about yet.  */
-                   complain (&unknown_symtype_complaint,
-                             local_hex_string (type_code)); /*CUR_SYMBOL_TYPE*/
+                   complaint (&symfile_complaints, "unknown symbol type %s",
+                              local_hex_string (type_code)); /*CUR_SYMBOL_TYPE*/
                    continue;
                  }
                if (stabstring
@@ -3365,7 +3332,7 @@ parse_partial_symbols (struct objfile *objfile)
                    {
                      /* Should not happen, but does when cross-compiling
                         with the MIPS compiler.  FIXME -- pull later.  */
-                     complain (&index_complaint, name);
+                     index_complaint (name);
                      new_sdx = cur_sdx + 1;    /* Don't skip at all */
                    }
                  else
@@ -3378,7 +3345,9 @@ parse_partial_symbols (struct objfile *objfile)
                  if (new_sdx <= cur_sdx)
                    {
                      /* This should not happen either... FIXME.  */
-                     complain (&aux_index_complaint, name);
+                     complaint (&symfile_complaints,
+                                "bad proc end in aux found from symbol %s",
+                                name);
                      new_sdx = cur_sdx + 1;    /* Don't skip backward */
                    }
 
@@ -3457,7 +3426,8 @@ parse_partial_symbols (struct objfile *objfile)
                  if (new_sdx <= cur_sdx)
                    {
                      /* This happens with the Ultrix kernel. */
-                     complain (&block_index_complaint, name);
+                     complaint (&symfile_complaints,
+                                "bad aux index at block symbol %s", name);
                      new_sdx = cur_sdx + 1;    /* Don't skip backward */
                    }
                  cur_sdx = new_sdx;
@@ -3477,8 +3447,9 @@ parse_partial_symbols (struct objfile *objfile)
                default:
                  /* Both complaints are valid:  one gives symbol name,
                     the other the offending symbol type.  */
-                 complain (&unknown_sym_complaint, name);
-                 complain (&unknown_st_complaint, sh.st);
+                 complaint (&symfile_complaints, "unknown local symbol %s",
+                            name);
+                 complaint (&symfile_complaints, "with type %d", sh.st);
                  cur_sdx++;
                  continue;
                }
@@ -3547,8 +3518,7 @@ parse_partial_symbols (struct objfile *objfile)
                  class = LOC_LABEL;
                  break;
                default:
-                 complain (&unknown_ext_complaint,
-                           debug_info->ssext + psh->iss);
+                 unknown_ext_complaint (debug_info->ssext + psh->iss);
                  /* Fall through, pretend it's global.  */
                case stGlobal:
                  /* Global common symbols are resolved by the runtime loader,
@@ -3645,7 +3615,7 @@ parse_partial_symbols (struct objfile *objfile)
                          &rh);
          if (rh < 0 || rh >= hdr->ifdMax)
            {
-             complain (&bad_file_number_complaint, rh);
+             complaint (&symfile_complaints, "bad file number %ld", rh);
              continue;
            }
 
@@ -3952,7 +3922,7 @@ psymtab_to_symtab_1 (struct partial_symtab *pst, char *filename)
            /* These are generated by gcc-2.x, do not complain */
            ;
          else
-           complain (&stab_unknown_complaint, name);
+           complaint (&symfile_complaints, "unknown stabs symbol %s", name);
        }
 
       if (! last_symtab_ended)
@@ -4249,8 +4219,7 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_cod
     {
       /* File indirect entry is corrupt.  */
       *pname = "<illegal>";
-      complain (&bad_rfd_entry_complaint,
-               sym_name, xref_fd, rn->index);
+      bad_rfd_entry_complaint (sym_name, xref_fd, rn->index);
       return result;
     }
 
@@ -4274,8 +4243,7 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_cod
     {
       /* File indirect entry is corrupt.  */
       *pname = "<illegal>";
-      complain (&bad_rfd_entry_complaint,
-               sym_name, xref_fd, rn->index);
+      bad_rfd_entry_complaint (sym_name, xref_fd, rn->index);
       return result;
     }
 
@@ -4311,7 +4279,8 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_cod
                                        + fh->iauxBase + sh.index)->a_ti,
                                      &tir);
          if (tir.tq0 != tqNil)
-           complain (&illegal_forward_tq0_complaint, sym_name);
+           complaint (&symfile_complaints,
+                      "illegal tq0 in forward typedef for %s", sym_name);
          switch (tir.bt)
            {
            case btVoid:
@@ -4348,7 +4317,9 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_cod
              break;
 
            default:
-             complain (&illegal_forward_bt_complaint, tir.bt, sym_name);
+             complaint (&symfile_complaints,
+                        "illegal bt %d in forward typedef for %s", tir.bt,
+                        sym_name);
              *tpp = init_type (type_code, 0, 0, (char *) NULL,
                                current_objfile);
              break;
index a493a2d08a2fcf7209a8fb13f97253e2864254c2..97d8d460ad7836df58b8ec5b78431f2d8622b85c 100644 (file)
@@ -1,3 +1,22 @@
+2002-12-13  Jeff Johnston  <jjohnstn@redhat.com>
+
+       * mi-cmds.c (-environment-directory) Change to use mi_cmd_env_dir,
+       (-environment-cd): Change to use mi_cmd_env_cd,.
+       (-environment-pwd): Change to use mi_cmd_env_pwd.
+       (-environment-path): Change to use mi_cmd_env_path.
+       * mi-cmds.h (mi_cmd_env_cd, mi_cmd_env_dir): New prototypes.
+       (mi_cmd_env_path, mi_cmd_env_pwd): Ditto.
+       * mi-cmd-env.c: New file.  Part of fix for PR gdb/741.
+       * gdbmi.texinfo (environment-cd): Update output and example.
+       (environment-pwd): Ditto.
+       (environment-dir): Update output, description, and examples.
+       (environment-path): Ditto.
+
+2002-11-29  Andrew Cagney  <ac131313@redhat.com>
+
+       * mi/mi-cmd-stack.c, mi/mi-main.c: Update to use
+       deprecated_selected_frame.
+
 2002-11-13  Andrew Cagney  <ac131313@redhat.com>
 
        * mi-main.c (mi_cmd_data_write_register_values): Use
index d64328c17344786050338918cafa282a554f5c45..4cf34c2491833b963a40ff62a12d1ee63693426f 100644 (file)
@@ -1665,10 +1665,25 @@ The corresponding @value{GDBN} command is @samp{cd}.
 @subsubheading Synopsis
 
 @example
- -environment-directory @var{pathdir}
+ -environment-directory [ -r ] [ @var{pathdir} ]+
 @end example
 
-Add directory @var{pathdir} to beginning of search path for source files.
+Add directories @var{pathdir} to beginning of search path for source files.
+If the @samp{-r} option is used, the search path is reset to the default
+search path.  If directories @var{pathdir} are supplied in addition to the 
+@samp{-r} option, the search path is first reset and then addition
+occurs as normal.
+Multiple directories may be specified, separated by blanks.  Specifying 
+multiple directories in a single command
+results in the directories added to the beginning of the
+search path in the same order they were presented in the command.
+If blanks are needed as
+part of a directory name, double-quotes should be used around
+the name.  In the command output, the path will show up separated
+by the system directory-separator character.  The directory-seperator 
+character must not be used
+in any directory name.
+If no directories are specified, the current search path is displayed.
 
 @subsubheading @value{GDBN} Command
 
@@ -1679,7 +1694,16 @@ The corresponding @value{GDBN} command is @samp{dir}.
 @smallexample
 (@value{GDBP})
 -environment-directory /kwikemart/marge/ezannoni/flathead-dev/devo/gdb
-^done
+^done,source-path="/kwikemart/marge/ezannoni/flathead-dev/devo/gdb:$cdir:$cwd"
+(@value{GDBP})
+-environment-directory ""
+^done,source-path="/kwikemart/marge/ezannoni/flathead-dev/devo/gdb:$cdir:$cwd"
+(@value{GDBP})
+-environment-directory -r /home/jjohnstn/src/gdb /usr/src
+^done,source-path="/home/jjohnstn/src/gdb:/usr/src:$cdir:$cwd"
+(@value{GDBP})
+-environment-directory -r
+^done,source-path="$cdir:$cwd"
 (@value{GDBP})
 @end smallexample
 
@@ -1690,10 +1714,27 @@ The corresponding @value{GDBN} command is @samp{dir}.
 @subsubheading Synopsis
 
 @example
- -environment-path ( @var{pathdir} )+
+ -environment-path [ -r ] [ @var{pathdir} ]+
 @end example
 
 Add directories @var{pathdir} to beginning of search path for object files.
+If the @samp{-r} option is used, the search path is reset to the original
+search path that existed at gdb start-up.  If directories @var{pathdir} are 
+supplied in addition to the 
+@samp{-r} option, the search path is first reset and then addition
+occurs as normal.
+Multiple directories may be specified, separated by blanks.  Specifying 
+multiple directories in a single command
+results in the directories added to the beginning of the
+search path in the same order they were presented in the command.
+If blanks are needed as
+part of a directory name, double-quotes should be used around
+the name.  In the command output, the path will show up separated
+by the system directory-separator character.  The directory-seperator 
+character must not be used
+in any directory name.
+If no directories are specified, the current path is displayed.
+
 
 @subsubheading @value{GDBN} Command
 
@@ -1703,8 +1744,14 @@ The corresponding @value{GDBN} command is @samp{path}.
 
 @smallexample
 (@value{GDBP})
--environment-path /kwikemart/marge/ezannoni/flathead-dev/ppc-eabi/gdb
-^done
+-environment-path 
+^done,path="/usr/bin"
+(@value{GDBP})
+-environment-path /kwikemart/marge/ezannoni/flathead-dev/ppc-eabi/gdb /bin
+^done,path="/kwikemart/marge/ezannoni/flathead-dev/ppc-eabi/gdb:/bin:/usr/bin"
+(@value{GDBP})
+-environment-path -r /usr/local/bin
+^done,path="/usr/local/bin:/usr/bin"
 (@value{GDBP})
 @end smallexample
 
@@ -1729,8 +1776,7 @@ The corresponding @value{GDBN} command is @samp{pwd}.
 @smallexample
 (@value{GDBP})
 -environment-pwd
-~Working directory /kwikemart/marge/ezannoni/flathead-dev/devo/gdb.
-^done
+^done,cwd="/kwikemart/marge/ezannoni/flathead-dev/devo/gdb"
 (@value{GDBP})
 @end smallexample
 
index ae87a8b4b6ac39686bb732748c3eac149ccf9b1c..27111196820dbcaf8241c89a1dcf6436e4195487 100644 (file)
@@ -144,7 +144,7 @@ mi_cmd_stack_list_locals (char *command, char **argv, int argc)
   if (argc != 1)
     error ("mi_cmd_stack_list_locals: Usage: PRINT_VALUES");
 
-  list_args_or_locals (1, atoi (argv[0]), selected_frame);
+  list_args_or_locals (1, atoi (argv[0]), deprecated_selected_frame);
   return MI_CMD_DONE;
 }
 
index 233d06bded22176914598b2cf5f7e9c81a010f4b..699937d0ff279e294acf30154b511e77f6eb1f4b 100644 (file)
@@ -56,10 +56,10 @@ struct mi_cmd mi_cmds[] =
   {"display-enable", 0, 0},
   {"display-insert", 0, 0},
   {"display-list", 0, 0},
-  {"environment-cd", "cd %s", 0},
-  {"environment-directory", "dir %s", 0},
-  {"environment-path", "path %s", 0},
-  {"environment-pwd", "pwd", 0},
+  {"environment-cd", 0, 0, mi_cmd_env_cd},
+  {"environment-directory", 0, 0, mi_cmd_env_dir},
+  {"environment-path", 0, 0, mi_cmd_env_path},
+  {"environment-pwd", 0, 0, mi_cmd_env_pwd},
   {"exec-abort", 0, 0},
   {"exec-arguments", "set args %s", 0},
   {"exec-continue", 0, mi_cmd_exec_continue},
index 88775e6f9619b9c5d2af917b1ce6cf7c1ea90c38..f4fe64d279e617a5ac9768bb0b12dbcde9c8be43 100644 (file)
@@ -64,6 +64,10 @@ extern mi_cmd_argv_ftype mi_cmd_data_list_changed_registers;
 extern mi_cmd_argv_ftype mi_cmd_data_read_memory;
 extern mi_cmd_argv_ftype mi_cmd_data_write_memory;
 extern mi_cmd_argv_ftype mi_cmd_data_write_register_values;
+extern mi_cmd_argv_ftype mi_cmd_env_cd;
+extern mi_cmd_argv_ftype mi_cmd_env_dir;
+extern mi_cmd_argv_ftype mi_cmd_env_path;
+extern mi_cmd_argv_ftype mi_cmd_env_pwd;
 extern mi_cmd_args_ftype mi_cmd_exec_continue;
 extern mi_cmd_args_ftype mi_cmd_exec_finish;
 extern mi_cmd_args_ftype mi_cmd_exec_next;
index 8af91cc0bbada8cec8c659b937215113650cd22a..536e8a5b0540c8f43bdbd393b559803d3d71e8fc 100644 (file)
@@ -183,8 +183,8 @@ mi_cmd_exec_return (char *args, int from_tty)
 
   /* Because we have called return_command with from_tty = 0, we need
      to print the frame here. */
-  show_and_print_stack_frame (selected_frame,
-                             frame_relative_level (selected_frame),
+  show_and_print_stack_frame (deprecated_selected_frame,
+                             frame_relative_level (deprecated_selected_frame),
                              LOC_AND_ADDRESS);
 
   return MI_CMD_DONE;
@@ -397,7 +397,7 @@ register_changed_p (int regnum)
 {
   char *raw_buffer = alloca (MAX_REGISTER_RAW_SIZE);
 
-  if (! frame_register_read (selected_frame, regnum, raw_buffer))
+  if (! frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
     return -1;
 
   if (memcmp (&old_regs[REGISTER_BYTE (regnum)], raw_buffer,
@@ -518,7 +518,8 @@ get_register (int regnum, int format)
   if (format == 'N')
     format = 0;
 
-  get_saved_register (raw_buffer, &optim, (CORE_ADDR *) NULL, selected_frame,
+  get_saved_register (raw_buffer, &optim, (CORE_ADDR *) NULL,
+                     deprecated_selected_frame,
                      regnum, (enum lval_type *) NULL);
   if (optim)
     {
index 73183ca9e3bc3c5dd3a18a3e2d0784b346bc6a27..d5ff31efb2d85fe353fe4b1669305cfd06c69786 100644 (file)
@@ -90,6 +90,6 @@ _initialize_mips_irix_tdep (void)
                                  bfd_target_elf_flavour,
                                  mips_irix_elf_osabi_sniffer);
 
-  gdbarch_register_osabi (bfd_arch_mips, GDB_OSABI_IRIX,
+  gdbarch_register_osabi (bfd_arch_mips, 0, GDB_OSABI_IRIX,
                          mips_irix_init_abi);
 }
index 9ad457b03520673c573d45e431ca824ab45ce5c5..e5aecfffdace0094b15f69008c729a42cea14a83 100644 (file)
@@ -23,6 +23,8 @@
 #include "gdbcore.h"
 #include "target.h"
 #include "solib-svr4.h"
+#include "osabi.h"
+#include "gdb_string.h"
 
 /* Copied from <asm/elf.h>.  */
 #define ELF_NGREG       45
@@ -60,7 +62,10 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
    which we extract the pc (MIPS_LINUX_JB_PC) that we will land at.  The pc
    is copied into PC.  This routine returns 1 on success.  */
 
-int
+#define MIPS_LINUX_JB_ELEMENT_SIZE 4
+#define MIPS_LINUX_JB_PC 0
+
+static int
 mips_linux_get_longjmp_target (CORE_ADDR *pc)
 {
   CORE_ADDR jb_addr;
@@ -309,7 +314,7 @@ static struct core_fns regset_core_fns =
    This makes it possible to access GNU/Linux MIPS shared libraries from a
    GDB that was built on a different host platform (for cross debugging).  */
 
-struct link_map_offsets *
+static struct link_map_offsets *
 mips_linux_svr4_fetch_link_map_offsets (void)
 { 
   static struct link_map_offsets lmo;
@@ -342,8 +347,18 @@ mips_linux_svr4_fetch_link_map_offsets (void)
   return lmp;
 }
 
+static void
+mips_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+  set_gdbarch_get_longjmp_target (gdbarch, mips_linux_get_longjmp_target);
+  set_solib_svr4_fetch_link_map_offsets
+    (gdbarch, mips_linux_svr4_fetch_link_map_offsets);
+}
+
 void
 _initialize_mips_linux_tdep (void)
 {
+  gdbarch_register_osabi (bfd_arch_mips, 0, GDB_OSABI_LINUX,
+                         mips_linux_init_abi);
   add_core_fns (&regset_core_fns);
 }
index 16c206efef211a38a736069b04bfd70532bd8f37..ece50b975f46c8bae142eeeddadc4893eac4b097 100644 (file)
@@ -40,6 +40,7 @@
 #include "arch-utils.h"
 #include "regcache.h"
 #include "osabi.h"
+#include "mips-tdep.h"
 
 #include "opcode/mips.h"
 #include "elf/mips.h"
@@ -58,19 +59,6 @@ enum
   MIPS_FPU_DOUBLE_REGSIZE = 8
 };
 
-/* All the possible MIPS ABIs. */
-
-enum mips_abi
-  {
-    MIPS_ABI_UNKNOWN = 0,
-    MIPS_ABI_N32,
-    MIPS_ABI_O32,
-    MIPS_ABI_N64,
-    MIPS_ABI_O64,
-    MIPS_ABI_EABI32,
-    MIPS_ABI_EABI64,
-    MIPS_ABI_LAST
-  };
 
 static const char *mips_abi_string;
 
@@ -163,6 +151,13 @@ static const char *mips_saved_regsize_string = size_auto;
 
 #define MIPS_SAVED_REGSIZE (mips_saved_regsize())
 
+/* Return the MIPS ABI associated with GDBARCH.  */
+enum mips_abi
+mips_abi (struct gdbarch *gdbarch)
+{
+  return gdbarch_tdep (gdbarch)->mips_abi;
+}
+
 static unsigned int
 mips_saved_regsize (void)
 {
@@ -1424,7 +1419,7 @@ mips_find_saved_regs (struct frame_info *fci)
 /* FIXME!  Is this correct?? */
 #define SIGFRAME_REG_SIZE      MIPS_REGSIZE
 #endif
-  if (fci->signal_handler_caller)
+  if ((get_frame_type (fci) == SIGTRAMP_FRAME))
     {
       for (ireg = 0; ireg < MIPS_NUMREGS; ireg++)
        {
@@ -1457,7 +1452,7 @@ mips_find_saved_regs (struct frame_info *fci)
                                   a signal, we assume that all registers have been saved.
                                   This assumes that all register saves in a function happen before
                                   the first function call.  */
-       (fci->next == NULL || fci->next->signal_handler_caller)
+       (fci->next == NULL || (get_frame_type (fci->next) == SIGTRAMP_FRAME))
 
   /* In a dummy frame we know exactly where things are saved.  */
        && !PROC_DESC_IS_DUMMY (proc_desc)
@@ -1683,7 +1678,7 @@ mips_software_single_step (enum target_signal sig, int insert_breakpoints_p)
     target_remove_breakpoint (next_pc, break_mem);
 }
 
-static void
+static CORE_ADDR
 mips_init_frame_pc_first (int fromleaf, struct frame_info *prev)
 {
   CORE_ADDR pc, tmp;
@@ -1691,7 +1686,7 @@ mips_init_frame_pc_first (int fromleaf, struct frame_info *prev)
   pc = ((fromleaf) ? SAVED_PC_AFTER_CALL (prev->next) :
        prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ());
   tmp = SKIP_TRAMPOLINE_CODE (pc);
-  prev->pc = tmp ? tmp : pc;
+  return tmp ? tmp : pc;
 }
 
 
@@ -1702,11 +1697,10 @@ mips_frame_saved_pc (struct frame_info *frame)
   mips_extra_func_info_t proc_desc = frame->extra_info->proc_desc;
   /* We have to get the saved pc from the sigcontext
      if it is a signal handler frame.  */
-  int pcreg = frame->signal_handler_caller ? PC_REGNUM
+  int pcreg = (get_frame_type (frame) == SIGTRAMP_FRAME) ? PC_REGNUM
   : (proc_desc ? PROC_PC_REG (proc_desc) : RA_REGNUM);
 
-  if (USE_GENERIC_DUMMY_FRAMES
-      && PC_IN_CALL_DUMMY (frame->pc, 0, 0))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, 0, 0))
     {
       LONGEST tmp;
       frame_unwind_signed_register (frame, PC_REGNUM, &tmp);
@@ -1721,7 +1715,13 @@ mips_frame_saved_pc (struct frame_info *frame)
 }
 
 static struct mips_extra_func_info temp_proc_desc;
-static CORE_ADDR temp_saved_regs[NUM_REGS];
+
+/* This hack will go away once the get_prev_frame() code has been
+   modified to set the frame's type first.  That is BEFORE init extra
+   frame info et.al.  is called.  This is because it will become
+   possible to skip the init extra info call for sigtramp and dummy
+   frames.  */
+static CORE_ADDR *temp_saved_regs;
 
 /* Set a register's saved stack address in temp_saved_regs.  If an address
    has already been set for this register, do nothing; this way we will
@@ -2033,6 +2033,7 @@ mips32_heuristic_proc_desc (CORE_ADDR start_pc, CORE_ADDR limit_pc,
   CORE_ADDR cur_pc;
   CORE_ADDR frame_addr = 0;    /* Value of $r30. Used by gcc for frame-pointer */
 restart:
+  temp_saved_regs = xrealloc (temp_saved_regs, SIZEOF_FRAME_SAVED_REGS);
   memset (temp_saved_regs, '\0', SIZEOF_FRAME_SAVED_REGS);
   PROC_FRAME_OFFSET (&temp_proc_desc) = 0;
   PROC_FRAME_ADJUST (&temp_proc_desc) = 0;     /* offset of FP from SP */
@@ -2141,7 +2142,8 @@ heuristic_proc_desc (CORE_ADDR start_pc, CORE_ADDR limit_pc,
   if (start_pc == 0)
     return NULL;
   memset (&temp_proc_desc, '\0', sizeof (temp_proc_desc));
-  memset (&temp_saved_regs, '\0', SIZEOF_FRAME_SAVED_REGS);
+  temp_saved_regs = xrealloc (temp_saved_regs, SIZEOF_FRAME_SAVED_REGS);
+  memset (temp_saved_regs, '\0', SIZEOF_FRAME_SAVED_REGS);
   PROC_LOW_ADDR (&temp_proc_desc) = start_pc;
   PROC_FRAME_REG (&temp_proc_desc) = SP_REGNUM;
   PROC_PC_REG (&temp_proc_desc) = RA_REGNUM;
@@ -2189,7 +2191,7 @@ non_heuristic_proc_desc (CORE_ADDR pc, CORE_ADDR *addrptr)
   struct obj_section *sec;
   struct mips_objfile_private *priv;
 
-  if (PC_IN_CALL_DUMMY (pc, 0, 0))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (pc, 0, 0))
     return NULL;
 
   find_pc_partial_function (pc, NULL, &startaddr, NULL);
@@ -2429,8 +2431,7 @@ mips_frame_chain (struct frame_info *frame)
   if ((tmp = SKIP_TRAMPOLINE_CODE (saved_pc)) != 0)
     saved_pc = tmp;
 
-  if (USE_GENERIC_DUMMY_FRAMES
-      && PC_IN_CALL_DUMMY (saved_pc, 0, 0))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (saved_pc, 0, 0))
     {
       /* A dummy frame, uses SP not FP.  Get the old SP value.  If all
          is well, frame->frame the bottom of the current frame will
@@ -2452,11 +2453,10 @@ mips_frame_chain (struct frame_info *frame)
       && PROC_FRAME_OFFSET (proc_desc) == 0
       /* The previous frame from a sigtramp frame might be frameless
         and have frame size zero.  */
-      && !frame->signal_handler_caller
+      && !(get_frame_type (frame) == SIGTRAMP_FRAME)
       /* For a generic dummy frame, let get_frame_pointer() unwind a
          register value saved as part of the dummy frame call.  */
-      && !(USE_GENERIC_DUMMY_FRAMES
-          && PC_IN_CALL_DUMMY (frame->pc, 0, 0)))
+      && !(DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, 0, 0)))
     return 0;
   else
     return get_frame_pointer (frame, proc_desc);
@@ -2486,8 +2486,7 @@ mips_init_extra_frame_info (int fromleaf, struct frame_info *fci)
       if (fci->pc == PROC_LOW_ADDR (proc_desc)
          && !PROC_DESC_IS_DUMMY (proc_desc))
        fci->frame = read_next_frame_reg (fci->next, SP_REGNUM);
-      else if (USE_GENERIC_DUMMY_FRAMES
-              && PC_IN_CALL_DUMMY (fci->pc, 0, 0))
+      else if (DEPRECATED_PC_IN_CALL_DUMMY (fci->pc, 0, 0))
        /* Do not ``fix'' fci->frame.  It will have the value of the
            generic dummy frame's top-of-stack (since the draft
            fci->frame is obtained by returning the unwound stack
@@ -2503,8 +2502,12 @@ mips_init_extra_frame_info (int fromleaf, struct frame_info *fci)
          char *name;
 
          /* Do not set the saved registers for a sigtramp frame,
-            mips_find_saved_registers will do that for us.
-            We can't use fci->signal_handler_caller, it is not yet set.  */
+            mips_find_saved_registers will do that for us.  We can't
+            use (get_frame_type (fci) == SIGTRAMP_FRAME), it is not
+            yet set.  */
+         /* FIXME: cagney/2002-11-18: This problem will go away once
+             frame.c:get_prev_frame() is modified to set the frame's
+             type before calling functions like this.  */
          find_pc_partial_function (fci->pc, &name,
                                    (CORE_ADDR *) NULL, (CORE_ADDR *) NULL);
          if (!PC_IN_SIGTRAMP (fci->pc, name))
@@ -3810,11 +3813,10 @@ mips_pop_frame (void)
 {
   register int regnum;
   struct frame_info *frame = get_current_frame ();
-  CORE_ADDR new_sp = FRAME_FP (frame);
+  CORE_ADDR new_sp = get_frame_base (frame);
   mips_extra_func_info_t proc_desc = frame->extra_info->proc_desc;
 
-  if (USE_GENERIC_DUMMY_FRAMES
-      && PC_IN_CALL_DUMMY (frame->pc, 0, 0))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, 0, 0))
     {
       generic_pop_dummy_frame ();
       flush_cached_frames ();
@@ -3943,7 +3945,7 @@ mips_read_fp_register_single (int regno, char *rare_buffer)
   int raw_size = REGISTER_RAW_SIZE (regno);
   char *raw_buffer = alloca (raw_size);
 
-  if (!frame_register_read (selected_frame, regno, raw_buffer))
+  if (!frame_register_read (deprecated_selected_frame, regno, raw_buffer))
     error ("can't read register %d (%s)", regno, REGISTER_NAME (regno));
   if (raw_size == 8)
     {
@@ -3977,7 +3979,7 @@ mips_read_fp_register_double (int regno, char *rare_buffer)
     {
       /* We have a 64-bit value for this register, and we should use
         all 64 bits.  */
-      if (!frame_register_read (selected_frame, regno, rare_buffer))
+      if (!frame_register_read (deprecated_selected_frame, regno, rare_buffer))
        error ("can't read register %d (%s)", regno, REGISTER_NAME (regno));
     }
   else
@@ -4008,7 +4010,7 @@ mips_print_register (int regnum, int all)
   char *raw_buffer = alloca (MAX_REGISTER_RAW_SIZE);
 
   /* Get the data in raw format.  */
-  if (!frame_register_read (selected_frame, regnum, raw_buffer))
+  if (!frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
     {
       printf_filtered ("%s: [Invalid]", REGISTER_NAME (regnum));
       return;
@@ -4188,7 +4190,7 @@ do_gp_register_row (int regnum)
       if (TYPE_CODE (REGISTER_VIRTUAL_TYPE (regnum)) == TYPE_CODE_FLT)
        break;                  /* end row: reached FP register */
       /* OK: get the data in raw format.  */
-      if (!frame_register_read (selected_frame, regnum, raw_buffer))
+      if (!frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
        error ("can't read register %d (%s)", regnum, REGISTER_NAME (regnum));
       /* pad small registers */
       for (byte = 0; byte < (MIPS_REGSIZE - REGISTER_VIRTUAL_SIZE (regnum)); byte++)
@@ -5764,6 +5766,11 @@ mips_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_elf_make_msymbol_special (gdbarch, 
                                        mips_elf_make_msymbol_special);
 
+  if (osabi == GDB_OSABI_IRIX)
+    set_gdbarch_num_regs (gdbarch, 71);
+  else
+    set_gdbarch_num_regs (gdbarch, 90);
+
   switch (mips_abi)
     {
     case MIPS_ABI_O32:
@@ -5971,9 +5978,9 @@ mips_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_addr_bits_remove (gdbarch, mips_addr_bits_remove);
 
   /* There's a mess in stack frame creation.  See comments in
-     blockframe.c near reference to INIT_FRAME_PC_FIRST.  */
-  set_gdbarch_init_frame_pc_first (gdbarch, mips_init_frame_pc_first);
-  set_gdbarch_init_frame_pc (gdbarch, init_frame_pc_noop);
+     blockframe.c near reference to DEPRECATED_INIT_FRAME_PC_FIRST.  */
+  set_gdbarch_deprecated_init_frame_pc_first (gdbarch, mips_init_frame_pc_first);
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop);
 
   /* Map debug register numbers onto internal register numbers.  */
   set_gdbarch_stab_reg_to_regnum (gdbarch, mips_stab_reg_to_regnum);
@@ -5987,38 +5994,20 @@ mips_gdbarch_init (struct gdbarch_info info,
 
   set_gdbarch_call_dummy_p (gdbarch, 1);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
-#if OLD_STYLE_MIPS_DUMMY_FRAMES
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 0);
-#else
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
-#endif
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, mips_call_dummy_address);
   set_gdbarch_push_return_address (gdbarch, mips_push_return_address);
-#if OLD_STYLE_MIPS_DUMMY_FRAMES
-  set_gdbarch_push_dummy_frame (gdbarch, mips_push_dummy_frame);
-#else
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
-#endif
   set_gdbarch_pop_frame (gdbarch, mips_pop_frame);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_length (gdbarch, 0);
   set_gdbarch_fix_call_dummy (gdbarch, mips_fix_call_dummy);
-#if OLD_STYLE_MIPS_DUMMY_FRAMES
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
-#else
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
-#endif
   set_gdbarch_call_dummy_words (gdbarch, mips_call_dummy_words);
   set_gdbarch_sizeof_call_dummy_words (gdbarch, sizeof (mips_call_dummy_words));
   set_gdbarch_push_return_address (gdbarch, mips_push_return_address);
   set_gdbarch_frame_align (gdbarch, mips_frame_align);
-#if OLD_STYLE_MIPS_DUMMY_FRAMES
-#else
   set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
-#endif
   set_gdbarch_register_convertible (gdbarch, mips_register_convertible);
   set_gdbarch_register_convert_to_virtual (gdbarch, 
                                           mips_register_convert_to_virtual);
@@ -6032,8 +6021,6 @@ mips_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_frameless_function_invocation (gdbarch, 
                                             generic_frameless_function_invocation_not);
   set_gdbarch_frame_saved_pc (gdbarch, mips_frame_saved_pc);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
   set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frame_args_skip (gdbarch, 0);
 
@@ -6211,12 +6198,6 @@ mips_dump_tdep (struct gdbarch *current_gdbarch, struct ui_file *file)
   fprintf_unfiltered (file,
                      "mips_dump_tdep: GDB_TARGET_IS_MIPS64 = %d\n",
                      GDB_TARGET_IS_MIPS64);
-  fprintf_unfiltered (file,
-                     "mips_dump_tdep: GDB_TARGET_MASK_DISAS_PC # %s\n",
-                     XSTRING (GDB_TARGET_MASK_DISAS_PC (PC)));
-  fprintf_unfiltered (file,
-                     "mips_dump_tdep: GDB_TARGET_UNMASK_DISAS_PC # %s\n",
-                     XSTRING (GDB_TARGET_UNMASK_DISAS_PC (PC)));
   fprintf_unfiltered (file,
                      "mips_dump_tdep: GEN_REG_SAVE_MASK = %d\n",
                      GEN_REG_SAVE_MASK);
index 73ba3847ba4aa625504eba536f3118cac6ac1879..7776d465ad1cdaad41ae4e90ca941ef8ecc4f0aa 100644 (file)
@@ -359,7 +359,7 @@ mipsnbsd_init_abi (struct gdbarch_info info,
 void
 _initialize_mipsnbsd_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_mips, GDB_OSABI_NETBSD_ELF,
+  gdbarch_register_osabi (bfd_arch_mips, 0, GDB_OSABI_NETBSD_ELF,
                          mipsnbsd_init_abi);
 
   add_core_fns (&mipsnbsd_core_fns);
index a8d7d72ef8ec45b3ce28589f522e08c9777b1f22..fdc0941fee7e2c3dc10c046c6db4d16519bff981 100644 (file)
@@ -685,7 +685,7 @@ mn10200_pop_frame (struct frame_info *frame)
 {
   int regnum;
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     generic_pop_dummy_frame ();
   else
     {
@@ -703,7 +703,7 @@ mn10200_pop_frame (struct frame_info *frame)
          }
 
       /* Actually cut back the stack.  */
-      write_register (SP_REGNUM, FRAME_FP (frame));
+      write_register (SP_REGNUM, get_frame_base (frame));
 
       /* Don't we need to set the PC?!?  XXX FIXME.  */
     }
index ed55da92add2edd4fb6197106e59990e92bb5471..e503d197ad18a414818074e38d71163bd6ad9379 100644 (file)
@@ -738,7 +738,7 @@ mn10300_pop_frame_regular (struct frame_info *frame)
       }
 
   /* Actually cut back the stack.  */
-  write_register (SP_REGNUM, FRAME_FP (frame));
+  write_register (SP_REGNUM, get_frame_base (frame));
 
   /* Don't we need to set the PC?!?  XXX FIXME.  */
 }
@@ -1012,7 +1012,7 @@ mn10300_print_register (const char *name, int regnum, int reg_width)
     printf_filtered ("%s: ", name);
 
   /* Get the data */
-  if (!frame_register_read (selected_frame, regnum, raw_buffer))
+  if (!frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
     {
       printf_filtered ("[invalid]");
       return;
@@ -1162,13 +1162,12 @@ mn10300_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_decr_pc_after_break (gdbarch, 0);
 
   /* Stack unwinding.  */
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
   set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
   set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
   set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
   set_gdbarch_saved_pc_after_call (gdbarch, mn10300_saved_pc_after_call);
   set_gdbarch_init_extra_frame_info (gdbarch, mn10300_init_extra_frame_info);
-  set_gdbarch_init_frame_pc (gdbarch, init_frame_pc_noop);
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop);
   set_gdbarch_frame_init_saved_regs (gdbarch, mn10300_frame_init_saved_regs);
   set_gdbarch_frame_chain (gdbarch, mn10300_frame_chain);
   set_gdbarch_frame_saved_pc (gdbarch, mn10300_frame_saved_pc);
@@ -1180,8 +1179,6 @@ mn10300_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_pop_frame (gdbarch, mn10300_pop_frame);
   set_gdbarch_skip_prologue (gdbarch, mn10300_skip_prologue);
   set_gdbarch_frame_args_skip (gdbarch, 0);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
   set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   /* That's right, we're using the stack pointer as our frame pointer.  */
   set_gdbarch_read_fp (gdbarch, generic_target_read_sp);
@@ -1191,7 +1188,6 @@ mn10300_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_words (gdbarch, mn10300_call_dummy_words);
   set_gdbarch_sizeof_call_dummy_words (gdbarch, 
@@ -1199,8 +1195,7 @@ mn10300_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_call_dummy_length (gdbarch, 0);
   set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
+  set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
   set_gdbarch_push_arguments (gdbarch, mn10300_push_arguments);
   set_gdbarch_reg_struct_has_addr (gdbarch, mn10300_reg_struct_has_addr);
index 5563cf9b0c604699eb1a27ca051bced231de231d..6e51b83216a43b67c8f81f2a2fe9d52d7bb125e7 100644 (file)
@@ -314,11 +314,36 @@ ns32k_frame_chain (struct frame_info *frame)
   return (read_memory_integer (frame->frame, 4));
 }
 
+
+static CORE_ADDR
+ns32k_sigtramp_saved_pc (struct frame_info *frame)
+{
+  CORE_ADDR sigcontext_addr;
+  char *buf;
+  int ptrbytes = TYPE_LENGTH (builtin_type_void_func_ptr);
+  int sigcontext_offs = (2 * TARGET_INT_BIT) / TARGET_CHAR_BIT;
+
+  buf = alloca (ptrbytes);
+  /* Get sigcontext address, it is the third parameter on the stack.  */
+  if (frame->next)
+    sigcontext_addr = read_memory_typed_address
+      (FRAME_ARGS_ADDRESS (frame->next) + FRAME_ARGS_SKIP + sigcontext_offs,
+       builtin_type_void_data_ptr);
+  else
+    sigcontext_addr = read_memory_typed_address
+      (read_register (SP_REGNUM) + sigcontext_offs, builtin_type_void_data_ptr);
+
+  /* Don't cause a memory_error when accessing sigcontext in case the stack
+     layout has changed or the stack is corrupt.  */
+  target_read_memory (sigcontext_addr + SIGCONTEXT_PC_OFFSET, buf, ptrbytes);
+  return extract_typed_address (buf, builtin_type_void_func_ptr);
+}
+
 static CORE_ADDR
 ns32k_frame_saved_pc (struct frame_info *frame)
 {
-  if (frame->signal_handler_caller)
-    return (sigtramp_saved_pc (frame)); /* XXXJRT */
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
+    return (ns32k_sigtramp_saved_pc (frame)); /* XXXJRT */
 
   return (read_memory_integer (frame->frame + 4, 4));
 }
@@ -535,6 +560,10 @@ ns32k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   tdep = xmalloc (sizeof (struct gdbarch_tdep));
   gdbarch = gdbarch_alloc (&info, tdep);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   tdep->osabi = osabi;
 
   /* Register info */
@@ -590,8 +619,8 @@ ns32k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_fix_call_dummy (gdbarch, ns32k_fix_call_dummy);
   set_gdbarch_call_dummy_start_offset (gdbarch, 3);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 0);
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_on_stack);
+  set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0);
+  set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_on_stack);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
 
   /* Breakpoint info */
index d5ec8282453eb14ee7ff801d0d45241d28eb9cd1..ad360c8ee6b1e2bef0c0d3e8fca22cb6566132d5 100644 (file)
@@ -66,6 +66,6 @@ _initialize_ns32knbsd_tdep (void)
   gdbarch_register_osabi_sniffer (bfd_arch_ns32k, bfd_target_aout_flavour,
                                  ns32knbsd_aout_osabi_sniffer);
 
-  gdbarch_register_osabi (bfd_arch_ns32k, GDB_OSABI_NETBSD_AOUT,
+  gdbarch_register_osabi (bfd_arch_ns32k, 0, GDB_OSABI_NETBSD_AOUT,
                          ns32knbsd_init_abi_aout);
 }
index 334e6befbb47c6532e13baf16a59c2a3e17f927c..42ee124ef2ac65cab9da9484dee9007aaa8bf70d 100644 (file)
@@ -342,9 +342,9 @@ exp :       '[' TYPENAME
                          start_msglist();
                        }
                msglist ']'
-                       { write_exp_elt_opcode (OP_MSGCALL);
+                       { write_exp_elt_opcode (OP_OBJC_MSGCALL);
                          end_msglist();
-                         write_exp_elt_opcode (OP_MSGCALL); 
+                         write_exp_elt_opcode (OP_OBJC_MSGCALL); 
                        }
        ;
 
@@ -357,18 +357,18 @@ exp       :       '[' CLASSNAME
                          start_msglist();
                        }
                msglist ']'
-                       { write_exp_elt_opcode (OP_MSGCALL);
+                       { write_exp_elt_opcode (OP_OBJC_MSGCALL);
                          end_msglist();
-                         write_exp_elt_opcode (OP_MSGCALL); 
+                         write_exp_elt_opcode (OP_OBJC_MSGCALL); 
                        }
        ;
 
 exp    :       '[' exp
                        { start_msglist(); }
                msglist ']'
-                       { write_exp_elt_opcode (OP_MSGCALL);
+                       { write_exp_elt_opcode (OP_OBJC_MSGCALL);
                          end_msglist();
-                         write_exp_elt_opcode (OP_MSGCALL); 
+                         write_exp_elt_opcode (OP_OBJC_MSGCALL); 
                        }
        ;
 
@@ -566,9 +566,9 @@ exp :       VARIABLE
 
 exp    :       SELECTOR 
                        {
-                         write_exp_elt_opcode (OP_SELECTOR);
+                         write_exp_elt_opcode (OP_OBJC_SELECTOR);
                          write_exp_string ($1);
-                         write_exp_elt_opcode (OP_SELECTOR); }
+                         write_exp_elt_opcode (OP_OBJC_SELECTOR); }
 
 exp    :       SIZEOF '(' type ')'     %prec UNARY
                        { write_exp_elt_opcode (OP_LONG);
@@ -606,9 +606,9 @@ exp :       STRING
 exp     :      NSSTRING        /* ObjC NextStep NSString constant
                                 * of the form '@' '"' string '"'.
                                 */
-                       { write_exp_elt_opcode (OP_NSSTRING);
+                       { write_exp_elt_opcode (OP_OBJC_NSSTRING);
                          write_exp_string ($1);
-                         write_exp_elt_opcode (OP_NSSTRING); }
+                         write_exp_elt_opcode (OP_OBJC_NSSTRING); }
        ;
 
 block  :       BLOCKNAME
@@ -759,8 +759,8 @@ variable:   name_not_typename
                              if (innermost_block == 0 || 
                                  contained_in (block_found, innermost_block))
                                innermost_block = block_found;
-                             write_exp_elt_opcode (OP_SELF);
-                             write_exp_elt_opcode (OP_SELF);
+                             write_exp_elt_opcode (OP_OBJC_SELF);
+                             write_exp_elt_opcode (OP_OBJC_SELF);
                              write_exp_elt_opcode (STRUCTOP_PTR);
                              write_exp_string ($1.stoken);
                              write_exp_elt_opcode (STRUCTOP_PTR);
@@ -1308,9 +1308,7 @@ yylex ()
       c = *lexptr++;
       if (c != '\'')
        {
-         namelen = skip_quoted (tokstart, 
-                                get_gdb_completer_word_break_characters())
-           - tokstart;
+         namelen = skip_quoted (tokstart) - tokstart;
          if (namelen > 2)
            {
              lexptr = tokstart + namelen;
index 924c79c63d5a6deb4352561057eae1816803291f..f6890b03bd31a667b68e6ec37d18e5e0e06ef3d1 100644 (file)
@@ -75,15 +75,6 @@ struct objc_method {
 
 /* Complaints about ObjC classes, selectors, etc.  */
 
-static struct deprecated_complaint noclass_lookup_complaint = {
-  "no way to lookup Objective-C classes", 0, 0
-};
-
-static struct deprecated_complaint nosel_lookup_complaint = {
-  "no way to lookup Objective-C selectors", 0, 0
-};
-
-
 #if (!defined __GNUC__ || __GNUC__ < 2 || __GNUC_MINOR__ < (defined __cplusplus ? 6 : 4))
 #define __CHECK_FUNCTION ((__const char *) 0)
 #else
@@ -161,7 +152,8 @@ lookup_objc_class (char *classname)
     function = find_function_in_inferior("objc_lookup_class");
   else
     {
-      complain (&noclass_lookup_complaint, 0);
+      complaint (&symfile_complaints, "no way to lookup Objective-C classes",
+                0);
       return 0;
     }
 
@@ -188,7 +180,8 @@ lookup_child_selector (char *selname)
     function = find_function_in_inferior("sel_get_any_uid");
   else
     {
-      complain (&nosel_lookup_complaint, 0);
+      complaint (&symfile_complaints, "no way to lookup Objective-C selectors",
+                0);
       return 0;
     }
 
@@ -371,7 +364,7 @@ objc_printchar (int c, struct ui_file *stream)
 
 static void
 objc_printstr (struct ui_file *stream, char *string, 
-              unsigned int length, int force_ellipses)
+              unsigned int length, int width, int force_ellipses)
 {
   register unsigned int i;
   unsigned int things_printed = 0;
@@ -797,14 +790,14 @@ int specialcmp(char *a, char *b)
 }
 
 /*
- * Function: compare_selectors (void *, void *)
+ * Function: compare_selectors (const void *, const void *)
  *
  * Comparison function for use with qsort.  Arguments are symbols or
  * msymbols Compares selector part of objc method name alphabetically.
  */
 
 static int
-compare_selectors (void *a, void *b)
+compare_selectors (const void *a, const void *b)
 {
   char *aname, *bname;
 
@@ -955,14 +948,14 @@ selectors_info (char *regexp, int from_tty)
 }
 
 /*
- * Function: compare_classes (void *, void *)
+ * Function: compare_classes (const void *, const void *)
  *
  * Comparison function for use with qsort.  Arguments are symbols or
  * msymbols Compares class part of objc method name alphabetically. 
  */
 
 static int
-compare_classes (void *a, void *b)
+compare_classes (const void *a, const void *b)
 {
   char *aname, *bname;
 
@@ -1364,7 +1357,7 @@ find_methods (struct symtab *symtab, char type,
       sym = find_pc_function (SYMBOL_VALUE_ADDRESS (msymbol));
       if (sym != NULL)
         {
-          const char    *newsymname = SYMBOL_DEMANGLED_NAME (sym);
+          const char *newsymname = SYMBOL_DEMANGLED_NAME (sym);
          
           if (newsymname == NULL)
             newsymname = SYMBOL_NAME (sym);
@@ -1460,7 +1453,7 @@ char *find_imps (struct symtab *symtab, struct block *block,
     if (msym != NULL) 
       {
        if (syms)
-         syms[csym] = msym;
+         syms[csym] = (struct symbol *)msym;
        csym++;
       }
   }
@@ -1537,7 +1530,7 @@ void
 print_object_command (char *args, int from_tty)
 {
   struct value *object, *function, *description;
-  CORE_ADDR string_addr;
+  CORE_ADDR string_addr, object_addr;
   int i = 0;
   char c = -1;
 
@@ -1551,18 +1544,17 @@ print_object_command (char *args, int from_tty)
       make_cleanup (free_current_contents, &expr);
     int pc = 0;
 
-#if 1
     object = expr->language_defn->evaluate_exp (builtin_type_void_data_ptr,
                                                expr, &pc, EVAL_NORMAL);
-#else
-    object = evaluate_subexp (builtin_type_void_data_ptr, 
-                             expr, &pc, EVAL_NORMAL);
-#endif
     do_cleanups (old_chain);
   }
 
+  /* Validate the address for sanity.  */
+  object_addr = value_as_long (object);
+  read_memory (object_addr, &c, 1);
+
   function = find_function_in_inferior ("_NSPrintForDebugger");
-  if (!function)
+  if (function == NULL)
     error ("Unable to locate _NSPrintForDebugger in child process");
 
   description = call_function_by_hand (function, 1, &object);
@@ -1592,7 +1584,7 @@ print_object_command (char *args, int from_tty)
 struct objc_methcall {
   char *name;
  /* Return instance method to be called.  */
-  CORE_ADDR (*stop_at) (CORE_ADDR);
+  int (*stop_at) (CORE_ADDR, CORE_ADDR *);
   /* Start of pc range corresponding to method invocation.  */
   CORE_ADDR begin;
   /* End of pc range corresponding to method invocation.  */
@@ -1664,7 +1656,7 @@ find_objc_msgsend (void)
  */
 
 struct objc_submethod_helper_data {
-  CORE_ADDR (*f) (CORE_ADDR, CORE_ADDR *);
+  int (*f) (CORE_ADDR, CORE_ADDR *);
   CORE_ADDR pc;
   CORE_ADDR *new_pc;
 };
@@ -1682,7 +1674,7 @@ find_objc_msgcall_submethod_helper (void * arg)
 }
 
 int 
-find_objc_msgcall_submethod (CORE_ADDR (*f) (CORE_ADDR, CORE_ADDR *),
+find_objc_msgcall_submethod (int (*f) (CORE_ADDR, CORE_ADDR *),
                             CORE_ADDR pc, 
                             CORE_ADDR *new_pc)
 {
@@ -1731,7 +1723,7 @@ _initialize_objc_language (void)
   add_info ("classes", classes_info,       /* INFO CLASSES   command.  */
            "All Objective-C classes, or those matching REGEXP.");
   add_com ("print-object", class_vars, print_object_command, 
-          "Ask an Objective-C object to print itself.\n");
+          "Ask an Objective-C object to print itself.");
   add_com_alias ("po", "print-object", class_vars, 1);
 }
 
index 9fd93e7a5fcddc9aa2b0c72810a575fd1fc3e329..58f1884c6026842724955d0725c4195560b438ed 100644 (file)
@@ -35,21 +35,23 @@ extern int c_value_print (struct value *, struct ui_file *,
 extern CORE_ADDR lookup_objc_class     (char *classname);
 extern int       lookup_child_selector (char *methodname);
 
-char *objc_demangle (const char *mangled);
+extern char *objc_demangle (const char *mangled);
 
-int find_objc_msgcall (CORE_ADDR pc, CORE_ADDR *new_pc);
+extern int find_objc_msgcall (CORE_ADDR pc, CORE_ADDR *new_pc);
 
-char *parse_selector (char *method, char **selector);
+extern char *parse_selector (char *method, char **selector);
 
-char *parse_method (char *method, char *type, 
-                   char **class, char **category, 
-                   char **selector);
+extern char *parse_method (char *method, char *type, 
+                          char **class, char **category, 
+                          char **selector);
 
-void find_methods (struct symtab *symtab, char type, 
-                  const char *class, const char *category, 
-                  const char *selector, struct symbol **syms, 
-                  unsigned int *nsym, unsigned int *ndebug);
+extern void find_methods (struct symtab *symtab, char type, 
+                         const char *class, const char *category, 
+                         const char *selector, struct symbol **syms, 
+                         unsigned int *nsym, unsigned int *ndebug);
 
-char *find_imps (struct symtab *symtab, struct block *block,
-                char *method, struct symbol **syms, 
-                unsigned int *nsym, unsigned int *ndebug);
+extern char *find_imps (struct symtab *symtab, struct block *block,
+                       char *method, struct symbol **syms, 
+                       unsigned int *nsym, unsigned int *ndebug);
+
+extern struct value *value_nsstring (char *ptr, int len);
index 9dd90e9c9925e39ec9366f17fc027e5bf3be5628..e735fe01a45d86e2537c20d3fca624108f68e887 100644 (file)
--- a/gdb/ocd.c
+++ b/gdb/ocd.c
@@ -254,9 +254,7 @@ ocd_start_remote (PTR dummy)
   flush_cached_frames ();
   registers_changed ();
   stop_pc = read_pc ();
-  set_current_frame (create_new_frame (read_fp (), stop_pc));
-  select_frame (get_current_frame ());
-  print_stack_frame (selected_frame, -1, 1);
+  print_stack_frame (get_selected_frame (), -1, 1);
 
   buf[0] = OCD_LOG_FILE;
   buf[1] = 3;                  /* close existing WIGGLERS.LOG */
diff --git a/gdb/os9kread.c b/gdb/os9kread.c
deleted file mode 100644 (file)
index 767d684..0000000
+++ /dev/null
@@ -1,1621 +0,0 @@
-// OBSOLETE /* Read os9/os9k symbol tables and convert to internal format, for GDB.
-// OBSOLETE    Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
-// OBSOLETE    1996, 1997, 1998, 1999, 2000, 2001
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* This module provides three functions: os9k_symfile_init,
-// OBSOLETE    which initializes to read a symbol file; os9k_new_init, which 
-// OBSOLETE    discards existing cached information when all symbols are being
-// OBSOLETE    discarded; and os9k_symfile_read, which reads a symbol table
-// OBSOLETE    from a file.
-// OBSOLETE 
-// OBSOLETE    os9k_symfile_read only does the minimum work necessary for letting the
-// OBSOLETE    user "name" things symbolically; it does not read the entire symtab.
-// OBSOLETE    Instead, it reads the external and static symbols and puts them in partial
-// OBSOLETE    symbol tables.  When more extensive information is requested of a
-// OBSOLETE    file, the corresponding partial symbol table is mutated into a full
-// OBSOLETE    fledged symbol table by going back and reading the symbols
-// OBSOLETE    for real.  os9k_psymtab_to_symtab() is the function that does this */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE #include "gdb_assert.h"
-// OBSOLETE #include <stdio.h>
-// OBSOLETE 
-// OBSOLETE #if defined(USG) || defined(__CYGNUSCLIB__)
-// OBSOLETE #include <sys/types.h>
-// OBSOLETE #include <fcntl.h>
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE #include "obstack.h"
-// OBSOLETE #include "gdb_stat.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "breakpoint.h"
-// OBSOLETE #include "command.h"
-// OBSOLETE #include "target.h"
-// OBSOLETE #include "gdbcore.h"               /* for bfd stuff */
-// OBSOLETE #include "libaout.h"               /* FIXME Secret internal BFD stuff for a.out */
-// OBSOLETE #include "symfile.h"
-// OBSOLETE #include "objfiles.h"
-// OBSOLETE #include "buildsym.h"
-// OBSOLETE #include "gdb-stabs.h"
-// OBSOLETE #include "demangle.h"
-// OBSOLETE #include "language.h"              /* Needed inside partial-stab.h */
-// OBSOLETE #include "complaints.h"
-// OBSOLETE #include "os9k.h"
-// OBSOLETE #include "stabsread.h"
-// OBSOLETE 
-// OBSOLETE extern void _initialize_os9kread (void);
-// OBSOLETE 
-// OBSOLETE /* Each partial symbol table entry contains a pointer to private data for the
-// OBSOLETE    read_symtab() function to use when expanding a partial symbol table entry
-// OBSOLETE    to a full symbol table entry.
-// OBSOLETE 
-// OBSOLETE    For dbxread this structure contains the offset within the file symbol table
-// OBSOLETE    of first local symbol for this file, and count of the section
-// OBSOLETE    of the symbol table devoted to this file's symbols (actually, the section
-// OBSOLETE    bracketed may contain more than just this file's symbols).  It also contains
-// OBSOLETE    further information needed to locate the symbols if they are in an ELF file.
-// OBSOLETE 
-// OBSOLETE    If ldsymcnt is 0, the only reason for this thing's existence is the
-// OBSOLETE    dependency list.  Nothing else will happen when it is read in.  */
-// OBSOLETE 
-// OBSOLETE #define LDSYMOFF(p) (((struct symloc *)((p)->read_symtab_private))->ldsymoff)
-// OBSOLETE #define LDSYMCNT(p) (((struct symloc *)((p)->read_symtab_private))->ldsymnum)
-// OBSOLETE 
-// OBSOLETE struct symloc
-// OBSOLETE   {
-// OBSOLETE     int ldsymoff;
-// OBSOLETE     int ldsymnum;
-// OBSOLETE   };
-// OBSOLETE 
-// OBSOLETE /* Remember what we deduced to be the source language of this psymtab. */
-// OBSOLETE static enum language psymtab_language = language_unknown;
-// OBSOLETE 
-// OBSOLETE /* keep partial symbol table file nested depth */
-// OBSOLETE static int psymfile_depth = 0;
-// OBSOLETE 
-// OBSOLETE /* keep symbol table file nested depth */
-// OBSOLETE static int symfile_depth = 0;
-// OBSOLETE 
-// OBSOLETE extern int previous_stab_code;
-// OBSOLETE 
-// OBSOLETE /* Name of last function encountered.  Used in Solaris to approximate
-// OBSOLETE    object file boundaries.  */
-// OBSOLETE static char *last_function_name;
-// OBSOLETE 
-// OBSOLETE /* Complaints about the symbols we have encountered.  */
-// OBSOLETE extern struct complaint lbrac_complaint;
-// OBSOLETE 
-// OBSOLETE extern struct complaint unknown_symtype_complaint;
-// OBSOLETE 
-// OBSOLETE extern struct complaint unknown_symchar_complaint;
-// OBSOLETE 
-// OBSOLETE extern struct complaint lbrac_rbrac_complaint;
-// OBSOLETE 
-// OBSOLETE extern struct complaint repeated_header_complaint;
-// OBSOLETE 
-// OBSOLETE extern struct complaint repeated_header_name_complaint;
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE static struct complaint lbrac_unmatched_complaint =
-// OBSOLETE {"unmatched Increment Block Entry before symtab pos %d", 0, 0};
-// OBSOLETE 
-// OBSOLETE static struct complaint lbrac_mismatch_complaint =
-// OBSOLETE {"IBE/IDE symbol mismatch at symtab pos %d", 0, 0};
-// OBSOLETE #endif
-// OBSOLETE \f
-// OBSOLETE /* Local function prototypes */
-// OBSOLETE 
-// OBSOLETE static void read_minimal_symbols (struct objfile *);
-// OBSOLETE 
-// OBSOLETE static void os9k_read_ofile_symtab (struct partial_symtab *);
-// OBSOLETE 
-// OBSOLETE static void os9k_psymtab_to_symtab (struct partial_symtab *);
-// OBSOLETE 
-// OBSOLETE static void os9k_psymtab_to_symtab_1 (struct partial_symtab *);
-// OBSOLETE 
-// OBSOLETE static void read_os9k_psymtab (struct objfile *, CORE_ADDR, int);
-// OBSOLETE 
-// OBSOLETE static int fill_sym (FILE *, bfd *);
-// OBSOLETE 
-// OBSOLETE static void os9k_symfile_init (struct objfile *);
-// OBSOLETE 
-// OBSOLETE static void os9k_new_init (struct objfile *);
-// OBSOLETE 
-// OBSOLETE static void os9k_symfile_read (struct objfile *, int);
-// OBSOLETE 
-// OBSOLETE static void os9k_symfile_finish (struct objfile *);
-// OBSOLETE 
-// OBSOLETE static void os9k_process_one_symbol (int, int, CORE_ADDR, char *,
-// OBSOLETE                                 struct section_offsets *,
-// OBSOLETE                                 struct objfile *);
-// OBSOLETE 
-// OBSOLETE static struct partial_symtab *os9k_start_psymtab (struct objfile *, char *,
-// OBSOLETE                                              CORE_ADDR, int, int,
-// OBSOLETE                                              struct partial_symbol **,
-// OBSOLETE                                              struct partial_symbol **);
-// OBSOLETE 
-// OBSOLETE static struct partial_symtab *os9k_end_psymtab (struct partial_symtab *,
-// OBSOLETE                                            char **, int, int, CORE_ADDR,
-// OBSOLETE                                            struct partial_symtab **,
-// OBSOLETE                                            int);
-// OBSOLETE 
-// OBSOLETE static void record_minimal_symbol (char *, CORE_ADDR, int, struct objfile *);
-// OBSOLETE \f
-// OBSOLETE #define HANDLE_RBRAC(val) \
-// OBSOLETE   if ((val) > pst->texthigh) pst->texthigh = (val);
-// OBSOLETE 
-// OBSOLETE #define SWAP_STBHDR(hdrp, abfd) \
-// OBSOLETE   { \
-// OBSOLETE     (hdrp)->fmtno = bfd_get_16(abfd, (unsigned char *)&(hdrp)->fmtno); \
-// OBSOLETE     (hdrp)->crc = bfd_get_32(abfd, (unsigned char *)&(hdrp)->crc); \
-// OBSOLETE     (hdrp)->offset = bfd_get_32(abfd, (unsigned char *)&(hdrp)->offset); \
-// OBSOLETE     (hdrp)->nsym = bfd_get_32(abfd, (unsigned char *)&(hdrp)->nsym); \
-// OBSOLETE   }
-// OBSOLETE #define SWAP_STBSYM(symp, abfd) \
-// OBSOLETE   { \
-// OBSOLETE     (symp)->value = bfd_get_32(abfd, (unsigned char *)&(symp)->value); \
-// OBSOLETE     (symp)->type = bfd_get_16(abfd, (unsigned char *)&(symp)->type); \
-// OBSOLETE     (symp)->stroff = bfd_get_32(abfd, (unsigned char *)&(symp)->stroff); \
-// OBSOLETE   }
-// OBSOLETE #define N_DATA 0
-// OBSOLETE #define N_BSS 1
-// OBSOLETE #define N_RDATA 2
-// OBSOLETE #define N_IDATA 3
-// OBSOLETE #define N_TEXT 4
-// OBSOLETE #define N_ABS 6
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE record_minimal_symbol (char *name, CORE_ADDR address, int type,
-// OBSOLETE                   struct objfile *objfile)
-// OBSOLETE {
-// OBSOLETE   enum minimal_symbol_type ms_type;
-// OBSOLETE 
-// OBSOLETE   switch (type)
-// OBSOLETE     {
-// OBSOLETE     case N_TEXT:
-// OBSOLETE       ms_type = mst_text;
-// OBSOLETE       address += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE       break;
-// OBSOLETE     case N_DATA:
-// OBSOLETE       ms_type = mst_data;
-// OBSOLETE       break;
-// OBSOLETE     case N_BSS:
-// OBSOLETE       ms_type = mst_bss;
-// OBSOLETE       break;
-// OBSOLETE     case N_RDATA:
-// OBSOLETE       ms_type = mst_bss;
-// OBSOLETE       break;
-// OBSOLETE     case N_IDATA:
-// OBSOLETE       ms_type = mst_data;
-// OBSOLETE       break;
-// OBSOLETE     case N_ABS:
-// OBSOLETE       ms_type = mst_abs;
-// OBSOLETE       break;
-// OBSOLETE     default:
-// OBSOLETE       ms_type = mst_unknown;
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   prim_record_minimal_symbol (name, address, ms_type, objfile);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* read and process .stb file and store in minimal symbol table */
-// OBSOLETE typedef char mhhdr[80];
-// OBSOLETE struct stbhdr
-// OBSOLETE   {
-// OBSOLETE     mhhdr comhdr;
-// OBSOLETE     char *name;
-// OBSOLETE     short fmtno;
-// OBSOLETE     int crc;
-// OBSOLETE     int offset;
-// OBSOLETE     int nsym;
-// OBSOLETE     char *pad;
-// OBSOLETE   };
-// OBSOLETE struct stbsymbol
-// OBSOLETE   {
-// OBSOLETE     int value;
-// OBSOLETE     short type;
-// OBSOLETE     int stroff;
-// OBSOLETE   };
-// OBSOLETE #define STBSYMSIZE 10
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE read_minimal_symbols (struct objfile *objfile)
-// OBSOLETE {
-// OBSOLETE   FILE *fp;
-// OBSOLETE   bfd *abfd;
-// OBSOLETE   struct stbhdr hdr;
-// OBSOLETE   struct stbsymbol sym;
-// OBSOLETE   int ch, i, j, off;
-// OBSOLETE   char buf[64], buf1[128];
-// OBSOLETE 
-// OBSOLETE   fp = objfile->auxf1;
-// OBSOLETE   if (fp == NULL)
-// OBSOLETE     return;
-// OBSOLETE   abfd = objfile->obfd;
-// OBSOLETE   fread (&hdr.comhdr[0], sizeof (mhhdr), 1, fp);
-// OBSOLETE   i = 0;
-// OBSOLETE   ch = getc (fp);
-// OBSOLETE   while (ch != -1)
-// OBSOLETE     {
-// OBSOLETE       buf[i] = (char) ch;
-// OBSOLETE       i++;
-// OBSOLETE       if (ch == 0)
-// OBSOLETE    break;
-// OBSOLETE       ch = getc (fp);
-// OBSOLETE     };
-// OBSOLETE   if (i % 2)
-// OBSOLETE     ch = getc (fp);
-// OBSOLETE   hdr.name = &buf[0];
-// OBSOLETE 
-// OBSOLETE   fread (&hdr.fmtno, sizeof (hdr.fmtno), 1, fp);
-// OBSOLETE   fread (&hdr.crc, sizeof (hdr.crc), 1, fp);
-// OBSOLETE   fread (&hdr.offset, sizeof (hdr.offset), 1, fp);
-// OBSOLETE   fread (&hdr.nsym, sizeof (hdr.nsym), 1, fp);
-// OBSOLETE   SWAP_STBHDR (&hdr, abfd);
-// OBSOLETE 
-// OBSOLETE   /* read symbols */
-// OBSOLETE   init_minimal_symbol_collection ();
-// OBSOLETE   off = hdr.offset;
-// OBSOLETE   for (i = hdr.nsym; i > 0; i--)
-// OBSOLETE     {
-// OBSOLETE       fseek (fp, (long) off, 0);
-// OBSOLETE       fread (&sym.value, sizeof (sym.value), 1, fp);
-// OBSOLETE       fread (&sym.type, sizeof (sym.type), 1, fp);
-// OBSOLETE       fread (&sym.stroff, sizeof (sym.stroff), 1, fp);
-// OBSOLETE       SWAP_STBSYM (&sym, abfd);
-// OBSOLETE       fseek (fp, (long) sym.stroff, 0);
-// OBSOLETE       j = 0;
-// OBSOLETE       ch = getc (fp);
-// OBSOLETE       while (ch != -1)
-// OBSOLETE    {
-// OBSOLETE      buf1[j] = (char) ch;
-// OBSOLETE      j++;
-// OBSOLETE      if (ch == 0)
-// OBSOLETE        break;
-// OBSOLETE      ch = getc (fp);
-// OBSOLETE    };
-// OBSOLETE       record_minimal_symbol (buf1, sym.value, sym.type & 7, objfile);
-// OBSOLETE       off += STBSYMSIZE;
-// OBSOLETE     };
-// OBSOLETE   install_minimal_symbols (objfile);
-// OBSOLETE   return;
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Scan and build partial symbols for a symbol file.
-// OBSOLETE    We have been initialized by a call to os9k_symfile_init, which 
-// OBSOLETE    put all the relevant info into a "struct os9k_symfile_info",
-// OBSOLETE    hung off the objfile structure.
-// OBSOLETE 
-// OBSOLETE    MAINLINE is true if we are reading the main symbol
-// OBSOLETE    table (as opposed to a shared lib or dynamically loaded file).  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE os9k_symfile_read (struct objfile *objfile, int mainline)
-// OBSOLETE {
-// OBSOLETE   bfd *sym_bfd;
-// OBSOLETE   struct cleanup *back_to;
-// OBSOLETE 
-// OBSOLETE   sym_bfd = objfile->obfd;
-// OBSOLETE   /* If we are reinitializing, or if we have never loaded syms yet, init */
-// OBSOLETE   if (mainline
-// OBSOLETE       || (objfile->global_psymbols.size == 0
-// OBSOLETE      && objfile->static_psymbols.size == 0))
-// OBSOLETE     init_psymbol_list (objfile, DBX_SYMCOUNT (objfile));
-// OBSOLETE 
-// OBSOLETE   free_pending_blocks ();
-// OBSOLETE   back_to = make_cleanup (really_free_pendings, 0);
-// OBSOLETE 
-// OBSOLETE   make_cleanup_discard_minimal_symbols ();
-// OBSOLETE   read_minimal_symbols (objfile);
-// OBSOLETE 
-// OBSOLETE   /* Now that the symbol table data of the executable file are all in core,
-// OBSOLETE      process them and define symbols accordingly.  */
-// OBSOLETE   read_os9k_psymtab (objfile,
-// OBSOLETE                 DBX_TEXT_ADDR (objfile),
-// OBSOLETE                 DBX_TEXT_SIZE (objfile));
-// OBSOLETE 
-// OBSOLETE   do_cleanups (back_to);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Initialize anything that needs initializing when a completely new
-// OBSOLETE    symbol file is specified (not just adding some symbols from another
-// OBSOLETE    file, e.g. a shared library).  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE os9k_new_init (struct objfile *ignore)
-// OBSOLETE {
-// OBSOLETE   stabsread_new_init ();
-// OBSOLETE   buildsym_new_init ();
-// OBSOLETE   psymfile_depth = 0;
-// OBSOLETE /*
-// OBSOLETE    init_header_files ();
-// OBSOLETE  */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* os9k_symfile_init ()
-// OBSOLETE    It is passed a struct objfile which contains, among other things,
-// OBSOLETE    the BFD for the file whose symbols are being read, and a slot for a pointer
-// OBSOLETE    to "private data" which we fill with goodies.
-// OBSOLETE 
-// OBSOLETE    Since BFD doesn't know how to read debug symbols in a format-independent
-// OBSOLETE    way (and may never do so...), we have to do it ourselves.  We will never
-// OBSOLETE    be called unless this is an a.out (or very similar) file. 
-// OBSOLETE    FIXME, there should be a cleaner peephole into the BFD environment here.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE os9k_symfile_init (struct objfile *objfile)
-// OBSOLETE {
-// OBSOLETE   bfd *sym_bfd = objfile->obfd;
-// OBSOLETE   char *name = bfd_get_filename (sym_bfd);
-// OBSOLETE   char dbgname[512], stbname[512];
-// OBSOLETE   FILE *symfile = 0;
-// OBSOLETE   FILE *minfile = 0;
-// OBSOLETE   asection *text_sect;
-// OBSOLETE 
-// OBSOLETE   strcpy (dbgname, name);
-// OBSOLETE   strcat (dbgname, ".dbg");
-// OBSOLETE   strcpy (stbname, name);
-// OBSOLETE   strcat (stbname, ".stb");
-// OBSOLETE 
-// OBSOLETE   if ((symfile = fopen (dbgname, "r")) == NULL)
-// OBSOLETE     {
-// OBSOLETE       warning ("Symbol file %s not found", dbgname);
-// OBSOLETE     }
-// OBSOLETE   objfile->auxf2 = symfile;
-// OBSOLETE 
-// OBSOLETE   if ((minfile = fopen (stbname, "r")) == NULL)
-// OBSOLETE     {
-// OBSOLETE       warning ("Symbol file %s not found", stbname);
-// OBSOLETE     }
-// OBSOLETE   objfile->auxf1 = minfile;
-// OBSOLETE 
-// OBSOLETE   /* Allocate struct to keep track of the symfile */
-// OBSOLETE   objfile->sym_stab_info = (struct dbx_symfile_info *)
-// OBSOLETE     xmmalloc (objfile->md, sizeof (struct dbx_symfile_info));
-// OBSOLETE   DBX_SYMFILE_INFO (objfile)->stab_section_info = NULL;
-// OBSOLETE 
-// OBSOLETE   text_sect = bfd_get_section_by_name (sym_bfd, ".text");
-// OBSOLETE   if (!text_sect)
-// OBSOLETE     error ("Can't find .text section in file");
-// OBSOLETE   DBX_TEXT_ADDR (objfile) = bfd_section_vma (sym_bfd, text_sect);
-// OBSOLETE   DBX_TEXT_SIZE (objfile) = bfd_section_size (sym_bfd, text_sect);
-// OBSOLETE 
-// OBSOLETE   DBX_SYMBOL_SIZE (objfile) = 0;   /* variable size symbol */
-// OBSOLETE   DBX_SYMCOUNT (objfile) = 0;      /* used to be bfd_get_symcount(sym_bfd) */
-// OBSOLETE   DBX_SYMTAB_OFFSET (objfile) = 0; /* used to be SYMBOL_TABLE_OFFSET */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Perform any local cleanups required when we are done with a particular
-// OBSOLETE    objfile.  I.E, we are in the process of discarding all symbol information
-// OBSOLETE    for an objfile, freeing up all memory held for it, and unlinking the
-// OBSOLETE    objfile struct from the global list of known objfiles. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE os9k_symfile_finish (struct objfile *objfile)
-// OBSOLETE {
-// OBSOLETE   if (objfile->sym_stab_info != NULL)
-// OBSOLETE     {
-// OBSOLETE       xmfree (objfile->md, objfile->sym_stab_info);
-// OBSOLETE     }
-// OBSOLETE /*
-// OBSOLETE    free_header_files ();
-// OBSOLETE  */
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE struct st_dbghdr
-// OBSOLETE {
-// OBSOLETE   int sync;
-// OBSOLETE   short rev;
-// OBSOLETE   int crc;
-// OBSOLETE   short os;
-// OBSOLETE   short cpu;
-// OBSOLETE };
-// OBSOLETE #define SYNC               (int)0xefbefeca
-// OBSOLETE 
-// OBSOLETE #define SWAP_DBGHDR(hdrp, abfd) \
-// OBSOLETE   { \
-// OBSOLETE     (hdrp)->sync = bfd_get_32(abfd, (unsigned char *)&(hdrp)->sync); \
-// OBSOLETE     (hdrp)->rev = bfd_get_16(abfd, (unsigned char *)&(hdrp)->rev); \
-// OBSOLETE     (hdrp)->crc = bfd_get_32(abfd, (unsigned char *)&(hdrp)->crc); \
-// OBSOLETE     (hdrp)->os = bfd_get_16(abfd, (unsigned char *)&(hdrp)->os); \
-// OBSOLETE     (hdrp)->cpu = bfd_get_16(abfd, (unsigned char *)&(hdrp)->cpu); \
-// OBSOLETE   }
-// OBSOLETE 
-// OBSOLETE #define N_SYM_CMPLR     0
-// OBSOLETE #define N_SYM_SLINE     1
-// OBSOLETE #define N_SYM_SYM       2
-// OBSOLETE #define N_SYM_LBRAC     3
-// OBSOLETE #define N_SYM_RBRAC     4
-// OBSOLETE #define N_SYM_SE        5
-// OBSOLETE 
-// OBSOLETE struct internal_symstruct
-// OBSOLETE   {
-// OBSOLETE     short n_type;
-// OBSOLETE     short n_desc;
-// OBSOLETE     long n_value;
-// OBSOLETE     char *n_strx;
-// OBSOLETE   };
-// OBSOLETE static struct internal_symstruct symbol;
-// OBSOLETE static struct internal_symstruct *symbuf = &symbol;
-// OBSOLETE static char strbuf[4096];
-// OBSOLETE static struct st_dbghdr dbghdr;
-// OBSOLETE static short cmplrid;
-// OBSOLETE 
-// OBSOLETE #define VER_PRE_ULTRAC     ((short)4)
-// OBSOLETE #define VER_ULTRAC ((short)5)
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE fill_sym (FILE *dbg_file, bfd *abfd)
-// OBSOLETE {
-// OBSOLETE   short si, nmask;
-// OBSOLETE   long li;
-// OBSOLETE   int ii;
-// OBSOLETE   char *p;
-// OBSOLETE 
-// OBSOLETE   int nbytes = fread (&si, sizeof (si), 1, dbg_file);
-// OBSOLETE   if (nbytes == 0)
-// OBSOLETE     return 0;
-// OBSOLETE   if (nbytes < 0)
-// OBSOLETE     perror_with_name ("reading .dbg file.");
-// OBSOLETE   symbuf->n_desc = 0;
-// OBSOLETE   symbuf->n_value = 0;
-// OBSOLETE   symbuf->n_strx = NULL;
-// OBSOLETE   symbuf->n_type = bfd_get_16 (abfd, (unsigned char *) &si);
-// OBSOLETE   symbuf->n_type = 0xf & symbuf->n_type;
-// OBSOLETE   switch (symbuf->n_type)
-// OBSOLETE     {
-// OBSOLETE     case N_SYM_CMPLR:
-// OBSOLETE       fread (&si, sizeof (si), 1, dbg_file);
-// OBSOLETE       symbuf->n_desc = bfd_get_16 (abfd, (unsigned char *) &si);
-// OBSOLETE       cmplrid = symbuf->n_desc & 0xff;
-// OBSOLETE       break;
-// OBSOLETE     case N_SYM_SLINE:
-// OBSOLETE       fread (&li, sizeof (li), 1, dbg_file);
-// OBSOLETE       symbuf->n_value = bfd_get_32 (abfd, (unsigned char *) &li);
-// OBSOLETE       fread (&li, sizeof (li), 1, dbg_file);
-// OBSOLETE       li = bfd_get_32 (abfd, (unsigned char *) &li);
-// OBSOLETE       symbuf->n_strx = (char *) (li >> 12);
-// OBSOLETE       symbuf->n_desc = li & 0xfff;
-// OBSOLETE       break;
-// OBSOLETE     case N_SYM_SYM:
-// OBSOLETE       fread (&li, sizeof (li), 1, dbg_file);
-// OBSOLETE       symbuf->n_value = bfd_get_32 (abfd, (unsigned char *) &li);
-// OBSOLETE       si = 0;
-// OBSOLETE       do
-// OBSOLETE    {
-// OBSOLETE      ii = getc (dbg_file);
-// OBSOLETE      strbuf[si++] = (char) ii;
-// OBSOLETE    }
-// OBSOLETE       while (ii != 0 || si % 2 != 0);
-// OBSOLETE       symbuf->n_strx = strbuf;
-// OBSOLETE       p = (char *) strchr (strbuf, ':');
-// OBSOLETE       if (!p)
-// OBSOLETE    break;
-// OBSOLETE       if ((p[1] == 'F' || p[1] == 'f') && cmplrid == VER_PRE_ULTRAC)
-// OBSOLETE    {
-// OBSOLETE      fread (&si, sizeof (si), 1, dbg_file);
-// OBSOLETE      nmask = bfd_get_16 (abfd, (unsigned char *) &si);
-// OBSOLETE      for (ii = 0; ii < nmask; ii++)
-// OBSOLETE        fread (&si, sizeof (si), 1, dbg_file);
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE     case N_SYM_LBRAC:
-// OBSOLETE       fread (&li, sizeof (li), 1, dbg_file);
-// OBSOLETE       symbuf->n_value = bfd_get_32 (abfd, (unsigned char *) &li);
-// OBSOLETE       break;
-// OBSOLETE     case N_SYM_RBRAC:
-// OBSOLETE       fread (&li, sizeof (li), 1, dbg_file);
-// OBSOLETE       symbuf->n_value = bfd_get_32 (abfd, (unsigned char *) &li);
-// OBSOLETE       break;
-// OBSOLETE     case N_SYM_SE:
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Given pointers to an a.out symbol table in core containing dbx
-// OBSOLETE    style data, setup partial_symtab's describing each source file for
-// OBSOLETE    which debugging information is available.
-// OBSOLETE    SYMFILE_NAME is the name of the file we are reading from. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE read_os9k_psymtab (struct objfile *objfile, CORE_ADDR text_addr, int text_size)
-// OBSOLETE {
-// OBSOLETE   register struct internal_symstruct *bufp = 0;            /* =0 avoids gcc -Wall glitch */
-// OBSOLETE   register char *namestring;
-// OBSOLETE   int past_first_source_file = 0;
-// OBSOLETE   CORE_ADDR last_o_file_start = 0;
-// OBSOLETE #if 0
-// OBSOLETE   struct cleanup *back_to;
-// OBSOLETE #endif
-// OBSOLETE   bfd *abfd;
-// OBSOLETE   FILE *fp;
-// OBSOLETE 
-// OBSOLETE   /* End of the text segment of the executable file.  */
-// OBSOLETE   static CORE_ADDR end_of_text_addr;
-// OBSOLETE 
-// OBSOLETE   /* Current partial symtab */
-// OBSOLETE   static struct partial_symtab *pst = 0;
-// OBSOLETE 
-// OBSOLETE   /* List of current psymtab's include files */
-// OBSOLETE   char **psymtab_include_list;
-// OBSOLETE   int includes_allocated;
-// OBSOLETE   int includes_used;
-// OBSOLETE 
-// OBSOLETE   /* Index within current psymtab dependency list */
-// OBSOLETE   struct partial_symtab **dependency_list;
-// OBSOLETE   int dependencies_used, dependencies_allocated;
-// OBSOLETE 
-// OBSOLETE   includes_allocated = 30;
-// OBSOLETE   includes_used = 0;
-// OBSOLETE   psymtab_include_list = (char **) alloca (includes_allocated *
-// OBSOLETE                                       sizeof (char *));
-// OBSOLETE 
-// OBSOLETE   dependencies_allocated = 30;
-// OBSOLETE   dependencies_used = 0;
-// OBSOLETE   dependency_list =
-// OBSOLETE     (struct partial_symtab **) alloca (dependencies_allocated *
-// OBSOLETE                                   sizeof (struct partial_symtab *));
-// OBSOLETE 
-// OBSOLETE   last_source_file = NULL;
-// OBSOLETE 
-// OBSOLETE #ifdef END_OF_TEXT_DEFAULT
-// OBSOLETE   end_of_text_addr = END_OF_TEXT_DEFAULT;
-// OBSOLETE #else
-// OBSOLETE   end_of_text_addr = text_addr + ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile))
-// OBSOLETE     + text_size;           /* Relocate */
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE   abfd = objfile->obfd;
-// OBSOLETE   fp = objfile->auxf2;
-// OBSOLETE   if (!fp)
-// OBSOLETE     return;
-// OBSOLETE 
-// OBSOLETE   fread (&dbghdr.sync, sizeof (dbghdr.sync), 1, fp);
-// OBSOLETE   fread (&dbghdr.rev, sizeof (dbghdr.rev), 1, fp);
-// OBSOLETE   fread (&dbghdr.crc, sizeof (dbghdr.crc), 1, fp);
-// OBSOLETE   fread (&dbghdr.os, sizeof (dbghdr.os), 1, fp);
-// OBSOLETE   fread (&dbghdr.cpu, sizeof (dbghdr.cpu), 1, fp);
-// OBSOLETE   SWAP_DBGHDR (&dbghdr, abfd);
-// OBSOLETE 
-// OBSOLETE   symnum = 0;
-// OBSOLETE   while (1)
-// OBSOLETE     {
-// OBSOLETE       int ret;
-// OBSOLETE       long cursymoffset;
-// OBSOLETE 
-// OBSOLETE       /* Get the symbol for this run and pull out some info */
-// OBSOLETE       QUIT;                        /* allow this to be interruptable */
-// OBSOLETE       cursymoffset = ftell (objfile->auxf2);
-// OBSOLETE       ret = fill_sym (objfile->auxf2, abfd);
-// OBSOLETE       if (ret <= 0)
-// OBSOLETE    break;
-// OBSOLETE       else
-// OBSOLETE    symnum++;
-// OBSOLETE       bufp = symbuf;
-// OBSOLETE 
-// OBSOLETE       /* Special case to speed up readin. */
-// OBSOLETE       if (bufp->n_type == (short) N_SYM_SLINE)
-// OBSOLETE    continue;
-// OBSOLETE 
-// OBSOLETE #define CUR_SYMBOL_VALUE bufp->n_value
-// OBSOLETE       /* partial-stab.h */
-// OBSOLETE 
-// OBSOLETE       switch (bufp->n_type)
-// OBSOLETE    {
-// OBSOLETE      char *p;
-// OBSOLETE 
-// OBSOLETE    case N_SYM_CMPLR:
-// OBSOLETE      continue;
-// OBSOLETE 
-// OBSOLETE    case N_SYM_SE:
-// OBSOLETE      CUR_SYMBOL_VALUE += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE      if (psymfile_depth == 1 && pst)
-// OBSOLETE        {
-// OBSOLETE          os9k_end_psymtab (pst, psymtab_include_list, includes_used,
-// OBSOLETE                            symnum, CUR_SYMBOL_VALUE,
-// OBSOLETE                            dependency_list, dependencies_used);
-// OBSOLETE          pst = (struct partial_symtab *) 0;
-// OBSOLETE          includes_used = 0;
-// OBSOLETE          dependencies_used = 0;
-// OBSOLETE        }
-// OBSOLETE      psymfile_depth--;
-// OBSOLETE      continue;
-// OBSOLETE 
-// OBSOLETE    case N_SYM_SYM: /* Typedef or automatic variable. */
-// OBSOLETE      namestring = bufp->n_strx;
-// OBSOLETE      p = (char *) strchr (namestring, ':');
-// OBSOLETE      if (!p)
-// OBSOLETE        continue;           /* Not a debugging symbol.   */
-// OBSOLETE 
-// OBSOLETE      /* Main processing section for debugging symbols which
-// OBSOLETE         the initial read through the symbol tables needs to worry
-// OBSOLETE         about.  If we reach this point, the symbol which we are
-// OBSOLETE         considering is definitely one we are interested in.
-// OBSOLETE         p must also contain the (valid) index into the namestring
-// OBSOLETE         which indicates the debugging type symbol.  */
-// OBSOLETE 
-// OBSOLETE      switch (p[1])
-// OBSOLETE        {
-// OBSOLETE        case 'S':
-// OBSOLETE          {
-// OBSOLETE            unsigned long valu;
-// OBSOLETE            enum language tmp_language;
-// OBSOLETE            char *str, *p;
-// OBSOLETE            int n;
-// OBSOLETE 
-// OBSOLETE            valu = CUR_SYMBOL_VALUE;
-// OBSOLETE            if (valu)
-// OBSOLETE              valu += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE            past_first_source_file = 1;
-// OBSOLETE 
-// OBSOLETE            p = strchr (namestring, ':');
-// OBSOLETE            if (p)
-// OBSOLETE              n = p - namestring;
-// OBSOLETE            else
-// OBSOLETE              n = strlen (namestring);
-// OBSOLETE            str = alloca (n + 1);
-// OBSOLETE            strncpy (str, namestring, n);
-// OBSOLETE            str[n] = '\0';
-// OBSOLETE 
-// OBSOLETE            if (psymfile_depth == 0)
-// OBSOLETE              {
-// OBSOLETE                if (!pst)
-// OBSOLETE                  pst = os9k_start_psymtab (objfile,
-// OBSOLETE                                            str, valu,
-// OBSOLETE                                            cursymoffset,
-// OBSOLETE                                            symnum - 1,
-// OBSOLETE                                          objfile->global_psymbols.next,
-// OBSOLETE                                         objfile->static_psymbols.next);
-// OBSOLETE              }
-// OBSOLETE            else
-// OBSOLETE              {             /* this is a include file */
-// OBSOLETE                tmp_language = deduce_language_from_filename (str);
-// OBSOLETE                if (tmp_language != language_unknown
-// OBSOLETE                    && (tmp_language != language_c
-// OBSOLETE                        || psymtab_language != language_cplus))
-// OBSOLETE                  psymtab_language = tmp_language;
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    if (pst && STREQ (str, pst->filename))
-// OBSOLETE    continue;
-// OBSOLETE    {
-// OBSOLETE    register int i;
-// OBSOLETE    for (i = 0; i < includes_used; i++)
-// OBSOLETE    if (STREQ (str, psymtab_include_list[i]))
-// OBSOLETE    {
-// OBSOLETE    i = -1; 
-// OBSOLETE    break;
-// OBSOLETE    }
-// OBSOLETE    if (i == -1)
-// OBSOLETE    continue;
-// OBSOLETE    }
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE                psymtab_include_list[includes_used++] = str;
-// OBSOLETE                if (includes_used >= includes_allocated)
-// OBSOLETE                  {
-// OBSOLETE                    char **orig = psymtab_include_list;
-// OBSOLETE 
-// OBSOLETE                    psymtab_include_list = (char **)
-// OBSOLETE                      alloca ((includes_allocated *= 2) * sizeof (char *));
-// OBSOLETE                    memcpy ((PTR) psymtab_include_list, (PTR) orig,
-// OBSOLETE                            includes_used * sizeof (char *));
-// OBSOLETE                  }
-// OBSOLETE 
-// OBSOLETE              }
-// OBSOLETE            psymfile_depth++;
-// OBSOLETE            continue;
-// OBSOLETE          }
-// OBSOLETE 
-// OBSOLETE        case 'v':
-// OBSOLETE          add_psymbol_to_list (namestring, p - namestring,
-// OBSOLETE                               VAR_NAMESPACE, LOC_STATIC,
-// OBSOLETE                               &objfile->static_psymbols,
-// OBSOLETE                               0, CUR_SYMBOL_VALUE,
-// OBSOLETE                               psymtab_language, objfile);
-// OBSOLETE          continue;
-// OBSOLETE        case 'V':
-// OBSOLETE          add_psymbol_to_list (namestring, p - namestring,
-// OBSOLETE                               VAR_NAMESPACE, LOC_STATIC,
-// OBSOLETE                               &objfile->global_psymbols,
-// OBSOLETE                               0, CUR_SYMBOL_VALUE,
-// OBSOLETE                               psymtab_language, objfile);
-// OBSOLETE          continue;
-// OBSOLETE 
-// OBSOLETE        case 'T':
-// OBSOLETE          if (p != namestring)      /* a name is there, not just :T... */
-// OBSOLETE            {
-// OBSOLETE              add_psymbol_to_list (namestring, p - namestring,
-// OBSOLETE                                   STRUCT_NAMESPACE, LOC_TYPEDEF,
-// OBSOLETE                                   &objfile->static_psymbols,
-// OBSOLETE                                   CUR_SYMBOL_VALUE, 0,
-// OBSOLETE                                   psymtab_language, objfile);
-// OBSOLETE              if (p[2] == 't')
-// OBSOLETE                {
-// OBSOLETE                  /* Also a typedef with the same name.  */
-// OBSOLETE                  add_psymbol_to_list (namestring, p - namestring,
-// OBSOLETE                                       VAR_NAMESPACE, LOC_TYPEDEF,
-// OBSOLETE                                       &objfile->static_psymbols,
-// OBSOLETE                                  CUR_SYMBOL_VALUE, 0, psymtab_language,
-// OBSOLETE                                       objfile);
-// OBSOLETE                  p += 1;
-// OBSOLETE                }
-// OBSOLETE              /* The semantics of C++ state that "struct foo { ... }"
-// OBSOLETE                 also defines a typedef for "foo".  Unfortuantely, cfront
-// OBSOLETE                 never makes the typedef when translating from C++ to C.
-// OBSOLETE                 We make the typedef here so that "ptype foo" works as
-// OBSOLETE                 expected for cfront translated code.  */
-// OBSOLETE              else if (psymtab_language == language_cplus)
-// OBSOLETE                {
-// OBSOLETE                  /* Also a typedef with the same name.  */
-// OBSOLETE                  add_psymbol_to_list (namestring, p - namestring,
-// OBSOLETE                                       VAR_NAMESPACE, LOC_TYPEDEF,
-// OBSOLETE                                       &objfile->static_psymbols,
-// OBSOLETE                                  CUR_SYMBOL_VALUE, 0, psymtab_language,
-// OBSOLETE                                       objfile);
-// OBSOLETE                }
-// OBSOLETE            }
-// OBSOLETE          goto check_enum;
-// OBSOLETE        case 't':
-// OBSOLETE          if (p != namestring)      /* a name is there, not just :T... */
-// OBSOLETE            {
-// OBSOLETE              add_psymbol_to_list (namestring, p - namestring,
-// OBSOLETE                                   VAR_NAMESPACE, LOC_TYPEDEF,
-// OBSOLETE                                   &objfile->static_psymbols,
-// OBSOLETE                                   CUR_SYMBOL_VALUE, 0,
-// OBSOLETE                                   psymtab_language, objfile);
-// OBSOLETE            }
-// OBSOLETE        check_enum:
-// OBSOLETE          /* If this is an enumerated type, we need to
-// OBSOLETE             add all the enum constants to the partial symbol
-// OBSOLETE             table.  This does not cover enums without names, e.g.
-// OBSOLETE             "enum {a, b} c;" in C, but fortunately those are
-// OBSOLETE             rare.  There is no way for GDB to find those from the
-// OBSOLETE             enum type without spending too much time on it.  Thus
-// OBSOLETE             to solve this problem, the compiler needs to put out the
-// OBSOLETE             enum in a nameless type.  GCC2 does this.  */
-// OBSOLETE 
-// OBSOLETE          /* We are looking for something of the form
-// OBSOLETE             <name> ":" ("t" | "T") [<number> "="] "e" <size>
-// OBSOLETE             {<constant> ":" <value> ","} ";".  */
-// OBSOLETE 
-// OBSOLETE          /* Skip over the colon and the 't' or 'T'.  */
-// OBSOLETE          p += 2;
-// OBSOLETE          /* This type may be given a number.  Also, numbers can come
-// OBSOLETE             in pairs like (0,26).  Skip over it.  */
-// OBSOLETE          while ((*p >= '0' && *p <= '9')
-// OBSOLETE                 || *p == '(' || *p == ',' || *p == ')'
-// OBSOLETE                 || *p == '=')
-// OBSOLETE            p++;
-// OBSOLETE 
-// OBSOLETE          if (*p++ == 'e')
-// OBSOLETE            {
-// OBSOLETE              /* We have found an enumerated type. skip size */
-// OBSOLETE              while (*p >= '0' && *p <= '9')
-// OBSOLETE                p++;
-// OBSOLETE              /* According to comments in read_enum_type
-// OBSOLETE                 a comma could end it instead of a semicolon.
-// OBSOLETE                 I don't know where that happens.
-// OBSOLETE                 Accept either.  */
-// OBSOLETE              while (*p && *p != ';' && *p != ',')
-// OBSOLETE                {
-// OBSOLETE                  char *q;
-// OBSOLETE 
-// OBSOLETE                  /* Check for and handle cretinous dbx symbol name
-// OBSOLETE                     continuation! 
-// OBSOLETE                     if (*p == '\\')
-// OBSOLETE                     p = next_symbol_text (objfile);
-// OBSOLETE                   */
-// OBSOLETE 
-// OBSOLETE                  /* Point to the character after the name
-// OBSOLETE                     of the enum constant.  */
-// OBSOLETE                  for (q = p; *q && *q != ':'; q++)
-// OBSOLETE                    ;
-// OBSOLETE                  /* Note that the value doesn't matter for
-// OBSOLETE                     enum constants in psymtabs, just in symtabs.  */
-// OBSOLETE                  add_psymbol_to_list (p, q - p,
-// OBSOLETE                                       VAR_NAMESPACE, LOC_CONST,
-// OBSOLETE                                       &objfile->static_psymbols, 0,
-// OBSOLETE                                       0, psymtab_language, objfile);
-// OBSOLETE                  /* Point past the name.  */
-// OBSOLETE                  p = q;
-// OBSOLETE                  /* Skip over the value.  */
-// OBSOLETE                  while (*p && *p != ',')
-// OBSOLETE                    p++;
-// OBSOLETE                  /* Advance past the comma.  */
-// OBSOLETE                  if (*p)
-// OBSOLETE                    p++;
-// OBSOLETE                }
-// OBSOLETE            }
-// OBSOLETE          continue;
-// OBSOLETE        case 'c':
-// OBSOLETE          /* Constant, e.g. from "const" in Pascal.  */
-// OBSOLETE          add_psymbol_to_list (namestring, p - namestring,
-// OBSOLETE                               VAR_NAMESPACE, LOC_CONST,
-// OBSOLETE                            &objfile->static_psymbols, CUR_SYMBOL_VALUE,
-// OBSOLETE                               0, psymtab_language, objfile);
-// OBSOLETE          continue;
-// OBSOLETE 
-// OBSOLETE        case 'f':
-// OBSOLETE          CUR_SYMBOL_VALUE += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE          if (pst && pst->textlow == 0)
-// OBSOLETE            pst->textlow = CUR_SYMBOL_VALUE;
-// OBSOLETE 
-// OBSOLETE          add_psymbol_to_list (namestring, p - namestring,
-// OBSOLETE                               VAR_NAMESPACE, LOC_BLOCK,
-// OBSOLETE                            &objfile->static_psymbols, CUR_SYMBOL_VALUE,
-// OBSOLETE                               0, psymtab_language, objfile);
-// OBSOLETE          continue;
-// OBSOLETE 
-// OBSOLETE        case 'F':
-// OBSOLETE          CUR_SYMBOL_VALUE += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE          if (pst && pst->textlow == 0)
-// OBSOLETE            pst->textlow = CUR_SYMBOL_VALUE;
-// OBSOLETE 
-// OBSOLETE          add_psymbol_to_list (namestring, p - namestring,
-// OBSOLETE                               VAR_NAMESPACE, LOC_BLOCK,
-// OBSOLETE                            &objfile->global_psymbols, CUR_SYMBOL_VALUE,
-// OBSOLETE                               0, psymtab_language, objfile);
-// OBSOLETE          continue;
-// OBSOLETE 
-// OBSOLETE        case 'p':
-// OBSOLETE        case 'l':
-// OBSOLETE        case 's':
-// OBSOLETE          continue;
-// OBSOLETE 
-// OBSOLETE        case ':':
-// OBSOLETE          /* It is a C++ nested symbol.  We don't need to record it
-// OBSOLETE             (I don't think); if we try to look up foo::bar::baz,
-// OBSOLETE             then symbols for the symtab containing foo should get
-// OBSOLETE             read in, I think.  */
-// OBSOLETE          /* Someone says sun cc puts out symbols like
-// OBSOLETE             /foo/baz/maclib::/usr/local/bin/maclib,
-// OBSOLETE             which would get here with a symbol type of ':'.  */
-// OBSOLETE          continue;
-// OBSOLETE 
-// OBSOLETE        default:
-// OBSOLETE          /* Unexpected symbol descriptor.  The second and subsequent stabs
-// OBSOLETE             of a continued stab can show up here.  The question is
-// OBSOLETE             whether they ever can mimic a normal stab--it would be
-// OBSOLETE             nice if not, since we certainly don't want to spend the
-// OBSOLETE             time searching to the end of every string looking for
-// OBSOLETE             a backslash.  */
-// OBSOLETE 
-// OBSOLETE          complain (&unknown_symchar_complaint, p[1]);
-// OBSOLETE          continue;
-// OBSOLETE        }
-// OBSOLETE 
-// OBSOLETE    case N_SYM_RBRAC:
-// OBSOLETE      CUR_SYMBOL_VALUE += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE #ifdef HANDLE_RBRAC
-// OBSOLETE      HANDLE_RBRAC (CUR_SYMBOL_VALUE);
-// OBSOLETE      continue;
-// OBSOLETE #endif
-// OBSOLETE    case N_SYM_LBRAC:
-// OBSOLETE      continue;
-// OBSOLETE 
-// OBSOLETE    default:
-// OBSOLETE      /* If we haven't found it yet, ignore it.  It's probably some
-// OBSOLETE         new type we don't know about yet.  */
-// OBSOLETE      complain (&unknown_symtype_complaint,
-// OBSOLETE                local_hex_string ((unsigned long) bufp->n_type));
-// OBSOLETE      continue;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   DBX_SYMCOUNT (objfile) = symnum;
-// OBSOLETE 
-// OBSOLETE   /* If there's stuff to be cleaned up, clean it up.  */
-// OBSOLETE   if (DBX_SYMCOUNT (objfile) > 0
-// OBSOLETE /*FIXME, does this have a bug at start address 0? */
-// OBSOLETE       && last_o_file_start
-// OBSOLETE       && objfile->ei.entry_point < bufp->n_value
-// OBSOLETE       && objfile->ei.entry_point >= last_o_file_start)
-// OBSOLETE     {
-// OBSOLETE       objfile->ei.entry_file_lowpc = last_o_file_start;
-// OBSOLETE       objfile->ei.entry_file_highpc = bufp->n_value;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (pst)
-// OBSOLETE     {
-// OBSOLETE       os9k_end_psymtab (pst, psymtab_include_list, includes_used,
-// OBSOLETE                    symnum, end_of_text_addr,
-// OBSOLETE                    dependency_list, dependencies_used);
-// OBSOLETE     }
-// OBSOLETE /*
-// OBSOLETE    do_cleanups (back_to);
-// OBSOLETE  */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Allocate and partially fill a partial symtab.  It will be
-// OBSOLETE    completely filled at the end of the symbol list.
-// OBSOLETE 
-// OBSOLETE    SYMFILE_NAME is the name of the symbol-file we are reading from, and ADDR
-// OBSOLETE    is the address relative to which its symbols are (incremental) or 0
-// OBSOLETE    (normal). */
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE static struct partial_symtab *
-// OBSOLETE os9k_start_psymtab (struct objfile *objfile, char *filename, CORE_ADDR textlow,
-// OBSOLETE                int ldsymoff, int ldsymcnt,
-// OBSOLETE                struct partial_symbol **global_syms,
-// OBSOLETE                struct partial_symbol **static_syms)
-// OBSOLETE {
-// OBSOLETE   struct partial_symtab *result =
-// OBSOLETE   start_psymtab_common (objfile, objfile->section_offsets,
-// OBSOLETE                    filename, textlow, global_syms, static_syms);
-// OBSOLETE 
-// OBSOLETE   result->read_symtab_private = (char *)
-// OBSOLETE     obstack_alloc (&objfile->psymbol_obstack, sizeof (struct symloc));
-// OBSOLETE 
-// OBSOLETE   LDSYMOFF (result) = ldsymoff;
-// OBSOLETE   LDSYMCNT (result) = ldsymcnt;
-// OBSOLETE   result->read_symtab = os9k_psymtab_to_symtab;
-// OBSOLETE 
-// OBSOLETE   /* Deduce the source language from the filename for this psymtab. */
-// OBSOLETE   psymtab_language = deduce_language_from_filename (filename);
-// OBSOLETE   return result;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Close off the current usage of PST.  
-// OBSOLETE    Returns PST or NULL if the partial symtab was empty and thrown away.
-// OBSOLETE    FIXME:  List variables and peculiarities of same.  */
-// OBSOLETE 
-// OBSOLETE static struct partial_symtab *
-// OBSOLETE os9k_end_psymtab (struct partial_symtab *pst, char **include_list,
-// OBSOLETE              int num_includes, int capping_symbol_cnt,
-// OBSOLETE              CORE_ADDR capping_text,
-// OBSOLETE              struct partial_symtab **dependency_list,
-// OBSOLETE              int number_dependencies)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE   struct partial_symtab *p1;
-// OBSOLETE   struct objfile *objfile = pst->objfile;
-// OBSOLETE 
-// OBSOLETE   if (capping_symbol_cnt != -1)
-// OBSOLETE     LDSYMCNT (pst) = capping_symbol_cnt - LDSYMCNT (pst);
-// OBSOLETE 
-// OBSOLETE   /* Under Solaris, the N_SO symbols always have a value of 0,
-// OBSOLETE      instead of the usual address of the .o file.  Therefore,
-// OBSOLETE      we have to do some tricks to fill in texthigh and textlow.
-// OBSOLETE      The first trick is in partial-stab.h: if we see a static
-// OBSOLETE      or global function, and the textlow for the current pst
-// OBSOLETE      is still 0, then we use that function's address for 
-// OBSOLETE      the textlow of the pst.
-// OBSOLETE 
-// OBSOLETE      Now, to fill in texthigh, we remember the last function seen
-// OBSOLETE      in the .o file (also in partial-stab.h).  Also, there's a hack in
-// OBSOLETE      bfd/elf.c and gdb/elfread.c to pass the ELF st_size field
-// OBSOLETE      to here via the misc_info field.  Therefore, we can fill in
-// OBSOLETE      a reliable texthigh by taking the address plus size of the
-// OBSOLETE      last function in the file.
-// OBSOLETE 
-// OBSOLETE      Unfortunately, that does not cover the case where the last function
-// OBSOLETE      in the file is static.  See the paragraph below for more comments
-// OBSOLETE      on this situation.
-// OBSOLETE 
-// OBSOLETE      Finally, if we have a valid textlow for the current file, we run
-// OBSOLETE      down the partial_symtab_list filling in previous texthighs that
-// OBSOLETE      are still unknown.  */
-// OBSOLETE 
-// OBSOLETE   if (pst->texthigh == 0 && last_function_name)
-// OBSOLETE     {
-// OBSOLETE       char *p;
-// OBSOLETE       int n;
-// OBSOLETE       struct minimal_symbol *minsym;
-// OBSOLETE 
-// OBSOLETE       p = strchr (last_function_name, ':');
-// OBSOLETE       if (p == NULL)
-// OBSOLETE    p = last_function_name;
-// OBSOLETE       n = p - last_function_name;
-// OBSOLETE       p = alloca (n + 1);
-// OBSOLETE       strncpy (p, last_function_name, n);
-// OBSOLETE       p[n] = 0;
-// OBSOLETE 
-// OBSOLETE       minsym = lookup_minimal_symbol (p, NULL, objfile);
-// OBSOLETE 
-// OBSOLETE       if (minsym)
-// OBSOLETE    {
-// OBSOLETE      pst->texthigh = SYMBOL_VALUE_ADDRESS (minsym) + (long) MSYMBOL_INFO (minsym);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      /* This file ends with a static function, and it's
-// OBSOLETE         difficult to imagine how hard it would be to track down
-// OBSOLETE         the elf symbol.  Luckily, most of the time no one will notice,
-// OBSOLETE         since the next file will likely be compiled with -g, so
-// OBSOLETE         the code below will copy the first fuction's start address 
-// OBSOLETE         back to our texthigh variable.  (Also, if this file is the
-// OBSOLETE         last one in a dynamically linked program, texthigh already
-// OBSOLETE         has the right value.)  If the next file isn't compiled
-// OBSOLETE         with -g, then the last function in this file winds up owning
-// OBSOLETE         all of the text space up to the next -g file, or the end (minus
-// OBSOLETE         shared libraries).  This only matters for single stepping,
-// OBSOLETE         and even then it will still work, except that it will single
-// OBSOLETE         step through all of the covered functions, instead of setting
-// OBSOLETE         breakpoints around them as it usualy does.  This makes it
-// OBSOLETE         pretty slow, but at least it doesn't fail.
-// OBSOLETE 
-// OBSOLETE         We can fix this with a fairly big change to bfd, but we need
-// OBSOLETE         to coordinate better with Cygnus if we want to do that.  FIXME.  */
-// OBSOLETE    }
-// OBSOLETE       last_function_name = NULL;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* this test will be true if the last .o file is only data */
-// OBSOLETE   if (pst->textlow == 0)
-// OBSOLETE     pst->textlow = pst->texthigh;
-// OBSOLETE 
-// OBSOLETE   /* If we know our own starting text address, then walk through all other
-// OBSOLETE      psymtabs for this objfile, and if any didn't know their ending text
-// OBSOLETE      address, set it to our starting address.  Take care to not set our
-// OBSOLETE      own ending address to our starting address, nor to set addresses on
-// OBSOLETE      `dependency' files that have both textlow and texthigh zero.  */
-// OBSOLETE   if (pst->textlow)
-// OBSOLETE     {
-// OBSOLETE       ALL_OBJFILE_PSYMTABS (objfile, p1)
-// OBSOLETE       {
-// OBSOLETE    if (p1->texthigh == 0 && p1->textlow != 0 && p1 != pst)
-// OBSOLETE      {
-// OBSOLETE        p1->texthigh = pst->textlow;
-// OBSOLETE        /* if this file has only data, then make textlow match texthigh */
-// OBSOLETE        if (p1->textlow == 0)
-// OBSOLETE          p1->textlow = p1->texthigh;
-// OBSOLETE      }
-// OBSOLETE       }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* End of kludge for patching Solaris textlow and texthigh.  */
-// OBSOLETE 
-// OBSOLETE   pst->n_global_syms =
-// OBSOLETE     objfile->global_psymbols.next - (objfile->global_psymbols.list + pst->globals_offset);
-// OBSOLETE   pst->n_static_syms =
-// OBSOLETE     objfile->static_psymbols.next - (objfile->static_psymbols.list + pst->statics_offset);
-// OBSOLETE 
-// OBSOLETE   pst->number_of_dependencies = number_dependencies;
-// OBSOLETE   if (number_dependencies)
-// OBSOLETE     {
-// OBSOLETE       pst->dependencies = (struct partial_symtab **)
-// OBSOLETE    obstack_alloc (&objfile->psymbol_obstack,
-// OBSOLETE                number_dependencies * sizeof (struct partial_symtab *));
-// OBSOLETE       memcpy (pst->dependencies, dependency_list,
-// OBSOLETE          number_dependencies * sizeof (struct partial_symtab *));
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     pst->dependencies = 0;
-// OBSOLETE 
-// OBSOLETE   for (i = 0; i < num_includes; i++)
-// OBSOLETE     {
-// OBSOLETE       struct partial_symtab *subpst =
-// OBSOLETE       allocate_psymtab (include_list[i], objfile);
-// OBSOLETE 
-// OBSOLETE       subpst->section_offsets = pst->section_offsets;
-// OBSOLETE       subpst->read_symtab_private =
-// OBSOLETE    (char *) obstack_alloc (&objfile->psymbol_obstack,
-// OBSOLETE                            sizeof (struct symloc));
-// OBSOLETE       LDSYMOFF (subpst) =
-// OBSOLETE    LDSYMCNT (subpst) =
-// OBSOLETE    subpst->textlow =
-// OBSOLETE    subpst->texthigh = 0;
-// OBSOLETE 
-// OBSOLETE       /* We could save slight bits of space by only making one of these,
-// OBSOLETE          shared by the entire set of include files.  FIXME-someday.  */
-// OBSOLETE       subpst->dependencies = (struct partial_symtab **)
-// OBSOLETE    obstack_alloc (&objfile->psymbol_obstack,
-// OBSOLETE                   sizeof (struct partial_symtab *));
-// OBSOLETE       subpst->dependencies[0] = pst;
-// OBSOLETE       subpst->number_of_dependencies = 1;
-// OBSOLETE 
-// OBSOLETE       subpst->globals_offset =
-// OBSOLETE    subpst->n_global_syms =
-// OBSOLETE    subpst->statics_offset =
-// OBSOLETE    subpst->n_static_syms = 0;
-// OBSOLETE 
-// OBSOLETE       subpst->readin = 0;
-// OBSOLETE       subpst->symtab = 0;
-// OBSOLETE       subpst->read_symtab = pst->read_symtab;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   sort_pst_symbols (pst);
-// OBSOLETE 
-// OBSOLETE   /* If there is already a psymtab or symtab for a file of this name, 
-// OBSOLETE      remove it.
-// OBSOLETE      (If there is a symtab, more drastic things also happen.)
-// OBSOLETE      This happens in VxWorks.  */
-// OBSOLETE   free_named_symtabs (pst->filename);
-// OBSOLETE 
-// OBSOLETE   if (num_includes == 0
-// OBSOLETE       && number_dependencies == 0
-// OBSOLETE       && pst->n_global_syms == 0
-// OBSOLETE       && pst->n_static_syms == 0)
-// OBSOLETE     {
-// OBSOLETE       /* Throw away this psymtab, it's empty.  We can't deallocate it, since
-// OBSOLETE          it is on the obstack, but we can forget to chain it on the list.  */
-// OBSOLETE       /* Indicate that psymtab was thrown away.  */
-// OBSOLETE 
-// OBSOLETE       discard_psymtab (pst);
-// OBSOLETE 
-// OBSOLETE       pst = (struct partial_symtab *) NULL;
-// OBSOLETE     }
-// OBSOLETE   return pst;
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE static void
-// OBSOLETE os9k_psymtab_to_symtab_1 (struct partial_symtab *pst)
-// OBSOLETE {
-// OBSOLETE   struct cleanup *old_chain;
-// OBSOLETE   int i;
-// OBSOLETE 
-// OBSOLETE   if (!pst)
-// OBSOLETE     return;
-// OBSOLETE 
-// OBSOLETE   if (pst->readin)
-// OBSOLETE     {
-// OBSOLETE       fprintf_unfiltered (gdb_stderr, "Psymtab for %s already read in.  Shouldn't happen.\n",
-// OBSOLETE                      pst->filename);
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   /* Read in all partial symtabs on which this one is dependent */
-// OBSOLETE   for (i = 0; i < pst->number_of_dependencies; i++)
-// OBSOLETE     if (!pst->dependencies[i]->readin)
-// OBSOLETE       {
-// OBSOLETE    /* Inform about additional files that need to be read in.  */
-// OBSOLETE    if (info_verbose)
-// OBSOLETE      {
-// OBSOLETE        fputs_filtered (" ", gdb_stdout);
-// OBSOLETE        wrap_here ("");
-// OBSOLETE        fputs_filtered ("and ", gdb_stdout);
-// OBSOLETE        wrap_here ("");
-// OBSOLETE        printf_filtered ("%s...", pst->dependencies[i]->filename);
-// OBSOLETE        wrap_here ("");     /* Flush output */
-// OBSOLETE        gdb_flush (gdb_stdout);
-// OBSOLETE      }
-// OBSOLETE    os9k_psymtab_to_symtab_1 (pst->dependencies[i]);
-// OBSOLETE       }
-// OBSOLETE 
-// OBSOLETE   if (LDSYMCNT (pst))              /* Otherwise it's a dummy */
-// OBSOLETE     {
-// OBSOLETE       /* Init stuff necessary for reading in symbols */
-// OBSOLETE       stabsread_init ();
-// OBSOLETE       buildsym_init ();
-// OBSOLETE       old_chain = make_cleanup (really_free_pendings, 0);
-// OBSOLETE 
-// OBSOLETE       /* Read in this file's symbols */
-// OBSOLETE       os9k_read_ofile_symtab (pst);
-// OBSOLETE       sort_symtab_syms (pst->symtab);
-// OBSOLETE       do_cleanups (old_chain);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   pst->readin = 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Read in all of the symbols for a given psymtab for real.
-// OBSOLETE    Be verbose about it if the user wants that.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE os9k_psymtab_to_symtab (struct partial_symtab *pst)
-// OBSOLETE {
-// OBSOLETE   bfd *sym_bfd;
-// OBSOLETE 
-// OBSOLETE   if (!pst)
-// OBSOLETE     return;
-// OBSOLETE 
-// OBSOLETE   if (pst->readin)
-// OBSOLETE     {
-// OBSOLETE       fprintf_unfiltered (gdb_stderr, "Psymtab for %s already read in.  Shouldn't happen.\n",
-// OBSOLETE                      pst->filename);
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (LDSYMCNT (pst) || pst->number_of_dependencies)
-// OBSOLETE     {
-// OBSOLETE       /* Print the message now, before reading the string table,
-// OBSOLETE          to avoid disconcerting pauses.  */
-// OBSOLETE       if (info_verbose)
-// OBSOLETE    {
-// OBSOLETE      printf_filtered ("Reading in symbols for %s...", pst->filename);
-// OBSOLETE      gdb_flush (gdb_stdout);
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       sym_bfd = pst->objfile->obfd;
-// OBSOLETE       os9k_psymtab_to_symtab_1 (pst);
-// OBSOLETE 
-// OBSOLETE       /* Match with global symbols.  This only needs to be done once,
-// OBSOLETE          after all of the symtabs and dependencies have been read in.   */
-// OBSOLETE       scan_file_globals (pst->objfile);
-// OBSOLETE 
-// OBSOLETE       /* Finish up the debug error message.  */
-// OBSOLETE       if (info_verbose)
-// OBSOLETE    printf_filtered ("done.\n");
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Read in a defined section of a specific object file's symbols. */
-// OBSOLETE static void
-// OBSOLETE os9k_read_ofile_symtab (struct partial_symtab *pst)
-// OBSOLETE {
-// OBSOLETE   register struct internal_symstruct *bufp;
-// OBSOLETE   unsigned char type;
-// OBSOLETE   unsigned max_symnum;
-// OBSOLETE   register bfd *abfd;
-// OBSOLETE   struct objfile *objfile;
-// OBSOLETE   int sym_offset;          /* Offset to start of symbols to read */
-// OBSOLETE   CORE_ADDR text_offset;   /* Start of text segment for symbols */
-// OBSOLETE   int text_size;           /* Size of text segment for symbols */
-// OBSOLETE   FILE *dbg_file;
-// OBSOLETE 
-// OBSOLETE   objfile = pst->objfile;
-// OBSOLETE   sym_offset = LDSYMOFF (pst);
-// OBSOLETE   max_symnum = LDSYMCNT (pst);
-// OBSOLETE   text_offset = pst->textlow;
-// OBSOLETE   text_size = pst->texthigh - pst->textlow;
-// OBSOLETE 
-// OBSOLETE   current_objfile = objfile;
-// OBSOLETE   subfile_stack = NULL;
-// OBSOLETE   last_source_file = NULL;
-// OBSOLETE 
-// OBSOLETE   abfd = objfile->obfd;
-// OBSOLETE   dbg_file = objfile->auxf2;
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE   /* It is necessary to actually read one symbol *before* the start
-// OBSOLETE      of this symtab's symbols, because the GCC_COMPILED_FLAG_SYMBOL
-// OBSOLETE      occurs before the N_SO symbol.
-// OBSOLETE      Detecting this in read_dbx_symtab
-// OBSOLETE      would slow down initial readin, so we look for it here instead. */
-// OBSOLETE   if (!processing_acc_compilation && sym_offset >= (int) symbol_size)
-// OBSOLETE     {
-// OBSOLETE       fseek (objefile->auxf2, sym_offset, SEEK_CUR);
-// OBSOLETE       fill_sym (objfile->auxf2, abfd);
-// OBSOLETE       bufp = symbuf;
-// OBSOLETE 
-// OBSOLETE       processing_gcc_compilation = 0;
-// OBSOLETE       if (bufp->n_type == N_TEXT)
-// OBSOLETE    {
-// OBSOLETE      if (STREQ (namestring, GCC_COMPILED_FLAG_SYMBOL))
-// OBSOLETE        processing_gcc_compilation = 1;
-// OBSOLETE      else if (STREQ (namestring, GCC2_COMPILED_FLAG_SYMBOL))
-// OBSOLETE        processing_gcc_compilation = 2;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       /* Try to select a C++ demangling based on the compilation unit
-// OBSOLETE          producer. */
-// OBSOLETE 
-// OBSOLETE       if (processing_gcc_compilation)
-// OBSOLETE    {
-// OBSOLETE      if (AUTO_DEMANGLING)
-// OBSOLETE        {
-// OBSOLETE          set_demangling_style (GNU_DEMANGLING_STYLE_STRING);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       /* The N_SO starting this symtab is the first symbol, so we
-// OBSOLETE          better not check the symbol before it.  I'm not this can
-// OBSOLETE          happen, but it doesn't hurt to check for it.  */
-// OBSOLETE       bfd_seek (symfile_bfd, sym_offset, SEEK_CUR);
-// OBSOLETE       processing_gcc_compilation = 0;
-// OBSOLETE     }
-// OBSOLETE #endif /* 0 */
-// OBSOLETE 
-// OBSOLETE   fseek (dbg_file, (long) sym_offset, 0);
-// OBSOLETE /*
-// OBSOLETE    if (bufp->n_type != (unsigned char)N_SYM_SYM)
-// OBSOLETE    error("First symbol in segment of executable not a source symbol");
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE   for (symnum = 0; symnum < max_symnum; symnum++)
-// OBSOLETE     {
-// OBSOLETE       QUIT;                        /* Allow this to be interruptable */
-// OBSOLETE       fill_sym (dbg_file, abfd);
-// OBSOLETE       bufp = symbuf;
-// OBSOLETE       type = bufp->n_type;
-// OBSOLETE 
-// OBSOLETE       os9k_process_one_symbol ((int) type, (int) bufp->n_desc,
-// OBSOLETE     (CORE_ADDR) bufp->n_value, bufp->n_strx, pst->section_offsets, objfile);
-// OBSOLETE 
-// OBSOLETE       /* We skip checking for a new .o or -l file; that should never
-// OBSOLETE          happen in this routine. */
-// OBSOLETE #if 0
-// OBSOLETE       else
-// OBSOLETE       if (type == N_TEXT)
-// OBSOLETE    {
-// OBSOLETE      /* I don't think this code will ever be executed, because
-// OBSOLETE         the GCC_COMPILED_FLAG_SYMBOL usually is right before
-// OBSOLETE         the N_SO symbol which starts this source file.
-// OBSOLETE         However, there is no reason not to accept
-// OBSOLETE         the GCC_COMPILED_FLAG_SYMBOL anywhere.  */
-// OBSOLETE 
-// OBSOLETE      if (STREQ (namestring, GCC_COMPILED_FLAG_SYMBOL))
-// OBSOLETE        processing_gcc_compilation = 1;
-// OBSOLETE      else if (STREQ (namestring, GCC2_COMPILED_FLAG_SYMBOL))
-// OBSOLETE        processing_gcc_compilation = 2;
-// OBSOLETE 
-// OBSOLETE      if (AUTO_DEMANGLING)
-// OBSOLETE        {
-// OBSOLETE          set_demangling_style (GNU_DEMANGLING_STYLE_STRING);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       else if (type & N_EXT || type == (unsigned char) N_TEXT
-// OBSOLETE           || type == (unsigned char) N_NBTEXT
-// OBSOLETE    )
-// OBSOLETE    {
-// OBSOLETE      /* Global symbol: see if we came across a dbx defintion for
-// OBSOLETE         a corresponding symbol.  If so, store the value.  Remove
-// OBSOLETE         syms from the chain when their values are stored, but
-// OBSOLETE         search the whole chain, as there may be several syms from
-// OBSOLETE         different files with the same name. */
-// OBSOLETE      /* This is probably not true.  Since the files will be read
-// OBSOLETE         in one at a time, each reference to a global symbol will
-// OBSOLETE         be satisfied in each file as it appears. So we skip this
-// OBSOLETE         section. */
-// OBSOLETE      ;
-// OBSOLETE    }
-// OBSOLETE #endif /* 0 */
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   current_objfile = NULL;
-// OBSOLETE 
-// OBSOLETE   /* In a Solaris elf file, this variable, which comes from the
-// OBSOLETE      value of the N_SO symbol, will still be 0.  Luckily, text_offset,
-// OBSOLETE      which comes from pst->textlow is correct. */
-// OBSOLETE   if (last_source_start_addr == 0)
-// OBSOLETE     last_source_start_addr = text_offset;
-// OBSOLETE   pst->symtab = end_symtab (text_offset + text_size, objfile, SECT_OFF_TEXT (objfile));
-// OBSOLETE   end_stabs ();
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE 
-// OBSOLETE /* This handles a single symbol from the symbol-file, building symbols
-// OBSOLETE    into a GDB symtab.  It takes these arguments and an implicit argument.
-// OBSOLETE 
-// OBSOLETE    TYPE is the type field of the ".stab" symbol entry.
-// OBSOLETE    DESC is the desc field of the ".stab" entry.
-// OBSOLETE    VALU is the value field of the ".stab" entry.
-// OBSOLETE    NAME is the symbol name, in our address space.
-// OBSOLETE    SECTION_OFFSETS is a set of amounts by which the sections of this object
-// OBSOLETE    file were relocated when it was loaded into memory.
-// OBSOLETE    All symbols that refer
-// OBSOLETE    to memory locations need to be offset by these amounts.
-// OBSOLETE    OBJFILE is the object file from which we are reading symbols.
-// OBSOLETE    It is used in end_symtab.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE os9k_process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
-// OBSOLETE                     struct section_offsets *section_offsets,
-// OBSOLETE                     struct objfile *objfile)
-// OBSOLETE {
-// OBSOLETE   register struct context_stack *new;
-// OBSOLETE   /* The stab type used for the definition of the last function.
-// OBSOLETE      N_STSYM or N_GSYM for SunOS4 acc; N_FUN for other compilers.  */
-// OBSOLETE   static int function_stab_type = 0;
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE   /* Something is wrong if we see real data before
-// OBSOLETE      seeing a source file name.  */
-// OBSOLETE   if (last_source_file == NULL && type != (unsigned char) N_SO)
-// OBSOLETE     {
-// OBSOLETE       /* Ignore any symbols which appear before an N_SO symbol.
-// OBSOLETE          Currently no one puts symbols there, but we should deal
-// OBSOLETE          gracefully with the case.  A complain()t might be in order,
-// OBSOLETE          but this should not be an error ().  */
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE #endif /* 0 */
-// OBSOLETE 
-// OBSOLETE   switch (type)
-// OBSOLETE     {
-// OBSOLETE     case N_SYM_LBRAC:
-// OBSOLETE       /* On most machines, the block addresses are relative to the
-// OBSOLETE          N_SO, the linker did not relocate them (sigh).  */
-// OBSOLETE       valu += ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE       new = push_context (desc, valu);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case N_SYM_RBRAC:
-// OBSOLETE       valu += ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE       new = pop_context ();
-// OBSOLETE 
-// OBSOLETE #if !defined (OS9K_VARIABLES_INSIDE_BLOCK)
-// OBSOLETE #define OS9K_VARIABLES_INSIDE_BLOCK(desc, gcc_p) 1
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE       if (!OS9K_VARIABLES_INSIDE_BLOCK (desc, processing_gcc_compilation))
-// OBSOLETE    local_symbols = new->locals;
-// OBSOLETE 
-// OBSOLETE       if (context_stack_depth > 1)
-// OBSOLETE    {
-// OBSOLETE      /* This is not the outermost LBRAC...RBRAC pair in the function,
-// OBSOLETE         its local symbols preceded it, and are the ones just recovered
-// OBSOLETE         from the context stack.  Define the block for them (but don't
-// OBSOLETE         bother if the block contains no symbols.  Should we complain
-// OBSOLETE         on blocks without symbols?  I can't think of any useful purpose
-// OBSOLETE         for them).  */
-// OBSOLETE      if (local_symbols != NULL)
-// OBSOLETE        {
-// OBSOLETE          /* Muzzle a compiler bug that makes end < start.  (which
-// OBSOLETE             compilers?  Is this ever harmful?).  */
-// OBSOLETE          if (new->start_addr > valu)
-// OBSOLETE            {
-// OBSOLETE              complain (&lbrac_rbrac_complaint);
-// OBSOLETE              new->start_addr = valu;
-// OBSOLETE            }
-// OBSOLETE          /* Make a block for the local symbols within.  */
-// OBSOLETE          finish_block (0, &local_symbols, new->old_blocks,
-// OBSOLETE                        new->start_addr, valu, objfile);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      if (context_stack_depth == 0)
-// OBSOLETE        {
-// OBSOLETE          within_function = 0;
-// OBSOLETE          /* Make a block for the local symbols within.  */
-// OBSOLETE          finish_block (new->name, &local_symbols, new->old_blocks,
-// OBSOLETE                        new->start_addr, valu, objfile);
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          /* attach local_symbols to the end of new->locals */
-// OBSOLETE          if (!new->locals)
-// OBSOLETE            new->locals = local_symbols;
-// OBSOLETE          else
-// OBSOLETE            {
-// OBSOLETE              struct pending *p;
-// OBSOLETE 
-// OBSOLETE              p = new->locals;
-// OBSOLETE              while (p->next)
-// OBSOLETE                p = p->next;
-// OBSOLETE              p->next = local_symbols;
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       if (OS9K_VARIABLES_INSIDE_BLOCK (desc, processing_gcc_compilation))
-// OBSOLETE    /* Now pop locals of block just finished.  */
-// OBSOLETE    local_symbols = new->locals;
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE     case N_SYM_SLINE:
-// OBSOLETE       /* This type of "symbol" really just records
-// OBSOLETE          one line-number -- core-address correspondence.
-// OBSOLETE          Enter it in the line list for this symbol table. */
-// OBSOLETE       /* Relocate for dynamic loading and for ELF acc fn-relative syms.  */
-// OBSOLETE       valu += ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE       /* FIXME: loses if sizeof (char *) > sizeof (int) */
-// OBSOLETE       gdb_assert (sizeof (name) <= sizeof (int));
-// OBSOLETE       record_line (current_subfile, (int) name, valu);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE       /* The following symbol types need to have the appropriate offset added
-// OBSOLETE          to their value; then we process symbol definitions in the name.  */
-// OBSOLETE     case N_SYM_SYM:
-// OBSOLETE 
-// OBSOLETE       if (name)
-// OBSOLETE    {
-// OBSOLETE      char deftype;
-// OBSOLETE      char *dirn, *n;
-// OBSOLETE      char *p = strchr (name, ':');
-// OBSOLETE      if (p == NULL)
-// OBSOLETE        deftype = '\0';
-// OBSOLETE      else
-// OBSOLETE        deftype = p[1];
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE      switch (deftype)
-// OBSOLETE        {
-// OBSOLETE        case 'S':
-// OBSOLETE          valu += ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE          n = strrchr (name, '/');
-// OBSOLETE          if (n != NULL)
-// OBSOLETE            {
-// OBSOLETE              *n = '\0';
-// OBSOLETE              n++;
-// OBSOLETE              dirn = name;
-// OBSOLETE            }
-// OBSOLETE          else
-// OBSOLETE            {
-// OBSOLETE              n = name;
-// OBSOLETE              dirn = NULL;
-// OBSOLETE            }
-// OBSOLETE          *p = '\0';
-// OBSOLETE          if (symfile_depth++ == 0)
-// OBSOLETE            {
-// OBSOLETE              if (last_source_file)
-// OBSOLETE                {
-// OBSOLETE                  end_symtab (valu, objfile, SECT_OFF_TEXT (objfile));
-// OBSOLETE                  end_stabs ();
-// OBSOLETE                }
-// OBSOLETE              start_stabs ();
-// OBSOLETE              os9k_stabs = 1;
-// OBSOLETE              start_symtab (n, dirn, valu);
-// OBSOLETE              record_debugformat ("OS9");
-// OBSOLETE            }
-// OBSOLETE          else
-// OBSOLETE            {
-// OBSOLETE              push_subfile ();
-// OBSOLETE              start_subfile (n, dirn != NULL ? dirn : current_subfile->dirname);
-// OBSOLETE            }
-// OBSOLETE          break;
-// OBSOLETE 
-// OBSOLETE        case 'f':
-// OBSOLETE        case 'F':
-// OBSOLETE          valu += ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile));
-// OBSOLETE          function_stab_type = type;
-// OBSOLETE 
-// OBSOLETE          within_function = 1;
-// OBSOLETE          new = push_context (0, valu);
-// OBSOLETE          new->name = define_symbol (valu, name, desc, type, objfile);
-// OBSOLETE          break;
-// OBSOLETE 
-// OBSOLETE        case 'V':
-// OBSOLETE        case 'v':
-// OBSOLETE          valu += ANOFFSET (section_offsets, SECT_OFF_DATA (objfile));
-// OBSOLETE          define_symbol (valu, name, desc, type, objfile);
-// OBSOLETE          break;
-// OBSOLETE 
-// OBSOLETE        default:
-// OBSOLETE          define_symbol (valu, name, desc, type, objfile);
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case N_SYM_SE:
-// OBSOLETE       if (--symfile_depth != 0)
-// OBSOLETE    start_subfile (pop_subfile (), current_subfile->dirname);
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     default:
-// OBSOLETE       complain (&unknown_symtype_complaint,
-// OBSOLETE            local_hex_string ((unsigned long) type));
-// OBSOLETE       /* FALLTHROUGH */
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case N_SYM_CMPLR:
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE   previous_stab_code = type;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct sym_fns os9k_sym_fns =
-// OBSOLETE {
-// OBSOLETE   bfd_target_os9k_flavour,
-// OBSOLETE   os9k_new_init,           /* sym_new_init: init anything gbl to entire symtab */
-// OBSOLETE   os9k_symfile_init,               /* sym_init: read initial info, setup for sym_read() */
-// OBSOLETE   os9k_symfile_read,               /* sym_read: read a symbol file into symtab */
-// OBSOLETE   os9k_symfile_finish,             /* sym_finish: finished with file, cleanup */
-// OBSOLETE   default_symfile_offsets, /* sym_offsets: parse user's offsets to internal form */
-// OBSOLETE   NULL                             /* next: pointer to next struct sym_fns */
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_os9kread (void)
-// OBSOLETE {
-// OBSOLETE   add_symtab_fns (&os9k_sym_fns);
-// OBSOLETE }
index 7caebf3d3c5118a29eef991fbf63ee82747148b8..47d08a2ebce3e5ee192320f14c3157181d92cbb6 100644 (file)
    Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
+
+#include "gdb_assert.h"
 #include "gdb_string.h"
+
 #include "osabi.h"
 
 #include "elf-bfd.h"
@@ -46,6 +49,8 @@ static const char * const gdb_osabi_names[] =
   "Irix",
   "LynxOS",
   "Interix",
+  "HP/UX ELF",
+  "HP/UX SOM",
 
   "ARM EABI v1",
   "ARM EABI v2",
@@ -68,7 +73,7 @@ gdbarch_osabi_name (enum gdb_osabi osabi)
 struct gdb_osabi_handler  
 {
   struct gdb_osabi_handler *next;
-  enum bfd_architecture arch;
+  const struct bfd_arch_info *arch_info;
   enum gdb_osabi osabi;
   void (*init_osabi)(struct gdbarch_info, struct gdbarch *);
 };
@@ -76,11 +81,13 @@ struct gdb_osabi_handler
 static struct gdb_osabi_handler *gdb_osabi_handler_list;
 
 void
-gdbarch_register_osabi (enum bfd_architecture arch, enum gdb_osabi osabi,
+gdbarch_register_osabi (enum bfd_architecture arch, unsigned long machine,
+                       enum gdb_osabi osabi,
                         void (*init_osabi)(struct gdbarch_info,
                                           struct gdbarch *))
 {
   struct gdb_osabi_handler **handler_p;
+  const struct bfd_arch_info *arch_info = bfd_lookup_arch (arch, machine);
 
   /* Registering an OS ABI handler for "unknown" is not allowed.  */
   if (osabi == GDB_OSABI_UNKNOWN)
@@ -91,14 +98,16 @@ gdbarch_register_osabi (enum bfd_architecture arch, enum gdb_osabi osabi,
          "OS ABI \"%s\" for architecture %s was made.  The handler will "
         "not be registered",
         gdbarch_osabi_name (osabi),
-        bfd_printable_arch_mach (arch, 0));
+        bfd_printable_arch_mach (arch, machine));
       return;
     }
 
+  gdb_assert (arch_info);
+
   for (handler_p = &gdb_osabi_handler_list; *handler_p != NULL;
        handler_p = &(*handler_p)->next)
     {
-      if ((*handler_p)->arch == arch
+      if ((*handler_p)->arch_info == arch_info
          && (*handler_p)->osabi == osabi)
        {
          internal_error
@@ -106,7 +115,7 @@ gdbarch_register_osabi (enum bfd_architecture arch, enum gdb_osabi osabi,
             "gdbarch_register_osabi: A handler for OS ABI \"%s\" "
             "has already been registered for architecture %s",
             gdbarch_osabi_name (osabi),
-            bfd_printable_arch_mach (arch, 0));
+            arch_info->printable_name);
          /* If user wants to continue, override previous definition.  */
          (*handler_p)->init_osabi = init_osabi;
          return;
@@ -116,7 +125,7 @@ gdbarch_register_osabi (enum bfd_architecture arch, enum gdb_osabi osabi,
   (*handler_p)
     = (struct gdb_osabi_handler *) xmalloc (sizeof (struct gdb_osabi_handler));
   (*handler_p)->next = NULL;
-  (*handler_p)->arch = arch;
+  (*handler_p)->arch_info = arch_info;
   (*handler_p)->osabi = osabi;
   (*handler_p)->init_osabi = init_osabi;
 }
@@ -228,9 +237,9 @@ void
 gdbarch_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch,
                     enum gdb_osabi osabi)
 {
-  struct gdb_osabi_handler *handler;
-  bfd *abfd = info.abfd;
   const struct bfd_arch_info *arch_info = gdbarch_bfd_arch_info (gdbarch);
+  const struct bfd_arch_info *compatible;
+  struct gdb_osabi_handler *handler;
 
   if (osabi == GDB_OSABI_UNKNOWN)
     {
@@ -242,8 +251,19 @@ gdbarch_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch,
   for (handler = gdb_osabi_handler_list; handler != NULL;
        handler = handler->next)
     {
-      if (handler->arch == bfd_get_arch (abfd)
-         && handler->osabi == osabi)
+      if (handler->osabi != osabi)
+       continue;
+
+      /* Check whether the machine type and architecture of the
+         handler are compatible with the desired machine type and
+         architecture.
+
+        NOTE: kettenis/20021027: There may be more than one machine
+        type that is compatible with the desired machine type.  Right
+        now we simply return the first match, which is fine for now.
+        However, we might want to do something smarter in the future.  */
+      compatible = arch_info->compatible (arch_info, handler->arch_info);
+      if (compatible == handler->arch_info)
        {
          (*handler->init_osabi) (info, gdbarch);
          return;
@@ -404,6 +424,10 @@ generic_elf_osabi_sniffer (bfd *abfd)
     case ELFOSABI_SOLARIS:
       osabi = GDB_OSABI_SOLARIS;
       break;
+
+    case ELFOSABI_HPUX:
+      osabi = GDB_OSABI_HPUX_ELF;
+      break;
     }
 
   if (osabi == GDB_OSABI_UNKNOWN)
index 56bb0a11f384bdccd65bf07816876c363d4c7d64..ebff83195bff5fbbce871a5483b815dc26a04b2c 100644 (file)
@@ -42,6 +42,8 @@ enum gdb_osabi
   GDB_OSABI_IRIX,
   GDB_OSABI_LYNXOS,
   GDB_OSABI_INTERIX,
+  GDB_OSABI_HPUX_ELF,
+  GDB_OSABI_HPUX_SOM,
 
   GDB_OSABI_ARM_EABI_V1,
   GDB_OSABI_ARM_EABI_V2,
@@ -59,9 +61,11 @@ void gdbarch_register_osabi_sniffer (enum bfd_architecture,
                                     enum bfd_flavour,
                                     enum gdb_osabi (*)(bfd *));
 
-/* Register a handler for an OS ABI variant for a given architecture.  There
-   should be only one handler for a given OS ABI each architecture family.  */
-void gdbarch_register_osabi (enum bfd_architecture, enum gdb_osabi,
+/* Register a handler for an OS ABI variant for a given architecture
+   and machine type.  There should be only one handler for a given OS
+   ABI for each architecture and machine type combination.  */
+void gdbarch_register_osabi (enum bfd_architecture, unsigned long,
+                            enum gdb_osabi,
                              void (*)(struct gdbarch_info,
                                      struct gdbarch *));
 
index 15b67e7eee1c3d67ceaf8dc2b08feaf0b6a187d9..c52c0a54438d1c0afd9d824122f99544f7993ce9 100644 (file)
@@ -206,7 +206,7 @@ static int search_field;
 
 /* Object pascal */
 %token THIS
-%token <lval> TRUE FALSE
+%token <lval> TRUEKEYWORD FALSEKEYWORD
 
 %left ','
 %left ABOVE_COMMA
@@ -294,7 +294,7 @@ exp :       exp '.' { search_field = 1; }
                            { while (TYPE_CODE (current_type) == TYPE_CODE_PTR)
                                current_type = TYPE_TARGET_TYPE (current_type);
                              current_type = lookup_struct_elt_type (
-                               current_type, $4.ptr, false); };
+                               current_type, $4.ptr, 0); };
                         } ; 
 exp    :       exp '['
                        /* We need to save the current_type value */
@@ -343,7 +343,15 @@ arglist    :
        ;
 
 exp    :       type '(' exp ')' %prec UNARY
-                       { write_exp_elt_opcode (UNOP_CAST);
+                       { if (current_type)
+                           {
+                             /* Allow automatic dereference of classes.  */
+                             if ((TYPE_CODE (current_type) == TYPE_CODE_PTR)
+                                 && (TYPE_CODE (TYPE_TARGET_TYPE (current_type)) == TYPE_CODE_CLASS)
+                                 && (TYPE_CODE ($1) == TYPE_CODE_CLASS))
+                               write_exp_elt_opcode (UNOP_IND);
+                           }
+                         write_exp_elt_opcode (UNOP_CAST);
                          write_exp_elt_type ($1);
                          write_exp_elt_opcode (UNOP_CAST); 
                          current_type = $1; }
@@ -427,13 +435,13 @@ exp       :       exp ASSIGN exp
                        { write_exp_elt_opcode (BINOP_ASSIGN); }
        ;
 
-exp    :       TRUE
+exp    :       TRUEKEYWORD
                        { write_exp_elt_opcode (OP_BOOL);
                          write_exp_elt_longcst ((LONGEST) $1);
                          write_exp_elt_opcode (OP_BOOL); }
        ;
 
-exp    :       FALSE
+exp    :       FALSEKEYWORD
                        { write_exp_elt_opcode (OP_BOOL);
                          write_exp_elt_longcst ((LONGEST) $1);
                          write_exp_elt_opcode (OP_BOOL); }
@@ -505,8 +513,28 @@ exp        :       STRING
 
 /* Object pascal  */
 exp    :       THIS
-                       { write_exp_elt_opcode (OP_THIS);
-                         write_exp_elt_opcode (OP_THIS); }
+                       { 
+                         struct value * this_val;
+                         struct type * this_type;
+                         write_exp_elt_opcode (OP_THIS);
+                         write_exp_elt_opcode (OP_THIS); 
+                         /* we need type of this */
+                         this_val = value_of_this (0); 
+                         if (this_val)
+                           this_type = this_val->type;
+                         else
+                           this_type = NULL;
+                         if (this_type)
+                           {
+                             if (TYPE_CODE (this_type) == TYPE_CODE_PTR)
+                               {
+                                 this_type = TYPE_TARGET_TYPE (this_type);
+                                 write_exp_elt_opcode (UNOP_IND);
+                               }
+                           }
+               
+                         current_type = this_type;
+                       }
        ;
 
 /* end of object pascal.  */
@@ -651,7 +679,7 @@ variable:   name_not_typename
                              if (this_type)
                                current_type = lookup_struct_elt_type (
                                  this_type,
-                                 copy_name($1.stoken), false);
+                                 copy_name ($1.stoken), 0);
                              else
                                current_type = NULL; 
                            }
@@ -695,7 +723,9 @@ type        :       ptype
        ;
 
 typebase  /* Implements (approximately): (type-qualifier)* type-specifier */
-       :       TYPENAME
+       :       '^' typebase
+                       { $$ = lookup_pointer_type ($2); }
+       |       TYPENAME
                        { $$ = $1.type; }
        |       STRUCT name
                        { $$ = lookup_struct (copy_name ($2),
@@ -1351,14 +1381,14 @@ yylex ()
       if (STREQ (uptokstart, "FALSE"))
        {
           yylval.lval = 0;
-          return FALSE;
+          return FALSEKEYWORD;
         }
       break;
     case 4:
       if (STREQ (uptokstart, "TRUE"))
        {
           yylval.lval = 1;
-         return TRUE;
+         return TRUEKEYWORD;
         }
       if (STREQ (uptokstart, "SELF"))
         {
index fce8fea036510fb70a479e22c9ead9d85986f55b..43910dad46f5cf36dd6975b35222c72a968b2e51 100644 (file)
@@ -80,7 +80,7 @@ struct so_list
     struct load_module_desc pa64_solib_desc;
     struct section_table *sections;
     struct section_table *sections_end;
-    boolean loaded;
+    int loaded;
   };
 
 static struct so_list *so_list_head;
@@ -111,8 +111,8 @@ typedef struct
     CORE_ADDR dld_flags_addr;
     LONGEST dld_flags;
     sec_ptr dyninfo_sect;
-    boolean have_read_dld_descriptor;
-    boolean is_valid;
+    int have_read_dld_descriptor;
+    int is_valid;
     CORE_ADDR load_map;
     CORE_ADDR load_map_addr;
     struct load_module_desc dld_desc;
@@ -127,11 +127,11 @@ static void pa64_solib_sharedlibrary_command (char *, int);
 
 static void *pa64_target_read_memory (void *, CORE_ADDR, size_t, int);
 
-static boolean read_dld_descriptor (struct target_ops *, int readsyms);
+static int read_dld_descriptor (struct target_ops *, int readsyms);
 
-static boolean read_dynamic_info (asection *, dld_cache_t *);
+static int read_dynamic_info (asection *, dld_cache_t *);
 
-static void add_to_solist (boolean, char *, int, struct load_module_desc *,
+static void add_to_solist (int, char *, int, struct load_module_desc *,
                           CORE_ADDR, struct target_ops *);
 
 /* When examining the shared library for debugging information we have to
@@ -935,7 +935,7 @@ so_lib_thread_start_addr (struct so_list *so)
    descriptor.  If the library is archive bound, then return zero, else
    return nonzero.  */
 
-static boolean
+static int
 read_dld_descriptor (struct target_ops *target, int readsyms)
 {
   char *dll_path;
@@ -1004,7 +1004,7 @@ read_dld_descriptor (struct target_ops *target, int readsyms)
    which is stored in dld_cache.  The routine elf_locate_base in solib.c 
    was used as a model for this.  */
 
-static boolean
+static int
 read_dynamic_info (asection *dyninfo_sect, dld_cache_t *dld_cache_p)
 {
   char *buf;
@@ -1102,7 +1102,7 @@ pa64_target_read_memory (void *buffer, CORE_ADDR ptr, size_t bufsiz, int ident)
    be read from the inferior process at the address load_module_desc_addr.  */
 
 static void
-add_to_solist (boolean from_tty, char *dll_path, int readsyms,
+add_to_solist (int from_tty, char *dll_path, int readsyms,
               struct load_module_desc *load_module_desc_p,
               CORE_ADDR load_module_desc_addr, struct target_ops *target)
 {
index f44bcec843441c39260ee8ae5e99ab59e364f4a4..cb598339799b16aba22e0b7764681db0ae85180b 100644 (file)
@@ -830,7 +830,7 @@ length_of_subexp (register struct expression *expr, register int endpos)
       args = 1 + longest_to_int (expr->elts[endpos - 2].longconst);
       break;
 
-    case OP_MSGCALL:           /* Objective C message (method) call */
+    case OP_OBJC_MSGCALL:      /* Objective C message (method) call */
       oplen = 4;
       args = 1 + longest_to_int (expr->elts[endpos - 2].longconst);
       break;
@@ -866,8 +866,8 @@ length_of_subexp (register struct expression *expr, register int endpos)
       /* fall through */
     case OP_M2_STRING:
     case OP_STRING:
-    case OP_NSSTRING:          /* Objective C Foundation Class NSString constant */
-    case OP_SELECTOR:          /* Objective C "@selector" pseudo-op */
+    case OP_OBJC_NSSTRING:     /* Objective C Foundation Class NSString constant */
+    case OP_OBJC_SELECTOR:     /* Objective C "@selector" pseudo-op */
     case OP_NAME:
     case OP_EXPRSTRING:
       oplen = longest_to_int (expr->elts[endpos - 2].longconst);
@@ -906,7 +906,7 @@ length_of_subexp (register struct expression *expr, register int endpos)
 
       /* C++ */
     case OP_THIS:
-    case OP_SELF:
+    case OP_OBJC_SELF:
       oplen = 2;
       break;
 
@@ -975,7 +975,7 @@ prefixify_subexp (register struct expression *inexpr,
       args = 1 + longest_to_int (inexpr->elts[inend - 2].longconst);
       break;
 
-    case OP_MSGCALL:           /* Objective C message (method) call */
+    case OP_OBJC_MSGCALL:      /* Objective C message (method) call */
       oplen = 4;
       args = 1 + longest_to_int (inexpr->elts[inend - 2].longconst);
       break;
@@ -1010,8 +1010,8 @@ prefixify_subexp (register struct expression *inexpr,
       /* fall through */
     case OP_M2_STRING:
     case OP_STRING:
-    case OP_NSSTRING:          /* Objective C Foundation Class NSString constant */
-    case OP_SELECTOR:          /* Objective C "@selector" pseudo-op */
+    case OP_OBJC_NSSTRING:     /* Objective C Foundation Class NSString constant */
+    case OP_OBJC_SELECTOR:     /* Objective C "@selector" pseudo-op */
     case OP_NAME:
     case OP_EXPRSTRING:
       oplen = longest_to_int (inexpr->elts[inend - 2].longconst);
@@ -1050,7 +1050,7 @@ prefixify_subexp (register struct expression *inexpr,
 
       /* C++ */
     case OP_THIS:
-    case OP_SELF:
+    case OP_OBJC_SELF:
       oplen = 2;
       break;
 
index b522241a464c1cfe3f6a88f36d4db6910e24a65b..e6753848bc97c61c6851e2e530bfe31596b6da1d 100644 (file)
@@ -79,6 +79,14 @@ struct symtoken
     int is_a_field_of_this;
   };
 
+struct objc_class_str
+  {
+    struct stoken stoken;
+    struct type *type;
+    int class;
+  };
+
+
 /* For parsing of complicated types.
    An array should be preceded in the list by the size of the array.  */
 enum type_pieces
index 721e05f8c245b93fee5d0fae800e4edcdb86494b..8e5c4f7a2e7e4098fd3b081a3e112889a6906d88 100644 (file)
@@ -20,6 +20,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
+#include "gdb_string.h"
 #include "frame.h"
 #include "inferior.h"
 #include "gdbcore.h"
index 6adfe297170cf9a64c0552f1d3806caeaeb20ee5..0f6699e5be9083a2ac9db69d5eb7fe40dac5d0f1 100644 (file)
@@ -143,10 +143,15 @@ static int ppc_linux_at_sigtramp_return_path (CORE_ADDR pc);
    behavior is ever fixed.)
 
    PC_IN_SIGTRAMP is called from blockframe.c as well in order to set
-   the signal_handler_caller flag.  Because of our strange definition
-   of in_sigtramp below, we can't rely on signal_handler_caller
+   the frame's type (if a SIGTRAMP_FRAME).  Because of our strange
+   definition of in_sigtramp below, we can't rely on the frame's type
    getting set correctly from within blockframe.c.  This is why we
-   take pains to set it in init_extra_frame_info().  */
+   take pains to set it in init_extra_frame_info().
+
+   NOTE: cagney/2002-11-10: I suspect the real problem here is that
+   the get_prev_frame() only initializes the frame's type after the
+   call to INIT_FRAME_INFO.  get_prev_frame() should be fixed, this
+   code shouldn't be working its way around a bug :-(.  */
 
 int
 ppc_linux_in_sigtramp (CORE_ADDR pc, char *func_name)
@@ -318,14 +323,14 @@ ppc_linux_skip_trampoline_code (CORE_ADDR pc)
 CORE_ADDR
 ppc_linux_frame_saved_pc (struct frame_info *fi)
 {
-  if (fi->signal_handler_caller)
+  if ((get_frame_type (fi) == SIGTRAMP_FRAME))
     {
       CORE_ADDR regs_addr =
        read_memory_integer (fi->frame + PPC_LINUX_REGS_PTR_OFFSET, 4);
       /* return the NIP in the regs array */
       return read_memory_integer (regs_addr + 4 * PPC_LINUX_PT_NIP, 4);
     }
-  else if (fi->next && fi->next->signal_handler_caller)
+  else if (fi->next && (get_frame_type (fi->next) == SIGTRAMP_FRAME))
     {
       CORE_ADDR regs_addr =
        read_memory_integer (fi->next->frame + PPC_LINUX_REGS_PTR_OFFSET, 4);
@@ -347,9 +352,11 @@ ppc_linux_init_extra_frame_info (int fromleaf, struct frame_info *fi)
          this is a signal frame by looking to see if the pc points
          at trampoline code */
       if (ppc_linux_at_sigtramp_return_path (fi->pc))
-       fi->signal_handler_caller = 1;
+       deprecated_set_frame_type (fi, SIGTRAMP_FRAME);
       else
-       fi->signal_handler_caller = 0;
+       /* FIXME: cagney/2002-11-10: Is this double bogus?  What
+           happens if the frame has previously been marked as a dummy?  */
+       deprecated_set_frame_type (fi, NORMAL_FRAME);
     }
 }
 
@@ -367,7 +374,7 @@ ppc_linux_frameless_function_invocation (struct frame_info *fi)
 void
 ppc_linux_frame_init_saved_regs (struct frame_info *fi)
 {
-  if (fi->signal_handler_caller)
+  if ((get_frame_type (fi) == SIGTRAMP_FRAME))
     {
       CORE_ADDR regs_addr;
       int i;
@@ -405,7 +412,7 @@ CORE_ADDR
 ppc_linux_frame_chain (struct frame_info *thisframe)
 {
   /* Kernel properly constructs the frame chain for the handler */
-  if (thisframe->signal_handler_caller)
+  if ((get_frame_type (thisframe) == SIGTRAMP_FRAME))
     return read_memory_integer ((thisframe)->frame, 4);
   else
     return rs6000_frame_chain (thisframe);
@@ -719,7 +726,7 @@ ppc_linux_init_abi (struct gdbarch_info info,
 void
 _initialize_ppc_linux_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_powerpc, GDB_OSABI_LINUX,
+  gdbarch_register_osabi (bfd_arch_powerpc, 0, GDB_OSABI_LINUX,
                          ppc_linux_init_abi);
   add_core_fns (&ppc_linux_regset_core_fns);
 }
index 3d052a83ff2b67a798a5ac4d53fdfc4419c9df4e..e58bb6a3c5f2a2a9b5014e94b1f4f3bac1233a07 100644 (file)
@@ -219,7 +219,7 @@ ppcnbsd_init_abi (struct gdbarch_info info,
 void
 _initialize_ppcnbsd_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_powerpc, GDB_OSABI_NETBSD_ELF,
+  gdbarch_register_osabi (bfd_arch_powerpc, 0, GDB_OSABI_NETBSD_ELF,
                          ppcnbsd_init_abi);
 
   add_core_fns (&ppcnbsd_core_fns);
index 4cab35081581e668a1b164307de840a3a13cdc97..9ca17a1152aab4dac6ce41b74c07c869dceb1340 100644 (file)
@@ -43,7 +43,6 @@
 #include "ui-out.h"
 #include "gdb_assert.h"
 #include "dictionary.h"
-#include "disasm.h"
 
 extern int asm_demangle;       /* Whether to demangle syms in asm printouts */
 extern int addressprint;       /* Whether to print hex addresses in HLL " */
@@ -628,15 +627,6 @@ build_address_symbolic (CORE_ADDR addr,  /* IN */
        }
     }
 
-  /* On some targets, add in extra "flag" bits to PC for
-     disassembly.  This should ensure that "rounding errors" in
-     symbol addresses that are masked for disassembly favour the
-     the correct symbol. */
-
-#ifdef GDB_TARGET_UNMASK_DISAS_PC
-  addr = GDB_TARGET_UNMASK_DISAS_PC (addr);
-#endif
-
   /* First try to find the address in the symbol table, then
      in the minsyms.  Take the closest one.  */
 
@@ -676,14 +666,6 @@ build_address_symbolic (CORE_ADDR addr,  /* IN */
   if (symbol == NULL && msymbol == NULL)
     return 1;
 
-  /* On some targets, mask out extra "flag" bits from PC for handsome
-     disassembly. */
-
-#ifdef GDB_TARGET_MASK_DISAS_PC
-  name_location = GDB_TARGET_MASK_DISAS_PC (name_location);
-  addr = GDB_TARGET_MASK_DISAS_PC (addr);
-#endif
-
   /* If the nearest symbol is too far away, don't print anything symbolic.  */
 
   /* For when CORE_ADDR is larger than unsigned int, we do math in
@@ -1240,14 +1222,8 @@ address_info (char *exp, int from_tty)
 
     case LOC_BLOCK:
       printf_filtered ("a function at address ");
-#ifdef GDB_TARGET_MASK_DISAS_PC
-      print_address_numeric
-       (load_addr = GDB_TARGET_MASK_DISAS_PC (BLOCK_START (SYMBOL_BLOCK_VALUE (sym))),
-        1, gdb_stdout);
-#else
       print_address_numeric (load_addr = BLOCK_START (SYMBOL_BLOCK_VALUE (sym)),
                             1, gdb_stdout);
-#endif
       if (section_is_overlay (section))
        {
          load_addr = overlay_unmapped_address (load_addr, section);
index de6a321620cdca2f516db5f65674853b33e61710..8dfd2e92633b6c0a9927fe60b0acde02af82ba15 100644 (file)
@@ -159,13 +159,13 @@ extern void regcache_cpy_no_passthrough (struct regcache *dest, struct regcache
    simple substitution is required when updating the code.  The
    change, as far as practical, should avoid adding references to
    global variables (e.g., current_regcache, current_frame,
-   current_gdbarch or selected_frame) and instead refer to the FRAME
-   or REGCACHE that has been passed into the containing function as
-   parameters.  Consequently, the change typically involves modifying
-   the containing function so that it takes a FRAME or REGCACHE
-   parameter.  In the case of an architecture vector method, there
-   should already be a non-deprecated variant that is parameterized
-   with FRAME or REGCACHE.  */
+   current_gdbarch or deprecated_selected_frame) and instead refer to
+   the FRAME or REGCACHE that has been passed into the containing
+   function as parameters.  Consequently, the change typically
+   involves modifying the containing function so that it takes a FRAME
+   or REGCACHE parameter.  In the case of an architecture vector
+   method, there should already be a non-deprecated variant that is
+   parameterized with FRAME or REGCACHE.  */
 
 extern char *deprecated_grub_regcache_for_registers (struct regcache *);
 extern char *deprecated_grub_regcache_for_register_valid (struct regcache *);
diff --git a/gdb/remote-bug.c b/gdb/remote-bug.c
deleted file mode 100644 (file)
index a6ffb8e..0000000
+++ /dev/null
@@ -1,1027 +0,0 @@
-// OBSOLETE /* Remote debugging interface for Motorola's MVME187BUG monitor, an embedded
-// OBSOLETE    monitor for the m88k.
-// OBSOLETE 
-// OBSOLETE    Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-// OBSOLETE    2002 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    Contributed by Cygnus Support.  Written by K. Richard Pixley.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE #include <ctype.h>
-// OBSOLETE #include <fcntl.h>
-// OBSOLETE #include <setjmp.h>
-// OBSOLETE #include <errno.h>
-// OBSOLETE 
-// OBSOLETE #include "terminal.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "gdbcmd.h"
-// OBSOLETE 
-// OBSOLETE #include "serial.h"
-// OBSOLETE #include "remote-utils.h"
-// OBSOLETE 
-// OBSOLETE /* External data declarations */
-// OBSOLETE extern int stop_soon_quietly;      /* for wait_for_inferior */
-// OBSOLETE 
-// OBSOLETE /* Forward data declarations */
-// OBSOLETE extern struct target_ops bug_ops;  /* Forward declaration */
-// OBSOLETE 
-// OBSOLETE /* Forward function declarations */
-// OBSOLETE static int bug_clear_breakpoints (void);
-// OBSOLETE 
-// OBSOLETE static int bug_read_memory (CORE_ADDR memaddr,
-// OBSOLETE                        unsigned char *myaddr, int len);
-// OBSOLETE 
-// OBSOLETE static int bug_write_memory (CORE_ADDR memaddr,
-// OBSOLETE                         unsigned char *myaddr, int len);
-// OBSOLETE 
-// OBSOLETE /* This variable is somewhat arbitrary.  It's here so that it can be
-// OBSOLETE    set from within a running gdb.  */
-// OBSOLETE 
-// OBSOLETE static int srec_max_retries = 3;
-// OBSOLETE 
-// OBSOLETE /* Each S-record download to the target consists of an S0 header
-// OBSOLETE    record, some number of S3 data records, and one S7 termination
-// OBSOLETE    record.  I call this download a "frame".  Srec_frame says how many
-// OBSOLETE    bytes will be represented in each frame.  */
-// OBSOLETE 
-// OBSOLETE #define SREC_SIZE 160
-// OBSOLETE static int srec_frame = SREC_SIZE;
-// OBSOLETE 
-// OBSOLETE /* This variable determines how many bytes will be represented in each
-// OBSOLETE    S3 s-record.  */
-// OBSOLETE 
-// OBSOLETE static int srec_bytes = 40;
-// OBSOLETE 
-// OBSOLETE /* At one point it appeared to me as though the bug monitor could not
-// OBSOLETE    really be expected to receive two sequential characters at 9600
-// OBSOLETE    baud reliably.  Echo-pacing is an attempt to force data across the
-// OBSOLETE    line even in this condition.  Specifically, in echo-pace mode, each
-// OBSOLETE    character is sent one at a time and we look for the echo before
-// OBSOLETE    sending the next.  This is excruciatingly slow.  */
-// OBSOLETE 
-// OBSOLETE static int srec_echo_pace = 0;
-// OBSOLETE 
-// OBSOLETE /* How long to wait after an srec for a possible error message.
-// OBSOLETE    Similar to the above, I tried sleeping after sending each S3 record
-// OBSOLETE    in hopes that I might actually see error messages from the bug
-// OBSOLETE    monitor.  This might actually work if we were to use sleep
-// OBSOLETE    intervals smaller than 1 second.  */
-// OBSOLETE 
-// OBSOLETE static int srec_sleep = 0;
-// OBSOLETE 
-// OBSOLETE /* Every srec_noise records, flub the checksum.  This is a debugging
-// OBSOLETE    feature.  Set the variable to something other than 1 in order to
-// OBSOLETE    inject *deliberate* checksum errors.  One might do this if one
-// OBSOLETE    wanted to test error handling and recovery.  */
-// OBSOLETE 
-// OBSOLETE static int srec_noise = 0;
-// OBSOLETE 
-// OBSOLETE /* Called when SIGALRM signal sent due to alarm() timeout.  */
-// OBSOLETE 
-// OBSOLETE /* Number of SIGTRAPs we need to simulate.  That is, the next
-// OBSOLETE    NEED_ARTIFICIAL_TRAP calls to bug_wait should just return
-// OBSOLETE    SIGTRAP without actually waiting for anything.  */
-// OBSOLETE 
-// OBSOLETE static int need_artificial_trap = 0;
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Download a file specified in 'args', to the bug.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE bug_load (char *args, int fromtty)
-// OBSOLETE {
-// OBSOLETE   bfd *abfd;
-// OBSOLETE   asection *s;
-// OBSOLETE   char buffer[1024];
-// OBSOLETE 
-// OBSOLETE   sr_check_open ();
-// OBSOLETE 
-// OBSOLETE   inferior_ptid = null_ptid;
-// OBSOLETE   abfd = bfd_openr (args, 0);
-// OBSOLETE   if (!abfd)
-// OBSOLETE     {
-// OBSOLETE       printf_filtered ("Unable to open file %s\n", args);
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (bfd_check_format (abfd, bfd_object) == 0)
-// OBSOLETE     {
-// OBSOLETE       printf_filtered ("File is not an object file\n");
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   s = abfd->sections;
-// OBSOLETE   while (s != (asection *) NULL)
-// OBSOLETE     {
-// OBSOLETE       srec_frame = SREC_SIZE;
-// OBSOLETE       if (s->flags & SEC_LOAD)
-// OBSOLETE    {
-// OBSOLETE      int i;
-// OBSOLETE 
-// OBSOLETE      char *buffer = xmalloc (srec_frame);
-// OBSOLETE 
-// OBSOLETE      printf_filtered ("%s\t: 0x%4lx .. 0x%4lx  ", s->name, s->vma, s->vma + s->_raw_size);
-// OBSOLETE      gdb_flush (gdb_stdout);
-// OBSOLETE      for (i = 0; i < s->_raw_size; i += srec_frame)
-// OBSOLETE        {
-// OBSOLETE          if (srec_frame > s->_raw_size - i)
-// OBSOLETE            srec_frame = s->_raw_size - i;
-// OBSOLETE 
-// OBSOLETE          bfd_get_section_contents (abfd, s, buffer, i, srec_frame);
-// OBSOLETE          bug_write_memory (s->vma + i, buffer, srec_frame);
-// OBSOLETE          printf_filtered ("*");
-// OBSOLETE          gdb_flush (gdb_stdout);
-// OBSOLETE        }
-// OBSOLETE      printf_filtered ("\n");
-// OBSOLETE      xfree (buffer);
-// OBSOLETE    }
-// OBSOLETE       s = s->next;
-// OBSOLETE     }
-// OBSOLETE   sprintf (buffer, "rs ip %lx", (unsigned long) abfd->start_address);
-// OBSOLETE   sr_write_cr (buffer);
-// OBSOLETE   gr_expect_prompt ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE static char *
-// OBSOLETE get_word (char **p)
-// OBSOLETE {
-// OBSOLETE   char *s = *p;
-// OBSOLETE   char *word;
-// OBSOLETE   char *copy;
-// OBSOLETE   size_t len;
-// OBSOLETE 
-// OBSOLETE   while (isspace (*s))
-// OBSOLETE     s++;
-// OBSOLETE 
-// OBSOLETE   word = s;
-// OBSOLETE 
-// OBSOLETE   len = 0;
-// OBSOLETE 
-// OBSOLETE   while (*s && !isspace (*s))
-// OBSOLETE     {
-// OBSOLETE       s++;
-// OBSOLETE       len++;
-// OBSOLETE 
-// OBSOLETE     }
-// OBSOLETE   copy = xmalloc (len + 1);
-// OBSOLETE   memcpy (copy, word, len);
-// OBSOLETE   copy[len] = 0;
-// OBSOLETE   *p = s;
-// OBSOLETE   return copy;
-// OBSOLETE }
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE static struct gr_settings bug_settings =
-// OBSOLETE {
-// OBSOLETE   "Bug>",                  /* prompt */
-// OBSOLETE   &bug_ops,                        /* ops */
-// OBSOLETE   bug_clear_breakpoints,   /* clear_all_breakpoints */
-// OBSOLETE   gr_generic_checkin,              /* checkin */
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static char *cpu_check_strings[] =
-// OBSOLETE {
-// OBSOLETE   "=",
-// OBSOLETE   "Invalid Register",
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE bug_open (char *args, int from_tty)
-// OBSOLETE {
-// OBSOLETE   if (args == NULL)
-// OBSOLETE     args = "";
-// OBSOLETE 
-// OBSOLETE   gr_open (args, from_tty, &bug_settings);
-// OBSOLETE   /* decide *now* whether we are on an 88100 or an 88110 */
-// OBSOLETE   sr_write_cr ("rs cr06");
-// OBSOLETE   sr_expect ("rs cr06");
-// OBSOLETE 
-// OBSOLETE   switch (gr_multi_scan (cpu_check_strings, 0))
-// OBSOLETE     {
-// OBSOLETE     case 0:                        /* this is an m88100 */
-// OBSOLETE       target_is_m88110 = 0;
-// OBSOLETE       break;
-// OBSOLETE     case 1:                        /* this is an m88110 */
-// OBSOLETE       target_is_m88110 = 1;
-// OBSOLETE       break;
-// OBSOLETE     default:
-// OBSOLETE       internal_error (__FILE__, __LINE__, "failed internal consistency check");
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Tell the remote machine to resume.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE bug_resume (ptid_t ptid, int step, enum target_signal sig)
-// OBSOLETE {
-// OBSOLETE   if (step)
-// OBSOLETE     {
-// OBSOLETE       sr_write_cr ("t");
-// OBSOLETE 
-// OBSOLETE       /* Force the next bug_wait to return a trap.  Not doing anything
-// OBSOLETE          about I/O from the target means that the user has to type
-// OBSOLETE          "continue" to see any.  FIXME, this should be fixed.  */
-// OBSOLETE       need_artificial_trap = 1;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     sr_write_cr ("g");
-// OBSOLETE 
-// OBSOLETE   return;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Wait until the remote machine stops, then return,
-// OBSOLETE    storing status in STATUS just as `wait' would.  */
-// OBSOLETE 
-// OBSOLETE static char *wait_strings[] =
-// OBSOLETE {
-// OBSOLETE   "At Breakpoint",
-// OBSOLETE   "Exception: Data Access Fault (Local Bus Timeout)",
-// OBSOLETE   "\r8??\?-Bug>",          /* The '\?' avoids creating a trigraph */
-// OBSOLETE   "\r197-Bug>",
-// OBSOLETE   NULL,
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE ptid_t
-// OBSOLETE bug_wait (ptid_t ptid, struct target_waitstatus *status)
-// OBSOLETE {
-// OBSOLETE   int old_timeout = sr_get_timeout ();
-// OBSOLETE   int old_immediate_quit = immediate_quit;
-// OBSOLETE 
-// OBSOLETE   status->kind = TARGET_WAITKIND_EXITED;
-// OBSOLETE   status->value.integer = 0;
-// OBSOLETE 
-// OBSOLETE   /* read off leftovers from resume so that the rest can be passed
-// OBSOLETE      back out as stdout.  */
-// OBSOLETE   if (need_artificial_trap == 0)
-// OBSOLETE     {
-// OBSOLETE       sr_expect ("Effective address: ");
-// OBSOLETE       (void) sr_get_hex_word ();
-// OBSOLETE       sr_expect ("\r\n");
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   sr_set_timeout (-1);             /* Don't time out -- user program is running. */
-// OBSOLETE   immediate_quit = 1;              /* Helps ability to QUIT */
-// OBSOLETE 
-// OBSOLETE   switch (gr_multi_scan (wait_strings, need_artificial_trap == 0))
-// OBSOLETE     {
-// OBSOLETE     case 0:                        /* breakpoint case */
-// OBSOLETE       status->kind = TARGET_WAITKIND_STOPPED;
-// OBSOLETE       status->value.sig = TARGET_SIGNAL_TRAP;
-// OBSOLETE       /* user output from the target can be discarded here. (?) */
-// OBSOLETE       gr_expect_prompt ();
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case 1:                        /* bus error */
-// OBSOLETE       status->kind = TARGET_WAITKIND_STOPPED;
-// OBSOLETE       status->value.sig = TARGET_SIGNAL_BUS;
-// OBSOLETE       /* user output from the target can be discarded here. (?) */
-// OBSOLETE       gr_expect_prompt ();
-// OBSOLETE       break;
-// OBSOLETE 
-// OBSOLETE     case 2:                        /* normal case */
-// OBSOLETE     case 3:
-// OBSOLETE       if (need_artificial_trap != 0)
-// OBSOLETE    {
-// OBSOLETE      /* stepping */
-// OBSOLETE      status->kind = TARGET_WAITKIND_STOPPED;
-// OBSOLETE      status->value.sig = TARGET_SIGNAL_TRAP;
-// OBSOLETE      need_artificial_trap--;
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      /* exit case */
-// OBSOLETE      status->kind = TARGET_WAITKIND_EXITED;
-// OBSOLETE      status->value.integer = 0;
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE     case -1:                       /* trouble */
-// OBSOLETE     default:
-// OBSOLETE       fprintf_filtered (gdb_stderr,
-// OBSOLETE                    "Trouble reading target during wait\n");
-// OBSOLETE       break;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   sr_set_timeout (old_timeout);
-// OBSOLETE   immediate_quit = old_immediate_quit;
-// OBSOLETE   return inferior_ptid;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Return the name of register number REGNO
-// OBSOLETE    in the form input and output by bug.
-// OBSOLETE 
-// OBSOLETE    Returns a pointer to a static buffer containing the answer.  */
-// OBSOLETE static char *
-// OBSOLETE get_reg_name (int regno)
-// OBSOLETE {
-// OBSOLETE   static char *rn[] =
-// OBSOLETE   {
-// OBSOLETE     "r00", "r01", "r02", "r03", "r04", "r05", "r06", "r07",
-// OBSOLETE     "r08", "r09", "r10", "r11", "r12", "r13", "r14", "r15",
-// OBSOLETE     "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
-// OBSOLETE     "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",
-// OBSOLETE 
-// OBSOLETE   /* these get confusing because we omit a few and switch some ordering around. */
-// OBSOLETE 
-// OBSOLETE     "cr01",                        /* 32 = psr */
-// OBSOLETE     "fcr62",                       /* 33 = fpsr */
-// OBSOLETE     "fcr63",                       /* 34 = fpcr */
-// OBSOLETE     "ip",                  /* this is something of a cheat. */
-// OBSOLETE   /* 35 = sxip */
-// OBSOLETE     "cr05",                        /* 36 = snip */
-// OBSOLETE     "cr06",                        /* 37 = sfip */
-// OBSOLETE 
-// OBSOLETE     "x00", "x01", "x02", "x03", "x04", "x05", "x06", "x07",
-// OBSOLETE     "x08", "x09", "x10", "x11", "x12", "x13", "x14", "x15",
-// OBSOLETE     "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23",
-// OBSOLETE     "x24", "x25", "x26", "x27", "x28", "x29", "x30", "x31",
-// OBSOLETE   };
-// OBSOLETE 
-// OBSOLETE   return rn[regno];
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #if 0                              /* not currently used */
-// OBSOLETE /* Read from remote while the input matches STRING.  Return zero on
-// OBSOLETE    success, -1 on failure.  */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE bug_scan (char *s)
-// OBSOLETE {
-// OBSOLETE   int c;
-// OBSOLETE 
-// OBSOLETE   while (*s)
-// OBSOLETE     {
-// OBSOLETE       c = sr_readchar ();
-// OBSOLETE       if (c != *s++)
-// OBSOLETE    {
-// OBSOLETE      fflush (stdout);
-// OBSOLETE      printf ("\nNext character is '%c' - %d and s is \"%s\".\n", c, c, --s);
-// OBSOLETE      return (-1);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return (0);
-// OBSOLETE }
-// OBSOLETE #endif /* never */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE bug_srec_write_cr (char *s)
-// OBSOLETE {
-// OBSOLETE   char *p = s;
-// OBSOLETE 
-// OBSOLETE   if (srec_echo_pace)
-// OBSOLETE     for (p = s; *p; ++p)
-// OBSOLETE       {
-// OBSOLETE    if (sr_get_debug () > 0)
-// OBSOLETE      printf ("%c", *p);
-// OBSOLETE 
-// OBSOLETE    do
-// OBSOLETE      serial_write (sr_get_desc (), p, 1);
-// OBSOLETE    while (sr_pollchar () != *p);
-// OBSOLETE       }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       sr_write_cr (s);
-// OBSOLETE /*       return(bug_scan (s) || bug_scan ("\n")); */
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Store register REGNO, or all if REGNO == -1. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE bug_fetch_register (int regno)
-// OBSOLETE {
-// OBSOLETE   sr_check_open ();
-// OBSOLETE 
-// OBSOLETE   if (regno == -1)
-// OBSOLETE     {
-// OBSOLETE       int i;
-// OBSOLETE 
-// OBSOLETE       for (i = 0; i < NUM_REGS; ++i)
-// OBSOLETE    bug_fetch_register (i);
-// OBSOLETE     }
-// OBSOLETE   else if (target_is_m88110 && regno == SFIP_REGNUM)
-// OBSOLETE     {
-// OBSOLETE       /* m88110 has no sfip. */
-// OBSOLETE       long l = 0;
-// OBSOLETE       supply_register (regno, (char *) &l);
-// OBSOLETE     }
-// OBSOLETE   else if (regno < XFP_REGNUM)
-// OBSOLETE     {
-// OBSOLETE       char buffer[MAX_REGISTER_RAW_SIZE];
-// OBSOLETE 
-// OBSOLETE       sr_write ("rs ", 3);
-// OBSOLETE       sr_write_cr (get_reg_name (regno));
-// OBSOLETE       sr_expect ("=");
-// OBSOLETE       store_unsigned_integer (buffer, REGISTER_RAW_SIZE (regno),
-// OBSOLETE                          sr_get_hex_word ());
-// OBSOLETE       gr_expect_prompt ();
-// OBSOLETE       supply_register (regno, buffer);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       /* Float register so we need to parse a strange data format. */
-// OBSOLETE       long p;
-// OBSOLETE       unsigned char fpreg_buf[10];
-// OBSOLETE 
-// OBSOLETE       sr_write ("rs ", 3);
-// OBSOLETE       sr_write (get_reg_name (regno), strlen (get_reg_name (regno)));
-// OBSOLETE       sr_write_cr (";d");
-// OBSOLETE       sr_expect ("rs");
-// OBSOLETE       sr_expect (get_reg_name (regno));
-// OBSOLETE       sr_expect (";d");
-// OBSOLETE       sr_expect ("=");
-// OBSOLETE 
-// OBSOLETE       /* sign */
-// OBSOLETE       p = sr_get_hex_digit (1);
-// OBSOLETE       fpreg_buf[0] = p << 7;
-// OBSOLETE 
-// OBSOLETE       /* exponent */
-// OBSOLETE       sr_expect ("_");
-// OBSOLETE       p = sr_get_hex_digit (1);
-// OBSOLETE       fpreg_buf[0] += (p << 4);
-// OBSOLETE       fpreg_buf[0] += sr_get_hex_digit (1);
-// OBSOLETE 
-// OBSOLETE       fpreg_buf[1] = sr_get_hex_digit (1) << 4;
-// OBSOLETE 
-// OBSOLETE       /* fraction */
-// OBSOLETE       sr_expect ("_");
-// OBSOLETE       fpreg_buf[1] += sr_get_hex_digit (1);
-// OBSOLETE 
-// OBSOLETE       fpreg_buf[2] = (sr_get_hex_digit (1) << 4) + sr_get_hex_digit (1);
-// OBSOLETE       fpreg_buf[3] = (sr_get_hex_digit (1) << 4) + sr_get_hex_digit (1);
-// OBSOLETE       fpreg_buf[4] = (sr_get_hex_digit (1) << 4) + sr_get_hex_digit (1);
-// OBSOLETE       fpreg_buf[5] = (sr_get_hex_digit (1) << 4) + sr_get_hex_digit (1);
-// OBSOLETE       fpreg_buf[6] = (sr_get_hex_digit (1) << 4) + sr_get_hex_digit (1);
-// OBSOLETE       fpreg_buf[7] = (sr_get_hex_digit (1) << 4) + sr_get_hex_digit (1);
-// OBSOLETE       fpreg_buf[8] = 0;
-// OBSOLETE       fpreg_buf[9] = 0;
-// OBSOLETE 
-// OBSOLETE       gr_expect_prompt ();
-// OBSOLETE       supply_register (regno, fpreg_buf);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Store register REGNO, or all if REGNO == -1. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE bug_store_register (int regno)
-// OBSOLETE {
-// OBSOLETE   char buffer[1024];
-// OBSOLETE   sr_check_open ();
-// OBSOLETE 
-// OBSOLETE   if (regno == -1)
-// OBSOLETE     {
-// OBSOLETE       int i;
-// OBSOLETE 
-// OBSOLETE       for (i = 0; i < NUM_REGS; ++i)
-// OBSOLETE    bug_store_register (i);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       char *regname;
-// OBSOLETE 
-// OBSOLETE       regname = get_reg_name (regno);
-// OBSOLETE 
-// OBSOLETE       if (target_is_m88110 && regno == SFIP_REGNUM)
-// OBSOLETE    return;
-// OBSOLETE       else if (regno < XFP_REGNUM)
-// OBSOLETE    sprintf (buffer, "rs %s %08lx",
-// OBSOLETE             regname,
-// OBSOLETE             (long) read_register (regno));
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      unsigned char *fpreg_buf =
-// OBSOLETE      (unsigned char *) &registers[REGISTER_BYTE (regno)];
-// OBSOLETE 
-// OBSOLETE      sprintf (buffer, "rs %s %1x_%02x%1x_%1x%02x%02x%02x%02x%02x%02x;d",
-// OBSOLETE               regname,
-// OBSOLETE      /* sign */
-// OBSOLETE               (fpreg_buf[0] >> 7) & 0xf,
-// OBSOLETE      /* exponent */
-// OBSOLETE               fpreg_buf[0] & 0x7f,
-// OBSOLETE               (fpreg_buf[1] >> 8) & 0xf,
-// OBSOLETE      /* fraction */
-// OBSOLETE               fpreg_buf[1] & 0xf,
-// OBSOLETE               fpreg_buf[2],
-// OBSOLETE               fpreg_buf[3],
-// OBSOLETE               fpreg_buf[4],
-// OBSOLETE               fpreg_buf[5],
-// OBSOLETE               fpreg_buf[6],
-// OBSOLETE               fpreg_buf[7]);
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       sr_write_cr (buffer);
-// OBSOLETE       gr_expect_prompt ();
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Transfer LEN bytes between GDB address MYADDR and target address
-// OBSOLETE    MEMADDR.  If WRITE is non-zero, transfer them to the target,
-// OBSOLETE    otherwise transfer them from the target.  TARGET is unused.
-// OBSOLETE 
-// OBSOLETE    Returns the number of bytes transferred. */
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE bug_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
-// OBSOLETE             struct mem_attrib *attrib, struct target_ops *target)
-// OBSOLETE {
-// OBSOLETE   int res;
-// OBSOLETE 
-// OBSOLETE   if (len <= 0)
-// OBSOLETE     return 0;
-// OBSOLETE 
-// OBSOLETE   if (write)
-// OBSOLETE     res = bug_write_memory (memaddr, myaddr, len);
-// OBSOLETE   else
-// OBSOLETE     res = bug_read_memory (memaddr, myaddr, len);
-// OBSOLETE 
-// OBSOLETE   return res;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE start_load (void)
-// OBSOLETE {
-// OBSOLETE   char *command;
-// OBSOLETE 
-// OBSOLETE   command = (srec_echo_pace ? "lo 0 ;x" : "lo 0");
-// OBSOLETE 
-// OBSOLETE   sr_write_cr (command);
-// OBSOLETE   sr_expect (command);
-// OBSOLETE   sr_expect ("\r\n");
-// OBSOLETE   bug_srec_write_cr ("S0030000FC");
-// OBSOLETE   return;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* This is an extremely vulnerable and fragile function.  I've made
-// OBSOLETE    considerable attempts to make this deterministic, but I've
-// OBSOLETE    certainly forgotten something.  The trouble is that S-records are
-// OBSOLETE    only a partial file format, not a protocol.  Worse, apparently the
-// OBSOLETE    m88k bug monitor does not run in real time while receiving
-// OBSOLETE    S-records.  Hence, we must pay excruciating attention to when and
-// OBSOLETE    where error messages are returned, and what has actually been sent.
-// OBSOLETE 
-// OBSOLETE    Each call represents a chunk of memory to be sent to the target.
-// OBSOLETE    We break that chunk into an S0 header record, some number of S3
-// OBSOLETE    data records each containing srec_bytes, and an S7 termination
-// OBSOLETE    record.  */
-// OBSOLETE 
-// OBSOLETE static char *srecord_strings[] =
-// OBSOLETE {
-// OBSOLETE   "S-RECORD",
-// OBSOLETE   "-Bug>",
-// OBSOLETE   NULL,
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE bug_write_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
-// OBSOLETE {
-// OBSOLETE   int done;
-// OBSOLETE   int checksum;
-// OBSOLETE   int x;
-// OBSOLETE   int retries;
-// OBSOLETE   char *buffer = alloca ((srec_bytes + 8) << 1);
-// OBSOLETE 
-// OBSOLETE   retries = 0;
-// OBSOLETE 
-// OBSOLETE   do
-// OBSOLETE     {
-// OBSOLETE       done = 0;
-// OBSOLETE 
-// OBSOLETE       if (retries > srec_max_retries)
-// OBSOLETE    return (-1);
-// OBSOLETE 
-// OBSOLETE       if (retries > 0)
-// OBSOLETE    {
-// OBSOLETE      if (sr_get_debug () > 0)
-// OBSOLETE        printf ("\n<retrying...>\n");
-// OBSOLETE 
-// OBSOLETE      /* This gr_expect_prompt call is extremely important.  Without
-// OBSOLETE         it, we will tend to resend our packet so fast that it
-// OBSOLETE         will arrive before the bug monitor is ready to receive
-// OBSOLETE         it.  This would lead to a very ugly resend loop.  */
-// OBSOLETE 
-// OBSOLETE      gr_expect_prompt ();
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       start_load ();
-// OBSOLETE 
-// OBSOLETE       while (done < len)
-// OBSOLETE    {
-// OBSOLETE      int thisgo;
-// OBSOLETE      int idx;
-// OBSOLETE      char *buf = buffer;
-// OBSOLETE      CORE_ADDR address;
-// OBSOLETE 
-// OBSOLETE      checksum = 0;
-// OBSOLETE      thisgo = len - done;
-// OBSOLETE      if (thisgo > srec_bytes)
-// OBSOLETE        thisgo = srec_bytes;
-// OBSOLETE 
-// OBSOLETE      address = memaddr + done;
-// OBSOLETE      sprintf (buf, "S3%02X%08lX", thisgo + 4 + 1, (long) address);
-// OBSOLETE      buf += 12;
-// OBSOLETE 
-// OBSOLETE      checksum += (thisgo + 4 + 1
-// OBSOLETE                   + (address & 0xff)
-// OBSOLETE                   + ((address >> 8) & 0xff)
-// OBSOLETE                   + ((address >> 16) & 0xff)
-// OBSOLETE                   + ((address >> 24) & 0xff));
-// OBSOLETE 
-// OBSOLETE      for (idx = 0; idx < thisgo; idx++)
-// OBSOLETE        {
-// OBSOLETE          sprintf (buf, "%02X", myaddr[idx + done]);
-// OBSOLETE          checksum += myaddr[idx + done];
-// OBSOLETE          buf += 2;
-// OBSOLETE        }
-// OBSOLETE 
-// OBSOLETE      if (srec_noise > 0)
-// OBSOLETE        {
-// OBSOLETE          /* FIXME-NOW: insert a deliberate error every now and then.
-// OBSOLETE             This is intended for testing/debugging the error handling
-// OBSOLETE             stuff.  */
-// OBSOLETE          static int counter = 0;
-// OBSOLETE          if (++counter > srec_noise)
-// OBSOLETE            {
-// OBSOLETE              counter = 0;
-// OBSOLETE              ++checksum;
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE 
-// OBSOLETE      sprintf (buf, "%02X", ~checksum & 0xff);
-// OBSOLETE      bug_srec_write_cr (buffer);
-// OBSOLETE 
-// OBSOLETE      if (srec_sleep != 0)
-// OBSOLETE        sleep (srec_sleep);
-// OBSOLETE 
-// OBSOLETE      /* This pollchar is probably redundant to the gr_multi_scan
-// OBSOLETE         below.  Trouble is, we can't be sure when or where an
-// OBSOLETE         error message will appear.  Apparently, when running at
-// OBSOLETE         full speed from a typical sun4, error messages tend to
-// OBSOLETE         appear to arrive only *after* the s7 record.   */
-// OBSOLETE 
-// OBSOLETE      if ((x = sr_pollchar ()) != 0)
-// OBSOLETE        {
-// OBSOLETE          if (sr_get_debug () > 0)
-// OBSOLETE            printf ("\n<retrying...>\n");
-// OBSOLETE 
-// OBSOLETE          ++retries;
-// OBSOLETE 
-// OBSOLETE          /* flush any remaining input and verify that we are back
-// OBSOLETE             at the prompt level. */
-// OBSOLETE          gr_expect_prompt ();
-// OBSOLETE          /* start all over again. */
-// OBSOLETE          start_load ();
-// OBSOLETE          done = 0;
-// OBSOLETE          continue;
-// OBSOLETE        }
-// OBSOLETE 
-// OBSOLETE      done += thisgo;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       bug_srec_write_cr ("S7060000000000F9");
-// OBSOLETE       ++retries;
-// OBSOLETE 
-// OBSOLETE       /* Having finished the load, we need to figure out whether we
-// OBSOLETE          had any errors.  */
-// OBSOLETE     }
-// OBSOLETE   while (gr_multi_scan (srecord_strings, 0) == 0);;
-// OBSOLETE 
-// OBSOLETE   return (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Copy LEN bytes of data from debugger memory at MYADDR
-// OBSOLETE    to inferior's memory at MEMADDR.  Returns errno value.
-// OBSOLETE    * sb/sh instructions don't work on unaligned addresses, when TU=1.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE /* Read LEN bytes from inferior memory at MEMADDR.  Put the result
-// OBSOLETE    at debugger address MYADDR.  Returns errno value.  */
-// OBSOLETE static int
-// OBSOLETE bug_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
-// OBSOLETE {
-// OBSOLETE   char request[100];
-// OBSOLETE   char *buffer;
-// OBSOLETE   char *p;
-// OBSOLETE   char type;
-// OBSOLETE   char size;
-// OBSOLETE   unsigned char c;
-// OBSOLETE   unsigned int inaddr;
-// OBSOLETE   unsigned int checksum;
-// OBSOLETE 
-// OBSOLETE   sprintf (request, "du 0 %lx:&%d", (long) memaddr, len);
-// OBSOLETE   sr_write_cr (request);
-// OBSOLETE 
-// OBSOLETE   p = buffer = alloca (len);
-// OBSOLETE 
-// OBSOLETE   /* scan up through the header */
-// OBSOLETE   sr_expect ("S0030000FC");
-// OBSOLETE 
-// OBSOLETE   while (p < buffer + len)
-// OBSOLETE     {
-// OBSOLETE       /* scan off any white space. */
-// OBSOLETE       while (sr_readchar () != 'S');;
-// OBSOLETE 
-// OBSOLETE       /* what kind of s-rec? */
-// OBSOLETE       type = sr_readchar ();
-// OBSOLETE 
-// OBSOLETE       /* scan record size */
-// OBSOLETE       sr_get_hex_byte (&size);
-// OBSOLETE       checksum = size;
-// OBSOLETE       --size;
-// OBSOLETE       inaddr = 0;
-// OBSOLETE 
-// OBSOLETE       switch (type)
-// OBSOLETE    {
-// OBSOLETE    case '7':
-// OBSOLETE    case '8':
-// OBSOLETE    case '9':
-// OBSOLETE      goto done;
-// OBSOLETE 
-// OBSOLETE    case '3':
-// OBSOLETE      sr_get_hex_byte (&c);
-// OBSOLETE      inaddr = (inaddr << 8) + c;
-// OBSOLETE      checksum += c;
-// OBSOLETE      --size;
-// OBSOLETE      /* intentional fall through */
-// OBSOLETE    case '2':
-// OBSOLETE      sr_get_hex_byte (&c);
-// OBSOLETE      inaddr = (inaddr << 8) + c;
-// OBSOLETE      checksum += c;
-// OBSOLETE      --size;
-// OBSOLETE      /* intentional fall through */
-// OBSOLETE    case '1':
-// OBSOLETE      sr_get_hex_byte (&c);
-// OBSOLETE      inaddr = (inaddr << 8) + c;
-// OBSOLETE      checksum += c;
-// OBSOLETE      --size;
-// OBSOLETE      sr_get_hex_byte (&c);
-// OBSOLETE      inaddr = (inaddr << 8) + c;
-// OBSOLETE      checksum += c;
-// OBSOLETE      --size;
-// OBSOLETE      break;
-// OBSOLETE 
-// OBSOLETE    default:
-// OBSOLETE      /* bonk */
-// OBSOLETE      error ("reading s-records.");
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       if (inaddr < memaddr
-// OBSOLETE      || (memaddr + len) < (inaddr + size))
-// OBSOLETE    error ("srec out of memory range.");
-// OBSOLETE 
-// OBSOLETE       if (p != buffer + inaddr - memaddr)
-// OBSOLETE    error ("srec out of sequence.");
-// OBSOLETE 
-// OBSOLETE       for (; size; --size, ++p)
-// OBSOLETE    {
-// OBSOLETE      sr_get_hex_byte (p);
-// OBSOLETE      checksum += *p;
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       sr_get_hex_byte (&c);
-// OBSOLETE       if (c != (~checksum & 0xff))
-// OBSOLETE    error ("bad s-rec checksum");
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE done:
-// OBSOLETE   gr_expect_prompt ();
-// OBSOLETE   if (p != buffer + len)
-// OBSOLETE     return (1);
-// OBSOLETE 
-// OBSOLETE   memcpy (myaddr, buffer, len);
-// OBSOLETE   return (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #define MAX_BREAKS 16
-// OBSOLETE static int num_brkpts = 0;
-// OBSOLETE 
-// OBSOLETE /* Insert a breakpoint at ADDR.  SAVE is normally the address of the
-// OBSOLETE    pattern buffer where the instruction that the breakpoint overwrites
-// OBSOLETE    is saved.  It is unused here since the bug is responsible for
-// OBSOLETE    saving/restoring the original instruction. */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE bug_insert_breakpoint (CORE_ADDR addr, char *save)
-// OBSOLETE {
-// OBSOLETE   sr_check_open ();
-// OBSOLETE 
-// OBSOLETE   if (num_brkpts < MAX_BREAKS)
-// OBSOLETE     {
-// OBSOLETE       char buffer[100];
-// OBSOLETE 
-// OBSOLETE       num_brkpts++;
-// OBSOLETE       sprintf (buffer, "br %lx", (long) addr);
-// OBSOLETE       sr_write_cr (buffer);
-// OBSOLETE       gr_expect_prompt ();
-// OBSOLETE       return (0);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       fprintf_filtered (gdb_stderr,
-// OBSOLETE                  "Too many break points, break point not installed\n");
-// OBSOLETE       return (1);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Remove a breakpoint at ADDR.  SAVE is normally the previously
-// OBSOLETE    saved pattern, but is unused here since the bug is responsible
-// OBSOLETE    for saving/restoring instructions. */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE bug_remove_breakpoint (CORE_ADDR addr, char *save)
-// OBSOLETE {
-// OBSOLETE   if (num_brkpts > 0)
-// OBSOLETE     {
-// OBSOLETE       char buffer[100];
-// OBSOLETE 
-// OBSOLETE       num_brkpts--;
-// OBSOLETE       sprintf (buffer, "nobr %lx", (long) addr);
-// OBSOLETE       sr_write_cr (buffer);
-// OBSOLETE       gr_expect_prompt ();
-// OBSOLETE 
-// OBSOLETE     }
-// OBSOLETE   return (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Clear the bugs notion of what the break points are */
-// OBSOLETE static int
-// OBSOLETE bug_clear_breakpoints (void)
-// OBSOLETE {
-// OBSOLETE 
-// OBSOLETE   if (sr_is_open ())
-// OBSOLETE     {
-// OBSOLETE       sr_write_cr ("nobr");
-// OBSOLETE       sr_expect ("nobr");
-// OBSOLETE       gr_expect_prompt ();
-// OBSOLETE     }
-// OBSOLETE   num_brkpts = 0;
-// OBSOLETE   return (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE struct target_ops bug_ops;
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE init_bug_ops (void)
-// OBSOLETE {
-// OBSOLETE   bug_ops.to_shortname = "bug";
-// OBSOLETE   "Remote BUG monitor",
-// OBSOLETE     bug_ops.to_longname = "Use the mvme187 board running the BUG monitor connected by a serial line.";
-// OBSOLETE   bug_ops.to_doc = " ";
-// OBSOLETE   bug_ops.to_open = bug_open;
-// OBSOLETE   bug_ops.to_close = gr_close;
-// OBSOLETE   bug_ops.to_attach = 0;
-// OBSOLETE   bug_ops.to_post_attach = NULL;
-// OBSOLETE   bug_ops.to_require_attach = NULL;
-// OBSOLETE   bug_ops.to_detach = gr_detach;
-// OBSOLETE   bug_ops.to_require_detach = NULL;
-// OBSOLETE   bug_ops.to_resume = bug_resume;
-// OBSOLETE   bug_ops.to_wait = bug_wait;
-// OBSOLETE   bug_ops.to_post_wait = NULL;
-// OBSOLETE   bug_ops.to_fetch_registers = bug_fetch_register;
-// OBSOLETE   bug_ops.to_store_registers = bug_store_register;
-// OBSOLETE   bug_ops.to_prepare_to_store = gr_prepare_to_store;
-// OBSOLETE   bug_ops.to_xfer_memory = bug_xfer_memory;
-// OBSOLETE   bug_ops.to_files_info = gr_files_info;
-// OBSOLETE   bug_ops.to_insert_breakpoint = bug_insert_breakpoint;
-// OBSOLETE   bug_ops.to_remove_breakpoint = bug_remove_breakpoint;
-// OBSOLETE   bug_ops.to_terminal_init = 0;
-// OBSOLETE   bug_ops.to_terminal_inferior = 0;
-// OBSOLETE   bug_ops.to_terminal_ours_for_output = 0;
-// OBSOLETE   bug_ops.to_terminal_ours = 0;
-// OBSOLETE   bug_ops.to_terminal_info = 0;
-// OBSOLETE   bug_ops.to_kill = gr_kill;
-// OBSOLETE   bug_ops.to_load = bug_load;
-// OBSOLETE   bug_ops.to_lookup_symbol = 0;
-// OBSOLETE   bug_ops.to_create_inferior = gr_create_inferior;
-// OBSOLETE   bug_ops.to_post_startup_inferior = NULL;
-// OBSOLETE   bug_ops.to_acknowledge_created_inferior = NULL;
-// OBSOLETE   bug_ops.to_clone_and_follow_inferior = NULL;
-// OBSOLETE   bug_ops.to_post_follow_inferior_by_clone = NULL;
-// OBSOLETE   bug_ops.to_insert_fork_catchpoint = NULL;
-// OBSOLETE   bug_ops.to_remove_fork_catchpoint = NULL;
-// OBSOLETE   bug_ops.to_insert_vfork_catchpoint = NULL;
-// OBSOLETE   bug_ops.to_remove_vfork_catchpoint = NULL;
-// OBSOLETE   bug_ops.to_has_forked = NULL;
-// OBSOLETE   bug_ops.to_has_vforked = NULL;
-// OBSOLETE   bug_ops.to_can_follow_vfork_prior_to_exec = NULL;
-// OBSOLETE   bug_ops.to_post_follow_vfork = NULL;
-// OBSOLETE   bug_ops.to_insert_exec_catchpoint = NULL;
-// OBSOLETE   bug_ops.to_remove_exec_catchpoint = NULL;
-// OBSOLETE   bug_ops.to_has_execd = NULL;
-// OBSOLETE   bug_ops.to_reported_exec_events_per_exec_call = NULL;
-// OBSOLETE   bug_ops.to_has_exited = NULL;
-// OBSOLETE   bug_ops.to_mourn_inferior = gr_mourn;
-// OBSOLETE   bug_ops.to_can_run = 0;
-// OBSOLETE   bug_ops.to_notice_signals = 0;
-// OBSOLETE   bug_ops.to_thread_alive = 0;
-// OBSOLETE   bug_ops.to_stop = 0;
-// OBSOLETE   bug_ops.to_pid_to_exec_file = NULL;
-// OBSOLETE   bug_ops.to_stratum = process_stratum;
-// OBSOLETE   bug_ops.DONT_USE = 0;
-// OBSOLETE   bug_ops.to_has_all_memory = 1;
-// OBSOLETE   bug_ops.to_has_memory = 1;
-// OBSOLETE   bug_ops.to_has_stack = 1;
-// OBSOLETE   bug_ops.to_has_registers = 0;
-// OBSOLETE   bug_ops.to_has_execution = 0;
-// OBSOLETE   bug_ops.to_sections = 0;
-// OBSOLETE   bug_ops.to_sections_end = 0;
-// OBSOLETE   bug_ops.to_magic = OPS_MAGIC;    /* Always the last thing */
-// OBSOLETE }                          /* init_bug_ops */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_remote_bug (void)
-// OBSOLETE {
-// OBSOLETE   init_bug_ops ();
-// OBSOLETE   add_target (&bug_ops);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set
-// OBSOLETE     (add_set_cmd ("srec-bytes", class_support, var_uinteger,
-// OBSOLETE              (char *) &srec_bytes,
-// OBSOLETE              "\
-// OBSOLETE Set the number of bytes represented in each S-record.\n\
-// OBSOLETE This affects the communication protocol with the remote target.",
-// OBSOLETE              &setlist),
-// OBSOLETE      &showlist);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set
-// OBSOLETE     (add_set_cmd ("srec-max-retries", class_support, var_uinteger,
-// OBSOLETE              (char *) &srec_max_retries,
-// OBSOLETE              "\
-// OBSOLETE Set the number of retries for shipping S-records.\n\
-// OBSOLETE This affects the communication protocol with the remote target.",
-// OBSOLETE              &setlist),
-// OBSOLETE      &showlist);
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE   /* This needs to set SREC_SIZE, not srec_frame which gets changed at the
-// OBSOLETE      end of a download.  But do we need the option at all?  */
-// OBSOLETE   add_show_from_set
-// OBSOLETE     (add_set_cmd ("srec-frame", class_support, var_uinteger,
-// OBSOLETE              (char *) &srec_frame,
-// OBSOLETE              "\
-// OBSOLETE Set the number of bytes in an S-record frame.\n\
-// OBSOLETE This affects the communication protocol with the remote target.",
-// OBSOLETE              &setlist),
-// OBSOLETE      &showlist);
-// OBSOLETE #endif /* 0 */
-// OBSOLETE 
-// OBSOLETE   add_show_from_set
-// OBSOLETE     (add_set_cmd ("srec-noise", class_support, var_zinteger,
-// OBSOLETE              (char *) &srec_noise,
-// OBSOLETE              "\
-// OBSOLETE Set number of S-record to send before deliberately flubbing a checksum.\n\
-// OBSOLETE Zero means flub none at all.  This affects the communication protocol\n\
-// OBSOLETE with the remote target.",
-// OBSOLETE              &setlist),
-// OBSOLETE      &showlist);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set
-// OBSOLETE     (add_set_cmd ("srec-sleep", class_support, var_zinteger,
-// OBSOLETE              (char *) &srec_sleep,
-// OBSOLETE              "\
-// OBSOLETE Set number of seconds to sleep after an S-record for a possible error message to arrive.\n\
-// OBSOLETE This affects the communication protocol with the remote target.",
-// OBSOLETE              &setlist),
-// OBSOLETE      &showlist);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set
-// OBSOLETE     (add_set_cmd ("srec-echo-pace", class_support, var_boolean,
-// OBSOLETE              (char *) &srec_echo_pace,
-// OBSOLETE              "\
-// OBSOLETE Set echo-verification.\n\
-// OBSOLETE When on, use verification by echo when downloading S-records.  This is\n\
-// OBSOLETE much slower, but generally more reliable.",
-// OBSOLETE              &setlist),
-// OBSOLETE      &showlist);
-// OBSOLETE }
index 33e5c00f0f849e93d666a3feb0815592d1cc5536..49909b104b15313a8d4eba2e04addfc767f74907 100644 (file)
@@ -629,9 +629,7 @@ e7000_start_remote (void *dummy)
   flush_cached_frames ();
   registers_changed ();
   stop_pc = read_pc ();
-  set_current_frame (create_new_frame (read_fp (), stop_pc));
-  select_frame (get_current_frame ());
-  print_stack_frame (selected_frame, -1, 1);
+  print_stack_frame (get_selected_frame (), -1, 1);
 
   return 1;
 }
index 0a1d7af60c222e6cdbc7a0f17a1dab33e44b79e8..93eddc9d123d0ee13c19156233d9a244f735880c 100644 (file)
@@ -30,6 +30,8 @@
 #include "serial.h"
 #include "regcache.h"
 
+#include "m68k-tdep.h"
+
 static void est_open (char *args, int from_tty);
 
 static void
@@ -55,12 +57,12 @@ est_supply_register (char *regname, int regnamelen, char *val, int vallen)
     case 'D':
       if (regname[1] < '0' || regname[1] > '7')
        return;
-      regno = regname[1] - '0' + D0_REGNUM;
+      regno = regname[1] - '0' + M68K_D0_REGNUM;
       break;
     case 'A':
       if (regname[1] < '0' || regname[1] > '7')
        return;
-      regno = regname[1] - '0' + A0_REGNUM;
+      regno = regname[1] - '0' + M68K_A0_REGNUM;
       break;
     default:
       return;
index abd590bef2bf51159273b6000c4129a36892b5b2..044746df9ba2dcc6d025414fc56227f149f34637 100644 (file)
@@ -1494,8 +1494,10 @@ mips_initialize (void)
      the request itself succeeds or fails.  */
 
   mips_request ('r', 0, 0, &err, mips_receive_wait, NULL);
-  set_current_frame (create_new_frame (read_fp (), read_pc ()));
-  select_frame (get_current_frame ());
+  /* FIXME: cagney/2002-11-29: Force the update of selected frame.
+     This shouldn't be necessary, only many many places still refer to
+     selected_frame directly (instead of using get_selected_frame().  */
+  get_selected_frame (); /* Hack!!!  */
 }
 
 /* Open a connection to the remote board.  */
@@ -1612,17 +1614,15 @@ device is attached to the target board (e.g., /dev/ttya).\n"
   if (ptype)
     mips_set_processor_type_command (xstrdup (ptype), 0);
 
-/* This is really the job of start_remote however, that makes an assumption
-   that the target is about to print out a status message of some sort.  That
-   doesn't happen here (in fact, it may not be possible to get the monitor to
-   send the appropriate packet).  */
+  /* This is really the job of start_remote however, that makes an
+     assumption that the target is about to print out a status message
+     of some sort.  That doesn't happen here (in fact, it may not be
+     possible to get the monitor to send the appropriate packet).  */
 
   flush_cached_frames ();
   registers_changed ();
   stop_pc = read_pc ();
-  set_current_frame (create_new_frame (read_fp (), stop_pc));
-  select_frame (get_current_frame ());
-  print_stack_frame (selected_frame, -1, 1);
+  print_stack_frame (get_selected_frame (), -1, 1);
   xfree (serial_port_name);
 }
 
diff --git a/gdb/remote-nindy.c b/gdb/remote-nindy.c
deleted file mode 100644 (file)
index ffbe7d8..0000000
+++ /dev/null
@@ -1,762 +0,0 @@
-// OBSOLETE /* Memory-access and commands for remote NINDY process, for GDB.
-// OBSOLETE 
-// OBSOLETE    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
-// OBSOLETE    2000, 2001, 2002 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    Contributed by Intel Corporation.  Modified from remote.c by Chris Benenati.
-// OBSOLETE 
-// OBSOLETE    GDB is distributed in the hope that it will be useful, but WITHOUT ANY
-// OBSOLETE    WARRANTY.  No author or distributor accepts responsibility to anyone
-// OBSOLETE    for the consequences of using it or for whether it serves any
-// OBSOLETE    particular purpose or works at all, unless he says so in writing.
-// OBSOLETE    Refer to the GDB General Public License for full details.
-// OBSOLETE 
-// OBSOLETE    Everyone is granted permission to copy, modify and redistribute GDB,
-// OBSOLETE    but only under the conditions described in the GDB General Public
-// OBSOLETE    License.  A copy of this license is supposed to have been given to you
-// OBSOLETE    along with GDB so you can know your rights and responsibilities.  It
-// OBSOLETE    should be in a file named COPYING.  Among other things, the copyright
-// OBSOLETE    notice and this notice must be preserved on all copies.
-// OBSOLETE 
-// OBSOLETE    In other words, go ahead and share GDB, but don't try to stop
-// OBSOLETE    anyone else from sharing it farther.  Help stamp out software hoarding!  */
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE    Except for the data cache routines, this file bears little resemblence
-// OBSOLETE    to remote.c.  A new (although similar) protocol has been specified, and
-// OBSOLETE    portions of the code are entirely dependent on having an i80960 with a
-// OBSOLETE    NINDY ROM monitor at the other end of the line.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE /*****************************************************************************
-// OBSOLETE  *
-// OBSOLETE  * REMOTE COMMUNICATION PROTOCOL BETWEEN GDB960 AND THE NINDY ROM MONITOR.
-// OBSOLETE  *
-// OBSOLETE  *
-// OBSOLETE  * MODES OF OPERATION
-// OBSOLETE  * ----- -- ---------
-// OBSOLETE  * 
-// OBSOLETE  * As far as NINDY is concerned, GDB is always in one of two modes: command
-// OBSOLETE  * mode or passthrough mode.
-// OBSOLETE  *
-// OBSOLETE  * In command mode (the default) pre-defined packets containing requests
-// OBSOLETE  * are sent by GDB to NINDY.  NINDY never talks except in reponse to a request.
-// OBSOLETE  *
-// OBSOLETE  * Once the the user program is started, GDB enters passthrough mode, to give
-// OBSOLETE  * the user program access to the terminal.  GDB remains in this mode until
-// OBSOLETE  * NINDY indicates that the program has stopped.
-// OBSOLETE  *
-// OBSOLETE  *
-// OBSOLETE  * PASSTHROUGH MODE
-// OBSOLETE  * ----------- ----
-// OBSOLETE  *
-// OBSOLETE  * GDB writes all input received from the keyboard directly to NINDY, and writes
-// OBSOLETE  * all characters received from NINDY directly to the monitor.
-// OBSOLETE  *
-// OBSOLETE  * Keyboard input is neither buffered nor echoed to the monitor.
-// OBSOLETE  *
-// OBSOLETE  * GDB remains in passthrough mode until NINDY sends a single ^P character,
-// OBSOLETE  * to indicate that the user process has stopped.
-// OBSOLETE  *
-// OBSOLETE  * Note:
-// OBSOLETE  * GDB assumes NINDY performs a 'flushreg' when the user program stops.
-// OBSOLETE  *
-// OBSOLETE  *
-// OBSOLETE  * COMMAND MODE
-// OBSOLETE  * ------- ----
-// OBSOLETE  *
-// OBSOLETE  * All info (except for message ack and nak) is transferred between gdb
-// OBSOLETE  * and the remote processor in messages of the following format:
-// OBSOLETE  *
-// OBSOLETE  *         <info>#<checksum>
-// OBSOLETE  *
-// OBSOLETE  * where 
-// OBSOLETE  * #       is a literal character
-// OBSOLETE  *
-// OBSOLETE  * <info>  ASCII information;  all numeric information is in the
-// OBSOLETE  *         form of hex digits ('0'-'9' and lowercase 'a'-'f').
-// OBSOLETE  *
-// OBSOLETE  * <checksum>
-// OBSOLETE  *         is a pair of ASCII hex digits representing an 8-bit
-// OBSOLETE  *         checksum formed by adding together each of the
-// OBSOLETE  *         characters in <info>.
-// OBSOLETE  *
-// OBSOLETE  * The receiver of a message always sends a single character to the sender
-// OBSOLETE  * to indicate that the checksum was good ('+') or bad ('-');  the sender
-// OBSOLETE  * re-transmits the entire message over until a '+' is received.
-// OBSOLETE  *
-// OBSOLETE  * In response to a command NINDY always sends back either data or
-// OBSOLETE  * a result code of the form "Xnn", where "nn" are hex digits and "X00"
-// OBSOLETE  * means no errors.  (Exceptions: the "s" and "c" commands don't respond.)
-// OBSOLETE  *
-// OBSOLETE  * SEE THE HEADER OF THE FILE "gdb.c" IN THE NINDY MONITOR SOURCE CODE FOR A
-// OBSOLETE  * FULL DESCRIPTION OF LEGAL COMMANDS.
-// OBSOLETE  *
-// OBSOLETE  * SEE THE FILE "stop.h" IN THE NINDY MONITOR SOURCE CODE FOR A LIST
-// OBSOLETE  * OF STOP CODES.
-// OBSOLETE  *
-// OBSOLETE  ***************************************************************************/
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include <signal.h>
-// OBSOLETE #include <sys/types.h>
-// OBSOLETE #include <setjmp.h>
-// OBSOLETE 
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "bfd.h"
-// OBSOLETE #include "symfile.h"
-// OBSOLETE #include "target.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "command.h"
-// OBSOLETE #include "floatformat.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE #include <sys/file.h>
-// OBSOLETE #include <ctype.h>
-// OBSOLETE #include "serial.h"
-// OBSOLETE #include "nindy-share/env.h"
-// OBSOLETE #include "nindy-share/stop.h"
-// OBSOLETE #include "remote-utils.h"
-// OBSOLETE 
-// OBSOLETE extern int unlink ();
-// OBSOLETE extern char *getenv ();
-// OBSOLETE extern char *mktemp ();
-// OBSOLETE 
-// OBSOLETE extern void generic_mourn_inferior ();
-// OBSOLETE 
-// OBSOLETE extern struct target_ops nindy_ops;
-// OBSOLETE extern FILE *instream;
-// OBSOLETE 
-// OBSOLETE extern char ninStopWhy ();
-// OBSOLETE extern int ninMemGet ();
-// OBSOLETE extern int ninMemPut ();
-// OBSOLETE 
-// OBSOLETE int nindy_initial_brk;             /* nonzero if want to send an initial BREAK to nindy */
-// OBSOLETE int nindy_old_protocol;            /* nonzero if want to use old protocol */
-// OBSOLETE char *nindy_ttyname;               /* name of tty to talk to nindy on, or null */
-// OBSOLETE 
-// OBSOLETE #define DLE        '\020'          /* Character NINDY sends to indicate user program has
-// OBSOLETE                               * halted.  */
-// OBSOLETE #define TRUE       1
-// OBSOLETE #define FALSE      0
-// OBSOLETE 
-// OBSOLETE /* From nindy-share/nindy.c.  */
-// OBSOLETE extern struct serial *nindy_serial;
-// OBSOLETE 
-// OBSOLETE static int have_regs = 0;  /* 1 iff regs read since i960 last halted */
-// OBSOLETE static int regs_changed = 0;       /* 1 iff regs were modified since last read */
-// OBSOLETE 
-// OBSOLETE extern char *exists ();
-// OBSOLETE 
-// OBSOLETE static void nindy_fetch_registers (int);
-// OBSOLETE 
-// OBSOLETE static void nindy_store_registers (int);
-// OBSOLETE \f
-// OBSOLETE static char *savename;
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nindy_close (int quitting)
-// OBSOLETE {
-// OBSOLETE   if (nindy_serial != NULL)
-// OBSOLETE     serial_close (nindy_serial);
-// OBSOLETE   nindy_serial = NULL;
-// OBSOLETE 
-// OBSOLETE   if (savename)
-// OBSOLETE     xfree (savename);
-// OBSOLETE   savename = 0;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Open a connection to a remote debugger.   
-// OBSOLETE    FIXME, there should be "set" commands for the options that are
-// OBSOLETE    now specified with gdb command-line options (old_protocol,
-// OBSOLETE    and initial_brk).  */
-// OBSOLETE void
-// OBSOLETE nindy_open (char *name,            /* "/dev/ttyXX", "ttyXX", or "XX": tty to be opened */
-// OBSOLETE        int from_tty)
-// OBSOLETE {
-// OBSOLETE   char baudrate[1024];
-// OBSOLETE 
-// OBSOLETE   if (!name)
-// OBSOLETE     error_no_arg ("serial port device name");
-// OBSOLETE 
-// OBSOLETE   target_preopen (from_tty);
-// OBSOLETE 
-// OBSOLETE   nindy_close (0);
-// OBSOLETE 
-// OBSOLETE   have_regs = regs_changed = 0;
-// OBSOLETE 
-// OBSOLETE   /* Allow user to interrupt the following -- we could hang if there's
-// OBSOLETE      no NINDY at the other end of the remote tty.  */
-// OBSOLETE   immediate_quit++;
-// OBSOLETE   /* If baud_rate is -1, then ninConnect will not recognize the baud rate
-// OBSOLETE      and will deal with the situation in a (more or less) reasonable
-// OBSOLETE      fashion.  */
-// OBSOLETE   sprintf (baudrate, "%d", baud_rate);
-// OBSOLETE   ninConnect (name, baudrate,
-// OBSOLETE          nindy_initial_brk, !from_tty, nindy_old_protocol);
-// OBSOLETE   immediate_quit--;
-// OBSOLETE 
-// OBSOLETE   if (nindy_serial == NULL)
-// OBSOLETE     {
-// OBSOLETE       perror_with_name (name);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   savename = savestring (name, strlen (name));
-// OBSOLETE   push_target (&nindy_ops);
-// OBSOLETE 
-// OBSOLETE   target_fetch_registers (-1);
-// OBSOLETE 
-// OBSOLETE   init_thread_list ();
-// OBSOLETE   init_wait_for_inferior ();
-// OBSOLETE   clear_proceed_status ();
-// OBSOLETE   normal_stop ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* User-initiated quit of nindy operations.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nindy_detach (char *name, int from_tty)
-// OBSOLETE {
-// OBSOLETE   if (name)
-// OBSOLETE     error ("Too many arguments");
-// OBSOLETE   pop_target ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nindy_files_info (void)
-// OBSOLETE {
-// OBSOLETE   /* FIXME: this lies about the baud rate if we autobauded.  */
-// OBSOLETE   printf_unfiltered ("\tAttached to %s at %d bits per second%s%s.\n", savename,
-// OBSOLETE                 baud_rate,
-// OBSOLETE                 nindy_old_protocol ? " in old protocol" : "",
-// OBSOLETE                 nindy_initial_brk ? " with initial break" : "");
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Return the number of characters in the buffer BUF before
-// OBSOLETE    the first DLE character.  N is maximum number of characters to
-// OBSOLETE    consider.  */
-// OBSOLETE 
-// OBSOLETE static
-// OBSOLETE int
-// OBSOLETE non_dle (char *buf, int n)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE 
-// OBSOLETE   for (i = 0; i < n; i++)
-// OBSOLETE     {
-// OBSOLETE       if (buf[i] == DLE)
-// OBSOLETE    {
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   return i;
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Tell the remote machine to resume.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE nindy_resume (ptid_t ptid, int step, enum target_signal siggnal)
-// OBSOLETE {
-// OBSOLETE   if (siggnal != TARGET_SIGNAL_0 && siggnal != stop_signal)
-// OBSOLETE     warning ("Can't send signals to remote NINDY targets.");
-// OBSOLETE 
-// OBSOLETE   if (regs_changed)
-// OBSOLETE     {
-// OBSOLETE       nindy_store_registers (-1);
-// OBSOLETE       regs_changed = 0;
-// OBSOLETE     }
-// OBSOLETE   have_regs = 0;
-// OBSOLETE   ninGo (step);
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* FIXME, we can probably use the normal terminal_inferior stuff here.
-// OBSOLETE    We have to do terminal_inferior and then set up the passthrough
-// OBSOLETE    settings initially.  Thereafter, terminal_ours and terminal_inferior
-// OBSOLETE    will automatically swap the settings around for us.  */
-// OBSOLETE 
-// OBSOLETE struct clean_up_tty_args
-// OBSOLETE {
-// OBSOLETE   serial_ttystate state;
-// OBSOLETE   struct serial *serial;
-// OBSOLETE };
-// OBSOLETE static struct clean_up_tty_args tty_args;
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE clean_up_tty (PTR ptrarg)
-// OBSOLETE {
-// OBSOLETE   struct clean_up_tty_args *args = (struct clean_up_tty_args *) ptrarg;
-// OBSOLETE   serial_set_tty_state (args->serial, args->state);
-// OBSOLETE   xfree (args->state);
-// OBSOLETE   warning ("\n\nYou may need to reset the 80960 and/or reload your program.\n");
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Recover from ^Z or ^C while remote process is running */
-// OBSOLETE static void (*old_ctrlc) ();
-// OBSOLETE #ifdef SIGTSTP
-// OBSOLETE static void (*old_ctrlz) ();
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE clean_up_int (void)
-// OBSOLETE {
-// OBSOLETE   serial_set_tty_state (tty_args.serial, tty_args.state);
-// OBSOLETE   xfree (tty_args.state);
-// OBSOLETE 
-// OBSOLETE   signal (SIGINT, old_ctrlc);
-// OBSOLETE #ifdef SIGTSTP
-// OBSOLETE   signal (SIGTSTP, old_ctrlz);
-// OBSOLETE #endif
-// OBSOLETE   error ("\n\nYou may need to reset the 80960 and/or reload your program.\n");
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Wait until the remote machine stops. While waiting, operate in passthrough
-// OBSOLETE  * mode; i.e., pass everything NINDY sends to gdb_stdout, and everything from
-// OBSOLETE  * stdin to NINDY.
-// OBSOLETE  *
-// OBSOLETE  * Return to caller, storing status in 'status' just as `wait' would.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static ptid_t
-// OBSOLETE nindy_wait (ptid_t ptid, struct target_waitstatus *status)
-// OBSOLETE {
-// OBSOLETE   fd_set fds;
-// OBSOLETE   int c;
-// OBSOLETE   char buf[2];
-// OBSOLETE   int i, n;
-// OBSOLETE   unsigned char stop_exit;
-// OBSOLETE   unsigned char stop_code;
-// OBSOLETE   struct cleanup *old_cleanups;
-// OBSOLETE   long ip_value, fp_value, sp_value;       /* Reg values from stop */
-// OBSOLETE 
-// OBSOLETE   status->kind = TARGET_WAITKIND_EXITED;
-// OBSOLETE   status->value.integer = 0;
-// OBSOLETE 
-// OBSOLETE   /* OPERATE IN PASSTHROUGH MODE UNTIL NINDY SENDS A DLE CHARACTER */
-// OBSOLETE 
-// OBSOLETE   /* Save current tty attributes, and restore them when done.  */
-// OBSOLETE   tty_args.serial = serial_fdopen (0);
-// OBSOLETE   tty_args.state = serial_get_tty_state (tty_args.serial);
-// OBSOLETE   old_ctrlc = signal (SIGINT, clean_up_int);
-// OBSOLETE #ifdef SIGTSTP
-// OBSOLETE   old_ctrlz = signal (SIGTSTP, clean_up_int);
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE   old_cleanups = make_cleanup (clean_up_tty, &tty_args);
-// OBSOLETE 
-// OBSOLETE   /* Pass input from keyboard to NINDY as it arrives.  NINDY will interpret
-// OBSOLETE      <CR> and perform echo.  */
-// OBSOLETE   /* This used to set CBREAK and clear ECHO and CRMOD.  I hope this is close
-// OBSOLETE      enough.  */
-// OBSOLETE   serial_raw (tty_args.serial);
-// OBSOLETE 
-// OBSOLETE   while (1)
-// OBSOLETE     {
-// OBSOLETE       /* Input on remote */
-// OBSOLETE       c = serial_readchar (nindy_serial, -1);
-// OBSOLETE       if (c == SERIAL_ERROR)
-// OBSOLETE    {
-// OBSOLETE      error ("Cannot read from serial line");
-// OBSOLETE    }
-// OBSOLETE       else if (c == 0x1b)  /* ESC */
-// OBSOLETE    {
-// OBSOLETE      c = serial_readchar (nindy_serial, -1);
-// OBSOLETE      c &= ~0x40;
-// OBSOLETE    }
-// OBSOLETE       else if (c != 0x10)  /* DLE */
-// OBSOLETE    /* Write out any characters preceding DLE */
-// OBSOLETE    {
-// OBSOLETE      buf[0] = (char) c;
-// OBSOLETE      write (1, buf, 1);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      stop_exit = ninStopWhy (&stop_code,
-// OBSOLETE                              &ip_value, &fp_value, &sp_value);
-// OBSOLETE      if (!stop_exit && (stop_code == STOP_SRQ))
-// OBSOLETE        {
-// OBSOLETE          immediate_quit++;
-// OBSOLETE          ninSrq ();
-// OBSOLETE          immediate_quit--;
-// OBSOLETE        }
-// OBSOLETE      else
-// OBSOLETE        {
-// OBSOLETE          /* Get out of loop */
-// OBSOLETE          supply_register (IP_REGNUM,
-// OBSOLETE                           (char *) &ip_value);
-// OBSOLETE          supply_register (FP_REGNUM,
-// OBSOLETE                           (char *) &fp_value);
-// OBSOLETE          supply_register (SP_REGNUM,
-// OBSOLETE                           (char *) &sp_value);
-// OBSOLETE          break;
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   serial_set_tty_state (tty_args.serial, tty_args.state);
-// OBSOLETE   xfree (tty_args.state);
-// OBSOLETE   discard_cleanups (old_cleanups);
-// OBSOLETE 
-// OBSOLETE   if (stop_exit)
-// OBSOLETE     {
-// OBSOLETE       status->kind = TARGET_WAITKIND_EXITED;
-// OBSOLETE       status->value.integer = stop_code;
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       /* nindy has some special stop code need to be handled */
-// OBSOLETE       if (stop_code == STOP_GDB_BPT)
-// OBSOLETE    stop_code = TRACE_STEP;
-// OBSOLETE       status->kind = TARGET_WAITKIND_STOPPED;
-// OBSOLETE       status->value.sig = i960_fault_to_signal (stop_code);
-// OBSOLETE     }
-// OBSOLETE   return inferior_ptid;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Read the remote registers into the block REGS.  */
-// OBSOLETE 
-// OBSOLETE /* This is the block that ninRegsGet and ninRegsPut handles.  */
-// OBSOLETE struct nindy_regs
-// OBSOLETE {
-// OBSOLETE   char local_regs[16 * 4];
-// OBSOLETE   char global_regs[16 * 4];
-// OBSOLETE   char pcw_acw[2 * 4];
-// OBSOLETE   char ip[4];
-// OBSOLETE   char tcw[4];
-// OBSOLETE   char fp_as_double[4 * 8];
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nindy_fetch_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   struct nindy_regs nindy_regs;
-// OBSOLETE   int regnum;
-// OBSOLETE 
-// OBSOLETE   immediate_quit++;
-// OBSOLETE   ninRegsGet ((char *) &nindy_regs);
-// OBSOLETE   immediate_quit--;
-// OBSOLETE 
-// OBSOLETE   memcpy (&registers[REGISTER_BYTE (R0_REGNUM)], nindy_regs.local_regs, 16 * 4);
-// OBSOLETE   memcpy (&registers[REGISTER_BYTE (G0_REGNUM)], nindy_regs.global_regs, 16 * 4);
-// OBSOLETE   memcpy (&registers[REGISTER_BYTE (PCW_REGNUM)], nindy_regs.pcw_acw, 2 * 4);
-// OBSOLETE   memcpy (&registers[REGISTER_BYTE (IP_REGNUM)], nindy_regs.ip, 1 * 4);
-// OBSOLETE   memcpy (&registers[REGISTER_BYTE (TCW_REGNUM)], nindy_regs.tcw, 1 * 4);
-// OBSOLETE   memcpy (&registers[REGISTER_BYTE (FP0_REGNUM)], nindy_regs.fp_as_double, 4 * 8);
-// OBSOLETE 
-// OBSOLETE   registers_fetched ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nindy_prepare_to_store (void)
-// OBSOLETE {
-// OBSOLETE   /* Fetch all regs if they aren't already here.  */
-// OBSOLETE   read_register_bytes (0, NULL, REGISTER_BYTES);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nindy_store_registers (int regno)
-// OBSOLETE {
-// OBSOLETE   struct nindy_regs nindy_regs;
-// OBSOLETE   int regnum;
-// OBSOLETE 
-// OBSOLETE   memcpy (nindy_regs.local_regs, &registers[REGISTER_BYTE (R0_REGNUM)], 16 * 4);
-// OBSOLETE   memcpy (nindy_regs.global_regs, &registers[REGISTER_BYTE (G0_REGNUM)], 16 * 4);
-// OBSOLETE   memcpy (nindy_regs.pcw_acw, &registers[REGISTER_BYTE (PCW_REGNUM)], 2 * 4);
-// OBSOLETE   memcpy (nindy_regs.ip, &registers[REGISTER_BYTE (IP_REGNUM)], 1 * 4);
-// OBSOLETE   memcpy (nindy_regs.tcw, &registers[REGISTER_BYTE (TCW_REGNUM)], 1 * 4);
-// OBSOLETE   memcpy (nindy_regs.fp_as_double, &registers[REGISTER_BYTE (FP0_REGNUM)], 8 * 4);
-// OBSOLETE 
-// OBSOLETE   immediate_quit++;
-// OBSOLETE   ninRegsPut ((char *) &nindy_regs);
-// OBSOLETE   immediate_quit--;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Copy LEN bytes to or from inferior's memory starting at MEMADDR
-// OBSOLETE    to debugger memory starting at MYADDR.   Copy to inferior if
-// OBSOLETE    SHOULD_WRITE is nonzero.  Returns the length copied.  TARGET is
-// OBSOLETE    unused.  */
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE nindy_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len,
-// OBSOLETE                        int should_write, struct mem_attrib *attrib,
-// OBSOLETE                        struct target_ops *target)
-// OBSOLETE {
-// OBSOLETE   int res;
-// OBSOLETE 
-// OBSOLETE   if (len <= 0)
-// OBSOLETE     return 0;
-// OBSOLETE 
-// OBSOLETE   if (should_write)
-// OBSOLETE     res = ninMemPut (memaddr, myaddr, len);
-// OBSOLETE   else
-// OBSOLETE     res = ninMemGet (memaddr, myaddr, len);
-// OBSOLETE 
-// OBSOLETE   return res;
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE static void
-// OBSOLETE nindy_create_inferior (char *execfile, char *args, char **env)
-// OBSOLETE {
-// OBSOLETE   int entry_pt;
-// OBSOLETE   int pid;
-// OBSOLETE 
-// OBSOLETE   if (args && *args)
-// OBSOLETE     error ("Can't pass arguments to remote NINDY process");
-// OBSOLETE 
-// OBSOLETE   if (execfile == 0 || exec_bfd == 0)
-// OBSOLETE     error ("No executable file specified");
-// OBSOLETE 
-// OBSOLETE   entry_pt = (int) bfd_get_start_address (exec_bfd);
-// OBSOLETE 
-// OBSOLETE   pid = 42;
-// OBSOLETE 
-// OBSOLETE   /* The "process" (board) is already stopped awaiting our commands, and
-// OBSOLETE      the program is already downloaded.  We just set its PC and go.  */
-// OBSOLETE 
-// OBSOLETE   inferior_ptid = pid_to_ptid (pid);       /* Needed for wait_for_inferior below */
-// OBSOLETE 
-// OBSOLETE   clear_proceed_status ();
-// OBSOLETE 
-// OBSOLETE   /* Tell wait_for_inferior that we've started a new process.  */
-// OBSOLETE   init_wait_for_inferior ();
-// OBSOLETE 
-// OBSOLETE   /* Set up the "saved terminal modes" of the inferior
-// OBSOLETE      based on what modes we are starting it with.  */
-// OBSOLETE   target_terminal_init ();
-// OBSOLETE 
-// OBSOLETE   /* Install inferior's terminal modes.  */
-// OBSOLETE   target_terminal_inferior ();
-// OBSOLETE 
-// OBSOLETE   /* insert_step_breakpoint ();  FIXME, do we need this?  */
-// OBSOLETE   /* Let 'er rip... */
-// OBSOLETE   proceed ((CORE_ADDR) entry_pt, TARGET_SIGNAL_DEFAULT, 0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE reset_command (char *args, int from_tty)
-// OBSOLETE {
-// OBSOLETE   if (nindy_serial == NULL)
-// OBSOLETE     {
-// OBSOLETE       error ("No target system to reset -- use 'target nindy' command.");
-// OBSOLETE     }
-// OBSOLETE   if (query ("Really reset the target system?", 0, 0))
-// OBSOLETE     {
-// OBSOLETE       serial_send_break (nindy_serial);
-// OBSOLETE       tty_flush (nindy_serial);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE nindy_kill (char *args, int from_tty)
-// OBSOLETE {
-// OBSOLETE   return;                  /* Ignore attempts to kill target system */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Clean up when a program exits.
-// OBSOLETE 
-// OBSOLETE    The program actually lives on in the remote processor's RAM, and may be
-// OBSOLETE    run again without a download.  Don't leave it full of breakpoint
-// OBSOLETE    instructions.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE nindy_mourn_inferior (void)
-// OBSOLETE {
-// OBSOLETE   remove_breakpoints ();
-// OBSOLETE   unpush_target (&nindy_ops);
-// OBSOLETE   generic_mourn_inferior ();       /* Do all the proper things now */
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Pass the args the way catch_errors wants them.  */
-// OBSOLETE static int
-// OBSOLETE nindy_open_stub (char *arg)
-// OBSOLETE {
-// OBSOLETE   nindy_open (arg, 1);
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nindy_load (char *filename, int from_tty)
-// OBSOLETE {
-// OBSOLETE   asection *s;
-// OBSOLETE   /* Can't do unix style forking on a VMS system, so we'll use bfd to do
-// OBSOLETE      all the work for us
-// OBSOLETE    */
-// OBSOLETE 
-// OBSOLETE   bfd *file = bfd_openr (filename, 0);
-// OBSOLETE   if (!file)
-// OBSOLETE     {
-// OBSOLETE       perror_with_name (filename);
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (!bfd_check_format (file, bfd_object))
-// OBSOLETE     {
-// OBSOLETE       error ("can't prove it's an object file\n");
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   for (s = file->sections; s; s = s->next)
-// OBSOLETE     {
-// OBSOLETE       if (s->flags & SEC_LOAD)
-// OBSOLETE    {
-// OBSOLETE      char *buffer = xmalloc (s->_raw_size);
-// OBSOLETE      bfd_get_section_contents (file, s, buffer, 0, s->_raw_size);
-// OBSOLETE      printf ("Loading section %s, size %x vma %x\n",
-// OBSOLETE              s->name,
-// OBSOLETE              s->_raw_size,
-// OBSOLETE              s->vma);
-// OBSOLETE      ninMemPut (s->vma, buffer, s->_raw_size);
-// OBSOLETE      xfree (buffer);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   bfd_close (file);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE load_stub (char *arg)
-// OBSOLETE {
-// OBSOLETE   target_load (arg, 1);
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* This routine is run as a hook, just before the main command loop is
-// OBSOLETE    entered.  If gdb is configured for the i960, but has not had its
-// OBSOLETE    nindy target specified yet, this will loop prompting the user to do so.
-// OBSOLETE 
-// OBSOLETE    Unlike the loop provided by Intel, we actually let the user get out
-// OBSOLETE    of this with a RETURN.  This is useful when e.g. simply examining
-// OBSOLETE    an i960 object file on the host system.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE nindy_before_main_loop (void)
-// OBSOLETE {
-// OBSOLETE   char ttyname[100];
-// OBSOLETE   char *p, *p2;
-// OBSOLETE 
-// OBSOLETE   while (target_stack->target_ops != &nindy_ops)   /* What is this crap??? */
-// OBSOLETE     {                              /* remote tty not specified yet */
-// OBSOLETE       if (instream == stdin)
-// OBSOLETE    {
-// OBSOLETE      printf_unfiltered ("\nAttach /dev/ttyNN -- specify NN, or \"quit\" to quit:  ");
-// OBSOLETE      gdb_flush (gdb_stdout);
-// OBSOLETE    }
-// OBSOLETE       fgets (ttyname, sizeof (ttyname) - 1, stdin);
-// OBSOLETE 
-// OBSOLETE       /* Strip leading and trailing whitespace */
-// OBSOLETE       for (p = ttyname; isspace (*p); p++)
-// OBSOLETE    {
-// OBSOLETE      ;
-// OBSOLETE    }
-// OBSOLETE       if (*p == '\0')
-// OBSOLETE    {
-// OBSOLETE      return;               /* User just hit spaces or return, wants out */
-// OBSOLETE    }
-// OBSOLETE       for (p2 = p; !isspace (*p2) && (*p2 != '\0'); p2++)
-// OBSOLETE    {
-// OBSOLETE      ;
-// OBSOLETE    }
-// OBSOLETE       *p2 = '\0';
-// OBSOLETE       if (STREQ ("quit", p))
-// OBSOLETE    {
-// OBSOLETE      exit (1);
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       if (catch_errors (nindy_open_stub, p, "", RETURN_MASK_ALL))
-// OBSOLETE    {
-// OBSOLETE      /* Now that we have a tty open for talking to the remote machine,
-// OBSOLETE         download the executable file if one was specified.  */
-// OBSOLETE      if (exec_bfd)
-// OBSOLETE        {
-// OBSOLETE          catch_errors (load_stub, bfd_get_filename (exec_bfd), "",
-// OBSOLETE                        RETURN_MASK_ALL);
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE \f
-// OBSOLETE /* Define the target subroutine names */
-// OBSOLETE 
-// OBSOLETE struct target_ops nindy_ops;
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE init_nindy_ops (void)
-// OBSOLETE {
-// OBSOLETE   nindy_ops.to_shortname = "nindy";
-// OBSOLETE   "Remote serial target in i960 NINDY-specific protocol",
-// OBSOLETE     nindy_ops.to_longname = "Use a remote i960 system running NINDY connected by a serial line.\n\
-// OBSOLETE Specify the name of the device the serial line is connected to.\n\
-// OBSOLETE The speed (baud rate), whether to use the old NINDY protocol,\n\
-// OBSOLETE and whether to send a break on startup, are controlled by options\n\
-// OBSOLETE specified when you started GDB.";
-// OBSOLETE   nindy_ops.to_doc = "";
-// OBSOLETE   nindy_ops.to_open = nindy_open;
-// OBSOLETE   nindy_ops.to_close = nindy_close;
-// OBSOLETE   nindy_ops.to_attach = 0;
-// OBSOLETE   nindy_ops.to_post_attach = NULL;
-// OBSOLETE   nindy_ops.to_require_attach = NULL;
-// OBSOLETE   nindy_ops.to_detach = nindy_detach;
-// OBSOLETE   nindy_ops.to_require_detach = NULL;
-// OBSOLETE   nindy_ops.to_resume = nindy_resume;
-// OBSOLETE   nindy_ops.to_wait = nindy_wait;
-// OBSOLETE   nindy_ops.to_post_wait = NULL;
-// OBSOLETE   nindy_ops.to_fetch_registers = nindy_fetch_registers;
-// OBSOLETE   nindy_ops.to_store_registers = nindy_store_registers;
-// OBSOLETE   nindy_ops.to_prepare_to_store = nindy_prepare_to_store;
-// OBSOLETE   nindy_ops.to_xfer_memory = nindy_xfer_inferior_memory;
-// OBSOLETE   nindy_ops.to_files_info = nindy_files_info;
-// OBSOLETE   nindy_ops.to_insert_breakpoint = memory_insert_breakpoint;
-// OBSOLETE   nindy_ops.to_remove_breakpoint = memory_remove_breakpoint;
-// OBSOLETE   nindy_ops.to_terminal_init = 0;
-// OBSOLETE   nindy_ops.to_terminal_inferior = 0;
-// OBSOLETE   nindy_ops.to_terminal_ours_for_output = 0;
-// OBSOLETE   nindy_ops.to_terminal_ours = 0;
-// OBSOLETE   nindy_ops.to_terminal_info = 0;  /* Terminal crud */
-// OBSOLETE   nindy_ops.to_kill = nindy_kill;
-// OBSOLETE   nindy_ops.to_load = nindy_load;
-// OBSOLETE   nindy_ops.to_lookup_symbol = 0;  /* lookup_symbol */
-// OBSOLETE   nindy_ops.to_create_inferior = nindy_create_inferior;
-// OBSOLETE   nindy_ops.to_post_startup_inferior = NULL;
-// OBSOLETE   nindy_ops.to_acknowledge_created_inferior = NULL;
-// OBSOLETE   nindy_ops.to_clone_and_follow_inferior = NULL;
-// OBSOLETE   nindy_ops.to_post_follow_inferior_by_clone = NULL;
-// OBSOLETE   nindy_ops.to_insert_fork_catchpoint = NULL;
-// OBSOLETE   nindy_ops.to_remove_fork_catchpoint = NULL;
-// OBSOLETE   nindy_ops.to_insert_vfork_catchpoint = NULL;
-// OBSOLETE   nindy_ops.to_remove_vfork_catchpoint = NULL;
-// OBSOLETE   nindy_ops.to_has_forked = NULL;
-// OBSOLETE   nindy_ops.to_has_vforked = NULL;
-// OBSOLETE   nindy_ops.to_can_follow_vfork_prior_to_exec = NULL;
-// OBSOLETE   nindy_ops.to_post_follow_vfork = NULL;
-// OBSOLETE   nindy_ops.to_insert_exec_catchpoint = NULL;
-// OBSOLETE   nindy_ops.to_remove_exec_catchpoint = NULL;
-// OBSOLETE   nindy_ops.to_has_execd = NULL;
-// OBSOLETE   nindy_ops.to_reported_exec_events_per_exec_call = NULL;
-// OBSOLETE   nindy_ops.to_has_exited = NULL;
-// OBSOLETE   nindy_ops.to_mourn_inferior = nindy_mourn_inferior;
-// OBSOLETE   nindy_ops.to_can_run = 0;        /* can_run */
-// OBSOLETE   nindy_ops.to_notice_signals = 0; /* notice_signals */
-// OBSOLETE   nindy_ops.to_thread_alive = 0;   /* to_thread_alive */
-// OBSOLETE   nindy_ops.to_stop = 0;   /* to_stop */
-// OBSOLETE   nindy_ops.to_pid_to_exec_file = NULL;
-// OBSOLETE   nindy_ops.to_stratum = process_stratum;
-// OBSOLETE   nindy_ops.DONT_USE = 0;  /* next */
-// OBSOLETE   nindy_ops.to_has_all_memory = 1;
-// OBSOLETE   nindy_ops.to_has_memory = 1;
-// OBSOLETE   nindy_ops.to_has_stack = 1;
-// OBSOLETE   nindy_ops.to_has_registers = 1;
-// OBSOLETE   nindy_ops.to_has_execution = 1;  /* all mem, mem, stack, regs, exec */
-// OBSOLETE   nindy_ops.to_sections = 0;
-// OBSOLETE   nindy_ops.to_sections_end = 0;   /* Section pointers */
-// OBSOLETE   nindy_ops.to_magic = OPS_MAGIC;  /* Always the last thing */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_nindy (void)
-// OBSOLETE {
-// OBSOLETE   init_nindy_ops ();
-// OBSOLETE   add_target (&nindy_ops);
-// OBSOLETE   add_com ("reset", class_obscure, reset_command,
-// OBSOLETE       "Send a 'break' to the remote target system.\n\
-// OBSOLETE Only useful if the target has been equipped with a circuit\n\
-// OBSOLETE to perform a hard reset when a break is detected.");
-// OBSOLETE }
diff --git a/gdb/remote-nrom.c b/gdb/remote-nrom.c
deleted file mode 100644 (file)
index 31336b6..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-// OBSOLETE /* Remote debugging with the XLNT Designs, Inc (XDI) NetROM.
-// OBSOLETE    Copyright 1990, 1991, 1992, 1995, 1998, 1999, 2000
-// OBSOLETE    Free Software Foundation, Inc.
-// OBSOLETE    Contributed by:
-// OBSOLETE    Roger Moyers 
-// OBSOLETE    XLNT Designs, Inc.
-// OBSOLETE    15050 Avenue of Science, Suite 106
-// OBSOLETE    San Diego, CA  92128
-// OBSOLETE    (619)487-9320
-// OBSOLETE    roger@xlnt.com
-// OBSOLETE    Adapted from work done at Cygnus Support in remote-nindy.c,
-// OBSOLETE    later merged in by Stan Shebs at Cygnus.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "gdbcmd.h"
-// OBSOLETE #include "serial.h"
-// OBSOLETE #include "target.h"
-// OBSOLETE 
-// OBSOLETE /* Default ports used to talk with the NetROM.  */
-// OBSOLETE 
-// OBSOLETE #define DEFAULT_NETROM_LOAD_PORT    1236
-// OBSOLETE #define DEFAULT_NETROM_CONTROL_PORT 1237
-// OBSOLETE 
-// OBSOLETE static void nrom_close (int quitting);
-// OBSOLETE 
-// OBSOLETE /* New commands.  */
-// OBSOLETE 
-// OBSOLETE static void nrom_passthru (char *, int);
-// OBSOLETE 
-// OBSOLETE /* We talk to the NetROM over these sockets.  */
-// OBSOLETE 
-// OBSOLETE static struct serial *load_desc = NULL;
-// OBSOLETE static struct serial *ctrl_desc = NULL;
-// OBSOLETE 
-// OBSOLETE static int load_port = DEFAULT_NETROM_LOAD_PORT;
-// OBSOLETE static int control_port = DEFAULT_NETROM_CONTROL_PORT;
-// OBSOLETE 
-// OBSOLETE static char nrom_hostname[100];
-// OBSOLETE 
-// OBSOLETE /* Forward data declaration. */
-// OBSOLETE 
-// OBSOLETE extern struct target_ops nrom_ops;
-// OBSOLETE 
-// OBSOLETE /* Scan input from the remote system, until STRING is found.  Print chars that
-// OBSOLETE    don't match.  */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE expect (char *string)
-// OBSOLETE {
-// OBSOLETE   char *p = string;
-// OBSOLETE   int c;
-// OBSOLETE 
-// OBSOLETE   immediate_quit++;
-// OBSOLETE 
-// OBSOLETE   while (1)
-// OBSOLETE     {
-// OBSOLETE       c = serial_readchar (ctrl_desc, 5);
-// OBSOLETE 
-// OBSOLETE       if (c == *p++)
-// OBSOLETE    {
-// OBSOLETE      if (*p == '\0')
-// OBSOLETE        {
-// OBSOLETE          immediate_quit--;
-// OBSOLETE          return 0;
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      fputc_unfiltered (c, gdb_stdout);
-// OBSOLETE      p = string;
-// OBSOLETE      if (c == *p)
-// OBSOLETE        p++;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nrom_kill (void)
-// OBSOLETE {
-// OBSOLETE   nrom_close (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static struct serial *
-// OBSOLETE open_socket (char *name, int port)
-// OBSOLETE {
-// OBSOLETE   char sockname[100];
-// OBSOLETE   struct serial *desc;
-// OBSOLETE 
-// OBSOLETE   sprintf (sockname, "%s:%d", name, port);
-// OBSOLETE   desc = serial_open (sockname);
-// OBSOLETE   if (!desc)
-// OBSOLETE     perror_with_name (sockname);
-// OBSOLETE 
-// OBSOLETE   return desc;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE load_cleanup (void)
-// OBSOLETE {
-// OBSOLETE   serial_close (load_desc);
-// OBSOLETE   load_desc = NULL;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Download a file specified in ARGS to the netROM.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nrom_load (char *args, int fromtty)
-// OBSOLETE {
-// OBSOLETE   int fd, rd_amt, fsize;
-// OBSOLETE   bfd *pbfd;
-// OBSOLETE   asection *section;
-// OBSOLETE   char *downloadstring = "download 0\n";
-// OBSOLETE   struct cleanup *old_chain;
-// OBSOLETE 
-// OBSOLETE   /* Tell the netrom to get ready to download. */
-// OBSOLETE   if (serial_write (ctrl_desc, downloadstring, strlen (downloadstring)))
-// OBSOLETE     error ("nrom_load: control_send() of `%s' failed", downloadstring);
-// OBSOLETE 
-// OBSOLETE   expect ("Waiting for a connection...\n");
-// OBSOLETE 
-// OBSOLETE   load_desc = open_socket (nrom_hostname, load_port);
-// OBSOLETE 
-// OBSOLETE   old_chain = make_cleanup (load_cleanup, 0);
-// OBSOLETE 
-// OBSOLETE   pbfd = bfd_openr (args, 0);
-// OBSOLETE 
-// OBSOLETE   if (pbfd)
-// OBSOLETE     {
-// OBSOLETE       make_cleanup (bfd_close, pbfd);
-// OBSOLETE 
-// OBSOLETE       if (!bfd_check_format (pbfd, bfd_object))
-// OBSOLETE    error ("\"%s\": not in executable format: %s",
-// OBSOLETE           args, bfd_errmsg (bfd_get_error ()));
-// OBSOLETE 
-// OBSOLETE       for (section = pbfd->sections; section; section = section->next)
-// OBSOLETE    {
-// OBSOLETE      if (bfd_get_section_flags (pbfd, section) & SEC_ALLOC)
-// OBSOLETE        {
-// OBSOLETE          bfd_vma section_address;
-// OBSOLETE          unsigned long section_size;
-// OBSOLETE          const char *section_name;
-// OBSOLETE 
-// OBSOLETE          section_name = bfd_get_section_name (pbfd, section);
-// OBSOLETE          section_address = bfd_get_section_vma (pbfd, section);
-// OBSOLETE          section_size = bfd_section_size (pbfd, section);
-// OBSOLETE 
-// OBSOLETE          if (bfd_get_section_flags (pbfd, section) & SEC_LOAD)
-// OBSOLETE            {
-// OBSOLETE              file_ptr fptr;
-// OBSOLETE 
-// OBSOLETE              printf_filtered ("[Loading section %s at %x (%d bytes)]\n",
-// OBSOLETE                               section_name, section_address,
-// OBSOLETE                               section_size);
-// OBSOLETE 
-// OBSOLETE              fptr = 0;
-// OBSOLETE 
-// OBSOLETE              while (section_size > 0)
-// OBSOLETE                {
-// OBSOLETE                  char buffer[1024];
-// OBSOLETE                  int count;
-// OBSOLETE 
-// OBSOLETE                  count = min (section_size, 1024);
-// OBSOLETE 
-// OBSOLETE                  bfd_get_section_contents (pbfd, section, buffer, fptr,
-// OBSOLETE                                            count);
-// OBSOLETE 
-// OBSOLETE                  serial_write (load_desc, buffer, count);
-// OBSOLETE                  section_address += count;
-// OBSOLETE                  fptr += count;
-// OBSOLETE                  section_size -= count;
-// OBSOLETE                }
-// OBSOLETE            }
-// OBSOLETE          else
-// OBSOLETE            /* BSS and such */
-// OBSOLETE            {
-// OBSOLETE              printf_filtered ("[section %s: not loading]\n",
-// OBSOLETE                               section_name);
-// OBSOLETE            }
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     error ("\"%s\": Could not open", args);
-// OBSOLETE 
-// OBSOLETE   do_cleanups (old_chain);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Open a connection to the remote NetROM devices.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nrom_open (char *name, int from_tty)
-// OBSOLETE {
-// OBSOLETE   int errn;
-// OBSOLETE 
-// OBSOLETE   if (!name || strchr (name, '/') || strchr (name, ':'))
-// OBSOLETE     error (
-// OBSOLETE        "To open a NetROM connection, you must specify the hostname\n\
-// OBSOLETE or IP address of the NetROM device you wish to use.");
-// OBSOLETE 
-// OBSOLETE   strcpy (nrom_hostname, name);
-// OBSOLETE 
-// OBSOLETE   target_preopen (from_tty);
-// OBSOLETE 
-// OBSOLETE   unpush_target (&nrom_ops);
-// OBSOLETE 
-// OBSOLETE   ctrl_desc = open_socket (nrom_hostname, control_port);
-// OBSOLETE 
-// OBSOLETE   push_target (&nrom_ops);
-// OBSOLETE 
-// OBSOLETE   if (from_tty)
-// OBSOLETE     printf_filtered ("Connected to NetROM device \"%s\"\n", nrom_hostname);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Close out all files and local state before this target loses control. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nrom_close (int quitting)
-// OBSOLETE {
-// OBSOLETE   if (load_desc)
-// OBSOLETE     serial_close (load_desc);
-// OBSOLETE   if (ctrl_desc)
-// OBSOLETE     serial_close (ctrl_desc);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Pass arguments directly to the NetROM. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nrom_passthru (char *args, int fromtty)
-// OBSOLETE {
-// OBSOLETE   char buf[1024];
-// OBSOLETE 
-// OBSOLETE   sprintf (buf, "%s\n", args);
-// OBSOLETE   if (serial_write (ctrl_desc, buf, strlen (buf)))
-// OBSOLETE     error ("nrom_reset: control_send() of `%s'failed", args);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE nrom_mourn (void)
-// OBSOLETE {
-// OBSOLETE   unpush_target (&nrom_ops);
-// OBSOLETE   generic_mourn_inferior ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Define the target vector. */
-// OBSOLETE 
-// OBSOLETE struct target_ops nrom_ops;
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE init_nrom_ops (void)
-// OBSOLETE {
-// OBSOLETE   nrom_ops.to_shortname = "nrom";
-// OBSOLETE   nrom_ops.to_longname = "Remote XDI `NetROM' target";
-// OBSOLETE   nrom_ops.to_doc = "Remote debug using a NetROM over Ethernet";
-// OBSOLETE   nrom_ops.to_open = nrom_open;
-// OBSOLETE   nrom_ops.to_close = nrom_close;
-// OBSOLETE   nrom_ops.to_attach = NULL;
-// OBSOLETE   nrom_ops.to_post_attach = NULL;
-// OBSOLETE   nrom_ops.to_require_attach = NULL;
-// OBSOLETE   nrom_ops.to_detach = NULL;
-// OBSOLETE   nrom_ops.to_require_detach = NULL;
-// OBSOLETE   nrom_ops.to_resume = NULL;
-// OBSOLETE   nrom_ops.to_wait = NULL;
-// OBSOLETE   nrom_ops.to_post_wait = NULL;
-// OBSOLETE   nrom_ops.to_fetch_registers = NULL;
-// OBSOLETE   nrom_ops.to_store_registers = NULL;
-// OBSOLETE   nrom_ops.to_prepare_to_store = NULL;
-// OBSOLETE   nrom_ops.to_xfer_memory = NULL;
-// OBSOLETE   nrom_ops.to_files_info = NULL;
-// OBSOLETE   nrom_ops.to_insert_breakpoint = NULL;
-// OBSOLETE   nrom_ops.to_remove_breakpoint = NULL;
-// OBSOLETE   nrom_ops.to_terminal_init = NULL;
-// OBSOLETE   nrom_ops.to_terminal_inferior = NULL;
-// OBSOLETE   nrom_ops.to_terminal_ours_for_output = NULL;
-// OBSOLETE   nrom_ops.to_terminal_ours = NULL;
-// OBSOLETE   nrom_ops.to_terminal_info = NULL;
-// OBSOLETE   nrom_ops.to_kill = nrom_kill;
-// OBSOLETE   nrom_ops.to_load = nrom_load;
-// OBSOLETE   nrom_ops.to_lookup_symbol = NULL;
-// OBSOLETE   nrom_ops.to_create_inferior = NULL;
-// OBSOLETE   nrom_ops.to_post_startup_inferior = NULL;
-// OBSOLETE   nrom_ops.to_acknowledge_created_inferior = NULL;
-// OBSOLETE   nrom_ops.to_clone_and_follow_inferior = NULL;
-// OBSOLETE   nrom_ops.to_post_follow_inferior_by_clone = NULL;
-// OBSOLETE   nrom_ops.to_insert_fork_catchpoint = NULL;
-// OBSOLETE   nrom_ops.to_remove_fork_catchpoint = NULL;
-// OBSOLETE   nrom_ops.to_insert_vfork_catchpoint = NULL;
-// OBSOLETE   nrom_ops.to_remove_vfork_catchpoint = NULL;
-// OBSOLETE   nrom_ops.to_has_forked = NULL;
-// OBSOLETE   nrom_ops.to_has_vforked = NULL;
-// OBSOLETE   nrom_ops.to_can_follow_vfork_prior_to_exec = NULL;
-// OBSOLETE   nrom_ops.to_post_follow_vfork = NULL;
-// OBSOLETE   nrom_ops.to_insert_exec_catchpoint = NULL;
-// OBSOLETE   nrom_ops.to_remove_exec_catchpoint = NULL;
-// OBSOLETE   nrom_ops.to_has_execd = NULL;
-// OBSOLETE   nrom_ops.to_reported_exec_events_per_exec_call = NULL;
-// OBSOLETE   nrom_ops.to_has_exited = NULL;
-// OBSOLETE   nrom_ops.to_mourn_inferior = nrom_mourn;
-// OBSOLETE   nrom_ops.to_can_run = NULL;
-// OBSOLETE   nrom_ops.to_notice_signals = 0;
-// OBSOLETE   nrom_ops.to_thread_alive = 0;
-// OBSOLETE   nrom_ops.to_stop = 0;
-// OBSOLETE   nrom_ops.to_pid_to_exec_file = NULL;
-// OBSOLETE   nrom_ops.to_stratum = download_stratum;
-// OBSOLETE   nrom_ops.DONT_USE = NULL;
-// OBSOLETE   nrom_ops.to_has_all_memory = 1;
-// OBSOLETE   nrom_ops.to_has_memory = 1;
-// OBSOLETE   nrom_ops.to_has_stack = 1;
-// OBSOLETE   nrom_ops.to_has_registers = 1;
-// OBSOLETE   nrom_ops.to_has_execution = 0;
-// OBSOLETE   nrom_ops.to_sections = NULL;
-// OBSOLETE   nrom_ops.to_sections_end = NULL;
-// OBSOLETE   nrom_ops.to_magic = OPS_MAGIC;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_remote_nrom (void)
-// OBSOLETE {
-// OBSOLETE   init_nrom_ops ();
-// OBSOLETE   add_target (&nrom_ops);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set (
-// OBSOLETE   add_set_cmd ("nrom_load_port", no_class, var_zinteger, (char *) &load_port,
-// OBSOLETE           "Set the port to use for NetROM downloads\n", &setlist),
-// OBSOLETE                  &showlist);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set (
-// OBSOLETE                  add_set_cmd ("nrom_control_port", no_class, var_zinteger, (char *) &control_port,
-// OBSOLETE        "Set the port to use for NetROM debugger services\n", &setlist),
-// OBSOLETE                  &showlist);
-// OBSOLETE 
-// OBSOLETE   add_cmd ("nrom", no_class, nrom_passthru,
-// OBSOLETE       "Pass arguments as command to NetROM",
-// OBSOLETE       &cmdlist);
-// OBSOLETE }
diff --git a/gdb/remote-os9k.c b/gdb/remote-os9k.c
deleted file mode 100644 (file)
index 5a7dd34..0000000
+++ /dev/null
@@ -1,1234 +0,0 @@
-// OBSOLETE /* Remote debugging interface for boot monitors, for GDB.
-// OBSOLETE 
-// OBSOLETE    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
-// OBSOLETE    2000, 2001, 2002 Free Software Foundation, Inc.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE /* This file was derived from remote-eb.c, which did a similar job, but for
-// OBSOLETE    an AMD-29K running EBMON.  That file was in turn derived from remote.c
-// OBSOLETE    as mentioned in the following comment (left in for comic relief):
-// OBSOLETE 
-// OBSOLETE    "This is like remote.c but is for a different situation--
-// OBSOLETE    having a PC running os9000 hook up with a unix machine with
-// OBSOLETE    a serial line, and running ctty com2 on the PC. os9000 has a debug
-// OBSOLETE    monitor called ROMBUG running.  Not to mention that the PC
-// OBSOLETE    has PC/NFS, so it can access the same executables that gdb can,
-// OBSOLETE    over the net in real time."
-// OBSOLETE 
-// OBSOLETE    In reality, this module talks to a debug monitor called 'ROMBUG', which
-// OBSOLETE    We communicate with ROMBUG via a direct serial line, the network version
-// OBSOLETE    of ROMBUG is not available yet.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE /* FIXME This file needs to be rewritten if it's to work again, either
-// OBSOLETE    to self-contained or to use the new monitor interface.  */
-// OBSOLETE 
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "target.h"
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE #include <sys/types.h>
-// OBSOLETE #include "command.h"
-// OBSOLETE #include "serial.h"
-// OBSOLETE #include "monitor.h"
-// OBSOLETE #include "remote-utils.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "symfile.h"
-// OBSOLETE #include "objfiles.h"
-// OBSOLETE #include "gdb-stabs.h"
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE struct cmd_list_element *showlist;
-// OBSOLETE extern struct target_ops rombug_ops;       /* Forward declaration */
-// OBSOLETE extern struct monitor_ops rombug_cmds;     /* Forward declaration */
-// OBSOLETE extern struct cmd_list_element *setlist;
-// OBSOLETE extern struct cmd_list_element *unsetlist;
-// OBSOLETE extern int attach_flag;
-// OBSOLETE 
-// OBSOLETE static void rombug_close ();
-// OBSOLETE static void rombug_fetch_register ();
-// OBSOLETE static void rombug_fetch_registers ();
-// OBSOLETE static void rombug_store_register ();
-// OBSOLETE #if 0
-// OBSOLETE static int sr_get_debug ();        /* flag set by "set remotedebug" */
-// OBSOLETE #endif
-// OBSOLETE static int hashmark;               /* flag set by "set hash" */
-// OBSOLETE static int rombug_is_open = 0;
-// OBSOLETE 
-// OBSOLETE /* FIXME: Replace with sr_get_debug ().  */
-// OBSOLETE #define LOG_FILE "monitor.log"
-// OBSOLETE FILE *log_file;
-// OBSOLETE static int monitor_log = 0;
-// OBSOLETE static int tty_xon = 0;
-// OBSOLETE static int tty_xoff = 0;
-// OBSOLETE 
-// OBSOLETE static int timeout = 10;
-// OBSOLETE static int is_trace_mode = 0;
-// OBSOLETE /* Descriptor for I/O to remote machine.  Initialize it to NULL */
-// OBSOLETE static struct serial *monitor_desc = NULL;
-// OBSOLETE 
-// OBSOLETE static CORE_ADDR bufaddr = 0;
-// OBSOLETE static int buflen = 0;
-// OBSOLETE static char readbuf[16];
-// OBSOLETE 
-// OBSOLETE /* Send data to monitor.  Works just like printf. */
-// OBSOLETE static void
-// OBSOLETE printf_monitor (char *pattern,...)
-// OBSOLETE {
-// OBSOLETE   va_list args;
-// OBSOLETE   char buf[200];
-// OBSOLETE   int i;
-// OBSOLETE 
-// OBSOLETE   va_start (args, pattern);
-// OBSOLETE 
-// OBSOLETE   vsprintf (buf, pattern, args);
-// OBSOLETE   va_end (args);
-// OBSOLETE 
-// OBSOLETE   if (serial_write (monitor_desc, buf, strlen (buf)))
-// OBSOLETE     fprintf_unfiltered (gdb_stderr, "serial_write failed: %s\n",
-// OBSOLETE                    safe_strerror (errno));
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Read a character from the remote system, doing all the fancy timeout stuff */
-// OBSOLETE static int
-// OBSOLETE readchar (int timeout)
-// OBSOLETE {
-// OBSOLETE   int c;
-// OBSOLETE 
-// OBSOLETE   c = serial_readchar (monitor_desc, timeout);
-// OBSOLETE 
-// OBSOLETE   if (sr_get_debug ())
-// OBSOLETE     putchar (c & 0x7f);
-// OBSOLETE 
-// OBSOLETE   if (monitor_log && isascii (c))
-// OBSOLETE     putc (c & 0x7f, log_file);
-// OBSOLETE 
-// OBSOLETE   if (c >= 0)
-// OBSOLETE     return c & 0x7f;
-// OBSOLETE 
-// OBSOLETE   if (c == SERIAL_TIMEOUT)
-// OBSOLETE     {
-// OBSOLETE       if (timeout == 0)
-// OBSOLETE    return c;               /* Polls shouldn't generate timeout errors */
-// OBSOLETE 
-// OBSOLETE       error ("Timeout reading from remote system.");
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   perror_with_name ("remote-monitor");
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Scan input from the remote system, until STRING is found.  If DISCARD is
-// OBSOLETE    non-zero, then discard non-matching input, else print it out.
-// OBSOLETE    Let the user break out immediately.  */
-// OBSOLETE static void
-// OBSOLETE expect (char *string, int discard)
-// OBSOLETE {
-// OBSOLETE   char *p = string;
-// OBSOLETE   int c;
-// OBSOLETE 
-// OBSOLETE   if (sr_get_debug ())
-// OBSOLETE     printf ("Expecting \"%s\"\n", string);
-// OBSOLETE 
-// OBSOLETE   immediate_quit++;
-// OBSOLETE   while (1)
-// OBSOLETE     {
-// OBSOLETE       c = readchar (timeout);
-// OBSOLETE       if (!isascii (c))
-// OBSOLETE    continue;
-// OBSOLETE       if (c == *p++)
-// OBSOLETE    {
-// OBSOLETE      if (*p == '\0')
-// OBSOLETE        {
-// OBSOLETE          immediate_quit--;
-// OBSOLETE          if (sr_get_debug ())
-// OBSOLETE            printf ("\nMatched\n");
-// OBSOLETE          return;
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      if (!discard)
-// OBSOLETE        {
-// OBSOLETE          fwrite (string, 1, (p - 1) - string, stdout);
-// OBSOLETE          putchar ((char) c);
-// OBSOLETE          fflush (stdout);
-// OBSOLETE        }
-// OBSOLETE      p = string;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Keep discarding input until we see the ROMBUG prompt.
-// OBSOLETE 
-// OBSOLETE    The convention for dealing with the prompt is that you
-// OBSOLETE    o give your command
-// OBSOLETE    o *then* wait for the prompt.
-// OBSOLETE 
-// OBSOLETE    Thus the last thing that a procedure does with the serial line
-// OBSOLETE    will be an expect_prompt().  Exception:  rombug_resume does not
-// OBSOLETE    wait for the prompt, because the terminal is being handed over
-// OBSOLETE    to the inferior.  However, the next thing which happens after that
-// OBSOLETE    is a rombug_wait which does wait for the prompt.
-// OBSOLETE    Note that this includes abnormal exit, e.g. error().  This is
-// OBSOLETE    necessary to prevent getting into states from which we can't
-// OBSOLETE    recover.  */
-// OBSOLETE static void
-// OBSOLETE expect_prompt (int discard)
-// OBSOLETE {
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     /* This is a convenient place to do this.  The idea is to do it often
-// OBSOLETE        enough that we never lose much data if we terminate abnormally.  */
-// OBSOLETE     fflush (log_file);
-// OBSOLETE 
-// OBSOLETE   if (is_trace_mode)
-// OBSOLETE     {
-// OBSOLETE       expect ("trace", discard);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       expect (PROMPT, discard);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Get a hex digit from the remote system & return its value.
-// OBSOLETE    If ignore_space is nonzero, ignore spaces (not newline, tab, etc).  */
-// OBSOLETE static int
-// OBSOLETE get_hex_digit (int ignore_space)
-// OBSOLETE {
-// OBSOLETE   int ch;
-// OBSOLETE   while (1)
-// OBSOLETE     {
-// OBSOLETE       ch = readchar (timeout);
-// OBSOLETE       if (ch >= '0' && ch <= '9')
-// OBSOLETE    return ch - '0';
-// OBSOLETE       else if (ch >= 'A' && ch <= 'F')
-// OBSOLETE    return ch - 'A' + 10;
-// OBSOLETE       else if (ch >= 'a' && ch <= 'f')
-// OBSOLETE    return ch - 'a' + 10;
-// OBSOLETE       else if (ch == ' ' && ignore_space)
-// OBSOLETE    ;
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      expect_prompt (1);
-// OBSOLETE      error ("Invalid hex digit from remote system.");
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Get a byte from monitor and put it in *BYT.  Accept any number
-// OBSOLETE    leading spaces.  */
-// OBSOLETE static void
-// OBSOLETE get_hex_byte (char *byt)
-// OBSOLETE {
-// OBSOLETE   int val;
-// OBSOLETE 
-// OBSOLETE   val = get_hex_digit (1) << 4;
-// OBSOLETE   val |= get_hex_digit (0);
-// OBSOLETE   *byt = val;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Get N 32-bit words from remote, each preceded by a space,
-// OBSOLETE    and put them in registers starting at REGNO.  */
-// OBSOLETE static void
-// OBSOLETE get_hex_regs (int n, int regno)
-// OBSOLETE {
-// OBSOLETE   long val;
-// OBSOLETE   int i;
-// OBSOLETE   unsigned char b;
-// OBSOLETE 
-// OBSOLETE   for (i = 0; i < n; i++)
-// OBSOLETE     {
-// OBSOLETE       int j;
-// OBSOLETE 
-// OBSOLETE       val = 0;
-// OBSOLETE       for (j = 0; j < 4; j++)
-// OBSOLETE    {
-// OBSOLETE      get_hex_byte (&b);
-// OBSOLETE      if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
-// OBSOLETE        val = (val << 8) + b;
-// OBSOLETE      else
-// OBSOLETE        val = val + (b << (j * 8));
-// OBSOLETE    }
-// OBSOLETE       supply_register (regno++, (char *) &val);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* This is called not only when we first attach, but also when the
-// OBSOLETE    user types "run" after having attached.  */
-// OBSOLETE static void
-// OBSOLETE rombug_create_inferior (char *execfile, char *args, char **env)
-// OBSOLETE {
-// OBSOLETE   int entry_pt;
-// OBSOLETE 
-// OBSOLETE   if (args && *args)
-// OBSOLETE     error ("Can't pass arguments to remote ROMBUG process");
-// OBSOLETE 
-// OBSOLETE   if (execfile == 0 || exec_bfd == 0)
-// OBSOLETE     error ("No executable file specified");
-// OBSOLETE 
-// OBSOLETE   entry_pt = (int) bfd_get_start_address (exec_bfd);
-// OBSOLETE 
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     fputs ("\nIn Create_inferior()", log_file);
-// OBSOLETE 
-// OBSOLETE 
-// OBSOLETE /* The "process" (board) is already stopped awaiting our commands, and
-// OBSOLETE    the program is already downloaded.  We just set its PC and go.  */
-// OBSOLETE 
-// OBSOLETE   init_wait_for_inferior ();
-// OBSOLETE   proceed ((CORE_ADDR) entry_pt, TARGET_SIGNAL_DEFAULT, 0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Open a connection to a remote debugger.
-// OBSOLETE    NAME is the filename used for communication.  */
-// OBSOLETE 
-// OBSOLETE static char dev_name[100];
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE rombug_open (char *args, int from_tty)
-// OBSOLETE {
-// OBSOLETE   if (args == NULL)
-// OBSOLETE     error ("Use `target RomBug DEVICE-NAME' to use a serial port, or \n\
-// OBSOLETE `target RomBug HOST-NAME:PORT-NUMBER' to use a network connection.");
-// OBSOLETE 
-// OBSOLETE   target_preopen (from_tty);
-// OBSOLETE 
-// OBSOLETE   if (rombug_is_open)
-// OBSOLETE     unpush_target (&rombug_ops);
-// OBSOLETE 
-// OBSOLETE   strcpy (dev_name, args);
-// OBSOLETE   monitor_desc = serial_open (dev_name);
-// OBSOLETE   if (monitor_desc == NULL)
-// OBSOLETE     perror_with_name (dev_name);
-// OBSOLETE 
-// OBSOLETE   /* if baud rate is set by 'set remotebaud' */
-// OBSOLETE   if (serial_setbaudrate (monitor_desc, sr_get_baud_rate ()))
-// OBSOLETE     {
-// OBSOLETE       serial_close (monitor_desc);
-// OBSOLETE       perror_with_name ("RomBug");
-// OBSOLETE     }
-// OBSOLETE   serial_raw (monitor_desc);
-// OBSOLETE   if (tty_xon || tty_xoff)
-// OBSOLETE     {
-// OBSOLETE       struct hardware_ttystate
-// OBSOLETE    {
-// OBSOLETE      struct termios t;
-// OBSOLETE    }
-// OBSOLETE        *tty_s;
-// OBSOLETE 
-// OBSOLETE       tty_s = (struct hardware_ttystate *) serial_get_tty_state (monitor_desc);
-// OBSOLETE       if (tty_xon)
-// OBSOLETE    tty_s->t.c_iflag |= IXON;
-// OBSOLETE       if (tty_xoff)
-// OBSOLETE    tty_s->t.c_iflag |= IXOFF;
-// OBSOLETE       serial_set_tty_state (monitor_desc, (serial_ttystate) tty_s);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   rombug_is_open = 1;
-// OBSOLETE 
-// OBSOLETE   log_file = fopen (LOG_FILE, "w");
-// OBSOLETE   if (log_file == NULL)
-// OBSOLETE     perror_with_name (LOG_FILE);
-// OBSOLETE 
-// OBSOLETE   push_monitor (&rombug_cmds);
-// OBSOLETE   printf_monitor ("\r");   /* CR wakes up monitor */
-// OBSOLETE   expect_prompt (1);
-// OBSOLETE   push_target (&rombug_ops);
-// OBSOLETE   attach_flag = 1;
-// OBSOLETE 
-// OBSOLETE   if (from_tty)
-// OBSOLETE     printf ("Remote %s connected to %s\n", target_shortname,
-// OBSOLETE        dev_name);
-// OBSOLETE 
-// OBSOLETE   rombug_fetch_registers ();
-// OBSOLETE 
-// OBSOLETE   printf_monitor ("ov e \r");
-// OBSOLETE   expect_prompt (1);
-// OBSOLETE   bufaddr = 0;
-// OBSOLETE   buflen = 0;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Close out all files and local state before this target loses control.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE rombug_close (int quitting)
-// OBSOLETE {
-// OBSOLETE   if (rombug_is_open)
-// OBSOLETE     {
-// OBSOLETE       serial_close (monitor_desc);
-// OBSOLETE       monitor_desc = NULL;
-// OBSOLETE       rombug_is_open = 0;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (log_file)
-// OBSOLETE     {
-// OBSOLETE       if (ferror (log_file))
-// OBSOLETE    fprintf_unfiltered (gdb_stderr, "Error writing log file.\n");
-// OBSOLETE       if (fclose (log_file) != 0)
-// OBSOLETE    fprintf_unfiltered (gdb_stderr, "Error closing log file.\n");
-// OBSOLETE       log_file = 0;
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE int
-// OBSOLETE rombug_link (char *mod_name, CORE_ADDR *text_reloc)
-// OBSOLETE {
-// OBSOLETE   int i, j;
-// OBSOLETE   unsigned long val;
-// OBSOLETE   unsigned char b;
-// OBSOLETE 
-// OBSOLETE   printf_monitor ("l %s \r", mod_name);
-// OBSOLETE   expect_prompt (1);
-// OBSOLETE   printf_monitor (".r \r");
-// OBSOLETE   expect (REG_DELIM, 1);
-// OBSOLETE   for (i = 0; i <= 7; i++)
-// OBSOLETE     {
-// OBSOLETE       val = 0;
-// OBSOLETE       for (j = 0; j < 4; j++)
-// OBSOLETE    {
-// OBSOLETE      get_hex_byte (&b);
-// OBSOLETE      val = (val << 8) + b;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   expect_prompt (1);
-// OBSOLETE   *text_reloc = val;
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Terminate the open connection to the remote debugger.
-// OBSOLETE    Use this when you want to detach and do something else
-// OBSOLETE    with your gdb.  */
-// OBSOLETE static void
-// OBSOLETE rombug_detach (int from_tty)
-// OBSOLETE {
-// OBSOLETE   if (attach_flag)
-// OBSOLETE     {
-// OBSOLETE       printf_monitor (GO_CMD);
-// OBSOLETE       attach_flag = 0;
-// OBSOLETE     }
-// OBSOLETE   pop_target ();           /* calls rombug_close to do the real work */
-// OBSOLETE   if (from_tty)
-// OBSOLETE     printf ("Ending remote %s debugging\n", target_shortname);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Tell the remote machine to resume.
-// OBSOLETE  */
-// OBSOLETE static void
-// OBSOLETE rombug_resume (ptid_t ptid, int step, enum target_signal sig)
-// OBSOLETE {
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     fprintf (log_file, "\nIn Resume (step=%d, sig=%d)\n", step, sig);
-// OBSOLETE 
-// OBSOLETE   if (step)
-// OBSOLETE     {
-// OBSOLETE       is_trace_mode = 1;
-// OBSOLETE       printf_monitor (STEP_CMD);
-// OBSOLETE       /* wait for the echo.  **
-// OBSOLETE          expect (STEP_CMD, 1);
-// OBSOLETE        */
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       printf_monitor (GO_CMD);
-// OBSOLETE       /* swallow the echo.  **
-// OBSOLETE          expect (GO_CMD, 1);
-// OBSOLETE        */
-// OBSOLETE     }
-// OBSOLETE   bufaddr = 0;
-// OBSOLETE   buflen = 0;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Wait until the remote machine stops, then return,
-// OBSOLETE  * storing status in status just as `wait' would.
-// OBSOLETE  */
-// OBSOLETE 
-// OBSOLETE static ptid *
-// OBSOLETE rombug_wait (ptid_t ptid, struct target_waitstatus *status)
-// OBSOLETE {
-// OBSOLETE   int old_timeout = timeout;
-// OBSOLETE   struct section_offsets *offs;
-// OBSOLETE   CORE_ADDR addr, pc;
-// OBSOLETE   struct obj_section *obj_sec;
-// OBSOLETE 
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     fputs ("\nIn wait ()", log_file);
-// OBSOLETE 
-// OBSOLETE   status->kind = TARGET_WAITKIND_EXITED;
-// OBSOLETE   status->value.integer = 0;
-// OBSOLETE 
-// OBSOLETE   timeout = -1;                    /* Don't time out -- user program is running. */
-// OBSOLETE   expect ("eax:", 0);              /* output any message before register display */
-// OBSOLETE   expect_prompt (1);               /* Wait for prompt, outputting extraneous text */
-// OBSOLETE 
-// OBSOLETE   status->kind = TARGET_WAITKIND_STOPPED;
-// OBSOLETE   status->value.sig = TARGET_SIGNAL_TRAP;
-// OBSOLETE   timeout = old_timeout;
-// OBSOLETE   rombug_fetch_registers ();
-// OBSOLETE   bufaddr = 0;
-// OBSOLETE   buflen = 0;
-// OBSOLETE   pc = read_register (PC_REGNUM);
-// OBSOLETE   addr = read_register (DATABASE_REG);
-// OBSOLETE   obj_sec = find_pc_section (pc);
-// OBSOLETE   if (obj_sec != NULL)
-// OBSOLETE     {
-// OBSOLETE       if (obj_sec->objfile != symfile_objfile)
-// OBSOLETE    new_symfile_objfile (obj_sec->objfile, 1, 0);
-// OBSOLETE       offs = (struct section_offsets *) alloca (SIZEOF_SECTION_OFFSETS);
-// OBSOLETE       memcpy (offs, symfile_objfile->section_offsets, SIZEOF_SECTION_OFFSETS);
-// OBSOLETE       offs->offsets[SECT_OFF_DATA (symfile_objfile)]  = addr;
-// OBSOLETE       offs->offsets[SECT_OFF_BSS (symfile_objfile)]  = addr;
-// OBSOLETE 
-// OBSOLETE       objfile_relocate (symfile_objfile, offs);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   return inferior_ptid;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Return the name of register number regno in the form input and output by
-// OBSOLETE    monitor.  Currently, register_names just happens to contain exactly what
-// OBSOLETE    monitor wants.  Lets take advantage of that just as long as possible! */
-// OBSOLETE 
-// OBSOLETE static char *
-// OBSOLETE get_reg_name (int regno)
-// OBSOLETE {
-// OBSOLETE   static char buf[50];
-// OBSOLETE   char *p;
-// OBSOLETE   char *b;
-// OBSOLETE 
-// OBSOLETE   b = buf;
-// OBSOLETE 
-// OBSOLETE   if (regno < 0)
-// OBSOLETE     return ("");
-// OBSOLETE /*
-// OBSOLETE    for (p = REGISTER_NAME (regno); *p; p++)
-// OBSOLETE    *b++ = toupper(*p);
-// OBSOLETE    *b = '\000';
-// OBSOLETE  */
-// OBSOLETE   p = (char *) REGISTER_NAME (regno);
-// OBSOLETE   return p;
-// OBSOLETE /*
-// OBSOLETE    return buf;
-// OBSOLETE  */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* read the remote registers into the block regs.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE rombug_fetch_registers (void)
-// OBSOLETE {
-// OBSOLETE   int regno, j, i;
-// OBSOLETE   long val;
-// OBSOLETE   unsigned char b;
-// OBSOLETE 
-// OBSOLETE   printf_monitor (GET_REG);
-// OBSOLETE   expect ("eax:", 1);
-// OBSOLETE   expect ("\n", 1);
-// OBSOLETE   get_hex_regs (1, 0);
-// OBSOLETE   get_hex_regs (1, 3);
-// OBSOLETE   get_hex_regs (1, 1);
-// OBSOLETE   get_hex_regs (1, 2);
-// OBSOLETE   get_hex_regs (1, 6);
-// OBSOLETE   get_hex_regs (1, 7);
-// OBSOLETE   get_hex_regs (1, 5);
-// OBSOLETE   get_hex_regs (1, 4);
-// OBSOLETE   for (regno = 8; regno <= 15; regno++)
-// OBSOLETE     {
-// OBSOLETE       expect (REG_DELIM, 1);
-// OBSOLETE       if (regno >= 8 && regno <= 13)
-// OBSOLETE    {
-// OBSOLETE      val = 0;
-// OBSOLETE      for (j = 0; j < 2; j++)
-// OBSOLETE        {
-// OBSOLETE          get_hex_byte (&b);
-// OBSOLETE          if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
-// OBSOLETE            val = (val << 8) + b;
-// OBSOLETE          else
-// OBSOLETE            val = val + (b << (j * 8));
-// OBSOLETE        }
-// OBSOLETE 
-// OBSOLETE      if (regno == 8)
-// OBSOLETE        i = 10;
-// OBSOLETE      if (regno >= 9 && regno <= 12)
-// OBSOLETE        i = regno + 3;
-// OBSOLETE      if (regno == 13)
-// OBSOLETE        i = 11;
-// OBSOLETE      supply_register (i, (char *) &val);
-// OBSOLETE    }
-// OBSOLETE       else if (regno == 14)
-// OBSOLETE    {
-// OBSOLETE      get_hex_regs (1, PC_REGNUM);
-// OBSOLETE    }
-// OBSOLETE       else if (regno == 15)
-// OBSOLETE    {
-// OBSOLETE      get_hex_regs (1, 9);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      val = 0;
-// OBSOLETE      supply_register (regno, (char *) &val);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE   is_trace_mode = 0;
-// OBSOLETE   expect_prompt (1);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Fetch register REGNO, or all registers if REGNO is -1.
-// OBSOLETE    Returns errno value.  */
-// OBSOLETE static void
-// OBSOLETE rombug_fetch_register (int regno)
-// OBSOLETE {
-// OBSOLETE   int val, j;
-// OBSOLETE   unsigned char b;
-// OBSOLETE 
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     {
-// OBSOLETE       fprintf (log_file, "\nIn Fetch Register (reg=%s)\n", get_reg_name (regno));
-// OBSOLETE       fflush (log_file);
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (regno < 0)
-// OBSOLETE     {
-// OBSOLETE       rombug_fetch_registers ();
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       char *name = get_reg_name (regno);
-// OBSOLETE       printf_monitor (GET_REG);
-// OBSOLETE       if (regno >= 10 && regno <= 15)
-// OBSOLETE    {
-// OBSOLETE      expect ("\n", 1);
-// OBSOLETE      expect ("\n", 1);
-// OBSOLETE      expect (name, 1);
-// OBSOLETE      expect (REG_DELIM, 1);
-// OBSOLETE      val = 0;
-// OBSOLETE      for (j = 0; j < 2; j++)
-// OBSOLETE        {
-// OBSOLETE          get_hex_byte (&b);
-// OBSOLETE          if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
-// OBSOLETE            val = (val << 8) + b;
-// OBSOLETE          else
-// OBSOLETE            val = val + (b << (j * 8));
-// OBSOLETE        }
-// OBSOLETE      supply_register (regno, (char *) &val);
-// OBSOLETE    }
-// OBSOLETE       else if (regno == 8 || regno == 9)
-// OBSOLETE    {
-// OBSOLETE      expect ("\n", 1);
-// OBSOLETE      expect ("\n", 1);
-// OBSOLETE      expect ("\n", 1);
-// OBSOLETE      expect (name, 1);
-// OBSOLETE      expect (REG_DELIM, 1);
-// OBSOLETE      get_hex_regs (1, regno);
-// OBSOLETE    }
-// OBSOLETE       else
-// OBSOLETE    {
-// OBSOLETE      expect (name, 1);
-// OBSOLETE      expect (REG_DELIM, 1);
-// OBSOLETE      expect ("\n", 1);
-// OBSOLETE      get_hex_regs (1, 0);
-// OBSOLETE      get_hex_regs (1, 3);
-// OBSOLETE      get_hex_regs (1, 1);
-// OBSOLETE      get_hex_regs (1, 2);
-// OBSOLETE      get_hex_regs (1, 6);
-// OBSOLETE      get_hex_regs (1, 7);
-// OBSOLETE      get_hex_regs (1, 5);
-// OBSOLETE      get_hex_regs (1, 4);
-// OBSOLETE    }
-// OBSOLETE       expect_prompt (1);
-// OBSOLETE     }
-// OBSOLETE   return;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Store the remote registers from the contents of the block REGS.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE rombug_store_registers (void)
-// OBSOLETE {
-// OBSOLETE   int regno;
-// OBSOLETE 
-// OBSOLETE   for (regno = 0; regno <= PC_REGNUM; regno++)
-// OBSOLETE     rombug_store_register (regno);
-// OBSOLETE 
-// OBSOLETE   registers_changed ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Store register REGNO, or all if REGNO == 0.
-// OBSOLETE    return errno value.  */
-// OBSOLETE static void
-// OBSOLETE rombug_store_register (int regno)
-// OBSOLETE {
-// OBSOLETE   char *name;
-// OBSOLETE 
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     fprintf (log_file, "\nIn Store_register (regno=%d)\n", regno);
-// OBSOLETE 
-// OBSOLETE   if (regno == -1)
-// OBSOLETE     rombug_store_registers ();
-// OBSOLETE   else
-// OBSOLETE     {
-// OBSOLETE       if (sr_get_debug ())
-// OBSOLETE    printf ("Setting register %s to 0x%x\n", get_reg_name (regno), read_register (regno));
-// OBSOLETE 
-// OBSOLETE       name = get_reg_name (regno);
-// OBSOLETE       if (name == 0)
-// OBSOLETE    return;
-// OBSOLETE       printf_monitor (SET_REG, name, read_register (regno));
-// OBSOLETE 
-// OBSOLETE       is_trace_mode = 0;
-// OBSOLETE       expect_prompt (1);
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Get ready to modify the registers array.  On machines which store
-// OBSOLETE    individual registers, this doesn't need to do anything.  On machines
-// OBSOLETE    which store all the registers in one fell swoop, this makes sure
-// OBSOLETE    that registers contains all the registers from the program being
-// OBSOLETE    debugged.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE rombug_prepare_to_store (void)
-// OBSOLETE {
-// OBSOLETE   /* Do nothing, since we can store individual regs */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE rombug_files_info (void)
-// OBSOLETE {
-// OBSOLETE   printf ("\tAttached to %s at %d baud.\n",
-// OBSOLETE      dev_name, sr_get_baud_rate ());
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Copy LEN bytes of data from debugger memory at MYADDR
-// OBSOLETE    to inferior's memory at MEMADDR.  Returns length moved.  */
-// OBSOLETE static int
-// OBSOLETE rombug_write_inferior_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE   char buf[10];
-// OBSOLETE 
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     fprintf (log_file, "\nIn Write_inferior_memory (memaddr=%x, len=%d)\n", memaddr, len);
-// OBSOLETE 
-// OBSOLETE   printf_monitor (MEM_SET_CMD, memaddr);
-// OBSOLETE   for (i = 0; i < len; i++)
-// OBSOLETE     {
-// OBSOLETE       expect (CMD_DELIM, 1);
-// OBSOLETE       printf_monitor ("%x \r", myaddr[i]);
-// OBSOLETE       if (sr_get_debug ())
-// OBSOLETE    printf ("\nSet 0x%x to 0x%x\n", memaddr + i, myaddr[i]);
-// OBSOLETE     }
-// OBSOLETE   expect (CMD_DELIM, 1);
-// OBSOLETE   if (CMD_END)
-// OBSOLETE     printf_monitor (CMD_END);
-// OBSOLETE   is_trace_mode = 0;
-// OBSOLETE   expect_prompt (1);
-// OBSOLETE 
-// OBSOLETE   bufaddr = 0;
-// OBSOLETE   buflen = 0;
-// OBSOLETE   return len;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Read LEN bytes from inferior memory at MEMADDR.  Put the result
-// OBSOLETE    at debugger address MYADDR.  Returns length moved.  */
-// OBSOLETE static int
-// OBSOLETE rombug_read_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len)
-// OBSOLETE {
-// OBSOLETE   int i, j;
-// OBSOLETE 
-// OBSOLETE   /* Number of bytes read so far.  */
-// OBSOLETE   int count;
-// OBSOLETE 
-// OBSOLETE   /* Starting address of this pass.  */
-// OBSOLETE   unsigned long startaddr;
-// OBSOLETE 
-// OBSOLETE   /* Number of bytes to read in this pass.  */
-// OBSOLETE   int len_this_pass;
-// OBSOLETE 
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     fprintf (log_file, "\nIn Read_inferior_memory (memaddr=%x, len=%d)\n", memaddr, len);
-// OBSOLETE 
-// OBSOLETE   /* Note that this code works correctly if startaddr is just less
-// OBSOLETE      than UINT_MAX (well, really CORE_ADDR_MAX if there was such a
-// OBSOLETE      thing).  That is, something like
-// OBSOLETE      rombug_read_bytes (CORE_ADDR_MAX - 4, foo, 4)
-// OBSOLETE      works--it never adds len To memaddr and gets 0.  */
-// OBSOLETE   /* However, something like
-// OBSOLETE      rombug_read_bytes (CORE_ADDR_MAX - 3, foo, 4)
-// OBSOLETE      doesn't need to work.  Detect it and give up if there's an attempt
-// OBSOLETE      to do that.  */
-// OBSOLETE   if (((memaddr - 1) + len) < memaddr)
-// OBSOLETE     {
-// OBSOLETE       errno = EIO;
-// OBSOLETE       return 0;
-// OBSOLETE     }
-// OBSOLETE   if (bufaddr <= memaddr && (memaddr + len) <= (bufaddr + buflen))
-// OBSOLETE     {
-// OBSOLETE       memcpy (myaddr, &readbuf[memaddr - bufaddr], len);
-// OBSOLETE       return len;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   startaddr = memaddr;
-// OBSOLETE   count = 0;
-// OBSOLETE   while (count < len)
-// OBSOLETE     {
-// OBSOLETE       len_this_pass = 16;
-// OBSOLETE       if ((startaddr % 16) != 0)
-// OBSOLETE    len_this_pass -= startaddr % 16;
-// OBSOLETE       if (len_this_pass > (len - count))
-// OBSOLETE    len_this_pass = (len - count);
-// OBSOLETE       if (sr_get_debug ())
-// OBSOLETE    printf ("\nDisplay %d bytes at %x\n", len_this_pass, startaddr);
-// OBSOLETE 
-// OBSOLETE       printf_monitor (MEM_DIS_CMD, startaddr, 8);
-// OBSOLETE       expect ("- ", 1);
-// OBSOLETE       for (i = 0; i < 16; i++)
-// OBSOLETE    {
-// OBSOLETE      get_hex_byte (&readbuf[i]);
-// OBSOLETE    }
-// OBSOLETE       bufaddr = startaddr;
-// OBSOLETE       buflen = 16;
-// OBSOLETE       memcpy (&myaddr[count], readbuf, len_this_pass);
-// OBSOLETE       count += len_this_pass;
-// OBSOLETE       startaddr += len_this_pass;
-// OBSOLETE       expect (CMD_DELIM, 1);
-// OBSOLETE     }
-// OBSOLETE   if (CMD_END)
-// OBSOLETE     printf_monitor (CMD_END);
-// OBSOLETE   is_trace_mode = 0;
-// OBSOLETE   expect_prompt (1);
-// OBSOLETE 
-// OBSOLETE   return len;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Transfer LEN bytes between GDB address MYADDR and target address
-// OBSOLETE    MEMADDR.  If WRITE is non-zero, transfer them to the target,
-// OBSOLETE    otherwise transfer them from the target.  TARGET is unused.
-// OBSOLETE 
-// OBSOLETE    Returns the number of bytes transferred. */
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE rombug_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len,
-// OBSOLETE                         int write, struct mem_attrib *attrib,
-// OBSOLETE                         struct target_ops *target)
-// OBSOLETE {
-// OBSOLETE   if (write)
-// OBSOLETE     return rombug_write_inferior_memory (memaddr, myaddr, len);
-// OBSOLETE   else
-// OBSOLETE     return rombug_read_inferior_memory (memaddr, myaddr, len);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE rombug_kill (char *args, int from_tty)
-// OBSOLETE {
-// OBSOLETE   return;                  /* ignore attempts to kill target system */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Clean up when a program exits.
-// OBSOLETE    The program actually lives on in the remote processor's RAM, and may be
-// OBSOLETE    run again without a download.  Don't leave it full of breakpoint
-// OBSOLETE    instructions.  */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE rombug_mourn_inferior (void)
-// OBSOLETE {
-// OBSOLETE   remove_breakpoints ();
-// OBSOLETE   generic_mourn_inferior ();       /* Do all the proper things now */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #define MAX_MONITOR_BREAKPOINTS 16
-// OBSOLETE 
-// OBSOLETE static CORE_ADDR breakaddr[MAX_MONITOR_BREAKPOINTS] =
-// OBSOLETE {0};
-// OBSOLETE 
-// OBSOLETE static int
-// OBSOLETE rombug_insert_breakpoint (CORE_ADDR addr, char *shadow)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE   CORE_ADDR bp_addr = addr;
-// OBSOLETE   int bp_size = 0;
-// OBSOLETE 
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     fprintf (log_file, "\nIn Insert_breakpoint (addr=%x)\n", addr);
-// OBSOLETE   BREAKPOINT_FROM_PC (&bp_addr, &bp_size);
-// OBSOLETE 
-// OBSOLETE   for (i = 0; i <= MAX_MONITOR_BREAKPOINTS; i++)
-// OBSOLETE     if (breakaddr[i] == 0)
-// OBSOLETE       {
-// OBSOLETE    breakaddr[i] = addr;
-// OBSOLETE    if (sr_get_debug ())
-// OBSOLETE      printf ("Breakpoint at %x\n", addr);
-// OBSOLETE    rombug_read_inferior_memory (bp_addr, shadow, bp_size);
-// OBSOLETE    printf_monitor (SET_BREAK_CMD, addr);
-// OBSOLETE    is_trace_mode = 0;
-// OBSOLETE    expect_prompt (1);
-// OBSOLETE    return 0;
-// OBSOLETE       }
-// OBSOLETE 
-// OBSOLETE   fprintf_unfiltered (gdb_stderr, "Too many breakpoints (> 16) for monitor\n");
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * _remove_breakpoint -- Tell the monitor to remove a breakpoint
-// OBSOLETE  */
-// OBSOLETE static int
-// OBSOLETE rombug_remove_breakpoint (CORE_ADDR addr, char *shadow)
-// OBSOLETE {
-// OBSOLETE   int i;
-// OBSOLETE 
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     fprintf (log_file, "\nIn Remove_breakpoint (addr=%x)\n", addr);
-// OBSOLETE 
-// OBSOLETE   for (i = 0; i < MAX_MONITOR_BREAKPOINTS; i++)
-// OBSOLETE     if (breakaddr[i] == addr)
-// OBSOLETE       {
-// OBSOLETE    breakaddr[i] = 0;
-// OBSOLETE    printf_monitor (CLR_BREAK_CMD, addr);
-// OBSOLETE    is_trace_mode = 0;
-// OBSOLETE    expect_prompt (1);
-// OBSOLETE    return 0;
-// OBSOLETE       }
-// OBSOLETE 
-// OBSOLETE   fprintf_unfiltered (gdb_stderr,
-// OBSOLETE                  "Can't find breakpoint associated with 0x%x\n", addr);
-// OBSOLETE   return 1;
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Load a file. This is usually an srecord, which is ascii. No 
-// OBSOLETE    protocol, just sent line by line. */
-// OBSOLETE 
-// OBSOLETE #define DOWNLOAD_LINE_SIZE 100
-// OBSOLETE static void
-// OBSOLETE rombug_load (char *arg)
-// OBSOLETE {
-// OBSOLETE /* this part comment out for os9* */
-// OBSOLETE #if 0
-// OBSOLETE   FILE *download;
-// OBSOLETE   char buf[DOWNLOAD_LINE_SIZE];
-// OBSOLETE   int i, bytes_read;
-// OBSOLETE 
-// OBSOLETE   if (sr_get_debug ())
-// OBSOLETE     printf ("Loading %s to monitor\n", arg);
-// OBSOLETE 
-// OBSOLETE   download = fopen (arg, "r");
-// OBSOLETE   if (download == NULL)
-// OBSOLETE     {
-// OBSOLETE       error (sprintf (buf, "%s Does not exist", arg));
-// OBSOLETE       return;
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   printf_monitor (LOAD_CMD);
-// OBSOLETE /*  expect ("Waiting for S-records from host... ", 1); */
-// OBSOLETE 
-// OBSOLETE   while (!feof (download))
-// OBSOLETE     {
-// OBSOLETE       bytes_read = fread (buf, sizeof (char), DOWNLOAD_LINE_SIZE, download);
-// OBSOLETE       if (hashmark)
-// OBSOLETE    {
-// OBSOLETE      putchar ('.');
-// OBSOLETE      fflush (stdout);
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       if (serial_write (monitor_desc, buf, bytes_read))
-// OBSOLETE    {
-// OBSOLETE      fprintf_unfiltered (gdb_stderr,
-// OBSOLETE                          "serial_write failed: (while downloading) %s\n",
-// OBSOLETE                          safe_strerror (errno));
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE       i = 0;
-// OBSOLETE       while (i++ <= 200000)
-// OBSOLETE    {
-// OBSOLETE    };                      /* Ugly HACK, probably needs flow control */
-// OBSOLETE       if (bytes_read < DOWNLOAD_LINE_SIZE)
-// OBSOLETE    {
-// OBSOLETE      if (!feof (download))
-// OBSOLETE        error ("Only read %d bytes\n", bytes_read);
-// OBSOLETE      break;
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE 
-// OBSOLETE   if (hashmark)
-// OBSOLETE     {
-// OBSOLETE       putchar ('\n');
-// OBSOLETE     }
-// OBSOLETE   if (!feof (download))
-// OBSOLETE     error ("Never got EOF while downloading");
-// OBSOLETE   fclose (download);
-// OBSOLETE #endif /* 0 */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Put a command string, in args, out to MONITOR.  
-// OBSOLETE    Output from MONITOR is placed on the users terminal until the prompt 
-// OBSOLETE    is seen. */
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE rombug_command (char *args, int fromtty)
-// OBSOLETE {
-// OBSOLETE   if (monitor_desc == NULL)
-// OBSOLETE     error ("monitor target not open.");
-// OBSOLETE 
-// OBSOLETE   if (monitor_log)
-// OBSOLETE     fprintf (log_file, "\nIn command (args=%s)\n", args);
-// OBSOLETE 
-// OBSOLETE   if (!args)
-// OBSOLETE     error ("Missing command.");
-// OBSOLETE 
-// OBSOLETE   printf_monitor ("%s\r", args);
-// OBSOLETE   expect_prompt (0);
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE #if 0
-// OBSOLETE /* Connect the user directly to MONITOR.  This command acts just like the
-// OBSOLETE    'cu' or 'tip' command.  Use <CR>~. or <CR>~^D to break out.  */
-// OBSOLETE 
-// OBSOLETE static struct ttystate ttystate;
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE cleanup_tty (void)
-// OBSOLETE {
-// OBSOLETE   printf ("\r\n[Exiting connect mode]\r\n");
-// OBSOLETE   /*serial_restore(0, &ttystate); */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE connect_command (char *args, int fromtty)
-// OBSOLETE {
-// OBSOLETE   fd_set readfds;
-// OBSOLETE   int numfds;
-// OBSOLETE   int c;
-// OBSOLETE   char cur_esc = 0;
-// OBSOLETE 
-// OBSOLETE   dont_repeat ();
-// OBSOLETE 
-// OBSOLETE   if (monitor_desc == NULL)
-// OBSOLETE     error ("monitor target not open.");
-// OBSOLETE 
-// OBSOLETE   if (args)
-// OBSOLETE     fprintf ("This command takes no args.  They have been ignored.\n");
-// OBSOLETE 
-// OBSOLETE   printf ("[Entering connect mode.  Use ~. or ~^D to escape]\n");
-// OBSOLETE 
-// OBSOLETE   serial_raw (0, &ttystate);
-// OBSOLETE 
-// OBSOLETE   make_cleanup (cleanup_tty, 0);
-// OBSOLETE 
-// OBSOLETE   FD_ZERO (&readfds);
-// OBSOLETE 
-// OBSOLETE   while (1)
-// OBSOLETE     {
-// OBSOLETE       do
-// OBSOLETE    {
-// OBSOLETE      FD_SET (0, &readfds);
-// OBSOLETE      FD_SET (deprecated_serial_fd (monitor_desc), &readfds);
-// OBSOLETE      numfds = select (sizeof (readfds) * 8, &readfds, 0, 0, 0);
-// OBSOLETE    }
-// OBSOLETE       while (numfds == 0);
-// OBSOLETE 
-// OBSOLETE       if (numfds < 0)
-// OBSOLETE    perror_with_name ("select");
-// OBSOLETE 
-// OBSOLETE       if (FD_ISSET (0, &readfds))
-// OBSOLETE    {                       /* tty input, send to monitor */
-// OBSOLETE      c = getchar ();
-// OBSOLETE      if (c < 0)
-// OBSOLETE        perror_with_name ("connect");
-// OBSOLETE 
-// OBSOLETE      printf_monitor ("%c", c);
-// OBSOLETE      switch (cur_esc)
-// OBSOLETE        {
-// OBSOLETE        case 0:
-// OBSOLETE          if (c == '\r')
-// OBSOLETE            cur_esc = c;
-// OBSOLETE          break;
-// OBSOLETE        case '\r':
-// OBSOLETE          if (c == '~')
-// OBSOLETE            cur_esc = c;
-// OBSOLETE          else
-// OBSOLETE            cur_esc = 0;
-// OBSOLETE          break;
-// OBSOLETE        case '~':
-// OBSOLETE          if (c == '.' || c == '\004')
-// OBSOLETE            return;
-// OBSOLETE          else
-// OBSOLETE            cur_esc = 0;
-// OBSOLETE        }
-// OBSOLETE    }
-// OBSOLETE 
-// OBSOLETE       if (FD_ISSET (deprecated_serial_fd (monitor_desc), &readfds))
-// OBSOLETE    {
-// OBSOLETE      while (1)
-// OBSOLETE        {
-// OBSOLETE          c = readchar (0);
-// OBSOLETE          if (c < 0)
-// OBSOLETE            break;
-// OBSOLETE          putchar (c);
-// OBSOLETE        }
-// OBSOLETE      fflush (stdout);
-// OBSOLETE    }
-// OBSOLETE     }
-// OBSOLETE }
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE /*
-// OBSOLETE  * Define the monitor command strings. Since these are passed directly
-// OBSOLETE  * through to a printf style function, we need can include formatting
-// OBSOLETE  * strings. We also need a CR or LF on the end.
-// OBSOLETE  */
-// OBSOLETE #warning FIXME: monitor interface pattern strings, stale struct decl
-// OBSOLETE struct monitor_ops rombug_cmds =
-// OBSOLETE {
-// OBSOLETE   "g \r",                  /* execute or usually GO command */
-// OBSOLETE   "g \r",                  /* continue command */
-// OBSOLETE   "t \r",                  /* single step */
-// OBSOLETE   "b %x\r",                        /* set a breakpoint */
-// OBSOLETE   "k %x\r",                        /* clear a breakpoint */
-// OBSOLETE   "c %x\r",                        /* set memory to a value */
-// OBSOLETE   "d %x %d\r",                     /* display memory */
-// OBSOLETE   "$%08X",                 /* prompt memory commands use */
-// OBSOLETE   ".%s %x\r",                      /* set a register */
-// OBSOLETE   ":",                             /* delimiter between registers */
-// OBSOLETE   ". \r",                  /* read a register */
-// OBSOLETE   "mf \r",                 /* download command */
-// OBSOLETE   "RomBug: ",                      /* monitor command prompt */
-// OBSOLETE   ": ",                            /* end-of-command delimitor */
-// OBSOLETE   ".\r"                            /* optional command terminator */
-// OBSOLETE };
-// OBSOLETE 
-// OBSOLETE struct target_ops rombug_ops;
-// OBSOLETE 
-// OBSOLETE static void
-// OBSOLETE init_rombug_ops (void)
-// OBSOLETE {
-// OBSOLETE   rombug_ops.to_shortname = "rombug";
-// OBSOLETE   rombug_ops.to_longname = "Microware's ROMBUG debug monitor";
-// OBSOLETE   rombug_ops.to_doc = "Use a remote computer running the ROMBUG debug monitor.\n\
-// OBSOLETE Specify the serial device it is connected to (e.g. /dev/ttya).",
-// OBSOLETE     rombug_ops.to_open = rombug_open;
-// OBSOLETE   rombug_ops.to_close = rombug_close;
-// OBSOLETE   rombug_ops.to_attach = 0;
-// OBSOLETE   rombug_ops.to_post_attach = NULL;
-// OBSOLETE   rombug_ops.to_require_attach = NULL;
-// OBSOLETE   rombug_ops.to_detach = rombug_detach;
-// OBSOLETE   rombug_ops.to_require_detach = NULL;
-// OBSOLETE   rombug_ops.to_resume = rombug_resume;
-// OBSOLETE   rombug_ops.to_wait = rombug_wait;
-// OBSOLETE   rombug_ops.to_post_wait = NULL;
-// OBSOLETE   rombug_ops.to_fetch_registers = rombug_fetch_register;
-// OBSOLETE   rombug_ops.to_store_registers = rombug_store_register;
-// OBSOLETE   rombug_ops.to_prepare_to_store = rombug_prepare_to_store;
-// OBSOLETE   rombug_ops.to_xfer_memory = rombug_xfer_inferior_memory;
-// OBSOLETE   rombug_ops.to_files_info = rombug_files_info;
-// OBSOLETE   rombug_ops.to_insert_breakpoint = rombug_insert_breakpoint;
-// OBSOLETE   rombug_ops.to_remove_breakpoint = rombug_remove_breakpoint;      /* Breakpoints */
-// OBSOLETE   rombug_ops.to_terminal_init = 0;
-// OBSOLETE   rombug_ops.to_terminal_inferior = 0;
-// OBSOLETE   rombug_ops.to_terminal_ours_for_output = 0;
-// OBSOLETE   rombug_ops.to_terminal_ours = 0;
-// OBSOLETE   rombug_ops.to_terminal_info = 0; /* Terminal handling */
-// OBSOLETE   rombug_ops.to_kill = rombug_kill;
-// OBSOLETE   rombug_ops.to_load = rombug_load;        /* load */
-// OBSOLETE   rombug_ops.to_lookup_symbol = rombug_link;       /* lookup_symbol */
-// OBSOLETE   rombug_ops.to_create_inferior = rombug_create_inferior;
-// OBSOLETE   rombug_ops.to_post_startup_inferior = NULL;
-// OBSOLETE   rombug_ops.to_acknowledge_created_inferior = NULL;
-// OBSOLETE   rombug_ops.to_clone_and_follow_inferior = NULL;
-// OBSOLETE   rombug_ops.to_post_follow_inferior_by_clone = NULL;
-// OBSOLETE   rombug_ops.to_insert_fork_catchpoint = NULL;
-// OBSOLETE   rombug_ops.to_remove_fork_catchpoint = NULL;
-// OBSOLETE   rombug_ops.to_insert_vfork_catchpoint = NULL;
-// OBSOLETE   rombug_ops.to_remove_vfork_catchpoint = NULL;
-// OBSOLETE   rombug_ops.to_has_forked = NULL;
-// OBSOLETE   rombug_ops.to_has_vforked = NULL;
-// OBSOLETE   rombug_ops.to_can_follow_vfork_prior_to_exec = NULL;
-// OBSOLETE   rombug_ops.to_post_follow_vfork = NULL;
-// OBSOLETE   rombug_ops.to_insert_exec_catchpoint = NULL;
-// OBSOLETE   rombug_ops.to_remove_exec_catchpoint = NULL;
-// OBSOLETE   rombug_ops.to_has_execd = NULL;
-// OBSOLETE   rombug_ops.to_reported_exec_events_per_exec_call = NULL;
-// OBSOLETE   rombug_ops.to_has_exited = NULL;
-// OBSOLETE   rombug_ops.to_mourn_inferior = rombug_mourn_inferior;
-// OBSOLETE   rombug_ops.to_can_run = 0;       /* can_run */
-// OBSOLETE   rombug_ops.to_notice_signals = 0;        /* notice_signals */
-// OBSOLETE   rombug_ops.to_thread_alive = 0;
-// OBSOLETE   rombug_ops.to_stop = 0;  /* to_stop */
-// OBSOLETE   rombug_ops.to_pid_to_exec_file = NULL;
-// OBSOLETE   rombug_ops.to_stratum = process_stratum;
-// OBSOLETE   rombug_ops.DONT_USE = 0; /* next */
-// OBSOLETE   rombug_ops.to_has_all_memory = 1;
-// OBSOLETE   rombug_ops.to_has_memory = 1;
-// OBSOLETE   rombug_ops.to_has_stack = 1;
-// OBSOLETE   rombug_ops.to_has_registers = 1;
-// OBSOLETE   rombug_ops.to_has_execution = 1; /* has execution */
-// OBSOLETE   rombug_ops.to_sections = 0;
-// OBSOLETE   rombug_ops.to_sections_end = 0;  /* Section pointers */
-// OBSOLETE   rombug_ops.to_magic = OPS_MAGIC; /* Always the last thing */
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE _initialize_remote_os9k (void)
-// OBSOLETE {
-// OBSOLETE   init_rombug_ops ();
-// OBSOLETE   add_target (&rombug_ops);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set (
-// OBSOLETE         add_set_cmd ("hash", no_class, var_boolean, (char *) &hashmark,
-// OBSOLETE                      "Set display of activity while downloading a file.\nWhen enabled, a period \'.\' is displayed.",
-// OBSOLETE                      &setlist),
-// OBSOLETE                  &showlist);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set (
-// OBSOLETE                  add_set_cmd ("timeout", no_class, var_zinteger,
-// OBSOLETE                               (char *) &timeout,
-// OBSOLETE                   "Set timeout in seconds for remote MIPS serial I/O.",
-// OBSOLETE                               &setlist),
-// OBSOLETE                  &showlist);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set (
-// OBSOLETE                  add_set_cmd ("remotelog", no_class, var_zinteger,
-// OBSOLETE                               (char *) &monitor_log,
-// OBSOLETE                          "Set monitor activity log on(=1) or off(=0).",
-// OBSOLETE                               &setlist),
-// OBSOLETE                  &showlist);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set (
-// OBSOLETE                  add_set_cmd ("remotexon", no_class, var_zinteger,
-// OBSOLETE                               (char *) &tty_xon,
-// OBSOLETE                               "Set remote tty line XON control",
-// OBSOLETE                               &setlist),
-// OBSOLETE                  &showlist);
-// OBSOLETE 
-// OBSOLETE   add_show_from_set (
-// OBSOLETE                  add_set_cmd ("remotexoff", no_class, var_zinteger,
-// OBSOLETE                               (char *) &tty_xoff,
-// OBSOLETE                               "Set remote tty line XOFF control",
-// OBSOLETE                               &setlist),
-// OBSOLETE                  &showlist);
-// OBSOLETE 
-// OBSOLETE   add_com ("rombug <command>", class_obscure, rombug_command,
-// OBSOLETE       "Send a command to the debug monitor.");
-// OBSOLETE #if 0
-// OBSOLETE   add_com ("connect", class_obscure, connect_command,
-// OBSOLETE       "Connect the terminal directly up to a serial based command monitor.\nUse <CR>~. or <CR>~^D to break out.");
-// OBSOLETE #endif
-// OBSOLETE }
index 20ed51602501b78737a889efb730e0be7b5aef99..3f956e7811b2d0c497246eb3c68dbda6de99725a 100644 (file)
@@ -1163,9 +1163,7 @@ remote_rdp_open (char *args, int from_tty)
   flush_cached_frames ();
   registers_changed ();
   stop_pc = read_pc ();
-  set_current_frame (create_new_frame (read_fp (), stop_pc));
-  select_frame (get_current_frame ());
-  print_stack_frame (selected_frame, -1, 1);
+  print_stack_frame (get_selected_frame (), -1, 1);
 }
 
 
index 0bd8c52052acbd5d43ffea30676e3b691c62fe04..39d18e422d942bdebc3cddf6a0926ce53d30a875 100644 (file)
@@ -820,9 +820,6 @@ net_get_symbols (ldtabl *pLoadTable)
    Returns status of symbol read on target side (0=success, -1=fail)
    Returns -1 and complain()s if rpc fails.  */
 
-struct deprecated_complaint cant_contact_target =
-{"Lost contact with VxWorks target", 0, 0};
-
 static int
 vx_lookup_symbol (char *name,  /* symbol name */
                  CORE_ADDR *pAddr)
@@ -837,7 +834,7 @@ vx_lookup_symbol (char *name,       /* symbol name */
                          xdr_SYMBOL_ADDR, &symbolAddr);
   if (status != RPC_SUCCESS)
     {
-      complain (&cant_contact_target);
+      complaint (&symfile_complaints, "Lost contact with VxWorks target");
       return -1;
     }
 
diff --git a/gdb/remote-vx960.c b/gdb/remote-vx960.c
deleted file mode 100644 (file)
index 87435da..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-// OBSOLETE /* i80960-dependent portions of the RPC protocol
-// OBSOLETE    used with a VxWorks target 
-// OBSOLETE 
-// OBSOLETE    Contributed by Wind River Systems.
-// OBSOLETE 
-// OBSOLETE    This file is part of GDB.
-// OBSOLETE 
-// OBSOLETE    This program is free software; you can redistribute it and/or modify
-// OBSOLETE    it under the terms of the GNU General Public License as published by
-// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE    (at your option) any later version.
-// OBSOLETE 
-// OBSOLETE    This program is distributed in the hope that it will be useful,
-// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// OBSOLETE    GNU General Public License for more details.
-// OBSOLETE 
-// OBSOLETE    You should have received a copy of the GNU General Public License
-// OBSOLETE    along with this program; if not, write to the Free Software
-// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE    Boston, MA 02111-1307, USA.  */
-// OBSOLETE 
-// OBSOLETE #include <stdio.h>
-// OBSOLETE #include "defs.h"
-// OBSOLETE 
-// OBSOLETE #include "vx-share/regPacket.h"
-// OBSOLETE #include "frame.h"
-// OBSOLETE #include "inferior.h"
-// OBSOLETE #include "target.h"
-// OBSOLETE #include "gdbcore.h"
-// OBSOLETE #include "command.h"
-// OBSOLETE #include "symtab.h"
-// OBSOLETE #include "symfile.h"               /* for struct complaint */
-// OBSOLETE #include "regcache.h"
-// OBSOLETE 
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE #include <errno.h>
-// OBSOLETE #include <fcntl.h>
-// OBSOLETE #include <sys/types.h>
-// OBSOLETE #include <sys/time.h>
-// OBSOLETE #include <sys/socket.h>
-// OBSOLETE 
-// OBSOLETE #ifdef _AIX                        /* IBM claims "void *malloc()" not char * */
-// OBSOLETE #define malloc bogon_malloc
-// OBSOLETE #endif
-// OBSOLETE 
-// OBSOLETE #include <rpc/rpc.h>
-// OBSOLETE #include <sys/time.h>              /* UTek's <rpc/rpc.h> doesn't #incl this */
-// OBSOLETE #include <netdb.h>
-// OBSOLETE #include "vx-share/ptrace.h"
-// OBSOLETE #include "vx-share/xdr_ptrace.h"
-// OBSOLETE #include "vx-share/xdr_ld.h"
-// OBSOLETE #include "vx-share/xdr_rdb.h"
-// OBSOLETE #include "vx-share/dbgRpcLib.h"
-// OBSOLETE 
-// OBSOLETE /* get rid of value.h if possible */
-// OBSOLETE #include <value.h>
-// OBSOLETE #include <symtab.h>
-// OBSOLETE 
-// OBSOLETE /* Flag set if target has fpu */
-// OBSOLETE 
-// OBSOLETE extern int target_has_fp;
-// OBSOLETE 
-// OBSOLETE /* 960 floating point format descriptor, from "i960-tdep.c."  */
-// OBSOLETE 
-// OBSOLETE extern struct ext_format ext_format_i960;
-// OBSOLETE 
-// OBSOLETE /* Generic register read/write routines in remote-vx.c.  */
-// OBSOLETE 
-// OBSOLETE extern void net_read_registers ();
-// OBSOLETE extern void net_write_registers ();
-// OBSOLETE 
-// OBSOLETE /* Read a register or registers from the VxWorks target.
-// OBSOLETE    REGNO is the register to read, or -1 for all; currently,
-// OBSOLETE    it is ignored.  FIXME look at regno to improve efficiency.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE vx_read_register (int regno)
-// OBSOLETE {
-// OBSOLETE   char i960_greg_packet[I960_GREG_PLEN];
-// OBSOLETE   char i960_fpreg_packet[I960_FPREG_PLEN];
-// OBSOLETE 
-// OBSOLETE   /* Get general-purpose registers.  When copying values into
-// OBSOLETE      registers [], don't assume that a location in registers []
-// OBSOLETE      is properly aligned for the target data type.  */
-// OBSOLETE 
-// OBSOLETE   net_read_registers (i960_greg_packet, I960_GREG_PLEN, PTRACE_GETREGS);
-// OBSOLETE 
-// OBSOLETE   bcopy (&i960_greg_packet[I960_R_R0],
-// OBSOLETE     &registers[REGISTER_BYTE (R0_REGNUM)], 16 * I960_GREG_SIZE);
-// OBSOLETE   bcopy (&i960_greg_packet[I960_R_G0],
-// OBSOLETE     &registers[REGISTER_BYTE (G0_REGNUM)], 16 * I960_GREG_SIZE);
-// OBSOLETE   bcopy (&i960_greg_packet[I960_R_PCW],
-// OBSOLETE     &registers[REGISTER_BYTE (PCW_REGNUM)], sizeof (int));
-// OBSOLETE   bcopy (&i960_greg_packet[I960_R_ACW],
-// OBSOLETE     &registers[REGISTER_BYTE (ACW_REGNUM)], sizeof (int));
-// OBSOLETE   bcopy (&i960_greg_packet[I960_R_TCW],
-// OBSOLETE     &registers[REGISTER_BYTE (TCW_REGNUM)], sizeof (int));
-// OBSOLETE 
-// OBSOLETE   /* If the target has floating point registers, fetch them.
-// OBSOLETE      Otherwise, zero the floating point register values in
-// OBSOLETE      registers[] for good measure, even though we might not
-// OBSOLETE      need to.  */
-// OBSOLETE 
-// OBSOLETE   if (target_has_fp)
-// OBSOLETE     {
-// OBSOLETE       net_read_registers (i960_fpreg_packet, I960_FPREG_PLEN,
-// OBSOLETE                      PTRACE_GETFPREGS);
-// OBSOLETE       bcopy (&i960_fpreg_packet[I960_R_FP0],
-// OBSOLETE         &registers[REGISTER_BYTE (FP0_REGNUM)],
-// OBSOLETE         REGISTER_RAW_SIZE (FP0_REGNUM) * 4);
-// OBSOLETE     }
-// OBSOLETE   else
-// OBSOLETE     bzero (&registers[REGISTER_BYTE (FP0_REGNUM)],
-// OBSOLETE       REGISTER_RAW_SIZE (FP0_REGNUM) * 4);
-// OBSOLETE 
-// OBSOLETE   /* Mark the register cache valid.  */
-// OBSOLETE 
-// OBSOLETE   registers_fetched ();
-// OBSOLETE }
-// OBSOLETE 
-// OBSOLETE /* Store a register or registers into the VxWorks target.
-// OBSOLETE    REGNO is the register to store, or -1 for all; currently,
-// OBSOLETE    it is ignored.  FIXME look at regno to improve efficiency.  */
-// OBSOLETE 
-// OBSOLETE void
-// OBSOLETE vx_write_register (int regno)
-// OBSOLETE {
-// OBSOLETE   char i960_greg_packet[I960_GREG_PLEN];
-// OBSOLETE   char i960_fpreg_packet[I960_FPREG_PLEN];
-// OBSOLETE 
-// OBSOLETE   /* Store floating-point registers.  When copying values from
-// OBSOLETE      registers [], don't assume that a location in registers []
-// OBSOLETE      is properly aligned for the target data type.  */
-// OBSOLETE 
-// OBSOLETE   bcopy (&registers[REGISTER_BYTE (R0_REGNUM)],
-// OBSOLETE     &i960_greg_packet[I960_R_R0], 16 * I960_GREG_SIZE);
-// OBSOLETE   bcopy (&registers[REGISTER_BYTE (G0_REGNUM)],
-// OBSOLETE     &i960_greg_packet[I960_R_G0], 16 * I960_GREG_SIZE);
-// OBSOLETE   bcopy (&registers[REGISTER_BYTE (PCW_REGNUM)],
-// OBSOLETE     &i960_greg_packet[I960_R_PCW], sizeof (int));
-// OBSOLETE   bcopy (&registers[REGISTER_BYTE (ACW_REGNUM)],
-// OBSOLETE     &i960_greg_packet[I960_R_ACW], sizeof (int));
-// OBSOLETE   bcopy (&registers[REGISTER_BYTE (TCW_REGNUM)],
-// OBSOLETE     &i960_greg_packet[I960_R_TCW], sizeof (int));
-// OBSOLETE 
-// OBSOLETE   net_write_registers (i960_greg_packet, I960_GREG_PLEN, PTRACE_SETREGS);
-// OBSOLETE 
-// OBSOLETE   /* Store floating point registers if the target has them.  */
-// OBSOLETE 
-// OBSOLETE   if (target_has_fp)
-// OBSOLETE     {
-// OBSOLETE       bcopy (&registers[REGISTER_BYTE (FP0_REGNUM)],
-// OBSOLETE         &i960_fpreg_packet[I960_R_FP0],
-// OBSOLETE         REGISTER_RAW_SIZE (FP0_REGNUM) * 4);
-// OBSOLETE 
-// OBSOLETE       net_write_registers (i960_fpreg_packet, I960_FPREG_PLEN,
-// OBSOLETE                       PTRACE_SETFPREGS);
-// OBSOLETE     }
-// OBSOLETE }
index cc0586f8ed50108e85b72d061e465dbc2229b7fe..c065a87a7c120d6b3f413160387b1783007154e2 100644 (file)
@@ -27,6 +27,8 @@
 #include "regcache.h"
 #include "value.h"
 
+#include "m68k-tdep.h"
+
 static void rom68k_open (char *args, int from_tty);
 
 /* Return true if C is a hex digit.
@@ -129,13 +131,13 @@ rom68k_supply_register (char *regname, int regnamelen, char *val, int vallen)
       case 'D':
        if (regname[1] != 'R')
          break;
-       regno = D0_REGNUM;
+       regno = M68K_D0_REGNUM;
        numregs = 8;
        break;
       case 'A':
        if (regname[1] != 'R')
          break;
-       regno = A0_REGNUM;
+       regno = M68K_A0_REGNUM;
        numregs = 7;
        break;
       }
index 26f5e4c891b84578e1e59d59e71fc04191fdf26f..98cf2d9f0de91411f0560c15c30616c3cb62a5ac 100644 (file)
@@ -166,16 +166,16 @@ struct frame_extra_info
 void
 rs6000_init_extra_frame_info (int fromleaf, struct frame_info *fi)
 {
-  fi->extra_info = (struct frame_extra_info *)
-    frame_obstack_alloc (sizeof (struct frame_extra_info));
-  fi->extra_info->initial_sp = 0;
-  if (fi->next != (CORE_ADDR) 0
-      && fi->pc < TEXT_SEGMENT_BASE)
+  struct frame_extra_info *extra_info =
+    frame_extra_info_zalloc (fi, sizeof (struct frame_extra_info));
+  extra_info->initial_sp = 0;
+  if (get_next_frame (fi) != NULL
+      && get_frame_pc (fi) < TEXT_SEGMENT_BASE)
     /* We're in get_prev_frame */
     /* and this is a special signal frame.  */
     /* (fi->pc will be some low address in the kernel, */
     /*  to which the signal handler returns).  */
-    fi->signal_handler_caller = 1;
+    deprecated_set_frame_type (fi, SIGTRAMP_FRAME);
 }
 
 /* Put here the code to store, into a struct frame_saved_regs,
@@ -197,8 +197,9 @@ rs6000_frame_init_saved_regs (struct frame_info *fi)
 static CORE_ADDR
 rs6000_frame_args_address (struct frame_info *fi)
 {
-  if (fi->extra_info->initial_sp != 0)
-    return fi->extra_info->initial_sp;
+  struct frame_extra_info *extra_info = get_frame_extra_info (fi);
+  if (extra_info->initial_sp != 0)
+    return extra_info->initial_sp;
   else
     return frame_initial_stack_address (fi);
 }
@@ -261,7 +262,7 @@ branch_dest (int opcode, int instr, CORE_ADDR pc, CORE_ADDR safety)
 
              fi = get_current_frame ();
              if (fi != NULL)
-               dest = read_memory_addr (fi->frame + SIG_FRAME_PC_OFFSET,
+               dest = read_memory_addr (get_frame_base (fi) + SIG_FRAME_PC_OFFSET,
                                         gdbarch_tdep (current_gdbarch)->wordsize);
            }
        }
@@ -956,9 +957,11 @@ rs6000_pop_frame (void)
   int ii, wordsize;
 
   pc = read_pc ();
-  sp = FRAME_FP (frame);
+  sp = get_frame_base (frame);
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (frame),
+                                  get_frame_base (frame),
+                                  get_frame_base (frame)))
     {
       generic_pop_dummy_frame ();
       flush_cached_frames ();
@@ -972,8 +975,8 @@ rs6000_pop_frame (void)
      still in the link register, otherwise walk the frames and retrieve the
      saved %pc value in the previous frame.  */
 
-  addr = get_pc_function_start (frame->pc);
-  (void) skip_prologue (addr, frame->pc, &fdata);
+  addr = get_pc_function_start (get_frame_pc (frame));
+  (void) skip_prologue (addr, get_frame_pc (frame), &fdata);
 
   wordsize = gdbarch_tdep (current_gdbarch)->wordsize;
   if (fdata.frameless)
@@ -1477,10 +1480,11 @@ rs6000_frameless_function_invocation (struct frame_info *fi)
 
   /* Don't even think about framelessness except on the innermost frame
      or if the function was interrupted by a signal.  */
-  if (fi->next != NULL && !fi->next->signal_handler_caller)
+  if (get_next_frame (fi) != NULL
+      && !(get_frame_type (get_next_frame (fi)) == SIGTRAMP_FRAME))
     return 0;
 
-  func_start = get_pc_function_start (fi->pc);
+  func_start = get_pc_function_start (get_frame_pc (fi));
 
   /* If we failed to find the start of the function, it is a mistake
      to inspect the instructions.  */
@@ -1491,13 +1495,13 @@ rs6000_frameless_function_invocation (struct frame_info *fi)
          function pointer, normally causing an immediate core dump of the
          inferior.  Mark function as frameless, as the inferior has no chance
          of setting up a stack frame.  */
-      if (fi->pc == 0)
+      if (get_frame_pc (fi) == 0)
        return 1;
       else
        return 0;
     }
 
-  (void) skip_prologue (func_start, fi->pc, &fdata);
+  (void) skip_prologue (func_start, get_frame_pc (fi), &fdata);
   return fdata.frameless;
 }
 
@@ -1511,27 +1515,32 @@ rs6000_frame_saved_pc (struct frame_info *fi)
   struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
   int wordsize = tdep->wordsize;
 
-  if (fi->signal_handler_caller)
-    return read_memory_addr (fi->frame + SIG_FRAME_PC_OFFSET, wordsize);
+  if ((get_frame_type (fi) == SIGTRAMP_FRAME))
+    return read_memory_addr (get_frame_base (fi) + SIG_FRAME_PC_OFFSET,
+                            wordsize);
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
-    return deprecated_read_register_dummy (fi->pc, fi->frame, PC_REGNUM);
+  if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (fi),
+                                  get_frame_base (fi),
+                                  get_frame_base (fi)))
+    return deprecated_read_register_dummy (get_frame_pc (fi),
+                                          get_frame_base (fi), PC_REGNUM);
 
-  func_start = get_pc_function_start (fi->pc);
+  func_start = get_pc_function_start (get_frame_pc (fi));
 
   /* If we failed to find the start of the function, it is a mistake
      to inspect the instructions.  */
   if (!func_start)
     return 0;
 
-  (void) skip_prologue (func_start, fi->pc, &fdata);
+  (void) skip_prologue (func_start, get_frame_pc (fi), &fdata);
 
-  if (fdata.lr_offset == 0 && fi->next != NULL)
+  if (fdata.lr_offset == 0 && get_next_frame (fi) != NULL)
     {
-      if (fi->next->signal_handler_caller)
-       return read_memory_addr (fi->next->frame + SIG_FRAME_LR_OFFSET,
+      if ((get_frame_type (get_next_frame (fi)) == SIGTRAMP_FRAME))
+       return read_memory_addr ((get_frame_base (get_next_frame (fi))
+                                 + SIG_FRAME_LR_OFFSET),
                                 wordsize);
-      else if (PC_IN_CALL_DUMMY (get_next_frame (fi)->pc, 0, 0))
+      else if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (get_next_frame (fi)), 0, 0))
        /* The link register wasn't saved by this frame and the next
            (inner, newer) frame is a dummy.  Get the link register
            value by unwinding it from that [dummy] frame.  */
@@ -1564,13 +1573,14 @@ frame_get_saved_regs (struct frame_info *fi, struct rs6000_framedata *fdatap)
   struct gdbarch_tdep * tdep = gdbarch_tdep (current_gdbarch);
   int wordsize = tdep->wordsize;
 
-  if (fi->saved_regs)
+  if (get_frame_saved_regs (fi))
     return;
 
   if (fdatap == NULL)
     {
       fdatap = &work_fdata;
-      (void) skip_prologue (get_pc_function_start (fi->pc), fi->pc, fdatap);
+      (void) skip_prologue (get_pc_function_start (get_frame_pc (fi)),
+                           get_frame_pc (fi), fdatap);
     }
 
   frame_saved_regs_zalloc (fi);
@@ -1606,7 +1616,7 @@ frame_get_saved_regs (struct frame_info *fi, struct rs6000_framedata *fdatap)
       CORE_ADDR fpr_addr = frame_addr + fdatap->fpr_offset;
       for (i = fdatap->saved_fpr; i < 32; i++)
        {
-         fi->saved_regs[FP0_REGNUM + i] = fpr_addr;
+         get_frame_saved_regs (fi)[FP0_REGNUM + i] = fpr_addr;
          fpr_addr += 8;
        }
     }
@@ -1620,7 +1630,7 @@ frame_get_saved_regs (struct frame_info *fi, struct rs6000_framedata *fdatap)
       CORE_ADDR gpr_addr = frame_addr + fdatap->gpr_offset;
       for (i = fdatap->saved_gpr; i < 32; i++)
        {
-         fi->saved_regs[i] = gpr_addr;
+         get_frame_saved_regs (fi)[i] = gpr_addr;
          gpr_addr += wordsize;
        }
     }
@@ -1635,7 +1645,7 @@ frame_get_saved_regs (struct frame_info *fi, struct rs6000_framedata *fdatap)
          CORE_ADDR vr_addr = frame_addr + fdatap->vr_offset;
          for (i = fdatap->saved_vr; i < 32; i++)
            {
-             fi->saved_regs[tdep->ppc_vr0_regnum + i] = vr_addr;
+             get_frame_saved_regs (fi)[tdep->ppc_vr0_regnum + i] = vr_addr;
              vr_addr += REGISTER_RAW_SIZE (tdep->ppc_vr0_regnum);
            }
        }
@@ -1651,8 +1661,8 @@ frame_get_saved_regs (struct frame_info *fi, struct rs6000_framedata *fdatap)
          CORE_ADDR ev_addr = frame_addr + fdatap->ev_offset;
          for (i = fdatap->saved_ev; i < 32; i++)
            {
-             fi->saved_regs[tdep->ppc_ev0_regnum + i] = ev_addr;
-              fi->saved_regs[tdep->ppc_gp0_regnum + i] = ev_addr + 4;
+             get_frame_saved_regs (fi)[tdep->ppc_ev0_regnum + i] = ev_addr;
+              get_frame_saved_regs (fi)[tdep->ppc_gp0_regnum + i] = ev_addr + 4;
              ev_addr += REGISTER_RAW_SIZE (tdep->ppc_ev0_regnum);
             }
        }
@@ -1661,17 +1671,17 @@ frame_get_saved_regs (struct frame_info *fi, struct rs6000_framedata *fdatap)
   /* If != 0, fdatap->cr_offset is the offset from the frame that holds
      the CR.  */
   if (fdatap->cr_offset != 0)
-    fi->saved_regs[tdep->ppc_cr_regnum] = frame_addr + fdatap->cr_offset;
+    get_frame_saved_regs (fi)[tdep->ppc_cr_regnum] = frame_addr + fdatap->cr_offset;
 
   /* If != 0, fdatap->lr_offset is the offset from the frame that holds
      the LR.  */
   if (fdatap->lr_offset != 0)
-    fi->saved_regs[tdep->ppc_lr_regnum] = frame_addr + fdatap->lr_offset;
+    get_frame_saved_regs (fi)[tdep->ppc_lr_regnum] = frame_addr + fdatap->lr_offset;
 
   /* If != 0, fdatap->vrsave_offset is the offset from the frame that holds
      the VRSAVE.  */
   if (fdatap->vrsave_offset != 0)
-    fi->saved_regs[tdep->ppc_vrsave_regnum] = frame_addr + fdatap->vrsave_offset;
+    get_frame_saved_regs (fi)[tdep->ppc_vrsave_regnum] = frame_addr + fdatap->vrsave_offset;
 }
 
 /* Return the address of a frame. This is the inital %sp value when the frame
@@ -1688,17 +1698,18 @@ frame_initial_stack_address (struct frame_info *fi)
   /* If the initial stack pointer (frame address) of this frame is known,
      just return it.  */
 
-  if (fi->extra_info->initial_sp)
-    return fi->extra_info->initial_sp;
+  if (get_frame_extra_info (fi)->initial_sp)
+    return get_frame_extra_info (fi)->initial_sp;
 
   /* Find out if this function is using an alloca register.  */
 
-  (void) skip_prologue (get_pc_function_start (fi->pc), fi->pc, &fdata);
+  (void) skip_prologue (get_pc_function_start (get_frame_pc (fi)),
+                       get_frame_pc (fi), &fdata);
 
   /* If saved registers of this frame are not known yet, read and
      cache them.  */
 
-  if (!fi->saved_regs)
+  if (!get_frame_saved_regs (fi))
     frame_get_saved_regs (fi, &fdata);
 
   /* If no alloca register used, then fi->frame is the value of the %sp for
@@ -1706,8 +1717,8 @@ frame_initial_stack_address (struct frame_info *fi)
 
   if (fdata.alloca_reg < 0)
     {
-      fi->extra_info->initial_sp = fi->frame;
-      return fi->extra_info->initial_sp;
+      get_frame_extra_info (fi)->initial_sp = get_frame_base (fi);
+      return get_frame_extra_info (fi)->initial_sp;
     }
 
   /* There is an alloca register, use its value, in the current frame,
@@ -1716,7 +1727,7 @@ frame_initial_stack_address (struct frame_info *fi)
     char *tmpbuf = alloca (MAX_REGISTER_RAW_SIZE);
     if (frame_register_read (fi, fdata.alloca_reg, tmpbuf))
       {
-       fi->extra_info->initial_sp
+       get_frame_extra_info (fi)->initial_sp
          = extract_unsigned_integer (tmpbuf,
                                      REGISTER_RAW_SIZE (fdata.alloca_reg));
       }
@@ -1724,9 +1735,9 @@ frame_initial_stack_address (struct frame_info *fi)
       /* NOTE: cagney/2002-04-17: At present the only time
          frame_register_read will fail is when the register isn't
          available.  If that does happen, use the frame.  */
-      fi->extra_info->initial_sp = fi->frame;
+      get_frame_extra_info (fi)->initial_sp = get_frame_base (fi);
   }
-  return fi->extra_info->initial_sp;
+  return get_frame_extra_info (fi)->initial_sp;
 }
 
 /* Describe the pointer in each stack frame to the previous stack frame
@@ -1744,26 +1755,28 @@ rs6000_frame_chain (struct frame_info *thisframe)
   CORE_ADDR fp, fpp, lr;
   int wordsize = gdbarch_tdep (current_gdbarch)->wordsize;
 
-  if (PC_IN_CALL_DUMMY (thisframe->pc, thisframe->frame, thisframe->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (thisframe),
+                                  get_frame_base (thisframe),
+                                  get_frame_base (thisframe)))
     /* A dummy frame always correctly chains back to the previous
        frame.  */
-    return read_memory_addr ((thisframe)->frame, wordsize);
+    return read_memory_addr (get_frame_base (thisframe), wordsize);
 
-  if (inside_entry_file (thisframe->pc) ||
-      thisframe->pc == entry_point_address ())
+  if (inside_entry_file (get_frame_pc (thisframe))
+      || get_frame_pc (thisframe) == entry_point_address ())
     return 0;
 
-  if (thisframe->signal_handler_caller)
-    fp = read_memory_addr (thisframe->frame + SIG_FRAME_FP_OFFSET,
-                             wordsize);
-  else if (thisframe->next != NULL
-          && thisframe->next->signal_handler_caller
+  if ((get_frame_type (thisframe) == SIGTRAMP_FRAME))
+    fp = read_memory_addr (get_frame_base (thisframe) + SIG_FRAME_FP_OFFSET,
+                          wordsize);
+  else if (get_next_frame (thisframe) != NULL
+          && (get_frame_type (get_next_frame (thisframe)) == SIGTRAMP_FRAME)
           && FRAMELESS_FUNCTION_INVOCATION (thisframe))
     /* A frameless function interrupted by a signal did not change the
        frame pointer.  */
-    fp = FRAME_FP (thisframe);
+    fp = get_frame_base (thisframe);
   else
-    fp = read_memory_addr ((thisframe)->frame, wordsize);
+    fp = read_memory_addr (get_frame_base (thisframe), wordsize);
   return fp;
 }
 
@@ -2880,17 +2893,13 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
   set_gdbarch_char_signed (gdbarch, 0);
 
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_p (gdbarch, 1);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
   set_gdbarch_fix_call_dummy (gdbarch, rs6000_fix_call_dummy);
   set_gdbarch_frame_align (gdbarch, rs6000_frame_align);
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
index 94defe5aee9ee9b058050be9799b506433a68a32..964c23a31b5338e1badc3306609f85ac24ec8d86 100644 (file)
@@ -881,25 +881,24 @@ s390_is_sigreturn (CORE_ADDR pc, struct frame_info *sighandler_fi,
   for the moment.
   For some reason the blockframe.c calls us with fi->next->fromleaf
   so this seems of little use to us. */
-void
+CORE_ADDR
 s390_init_frame_pc_first (int next_fromleaf, struct frame_info *fi)
 {
   CORE_ADDR sigcaller_pc;
-
-  fi->pc = 0;
+  CORE_ADDR pc = 0;
   if (next_fromleaf)
     {
-      fi->pc = ADDR_BITS_REMOVE (read_register (S390_RETADDR_REGNUM));
+      pc = ADDR_BITS_REMOVE (read_register (S390_RETADDR_REGNUM));
       /* fix signal handlers */
     }
-  else if (fi->next && fi->next->pc)
-    fi->pc = s390_frame_saved_pc_nofix (fi->next);
-  if (fi->pc && fi->next && fi->next->frame &&
-      s390_is_sigreturn (fi->pc, fi->next, NULL, &sigcaller_pc))
+  else if (get_next_frame (fi) && get_frame_pc (get_next_frame (fi)))
+    pc = s390_frame_saved_pc_nofix (get_next_frame (fi));
+  if (pc && get_next_frame (fi) && get_frame_base (get_next_frame (fi))
+      && s390_is_sigreturn (pc, get_next_frame (fi), NULL, &sigcaller_pc))
     {
-      fi->pc = sigcaller_pc;
+      pc = sigcaller_pc;
     }
-
+  return pc;
 }
 
 void
@@ -1001,8 +1000,8 @@ s390_frame_saved_pc (struct frame_info *fi)
 
 
 
-/* We want backtraces out of signal handlers so we don't
-   set thisframe->signal_handler_caller to 1 */
+/* We want backtraces out of signal handlers so we don't set
+   (get_frame_type (thisframe) == SIGTRAMP_FRAME) to 1 */
 
 CORE_ADDR
 s390_frame_chain (struct frame_info *thisframe)
@@ -1762,6 +1761,10 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   /* Yes: create a new gdbarch for the specified machine type.  */
   gdbarch = gdbarch_alloc (&info, NULL);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   set_gdbarch_believe_pcc_promotion (gdbarch, 0);
   set_gdbarch_char_signed (gdbarch, 0);
 
@@ -1790,7 +1793,7 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_breakpoint_from_pc (gdbarch, s390_breakpoint_from_pc);
   set_gdbarch_skip_prologue (gdbarch, s390_skip_prologue);
   set_gdbarch_init_extra_frame_info (gdbarch, s390_init_extra_frame_info);
-  set_gdbarch_init_frame_pc_first (gdbarch, s390_init_frame_pc_first);
+  set_gdbarch_deprecated_init_frame_pc_first (gdbarch, s390_init_frame_pc_first);
   set_gdbarch_read_fp (gdbarch, s390_read_fp);
   /* This function that tells us whether the function invocation represented
      by FI does not have a frame on the stack associated with it.  If it
@@ -1811,7 +1814,6 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_num_regs (gdbarch, S390_NUM_REGS);
   set_gdbarch_cannot_fetch_register (gdbarch, s390_cannot_fetch_register);
   set_gdbarch_cannot_store_register (gdbarch, s390_cannot_fetch_register);
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
   set_gdbarch_use_struct_convention (gdbarch, s390_use_struct_convention);
   set_gdbarch_frame_chain_valid (gdbarch, func_frame_chain_valid);
   set_gdbarch_register_name (gdbarch, s390_register_name);
@@ -1823,12 +1825,10 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   /* Parameters for inferior function calls.  */
   set_gdbarch_call_dummy_p (gdbarch, 1);
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
+  set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
   set_gdbarch_push_arguments (gdbarch, s390_push_arguments);
   set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
index 3d6c48845dfb3bdc66189939ddcbf32a06e0fd36..dc68b15fad5a44d62f07cf19933ebc0f533c8115 100644 (file)
@@ -918,19 +918,20 @@ gdb_print_insn_sh (bfd_vma memaddr, disassemble_info *info)
   return print_insn_sh (memaddr, info);
 }
 
-/* Given a GDB frame, determine the address of the calling function's frame.
-   This will be used to create a new GDB frame struct, and then
-   INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
+/* Given a GDB frame, determine the address of the calling function's
+   frame.  This will be used to create a new GDB frame struct, and
+   then INIT_EXTRA_FRAME_INFO and DEPRECATED_INIT_FRAME_PC will be
+   called for the new frame.
 
    For us, the frame address is its stack pointer value, so we look up
    the function prologue to determine the caller's sp value, and return it.  */
 static CORE_ADDR
 sh_frame_chain (struct frame_info *frame)
 {
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     return frame->frame;       /* dummy frame same as caller's frame */
   if (frame->pc && !inside_entry_file (frame->pc))
-    return read_memory_integer (FRAME_FP (frame) + frame->extra_info->f_offset, 4);
+    return read_memory_integer (get_frame_base (frame) + frame->extra_info->f_offset, 4);
   else
     return 0;
 }
@@ -965,7 +966,7 @@ translate_insn_rn (int rn, int media_mode)
 static CORE_ADDR
 sh64_frame_chain (struct frame_info *frame)
 {
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     return frame->frame;       /* dummy frame same as caller's frame */
   if (frame->pc && !inside_entry_file (frame->pc))
     {
@@ -975,7 +976,7 @@ sh64_frame_chain (struct frame_info *frame)
        size = 4;
       else
        size = REGISTER_RAW_SIZE (translate_insn_rn (FP_REGNUM, media_mode));
-      return read_memory_integer (FRAME_FP (frame) + frame->extra_info->f_offset, size);
+      return read_memory_integer (get_frame_base (frame) + frame->extra_info->f_offset, size);
     }
   else
     return 0;
@@ -990,7 +991,7 @@ static CORE_ADDR
 sh_find_callers_reg (struct frame_info *fi, int regnum)
 {
   for (; fi; fi = fi->next)
-    if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+    if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
       /* When the caller requests PR from the dummy frame, we return PC because
          that's where the previous routine appears to have done a call from. */
       return deprecated_read_register_dummy (fi->pc, fi->frame, regnum);
@@ -1012,7 +1013,7 @@ sh64_get_saved_pr (struct frame_info *fi, int pr_regnum)
   int media_mode = 0;
 
   for (; fi; fi = fi->next)
-    if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+    if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
       /* When the caller requests PR from the dummy frame, we return PC because
          that's where the previous routine appears to have done a call from. */
       return deprecated_read_register_dummy (fi->pc, fi->frame, pr_regnum);
@@ -1725,7 +1726,7 @@ sh_init_extra_frame_info (int fromleaf, struct frame_info *fi)
   if (fi->next)
     fi->pc = FRAME_SAVED_PC (fi->next);
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       /* We need to setup fi->frame here because run_stack_dummy gets it wrong
          by assuming it's always FP.  */
@@ -1757,7 +1758,7 @@ sh64_init_extra_frame_info (int fromleaf, struct frame_info *fi)
   if (fi->next)
     fi->pc = FRAME_SAVED_PC (fi->next);
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       /* We need to setup fi->frame here because run_stack_dummy gets it wrong
          by assuming it's always FP.  */
@@ -1814,7 +1815,7 @@ sh64_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp,
 
   while (frame && ((frame = frame->next) != NULL))
     {
-      if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+      if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
        {
          if (lval)             /* found it in a CALL_DUMMY frame */
            *lval = not_lval;
@@ -1908,11 +1909,11 @@ sh_pop_frame (void)
   register CORE_ADDR fp;
   register int regnum;
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     generic_pop_dummy_frame ();
   else
     {
-      fp = FRAME_FP (frame);
+      fp = get_frame_base (frame);
       FRAME_INIT_SAVED_REGS (frame);
 
       /* Copy regs from where they were saved in the frame */
@@ -1938,11 +1939,11 @@ sh64_pop_frame (void)
 
   int media_mode = pc_is_isa32 (frame->pc);
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     generic_pop_dummy_frame ();
   else
     {
-      fp = FRAME_FP (frame);
+      fp = get_frame_base (frame);
       FRAME_INIT_SAVED_REGS (frame);
 
       /* Copy regs from where they were saved in the frame */
@@ -2937,7 +2938,7 @@ sh64_show_compact_regs (void)
 static void
 sh64_show_regs (void)
 {
-  if (pc_is_isa32 (selected_frame->pc))
+  if (pc_is_isa32 (deprecated_selected_frame->pc))
     sh64_show_media_regs ();
   else
     sh64_show_compact_regs ();
@@ -3919,7 +3920,7 @@ sh_do_fp_register (int regnum)
   raw_buffer = (char *) alloca (REGISTER_RAW_SIZE (FP0_REGNUM));
 
   /* Get the data in raw format.  */
-  if (!frame_register_read (selected_frame, regnum, raw_buffer))
+  if (!frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
     error ("can't read register %d (%s)", regnum, REGISTER_NAME (regnum));
 
   /* Get the register as a number */ 
@@ -4001,7 +4002,7 @@ sh_do_register (int regnum)
   print_spaces_filtered (15 - strlen (REGISTER_NAME (regnum)), gdb_stdout);
 
   /* Get the data in raw format.  */
-  if (!frame_register_read (selected_frame, regnum, raw_buffer))
+  if (!frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
     printf_filtered ("*value not available*\n");
       
   val_print (REGISTER_VIRTUAL_TYPE (regnum), raw_buffer, 0, 0,
@@ -4112,7 +4113,7 @@ sh_compact_do_registers_info (int regnum, int fpregs)
 void
 sh64_do_registers_info (int regnum, int fpregs)
 {
-  if (pc_is_isa32 (selected_frame->pc))
+  if (pc_is_isa32 (deprecated_selected_frame->pc))
    sh_do_registers_info (regnum, fpregs);
   else
    sh_compact_do_registers_info (regnum, fpregs); 
@@ -4241,6 +4242,10 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   tdep = XMALLOC (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   tdep->osabi = osabi;
 
   /* Initialize the register numbers that are not common to all the
@@ -4560,14 +4565,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
   set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
 
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1); /*???*/
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_words (gdbarch, sh_call_dummy_words);
   set_gdbarch_sizeof_call_dummy_words (gdbarch, sizeof (sh_call_dummy_words));
   set_gdbarch_call_dummy_p (gdbarch, 1);
@@ -4589,8 +4591,6 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frameless_function_invocation (gdbarch, frameless_look_for_prologue);
   set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
   set_gdbarch_frame_saved_pc (gdbarch, sh_frame_saved_pc);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
   set_gdbarch_saved_pc_after_call (gdbarch, sh_saved_pc_after_call);
   set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_believe_pcc_promotion (gdbarch, 1);
index b67884d2cea9ea19a9e5720f4234bd18f455ade2..d2f042a16a7801d94299f9f7489c7f502b440820 100644 (file)
@@ -188,5 +188,6 @@ _initialize_shnbsd_tdep (void)
   add_core_fns (&shnbsd_core_fns);
   add_core_fns (&shnbsd_elfcore_fns);
 
-  gdbarch_register_osabi (bfd_arch_sh, GDB_OSABI_NETBSD_ELF, shnbsd_init_abi);
+  gdbarch_register_osabi (bfd_arch_sh, 0, GDB_OSABI_NETBSD_ELF,
+                         shnbsd_init_abi);
 }
index 78161e0d2498476cb4eb604fdace4d1b244b6ff4..8ced5f0129b3c2c4a03d86b543a50f400f123290 100644 (file)
@@ -446,15 +446,16 @@ elf_locate_base (void)
          else if (dyn_tag == DT_MIPS_RLD_MAP)
            {
              char *pbuf;
+             int pbuf_size = TARGET_PTR_BIT / HOST_CHAR_BIT;
 
-             pbuf = alloca (TARGET_PTR_BIT / HOST_CHAR_BIT);
+             pbuf = alloca (pbuf_size);
              /* DT_MIPS_RLD_MAP contains a pointer to the address
                 of the dynamic link structure.  */
              dyn_ptr = bfd_h_get_32 (exec_bfd, 
                                      (bfd_byte *) x_dynp->d_un.d_ptr);
-             if (target_read_memory (dyn_ptr, pbuf, sizeof (pbuf)))
+             if (target_read_memory (dyn_ptr, pbuf, pbuf_size))
                return 0;
-             return extract_unsigned_integer (pbuf, sizeof (pbuf));
+             return extract_unsigned_integer (pbuf, pbuf_size);
            }
        }
     }
@@ -477,6 +478,20 @@ elf_locate_base (void)
                                      (bfd_byte *) x_dynp->d_un.d_ptr);
              return dyn_ptr;
            }
+         else if (dyn_tag == DT_MIPS_RLD_MAP)
+           {
+             char *pbuf;
+             int pbuf_size = TARGET_PTR_BIT / HOST_CHAR_BIT;
+
+             pbuf = alloca (pbuf_size);
+             /* DT_MIPS_RLD_MAP contains a pointer to the address
+                of the dynamic link structure.  */
+             dyn_ptr = bfd_h_get_64 (exec_bfd, 
+                                     (bfd_byte *) x_dynp->d_un.d_ptr);
+             if (target_read_memory (dyn_ptr, pbuf, pbuf_size))
+               return 0;
+             return extract_unsigned_integer (pbuf, pbuf_size);
+           }
        }
     }
 
index d4876c15e7a4c116812065f9a3464577bd85174c..639788b3e50367e588a976d5cf0f4cfcdc4b4dd8 100644 (file)
@@ -42,6 +42,7 @@
 #include "filenames.h"         /* for DOSish file names */
 
 #include "solist.h"
+#include <readline/readline.h>
 
 /* external data declarations */
 
index 2eb1ff5685c892a303af6818b23738cd0b9f7055..6cc9f45165794b21101d8fa43b0d0d9ce08c5ad1 100644 (file)
@@ -191,7 +191,7 @@ addr_and_unwind_t;
 /* When adding fields, be sure to clear them in _initialize_som_solib. */
 static struct
   {
-    boolean is_valid;
+    int is_valid;
     addr_and_unwind_t hook;
     addr_and_unwind_t hook_stub;
     addr_and_unwind_t load;
index 293913e0e7fdf032bd9a1af5913e7dd4560932dc..1cc4dd0a1fca1e5b0fc85608cf9dce1e1d1ccaac 100644 (file)
@@ -44,6 +44,7 @@
 #include "filenames.h"         /* for DOSish file names */
 #include "completer.h"
 #include "ui-out.h"
+#include <readline/readline.h>
 
 #ifdef CRLF_SOURCE_FILES
 
@@ -357,6 +358,12 @@ init_source_path (void)
   forget_cached_source_info ();
 }
 
+void
+init_last_source_visited (void)
+{
+  last_source_visited = NULL;
+}
+
 /* Add zero or more directories to the front of the source path.  */
 
 void
@@ -386,6 +393,18 @@ directory_command (char *dirname, int from_tty)
 
 void
 mod_path (char *dirname, char **which_path)
+{
+  add_path (dirname, which_path, 1);
+}
+
+/* Workhorse of mod_path.  Takes an extra argument to determine
+   if dirname should be parsed for separators that indicate multiple
+   directories.  This allows for interfaces that pre-parse the dirname
+   and allow specification of traditional separator characters such
+   as space or tab. */
+
+void
+add_path (char *dirname, char **which_path, int parse_separators)
 {
   char *old = *which_path;
   int prefix = 0;
@@ -403,9 +422,16 @@ mod_path (char *dirname, char **which_path)
       struct stat st;
 
       {
-       char *separator = strchr (name, DIRNAME_SEPARATOR);
-       char *space = strchr (name, ' ');
-       char *tab = strchr (name, '\t');
+       char *separator = NULL;
+       char *space = NULL;
+       char *tab = NULL;
+
+       if (parse_separators)
+         {
+           separator = strchr (name, DIRNAME_SEPARATOR);
+           space = strchr (name, ' ');
+           tab = strchr (name, '\t');
+         }
 
        if (separator == 0 && space == 0 && tab == 0)
          p = dirname = name + strlen (name);
@@ -536,7 +562,8 @@ mod_path (char *dirname, char **which_path)
            tinybuf[0] = DIRNAME_SEPARATOR;
            tinybuf[1] = '\0';
 
-           /* If we have already tacked on a name(s) in this command,                     be sure they stay on the front as we tack on some more.  */
+           /* If we have already tacked on a name(s) in this command, be sure they stay 
+              on the front as we tack on some more.  */
            if (prefix)
              {
                char *temp, c;
index b2c6d41430d57529dd90bbe96438402577bd141b..5970b5a039f9c6f926949c6a750d0e8998703d3d 100644 (file)
@@ -1,5 +1,6 @@
 /* Functions specific to running gdb native on a SPARC running SunOS4.
-   Copyright 1989, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001
+   Copyright 1989, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001,
+   2002
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -58,6 +59,25 @@ fetch_inferior_registers (int regno)
   struct regs inferior_registers;
   struct fp_status inferior_fp_registers;
   int i;
+  int fetch_pid;
+
+  /* NOTE: cagney/2002-12-03: This code assumes that the currently
+     selected light weight processes' registers can be written
+     directly into the selected thread's register cache.  This works
+     fine when given an 1:1 LWP:thread model (such as found on
+     GNU/Linux) but will, likely, have problems when used on an N:1
+     (userland threads) or N:M (userland multiple LWP) model.  In the
+     case of the latter two, the LWP's registers do not necessarily
+     belong to the selected thread (the LWP could be in the middle of
+     executing the thread switch code).
+
+     These functions should instead be paramaterized with an explicit
+     object (struct regcache, struct thread_info?) into which the LWPs
+     registers can be written.  */
+
+  fetch_pid = TIDGET (inferior_ptid);
+  if (fetch_pid == 0)
+    fetch_pid = PIDGET (inferior_ptid);
 
   /* We should never be called with deferred stores, because a prerequisite
      for writing regs is to have fetched them all (PREPARE_TO_STORE), sigh.  */
@@ -75,7 +95,7 @@ fetch_inferior_registers (int regno)
       || regno >= Y_REGNUM
       || (!deprecated_register_valid[SP_REGNUM] && regno < I7_REGNUM))
     {
-      if (0 != ptrace (PTRACE_GETREGS, PIDGET (inferior_ptid),
+      if (0 != ptrace (PTRACE_GETREGS, fetch_pid,
                       (PTRACE_ARG3_TYPE) & inferior_registers, 0))
        perror ("ptrace_getregs");
 
@@ -108,7 +128,7 @@ fetch_inferior_registers (int regno)
       regno == FPS_REGNUM ||
       (regno >= FP0_REGNUM && regno <= FP0_REGNUM + 31))
     {
-      if (0 != ptrace (PTRACE_GETFPREGS, PIDGET (inferior_ptid),
+      if (0 != ptrace (PTRACE_GETFPREGS, fetch_pid,
                       (PTRACE_ARG3_TYPE) & inferior_fp_registers,
                       0))
        perror ("ptrace_getfpregs");
@@ -153,6 +173,13 @@ store_inferior_registers (int regno)
   struct regs inferior_registers;
   struct fp_status inferior_fp_registers;
   int wanna_store = INT_REGS + STACK_REGS + FP_REGS;
+  int store_pid;
+
+  /* NOTE: cagney/2002-12-02: See comment in fetch_inferior_registers
+     about threaded assumptions.  */
+  store_pid = TIDGET (inferior_ptid);
+  if (store_pid == 0)
+    store_pid = PIDGET (inferior_ptid);
 
   /* First decide which pieces of machine-state we need to modify.  
      Default for regno == -1 case is all pieces.  */
@@ -236,7 +263,7 @@ store_inferior_registers (int regno)
       inferior_registers.r_y =
        *(int *) &deprecated_registers[REGISTER_BYTE (Y_REGNUM)];
 
-      if (0 != ptrace (PTRACE_SETREGS, PIDGET (inferior_ptid),
+      if (0 != ptrace (PTRACE_SETREGS, store_pid,
                       (PTRACE_ARG3_TYPE) & inferior_registers, 0))
        perror ("ptrace_setregs");
     }
@@ -252,7 +279,7 @@ store_inferior_registers (int regno)
              &deprecated_registers[REGISTER_BYTE (FPS_REGNUM)],
              sizeof (FPU_FSR_TYPE));
       if (0 !=
-         ptrace (PTRACE_SETFPREGS, PIDGET (inferior_ptid),
+         ptrace (PTRACE_SETFPREGS, store_pid,
                  (PTRACE_ARG3_TYPE) & inferior_fp_registers, 0))
        perror ("ptrace_setfpregs");
     }
index af43c9f1ca9ba036eb66ee64315f55dc3fe5be43..45fce0b2191697ef8ae9fd8a5f54fa5ad2e00599 100644 (file)
@@ -314,13 +314,13 @@ sparc_init_extra_frame_info (int fromleaf, struct frame_info *fi)
       /* Compute ->frame as if not flat.  If it is flat, we'll change
          it later.  */
       if (fi->next->next != NULL
-         && (fi->next->next->signal_handler_caller
+         && ((get_frame_type (fi->next->next) == SIGTRAMP_FRAME)
              || deprecated_frame_in_dummy (fi->next->next))
          && frameless_look_for_prologue (fi->next))
        {
          /* A frameless function interrupted by a signal did not change
             the frame pointer, fix up frame pointer accordingly.  */
-         fi->frame = FRAME_FP (fi->next);
+         fi->frame = get_frame_base (fi->next);
          fi->extra_info->bottom = fi->next->extra_info->bottom;
        }
       else
@@ -451,7 +451,7 @@ sparc_frame_saved_pc (struct frame_info *frame)
   CORE_ADDR addr;
 
   buf = alloca (MAX_REGISTER_RAW_SIZE);
-  if (frame->signal_handler_caller)
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
     {
       /* This is the signal trampoline frame.
          Get the saved PC from the sigcontext structure.  */
@@ -487,7 +487,7 @@ sparc_frame_saved_pc (struct frame_info *frame)
     }
   else if (frame->extra_info->in_prologue ||
           (frame->next != NULL &&
-           (frame->next->signal_handler_caller ||
+           ((get_frame_type (frame->next) == SIGTRAMP_FRAME) ||
             deprecated_frame_in_dummy (frame->next)) &&
            frameless_look_for_prologue (frame)))
     {
@@ -816,10 +816,10 @@ sparc_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp,
       /* error ("No selected frame."); */
       if (!target_has_registers)
        error ("The program has no registers now.");
-      if (selected_frame == NULL)
+      if (deprecated_selected_frame == NULL)
        error ("No selected frame.");
       /* Try to use selected frame */
-      frame = get_prev_frame (selected_frame);
+      frame = get_prev_frame (deprecated_selected_frame);
       if (frame == 0)
        error ("Cmd not meaningful in the outermost frame.");
     }
@@ -848,7 +848,7 @@ sparc_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp,
 
       if (frame1->pc >= (frame1->extra_info->bottom ? 
                         frame1->extra_info->bottom : read_sp ())
-         && frame1->pc <= FRAME_FP (frame1))
+         && frame1->pc <= get_frame_base (frame1))
        {
          /* Dummy frame.  All but the window regs are in there somewhere.
             The window registers are saved on the stack, just like in a
@@ -1112,7 +1112,7 @@ static void
 sparc_frame_find_saved_regs (struct frame_info *fi, CORE_ADDR *saved_regs_addr)
 {
   register int regnum;
-  CORE_ADDR frame_addr = FRAME_FP (fi);
+  CORE_ADDR frame_addr = get_frame_base (fi);
 
   if (!fi)
     internal_error (__FILE__, __LINE__,
@@ -1122,7 +1122,7 @@ sparc_frame_find_saved_regs (struct frame_info *fi, CORE_ADDR *saved_regs_addr)
 
   if (fi->pc >= (fi->extra_info->bottom ? 
                 fi->extra_info->bottom : read_sp ())
-      && fi->pc <= FRAME_FP (fi))
+      && fi->pc <= get_frame_base (fi))
     {
       /* Dummy frame.  All but the window regs are in there somewhere. */
       for (regnum = G1_REGNUM; regnum < G1_REGNUM + 7; regnum++)
@@ -1205,16 +1205,17 @@ sparc_frame_find_saved_regs (struct frame_info *fi, CORE_ADDR *saved_regs_addr)
     }
   /* Otherwise, whatever we would get from ptrace(GETREGS) is accurate */
   /* FIXME -- should this adjust for the sparc64 offset? */
-  saved_regs_addr[SP_REGNUM] = FRAME_FP (fi);
+  saved_regs_addr[SP_REGNUM] = get_frame_base (fi);
 }
 
 /* Discard from the stack the innermost frame, restoring all saved registers.
 
-   Note that the values stored in fsr by get_frame_saved_regs are *in
-   the context of the called frame*.  What this means is that the i
-   regs of fsr must be restored into the o regs of the (calling) frame that
-   we pop into.  We don't care about the output regs of the calling frame,
-   since unless it's a dummy frame, it won't have any output regs in it.
+   Note that the values stored in fsr by
+   deprecated_get_frame_saved_regs are *in the context of the called
+   frame*.  What this means is that the i regs of fsr must be restored
+   into the o regs of the (calling) frame that we pop into.  We don't
+   care about the output regs of the calling frame, since unless it's
+   a dummy frame, it won't have any output regs in it.
 
    We never have to bother with %l (local) regs, since the called routine's
    locals get tossed, and the calling routine's locals are already saved
@@ -1871,8 +1872,8 @@ sparc_print_register_hook (int regno)
     {
       char value[16];
 
-      if (frame_register_read (selected_frame, regno, value)
-         && frame_register_read (selected_frame, regno + 1, value + 4))
+      if (frame_register_read (deprecated_selected_frame, regno, value)
+         && frame_register_read (deprecated_selected_frame, regno + 1, value + 4))
        {
          printf_unfiltered ("\t");
          print_floating (value, builtin_type_double, gdb_stdout);
@@ -1880,8 +1881,8 @@ sparc_print_register_hook (int regno)
 #if 0                          /* FIXME: gdb doesn't handle long doubles */
       if ((regno & 3) == 0)
        {
-         if (frame_register_read (selected_frame, regno + 2, value + 8)
-             && frame_register_read (selected_frame, regno + 3, value + 12))
+         if (frame_register_read (deprecated_selected_frame, regno + 2, value + 8)
+             && frame_register_read (deprecated_selected_frame, regno + 3, value + 12))
            {
              printf_unfiltered ("\t");
              print_floating (value, builtin_type_long_double, gdb_stdout);
@@ -1900,8 +1901,8 @@ sparc_print_register_hook (int regno)
     {
       char value[16];
 
-      if (frame_register_read (selected_frame, regno, value)
-         && frame_register_read (selected_frame, regno + 1, value + 8))
+      if (frame_register_read (deprecated_selected_frame, regno, value)
+         && frame_register_read (deprecated_selected_frame, regno + 1, value + 8))
        {
          printf_unfiltered ("\t");
          print_floating (value, builtin_type_long_double, gdb_stdout);
@@ -2150,7 +2151,7 @@ sparc_print_registers_info (struct gdbarch *gdbarch,
 void
 sparc_do_registers_info (int regnum, int all)
 {
-  sparc_print_registers_info (current_gdbarch, gdb_stdout, selected_frame,
+  sparc_print_registers_info (current_gdbarch, gdb_stdout, deprecated_selected_frame,
                              regnum, all);
 }
 
@@ -2166,8 +2167,8 @@ sparclet_print_registers_info (struct gdbarch *gdbarch,
 void
 sparclet_do_registers_info (int regnum, int all)
 {
-  sparclet_print_registers_info (current_gdbarch, gdb_stdout, selected_frame,
-                                regnum, all);
+  sparclet_print_registers_info (current_gdbarch, gdb_stdout,
+                                deprecated_selected_frame, regnum, all);
 }
 
 \f
@@ -3149,10 +3150,8 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT);
   set_gdbarch_fp_regnum (gdbarch, SPARC_FP_REGNUM);
   set_gdbarch_fp0_regnum (gdbarch, SPARC_FP0_REGNUM);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
   set_gdbarch_frame_chain (gdbarch, sparc_frame_chain);
   set_gdbarch_frame_init_saved_regs (gdbarch, sparc_frame_init_saved_regs);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
   set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frame_saved_pc (gdbarch, sparc_frame_saved_pc);
   set_gdbarch_frameless_function_invocation (gdbarch, 
@@ -3181,7 +3180,7 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
   set_gdbarch_skip_prologue (gdbarch, sparc_skip_prologue);
   set_gdbarch_sp_regnum (gdbarch, SPARC_SP_REGNUM);
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 0);
+  set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0);
   set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
 
   /*
@@ -3199,7 +3198,7 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
       /* 32-bit machine types: */
 
 #ifdef SPARC32_CALL_DUMMY_ON_STACK
-      set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_on_stack);
+      set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_on_stack);
       set_gdbarch_call_dummy_address (gdbarch, sparc_call_dummy_address);
       set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0x30);
       set_gdbarch_call_dummy_length (gdbarch, 0x38);
@@ -3250,11 +3249,10 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
       set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
       set_gdbarch_call_dummy_words (gdbarch, call_dummy_32);
 #else
-      set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
+      set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
       set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
       set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
       set_gdbarch_call_dummy_length (gdbarch, 0);
-      set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
       set_gdbarch_call_dummy_words (gdbarch, call_dummy_nil);
 #endif
       set_gdbarch_call_dummy_stack_adjust (gdbarch, 68);
@@ -3298,7 +3296,7 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
     default:   /* Any new machine type is likely to be 64-bit.  */
 
 #ifdef SPARC64_CALL_DUMMY_ON_STACK
-      set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_on_stack);
+      set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_on_stack);
       set_gdbarch_call_dummy_address (gdbarch, sparc_call_dummy_address);
       set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 8 * 4);
       set_gdbarch_call_dummy_length (gdbarch, 192);
@@ -3306,11 +3304,10 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
       set_gdbarch_call_dummy_start_offset (gdbarch, 148);
       set_gdbarch_call_dummy_words (gdbarch, call_dummy_64);
 #else
-      set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
+      set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
       set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
       set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
       set_gdbarch_call_dummy_length (gdbarch, 0);
-      set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
       set_gdbarch_call_dummy_start_offset (gdbarch, 0);
       set_gdbarch_call_dummy_words (gdbarch, call_dummy_nil);
 #endif
index 1103eaa62c120e9ede1557b66f50c2691720ee5d..ab984ff88ad437af2f0e3e379e703a63b5f4d517 100644 (file)
@@ -523,9 +523,9 @@ _initialize_sparnbsd_tdep (void)
   gdbarch_register_osabi_sniffer (bfd_arch_sparc, bfd_target_aout_flavour,
                                  sparcnbsd_aout_osabi_sniffer);
 
-  gdbarch_register_osabi (bfd_arch_sparc, GDB_OSABI_NETBSD_AOUT,
+  gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_NETBSD_AOUT,
                          sparcnbsd_init_abi_aout);
-  gdbarch_register_osabi (bfd_arch_sparc, GDB_OSABI_NETBSD_ELF,
+  gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_NETBSD_ELF,
                          sparcnbsd_init_abi_elf);
 
   add_core_fns (&sparcnbsd_core_fns);
index a4807e3561f956cbb81f5425f65b9a59c226960c..1b81eb89ffd898d28d2ce920a49d9bb062489f06 100644 (file)
@@ -202,47 +202,31 @@ static const char vb_name[] = "_vb$";
 #define BELIEVE_PCC_PROMOTION_TYPE 0
 #endif
 
-static struct deprecated_complaint invalid_cpp_abbrev_complaint =
-{"invalid C++ abbreviation `%s'", 0, 0};
-
-static struct deprecated_complaint invalid_cpp_type_complaint =
-{"C++ abbreviated type name unknown at symtab pos %d", 0, 0};
-
-static struct deprecated_complaint member_fn_complaint =
-{"member function type missing, got '%c'", 0, 0};
-
-static struct deprecated_complaint const_vol_complaint =
-{"const/volatile indicator missing, got '%c'", 0, 0};
-
-static struct deprecated_complaint error_type_complaint =
-{"couldn't parse type; debugger out of date?", 0, 0};
-
-static struct deprecated_complaint invalid_member_complaint =
-{"invalid (minimal) member type data format at symtab pos %d.", 0, 0};
-
-static struct deprecated_complaint range_type_base_complaint =
-{"base type %d of range type is not defined", 0, 0};
-
-static struct deprecated_complaint reg_value_complaint =
-{"register number %d too large (max %d) in symbol %s", 0, 0};
-
-static struct deprecated_complaint vtbl_notfound_complaint =
-{"virtual function table pointer not found when defining class `%s'", 0, 0};
-
-static struct deprecated_complaint unrecognized_cplus_name_complaint =
-{"Unknown C++ symbol name `%s'", 0, 0};
-
-static struct deprecated_complaint rs6000_builtin_complaint =
-{"Unknown builtin type %d", 0, 0};
+static void
+invalid_cpp_abbrev_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints, "invalid C++ abbreviation `%s'", arg1);
+}
 
-static struct deprecated_complaint unresolved_sym_chain_complaint =
-{"%s: common block `%s' from global_sym_chain unresolved", 0, 0};
+static void
+reg_value_complaint (int arg1, int arg2, const char *arg3)
+{
+  complaint (&symfile_complaints,
+            "register number %d too large (max %d) in symbol %s", arg1, arg2,
+            arg3);
+}
 
-static struct deprecated_complaint stabs_general_complaint =
-{"%s", 0, 0};
+static void
+stabs_general_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints, "%s", arg1);
+}
 
-static struct deprecated_complaint lrs_general_complaint =
-{"%s", 0, 0};
+static void
+lrs_general_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints, "%s", arg1);
+}
 
 /* Make a list of forward references which haven't been defined.  */
 
@@ -311,11 +295,9 @@ dbx_lookup_type (int typenums[2])
 
   if (filenum < 0 || filenum >= n_this_object_header_files)
     {
-      static struct deprecated_complaint msg =
-      {"\
-Invalid symbol data: type number (%d,%d) out of range at symtab pos %d.",
-       0, 0};
-      complain (&msg, filenum, index, symnum);
+      complaint (&symfile_complaints,
+                "Invalid symbol data: type number (%d,%d) out of range at symtab pos %d.",
+                filenum, index, symnum);
       goto error_return;
     }
 
@@ -606,6 +588,12 @@ get_cfront_method_physname (char *fname)
   return p;
 }
 
+static void
+msg_unknown_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints, "Unsupported token in stabs string %s", arg1);
+}
+
 /* Read base classes within cfront class definition.
    eg: A:ZcA;1@Bpub v2@Bvirpri;__ct__1AFv func__1AFv *sfunc__1AFv ;as__1A ;;
    ^^^^^^^^^^^^^^^^^^
@@ -618,14 +606,6 @@ static int
 read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
                         struct objfile *objfile)
 {
-  static struct deprecated_complaint msg_unknown =
-  {"\
-        Unsupported token in stabs string %s.\n",
-   0, 0};
-  static struct deprecated_complaint msg_notfound =
-  {"\
-                  Unable to find base type for %s.\n",
-   0, 0};
   int bnum = 0;
   char *p;
   int i;
@@ -692,10 +672,9 @@ read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
          /* Bad visibility format.  Complain and treat it as
             public.  */
          {
-           static struct deprecated_complaint msg =
-           {
-             "Unknown visibility `%c' for baseclass", 0, 0};
-           complain (&msg, new->visibility);
+           complaint (&symfile_complaints,
+                      "Unknown visibility `%c' for baseclass",
+                      new->visibility);
            new->visibility = VISIBILITY_PUBLIC;
          }
        }
@@ -703,7 +682,7 @@ read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
       /* "@" comes next - eg: @Bvir */
       if (**pp != '@')
        {
-         complain (&msg_unknown, *pp);
+         msg_unknown_complaint (*pp);
          return 1;
        }
       ++(*pp);
@@ -731,7 +710,7 @@ read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
          bname = get_substring (pp, ';');
        if (!bname || !*bname)
          {
-           complain (&msg_unknown, *pp);
+           msg_unknown_complaint (*pp);
            return 1;
          }
        /* FIXME! attach base info to type */
@@ -743,7 +722,8 @@ read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
          }
        else
          {
-           complain (&msg_notfound, *pp);
+           complaint (&symfile_complaints, "Unable to find base type for %s",
+                      *pp);
            return 1;
          }
       }
@@ -810,11 +790,8 @@ read_cfront_member_functions (struct field_info *fip, char **pp,
       ref_func = lookup_symbol (fname, 0, VAR_NAMESPACE, 0, 0);                /* demangled name */
       if (!ref_func)
        {
-         static struct deprecated_complaint msg =
-         {"\
-               Unable to find function symbol for %s\n",
-          0, 0};
-         complain (&msg, fname);
+         complaint (&symfile_complaints,
+                    "Unable to find function symbol for %s", fname);
          continue;
        }
       sublist = NULL;
@@ -1070,7 +1047,7 @@ resolve_symbol_reference (struct objfile *objfile, struct symbol *sym, char *p)
   ref_sym = ref_search (refnum);
   if (!ref_sym)
     {
-      complain (&lrs_general_complaint, "symbol for reference not found");
+      lrs_general_complaint ("symbol for reference not found");
       return 0;
     }
 
@@ -1106,7 +1083,7 @@ resolve_symbol_reference (struct objfile *objfile, struct symbol *sym, char *p)
                                               sizeof (struct alias_list));
   if (!alias)
     {
-      complain (&lrs_general_complaint, "Unable to allocate alias list memory");
+      lrs_general_complaint ("Unable to allocate alias list memory");
       return 0;
     }
 
@@ -1361,7 +1338,8 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
 #endif
 
        default:
-         complain (&unrecognized_cplus_name_complaint, string);
+         complaint (&symfile_complaints, "Unknown C++ symbol name `%s'",
+                    string);
          goto normal;          /* Do *something* with it */
        }
     }
@@ -1813,9 +1791,9 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
       SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu);
       if (SYMBOL_VALUE (sym) >= NUM_REGS + NUM_PSEUDO_REGS)
        {
-         complain (&reg_value_complaint, SYMBOL_VALUE (sym),
-                   NUM_REGS + NUM_PSEUDO_REGS,
-                   SYMBOL_PRINT_NAME (sym));
+         reg_value_complaint (SYMBOL_VALUE (sym),
+                              NUM_REGS + NUM_PSEUDO_REGS,
+                              SYMBOL_PRINT_NAME (sym));
          SYMBOL_VALUE (sym) = SP_REGNUM;       /* Known safe, though useless */
        }
       SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
@@ -1829,9 +1807,9 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
       SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu);
       if (SYMBOL_VALUE (sym) >= NUM_REGS + NUM_PSEUDO_REGS)
        {
-         complain (&reg_value_complaint, SYMBOL_VALUE (sym),
-                   NUM_REGS + NUM_PSEUDO_REGS,
-                   SYMBOL_PRINT_NAME (sym));
+         reg_value_complaint (SYMBOL_VALUE (sym),
+                              NUM_REGS + NUM_PSEUDO_REGS,
+                              SYMBOL_PRINT_NAME (sym));
          SYMBOL_VALUE (sym) = SP_REGNUM;       /* Known safe, though useless */
        }
       SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
@@ -2083,9 +2061,9 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
       SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu);
       if (SYMBOL_VALUE (sym) >= NUM_REGS + NUM_PSEUDO_REGS)
        {
-         complain (&reg_value_complaint, SYMBOL_VALUE (sym),
-                   NUM_REGS + NUM_PSEUDO_REGS,
-                   SYMBOL_PRINT_NAME (sym));
+         reg_value_complaint (SYMBOL_VALUE (sym),
+                              NUM_REGS + NUM_PSEUDO_REGS,
+                              SYMBOL_PRINT_NAME (sym));
          SYMBOL_VALUE (sym) = SP_REGNUM;       /* Known safe, though useless */
        }
       SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
@@ -2180,7 +2158,7 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
          p = strchr (p, ')');
          if (!*p || *p != ')')
            {
-             complain (&lrs_general_complaint, "live range format not recognized");
+             lrs_general_complaint ("live range format not recognized");
              return NULL;
            }
          p++;
@@ -2201,14 +2179,14 @@ resolve_live_range (struct objfile *objfile, struct symbol *sym, char *p)
   /* Sanity check the beginning of the stabs string.  */
   if (!*p || *p != 'l')
     {
-      complain (&lrs_general_complaint, "live range string 1");
+      lrs_general_complaint ("live range string 1");
       return 0;
     }
   p++;
 
   if (!*p || *p != '(')
     {
-      complain (&lrs_general_complaint, "live range string 2");
+      lrs_general_complaint ("live range string 2");
       return 0;
     }
   p++;
@@ -2221,13 +2199,13 @@ resolve_live_range (struct objfile *objfile, struct symbol *sym, char *p)
   start = ref_search_value (refnum);
   if (!start)
     {
-      complain (&lrs_general_complaint, "Live range symbol not found 1");
+      lrs_general_complaint ("Live range symbol not found 1");
       return 0;
     }
 
   if (!*p || *p != ',')
     {
-      complain (&lrs_general_complaint, "live range string 3");
+      lrs_general_complaint ("live range string 3");
       return 0;
     }
   p++;
@@ -2240,13 +2218,13 @@ resolve_live_range (struct objfile *objfile, struct symbol *sym, char *p)
   end = ref_search_value (refnum);
   if (!end)
     {
-      complain (&lrs_general_complaint, "Live range symbol not found 2");
+      lrs_general_complaint ("Live range symbol not found 2");
       return 0;
     }
 
   if (!*p || *p != ')')
     {
-      complain (&lrs_general_complaint, "live range string 4");
+      lrs_general_complaint ("live range string 4");
       return 0;
     }
 
@@ -2268,7 +2246,7 @@ add_live_range (struct objfile *objfile, struct symbol *sym, CORE_ADDR start,
 
   if (start >= end)
     {
-      complain (&lrs_general_complaint, "end of live range follows start");
+      lrs_general_complaint ("end of live range follows start");
       return;
     }
 
@@ -2325,7 +2303,7 @@ add_live_range (struct objfile *objfile, struct symbol *sym, CORE_ADDR start,
 static struct type *
 error_type (char **pp, struct objfile *objfile)
 {
-  complain (&error_type_complaint);
+  complaint (&symfile_complaints, "couldn't parse type; debugger out of date?");
   while (1)
     {
       /* Skip to end of symbol.  */
@@ -2435,9 +2413,8 @@ again:
              {
                /* Complain and keep going, so compilers can invent new
                   cross-reference types.  */
-               static struct deprecated_complaint msg =
-               {"Unrecognized cross-reference type `%c'", 0, 0};
-               complain (&msg, (*pp)[0]);
+               complaint (&symfile_complaints,
+                          "Unrecognized cross-reference type `%c'", (*pp)[0]);
                code = TYPE_CODE_STRUCT;
                break;
              }
@@ -2660,11 +2637,9 @@ again:
           ++*pp;
         else
           {
-            static struct deprecated_complaint msg = {
-              "Prototyped function type didn't end arguments with `#':\n%s",
-              0, 0
-            };
-            complain (&msg, type_start);
+           complaint (&symfile_complaints,
+                      "Prototyped function type didn't end arguments with `#':\n%s",
+                      type_start);
           }
 
         /* If there is just one argument whose type is `void', then
@@ -2797,7 +2772,9 @@ again:
          (*pp)++;
          return_type = read_type (pp, objfile);
          if (*(*pp)++ != ';')
-           complain (&invalid_member_complaint, symnum);
+           complaint (&symfile_complaints,
+                      "invalid (minimal) member type data format at symtab pos %d.",
+                      symnum);
          type = allocate_stub_method (return_type);
          if (typenums[0] != -1)
            *dbx_lookup_type (typenums) = type;
@@ -2930,7 +2907,7 @@ rs6000_builtin_type (int typenum)
 
   if (typenum >= 0 || typenum < -NUMBER_RECOGNIZED)
     {
-      complain (&rs6000_builtin_complaint, typenum);
+      complaint (&symfile_complaints, "Unknown builtin type %d", typenum);
       return builtin_type_error;
     }
   if (negative_types[-typenum] != NULL)
@@ -3288,7 +3265,8 @@ read_member_functions (struct field_info *fip, char **pp, struct type *type,
            case '.':
              break;
            default:
-             complain (&const_vol_complaint, **pp);
+             complaint (&symfile_complaints,
+                        "const/volatile indicator missing, got '%c'", **pp);
              break;
            }
 
@@ -3370,7 +3348,8 @@ read_member_functions (struct field_info *fip, char **pp, struct type *type,
 
            default:
              /* error */
-             complain (&member_fn_complaint, (*pp)[-1]);
+             complaint (&symfile_complaints,
+                        "member function type missing, got '%c'", (*pp)[-1]);
              /* Fall through into normal member function.  */
 
            case '.':
@@ -3635,7 +3614,9 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
          name = type_name_no_tag (context);
          if (name == NULL)
            {
-             complain (&invalid_cpp_type_complaint, symnum);
+             complaint (&symfile_complaints,
+                        "C++ abbreviated type name unknown at symtab pos %d",
+                        symnum);
              name = "FOO";
            }
          fip->list->field.name =
@@ -3643,7 +3624,7 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
          break;
 
        default:
-         complain (&invalid_cpp_abbrev_complaint, *pp);
+         invalid_cpp_abbrev_complaint (*pp);
          fip->list->field.name =
            obconcat (&objfile->type_obstack,
                      "INVALID_CPLUSPLUS_ABBREV", "", "");
@@ -3656,7 +3637,7 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
       p = ++(*pp);
       if (p[-1] != ':')
        {
-         complain (&invalid_cpp_abbrev_complaint, *pp);
+         invalid_cpp_abbrev_complaint (*pp);
          return 0;
        }
       fip->list->field.type = read_type (pp, objfile);
@@ -3677,7 +3658,7 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
     }
   else
     {
-      complain (&invalid_cpp_abbrev_complaint, *pp);
+      invalid_cpp_abbrev_complaint (*pp);
       /* We have no idea what syntax an unrecognized abbrev would have, so
          better return 0.  If we returned 1, we would need to at least advance
          *pp to avoid an infinite loop.  */
@@ -3761,7 +3742,7 @@ read_one_struct_field (struct field_info *fip, char **pp, char *p,
   else if (**pp != ',')
     {
       /* Bad structure-type format.  */
-      complain (&stabs_general_complaint, "bad structure-type format");
+      stabs_general_complaint ("bad structure-type format");
       return;
     }
 
@@ -3772,13 +3753,13 @@ read_one_struct_field (struct field_info *fip, char **pp, char *p,
     FIELD_BITPOS (fip->list->field) = read_huge_number (pp, ',', &nbits);
     if (nbits != 0)
       {
-       complain (&stabs_general_complaint, "bad structure-type format");
+       stabs_general_complaint ("bad structure-type format");
        return;
       }
     FIELD_BITSIZE (fip->list->field) = read_huge_number (pp, ';', &nbits);
     if (nbits != 0)
       {
-       complain (&stabs_general_complaint, "bad structure-type format");
+       stabs_general_complaint ("bad structure-type format");
        return;
       }
   }
@@ -4018,10 +3999,8 @@ read_baseclasses (struct field_info *fip, char **pp, struct type *type,
        default:
          /* Unknown character.  Complain and treat it as non-virtual.  */
          {
-           static struct deprecated_complaint msg =
-           {
-             "Unknown virtual character `%c' for baseclass", 0, 0};
-           complain (&msg, **pp);
+           complaint (&symfile_complaints,
+                      "Unknown virtual character `%c' for baseclass", **pp);
          }
        }
       ++(*pp);
@@ -4037,11 +4016,9 @@ read_baseclasses (struct field_info *fip, char **pp, struct type *type,
          /* Bad visibility format.  Complain and treat it as
             public.  */
          {
-           static struct deprecated_complaint msg =
-           {
-             "Unknown visibility `%c' for baseclass", 0, 0
-           };
-           complain (&msg, new->visibility);
+           complaint (&symfile_complaints,
+                      "Unknown visibility `%c' for baseclass",
+                      new->visibility);
            new->visibility = VISIBILITY_PUBLIC;
          }
        }
@@ -4147,7 +4124,9 @@ read_tilde_fields (struct field_info *fip, char **pp, struct type *type,
                    }
                }
              /* Virtual function table field not found.  */
-             complain (&vtbl_notfound_complaint, TYPE_NAME (type));
+             complaint (&symfile_complaints,
+                        "virtual function table pointer not found when defining class `%s'",
+                        TYPE_NAME (type));
              return 0;
            }
          else
@@ -4210,11 +4189,8 @@ read_cfront_static_fields (struct field_info *fip, char **pp, struct type *type,
       ref_static = lookup_symbol (sname, 0, VAR_NAMESPACE, 0, 0);      /*demangled_name */
       if (!ref_static)
        {
-         static struct deprecated_complaint msg =
-         {"\
-               Unable to find symbol for static data field %s\n",
-          0, 0};
-         complain (&msg, sname);
+         complaint (&symfile_complaints,
+                    "Unable to find symbol for static data field %s", sname);
          continue;
        }
       stype = SYMBOL_TYPE (ref_static);
@@ -4389,10 +4365,8 @@ attach_fields_to_type (struct field_info *fip, register struct type *type,
        default:
          /* Unknown visibility.  Complain and treat it as public.  */
          {
-           static struct deprecated_complaint msg =
-           {
-             "Unknown visibility `%c' for field", 0, 0};
-           complain (&msg, fip->list->visibility);
+           complaint (&symfile_complaints, "Unknown visibility `%c' for field",
+                      fip->list->visibility);
          }
          break;
        }
@@ -4402,10 +4376,6 @@ attach_fields_to_type (struct field_info *fip, register struct type *type,
 }
 
 
-static struct deprecated_complaint multiply_defined_struct =
-{"struct/union type gets multiply defined: %s%s", 0, 0};
-
-
 /* Complain that the compiler has emitted more than one definition for the
    structure type TYPE.  */
 static void 
@@ -4436,7 +4406,8 @@ complain_about_struct_wipeout (struct type *type)
       kind = "";
     }
 
-  complain (&multiply_defined_struct, kind, name);
+  complaint (&symfile_complaints,
+            "struct/union type gets multiply defined: %s%s", kind, name);
 }
 
 
@@ -5138,7 +5109,8 @@ handle_true_range:
 
       static struct type *range_type_index;
 
-      complain (&range_type_base_complaint, rangenums[1]);
+      complaint (&symfile_complaints,
+                "base type %d of range type is not defined", rangenums[1]);
       if (range_type_index == NULL)
        range_type_index =
          init_type (TYPE_CODE_INT, TARGET_INT_BIT / TARGET_CHAR_BIT,
@@ -5214,11 +5186,8 @@ common_block_start (char *name, struct objfile *objfile)
 {
   if (common_block_name != NULL)
     {
-      static struct deprecated_complaint msg =
-      {
-       "Invalid symbol data: common block within common block",
-       0, 0};
-      complain (&msg);
+      complaint (&symfile_complaints,
+                "Invalid symbol data: common block within common block");
     }
   common_block = local_symbols;
   common_block_i = local_symbols ? local_symbols->nsyms : 0;
@@ -5244,9 +5213,7 @@ common_block_end (struct objfile *objfile)
 
   if (common_block_name == NULL)
     {
-      static struct deprecated_complaint msg =
-      {"ECOMM symbol unmatched by BCOMM", 0, 0};
-      complain (&msg);
+      complaint (&symfile_complaints, "ECOMM symbol unmatched by BCOMM");
       return;
     }
 
@@ -5359,9 +5326,7 @@ cleanup_undefined_types (void)
 
                if (typename == NULL)
                  {
-                   static struct deprecated_complaint msg =
-                   {"need a type name", 0, 0};
-                   complain (&msg);
+                   complaint (&symfile_complaints, "need a type name");
                    break;
                  }
                for (ppt = file_symbols; ppt; ppt = ppt->next)
@@ -5384,10 +5349,9 @@ cleanup_undefined_types (void)
 
        default:
          {
-           static struct deprecated_complaint msg =
-           {"\
-GDB internal error.  cleanup_undefined_types with bad type %d.", 0, 0};
-           complain (&msg, TYPE_CODE (*type));
+           complaint (&symfile_complaints,
+                      "GDB internal error.  cleanup_undefined_types with bad type %d.",
+                      TYPE_CODE (*type));
          }
          break;
        }
@@ -5547,8 +5511,9 @@ scan_file_globals (struct objfile *objfile)
          if (SYMBOL_CLASS (prev) == LOC_STATIC)
            SYMBOL_CLASS (prev) = LOC_UNRESOLVED;
          else
-           complain (&unresolved_sym_chain_complaint,
-                     objfile->name, SYMBOL_NAME (prev));
+           complaint (&symfile_complaints,
+                      "%s: common block `%s' from global_sym_chain unresolved",
+                      objfile->name, SYMBOL_NAME (prev));
        }
     }
   memset (global_sym_chain, 0, sizeof (global_sym_chain));
index 1371f6c56ce9d615568c82de989ba963a2e111b4..017074bf53da5569feef81bbc855b2a1cc35416e 100644 (file)
@@ -128,9 +128,6 @@ EXTERN int n_this_object_header_files;
 
 EXTERN int n_allocated_this_object_header_files;
 
-extern struct deprecated_complaint unknown_symtype_complaint;
-extern struct deprecated_complaint unknown_symchar_complaint;
-
 extern struct type *read_type (char **, struct objfile *);
 
 extern void cleanup_undefined_types (void);
index 734132d32484e1c34ca4c9d401f62dd166081e01..40bc316bc094b8e04bd4c62f5bc16631bb31d058 100644 (file)
@@ -112,27 +112,6 @@ static void frame_info (char *, int);
 
 extern int addressprint;       /* Print addresses, or stay symbolic only? */
 
-/* The "selected" stack frame is used by default for local and arg access.
-   May be zero, for no selected frame.  */
-
-struct frame_info *selected_frame;
-
-/* Level of the selected frame:
-   0 for innermost, 1 for its caller, ...
-   or -1 for frame specified by address with no defined level.  */
-
-/* Level of the selected frame: 0 for innermost, 1 for its caller, ...
-   or -1 for NULL frame.  */
-
-int
-frame_relative_level (struct frame_info *fi)
-{
-  if (fi == NULL)
-    return -1;
-  else
-    return fi->level;
-}
-
 /* Zero means do things normally; we are interacting directly with the
    user.  One means print the full filename and linenumber when a
    frame is printed, and do so in a format emacs18/emacs19.22 can
@@ -335,27 +314,9 @@ print_frame_info_base (struct frame_info *fi, int level, int source, int args)
   int source_print;
   int location_print;
 
-#if 0
-  char buf[MAX_REGISTER_RAW_SIZE];
-  CORE_ADDR sp;
-
-  /* On the 68k, this spends too much time in m68k_find_saved_regs.  */
-
-  /* Get the value of SP_REGNUM relative to the frame.  */
-  get_saved_register (buf, (int *) NULL, (CORE_ADDR *) NULL,
-                   FRAME_INFO_ID (fi), SP_REGNUM, (enum lval_type *) NULL);
-  sp = extract_address (buf, REGISTER_RAW_SIZE (SP_REGNUM));
-
-  /* This is not a perfect test, because if a function alloca's some
-     memory, puts some code there, and then jumps into it, then the test
-     will succeed even though there is no call dummy.  Probably best is
-     to check for a bp_call_dummy breakpoint.  */
-  if (PC_IN_CALL_DUMMY (fi->pc, sp, fi->frame))
-#else
-  if (deprecated_frame_in_dummy (fi))
-#endif
+  if (get_frame_type (fi) == DUMMY_FRAME)
     {
-      annotate_frame_begin (level == -1 ? 0 : level, fi->pc);
+      annotate_frame_begin (level == -1 ? 0 : level, get_frame_pc (fi));
 
       /* Do this regardless of SOURCE because we don't have any source
          to list for this frame.  */
@@ -369,9 +330,9 @@ print_frame_info_base (struct frame_info *fi, int level, int source, int args)
       annotate_frame_end ();
       return;
     }
-  if (fi->signal_handler_caller)
+  if ((get_frame_type (fi) == SIGTRAMP_FRAME))
     {
-      annotate_frame_begin (level == -1 ? 0 : level, fi->pc);
+      annotate_frame_begin (level == -1 ? 0 : level, get_frame_pc (fi));
 
       /* Do this regardless of SOURCE because we don't have any source
          to list for this frame.  */
@@ -387,16 +348,12 @@ print_frame_info_base (struct frame_info *fi, int level, int source, int args)
     }
 
   /* If fi is not the innermost frame, that normally means that fi->pc
-     points to *after* the call instruction, and we want to get the line
-     containing the call, never the next line.  But if the next frame is
-     a signal_handler_caller or a dummy frame, then the next frame was
-     not entered as the result of a call, and we want to get the line
-     containing fi->pc.  */
-  sal =
-    find_pc_line (fi->pc,
-                 fi->next != NULL
-                 && !fi->next->signal_handler_caller
-                 && !deprecated_frame_in_dummy (fi->next));
+     points to *after* the call instruction, and we want to get the
+     line containing the call, never the next line.  But if the next
+     frame is a SIGTRAMP_FRAME or a DUMMY_FRAME, then the next frame
+     was not entered as the result of a call, and we want to get the
+     line containing fi->pc.  */
+  find_frame_sal (fi, &sal);
 
   location_print = (source == LOCATION 
                    || source == LOC_AND_ADDRESS
@@ -414,11 +371,11 @@ print_frame_info_base (struct frame_info *fi, int level, int source, int args)
     {
       struct symtab_and_line cursal;
       int done = 0;
-      int mid_statement = (source == SRC_LINE) && (fi->pc != sal.pc);
+      int mid_statement = (source == SRC_LINE) && (get_frame_pc (fi) != sal.pc);
 
       if (annotation_level)
        done = identify_source_line (sal.symtab, sal.line, mid_statement,
-                                    fi->pc);
+                                    get_frame_pc (fi));
       if (!done)
        {
          if (print_frame_info_listing_hook)
@@ -435,7 +392,7 @@ print_frame_info_base (struct frame_info *fi, int level, int source, int args)
                 ability to decide for themselves if it is desired. */
              if (addressprint && mid_statement)
                {
-                 ui_out_field_core_addr (uiout, "addr", fi->pc);
+                 ui_out_field_core_addr (uiout, "addr", get_frame_pc (fi));
                  ui_out_text (uiout, "\t");
                }
 
@@ -450,7 +407,7 @@ print_frame_info_base (struct frame_info *fi, int level, int source, int args)
     }
 
   if (source != 0)
-    set_default_breakpoint (1, fi->pc, sal.symtab, sal.line);
+    set_default_breakpoint (1, get_frame_pc (fi), sal.symtab, sal.line);
 
   annotate_frame_end ();
 
@@ -549,7 +506,7 @@ print_frame (struct frame_info *fi,
        }
     }
 
-  annotate_frame_begin (level == -1 ? 0 : level, fi->pc);
+  annotate_frame_begin (level == -1 ? 0 : level, get_frame_pc (fi));
 
   list_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
 
@@ -559,10 +516,12 @@ print_frame (struct frame_info *fi,
       ui_out_field_fmt_int (uiout, 2, ui_left, "level", level);
     }
   if (addressprint)
-    if (fi->pc != sal.pc || !sal.symtab || source == LOC_AND_ADDRESS)
+    if (get_frame_pc (fi) != sal.pc
+       || !sal.symtab
+       || source == LOC_AND_ADDRESS)
       {
        annotate_frame_address ();
-       ui_out_field_core_addr (uiout, "addr", fi->pc);
+       ui_out_field_core_addr (uiout, "addr", get_frame_pc (fi));
        annotate_frame_address_end ();
        ui_out_text (uiout, " in ");
       }
@@ -607,7 +566,7 @@ print_frame (struct frame_info *fi,
 #ifdef PC_SOLIB
   if (!funname || (!sal.symtab || !sal.symtab->filename))
     {
-      char *lib = PC_SOLIB (fi->pc);
+      char *lib = PC_SOLIB (get_frame_pc (fi));
       if (lib)
        {
          annotate_frame_where ();
@@ -699,9 +658,9 @@ parse_frame_specification (char *frame_exp)
   switch (numargs)
     {
     case 0:
-      if (selected_frame == NULL)
+      if (deprecated_selected_frame == NULL)
        error ("No selected frame.");
-      return selected_frame;
+      return deprecated_selected_frame;
       /* NOTREACHED */
     case 1:
       {
@@ -733,13 +692,13 @@ parse_frame_specification (char *frame_exp)
           (s)he gets.  Still, give the highest one that matches.  */
 
        for (fid = get_current_frame ();
-            fid && fid->frame != args[0];
+            fid && get_frame_base (fid) != args[0];
             fid = get_prev_frame (fid))
          ;
 
        if (fid)
          while ((tfid = get_prev_frame (fid)) &&
-                (tfid->frame == args[0]))
+                (get_frame_base (tfid) == args[0]))
            fid = tfid;
 
        /* We couldn't identify the frame as an existing frame, but
@@ -793,12 +752,11 @@ frame_info (char *addr_exp, int from_tty)
   if (fi == NULL)
     error ("Invalid frame specified.");
 
-  sal = find_pc_line (fi->pc,
-                     fi->next != NULL
-                     && !fi->next->signal_handler_caller
-                     && !deprecated_frame_in_dummy (fi->next));
+  find_frame_sal (fi, &sal);
   func = get_frame_function (fi);
-  s = find_pc_symtab (fi->pc);
+  /* FIXME: cagney/2002-11-28: Why bother?  Won't sal.symtab contain
+     the same value.  */
+  s = find_pc_symtab (get_frame_pc (fi));
   if (func)
     {
       /* I'd like to use SYMBOL_PRINT_NAME() here, to display
@@ -830,7 +788,7 @@ frame_info (char *addr_exp, int from_tty)
     }
   else
     {
-      register struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (fi->pc);
+      register struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (get_frame_pc (fi));
       if (msymbol != NULL)
        {
          funname = SYMBOL_NAME (msymbol);
@@ -839,21 +797,21 @@ frame_info (char *addr_exp, int from_tty)
     }
   calling_frame_info = get_prev_frame (fi);
 
-  if (!addr_exp && frame_relative_level (selected_frame) >= 0)
+  if (!addr_exp && frame_relative_level (deprecated_selected_frame) >= 0)
     {
       printf_filtered ("Stack level %d, frame at ",
-                      frame_relative_level (selected_frame));
-      print_address_numeric (fi->frame, 1, gdb_stdout);
+                      frame_relative_level (deprecated_selected_frame));
+      print_address_numeric (get_frame_base (fi), 1, gdb_stdout);
       printf_filtered (":\n");
     }
   else
     {
       printf_filtered ("Stack frame at ");
-      print_address_numeric (fi->frame, 1, gdb_stdout);
+      print_address_numeric (get_frame_base (fi), 1, gdb_stdout);
       printf_filtered (":\n");
     }
   printf_filtered (" %s = ", REGISTER_NAME (PC_REGNUM));
-  print_address_numeric (fi->pc, 1, gdb_stdout);
+  print_address_numeric (get_frame_pc (fi), 1, gdb_stdout);
 
   wrap_here ("   ");
   if (funname)
@@ -868,7 +826,7 @@ frame_info (char *addr_exp, int from_tty)
   puts_filtered ("; ");
   wrap_here ("    ");
   printf_filtered ("saved %s ", REGISTER_NAME (PC_REGNUM));
-  print_address_numeric (FRAME_SAVED_PC (fi), 1, gdb_stdout);
+  print_address_numeric (frame_pc_unwind (fi), 1, gdb_stdout);
   printf_filtered ("\n");
 
   {
@@ -881,20 +839,23 @@ frame_info (char *addr_exp, int from_tty)
   if (calling_frame_info)
     {
       printf_filtered (" called by frame at ");
-      print_address_numeric (calling_frame_info->frame, 1, gdb_stdout);
+      print_address_numeric (get_frame_base (calling_frame_info),
+                            1, gdb_stdout);
     }
-  if (fi->next && calling_frame_info)
+  if (get_next_frame (fi) && calling_frame_info)
     puts_filtered (",");
   wrap_here ("   ");
-  if (fi->next)
+  if (get_next_frame (fi))
     {
       printf_filtered (" caller of frame at ");
-      print_address_numeric (fi->next->frame, 1, gdb_stdout);
+      print_address_numeric (get_frame_base (get_next_frame (fi)), 1,
+                            gdb_stdout);
     }
-  if (fi->next || calling_frame_info)
+  if (get_next_frame (fi) || calling_frame_info)
     puts_filtered ("\n");
   if (s)
-    printf_filtered (" source language %s.\n", language_str (s->language));
+    printf_filtered (" source language %s.\n",
+                    language_str (s->language));
 
 #ifdef PRINT_EXTRA_FRAME_INFO
   PRINT_EXTRA_FRAME_INFO (fi);
@@ -941,7 +902,7 @@ frame_info (char *addr_exp, int from_tty)
       }
   }
 
-  if (fi->saved_regs == NULL)
+  if (get_frame_saved_regs (fi) == NULL)
     FRAME_INIT_SAVED_REGS (fi);
   /* Print as much information as possible on the location of all the
      registers.  */
@@ -1345,7 +1306,7 @@ print_frame_label_vars (register struct frame_info *fi, int this_level_only,
   register int values_printed = 0;
   int index, have_default = 0;
   char *blocks_printed;
-  CORE_ADDR pc = fi->pc;
+  CORE_ADDR pc = get_frame_pc (fi);
 
   if (block == 0)
     {
@@ -1408,9 +1369,9 @@ print_frame_label_vars (register struct frame_info *fi, int this_level_only,
 void
 locals_info (char *args, int from_tty)
 {
-  if (!selected_frame)
+  if (!deprecated_selected_frame)
     error ("No frame selected.");
-  print_frame_local_vars (selected_frame, 0, gdb_stdout);
+  print_frame_local_vars (deprecated_selected_frame, 0, gdb_stdout);
 }
 
 static void
@@ -1427,17 +1388,17 @@ catch_info (char *ignore, int from_tty)
          system to find the list of active handlers, etc. */
       fprintf_filtered (gdb_stdout, "Info catch not supported with this target/compiler combination.\n");
 #if 0
-      if (!selected_frame)
+      if (!deprecated_selected_frame)
        error ("No frame selected.");
 #endif
     }
   else
     {
       /* Assume g++ compiled code -- old v 4.16 behaviour */
-      if (!selected_frame)
+      if (!deprecated_selected_frame)
        error ("No frame selected.");
 
-      print_frame_label_vars (selected_frame, 0, gdb_stdout);
+      print_frame_label_vars (deprecated_selected_frame, 0, gdb_stdout);
     }
 }
 
@@ -1503,9 +1464,9 @@ print_frame_arg_vars (register struct frame_info *fi,
 void
 args_info (char *ignore, int from_tty)
 {
-  if (!selected_frame)
+  if (!deprecated_selected_frame)
     error ("No frame selected.");
-  print_frame_arg_vars (selected_frame, gdb_stdout);
+  print_frame_arg_vars (deprecated_selected_frame, gdb_stdout);
 }
 
 
@@ -1517,44 +1478,6 @@ args_plus_locals_info (char *ignore, int from_tty)
 }
 \f
 
-/* Select frame FI (or NULL - to invalidate the current frame).  */
-
-void
-select_frame (struct frame_info *fi)
-{
-  register struct symtab *s;
-
-  selected_frame = fi;
-  /* NOTE: cagney/2002-05-04: FI can be NULL.  This occures when the
-     frame is being invalidated.  */
-  if (selected_frame_level_changed_hook)
-    selected_frame_level_changed_hook (frame_relative_level (fi));
-
-  /* FIXME: kseitz/2002-08-28: It would be nice to call
-     selected_frame_level_changed_event right here, but due to limitations
-     in the current interfaces, we would end up flooding UIs with events
-     because select_frame is used extensively internally.
-
-     Once we have frame-parameterized frame (and frame-related) commands,
-     the event notification can be moved here, since this function will only
-     be called when the users selected frame is being changed. */
-
-  /* Ensure that symbols for this frame are read in.  Also, determine the
-     source language of this frame, and switch to it if desired.  */
-  if (fi)
-    {
-      s = find_pc_symtab (fi->pc);
-      if (s
-         && s->language != current_language->la_language
-         && s->language != language_unknown
-         && language_mode == language_mode_auto)
-       {
-         set_language (s->language);
-       }
-    }
-}
-\f
-
 /* Select frame FI.  Also print the stack frame and show the source if
    this is the tui version.  */
 static void
@@ -1580,9 +1503,24 @@ get_selected_block (CORE_ADDR *addr_in_block)
   if (!target_has_stack)
     return 0;
 
-  if (!selected_frame)
-    return get_current_block (addr_in_block);
-  return get_frame_block (selected_frame, addr_in_block);
+  /* NOTE: cagney/2002-11-28: Why go to all this effort to not create
+     a selected/current frame?  Perhaphs this function is called,
+     indirectly, by WFI in "infrun.c" where avoiding the creation of
+     an inner most frame is very important (it slows down single
+     step).  I suspect, though that this was true in the deep dark
+     past but is no longer the case.  A mindless look at all the
+     callers tends to support this theory.  I think we should be able
+     to assume that there is always a selcted frame.  */
+  /* gdb_assert (deprecated_selected_frame != NULL); So, do you feel
+     lucky? */
+  if (!deprecated_selected_frame)
+    {
+      CORE_ADDR pc = read_pc ();
+      if (addr_in_block != NULL)
+       *addr_in_block = pc;
+      return block_for_pc (pc);
+    }
+  return get_frame_block (deprecated_selected_frame, addr_in_block);
 }
 
 /* Find a frame a certain number of levels away from FRAME.
@@ -1643,7 +1581,7 @@ static void
 select_frame_command (char *level_exp, int from_tty)
 {
   struct frame_info *frame;
-  int level = frame_relative_level (selected_frame);
+  int level = frame_relative_level (deprecated_selected_frame);
 
   if (!target_has_stack)
     error ("No stack.");
@@ -1651,8 +1589,8 @@ select_frame_command (char *level_exp, int from_tty)
   frame = parse_frame_specification (level_exp);
 
   select_frame (frame);
-  if (level != frame_relative_level (selected_frame))
-    selected_frame_level_changed_event (frame_relative_level (selected_frame));
+  if (level != frame_relative_level (deprecated_selected_frame))
+    selected_frame_level_changed_event (frame_relative_level (deprecated_selected_frame));
 }
 
 /* The "frame" command.  With no arg, print selected frame briefly.
@@ -1663,8 +1601,8 @@ void
 frame_command (char *level_exp, int from_tty)
 {
   select_frame_command (level_exp, from_tty);
-  show_and_print_stack_frame (selected_frame,
-                             frame_relative_level (selected_frame), 1);
+  show_and_print_stack_frame (deprecated_selected_frame,
+                             frame_relative_level (deprecated_selected_frame), 1);
 }
 
 /* The XDB Compatibility command to print the current frame. */
@@ -1672,10 +1610,10 @@ frame_command (char *level_exp, int from_tty)
 static void
 current_frame_command (char *level_exp, int from_tty)
 {
-  if (target_has_stack == 0 || selected_frame == 0)
+  if (target_has_stack == 0 || deprecated_selected_frame == 0)
     error ("No stack.");
-  print_only_stack_frame (selected_frame,
-                         frame_relative_level (selected_frame), 1);
+  print_only_stack_frame (deprecated_selected_frame,
+                         frame_relative_level (deprecated_selected_frame), 1);
 }
 
 /* Select the frame up one or COUNT stack levels
@@ -1691,14 +1629,14 @@ up_silently_base (char *count_exp)
     count = parse_and_eval_long (count_exp);
   count1 = count;
 
-  if (target_has_stack == 0 || selected_frame == 0)
+  if (target_has_stack == 0 || deprecated_selected_frame == 0)
     error ("No stack.");
 
-  fi = find_relative_frame (selected_frame, &count1);
+  fi = find_relative_frame (deprecated_selected_frame, &count1);
   if (count1 != 0 && count_exp == 0)
     error ("Initial frame selected; you cannot go up.");
   select_frame (fi);
-  selected_frame_level_changed_event (frame_relative_level (selected_frame));
+  selected_frame_level_changed_event (frame_relative_level (deprecated_selected_frame));
 }
 
 static void
@@ -1711,8 +1649,8 @@ static void
 up_command (char *count_exp, int from_tty)
 {
   up_silently_base (count_exp);
-  show_and_print_stack_frame (selected_frame,
-                             frame_relative_level (selected_frame), 1);
+  show_and_print_stack_frame (deprecated_selected_frame,
+                             frame_relative_level (deprecated_selected_frame), 1);
 }
 
 /* Select the frame down one or COUNT stack levels
@@ -1728,10 +1666,10 @@ down_silently_base (char *count_exp)
     count = -parse_and_eval_long (count_exp);
   count1 = count;
 
-  if (target_has_stack == 0 || selected_frame == 0)
+  if (target_has_stack == 0 || deprecated_selected_frame == 0)
     error ("No stack.");
 
-  frame = find_relative_frame (selected_frame, &count1);
+  frame = find_relative_frame (deprecated_selected_frame, &count1);
   if (count1 != 0 && count_exp == 0)
     {
 
@@ -1744,7 +1682,7 @@ down_silently_base (char *count_exp)
     }
 
   select_frame (frame);
-  selected_frame_level_changed_event (frame_relative_level (selected_frame));
+  selected_frame_level_changed_event (frame_relative_level (deprecated_selected_frame));
 }
 
 /* ARGSUSED */
@@ -1758,8 +1696,8 @@ static void
 down_command (char *count_exp, int from_tty)
 {
   down_silently_base (count_exp);
-  show_and_print_stack_frame (selected_frame,
-                             frame_relative_level (selected_frame), 1);
+  show_and_print_stack_frame (deprecated_selected_frame,
+                             frame_relative_level (deprecated_selected_frame), 1);
 }
 \f
 void
@@ -1771,11 +1709,11 @@ return_command (char *retval_exp, int from_tty)
   struct frame_info *frame;
   struct value *return_value = NULL;
 
-  if (selected_frame == NULL)
+  if (deprecated_selected_frame == NULL)
     error ("No selected frame.");
-  thisfun = get_frame_function (selected_frame);
-  selected_frame_addr = FRAME_FP (selected_frame);
-  selected_frame_pc = selected_frame->pc;
+  thisfun = get_frame_function (deprecated_selected_frame);
+  selected_frame_addr = get_frame_base (deprecated_selected_frame);
+  selected_frame_pc = get_frame_pc (deprecated_selected_frame);
 
   /* Compute the return value (if any -- possibly getting errors here).  */
 
@@ -1815,12 +1753,12 @@ return_command (char *retval_exp, int from_tty)
     }
 
   /* Do the real work.  Pop until the specified frame is current.  We
-     use this method because the selected_frame is not valid after
+     use this method because the deprecated_selected_frame is not valid after
      a POP_FRAME.  The pc comparison makes this work even if the
      selected frame shares its fp with another frame.  */
 
-  while (selected_frame_addr != (frame = get_current_frame ())->frame
-        || selected_frame_pc != frame->pc)
+  while (selected_frame_addr != get_frame_base (frame = get_current_frame ())
+        || selected_frame_pc != get_frame_pc (frame))
     POP_FRAME;
 
   /* Then pop that frame.  */
@@ -1836,7 +1774,7 @@ return_command (char *retval_exp, int from_tty)
   /* If we are at the end of a call dummy now, pop the dummy frame too.  */
 
   if (CALL_DUMMY_HAS_COMPLETED (read_pc(), read_sp (),
-                               FRAME_FP (get_current_frame ())))
+                               get_frame_base (get_current_frame ())))
     POP_FRAME;
 
   /* If interactive, print the frame that is now current.  */
@@ -1889,8 +1827,8 @@ func_command (char *arg, int from_tty)
   do
     {
       for (i = 0; (i < sals.nelts && !found); i++)
-       found = (fp->pc >= func_bounds[i].low &&
-                fp->pc < func_bounds[i].high);
+       found = (get_frame_pc (fp) >= func_bounds[i].low &&
+                get_frame_pc (fp) < func_bounds[i].high);
       if (!found)
        {
          level = 1;
@@ -1904,7 +1842,7 @@ func_command (char *arg, int from_tty)
 
   if (!found)
     printf_filtered ("'%s' not within current stack frame.\n", arg);
-  else if (fp != selected_frame)
+  else if (fp != deprecated_selected_frame)
     select_and_print_frame (fp);
 }
 
@@ -1916,9 +1854,9 @@ get_frame_language (void)
   register struct symtab *s;
   enum language flang;         /* The language of the current frame */
 
-  if (selected_frame)
+  if (deprecated_selected_frame)
     {
-      s = find_pc_symtab (selected_frame->pc);
+      s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
       if (s)
        flang = s->language;
       else
index 8177fc281cb3e1d93083f6187845b028df66b6d8..6078d1ab2b879196c2f9c3eba139412fc3e16e1e 100644 (file)
@@ -64,7 +64,8 @@ value_of_builtin_frame_reg (struct frame_info *frame)
   memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0);
   /* frame.base.  */
   if (frame != NULL)
-    ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf, frame->frame);
+    ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf,
+                       get_frame_base (frame));
   buf += TYPE_LENGTH (builtin_type_void_data_ptr);
   /* frame.XXX.  */
   return val;
@@ -83,7 +84,8 @@ value_of_builtin_frame_fp_reg (struct frame_info *frame)
     if (frame == NULL)
       memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0);
     else
-      ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf, frame->frame);
+      ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf,
+                         get_frame_base (frame));
     return val;
   }
 }
@@ -101,7 +103,8 @@ value_of_builtin_frame_pc_reg (struct frame_info *frame)
     if (frame == NULL)
       memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0);
     else
-      ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf, frame->pc);
+      ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf,
+                         get_frame_pc (frame));
     return val;
   }
 }
index b3d3afa46df6d6ff3cab2c39faece83856a29d80..1ae7708e66475c046a7799fb552ff387fec7ca20 100644 (file)
@@ -43,6 +43,7 @@
 #include "gdb_obstack.h"
 #include "completer.h"
 #include "bcache.h"
+#include <readline/readline.h>
 
 #include <sys/types.h>
 #include <fcntl.h>
@@ -445,43 +446,13 @@ free_section_addr_info (struct section_addr_info *sap)
 }
 
 
-/* Parse the user's idea of an offset for dynamic linking, into our idea
-   of how to represent it for fast symbol reading.  This is the default 
-   version of the sym_fns.sym_offsets function for symbol readers that
-   don't need to do anything special.  It allocates a section_offsets table
-   for the objectfile OBJFILE and stuffs ADDR into all of the offsets.  */
-
-void
-default_symfile_offsets (struct objfile *objfile,
-                        struct section_addr_info *addrs)
+/* Initialize OBJFILE's sect_index_* members.  */
+static void
+init_objfile_sect_indices (struct objfile *objfile)
 {
+  asection *sect;
   int i;
-  asection *sect = NULL;
-
-  objfile->num_sections = SECT_OFF_MAX;
-  objfile->section_offsets = (struct section_offsets *)
-    obstack_alloc (&objfile->psymbol_obstack, SIZEOF_SECTION_OFFSETS);
-  memset (objfile->section_offsets, 0, SIZEOF_SECTION_OFFSETS);
-
-  /* Now calculate offsets for section that were specified by the
-     caller. */
-  for (i = 0; i < MAX_SECTIONS && addrs->other[i].name; i++)
-    {
-      struct other_sections *osp ;
-
-      osp = &addrs->other[i] ;
-      if (osp->addr == 0)
-       continue;
-
-      /* Record all sections in offsets */
-      /* The section_offsets in the objfile are here filled in using
-         the BFD index. */
-      (objfile->section_offsets)->offsets[osp->sectindex] = osp->addr;
-    }
-
-  /* Remember the bfd indexes for the .text, .data, .bss and
-     .rodata sections. */
-
+  
   sect = bfd_get_section_by_name (objfile->obfd, ".text");
   if (sect) 
     objfile->sect_index_text = sect->index;
@@ -528,6 +499,46 @@ default_symfile_offsets (struct objfile *objfile,
     }
 }
 
+
+/* Parse the user's idea of an offset for dynamic linking, into our idea
+   of how to represent it for fast symbol reading.  This is the default 
+   version of the sym_fns.sym_offsets function for symbol readers that
+   don't need to do anything special.  It allocates a section_offsets table
+   for the objectfile OBJFILE and stuffs ADDR into all of the offsets.  */
+
+void
+default_symfile_offsets (struct objfile *objfile,
+                        struct section_addr_info *addrs)
+{
+  int i;
+
+  objfile->num_sections = SECT_OFF_MAX;
+  objfile->section_offsets = (struct section_offsets *)
+    obstack_alloc (&objfile->psymbol_obstack, SIZEOF_SECTION_OFFSETS);
+  memset (objfile->section_offsets, 0, SIZEOF_SECTION_OFFSETS);
+
+  /* Now calculate offsets for section that were specified by the
+     caller. */
+  for (i = 0; i < MAX_SECTIONS && addrs->other[i].name; i++)
+    {
+      struct other_sections *osp ;
+
+      osp = &addrs->other[i] ;
+      if (osp->addr == 0)
+       continue;
+
+      /* Record all sections in offsets */
+      /* The section_offsets in the objfile are here filled in using
+         the BFD index. */
+      (objfile->section_offsets)->offsets[osp->sectindex] = osp->addr;
+    }
+
+  /* Remember the bfd indexes for the .text, .data, .bss and
+     .rodata sections. */
+  init_objfile_sect_indices (objfile);
+}
+
+
 /* Process a symbol file, as either the main file or as a dynamically
    loaded file.
 
@@ -624,25 +635,27 @@ syms_from_objfile (struct objfile *objfile, struct section_addr_info *addrs,
       else
        lower_offset = 0;
  
-       /* Calculate offsets for the loadable sections.
+      /* Calculate offsets for the loadable sections.
         FIXME! Sections must be in order of increasing loadable section
         so that contiguous sections can use the lower-offset!!!
  
-          Adjust offsets if the segments are not contiguous.
-          If the section is contiguous, its offset should be set to
+         Adjust offsets if the segments are not contiguous.
+         If the section is contiguous, its offset should be set to
         the offset of the highest loadable section lower than it
         (the loadable section directly below it in memory).
         this_offset = lower_offset = lower_addr - lower_orig_addr */
 
-       /* Calculate offsets for sections. */
+      /* Calculate offsets for sections. */
       for (i=0 ; i < MAX_SECTIONS && addrs->other[i].name; i++)
        {
          if (addrs->other[i].addr != 0)
            {
-             sect = bfd_get_section_by_name (objfile->obfd, addrs->other[i].name);
+             sect = bfd_get_section_by_name (objfile->obfd,
+                                              addrs->other[i].name);
              if (sect)
                {
-                 addrs->other[i].addr -= bfd_section_vma (objfile->obfd, sect);
+                 addrs->other[i].addr
+                    -= bfd_section_vma (objfile->obfd, sect);
                  lower_offset = addrs->other[i].addr;
                  /* This is the index used by BFD. */
                  addrs->other[i].sectindex = sect->index ;
@@ -879,10 +892,14 @@ symbol_file_add (char *name, int from_tty, struct section_addr_info *addrs,
       else
        {
          printf_filtered ("done.\n");
-         gdb_flush (gdb_stdout);
        }
     }
 
+  /* We print some messages regardless of whether 'from_tty ||
+     info_verbose' is true, so make sure they go out at the right
+     time.  */
+  gdb_flush (gdb_stdout);
+
   if (objfile->sf == NULL)
     return objfile;    /* No symbols. */
 
index 86ba9d9028a59f98856516f159636d925f58b084..835071ad0ea6d117c8fe5621b93c9e35db65074e 100644 (file)
@@ -36,6 +36,7 @@
 #include "dictionary.h"
 
 #include "gdb_string.h"
+#include <readline/readline.h>
 
 #ifndef DEV_TTY
 #define DEV_TTY "/dev/tty"
index b558e813279d88e2ef96eab2ad028619826d490c..99119ef2f3019b652dee2bfc6d1d6b26aeee8e43 100644 (file)
@@ -688,11 +688,13 @@ struct section_offsets
     ? (internal_error (__FILE__, __LINE__, "Section index is uninitialized"), -1) \
     : secoff->offsets[whichone])
 
-/* The maximum possible size of a section_offsets table.  */
-
-#define SIZEOF_SECTION_OFFSETS \
+/* The size of a section_offsets table for N sections.  */
+#define SIZEOF_N_SECTION_OFFSETS(n) \
   (sizeof (struct section_offsets) \
-   + sizeof (((struct section_offsets *) 0)->offsets) * (SECT_OFF_MAX-1))
+   + sizeof (((struct section_offsets *) 0)->offsets) * ((n)-1))
+
+/* The maximum possible size of a section_offsets table.  */
+#define SIZEOF_SECTION_OFFSETS (SIZEOF_N_SECTION_OFFSETS (SECT_OFF_MAX))
 
 /* Each source file or header is represented by a struct symtab. 
    These objects are chained through the `next' field.  */
index 51ace7413e61217fa0ebd73153a041452d4057c8..e19ad6dbbbfee68d30a11078f7dce50645e93be6 100644 (file)
@@ -44,8 +44,6 @@ static void cleanup_target (struct target_ops *);
 
 static void maybe_kill_then_create_inferior (char *, char *, char **);
 
-static void default_clone_and_follow_inferior (int, int *);
-
 static void maybe_kill_then_attach (char *, int);
 
 static void kill_or_be_killed (int);
@@ -348,12 +346,6 @@ maybe_kill_then_create_inferior (char *exec, char *args, char **env)
   target_create_inferior (exec, args, env);
 }
 
-static void
-default_clone_and_follow_inferior (int child_pid, int *followed_child)
-{
-  target_clone_and_follow_inferior (child_pid, followed_child);
-}
-
 /* Clean up a target struct so it no longer has any zero pointers in it.
    We default entries, at least to stubs that print error messages.  */
 
@@ -376,14 +368,9 @@ cleanup_target (struct target_ops *t)
   de_fault (to_post_attach, 
            (void (*) (int)) 
            target_ignore);
-  de_fault (to_require_attach, 
-           maybe_kill_then_attach);
   de_fault (to_detach, 
            (void (*) (char *, int)) 
            target_ignore);
-  de_fault (to_require_detach, 
-           (void (*) (int, char *, int)) 
-           target_ignore);
   de_fault (to_resume, 
            (void (*) (ptid_t, int, enum target_signal)) 
            noprocess);
@@ -469,11 +456,6 @@ cleanup_target (struct target_ops *t)
   de_fault (to_acknowledge_created_inferior, 
            (void (*) (int)) 
            target_ignore);
-  de_fault (to_clone_and_follow_inferior, 
-           default_clone_and_follow_inferior);
-  de_fault (to_post_follow_inferior_by_clone, 
-           (void (*) (void)) 
-           target_ignore);
   de_fault (to_insert_fork_catchpoint, 
            (int (*) (int)) 
            tcomplain);
@@ -486,17 +468,8 @@ cleanup_target (struct target_ops *t)
   de_fault (to_remove_vfork_catchpoint, 
            (int (*) (int)) 
            tcomplain);
-  de_fault (to_has_forked, 
-           (int (*) (int, int *)) 
-           return_zero);
-  de_fault (to_has_vforked, 
-           (int (*) (int, int *)) 
-           return_zero);
-  de_fault (to_can_follow_vfork_prior_to_exec, 
-           (int (*) (void)) 
-           return_zero);
-  de_fault (to_post_follow_vfork, 
-           (void (*) (int, int, int, int)) 
+  de_fault (to_follow_fork,
+           (int (*) (int)) 
            target_ignore);
   de_fault (to_insert_exec_catchpoint, 
            (int (*) (int)) 
@@ -504,15 +477,9 @@ cleanup_target (struct target_ops *t)
   de_fault (to_remove_exec_catchpoint, 
            (int (*) (int)) 
            tcomplain);
-  de_fault (to_has_execd, 
-           (int (*) (int, char **)) 
-           return_zero);
   de_fault (to_reported_exec_events_per_exec_call, 
            (int (*) (void)) 
            return_one);
-  de_fault (to_has_syscall_event, 
-           (int (*) (int, enum target_waitkind *, int *)) 
-           return_zero);
   de_fault (to_has_exited, 
            (int (*) (int, int, int *)) 
            return_zero);
@@ -588,9 +555,7 @@ update_current_target (void)
       INHERIT (to_close, t);
       INHERIT (to_attach, t);
       INHERIT (to_post_attach, t);
-      INHERIT (to_require_attach, t);
       INHERIT (to_detach, t);
-      INHERIT (to_require_detach, t);
       INHERIT (to_resume, t);
       INHERIT (to_wait, t);
       INHERIT (to_post_wait, t);
@@ -621,21 +586,14 @@ update_current_target (void)
       INHERIT (to_create_inferior, t);
       INHERIT (to_post_startup_inferior, t);
       INHERIT (to_acknowledge_created_inferior, t);
-      INHERIT (to_clone_and_follow_inferior, t);
-      INHERIT (to_post_follow_inferior_by_clone, t);
       INHERIT (to_insert_fork_catchpoint, t);
       INHERIT (to_remove_fork_catchpoint, t);
       INHERIT (to_insert_vfork_catchpoint, t);
       INHERIT (to_remove_vfork_catchpoint, t);
-      INHERIT (to_has_forked, t);
-      INHERIT (to_has_vforked, t);
-      INHERIT (to_can_follow_vfork_prior_to_exec, t);
-      INHERIT (to_post_follow_vfork, t);
+      INHERIT (to_follow_fork, t);
       INHERIT (to_insert_exec_catchpoint, t);
       INHERIT (to_remove_exec_catchpoint, t);
-      INHERIT (to_has_execd, t);
       INHERIT (to_reported_exec_events_per_exec_call, t);
-      INHERIT (to_has_syscall_event, t);
       INHERIT (to_has_exited, t);
       INHERIT (to_mourn_inferior, t);
       INHERIT (to_can_run, t);
@@ -651,7 +609,6 @@ update_current_target (void)
       INHERIT (to_get_current_exception_event, t);
       INHERIT (to_pid_to_exec_file, t);
       INHERIT (to_stratum, t);
-      INHERIT (DONT_USE, t);
       INHERIT (to_has_all_memory, t);
       INHERIT (to_has_memory, t);
       INHERIT (to_has_stack, t);
@@ -1244,26 +1201,6 @@ find_default_attach (char *args, int from_tty)
   return;
 }
 
-void
-find_default_require_attach (char *args, int from_tty)
-{
-  struct target_ops *t;
-
-  t = find_default_run_target ("require_attach");
-  (t->to_require_attach) (args, from_tty);
-  return;
-}
-
-void
-find_default_require_detach (int pid, char *args, int from_tty)
-{
-  struct target_ops *t;
-
-  t = find_default_run_target ("require_detach");
-  (t->to_require_detach) (pid, args, from_tty);
-  return;
-}
-
 void
 find_default_create_inferior (char *exec_file, char *allargs, char **env)
 {
@@ -1274,16 +1211,6 @@ find_default_create_inferior (char *exec_file, char *allargs, char **env)
   return;
 }
 
-void
-find_default_clone_and_follow_inferior (int child_pid, int *followed_child)
-{
-  struct target_ops *t;
-
-  t = find_default_run_target ("run");
-  (t->to_clone_and_follow_inferior) (child_pid, followed_child);
-  return;
-}
-
 static int
 default_region_size_ok_for_hw_watchpoint (int byte_count)
 {
@@ -1581,10 +1508,7 @@ init_dummy_target (void)
   dummy_target.to_longname = "None";
   dummy_target.to_doc = "";
   dummy_target.to_attach = find_default_attach;
-  dummy_target.to_require_attach = find_default_require_attach;
-  dummy_target.to_require_detach = find_default_require_detach;
   dummy_target.to_create_inferior = find_default_create_inferior;
-  dummy_target.to_clone_and_follow_inferior = find_default_clone_and_follow_inferior;
   dummy_target.to_pid_to_str = normal_pid_to_str;
   dummy_target.to_stratum = dummy_stratum;
   dummy_target.to_find_memory_regions = dummy_find_memory_regions;
@@ -1628,15 +1552,6 @@ debug_to_post_attach (int pid)
   fprintf_unfiltered (gdb_stdlog, "target_post_attach (%d)\n", pid);
 }
 
-static void
-debug_to_require_attach (char *args, int from_tty)
-{
-  debug_target.to_require_attach (args, from_tty);
-
-  fprintf_unfiltered (gdb_stdlog,
-                     "target_require_attach (%s, %d)\n", args, from_tty);
-}
-
 static void
 debug_to_detach (char *args, int from_tty)
 {
@@ -1645,15 +1560,6 @@ debug_to_detach (char *args, int from_tty)
   fprintf_unfiltered (gdb_stdlog, "target_detach (%s, %d)\n", args, from_tty);
 }
 
-static void
-debug_to_require_detach (int pid, char *args, int from_tty)
-{
-  debug_target.to_require_detach (pid, args, from_tty);
-
-  fprintf_unfiltered (gdb_stdlog,
-              "target_require_detach (%d, %s, %d)\n", pid, args, from_tty);
-}
-
 static void
 debug_to_resume (ptid_t ptid, int step, enum target_signal siggnal)
 {
@@ -2058,24 +1964,6 @@ debug_to_acknowledge_created_inferior (int pid)
                      pid);
 }
 
-static void
-debug_to_clone_and_follow_inferior (int child_pid, int *followed_child)
-{
-  debug_target.to_clone_and_follow_inferior (child_pid, followed_child);
-
-  fprintf_unfiltered (gdb_stdlog,
-                     "target_clone_and_follow_inferior (%d, %d)\n",
-                     child_pid, *followed_child);
-}
-
-static void
-debug_to_post_follow_inferior_by_clone (void)
-{
-  debug_target.to_post_follow_inferior_by_clone ();
-
-  fprintf_unfiltered (gdb_stdlog, "target_post_follow_inferior_by_clone ()\n");
-}
-
 static int
 debug_to_insert_fork_catchpoint (int pid)
 {
@@ -2129,53 +2017,14 @@ debug_to_remove_vfork_catchpoint (int pid)
 }
 
 static int
-debug_to_has_forked (int pid, int *child_pid)
-{
-  int has_forked;
-
-  has_forked = debug_target.to_has_forked (pid, child_pid);
-
-  fprintf_unfiltered (gdb_stdlog, "target_has_forked (%d, %d) = %d\n",
-                     pid, *child_pid, has_forked);
-
-  return has_forked;
-}
-
-static int
-debug_to_has_vforked (int pid, int *child_pid)
+debug_to_follow_fork (int follow_child)
 {
-  int has_vforked;
-
-  has_vforked = debug_target.to_has_vforked (pid, child_pid);
-
-  fprintf_unfiltered (gdb_stdlog, "target_has_vforked (%d, %d) = %d\n",
-                     pid, *child_pid, has_vforked);
-
-  return has_vforked;
-}
-
-static int
-debug_to_can_follow_vfork_prior_to_exec (void)
-{
-  int can_immediately_follow_vfork;
-
-  can_immediately_follow_vfork = debug_target.to_can_follow_vfork_prior_to_exec ();
-
-  fprintf_unfiltered (gdb_stdlog, "target_can_follow_vfork_prior_to_exec () = %d\n",
-                     can_immediately_follow_vfork);
-
-  return can_immediately_follow_vfork;
-}
+  int retval =  debug_target.to_follow_fork (follow_child);
 
-static void
-debug_to_post_follow_vfork (int parent_pid, int followed_parent, int child_pid,
-                           int followed_child)
-{
-  debug_target.to_post_follow_vfork (parent_pid, followed_parent, child_pid, followed_child);
+  fprintf_unfiltered (gdb_stdlog, "target_follow_fork (%d) = %d\n",
+                     follow_child, retval);
 
-  fprintf_unfiltered (gdb_stdlog,
-                     "target_post_follow_vfork (%d, %d, %d, %d)\n",
-                   parent_pid, followed_parent, child_pid, followed_child);
+  return retval;
 }
 
 static int
@@ -2204,20 +2053,6 @@ debug_to_remove_exec_catchpoint (int pid)
   return retval;
 }
 
-static int
-debug_to_has_execd (int pid, char **execd_pathname)
-{
-  int has_execd;
-
-  has_execd = debug_target.to_has_execd (pid, execd_pathname);
-
-  fprintf_unfiltered (gdb_stdlog, "target_has_execd (%d, %s) = %d\n",
-                     pid, (*execd_pathname ? *execd_pathname : "<NULL>"),
-                     has_execd);
-
-  return has_execd;
-}
-
 static int
 debug_to_reported_exec_events_per_exec_call (void)
 {
@@ -2232,36 +2067,6 @@ debug_to_reported_exec_events_per_exec_call (void)
   return reported_exec_events;
 }
 
-static int
-debug_to_has_syscall_event (int pid, enum target_waitkind *kind,
-                           int *syscall_id)
-{
-  int has_syscall_event;
-  char *kind_spelling = "??";
-
-  has_syscall_event = debug_target.to_has_syscall_event (pid, kind, syscall_id);
-  if (has_syscall_event)
-    {
-      switch (*kind)
-       {
-       case TARGET_WAITKIND_SYSCALL_ENTRY:
-         kind_spelling = "SYSCALL_ENTRY";
-         break;
-       case TARGET_WAITKIND_SYSCALL_RETURN:
-         kind_spelling = "SYSCALL_RETURN";
-         break;
-       default:
-         break;
-       }
-    }
-
-  fprintf_unfiltered (gdb_stdlog,
-                     "target_has_syscall_event (%d, %s, %d) = %d\n",
-                     pid, kind_spelling, *syscall_id, has_syscall_event);
-
-  return has_syscall_event;
-}
-
 static int
 debug_to_has_exited (int pid, int wait_status, int *exit_status)
 {
@@ -2395,9 +2200,7 @@ setup_target_debug (void)
   current_target.to_close = debug_to_close;
   current_target.to_attach = debug_to_attach;
   current_target.to_post_attach = debug_to_post_attach;
-  current_target.to_require_attach = debug_to_require_attach;
   current_target.to_detach = debug_to_detach;
-  current_target.to_require_detach = debug_to_require_detach;
   current_target.to_resume = debug_to_resume;
   current_target.to_wait = debug_to_wait;
   current_target.to_post_wait = debug_to_post_wait;
@@ -2428,21 +2231,14 @@ setup_target_debug (void)
   current_target.to_create_inferior = debug_to_create_inferior;
   current_target.to_post_startup_inferior = debug_to_post_startup_inferior;
   current_target.to_acknowledge_created_inferior = debug_to_acknowledge_created_inferior;
-  current_target.to_clone_and_follow_inferior = debug_to_clone_and_follow_inferior;
-  current_target.to_post_follow_inferior_by_clone = debug_to_post_follow_inferior_by_clone;
   current_target.to_insert_fork_catchpoint = debug_to_insert_fork_catchpoint;
   current_target.to_remove_fork_catchpoint = debug_to_remove_fork_catchpoint;
   current_target.to_insert_vfork_catchpoint = debug_to_insert_vfork_catchpoint;
   current_target.to_remove_vfork_catchpoint = debug_to_remove_vfork_catchpoint;
-  current_target.to_has_forked = debug_to_has_forked;
-  current_target.to_has_vforked = debug_to_has_vforked;
-  current_target.to_can_follow_vfork_prior_to_exec = debug_to_can_follow_vfork_prior_to_exec;
-  current_target.to_post_follow_vfork = debug_to_post_follow_vfork;
+  current_target.to_follow_fork = debug_to_follow_fork;
   current_target.to_insert_exec_catchpoint = debug_to_insert_exec_catchpoint;
   current_target.to_remove_exec_catchpoint = debug_to_remove_exec_catchpoint;
-  current_target.to_has_execd = debug_to_has_execd;
   current_target.to_reported_exec_events_per_exec_call = debug_to_reported_exec_events_per_exec_call;
-  current_target.to_has_syscall_event = debug_to_has_syscall_event;
   current_target.to_has_exited = debug_to_has_exited;
   current_target.to_mourn_inferior = debug_to_mourn_inferior;
   current_target.to_can_run = debug_to_can_run;
index 5cdb76f387d9ce03c0b9c097847a97bcb72397ae..8c6dce17c63663e760f00c93217e4ce07387bca4 100644 (file)
@@ -112,8 +112,8 @@ enum target_waitkind
        inferior.  */
     TARGET_WAITKIND_SPURIOUS,
 
-    /* This is used for target async and extended-async
-       only. Remote_async_wait() returns this when there is an event
+    /* An event has occured, but we should wait again.
+       Remote_async_wait() returns this when there is an event
        on the inferior, but the rest of the world is not interested in
        it. The inferior has not stopped, but has just sent some output
        to the console, for instance. In this case, we want to go back
@@ -193,9 +193,7 @@ struct target_ops
     void (*to_close) (int);
     void (*to_attach) (char *, int);
     void (*to_post_attach) (int);
-    void (*to_require_attach) (char *, int);
     void (*to_detach) (char *, int);
-    void (*to_require_detach) (int, char *, int);
     void (*to_resume) (ptid_t, int, enum target_signal);
     ptid_t (*to_wait) (ptid_t, struct target_waitstatus *);
     void (*to_post_wait) (ptid_t, int);
@@ -272,21 +270,14 @@ struct target_ops
     void (*to_create_inferior) (char *, char *, char **);
     void (*to_post_startup_inferior) (ptid_t);
     void (*to_acknowledge_created_inferior) (int);
-    void (*to_clone_and_follow_inferior) (int, int *);
-    void (*to_post_follow_inferior_by_clone) (void);
     int (*to_insert_fork_catchpoint) (int);
     int (*to_remove_fork_catchpoint) (int);
     int (*to_insert_vfork_catchpoint) (int);
     int (*to_remove_vfork_catchpoint) (int);
-    int (*to_has_forked) (int, int *);
-    int (*to_has_vforked) (int, int *);
-    int (*to_can_follow_vfork_prior_to_exec) (void);
-    void (*to_post_follow_vfork) (int, int, int, int);
+    int (*to_follow_fork) (int);
     int (*to_insert_exec_catchpoint) (int);
     int (*to_remove_exec_catchpoint) (int);
-    int (*to_has_execd) (int, char **);
     int (*to_reported_exec_events_per_exec_call) (void);
-    int (*to_has_syscall_event) (int, enum target_waitkind *, int *);
     int (*to_has_exited) (int, int, int *);
     void (*to_mourn_inferior) (void);
     int (*to_can_run) (void);
@@ -304,8 +295,6 @@ struct target_ops
     struct exception_event_record *(*to_get_current_exception_event) (void);
     char *(*to_pid_to_exec_file) (int pid);
     enum strata to_stratum;
-    struct target_ops
-     *DONT_USE;                        /* formerly to_next */
     int to_has_all_memory;
     int to_has_memory;
     int to_has_stack;
@@ -411,17 +400,6 @@ extern struct target_stack_item *target_stack;
 #define target_post_attach(pid) \
      (*current_target.to_post_attach) (pid)
 
-/* Attaches to a process on the target side, if not already attached.
-   (If already attached, takes no action.)
-
-   This operation can be used to follow the child process of a fork.
-   On some targets, such child processes of an original inferior process
-   are automatically under debugger control, and thus do not require an
-   actual attach operation.  */
-
-#define        target_require_attach(args, from_tty)   \
-     (*current_target.to_require_attach) (args, from_tty)
-
 /* Takes a program previously attached to and detaches it.
    The program may resume execution (some targets do, some don't) and will
    no longer stop on signals, etc.  We better not have left any breakpoints
@@ -431,21 +409,6 @@ extern struct target_stack_item *target_stack;
 
 extern void target_detach (char *, int);
 
-/* Detaches from a process on the target side, if not already dettached.
-   (If already detached, takes no action.)
-
-   This operation can be used to follow the parent process of a fork.
-   On some targets, such child processes of an original inferior process
-   are automatically under debugger control, and thus do require an actual
-   detach operation.
-
-   PID is the process id of the child to detach from.
-   ARGS is arguments typed by the user (e.g. a signal to send the process).
-   FROM_TTY says whether to be verbose or not.  */
-
-#define target_require_detach(pid, args, from_tty)     \
-     (*current_target.to_require_detach) (pid, args, from_tty)
-
 /* Resume execution of the target process PTID.  STEP says whether to
    single-step or to run free; SIGGNAL is the signal to be given to
    the target, or TARGET_SIGNAL_0 for no signal.  The caller may not
@@ -545,10 +508,6 @@ extern void child_post_startup_inferior (ptid_t);
 
 extern void child_acknowledge_created_inferior (int);
 
-extern void child_clone_and_follow_inferior (int, int *);
-
-extern void child_post_follow_inferior_by_clone (void);
-
 extern int child_insert_fork_catchpoint (int);
 
 extern int child_remove_fork_catchpoint (int);
@@ -557,30 +516,28 @@ extern int child_insert_vfork_catchpoint (int);
 
 extern int child_remove_vfork_catchpoint (int);
 
-extern int child_has_forked (int, int *);
-
-extern int child_has_vforked (int, int *);
-
 extern void child_acknowledge_created_inferior (int);
 
-extern int child_can_follow_vfork_prior_to_exec (void);
-
-extern void child_post_follow_vfork (int, int, int, int);
+extern int child_follow_fork (int);
 
 extern int child_insert_exec_catchpoint (int);
 
 extern int child_remove_exec_catchpoint (int);
 
-extern int child_has_execd (int, char **);
-
 extern int child_reported_exec_events_per_exec_call (void);
 
-extern int child_has_syscall_event (int, enum target_waitkind *, int *);
-
 extern int child_has_exited (int, int, int *);
 
 extern int child_thread_alive (ptid_t);
 
+/* From infrun.c.  */
+
+extern int inferior_has_forked (int pid, int *child_pid);
+
+extern int inferior_has_vforked (int pid, int *child_pid);
+
+extern int inferior_has_execd (int pid, char **execd_pathname);
+
 /* From exec.c */
 
 extern void print_section_info (struct target_ops *, bfd *);
@@ -702,33 +659,6 @@ extern void target_load (char *arg, int from_tty);
 #define target_acknowledge_created_inferior(pid) \
      (*current_target.to_acknowledge_created_inferior) (pid)
 
-/* An inferior process has been created via a fork() or similar
-   system call.  This function will clone the debugger, then ensure
-   that CHILD_PID is attached to by that debugger.
-
-   FOLLOWED_CHILD is set TRUE on return *for the clone debugger only*,
-   and FALSE otherwise.  (The original and clone debuggers can use this
-   to determine which they are, if need be.)
-
-   (This is not a terribly useful feature without a GUI to prevent
-   the two debuggers from competing for shell input.)  */
-
-#define target_clone_and_follow_inferior(child_pid,followed_child) \
-     (*current_target.to_clone_and_follow_inferior) (child_pid, followed_child)
-
-/* This operation is intended to be used as the last in a sequence of
-   steps taken when following both parent and child of a fork.  This
-   is used by a clone of the debugger, which will follow the child.
-
-   The original debugger has detached from this process, and the
-   clone has attached to it.
-
-   On some targets, this requires a bit of cleanup to make it work
-   correctly.  */
-
-#define target_post_follow_inferior_by_clone() \
-     (*current_target.to_post_follow_inferior_by_clone) ()
-
 /* On some targets, we can catch an inferior fork or vfork event when
    it occurs.  These functions insert/remove an already-created
    catchpoint for such events.  */
@@ -745,42 +675,16 @@ extern void target_load (char *arg, int from_tty);
 #define target_remove_vfork_catchpoint(pid) \
      (*current_target.to_remove_vfork_catchpoint) (pid)
 
-/* Returns TRUE if PID has invoked the fork() system call.  And,
-   also sets CHILD_PID to the process id of the other ("child")
-   inferior process that was created by that call.  */
-
-#define target_has_forked(pid,child_pid) \
-     (*current_target.to_has_forked) (pid,child_pid)
-
-/* Returns TRUE if PID has invoked the vfork() system call.  And, 
-   also sets CHILD_PID to the process id of the other ("child") 
-   inferior process that was created by that call.  */
-
-#define target_has_vforked(pid,child_pid) \
-     (*current_target.to_has_vforked) (pid,child_pid)
-
-/* Some platforms (such as pre-10.20 HP-UX) don't allow us to do
-   anything to a vforked child before it subsequently calls exec().
-   On such platforms, we say that the debugger cannot "follow" the
-   child until it has vforked.
-
-   This function should be defined to return 1 by those targets
-   which can allow the debugger to immediately follow a vforked
-   child, and 0 if they cannot.  */
-
-#define target_can_follow_vfork_prior_to_exec() \
-     (*current_target.to_can_follow_vfork_prior_to_exec) ()
+/* If the inferior forks or vforks, this function will be called at
+   the next resume in order to perform any bookkeeping and fiddling
+   necessary to continue debugging either the parent or child, as
+   requested, and releasing the other.  Information about the fork
+   or vfork event is available via get_last_target_status ().
+   This function returns 1 if the inferior should not be resumed
+   (i.e. there is another event pending).  */
 
-/* An inferior process has been created via a vfork() system call.
-   The debugger has followed the parent, the child, or both.  The
-   process of setting up for that follow may have required some
-   target-specific trickery to track the sequence of reported events.
-   If so, this function should be defined by those targets that
-   require the debugger to perform cleanup or initialization after
-   the vfork follow.  */
-
-#define target_post_follow_vfork(parent_pid,followed_parent,child_pid,followed_child) \
-     (*current_target.to_post_follow_vfork) (parent_pid,followed_parent,child_pid,followed_child)
+#define target_follow_fork(follow_child) \
+     (*current_target.to_follow_fork) (follow_child)
 
 /* On some targets, we can catch an inferior exec event when it
    occurs.  These functions insert/remove an already-created
@@ -792,13 +696,6 @@ extern void target_load (char *arg, int from_tty);
 #define target_remove_exec_catchpoint(pid) \
      (*current_target.to_remove_exec_catchpoint) (pid)
 
-/* Returns TRUE if PID has invoked a flavor of the exec() system call.
-   And, also sets EXECD_PATHNAME to the pathname of the executable
-   file that was passed to exec(), and is now being executed.  */
-
-#define target_has_execd(pid,execd_pathname) \
-     (*current_target.to_has_execd) (pid,execd_pathname)
-
 /* Returns the number of exec events that are reported when a process
    invokes a flavor of the exec() system call on this target, if exec
    events are being reported.  */
@@ -806,13 +703,6 @@ extern void target_load (char *arg, int from_tty);
 #define target_reported_exec_events_per_exec_call() \
      (*current_target.to_reported_exec_events_per_exec_call) ()
 
-/* Returns TRUE if PID has reported a syscall event.  And, also sets
-   KIND to the appropriate TARGET_WAITKIND_, and sets SYSCALL_ID to
-   the unique integer ID of the syscall.  */
-
-#define target_has_syscall_event(pid,kind,syscall_id) \
-     (*current_target.to_has_syscall_event) (pid,kind,syscall_id)
-
 /* Returns TRUE if PID has exited.  And, also sets EXIT_STATUS to the
    exit code of PID, if any.  */
 
@@ -888,11 +778,6 @@ extern void target_load (char *arg, int from_tty);
 #define target_get_current_exception_event() \
      (*current_target.to_get_current_exception_event) ()
 
-/* Pointer to next target in the chain, e.g. a core file and an exec file.  */
-
-#define        target_next \
-     (current_target.to_next)
-
 /* Does the target include all of memory, or only part of it?  This
    determines whether we look up the target chain for other parts of
    memory if this target can't satisfy a request.  */
@@ -1241,14 +1126,8 @@ extern void noprocess (void);
 
 extern void find_default_attach (char *, int);
 
-extern void find_default_require_attach (char *, int);
-
-extern void find_default_require_detach (int, char *, int);
-
 extern void find_default_create_inferior (char *, char *, char **);
 
-extern void find_default_clone_and_follow_inferior (int, int *);
-
 extern struct target_ops *find_run_target (void);
 
 extern struct target_ops *find_core_target (void);
index 1f699e460d0acb0b84192407f05d495afa82b61a..c3372c7ebebae66f9220d42c8bd57660eb15ae15 100644 (file)
@@ -1,3 +1,132 @@
+2002-12-23  David Carlton  <carlton@math.stanford.edu>
+
+       * gdb.base/selftest.exp (do_steps_and_nexts): Allow initial brace
+       and current_directory initialization.
+
+2002-12-22  Jim Blandy  <jimb@redhat.com>
+
+       * gdb.trace/tfind.exp: Pass '-O1' flag via the 'optimize' option,
+       rather than as part of the output file name.
+
+       * gdb.base/attach.exp: There's no need to copy the test program to
+       /tmp; that was only ever necessary on HP/UX, and this test is
+       entirely disabled there anyway.
+
+2002-12-21  Jim Blandy  <jimb@redhat.com>
+
+       * gdb.c++/psmang.exp: Doc fix.
+
+       * gdb.c++/psmang.exp, gdb.c++/psmang1.cc, gdb.c++/psmang2.cc: New
+       test.
+
+2002-12-20  David Carlton  <carlton@math.stanford.edu>
+
+       * gdb.c++/annota2.exp: KFAIL annotate-quit.
+
+2002-12-18  Michael Chastain  <mec@shout.net>
+
+       * gdb.c++/annota2.exp: Add copyright year 2002.
+
+2002-12-17  David Carlton  <carlton@math.stanford.edu>
+
+       * gdb.c++/try_catch.cc: Add marker comments.
+       * gdb.c++/try_catch.exp: Get line numbers from marker comments.
+       * gdb.c++/m-data.cc: Delete namespace __gnu_test.
+       * gdb.c++/m-static.cc: Ditto.
+       * gdb.c++/m-static1.cc: Ditto.
+       * gdb.c++/try_catch.cc: Ditto.
+
+2002-12-16  Jeff Johnston  <jjohnstn@redhat.com>
+
+       * lib/mi-support.exp (mi_reinitialize_dir): Check mi level
+       to see whether we are using the new -environment-directory
+       command which resets via -r or the old version of the command
+       which may prompt the user.  Part of fix for gdb/741.
+
+2002-12-13  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdb.fortran/types.exp: Update obsolete comment.
+       * gdb.fortran/exprs.exp: Ditto.
+       * lib/gdb.exp: Delete obsolete code.
+       * gdb.chill/ChangeLog, gdb.chill/Makefile.in: Delete.
+       * gdb.chill/builtins.ch, gdb.chill/builtins.exp: Delete.
+       * gdb.chill/callch.ch, gdb.chill/callch.exp: Delete.
+       * gdb.chill/chexp.exp, gdb.chill/chillvars.ch: Delete.
+       * gdb.chill/chillvars.exp, gdb.chill/configure: Delete.
+       * gdb.chill/configure.in, gdb.chill/enum.ch: Delete.
+       * gdb.chill/enum.exp, gdb.chill/func1.ch: Delete.
+       * gdb.chill/gch1041.ch, gdb.chill/gch1041.exp: Delete.
+       * gdb.chill/gch1272.ch, gdb.chill/gch1272.exp: Delete.
+       * gdb.chill/gch1280.ch, gdb.chill/gch1280.exp: Delete.
+       * gdb.chill/gch922.ch, gdb.chill/gch922.exp: Delete.
+       * gdb.chill/gch981.ch, gdb.chill/gch981.exp: Delete.
+       * gdb.chill/misc.ch, gdb.chill/misc.exp: Delete.
+       * gdb.chill/powerset.ch, gdb.chill/powerset.exp: Delete.
+       * gdb.chill/pr-4975-grt.ch, gdb.chill/pr-4975.ch: Delete.
+       * gdb.chill/pr-4975.exp, gdb.chill/pr-5016.ch: Delete.
+       * gdb.chill/pr-5016.exp, gdb.chill/pr-5020.ch: Delete.
+       * gdb.chill/pr-5020.exp, gdb.chill/pr-5022.ch: Delete.
+       * gdb.chill/pr-5022.exp, gdb.chill/pr-5646-grt.ch: Delete.
+       * gdb.chill/pr-5646.ch, gdb.chill/pr-5646.exp: Delete.
+       * gdb.chill/pr-5984.ch, gdb.chill/pr-5984.exp: Delete.
+       * gdb.chill/pr-6292.ch, gdb.chill/pr-6292.exp: Delete.
+       * gdb.chill/pr-6632-grt.ch, gdb.chill/pr-6632.ch: Delete.
+       * gdb.chill/pr-6632.exp, gdb.chill/pr-8134.exp: Delete.
+       * gdb.chill/pr-8136.ch, gdb.chill/pr-8136.exp: Delete.
+       * gdb.chill/pr-8405.ch, gdb.chill/pr-8405.exp: Delete.
+       * gdb.chill/pr-8742.ch, gdb.chill/pr-8742.exp: Delete.
+       * gdb.chill/pr-8894-grt.ch, gdb.chill/pr-8894.ch: Delete.
+       * gdb.chill/pr-8894.exp, gdb.chill/pr-9095.ch: Delete.
+       * gdb.chill/pr-9095.exp, gdb.chill/pr-9946.ch: Delete.
+       * gdb.chill/pr-9946.exp, gdb.chill/result.ch: Delete.
+       * gdb.chill/result.exp, gdb.chill/string.ch: Delete.
+       * gdb.chill/string.exp, gdb.chill/tests1.ch: Delete.
+       * gdb.chill/tests1.exp, gdb.chill/tests2.ch: Delete.
+       * gdb.chill/tests2.exp, gdb.chill/tuples.ch: Delete.
+       * gdb.chill/tuples.exp, gdb.chill/xstruct-grt.ch: Delete.
+       * gdb.chill/xstruct.ch, gdb.chill/xstruct.exp: Delete.
+
+2002-12-11  David Carlton  <carlton@math.stanford.edu>
+
+       * gdb.c++/m-data.exp: Add test for members that shadow global
+       variables: see PR gdb/804.
+       * gdb.c++/m-data.cc: Ditto.
+
+2002-12-10  Daniel Jacobowitz  <drow@mvista.com>
+
+       * gdb.base/foll-vfork.exp: Re-enable test on HP/UX.
+
+2002-12-06  David Carlton  <carlton@math.stanford.edu>
+
+       * gdb.base/store.c: Don't declare functions static.
+
+2002-12-04  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdb.base/store.exp, gdb.base/store.c: New files.
+
+2002-12-03  Daniel Jacobowitz  <drow@mvista.com>
+
+       * gdb.base/selftest.exp: Update for current gdb.
+
+2002-12-03  Daniel Jacobowitz  <drow@mvista.com>
+
+       * gdb.base/maint.exp: Only dump symbols from one source file
+       or objfile.
+
+2002-12-03  Daniel Jacobowitz  <drow@mvista.com>
+
+       * gdb.base/step-test.exp: Allow MIPS to return to the line of a
+       function call.
+
+2002-11-25  Jim Blandy  <jimb@redhat.com>
+
+       * lib/mi-support.exp (mi_delete_breakpoints): Change name of
+       function appearing in error message.
+
+2002-11-21  Daniel Jacobowitz  <drow@mvista.com>
+
+       * gdb.base/maint.exp (help maint dump-me): Update with typo fix.
+
 2002-12-20  David Carlton  <carlton@math.stanford.edu>
 
        * gdb.c++/namespace.exp: Delete tests that try to apply using
index 9c6bb971431e444801ddd1ed8b90b212d860f85e..4019feab43e313f0bfb1606b0f88cfb5887fd3df 100644 (file)
@@ -63,31 +63,12 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
 }
 
-# Because we can't attach over nfs, copy binfile to /tmp/${binfile}.${pid}
-# and replace binfile with a symbolic link
-
-  set pid [pid]
-  exec /bin/cp -f ${binfile} /tmp/attach1.${pid}
-  exec rm -f ${binfile}
-  set binfile /tmp/attach1.${pid}
-#  exec ln -s /tmp/attach1.${pid} ${binfile}
-
 # Build the in-system-call test
 
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" executable {debug}] != "" } {
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
 }
 
-# Because we can't attach over nfs, copy binfile2 to /tmp/${binfile2}.${pid}
-# and replace binfile2 with a symbolic link
-
-  set pid [pid]
-  exec cp -f ${binfile2} /tmp/attach2.${pid} 
-  exec rm -f ${binfile2}
-  set binfile2 /tmp/attach2.${pid}
-#  exec ln -s /tmp/attach2.${pid} ${binfile2}
-
-
 if [get_compiler_info ${binfile}] {
     return -1
 }
@@ -428,19 +409,7 @@ do_attach_tests
 gdb_exit
 gdb_start
 
-# this seems not necessary. - guo
-#
-# # Since we have moved the executable to /tmp, it will be hard for gdb
-# # to find the object file/executable to read the symbols.  This is
-# # a known limitation.  We try and get the name of the executable the
-# # process is running from a variety of methods, but none is foolproof.
-# # Using "dir" will get us the symbols.
-# 
-# gdb_test "dir ./gdb.base" ".*" "set up directory before attach"
 gdb_reinitialize_dir $srcdir/$subdir
 do_call_attach_tests
 
-# Cleanup the files placed in /tmp and the symlinks
-  remote_exec build "rm -f ${binfile} ${binfile2} /tmp/attach1.${pid} /tmp/attach2.${pid}"
-
 return 0
index 1fed06bb96681c41196f4dba221dc061d2d4952f..86a1ce9fcfa50c4258433ca90e53fbf9eed2291b 100644 (file)
@@ -28,10 +28,13 @@ if { ![isnative] } then {
 set prms_id 0
 set bug_id 0
 
-if [istarget "hppa2.0w-hp-hpux*"] {
-  warning "Don't run gdb.base/foll-vfork.exp until JAGaa43495 kernel problem is fixed."
-  return 0
-}
+# NOTE drow/2002-12-06: I don't know what the referenced kernel problem
+# is, but it appears to be fixed in recent HP/UX versions.
+
+##if [istarget "hppa2.0w-hp-hpux*"] {
+##  warning "Don't run gdb.base/foll-vfork.exp until JAGaa43495 kernel problem is fixed."
+##  return 0
+##}
 
 set testfile "foll-vfork"
 set testfile2 "vforked-prog"
index 51f4c9db208855646617482f1e99a2ae816f1c75..9dbc509182a5c213f5129caba3379ff7523e0f1d 100644 (file)
@@ -230,9 +230,9 @@ gdb_expect  {
         timeout         { fail "(timeout) maint print psymbols w/o args" }
         }
 
-send_gdb "maint print psymbols psymbols_output\n"
+send_gdb "maint print psymbols psymbols_output ${srcdir}/${subdir}/${srcfile}\n"
 gdb_expect  {
-        -re "^maint print psymbols psymbols_output\r\n$gdb_prompt $"\
+        -re "^maint print psymbols psymbols_output \[^\n\]*\r\n$gdb_prompt $"\
          {
           send_gdb "shell ls psymbols_output\n"
           gdb_expect {
@@ -272,9 +272,9 @@ gdb_expect  {
         timeout         { fail "(timeout) maint print msymbols w/o args" }
         }
 
-send_gdb "maint print msymbols msymbols_output\n"
+send_gdb "maint print msymbols msymbols_output ${binfile}\n"
 gdb_expect  {
-        -re "^maint print msymbols msymbols_output\r\n$gdb_prompt $"\
+        -re "^maint print msymbols msymbols_output \[^\n\]*\r\n$gdb_prompt $"\
          {
           send_gdb "shell ls msymbols_output\n"
           gdb_expect {
@@ -307,16 +307,13 @@ gdb_expect  {
         timeout         { fail "(timeout) maint print symbols w/o args" }
         }
 
-# This command can legitimately take many minutes to execute.  If the
-# executable is dynamically linked, then you get all the debugging
-# info for the entire library --- 89Mb on my system.  -jimb
+# Request symbols for one particular source file so that we don't try to
+# dump the symbol information for the entire C library - over 500MB nowadays
+# for GNU libc.
 
-set old_timeout $timeout
-set timeout 600
-
-send_gdb "maint print symbols symbols_output\n"
+send_gdb "maint print symbols symbols_output ${srcdir}/${subdir}/${srcfile}\n"
 gdb_expect  {
-        -re "^maint print symbols symbols_output\r\n$gdb_prompt $"\
+        -re "^maint print symbols symbols_output \[^\n\]*\r\n$gdb_prompt $"\
          {
           send_gdb "shell ls symbols_output\n"
           gdb_expect {
@@ -341,8 +338,6 @@ gdb_expect  {
         timeout         { fail "(timeout) maint print symbols" }
         }
 
-set timeout $old_timeout
-
 send_gdb "maint print type argc\n"
 gdb_expect  {
         -re "type node $hex\r\nname .int. \\($hex\\)\r\ntagname .<NULL>. \\($hex\\)\r\ncode $hex \\(TYPE_CODE_INT\\)\r\nlength \[24\]\r\nupper_bound_type $hex \\(BOUND_SIMPLE\\)\r\nlower_bound_type $hex \\(BOUND_SIMPLE\\)\r\nobjfile $hex\r\ntarget_type $hex\r\npointer_type $hex\r\nreference_type $hex\r\ntype_chain $hex\r\ninstance_flags $hex\r\nflags $hex\r\nnfields 0 $hex\r\nvptr_basetype $hex\r\nvptr_fieldno -1\r\ntype_specific $hex\r\n$gdb_prompt $"\
@@ -499,7 +494,7 @@ if [ishost *cygwin*] {
 }
 send_gdb "help maint dump-me\n"
 gdb_expect  {
-        -re "Get fatal error; make debugger dump its core\\.\r\nGDB sets it's handling of SIGQUIT back to SIG_DFL and then sends\r\nitself a SIGQUIT signal\\..*$gdb_prompt $"\
+        -re "Get fatal error; make debugger dump its core\\.\r\nGDB sets its handling of SIGQUIT back to SIG_DFL and then sends\r\nitself a SIGQUIT signal\\..*$gdb_prompt $"\
                         { pass "help maint dump-me" }
         -re ".*$gdb_prompt $"       { fail "help maint dump-me" }
         timeout         { fail "(timeout) help maint dump-me" }
index 85e9fa79af6c19272ce18a340626ec3d6965ceed..bf71c49cbae0b1af0357baf29aba7d9891c3e502 100644 (file)
@@ -1,4 +1,4 @@
-#   Copyright 1988, 1990, 1991, 1992, 1994, 1997, 1999, 2000
+#   Copyright 1988, 1990, 1991, 1992, 1994, 1997, 1999, 2000, 2002
 #   Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -54,6 +54,10 @@ proc do_steps_and_nexts {} {
 
     for {set count 0} {$count < 26} {incr count} {
        send_gdb "list\n"
+       # NOTE: carlton/2002-12-11: The "initial brace" and
+       # "current_directory initialization" possibilities happen to
+       # me with GCC 3.1 on i686-pc-linux-gnu when I compile with
+       # optimization.
        gdb_expect {
            -re ".*context = data.*$gdb_prompt $" {
                set description "step over context initialization"
@@ -158,6 +162,14 @@ proc do_steps_and_nexts {} {
                set description "next over textdomain PACKAGE"
                set command "next"
            }
+           -re "\[0-9\]*\t\{\r\n$gdb_prompt $" {
+               set description "step over initial brace"
+               set command "step"
+           }
+           -re ".*current_directory = gdb_dirbuf.*$gdb_prompt $" {
+               set description "step over current_directory initialization"
+               set command "step"
+           }
            -re "\[ \t\]+\{\r\n$gdb_prompt $" {
                setup_xfail "mips-*-irix5*"
                fail "$description ended up at odd location"
@@ -392,7 +404,7 @@ GDB.*Copyright \[0-9\]+ Free Software Foundation, Inc..*$gdb_prompt $"\
     set description "backtrace through signal handler"
     send_gdb "backtrace\n"
     gdb_expect {
-       -re "#0.*read.*in main \\(.*\\) at .*main\\.c.*$gdb_prompt $" {
+       -re "#0.*(read|poll).*in main \\(.*\\) at .*gdb\\.c.*$gdb_prompt $" {
            pass "$description"
        }
        -re ".*$gdb_prompt $" {
index 9a21136996c9be81caae0518e727eb9436cc1890..32af949cf288e242eadbfdc967491fa33402f3de 100644 (file)
@@ -78,7 +78,8 @@ gdb_test "step" ".*${decimal}.*myglob.*"   "step into"
 # On PA64, we end up at a different instruction than PA32.
 # On IA-64, we also end up on callee instead of on the next line due
 # to the restoration of the global pointer (which is a caller-save).
-if { [istarget "hppa2.0w-hp-hpux*"] || [istarget "ia64-*-*"]} {
+# Similarly on MIPS PIC targets.
+if { [istarget "hppa2.0w-hp-hpux*"] || [istarget "ia64-*-*"] || [istarget "mips*-*-*"]} {
     send_gdb "finish\n"
     gdb_expect {
         -re ".*${decimal}.*a.*5.*= a.*3.*$gdb_prompt $" { pass "step out 1" }
@@ -176,8 +177,11 @@ gdb_expect {
     # On PA64, we end up at a different instruction than PA32.
     # On IA-64, we end up on callee instead of on the following line due
     # to the restoration of the global pointer.
-    if { [istarget "hppa2.0w-hp-hpux*"] || [istarget "ia64-*-*"] } {
+    # Similarly on MIPS PIC targets.
+    if { [istarget "hppa2.0w-hp-hpux*"] || [istarget "ia64-*-*"] || [istarget "mips*-*-*"] } {
         pass "stepi: finish call 2"
+       test_i "stepi: past call" "stepi" \
+         ".*${decimal}.*callee.*STEPI"  ".*${decimal}.*callee.*NEXTI"
     } else {
        fail "stepi: finish call 2"
         return
index 51c11168c711a7ef7951d9f88f5959f260273df8..0e585ececc6264d2f5e508009ed66292ba9efd6c 100644 (file)
@@ -1,4 +1,4 @@
-#   Copyright 1999, 2000, 2001
+#   Copyright 1999, 2000, 2001, 2002
 #   Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -214,6 +214,7 @@ send_gdb "\003"
 gdb_expect {
     -re "\r\n\032\032error-begin\r\nQuit\r\n\r\n\032\032quit\r\n$gdb_prompt$" \
            { pass "annotate-quit" }
+    -re "$gdb_prompt$" { kfail "gdb/544" "annotate-quit" }
     -re ".*$gdb_prompt$" { fail "annotate-quit" }
     timeout { fail "annotate-quit (timeout)" }
 }
index 2066546d1348cbe99b032696af3c03cd841b7642..c97e7195f7758068cc99fc5a800302e197bd5710 100644 (file)
@@ -40,11 +40,25 @@ public:
   gnu_obj_3(antiquities b): data(etruscan) { }
 }; 
 
+int shadow = 0;
+
+class C
+{
+public:
+  C (int x) : shadow (x) {}
+  void marker () {}
+private:
+  int shadow;
+};
+
 int main()
 {
   gnu_obj_1            test1(egyptian, 4589);
   gnu_obj_2<long>      test2(roman);
   gnu_obj_3<long>      test3(greek);
 
-  return 0;                            // breakpoint: constructs-done
+  C theC (1);                          // breakpoint: first-constructs-done
+  theC.marker ();
+  
+  return 0;
 }
index daee13805d4a2ca040c440fcc0f15ef310629140..85adb5e52005861593e71e0dce979f45ed92fb00 100644 (file)
@@ -54,10 +54,10 @@ if ![runto_main] then {
     continue
 }
 
-# First, run to after we've constructed all the objects:
+# First, run to after we've constructed all the gnu_obj_N's:
 
-gdb_breakpoint [gdb_get_line_number "constructs-done"]
-gdb_continue_to_breakpoint "end of constructors"
+gdb_breakpoint [gdb_get_line_number "first-constructs-done"]
+gdb_continue_to_breakpoint "end of first constructors"
 
 # One.
 
@@ -107,5 +107,13 @@ gdb_test "print test3.data.value" "\\$\[0-9\]* = oriental" "template object, bas
 # template object, derived template data member's enum
 gdb_test "print test3.data.value_derived" "\\$\[0-9]\* = etruscan" "template object, derived enum"
 
+# Now some tests for shadowing (see PR gdb/804):
+
+gdb_breakpoint "C::marker"
+gdb_continue_to_breakpoint "continue to shadow breakpoint"
+
+gdb_test "print shadow" "\\$\[0-9]\* = 1" "shadowing member"
+gdb_test "print ::shadow" "\\$\[0-9]\* = 0" "shadowed global variable"
+
 gdb_exit
 return 0
index 9a9c737b55ddd246915ab846f17de9bf254f5151..e13dd641b499f7411d2efa9463a689cdd948b0c8 100644 (file)
@@ -4,50 +4,45 @@
 #include <stdexcept>
 #include <string>
 
-namespace __gnu_test
-{
-  enum         region { oriental, egyptian, greek, etruscan, roman };
+enum region { oriental, egyptian, greek, etruscan, roman };
 
-  // Test one.
-  class gnu_obj_1
-  {
-  public:
-    typedef region antiquities;
-    const bool                 test;
-    const int          key1;
-    long                       key2;
+// Test one.
+class gnu_obj_1
+{
+public:
+  typedef region antiquities;
+  const bool           test;
+  const int            key1;
+  long                 key2;
 
-    antiquities        value;
+  antiquities  value;
 
-    gnu_obj_1(antiquities a, long l): test(true), key1(5), key2(l), value(a) {}
-  };
+  gnu_obj_1(antiquities a, long l): test(true), key1(5), key2(l), value(a) {}
+};
 
-  // Test two.
-  template<typename T>
-    class gnu_obj_2: public virtual gnu_obj_1
-    {
-    public:
-      antiquities      value_derived;
-      
-      gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7), value_derived(b) { }
-    }; 
+// Test two.
+template<typename T>
+class gnu_obj_2: public virtual gnu_obj_1
+{
+public:
+  antiquities  value_derived;
+  
+  gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7), value_derived(b) { }
+}; 
 
-  // Test three.
-  template<typename T>
-    class gnu_obj_3
-    {
-    public:
-      typedef region antiquities;
-      gnu_obj_2<int>           data;
+// Test three.
+template<typename T>
+class gnu_obj_3
+{
+public:
+  typedef region antiquities;
+  gnu_obj_2<int>       data;
       
-      gnu_obj_3(antiquities b): data(etruscan) { }
-    }; 
-} 
+  gnu_obj_3(antiquities b): data(etruscan) { }
+}; 
 
 int main()
 {
-  using namespace __gnu_test;
-
   bool test = true;
   const int i = 5;
   int j = i;
@@ -58,12 +53,12 @@ int main()
   try
     {
       ++j;
-      throw gnu_obj_1(egyptian, 4589);      
+      throw gnu_obj_1(egyptian, 4589); // marker 1-throw
     }
   catch (gnu_obj_1& obj)
     {
       ++j;
-      if (obj.value != egyptian)
+      if (obj.value != egyptian)       // marker 1-catch
        test &= false;
       if (obj.key2 != 4589)
        test &= false;     
@@ -77,19 +72,19 @@ int main()
   // 2
   try
     {
-      ++j;
+      ++j;                             // marker 2-start
       try
        {
-         ++j;
+         ++j;                          // marker 2-next
          try
            {
              ++j;
-             throw gnu_obj_1(egyptian, 4589); 
+             throw gnu_obj_1(egyptian, 4589); // marker 2-throw
            }
          catch (gnu_obj_1& obj)
            {
              ++j;
-             if (obj.value != egyptian)
+             if (obj.value != egyptian) // marker 2-catch
                test &= false;
              if (obj.key2 != 4589)
                test &= false;     
@@ -115,11 +110,11 @@ int main()
   try
     {
       if (j < 100)
-       throw invalid_argument("gdb.1");
+       throw invalid_argument("gdb.1"); // marker 3-throw
     }
   catch (exception& obj)
     {
-      if (obj.what() != "gdb.1")
+      if (obj.what() != "gdb.1")       // marker 3-catch
        test &= false;
     }
   return 0;
index e024132b99ebfb73b4e6094a1eb2d975b534693c..1473e20c5f132dbe074f3ebcb1d5b68980a53059 100644 (file)
@@ -54,31 +54,29 @@ if ![runto_main] then {
     continue
 }
 
-# One.
+gdb_breakpoint [gdb_get_line_number "marker 1-throw"]
+gdb_continue_to_breakpoint "marker 1-throw"
 
-gdb_test "break 61" "Breakpoint \[0-9\]*.*line 61\\."
-gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:61\r\n.*" "continue to 61"
+gdb_breakpoint [gdb_get_line_number "marker 1-catch"]
+gdb_continue_to_breakpoint "marker 1-catch"
 
-gdb_test "break 66" "Breakpoint \[0-9\]*.*line 66\\."
-gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:66\r\n.*" "continue to 66"
+gdb_breakpoint [gdb_get_line_number "marker 2-start"]
+gdb_continue_to_breakpoint "marker 2-start"
 
-gdb_test "break 80" "Breakpoint \[0-9\]*.*line 80\\."
-gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:80\r\n.*" "continue to 80"
+gdb_breakpoint [gdb_get_line_number "marker 2-next"]
+gdb_continue_to_breakpoint "marker 2-next"
 
-gdb_test "break 83" "Breakpoint \[0-9\]*.*line 83\\."
-gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:83\r\n.*" "continue to 83"
+gdb_breakpoint [gdb_get_line_number "marker 2-throw"]
+gdb_continue_to_breakpoint "marker 2-throw"
 
-gdb_test "break 87" "Breakpoint \[0-9\]*.*line 87\\."
-gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:87\r\n.*" "continue to 87"
+gdb_breakpoint [gdb_get_line_number "marker 2-catch"]
+gdb_continue_to_breakpoint "marker 2-catch"
 
-gdb_test "break 92" "Breakpoint \[0-9\]*.*line 92\\."
-gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:92\r\n.*" "continue to 92"
+gdb_breakpoint [gdb_get_line_number "marker 3-throw"]
+gdb_continue_to_breakpoint "marker 3-throw"
 
-gdb_test "break 118" "Breakpoint \[0-9\]*.*line 118\\."
-gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:118\r\n.*" "continue to 118"
-
-gdb_test "break 122" "Breakpoint \[0-9\]*.*line 122\\."
-gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*try_catch\\.cc:122\r\n.*" "continue to 122"
+gdb_breakpoint [gdb_get_line_number "marker 3-catch"]
+gdb_continue_to_breakpoint "marker 3-catch"
 
 gdb_exit
 return 0
diff --git a/gdb/testsuite/gdb.chill/ChangeLog b/gdb/testsuite/gdb.chill/ChangeLog
deleted file mode 100644 (file)
index ea0068f..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-2002-11-09  Klee Dienes   <kdienes@apple.com>
-
-       * chexp.exp: Mark as obsolete.
-       * pr-5016.exp: Remove stray trailing newline.
-       
-2002-08-01  Andrew Cagney  <cagney@redhat.com>
-
-       * builtins.exp, callch.exp, chillvars.exp: Make files obsolete.
-       * enum.exp, gch1041.exp, gch1272.exp: Make files obsolete.
-       * gch1280.exp, gch922.exp, gch981.exp: Make files obsolete.
-       * misc.exp, powerset.exp, pr-4975.exp: Make files obsolete.
-       * pr-5016.exp, pr-5020.exp, pr-5022.exp: Make files obsolete.
-       * pr-5646.exp, pr-5984.exp, pr-6292.exp: Make files obsolete.
-       * pr-6632.exp, pr-8134.exp, pr-8136.exp: Make files obsolete.
-       * pr-8405.exp, pr-8742.exp, pr-8894.exp: Make files obsolete.
-       * pr-9095.exp, pr-9946.exp, result.exp: Make files obsolete.
-       * string.exp, tests1.exp, tests2.exp: Make files obsolete.
-       * tuples.exp, xstruct.exp: Make files obsolete.
-       
-2001-03-06  Kevin Buettner  <kevinb@redhat.com>
-
-       * builtins.exp, callch.exp, chexp.exp, chillvars.exp,
-       enum.exp, gch1041.exp, gch1272.exp, gch1280.exp, gch922.exp,
-       gch981.exp, misc.exp, powerset.exp, pr-4975.exp, pr-5016.exp,
-       pr-5020.exp, pr-5022.exp, pr-5646.exp, pr-5984.exp,
-       pr-6292.exp, pr-6632.exp, pr-8134.exp, pr-8136.exp,
-       pr-8405.exp, pr-8742.exp, pr-8894.exp, pr-9095.exp,
-       pr-9946.exp, result.exp, string.exp, tests1.ch, tests1.exp,
-       tests2.ch, tests2.exp, tuples.exp, xstruct.exp: Update/correct
-       copyright notices.
-
-1999-06-25  Stan Shebs  <shebs@andros.cygnus.com>
-
-       From Jimmy Guo  <guo@cup.hp.com>:
-       * xstruct-grt.ch, xstruct.ch, xstruct.exp: Rename to mollify
-       doschk.
-
-Thu May 21 02:45:18 1998  Felix Lee  <flee@zog.cygnus.com>
-
-       * chexp.exp: fix tests that assume >16-bit ints.
-
-Wed Sep 10 15:01:55 1997  Bob Manson  <manson@charmed.cygnus.com>
-
-       * *.exp: The end-all be-all of quoting fixes. Ha.
-
-Thu Aug 21 10:31:23 1997  Bob Manson  <manson@charmed.cygnus.com>
-
-       * enum.exp: More quoting fixes.
-       * pr-9946.exp: Ditto.
-       * gch1280.exp: Ditto.
-       * gch1272.exp: Ditto.
-
-Tue Aug 12 21:48:08 1997  Bob Manson  <manson@charmed.cygnus.com>
-
-       * tests2.exp: Fix quoting.
-       * tests1.exp: Ditto.
-       * pr-9946.exp: Ditto.
-       * enum.exp: Ditto.
-       * builtins.exp: Ditto.
-       * powerset.exp: Ditto.
-       * misc.exp: Ditto.
-       * gch981.exp: Ditto.
-       * gch922.exp: Ditto.
-       * gch1280.exp: Ditto.
-       * gch1272.exp: Ditto.
-       * gch1041.exp: Ditto.
-
-Sat Nov 23 14:00:59 1996  Fred Fish  <fnf@cygnus.com>
-
-       * misc.exp: Change x86 linux setup_xfails to use new
-       i*86-pc-linux*-gnu quads.
-       * tuples.exp: Ditto.
-       * tests2.exp: Ditto.
-       * pr-5016.exp: Ditto.
-
-       * tuples.exp: Add i*86-pc-linux-gnu setup_fail to existing
-       xfails for 'set var vs1 := [ "bar", 42, m_ps[ a ] ]',
-       'set var $i := m_s1["foo", 44, m_ps[a ]]', and
-       'set var vs2 := [ 10+3, m_s1[ "foo" , 42, m_ps[ b ]]]'.
-       
-Mon Nov 11 10:27:32 1996  Fred Fish  <fnf@cygnus.com>
-
-       * callch.exp: Add mips*-sgi-irix* xfail for
-       "call king(a, otto[[10, 15], [20, 25]])".
-       * pr-8742.exp: Add mips*-sgi-irix* xfails for
-       "pass int powerset tuple"
-       "pass set powerset tuple"
-       "pass modeless int powerset tuple" and
-       "pass modeless set powerset tuple".
-       * tuples.exp: Add sparc-*-solaris* and sparc-*-sunos*
-       xfails for several "set var" commands that are failing.
-       Convert most of the set commands into gdb_test_exact
-       commands.
-
-Fri Oct 11 16:48:56 1996  Fred Fish  <fnf@cygnus.com>
-
-       * expstruct.exp (objfile2): Set and use, like other chill tests.
-       * pr-4975.exp: Ditto.
-       * pr-5646.exp: Ditto.
-       * pr-8134.exp: Ditto.
-
-Thu Sep  5 01:54:42 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * gch1280.exp: Enhance test case.
-
-Wed Sep  4 07:30:44 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * gch1272.{ch,exp}, gch1280.{ch,exp}, pr-9946.{ch,exp}: 
-       New test cases.
-
-Sun Aug 18 13:29:48 1996  Fred Fish  <fnf@cygnus.com>
-
-       * tests2.exp: Remove mips-sgi-irix* setup_xfail for
-       "real write 4" and "real write 8".
-
-Mon Jun 10 14:04:05 1996  Fred Fish  <fnf@cygnus.com>
-
-       * tests1.exp (test_modes): Remove *-*-* setup_sfail for 
-       "print unnumbered set range mode" and
-       "print numbered set range mode".
-
-Wed Apr 17 01:23:06 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * tests1.{ch,exp}: Tets case modified and enhanced.
-
-Tue Apr  9 01:18:04 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * gch981.{ch,exp}, gch1041.{ch,exp}: New test cases.
-
-Wed Mar  6 00:29:35 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * powerset.exp: Add test.
-
-Tue Mar  5 23:41:39 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * gch922.{ch,exp}, powerset.{ch,exp}: New test cases.
-
-       * builtins.exp, chillvars.exp, misc.exp, tests1.exp: Updated
-       due to new format of nonprintable characters (control sequence
-       instead of C'xx').
-       
-Tue Mar  5 00:09:17 1996  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * string.ch, string.exp:  Add tests (from Cygnus PR chill/9078).
-
-       * pr-9095.ch, pr-9095.exp:  New test case.
-
-Fri Feb  9 08:22:16 1996  Fred Fish  <fnf@cygnus.com>
-
-       * Makefile.in (clean): Add missing '{'.
-
-Tue Feb  6 21:52:26 1996  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * pr-8894.exp, pr-8894.ch, pr-8894-grt.ch:  New test case.
-
-Mon Jan 29 00:05:01 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * builtins.ch, builtins.exp: Enhance test case.
-
-       * extstruct.ch, extstruct-grt.ch, extstruct.exp: New test case.
-
-Tue Jan 23 16:57:13 1996  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * enum.ch, enum.exp:  New test case (covers PRs 8869 and 8870).
-
-Thu Jan 11 17:34:01 1996  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * Makefile.in (PROGS):  Removed.
-       (clean mostlyclean):  Remove *.exe rather than ${PROGS}.
-
-       * pr-8742.ch, pr-8742.exp:  New test case.
-
-Tue Jan  9 04:47:27 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * misc.ch, misc.exp: Enhance test case.
-
-Sat Dec 30 15:31:59 1995  Fred Fish  <fnf@cygnus.com>
-
-       * tests2.exp: Setup_xfail "i*86-*-linux" and 
-       "mips-sgi-irix*" for "real write 4" and "real write 8".
-       Conditionalize both tests for system specific value
-       of "infinity" string.
-
-Fri Dec 29 10:46:09 1995  Fred Fish  <fnf@cygnus.com>
-
-       * builtins.exp (test_size):  Alpha seems to have long builtins.
-       * tests1.exp: Setup xfail "*-*-*" for "ptype r2".
-       * tests2.exp: Add check to skip chill tests.
-       
-Mon Dec 11 16:53:40 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * tuples.ch, tuples.exp:  Exhance test cases (from PR 8643).
-
-Mon Dec 11 06:57:07 1995  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * builtins.exp, pr-5016.{ch,exp}, result.{ch,exp},
-       tests1.{ch,exp}: Enhance test cases.
-
-Thu Dec  7 05:16:34 1995  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * builtins.ch, builtins.exp, Makefile.in: New test case.
-
-Tue Dec  5 01:51:45 1995  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>
-
-       * tests2.exp: Add compiling of the test case.
-
-Fri Dec  1 00:08:37 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * pr-8405.ch, pr-8405.exp, Makefile.in:  New test case.
-
-       * tests1.exp, tests2.exp (test_print_reject):  Remove;  causes
-       conflicts with later tests using test_print_reject in ../lib/gdb.exp.
-       (passcount):  Remove.
-       * tests2.exp (test_print_accept):  Removed.
-       (test_write):  Re-write to use gdb_test rather than test_print_accept.
-       * tests1.exp (test_print_accept_exact):  Removed.
-       (tests_locations):  Rewrite to use gdb_test and not above proc.
-       
-       * tests1.ch, tests1.exp, tests2.ch, tests2.exp, Makefile.in:
-       New (extensive) test cases.
-       * chexp.exp:  Fix relations to return TRUE or FALSE.
-
-Wed Nov 29 19:28:13 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * Makefile.in:  Add .exp.check rule.
-       * callch.ch:  Add missing "%." to format strings.
-       * callch.exp:  Fix argument to gdb_load.
-       * chexp.exp:  Add specific error messages to test_print_reject calls.
-       * misc.exp:  Add a test for PR 8496.
-       * pr-6632.exp, pr-8136.exp:  Link executables from two .o files.
-
-Sat Nov 25 20:49:27 1995  Fred Fish  <fnf@phydeaux.cygnus.com>
-
-       * pr-5016.exp: xfail "whatis i" for alpha-osf-dec-osf2*, same as linux.
-
-Sun Oct 29 17:58:01 1995  Fred Fish  <fnf@cygnus.com>
-
-       * pr-5016.exp: xfail "whatis i" for sparc-sun-sunos4*, same as linux.
-
-Wed Oct  4 18:20:53 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * pr-8136.{ch,exp}, pr-8134.exp, func1.ch, Makefile.in: New test cases.
-
-Wed Sep 27 11:51:50 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * tuples.ch. tuples.exp:  Add new test for setting a variant record
-       using a tuple, and access the fields.
-
-Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>
-
-       * Update all FSF addresses except those in COPYING* files.
-
-Thu Jul 27 20:36:30 1995  Fred Fish  (fnf@cygnus.com)
-
-       * pr-5016.exp: xfail "i*86-*-linux*" for "whatis int-range"
-       test.  Thinks it is "_cint" rather than "m_index".
-       * misc.exp: xfail "i*86-*-linux*" for "info line" test.
-       Line number is off by one.
-
-Wed Jun 14 13:07:45 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * chillvars.exp, string.exp:  New tests for LOWER/UPPER/LENGTH.
-
-Wed Jun  7 17:52:38 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * chillvars.ch (xptr):  Declare new variable.
-       * chillvars.exp (test_ptr):  New function to test EXPR->MODENAME.
-
-Tue Mar 28 17:13:13 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * pr-6632.ch, pr-6632-grt.ch, pr-6632.exp, Makefile.in:  New test case.
-
-Tue Mar 21 12:10:06 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-       * tuples.exp (do_tests): Make names of "print v_ps" test unique.
-
-Wed Mar  8 13:26:36 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-       * *.exp: Skip all tests silently if skip_chill_tests returns true.
-
-       * misc.exp: Remove reference to non-existent variable passcount.
-
-Tue Mar  7 19:30:05 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * string.ch, string.exp, Makefile.in:  New test case.
-
-Mon Mar  6 14:11:01 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * tuples.ch (setnmode);  New module.
-       * tuples.exp:  Add some extra tests.
-
-Sat Mar  4 15:16:17 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * callch.ch, callch.exp, Makefile.in:  New test case.
-
-Thu Mar  2 06:17:41 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
-
-       * misc.exp: If executable does not exist, issue warning and skip
-       remaining tests, like other chill tests.
-
-Wed Mar  1 20:28:42 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * misc.ch, misc.exp, Makefile.in:  New test case.
-
-Mon Feb 20 16:19:58 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * chillvars.ch:  Add missing INIT's.
-       * chillvars.exp:  Allow builtin types as either case. E.g. (BOOL|bool).
-       * pr-5016.exp:  Likewise.
-
-Sun Feb 12 11:26:08 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * pr-6292.ch, pr-6292.exp, Makefile.in:  New test case.
-
-Wed Feb  1 13:09:48 1995  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * tuples.ch, tuples.exp, Makefile.in:  New test case.
-
-Mon Nov 28 18:39:08 1994  Per Bothner  <bothner@kalessin.cygnus.com>
-
-       * pr-5984.ch, pr-5984.exp, Makefile.in:  New test case.
-
-Fri Sep 16 16:55:03 1994  Per Bothner  (bothner@kalessin.cygnus.com)
-
-       * pr-5646.ch, pr-5646-grt.ch, pr-5646.exp, Makefile.in: New testcase.
-
-Tue Sep  6 13:21:27 1994  Per Bothner  (bothner@kalessin.cygnus.com)
-
-       * pr-5016.ch, pr-5016.exp, Makefile.in:  New testcase.
-       * Makefile.in (.exe.check):  New rule, to run just one test.
-
-Tue Jun 14 16:20:18 1994  Per Bothner  (bothner@kalessin.cygnus.com)
-
-       * result.ch, result.exp, Makefile.in:  New test case.
-       * pr-4975.ch, pr-4975-grt.ch, pr-4975.exp, Makefile.in:  Ditto.
-
-Thu Jun  9 15:20:43 1994  Per Bothner  (bothner@kalessin.cygnus.com)
-
-       * pr-5022.ch, pr-5022.exp:  New testcase.
-       * chillvars.exp:  Remove spurious newline.
-
-       * Makefile.in:  Bunch of fixes so it actually works in this
-       directory.  (E.g. add extra ../ where needed.)
-       Also, add .exe to executables, so we can use suffix rules.
-       * chexp.exp (test_print_reject):  Update syntax error message.
-       * chillvars.ch (module PR_5020):  Moved from here ...
-       * pr-5022.ch: ... to this new file.
-       * chillvars.exp, pr-5020.exp (binfile):  Add .exe extension.
-       * chillvars.exp, pr-5020.exp: Don't check all_flag.
-       * pr-5020.exp:  Add more tests; fix "print y pretty" output.
diff --git a/gdb/testsuite/gdb.chill/Makefile.in b/gdb/testsuite/gdb.chill/Makefile.in
deleted file mode 100644 (file)
index a965b57..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-all: 
-       @echo "Nothing to be done for all..."
-
-#### host, target, and site specific Makefile frags come in here.
-
-.SUFFIXES: .ch .o .exe .exp .check
-
-# Do 'make chillvars.check' to run just the chillvars.{ch,exp} test.
-
-.exp.check:
-       rootme=`pwd`/; export rootme; \
-       cd .. ; \
-       $(MAKE) just-check RUNTESTFLAGS="${RUNTESTFLAGS} $*.exp" \
-         EXPECT=${EXPECT}
-
-clean mostlyclean:
-       -rm -f *.o ${OBJS} *.exe *~ core 
-
-distclean maintainer-clean realclean: clean
-       -rm -f Makefile config.status config.log
-
-Makefile: $(srcdir)/Makefile.in $(srcdir)/configure.in
-       $(SHELL) ./config.status --recheck
diff --git a/gdb/testsuite/gdb.chill/builtins.ch b/gdb/testsuite/gdb.chill/builtins.ch
deleted file mode 100644 (file)
index ef12c83..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-xx: MODULE
-
-DCL v_bool BOOL INIT := FALSE;
-DCL v_char CHAR INIT := 'X';
-DCL v_byte BYTE INIT := -30;
-DCL v_ubyte UBYTE INIT := 30;
-DCL v_int INT INIT := -333;
-DCL v_uint UINT INIT := 333;
-DCL v_long LONG INIT := -4444;
-DCL v_ulong ULONG INIT := 4444;
-DCL v_ptr PTR;
-
-SYNMODE m_set = SET (e1, e2, e3, e4, e5, e6);
-DCL v_set m_set INIT := e3;
-
-SYNMODE m_set_range = m_set(e2:e5);
-DCL v_set_range m_set_range INIT := e3;
-
-SYNMODE m_numbered_set = SET (n1 = 25, n2 = 22, n3 = 35, n4 = 33,
-                             n5 = 45, n6 = 43);
-DCL v_numbered_set m_numbered_set INIT := n3;
-
-SYNMODE m_char_range = CHAR('A':'Z');
-DCL v_char_range m_char_range INIT := 'G';
-
-SYNMODE m_bool_range = BOOL(FALSE:FALSE);
-DCL v_bool_range m_bool_range;
-
-SYNMODE m_long_range = LONG(255:3211);
-DCL v_long_range m_long_range INIT := 1000;
-
-SYNMODE m_range = RANGE(12:28);
-DCL v_range m_range INIT := 23;
-
-SYNMODE m_chars = CHARS(20);
-SYNMODE m_chars_v = CHARS(20) VARYING;
-DCL v_chars CHARS(20);
-DCL v_chars_v CHARS(20) VARYING INIT := "foo bar";
-
-SYNMODE m_bits = BOOLS(10);
-DCL v_bits BOOLS(10);
-
-SYNMODE m_arr = ARRAY(1:10) BYTE;
-DCL v_arr ARRAY(1:10) BYTE;
-
-SYNMODE m_char_arr = ARRAY (CHAR) BYTE;
-DCL v_char_arr ARRAY(CHAR) BYTE;
-
-SYNMODE m_bool_arr = ARRAY (BOOL) BYTE;
-DCL v_bool_arr ARRAY (BOOL) BYTE;
-
-SYNMODE m_int_arr = ARRAY (INT) BYTE;
-DCL v_int_arr ARRAY (INT) BYTE;
-
-SYNMODE m_set_arr = ARRAY (m_set) BYTE;
-DCL v_set_arr ARRAY (m_set) BYTE;
-
-SYNMODE m_numbered_set_arr = ARRAY (m_numbered_set) BYTE;
-DCL v_numbered_set_arr ARRAY (m_numbered_set) BYTE;
-
-SYNMODE m_char_range_arr = ARRAY (m_char_range) BYTE;
-DCL v_char_range_arr ARRAY (m_char_range) BYTE;
-
-SYNMODE m_set_range_arr = ARRAY (m_set_range) BYTE;
-DCL v_set_range_arr ARRAY (m_set_range) BYTE;
-
-SYNMODE m_bool_range_arr = ARRAY (m_bool_range) BYTE;
-DCL v_bool_range_arr ARRAY (m_bool_range) BYTE;
-
-SYNMODE m_long_range_arr = ARRAY (m_long_range) BYTE;
-DCL v_long_range_arr ARRAY (m_long_range) BYTE;
-
-SYNMODE m_range_arr = ARRAY (m_range) BYTE;
-DCL v_range_arr ARRAY (m_range) BYTE;
-
-SYNMODE m_struct = STRUCT (i LONG,
-                           c CHAR,
-                           s CHARS(30));
-DCL v_struct m_struct;
-
-v_bool := TRUE;
-
-END xx;
diff --git a/gdb/testsuite/gdb.chill/builtins.exp b/gdb/testsuite/gdb.chill/builtins.exp
deleted file mode 100644 (file)
index 482a695..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file tests various Chill values, expressions, and types.
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "builtins"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -w -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     send_gdb "show language\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".* source language is \"chill\".*$gdb_prompt $" {
-# OBSOLETE         pass "set language to \"chill\""
-# OBSOLETE         send_gdb "break xx_\n"
-# OBSOLETE         gdb_expect {
-# OBSOLETE             -re ".*$gdb_prompt $" {
-# OBSOLETE                 send_gdb "run\n" 
-# OBSOLETE                 gdb_expect -re ".*$gdb_prompt $" {}
-# OBSOLETE                 return 1
-# OBSOLETE             }
-# OBSOLETE             timeout {
-# OBSOLETE                 fail "can't set breakpoint (timeout)"
-# OBSOLETE                 return 0
-# OBSOLETE             }
-# OBSOLETE         }
-# OBSOLETE     }
-# OBSOLETE     -re ".*$gdb_prompt $" {
-# OBSOLETE         fail "setting language to \"chill\""
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     timeout {
-# OBSOLETE         fail "can't show language (timeout)"
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     }
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Testing printing of a specific value.  Increment passcount for
-# OBSOLETE # success or issue fail message for failure.  In both cases, return
-# OBSOLETE # a 1 to indicate that more tests can proceed.  However a timeout
-# OBSOLETE # is a serious error, generates a special fail message, and causes
-# OBSOLETE # a 0 to be returned to indicate that more tests are likely to fail
-# OBSOLETE # as well.
-# OBSOLETE #
-# OBSOLETE # Args are:
-# OBSOLETE #
-# OBSOLETE #   First one is string to send_gdb to gdb
-# OBSOLETE #   Second one is string to match gdb result to
-# OBSOLETE #   Third one is an optional message to be printed
-# OBSOLETE 
-# OBSOLETE proc test_print_accept { args } {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global passcount
-# OBSOLETE     global verbose
-# OBSOLETE 
-# OBSOLETE     if [llength $args]==3 then {
-# OBSOLETE     set message [lindex $args 2]
-# OBSOLETE     } else {
-# OBSOLETE     set message [lindex $args 0]
-# OBSOLETE     }
-# OBSOLETE     set sendthis [lindex $args 0]
-# OBSOLETE     set expectthis [lindex $args 1]
-# OBSOLETE     set result [gdb_test $sendthis ".* = ${expectthis}" $message]
-# OBSOLETE     if $result==0 {incr passcount}
-# OBSOLETE     return $result
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_lower {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing builtin LOWER"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     # discrete mode names
-# OBSOLETE     test_print_accept "print lower(bool)" "FALSE"
-# OBSOLETE     test_print_accept "print lower(char)" {'\^[(]0[)]'}
-# OBSOLETE     test_print_accept "print lower(byte)" "-128"
-# OBSOLETE     test_print_accept "print lower(ubyte)" "0"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print lower(int)" "-2147483648"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print lower(int)" "-32768"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print lower(uint)" "0"
-# OBSOLETE     setup_xfail "alpha-*-*"
-# OBSOLETE     test_print_accept "print lower(long)" "-2147483648"
-# OBSOLETE     test_print_accept "print lower(ulong)" "0"
-# OBSOLETE     test_print_accept "print lower(m_set)" "e1"
-# OBSOLETE     test_print_accept "print lower(m_set_range)" "e2"
-# OBSOLETE     test_print_accept "print lower(m_numbered_set)" "n2"
-# OBSOLETE     test_print_accept "print lower(m_char_range)" "'A'"
-# OBSOLETE     test_print_accept "print lower(m_bool_range)" "FALSE"
-# OBSOLETE     test_print_accept "print lower(m_long_range)" "255"
-# OBSOLETE     test_print_accept "print lower(m_range)" "12"
-# OBSOLETE 
-# OBSOLETE     # discrete locations
-# OBSOLETE     test_print_accept "print lower(v_bool)" "FALSE"
-# OBSOLETE     test_print_accept "print lower(v_char)" {'\^[(]0[)]'}
-# OBSOLETE     test_print_accept "print lower(v_byte)" "-128"
-# OBSOLETE     test_print_accept "print lower(v_ubyte)" "0"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print lower(v_int)" "-2147483648"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print lower(v_int)" "-32768"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print lower(v_uint)" "0"
-# OBSOLETE     setup_xfail "alpha-*-*"
-# OBSOLETE     test_print_accept "print lower(v_long)" "-2147483648"
-# OBSOLETE     test_print_accept "print lower(v_ulong)" "0"
-# OBSOLETE     test_print_accept "print lower(v_set)" "e1"
-# OBSOLETE     test_print_accept "print lower(v_set_range)" "e2"
-# OBSOLETE     test_print_accept "print lower(v_numbered_set)" "n2"
-# OBSOLETE     test_print_accept "print lower(v_char_range)" "'A'"
-# OBSOLETE     test_print_accept "print lower(v_bool_range)" "FALSE"
-# OBSOLETE     test_print_accept "print lower(v_long_range)" "255"
-# OBSOLETE     test_print_accept "print lower(v_range)" "12"
-# OBSOLETE 
-# OBSOLETE     # string mode names
-# OBSOLETE     test_print_accept "print lower(m_chars)" "0"
-# OBSOLETE     test_print_accept "print lower(m_chars_v)" "0"
-# OBSOLETE     test_print_accept "print lower(m_bits)" "0"
-# OBSOLETE 
-# OBSOLETE     # string locations
-# OBSOLETE     test_print_accept "print lower(v_chars)" "0"
-# OBSOLETE     test_print_accept "print lower(v_chars_v)" "0"
-# OBSOLETE     test_print_accept "print lower(v_bits)" "0"
-# OBSOLETE 
-# OBSOLETE     # string expressions
-# OBSOLETE     test_print_accept "print lower(\"abcd\")" "0"
-# OBSOLETE     test_print_accept "print lower(B'010101')" "0"
-# OBSOLETE 
-# OBSOLETE     # array mode name
-# OBSOLETE     test_print_accept "print lower(m_arr)" "1";
-# OBSOLETE     test_print_accept "print lower(m_char_arr)" {'\^[(]0[)]'}
-# OBSOLETE     test_print_accept "print lower(m_bool_arr)" "FALSE"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print lower(m_int_arr)" "-2147483648"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print lower(m_int_arr)" "-32768"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print lower(m_set_arr)" "e1"
-# OBSOLETE     test_print_accept "print lower(m_set_range_arr)" "e2"
-# OBSOLETE     test_print_accept "print lower(m_numbered_set_arr)" "n2"
-# OBSOLETE     test_print_accept "print lower(m_char_range_arr)" "'A'"
-# OBSOLETE     test_print_accept "print lower(m_bool_range_arr)" "FALSE"
-# OBSOLETE     test_print_accept "print lower(m_long_range_arr)" "255"
-# OBSOLETE     test_print_accept "print lower(m_range_arr)" "12"
-# OBSOLETE 
-# OBSOLETE     # array locations
-# OBSOLETE     test_print_accept "print lower(v_arr)" "1";
-# OBSOLETE     test_print_accept "print lower(v_char_arr)" {'\^[(]0[)]'}
-# OBSOLETE     test_print_accept "print lower(v_bool_arr)" "FALSE"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print lower(v_int_arr)" "-2147483648"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print lower(v_int_arr)" "-32768"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print lower(v_set_arr)" "e1"
-# OBSOLETE     test_print_accept "print lower(v_set_range_arr)" "e2"
-# OBSOLETE     test_print_accept "print lower(v_numbered_set_arr)" "n2"
-# OBSOLETE     test_print_accept "print lower(v_char_range_arr)" "'A'"
-# OBSOLETE     test_print_accept "print lower(v_bool_range_arr)" "FALSE"
-# OBSOLETE     test_print_accept "print lower(v_long_range_arr)" "255"
-# OBSOLETE     test_print_accept "print lower(v_range_arr)" "12"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_upper {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing builtin UPPER"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     # discrete mode names
-# OBSOLETE     test_print_accept "print upper(bool)" "TRUE"
-# OBSOLETE     test_print_accept "print upper(char)" {'\^[(]255[)]'}
-# OBSOLETE     test_print_accept "print upper(byte)" "127"
-# OBSOLETE     test_print_accept "print upper(ubyte)" "255"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print upper(int)" "2147483647"
-# OBSOLETE     test_print_accept "print upper(uint)" "4294967295"
-# OBSOLETE     setup_xfail "alpha-*-*"
-# OBSOLETE     test_print_accept "print upper(long)" "4294967295"
-# OBSOLETE     test_print_accept "print upper(ulong)" "18446744073709551615"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print upper(int)" "32767"
-# OBSOLETE     test_print_accept "print upper(uint)" "65535"
-# OBSOLETE     test_print_accept "print upper(long)" "2147483647"
-# OBSOLETE     test_print_accept "print upper(ulong)" "4294967295"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print upper(m_set)" "e6"
-# OBSOLETE     test_print_accept "print upper(m_set_range)" "e5"
-# OBSOLETE     test_print_accept "print upper(m_numbered_set)" "n5"
-# OBSOLETE     test_print_accept "print upper(m_char_range)" "'Z'"
-# OBSOLETE     test_print_accept "print upper(m_bool_range)" "FALSE"
-# OBSOLETE     test_print_accept "print upper(m_long_range)" "3211"
-# OBSOLETE     test_print_accept "print upper(m_range)" "28"
-# OBSOLETE 
-# OBSOLETE     # discrete locations
-# OBSOLETE     test_print_accept "print upper(v_bool)" "TRUE"
-# OBSOLETE     test_print_accept "print upper(v_char)" {'\^[(]255[)]'}
-# OBSOLETE     test_print_accept "print upper(v_byte)" "127"
-# OBSOLETE     test_print_accept "print upper(v_ubyte)" "255"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print upper(v_int)" "2147483647"
-# OBSOLETE     test_print_accept "print upper(v_uint)" "4294967295"
-# OBSOLETE     setup_xfail "alpha-*-*"
-# OBSOLETE     test_print_accept "print upper(v_long)" "4294967295"
-# OBSOLETE     test_print_accept "print upper(v_ulong)" "18446744073709551615"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print upper(v_int)" "32767"
-# OBSOLETE     test_print_accept "print upper(v_uint)" "65535"
-# OBSOLETE     test_print_accept "print upper(v_long)" "2147483647"
-# OBSOLETE     test_print_accept "print upper(v_ulong)" "4294967295"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print upper(v_set)" "e6"
-# OBSOLETE     test_print_accept "print upper(v_set_range)" "e5"
-# OBSOLETE     test_print_accept "print upper(v_numbered_set)" "n5"
-# OBSOLETE     test_print_accept "print upper(v_char_range)" "'Z'"
-# OBSOLETE     test_print_accept "print upper(v_bool_range)" "FALSE"
-# OBSOLETE     test_print_accept "print upper(v_long_range)" "3211"
-# OBSOLETE     test_print_accept "print upper(v_range)" "28"
-# OBSOLETE 
-# OBSOLETE     # string mode names
-# OBSOLETE     test_print_accept "print upper(m_chars)" "19"
-# OBSOLETE     test_print_accept "print upper(m_chars_v)" "19"
-# OBSOLETE     test_print_accept "print upper(m_bits)" "9"
-# OBSOLETE 
-# OBSOLETE     # string locations
-# OBSOLETE     test_print_accept "print upper(v_chars)" "19"
-# OBSOLETE     test_print_accept "print upper(v_chars_v)" "19"
-# OBSOLETE     test_print_accept "print upper(v_bits)" "9"
-# OBSOLETE 
-# OBSOLETE     # string expressions
-# OBSOLETE     test_print_accept "print upper(\"abcd\")" "3"
-# OBSOLETE     test_print_accept "print upper(B'010101')" "5"
-# OBSOLETE 
-# OBSOLETE     # array mode name
-# OBSOLETE     test_print_accept "print upper(m_arr)" "10";
-# OBSOLETE     test_print_accept "print upper(m_char_arr)" {'\^[(]255[)]'}
-# OBSOLETE     test_print_accept "print upper(m_bool_arr)" "TRUE"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print upper(m_int_arr)" "2147483647"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print upper(m_int_arr)" "32767"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print upper(m_set_arr)" "e6"
-# OBSOLETE     test_print_accept "print upper(m_set_range_arr)" "e5"
-# OBSOLETE     test_print_accept "print upper(m_numbered_set_arr)" "n5"
-# OBSOLETE     test_print_accept "print upper(m_char_range_arr)" "'Z'"
-# OBSOLETE     test_print_accept "print upper(m_bool_range_arr)" "FALSE"
-# OBSOLETE     test_print_accept "print upper(m_long_range_arr)" "3211"
-# OBSOLETE     test_print_accept "print upper(m_range_arr)" "28"
-# OBSOLETE 
-# OBSOLETE     # array locations
-# OBSOLETE     test_print_accept "print upper(v_arr)" "10";
-# OBSOLETE     test_print_accept "print upper(v_char_arr)" {'\^[(]255[)]'}
-# OBSOLETE     test_print_accept "print upper(v_bool_arr)" "TRUE"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print upper(v_int_arr)" "2147483647"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print upper(v_int_arr)" "32767"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print upper(v_set_arr)" "e6"
-# OBSOLETE     test_print_accept "print upper(v_set_range_arr)" "e5"
-# OBSOLETE     test_print_accept "print upper(v_numbered_set_arr)" "n5"
-# OBSOLETE     test_print_accept "print upper(v_char_range_arr)" "'Z'"
-# OBSOLETE     test_print_accept "print upper(v_bool_range_arr)" "FALSE"
-# OBSOLETE     test_print_accept "print upper(v_long_range_arr)" "3211"
-# OBSOLETE     test_print_accept "print upper(v_range_arr)" "28"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_length {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing builtin LENGTH"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     # string locations
-# OBSOLETE     test_print_accept "print length(v_chars)" "20"
-# OBSOLETE     test_print_accept "print length(v_chars_v)" "7";
-# OBSOLETE     test_print_accept "print length(v_bits)" "10";
-# OBSOLETE 
-# OBSOLETE     # string expressions
-# OBSOLETE     test_print_accept "print length(\"the quick brown fox ...\")" "23"
-# OBSOLETE     test_print_accept "print length(B'010101010101')" "12"
-# OBSOLETE     test_print_accept "print length(\"foo \" // \"bar\")" "7"
-# OBSOLETE 
-# OBSOLETE     # check some failures
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print length(m_chars)" "typename in invalid context"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print length(v_byte)" "bad argument to LENGTH builtin"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print length(b'000000' // b'111111')" "12"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_size {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing builtin SIZE"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     # modes
-# OBSOLETE     test_print_accept "print size(bool)" "1"
-# OBSOLETE     test_print_accept "print size(char)" "1"
-# OBSOLETE     test_print_accept "print size(byte)" "1"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print size(int)" "4"
-# OBSOLETE     test_print_accept "print size(ulong)" "8"
-# OBSOLETE     test_print_accept "print size(ptr)" "8"
-# OBSOLETE     test_print_accept "print size(m_chars_v)" "24"
-# OBSOLETE     test_print_accept "print size(m_struct)" "40"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print size(int)" "2"
-# OBSOLETE     test_print_accept "print size(ulong)" "4"
-# OBSOLETE     test_print_accept "print size(ptr)" "4"
-# OBSOLETE     test_print_accept "print size(m_chars_v)" "22"
-# OBSOLETE     test_print_accept "print size(m_struct)" "36"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print size(m_set)" "1"
-# OBSOLETE     test_print_accept "print size(m_numbered_set)" "1"
-# OBSOLETE     test_print_accept "print size(m_char_range)" "1"
-# OBSOLETE     test_print_accept "print size(m_range_arr)" "17"
-# OBSOLETE     test_print_accept "print size(m_chars)" "20"
-# OBSOLETE     test_print_accept "print size(m_bits)" "2"
-# OBSOLETE 
-# OBSOLETE     # locations
-# OBSOLETE     test_print_accept "print size(v_bool)" "1"
-# OBSOLETE     test_print_accept "print size(v_char)" "1"
-# OBSOLETE     test_print_accept "print size(v_byte)" "1"
-# OBSOLETE     if [istarget "alpha-*-*"] then {
-# OBSOLETE     test_print_accept "print size(v_int)" "4"
-# OBSOLETE     test_print_accept "print size(v_ulong)" "8"
-# OBSOLETE     test_print_accept "print size(v_ptr)" "8"
-# OBSOLETE     test_print_accept "print size(v_chars_v)" "24"
-# OBSOLETE     test_print_accept "print size(v_struct)" "40"
-# OBSOLETE     } else {
-# OBSOLETE     test_print_accept "print size(v_int)" "2"
-# OBSOLETE     test_print_accept "print size(v_ulong)" "4"
-# OBSOLETE     test_print_accept "print size(v_ptr)" "4"
-# OBSOLETE     test_print_accept "print size(v_chars_v)" "22"
-# OBSOLETE     test_print_accept "print size(v_struct)" "36"
-# OBSOLETE     }
-# OBSOLETE     test_print_accept "print size(v_set)" "1"
-# OBSOLETE     test_print_accept "print size(v_numbered_set)" "1"
-# OBSOLETE     test_print_accept "print size(v_char_range)" "1"
-# OBSOLETE     test_print_accept "print size(v_range_arr)" "17"
-# OBSOLETE     test_print_accept "print size(v_chars)" "20"
-# OBSOLETE     test_print_accept "print size(v_bits)" "2"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_num {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing builtin NUM"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     # constants
-# OBSOLETE     test_print_accept "print num(false)" "0"
-# OBSOLETE     test_print_accept "print num(true)" "1"
-# OBSOLETE     test_print_accept "print num(10)" "10"
-# OBSOLETE     test_print_accept "print num(33-34)" "-1"
-# OBSOLETE     test_print_accept "print num('X')" "88"
-# OBSOLETE     test_print_accept "print num(e5)" "4"
-# OBSOLETE 
-# OBSOLETE     # locations
-# OBSOLETE     test_print_accept "print num(v_bool)" "0"
-# OBSOLETE     test_print_accept "print num(v_char)" "88"
-# OBSOLETE     test_print_accept "print num(v_byte)" "-30"
-# OBSOLETE     test_print_accept "print num(v_ubyte)" "30"
-# OBSOLETE     test_print_accept "print num(v_int)" "-333"
-# OBSOLETE     test_print_accept "print num(v_uint)" "333"
-# OBSOLETE     test_print_accept "print num(v_long)" "-4444"
-# OBSOLETE     test_print_accept "print num(v_ulong)" "4444"
-# OBSOLETE     test_print_accept "print num(v_set)" "2"
-# OBSOLETE     test_print_accept "print num(v_set_range)" "2"
-# OBSOLETE     test_print_accept "print num(v_numbered_set)" "35"
-# OBSOLETE     test_print_accept "print num(v_char_range)" "71"
-# OBSOLETE     test_print_accept "print num(v_long_range)" "1000"
-# OBSOLETE     test_print_accept "print num(v_range)" "23"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if [set_lang_chill] then {
-# OBSOLETE     # test builtins as described in chapter 6.20.3 Z.200
-# OBSOLETE     test_num
-# OBSOLETE     test_size
-# OBSOLETE     test_lower
-# OBSOLETE     test_upper
-# OBSOLETE     test_length
-# OBSOLETE } else {
-# OBSOLETE     warning "$test_name tests suppressed."
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/callch.ch b/gdb/testsuite/gdb.chill/callch.ch
deleted file mode 100644 (file)
index 6001d92..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-hack : module
-
-dcl i int;
-newmode otto = array (bool, bool) byte;
-newmode str1 = struct (f1 int, f2 bool);
-newmode str2 = struct (f1 otto);
-
-dcl a otto := [[1,1],[1,1]];
-dcl b str1 := [10, false];
-dcl c str2;
-
-fred : proc (a int in, b int loc);
-  writetext(stdout, "a is '%C'; b is '%C'.%/", a, b);
-end fred;
-
-klaus : proc ();
-  writetext(stdout, "here's klaus calling.%/");
-end klaus;
-
-king : proc (p otto loc, x otto in);
-  dcl i, j bool;
-  p := [[h'ff,h'ff],[h'ff,h'ff]];
-  do for i:= lower(bool) to upper(bool);
-    do for j:= lower(bool) to upper(bool);
-      writetext(stdout, "x(%C, %C) = %C%..%/", i, j, x(i, j));
-      writetext(stdout, "p(%C, %C) = %C%..%/", i, j, p(i, j));
-    od;
-  od;
-end king;
-
-ralph : proc (x str1 in);
-  writetext(stdout, "x.f1 = %C, x.f2 = %C%..%/", x.f1, x.f2);
-end ralph;
-
-whitney : proc (x str2 in);
-  dcl i, j bool;
-
-  do for i:= lower(bool) to upper(bool);
-    do for j:= lower(bool) to upper(bool);
-      writetext(stdout, "x.f1(%C, %C) = %C%..%/", i, j, x.f1(i, j));
-     od;
-  od;
-
-end whitney;
-
-c := [a];
-i:=12;
-writetext(stdout, "done.%/");
-
-end hack;
diff --git a/gdb/testsuite/gdb.chill/callch.exp b/gdb/testsuite/gdb.chill/callch.exp
deleted file mode 100644 (file)
index f81d42f..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file tests that gdb can call functions in a Chill inferior.
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "callch"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n" ; 
-# OBSOLETE 
-# OBSOLETE     gdb_test "break callch.ch:48" ""
-# OBSOLETE     send_gdb "run\n"; gdb_expect -re "Breakpoint .*callch.ch:48.*$gdb_prompt $"
-# OBSOLETE     gdb_test {set fred(10, i)} {a is '10'; b is '12'.}
-# OBSOLETE     gdb_test_exact "call klaus()" {here's klaus calling.}
-# OBSOLETE     gdb_test_exact "call fred()" {too few arguments in function call}
-# OBSOLETE     # Too many arguments are allowed
-# OBSOLETE     gdb_test_exact "call klaus(10, 20, 30)" {here's klaus calling.}
-# OBSOLETE     gdb_test "print a" { = \[\(FALSE:TRUE\): \[\(FALSE:TRUE\): 1\]\]}\
-# OBSOLETE     "print a before king"
-# OBSOLETE     # Current gdb prints 255 for the results that are expected to be -1.
-# OBSOLETE     setup_xfail "mips*-sgi-irix*"
-# OBSOLETE     gdb_test {call king(a, otto[[10, 15], [20, 25]])} "x\\(FALSE, FALSE\\) = 10.*p\\(FALSE, FALSE\\) = -1.*x\\(FALSE, TRUE\\) = 15.*p\\(FALSE, TRUE\\) = -1.*x\\(TRUE, FALSE\\) = 20.*p\\(TRUE, FALSE\\) = -1.*x\\(TRUE, TRUE\\) = 25.*p\\(TRUE, TRUE\\) = -1.*"
-# OBSOLETE     gdb_test "print a" { = \[\(FALSE:TRUE\): \[\(FALSE:TRUE\): -1\]\]}\
-# OBSOLETE     "print a after king"
-# OBSOLETE     gdb_test_exact "call ralph(b)" {x.f1 = 10, x.f2 = FALSE.}
-# OBSOLETE     gdb_test "call whitney(c)" "x.f1\\(FALSE, FALSE\\) = 1.*x.f1\\(FALSE, TRUE\\) = 1.*x.f1\\(TRUE, FALSE\\) = 1.*x.f1\\(TRUE, TRUE\\) = 1.*"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/chexp.exp b/gdb/testsuite/gdb.chill/chexp.exp
deleted file mode 100644 (file)
index aca5632..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-# OBSOLETE # Copyright 1992, 1994, 1995, 1998 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Fred Fish. (fnf@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set prms_id 0
-# OBSOLETE set bug_id 0
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     send_gdb "show language\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".* source language is \"chill\".*$gdb_prompt $" {
-# OBSOLETE         pass "set language to \"chill\""
-# OBSOLETE         return 1
-# OBSOLETE     }
-# OBSOLETE     -re ".*$gdb_prompt $" {
-# OBSOLETE         fail "setting language to \"chill\""
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     timeout {
-# OBSOLETE         fail "can't show language (timeout)"
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     }
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_integer_literals_accepted {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     # Test various decimal values.
-# OBSOLETE 
-# OBSOLETE     gdb_test "p 123" " = 123"
-# OBSOLETE     gdb_test "p -123" " = -123"
-# OBSOLETE     gdb_test "p D'123" " = 123"
-# OBSOLETE     gdb_test "p d'123" " = 123"
-# OBSOLETE     gdb_test "p -D'123" " = -123"
-# OBSOLETE     gdb_test "p -d'123" " = -123"
-# OBSOLETE     gdb_test "p 12_345" " = 12345"
-# OBSOLETE     gdb_test "p __1_2_3__" " = 123"
-# OBSOLETE     gdb_test "p/d 123" " = D'123"
-# OBSOLETE 
-# OBSOLETE     # Test various binary values.
-# OBSOLETE 
-# OBSOLETE     gdb_test "p B'111" " = 7"
-# OBSOLETE     gdb_test "p b'111" " = 7"
-# OBSOLETE     gdb_test "p -B'111" " = -7"
-# OBSOLETE     gdb_test "p B'0111" " = 7"
-# OBSOLETE     gdb_test "p b'0111" " = 7"
-# OBSOLETE     gdb_test "p -b'0111" " = -7"
-# OBSOLETE     gdb_test "p B'_0_1_1_1_" " = 7"
-# OBSOLETE     gdb_test "p b'_0_1_1_1_" " = 7"
-# OBSOLETE     gdb_test "p -b'_0_1_1_1_" " = -7"
-# OBSOLETE     gdb_test "p/t B'111" " = B'111"
-# OBSOLETE 
-# OBSOLETE     # Test various octal values.
-# OBSOLETE 
-# OBSOLETE     gdb_test "p O'123" " = 83"
-# OBSOLETE     gdb_test "p o'123" " = 83"
-# OBSOLETE     gdb_test "p -o'0123" " = -83"
-# OBSOLETE     gdb_test "p O'0123" " = 83"
-# OBSOLETE     gdb_test "p o'0123" " = 83"
-# OBSOLETE     gdb_test "p -o'123" " = -83"
-# OBSOLETE     gdb_test "p O'_1_2_3_" " = 83"
-# OBSOLETE     gdb_test "p o'_1_2_3_" " = 83"
-# OBSOLETE     gdb_test "p -o'_1_2_3_" " = -83"
-# OBSOLETE     gdb_test "p/o O'123" " = O'123"
-# OBSOLETE 
-# OBSOLETE     # Test various hexadecimal values.
-# OBSOLETE 
-# OBSOLETE     gdb_test "p H'123" " = 291"
-# OBSOLETE     gdb_test "p h'123" " = 291"
-# OBSOLETE     gdb_test "p -h'123" " = -291"
-# OBSOLETE     gdb_test "p H'0123" " = 291"
-# OBSOLETE     gdb_test "p h'0123" " = 291"
-# OBSOLETE     gdb_test "p -h'0123" " = -291"
-# OBSOLETE     gdb_test "p H'_1_2_3_" " = 291"
-# OBSOLETE     gdb_test "p h'_1_2_3_" " = 291"
-# OBSOLETE     gdb_test "p -h'_1_2_3_" " = -291"
-# OBSOLETE     gdb_test "p H'ABC" " = 2748"
-# OBSOLETE     gdb_test "p H'abc" " = 2748"
-# OBSOLETE     gdb_test "p H'AbC" " = 2748"
-# OBSOLETE     gdb_test "p H'_A_b_C_" " = 2748"
-# OBSOLETE     gdb_test "p H'_D_e_F_" " = 3567"
-# OBSOLETE     gdb_test "p H'_d_E_f_" " = 3567"
-# OBSOLETE     gdb_test "p/x H'123" " = H'123"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_character_literals_accepted {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     # Test various decimal values.
-# OBSOLETE 
-# OBSOLETE     gdb_test "p 'a'" " = 'a'"
-# OBSOLETE     gdb_test "p/x 'a'" " = H'61"
-# OBSOLETE     gdb_test "p/d 'a'" " = D'97"
-# OBSOLETE     gdb_test "p/t 'a'" " = B'1100001"
-# OBSOLETE     # gdb_test "p '^(97)'" " = 'a'" (not in GNU Chill)
-# OBSOLETE     gdb_test "p C'61'" " = 'a'"
-# OBSOLETE     gdb_test "p c'61'" " = 'a'"
-# OBSOLETE     gdb_test "p/x C'FF'" " = H'ff"
-# OBSOLETE     # gdb_test "p/x '^(H'FF)'" " = H'ff"    (not in GNU Chill)
-# OBSOLETE     # gdb_test "p/x '^(D'255)'" " = H'ff"   (not in GNU Chill)
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_integer_literals_rejected {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     # These are valid integer literals in Z.200, but not GNU-Chill.
-# OBSOLETE 
-# OBSOLETE     test_print_reject "p _"
-# OBSOLETE     test_print_reject "p __"
-# OBSOLETE 
-# OBSOLETE     test_print_reject "p D'" 
-# OBSOLETE     test_print_reject "p D'_" 
-# OBSOLETE     test_print_reject "p D'__" 
-# OBSOLETE 
-# OBSOLETE     test_print_reject "p B'" 
-# OBSOLETE     test_print_reject "p B'_" 
-# OBSOLETE     test_print_reject "p B'__" 
-# OBSOLETE 
-# OBSOLETE     test_print_reject "p O'" 
-# OBSOLETE     test_print_reject "p O'_" 
-# OBSOLETE     test_print_reject "p O'__" 
-# OBSOLETE 
-# OBSOLETE     test_print_reject "p H'" 
-# OBSOLETE     test_print_reject "p H'_" 
-# OBSOLETE     test_print_reject "p H'__" 
-# OBSOLETE 
-# OBSOLETE     # Test various decimal values.
-# OBSOLETE 
-# OBSOLETE     test_print_reject "p D'DEADBEEF"
-# OBSOLETE     test_print_reject "p D'123DEADBEEF"
-# OBSOLETE 
-# OBSOLETE     # Test various binary values.
-# OBSOLETE 
-# OBSOLETE     test_print_reject "p B'2" "Too-large digit in bitstring or integer."
-# OBSOLETE     test_print_reject "p B'12"  "Too-large digit in bitstring or integer."
-# OBSOLETE 
-# OBSOLETE     # Test various octal values.
-# OBSOLETE 
-# OBSOLETE     test_print_reject "p O'9"  "Too-large digit in bitstring or integer."
-# OBSOLETE     test_print_reject "p O'79"  "Too-large digit in bitstring or integer."
-# OBSOLETE 
-# OBSOLETE     # Test various hexadecimal values.
-# OBSOLETE 
-# OBSOLETE     test_print_reject "p H'G" "Invalid character in bitstring or integer."
-# OBSOLETE     test_print_reject "p H'AG" "Invalid character in bitstring or integer."
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_boolean_literals_accepted {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     # Test the only possible values for a boolean, TRUE and FALSE.
-# OBSOLETE 
-# OBSOLETE     gdb_test "p TRUE" " = TRUE"
-# OBSOLETE     gdb_test "p FALSE" " = FALSE"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_float_literals_accepted {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     # Test various floating point formats
-# OBSOLETE 
-# OBSOLETE     gdb_test "p .44 < .45" " = TRUE"
-# OBSOLETE     gdb_test "p .44 > .45" " = FALSE"
-# OBSOLETE     gdb_test "p 0.44 < 0.45" " = TRUE"
-# OBSOLETE     gdb_test "p 0.44 > 0.45" " = FALSE"
-# OBSOLETE     gdb_test "p 44. < 45." " = TRUE"
-# OBSOLETE     gdb_test "p 44. > 45." " = FALSE"
-# OBSOLETE     gdb_test "p 44.0 < 45.0" " = TRUE"
-# OBSOLETE     gdb_test "p 44.0 > 45.0" " = FALSE"
-# OBSOLETE     gdb_test "p 10D20 < 10D21" " = TRUE"
-# OBSOLETE     gdb_test "p 10D20 > 10D21" " = FALSE"
-# OBSOLETE     gdb_test "p 10d20 < 10d21" " = TRUE"
-# OBSOLETE     gdb_test "p 10d20 > 10d21" " = FALSE"
-# OBSOLETE     gdb_test "p 10E20 < 10E21" " = TRUE"
-# OBSOLETE     gdb_test "p 10E20 > 10E21" " = FALSE"
-# OBSOLETE     gdb_test "p 10e20 < 10e21" " = TRUE"
-# OBSOLETE     gdb_test "p 10e20 > 10e21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.D20 < 10.D21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.D20 > 10.D21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.d20 < 10.d21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.d20 > 10.d21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.E20 < 10.E21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.E20 > 10.E21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.e20 < 10.e21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.e20 > 10.e21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0D20 < 10.0D21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0D20 > 10.0D21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0d20 < 10.0d21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0d20 > 10.0d21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0E20 < 10.0E21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0E20 > 10.0E21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0e20 < 10.0e21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0e20 > 10.0e21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0D+20 < 10.0D+21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0D+20 > 10.0D+21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0d+20 < 10.0d+21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0d+20 > 10.0d+21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0E+20 < 10.0E+21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0E+20 > 10.0E+21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0e+20 < 10.0e+21" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0e+20 > 10.0e+21" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0D-11 < 10.0D-10" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0D-11 > 10.0D-10" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0d-11 < 10.0d-10" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0d-11 > 10.0d-10" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0E-11 < 10.0E-10" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0E-11 > 10.0E-10" " = FALSE"
-# OBSOLETE     gdb_test "p 10.0e-11 < 10.0e-10" " = TRUE"
-# OBSOLETE     gdb_test "p 10.0e-11 > 10.0e-10" " = FALSE"
-# OBSOLETE     # looks funny, but apparently legal
-# OBSOLETE     gdb_test "p _.1e+10 < _.1e+11" " = TRUE"
-# OBSOLETE     gdb_test "p _.1e+10 > _.1e+11" " = FALSE"
-# OBSOLETE     gdb_test "p __.1e-12 < __.1e-11" " = TRUE"
-# OBSOLETE     gdb_test "p __.1e-12 > __.1e-11" " = FALSE"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_convenience_variables {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     gdb_test "set \$foo := 101"     " := 101\[\r\]*" \
-\# OBSOLETE    "Set a new convenience variable"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$foo"          " = 101" \
-\# OBSOLETE    "Print contents of new convenience variable"
-# OBSOLETE 
-# OBSOLETE     gdb_test "set \$foo := 301"     " := 301\[\r\]*" \
-\# OBSOLETE    "Set convenience variable to a new value"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$foo"          " = 301" \
-\# OBSOLETE    "Print new contents of convenience variable"
-# OBSOLETE 
-# OBSOLETE     gdb_test "set \$_ := 11"                " := 11\[\r\]*" \
-\# OBSOLETE    "Set convenience variable \$_"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$_"            " = 11" \
-\# OBSOLETE    "Print contents of convenience variable \$_"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$foo + 10"     " = 311" \
-\# OBSOLETE    "Use convenience variable in arithmetic expression"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print (\$foo := 32) + 4"      " = 36" \
-\# OBSOLETE    "Use convenience variable assignment in arithmetic expression"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$bar"          " = void" \
-\# OBSOLETE    "Print contents of uninitialized convenience variable"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_value_history {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     gdb_test "print 101"    "\\\$1 = 101" \
-\# OBSOLETE    "Set value-history\[1\] using \$1"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print 102"    "\\\$2 = 102" \
-\# OBSOLETE    "Set value-history\[2\] using \$2"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print 103"    "\\\$3 = 103" \
-\# OBSOLETE    "Set value-history\[3\] using \$3"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$\$"   "\\\$4 = 102" \
-\# OBSOLETE    "Print value-history\[MAX-1\] using inplicit index \$\$"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$\$"   "\\\$5 = 103" \
-\# OBSOLETE    "Print value-history\[MAX-1\] again using implicit index \$\$"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$"     "\\\$6 = 103" \
-\# OBSOLETE    "Print value-history\[MAX\] using implicit index \$"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$\$2"  "\\\$7 = 102" \
-\# OBSOLETE    "Print value-history\[MAX-2\] using explicit index \$\$2"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$0"    "\\\$8 = 102" \
-\# OBSOLETE    "Print value-history\[MAX\] using explicit index \$0"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print 108"    "\\\$9 = 108" ""
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$\$0"  "\\\$10 = 108" \
-\# OBSOLETE    "Print value-history\[MAX\] using explicit index \$\$0"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$1"    "\\\$11 = 101" \
-\# OBSOLETE    "Print value-history\[1\] using explicit index \$1"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$2"    "\\\$12 = 102" \
-\# OBSOLETE    "Print value-history\[2\] using explicit index \$2"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$3"    "\\\$13 = 103" \
-\# OBSOLETE    "Print value-history\[3\] using explicit index \$3"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$-3"   "\\\$14 = 100" \
-\# OBSOLETE    "Print (value-history\[MAX\] - 3) using implicit index \$"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print \$1 + 3"        "\\\$15 = 104" \
-\# OBSOLETE    "Use value-history element in arithmetic expression"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_arithmetic_expressions {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     # Test unary minus with various operands
-# OBSOLETE 
-# OBSOLETE #    gdb_test "p -(TRUE)"   " = -1" "unary minus applied to bool"
-# OBSOLETE #    gdb_test "p -('a')"    " = xxx"        "unary minus applied to char"
-# OBSOLETE     gdb_test "p -(1)"               " = -1" "unary minus applied to int"
-# OBSOLETE     gdb_test "p -(1.0)"     " = -1" "unary minus applied to real"
-# OBSOLETE 
-# OBSOLETE     # Test addition with various operands
-# OBSOLETE 
-# OBSOLETE     gdb_test "p TRUE + 1"   " = 2"  "bool plus int"
-# OBSOLETE     gdb_test "p 'a' + 1"    " = 98" "char plus int"
-# OBSOLETE     gdb_test "p 1 + 1"              " = 2"  "int plus int"
-# OBSOLETE     gdb_test "p 1.0 + 1"    " = 2"  "real plus int"
-# OBSOLETE     gdb_test "p 1.0 + 2.0"  " = 3"  "real plus real"
-# OBSOLETE 
-# OBSOLETE     # Test subtraction with various operands
-# OBSOLETE 
-# OBSOLETE     gdb_test "p TRUE - 1"   " = 0"  "bool minus int"
-# OBSOLETE     gdb_test "p 'b' - 1"    " = 97" "char minus int"
-# OBSOLETE     gdb_test "p 3 - 1"              " = 2"  "int minus int"
-# OBSOLETE     gdb_test "p 3.0 - 1"    " = 2"  "real minus int"
-# OBSOLETE     gdb_test "p 5.0 - 2.0"  " = 3"  "real minus real"
-# OBSOLETE 
-# OBSOLETE     # Test multiplication with various operands
-# OBSOLETE 
-# OBSOLETE     gdb_test "p TRUE * 1"   " = 1"  "bool times int"
-# OBSOLETE     gdb_test "p 'a' * 2"    " = 194"        "char times int"
-# OBSOLETE     gdb_test "p 2 * 3"              " = 6"  "int times int"
-# OBSOLETE     gdb_test "p 2.0 * 3"    " = 6"  "real times int"
-# OBSOLETE     gdb_test "p 2.0 * 3.0"  " = 6"  "real times real"
-# OBSOLETE 
-# OBSOLETE     # Test division with various operands
-# OBSOLETE 
-# OBSOLETE     gdb_test "p TRUE / 1"   " = 1"  "bool divided by int"
-# OBSOLETE     gdb_test "p 'a' / 2"    " = 48" "char divided by int"
-# OBSOLETE     gdb_test "p 6 / 3"              " = 2"  "int divided by int"
-# OBSOLETE     gdb_test "p 6.0 / 3"    " = 2"  "real divided by int"
-# OBSOLETE     gdb_test "p 6.0 / 3.0"  " = 2"  "real divided by real"
-# OBSOLETE 
-# OBSOLETE     # Test modulo with various operands
-# OBSOLETE 
-# OBSOLETE     gdb_test "p TRUE MOD 1" " = 0"  "bool modulo int"
-# OBSOLETE     gdb_test "p 'a' MOD 2"  " = 1"  "char modulo int"
-# OBSOLETE     gdb_test "p -5 MOD 3"   " = 1"  "negative int modulo int"
-# OBSOLETE     gdb_test "p 5 MOD 1"    " = 0"  "int modulo int"
-# OBSOLETE     gdb_test "p 5 MOD 2"    " = 1"  "int modulo int"
-# OBSOLETE     gdb_test "p 5 MOD 3"    " = 2"  "int modulo int"
-# OBSOLETE     gdb_test "p 5 MOD 4"    " = 1"  "int modulo int"
-# OBSOLETE     gdb_test "p 5 MOD 5"    " = 0"  "int modulo int"
-# OBSOLETE     gdb_test "p 0 MOD 1"    " = 0"  "int modulo int"
-# OBSOLETE     gdb_test "p 0 MOD 2"    " = 0"  "int modulo int"
-# OBSOLETE     gdb_test "p 0 MOD 3"    " = 0"  "int modulo int"
-# OBSOLETE     gdb_test "p 0 MOD 4"    " = 0"  "int modulo int"
-# OBSOLETE     gdb_test "p -5 MOD 1"   " = 0"  "int modulo int"
-# OBSOLETE     gdb_test "p -5 MOD 2"   " = 1"  "int modulo int"
-# OBSOLETE     gdb_test "p -5 MOD 3"   " = 1"  "int modulo int"
-# OBSOLETE     gdb_test "p -5 MOD 4"   " = 3"  "int modulo int"
-# OBSOLETE     gdb_test "p -5 MOD 5"   " = 0"  "int modulo int"
-# OBSOLETE     gdb_test "p -5 MOD 5"   " = 0"  "int modulo int"
-# OBSOLETE     test_print_reject "p 6.0 MOD 3" \
-\# OBSOLETE    "Integer-only operation on floating point number.*"
-# OBSOLETE     test_print_reject "p 6.0 MOD 3.0" \
-\# OBSOLETE    "Integer-only operation on floating point number.*"
-# OBSOLETE     test_print_reject "p -5 MOD -1" \
-\# OBSOLETE    "Second operand of MOD must be greater than zero.*"
-# OBSOLETE     test_print_reject "p -5 MOD 0" \
-\# OBSOLETE    "Second operand of MOD must be greater than zero.*"
-# OBSOLETE 
-# OBSOLETE     # Test remainder with various operands
-# OBSOLETE 
-# OBSOLETE     gdb_test "p TRUE REM 1" " = 0"  "bool remainder int"
-# OBSOLETE     gdb_test "p 'a' REM 2"  " = 1"  "char remainder int"
-# OBSOLETE     gdb_test "p 5 REM 5"    " = 0"  "int remainder int"
-# OBSOLETE     gdb_test "p 5 REM 4"    " = 1"  "int remainder int"
-# OBSOLETE     gdb_test "p 5 REM 3"    " = 2"  "int remainder int"
-# OBSOLETE     gdb_test "p 5 REM 2"    " = 1"  "int remainder int"
-# OBSOLETE     gdb_test "p 5 REM 1"    " = 0"  "int remainder int"
-# OBSOLETE     gdb_test "p 5 REM -1"   " = 0"  "int remainder int"
-# OBSOLETE     gdb_test "p 5 REM -2"   " = 1"  "int remainder int"
-# OBSOLETE     gdb_test "p 5 REM -3"   " = 2"  "int remainder int"
-# OBSOLETE     gdb_test "p 5 REM -4"   " = 1"  "int remainder int"
-# OBSOLETE     gdb_test "p 5 REM -5"   " = 0"  "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM 5"   " = 0"  "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM 4"   " = -1" "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM 3"   " = -2" "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM 2"   " = -1" "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM 1"   " = 0"  "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM -1"  " = 0"  "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM -2"  " = -1" "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM -3"  " = -2" "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM -4"  " = -1" "int remainder int"
-# OBSOLETE     gdb_test "p -5 REM -5"  " = 0"  "int remainder int"
-# OBSOLETE     gdb_test "p 6 REM 3"    " = 0"  "int remainder int"
-# OBSOLETE     test_print_reject "p 6.0 REM 3" \
-\# OBSOLETE    "Integer-only operation on floating point number.*"
-# OBSOLETE     test_print_reject "p 6.0 REM 3.0" \
-\# OBSOLETE    "Integer-only operation on floating point number.*"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ""
-# OBSOLETE 
-# OBSOLETE if [set_lang_chill] then {
-# OBSOLETE     test_value_history
-# OBSOLETE     test_convenience_variables
-# OBSOLETE     test_integer_literals_accepted
-# OBSOLETE     test_integer_literals_rejected
-# OBSOLETE     test_boolean_literals_accepted
-# OBSOLETE     test_character_literals_accepted
-# OBSOLETE     test_float_literals_accepted
-# OBSOLETE     test_arithmetic_expressions
-# OBSOLETE } else {
-# OBSOLETE     warning "$test_name tests suppressed." 0
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/chillvars.ch b/gdb/testsuite/gdb.chill/chillvars.ch
deleted file mode 100644 (file)
index 21dfcba..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-testvars: MODULE
-
-DCL bool_true BOOL INIT := TRUE;
-DCL bool_false BOOL INIT := FALSE;
-DCL booltable1 ARRAY (0:3) BOOL INIT := [ TRUE, FALSE, FALSE, TRUE ];
-DCL booltable2 ARRAY (4:7) BOOL INIT := [ TRUE, FALSE, FALSE, TRUE ];
-
-DCL control_char CHAR INIT := C'07';
-DCL printable_char CHAR INIT := 'a';
-DCL chartable1 ARRAY (0:2) CHAR INIT := [ C'00', C'01', C'02' ];
-DCL chartable2 ARRAY (3:5) CHAR INIT := [ C'00', C'01', C'02' ];
-
-DCL string1 CHARS (4) INIT := 'abcd';
-DCL string2 CHARS (5) INIT := 'ef' // C'00' // 'gh';
-DCL string3 CHARS (6) INIT := 'ef' // 'gh' // 'ij';
-DCL string4 CHARS (7) INIT := (6) 'z' // C'00';
-
-DCL byte_low BYTE INIT := -128;
-DCL byte_high BYTE INIT := 127;
-DCL bytetable1 ARRAY (0:4) BYTE INIT := [ -2, -1, 0, 1, 2 ];
-DCL bytetable2 ARRAY (5:9) BYTE INIT := [ -2, -1, 0, 1, 2 ];
-DCL bytetable3 ARRAY (1:2,'c':'d',FALSE:TRUE) BYTE
-       INIT := [ [ [ 0, 1 ], [ 2, 3 ] ], [ [ 4, 5 ], [ 6, 7 ] ] ];
-DCL bytetable4 ARRAY (1:2) ARRAY ('c':'d') ARRAY (FALSE:TRUE) BYTE
-       INIT := [ [ [ 0, 1 ], [ 2, 3 ] ], [ [ 4, 5 ], [ 6, 7 ] ] ];
-
-DCL ubyte_low UBYTE INIT := 0;
-DCL ubyte_high UBYTE INIT := 255;
-DCL ubytetable1 ARRAY (0:4) UBYTE INIT := [ 0, 1, 2, 3, 4 ];
-DCL ubytetable2 ARRAY (5:9) UBYTE INIT := [ 0, 1, 2, 3, 4 ];
-
-DCL int_low INT INIT := -32_768;
-DCL int_high INT INIT := 32_767;
-DCL inttable1 ARRAY (0:4) INT INIT := [ -2, -1, 0, 1, 2 ];
-DCL inttable2 ARRAY (5:9) INT INIT := [ -2, -1, 0, 1, 2 ];
-
-DCL uint_low UINT INIT := 0;
-DCL uint_high UINT INIT := 65_535;
-DCL uinttable1 ARRAY (0:4) UINT INIT := [ 0, 1, 2, 3, 4 ];
-DCL uinttable2 ARRAY (5:9) UINT INIT := [ 0, 1, 2, 3, 4 ];
-
-DCL long_low LONG INIT := -2_147_483_648;
-DCL long_high LONG INIT := 2_147_483_647;
-DCL longtable1 ARRAY (0:4) LONG INIT := [ -2, -1, 0, 1, 2 ];
-DCL longtable2 ARRAY (5:9) LONG INIT := [ -2, -1, 0, 1, 2 ];
-
-DCL ulong_low ULONG INIT := 0;
-DCL ulong_high ULONG INIT := 4_294_967_295;
-DCL ulongtable1 ARRAY (0:4) ULONG INIT := [ 0, 1, 2, 3, 4 ];
-DCL ulongtable2 ARRAY (5:9) ULONG INIT := [ 0, 1, 2, 3, 4 ];
-
-DCL real1 FLOAT INIT := 3.14159265358;
-DCL real2 FLOAT INIT := -3.14159265358;
-DCL realtable1 ARRAY (0:4) FLOAT INIT := [ -2.0, -1.0, 0.0, 1.0, 2.0 ];
-DCL realtable2 ARRAY (5:9) FLOAT INIT := [ -2.0, -1.0, 0.0, 1.0, 2.0 ];
-
-DCL long_real1 DOUBLE INIT := 3.14e300;
-DCL long_real2 DOUBLE INIT := -3.14e-300;
-DCL longrealtable1 ARRAY (0:4) DOUBLE INIT := [ -2.0, -1.0, 0.0, 1.0, 2.0 ];
-DCL longrealtable2 ARRAY (5:9) DOUBLE INIT := [ -2.0, -1.0, 0.0, 1.0, 2.0 ];
-
-/* DCL powerset1 POWERSET INT(0:7);*/
-/* DCL chars1 CHAR (16) INIT := (16)'b'; */
-/* DCL bits1 BIT(20) := B'11111111000010101011'; */
-
-NEWMODE simple_struct = STRUCT (abool BOOL, aint INT, astring CHARS (8));
-DCL struct1 simple_struct := [ TRUE, 123, "a string" ];
-
-NEWMODE nested_struct = STRUCT (abool BOOL, nstruct simple_struct, aint INT);
-DCL struct2 nested_struct := [ TRUE, [ FALSE, 456, "deadbeef" ], 789 ];
-
-/* This table is used as a source for every ascii character. */
-
-DCL asciitable ARRAY (0:255) CHAR INIT := [
-    C'00', C'01', C'02', C'03', C'04', C'05', C'06', C'07',
-    C'08', C'09', C'0a', C'0b', C'0c', C'0d', C'0e', C'0f',
-    C'10', C'11', C'12', C'13', C'14', C'15', C'16', C'17',
-    C'18', C'19', C'1a', C'1b', C'1c', C'1d', C'1e', C'1f',
-    C'20', C'21', C'22', C'23', C'24', C'25', C'26', C'27',
-    C'28', C'29', C'2a', C'2b', C'2c', C'2d', C'2e', C'2f',
-    C'30', C'31', C'32', C'33', C'34', C'35', C'36', C'37',
-    C'38', C'39', C'3a', C'3b', C'3c', C'3d', C'3e', C'3f',
-    C'40', C'41', C'42', C'43', C'44', C'45', C'46', C'47',
-    C'48', C'49', C'4a', C'4b', C'4c', C'4d', C'4e', C'4f',
-    C'50', C'51', C'52', C'53', C'54', C'55', C'56', C'57',
-    C'58', C'59', C'5a', C'5b', C'5c', C'5d', C'5e', C'5f',
-    C'60', C'61', C'62', C'63', C'64', C'65', C'66', C'67',
-    C'68', C'69', C'6a', C'6b', C'6c', C'6d', C'6e', C'6f',
-    C'70', C'71', C'72', C'73', C'74', C'75', C'76', C'77',
-    C'78', C'79', C'7a', C'7b', C'7c', C'7d', C'7e', C'7f',
-    C'80', C'81', C'82', C'83', C'84', C'85', C'86', C'87',
-    C'88', C'89', C'8a', C'8b', C'8c', C'8d', C'8e', C'8f',
-    C'90', C'91', C'92', C'93', C'94', C'95', C'96', C'97',
-    C'98', C'99', C'9a', C'9b', C'9c', C'9d', C'9e', C'9f',
-    C'a0', C'a1', C'a2', C'a3', C'a4', C'a5', C'a6', C'a7',
-    C'a8', C'a9', C'aa', C'ab', C'ac', C'ad', C'ae', C'af',
-    C'b0', C'b1', C'b2', C'b3', C'b4', C'b5', C'b6', C'b7',
-    C'b8', C'b9', C'ba', C'bb', C'bc', C'bd', C'be', C'bf',
-    C'c0', C'c1', C'c2', C'c3', C'c4', C'c5', C'c6', C'c7',
-    C'c8', C'c9', C'ca', C'cb', C'cc', C'cd', C'ce', C'cf',
-    C'd0', C'd1', C'd2', C'd3', C'd4', C'd5', C'd6', C'd7',
-    C'd8', C'd9', C'da', C'db', C'dc', C'dd', C'de', C'df',
-    C'e0', C'e1', C'e2', C'e3', C'e4', C'e5', C'e6', C'e7',
-    C'e8', C'e9', C'ea', C'eb', C'ec', C'ed', C'ee', C'ef',
-    C'f0', C'f1', C'f2', C'f3', C'f4', C'f5', C'f6', C'f7',
-    C'f8', C'f9', C'fa', C'fb', C'fc', C'fd', C'fe', C'ff'
-];
-
-DCL charmatrix ARRAY (0:255) CHAR INIT := [
-  'a','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
-  'a','a','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
-  'a','a','a','X','X','X','X','X','X','X','X','X','X','X','X','X',
-  'a','a','a','a','X','X','X','X','X','X','X','X','X','X','X','X',
-  'a','a','a','a','a','X','X','X','X','X','X','X','X','X','X','X',
-  'a','a','a','a','a','a','X','X','X','X','X','X','X','X','X','X',
-  'a','a','a','a','a','a','a','X','X','X','X','X','X','X','X','X',
-  'a','a','a','a','a','a','a','a','X','X','X','X','X','X','X','X',
-  'a','a','a','a','a','a','a','a','a','X','X','X','X','X','X','X',
-  'a','a','a','a','a','a','a','a','a','a','X','X','X','X','X','X',
-  'a','a','a','a','a','a','a','a','a','a','a','X','X','X','X','X',
-  'a','a','a','a','a','a','a','a','a','a','a','a','X','X','X','X',
-  'a','a','a','a','a','a','a','a','a','a','a','a','a','X','X','X',
-  'a','a','a','a','a','a','a','a','a','a','a','a','a','a','X','X',
-  'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','X',
-  'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a'
-];
-
-DCL xptr PTR INIT := ->int_high;
-
-booleans: PROC ();
-
-       DCL val1 BOOL := TRUE;
-       DCL val2 BOOL := FALSE;
-       DCL val3 BOOL := TRUE;
-
-       val1 := TRUE XOR TRUE;
-       val1 := TRUE XOR FALSE;
-       val1 := FALSE XOR TRUE;
-       val1 := FALSE XOR FALSE;
-       val1 := val2 XOR val3;
-
-       val1 := TRUE AND TRUE;
-       val1 := TRUE AND FALSE;
-       val1 := FALSE AND TRUE;
-       val1 := FALSE AND FALSE;
-       val1 := val2 AND val3;
-
-       val1 := TRUE ANDIF TRUE;
-       val1 := TRUE ANDIF FALSE;
-       val1 := FALSE ANDIF TRUE;
-       val1 := FALSE ANDIF FALSE;
-       val1 := val2 ANDIF val3;
-
-       val1 := TRUE OR TRUE;
-       val1 := TRUE OR FALSE;
-       val1 := FALSE OR TRUE;
-       val1 := FALSE OR FALSE;
-       val1 := val2 OR val3;
-
---     val1 := NOT TRUE;
---     val1 := NOT FALSE;
---     val1 := NOT val2;
---     val1 := NOT val3;
-       
-END booleans;
-
-scalar_arithmetic: PROC ();
-
-       DCL val1 INT := 1;
-       DCL val2 INT := 2;
-       DCL val3 INT := 3;
-
-       val1 := -val2;
-       val1 := val2 + val3;
-       val1 := val2 - val3;
-       val1 := val2 * val3;
-       val1 := val2 / val3;
-       val1 := val2 MOD val3;
-       val1 := val2 REM val3;
-       
-END scalar_arithmetic;
-
-write_arrays: PROC ();
-
-       inttable1(0) := 0;
-       inttable1(1) := 1;
-       inttable1(2) := 2;
-       inttable1(3) := 3;
-       inttable1(4) := 4;
-       inttable2(5) := 5;
-       inttable2(6) := 6;
-       inttable2(7) := 7;
-       inttable2(8) := 8;
-       inttable2(9) := 9;
-
-END write_arrays;
-
-uint_low := 0;
-
-scalar_arithmetic ();
-write_arrays ();
-booleans ();
-
-END;
diff --git a/gdb/testsuite/gdb.chill/chillvars.exp b/gdb/testsuite/gdb.chill/chillvars.exp
deleted file mode 100644 (file)
index 1827c3f..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-# OBSOLETE # Copyright 1992, 1994, 1995, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Fred Fish. (fnf@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "chillvars"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     # This is needed (at least on SunOS4) to make sure the
-# OBSOLETE     # the symbol table is read.
-# OBSOLETE     gdb_test "break chillvars.ch:3" ""
-# OBSOLETE     gdb_test "delete 1" ""
-# OBSOLETE 
-# OBSOLETE     gdb_test "set width 0" ""
-# OBSOLETE     gdb_test "set print sevenbit-strings" ""
-# OBSOLETE     gdb_test "set print address off" ""
-# OBSOLETE 
-# OBSOLETE     test_BOOL
-# OBSOLETE     test_CHAR
-# OBSOLETE     test_BYTE
-# OBSOLETE     test_UBYTE
-# OBSOLETE     test_INT
-# OBSOLETE     test_UINT
-# OBSOLETE     test_LONG
-# OBSOLETE     test_ULONG
-# OBSOLETE     test_REAL
-# OBSOLETE     test_LONG_REAL
-# OBSOLETE     test_POWERSET
-# OBSOLETE     test_arrays
-# OBSOLETE     test_strings
-# OBSOLETE     test_structs
-# OBSOLETE 
-# OBSOLETE     test_ptr
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_BOOL {} {
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype bool_true"              "type = (BOOL|bool)"
-# OBSOLETE     gdb_test "ptype bool_false"             "type = (BOOL|bool)"
-# OBSOLETE     gdb_test "whatis bool_true"             "type = (BOOL|bool)"
-# OBSOLETE     gdb_test "whatis bool_false"    "type = (BOOL|bool)"
-# OBSOLETE     gdb_test "print bool_false"             " = FALSE"
-# OBSOLETE     gdb_test "print bool_true"              " = TRUE"
-# OBSOLETE 
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_CHAR {} {
-# OBSOLETE     gdb_test "ptype control_char"   "type = (CHAR|char)"
-# OBSOLETE     gdb_test "whatis control_char"  "type = (CHAR|char)"
-# OBSOLETE     gdb_test "print control_char"   { = '\^[(]7[)]'}
-# OBSOLETE     gdb_test "ptype printable_char" "type = (CHAR|char)"
-# OBSOLETE     gdb_test "whatis printable_char"        "type = (CHAR|char)"
-# OBSOLETE     gdb_test "print printable_char" " = 'a'"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print lower(char)"    { = '\^[(]0[)]'}
-# OBSOLETE     gdb_test "print upper(char)"    { = '\^[(]255[)]'}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_BYTE {} {
-# OBSOLETE     gdb_test "ptype byte_low"               "type = (BYTE|byte)"
-# OBSOLETE     gdb_test "whatis byte_low"              "type = (BYTE|byte)"
-# OBSOLETE     gdb_test "print byte_low"               " = -128"
-# OBSOLETE     gdb_test "ptype byte_high"              "type = (BYTE|byte)"
-# OBSOLETE     gdb_test "whatis byte_high"             "type = (BYTE|byte)"
-# OBSOLETE     gdb_test "print byte_high"              " = 127"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print lower(byte)"    " = -128"
-# OBSOLETE     gdb_test "print upper(byte)"    " = 127"
-# OBSOLETE     gdb_test "print lower(byte_high)"       " = -128"
-# OBSOLETE     gdb_test "print upper(byte_high)"       " = 127"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_UBYTE {} {
-# OBSOLETE     gdb_test "ptype ubyte_low"              "type = (UBYTE|ubyte)"
-# OBSOLETE     gdb_test "whatis ubyte_low"             "type = (UBYTE|ubyte)"
-# OBSOLETE     gdb_test "print ubyte_low"              " = 0"
-# OBSOLETE     gdb_test "ptype ubyte_high"             "type = (UBYTE|ubyte)"
-# OBSOLETE     gdb_test "whatis ubyte_high"    "type = (UBYTE|ubyte)"
-# OBSOLETE     gdb_test "print ubyte_high"             " = 255"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_INT {} {
-# OBSOLETE     gdb_test "ptype int_low"                "type = (INT|int)"
-# OBSOLETE     gdb_test "whatis int_low"               "type = (INT|int)"
-# OBSOLETE     gdb_test "print int_low"                " = -32768"
-# OBSOLETE     gdb_test "ptype int_high"               "type = (INT|int)"
-# OBSOLETE     gdb_test "whatis int_high"              "type = (INT|int)"
-# OBSOLETE     gdb_test "print int_high"               " = 32767"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_UINT {} {
-# OBSOLETE     gdb_test "ptype uint_low"               "type = (UINT|uint)"
-# OBSOLETE     gdb_test "whatis uint_low"              "type = (UINT|uint)"
-# OBSOLETE     gdb_test "print uint_low"               " = 0"
-# OBSOLETE     gdb_test "ptype uint_high"              "type = (UINT|uint)"
-# OBSOLETE     gdb_test "whatis uint_high"             "type = (UINT|uint)"
-# OBSOLETE     gdb_test "print uint_high"              " = 65535"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_LONG {} {
-# OBSOLETE     gdb_test "ptype long_low"               "type = (LONG|long)"
-# OBSOLETE     gdb_test "whatis long_low"              "type = (LONG|long)"
-# OBSOLETE     gdb_test "print long_low"               " = -2147483648"
-# OBSOLETE     gdb_test "ptype long_high"              "type = (LONG|long)"
-# OBSOLETE     gdb_test "whatis long_high"             "type = (LONG|long)"
-# OBSOLETE     gdb_test "print long_high"              " = 2147483647"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_ULONG {} {
-# OBSOLETE     gdb_test "ptype ulong_low"              "type = (ULONG|ulong)"
-# OBSOLETE     gdb_test "whatis ulong_low"             "type = (ULONG|ulong)"
-# OBSOLETE     gdb_test "print ulong_low"              " = 0"
-# OBSOLETE     gdb_test "ptype ulong_high"             "type = (ULONG|ulong)"
-# OBSOLETE     gdb_test "whatis ulong_high"    "type = (ULONG|ulong)"
-# OBSOLETE     gdb_test "print ulong_high"             " = 4294967295"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_REAL {} {
-# OBSOLETE     gdb_test "ptype real1"          "type = (FLOAT|float)"
-# OBSOLETE     gdb_test "whatis real1"         "type = (FLOAT|float)"
-# OBSOLETE     gdb_test "print real1"          " = 3.14159274"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_LONG_REAL {} {
-# OBSOLETE     gdb_test "ptype long_real1"             "type = (DOUBLE|double)"
-# OBSOLETE     gdb_test "whatis long_real1"    "type = (DOUBLE|double)"
-# OBSOLETE     gdb_test "print long_real1"             " = 3\\.1400000000000001e\\+300"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_POWERSET {} {
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_arrays {} {
-# OBSOLETE     gdb_test "ptype booltable1"             "type = ARRAY \\(+0:3\\)+ (BOOL|bool)"
-# OBSOLETE     gdb_test_exact "print booltable1"       \
-# OBSOLETE     { = [(0): TRUE, (1:2): FALSE, (3): TRUE]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype booltable2"             "type = ARRAY \\(+4:7\\)+ (BOOL|bool)"
-# OBSOLETE     gdb_test_exact "print booltable2" { = [(4): TRUE, (5:6): FALSE, (7): TRUE]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype chartable1"             "type = ARRAY \\(+0:2\\)+ (CHAR|char)"
-# OBSOLETE     gdb_test_exact "print chartable1"  {= [(0): '^(0)', (1): '^(1)', (2): '^(2)']}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype chartable2"             "type = ARRAY \\(+3:5\\)+ (CHAR|char)"
-# OBSOLETE     gdb_test_exact "print chartable2"       \
-# OBSOLETE     {= [(3): '^(0)', (4): '^(1)', (5): '^(2)']}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype bytetable1"             "type = ARRAY \\(+0:4\\)+ (BYTE|byte)"
-# OBSOLETE     gdb_test_exact "print bytetable1"               \
-# OBSOLETE        {= [(0): -2, (1): -1, (2): 0, (3): 1, (4): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype bytetable2"             "type = ARRAY \\(+5:9\\)+ (BYTE|byte)"
-# OBSOLETE     gdb_test_exact "print bytetable2"       \
-# OBSOLETE     {= [(5): -2, (6): -1, (7): 0, (8): 1, (9): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype bytetable3" \
-# OBSOLETE     "type = ARRAY \\(1:2\\) ARRAY \\('c':'d'\\) ARRAY \\(FALSE:TRUE\\) (BYTE|byte)"
-# OBSOLETE     gdb_test_exact "print bytetable3" \
-# OBSOLETE     {= [(1): [('c'): [(FALSE): 0, (TRUE): 1], ('d'): [(FALSE): 2, (TRUE): 3]], (2): [('c'): [(FALSE): 4, (TRUE): 5], ('d'): [(FALSE): 6, (TRUE): 7]]]}
-# OBSOLETE     gdb_test "ptype bytetable4" \
-# OBSOLETE     "type = ARRAY \\(1:2\\) ARRAY \\('c':'d'\\) ARRAY \\(FALSE:TRUE\\) (BYTE|byte)"
-# OBSOLETE     gdb_test_exact "print bytetable4" \
-# OBSOLETE     {= [(1): [('c'): [(FALSE): 0, (TRUE): 1], ('d'): [(FALSE): 2, (TRUE): 3]], (2): [('c'): [(FALSE): 4, (TRUE): 5], ('d'): [(FALSE): 6, (TRUE): 7]]]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype ubytetable1"    "type = ARRAY \\(+0:4\\)+ (UBYTE|ubyte)"
-# OBSOLETE     gdb_test_exact "print ubytetable1"      \
-# OBSOLETE     {= [(0): 0, (1): 1, (2): 2, (3): 3, (4): 4]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype ubytetable2"    "type = ARRAY \\(+5:9\\)+ (UBYTE|ubyte)"
-# OBSOLETE     gdb_test_exact "print ubytetable2"      \
-# OBSOLETE     {= [(5): 0, (6): 1, (7): 2, (8): 3, (9): 4]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype inttable1"              "type = ARRAY \\(+0:4\\)+ (INT|int)"
-# OBSOLETE     gdb_test_exact "print inttable1"        \
-# OBSOLETE     {= [(0): -2, (1): -1, (2): 0, (3): 1, (4): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype inttable2"              "type = ARRAY \\(+5:9\\)+ (INT|int)"
-# OBSOLETE     gdb_test_exact "print inttable2"                \
-# OBSOLETE     {= [(5): -2, (6): -1, (7): 0, (8): 1, (9): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype uinttable1"             "type = ARRAY \\(+0:4\\)+ (UINT|uint)"
-# OBSOLETE     gdb_test_exact "print uinttable1"       \
-# OBSOLETE     {= [(0): 0, (1): 1, (2): 2, (3): 3, (4): 4]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype uinttable2"             "type = ARRAY \\(+5:9\\)+ (UINT|uint)"
-# OBSOLETE     gdb_test_exact "print uinttable2"       \
-# OBSOLETE     {= [(5): 0, (6): 1, (7): 2, (8): 3, (9): 4]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype longtable1"             "type = ARRAY \\(+0:4\\)+ (LONG|long)"
-# OBSOLETE     gdb_test_exact "print longtable1"       \
-# OBSOLETE     {= [(0): -2, (1): -1, (2): 0, (3): 1, (4): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype longtable2"             "type = ARRAY \\(+5:9\\)+ (LONG|long)"
-# OBSOLETE     gdb_test_exact "print longtable2"       \
-# OBSOLETE     {= [(5): -2, (6): -1, (7): 0, (8): 1, (9): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype ulongtable1"    "type = ARRAY \\(+0:4\\)+ (ULONG|ulong)"
-# OBSOLETE     gdb_test_exact "print ulongtable1"      \
-# OBSOLETE     {= [(0): 0, (1): 1, (2): 2, (3): 3, (4): 4]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype ulongtable2"    "type = ARRAY \\(+5:9\\)+ (ULONG|ulong)"
-# OBSOLETE     gdb_test_exact "print ulongtable2"      \
-# OBSOLETE     {= [(5): 0, (6): 1, (7): 2, (8): 3, (9): 4]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype realtable1"             "type = ARRAY \\(+0:4\\)+ (FLOAT|float)"
-# OBSOLETE     gdb_test_exact "print realtable1"       \
-# OBSOLETE     {= [(0): -2, (1): -1, (2): 0, (3): 1, (4): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype realtable2"             "type = ARRAY \\(+5:9\\)+ (FLOAT|float)"
-# OBSOLETE     gdb_test_exact "print realtable2"       \
-# OBSOLETE     {= [(5): -2, (6): -1, (7): 0, (8): 1, (9): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype longrealtable1" "type = ARRAY \\(+0:4\\)+ (DOUBLE|double)"
-# OBSOLETE     gdb_test_exact "print longrealtable1" \
-# OBSOLETE     {= [(0): -2, (1): -1, (2): 0, (3): 1, (4): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype longrealtable2" "type = ARRAY \\(+5:9\\)+ (DOUBLE|double)"
-# OBSOLETE     gdb_test_exact "print longrealtable2"   \
-# OBSOLETE     {= [(5): -2, (6): -1, (7): 0, (8): 1, (9): 2]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "print length(longrealtable2)" {= 5}
-# OBSOLETE     gdb_test "print lower(longrealtable2)" {= 5}
-# OBSOLETE     gdb_test "print upper(longrealtable2)" {= 9}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_strings {} {
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype string1"                "type = CHARS \[(\]4\[)\]+"
-# OBSOLETE     gdb_test "print string1"                " = \"abcd\""
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype string2"                "type = CHARS \[(\]+5\[)\]+"
-# OBSOLETE     gdb_test "print string2"                { = \"ef\^\(0\)gh\"}
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype string3"                "type = CHARS \[(\]+6\[)\]+"
-# OBSOLETE     gdb_test "print string3"                " = \"efghij\""
-# OBSOLETE 
-# OBSOLETE     gdb_test "ptype string4"                "type = CHARS \[(\]+7\[)\]+"
-# OBSOLETE     gdb_test "print string4"                { = \"zzzzzz\^\(0\)\"}
-# OBSOLETE 
-# OBSOLETE     # These tests require a running process, so run to one of the procs
-# OBSOLETE     # and then do the tests.
-# OBSOLETE 
-# OBSOLETE     if [runto scalar_arithmetic] then {
-# OBSOLETE     gdb_test "ptype string1//string2"       "type = CHARS \\(9\\)"
-# OBSOLETE     gdb_test "print string1//string2"    { = \"abcdef\^\(0\)gh\"}
-# OBSOLETE     gdb_test_exact {ptype "a chill string"} {type = CHARS (14)}
-# OBSOLETE     gdb_test "print 'a chill string'"       " = \"a chill string\""
-# OBSOLETE     gdb_test "print \"ef\"//c'00'//\"gh\""  { = \"ef\^\(0\)gh\"}
-# OBSOLETE     gdb_test "print string1 // \"efgh\""    " = \"abcdefgh\""
-# OBSOLETE     gdb_test "print (6) 'z'"                " = \"zzzzzz\""
-# OBSOLETE     gdb_test "ptype (6) 'z'"                "type = CHARS \[(\]+6\[)\]+"
-# OBSOLETE     gdb_test "print (1+2*3) 'x'"            " = \"xxxxxxx\""
-# OBSOLETE     gdb_test "ptype (1+2*3) 'x'"            "type = CHARS \[(\]+7\[)\]+"
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_structs {} {
-# OBSOLETE     gdb_test "ptype struct1" \
-# OBSOLETE     "type = STRUCT \\(+.*abool (BOOL|bool),.*aint (INT|int),.*astring CHARS \\(+8\\)+.*\\)+"
-# OBSOLETE     gdb_test "print struct1" \
-# OBSOLETE     ".* = \\\[\.abool: TRUE, \.aint: 123, \.astring: \"a string\"\\\]"
-# OBSOLETE     gdb_test "ptype struct2" \
-# OBSOLETE     "type = STRUCT \\(+.*abool (BOOL|bool),.*nstruct simple_struct,.*aint (INT|int).*\\)+"
-# OBSOLETE     gdb_test "print struct2" \
-# OBSOLETE     ".* = \\\[.abool: TRUE, \.nstruct: \\\[\.abool: FALSE, \.aint: 456, \.astring: \"deadbeef\"\\\], \.aint: 789\\\]"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_ptr {} {
-# OBSOLETE     # This is to test Cygnus PR 6932
-# OBSOLETE     gdb_test "print xptr->int" ".* = 32767"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/configure b/gdb/testsuite/gdb.chill/configure
deleted file mode 100755 (executable)
index 24e429d..0000000
+++ /dev/null
@@ -1,899 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12.1 
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-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'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-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
-
-  case "$ac_option" in
-  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) ac_optarg= ;;
-  esac
-
-  # 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 ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build="$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" ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir="$ac_optarg" ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    eval "enable_${ac_feature}=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
-      *) 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)
-    # 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 << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
-  --cache-file=FILE       cache test results in FILE
-  --help                  print this message
-  --no-create             do not create output files
-  --quiet, --silent       do not print \`checking...' messages
-  --version               print the version of autoconf that created configure
-Directory and file names:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [same as prefix]
-  --bindir=DIR            user executables in DIR [EPREFIX/bin]
-  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
-  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
-  --datadir=DIR           read-only architecture-independent data in DIR
-                          [PREFIX/share]
-  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
-                          [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
-  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
-  --includedir=DIR        C header files in DIR [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
-  --infodir=DIR           info documentation in DIR [PREFIX/info]
-  --mandir=DIR            man documentation in DIR [PREFIX/man]
-  --srcdir=DIR            find the sources in DIR [configure dir or ..]
-  --program-prefix=PREFIX prepend PREFIX to installed program names
-  --program-suffix=SUFFIX append SUFFIX to installed program names
-  --program-transform-name=PROGRAM
-                          run sed PROGRAM on installed program names
-EOF
-    cat << EOF
-Host type:
-  --build=BUILD           configure for building on BUILD [BUILD=HOST]
-  --host=HOST             configure for HOST [guessed]
-  --target=TARGET         configure for TARGET [TARGET=HOST]
-Features and packages:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --x-includes=DIR        X include files are in DIR
-  --x-libraries=DIR       X library files are in DIR
-EOF
-    if test -n "$ac_help"; then
-      echo "--enable and --with options recognized:$ac_help"
-    fi
-    exit 0 ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host="$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)
-    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 ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target="$ac_optarg" ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.12.1"
-    exit 0 ;;
-
-  -with-* | --with-*)
-    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_${ac_package}='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
-    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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
-    ;;
-
-  *)
-    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
-      echo "configure: warning: $ac_option: invalid host type" 1>&2
-    fi
-    if test "x$nonopt" != xNONE; then
-      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
-    fi
-    nonopt="$ac_option"
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
-  exec 6>/dev/null
-else
-  exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
-  case "$ac_arg" in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c) ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
-  esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set.  These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
-
-# 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
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=chexp.exp
-
-# 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_prog=$0
-  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
-  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
-  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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
-  else
-    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
-  fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# 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 "loading site script $ac_site_file"
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  echo "loading cache $cache_file"
-  . $cache_file
-else
-  echo "creating cache $cache_file"
-  > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-    ac_n= ac_c='
-' ac_t='       '
-  else
-    ac_n=-n ac_c= ac_t=
-  fi
-else
-  ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-CC=${CC-cc}
-
-ac_aux_dir=
-for ac_dir in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../..; 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
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-# Do some error checking and defaulting for the host and target type.
-# The inputs are:
-#    configure --host=HOST --target=TARGET --build=BUILD NONOPT
-#
-# The rules are:
-# 1. You are not allowed to specify --host, --target, and nonopt at the
-#    same time.
-# 2. Host defaults to nonopt.
-# 3. If nonopt is not specified, then host defaults to the current host,
-#    as determined by config.guess.
-# 4. Target and build default to nonopt.
-# 5. If nonopt is not specified, then target and build default to host.
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-case $host---$target---$nonopt in
-NONE---*---* | *---NONE---* | *---*---NONE) ;;
-*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
-esac
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:573: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
-  case $nonopt in
-  NONE)
-    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-    fi ;;
-  *) host_alias=$nonopt ;;
-  esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:594: checking target system type" >&5
-
-target_alias=$target
-case "$target_alias" in
-NONE)
-  case $nonopt in
-  NONE) target_alias=$host_alias ;;
-  *) target_alias=$nonopt ;;
-  esac ;;
-esac
-
-target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
-target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$target" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:612: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
-  case $nonopt in
-  NONE) build_alias=$host_alias ;;
-  *) build_alias=$nonopt ;;
-  esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-test "$host_alias" != "$target_alias" &&
-  test "$program_prefix$program_suffix$program_transform_name" = \
-    NONENONEs,x,x, &&
-  program_prefix=${target_alias}-
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# 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.  It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already.  You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# 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) 2>&1 | grep ac_space` in
-  *ac_space=\ *)
-    # `set' does not quote correctly, so add quotes (double-quote substitution
-    # turns \\\\ into \\, and sed turns \\ into \).
-    sed -n \
-      -e "s/'/'\\\\''/g" \
-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-    ;;
-  *)
-    # `set' quotes correctly as required by POSIX, so do not add quotes.
-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-    ;;
-  esac >> confcache
-if cmp -s $cache_file confcache; then
-  :
-else
-  if test -w $cache_file; then
-    echo "updating cache $cache_file"
-    cat confcache > $cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[        ]*VPATH[        ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-cat > conftest.defs <<\EOF
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-s%[    `~#$^&*(){}\\|;'"<>?]%\\&%g
-s%\[%\\&%g
-s%\]%\\&%g
-s%\$%$$%g
-EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-rm -f conftest.defs
-
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
-  case "\$ac_option" in
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
-    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
-    exit 0 ;;
-  -help | --help | --hel | --he | --h)
-    echo "\$ac_cs_usage"; exit 0 ;;
-  *) echo "\$ac_cs_usage"; exit 1 ;;
-  esac
-done
-
-ac_given_srcdir=$srcdir
-
-trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@CC@%$CC%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@target@%$target%g
-s%@target_alias@%$target_alias%g
-s%@target_cpu@%$target_cpu%g
-s%@target_vendor@%$target_vendor%g
-s%@target_os@%$target_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# 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_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # 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" conftest.subs > conftest.s$ac_file
-  else
-    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-  fi
-  if test ! -s conftest.s$ac_file; then
-    ac_more_lines=false
-    rm -f conftest.s$ac_file
-  else
-    if test -z "$ac_sed_cmds"; then
-      ac_sed_cmds="sed -f conftest.s$ac_file"
-    else
-      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
-    fi
-    ac_file=`expr $ac_file + 1`
-    ac_beg=$ac_end
-    ac_end=`expr $ac_end + $ac_max_sed_cmds`
-  fi
-done
-if test -z "$ac_sed_cmds"; then
-  ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case "$ac_file" in
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.in" ;;
-  esac
-
-  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
-  # Remove last slash and all that follows it.  Not all systems have dirname.
-  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-    # The file is in a subdirectory.
-    test ! -d "$ac_dir" && mkdir "$ac_dir"
-    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
-    # A "../" for each directory in $ac_dir_suffix.
-    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
-  else
-    ac_dir_suffix= ac_dots=
-  fi
-
-  case "$ac_given_srcdir" in
-  .)  srcdir=.
-      if test -z "$ac_dots"; then top_srcdir=.
-      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
-  *) # Relative path.
-    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-    top_srcdir="$ac_dots$ac_given_srcdir" ;;
-  esac
-
-
-  echo creating "$ac_file"
-  rm -f "$ac_file"
-  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
-  case "$ac_file" in
-  *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
-  *) ac_comsub= ;;
-  esac
-
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/gdb/testsuite/gdb.chill/configure.in b/gdb/testsuite/gdb.chill/configure.in
deleted file mode 100644 (file)
index 3eed026..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-dnl Process this file file with autoconf to produce a configure script.
-
-AC_PREREQ(2.5)
-AC_INIT(chexp.exp)
-
-CC=${CC-cc}
-AC_SUBST(CC)
-AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../..)
-AC_CANONICAL_SYSTEM
-
-AC_OUTPUT(Makefile)
diff --git a/gdb/testsuite/gdb.chill/enum.ch b/gdb/testsuite/gdb.chill/enum.ch
deleted file mode 100644 (file)
index 971fc94..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-hugo: module
-
-  synmode m_set = set (a, b, c, d, e, f, g, h, i);
-  dcl x long;
-  dcl y m_set;
-
-  writetext (stdout, "done.%/");
-
-end hugo;
diff --git a/gdb/testsuite/gdb.chill/enum.exp b/gdb/testsuite/gdb.chill/enum.exp
deleted file mode 100644 (file)
index a4e2930..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Wilfried Moser (moser@aut.alcatel.at
-# OBSOLETE #
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "enum"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     return [gdb_test "show language" ".* source language is \"chill\".*" \
-# OBSOLETE     "set language to \"chill\""]
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set prms_id 0
-# OBSOLETE set bug_id 0
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if ![set_lang_chill] then {
-# OBSOLETE     runto hugo_
-# OBSOLETE 
-# OBSOLETE     send_gdb "set var \$i := d\n"
-# OBSOLETE     gdb_expect -re ".*$gdb_prompt $"
-# OBSOLETE     gdb_test "print \$i" { = d}
-# OBSOLETE     gdb_test "print size (\$i)" { = 1}
-# OBSOLETE     gdb_test "print b+c" { = 3}
-# OBSOLETE     gdb_test "print c*d" { = 6}
-# OBSOLETE     gdb_test "print a<b" { = TRUE}
-# OBSOLETE     gdb_test "print a=b" { = FALSE}
-# OBSOLETE     gdb_test "print a=a" { = TRUE}
-# OBSOLETE     gdb_test "print a/=\$i" { = TRUE}
-# OBSOLETE 
-# OBSOLETE # This is PR 8870
-# OBSOLETE     gdb_test "break malloc" ".*"
-# OBSOLETE     gdb_test {set var $j := m_set[b]} ".*invalid.*tuple.*"
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/func1.ch b/gdb/testsuite/gdb.chill/func1.ch
deleted file mode 100644 (file)
index d0d28ce..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-func1: MODULE
-
-SYNMODE m_set = SET (e1, e2, e3, e4, e5, e6, e7, e8, e9, e10);
-SYNMODE m_setrange = RANGE (e3:e8);
-SYNMODE m_ps = POWERSET m_set;
-SYNMODE m_rangeps = POWERSET RANGE(0:31);
-GRANT ALL;
-
-END func1;
diff --git a/gdb/testsuite/gdb.chill/gch1041.ch b/gdb/testsuite/gdb.chill/gch1041.ch
deleted file mode 100644 (file)
index a9ce80b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-arr: MODULE
-
-SYNMODE m_chars = CHARS(30) VARYING;
-SYNMODE m_s = STRUCT (l LONG, c m_chars, b BOOL);
-
-DCL a1 ARRAY (1:1000) LONG INIT := [(5:100): 33, (1:4): 44, (ELSE): 55 ];
-DCL a2 ARRAY (1:10) m_s INIT := [(*): [ 22, "mowi", TRUE ] ];
-DCL a3 ARRAY (CHAR) CHAR INIT := [(*): 'X'];
-
-SYNMODE m_set = SET (e1, e2, e3, e4, e5, e6, e7, e9, e10);
-DCL a4 ARRAY (m_set) BOOL INIT := [(*): TRUE];
-
-a1 := [(5:100): 33, (1:4): 44, (ELSE): 55 ];
-a1 := [ (*): 22 ];
-a2 := [(*): [ 22, "mowi", TRUE ] ];
-
-END arr;
diff --git a/gdb/testsuite/gdb.chill/gch1041.exp b/gdb/testsuite/gdb.chill/gch1041.exp
deleted file mode 100644 (file)
index fe13dc9..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Fred Fish. (fnf@cygnus.com)
-# OBSOLETE #                          Martin Pottendorfer (pottendo@aut.alcatel.at)
-# OBSOLETE #
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "gch1041"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     return [gdb_test "show language" ".* source language is \"chill\".*" \
-# OBSOLETE     "set language to \"chill\""]
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set prms_id 0
-# OBSOLETE set bug_id 0
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if ![set_lang_chill] then {
-# OBSOLETE     runto arr_
-# OBSOLETE     # check if array slices print correct index
-# OBSOLETE     gdb_test {print a1(10:30)} { = \[\(10:30\): 33\]}
-# OBSOLETE     gdb_test {print a2(3:5)} { = \[\(3:5\): \[.l: 22, .c: "mowi", .b: TRUE\]\]}
-# OBSOLETE     gdb_test {print a3('a':'c')} { = \[\('a':'c'\): 'X'\]}
-# OBSOLETE     gdb_test {print a4(e2:e5)} { = \[\(e2:e5\): TRUE\]}
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/gch1272.ch b/gdb/testsuite/gdb.chill/gch1272.ch
deleted file mode 100644 (file)
index 6112d4b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-gch1272: MODULE
-
-SYNMODE m_array = ARRAY (0:99) INT;
-DCL foo m_array;
-
-SYNMODE m_xxx = ARRAY (1:10) LONG;
-
-SYNMODE m_struct = STRUCT (i LONG, b BOOL);
-SYNMODE m_bar = ARRAY (-10:20) m_struct;
-DCL bar m_bar;
-
-SYNMODE m_ps = POWERSET LONG (0:20);
-
-brrr: PROC ()
-END;
-
-foo := [ (*): 222 ];
-
-brrr ();
-
-END gch1272;
diff --git a/gdb/testsuite/gdb.chill/gch1272.exp b/gdb/testsuite/gdb.chill/gch1272.exp
deleted file mode 100644 (file)
index 2d2ce9e..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Wilfried Moser (moser@aut.alcatel.at)
-# OBSOLETE #
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE         strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "gch1272"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE         -re ".*$gdb_prompt $" {}
-# OBSOLETE         timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     return [gdb_test "show language" ".* source language is \"chill\".*" \
-# OBSOLETE         "set language to \"chill\""]
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set prms_id 0
-# OBSOLETE set bug_id 0
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if ![set_lang_chill] then {
-# OBSOLETE     runto brrr
-# OBSOLETE 
-# OBSOLETE     # check foo
-# OBSOLETE     gdb_test {print foo} { = \[\(0:99\): 222\]}
-# OBSOLETE     gdb_test "set var foo := m_array\[\(\*\):44\]" ".*"
-# OBSOLETE     gdb_test {print foo} { = \[\(0:99\): 44\]}
-# OBSOLETE 
-# OBSOLETE     # check bar
-# OBSOLETE     gdb_test {print bar} { = \[\(-10:20\): \[.i: 0, .b: FALSE\]\]}
-# OBSOLETE     gdb_test "set var bar := m_bar\[\(\*\): \[42, TRUE\]\]" ".*"
-# OBSOLETE     gdb_test {print bar} { = \[\(-10:20\): \[.i: 42, .b: TRUE\]\]}
-# OBSOLETE 
-# OBSOLETE     # some failues
-# OBSOLETE     gdb_test "set var foo := \[\(\*\):44\]" {\(\*\) only possible with modename in front of tuple \(mode\[\.\.\]\)}
-# OBSOLETE     gdb_test "set var foo := m_xxx\[\(\*\):44\]" {Invalid cast\.}
-# OBSOLETE     gdb_test "set var foo := m_struct\[\(\*\):44\]" {\(\*\) in invalid context}
-# OBSOLETE     gdb_test "set var foo := m_ps\[\(\*\):44\]" {\(\*\) in invalid context}
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/gch1280.ch b/gdb/testsuite/gdb.chill/gch1280.ch
deleted file mode 100644 (file)
index 3fba71f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-gch1280: MODULE
-
-SYNMODE m_x = ARRAY (1:3) LONG;
-DCL v_x m_x;
-DCL v_xx m_x;
-
-doit: PROC ()
-END doit;
-
-v_x := [ 11, 12, 13 ];
-doit ();
-
-END gch1280;
diff --git a/gdb/testsuite/gdb.chill/gch1280.exp b/gdb/testsuite/gdb.chill/gch1280.exp
deleted file mode 100644 (file)
index 7063842..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Wilfried Moser (moser@aut.alcatel.at)
-# OBSOLETE #
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE         strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "gch1280"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE         -re ".*$gdb_prompt $" {}
-# OBSOLETE         timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     return [gdb_test "show language" ".* source language is \"chill\".*" \
-# OBSOLETE         "set language to \"chill\""]
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set prms_id 0
-# OBSOLETE set bug_id 0
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if ![set_lang_chill] then {
-# OBSOLETE     runto doit
-# OBSOLETE     gdb_test "next" ""
-# OBSOLETE     # check too many array elements
-# OBSOLETE     gdb_test {set var v_x := [1,2,3,4,5]} {Too many array elements}
-# OBSOLETE     gdb_test {set var $i := m_x[(3): 22, 25]} {Too many array elements}
-# OBSOLETE     gdb_test "set var \$i := m_x\[\(2\): 22, 25\]" ""
-# OBSOLETE     gdb_test {print $i} { = \[\(1\): 0, \(2\): 22, \(3\): 25\]}
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/gch922.ch b/gdb/testsuite/gdb.chill/gch922.ch
deleted file mode 100644 (file)
index b3e8a23..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-xx : module
-  
-dcl a chars(200) varying init := (70)'^(0)' // "Jason""^(0,5)""Hugo^(10)" // (70)'^(1)';
-dcl b chars(20) varying init := "Jason""^(0,5)""Hugo^(10)";
-dcl c chars(256) varying init := (70)'a' // "^(0,5)Jason" // (70)'b';
-dcl d char init := '^(11)';
-
-bulk: PROC ();
-END bulk;
-
-a := (50) '^(255,0,222,127)';
-b := (1)'^(200)';
-d := 'a';
-
-c:= (256)" ";
-
-DO FOR i:= 0 BY 1 TO 255;
-   c (255-i) := char (i);
-OD;
-  
-bulk ();
-
-end xx;
\ No newline at end of file
diff --git a/gdb/testsuite/gdb.chill/gch922.exp b/gdb/testsuite/gdb.chill/gch922.exp
deleted file mode 100644 (file)
index cdfdd35..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file tests various Chill values, expressions, and types.
-# OBSOLETE 
-# OBSOLETE # This file was written by Wilfried Moser (moser@aut.alcatel.at)
-# OBSOLETE #                      Kurt Fuchs (fuchs_k@aut.alcatel.at)
-# OBSOLETE #
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "gch922"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -w -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     send_gdb "show language\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".* source language is \"chill\".*$gdb_prompt $" {
-# OBSOLETE         pass "set language to \"chill\""
-# OBSOLETE         send_gdb "break xx_\n"
-# OBSOLETE         gdb_expect {
-# OBSOLETE             -re ".*$gdb_prompt $" {
-# OBSOLETE                 send_gdb "run\n" 
-# OBSOLETE                 gdb_expect -re ".*$gdb_prompt $" {}
-# OBSOLETE                 return 1
-# OBSOLETE             }
-# OBSOLETE             timeout {
-# OBSOLETE                 fail "can't set breakpoint (timeout)"
-# OBSOLETE                 return 0
-# OBSOLETE             }
-# OBSOLETE         }
-# OBSOLETE     }
-# OBSOLETE     -re ".*$gdb_prompt $" {
-# OBSOLETE         fail "setting language to \"chill\""
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     timeout {
-# OBSOLETE         fail "can't show language (timeout)"
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     }
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Testing printing of a specific value.  Increment passcount for
-# OBSOLETE # success or issue fail message for failure.  In both cases, return
-# OBSOLETE # a 1 to indicate that more tests can proceed.  However a timeout
-# OBSOLETE # is a serious error, generates a special fail message, and causes
-# OBSOLETE # a 0 to be returned to indicate that more tests are likely to fail
-# OBSOLETE # as well.
-# OBSOLETE #
-# OBSOLETE # Args are:
-# OBSOLETE #
-# OBSOLETE #   First one is string to send_gdb to gdb
-# OBSOLETE #   Second one is string to match gdb result to
-# OBSOLETE #   Third one is an optional message to be printed
-# OBSOLETE 
-# OBSOLETE proc test_print_accept { args } {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global passcount
-# OBSOLETE     global verbose
-# OBSOLETE 
-# OBSOLETE     if [llength $args]==3 then {
-# OBSOLETE     set message [lindex $args 2]
-# OBSOLETE     } else {
-# OBSOLETE     set message [lindex $args 0]
-# OBSOLETE     }
-# OBSOLETE     set sendthis [lindex $args 0]
-# OBSOLETE     set expectthis [lindex $args 1]
-# OBSOLETE     set result [gdb_test $sendthis ".* = ${expectthis}" $message]
-# OBSOLETE     if $result==0 {incr passcount}
-# OBSOLETE     return $result
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE 
-# OBSOLETE proc test_chars {} {
-# OBSOLETE     global passcount gdb_prompt
-# OBSOLETE 
-# OBSOLETE     verbose "Testing Chars"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     test_print_accept "print a" {'\^\(0\)'<repeats 70 times>//"Jason""\^\(0,5\)""Hugo\^\(10\)"//'\^\(1\)'<repeats 70 times>}
-# OBSOLETE     test_print_accept "print b" {"Jason""\^\(0,5\)""Hugo\^\(10\)"}
-# OBSOLETE     test_print_accept "print c" {'a'<repeats 70 times>//"\^\(0,5\)Jason"//'b'<repeats 70 times>}
-# OBSOLETE     test_print_accept "print d" {'\^\(11\)'}
-# OBSOLETE 
-# OBSOLETE     gdb_test "set var a := (100)'\^(0,255)'" ""
-# OBSOLETE     test_print_accept "print a" {"\^\(0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255\)"}
-# OBSOLETE 
-# OBSOLETE     send_gdb "set var a := (10)'\^(1)'//(26)\"\^(66,67)\"//\" \"//'I'//' '//'a'//'m'//\" Hugo\" \n" ; gdb_expect -re "$gdb_prompt $"
-# OBSOLETE     test_print_accept "print a" {"\^\(1,1,1,1,1,1,1,1,1,1\)BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC I am Hugo"}
-# OBSOLETE     send_gdb "set var b := \"Hugo \"\"\^(3,4)\"\"Otto\^(17)\" \n" ; gdb_expect -re "$gdb_prompt $"
-# OBSOLETE     test_print_accept "print b" {"Hugo ""\^\(3,4\)""Otto\^\(17\)"}
-# OBSOLETE     send_gdb "set var c := (70)'b' // \"\^(2,3)Hugo \" // (70)'c' \n" ; gdb_expect -re "$gdb_prompt $"
-# OBSOLETE     test_print_accept "print c" {'b'<repeats 70 times>//"\^\(2,3\)Hugo "//'c'<repeats 70 times>}
-# OBSOLETE     gdb_test "set var d := '\^(199)'" ""
-# OBSOLETE     test_print_accept "print d" {'\^\(199\)'}
-# OBSOLETE 
-# OBSOLETE     test_print_accept "print (10)'\^(0)'//(26)\"\^(66,67)\"//\" \"//'I'//' '//'a'//'m'//\" Hugo\"" {"\^\(0,0,0,0,0,0,0,0,0,0\)BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC I am Hugo"}
-# OBSOLETE     test_print_accept "print \"Jason\"\"\^(0,5)\"\"Hugo\^(10)\"" {"Jason""\^\(0,5\)""Hugo\^\(10\)"}
-# OBSOLETE 
-# OBSOLETE     send_gdb "set var a := \"\" \n" ; gdb_expect -re "$gdb_prompt $"
-# OBSOLETE     test_print_accept "print a" {""}
-# OBSOLETE     send_gdb "set var a := \"\"\"\" \n" ; gdb_expect -re "$gdb_prompt $"
-# OBSOLETE     test_print_accept "print a" {""""}
-# OBSOLETE     send_gdb "set var a := \" \"\"\" \n" ; gdb_expect -re "$gdb_prompt $"
-# OBSOLETE     test_print_accept "print a" {" """}
-# OBSOLETE     send_gdb "set var a := \"\^\^\" \n" ; gdb_expect -re "$gdb_prompt $"
-# OBSOLETE     test_print_accept "print a" {"\^\^"}
-# OBSOLETE     send_gdb "set var a := \"'\" \n" ; gdb_expect -re "$gdb_prompt $"
-# OBSOLETE     test_print_accept "print a" {"'"}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE 
-# OBSOLETE proc test_code {} {
-# OBSOLETE     global passcount gdb_prompt
-# OBSOLETE 
-# OBSOLETE     verbose "Testing Chars"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     runto bulk
-# OBSOLETE     test_print_accept "print a" {"\^\(255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127,255,0,222,127\)"}
-# OBSOLETE     test_print_accept "print b" {"\^\(200\)"}
-# OBSOLETE #    test_print_accept "print c" {'a'<repeats 70 times>//"\^\(0,5\)Jason"//'b'<repeats 70 times>}
-# OBSOLETE     test_print_accept "print d" {'a'}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE 
-# OBSOLETE if [set_lang_chill] then {
-# OBSOLETE     # test builtins as described in chapter 6.20.3 Z.200
-# OBSOLETE 
-# OBSOLETE     test_chars
-# OBSOLETE #    test_code
-# OBSOLETE } else {
-# OBSOLETE     warning "$test_name tests suppressed."
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/gch981.ch b/gdb/testsuite/gdb.chill/gch981.ch
deleted file mode 100644 (file)
index e8f0474..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-xx: MODULE
-
-SYNMODE m_set1 = SET (e1, e2, e3, e4, e5);
-DCL v_set1 m_set1 INIT := e3;
-
-SYNMODE m_set2 = SET (a1=1, a2=2, a3=17, a4=9, a5=8, a6=0, a7=14, a8=33, a9=12);
-DCL v1_set2 m_set2 INIT := a1;
-DCL v2_set2 m_set2 INIT := a2;
-DCL v3_set2 m_set2 INIT := a3;
-DCL v4_set2 m_set2 INIT := a4;
-DCL v5_set2 m_set2 INIT := a5;
-DCL v6_set2 m_set2 INIT := a6;
-DCL v7_set2 m_set2 INIT := a7;
-DCL v8_set2 m_set2 INIT := a8;
-DCL v9_set2 m_set2 INIT := a9;
-
-SYNMODE m_set3 = SET (b1, b2, b3, b4, b5 = 4711, b6, b7 = 4713);
-DCL v_set3 m_set3 INIT := b7;
-
-SYNMODE m_set4 = SET(s1=111111, s2, s3, s4); 
-DCL v1_set4 m_set4 INIT := s1;
-
-SYNMODE m_set_range = m_set1(e2:e5);
-DCL v_set_range m_set_range INIT := e3;
-
-SYNMODE m_set_range_arr = ARRAY (m_set_range) BYTE;
-DCL v_set_range_arr ARRAY (m_set_range) BYTE;
-
-SYNMODE m_set_arr = ARRAY (m_set1) BYTE;
-DCL v_set_arr ARRAY (m_set1) BYTE;
-
-NEWMODE m_power1 = POWERSET m_set1;
-DCL v1_power1 READ m_power1 INIT := [e1,e2,e3,e4,e5];
-DCL v2_power1 m_power1 INIT := [];
-
-NEWMODE m_power2 = POWERSET m_set2;
-DCL v_power2 m_power2 INIT := [];
-
-NEWMODE m_power3 = POWERSET m_set3;
-DCL v_power3 m_power3 INIT := [b1:b2];
-
-NEWMODE m_power4 = POWERSET CHAR;
-DCL v_power4 m_power4 INIT := ['b':'x'];
-
-NEWMODE m_power5 = POWERSET INT (2:400);
-DCL v_power5 m_power5 INIT := [2:100];
-
-NEWMODE m_power6 = POWERSET INT;
-DCL v_power6 m_power6;
-
-NEWMODE m_power7 = POWERSET LONG;
-DCL v_power7 m_power7;
-
-
-v_set1:= e2;
-v2_power1:= [e1];
-
-v_set1:= e1;
-
-END xx;
diff --git a/gdb/testsuite/gdb.chill/gch981.exp b/gdb/testsuite/gdb.chill/gch981.exp
deleted file mode 100644 (file)
index 9b684f0..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file tests various Chill values, expressions, and types.
-# OBSOLETE 
-# OBSOLETE # This file was written by Wilfried Moser (moser@aut.alcatel.at)
-# OBSOLETE #                      Kurt Fuchs (fuchs_k@aut.alcatel.at)
-# OBSOLETE #
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "gch981"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -w -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     send_gdb "show language\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".* source language is \"chill\".*$gdb_prompt $" {
-# OBSOLETE         pass "set language to \"chill\""
-# OBSOLETE         send_gdb "break xx_\n"
-# OBSOLETE         gdb_expect {
-# OBSOLETE             -re ".*$gdb_prompt $" {
-# OBSOLETE                 send_gdb "run\n" 
-# OBSOLETE                 gdb_expect -re ".*$gdb_prompt $" {}
-# OBSOLETE                 return 1
-# OBSOLETE             }
-# OBSOLETE             timeout {
-# OBSOLETE                 fail "can't set breakpoint (timeout)"
-# OBSOLETE                 return 0
-# OBSOLETE             }
-# OBSOLETE         }
-# OBSOLETE     }
-# OBSOLETE     -re ".*$gdb_prompt $" {
-# OBSOLETE         fail "setting language to \"chill\""
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     timeout {
-# OBSOLETE         fail "can't show language (timeout)"
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     }
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Testing printing of a specific value.  Increment passcount for
-# OBSOLETE # success or issue fail message for failure.  In both cases, return
-# OBSOLETE # a 1 to indicate that more tests can proceed.  However a timeout
-# OBSOLETE # is a serious error, generates a special fail message, and causes
-# OBSOLETE # a 0 to be returned to indicate that more tests are likely to fail
-# OBSOLETE # as well.
-# OBSOLETE #
-# OBSOLETE # Args are:
-# OBSOLETE #
-# OBSOLETE #   First one is string to send_gdb to gdb
-# OBSOLETE #   Second one is string to match gdb result to
-# OBSOLETE #   Third one is an optional message to be printed
-# OBSOLETE 
-# OBSOLETE proc test_print_accept { args } {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global passcount
-# OBSOLETE     global verbose
-# OBSOLETE 
-# OBSOLETE     if [llength $args]==3 then {
-# OBSOLETE     set message [lindex $args 2]
-# OBSOLETE     } else {
-# OBSOLETE     set message [lindex $args 0]
-# OBSOLETE     }
-# OBSOLETE     set sendthis [lindex $args 0]
-# OBSOLETE     set expectthis [lindex $args 1]
-# OBSOLETE     set result [gdb_test $sendthis ".* = ${expectthis}" $message]
-# OBSOLETE     if $result==0 {incr passcount}
-# OBSOLETE     return $result
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_power {} {
-# OBSOLETE     global passcount gdb_prompt
-# OBSOLETE 
-# OBSOLETE     verbose "Testing some POWERSET Stuff"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     test_print_accept "print v1_power1" {\[e1:e5\]}
-# OBSOLETE     test_print_accept "print v2_power1" {\[\]}
-# OBSOLETE     test_print_accept "print SIZE(v1_power1)" "1"
-# OBSOLETE 
-# OBSOLETE     gdb_test "set v1_power1 := \[b1\]"  ""
-# OBSOLETE #   if GDB has rejected the improper values, we have to gdb_expect the same!
-# OBSOLETE     test_print_accept "print v1_power1" {\[e1:e5\]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "set v1_power1 := \[a1,a2\]"  ""
-# OBSOLETE     test_print_accept "print v1_power1" {\[e1:e5\]}
-# OBSOLETE     gdb_test "set v1_power1 := \[b1,b2,b3,e4\]"  ""
-# OBSOLETE     test_print_accept "print v1_power1" {\[e1:e5\]}
-# OBSOLETE     gdb_test "set v1_power1 := \[e4:e5\]"  ""
-# OBSOLETE     test_print_accept "print v1_power1" {\[e4:e5\]}
-# OBSOLETE     gdb_test "set v1_power1 := \[e1, e2:e3, e5\]"  ""
-# OBSOLETE     test_print_accept "print v1_power1" {\[e1:e3, e5\]}
-# OBSOLETE     gdb_test "set v1_power1 := \[e1, e2:e4, e4:e5\]"  ""
-# OBSOLETE     test_print_accept "print v1_power1" {\[e1:e5\]}
-# OBSOLETE     gdb_test "set v1_power1 := \[e1, e1:e3, e1:e2, e2:e3\]"  ""
-# OBSOLETE     test_print_accept "print v1_power1" {\[e1:e3\]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "set v_power2 := \[e2\]"  ""
-# OBSOLETE     test_print_accept "print v_power2" {\[\]}
-# OBSOLETE     gdb_test "set v_power2 := \[1,2,3\]"  ""
-# OBSOLETE     test_print_accept "print v_power2" {\[\]}
-# OBSOLETE     gdb_test "set v_power2 := \[e2, b2, b1\]"  ""
-# OBSOLETE     test_print_accept "print v_power2" {\[\]}
-# OBSOLETE 
-# OBSOLETE # Note, that this is a numbered SET, so a1:a3 contains all elements (exept a6)
-# OBSOLETE     gdb_test "set v_power2 := \[a1:a3, a6:a4, a7:a9\]"  ""
-# OBSOLETE     test_print_accept "print v_power2" {\[a6:a3\]}
-# OBSOLETE     gdb_test "set v_power2 := \[a1, a4:a6, a9\]"  ""
-# OBSOLETE     test_print_accept "print v_power2" {\[a1, a9\]}
-# OBSOLETE     gdb_test "set v_power2 := \[a1:a2, a6, a9\]"  ""
-# OBSOLETE     test_print_accept "print v_power2" {\[a6:a2, a9\]}
-# OBSOLETE     gdb_test "set v_power2 := \[a1, a4, a7:a8, a9:a3\]"  ""
-# OBSOLETE     test_print_accept "print v_power2" {\[a1, a4, a9:a8\]}
-# OBSOLETE     gdb_test "set v_power2 := \[a1, a4:a8\]"  ""
-# OBSOLETE     test_print_accept "print v_power2" {\[a1, a4:a8\]}
-# OBSOLETE     gdb_test "set v_power2 := \[a8,a3,a7,a9,a5,a6\]"  ""
-# OBSOLETE     test_print_accept "print v_power2" {\[a6, a5, a9, a7, a3, a8\]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "set v_power3 := \[b1:b2,e1\]"  ""
-# OBSOLETE     test_print_accept "print v_power3" {\[b1:b2\]}
-# OBSOLETE     gdb_test "set v_power3 := \[b1, b3, b6:b7\]"  ""
-# OBSOLETE     test_print_accept "print v_power3" {\[b1, b3, b6:b7\]}
-# OBSOLETE     gdb_test "set v_power3 := \[b1, b3:b4, b7\]"  ""
-# OBSOLETE     test_print_accept "print v_power3" {\[b1, b3:b4, b7\]}
-# OBSOLETE     gdb_test "set v_power3 := \[b1, b4:b6, b7\]"  ""
-# OBSOLETE     test_print_accept "print v_power3" {\[b1, b4:b7\]}
-# OBSOLETE     gdb_test "set v_power3 := \[b1:b7\]"  ""
-# OBSOLETE     test_print_accept "print v_power3" {\[b1:b7\]}
-# OBSOLETE     gdb_test "set v_power3 := \[b5:b7, b1\]"  ""
-# OBSOLETE     test_print_accept "print v_power3" {\[b1, b5:b7\]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "set v_power4 := \[\"b\"\]" ""
-# OBSOLETE     test_print_accept "print v_power4" {\['b':'x'\]}
-# OBSOLETE     gdb_test "set v_power4 := \[5\]"  ""
-# OBSOLETE     test_print_accept "print v_power4" {\['b':'x'\]}
-# OBSOLETE     gdb_test "set v_power4 := \['c':'f','g':'h','o':'t'\]" ""
-# OBSOLETE     test_print_accept "print v_power4" {\['c':'h', 'o':'t'\]}
-# OBSOLETE     gdb_test "set v_power4 := \['a','b','c','d','e','f'\]" ""
-# OBSOLETE     test_print_accept "print v_power4" {\['a':'f'\]}
-# OBSOLETE     gdb_test "set v_power4 := \['\^(0)':'\^(200)'\]" ""
-# OBSOLETE     test_print_accept "print v_power4" {\['\^\(0\)':'\^\(200\)'\]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "set v_power5 := \[a8\]"  ""
-# OBSOLETE     test_print_accept "print v_power5" {\[2:100\]}
-# OBSOLETE     gdb_test "set v_power5 := \[4\]"  ""
-# OBSOLETE     test_print_accept "print v_power5" {\[4\]}
-# OBSOLETE     gdb_test "set v_power5 := \[3:95,9:100,10:107,200:250\]" ""
-# OBSOLETE     test_print_accept "print v_power5" {\[3:107, 200:250\]}
-# OBSOLETE     gdb_test "set v_power5 := \[2, 100:120, 350:400\]"  ""
-# OBSOLETE     test_print_accept "print v_power5" {\[2, 100:120, 350:400\]}
-# OBSOLETE     gdb_test "set v_power5 := \[2:64,65:127,128:256,256:399,400\]" ""
-# OBSOLETE     test_print_accept "print v_power5" {\[2:400\]}
-# OBSOLETE     gdb_test "set v_power5 := \[3:95, 99:100, 101:107, 200:250\]"  ""
-# OBSOLETE     test_print_accept "print v_power5" {\[3:95, 99:107, 200:250\]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "set v_power6 := \[a8\]"  ""
-# OBSOLETE     test_print_accept "print v_power6" {\[\]}
-# OBSOLETE     gdb_test "set v_power6 := \[4\]"  ""
-# OBSOLETE     test_print_accept "print v_power6" {\[4\]}
-# OBSOLETE     gdb_test "set v_power6 := \[3:95, 99:100, 101:107, 200:250\]"  ""
-# OBSOLETE     test_print_accept "print v_power6" {\[3:95, 99:107, 200:250\]}
-# OBSOLETE     gdb_test "set v_power6 := \[-111:0, 1:112, 11111:22222\]"  ""
-# OBSOLETE     test_print_accept "print v_power6" {\[-111:112, 11111:22222\]}
-# OBSOLETE     gdb_test "set v_power6 := \[0, 200:4000, 6666:9999\]"  ""
-# OBSOLETE     test_print_accept "print v_power6" {\[0, 200:4000, 6666:9999\]}
-# OBSOLETE 
-# OBSOLETE #    gdb_test "set v_power7 := \[a8\]"  ""
-# OBSOLETE #    test_print_accept "print v_power7" {\[2:100\]}
-# OBSOLETE #    gdb_test "set v_power7 := \[4\]"  ""
-# OBSOLETE #    test_print_accept "print v_power7" {\[4\]}
-# OBSOLETE #    gdb_test "set v_power7 := \[3:95, 99:100, 101:107, 200:250\]" ""
-# OBSOLETE #    test_print_accept "print v_power7" {\[3:95, 99:107, 200:250\]}
-# OBSOLETE #    gdb_test "set v_power7 := \[0, 1000, 1000000, 10000000000\]"  ""
-# OBSOLETE #    test_print_accept "print v_power7" {\[0, 1000, 1000000, 1000000000\]}
-# OBSOLETE #    gdb_test "set v_power7 := \[-20000:100000, 111111:2222222\]"  ""
-# OBSOLETE #    test_print_accept "print v_power7" {\[-20000:100000, 111111:2222222\]}
-# OBSOLETE #    gdb_test "set v_power7 := \[\]"  ""
-# OBSOLETE #    test_print_accept "print v_power7" {\[3:95, 99:107, 200:250\]}
-# OBSOLETE #    gdb_test "set v_power7 := \[2:-500, -501:1, 20:370, -888:-920, 1000:2000, 1800:2500\]\ " ""
-# OBSOLETE #    test_print_accept "print v_power7" {\[-920:-888, -501:2, 20:370, 1000:2500\]}
-# OBSOLETE #    test_print_accept "print SIZE(v_power7)" ""
-# OBSOLETE 
-# OBSOLETE 
-# OBSOLETE     runto 58
-# OBSOLETE     test_print_accept "print v_set1 IN v1_power1" "TRUE"
-# OBSOLETE     test_print_accept "print v_set1 IN v2_power1" "FALSE"
-# OBSOLETE 
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE 
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE 
-# OBSOLETE if [set_lang_chill] then {
-# OBSOLETE     # test builtins as described in chapter 6.20.3 Z.200
-# OBSOLETE 
-# OBSOLETE     test_power 
-# OBSOLETE } else {
-# OBSOLETE     warning "$test_name tests suppressed."
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/misc.ch b/gdb/testsuite/gdb.chill/misc.ch
deleted file mode 100644 (file)
index 20f12c8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-misc_tests : MODULE;
-
-DCL otto INT := 42;
-
-DCL foo STRUCT (l LONG, c CHAR, b BOOL, s CHARS(3));
-
-dummyfunc: PROC();
-END dummyfunc;
-
-dummyfunc();
-
-END misc_tests;
diff --git a/gdb/testsuite/gdb.chill/misc.exp b/gdb/testsuite/gdb.chill/misc.exp
deleted file mode 100644 (file)
index 1cdeb7c..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Fred Fish. (fnf@cygnus.com)
-# OBSOLETE #                          Martin Pottendorfer (pottendo@aut.alcatel.at)
-# OBSOLETE #
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "misc"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     return [gdb_test "show language" ".* source language is \"chill\".*" \
-# OBSOLETE     "set language to \"chill\""]
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set prms_id 0
-# OBSOLETE set bug_id 0
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if ![set_lang_chill] then {
-# OBSOLETE     runto dummyfunc
-# OBSOLETE     # check upper/lower case 
-# OBSOLETE     gdb_test "ptype BOOL" " = (bool|BOOL)"
-# OBSOLETE     gdb_test "ptype bool" " = (bool|BOOL)"
-# OBSOLETE     gdb_test "print otto" " = 42"
-# OBSOLETE     gdb_test "print OTTO" " = 42"
-# OBSOLETE     gdb_test "print otTO" " = 42"
-# OBSOLETE     gdb_test "print OTto" " = 42"
-# OBSOLETE     gdb_test "print NULL" " = NULL" "print emptiness literal"
-# OBSOLETE 
-# OBSOLETE     # This tests PR 8496.
-# OBSOLETE     gdb_test {printf "%d %d.",  3+4,2} "7 2." "printf with 2 arguments"
-# OBSOLETE 
-# OBSOLETE     # This tests GCH/924
-# OBSOLETE     gdb_test {print (h'23)} { = 35} "print parantised integer literal"
-# OBSOLETE 
-# OBSOLETE     # Linux thinks this is at line 6, but is otherwise ok.
-# OBSOLETE     setup_xfail "i*86-pc-linux*-gnu"
-# OBSOLETE     gdb_test "info line" \
-# OBSOLETE     {Line 7 of .*misc.ch.* at address H'[0-9a-fA-F]+.*}\
-# OBSOLETE     "info about current line"
-# OBSOLETE 
-# OBSOLETE     # check array () type (expr)
-# OBSOLETE     setup_xfail "m68*-*-hpux*"
-# OBSOLETE     gdb_test "print array () ubyte (foo)" { = \[\(0:11\): 0\]}
-# OBSOLETE     
-# OBSOLETE     send_gdb "set var \$i := foo\n"
-# OBSOLETE     gdb_expect -re ".*$gdb_prompt $"
-# OBSOLETE     setup_xfail "m68*-*-hpux*"
-# OBSOLETE     gdb_test "print/x array () byte (\$i)" { = \[\(0:11\): H'0\]}
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/powerset.ch b/gdb/testsuite/gdb.chill/powerset.ch
deleted file mode 100644 (file)
index dd3172d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---
--- check powerset operators and built-ins
---
-
-ps: MODULE
-
-SYNMODE m_ps1 = POWERSET ULONG (0:8);
-DCL v_ps1 m_ps1 INIT := [1,3,5,7];
-
-SYNMODE m_ps2 = POWERSET LONG (-100:100);
-DCL v_ps2 m_ps2 INIT := [ -100:-95, -1:1, 95:100];
-
-SYNMODE m_set = SET (aa, bb, cc, dd, ee, ff, gg, hh, ii, jj);
-SYNMODE m_ps3 = POWERSET m_set;
-DCL v_ps3 m_ps3 INIT := [bb, dd, ff, ii];
-
-SYNMODE m_ps4 = POWERSET CHAR(' ':'z');
-DCL v_ps4 m_ps4 INIT := [ '.', ',', 'A':'F', 'x':'z' ];
-
-SYNMODE m_ps5 = POWERSET BOOL;
-DCL v_ps5 m_ps5 INIT := [ FALSE ];
-DCL v_ps51 m_ps5 INIT := [ ];
-
-SYNMODE m_int_range = INT(-100:100);
-SYNMODE m_int_subrange = m_int_range(-50:50);
-SYNMODE m_ps6 = POWERSET m_int_subrange;
-DCL v_ps6 m_ps6 INIT := [ LOWER(m_int_subrange):UPPER(m_int_subrange) ];
-
-DCL x INT;
-
-x := 25;
-
-END ps;
diff --git a/gdb/testsuite/gdb.chill/powerset.exp b/gdb/testsuite/gdb.chill/powerset.exp
deleted file mode 100644 (file)
index 6d19248..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file tests various Chill values, expressions, and types.
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "powerset"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -w -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     send_gdb "show language\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".* source language is \"chill\".*$gdb_prompt $" {
-# OBSOLETE         pass "set language to \"chill\""
-# OBSOLETE         send_gdb "break xx_\n"
-# OBSOLETE         gdb_expect {
-# OBSOLETE             -re ".*$gdb_prompt $" {
-# OBSOLETE                 send_gdb "run\n" 
-# OBSOLETE                 gdb_expect -re ".*$gdb_prompt $" {}
-# OBSOLETE                 return 1
-# OBSOLETE             }
-# OBSOLETE             timeout {
-# OBSOLETE                 fail "can't set breakpoint (timeout)"
-# OBSOLETE                 return 0
-# OBSOLETE             }
-# OBSOLETE         }
-# OBSOLETE     }
-# OBSOLETE     -re ".*$gdb_prompt $" {
-# OBSOLETE         fail "setting language to \"chill\""
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     timeout {
-# OBSOLETE         fail "can't show language (timeout)"
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     }
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Testing printing of a specific value.  Increment passcount for
-# OBSOLETE # success or issue fail message for failure.  In both cases, return
-# OBSOLETE # a 1 to indicate that more tests can proceed.  However a timeout
-# OBSOLETE # is a serious error, generates a special fail message, and causes
-# OBSOLETE # a 0 to be returned to indicate that more tests are likely to fail
-# OBSOLETE # as well.
-# OBSOLETE #
-# OBSOLETE # Args are:
-# OBSOLETE #
-# OBSOLETE #   First one is string to send_gdb to gdb
-# OBSOLETE #   Second one is string to match gdb result to
-# OBSOLETE #   Third one is an optional message to be printed
-# OBSOLETE 
-# OBSOLETE proc test_print_accept { args } {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global passcount
-# OBSOLETE     global verbose
-# OBSOLETE 
-# OBSOLETE     if [llength $args]==3 then {
-# OBSOLETE     set message [lindex $args 2]
-# OBSOLETE     } else {
-# OBSOLETE     set message [lindex $args 0]
-# OBSOLETE     }
-# OBSOLETE     set sendthis [lindex $args 0]
-# OBSOLETE     set expectthis [lindex $args 1]
-# OBSOLETE     set result [gdb_test $sendthis ".* = ${expectthis}" $message]
-# OBSOLETE     if $result==0 {incr passcount}
-# OBSOLETE     return $result
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_card {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing builtin CARD"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     # discrete mode names
-# OBSOLETE     test_print_accept "print card(v_ps1)" "4"
-# OBSOLETE     test_print_accept "print card(v_ps2)" "15"
-# OBSOLETE     test_print_accept "print card(v_ps3)" "4"
-# OBSOLETE     test_print_accept "print card(v_ps4)" "11"
-# OBSOLETE     test_print_accept "print card(v_ps5)" "1"
-# OBSOLETE     test_print_accept "print card(v_ps51)" "0"
-# OBSOLETE     test_print_accept "print card(v_ps6)" "101"
-# OBSOLETE 
-# OBSOLETE     # a failure
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print card(m_ps1)" "typename in invalid context"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_min {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing builtin MIN"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     # discrete mode names
-# OBSOLETE     test_print_accept "print min(v_ps1)" "1"
-# OBSOLETE     test_print_accept "print min(v_ps2)" "-100"
-# OBSOLETE     test_print_accept "print min(v_ps3)" "bb"
-# OBSOLETE     test_print_accept "print min(v_ps4)" "','"
-# OBSOLETE     test_print_accept "print min(v_ps5)" "FALSE"
-# OBSOLETE     test_print_accept "print min(v_ps6)" "-50"
-# OBSOLETE 
-# OBSOLETE     # a failure
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print min(v_ps51)" "MIN for empty powerset"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print min(m_ps1)" "typename in invalid context"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_max {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing builtin MIN"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     # discrete mode names
-# OBSOLETE     test_print_accept "print max(v_ps1)" "7"
-# OBSOLETE     test_print_accept "print max(v_ps2)" "100"
-# OBSOLETE     test_print_accept "print max(v_ps3)" "ii"
-# OBSOLETE     test_print_accept "print max(v_ps4)" "'z'"
-# OBSOLETE     test_print_accept "print max(v_ps5)" "FALSE"
-# OBSOLETE     test_print_accept "print max(v_ps6)" "50"
-# OBSOLETE 
-# OBSOLETE     # test an IN
-# OBSOLETE     test_print_accept "print 0 in v_ps6" "TRUE"
-# OBSOLETE 
-# OBSOLETE     # a failure
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print max(v_ps51)" "MAX for empty powerset"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if [set_lang_chill] then {
-# OBSOLETE     # test builtins as described in chapter 6.20.3 Z.200
-# OBSOLETE     test_card
-# OBSOLETE     test_min
-# OBSOLETE     test_max
-# OBSOLETE } else {
-# OBSOLETE     warning "$test_name tests suppressed."
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/pr-4975-grt.ch b/gdb/testsuite/gdb.chill/pr-4975-grt.ch
deleted file mode 100644 (file)
index 7796362..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-gdb_bug_grt: MODULE
-NEWMODE is_channel_type = SET (chan_1,
-     chan_2,
-     chan_3,
-     chan_4,
-     chan_5,
-     chan_6,
-     chan_7,
-     chan_8,
-     chan_9,
-     chan_10);
-GRANT is_channel_type;
-END;
diff --git a/gdb/testsuite/gdb.chill/pr-4975.ch b/gdb/testsuite/gdb.chill/pr-4975.ch
deleted file mode 100644 (file)
index dbba064..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
->Number:         4975
->Category:       chill
->Synopsis:       Segmentation fault of gdb 4.12.1
->Description:
-
-    Problem: gdb 4.12.1 segment faults with following chill program.
-*/
-
-gdb_bug: MODULE
-
-<> USE_SEIZE_FILE "pr-4975-grt.grt" <>
-SEIZE is_channel_type;
-
-  SYNMODE chan_type = POWERSET is_channel_type;
-  SYN     hugo chan_type = [chan_1, chan_3];
-
-DCL otto is_channel_type := chan_2;
-
-x: PROC ();
-
-  IF otto IN hugo THEN
-    WRITETEXT (STDOUT, "otto IN hugo%/");
-  ELSE
-    WRITETEXT (STDOUT, "You loose%/");
-  FI;
-END x;
-
-x ();
-
-END gdb_bug;
-/*
-Compiled with:
-
-   chill -S -fgrant-only pr-315-grt.ch
-   chill -g -o pr-315 pr-315.ch
-
-Run gdb with
-
-   gdb pr-315 --readnow
-
-will result in a sigsegv in file gdbtypes.c function force_to_range_type.
-*/
diff --git a/gdb/testsuite/gdb.chill/pr-4975.exp b/gdb/testsuite/gdb.chill/pr-4975.exp
deleted file mode 100644 (file)
index 366c536..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-# OBSOLETE # Copyright 1992, 1994, 1995, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile2 "pr-4975-grt"
-# OBSOLETE set srcfile2 ${srcdir}/$subdir/${testfile2}.ch
-# OBSOLETE set objfile2 ${objdir}/$subdir/${testfile2}.o
-# OBSOLETE if  { [compile "${srcfile2} -g -c -o ${objfile2}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile2}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-4975"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g ${objfile2} -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     # This is needed (at least on SunOS4) to make sure the
-# OBSOLETE     # the symbol table is read.
-# OBSOLETE     runto "x"
-# OBSOLETE     # "You loose"?  Why, thank you.  (But I suspect "You lose" might have
-# OBSOLETE     # been what was intended).
-# OBSOLETE     gdb_test "finish" "You loose.*" "Runs and reads symbols OK"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-5016.ch b/gdb/testsuite/gdb.chill/pr-5016.ch
deleted file mode 100644 (file)
index 16f49e8..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-vector: MODULE
-
-SYNMODE m_index = RANGE(1:10);
-NEWMODE vector = ARRAY (m_index) INT;
-
-DCL a, b, c vector;
-
-dump: PROC( a vector LOC, c CHAR );
-  DCL i m_index := 5;
-  DO FOR i IN m_index;
-    WRITETEXT( STDOUT, "%C(%C)=%C ", c, i, a(i) );
-  OD;
-  WRITETEXT( STDOUT, "%/" );
-END dump;
-
-a := vector [ 1, -1, 2, -2, 3, -3, 4, -4, 5, -5 ];
-b := a;
-b(4) := 4;
-b(7) := 7;
-c := vector [(*): 0];
-
-dump(a,'a');
-
-END vector;
diff --git a/gdb/testsuite/gdb.chill/pr-5016.exp b/gdb/testsuite/gdb.chill/pr-5016.exp
deleted file mode 100644 (file)
index 1d3a5d4..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# OBSOLETE # Copyright 1992, 1994, 1995, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-5016"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     runto dump
-# OBSOLETE     # Linux thinks type is "_cint" (and so does sparc-sun-sunos4, alpha-dec-osf2.0)
-# OBSOLETE     #setup_xfail "i*86-pc-linux*-gnu" "sparc-sun-sunos4*" "alpha-dec-osf2*"
-# OBSOLETE     gdb_test "whatis i" "type = m_index" "whatis int-range"
-# OBSOLETE     gdb_test_exact "ptype m_index" "type = RANGE (1:10)" "ptype m_index"
-# OBSOLETE     gdb_test_exact "whatis a" "type = /*LOC*/ vector"
-# OBSOLETE     gdb_test "ptype a" "type = /\\*LOC\\*/ ARRAY \\(1:10\\) (INT|int)"
-# OBSOLETE     gdb_test "step" ""
-# OBSOLETE     gdb_test_exact "whatis i" "type = long" "whatis loop counter i"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-5020.ch b/gdb/testsuite/gdb.chill/pr-5020.ch
deleted file mode 100644 (file)
index 6aba793..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-
-PR_5020: MODULE
-  dummy_pr_5020: PROC ();
-  END;
-  NEWMODE x = STRUCT (l LONG, b BOOL);
-  NEWMODE aset = SET (aa, bb);
-
-  DCL y ARRAY ('a':'b') x;
-  DCL setarr ARRAY (aset) x;
-  DCL intarr ARRAY(10:11) x;
-  DCL boolarr ARRAY (BOOL) x;
-
-  y('a').l, setarr(aa).l, intarr(10).l, boolarr(FALSE).l := 10;
-  y('a').b, setarr(aa).b, intarr(10).b, boolarr(FALSE).b := TRUE;
-  y('b').l, setarr(bb).l, intarr(11).l, boolarr(TRUE).l := 111;
-  y('b').b, setarr(bb).b, intarr(11).b, boolarr(TRUE).b := FALSE;
-
-  dummy_pr_5020 ();
-END;
diff --git a/gdb/testsuite/gdb.chill/pr-5020.exp b/gdb/testsuite/gdb.chill/pr-5020.exp
deleted file mode 100644 (file)
index aad219d..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-# OBSOLETE # Copyright 1992, 1994, 1995 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-5020"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     # This is needed (at least on SunOS4) to make sure the
-# OBSOLETE     # the symbol table is read.
-# OBSOLETE     gdb_test "break chillvars.ch:3" ""
-# OBSOLETE     gdb_test "delete 1" ""
-# OBSOLETE 
-# OBSOLETE     gdb_test "set width 0" ""
-# OBSOLETE     gdb_test "set print sevenbit-strings" ""
-# OBSOLETE     gdb_test "set print address off" ""
-# OBSOLETE 
-# OBSOLETE     test_pr_5020
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_pr_5020 {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     runto dummy_pr_5020
-# OBSOLETE     gdb_test_exact "print y" \
-# OBSOLETE     {= [('a'): [.l: 10, .b: TRUE], ('b'): [.l: 111, .b: FALSE]]}
-# OBSOLETE     gdb_test_exact "print boolarr" \
-# OBSOLETE     {= [(FALSE): [.l: 10, .b: TRUE], (TRUE): [.l: 111, .b: FALSE]]}
-# OBSOLETE     gdb_test_exact "print intarr" \
-# OBSOLETE     {= [(10): [.l: 10, .b: TRUE], (11): [.l: 111, .b: FALSE]]}
-# OBSOLETE     gdb_test_exact "print setarr" \
-# OBSOLETE     {= [(aa): [.l: 10, .b: TRUE], (bb): [.l: 111, .b: FALSE]]}
-# OBSOLETE     gdb_test "set print pretty" ""
-# OBSOLETE     gdb_test_exact "print y" \
-# OBSOLETE {= [('a'): [\r
-# OBSOLETE     .l: 10, \r
-# OBSOLETE     .b: TRUE\r
-# OBSOLETE   ], ('b'): [\r
-# OBSOLETE     .l: 111, \r
-# OBSOLETE     .b: FALSE\r
-# OBSOLETE   ]]} "print y pretty"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-5022.ch b/gdb/testsuite/gdb.chill/pr-5022.ch
deleted file mode 100644 (file)
index aeaad4e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-PR_5022: MODULE
-  dummy_pr_5022: PROC ();
-  END;
-  DCL p PTR;
-  DCL i INT;
-
-  p := NULL;
-  dummy_pr_5022 ();
-  i := 13;
-  p := ->i;
-  dummy_pr_5022 ();
-END;
diff --git a/gdb/testsuite/gdb.chill/pr-5022.exp b/gdb/testsuite/gdb.chill/pr-5022.exp
deleted file mode 100644 (file)
index 3060950..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# OBSOLETE # Copyright 1992, 1994, 1995 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-5022"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     # This is needed (at least on SunOS4) to make sure the
-# OBSOLETE     # the symbol table is read.
-# OBSOLETE     gdb_test "break gdbme.ch:3" ""
-# OBSOLETE     gdb_test "delete 1" ""
-# OBSOLETE 
-# OBSOLETE     gdb_test "set width 0" ""
-# OBSOLETE     gdb_test "set print sevenbit-strings" ""
-# OBSOLETE 
-# OBSOLETE     test_pr_5022
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc test_pr_5022 {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     runto dummy_pr_5022
-# OBSOLETE     gdb_test "p p" " = NULL" "print NULL pointer"
-# OBSOLETE     gdb_test "continue" ""
-# OBSOLETE     gdb_test "p p" {= PTR\(H'[0-9a-fA-F]+\)} "print non-NULL pointer"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-5646-grt.ch b/gdb/testsuite/gdb.chill/pr-5646-grt.ch
deleted file mode 100644 (file)
index b7a9002..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-x: MODULE
-NEWMODE a_set = SET (a, b, c, d);
-NEWMODE a_ps = POWERSET a_set;
-GRANT a_ps;
-END;
diff --git a/gdb/testsuite/gdb.chill/pr-5646.ch b/gdb/testsuite/gdb.chill/pr-5646.ch
deleted file mode 100644 (file)
index 8c14cb8..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-y: MODULE
-
-<> USE_SEIZE_FILE "pr-5646-grt.grt" <>
-SEIZE a_ps;
-
-p: PROC ();
-
-  DCL xx a_ps;
-
-  xx := [a, b];
-END p;
-
-p();
-
-END y;
diff --git a/gdb/testsuite/gdb.chill/pr-5646.exp b/gdb/testsuite/gdb.chill/pr-5646.exp
deleted file mode 100644 (file)
index dc093b9..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# OBSOLETE # Copyright 1992, 1994, 1995, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile2 "pr-5646-grt"
-# OBSOLETE set srcfile2 ${srcdir}/$subdir/${testfile2}.ch
-# OBSOLETE set objfile2 ${objdir}/$subdir/${testfile2}.o
-# OBSOLETE if  { [compile "${srcfile2} -g -c -o ${objfile2}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile2}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-5646"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g ${objfile2} -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     runto p
-# OBSOLETE     gdb_test "next" ""
-# OBSOLETE     gdb_test_exact "print xx" {= [a:b]}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-5984.ch b/gdb/testsuite/gdb.chill/pr-5984.ch
deleted file mode 100644 (file)
index 3e74a56..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-x: module                        -- line 1
-  p:proc (t char (20) varying);  --      2
-         writetext(stdout, t);  --      3
-  end p;                         --      4
-                                 --      5
-  p("Jason Dark.%/");            --      6
-  p("Hello World.%/");           --      7
-end x;        
diff --git a/gdb/testsuite/gdb.chill/pr-5984.exp b/gdb/testsuite/gdb.chill/pr-5984.exp
deleted file mode 100644 (file)
index 826ec57..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-# OBSOLETE # Copyright 1992, 1994, 1995 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-5984"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n" ; 
-# OBSOLETE 
-# OBSOLETE     gdb_test "break pr-5984.ch:6" ""
-# OBSOLETE     send_gdb "run\n"; gdb_expect -re "Breakpoint .*pr-5984.ch:6"
-# OBSOLETE     gdb_expect -re "$gdb_prompt $"
-# OBSOLETE     gdb_test "next" "Jason Dark.*" "next over Jason Dark"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-6292.ch b/gdb/testsuite/gdb.chill/pr-6292.ch
deleted file mode 100644 (file)
index c2ed953..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-hack : module
-
-dcl i int;
-
-fred : proc (a int in, b int loc);
-  writetext(stdout, "a was '%C'; b was '%C'.%/", a, b);
-  b + := 1;
-end fred;
-
-klaus : proc ();
-  writetext(stdout, "here's klaus calling.%/");
-end klaus;
-
-i:=12;
-writetext(stdout, "done.%/");
-
-end hack;
diff --git a/gdb/testsuite/gdb.chill/pr-6292.exp b/gdb/testsuite/gdb.chill/pr-6292.exp
deleted file mode 100644 (file)
index 4daf382..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-# OBSOLETE # Copyright 1995 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-6292"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n" ; 
-# OBSOLETE 
-# OBSOLETE     gdb_test "break pr-6292.ch:15" ""
-# OBSOLETE     send_gdb "run\n"; gdb_expect -re "Breakpoint .*pr-6292.ch:15.*$gdb_prompt $"
-# OBSOLETE     gdb_test_exact "call klaus()" {here's klaus calling.}
-# OBSOLETE     gdb_test {set fred(10, i)} {a was '10'; b was '12'.}
-# OBSOLETE     gdb_test "print i" { = 13} "print i after call"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-6632-grt.ch b/gdb/testsuite/gdb.chill/pr-6632-grt.ch
deleted file mode 100644 (file)
index e9434f1..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-markus1: MODULE
-
-SYNMODE m_dummy = SET (dummy_1,
-                       dummy_2,
-                       dummy_3,
-                       dummy_4,
-                       dummy_5,
-                       dummy_6,
-                       dummy_7,
-                       dummy_8,
-                       dummy_9,
-                       dummy_10,
-                       dummy_11,
-                       dummy_12,
-                       dummy_13,
-                       dummy_14,
-                       dummy_15,
-                       dummy_16,
-                       dummy_17,
-                       dummy_18,
-                       dummy_19,
-                       dummy_20,
-                       dummy_21,
-                       dummy_22,
-                       dummy_23,
-                       dummy_24,
-                       dummy_25,
-                       dummy_26);
-
-SYNMODE m_dummy_range = m_dummy(dummy_6 : dummy_22);
-
-GRANT m_dummy, m_dummy_range;
-
-END markus1;
diff --git a/gdb/testsuite/gdb.chill/pr-6632.ch b/gdb/testsuite/gdb.chill/pr-6632.ch
deleted file mode 100644 (file)
index b82c7ae..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-markus: MODULE
-
-<> USE_SEIZE_FILE "pr-6632-grt.grt" <>
-SEIZE m_dummy, m_dummy_range;
-
-DCL v m_dummy_range;
-
-NEWMODE is_str_descr = STRUCT (p PTR,
-                               l INT,
-                               flag STRUCT (x UBYTE,
-                                            y SET (aa, bb, cc, dd, ee, ff)));
-DCL des is_str_descr;
-
-NEWMODE is_cb_debug = STRUCT (i INT,
-                              channel m_dummy_range,
-                              p PTR);
-NEWMODE is_cb_debug_array = ARRAY (0:20) is_cb_debug;
-DCL cb_debug is_cb_debug_array;
-DCL cb_debug_index INT := 0;
-
-p: PROC (pp is_str_descr IN, x m_dummy_range IN)
-  DO WITH cb_debug(cb_debug_index);
-    channel := x;
-  OD;
-END p;
-
-p (des, dummy_10);
-WRITETEXT (stdout, "cb_debug(%C).channel := %C%/", 
-           cb_debug_index, cb_debug(cb_debug_index).channel);
-
-END markus;
diff --git a/gdb/testsuite/gdb.chill/pr-6632.exp b/gdb/testsuite/gdb.chill/pr-6632.exp
deleted file mode 100644 (file)
index 9f7d623..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-# OBSOLETE # Copyright 1995 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile2 "pr-6632-grt"
-# OBSOLETE set srcfile2 ${srcdir}/$subdir/${testfile2}.ch
-# OBSOLETE set objfile2 ${objdir}/$subdir/${testfile2}.o
-# OBSOLETE if  { [compile "${srcfile2} -g -c -o ${objfile2}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile2}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-6632"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} ${objfile2} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     runto p
-# OBSOLETE     gdb_test "whatis x" {type = m_dummy_range}
-# OBSOLETE     gdb_test_exact "ptype x" {type = m_dummy (dummy_6:dummy_22)}
-# OBSOLETE     gdb_test "print x" { = dummy_10}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-8134.exp b/gdb/testsuite/gdb.chill/pr-8134.exp
deleted file mode 100644 (file)
index d98c0d8..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE # Note we use pr-8136.ch for pr-8134.exp as well as pr-8136.exp.
-# OBSOLETE set testfile2 "func1"
-# OBSOLETE set srcfile2 ${srcdir}/$subdir/${testfile2}.ch
-# OBSOLETE set objfile2 ${objdir}/$subdir/${testfile2}.o
-# OBSOLETE if  { [compile "${srcfile2} -g -c -o ${objfile2}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile2}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-8134"
-# OBSOLETE set srcfile ${srcdir}/$subdir/pr-8136.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g ${objfile2} -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     runto p1
-# OBSOLETE     gdb_test "print first" "= 1"
-# OBSOLETE     gdb_test "print last" "= 10"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-8136.ch b/gdb/testsuite/gdb.chill/pr-8136.ch
deleted file mode 100644 (file)
index b380110..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
--- NOTE: This test is used for pr-3134.exp as well as pr-8136.
-func: MODULE
-
-<> USE_SEIZE_FILE "func1.grt" <>
-SEIZE ALL;
-
-NEWMODE m_struct = STRUCT (i LONG, str CHARS(50) VARYING);
-DCL insarr ARRAY (1:10) INT;
-
-DCL setrange m_setrange := e5;
-
-DCL ps m_ps := [ e3, e7:e9 ];
-DCL range_ps m_rangeps := [ 2, 3, 4, 28 ];
-
-p1: PROC (first INT IN, last INT IN, s m_struct IN);
-
-  DCL foo LONG := 3;
-
-  startall: PROC ()
-    DO FOR i := first to last;
-      insarr(i) := i;
-    OD;
-    DO FOR i := first TO last;
-      WRITETEXT (stdout, "insarr(%C) := %C%/", i, insarr(i));
-    OD;
-  END startall;
-
-  startall ();
-
-END p1;
-
-p1 (LOWER (insarr), UPPER (insarr), [ 10, "This is a string." ]);
-
-END func;
diff --git a/gdb/testsuite/gdb.chill/pr-8136.exp b/gdb/testsuite/gdb.chill/pr-8136.exp
deleted file mode 100644 (file)
index 2dd5281..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# OBSOLETE # Copyright 1995 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile2 "func1"
-# OBSOLETE set srcfile2 ${srcdir}/$subdir/${testfile2}.ch
-# OBSOLETE set objfile2 ${objdir}/$subdir/${testfile2}.o
-# OBSOLETE if  { [compile "${srcfile2} -g -c -o ${objfile2}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile2}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-8136"
-# OBSOLETE set srcfile ${srcdir}/$subdir/pr-8136.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g ${objfile2} -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     runto p1
-# OBSOLETE     gdb_test "print ps" {= \[e3, e7:e9\]}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-8405.ch b/gdb/testsuite/gdb.chill/pr-8405.ch
deleted file mode 100644 (file)
index a9b2531..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-emptybit: MODULE
-
-SYNMODE b8 = BOOLS(8);
-SYN bit8 b8 = B'00000000';
-
-SYNMODE char_m = CHARS(40) VARYING;
-
-SYNMODE stru_m = STRUCT (c char_m, b b8, boo BOOL);
-DCL xx stru_m;
-
-SYNMODE m_stru = STRUCT (c char_m, i LONG, boo BOOL);
-DCL yy m_stru;
-
-SYNMODE m_arr = ARRAY (1:10) LONG;
-DCL zz m_arr;
-
-WRITETEXT (stdout, "%C%/", bit8);
-
-END emptybit;
diff --git a/gdb/testsuite/gdb.chill/pr-8405.exp b/gdb/testsuite/gdb.chill/pr-8405.exp
deleted file mode 100644 (file)
index 31aa6d5..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE     gdb_test "set var \$i:=xx" ""
-# OBSOLETE     gdb_test "print \$i" {= \[.c: "", .b: B'00000000', .boo: FALSE\]}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE # Check to see if we have an executable to test.  If not, then either we
-# OBSOLETE # haven't tried to compile one, or the compilation failed for some reason.
-# OBSOLETE # In either case, just notify the user and skip the tests in this file.
-# OBSOLETE 
-# OBSOLETE set testfile "pr-8405"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -w -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if ![file exists $binfile] then {
-# OBSOLETE     warning "$binfile does not exist; tests suppressed." 0
-# OBSOLETE } else {
-# OBSOLETE     do_tests
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/pr-8742.ch b/gdb/testsuite/gdb.chill/pr-8742.ch
deleted file mode 100644 (file)
index 0541149..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-hugo : module
-  
-  synmode a = range(1:10);
-  synmode p = powerset a;
-  
-  synmode s = set (sa, sb, sc);
-  synmode s_ps = powerset s;
-  
-  x: proc (ps p);
-    dcl i a;
-    do for i in ps;
-      writetext (stdout, "%C ", i);
-    od;
-    writetext(stdout, "%/");
-  end x;
-  
-  y : proc (ps s_ps);
-    dcl i s;
-    do for i in ps;
-      writetext (stdout, "%C ", i);
-    od;
-    writetext(stdout, "%/");
-  end y;
-
-  dummy: proc ();
-  end dummy;
-      
-  x([1,2,3]);
-  y([sa, sc]);
-  dummy ();
-  
-end hugo;
diff --git a/gdb/testsuite/gdb.chill/pr-8742.exp b/gdb/testsuite/gdb.chill/pr-8742.exp
deleted file mode 100644 (file)
index a7b10d0..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# OBSOLETE # Copyright 1992, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-8742"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     runto dummy
-# OBSOLETE 
-# OBSOLETE     # Haven't investigated why these fail on mips-sgi-irix*
-# OBSOLETE     setup_xfail "m68*-*-hpux*" "mips*-sgi-irix*"
-# OBSOLETE     gdb_test {call x(p [1, 3, 5])} "1 3 5 " "pass int powerset tuple"
-# OBSOLETE     setup_xfail "mips*-sgi-irix*"
-# OBSOLETE     gdb_test {call y(s_ps [sc])} "sc " "pass set powerset tuple"
-# OBSOLETE     setup_xfail "m68*-*-hpux*" "mips*-sgi-irix*"
-# OBSOLETE     gdb_test {call x([1, 3, 5])} "1 3 5 " "pass modeless int powerset tuple"
-# OBSOLETE     setup_xfail "mips*-sgi-irix*"
-# OBSOLETE     gdb_test {call y([sc])} "sc " "pass modeless set powerset tuple"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-8894-grt.ch b/gdb/testsuite/gdb.chill/pr-8894-grt.ch
deleted file mode 100644 (file)
index 5720170..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-yy: MODULE
-
-SYNMODE m_byte = INT (0:255);
-GRANT ALL;
-
-END yy;
diff --git a/gdb/testsuite/gdb.chill/pr-8894.ch b/gdb/testsuite/gdb.chill/pr-8894.ch
deleted file mode 100644 (file)
index 391d56b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-xx: MODULE
-
-<> USE_SEIZE_FILE "pr-8894-grt.grt" <>
-SEIZE m_byte;
-
-SYNMODE m_struct = STRUCT (a, b, c m_byte);
-
-DCL v m_struct;
-
-v.a := 100;
-
-END xx;
diff --git a/gdb/testsuite/gdb.chill/pr-8894.exp b/gdb/testsuite/gdb.chill/pr-8894.exp
deleted file mode 100644 (file)
index 1ef4448..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-# OBSOLETE # Copyright 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile2 "pr-8894-grt"
-# OBSOLETE set srcfile2 ${srcdir}/$subdir/${testfile2}.ch
-# OBSOLETE set objfile2 ${objdir}/$subdir/${testfile2}.o
-# OBSOLETE if  { [compile "${srcfile2} -g -c -o ${objfile2}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile2}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-8894"
-# OBSOLETE set srcfile ${srcdir}/$subdir/$testfile.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g ${objfile2} -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     gdb_test "print size(m_byte)" { = 2}
-# OBSOLETE     gdb_test "print size(m_struct)" { = 6}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/pr-9095.ch b/gdb/testsuite/gdb.chill/pr-9095.ch
deleted file mode 100644 (file)
index 61ffb70..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-gdb1: MODULE
-
-SYNMODE m_arr1 = ARRAY (1:10) UBYTE;
-SYNMODE m_struct = STRUCT ( i LONG,
-                            p REF m_arr1);
-SYNMODE m_arr2 = ARRAY (0:10) REF m_struct;
-
-DCL v_arr1 m_arr1 INIT := [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
-DCL v_struct m_struct INIT := [ 10, ->v_arr1 ];
-DCL v_arr2 m_arr2 INIT := [ (5): ->v_struct, (ELSE): NULL ];
-
-WRITETEXT (stdout, "v_arr2(5)->.p->(5) = %C%/", v_arr2(5)->.p->(5));
-END gdb1;
diff --git a/gdb/testsuite/gdb.chill/pr-9095.exp b/gdb/testsuite/gdb.chill/pr-9095.exp
deleted file mode 100644 (file)
index 44bb2c3..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# OBSOLETE # Copyright 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE     runto pr-9095.ch:12
-# OBSOLETE     gdb_test {p v_arr2(5)->.p(5)} "reference value used as function" \
-# OBSOLETE     "bad call using pointer"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE # Check to see if we have an executable to test.  If not, then either we
-# OBSOLETE # haven't tried to compile one, or the compilation failed for some reason.
-# OBSOLETE # In either case, just notify the user and skip the tests in this file.
-# OBSOLETE 
-# OBSOLETE set testfile "pr-9095"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -w -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if ![file exists $binfile] then {
-# OBSOLETE     warning "$binfile does not exist; tests suppressed." 0
-# OBSOLETE } else {
-# OBSOLETE     do_tests
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/pr-9946.ch b/gdb/testsuite/gdb.chill/pr-9946.ch
deleted file mode 100644 (file)
index 3d9210a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-x: module
-
-synmode aset = SET (stopped, moving);
-
-DCL xyz aset;
-
-xyz := moving;
-xyz := SUCC (xyz);
-
-END x;
diff --git a/gdb/testsuite/gdb.chill/pr-9946.exp b/gdb/testsuite/gdb.chill/pr-9946.exp
deleted file mode 100644 (file)
index f0c48aa..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Fred Fish. (fnf@cygnus.com)
-# OBSOLETE #                          Martin Pottendorfer (pottendo@aut.alcatel.at)
-# OBSOLETE #
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE         strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "pr-9946"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE         -re ".*$gdb_prompt $" {}
-# OBSOLETE         timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     return [gdb_test "show language" ".* source language is \"chill\".*" \
-# OBSOLETE         "set language to \"chill\""]
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set prms_id 0
-# OBSOLETE set bug_id 0
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if ![set_lang_chill] then {
-# OBSOLETE     runto x_
-# OBSOLETE     gdb_test "next" ""
-# OBSOLETE     # check comparison of SET's
-# OBSOLETE     gdb_test {print xyz=moving} { = TRUE}
-# OBSOLETE     gdb_test {print xyz/=moving} { = FALSE}
-# OBSOLETE     gdb_test {print xyz<moving} { = FALSE}
-# OBSOLETE     gdb_test {print xyz<=moving} { = TRUE}
-# OBSOLETE     gdb_test {print xyz>moving} { = FALSE}
-# OBSOLETE     gdb_test {print xyz>=moving} { = TRUE}
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/result.ch b/gdb/testsuite/gdb.chill/result.ch
deleted file mode 100644 (file)
index b8c65e7..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-test_result:  MODULE
-
-  DCL i INT := 5;
-
-  SYNMODE m_struct = STRUCT (l LONG, b BOOL);
-  DCL v_struct m_struct := [ 20, TRUE ];
-
-  simple_func: PROC () RETURNS (INT);
-    DCL j INT := i;
-    RESULT 10;
-    i + := 2;
-    RESULT j + 2;
-    i + := 2;
-  END simple_func;
-
-  ret_struct: PROC () RETURNS (m_struct)
-    DCL v m_struct := [ 33, FALSE ];
-    RESULT v;
-    v.l := 18;
-  END ret_struct;
-
-  i := simple_func ();
-  i := simple_func ();
-  i * := 10;
-
-  v_struct := ret_struct ();
-
-  i := 33; -- for gdb
-END test_result;
diff --git a/gdb/testsuite/gdb.chill/result.exp b/gdb/testsuite/gdb.chill/result.exp
deleted file mode 100644 (file)
index 8c9a897..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-# OBSOLETE # Copyright 1994, 1995 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "result"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     gdb_test "set width 0" ""
-# OBSOLETE     gdb_test "set print sevenbit-strings" ""
-# OBSOLETE     gdb_test "set print address off" ""
-# OBSOLETE 
-# OBSOLETE     # simple function
-# OBSOLETE     runto simple_func
-# OBSOLETE     gdb_test "step 2" ""
-# OBSOLETE     gdb_test "print j" "= 5"
-# OBSOLETE     gdb_test "p RESULT" "= 10"
-# OBSOLETE     gdb_test "continue" ""
-# OBSOLETE     gdb_test "print i" "= 7"
-# OBSOLETE     gdb_test "step 4" ""
-# OBSOLETE     gdb_test "set RESULT := 50" ""
-# OBSOLETE     gdb_test "finish" ""
-# OBSOLETE     gdb_test "step" ""
-# OBSOLETE     gdb_test "print i" "= 50"
-# OBSOLETE 
-# OBSOLETE     # returning a structure
-# OBSOLETE     runto ret_struct
-# OBSOLETE     gdb_test "step 2" ""
-# OBSOLETE     gdb_test "p result" {\[.l: 33, .b: FALSE\]}
-# OBSOLETE     gdb_test "set var result := \[383, TRUE\]" ""
-# OBSOLETE     gdb_test "finish" ""
-# OBSOLETE     gdb_test "p v_struct" {\[.l: 383, .b: TRUE\]}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/string.ch b/gdb/testsuite/gdb.chill/string.ch
deleted file mode 100644 (file)
index 3503c46..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-ss: MODULE
-
-/* These declarations are from Cygnus PR chill/9078. */
-  SYNMODE m_char20 = CHARS(20) VARYING;
-
-  DCL foo m_char20 INIT := "Moser ";
-  DCL bar m_char20 INIT := "Wilfried";
-
-  DCL foo1 CHARS(5) INIT := "12345";
-  DCL bar1 CHARS(5) INIT := "abcde";
-
-/* This is Cynus PR chill/5696. */
-
-DCL s20 CHARS(20) VARYING;
-
-DCL s10 CHARS(10);
-
-
-s20 := "Moser Wilfried";
-S10 := "1234567890";
-
-WRITETEXT (stdout, "s20 := ""%C"", s10 := ""%C""%/", s20, s10);
-
-END ss;
diff --git a/gdb/testsuite/gdb.chill/string.exp b/gdb/testsuite/gdb.chill/string.exp
deleted file mode 100644 (file)
index 41b2104..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "string"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     # These tests based on Cygnus PR chill/5696.
-# OBSOLETE     runto string.ch:22
-# OBSOLETE     gdb_test "p s20" { = "Moser Wilfried"} "print simple vstring"
-# OBSOLETE     gdb_test "p s20(1)" { = 'o'} "print vstring element"
-# OBSOLETE     gdb_test "p s20(1:3)" { = "ose"} "print vstring slice (:)"
-# OBSOLETE     gdb_test "p s20(2 up 3)" { = "ser"} "print vstring slice (up)"
-# OBSOLETE     gdb_test "p s10" { = "1234567890"} "print simple string"
-# OBSOLETE     gdb_test "p s10(1)" { = '2'} "print string element"
-# OBSOLETE     gdb_test "p s10(1:3)" { = "234"} "print string slice (:)"
-# OBSOLETE     gdb_test "p s10(2 up 3)" { = "345"} "print string slice (up)"
-# OBSOLETE 
-# OBSOLETE     gdb_test "p length(s10)" { = 10} "print string length"
-# OBSOLETE     gdb_test "p length(s20)" { = 14} "print varying string length"
-# OBSOLETE     gdb_test "p lower(s10)" { = 0} "print string lower"
-# OBSOLETE     gdb_test "p upper(s10)" { = 9} "print string upper"
-# OBSOLETE     gdb_test "p lower(s20)" { = 0} "print varying string lower"
-# OBSOLETE     gdb_test "p upper(s20)" { = 19} "print varying string upper"
-# OBSOLETE 
-# OBSOLETE     # These tests are based on Cygnus PR chill/9078.
-# OBSOLETE     gdb_test "print foo // bar" { = "Moser Wilfried"}
-# OBSOLETE     gdb_test "print foo // bar1" { = "Moser abcde"}
-# OBSOLETE     gdb_test "print foo1 // bar1" { = "12345abcde"}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/tests1.ch b/gdb/testsuite/gdb.chill/tests1.ch
deleted file mode 100644 (file)
index 3afdd90..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
--- Copyright 1992, 1995, 1996 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.
-
--- Please email any bugs, comments, and/or additions to this file to:
--- bug-gdb@prep.ai.mit.edu
-
---
--- test program 1 (refer to tests1.exp)
---
-
-/* These functions are defined in libchill.a */
-
-runtime: SPEC MODULE
-DCL chill_argc long;
-DCL chill_argv REF ARRAY (0:1000) REF CHARS (1000) VARYING;
-__print_event: PROC (arg0 ptr,
-       arg1 ptr) END;
-__print_buffer: PROC (arg0 ptr,
-       arg1 ptr) END;
-GRANT ALL;
-END;
-
-tests1: module;
-
-seize  __print_event,
-       __print_buffer;
-
-newmode        set1 = set(aaa, bbb, ccc);
-newmode        nset1 = set(na = 1, nb = 34, nc = 20);
-newmode r11 = range (0 : upper(ubyte));
-newmode r12 = range (0 : upper(uint));
---newmode r13 = range (0 : upper(ulong)); -- bug in gnuchill
-newmode r14 = range (lower(byte) : upper(byte));
-newmode r15 = range (lower(int) : upper(int));
-newmode r16 = range (lower(long): upper(long));
-newmode r2 = set1(bbb : ccc);
-newmode r3 = nset1(na : na);
-newmode r4 = nset1(nc : nb);
-newmode r5 = nset1(lower(nset1) : upper(nset1));
-
-newmode pm1 = powerset set(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
-newmode pm2 = powerset byte (1:8);
-newmode pm3 = powerset int (-32768:32767);
-newmode pm4 = powerset long (-32768:32768);
-newmode pm5 = powerset long (lower(long):upper(long));
-newmode ref1 = ref pm1;
-newmode ref2 = ref byte;
-newmode ref3 = ptr;
-synmode ref4 = ptr;
-synmode syn_int = int;
-
-newmode prm1 = proc ();
-newmode prm2 = proc (bool in, int out, long inout) returns (char);
-newmode prm3 = proc (pm1, ref1 loc) returns (ref3);
-newmode prm4 = proc () exceptions(ex1, ex2, ex3);
-newmode prm5 = proc (r11, r16 inout, r5 out) returns (r2) exceptions (ex1);
-
-newmode ev1m = event;
-newmode ev2m = event (42);
-
-newmode bu1m = buffer ref1;
-newmode bu2m = buffer (42) ubyte;
-
-newmode strm1 = char (5);
-synmode strm2 = char (7) varying;
-
-synmode bstr1 = bit(20);
---newmode bstr2 = bit(10) varying;
-
-newmode arr1m = array(1:100) set1;
-newmode arr2m = array(1:100, 1:100) set1;
-newmode arr3m = array(r11, r12, r14) set1;
-newmode arr4m = array(r2) array (r3) array (r4, r5) pm1;
-newmode arr5m = array(1:10) int;
-newmode arr6m = array(1:5, 1:3, 1:2) long;
-
-newmode stru1m = struct (a, b long, 
-                        case b of 
-                          (42): ch1 chars(20),
-                          (52): ch2 chars(10)
-                          else  ch3 chars(1)
-                        esac);
-
-newmode stru2m = struct (f set1,
-                        case f of
-                           (aaa): ch1 char(20),
-                           (bbb): ch2 char(10) varying
-                        else   ch3 char(0) varying
-                        esac);
-newmode stru3m = struct (f r3,
-                        case f of
-                           (na): ch1 char(20)
-                        esac);
-newmode stru4m = struct (i long,
-                        case of
-                          : i1, i11 int,
-                            b1 bool,
-                            c1 char,
-                          : i2, i22 long,
-                            bs2 bools (10),
-                          :
-                            s3 struct (i3 int,
-                                       case of
-                                         : foo long
-                                         else bar char
-                                       esac)
-                          else
-                             x stru2m
-                         esac,
-                         y stru3m);
-
-synmode m_xyzmode = struct (next ref m_xyzmode,
-                           i long);
-
--- set mode locations
-dcl s1l set1 := ccc;
-dcl s2l nset1 := nb;
-
--- range mode locations
-dcl rl1 r11 := 3;
-dcl rl2 r11 := lower(r11);
-dcl rl3 r11 := upper(r11);
-
-dcl rl5 r12 := 65530;
-dcl rl6 r12 := lower(r12);
-dcl rl7 r12 := upper(r12);
-
---dcl rl9 r13 := 128;
---dcl rl10 r13 := lower(r13);
---dcl rl11 r13 := upper(r13);
-
-dcl rl13 r14 := -121;
-dcl rl14 r14 := lower(r14);
-dcl rl15 r14 := upper(r14);
-
-dcl rl17 r15 := -32720;
-dcl rl18 r15 := lower(r15);
-dcl rl19 r15 := upper(r15);
-
-dcl rl21 r16 := 2147483643;
-dcl rl22 r16 := lower(r16);
-dcl rl23 r16 := upper(r16);
-
--- powerset mode locations
-dcl pl1 pm1 := [p1:p10];
-dcl pl2 pm1 := [];
-dcl pl3 pm1 := [p1, p10];
-dcl pl4 pm1 := [p1:p2, p4:p6, p8:p10];
-dcl pl5 pm1 := [p1:p4, p6, p8:p10];
-dcl pl6 pm1 := [p1, p3:p8, p10]; 
-
-dcl pl7 pm2 := [1:8];
-dcl pl8 pm3 := [-32768:32767];
---dcl pl9 pm5 := [-2147483648:2147483647];
-
--- reference mode locations
-dcl ref3l ref3;
-dcl ref4l ref4;
-dcl ref5l, ref6l, ref7l, ref8l ptr;
-dcl syn_intl1 syn_int := 42;
-dcl intl1 int := -42;
-
--- synchronization mode locations
-dcl ev1l ev1m;
-dcl ev2l ev2m;
-dcl bu1l bu1m;
-dcl bu2l bu2m;
-
--- timing mode locations
-dcl til1 time;
-
--- string mode locations
-dcl strl1, strl2 strm2;
-dcl bstrl1 bstr1 := B'10101010101010101010';
-
--- array mode locations
-dcl arrl1 arr1m;
-dcl arrl2 arr5m := [1, -1, 32767, -32768, 0, 10, 11, 12, 13, 42];
-dcl arrl3 arr6m := [(1:5): [(1:3): [(1:2): -2147483648]]];
-dcl arrl4 arr6m := [(1:2): [(1:3): [(1:2): -2147483648]],
-                     (3): [(1:3): [(1:2): 100]],
-                   (4:5): [(1:3): [(1:2): -2147483648]]];
-dcl arrl5 array(1:10) nset1;
-
--- structure mode locations
-dcl strul1 stru1m := [-2147483648, 42, "12345678900987654321"];
-
-dummyfunc: proc();
-end dummyfunc;
-
-ref3l:=->pl1;          -- newmode ref
-ref4l:=->pl1;          -- synmode ref
-ref5l:=->pl1;          -- ptr
-
-ref6l:=->syn_intl1;    -- ref to synmode
-ref7l:=->intl1;                -- ref to predefined mode
-ref8l:=->pl1;          -- ref to newmode
-
-strl1 := "ha" // C'6e' // "s" // "i" // C'00';
-strl2 := C'00' // "ope";
-
-__print_event(addr(ev1l), addr("ev1l"));
-__print_event(addr(ev2l), addr("ev2l"));
-__print_buffer(addr(bu1l), addr("bu1m"));
-__print_buffer(addr(bu2l), addr("bu2m"));
-
-til1 := abstime(1970, 3, 12, 10, 43, 0);
-writetext(stdout, "lower(pm3) = %C; upper(pm3) = %C%..%/", 
-                 lower(pm3), upper(pm3));
-writetext(stdout, "lower(pm5) = %C; upper(pm5) = %C%..%/", 
-                 lower(pm5), upper(pm5));
---writetext(stdout, "lower(pl9) = %C; upper(pl9) = %C%..%/", 
---               lower(pl9), upper(pl9));
-writetext(stdout, "date = %C%..%/", til1);
-
-writetext(stdout, "slice1 = %C%..%/", strl1(3 : 5));
-writetext(stdout, "slice2 = %C%..%/", strl2(0 : 3));
---writetext(stdout, "slice3 = %C%..%/", strl1(0 up 20));
-writetext(stdout, "slice4 = %C%..%/", bstrl1(0));
---writetext(stdout, "slice5 = %C%..%/", arrl3(1:5));
-
-
-writetext(stdout, "done.%/");
-
-dummyfunc();
-
-end tests1;
diff --git a/gdb/testsuite/gdb.chill/tests1.exp b/gdb/testsuite/gdb.chill/tests1.exp
deleted file mode 100644 (file)
index d3c647d..0000000
+++ /dev/null
@@ -1,822 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file tests various Chill values, expressions, and types.
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "tests1"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -w -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     verbose "loading file '$binfile'"
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     send_gdb "show language\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".* source language is \"chill\".*$gdb_prompt $" {
-# OBSOLETE         pass "set language to \"chill\""
-# OBSOLETE         send_gdb "break dummyfunc\n"
-# OBSOLETE         gdb_expect {
-# OBSOLETE             -re ".*$gdb_prompt $" {
-# OBSOLETE                 send_gdb "run\n" 
-# OBSOLETE                 gdb_expect -re ".*$gdb_prompt $" {}
-# OBSOLETE                 return 1
-# OBSOLETE             }
-# OBSOLETE             timeout {
-# OBSOLETE                 fail "can't set breakpoint (timeout)"
-# OBSOLETE                 return 0
-# OBSOLETE             }
-# OBSOLETE         }
-# OBSOLETE     }
-# OBSOLETE     -re ".*$gdb_prompt $" {
-# OBSOLETE         fail "setting language to \"chill\""
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     timeout {
-# OBSOLETE         fail "can't show language (timeout)"
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     }
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Testing printing of a specific value.  Increment passcount for
-# OBSOLETE # success or issue fail message for failure.  In both cases, return
-# OBSOLETE # a 1 to indicate that more tests can proceed.  However a timeout
-# OBSOLETE # is a serious error, generates a special fail message, and causes
-# OBSOLETE # a 0 to be returned to indicate that more tests are likely to fail
-# OBSOLETE # as well.
-# OBSOLETE #
-# OBSOLETE # Args are:
-# OBSOLETE #
-# OBSOLETE #   First one is string to send_gdb to gdb
-# OBSOLETE #   Second one is string to match gdb result to
-# OBSOLETE #   Third one is an optional message to be printed
-# OBSOLETE 
-# OBSOLETE proc test_print_accept { args } {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global passcount
-# OBSOLETE     global verbose
-# OBSOLETE 
-# OBSOLETE     if [llength $args]==3 then {
-# OBSOLETE     set message [lindex $args 2]
-# OBSOLETE     } else {
-# OBSOLETE     set message [lindex $args 0]
-# OBSOLETE     }
-# OBSOLETE     set sendthis [lindex $args 0]
-# OBSOLETE     set expectthis [lindex $args 1]
-# OBSOLETE     set result [gdb_test $sendthis ".* = ${expectthis}" $message]
-# OBSOLETE     if $result==0 {incr passcount}
-# OBSOLETE     return $result
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Testing printing of a specific value.  Increment passcount for
-# OBSOLETE # success or issue fail message for failure.  In both cases, return
-# OBSOLETE # a 1 to indicate that more tests can proceed.  However a timeout
-# OBSOLETE # is a serious error, generates a special fail message, and causes
-# OBSOLETE # a 0 to be returned to indicate that more tests are likely to fail
-# OBSOLETE # as well.
-# OBSOLETE 
-# OBSOLETE # various tests if modes are treated correctly
-# OBSOLETE # using ptype
-# OBSOLETE proc test_modes {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing chill modes"
-# OBSOLETE     set passcount 0
-# OBSOLETE 
-# OBSOLETE     # discrete modes
-# OBSOLETE     test_print_accept "ptype BYTE" "byte"
-# OBSOLETE     test_print_accept "ptype UBYTE" "ubyte"
-# OBSOLETE     test_print_accept "ptype INT" "int"
-# OBSOLETE     test_print_accept "ptype UINT" "uint"
-# OBSOLETE     test_print_accept "ptype LONG" "long"
-# OBSOLETE     test_print_accept "ptype ULONG" "ulong"
-# OBSOLETE     test_print_accept "ptype BOOL" "bool"
-# OBSOLETE     test_print_accept "ptype CHAR" "char"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype set1" "SET \[(\]aaa, bbb, ccc\[)\]" \
-# OBSOLETE     "print unnumbered set mode"
-# OBSOLETE     test_print_accept "ptype nset1" "SET \[(\]na = 1, nb = 34, nc = 20\[)\]" \
-# OBSOLETE     "print numbered set mode"
-# OBSOLETE 
-# OBSOLETE     # mp:
-# OBSOLETE     # display maybe in hex values ?
-# OBSOLETE     #
-# OBSOLETE     test_print_accept "ptype r11" "ubyte \\(0:255\\)" \
-# OBSOLETE     "print ubyte range mode"
-# OBSOLETE     test_print_accept "ptype r12" "uint \\(0:65535\\)" \
-# OBSOLETE     "print uint range mode"
-# OBSOLETE #    test_print_accept "ptype r13" "ulong \\(0:4294967295\\)" \
-# OBSOLETE #   "print ulong range mode"
-# OBSOLETE     test_print_accept "ptype r14" "byte \\(-128:127\\)" \
-# OBSOLETE     "print byte range mode"
-# OBSOLETE     test_print_accept "ptype r15" "int \\(-32768:32767\\)" \
-# OBSOLETE     "print int range mode"
-# OBSOLETE     test_print_accept "ptype r16" "long \\(-2147483648:2147483647\\)" \
-# OBSOLETE     "print long range mode"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype r2" "set1 \\(bbb:ccc\\)" \
-# OBSOLETE     "print unnumbered set range mode"
-# OBSOLETE     test_print_accept "ptype r3" "nset1 \\(na:na\\)" \
-# OBSOLETE     "print numbered set range mode"
-# OBSOLETE     # really this order ?
-# OBSOLETE     # I'm not sure what should happen for the next two tests.
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype r4" "nset1 \\(nb = 34:nc = 20\\)" \
-# OBSOLETE     "print numbered set range mode"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype r5" "nset1 \\(na = 1, nb = 34, nc = 20\\)" \
-# OBSOLETE     "print numbered set range mode"
-# OBSOLETE 
-# OBSOLETE     # powerset modes
-# OBSOLETE     test_print_accept "ptype pm1" \
-# OBSOLETE     "POWERSET SET \[(\]p1, p2, p3, p4, p5, p6, p7, p8, p9, p10\[)\]" \
-# OBSOLETE     "print powerset mode 1"
-# OBSOLETE     test_print_accept "ptype pm2" "POWERSET byte \\(1:8\\)" \
-# OBSOLETE     "print powerset mode 2"
-# OBSOLETE     test_print_accept "ptype pm3" "POWERSET int \\(-32768:32767\\)" \
-# OBSOLETE     "print powerset mode 3"
-# OBSOLETE     test_print_accept "ptype pm4" "POWERSET long \\(-32768:32768\\)" \
-# OBSOLETE     "print powerset mode 4"
-# OBSOLETE     test_print_accept "ptype pm5" \
-# OBSOLETE     "POWERSET long \\(-2147483648:2147483647\\)" \
-# OBSOLETE     "print powerset mode 5"
-# OBSOLETE     
-# OBSOLETE     # reference modes
-# OBSOLETE     test_print_accept "ptype ref1" "REF pm1" \
-# OBSOLETE     "print reference to powerset mode"
-# OBSOLETE     test_print_accept "ptype ref2" "REF byte" \
-# OBSOLETE     "print reference to byte"
-# OBSOLETE     test_print_accept "ptype ref3" "PTR" \
-# OBSOLETE     "print free reference type"
-# OBSOLETE 
-# OBSOLETE     # procedure modes
-# OBSOLETE     # FIXME: we have to talk about this ... 
-# OBSOLETE     test_print_accept "ptype prm1" \
-# OBSOLETE     "REF PROC \[(\]\[)\]" \
-# OBSOLETE     "print procedure mode 1"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype prm2" \
-# OBSOLETE     "REF PROC \[(\]bool in, int out long inout\[)\] RETURNS \[(\]char\[)\]" \
-# OBSOLETE     "print procedure mode 2"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype prm3" \
-# OBSOLETE     "REF PROC \[(\]pm1, ref loc\[)\] RETURNS \[(\]ref3\[)\]" \
-# OBSOLETE     "print procedure mode 3"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype prm4" \
-# OBSOLETE     "\[(\] \[)\] EXCEPTIONS \[(\]ex1, ex2, ex3\[)\]" \
-# OBSOLETE     "print procedure mode 4"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype prm5" \
-# OBSOLETE     "REF PROC \[(\]r11, r16 inout, r5 out\[)\] RETURNS \[(\]r2\[)\] EXCEPTIONS \[(\]ex1\[)\]" \
-# OBSOLETE     "print procedure mode 5"
-# OBSOLETE 
-# OBSOLETE     # synchronization modes
-# OBSOLETE     # FIXME: since gdb doesn't process events & buffers so far, this has be 
-# OBSOLETE     #        filled later...
-# OBSOLETE     xfail "synchronization mode handling"
-# OBSOLETE 
-# OBSOLETE     # timing modes
-# OBSOLETE     test_print_accept "ptype DURATION" "duration"
-# OBSOLETE     test_print_accept "ptype TIME" "time"
-# OBSOLETE 
-# OBSOLETE     # string modes
-# OBSOLETE     # some tests are done in chillvars.exp
-# OBSOLETE     test_print_accept "ptype strm1" "CHARS \\(5\\)" "print char string mode"
-# OBSOLETE     test_print_accept "ptype strm2" "CHARS \[(\]7\[)\] VARYING" \
-# OBSOLETE     "print varying char string mode"
-# OBSOLETE     test_print_accept "ptype bstr1" "BOOLS \\(20\\)" "print bit string mode"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype B'000'" "BOOLS \\(3\\)" "bit string literal"
-# OBSOLETE     test_print_accept "ptype B'11110000'" "BOOLS \\(8\\)" "bit string literal"
-# OBSOLETE     # FIXME: adjust error message
-# OBSOLETE     gdb_test "ptype B'00110211'" {.*Too-large digit.*[.]} \
-# OBSOLETE     "reject invalid bitstring"
-# OBSOLETE 
-# OBSOLETE     # array modes
-# OBSOLETE     # some tests are done in chillvars.exp
-# OBSOLETE     test_print_accept "ptype arr1m" "ARRAY \\(1:100\\) set1" \
-# OBSOLETE     "print array mode 1"
-# OBSOLETE     test_print_accept "ptype arr2m" "ARRAY \\(1:100\\) ARRAY \\(1:100\\) set1"\
-# OBSOLETE     "print array mode 2"
-# OBSOLETE     test_print_accept "ptype arr3m" "ARRAY \\(0:255\\) ARRAY \\(0:65535\\) ARRAY \\(-128:127\\) set1" \
-# OBSOLETE     "print array mode 3"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype arr4m" "ARRAY \\(b:c\\) ARRAY \\(na = 1:na = 1\\) ARRAY \\(nc:nb\\) ARRAY \\(na = 1:nc = 20\\) POWERSET SET \[(\]p1, p2, p3, p4, p5, p6, p7, p8, p9, p10\[)\]" \
-# OBSOLETE     "print array mode 4"
-# OBSOLETE     
-# OBSOLETE     # structure modes
-# OBSOLETE     # some checks are in chillvars.exp
-# OBSOLETE     # setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype stru1m" "STRUCT \\(.*a long,.*b long,.*CASE OF.*:.*ch1 CHARS \\(20\\).*:.*ch2 CHARS \\(10\\).*ELSE.*ch3 CHARS \\(1\\).*ESAC.*\\)" \
-# OBSOLETE     "print structure mode 1"
-# OBSOLETE     #setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype stru2m" "STRUCT \\(.*f set1,.*CASE OF.*:.*ch1 CHARS \\(20\\).*:.*ch2 CHARS \\(10\\) VARYING.*ELSE.*ch3 CHARS \\(0\\) VARYING.*ESAC.*\\)" \
-# OBSOLETE     "print structure mode 2"
-# OBSOLETE     #setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype stru3m" "STRUCT \\(.*f r3,.*CASE OF.*:.*ch1 CHARS \\(20\\).*ESAC.*\\)" \
-# OBSOLETE     "print structure mode 3"
-# OBSOLETE     # setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype stru4m" "STRUCT \\(.*i long,.*CASE OF.*:.*i1 int,.*i11 int,.*b1 bool,.*c1 char.*:.*i2 long,.*i22 long,.*bs2 BOOLS \\(10\\).*:.*s3 STRUCT \\(.*i3 int,.*CASE OF.*:.*foo long.*ELSE.*bar char.*ESAC.*\\).*ELSE.*x stru2m.*ESAC,.*y stru3m.*\\)" \
-# OBSOLETE     "print structure mode 4"
-# OBSOLETE    
-# OBSOLETE     
-# OBSOLETE     if $passcount then {
-# OBSOLETE     pass "$passcount correct modes printed"
-# OBSOLETE     }
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # various tests if locations are treated correctly
-# OBSOLETE # read access using ptype, print, whatis
-# OBSOLETE proc test_locations {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     set passcount 0
-# OBSOLETE     verbose "testing read access to locations"
-# OBSOLETE     # various location tests can be found in chillvars.exp
-# OBSOLETE 
-# OBSOLETE     # set locations
-# OBSOLETE     test_print_accept "ptype s1l" "SET \\(aaa, bbb, ccc\\)" \
-# OBSOLETE     "print mode of set location"
-# OBSOLETE     test_print_accept "whatis s1l" "set1" \
-# OBSOLETE     "print modename of set location"
-# OBSOLETE     test_print_accept "print s1l" "ccc" "print set location"
-# OBSOLETE     test_print_accept "ptype s2l" "SET \\(na = 1, nb = 34, nc = 20\\)" \
-# OBSOLETE     "print mode of numbered set location"
-# OBSOLETE     test_print_accept "whatis s2l" "nset1" \
-# OBSOLETE     "print mode name of numbered set location"
-# OBSOLETE     test_print_accept "print s2l" "nb" "print numberes set location"
-# OBSOLETE 
-# OBSOLETE     # range modes
-# OBSOLETE     test_print_accept "ptype rl1" "ubyte \\(0:255\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl1" "r11" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl1" "3" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl2" "ubyte \\(0:255\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl2" "r11" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl2" "0" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl3" "ubyte \\(0:255\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl3" "r11" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl3" "255" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl5" "uint \\(0:65535\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl5" "r12" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl5" "65530" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl6" "uint \\(0:65535\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl6" "r12" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl6" "0" \
-# OBSOLETE     "print range location"
-# OBSOLETE     
-# OBSOLETE     test_print_accept "ptype rl7" "uint \\(0:65535\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl7" "r12" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl7" "65535" \
-# OBSOLETE     "print range location"
-# OBSOLETE     
-# OBSOLETE #     test_print_accept "ptype rl9" "ulong \\(0:4294967295\\)" \
-# OBSOLETE #   "print mode of range location"
-# OBSOLETE #     test_print_accept "whatis rl9" "r13" \
-# OBSOLETE #   "print mode name of range location"
-# OBSOLETE #     test_print_accept "print rl9" "128" \
-# OBSOLETE #   "print range location"
-# OBSOLETE     
-# OBSOLETE #     test_print_accept "ptype rl10" "ulong \\(0:4294967295\\)" \
-# OBSOLETE #   "print mode of range location"
-# OBSOLETE #     test_print_accept "whatis rl10" "r13" \
-# OBSOLETE #   "print mode name of range location"
-# OBSOLETE #     test_print_accept "print rl10" "0" \
-# OBSOLETE #   "print range location"
-# OBSOLETE     
-# OBSOLETE #     test_print_accept "ptype rl11" "ulong \\(0:4294967295\\)" \
-# OBSOLETE #   "print mode of range location"
-# OBSOLETE #     test_print_accept "whatis rl11" "r13" \
-# OBSOLETE #   "print mode name of range location"
-# OBSOLETE #     test_print_accept "print rl11" "4294967295" \
-# OBSOLETE #   "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl13" "byte \\(-128:127\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl13" "r14" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl13" "-121" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl14" "byte \\(-128:127\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl14" "r14" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl14" "-128" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl15" "byte \\(-128:127\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl15" "r14" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl15" "127" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl17" "int \\(-32768:32767\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl17" "r15" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl17" "-32720" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl18" "int \\(-32768:32767\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl18" "r15" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl18" "-32768" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl19" "int \\(-32768:32767\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl19" "r15" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl19" "32767" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl21" "long \\(-2147483648:2147483647\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl21" "r16" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl21" "2147483643" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl22" "long \\(-2147483648:2147483647\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl22" "r16" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl22" "-2147483648" \
-# OBSOLETE     "print range location"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype rl23" "long \\(-2147483648:2147483647\\)" \
-# OBSOLETE     "print mode of range location"
-# OBSOLETE     test_print_accept "whatis rl23" "r16" \
-# OBSOLETE     "print mode name of range location"
-# OBSOLETE     test_print_accept "print rl23" "2147483647" \
-# OBSOLETE     "print range location"
-# OBSOLETE     
-# OBSOLETE     # powerset locations
-# OBSOLETE     test_print_accept "ptype pl1" \
-# OBSOLETE     "POWERSET SET \\(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10\\)" \
-# OBSOLETE     "print mode of powerset location 1"
-# OBSOLETE     test_print_accept "whatis pl1" "pm1" \
-# OBSOLETE     "print mode mode name of powerset location"
-# OBSOLETE     test_print_accept "print pl1" \
-# OBSOLETE     "\[\[\]p1:p10\[\]\]" \
-# OBSOLETE     "print powerset location 1"
-# OBSOLETE     test_print_accept "print pl2" {\[\]} \
-# OBSOLETE     "print powerset location 2"
-# OBSOLETE     test_print_accept "print pl3" "\[\[\]p1, p10\[\]\]" \
-# OBSOLETE             "print powerset location 3"
-# OBSOLETE     test_print_accept "print pl4" {\[p1:p2, p4:p6, p8:p10\]} \
-# OBSOLETE     "print powerset location 4"
-# OBSOLETE     test_print_accept "print pl5" {\[p1:p4, p6, p8:p10\]} \
-# OBSOLETE     "print powerset location 5"
-# OBSOLETE     test_print_accept "print pl6" {\[p1, p3:p8, p10\]} \
-# OBSOLETE     "print powerset location 6"
-# OBSOLETE     
-# OBSOLETE     test_print_accept "ptype pl7" \
-# OBSOLETE     "POWERSET byte \\(1:8\\)" \
-# OBSOLETE     "print mode of byte powerset location"
-# OBSOLETE     test_print_accept "whatis pl7" "pm2" \
-# OBSOLETE     "print modename of byte powerset location"
-# OBSOLETE     test_print_accept "print pl7" {\[1:8\]} \
-# OBSOLETE     "print powerset location 7"
-# OBSOLETE     
-# OBSOLETE     test_print_accept "ptype pl8" \
-# OBSOLETE     "POWERSET int \\(-32768:32767\\)" \
-# OBSOLETE     "print mode of int powerset location"
-# OBSOLETE     test_print_accept "whatis pl8" "pm3" \
-# OBSOLETE     "print modename of int powerset location"
-# OBSOLETE     test_print_accept "print pl8" {\[-32768:32767\]} \
-# OBSOLETE     "print powerset location 8"
-# OBSOLETE     
-# OBSOLETE #    test_print_accept "ptype pl9" \
-# OBSOLETE #   "POWERSET long \\(-2147483648:2147483647\\)" \
-# OBSOLETE #   "print mode of long powerset location"
-# OBSOLETE #    test_print_accept "whatis pl9" "pm5" \
-# OBSOLETE #   "print modename of long powerset location"
-# OBSOLETE #    test_print_accept "print pl9" {\[-2147483648:2147483647\]} \
-# OBSOLETE #   "print powerset location 9"
-# OBSOLETE     
-# OBSOLETE     # reference modes
-# OBSOLETE     test_print_accept "ptype ref3l" "PTR" "print mode of reference location"
-# OBSOLETE     # setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "whatis ref3l" "ref3" \
-# OBSOLETE     "print modename of reference location"
-# OBSOLETE     # setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print ref3l" "ref3\\(H'.*\\)" \
-# OBSOLETE     "print reference location"
-# OBSOLETE     test_print_accept "ptype ref4l" "PTR" "print mode of reference location"
-# OBSOLETE     # setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "whatis ref4l" "ref4" \
-# OBSOLETE     "print modename of reference location"
-# OBSOLETE     # setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print ref4l" "ref4\\(H'.*\\)" \
-# OBSOLETE     "print reference location"
-# OBSOLETE     test_print_accept "ptype ref5l" "PTR" "print mode of reference location"
-# OBSOLETE     test_print_accept "whatis ref5l" "PTR" \
-# OBSOLETE     "print modename of reference location"
-# OBSOLETE     test_print_accept "print ref5l" "PTR\\(H'.*\\)" \
-# OBSOLETE     "print reference location"
-# OBSOLETE 
-# OBSOLETE     # dereference a little bit..
-# OBSOLETE     test_print_accept "print ref6l->syn_int" "42" \
-# OBSOLETE     "dereference reference to synmode location"
-# OBSOLETE     test_print_accept "print ref7l->int" "-42" \
-# OBSOLETE     "dereference reference to predefined mode location"
-# OBSOLETE     test_print_accept "print ref8l->pm1" \
-# OBSOLETE     "\[\[\]p1:p10\[\]\]" \
-# OBSOLETE     "dereference reference to newmode location"
-# OBSOLETE 
-# OBSOLETE     # synchronization mode locations
-# OBSOLETE     # FIXME: synchronization modes are not supported so far...
-# OBSOLETE     xfail "no synchronization mode location support, not implemented yet"
-# OBSOLETE     
-# OBSOLETE     # timing mode locations
-# OBSOLETE     # FIXME: callbacks to abstime, inttime not implemented
-# OBSOLETE     xfail "timing modes not implemented properly yet"
-# OBSOLETE 
-# OBSOLETE     # char string locations
-# OBSOLETE     # some tests are don in chillvars.exp
-# OBSOLETE     test_print_accept "ptype strl1" \
-# OBSOLETE     "CHARS \\(7\\) VARYING" \
-# OBSOLETE     "print varying string location"
-# OBSOLETE     test_print_accept "whatis strl1" "strm2" \
-# OBSOLETE     "print string locationa mode name"
-# OBSOLETE     test_print_accept "print strl1" \
-# OBSOLETE     {\"hansi\^\(0\)\"} \
-# OBSOLETE     "print string location"
-# OBSOLETE     # string elements
-# OBSOLETE     test_print_accept "print strl1(0)" "\'h\'" \
-# OBSOLETE     "print string element 1"
-# OBSOLETE     test_print_accept "print strl1(5)" {'\^[(]0[)]'} \
-# OBSOLETE     "print string element 2"
-# OBSOLETE     test_print_accept "print strl1(3)" "\'s\'" \
-# OBSOLETE     "print string element 3"
-# OBSOLETE     test_print_accept "ptype strl1(0)" "char" \
-# OBSOLETE     "print mode of string element"
-# OBSOLETE     # slices
-# OBSOLETE     test_print_accept "print strl1(3:4)" "\"si\"" \
-# OBSOLETE     "print string slice 1"
-# OBSOLETE     test_print_accept "print strl1(0:5)" \
-# OBSOLETE     {\"hansi\^\(0\)\"} \
-# OBSOLETE     "print string slice 2"
-# OBSOLETE     test_print_accept "print strl1(0:0)" "\"h\"" \
-# OBSOLETE     "print string slice 3"
-# OBSOLETE     test_print_accept "print strl1(0 up 6)" \
-# OBSOLETE     {\"hansi\^\(0\)\"} \
-# OBSOLETE     "print string slice 4"
-# OBSOLETE     # FIXME: adjust error message, when implented
-# OBSOLETE     gdb_test "print strl1(6 up 1)" \
-# OBSOLETE     ".*slice.*out of range.*" \
-# OBSOLETE     "print invalid string slice length"
-# OBSOLETE     gdb_test "print strl1(-1 up 5)" \
-# OBSOLETE     ".*slice.*out of range.*" \
-# OBSOLETE     "print invalid string slice length"
-# OBSOLETE     gdb_test "print strl1(-1:5)" \
-# OBSOLETE     ".*slice.*out of range.*" \
-# OBSOLETE     "print invalid string slice"
-# OBSOLETE     gdb_test "print strl1(-1:7)" \
-# OBSOLETE     ".*slice.*out of range.*" \
-# OBSOLETE     "print invalid string slice"
-# OBSOLETE     gdb_test "print strl1(0 up -1)" \
-# OBSOLETE     ".*slice.*out of range.*" \
-# OBSOLETE     "print invalid string slice length"
-# OBSOLETE     gdb_test "print strl1(0 up 0)" {""}
-# OBSOLETE     
-# OBSOLETE     # bitstring locations
-# OBSOLETE     test_print_accept "ptype bstr1" \
-# OBSOLETE     "BOOLS \\(20\\)" \
-# OBSOLETE     "print mode of bitstring location"
-# OBSOLETE     test_print_accept "whatis bstrl1" "bstr1" \
-# OBSOLETE     "print mode name of bitstring location"
-# OBSOLETE     test_print_accept "print bstrl1" \
-# OBSOLETE     "B'10101010101010101010'" \
-# OBSOLETE     "print bitstring location"
-# OBSOLETE     
-# OBSOLETE     test_print_accept "ptype bstrl1(0)" "bool|BOOL" \
-# OBSOLETE     "print mode of bitstring element"
-# OBSOLETE     test_print_accept "print bstrl1(0)" "TRUE" \
-# OBSOLETE     "print bitstring element 1"
-# OBSOLETE     test_print_accept "print bstrl1(19)" "FALSE" \
-# OBSOLETE     "print bitstring element 2"
-# OBSOLETE     test_print_accept "print bstrl1(10)" "TRUE" \
-# OBSOLETE     "print bitstring element 3"
-# OBSOLETE     
-# OBSOLETE     test_print_accept "print bstrl1(0:19)" \
-# OBSOLETE     "B'10101010101010101010'" \
-# OBSOLETE     "print bitstring location slice 1"
-# OBSOLETE     test_print_accept "print bstrl1(0:0)" \
-# OBSOLETE     "B'1'" \
-# OBSOLETE     "print bitstring location slice 2"
-# OBSOLETE     test_print_accept "print bstrl1(3:9)" \
-# OBSOLETE     "B'0101010'" \
-# OBSOLETE     "print bitstring location slice 3"
-# OBSOLETE     test_print_accept "print bstrl1(0 up 20)" \
-# OBSOLETE     "B'10101010101010101010'" \
-# OBSOLETE     "print bitstring location slice 4"
-# OBSOLETE     test_print_accept "print bstrl1(19 up 1)" \
-# OBSOLETE     "B'0'" \
-# OBSOLETE     "print bitstring location slice 5"
-# OBSOLETE     gdb_test "print bstrl1(20 up 1)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "print invalid bitstring slice (20 up 1)"
-# OBSOLETE     gdb_test "print bstrl1(-4:5)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "print invalid bitstring slice (-4:5)"
-# OBSOLETE     gdb_test "print bstrl1(-1:up 1)" \
-# OBSOLETE     ".*invalid expression syntax.*" \
-# OBSOLETE     "print invalid bitstring slice (-1:ip 1)"
-# OBSOLETE     gdb_test "print bstrl1(-1:20)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "print invalid bitstring slice (-1:20)"
-# OBSOLETE     gdb_test "print bstrl1(0 up -1)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "print invalid bitstring slice (0 up -1)"
-# OBSOLETE     test_print_accept "print bstrl1(4 up 0)" "B''"
-# OBSOLETE     
-# OBSOLETE     # array mode locations
-# OBSOLETE     gdb_test_exact "ptype arrl1" \
-# OBSOLETE     "ARRAY (1:100) set1" \
-# OBSOLETE     "print mode of array location"
-# OBSOLETE     gdb_test "whatis arrl1" "arr1m" \
-# OBSOLETE     "print mode name of array location"
-# OBSOLETE     gdb_test_exact "print arrl1" {[(1:100): aaa]} \
-# OBSOLETE     "print array location"
-# OBSOLETE     test_print_accept "ptype arrl1(1)" \
-# OBSOLETE     "SET \\(aaa, bbb, ccc\\)" \
-# OBSOLETE     "print mode of array element"
-# OBSOLETE     gdb_test_exact "print arrl3" \
-# OBSOLETE     {[(1:5): [(1:3): [(1:2): -2147483648]]]} \
-# OBSOLETE     "print array location 2"
-# OBSOLETE     gdb_test_exact "print arrl3(1)" \
-# OBSOLETE     {[(1:3): [(1:2): -2147483648]]} \
-# OBSOLETE     "print array location 3"
-# OBSOLETE     gdb_test_exact "ptype arrl3(1)" \
-# OBSOLETE     {ARRAY (1:3) ARRAY (1:2) long} \
-# OBSOLETE     "print mode of array element"
-# OBSOLETE     test_print_accept "print arrl3(5)" \
-# OBSOLETE     {\[\(1:3\): \[\(1:2\): -2147483648\]\]} \
-# OBSOLETE     "print array location 4"
-# OBSOLETE     test_print_accept "print arrl3(1,1)" \
-# OBSOLETE     {\[\(1:2\): -2147483648\]} \
-# OBSOLETE     "print array location 5"
-# OBSOLETE     test_print_accept "ptype arrl3(1,1)" \
-# OBSOLETE     {ARRAY \(1:2\) long} \
-# OBSOLETE     "print mode of array element"
-# OBSOLETE     test_print_accept "print arrl3(5,3)" \
-# OBSOLETE     {\[\(1:2\): -2147483648\]} \
-# OBSOLETE     "print array location 6"
-# OBSOLETE     test_print_accept "print arrl3(1,1,1)" \
-# OBSOLETE     "-2147483648" \
-# OBSOLETE     "print array location 7"
-# OBSOLETE     test_print_accept "print arrl3(5,3,2)" \
-# OBSOLETE     "-2147483648" \
-# OBSOLETE     "print array location 8"
-# OBSOLETE     test_print_accept "print arrl3(1)(3)(2)" \
-# OBSOLETE     "-2147483648" \
-# OBSOLETE     "print array location 9"
-# OBSOLETE 
-# OBSOLETE     # reject the following range fails
-# OBSOLETE     # FIXME: adjust error messages
-# OBSOLETE     gdb_test "print arrl3(-1)" \
-# OBSOLETE     ".*out of range.*" \
-# OBSOLETE     "check invalid array indices 1"
-# OBSOLETE     gdb_test "print arrl3(6)" \
-# OBSOLETE     ".*out of range.*" \
-# OBSOLETE     "check invalid array indices 2"
-# OBSOLETE     gdb_test "print arrl3(0,0)" \
-# OBSOLETE     ".*out of range.*" \
-# OBSOLETE     "check invalid array indices 3"
-# OBSOLETE     gdb_test "print arrl3(1,0)" \
-# OBSOLETE     ".*out of range.*" \
-# OBSOLETE     "check invalid array indices 4"
-# OBSOLETE     gdb_test "print arrl3(1,4)" \
-# OBSOLETE     ".*out of range.*" \
-# OBSOLETE     "check invalid array indices 5"
-# OBSOLETE     gdb_test "print arrl3(6,4)" \
-# OBSOLETE     ".*out of range.*" \
-# OBSOLETE     "check invalid array indices 6"
-# OBSOLETE     gdb_test "print arrl3(1,1,0)" \
-# OBSOLETE     ".*out of range.*" \
-# OBSOLETE     "check invalid array indices 7"
-# OBSOLETE     gdb_test "print arrl3(6,4,0)" \
-# OBSOLETE     ".*out of range.*" \
-# OBSOLETE     "check invalid array indices 8"
-# OBSOLETE     gdb_test "print arrl3(1,1,3)" \
-# OBSOLETE     ".*out of range.*" \
-# OBSOLETE     "check invalid array indices 9"
-# OBSOLETE 
-# OBSOLETE     gdb_test "print arrl3(0)(0)" \
-# OBSOLETE     ".* array or string index out of range.*" \
-# OBSOLETE     "check invalid array indices 10"
-# OBSOLETE     gdb_test "print arrl3(1)(0)" \
-# OBSOLETE     ".* array or string index out of range.*" \
-# OBSOLETE     "check invalid array indices 11"
-# OBSOLETE     gdb_test "print arrl3(1)(4)" \
-# OBSOLETE     ".* array or string index out of range.*" \
-# OBSOLETE     "check invalid array indices 12"
-# OBSOLETE     gdb_test "print arrl3(6)(4)" \
-# OBSOLETE     ".* array or string index out of range.*" \
-# OBSOLETE     "check invalid array indices 13"
-# OBSOLETE     gdb_test "print arrl3(1)(1)(0)" \
-# OBSOLETE     ".* array or string index out of range.*" \
-# OBSOLETE     "check invalid array indices 14"
-# OBSOLETE     gdb_test "print arrl3(6)(4)(0)" \
-# OBSOLETE     ".* array or string index out of range.*" \
-# OBSOLETE     "check invalid array indices 15"
-# OBSOLETE     gdb_test "print arrl3(1)(1)(3)" \
-# OBSOLETE     ".* array or string index out of range.*" \
-# OBSOLETE     "check invalid array indices 16"
-# OBSOLETE     
-# OBSOLETE     # slices
-# OBSOLETE     test_print_accept "print arrl4(1:3)" \
-# OBSOLETE     {\[\(1:2\): \[\(1:3\): \[\(1:2\): -2147483648\]\], \(3\): \[\(1:3\): \[\(1:2\): 100\]\]\]} \
-# OBSOLETE     "print array slice 1"
-# OBSOLETE     test_print_accept "ptype arrl4(1:3)" \
-# OBSOLETE     {ARRAY \(1:3\) ARRAY \(1:3\) ARRAY \(1:2\) long} \
-# OBSOLETE     "print mode of array slice"
-# OBSOLETE # The next one is bogus:
-# OBSOLETE #    test_print_accept "print arrl4(5, 2:3, 1)" \
-# OBSOLETE #   # FIXME: maybe the '(1): ' in the inner tupel should be omitted ? \
-# OBSOLETE #   {\[(2): \[\(1\): 100\], \(3\):\[\(1\): 100\]\]} \
-# OBSOLETE #   "print array slice 2"
-# OBSOLETE     test_print_accept "print arrl4(1 up 4)" \
-# OBSOLETE     {\[\(1:2\): \[\(1:3\): \[\(1:2\): -2147483648\]\], \(3\): \[\(1:3\): \[\(1:2\): 100\]\], \(4\): \[\(1:3\): \[\(1:2\): -2147483648\]\]\]} \
-# OBSOLETE     "print array slice 3"
-# OBSOLETE # The next two are bogus:
-# OBSOLETE #    test_print_accept "print arrl4(3, 2 up 1)" \
-# OBSOLETE #   {\[\(2:3\): \[\(1:2\): 100\]\]} \
-# OBSOLETE #   "print array slice 4"
-# OBSOLETE #    test_print_accept "print arrl4(1:2, 1 up 1, 2)" \
-# OBSOLETE #   {\[\(1\): \[\(1\): \[\(2\): -2147483648\], \(2\): \[\(2\): -2147483648\]\], \(2\): \[\(1\): \[\(2\): -2147483648\], \(2\): \[\(2\): -2147483648\]\]\]} \
-# OBSOLETE #   "print array slice 4"
-# OBSOLETE     # reject invalid slices
-# OBSOLETE     # FIXME: adjust error messages
-# OBSOLETE     gdb_test "print arrl4(5:6)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "check invalid range 1"
-# OBSOLETE     gdb_test "print arrl4(0:1)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "check invalid range 2"
-# OBSOLETE     gdb_test "print arrl4(0:6)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "check invalid range 3"
-# OBSOLETE     gdb_test "print arrl4(3:2)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "check invalid range 4"
-# OBSOLETE     gdb_test "print arrl4(1,3:4)" \
-# OBSOLETE     ".*syntax error.*" \
-# OBSOLETE     "check invalid range 5"
-# OBSOLETE     gdb_test "print arrl4(1,0:1)" \
-# OBSOLETE     ".*syntax error.*" \
-# OBSOLETE     "check invalid range 6"
-# OBSOLETE     gdb_test "print arrl4(1,0:4)" \
-# OBSOLETE     ".*syntax error.*" \
-# OBSOLETE     "check invalid range 7"
-# OBSOLETE     gdb_test "print arrl4(1,3:2)" \
-# OBSOLETE     ".*syntax error.*" \
-# OBSOLETE     "check invalid range 8"
-# OBSOLETE     gdb_test "print arrl4(5 up 2)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "check invalid range 9"
-# OBSOLETE     gdb_test "print arrl4(-1 up 1)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "check invalid range 10"
-# OBSOLETE     gdb_test "print arrl4(-1 up 7)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "check invalid range 11"
-# OBSOLETE     gdb_test "print arrl4(1 up 0)" \
-# OBSOLETE     ".*slice out of range.*" \
-# OBSOLETE     "check invalid range 12"
-# OBSOLETE     gdb_test "print arrl4(1,3 up 1)" \
-# OBSOLETE     ".*syntax error.*" \
-# OBSOLETE     "check invalid range 13"
-# OBSOLETE     gdb_test "print arrl4(1,-1 up 1)" \
-# OBSOLETE     ".*syntax error.*" \
-# OBSOLETE     "check invalid range 14"
-# OBSOLETE     gdb_test "print arrl4(1,-1 up 5)" \
-# OBSOLETE     ".*syntax error.*" \
-# OBSOLETE     "check invalid range 15"
-# OBSOLETE     gdb_test "print arrl4(1,2 up 0)" \
-# OBSOLETE     ".*syntax error.*" \
-# OBSOLETE     "check invalid range 16"
-# OBSOLETE 
-# OBSOLETE     # structure modes
-# OBSOLETE     # some tests are in chillvars.exp
-# OBSOLETE     # FIXME: no tag processing implemented do maybe adjust these tests
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "ptype stru1m" \
-# OBSOLETE     "STRUCT \\(.*a long,.*b long,.*CASE b OF.*\\(42\\):.*ch1 CHARS\\(20\\),.*\\(52\\):.*ch2 CHARS\\(10\\).*ELSE.*ch3 CHARS\\(1\\).*ESAC.*\\)" \
-# OBSOLETE     "print mode of structure location 1"
-# OBSOLETE     test_print_accept "whatis strul1" "stru1m" \
-# OBSOLETE     "print mode name of structure location 1"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print strul1" \
-# OBSOLETE     {\[\.a: -2147483648, \.b: 42, \.\(b\): \{\(42\) = \[\.ch1: \"12345678900987654321\"\], \(52\) = \[\.ch2: \"1234567890\"\], (else) = \[\.ch3: \"1\"\]\}\]} \
-# OBSOLETE     "print structure location 1"
-# OBSOLETE     test_print_accept "print strul1.a" \
-# OBSOLETE     "-2147483648" \
-# OBSOLETE     "print field of structure location 1"
-# OBSOLETE     test_print_accept "print strul1.b" "42" \
-# OBSOLETE     "print field of structure location 1"
-# OBSOLETE     test_print_accept "print strul1.ch1" \
-# OBSOLETE     "\"12345678900987654321\"" \
-# OBSOLETE     "print field of structure location 1"
-# OBSOLETE     # setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print strul1.ch2" \
-# OBSOLETE     "\"1234567890\"" \
-# OBSOLETE     "print field of structure location 1"
-# OBSOLETE     # setup_xfail "*-*-*"
-# OBSOLETE     test_print_accept "print strul1.ch3" \
-# OBSOLETE     "\"1\"" \
-# OBSOLETE     "print field of structure location 1"
-# OBSOLETE     
-# OBSOLETE     if $passcount then {
-# OBSOLETE     pass "$passcount correct locations printed"
-# OBSOLETE     }
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # This is chill/9434
-# OBSOLETE 
-# OBSOLETE proc test_9434 {} {
-# OBSOLETE     global passcount
-# OBSOLETE 
-# OBSOLETE     verbose "testing pr-9434"
-# OBSOLETE 
-# OBSOLETE     test_print_accept "ptype m_xyzmode" "STRUCT \\(.*next REF m_xyzmode,.*i long.*\\)"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if [set_lang_chill] then {
-# OBSOLETE     test_modes
-# OBSOLETE     test_locations
-# OBSOLETE     test_9434
-# OBSOLETE } else {
-# OBSOLETE     warning "$test_name tests suppressed."
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/tests2.ch b/gdb/testsuite/gdb.chill/tests2.ch
deleted file mode 100644 (file)
index cf29866..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
--- Copyright 1992, 1995 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.
-
--- Please email any bugs, comments, and/or additions to this file to:
--- bug-gdb@prep.ai.mit.edu
-
---
--- test program 2 (refer to tests2.exp)
---
-
-tests2: module;
-
--- testpattern
-syn pat1 ulong = H'aaaaaaaa;
-syn pat2 ulong = H'55555555;
-
--- discrete modes
-newmode bytem = struct ( 
-       p1 ulong,
-       m byte,
-       p2 ulong);
-newmode ubytem = struct ( 
-       p1 ulong,
-       m ubyte,
-       p2 ulong);
-newmode intm = struct ( 
-       p1 ulong,
-       m int,
-       p2 ulong);
-newmode uintm = struct ( 
-       p1 ulong,
-       m uint,
-       p2 ulong);
-newmode longm = struct ( 
-       p1 ulong,
-       m long,
-       p2 ulong);
-newmode ulongm = struct ( 
-       p1 ulong,
-       m ulong,
-       p2 ulong);
-newmode boolm = struct ( 
-       p1 ulong,
-       m bool,
-       p2 ulong);
-newmode charm1 = struct ( 
-       p1 ulong,
-       m char(4),
-       p2 ulong);
-newmode charm2 = struct ( 
-       p1 ulong,
-       m char(7),
-       p2 ulong);
-newmode charm3 = struct ( 
-       p1 ulong,
-       m char(8) varying,
-       p2 ulong);
-newmode charm4 = struct ( 
-       p1 ulong,
-       m char,
-       p2 ulong);
-newmode bitm1 = struct ( 
-       p1 ulong,
-       m bit(8),
-       p2 ulong);
-newmode bitm2 = struct ( 
-       p1 ulong,
-       m bit(10),
-       p2 ulong);
-newmode setm1 = struct ( 
-       p1 ulong,
-       m set (a, b, c, d, e, f, g, h),
-       p2 ulong);
-newmode nset1 = struct ( 
-       p1 ulong,
-       m set (na = 2147483648, nb = 1024, nc = 4294967295),
-       p2 ulong);
-newmode rm1 = struct ( 
-       p1 ulong,
-       m range (lower(byte):upper(byte)),
-       p2 ulong);
-newmode rm2 = struct ( 
-       p1 ulong,
-       m range (lower(int):upper(int)),
-       p2 ulong);
-newmode rm3 = struct ( 
-       p1 ulong,
-       m range (lower(long):upper(long)),
-       p2 ulong);
-newmode pm1 = struct ( 
-       p1 ulong,
-       m powerset set (pa, pb, pc, pd, pe, pf, pg, ph),
-       p2 ulong);
-newmode pm2 = struct ( 
-       p1 ulong,
-       m powerset int (1:32),
-       p2 ulong);
--- this should be rejected by the gnuchill compiler ! 
-newmode pm3 = struct ( 
-       p1 ulong,
---     m powerset long (lower(long): upper(long)),
-       p2 ulong);
-newmode refm1 = struct ( 
-       p1 ulong,
-       m ptr,
-       p2 ulong);
-newmode refm2 = struct ( 
-       p1 ulong,
-       m ref bytem,
-       p2 ulong);
-newmode prm1 = struct ( 
-       p1 ulong,
-       m proc (),
-       p2 ulong);
-newmode tim1 = struct ( 
-       p1 ulong,
-       m time,
-       p2 ulong);
-newmode tim2 = struct ( 
-       p1 ulong,
-       m duration,
-       p2 ulong);
-newmode rem1 = struct ( 
-       p1 ulong,
-       m real,
-       p2 ulong);
-newmode rem2 = struct ( 
-       p1 ulong,
-       m long_real,
-       p2 ulong);
-newmode arrm1 = struct ( 
-       p1 ulong,
-       m array(1:3, 1:2) int,
-       p2 ulong);
-newmode strum1 = struct ( 
-       p1 ulong,
-       m struct (a, b int, ch char(4)),
-       p2 ulong);
-
-
--- dummyfunction for breakpoints
-dummyfunc: proc();
-end dummyfunc;
-
-
-dcl b1 bytem init := [pat1, -128, pat2];
-dcl ub1 ubytem init := [pat1, 0, pat2];
-dcl i1 intm init := [pat1, -32768, pat2];
-dcl ui1 uintm init := [pat1, 0, pat2];
-dcl l1 longm init := [pat1, -2147483648, pat2];
-dcl ul1 ulongm init := [pat1, 0, pat2];
-dcl bo1 boolm init := [pat1, true, pat2];
-dcl c1 charm1 init := [pat1, "1234", pat2];
-dcl c2 charm2 init := [pat1, "1234567", pat2];
-dcl c3 charm3 init := [pat1, "12345678", pat2];
-dcl c4 charm4 init := [pat1, C'00', pat2];
-dcl bi1 bitm1 init := [pat1, B'01011010', pat2];
-dcl bi2 bitm2 init := [pat1, B'1010110101', pat2];
-dcl se1 setm1 init := [pat1, a, pat2];
-dcl nse1 nset1 init := [pat1, na, pat2];
-dcl r1 rm1 init := [pat1, -128, pat2];
-dcl r2 rm2 init := [pat1, -32768, pat2];
-dcl r3 rm3 init := [pat1, -2147483648, pat2];
-dcl p1 pm1 init := [pat1, [pa], pat2];
-dcl p2 pm2 init := [pat1, [1], pat2];
--- dcl p3 pm3 init := [pat1, [-1], pat2]; -- FIXME: bug in gnuchill
-dcl ref1 refm1 init := [pat1, null, pat2];
-dcl ref2 refm2 init := [pat1, null, pat2];
-dcl pr1 prm1; 
-dcl ti1 tim1 init := [pat1, 0, pat2];
-dcl ti2 tim2 init := [pat1, 0, pat2];
-dcl re1 rem1 init := [pat1, 0.0, pat2];
-dcl re2 rem2 init := [pat1, 0.0, pat2];
-dcl arrl1 arrm1 init:=[pat1, [(1:3): [0,0]], pat2];
-dcl strul1 strum1 init := [pat1, [.a: 0, .b: 0, .ch: "0000"], pat2];
-
-pr1 := [pat1, dummyfunc, pat2];
-dummyfunc();
-
-end tests2;
diff --git a/gdb/testsuite/gdb.chill/tests2.exp b/gdb/testsuite/gdb.chill/tests2.exp
deleted file mode 100644 (file)
index a8df589..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-# OBSOLETE # Copyright 1992, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set prms_id 0
-# OBSOLETE set bug_id 0
-# OBSOLETE 
-# OBSOLETE # Set the current language to chill.  This counts as a test.  If it
-# OBSOLETE # fails, then we skip the other tests.
-# OBSOLETE 
-# OBSOLETE set testfile "tests2"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -w -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE global infinity
-# OBSOLETE if [istarget "i*86-*-sysv4*"] then {
-# OBSOLETE     set infinity "inf"
-# OBSOLETE } else {
-# OBSOLETE     set infinity "Infinity"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc set_lang_chill {} {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE     global binfile objdir subdir
-# OBSOLETE 
-# OBSOLETE     if ![file exists $objdir/$subdir/$binfile] then {
-# OBSOLETE     return 0
-# OBSOLETE     }
-# OBSOLETE     verbose "loading file '$objdir/$subdir/$binfile'"
-# OBSOLETE     gdb_load $objdir/$subdir/$binfile
-# OBSOLETE 
-# OBSOLETE     send_gdb "set language chill\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".*$gdb_prompt $" {}
-# OBSOLETE     timeout { fail "set language chill (timeout)" ; return 0 }
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     send_gdb "show language\n"
-# OBSOLETE     gdb_expect {
-# OBSOLETE     -re ".* source language is \"chill\".*$gdb_prompt $" {
-# OBSOLETE         pass "set language to \"chill\""
-# OBSOLETE         send_gdb "break dummyfunc\n"
-# OBSOLETE         gdb_expect {
-# OBSOLETE             -re ".*$gdb_prompt $" {
-# OBSOLETE                 send_gdb "run\n"
-# OBSOLETE                 gdb_expect -re ".*$gdb_prompt $" {}
-# OBSOLETE                 return 1
-# OBSOLETE             }
-# OBSOLETE             timeout {
-# OBSOLETE                 fail "can't set breakpoint (timeout)"
-# OBSOLETE                 return 0
-# OBSOLETE             }
-# OBSOLETE         }
-# OBSOLETE     }
-# OBSOLETE     -re ".*$gdb_prompt $" {
-# OBSOLETE         fail "setting language to \"chill\""
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     timeout {
-# OBSOLETE         fail "can't show language (timeout)"
-# OBSOLETE         return 0
-# OBSOLETE     }
-# OBSOLETE     }
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # checks if structure was accessed correctly
-# OBSOLETE proc test_write { args } {
-# OBSOLETE     global gdb_prompt
-# OBSOLETE 
-# OBSOLETE     if [llength $args]==5 then {
-# OBSOLETE     set message [lindex $args 4]
-# OBSOLETE     set extended [lindex $args 3]
-# OBSOLETE     set matchval [lindex $args 2]
-# OBSOLETE     } elseif [llength $args]==4 then {
-# OBSOLETE     set message [lindex $args 3]
-# OBSOLETE     set matchval [lindex $args 2]
-# OBSOLETE     set extended ""
-# OBSOLETE     } elseif [llength $args]==3 then {
-# OBSOLETE     set message [lindex $args 2]
-# OBSOLETE     set extended ""
-# OBSOLETE     } else {
-# OBSOLETE     warning "test ($args) write called with wrong number of arguments"
-# OBSOLETE     return 
-# OBSOLETE     }
-# OBSOLETE 
-# OBSOLETE     set location [lindex $args 0]
-# OBSOLETE     set value [lindex $args 1]
-# OBSOLETE     if ![info exists matchval] then {
-# OBSOLETE     set matchval $value
-# OBSOLETE     }
-# OBSOLETE     verbose "loc: $location, val: $value, msg: $message, ext: $extended, match: $matchval"
-# OBSOLETE 
-# OBSOLETE     verbose "setting var $value..."
-# OBSOLETE     send_gdb "set var $location.m$extended := $value\n"
-# OBSOLETE     gdb_expect -re ".*$gdb_prompt $" {}
-# OBSOLETE     gdb_test "print $location" \
-# OBSOLETE       ".*= \[\[\]\\.p1: 2863311530, \\.m: $matchval, \\.p2: 1431655765\[\]\]"\
-# OBSOLETE       "$message"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # test write access from gdb (setvar x:=y) from gdb
-# OBSOLETE proc write_access { } {
-# OBSOLETE     global infinity
-# OBSOLETE 
-# OBSOLETE     verbose "testing write access to locations"
-# OBSOLETE     
-# OBSOLETE     # discrete modes
-# OBSOLETE     test_write b1 127 "byte write 1"
-# OBSOLETE     test_write b1 -128 "byte write 2"
-# OBSOLETE     test_write b1 0 "byte write 3"
-# OBSOLETE     test_write ub1 255 "ubyte write 1"
-# OBSOLETE     test_write ub1 0 "ubyte write 2"
-# OBSOLETE     test_write ub1 42 "ubyte write 3"
-# OBSOLETE     test_write i1 32767 "int write 1"
-# OBSOLETE     test_write i1 -32768 "int write 2"
-# OBSOLETE     test_write i1 0 "int write 3"
-# OBSOLETE     test_write ui1 65535 "uint write 1"
-# OBSOLETE     test_write ui1 0 "uint write 2"
-# OBSOLETE     test_write ui1 123 "uint write 3"
-# OBSOLETE     test_write l1 2147483647 "long write 1"
-# OBSOLETE     test_write l1 -2147483648 "long write 2"
-# OBSOLETE     test_write l1 0 "long write 3"
-# OBSOLETE     test_write ul1 4294967295 "ulong write 1"
-# OBSOLETE     test_write ul1 0 "ulong write 2"
-# OBSOLETE     test_write ul1 1000000 "ulong write 3"
-# OBSOLETE     test_write bo1 FALSE "bool write 1"
-# OBSOLETE     test_write bo1 TRUE "bool write 2"
-# OBSOLETE     test_write c1 \"1234\" "char write 1"
-# OBSOLETE     test_write c2 \"1234567\" "char write 2"
-# OBSOLETE     test_write c3 \"654321\" "char write 3"
-# OBSOLETE     test_write c4 C'65' 'e' "char write 4"
-# OBSOLETE     test_write bi1 B'10100101' "bitstring write 1"
-# OBSOLETE     test_write bi2 B'0101001010' "bitstring write 2"
-# OBSOLETE     test_write se1 a "set write 1"
-# OBSOLETE     test_write se1 h "set write 2"
-# OBSOLETE     # The following two use numbered sets with too-large values.
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_write nse1 nb "numbered set write 1"
-# OBSOLETE     setup_xfail "*-*-*"
-# OBSOLETE     test_write nse1 nc "numbered set write 2"
-# OBSOLETE     test_write r1 127 "range write 1"
-# OBSOLETE     test_write r2 32767 "range write 2"
-# OBSOLETE     test_write r3 2147483647 "range write 3"
-# OBSOLETE 
-# OBSOLETE     # powerset modes
-# OBSOLETE     test_write p1 {[pa:ph]} {\[pa:ph\]} "powerset write 1"
-# OBSOLETE     test_write p1 {[pa, pc:pf, ph]} {\[pa, pc:pf, ph\]} "powerset write 2"
-# OBSOLETE     test_write p1 {[pa, pc, pe, pg]} {\[pa, pc, pe, pg\]} "powerset write 3"
-# OBSOLETE     test_write p1 {[]} {\[\]} "powerset write 4"
-# OBSOLETE     test_write p2 {[1:32]} {\[1:32\]} "powerset write 5"
-# OBSOLETE     test_write p2 {[1, 3:30, 32]} {\[1, 3:30, 32\]} "powerset write 6"
-# OBSOLETE     test_write p2 {[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]} {\[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31\]} \
-# OBSOLETE     "powerset write 7"
-# OBSOLETE     test_write p2 {[]} {\[\]} "powerset write 8"
-# OBSOLETE 
-# OBSOLETE # Fixme: this should be rejected by gnuchill
-# OBSOLETE #    test_write p3 {[-2147483648:2147483647]} {\[-2147483648:2147483647\]} \
-# OBSOLETE #   "powerset write 9"
-# OBSOLETE #    test_write p3 {[-2147483648, -1000000:1000000, 2147483647]} \
-# OBSOLETE #   {\[-2147483648, -1000000:1000000, 2147483647\]} \
-# OBSOLETE #   "powerset write 10"
-# OBSOLETE #    test_write p3 {[-99, -97, -95, 1001, 1003, 1005]} \
-# OBSOLETE #   {\[-99, -97, -95, 1001, 1003, 1005\]} "powerset write 11"
-# OBSOLETE #    test_write p3 {[]} {\[\]} "powerset write 12"
-# OBSOLETE     
-# OBSOLETE     # reference modes
-# OBSOLETE     test_write ref1 ->ref1 {H'[0-9a-fA-F]+} "reference write 1"
-# OBSOLETE     test_write ref2 ->b1 {H'[0-9a-fA-F]+} "reference write 2"
-# OBSOLETE     test_write ref1 NULL "reference write 3"
-# OBSOLETE     test_write ref2 NULL "reference write 4"
-# OBSOLETE 
-# OBSOLETE     # procedure modes
-# OBSOLETE     test_write pr1 NULL "procefure write 1"
-# OBSOLETE     # FIXME: remove when NULL is understood
-# OBSOLETE     test_write pr1 0 NULL "procefure write 2"
-# OBSOLETE     test_write pr1 dummyfunc {H'[0-9a-fA-F]+ <dummyfunc>} "procedure write 3"
-# OBSOLETE 
-# OBSOLETE     # timing modes, FIXME when callbacks to timefunctions are implemented
-# OBSOLETE     #test_write ti1 abstime(1970, 3, 12, 10, 43, 0) {} "time write 1"
-# OBSOLETE     #test_write ti2 <set somehow a duration>
-# OBSOLETE     xfail "timing modes not implemented yet"
-# OBSOLETE     
-# OBSOLETE     # real modes
-# OBSOLETE     # This ones 
-# OBSOLETE     test_write re1 42.03 {42.0[0-9]*} "real write 1"
-# OBSOLETE     test_write re1 0 "real write 2"
-# OBSOLETE     test_write re1 "1e+38" {1e\+38|1\.0[0-9]*e\+38|9\.9[0-9]*e\+37} \
-# OBSOLETE     "real write 3"
-# OBSOLETE     setup_xfail "i*86-pc-linux-gnu" "m68*-*-hpux*"
-# OBSOLETE     test_write re1 "1e+39" $infinity "real write 4"
-# OBSOLETE     test_write re2 42.03 {42.0[0-9]*} "real write 5"
-# OBSOLETE     test_write re2 0 "real write 6"
-# OBSOLETE     test_write re2 "1e+308" {1e\+308} "real write 7"
-# OBSOLETE     setup_xfail "i*86-pc-linux-gnu" "m68*-*-hpux*"
-# OBSOLETE     test_write re2 "1e+309" $infinity "real write 8"
-# OBSOLETE     # array modes
-# OBSOLETE     test_write arrl1 {[(1:3): [(1:2): -128]]} {\[\(1:3\): \[\(1:2\): -128\]\]}\
-# OBSOLETE     "array write 1"
-# OBSOLETE     test_write arrl1 {[(1:3): [(1:2): 0]]} {\[\(1:3\): \[\(1:2\): 0\]\]}\
-# OBSOLETE     "array write 2"
-# OBSOLETE     test_write arrl1 {[(1): [(1:2): 127], (2): [(1:2): -128], (3): [(1:2): 127]]} {\[\(1\): \[\(1:2\): 127\], \(2\): \[\(1:2\): -128\], \(3\): \[\(1:2\): 127\]\]}\
-# OBSOLETE     "array write 3"
-# OBSOLETE      test_write arrl1 {[(1:3): [(1:2): 0]]} {\[\(1:3\): \[\(1:2\): 0\]\]}\
-# OBSOLETE     "array write 4"
-# OBSOLETE      setup_xfail "*-*-*"
-# OBSOLETE      # Bogus test case - type mismatch?
-# OBSOLETE      test_write arrl1 {[(1): 127, (2): -128]} "array write 5"
-# OBSOLETE      test_write arrl1 {[(1:3): [(1:2): 0]]} {\[\(1:3\): \[\(1:2\): 0\]\]}\
-# OBSOLETE     "array write 6"
-# OBSOLETE 
-# OBSOLETE     # structure modes
-# OBSOLETE     test_write strul1 {[.a: -32768, .b: 32767, .ch: "ZZZZ"]} \
-# OBSOLETE     {\[\.a: -32768, \.b: 32767, \.ch: \"ZZZZ\"\]} \
-# OBSOLETE     "structure write 1"
-# OBSOLETE     test_write strul1 {[.a: 0, .b: 0, .ch: "0000"]} \
-# OBSOLETE     {\[\.a: 0, \.b: 0, \.ch: \"0000\"\]} \
-# OBSOLETE     "structure write 2"
-# OBSOLETE     test_write strul1 -32768 {\[\.a: -32768, \.b: 0, \.ch: \"0000\"\]} \
-# OBSOLETE     {.a} "structure write 3"
-# OBSOLETE     test_write strul1 {[.a: 0, .b: 0, .ch: "0000"]} \
-# OBSOLETE     {\[\.a: 0, \.b: 0, \.ch: \"0000\"\]} \
-# OBSOLETE     "structure write 4"
-# OBSOLETE     test_write strul1 -32768 {\[\.a: 0, \.b: -32768, \.ch: \"0000\"\]} \
-# OBSOLETE     {.b} "structure write 5"
-# OBSOLETE     test_write strul1 {[.a: 0, .b: 0, .ch: "0000"]} \
-# OBSOLETE     {\[\.a: 0, \.b: 0, \.ch: \"0000\"\]} \
-# OBSOLETE     "structure write 6"
-# OBSOLETE     test_write strul1 \"HUGO\" {\[\.a: 0, \.b: 0, \.ch: \"HUGO\"\]} \
-# OBSOLETE     {.ch} "structure write 7"
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE set binfile "tests2.exe"
-# OBSOLETE 
-# OBSOLETE gdb_exit
-# OBSOLETE gdb_start
-# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE 
-# OBSOLETE gdb_test "set print sevenbit-strings" ".*"
-# OBSOLETE 
-# OBSOLETE if [set_lang_chill] then {
-# OBSOLETE     write_access
-# OBSOLETE } else {
-# OBSOLETE     warning "$test_name tests suppressed."
-# OBSOLETE }
diff --git a/gdb/testsuite/gdb.chill/tuples.ch b/gdb/testsuite/gdb.chill/tuples.ch
deleted file mode 100644 (file)
index 24709f8..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-x: MODULE
-
-SYNMODE m_arri = ARRAY(1:5) INT;
-DCL v_arri m_arri := [ -1, -2, -3, -4, -5 ];
-
-SYNMODE m_arrui = ARRAY(1:5) UINT;
-DCL v_arrui m_arrui := [ 1, 2, 3, 4, 5 ];
-
-SYNMODE r1 = RANGE (1:5);
-SYNMODE m_arrb = ARRAY(r1) BYTE;
-DCL v_arrb m_arrb := [ -3, -4, -5, -6, -7 ];
-
-SYNMODE m_arrub = ARRAY(r1) UBYTE;
-DCL v_arrub m_arrub := [ 3, 4, 5, 6, 7 ];
-
-SYNMODE m_arrc = ARRAY (1:5) CHAR;
-DCL v_arrc m_arrc := [ '1', '2', '3', '4', '5' ];
-
-SYNMODE m_ps = POWERSET r1;
-DCL v_ps m_ps := [ 1, 3, 5 ];
-
-DCL v_cv CHARS(20) VARYING := "foo";
-
-SYNMODE m_arrbool = ARRAY(r1) BOOL;
-DCL v_arrbool m_arrbool := [ true, false, true, false, true ];
-
-DCL j r1 := 4;
-
-DCL i INT;
-
-newmode vstruct = struct (a, b long, 
-                         case b of 
-                          (42): ch8 chars(20),
-                          (52): i long
-                          else  ch1 char
-                         esac);
-
-DCL vstr vstruct := [ .a: 10, .b: 52, .i: 100 ];
-
-i := 0;
-
-END x;
-
-setmode: MODULE /* This is from Cygnus PR chill/5024. */
-
-NEWMODE day = SET( monday, tuesday, wednesday, thursday, friday, saturday, sunday );
-NEWMODE dow = POWERSET day;
-
-DCL d day;
-DCL w dow;
-
-printdow: PROC( w dow );
-  DCL d day;
-  DO FOR d in w;
-    WRITETEXT( stdout, "%C ", d );
-  OD;
-END;
-
-d := monday;
-w := dow[monday : friday];
-printdow( w );
-
-printdow( dow[LOWER(dow) : UPPER(dow)] );
-
-END setmode;
-
-PR8643: MODULE
-
-SYNMODE m_set = SET (a, b, c, d);
-SYNMODE m_ps = POWERSET m_set;
-
-SYNMODE m_s1 = STRUCT (str CHARS(40) VARYING, i INT, ps m_ps);
-DCL vs1 m_s1;
-
-SYNMODE m_s2 = STRUCT (i LONG, s m_s1);
-DCL vs2 m_s2;
-
-SYNMODE m_arr = ARRAY (1:3) BYTE;
-SYNMODE m_s3 = STRUCT (i LONG, a m_arr);
-DCL vs3 m_s3;
-
-DCL i LONG;
-
-i := 24;
-
-END PR8643;
diff --git a/gdb/testsuite/gdb.chill/tuples.exp b/gdb/testsuite/gdb.chill/tuples.exp
deleted file mode 100644 (file)
index ba08539..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-# OBSOLETE # Copyright 1995, 1996 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile "tuples"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     runto tuples.ch:40
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "print v_arri" {= [(1): -1, (2): -2, (3): -3, (4): -4, (5): -5]}
-# OBSOLETE     gdb_test_exact "set v_arri := \[ 33, 44, 55, 66, 77 \]" {}
-# OBSOLETE     gdb_test_exact "print v_arri" {= [(1): 33, (2): 44, (3): 55, (4): 66, (5): 77]} "after assignment 1 to v_arri"
-# OBSOLETE     gdb_test_exact "set v_arri := \[-33, -44, -55, -66, -77\]" {}
-# OBSOLETE     gdb_test_exact "print v_arri" {= [(1): -33, (2): -44, (3): -55, (4): -66, (5): -77]} {after assignment 2 to v_arri}
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "print v_arrui" {= [(1): 1, (2): 2, (3): 3, (4): 4, (5): 5]}
-# OBSOLETE     gdb_test_exact "set v_arrui := \[ 11, 11, 11, 11, 11 \]" {}
-# OBSOLETE     gdb_test_exact "print v_arrui" {= [(1:5): 11]} "after assignment to v_arrui"
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "print v_arrb" {= [(1): -3, (2): -4, (3): -5, (4): -6, (5): -7]}
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "set v_arrb := \[ -9, -8, -7, -6, -5 \]" {}
-# OBSOLETE     gdb_test_exact "print v_arrb" {= [(1): -9, (2): -8, (3): -7, (4): -6, (5): -5]} "after assignment to v_arrb"
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "print v_arrub" {= [(1): 3, (2): 4, (3): 5, (4): 6, (5): 7]}
-# OBSOLETE     gdb_test_exact "set v_arrub := \[ 77, 77, 77, 77, 77 \]" {}
-# OBSOLETE     gdb_test_exact "print v_arrub" {= [(1:5): 77]} "v_arrub after assignment"
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "print j" {= 4}
-# OBSOLETE     gdb_test_exact "print j := 3+4" {= 7}
-# OBSOLETE     gdb_test_exact "print j := r1(3)" {= 3}
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "print v_arrc" {= [(1): '1', (2): '2', (3): '3', (4): '4', (5): '5']}
-# OBSOLETE     gdb_test_exact "set v_arrc := \[ 'a', 'b', 'c', 'd', 'e' \]" {}
-# OBSOLETE     gdb_test_exact "print v_arrc" {= [(1): 'a', (2): 'b', (3): 'c', (4): 'd', (5): 'e']} "v_arrc after assignment"
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "print v_ps" {= [1, 3, 5]}
-# OBSOLETE     gdb_test_exact "set v_ps := \[ 2, 4 \]" {}
-# OBSOLETE     gdb_test_exact "print v_ps" {= [2, 4]} {v_ps after assignment}
-# OBSOLETE     gdb_test_exact "print v_ps :=  \[\]" {= []} {assign [] to v_ps}
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "print m_arri\[1, 2, 3, 4, 5\]" {= [(1): 1, (2): 2, (3): 3, (4): 4, (5): 5]}
-# OBSOLETE     gdb_test_exact "print m_arrub\[45, 46, 47, 48, 49\]" {= [(1): 45, (2): 46, (3): 47, (4): 48, (5): 49]}
-# OBSOLETE 
-# OBSOLETE    gdb_test_exact "print v_cv" {= "foo"}
-# OBSOLETE    gdb_test_exact "set v_cv := \"foo-bar\"" {}
-# OBSOLETE    gdb_test_exact "print v_cv" {= "foo-bar"} "v_cv after assignment"
-# OBSOLETE    gdb_test_exact "set v_cv(3) := ' '" {}
-# OBSOLETE    gdb_test_exact "print v_cv" {= "foo bar"} "v_cv after element assignment"
-# OBSOLETE 
-# OBSOLETE    gdb_test_exact "print v_arrbool" {= [(1): TRUE, (2): FALSE, (3): TRUE, (4): FALSE, (5): TRUE]}
-# OBSOLETE    gdb_test_exact "set v_arrbool := \[ false, false, false, false, false \]" {}
-# OBSOLETE    gdb_test_exact "print v_arrbool" {= [(1:5): FALSE]} "v_arrbool after assignment 1"
-# OBSOLETE    gdb_test_exact "set v_arrbool := \[true, true, true, true, true\]" {}
-# OBSOLETE    gdb_test_exact "print v_arrbool" {= [(1:5): TRUE]} "v_arrbool after assignment 2"
-# OBSOLETE    gdb_test_exact "set v_arrbool(3) := false" {}
-# OBSOLETE    gdb_test_exact "print v_arrbool" {= [(1:2): TRUE, (3): FALSE, (4:5): TRUE]} "v_arrbool after element assignment"
-# OBSOLETE 
-# OBSOLETE    gdb_test_exact "set v_arrbool(1 up 2) := \[ false, true \]" {}
-# OBSOLETE    gdb_test_exact "print v_arrbool" {= [(1): FALSE, (2): TRUE, (3): FALSE, (4:5): TRUE]} "v_arrbool after slice assignment 1"
-# OBSOLETE    gdb_test_exact "set v_arrbool(3 : 5) := \[ true, true, false \]" {}
-# OBSOLETE    gdb_test_exact "print v_arrbool" {= [(1): FALSE, (2:4): TRUE, (5): FALSE]} "v_arrbool after slice assignment 2"
-# OBSOLETE 
-# OBSOLETE    gdb_test_exact "set vstr := \[ .a: 2+3, .b: 12, .ch1: 'x' \]" {}
-# OBSOLETE    gdb_test_exact "print vstr.a" {= 5} "vstr.a after assignment"
-# OBSOLETE    gdb_test_exact "print vstr.ch1" {= 'x'} "vstr.ch1 after assignment"
-# OBSOLETE 
-# OBSOLETE #   These tests are from Cygnus PR chill/5024:
-# OBSOLETE     gdb_test "break printdow" ""
-# OBSOLETE     gdb_test "continue" ""
-# OBSOLETE     gdb_test_exact "set var w:= dow\[monday\]" {}
-# OBSOLETE     gdb_test "print w" " = \\\[monday\\\]" \
-# OBSOLETE     "print bitstring after assignment"
-# OBSOLETE     gdb_test_exact "set var w:=\[\]" {}
-# OBSOLETE     gdb_test "print w" " = \\\[\\\]" \
-# OBSOLETE     "print bitstring after assignment of \[\]"
-# OBSOLETE 
-# OBSOLETE #   These tests are from Cygnus PR chill/8643:
-# OBSOLETE     runto tuples.ch:40
-# OBSOLETE     gdb_test_exact "set var vs1 := \[ \"foo\", 41, \[ b \] \]"  {}
-# OBSOLETE     gdb_test_exact "print vs1" { = [.str: "foo", .i: 41, .ps: [b]]} \
-# OBSOLETE     "print vs1 after tuple assign 1"
-# OBSOLETE     setup_xfail "i*86-pc-linux*-gnu" "sparc-*-solaris*" "sparc-*-sunos*"
-# OBSOLETE     gdb_test_exact "set var vs1 := \[ \"bar\", 42, m_ps\[ a \] \]" {}
-# OBSOLETE     setup_xfail "i*86-pc-linux*-gnu" "sparc-*-solaris*" "sparc-*-sunos*"
-# OBSOLETE     gdb_test_exact "print vs1" { = [.str: "bar", .i: 42, .ps: [a]]} \
-# OBSOLETE     "print vs1 after tuple assign 2"
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "set var \$i := m_s1\[\"foo\", 42, \[a \]\]" {}
-# OBSOLETE     gdb_test_exact {print $i} { = [.str: "foo", .i: 42, .ps: [a]]} \
-# OBSOLETE     "print \$i after tuple assign 1"
-# OBSOLETE     setup_xfail "i*86-pc-linux*-gnu" "sparc-*-solaris*" "sparc-*-sunos*"
-# OBSOLETE     gdb_test_exact "set var \$i := m_s1\[\"foo\", 44, m_ps\[a \]\]" {}
-# OBSOLETE     setup_xfail "i*86-pc-linux*-gnu" "sparc-*-solaris*" "sparc-*-sunos*"
-# OBSOLETE     gdb_test_exact {print $i} { = [.str: "foo", .i: 44, .ps: [a]]} \
-# OBSOLETE     "print \$i after tuple assign 2"
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "set var vs2 := \[ 10, \[ \"foo\" , 42, \[ b \] \] \]" {}
-# OBSOLETE     gdb_test_exact "print vs2" \
-# OBSOLETE     { = [.i: 10, .s: [.str: "foo", .i: 42, .ps: [b]]]} \
-# OBSOLETE     "print vs2 after tuple assign 1"
-# OBSOLETE     setup_xfail "i*86-pc-linux*-gnu" "sparc-*-solaris*" "sparc-*-sunos*"
-# OBSOLETE     gdb_test_exact "set var vs2 := \[ 10+3, m_s1\[ \"foo\" , 42, m_ps\[ b \] \] \]" {}
-# OBSOLETE     setup_xfail "i*86-pc-linux*-gnu" "sparc-*-solaris*" "sparc-*-sunos*"
-# OBSOLETE     gdb_test_exact "print vs2" \
-# OBSOLETE     { = [.i: 13, .s: [.str: "foo", .i: 42, .ps: [b]]]} \
-# OBSOLETE     "print vs2 after tuple assign 2"
-# OBSOLETE 
-# OBSOLETE     gdb_test_exact "set var vs3 := \[ 33, \[ -1, -2, -3 \] \]" {}
-# OBSOLETE     gdb_test_exact "print vs3" {[.i: 33, .a: [(1): -1, (2): -2, (3): -3]]} \
-# OBSOLETE     "print vs3 after tuple assign"
-# OBSOLETE     gdb_test_exact "set var \$k := m_s3\[ 33, m_arr\[ 4, 3, 2 \] \]" {}
-# OBSOLETE     gdb_test_exact {print $k} { = [.i: 33, .a: [(1): 4, (2): 3, (3): 2]]} \
-# OBSOLETE     "print \$k after tuple assign"
-# OBSOLETE 
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
diff --git a/gdb/testsuite/gdb.chill/xstruct-grt.ch b/gdb/testsuite/gdb.chill/xstruct-grt.ch
deleted file mode 100644 (file)
index abd0d5e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-pot1: MODULE
-
-SYNMODE m_array1 = ARRAY (2:3) ulong;
-SYNMODE m_struct = STRUCT (f1 int,
-                          f2 REF m_array1,
-                          f3 m_array1);
-SYNMODE m_array3 = ARRAY (5:6) m_struct;
-SYNMODE m_array4 = ARRAY (7:8) ARRAY (9:10) m_struct;
-
-GRANT all;
-
-END pot1;
diff --git a/gdb/testsuite/gdb.chill/xstruct.ch b/gdb/testsuite/gdb.chill/xstruct.ch
deleted file mode 100644 (file)
index d8471c8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-pottendo: MODULE
-
-<> USE_SEIZE_FILE "xstruct-grt.grt" <>
-SEIZE m_array3;
-SEIZE m_array4;
-
-SYNMODE m_x = STRUCT (i long,
-                     ar m_array3);
-SYNMODE m_y = STRUCT (i long,
-                     ar m_array4);
-
-DCL x LONG;
-
-x := 10;
-
-END pottendo;
diff --git a/gdb/testsuite/gdb.chill/xstruct.exp b/gdb/testsuite/gdb.chill/xstruct.exp
deleted file mode 100644 (file)
index f70e6c8..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-# OBSOLETE # Copyright 1992, 1994, 1997, 1999 Free Software Foundation, Inc.
-# OBSOLETE 
-# OBSOLETE # This program is free software; you can redistribute it and/or modify
-# OBSOLETE # it under the terms of the GNU General Public License as published by
-# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
-# OBSOLETE # (at your option) any later version.
-# OBSOLETE # 
-# OBSOLETE # This program is distributed in the hope that it will be useful,
-# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# OBSOLETE # GNU General Public License for more details.
-# OBSOLETE # 
-# OBSOLETE # You should have received a copy of the GNU General Public License
-# OBSOLETE # along with this program; if not, write to the Free Software
-# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-# OBSOLETE 
-# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
-# OBSOLETE # bug-gdb@prep.ai.mit.edu
-# OBSOLETE 
-# OBSOLETE # This file was written by Per Bothner. (bothner@cygnus.com)
-# OBSOLETE 
-# OBSOLETE if $tracelevel then {
-# OBSOLETE     strace $tracelevel
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE if [skip_chill_tests] then { continue }
-# OBSOLETE 
-# OBSOLETE set testfile2 "xstruct-grt"
-# OBSOLETE set srcfile2 ${srcdir}/$subdir/${testfile2}.ch
-# OBSOLETE set objfile2 ${objdir}/$subdir/${testfile2}.o
-# OBSOLETE if  { [compile "${srcfile2} -g -c -o ${objfile2}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile2}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE set testfile "xstruct"
-# OBSOLETE set srcfile ${srcdir}/$subdir/${testfile}.ch
-# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}.exe
-# OBSOLETE if  { [compile "${srcfile} -g ${objfile2} -o ${binfile} ${CHILL_RT0} ${CHILL_LIB}"] != "" } {
-# OBSOLETE     perror "Couldn't compile ${srcfile}"
-# OBSOLETE     return -1
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE proc do_tests {} {
-# OBSOLETE     global prms_id bug_id subdir objdir srcdir binfile gdb_prompt
-# OBSOLETE 
-# OBSOLETE     set prms_id 0
-# OBSOLETE     set bug_id 0
-# OBSOLETE 
-# OBSOLETE     # Start with a fresh gdb.
-# OBSOLETE 
-# OBSOLETE     gdb_exit
-# OBSOLETE     gdb_start
-# OBSOLETE     gdb_reinitialize_dir $srcdir/$subdir
-# OBSOLETE     gdb_load $binfile
-# OBSOLETE 
-# OBSOLETE     gdb_test "set language chill" ""
-# OBSOLETE 
-# OBSOLETE     gdb_test "set var \$i := m_x\[\]" ""
-# OBSOLETE     gdb_test "print \$i" { = \[.i: 0, .ar: \[\(5:6\): \[.f1: 0, .f2: NULL, .f3: \[\(2:3\): 0\]\]\]\]}
-# OBSOLETE 
-# OBSOLETE     gdb_test "set var \$j := m_y\[\]" ""
-# OBSOLETE     gdb_test "print \$j" { = \[.i: 0, .ar: \[\(7:8\): \[\(9:10\): \[.f1: 0, .f2: NULL, .f3: \[\(2:3\): 0\]\]\]\]\]}
-# OBSOLETE }
-# OBSOLETE 
-# OBSOLETE do_tests
index 6c9be34cf5af938afa800146da3ae400667d4279..32742b997eccf0ab72dcf4361879ada692dbea8c 100644 (file)
@@ -17,7 +17,8 @@
 # Please email any bugs, comments, and/or additions to this file to:
 # bug-gdb@prep.ai.mit.edu
 
-# This file was adapted from (OBSOLETE) Chill tests by Stan Shebs (shebs@cygnus.com).
+# This file was adapted from old Chill tests by Stan Shebs
+# (shebs@cygnus.com).
 
 if $tracelevel then {
        strace $tracelevel
index 175549ce11f2bc8222556810f6cd2bd4f03aab6e..ceb6156f5c58baea274b3ab9bcfa105e5d866425 100644 (file)
@@ -17,7 +17,8 @@
 # Please email any bugs, comments, and/or additions to this file to:
 # bug-gdb@prep.ai.mit.edu
 
-# This file was adapted from (OBSOLETE) Chill tests by Stan Shebs (shebs@cygnus.com).
+# This file was adapted from old Chill tests by Stan Shebs
+# (shebs@cygnus.com).
 
 if $tracelevel then {
        strace $tracelevel
index 8b4426b3da1e285247d991b879a01296871fcd06..2e2a82e3c85018979c72096f33b298c69042fb98 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-13  Jeff Johnston  <jjohnstn@redhat.com>
+
+       * mi-basics.exp: Change tests for -environment-directory.  Also add
+       tests for -environment-cd, -environment-pwd, and -environment-path.
+       Part of fix for PR gdb/741.
+
 2002-11-05  Jeff Johnston  <jjohnstn@redhat.com>
 
        * gdb792.cc: New file to test patch for PR gdb/792.
index 4913d8f8b35e6011ebe3972380ed5ab1f86e3572..98ffe1d2acfec77909dfc971c065620475bacace 100644 (file)
@@ -148,26 +148,98 @@ proc test_dir_specification {} {
     global srcdir
     global subdir
 
-    # Clear the search directories, then specify one to be searched
+    # Add to the search directories, display, then reset back to default
     # Tests:
-    # -environment-directory
     # -environment-directory arg
+    # -environment-directory 
+    # -environment-directory -r
 
 #exp_internal 1
-    mi_gdb_test "202-environment-directory" \
-             "\\\^done" \
+    mi_gdb_test "202-environment-directory ${srcdir}/${subdir}" \
+             "\\\^done,source-path=\"${srcdir}/${subdir}.\\\$cdir.\\\$cwd\"" \
+             "environment-directory arg operation"
+
+    mi_gdb_test "203-environment-directory" \
+             "\\\^done,source-path=\"${srcdir}/${subdir}.\\\$cdir.\\\$cwd\"" \
+             "environment-directory empty-string operation"
+
+    mi_gdb_test "204-environment-directory -r" \
+             "\\\^done,source-path=\"\\\$cdir.\\\$cwd\"" \
              "environment-directory operation"
 
-    mi_gdb_test "203-environment-directory ${srcdir}/${subdir}" \
-             "\\\^done" \
-             "environment-directory arg operation"
 #exp_internal 0
 }
 
+proc test_cwd_specification {} {
+    global mi_gdb_prompt
+    global objdir
+    global subdir
+
+    # Change the working directory, then print the current working directory
+    # Tests:
+    # -environment-cd ${objdir}
+    # -environment-pwd
+
+    mi_gdb_test "205-environment-cd ${objdir}" \
+             "\\\^done" \
+             "environment-cd arg operation"
+
+    mi_gdb_test "206-environment-pwd" \
+             "\\\^done,cwd=\"${objdir}\"" \
+             "environment-pwd operation"
+}
+
+proc test_path_specification {} {
+    global mi_gdb_prompt
+    global orig_path
+    global objdir
+    global srcdir
+
+    # Add to the path, display, then reset 
+    # Tests:
+    # -environment-path 
+    # -environment-path dir1 dir2
+    # -environment-path -r dir
+    # -environment-path -r
+
+#exp_internal 1
+
+    send_gdb "-environment-path\n"
+    gdb_expect 20 {
+       -re "\\\^done,path=\"\(.*\)\"\r\n$mi_gdb_prompt" { 
+         set orig_path $expect_out(1,string); 
+       }
+       timeout { 
+         perror "-environment-path (timeout)" ; 
+         return 
+       }
+    }
+
+    mi_gdb_test "207-environment-path" \
+             "\\\^done,path=\"$orig_path\"" \
+             "environment-path no-args operation"
+
+    mi_gdb_test "208-environment-path $srcdir $objdir" \
+             "\\\^done,path=\"$srcdir.$objdir.$orig_path\"" \
+             "environment-path dir1 dir2 operation"
+
+    mi_gdb_test "209-environment-path -r $objdir" \
+             "\\\^done,path=\"$objdir.$orig_path\"" \
+             "environment-path -r dir operation"
+
+    mi_gdb_test "210-environment-path -r" \
+             "\\\^done,path=\"$orig_path\"" \
+             "environment-path -r operation"
+
+#exp_internal 0
+} 
+
 if [test_mi_interpreter_selection] {
   test_exec_and_symbol_mi_operatons
   test_breakpoints_deletion
   test_dir_specification
+  test_cwd_specification
+  test_path_specification
 }
 
 mi_gdb_exit
index f678975f27e534901af7859c52fef21a4f8aba27..95073518218d2277a6e121022540fbffe730ce1f 100644 (file)
@@ -53,8 +53,13 @@ if [istarget "m68k-*-elf"] then {
     set testfile "actions"
     set srcfile ${testfile}.c
     set binfile $objdir/$subdir/$testfile
-    if { [gdb_compile "$srcdir/$subdir/$srcfile" "$binfile -O1" \
-           executable {debug additional_flags=-w}] != "" } {
+
+    # Why does this test require '-O1' level optimization?  (In
+    # general, the optimization level should be left under the control
+    # of the test framework (target_list and so on), so if we don't
+    # have to override it in individual tests like this, we shouldn't.)
+    if { [gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" \
+           executable {debug additional_flags=-w optimize=-O1}] != "" } {
        gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
     }
     gdb_load $binfile
index aae73657a5f3c4d763da85901c260fd8ab20a1ad..a3392219bb8775e8f1a248735f79f2bec36b88ef 100644 (file)
 load_lib libgloss.exp
 
 global GDB
-# OBSOLETE global CHILL_LIB
-# OBSOLETE global CHILL_RT0
-
-# OBSOLETE if ![info exists CHILL_LIB] {
-# OBSOLETE     set CHILL_LIB [findfile $base_dir/../../gcc/ch/runtime/libchill.a "$base_dir/../../gcc/ch/runtime/libchill.a" [transform -lchill]]
-# OBSOLETE }
-# OBSOLETE verbose "using CHILL_LIB = $CHILL_LIB" 2
-# OBSOLETE if ![info exists CHILL_RT0] {
-# OBSOLETE     set CHILL_RT0 [findfile $base_dir/../../gcc/ch/runtime/chillrt0.o "$base_dir/../../gcc/ch/runtime/chillrt0.o" ""]
-# OBSOLETE }
-# OBSOLETE verbose "using CHILL_RT0 = $CHILL_RT0" 2
 
 if [info exists TOOL_EXECUTABLE] {
     set GDB $TOOL_EXECUTABLE;
@@ -920,26 +909,6 @@ proc skip_cplus_tests {} {
     return 0
 }
 
-# OBSOLETE # * For crosses, the CHILL runtime doesn't build because it
-# OBSOLETE # can't find setjmp.h, stdio.h, etc.
-# OBSOLETE # * For AIX (as of 16 Mar 95), (a) there is no language code for
-# OBSOLETE # CHILL in output_epilog in gcc/config/rs6000/rs6000.c, (b) collect2
-# OBSOLETE # does not get along with AIX's too-clever linker.
-# OBSOLETE # * On Irix5, there is a bug whereby set of bool, etc., don't get
-# OBSOLETE # TYPE_LOW_BOUND for the bool right because force_to_range_type doesn't
-# OBSOLETE # work with stub types.
-# OBSOLETE # Lots of things seem to fail on the PA, and since it's not a supported
-# OBSOLETE # chill target at the moment, don't run the chill tests.
-
-# OBSOLETE proc skip_chill_tests {} {
-# OBSOLETE     if ![info exists do_chill_tests] {
-# OBSOLETE     return 1;
-# OBSOLETE     }
-# OBSOLETE     eval set skip_chill [expr ![isnative] || [istarget "*-*-aix*"] || [istarget "*-*-irix5*"] || [istarget "*-*-irix6*"] || [istarget "alpha-*-osf*"] || [istarget "hppa*-*-*"]]
-# OBSOLETE     verbose "Skip chill tests is $skip_chill"
-# OBSOLETE     return $skip_chill
-# OBSOLETE }
-
 # Skip all the tests in the file if you are not on an hppa running
 # hpux target.
 
index de775b6c423087d5b761eaf5ecf357f1daac97c5..399aac6b8e1f52b5bbf843566dca547031d09928 100644 (file)
@@ -212,7 +212,7 @@ proc mi_delete_breakpoints {} {
         -re ".*102-break-delete\r\n102\\\^done\r\n$mi_gdb_prompt$" {
             # This happens if there were no breakpoints
         }
-        timeout { perror "Delete all breakpoints in delete_breakpoints (timeout)" ; return }
+        timeout { perror "Delete all breakpoints in mi_delete_breakpoints (timeout)" ; return }
     }
 
 # The correct output is not "No breakpoints or watchpoints." but an
@@ -234,6 +234,7 @@ proc mi_delete_breakpoints {} {
 
 proc mi_gdb_reinitialize_dir { subdir } {
     global mi_gdb_prompt
+    global MIFLAGS
 
     global suppress_flag
     if { $suppress_flag } {
@@ -244,8 +245,9 @@ proc mi_gdb_reinitialize_dir { subdir } {
        return "";
     }
 
-    send_gdb "104-environment-directory\n"
-    gdb_expect 60 {
+    if { $MIFLAGS == "-i=mi1" } {
+      send_gdb "104-environment-directory\n"
+      gdb_expect 60 {
        -re ".*Reinitialize source path to empty.*y or n. " {
             warning "Got confirmation prompt for dir reinitialization."
            send_gdb "y\n"
@@ -256,6 +258,14 @@ proc mi_gdb_reinitialize_dir { subdir } {
        }
        -re "$mi_gdb_prompt$" {}
         timeout {error "Dir reinitialization failed (timeout)"}
+      }
+    } else {
+      send_gdb "104-environment-directory -r\n"
+      gdb_expect 60 {
+       -re "104\\\^done,source-path=.*\r\n$mi_gdb_prompt$" {}
+       -re "$mi_gdb_prompt$" {}
+        timeout {error "Dir reinitialization failed (timeout)"}
+      }
     }
 
     send_gdb "105-environment-directory $subdir\n"
@@ -263,7 +273,7 @@ proc mi_gdb_reinitialize_dir { subdir } {
        -re "Source directories searched.*$mi_gdb_prompt$" {
            verbose "Dir set to $subdir"
        }
-       -re "105\\\^done\r\n$mi_gdb_prompt$" {
+       -re "105\\\^done.*\r\n$mi_gdb_prompt$" {
             # FIXME: We return just the prompt for now.
            verbose "Dir set to $subdir"
            # perror "Dir \"$subdir\" failed."
index 9338c57da00f5917dec8464e0fc2e6a0011c527c..9f4cde7ad75ed6fc76e2d9026b5c8a830b4c6b3b 100644 (file)
@@ -250,7 +250,8 @@ thread_from_lwp (ptid_t ptid)
 
   err = td_thr_get_info_p (&th, &ti);
   if (err != TD_OK)
-    error ("Cannot get thread info: %s", thread_db_err_str (err));
+    error ("thread_from_lwp: cannot get thread info: %s", 
+          thread_db_err_str (err));
 
   return BUILD_THREAD (ti.ti_tid, GET_PID (ptid));
 }
@@ -272,7 +273,8 @@ lwp_from_thread (ptid_t ptid)
 
   err = td_thr_get_info_p (&th, &ti);
   if (err != TD_OK)
-    error ("Cannot get thread info: %s", thread_db_err_str (err));
+    error ("lwp_from_thread: cannot get thread info: %s", 
+          thread_db_err_str (err));
 
   return BUILD_LWP (ti.ti_lid, GET_PID (ptid));
 }
@@ -292,7 +294,13 @@ thread_db_load (void)
 
   handle = dlopen (LIBTHREAD_DB_SO, RTLD_NOW);
   if (handle == NULL)
-    return 0;
+    {
+      fprintf_filtered (gdb_stderr, "\n\ndlopen failed on '%s' - %s\n", 
+                       LIBTHREAD_DB_SO, dlerror ());
+      fprintf_filtered (gdb_stderr, 
+                       "GDB will not be able to debug pthreads.\n\n");
+      return 0;
+    }
 
   /* Initialize pointers to the dynamic library functions we will use.
      Essential functions first.  */
@@ -679,7 +687,8 @@ check_event (ptid_t ptid)
 
   err = td_thr_get_info_p (msg.th_p, &ti);
   if (err != TD_OK)
-    error ("Cannot get thread info: %s", thread_db_err_str (err));
+    error ("check_event: cannot get thread info: %s", 
+          thread_db_err_str (err));
 
   ptid = BUILD_THREAD (ti.ti_tid, GET_PID (ptid));
 
@@ -944,7 +953,8 @@ find_new_threads_callback (const td_thrhandle_t *th_p, void *data)
 
   err = td_thr_get_info_p (th_p, &ti);
   if (err != TD_OK)
-    error ("Cannot get thread info: %s", thread_db_err_str (err));
+    error ("find_new_threads_callback: cannot get thread info: %s", 
+          thread_db_err_str (err));
 
   if (ti.ti_state == TD_THR_UNKNOWN || ti.ti_state == TD_THR_ZOMBIE)
     return 0;                  /* A zombie -- ignore.  */
@@ -987,7 +997,7 @@ thread_db_pid_to_str (ptid_t ptid)
 
       err = td_thr_get_info_p (&th, &ti);
       if (err != TD_OK)
-       error ("Cannot get thread info for thread %ld: %s",
+       error ("thread_db_pid_to_str: cannot get thread info for %ld: %s",
               (long) GET_THREAD (ptid), thread_db_err_str (err));
 
       if (ti.ti_state == TD_THR_ACTIVE && ti.ti_lid != 0)
index fa5eb27b15c0e4780e0027fbb8a4d26d8f9e7fef..6ef484078ef2f6de794c79c60ece7765c8468209 100644 (file)
@@ -262,6 +262,9 @@ do_captured_list_thread_ids (struct ui_out *uiout,
   struct thread_info *tp;
   int num = 0;
 
+  prune_threads ();
+  target_find_new_threads ();
+
   ui_out_tuple_begin (uiout, "thread-ids");
 
   for (tp = thread_list; tp; tp = tp->next)
@@ -296,7 +299,7 @@ load_infrun_state (ptid_t ptid,
                   struct breakpoint **through_sigtramp_breakpoint,
                   CORE_ADDR *step_range_start, 
                   CORE_ADDR *step_range_end,
-                  CORE_ADDR *step_frame_address
+                  struct frame_id *step_frame_id
                   int *handling_longjmp,
                   int *another_trap, 
                   int *stepping_through_solib_after_catch,
@@ -322,7 +325,7 @@ load_infrun_state (ptid_t ptid,
   *through_sigtramp_breakpoint = tp->through_sigtramp_breakpoint;
   *step_range_start = tp->step_range_start;
   *step_range_end = tp->step_range_end;
-  *step_frame_address = tp->step_frame_address;
+  *step_frame_id = tp->step_frame_id;
   *handling_longjmp = tp->handling_longjmp;
   *another_trap = tp->another_trap;
   *stepping_through_solib_after_catch = tp->stepping_through_solib_after_catch;
@@ -345,7 +348,7 @@ save_infrun_state (ptid_t ptid,
                   struct breakpoint *through_sigtramp_breakpoint,
                   CORE_ADDR step_range_start, 
                   CORE_ADDR step_range_end,
-                  CORE_ADDR step_frame_address
+                  const struct frame_id *step_frame_id
                   int handling_longjmp,
                   int another_trap, 
                   int stepping_through_solib_after_catch,
@@ -371,7 +374,7 @@ save_infrun_state (ptid_t ptid,
   tp->through_sigtramp_breakpoint = through_sigtramp_breakpoint;
   tp->step_range_start = step_range_start;
   tp->step_range_end = step_range_end;
-  tp->step_frame_address = step_frame_address;
+  tp->step_frame_id = (*step_frame_id);
   tp->handling_longjmp = handling_longjmp;
   tp->another_trap = another_trap;
   tp->stepping_through_solib_after_catch = stepping_through_solib_after_catch;
@@ -422,12 +425,12 @@ info_threads_command (char *arg, int from_tty)
   struct thread_info *tp;
   ptid_t current_ptid;
   struct frame_info *cur_frame;
-  int saved_frame_level = frame_relative_level (selected_frame);
+  int saved_frame_level = frame_relative_level (deprecated_selected_frame);
   int counter;
   char *extra_info;
 
   /* Avoid coredumps which would happen if we tried to access a NULL
-     selected_frame.  */
+     deprecated_selected_frame.  */
   if (!target_has_stack)
     error ("No stack.");
 
@@ -453,8 +456,8 @@ info_threads_command (char *arg, int from_tty)
       puts_filtered ("  ");
 
       switch_to_thread (tp->ptid);
-      if (selected_frame)
-       print_only_stack_frame (selected_frame, -1, 0);
+      if (deprecated_selected_frame)
+       print_only_stack_frame (deprecated_selected_frame, -1, 0);
       else
        printf_filtered ("[No stack.]\n");
     }
@@ -468,12 +471,12 @@ info_threads_command (char *arg, int from_tty)
    * of the stack (leaf frame).
    */
   counter = saved_frame_level;
-  cur_frame = find_relative_frame (selected_frame, &counter);
+  cur_frame = find_relative_frame (deprecated_selected_frame, &counter);
   if (counter != 0)
     {
       /* Ooops, can't restore, tell user where we are. */
       warning ("Couldn't restore frame in current thread, at frame 0");
-      print_stack_frame (selected_frame, -1, 0);
+      print_stack_frame (deprecated_selected_frame, -1, 0);
     }
   else
     {
@@ -714,7 +717,8 @@ do_captured_thread_select (struct ui_out *uiout,
 #endif
   ui_out_text (uiout, ")]");
 
-  print_stack_frame (selected_frame, frame_relative_level (selected_frame), 1);
+  print_stack_frame (deprecated_selected_frame,
+                    frame_relative_level (deprecated_selected_frame), 1);
   return GDB_RC_OK;
 }
 
index 3d5783fbe82c9aafb0de6a9d02724c9ea6c1b413..d25bc3b8a79cdd008c9ff4c859d57686c2bebfc7 100644 (file)
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1952,7 +1952,7 @@ init_main (void)
   write_history_p = 0;
 
   /* Setup important stuff for command line editing.  */
-  rl_completion_entry_function = (int (*)()) readline_line_completion_function;
+  rl_completion_entry_function = readline_line_completion_function;
   rl_completer_word_break_characters =
                                 get_gdb_completer_word_break_characters ();
   rl_completer_quote_characters = get_gdb_completer_quote_characters ();
index 67cd6b56e34de5b0de5e99a46744c4a2599e4db0..97175260d3c66e24c1cd90cb51a9726773f09045 100644 (file)
@@ -1865,7 +1865,7 @@ finish_tfind_command (char *msg,
   struct symbol *old_func;
   char *reply;
 
-  old_frame_addr = FRAME_FP (get_current_frame ());
+  old_frame_addr = get_frame_base (get_current_frame ());
   old_func = find_pc_function (read_pc ());
 
   putpkt (msg);
@@ -1951,13 +1951,14 @@ finish_tfind_command (char *msg,
 
       if (old_func == find_pc_function (read_pc ()) &&
          (old_frame_addr == 0 ||
-          FRAME_FP (get_current_frame ()) == 0 ||
-          old_frame_addr == FRAME_FP (get_current_frame ())))
+          get_frame_base (get_current_frame ()) == 0 ||
+          old_frame_addr == get_frame_base (get_current_frame ())))
        source_only = -1;
       else
        source_only = 1;
 
-      print_stack_frame (selected_frame, frame_relative_level (selected_frame),
+      print_stack_frame (deprecated_selected_frame,
+                        frame_relative_level (deprecated_selected_frame),
                         source_only);
       do_displays ();
     }
@@ -2107,7 +2108,7 @@ trace_find_line_command (char *args, int from_tty)
     {
       if (args == 0 || *args == 0)
        {
-         sal = find_pc_line ((get_current_frame ())->pc, 0);
+         sal = find_pc_line (get_frame_pc (get_current_frame ()), 0);
          sals.nelts = 1;
          sals.sals = (struct symtab_and_line *)
            xmalloc (sizeof (struct symtab_and_line));
index df138d04020e7f15e026ae140dec57b2e21c9429..88ad5e7ea605bf02415b404439a64d4b3e00f8df 100644 (file)
@@ -1,3 +1,41 @@
+2002-12-08  Elena Zannoni  <ezannoni@redhat.com>
+
+       Import of readline 4.3.
+       Fix PR gdb/675
+       * tuiWin.c: Include readline/readline.h.
+       (tui_update_gdb_sizes): Use accessor function rl_get_screen_size.
+       (tuiResizeAll): Ditto.
+
+2002-12-06  Elena Zannoni  <ezannoni@redhat.com>
+
+       * tuiStack.c (tuiShowFrameInfo): Fix typo.
+
+2002-11-29  Andrew Cagney  <ac131313@redhat.com>
+
+       * tui/tui-hooks.c: Update to use deprecated_selected_frame.
+       * tui/tui.c, tui/tuiDisassem.c, tui/tuiRegs.c: Ditto.
+       * tui/tuiSource.c, tui/tuiSourceWin.c, tui/tuiWin.c: Ditto.
+
+2002-11-28  Andrew Cagney  <ac131313@redhat.com>
+
+       * tuiStack.c (tuiShowFrameInfo): Use find_frame_sal instead of
+       find_pc_line.
+
+2002-11-23  Andrew Cagney  <ac131313@redhat.com>
+
+       * tuiStack.c (tuiShowFrameInfo): Use get_frame_type instead of
+       deprecated_frame_in_dummy.  Fix coding style.
+
+2002-11-21  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * tui-hooks.c (tui_init_hook): Don't enable the TUI if a specific
+       interpreter is installed.
+
+2002-11-18  Andrew Cagney  <ac131313@redhat.com>
+
+       * tuiStack.c (tuiShowFrameInfo): Use get_frame_type instead of
+       signal_handler_caller.
+       
 2002-11-10  Andrew Cagney  <ac131313@redhat.com>
 
        * tuiStack.c (tuiShowFrameInfo): Replace frame_in_dummy with
index e1aad9f03b34817a5727805eb2b48507f737e102..ff36d497780174d935196b3b2396328843460445 100644 (file)
@@ -147,7 +147,7 @@ tui_registers_changed_hook (void)
 {
   struct frame_info *fi;
 
-  fi = selected_frame;
+  fi = deprecated_selected_frame;
   if (fi && tui_refreshing_registers == 0)
     {
       tui_refreshing_registers = 1;
@@ -163,7 +163,7 @@ tui_register_changed_hook (int regno)
 {
   struct frame_info *fi;
 
-  fi = selected_frame;
+  fi = deprecated_selected_frame;
   if (fi && tui_refreshing_registers == 0)
     {
       tui_refreshing_registers = 1;
@@ -245,7 +245,7 @@ tui_selected_frame_level_changed_hook (int level)
 {
   struct frame_info *fi;
 
-  fi = selected_frame;
+  fi = deprecated_selected_frame;
   /* Ensure that symbols for this frame are read in.  Also, determine the
      source language of this frame, and switch to it if desired.  */
   if (fi)
@@ -279,7 +279,7 @@ tui_print_frame_info_listing_hook (struct symtab *s, int line,
                                    int stopline, int noerror)
 {
   select_source_symtab (s);
-  tuiShowFrameInfo (selected_frame);
+  tuiShowFrameInfo (deprecated_selected_frame);
 }
 
 /* Called when the target process died or is detached.
@@ -419,6 +419,10 @@ tui_event_loop (void)
 static void
 tui_init_hook (char *argv0)
 {
+  /* Don't enable the TUI if a specific interpreter is installed.  */
+  if (interpreter_p)
+    return;
+
   /* Install exit handler to leave the screen in a good shape.  */
   atexit (tui_exit);
 
index a7c16bcbe0c5ce65614766743fb0398d70c4a1c4..d5cde22e70fc161c706995553fe349764701b35f 100644 (file)
@@ -395,8 +395,8 @@ tui_enable (void)
 
   tui_version = 1;
   tui_active = 1;
-  if (selected_frame)
-     tuiShowFrameInfo (selected_frame);
+  if (deprecated_selected_frame)
+     tuiShowFrameInfo (deprecated_selected_frame);
 
   /* Restore TUI keymap.  */
   tui_set_key_mode (tui_current_key_mode);
index f79cc12ab66b48704eaa2b72da4bf029d268c1de..93d2df42dc9ea71043bf366971df54f98fb45e4d 100644 (file)
@@ -420,7 +420,7 @@ tuiVerticalDisassemScroll (TuiScrollDirection scrollDirection,
 
       content = (TuiWinContent) disassemWin->generic.content;
       if (cursal.symtab == (struct symtab *) NULL)
-       s = find_pc_symtab (selected_frame->pc);
+       s = find_pc_symtab (deprecated_selected_frame->pc);
       else
        s = cursal.symtab;
 
index 928eb416fd578c4de95586cadbbbc149d6331c6c..6fc63d9454eddeae4bf54480b3c550bfe8275920 100644 (file)
@@ -638,7 +638,7 @@ _tuiRegisterFormat (char *buf, int bufLen, int regNum,
   stream = tui_sfileopen (bufLen);
   gdb_stdout = stream;
   cleanups = make_cleanup (tui_restore_gdbout, (void*) old_stdout);
-  gdbarch_print_registers_info (current_gdbarch, stream, selected_frame,
+  gdbarch_print_registers_info (current_gdbarch, stream, deprecated_selected_frame,
                                 regNum, 1);
 
   /* Save formatted output in the buffer.  */
@@ -679,7 +679,7 @@ _tuiSetGeneralRegsContent (int refreshValuesOnly)
 {
   return (_tuiSetRegsContent (0,
                              NUM_GENERAL_REGS - 1,
-                             selected_frame,
+                             deprecated_selected_frame,
                              TUI_GENERAL_REGS,
                              refreshValuesOnly));
 
@@ -705,7 +705,7 @@ _tuiSetSpecialRegsContent (int refreshValuesOnly)
   endRegNum = FP0_REGNUM - 1;
   ret = _tuiSetRegsContent (START_SPECIAL_REGS,
                            endRegNum,
-                           selected_frame,
+                           deprecated_selected_frame,
                            TUI_SPECIAL_REGS,
                            refreshValuesOnly);
 
@@ -725,7 +725,7 @@ _tuiSetGeneralAndSpecialRegsContent (int refreshValuesOnly)
 
   endRegNum = FP0_REGNUM - 1;
   ret = _tuiSetRegsContent (
-        0, endRegNum, selected_frame, TUI_SPECIAL_REGS, refreshValuesOnly);
+        0, endRegNum, deprecated_selected_frame, TUI_SPECIAL_REGS, refreshValuesOnly);
 
   return ret;
 }                              /* _tuiSetGeneralAndSpecialRegsContent */
@@ -743,7 +743,7 @@ _tuiSetFloatRegsContent (TuiRegisterDisplayType dpyType, int refreshValuesOnly)
   startRegNum = FP0_REGNUM;
   ret = _tuiSetRegsContent (startRegNum,
                            NUM_REGS - 1,
-                           selected_frame,
+                           deprecated_selected_frame,
                            dpyType,
                            refreshValuesOnly);
 
index f682786ce9e8c2b03741094a026a652c1339e64f..ceccd64532e5cbd0df19974945428aab5d4f5872 100644 (file)
@@ -340,7 +340,7 @@ tuiVerticalSourceScroll (TuiScrollDirection scrollDirection,
       struct symtab_and_line cursal = get_current_source_symtab_and_line ();
 
       if (cursal.symtab == (struct symtab *) NULL)
-       s = find_pc_symtab (selected_frame->pc);
+       s = find_pc_symtab (deprecated_selected_frame->pc);
       else
        s = cursal.symtab;
 
index c0c786836a3fdcbde9a8b60032e46e72fec79c7e..ae844ce7029e9307ac696b149ad1f847eb0e3b23 100644 (file)
@@ -355,7 +355,7 @@ tuiHorizontalSourceScroll (TuiWinInfoPtr winInfo,
       struct symtab_and_line cursal = get_current_source_symtab_and_line ();
 
       if (cursal.symtab == (struct symtab *) NULL)
-       s = find_pc_symtab (selected_frame->pc);
+       s = find_pc_symtab (deprecated_selected_frame->pc);
       else
        s = cursal.symtab;
 
index 506cdab2a9e644aa59e28e56f09a597713b2b641..69a6b6c662f8c06e6f6b39c397b0da3a0ee4ea96 100644 (file)
@@ -349,10 +349,7 @@ tuiShowFrameInfo (struct frame_info *fi)
       int sourceAlreadyDisplayed;
       struct symtab_and_line sal;
 
-      sal = find_pc_line (fi->pc,
-                          (fi->next != (struct frame_info *) NULL &&
-                           !fi->next->signal_handler_caller &&
-                           !deprecated_frame_in_dummy (fi->next)));
+      find_frame_sal (fi, &sal);
 
       sourceAlreadyDisplayed = sal.symtab != 0
         && tuiSourceIsDisplayed (sal.symtab->filename);
index 484c60a620499551903a944312d159077cd00f46..9ad82f57a65577d023d89772daae606ef3dd1444 100644 (file)
@@ -46,6 +46,7 @@
 
 #include <string.h>
 #include <ctype.h>
+#include <readline/readline.h>
 #include "defs.h"
 #include "command.h"
 #include "symtab.h"
@@ -417,8 +418,9 @@ void
 tui_update_gdb_sizes ()
 {
   char cmd[50];
-  extern int screenheight, screenwidth;                /* in readline */
+  int screenheight, screenwidth;
 
+  rl_get_screen_size (&screenheight, &screenwidth);
   /* Set to TUI command window dimension or use readline values.  */
   sprintf (cmd, "set width %d",
            tui_active ? cmdWin->generic.width : screenwidth);
@@ -634,8 +636,9 @@ void
 tuiResizeAll (void)
 {
   int heightDiff, widthDiff;
-  extern int screenheight, screenwidth;                /* in readline */
+  int screenheight, screenwidth;
 
+  rl_get_screen_size (&screenheight, &screenwidth);
   widthDiff = screenwidth - termWidth ();
   heightDiff = screenheight - termHeight ();
   if (heightDiff || widthDiff)
@@ -1397,13 +1400,13 @@ _makeVisibleWithNewHeight (TuiWinInfoPtr winInfo)
          tuiUpdateSourceWindow (winInfo,
                                 cursal.symtab, lineOrAddr, TRUE);
        }
-      else if (selected_frame != (struct frame_info *) NULL)
+      else if (deprecated_selected_frame != (struct frame_info *) NULL)
        {
          TuiLineOrAddress line;
          struct symtab_and_line cursal = get_current_source_symtab_and_line ();
 
 
-         s = find_pc_symtab (selected_frame->pc);
+         s = find_pc_symtab (deprecated_selected_frame->pc);
          if (winInfo->generic.type == SRC_WIN)
            line.lineNo = cursal.line;
          else
index da7740f4ca66eb7229b23f412aecb723fbd39f1d..d98cf167e855f6882a3bbc5ffb19396a927f3bc1 100644 (file)
@@ -45,7 +45,7 @@ struct ui_out_hdr
    is always available.  Stack/nested level 0 is reserved for the
    top-level result. */
 
-enum { MAX_UI_OUT_LEVELS = 5 };
+enum { MAX_UI_OUT_LEVELS = 6 };
 
 struct ui_out_level
   {
index 31c5f3d39730786ed65d3200e3a8fbe58c72cae9..999d5a55b0ccbe2afa920c6c7a26e4a5c9d786b3 100644 (file)
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-/* FIXME: cagney/2002-02-28: The GDB coding standard indicates that
-   "defs.h" should be included first.  Unfortunatly some systems
-   (currently Debian GNU/Linux) include the <stdbool.h> via <curses.h>
-   and they clash with "bfd.h"'s definiton of true/false.  The correct
-   fix is to remove true/false from "bfd.h", however, until that
-   happens, hack around it by including "config.h" and <curses.h>
-   first.  */
-
-#include "config.h"
-
-#ifdef HAVE_CURSES_H
-#include <curses.h>
-#endif
-#ifdef HAVE_TERM_H
-#include <term.h>
-#endif
-
 #include "defs.h"
 #include "gdb_assert.h"
 #include <ctype.h>
 
 #include <sys/param.h>         /* For MAXPATHLEN */
 
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#ifdef HAVE_TERM_H
+#include <term.h>
+#endif
+
 #include <readline/readline.h>
 
 #ifdef USE_MMALLOC
index eae7db6958adac175389d09759f531f02b6c1cd2..6872de81a9db72e5135ebf30d4cd4b660bf6ce2c 100644 (file)
@@ -800,7 +800,7 @@ CORE_ADDR
 v850_find_callers_reg (struct frame_info *fi, int regnum)
 {
   for (; fi; fi = fi->next)
-    if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+    if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
       return deprecated_read_register_dummy (fi->pc, fi->frame, regnum);
     else if (fi->saved_regs[regnum] != 0)
       return read_memory_unsigned_integer (fi->saved_regs[regnum],
@@ -826,7 +826,7 @@ v850_frame_chain (struct frame_info *fi)
   callers_pc = FRAME_SAVED_PC (fi);
   /* If caller is a call-dummy, then our FP bears no relation to his FP! */
   fp = v850_find_callers_reg (fi, E_FP_RAW_REGNUM);
-  if (PC_IN_CALL_DUMMY (callers_pc, fp, fp))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (callers_pc, fp, fp))
     return fp;                 /* caller is call-dummy: return oldest value of FP */
 
   /* Caller is NOT a call-dummy, so everything else should just work.
@@ -883,7 +883,7 @@ v850_pop_frame (void)
   struct frame_info *frame = get_current_frame ();
   int regnum;
 
-  if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
     generic_pop_dummy_frame ();
   else
     {
@@ -895,7 +895,7 @@ v850_pop_frame (void)
                      read_memory_unsigned_integer (frame->saved_regs[regnum],
                                             v850_register_raw_size (regnum)));
 
-      write_register (E_SP_REGNUM, FRAME_FP (frame));
+      write_register (E_SP_REGNUM, get_frame_base (frame));
     }
 
   flush_cached_frames ();
@@ -1009,7 +1009,7 @@ v850_push_return_address (CORE_ADDR pc, CORE_ADDR sp)
 CORE_ADDR
 v850_frame_saved_pc (struct frame_info *fi)
 {
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     return deprecated_read_register_dummy (fi->pc, fi->frame, E_PC_REGNUM);
   else
     return v850_find_callers_reg (fi, E_RP_REGNUM);
@@ -1111,7 +1111,7 @@ v850_frame_init_saved_regs (struct frame_info *fi)
 
       /* The call dummy doesn't save any registers on the stack, so we
          can return now.  */
-      if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+      if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
        return;
 
       /* Find the beginning of this function, so we can analyze its
@@ -1197,6 +1197,10 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   gdbarch = gdbarch_alloc (&info, 0);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   for (i = 0; v850_processor_type_table[i].regnames != NULL; i++)
     {
       if (v850_processor_type_table[i].mach == info.bfd_arch_info->mach)
@@ -1233,13 +1237,10 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_init_extra_frame_info (gdbarch, v850_init_extra_frame_info);
   set_gdbarch_frame_init_saved_regs (gdbarch, v850_frame_init_saved_regs);
   set_gdbarch_frame_chain (gdbarch, v850_frame_chain);
-  set_gdbarch_get_saved_register (gdbarch, generic_unwind_get_saved_register);
   set_gdbarch_saved_pc_after_call (gdbarch, v850_saved_pc_after_call);
   set_gdbarch_frame_saved_pc (gdbarch, v850_frame_saved_pc);
   set_gdbarch_skip_prologue (gdbarch, v850_skip_prologue);
   set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
 
   /* 
    * Miscelany
@@ -1262,7 +1263,6 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
    * Call Dummies
    * 
    * These values and methods are used when gdb calls a target function.  */
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
   set_gdbarch_push_return_address (gdbarch, v850_push_return_address);
   set_gdbarch_deprecated_extract_return_value (gdbarch, v850_extract_return_value);
@@ -1272,13 +1272,11 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_store_return_value (gdbarch, v850_store_return_value);
   set_gdbarch_deprecated_extract_struct_value_address (gdbarch, v850_extract_struct_value_address);
   set_gdbarch_use_struct_convention (gdbarch, v850_use_struct_convention);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_p (gdbarch, 1);
   set_gdbarch_call_dummy_words (gdbarch, call_dummy_nil);
   set_gdbarch_sizeof_call_dummy_words (gdbarch, 0);
index 129332e71b5ac1b2709e4a61b77f5f212a7549a3..1278b8851b8dee58eafbfaac258e217ea13506d4 100644 (file)
@@ -662,7 +662,7 @@ value_assign (struct value *toval, struct value *fromval)
        /* Since modifying a register can trash the frame chain, we
            save the old frame and then restore the new frame
            afterwards.  */
-       get_frame_id (selected_frame, &old_frame);
+       old_frame = get_frame_id (deprecated_selected_frame);
 
        /* Figure out which frame this is in currently.  */
        if (VALUE_LVAL (toval) == lval_register)
@@ -673,7 +673,7 @@ value_assign (struct value *toval, struct value *fromval)
        else
          {
            for (frame = get_current_frame ();
-                frame && FRAME_FP (frame) != VALUE_FRAME (toval);
+                frame && get_frame_base (frame) != VALUE_FRAME (toval);
                 frame = get_prev_frame (frame))
              ;
            value_reg = VALUE_FRAME_REGNUM (toval);
@@ -1475,7 +1475,7 @@ hand_function_call (struct value *function, int nargs, struct value **args)
   if (CALL_DUMMY_LOCATION == ON_STACK)
     {
       write_memory (start_sp, (char *) dummy1, sizeof_dummy1);
-      if (USE_GENERIC_DUMMY_FRAMES)
+      if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
        generic_save_call_dummy_addr (start_sp, start_sp + sizeof_dummy1);
     }
 
@@ -1493,7 +1493,7 @@ hand_function_call (struct value *function, int nargs, struct value **args)
       sp = old_sp;
       real_pc = text_end - sizeof_dummy1;
       write_memory (real_pc, (char *) dummy1, sizeof_dummy1);
-      if (USE_GENERIC_DUMMY_FRAMES)
+      if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
        generic_save_call_dummy_addr (real_pc, real_pc + sizeof_dummy1);
     }
 
@@ -1506,14 +1506,14 @@ hand_function_call (struct value *function, int nargs, struct value **args)
       errcode = target_write_memory (real_pc, (char *) dummy1, sizeof_dummy1);
       if (errcode != 0)
        error ("Cannot write text segment -- call_function failed");
-      if (USE_GENERIC_DUMMY_FRAMES)
+      if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
        generic_save_call_dummy_addr (real_pc, real_pc + sizeof_dummy1);
     }
 
   if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT)
     {
       real_pc = funaddr;
-      if (USE_GENERIC_DUMMY_FRAMES)
+      if (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
        /* NOTE: cagney/2002-04-13: The entry point is going to be
            modified with a single breakpoint.  */
        generic_save_call_dummy_addr (CALL_DUMMY_ADDRESS (),
@@ -3384,7 +3384,7 @@ value_of_local (const char *name, int complain)
   int i;
   struct value * ret;
 
-  if (selected_frame == 0)
+  if (deprecated_selected_frame == 0)
     {
       if (complain)
        error ("no frame selected");
@@ -3392,7 +3392,7 @@ value_of_local (const char *name, int complain)
        return 0;
     }
 
-  func = get_frame_function (selected_frame);
+  func = get_frame_function (deprecated_selected_frame);
   if (!func)
     {
       if (complain)
@@ -3421,7 +3421,7 @@ value_of_local (const char *name, int complain)
        return NULL;
     }
 
-  ret = read_var_value (sym, selected_frame);
+  ret = read_var_value (sym, deprecated_selected_frame);
   if (ret == 0 && complain)
     error ("`%s' argument unreadable", name);
   return ret;
@@ -3448,7 +3448,7 @@ struct value *
 value_slice (struct value *array, int lowbound, int length)
 {
   struct type *slice_range_type, *slice_type, *range_type;
-  LONGEST lowerbound, upperbound, offset;
+  LONGEST lowerbound, upperbound;
   struct value *slice;
   struct type *array_type;
   array_type = check_typedef (VALUE_TYPE (array));
@@ -3499,7 +3499,7 @@ value_slice (struct value *array, int lowbound, int length)
   else
     {
       struct type *element_type = TYPE_TARGET_TYPE (array_type);
-      offset
+      LONGEST offset
        = (lowbound - lowerbound) * TYPE_LENGTH (check_typedef (element_type));
       slice_type = create_array_type ((struct type *) NULL, element_type,
                                      slice_range_type);
index cd15f7c5c268eed69535944c600d474ad8525196..0c9f0484268f53f5d5ae63af1a526b4507399c09 100644 (file)
@@ -396,6 +396,27 @@ static struct vlist **varobj_table;
 
 /* Creates a varobj (not its children) */
 
+/* Return the full FRAME which corresponds to the given CORE_ADDR
+   or NULL if no FRAME on the chain corresponds to CORE_ADDR.  */
+
+static struct frame_info *
+find_frame_addr_in_frame_chain (CORE_ADDR frame_addr)
+{
+  struct frame_info *frame = NULL;
+
+  if (frame_addr == (CORE_ADDR) 0)
+    return NULL;
+
+  while (1)
+    {
+      frame = get_prev_frame (frame);
+      if (frame == NULL)
+       return NULL;
+      if (get_frame_base (frame) == frame_addr)
+       return frame;
+    }
+}
+
 struct varobj *
 varobj_create (char *objname,
               char *expression, CORE_ADDR frame, enum varobj_type type)
@@ -420,8 +441,14 @@ varobj_create (char *objname,
 
       /* Allow creator to specify context of variable */
       if ((type == USE_CURRENT_FRAME) || (type == USE_SELECTED_FRAME))
-       fi = selected_frame;
+       fi = deprecated_selected_frame;
       else
+       /* FIXME: cagney/2002-11-23: This code should be doing a
+          lookup using the frame ID and not just the frame's
+          ``address''.  This, of course, means an interface change.
+          However, with out that interface change ISAs, such as the
+          ia64 with its two stacks, won't work.  Similar goes for the
+          case where there is a frameless function.  */
        fi = find_frame_addr_in_frame_chain (frame);
 
       /* frame = -2 means always use selected frame */
@@ -460,8 +487,8 @@ varobj_create (char *objname,
          Since select_frame is so benign, just call it for all cases. */
       if (fi != NULL)
        {
-         get_frame_id (fi, &var->root->frame);
-         old_fi = selected_frame;
+         var->root->frame = get_frame_id (fi);
+         old_fi = deprecated_selected_frame;
          select_frame (fi);
        }
 
@@ -871,7 +898,7 @@ varobj_update (struct varobj **varp, struct varobj ***changelist)
 
   /* Save the selected stack frame, since we will need to change it
      in order to evaluate expressions. */
-  get_frame_id (selected_frame, &old_fid);
+  old_fid = get_frame_id (deprecated_selected_frame);
 
   /* Update the root variable. value_of_root can return NULL
      if the variable is no longer around, i.e. we stepped out of
@@ -1317,8 +1344,7 @@ new_root_variable (void)
   var->root->lang = NULL;
   var->root->exp = NULL;
   var->root->valid_block = NULL;
-  var->root->frame.base = 0;
-  var->root->frame.pc = 0;
+  var->root->frame = null_frame_id;
   var->root->use_selected_frame = 0;
   var->root->rootvar = NULL;
 
index e82227fe5e2d62f02f05da0f718144969c54134f..359029de67686605276a3cece21b85b11863d9ce 100644 (file)
@@ -157,11 +157,37 @@ vax_frame_init_saved_regs (struct frame_info *frame)
   frame->saved_regs[PS_REGNUM] = frame->frame + 4;
 }
 
+/* Get saved user PC for sigtramp from sigcontext for BSD style sigtramp.  */
+
+static CORE_ADDR
+vax_sigtramp_saved_pc (struct frame_info *frame)
+{
+  CORE_ADDR sigcontext_addr;
+  char *buf;
+  int ptrbytes = TYPE_LENGTH (builtin_type_void_func_ptr);
+  int sigcontext_offs = (2 * TARGET_INT_BIT) / TARGET_CHAR_BIT;
+
+  buf = alloca (ptrbytes);
+  /* Get sigcontext address, it is the third parameter on the stack.  */
+  if (frame->next)
+    sigcontext_addr = read_memory_typed_address
+      (FRAME_ARGS_ADDRESS (frame->next) + FRAME_ARGS_SKIP + sigcontext_offs,
+       builtin_type_void_data_ptr);
+  else
+    sigcontext_addr = read_memory_typed_address
+      (read_register (SP_REGNUM) + sigcontext_offs, builtin_type_void_data_ptr);
+
+  /* Don't cause a memory_error when accessing sigcontext in case the stack
+     layout has changed or the stack is corrupt.  */
+  target_read_memory (sigcontext_addr + SIGCONTEXT_PC_OFFSET, buf, ptrbytes);
+  return extract_typed_address (buf, builtin_type_void_func_ptr);
+}
+
 static CORE_ADDR
 vax_frame_saved_pc (struct frame_info *frame)
 {
-  if (frame->signal_handler_caller)
-    return (sigtramp_saved_pc (frame)); /* XXXJRT */
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
+    return (vax_sigtramp_saved_pc (frame)); /* XXXJRT */
 
   return (read_memory_integer (frame->frame + 16, 4));
 }
@@ -606,6 +632,10 @@ vax_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   tdep = xmalloc (sizeof (struct gdbarch_tdep));
   gdbarch = gdbarch_alloc (&info, tdep);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   tdep->osabi = osabi;
 
   /* Register info */
@@ -664,8 +694,8 @@ vax_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 7);
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_on_stack);
+  set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0);
+  set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_on_stack);
   set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
 
   /* Breakpoint info */
index 5d8bf3d1df7cfdc95d0d713503652499b9e5dd7b..654208a80419aca21487ff28ba84ad60bda546f0 100644 (file)
@@ -1 +1 @@
-2002-11-15-cvs
+2002-12-23-cvs
index 93bd10897f2f4aa2dd116175a003f3a9da0bd10b..f3fb0a7a9702e15ed4ed4fb48babf3b1ec8405a4 100644 (file)
@@ -473,7 +473,7 @@ psapi_get_dll_name (DWORD BaseAddress, char *dll_name_ret)
                                           dll_name_ret,
                                           MAX_PATH);
       if (len == 0)
-       error ("Error getting dll name: %u\n", GetLastError ());
+       error ("Error getting dll name: %u\n", (unsigned) GetLastError ());
 
       if ((DWORD) (mi.lpBaseOfDll) == BaseAddress)
        return 1;
@@ -502,6 +502,7 @@ struct so_stuff
 {
   struct so_stuff *next;
   DWORD load_addr;
+  DWORD end_addr;
   int loaded;
   struct objfile *objfile;
   char name[1];
@@ -578,6 +579,7 @@ register_loaded_dll (const char *name, DWORD load_addr)
   char *p;
   WIN32_FIND_DATA w32_fd;
   HANDLE h = FindFirstFile(name, &w32_fd);
+  MEMORY_BASIC_INFORMATION m;
   size_t len;
 
   if (h == INVALID_HANDLE_VALUE)
@@ -601,6 +603,12 @@ register_loaded_dll (const char *name, DWORD load_addr)
   so = (struct so_stuff *) xmalloc (sizeof (struct so_stuff) + strlen (ppath) + 8 + 1);
   so->loaded = 0;
   so->load_addr = load_addr;
+  if (!VirtualQueryEx (current_process_handle, (void *) load_addr, &m,
+                      sizeof (m)))
+    so->end_addr = (DWORD) m.AllocationBase + m.RegionSize;
+  else
+    so->end_addr = load_addr + 0x2000; /* completely arbitrary */
+
   so->next = NULL;
   so->objfile = NULL;
   strcpy (so->name, ppath);
@@ -708,6 +716,16 @@ handle_unload_dll (void *dummy)
   return 0;
 }
 
+char *
+solib_address (CORE_ADDR address)
+{
+  struct so_stuff *so;
+  for (so = &solib_start; so->next != NULL; so = so->next)
+    if (address >= so->load_addr && address <= so->end_addr)
+      return so->name;
+  return NULL;
+}
+
 /* Return name of last loaded DLL. */
 char *
 child_solib_loaded_library_pathname (int pid)
@@ -749,7 +767,7 @@ solib_symbols_add (char *name, int from_tty, CORE_ADDR load_addr)
   memset (&section_addrs, 0, sizeof (section_addrs));
   section_addrs.other[0].name = ".text";
   section_addrs.other[0].addr = load_addr;
-  return safe_symbol_file_add (name, from_tty, NULL, 0, OBJF_SHARED);
+  return safe_symbol_file_add (name, from_tty, &section_addrs, 0, OBJF_SHARED);
 }
 
 /* Load DLL symbol info. */
@@ -1198,6 +1216,7 @@ get_child_debug_event (int pid, struct target_waitstatus *ourstatus)
       ourstatus->kind = TARGET_WAITKIND_LOADED;
       ourstatus->value.integer = 0;
       retval = main_thread_id;
+      re_enable_breakpoints_in_shlibs ();
       break;
 
     case UNLOAD_DLL_DEBUG_EVENT:
@@ -1305,6 +1324,7 @@ do_initial_child_stuff (DWORD pid)
   memset (&current_event, 0, sizeof (current_event));
   push_target (&child_ops);
   child_init_thread_list ();
+  disable_breakpoints_in_shlibs (1);
   child_clear_solibs ();
   clear_proceed_status ();
   init_wait_for_inferior ();
@@ -1366,6 +1386,7 @@ child_attach (char *args, int from_tty)
 
   pid = strtoul (args, 0, 0);
   ok = DebugActiveProcess (pid);
+  saw_create = 0;
 
   if (!ok)
     error ("Can't attach to process.");
@@ -1618,7 +1639,7 @@ child_create_inferior (char *exec_file, char *allargs, char **env)
     }
 
   if (!ret)
-    error ("Error creating process %s, (error %d)\n", exec_file, GetLastError ());
+    error ("Error creating process %s, (error %d)\n", exec_file, (unsigned) GetLastError ());
 
   CloseHandle (pi.hThread);
   CloseHandle (pi.hProcess);
index 78e9c495af67e5a5233b41aa19b600b66d97817f..69495b8e73d9dd54240b9d97cfb3097a7472d3cb 100644 (file)
@@ -456,6 +456,17 @@ static struct core_fns linux_elf_core_fns = {
 #define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
 #endif
 
+/* SSE register?  */
+/* FIXME: cagney/2002-11-15: Once the i386 and x86-64 are integrated,
+   this will go.  */
+
+int
+i386_sse_regnum_p (int regnum)
+{
+  return (regnum < NUM_REGS
+         && (XMM0_REGNUM <= (regnum) && (regnum) < MXCSR_REGNUM));
+}
+
 /* Return the address of register REGNUM.  BLOCKEND is the value of
    u.u_ar0, which should point to the registers.  */
 CORE_ADDR
index b8385a6c756e766cb3dd13dd96a6af885c1ba66f..e43bdbe2630e529eb07a22bf89e155303bf546aa 100644 (file)
@@ -125,7 +125,7 @@ x86_64_linux_sigtramp_saved_pc (struct frame_info *frame)
 CORE_ADDR
 x86_64_linux_saved_pc_after_call (struct frame_info *frame)
 {
-  if (frame->signal_handler_caller)
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
     return x86_64_linux_sigtramp_saved_pc (frame);
 
   return read_memory_integer (read_register (SP_REGNUM), 8);
@@ -135,7 +135,7 @@ x86_64_linux_saved_pc_after_call (struct frame_info *frame)
 CORE_ADDR
 x86_64_linux_frame_saved_pc (struct frame_info *frame)
 {
-  if (frame->signal_handler_caller)
+  if ((get_frame_type (frame) == SIGTRAMP_FRAME))
     return x86_64_linux_sigtramp_saved_pc (frame);
   return cfi_get_ra (frame);
 }
@@ -157,7 +157,7 @@ x86_64_linux_frame_chain (struct frame_info *fi)
   ULONGEST addr;
   CORE_ADDR fp, pc;
 
-  if (!fi->signal_handler_caller)
+  if (!(get_frame_type (fi) == SIGTRAMP_FRAME))
     {
       fp = cfi_frame_chain (fi);
       if (fp)
@@ -175,17 +175,34 @@ x86_64_linux_frame_chain (struct frame_info *fi)
   return fp;
 }
 
-void
+CORE_ADDR
 x86_64_init_frame_pc (int fromleaf, struct frame_info *fi)
 {
   CORE_ADDR addr;
 
-  if (fi->next && fi->next->signal_handler_caller)
+  if (get_next_frame (fi) && (get_frame_type (fi->next) == SIGTRAMP_FRAME))
     {
-      addr = fi->next->next->frame
+      addr = get_frame_base (get_next_frame (get_next_frame (fi)))
        + LINUX_SIGINFO_SIZE + LINUX_UCONTEXT_SIGCONTEXT_OFFSET;
-      fi->pc = read_memory_integer (addr + LINUX_SIGCONTEXT_PC_OFFSET, 8);
+      return read_memory_integer (addr + LINUX_SIGCONTEXT_PC_OFFSET, 8);
     }
   else
-    cfi_init_frame_pc (fromleaf, fi);
+    return cfi_init_frame_pc (fromleaf, fi);
+}
+\f
+
+static void
+x86_64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+  x86_64_init_abi (info, gdbarch);
+}
+
+/* Provide a prototype to silence -Wmissing-prototypes.  */
+extern void _initialize_x86_64_linux_tdep (void);
+
+void
+_initialize_x86_64_linux_tdep (void)
+{
+  gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_LINUX,
+                         x86_64_linux_init_abi);
 }
index d9356ecf024313992413f51d8c6c020b3e1beaf8..4b3f45b0c198f61ec8a963ded13964821c6ae6bb 100644 (file)
@@ -176,15 +176,6 @@ x86_64_register_virtual_type (int regno)
   return *x86_64_register_info_table[regno].type;
 }
 
-/* FIXME: cagney/2002-11-11: Once the i386 and x86-64 targets are
-   merged, this function can go away.  */
-int
-i386_fp_regnum_p (int regnum)
-{
-  return (regnum < NUM_REGS
-         && (FP0_REGNUM && FP0_REGNUM <= (regnum) && (regnum) < FPC_REGNUM));
-}
-
 /* x86_64_register_convertible is true if register N's virtual format is
    different from its raw format.  Note that this definition assumes
    that the host supports IEEE 32-bit floats, since it doesn't say
@@ -922,7 +913,7 @@ x86_64_breakpoint_from_pc (CORE_ADDR *pc, int *lenptr)
   return breakpoint;
 }
 
-static void
+void
 x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
@@ -1026,6 +1017,8 @@ x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* FIXME: kettenis/20021026: This one is GNU/Linux-specific too.  */
   set_gdbarch_pc_in_sigtramp (gdbarch, x86_64_linux_in_sigtramp);
 
+  set_gdbarch_num_pseudo_regs (gdbarch, 0);
+
   /* Build call frame information (CFI) from DWARF2 frame debug info.  */
   set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info);
 
@@ -1033,7 +1026,7 @@ x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_init_extra_frame_info (gdbarch, cfi_init_extra_frame_info);
 
   /* Frame PC initialization is handled by using CFI.  */
-  set_gdbarch_init_frame_pc (gdbarch, x86_64_init_frame_pc);
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, x86_64_init_frame_pc);
 
   /* Cons up virtual frame pointer for trace.  */
   set_gdbarch_virtual_frame_pointer (gdbarch, cfi_virtual_frame_pointer);
@@ -1044,86 +1037,9 @@ x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section);
 }
 
-static struct gdbarch *
-x86_64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
-{
-  struct gdbarch_tdep *tdep;
-  struct gdbarch *gdbarch;
-  enum gdb_osabi osabi = GDB_OSABI_UNKNOWN;
-
-  /* Try to determine the OS ABI of the object we're loading.  */
-  if (info.abfd != NULL)
-    osabi = gdbarch_lookup_osabi (info.abfd);
-
-  /* Find a candidate among extant architectures.  */
-  for (arches = gdbarch_list_lookup_by_info (arches, &info);
-       arches != NULL;
-       arches = gdbarch_list_lookup_by_info (arches->next, &info))
-    {
-      /* Make sure the OS ABI selection matches.  */
-      tdep = gdbarch_tdep (arches->gdbarch);
-      if (tdep && tdep->osabi == osabi)
-        return arches->gdbarch;
-    }
-
-  /* Allocate space for the new architecture.  */
-  tdep = XMALLOC (struct gdbarch_tdep);
-  gdbarch = gdbarch_alloc (&info, tdep);
-
-  tdep->osabi = osabi;
-
-  /* FIXME: kettenis/20021025: The following calls are going to
-     disappear when we integrate the x86_64 target into the i386
-     target.  */
-
-  set_gdbarch_long_double_format (gdbarch, &floatformat_i387_ext);
-
-  set_gdbarch_max_register_raw_size (gdbarch, 16);
-  set_gdbarch_max_register_virtual_size (gdbarch, 16);
-
-  set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
-
-  set_gdbarch_breakpoint_from_pc (gdbarch, x86_64_breakpoint_from_pc);
-  set_gdbarch_decr_pc_after_break (gdbarch, 1);
-  set_gdbarch_function_start_offset (gdbarch, 0);
-
-  set_gdbarch_frame_args_skip (gdbarch, 8);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
-
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
-
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
-  set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
-  set_gdbarch_call_dummy_start_offset (gdbarch, 0);
-  set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
-  set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
-  set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_call_dummy_p (gdbarch, 1);
-  set_gdbarch_call_dummy_words (gdbarch, NULL);
-  set_gdbarch_sizeof_call_dummy_words (gdbarch, 0);
-  set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
-  set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
-
-  set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_at_entry_point);
-
-  set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
-
-  /* FIXME: kettenis/20021025: These already are the default.  */
-
-  set_gdbarch_register_virtual_size (gdbarch, generic_register_size);
-  set_gdbarch_deprecated_extract_struct_value_address (gdbarch, 0);
-
-  x86_64_init_abi (info, gdbarch);
-
-  return gdbarch;
-}
-
 void
 _initialize_x86_64_tdep (void)
 {
-  register_gdbarch_init (bfd_arch_i386, x86_64_gdbarch_init);
-
   /* Initialize the table saying where each register starts in the
      register file.  */
   {
@@ -1136,18 +1052,4 @@ _initialize_x86_64_tdep (void)
        offset += x86_64_register_info_table[i].size;
       }
   }
-
-  tm_print_insn = gdb_print_insn_x86_64;
-  tm_print_insn_info.mach = bfd_mach_x86_64;
-
-  /* Add the variable that controls the disassembly flavour.  */
-  {
-    struct cmd_list_element *new_cmd;
-
-    new_cmd = add_set_enum_cmd ("disassembly-flavour", no_class,
-                               valid_flavours, &disassembly_flavour, "\
-Set the disassembly flavour, the valid values are \"att\" and \"intel\", \
-and the default value is \"att\".", &setlist);
-    add_show_from_set (new_cmd, &showlist);
-  }
 }
index 4e7320643caa06dd5a281e16ab01f3f38d7dd05d..6977f9ba93496d84a216d07d363077c1207360b3 100644 (file)
@@ -35,7 +35,8 @@ gdbarch_frame_saved_pc_ftype x86_64_linux_frame_saved_pc;
 gdbarch_saved_pc_after_call_ftype x86_64_linux_saved_pc_after_call;
 gdbarch_pc_in_sigtramp_ftype x86_64_linux_in_sigtramp;
 CORE_ADDR x86_64_linux_frame_chain (struct frame_info *fi);
-void x86_64_init_frame_pc (int fromleaf, struct frame_info *fi);
+CORE_ADDR x86_64_init_frame_pc (int fromleaf, struct frame_info *fi);
 
+void x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch);
 
 #endif
index e2fe8d2fac2bc2943186fc33520077d7c419c9e8..e93f93b75d38fcd92f9c71ab6d92184ce5d93708 100644 (file)
@@ -150,17 +150,25 @@ struct coff_symfile_info
     CORE_ADDR toc_offset;
   };
 
-static struct deprecated_complaint storclass_complaint =
-{"Unexpected storage class: %d", 0, 0};
-
-static struct deprecated_complaint bf_notfound_complaint =
-{"line numbers off, `.bf' symbol not found", 0, 0};
+static void
+bf_notfound_complaint (void)
+{
+  complaint (&symfile_complaints, "line numbers off, `.bf' symbol not found");
+}
 
-static struct deprecated_complaint ef_complaint =
-{"Mismatched .ef symbol ignored starting at symnum %d", 0, 0};
+static void
+ef_complaint (int arg1)
+{
+  complaint (&symfile_complaints,
+            "Mismatched .ef symbol ignored starting at symnum %d", arg1);
+}
 
-static struct deprecated_complaint eb_complaint =
-{"Mismatched .eb symbol ignored starting at symnum %d", 0, 0};
+static void
+eb_complaint (int arg1)
+{
+  complaint (&symfile_complaints,
+            "Mismatched .eb symbol ignored starting at symnum %d", arg1);
+}
 
 static void xcoff_initial_scan (struct objfile *, int);
 
@@ -483,9 +491,7 @@ record_include_begin (struct coff_symbol *cs)
       /* This can happen with old versions of GCC.
          GCC 2.3.3-930426 does not exhibit this on a test case which
          a user said produced the message for him.  */
-      static struct deprecated_complaint msg =
-      {"Nested C_BINCL symbols", 0, 0};
-      complain (&msg);
+      complaint (&symfile_complaints, "Nested C_BINCL symbols");
     }
   ++inclDepth;
 
@@ -502,9 +508,7 @@ record_include_end (struct coff_symbol *cs)
 
   if (inclDepth == 0)
     {
-      static struct deprecated_complaint msg =
-      {"Mismatched C_BINCL/C_EINCL pair", 0, 0};
-      complain (&msg);
+      complaint (&symfile_complaints, "Mismatched C_BINCL/C_EINCL pair");
     }
 
   allocate_include_entry ();
@@ -766,9 +770,8 @@ enter_line_range (struct subfile *subfile, unsigned beginoffset, unsigned endoff
     {
       if (endoffset >= limit_offset)
        {
-         static struct deprecated_complaint msg =
-         {"Bad line table offset in C_EINCL directive", 0, 0};
-         complain (&msg);
+         complaint (&symfile_complaints,
+                    "Bad line table offset in C_EINCL directive");
          return;
        }
       limit_offset = endoffset;
@@ -864,8 +867,6 @@ static char *
 xcoff_next_symbol_text (struct objfile *objfile)
 {
   struct internal_syment symbol;
-  static struct deprecated_complaint msg =
-  {"Unexpected symbol continuation", 0, 0};
   char *retval;
   /* FIXME: is this the same as the passed arg? */
   objfile = this_symtab_psymtab->objfile;
@@ -873,7 +874,7 @@ xcoff_next_symbol_text (struct objfile *objfile)
   bfd_coff_swap_sym_in (objfile->obfd, raw_symbol, &symbol);
   if (symbol.n_zeroes)
     {
-      complain (&msg);
+      complaint (&symfile_complaints, "Unexpected symbol continuation");
 
       /* Return something which points to '\0' and hope the symbol reading
          code does something reasonable.  */
@@ -890,7 +891,7 @@ xcoff_next_symbol_text (struct objfile *objfile)
     }
   else
     {
-      complain (&msg);
+      complaint (&symfile_complaints, "Unexpected symbol continuation");
 
       /* Return something which points to '\0' and hope the symbol reading
          code does something reasonable.  */
@@ -1282,7 +1283,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
 
              if (context_stack_depth <= 0)
                {               /* We attempted to pop an empty context stack */
-                 complain (&ef_complaint, cs->c_symnum);
+                 ef_complaint (cs->c_symnum);
                  within_function = 0;
                  break;
                }
@@ -1290,7 +1291,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
              /* Stack must be empty now.  */
              if (context_stack_depth > 0 || new == NULL)
                {
-                 complain (&ef_complaint, cs->c_symnum);
+                 ef_complaint (cs->c_symnum);
                  within_function = 0;
                  break;
                }
@@ -1332,9 +1333,8 @@ read_xcoff_symtab (struct partial_symtab *pst)
        case C_UNTAG:
        case C_ENTAG:
          {
-           static struct deprecated_complaint msg =
-           {"Unrecognized storage class %d.", 0, 0};
-           complain (&msg, cs->c_sclass);
+           complaint (&symfile_complaints, "Unrecognized storage class %d.",
+                      cs->c_sclass);
          }
          break;
 
@@ -1376,13 +1376,13 @@ read_xcoff_symtab (struct partial_symtab *pst)
            {
              if (context_stack_depth <= 0)
                {               /* We attempted to pop an empty context stack */
-                 complain (&eb_complaint, cs->c_symnum);
+                 eb_complaint (cs->c_symnum);
                  break;
                }
              new = pop_context ();
              if (depth-- != new->depth)
                {
-                 complain (&eb_complaint, cs->c_symnum);
+                 eb_complaint (cs->c_symnum);
                  break;
                }
              if (local_symbols && context_stack_depth > 0)
@@ -1520,7 +1520,8 @@ process_xcoff_symbol (register struct coff_symbol *cs, struct objfile *objfile)
          break;
 
        default:
-         complain (&storclass_complaint, cs->c_sclass);
+         complaint (&symfile_complaints, "Unexpected storage class: %d",
+                    cs->c_sclass);
          /* FALLTHROUGH */
 
        case C_DECL:
@@ -1603,9 +1604,7 @@ read_symbol (struct internal_syment *symbol, int symno)
   ->symtbl;
   if (symno < 0 || symno >= nsyms)
     {
-      static struct deprecated_complaint msg =
-      {"Invalid symbol offset", 0, 0};
-      complain (&msg);
+      complaint (&symfile_complaints, "Invalid symbol offset");
       symbol->n_value = 0;
       symbol->n_scnum = -1;
       return;
@@ -1634,7 +1633,7 @@ static int
 read_symbol_lineno (int symno)
 {
   struct objfile *objfile = this_symtab_psymtab->objfile;
-  boolean xcoff64 = bfd_xcoff_is_xcoff64 (objfile->obfd);
+  int xcoff64 = bfd_xcoff_is_xcoff64 (objfile->obfd);
 
   struct coff_symfile_info *info =
     (struct coff_symfile_info *)objfile->sym_private;
@@ -1647,7 +1646,7 @@ read_symbol_lineno (int symno)
 
   if (symno < 0)
     {
-      complain (&bf_notfound_complaint);
+      bf_notfound_complaint ();
       return 0;
     }
 
@@ -1680,7 +1679,7 @@ read_symbol_lineno (int symno)
       symno += symbol->n_numaux + 1;
     }
 
-  complain (&bf_notfound_complaint);
+  bf_notfound_complaint ();
   return 0;
 
 gotit:
@@ -2116,6 +2115,14 @@ swap_sym (struct internal_syment *symbol, union internal_auxent *aux,
     }
 }
 
+static void
+function_outside_compilation_unit_complaint (const char *arg1)
+{
+  complaint (&symfile_complaints,
+            "function `%s' appears to be defined outside of all compilation units",
+            arg1);
+}
+
 static void
 scan_xcoff_symtab (struct objfile *objfile)
 {
@@ -2441,9 +2448,8 @@ scan_xcoff_symtab (struct objfile *objfile)
 
        default:
          {
-           static struct deprecated_complaint msg =
-           {"Storage class %d not recognized during scan", 0, 0};
-           complain (&msg, sclass);
+           complaint (&symfile_complaints,
+                      "Storage class %d not recognized during scan", sclass);
          }
          /* FALLTHROUGH */
 
@@ -2563,11 +2569,6 @@ scan_xcoff_symtab (struct objfile *objfile)
        case C_DECL:
        case C_STSYM:
          {
-
-           static struct deprecated_complaint function_outside_compilation_unit = {
-             "function `%s' appears to be defined outside of all compilation units", 0, 0
-           };
-
            char *p;
            swap_sym (&symbol, &main_aux[0], &namestring, &sraw_symbol,
                      &ssymnum, objfile);
@@ -2747,7 +2748,7 @@ scan_xcoff_symtab (struct objfile *objfile)
                    char *name = xmalloc (name_len + 1);
                    memcpy (name, namestring, name_len);
                    name[name_len] = '\0';
-                   complain (&function_outside_compilation_unit, name);
+                   function_outside_compilation_unit_complaint (name);
                    xfree (name);
                  }
                symbol.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@@ -2768,7 +2769,7 @@ scan_xcoff_symtab (struct objfile *objfile)
                    char *name = xmalloc (name_len + 1);
                    memcpy (name, namestring, name_len);
                    name[name_len] = '\0';
-                   complain (&function_outside_compilation_unit, name);
+                   function_outside_compilation_unit_complaint (name);
                    xfree (name);
                  }
                symbol.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@@ -2819,7 +2820,8 @@ scan_xcoff_symtab (struct objfile *objfile)
                   time searching to the end of every string looking for
                   a backslash.  */
 
-               complain (&unknown_symchar_complaint, p[1]);
+               complaint (&symfile_complaints,
+                          "unknown symbol descriptor `%c'", p[1]);
 
                /* Ignore it; perhaps it is an extension that we don't
                   know about.  */
index f1115168888052837ed0899da7fec8937fa26e05..fb7ff3ce013b9bf71fc7cdb1a8fea4255aff2a53 100644 (file)
@@ -333,7 +333,7 @@ xstormy16_pop_frame (void)
   if (fi == NULL)
     return;                    /* paranoia */
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       generic_pop_dummy_frame ();
     }
@@ -466,7 +466,7 @@ xstormy16_scan_prologue (CORE_ADDR start_addr, CORE_ADDR end_addr,
   if (fi)
     {
       /* In a call dummy, don't touch the frame. */
-      if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+      if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
        return start_addr;
 
       /* Grab the frame-relative values of SP and FP, needed below. 
@@ -756,7 +756,7 @@ xstormy16_frame_saved_pc (struct frame_info *fi)
 {
   CORE_ADDR saved_pc;
 
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       saved_pc = deprecated_read_register_dummy (fi->pc, fi->frame,
                                                 E_PC_REGNUM);
@@ -817,7 +817,7 @@ xstormy16_init_extra_frame_info (int fromleaf, struct frame_info *fi)
 static CORE_ADDR
 xstormy16_frame_chain (struct frame_info *fi)
 {
-  if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame))
     {
       /* Call dummy's frame is the same as caller's.  */
       return fi->frame;
@@ -1023,6 +1023,10 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   gdbarch = gdbarch_alloc (&info, 0);
 
+  /* NOTE: cagney/2002-12-06: This can be deleted when this arch is
+     ready to unwind the PC first (see frame.c:get_prev_frame()).  */
+  set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default);
+
   /*
    * Basic register fields and methods.
    */
@@ -1055,8 +1059,6 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frame_saved_pc (gdbarch, xstormy16_frame_saved_pc);
   set_gdbarch_skip_prologue (gdbarch, xstormy16_skip_prologue);
   set_gdbarch_frame_chain_valid (gdbarch, xstormy16_frame_chain_valid);
-  set_gdbarch_frame_args_address (gdbarch, default_frame_address);
-  set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
 
   set_gdbarch_in_function_epilogue_p (gdbarch,
                                      xstormy16_in_function_epilogue_p);
@@ -1084,7 +1086,6 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
    * Call Dummies
    * 
    * These values and methods are used when gdb calls a target function.  */
-  set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
   set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
   set_gdbarch_push_return_address (gdbarch, xstormy16_push_return_address);
   set_gdbarch_deprecated_extract_return_value (gdbarch, xstormy16_extract_return_value);
@@ -1095,13 +1096,11 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_extract_struct_value_address (gdbarch, xstormy16_extract_struct_value_address);
   set_gdbarch_use_struct_convention (gdbarch,
                                     xstormy16_use_struct_convention);
-  set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT);
   set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
   set_gdbarch_call_dummy_start_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
   set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
   set_gdbarch_call_dummy_length (gdbarch, 0);
-  set_gdbarch_pc_in_call_dummy (gdbarch, generic_pc_in_call_dummy);
   set_gdbarch_call_dummy_p (gdbarch, 1);
   set_gdbarch_call_dummy_words (gdbarch, call_dummy_words);
   set_gdbarch_sizeof_call_dummy_words (gdbarch, 0);
index e06f343f11df78fdf21d24f17f880885c9b68947..e1aa8fa8d139f5381e8f84e7bc8de9d417d7de97 100644 (file)
@@ -166,12 +166,6 @@ z8k_frame_chain (struct frame_info *thisframe)
   return 0;
 }
 
-void
-init_frame_pc (void)
-{
-  internal_error (__FILE__, __LINE__, "failed internal consistency check");
-}
-
 /* Put here the code to store, into a struct frame_saved_regs,
    the addresses of the saved registers of frame described by FRAME_INFO.
    This includes special registers such as pc and fp saved in special
@@ -249,7 +243,7 @@ frame_find_saved_regs (struct frame_info *fip, struct frame_saved_regs *fsrp)
   pc = skip_adjust (get_pc_function_start (fip->pc), &locals);
 
   {
-    adr = FRAME_FP (fip) - locals;
+    adr = get_frame_base (fip) - locals;
     for (i = 0; i < 8; i++)
       {
        int word = read_memory_short (pc);
@@ -327,8 +321,8 @@ z8k_print_register_hook (int regno)
     {
       unsigned char l[4];
 
-      frame_register_read (selected_frame, regno, l + 0);
-      frame_register_read (selected_frame, regno + 1, l + 2);
+      frame_register_read (deprecated_selected_frame, regno, l + 0);
+      frame_register_read (deprecated_selected_frame, regno + 1, l + 2);
       printf_unfiltered ("\t");
       printf_unfiltered ("0x%02x%02x%02x%02x", l[0], l[1], l[2], l[3]);
     }
@@ -337,10 +331,10 @@ z8k_print_register_hook (int regno)
     {
       unsigned char l[8];
 
-      frame_register_read (selected_frame, regno, l + 0);
-      frame_register_read (selected_frame, regno + 1, l + 2);
-      frame_register_read (selected_frame, regno + 2, l + 4);
-      frame_register_read (selected_frame, regno + 3, l + 6);
+      frame_register_read (deprecated_selected_frame, regno, l + 0);
+      frame_register_read (deprecated_selected_frame, regno + 1, l + 2);
+      frame_register_read (deprecated_selected_frame, regno + 2, l + 4);
+      frame_register_read (deprecated_selected_frame, regno + 3, l + 6);
 
       printf_unfiltered ("\t");
       printf_unfiltered ("0x%02x%02x%02x%02x%02x%02x%02x%02x",
@@ -351,7 +345,7 @@ z8k_print_register_hook (int regno)
       unsigned short rval;
       int i;
 
-      frame_register_read (selected_frame, regno, (char *) (&rval));
+      frame_register_read (deprecated_selected_frame, regno, (char *) (&rval));
 
       printf_unfiltered ("\n");
       for (i = 0; i < 10; i += 2)
@@ -469,8 +463,8 @@ z8k_print_registers_info (struct gdbarch *gdbarch,
 void
 z8k_do_registers_info (int regnum, int all)
 {
-  z8k_print_registers_info (current_gdbarch, gdb_stdout, selected_frame,
-                           regnum, all);
+  z8k_print_registers_info (current_gdbarch, gdb_stdout,
+                           deprecated_selected_frame, regnum, all);
 }
 
 void
index 2dfed5ae4ce125f2a8a40eef832718ee11689060..5b46e44124fe229bf542ef8101e6089ade5e33cb 100644 (file)
@@ -1,13 +1,35 @@
+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-16  Klee Dienes  <kdienes@apple.com>
+
+       * opcode/m88k.h (INSTAB): Remove 'next' field.
+       (instruction): Remove definition; replace with extern declaration
+       and mark as const.
+
 2002-11-14  Egor Duda  <deo@logos-m.ru>
 
        * bfdlink.h (struct bfd_link_info): Add new boolean
        field pei386_runtime_pseudo_reloc.
 
-2002-11-11  Svein E. Seldal  <Svein.Seldal@solidas.com>
-
-       * opcode/tic4x.h: Added new opcodes and corrected some bugs.  Add
-       support for new DSP types.
-
 2002-10-26  Roger Sayle  <roger@eyesopen.com>
 
        * partition.h:  Close the extern "C" scope when compiling with C++.
index 9263bcc126d6ebc48f3b71a4483dae78f0148189..c25826207c595dd1111f58911c4f955191079ab3 100644 (file)
@@ -128,14 +128,14 @@ struct bfd_link_hash_entry
       struct
        {
          /* 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.  */
+            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.  */
          bfd_size_type size;   /* Common symbol size.  */
          struct bfd_link_hash_common_entry
            {
@@ -167,25 +167,25 @@ struct bfd_link_hash_table
   enum bfd_link_hash_table_type type;
 };
 
-/* Look up an entry in a link hash table.  If FOLLOW is true, this
+/* 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
-  PARAMS ((struct bfd_link_hash_table *, const char *, boolean create,
-          boolean copy, boolean follow));
+  PARAMS ((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
-  PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean, boolean,
-          boolean));
+  PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean,
+          bfd_boolean, bfd_boolean));
 
 /* Traverse a link hash table.  */
 extern void bfd_link_hash_traverse
   PARAMS ((struct bfd_link_hash_table *,
-          boolean (*) (struct bfd_link_hash_entry *, PTR),
+          bfd_boolean (*) (struct bfd_link_hash_entry *, PTR),
           PTR));
 
 /* Add an entry to the undefs list.  */
@@ -203,49 +203,46 @@ struct bfd_sym_chain
 
 struct bfd_link_info
 {
-  /* Function callbacks.  */
-  const struct bfd_link_callbacks *callbacks;
-
-  /* true if BFD should generate a relocateable object file.  */
-  boolean relocateable;
+  /* TRUE if BFD should generate a relocatable object file.  */
+  unsigned int relocateable: 1;
 
-  /* true if BFD should generate relocation information in the final
+  /* TRUE if BFD should generate relocation information in the final
      executable.  */
-  boolean emitrelocations;
+  unsigned int emitrelocations: 1;
 
-  /* true if BFD should generate a "task linked" object file,
+  /* TRUE if BFD should generate a "task linked" object file,
      similar to relocatable but also with globals converted to
      statics.  */
-  boolean task_link;
+  unsigned int task_link: 1;
 
-  /* true if BFD should generate a shared object.  */
-  boolean shared;
+  /* TRUE if BFD should generate a shared object.  */
+  unsigned int shared: 1;
 
-  /* true if BFD should pre-bind symbols in a shared object.  */
-  boolean symbolic;
+  /* 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
+  /* TRUE if BFD should export all symbols in the dynamic symbol table
      of an executable, rather than only those used.  */
-  boolean export_dynamic;
+  unsigned int export_dynamic: 1;
 
-  /* true if shared objects should be linked directly, not shared.  */
-  boolean static_link;
+  /* 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
+  /* 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.  */
-  boolean traditional_format;
+  unsigned int traditional_format: 1;
 
-  /* true if we want to produced optimized output files.  This might
+  /* TRUE if we want to produced optimized output files.  This might
      need much more time and therefore must be explicitly selected.  */
-  boolean optimize;
+  unsigned int optimize: 1;
 
-  /* true if BFD should generate errors for undefined symbols
+  /* TRUE if BFD should generate errors for undefined symbols
      even if generating a shared object.  */
-  boolean no_undefined;
+  unsigned int no_undefined: 1;
 
-  /* true if BFD should allow undefined symbols in shared objects even
+  /* TRUE if BFD should allow undefined symbols in shared objects even
      when no_undefined is set to disallow undefined symbols.  The net
      result will be that undefined symbols in regular objects will
      still trigger an error, but undefined symbols in shared objects
@@ -257,13 +254,39 @@ struct bfd_link_info
      appropriate for the current architecture.  I.E. dynamically
      select an appropriate memset function.  Apparently it is also
      normal for HPPA shared libraries to have undefined symbols.  */
-  boolean allow_shlib_undefined;
+  unsigned int allow_shlib_undefined: 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 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 ok to have multiple definition.  */
-  boolean allow_multiple_definition;
+  /* 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 ok to have version with no definition.  */
-  boolean allow_undefined_version;
+  /* TRUE if global symbols in discarded sections should be stripped.  */
+  unsigned int strip_discarded: 1;
 
   /* Which symbols to strip.  */
   enum bfd_link_strip strip;
@@ -271,24 +294,12 @@ struct bfd_link_info
   /* Which local symbols to discard.  */
   enum bfd_link_discard discard;
 
-  /* true if symbols should be retained in memory, false if they
-     should be freed and reread.  */
-  boolean keep_memory;
-
-  /* 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;
+  /* 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;
 
-  /* List of global symbol names that are starting points for marking
-     sections against garbage collection.  */
-  struct bfd_sym_chain *gc_sym_list;
+  /* Function callbacks.  */
+  const struct bfd_link_callbacks *callbacks;
 
   /* Hash table handled by BFD.  */
   struct bfd_link_hash_table *hash;
@@ -297,12 +308,8 @@ struct bfd_link_info
      strip_some.  */
   struct bfd_hash_table *keep_hash;
 
-  /* true if every symbol should be reported back via the notice
-     callback.  */
-  boolean notice_all;
-
   /* Hash table of symbols to report back via the notice callback.  If
-     this is NULL, and notice_all is false, then no symbols are
+     this is NULL, and notice_all is FALSE, then no symbols are
      reported back.  */
   struct bfd_hash_table *notice_hash;
 
@@ -310,14 +317,24 @@ struct bfd_link_info
      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 */
   PTR base_file;
 
-  /* If non-zero, specifies that branches which are problematic for the
-  MPC860 C0 (or earlier) should be checked for and modified.  It gives the
-  number of bytes that should be checked at the end of each text page. */
-  int mpc860c0;
-
   /* The function to call when the executable or shared object is
      loaded.  */
   const char *init_function;
@@ -326,16 +343,12 @@ struct bfd_link_info
      unloaded.  */
   const char *fini_function;
 
-  /* true if the new ELF dynamic tags are enabled. */ 
-  boolean new_dtags;
-
-  /* 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;
+  /* If non-zero, specifies that branches which are problematic for the
+     MPC860 C0 (or earlier) should be checked for and modified.  It gives the
+     number of bytes that should be checked at the end of each text page.  */
+  int mpc860c0;
 
-  /* Non-zero if auto-import thunks for DATA items in pei386 DLLs 
+  /* 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;
@@ -345,30 +358,20 @@ struct bfd_link_info
      is explicitly requested by the user, -1 if enabled by default.  */
   int pei386_runtime_pseudo_reloc;
 
-  /* True if non-PLT relocs should be merged into one reloc section
-     and sorted so that relocs against the same symbol come together.  */
-  boolean combreloc;
-
-  /* True if executable should not contain copy relocs.
-     Setting this true may result in a non-sharable text segment.  */
-  boolean nocopyreloc;
-
-  /* True if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
-     should be created.  */
-  boolean eh_frame_hdr;
-
   /* How many spare .dynamic DT_NULL entries should be added?  */
   unsigned int spare_dynamic_tags;
 
-  /* 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;
+  /* 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;
 };
 
 /* This structures holds a set of callback functions.  These are
    called by the BFD linker routines.  The first argument to each
    callback function is the bfd_link_info structure being used.  Each
-   function returns a boolean value.  If the function returns false,
+   function returns a boolean value.  If the function returns FALSE,
    then the BFD function which called it will return with a failure
    indication.  */
 
@@ -378,23 +381,18 @@ struct bfd_link_callbacks
      archive.  ABFD is the archive element being added.  NAME is the
      name of the symbol which caused the archive element to be pulled
      in.  */
-  boolean (*add_archive_element) PARAMS ((struct bfd_link_info *,
-                                         bfd *abfd,
-                                         const char *name));
+  bfd_boolean (*add_archive_element)
+    PARAMS ((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.  */
-  boolean (*multiple_definition) PARAMS ((struct bfd_link_info *,
-                                         const char *name,
-                                         bfd *obfd,
-                                         asection *osec,
-                                         bfd_vma oval,
-                                         bfd *nbfd,
-                                         asection *nsec,
-                                         bfd_vma nval));
+  bfd_boolean (*multiple_definition)
+    PARAMS ((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
@@ -406,34 +404,29 @@ struct bfd_link_callbacks
      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.  */
-  boolean (*multiple_common) PARAMS ((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));
+  bfd_boolean (*multiple_common)
+    PARAMS ((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 relocateable 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.  */
-  boolean (*add_to_set) PARAMS ((struct bfd_link_info *,
-                                struct bfd_link_hash_entry *entry,
-                                bfd_reloc_code_real_type reloc,
-                                bfd *abfd, asection *sec, bfd_vma value));
+  bfd_boolean (*add_to_set)
+    PARAMS ((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
+     formats.  CONSTRUCTOR is TRUE for a constructor, FALSE for a
      destructor.  This will use BFD_RELOC_CTOR when generating a
      relocateable file.  NAME is the name of the symbol found.  ABFD,
      SECTION and VALUE are the value of the symbol.  */
-  boolean (*constructor) PARAMS ((struct bfd_link_info *,
-                                 boolean constructor,
-                                 const char *name, bfd *abfd, asection *sec,
-                                 bfd_vma value));
+  bfd_boolean (*constructor)
+    PARAMS ((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
@@ -441,20 +434,17 @@ struct bfd_link_callbacks
      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.  */
-  boolean (*warning) PARAMS ((struct bfd_link_info *,
-                             const char *warning, const char *symbol,
-                             bfd *abfd, asection *section,
-                             bfd_vma address));
+  bfd_boolean (*warning)
+    PARAMS ((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.  */
-  boolean (*undefined_symbol) PARAMS ((struct bfd_link_info *,
-                                      const char *name, bfd *abfd,
-                                      asection *section,
-                                      bfd_vma address,
-                                      boolean fatal));
+  bfd_boolean (*undefined_symbol)
+    PARAMS ((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.  NAME is
      the name of the symbol or section the reloc is against,
      RELOC_NAME is the name of the relocation, and ADDEND is any
@@ -462,11 +452,9 @@ struct bfd_link_callbacks
      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.  */
-  boolean (*reloc_overflow) PARAMS ((struct bfd_link_info *,
-                                    const char *name,
-                                    const char *reloc_name, bfd_vma addend,
-                                    bfd *abfd, asection *section,
-                                    bfd_vma address));
+  bfd_boolean (*reloc_overflow)
+    PARAMS ((struct bfd_link_info *, 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.
      The canonical example is an a29k IHCONST reloc which does not
      follow an IHIHALF reloc.  MESSAGE is an appropriate message.
@@ -474,26 +462,25 @@ struct bfd_link_callbacks
      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.  */
-  boolean (*reloc_dangerous) PARAMS ((struct bfd_link_info *,
-                                     const char *message,
-                                     bfd *abfd, asection *section,
-                                     bfd_vma address));
+  bfd_boolean (*reloc_dangerous)
+    PARAMS ((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.  */
-  boolean (*unattached_reloc) PARAMS ((struct bfd_link_info *,
-                                      const char *name,
-                                      bfd *abfd, asection *section,
-                                      bfd_vma address));
+  bfd_boolean (*unattached_reloc)
+    PARAMS ((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.  */
-  boolean (*notice) PARAMS ((struct bfd_link_info *, const char *name,
-                            bfd *abfd, asection *section, bfd_vma address));
+  bfd_boolean (*notice)
+    PARAMS ((struct bfd_link_info *, const char *name,
+            bfd *abfd, asection *section, bfd_vma address));
 };
 \f
 /* The linker builds link_order structures which tell the code how to
@@ -513,20 +500,20 @@ enum bfd_link_order_type
 /* This is the link_order structure itself.  These form a chain
    attached to the section whose contents they are describing.  */
 
-struct bfd_link_order 
+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;  
+  bfd_vma offset;
   /* Size within output section.  */
   bfd_size_type size;
   /* Type specific information.  */
-  union 
+  union
     {
-      struct 
+      struct
        {
          /* Section to include.  If this is used, then
             section->output_section must be the section the
@@ -609,7 +596,7 @@ struct bfd_elf_version_expr
   /* Regular expression.  */
   const char *pattern;
   /* Matching function.  */
-  int (*match) PARAMS((struct bfd_elf_version_expr *, const char *));
+  int (*match) PARAMS ((struct bfd_elf_version_expr *, const char *));
   /* Defined by ".symver".  */
   unsigned int symver: 1;
   /* Defined by version script.  */
index 23b062735f08b2c8acd3bbf0ab61d28de66d290c..b2eec4cbe93c27c8f6766351c169554e72660d28 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 076fdf5bef5713ffbcec20a15803c7d381f49fae..00d2f24008610cbb15881b5e9de1f80e789723fe 100644 (file)
@@ -2,22 +2,22 @@
    This does not include symbol information, found in sym.h and
    symconst.h.
 
-   Copyright 2001 Free Software Foundation, Inc.
+   Copyright 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-   
+
 #ifndef ECOFF_H
 #define ECOFF_H
 
@@ -430,8 +430,8 @@ struct ecoff_debug_swap
   /* Function to read symbol data and set up pointers in
      ecoff_debug_info structure.  The section argument is used for
      ELF, not straight ECOFF.  */
-  boolean (*read_debug_info) PARAMS ((bfd *, asection *,
-                                     struct ecoff_debug_info *));
+  bfd_boolean (*read_debug_info)
+    PARAMS ((bfd *, asection *, struct ecoff_debug_info *));
 };
 
 #endif /* ! defined (ECOFF_H) */
index 0bb9d6c1e480c12d5ddcb0c1933470ddac9bc86f..b27cececb0d8f7e6b5dadfdca20ffad3e0b7a9e7 100644 (file)
@@ -1,6 +1,6 @@
 /* Internal format of XCOFF object file data structures for BFD.
 
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001
+   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
 
@@ -366,10 +366,10 @@ struct xcoff_link_hash_table
   unsigned long file_align;
 
   /* Whether the .text section must be read-only.  */
-  boolean textro;
+  bfd_boolean textro;
 
   /* Whether garbage collection was done.  */
-  boolean gc;
+  bfd_boolean gc;
 
   /* A linked list of symbols for which we have size information.  */
   struct xcoff_link_size_list
@@ -391,7 +391,7 @@ struct xcoff_link_hash_table
 struct xcoff_loader_info
 {
   /* Set if a problem occurred.  */
-  boolean failed;
+  bfd_boolean failed;
 
   /* Output BFD.  */
   bfd *output_bfd;
@@ -400,7 +400,7 @@ struct xcoff_loader_info
   struct bfd_link_info *info;
 
   /* Whether all defined symbols should be exported.  */
-  boolean export_defineds;
+  bfd_boolean export_defineds;
 
   /* Number of ldsym structures.  */
   size_t ldsym_count;
@@ -604,7 +604,7 @@ struct xcoff_ar_hdr_big
 /* 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 
+   <bigaf> is the default format, return TRUE even when xcoff_ardata is 
    NULL. */
 #ifndef SMALL_ARCHIVE
 /* Creates big archives by default */
index 65f3160af383322147d2f00748a04c26fda58b00..de95f20c5a8a55692f004b6890f158687bd6b5fb 100644 (file)
@@ -1,3 +1,51 @@
+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.
index 6463b5a9082305af087e72813ed20785cf84a603..9c8ce4e0063994a1ede754a4489843c786081cc0 100644 (file)
@@ -87,7 +87,7 @@ typedef struct
 }
 DWARF2_Internal_PubNames;
 
-/* Strcuture found in .debug_info section.  */
+/* Structure found in .debug_info section.  */
 typedef struct
 {
   unsigned char  cu_length        [4];
@@ -194,7 +194,11 @@ enum dwarf_tag
     DW_TAG_function_template = 0x4102, /* For C++.  */
     DW_TAG_class_template = 0x4103,    /* For C++.  */
     DW_TAG_GNU_BINCL = 0x4104,
-    DW_TAG_GNU_EINCL = 0x4105
+    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
   };
 
 #define DW_TAG_lo_user 0x4080
@@ -309,7 +313,7 @@ enum dwarf_attribute
     DW_AT_call_column   = 0x57,
     DW_AT_call_file     = 0x58,
     DW_AT_call_line     = 0x59,
-    /* SGI/MIPS Extensions.  */
+    /* SGI/MIPS extensions.  */
     DW_AT_MIPS_fde = 0x2001,
     DW_AT_MIPS_loop_begin = 0x2002,
     DW_AT_MIPS_tail_loop_begin = 0x2003,
@@ -329,8 +333,10 @@ enum dwarf_attribute
     DW_AT_body_begin = 0x2105,
     DW_AT_body_end   = 0x2106,
     DW_AT_GNU_vector = 0x2107,
-    /* VMS Extensions.  */
-    DW_AT_VMS_rtnbeg_pd_address = 0x2201
+    /* VMS extensions.  */
+    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
+    /* UPC extension.  */
+    DW_AT_upc_threads_scaled = 0x3210
   };
 
 #define DW_AT_lo_user  0x2000  /* Implementation-defined range start.  */
@@ -678,7 +684,9 @@ enum dwarf_source_language
     DW_LANG_Ada95 = 0x000d,
     DW_LANG_Fortran95 = 0x000e,
     /* MIPS.  */
-    DW_LANG_Mips_Assembler = 0x8001
+    DW_LANG_Mips_Assembler = 0x8001,
+    /* UPC.  */
+    DW_LANG_Upc = 0x8765
   };
 
 #define DW_LANG_lo_user 0x8000 /* Implementation-defined range start.  */
index 5d39d3ae7ce11f5fbace4decaadbf4524571345d..45d682a2256bbac3b6e762b92841eb518aeb9146 100644 (file)
@@ -1,5 +1,5 @@
 /* ELF support for BFD.
-   Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001
+   Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, from information published
@@ -58,11 +58,6 @@ typedef struct elf_internal_ehdr {
   unsigned int         e_shstrndx;     /* Section header string table index */
 } Elf_Internal_Ehdr;
 
-#define elf32_internal_ehdr elf_internal_ehdr
-#define Elf32_Internal_Ehdr Elf_Internal_Ehdr
-#define elf64_internal_ehdr elf_internal_ehdr
-#define Elf64_Internal_Ehdr Elf_Internal_Ehdr
-
 /* Program header */
 
 struct elf_internal_phdr {
@@ -77,10 +72,6 @@ struct elf_internal_phdr {
 };
 
 typedef struct elf_internal_phdr Elf_Internal_Phdr;
-#define elf32_internal_phdr elf_internal_phdr
-#define Elf32_Internal_Phdr Elf_Internal_Phdr
-#define elf64_internal_phdr elf_internal_phdr
-#define Elf64_Internal_Phdr Elf_Internal_Phdr
 
 /* Section header */
 
@@ -101,11 +92,6 @@ typedef struct elf_internal_shdr {
   unsigned char *contents;             /* Section contents.  */
 } Elf_Internal_Shdr;
 
-#define elf32_internal_shdr elf_internal_shdr
-#define Elf32_Internal_Shdr Elf_Internal_Shdr
-#define elf64_internal_shdr elf_internal_shdr
-#define Elf64_Internal_Shdr Elf_Internal_Shdr
-
 /* Symbol table entry */
 
 struct elf_internal_sym {
@@ -119,11 +105,6 @@ struct elf_internal_sym {
 
 typedef struct elf_internal_sym Elf_Internal_Sym;
 
-#define elf32_internal_sym elf_internal_sym
-#define elf64_internal_sym elf_internal_sym
-#define Elf32_Internal_Sym Elf_Internal_Sym
-#define Elf64_Internal_Sym Elf_Internal_Sym
-
 /* Note segments */
 
 typedef struct elf_internal_note {
@@ -134,33 +115,15 @@ typedef struct elf_internal_note {
   char *       descdata;               /* Start of the desc data */
   bfd_vma      descpos;                /* File offset of the descdata */
 } Elf_Internal_Note;
-#define Elf32_Internal_Note    Elf_Internal_Note
-#define elf32_internal_note    elf_internal_note
 
 /* Relocation Entries */
 
-typedef struct elf_internal_rel {
-  bfd_vma      r_offset;       /* Location at which to apply the action */
-  /* This needs to support 64-bit values in elf64.  */
-  bfd_vma      r_info;         /* index and type of relocation */
-} Elf_Internal_Rel;
-
-#define elf32_internal_rel elf_internal_rel
-#define Elf32_Internal_Rel Elf_Internal_Rel
-#define elf64_internal_rel elf_internal_rel
-#define Elf64_Internal_Rel Elf_Internal_Rel
-
 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;
 
-#define elf32_internal_rela elf_internal_rela
-#define elf64_internal_rela elf_internal_rela
-#define Elf32_Internal_Rela Elf_Internal_Rela
-#define Elf64_Internal_Rela Elf_Internal_Rela
-
 /* dynamic section structure */
 
 typedef struct elf_internal_dyn {
@@ -173,11 +136,6 @@ typedef struct elf_internal_dyn {
   } d_un;
 } Elf_Internal_Dyn;
 
-#define elf32_internal_dyn elf_internal_dyn
-#define elf64_internal_dyn elf_internal_dyn
-#define Elf32_Internal_Dyn Elf_Internal_Dyn
-#define Elf64_Internal_Dyn Elf_Internal_Dyn
-
 /* This structure appears in a SHT_GNU_verdef section.  */
 
 typedef struct elf_internal_verdef {
@@ -257,30 +215,6 @@ typedef struct
 } Elf_Internal_Syminfo;
 
 
-#define elf32_internal_verdef elf_internal_verdef
-#define elf64_internal_verdef elf_internal_verdef
-#define elf32_internal_verdaux elf_internal_verdaux
-#define elf64_internal_verdaux elf_internal_verdaux
-#define elf32_internal_verneed elf_internal_verneed
-#define elf64_internal_verneed elf_internal_verneed
-#define elf32_internal_vernaux elf_internal_vernaux
-#define elf64_internal_vernaux elf_internal_vernaux
-#define elf32_internal_versym elf_internal_versym
-#define elf64_internal_versym elf_internal_versym
-
-#define Elf32_Internal_Verdef Elf_Internal_Verdef
-#define Elf64_Internal_Verdef Elf_Internal_Verdef
-#define Elf32_Internal_Verdaux Elf_Internal_Verdaux
-#define Elf64_Internal_Verdaux Elf_Internal_Verdaux
-#define Elf32_Internal_Verneed Elf_Internal_Verneed
-#define Elf64_Internal_Verneed Elf_Internal_Verneed
-#define Elf32_Internal_Vernaux Elf_Internal_Vernaux
-#define Elf64_Internal_Vernaux Elf_Internal_Vernaux
-#define Elf32_Internal_Versym Elf_Internal_Versym
-#define Elf64_Internal_Versym Elf_Internal_Versym
-#define Elf32_Internal_Syminfo Elf_Internal_Syminfo
-#define Elf64_Internal_Syminfo Elf_Internal_Syminfo
-
 /* This structure is used to describe how sections should be assigned
    to program segments.  */
 
index c4ef37d979ec6ae5bcb1264bfbc6b5ef0914f80e..1902f7fa678cbaecb6f04d1ae5d6d4a750fbd83a 100644 (file)
@@ -64,6 +64,24 @@ END_RELOC_NUMBERS (R_M68HC11_max)
 /* 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))
+
 \f
 /* Special values for the st_other field in the symbol table.  These
    are used for 68HC12 to identify far functions (must be called with
index e3be26b0f79b46c75018bac3aa606622b9f311b6..98536e2465c72db98b495a373566db93c10f1f40 100644 (file)
@@ -1,5 +1,5 @@
 /* MMIX support for BFD.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -157,11 +157,11 @@ END_RELOC_NUMBERS (R_MMIX_max)
 #define MMO_SEC_DEBUGGING 0x10000
 
 #ifdef BFD_ARCH_SIZE
-extern boolean _bfd_mmix_prepare_linker_allocated_gregs
+extern bfd_boolean _bfd_mmix_prepare_linker_allocated_gregs
  PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_mmix_finalize_linker_allocated_gregs
+extern bfd_boolean _bfd_mmix_finalize_linker_allocated_gregs
  PARAMS ((bfd *, struct bfd_link_info *));
-extern boolean _bfd_mmix_check_all_relocs
+extern bfd_boolean _bfd_mmix_check_all_relocs
  PARAMS ((bfd *, struct bfd_link_info *));
 #endif
 
index ef964d685e8e6786337381581002637b6d6df5b3..68a2c542e66731707cb6f20b353f363a301bf2a8 100644 (file)
@@ -106,7 +106,7 @@ extern enum sh64_elf_cr_type sh64_get_contents_type
 
 /* Simpler interface.
    FIXME: This seems redundant now that we export the interface above.  */
-extern boolean sh64_address_is_shmedia PARAMS ((asection *, bfd_vma));
+extern bfd_boolean sh64_address_is_shmedia PARAMS ((asection *, bfd_vma));
 
 extern int _bfd_sh64_crange_qsort_cmpb PARAMS ((const void *, const void *));
 extern int _bfd_sh64_crange_qsort_cmpl PARAMS ((const void *, const void *));
index ee6c551a059d346cb54fb84409ed054a9dc7514b..6b1e98f57743842d6d7995dd7b376f9b17d60e13 100644 (file)
@@ -1,5 +1,5 @@
 /* XSTORMY16 ELF support for BFD.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -37,6 +37,10 @@ START_RELOC_NUMBERS (elf_xstormy16_reloc_type)
   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)
index 983fd96e5ae07a657f10846cb8e2e9d43e6e1092..f9916c58c7382ec58dfd76601529cad73ea621e2 100644 (file)
@@ -74,7 +74,7 @@ extern char **dupargv PARAMS ((char **)) ATTRIBUTE_MALLOC;
    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 (__CYGWIN__) || defined (__CYGWIN32__) || defined (HAVE_DECL_BASENAME)
+#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (HAVE_DECL_BASENAME)
 extern char *basename PARAMS ((const char *));
 #else
 extern char *basename ();
@@ -145,6 +145,12 @@ extern char * getpwd PARAMS ((void));
 
 extern long get_run_time PARAMS ((void));
 
+/* Generate a relocated path to some installation directory.  Allocates
+   return value using malloc.  */
+
+extern char *make_relative_prefix PARAMS ((const char *, const char *,
+                                          const char *));
+
 /* Choose a temporary directory to use for scratch files.  */
 
 extern char *choose_temp_base PARAMS ((void)) ATTRIBUTE_MALLOC;
index af5707e8e88f69711196b7b31f96ab55ea75568b..5aa92e9ab234c85cc02547fd57cddb341e081eb6 100644 (file)
@@ -1,3 +1,70 @@
+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.
index b137840156c0ea3a4659606dc436c5c17e294895..3da68ec80f31ae101f4230d18c4dde385497ce08 100644 (file)
@@ -98,7 +98,7 @@ struct arc_opcode {
 
 /* this is an "insert at front" linked list per Metaware spec
    that new definitions override older ones.  */
-struct arc_opcode *arc_ext_opcodes;
+extern struct arc_opcode *arc_ext_opcodes;
 
 struct arc_operand_value {
   char *name;          /* eg: "eq"  */
@@ -117,7 +117,9 @@ struct arc_operand_value {
 struct arc_ext_operand_value {
   struct arc_ext_operand_value *next;
   struct arc_operand_value operand;
-} *arc_ext_operands;
+};
+
+extern struct arc_ext_operand_value *arc_ext_operands;
 
 struct arc_operand {
 /* One of the insn format chars.  */
index 89477985e5d92b92a0e70c02241306a4f2cc15f3..76a0af47b5d91108bad34748616e3648744b384d 100644 (file)
@@ -1,6 +1,7 @@
 /* Header file for targets using CGEN: Cpu tools GENerator.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
 
 This file is part of GDB, the GNU debugger, and the GNU Binutils.
 
@@ -620,8 +621,9 @@ typedef struct cgen_maybe_multi_ifield
                n: indexed by array of more cgen_maybe_multi_ifields.  */
   union
   {
-    struct cgen_maybe_multi_ifield * multi;
-    struct cgen_ifld * leaf;
+    const PTR p;
+    const struct cgen_maybe_multi_ifield * multi;
+    const struct cgen_ifld * leaf;
   } val;
 }
 CGEN_MAYBE_MULTI_IFLD;
index 18d17c537dcbddc9f157abae289f1305b4d9e278..d5404c2c2ff6f91133cdd2e56168f292ff1e05fe 100644 (file)
@@ -151,20 +151,16 @@ struct h8_opcode
   char *name;
   struct arg args;
   struct code data;
-  int length;
-  int noperands;
-  int idx;
-  int size;
 };
 
 #ifdef DEFINE_TABLE
 
 #define BITOP(code, imm, name, op00, op01,op10,op11, op20,op21,op30)\
-{ code, 1, 2, name,    {{imm,RD8,E}},  {{op00, op01, imm, RD8, E, 0, 0, 0, 0}}, 0, 0, 0, 0},\
-{ code, 1, 6, name,    {{imm,RDIND,E}},{{op10, op11, B30|RDIND, 0, op00,op01, imm, 0, E}}, 0, 0, 0, 0},\
-{ code, 1, 6, name,    {{imm,ABS8DST,E}},{{op20, op21, ABS8DST, IGNORE, op00,op01, imm, 0,E}}, 0, 0, 0, 0}\
-,{ code, 0, 6, name,   {{imm,ABS16DST,E}},{{0x6,0xa,0x1,op30,ABS16DST,IGNORE,IGNORE,IGNORE, op00,op01, imm, 0,E}}, 0, 0, 0, 0},\
-{ code, 0, 6, name,    {{imm,ABS32DST,E}},{{0x6,0xa,0x3,op30,ABS32DST,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE, op00,op01, imm, 0,E}}, 0, 0, 0, 0}
+{ code, 1, 2, name,    {{imm,RD8,E}},  {{op00, op01, imm, RD8, E, 0, 0, 0, 0}}},\
+{ code, 1, 6, name,    {{imm,RDIND,E}},{{op10, op11, B30|RDIND, 0, op00,op01, imm, 0, E}}},\
+{ code, 1, 6, name,    {{imm,ABS8DST,E}},{{op20, op21, ABS8DST, IGNORE, op00,op01, imm, 0,E}}}\
+,{ code, 0, 6, name,   {{imm,ABS16DST,E}},{{0x6,0xa,0x1,op30,ABS16DST,IGNORE,IGNORE,IGNORE, op00,op01, imm, 0,E}}},\
+{ code, 0, 6, name,    {{imm,ABS32DST,E}},{{0x6,0xa,0x3,op30,ABS32DST,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE, op00,op01, imm, 0,E}}}
 
 
 #define EBITOP(code, imm, name, op00, op01,op10,op11, op20,op21,op30)\
@@ -172,33 +168,33 @@ struct h8_opcode
    BITOP(code,RS8,  name, op00, op01, op10,op11, op20,op21,op30)
 
 #define WTWOP(code,name, op1, op2) \
-{ code, 1, 2, name, {{RS16, RD16, E}}, {{ op1, op2, RS16, RD16, E, 0, 0, 0, 0}}, 0, 0, 0, 0}
+{ code, 1, 2, name, {{RS16, RD16, E}}, {{ op1, op2, RS16, RD16, E, 0, 0, 0, 0}}}
 
 #define BRANCH(code, name, op) \
-{ code, 1, 4,name,{{DISP8,E,0}}, {{ 0x4, op, DISP8, IGNORE, E, 0, 0, 0, 0}}, 0, 0, 0, 0}, \
-{ code, 0, 6,name,{{DISP16,E,0}}, {{ 0x5, 0x8, op, 0x0, DISP16, IGNORE, IGNORE, IGNORE, E,0}}, 0, 0, 0, 0
+{ code, 1, 4,name,{{DISP8,E,0}}, {{ 0x4, op, DISP8, IGNORE, E, 0, 0, 0, 0}}}, \
+{ code, 0, 6,name,{{DISP16,E,0}}, {{ 0x5, 0x8, op, 0x0, DISP16, IGNORE, IGNORE, IGNORE, E,0}}} 
 
 #define SOP(code, x,name) \
 {code, 1, x,  name 
 
 #define NEW_SOP(code, in,x,name) \
 {code, in, x,  name 
-#define EOP  ,0,0,0,0 }
+#define EOP  }
 
 #define TWOOP(code, name, op1, op2,op3) \
-{ code,1, 2,name, {{IMM8, RD8, E}},    {{ op1, RD8, IMM8, IGNORE, E, 0, 0, 0, 0}}, 0, 0, 0, 0},\
-{ code, 1, 2,name, {{RS8, RD8, E}},    {{ op2, op3, RS8, RD8, E, 0, 0, 0, 0}}, 0, 0, 0, 0
+{ code,1, 2,name, {{IMM8, RD8, E}},    {{ op1, RD8, IMM8, IGNORE, E, 0, 0, 0, 0}}},\
+{ code, 1, 2,name, {{RS8, RD8, E}},    {{ op2, op3, RS8, RD8, E, 0, 0, 0, 0}}} 
 
 #define UNOP(code,name, op1, op2) \
-{ code, 1, 2, name, {{OR8, E, 0}}, {{ op1, op2, 0, OR8, E, 0, 0, 0, 0}}, 0, 0, 0, 0}
+{ code, 1, 2, name, {{OR8, E, 0}}, {{ op1, op2, 0, OR8, E, 0, 0, 0, 0}}}
 
 #define UNOP3(code, name, op1, op2, op3) \
-{ O(code,SB), 1, 2, name, {{OR8,  E, 0}}, {{op1, op2, op3+0, OR8,  E, 0, 0, 0, 0}}, 0, 0, 0, 0}, \
-{ O(code,SW), 0, 2, name, {{OR16, E, 0}}, {{op1, op2, op3+1, OR16, E, 0, 0, 0, 0}}, 0, 0, 0, 0}, \
-{ O(code,SL), 0, 2, name, {{OR32, E, 0}}, {{op1, op2, op3+3, OR32|B30, E, 0, 0, 0, 0}}, 0, 0, 0, 0} \
-,{ O(code,SB), 1, 2, name, {{IMM, OR8 | SRC_IN_DST,  E}}, {{op1, op2, op3+4, OR8 | SRC_IN_DST,  E, 0, 0, 0, 0}}, 0, 0, 0, 0}, \
-{ O(code,SW), 0, 2, name, {{IMM, OR16 | SRC_IN_DST, E}}, {{op1, op2, op3+5, OR16 | SRC_IN_DST, E, 0, 0, 0, 0}}, 0, 0, 0, 0}, \
-{ O(code,SL), 0, 2, name, {{IMM, OR32 | SRC_IN_DST, E}}, {{op1, op2, op3+7, OR32 | SRC_IN_DST|B30 , E, 0, 0, 0, 0}}, 0, 0, 0, 0}
+{ O(code,SB), 1, 2, name, {{OR8,  E, 0}}, {{op1, op2, op3+0, OR8,  E, 0, 0, 0, 0}}}, \
+{ O(code,SW), 0, 2, name, {{OR16, E, 0}}, {{op1, op2, op3+1, OR16, E, 0, 0, 0, 0}}}, \
+{ O(code,SL), 0, 2, name, {{OR32, E, 0}}, {{op1, op2, op3+3, OR32|B30, E, 0, 0, 0, 0}}} \
+,{ O(code,SB), 1, 2, name, {{IMM, OR8 | SRC_IN_DST,  E}}, {{op1, op2, op3+4, OR8 | SRC_IN_DST,  E, 0, 0, 0, 0}}}, \
+{ O(code,SW), 0, 2, name, {{IMM, OR16 | SRC_IN_DST, E}}, {{op1, op2, op3+5, OR16 | SRC_IN_DST, E, 0, 0, 0, 0}}}, \
+{ O(code,SL), 0, 2, name, {{IMM, OR32 | SRC_IN_DST, E}}, {{op1, op2, op3+7, OR32 | SRC_IN_DST|B30 , E, 0, 0, 0, 0}}}
 
 
 #define IMM32LIST IMM32,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE
@@ -314,7 +310,7 @@ struct h8_opcode
 /* 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[] = 
+const struct h8_opcode h8_opcodes[] = 
 {
   TWOOP(O(O_ADD,SB),"add.b", 0x8, 0x0,0x8),
   
@@ -594,8 +590,8 @@ struct h8_opcode h8_opcodes[] =
   NEW_SOP(O(O_STMAC,SL),1,2,"stmac"),{{MACREG,RD32,E}},{{0x0,0x2,MACREG,RD32,E}} EOP,
   NEW_SOP(O(O_LDM,SL),0,6,"ldm.l"),{{RSINC, RS32, E}},{{ 0x0,0x1,IGNORE,0x0,0x6,0xD,0x7,IGNORE,E}}EOP,
   NEW_SOP(O(O_STM,SL),0,6,"stm.l"),{{RS32, RDDEC, E}},{{0x0,0x1,IGNORE,0x0,0x6,0xD,0xF,IGNORE,E}}EOP,
-  {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}}, 0, 0, 0, 0}
+  {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 struct h8_opcode h8_opcodes[];
+extern const struct h8_opcode h8_opcodes[];
 #endif
index e90709142719cb41aabda9e66d45776387ec55ab..471161788ad73b463997d226e974b0fa3b8f460b 100644 (file)
@@ -1,6 +1,6 @@
 /* Table of opcodes for the PA-RISC.
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
-   2001
+   2001, 2002
    Free Software Foundation, Inc.
 
    Contributed by the Center for Software Science at the
@@ -271,10 +271,12 @@ Float registers for fmpyadd and fmpysub:
 */
 
 
+#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:
 
index 9f10cd86b8997dba7570b5e4a72d93be405357fc..2d6ea19abea8ca63998f0f24eff622caf5748f73 100644 (file)
@@ -96,7 +96,7 @@ Kinds of operands:
  
    The order of opcodes does not affect the disassembler.  */
 
-static struct i860_opcode i860_opcodes[] =
+static const struct i860_opcode i860_opcodes[] =
 {
 /* REG-Format Instructions.  */
 { "ld.c",      0x30000000, 0xcc000000, "c,d", 0 },     /* ld.c csrc2,idest */
index d4e6d108137fca3d8540f16ed687638139fe7cf3..0d33fc61b2c7c67e03d6230e67b233f044e7ebdc 100644 (file)
@@ -1,7 +1,6 @@
 /* ia64.h -- Header file for ia64 opcode table
-   Copyright (C) 1998, 1999, 2002 David Mosberger-Tang <davidm@hpl.hp.com>
-
-   See the file HP-COPYRIGHT for additional information.  */
+   Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
+       Contributed by David Mosberger-Tang <davidm@hpl.hp.com> */
 
 #ifndef opcode_ia64_h
 #define opcode_ia64_h
@@ -39,13 +38,14 @@ enum ia64_unit
   };
 
 /* Changes to this enumeration must be propagated to the operand table in
-   bfd/cpu-ia64-opc.c 
- */ 
+   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 */
@@ -133,6 +133,7 @@ enum ia64_opnd
     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!) */
   };
@@ -287,7 +288,7 @@ struct ia64_opcode
     /* Used by ia64_find_next_opcode (). */
     short ent_index;
 
-    /* Opcode dependencies. */ 
+    /* Opcode dependencies. */
     const struct ia64_opcode_dependency *dependencies;
   };
 
index 3dd5b733d84519b08f509299c2e858f274a30d12..6a163bbe934d18412895aed4934cda3c060f474d 100644 (file)
@@ -439,496 +439,12 @@ typedef struct INSTRUCTAB {
   char          *mnemonic;
   OPSPEC        op1,op2,op3;
   struct SIM_FLAGS flgs;
-  struct INSTRUCTAB    *next;
 } INSTAB;
 \f
 
 #define NO_OPERAND {0,0,0}
 
-/* Opcode     Mnemonic       Op 1 Spec     Op 2 Spec    Op 3 Spec         Simflags             Next  */
-
-static INSTAB  instructions[] = {
-  {0xf400c800,"jsr         ",{0,5,REG}   ,NO_OPERAND      ,NO_OPERAND   , {2,2,NA,JSR ,          0,0,1,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xf400cc00,"jsr.n       ",{0,5,REG}   ,NO_OPERAND      ,NO_OPERAND   , {1,1,NA,JSR ,          0,0,1,0,0,0,1,1,0,0,0,0}, NULL },
-  {0xf400c000,"jmp         ",{0,5,REG}   ,NO_OPERAND      ,NO_OPERAND   , {2,2,NA,JMP ,          0,0,1,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xf400c400,"jmp.n       ",{0,5,REG}   ,NO_OPERAND      ,NO_OPERAND   , {1,1,NA,JMP ,          0,0,1,0,0,0,1,1,0,0,0,0}, NULL },
-  {0xc8000000,"bsr         ",{0,26,PCREL},NO_OPERAND      ,NO_OPERAND   , {2,2,NA,BSR ,     i26bit,0,0,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xcc000000,"bsr.n       ",{0,26,PCREL},NO_OPERAND      ,NO_OPERAND   , {1,1,NA,BSR ,     i26bit,0,0,0,0,0,1,1,0,0,0,0}, NULL },
-  {0xc0000000,"br          ",{0,26,PCREL},NO_OPERAND      ,NO_OPERAND   , {2,2,NA,BR  ,     i26bit,0,0,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xc4000000,"br.n        ",{0,26,PCREL},NO_OPERAND      ,NO_OPERAND   , {1,1,NA,BR  ,     i26bit,0,0,0,0,0,1,1,0,0,0,0}, NULL },
-  {0xd0000000,"bb0         ",{21,5,HEX}  ,{16,5,REG}   ,{0,16,PCREL},{2,2,NA,BB0,     i16bit,0,1,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xd4000000,"bb0.n       ",{21,5,HEX}  ,{16,5,REG}   ,{0,16,PCREL},{1,1,NA,BB0,     i16bit,0,1,0,0,0,1,1,0,0,0,0}, NULL },
-  {0xd8000000,"bb1         ",{21,5,HEX},{16,5,REG}     ,{0,16,PCREL},{2,2,NA,BB1,     i16bit,0,1,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xdc000000,"bb1.n       ",{21,5,HEX},{16,5,REG}     ,{0,16,PCREL},{1,1,NA,BB1,     i16bit,0,1,0,0,0,1,1,0,0,0,0}, NULL },
-  {0xf000d000,"tb0         ",{21,5,HEX}  ,{16,5,REG}   ,{0,10,HEX}, {2,2,NA,TB0 ,     i10bit,0,1,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xf000d800,"tb1         ",{21,5,HEX}  ,{16,5,REG}   ,{0,10,HEX}, {2,2,NA,TB1 ,     i10bit,0,1,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xe8000000,"bcnd        ",{21,5,CONDMASK},{16,5,REG},{0,16,PCREL},{2,2,NA,BCND,    i16bit,0,1,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xec000000,"bcnd.n      ",{21,5,CONDMASK},{16,5,REG},{0,16,PCREL},{1,1,NA,BCND,    i16bit,0,1,0,0,0,1,1,0,0,0,0}, NULL },
-  {0xf000e800,"tcnd        ",{21,5,CONDMASK},{16,5,REG},{0,10,HEX}, {2,2,NA,TCND,     i10bit,0,1,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xf8000000,"tbnd        ",{16,5,REG}  ,{0,16,HEX}   ,NO_OPERAND   , {2,2,NA,TBND,     i10bit,1,0,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xf400f800,"tbnd        ",{16,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {2,2,NA,TBND,          0,1,1,0,0,0,0,1,0,0,0,0}, NULL },
-  {0xf400fc00,"rte         ",NO_OPERAND     ,NO_OPERAND      ,NO_OPERAND   , {2,2,NA,RTE ,          0,0,0,0,0,0,0,1,0,0,0,0}, NULL },
-  {0x1c000000,"ld.b        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDB    ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4001c00,"ld.b        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDB     ,    0,1,1,1,0,0,0,1,0,0,0,0}, NULL },
-  {0x0c000000,"ld.bu       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDBU,   i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4000c00,"ld.bu       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDBU        ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL },
-  {0x18000000,"ld.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDH    ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4001800,"ld.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDH         ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4001a00,"ld.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LDH         ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL },
-  {0x08000000,"ld.hu       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDHU,   i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4000800,"ld.hu       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDHU        ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4000a00,"ld.hu       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LDHU        ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL },
-  {0x14000000,"ld          ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LD     ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4001400,"ld          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4001600,"ld          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL },
-  {0x10000000,"ld.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDD    ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4001000,"ld.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDD         ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4001200,"ld.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LDD         ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL },
-  {0xf4001500,"ld.usr      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4001700,"ld.usr      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL },
-  {0x2c000000,"st.b        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,STB      ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4002c00,"st.b        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,STB           ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL },
-  {0x28000000,"st.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,STH      ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4002800,"st.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,STH           ,0,1,1,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4002a00,"st.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,STH           ,0,1,1,1,0,0,0,1,0,0,0,1}, NULL },
-  {0x24000000,"st          ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,ST       ,i16bit,1,0,1,0,0,0,1,0,0,0,0}, NULL },
-  {0xf4002400,"st          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0xf4002600,"st          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL },
-  {0x20000000,"st.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,STD      ,i16bit,0,1,0,0,0,0,1,0,0,0,0}   ,NULL },
-  {0xf4002000,"st.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,STD           ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0xf4002200,"st.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,STD           ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL },
-  {0xf4002500,"st.usr      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0xf4002700,"st.usr      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL },
-/*  m88100 only:
-  {0x00000000,"xmem.bu     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,XMEMBU ,i16bit,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
- */
-  {0xf4000000,"xmem.bu     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-/*  m88100 only:
-  {0x04000000,"xmem        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,XMEM   ,i16bit,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
- */
-  {0xf4000400,"xmem        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0xf4000600,"xmem        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL },
-  {0xf4000500,"xmem.usr    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0xf4000700,"xmem.usr    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,1}   ,NULL },
-/* m88100 only:
-  {0xf4003e00,"lda.b       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAH,        0,1,1,1,0,0,0,0,0,0,0,1}   ,NULL },
- */
-  {0xf4003e00,"lda.x       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAH,        0,1,1,1,0,0,0,0,0,0,0,1}   ,NULL },
-  {0xf4003a00,"lda.h       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAH,        0,1,1,1,0,0,0,0,0,0,0,1}   ,NULL },
-  {0xf4003600,"lda         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDA ,        0,1,1,1,0,0,0,0,0,0,0,1}   ,NULL },
-  {0xf4003200,"lda.d       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAD,        0,1,1,1,0,0,0,0,0,0,0,1}   ,NULL },
-
-  {0x80004000,"ldcr        ",{21,5,REG}  ,{5,6,CRREG}  ,NO_OPERAND    ,{1,1,PINT,LDCR,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x80008000,"stcr        ",{16,5,REG}  ,{5,6,CRREG}  ,NO_OPERAND    ,{1,1,PINT,STCR,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x8000c000,"xcr         ",{21,5,REG}  ,{16,5,REG}   ,{5,6,CRREG},{1,1,PINT,XCR,         0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-
-  {0xf4006000,"addu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4006200,"addu.ci     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4006100,"addu.co     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4006300,"addu.cio    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4006400,"subu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4006600,"subu.ci     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4006500,"subu.co     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4006700,"subu.cio    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4006800,"divu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {32,32,PINT,DIVU,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4006900,"divu.d      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, NULL },
-  {0xf4006e00,"muls        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, NULL },
-  {0xf4006c00,"mulu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,4,PINT,MUL,      0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007000,"add         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007200,"add.ci      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007100,"add.co      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007300,"add.cio     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007400,"sub         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007600,"sub.ci      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007500,"sub.co      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007700,"sub.cio     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007800,"divs        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {32,32,PINT,DIV ,      0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4007c00,"cmp         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,CMP,         0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-
-  {0x60000000,"addu        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,ADDU,   i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x64000000,"subu        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,SUBU,   i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-
-  {0x68000000,"divu        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {32,32,PINT,DIVU, i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x6c000000,"mulu        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {4,1,PINT,MUL,    i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x70000000,"add         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,ADD,    i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x74000000,"sub         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,SUB,    i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x78000000,"divs        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {32,32,PINT,DIV,  i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x7c000000,"cmp         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,CMP,    i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-
-  {0xf4004000,"and         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,AND_        ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4004400,"and.c       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,AND_        ,0,1,1,1,1,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4005800,"or          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,OR          ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4005c00,"or.c        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,OR          ,0,1,1,1,1,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4005000,"xor         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,XOR         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4005400,"xor.c       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,XOR         ,0,1,1,1,1,0,0,0,0,0,0,0}   ,NULL },
-  {0x40000000,"and         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,AND_   ,i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x44000000,"and.u       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,AND_   ,i16bit,1,0,1,0,1,0,0,0,0,0,0}   ,NULL },
-  {0x58000000,"or          ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,OR     ,i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x5c000000,"or.u        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,OR     ,i16bit,1,0,1,0,1,0,0,0,0,0,0}   ,NULL },
-  {0x50000000,"xor         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,XOR    ,i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x54000000,"xor.u       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,XOR    ,i16bit,1,0,1,0,1,0,0,0,0,0,0}   ,NULL },
-  {0x48000000,"mask        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,MASK   ,i16bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0x4c000000,"mask.u      ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,MASK   ,i16bit,1,0,1,0,1,0,0,0,0,0,0}   ,NULL },
-  {0xf400ec00,"ff0         ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {1,1,PINT,FF0         ,0,0,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf400e800,"ff1         ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {1,1,PINT,FF1         ,0,0,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf0008000,"clr         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,CLR    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf0008800,"set         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,SET    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf0009000,"ext         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,EXT    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf0009800,"extu        ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,EXTU   ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf000a000,"mak         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,MAK    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf000a800,"rot         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,ROT    ,i10bit,1,0,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4008000,"clr         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,CLR         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4008800,"set         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SET         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4009000,"ext         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,EXT         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf4009800,"extu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,EXTU        ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf400a000,"mak         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,MAK         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-  {0xf400a800,"rot         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ROT         ,0,1,1,1,0,0,0,0,0,0,0,0}   ,NULL },
-
-  {0x84002800,"fadd.sss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {5,1,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84002880,"fadd.ssd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,0,1,0}   ,NULL },
-  {0x84002a00,"fadd.sds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL },
-  {0x84002a80,"fadd.sdd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,1,1,0}   ,NULL },
-  {0x84002820,"fadd.dss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-  {0x840028a0,"fadd.dsd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,0,1,0}   ,NULL },
-  {0x84002a20,"fadd.dds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL },
-  {0x84002aa0,"fadd.ddd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,1,1,0}   ,NULL },
-  {0x84003000,"fsub.sss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {5,1,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84003080,"fsub.ssd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,0,1,0}   ,NULL },
-  {0x84003200,"fsub.sds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL },
-  {0x84003280,"fsub.sdd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,1,1,0}   ,NULL },
-  {0x84003020,"fsub.dss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-  {0x840030a0,"fsub.dsd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,0,1,0}   ,NULL },
-  {0x84003220,"fsub.dds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL },
-  {0x840032a0,"fsub.ddd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,1,1,0}   ,NULL },
-  {0x84000000,"fmul.sss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84000080,"fmul.ssd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,0,1,0}   ,NULL },
-  {0x84000200,"fmul.sds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL },
-  {0x84000280,"fmul.sdd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,1,1,0}   ,NULL },
-  {0x84000020,"fmul.dss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-  {0x840000a0,"fmul.dsd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,0,1,0}   ,NULL },
-  {0x84000220,"fmul.dds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL },
-  {0x840002a0,"fmul.ddd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,1,1,0}   ,NULL },
-  {0x84007000,"fdiv.sss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {30,30,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84007080,"fdiv.ssd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,0,1,0}   ,NULL },
-  {0x84007200,"fdiv.sds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL },
-  {0x84007280,"fdiv.sdd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,1,1,0}   ,NULL },
-  {0x84007020,"fdiv.dss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-  {0x840070a0,"fdiv.dsd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,0,1,0}   ,NULL },
-  {0x84007220,"fdiv.dds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL },
-  {0x840072a0,"fdiv.ddd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,1,1,0}   ,NULL },
-  {0x84007800,"fsqrt.ss    ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84007820,"fsqrt.sd    ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84007880,"fsqrt.ds    ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x840078a0,"fsqrt.dd    ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-  {0x84003800,"fcmp.ss     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {5,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84003880,"fcmp.sd     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,0,1,0,0}   ,NULL },
-  {0x84003a00,"fcmp.ds     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-  {0x84003a80,"fcmp.dd     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,1,1,0,0}   ,NULL },
-  {0x84002000,"flt.s       ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84002020,"flt.d       ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-  {0x84004800,"int.s       ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,INT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84004880,"int.d       ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,INT         ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-  {0x84005000,"nint.s      ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,INT         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84005080,"nint.d      ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,INT         ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-  {0x84005800,"trnc.s      ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,TRNC        ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x84005880,"trnc.d      ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,TRNC        ,0,0,1,1,0,0,0,1,1,0,0,0}   ,NULL },
-
-  {0x80004800,"fldcr       ",{21,5,REG}  ,{5,6,FCRREG} ,NO_OPERAND   , {1,1,PFLT,FLDC        ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x80008800,"fstcr       ",{16,5,REG}  ,{5,6,FCRREG} ,NO_OPERAND   , {1,1,PFLT,FSTC        ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-  {0x8000c800,"fxcr        ",{21,5,REG}  ,{16,5,REG}   ,{5,6,FCRREG} , {1,1,PFLT,FXC         ,0,0,1,1,0,0,0,1,0,0,0,0}   ,NULL },
-
-/* The following are new for the 88110.  */
-
-  {0x8400aaa0,"fadd.ddd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400aa80,"fadd.dds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400aac0,"fadd.ddx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400aa20,"fadd.dsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400aa00,"fadd.dss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400aa40,"fadd.dsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ab20,"fadd.dxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ab00,"fadd.dxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ab40,"fadd.dxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400a8a0,"fadd.sdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400a880,"fadd.sds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400a8c0,"fadd.sdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400a820,"fadd.ssd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400a800,"fadd.sss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400a840,"fadd.ssx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400a920,"fadd.sxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400a900,"fadd.sxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400a940,"fadd.sxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400aca0,"fadd.xdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ac80,"fadd.xds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400acc0,"fadd.xdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ac20,"fadd.xsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ac00,"fadd.xss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ac40,"fadd.xsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ad20,"fadd.xxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ad00,"fadd.xxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ad40,"fadd.xxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400ba80,"fcmp.sdd    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ba00,"fcmp.sds    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400bb00,"fcmp.sdx    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b880,"fcmp.ssd    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b800,"fcmp.sss    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b900,"fcmp.ssx    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400bc80,"fcmp.sxd    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400bc00,"fcmp.sxs    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400bd00,"fcmp.sxx    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400baa0,"fcmpu.sdd   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400ba20,"fcmpu.sds   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400bb20,"fcmpu.sdx   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b8a0,"fcmpu.ssd   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b820,"fcmpu.sss   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b920,"fcmpu.ssx   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400bca0,"fcmpu.sxd   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400bc20,"fcmpu.sxs   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400bd20,"fcmpu.sxx   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x84000820,"fcvt.sd     ",{21,5,REG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84000880,"fcvt.ds     ",{21,5,REG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x84008880,"fcvt.ds     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x840088c0,"fcvt.dx     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008820,"fcvt.sd     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008840,"fcvt.sx     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008920,"fcvt.xd     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008900,"fcvt.xs     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400f2a0,"fdiv.ddd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f280,"fdiv.dds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f2c0,"fdiv.ddx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f220,"fdiv.dsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f200,"fdiv.dss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f240,"fdiv.dsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f320,"fdiv.dxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f300,"fdiv.dxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f340,"fdiv.dxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f0a0,"fdiv.sdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f080,"fdiv.sds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f0c0,"fdiv.sdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f020,"fdiv.ssd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f000,"fdiv.sss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f040,"fdiv.ssx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f120,"fdiv.sxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f100,"fdiv.sxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f140,"fdiv.sxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f4a0,"fdiv.xdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f480,"fdiv.xds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f4c0,"fdiv.xdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f420,"fdiv.xsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f400,"fdiv.xss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f440,"fdiv.xsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f520,"fdiv.xxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f500,"fdiv.xxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f540,"fdiv.xxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x84002220,"flt.ds      ",{21,5,XREG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84002200,"flt.ss      ",{21,5,XREG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84002240,"flt.xs      ",{21,5,XREG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x840082a0,"fmul.ddd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008280,"fmul.dds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x840082c0,"fmul.ddx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008220,"fmul.dsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008200,"fmul.dss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008240,"fmul.dsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008320,"fmul.dxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008300,"fmul.dxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008340,"fmul.dxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x840080a0,"fmul.sdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008080,"fmul.sds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x840080c0,"fmul.sdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008020,"fmul.ssd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008000,"fmul.sss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008040,"fmul.ssx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008120,"fmul.sxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008100,"fmul.sxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008140,"fmul.sxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x840084a0,"fmul.xdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008480,"fmul.xds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x840084c0,"fmul.xdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008420,"fmul.xsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008400,"fmul.xss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008440,"fmul.xsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008520,"fmul.xxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008500,"fmul.xxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84008540,"fmul.xxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400f8a0,"fsqrt.dd    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f880,"fsqrt.ds    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f8c0,"fsqrt.dx    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f820,"fsqrt.sd    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f800,"fsqrt.ss    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f840,"fsqrt.sx    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f920,"fsqrt.xd    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f900,"fsqrt.xs    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400f940,"fsqrt.xx    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400b2a0,"fsub.ddd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b280,"fsub.dds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b2c0,"fsub.ddx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b220,"fsub.dsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b200,"fsub.dss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b240,"fsub.dsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b320,"fsub.dxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b300,"fsub.dxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b340,"fsub.dxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b0a0,"fsub.sdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b080,"fsub.sds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b0c0,"fsub.sdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b020,"fsub.ssd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b000,"fsub.sss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b040,"fsub.ssx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b120,"fsub.sxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b100,"fsub.sxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b140,"fsub.sxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b4a0,"fsub.xdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b480,"fsub.xds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b4c0,"fsub.xdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b420,"fsub.xsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b400,"fsub.xss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b440,"fsub.xsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b520,"fsub.xxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b500,"fsub.xxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400b540,"fsub.xxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400fc00,"illop", {0,2,DEC}, NO_OPERAND, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400c800,"int.ss      ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400c880,"int.sd      ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400c900,"int.sx      ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x04000000,"ld          ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x00000000,"ld.d        ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x3c000000,"ld.x        ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0xf0001400,"ld          ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001000,"ld.d        ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001800,"ld.x        ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001500,"ld.usr      ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001100,"ld.d.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001900,"ld.x.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0xf0001600,"ld          ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001200,"ld.d        ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001a00,"ld.x        ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001700,"ld.usr      ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001300,"ld.d.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0001b00,"ld.x.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400c000,"mov.s       ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400c080,"mov.d       ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84004200,"mov.s       ", {21,5,XREG}, {0,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x84004280,"mov.d       ", {21,5,XREG}, {0,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400c300,"mov         ", {21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0xf4006d00,"mulu.d      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400d080,"nint.sd     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400d000,"nint.ss     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400d100,"nint.sx     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x88002020,"padd.b      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88002040,"padd.h      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88002060,"padd        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x880021e0,"padds.s     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880021a0,"padds.s.b   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880021c0,"padds.s.h   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880020e0,"padds.u     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880020a0,"padds.u.b   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880020c0,"padds.u.h   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88002160,"padds.us    ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88002120,"padds.us.b  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88002140,"padds.us.h  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x88003860,"pcmp        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x88000000,"pmul        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x88006260,"ppack.16    ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88006240,"ppack.16.h  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88006460,"ppack.32    ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88006420,"ppack.32.b  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88006440,"ppack.32.h  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88006160,"ppack.8     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x88007200,"prot        ", {21,5,REG}, {16,5,REG}, {5,6,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88007800,"prot        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x88003020,"psub.b      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88003040,"psub.h      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88003060,"psub        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x880031e0,"psubs.s     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880031a0,"psubs.s.b   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880031c0,"psubs.s.h   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880030e0,"psubs.u     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880030a0,"psubs.u.b   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x880030c0,"psubs.u.h   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88003160,"psubs.us    ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88003120,"psubs.us.b  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88003140,"psubs.us.h  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x88006800,"punpk.n     ", {21,5,REG}, {16,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x88006820,"punpk.b     ", {21,5,REG}, {16,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x34000000,"st          ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x30000000,"st.d        ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x38000000,"st.x        ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0xf4002c80,"st.b.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002880,"st.h.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002480,"st.wt       ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002080,"st.d.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002d80,"st.b.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002980,"st.h.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002580,"st.usr.wt   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002180,"st.d.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0xf0002400,"st          ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002000,"st.d        ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002100,"st.d.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002180,"st.d.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002080,"st.d.wt     ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002500,"st.usr      ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002580,"st.usr.wt   ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002480,"st.wt       ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002800,"st.x        ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002900,"st.x.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002980,"st.x.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002880,"st.x.wt     ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0xf4002f80,"st.b.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002e80,"st.b.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002380,"st.d.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002280,"st.d.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002b80,"st.h.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002a80,"st.h.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002780,"st.usr.wt   ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf4002680,"st.wt       ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0xf0002600,"st          ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002200,"st.d        ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002300,"st.d.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002380,"st.d.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002280,"st.d.wt     ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002700,"st.usr      ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002780,"st.usr.wt   ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002680,"st.wt       ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002a00,"st.x        ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002b00,"st.x.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002b80,"st.x.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0xf0002a80,"st.x.wt     ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-  {0x8400d880,"trnc.sd     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400d800,"trnc.ss     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-  {0x8400d900,"trnc.sx     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL },
-
-};
+extern const INSTAB  instructions[];
 
 /*
  * Local Variables:
index 6b3fc5ea1808781342ba914b4ad35002d557405b..68a0dbaa4bd0b9916b68ec72208b6db92d12b737 100644 (file)
@@ -1,5 +1,5 @@
 /* ns32k-opcode.h -- Opcode table for National Semi 32k processor
-   Copyright 1987, 1991, 1994 Free Software Foundation, Inc.
+   Copyright 1987, 1991, 1994, 2002 Free Software Foundation, Inc.
 
 This file is part of GAS, the GNU Assembler.
 
@@ -37,7 +37,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307
    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                    "
@@ -80,13 +80,13 @@ column      1       instructions
        6       size in bytes of immediate
 */
 struct ns32k_opcode {
-  char *name;
+  const char *name;
   unsigned char opcode_id_size; /* not used by the assembler */
   unsigned char opcode_size;
   unsigned long opcode_seed;
-  char *operands;
+  const char *operands;
   unsigned char im_size;       /* not used by dissassembler */
-  char *default_args;          /* default to those args when none given */
+  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 */
@@ -103,20 +103,20 @@ struct ns32k_opcode {
 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!) */
-  char *args;          /* how to compile said 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 */
 {
-  char *            name;      /* opcode name: lowercase string  [key]  */
-  struct not_wot    detail;    /* rest of opcode table          [datum] */
+  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
@@ -130,7 +130,7 @@ struct not                  /* ns32k opcode text */
    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.  */
 
@@ -482,10 +482,6 @@ static const struct ns32k_opcode ns32k_opcodes[]=
   { "scalbl",  14,24,  0x10fe, "1L2Z",         8,      "",     DEF_MODEC,DEF_MODEL     },
 };
 
-static const int numopcodes=sizeof(ns32k_opcodes)/sizeof(ns32k_opcodes[0]);
-
-static const struct ns32k_opcode *const endop = ns32k_opcodes+sizeof(ns32k_opcodes)/sizeof(ns32k_opcodes[0]);
-
 #define MAX_ARGS 4
 #define ARG_LEN 50
 
index b768f11bdb957095f1a86f26fc976e68dd4e3ee9..5779507be807fc72dbb564e0185107bc7ce4f455 100644 (file)
@@ -36,11 +36,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #define UNS(x)    (!!((x) & (1<<3)))
 
                   
-typedef struct 
+typedef struct pj_opc_info_t
 {
   short opcode;
   short opcode_next;
   char len;
   unsigned char arg[2];
-  const char *name;
+  union {
+    const char *name;
+    void (*func) PARAMS ((struct pj_opc_info_t *, char *));
+  } u;
 } pj_opc_info_t;
index 18df7f19c8aa733367c3fc0067f2be425ffa5d88..214965df3dcfeb16a8bd3ab8f01abe5e304d1641 100644 (file)
 
    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.  */
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
 
-
-/* FIXME:  Only allow floating point registers for floating point
-   instructions.  Use another field in the instruction table?
-   This field could also flag which instructions are valid for
-   which architectures...
-   e.g., OP_FP | OP_C40  or OP_C40_FP  */
-
-#define IS_CPU_C3X(v) ((v) == 30 || (v) == 31 || (v) == 32)
+#define IS_CPU_C3X(v) ((v) == 30 || (v) == 31 || (v) == 32 || (v) == 33)
 #define IS_CPU_C4X(v) ((v) ==  0 || (v) == 40 || (v) == 44)
 
 /* Define some bitfield extraction/insertion macros.  */
@@ -135,1123 +129,6 @@ static const c4x_register_t c4x_registers[] =
 
 const unsigned int c4x_num_registers = (((sizeof c4x_registers) / (sizeof c4x_registers[0])) - 1);
 
-/* Instruction template.  */
-struct c4x_inst
-{
-  char *        name;
-  unsigned long opcode;
-  unsigned long opmask;
-  char *        args;
-};
-
-typedef struct c4x_inst c4x_inst_t;
-
-/* B  condition             16--20
-   C  condition             23--27
-   ,  required arg follows
-   ;  optional arg follows
-   General addressing modes
-   *  indirect               0--15 
-   #  direct (for ldp only)  0--15 
-   @  direct                 0--15 
-   F  short float immediate  0--15 
-   Q  register               0--15 
-   R  register              16--20 
-   S  short int immediate    0--15 
-   D  src and dst same reg
-   Three operand addressing modes
-   E  register               0--7 
-   G  register               8--15 
-   I  indirect(short)        0--7 
-   J  indirect(short)        8--15 
-   R  register              16--20
-   W  short int (C4x)        0--7
-   C  indirect(short) (C4x)  0--7
-   O  indirect(short) (C4x)  8--15
-   Parallel instruction addressing modes
-   E  register               0--7 
-   G  register               8--15
-   I  indirect(short)        0--7 
-   J  indirect(short)        8--15 
-   K  register              19--21
-   L  register              22--24
-   M  register (R2,R3)      22--22
-   N  register (R0,R1)      23--23
-   Misc. addressing modes
-   A  address register      22--24
-   B  unsigned integer       0--23  (absolute on C3x, relative on C4x)
-   P  displacement (PC Rel)  0--15 
-   U  unsigned integer       0--15
-   V  vector                 0--4   (C4x 0--8) 
-   T  integer (C4x stik)    16--20
-   Y  address reg (C4x)     16--20   
-   X  expansion reg (C4x)    0--4
-   Z  expansion reg (C4x)   16--20.  */
-
-#define C4X_OPERANDS_MAX 7     /* Max number of operands for an inst.  */
-#define C4X_NAME_MAX 16                /* Max number of chars in parallel name.  */
-
-/* General (two) operand group.  */
-#define G_F_r "F,R"
-#define G_I_r "S,R"
-#define G_L_r "U,R"
-#define G_Q_r "*,R"
-#define G_T_r "@,R"
-#define G_r_r "Q;R"
-
-/* Three operand group (Type 1 with missing third operand).  */
-#define T_rr_ "E,G"
-#define T_rS_ "E,J"
-#define T_Sr_ "I,G"
-#define T_SS_ "I,J"
-
-/* Three operand group (Type 2 with missing third operand).  */
-#define T_Jr_ "W,G"            /* C4x only */
-#define T_rJ_ "G,W"            /* C4x only (commutative insns only) */
-#define T_Rr_ "C,G"            /* C4x only */
-#define T_rR_ "G,C"            /* C4x only (commutative insns only) */
-#define T_JR_ "W,O"            /* C4x only */
-#define T_RJ_ "O,W"            /* C4x only (commutative insns only) */
-#define T_RR_ "C,O"            /* C4x only */
-
-/* Three operand group (Type 1).  */
-#define T_rrr "E,G;R"
-#define T_Srr "E,J,R"
-#define T_rSr "I,G;R"
-#define T_SSr "I,J,R"
-
-/* Three operand group (Type 2).  */
-#define T_Jrr "W,G;R"          /* C4x only */
-#define T_rJr "G,W,R"          /* C4x only (commutative insns only) */
-#define T_Rrr "C,G;R"          /* C4x only */
-#define T_rRr "G,C,R"          /* C4x only (commutative insns only) */
-#define T_JRr "W,O,R"          /* C4x only */
-#define T_RJr "O,W,R"          /* C4x only (commutative insns only) */
-#define T_RRr "C,O,R"          /* C4x only */
-
-/* Parallel group (store || op).  */
-#define Q_rS_rSr "H,J|K,I,L"
-#define Q_rS_Sr  "H,J|I,L"
-#define Q_rS_Srr "H,J|I,K;L"
-
-/* Parallel group (op || store).  */
-#define P_rSr_rS "K,I,L|H,J"
-#define P_Srr_rS "I,K;L|H,J"
-#define P_rS_rS  "L,I|H,J"
-
-/* Parallel group (load || load).  */
-#define P_Sr_Sr "I,L|J,K"
-#define Q_Sr_Sr "J,K|I,L"
-
-/* Parallel group (store || store).  */
-#define P_Sr_rS "I,L|H,J"
-#define Q_rS_rS "H,J|L,I"
-
-/* Parallel group (multiply || add/sub).  */
-#define P_SSr_rrr "I,J,N|H,K;M"        /* 00 (User manual transposes I,J) */
-#define P_Srr_rSr "J,K;N|H,I,M"        /* 01 */
-#define P_rSr_rSr "K,J,N|H,I,M"        /* 01 */
-#define P_rrr_SSr "H,K;N|I,J,M"        /* 10 (User manual transposes H,K) */
-#define P_Srr_Srr "J,K;N|I,H;M"        /* 11 */
-#define P_rSr_Srr "K,J,N|I,H;M"        /* 11 */
-
-#define Q_rrr_SSr "H,K;M|I,J,N"        /* 00 (User manual transposes I,J) */
-#define Q_rSr_Srr "H,I,M|J,K;N"        /* 01 */
-#define Q_rSr_rSr "H,I,M|K,J,N"        /* 01 */
-#define Q_SSr_rrr "I,J,M|H,K;N"        /* 10 (User manual transposes H,K) */
-#define Q_Srr_Srr "I,H;M|J,K;N"        /* 11 */
-#define Q_Srr_rSr "I,H;M|K,J,N"        /* 11 */
-
-/* Define c3x opcodes for assembler and disassembler.  */
-static const c4x_inst_t c3x_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.
-
-     Put most common forms first to speed up assembler.
-     
-     FIXME:  Add all the other parallel/load forms, like absf1_stf2
-     Perhaps I should have used a few macros...especially with
-     all the bloat after adding the C4x opcodes...too late now!  */
-
-    /* Parallel instructions.  */
-  { "absf_stf",     0xc8000000, 0xfe000000, P_Sr_rS },
-  { "absi_sti",     0xca000000, 0xfe000000, P_Sr_rS },
-  { "addf_mpyf",    0x80000000, 0xff000000, Q_rrr_SSr },
-  { "addf_mpyf",    0x81000000, 0xff000000, Q_rSr_Srr },
-  { "addf_mpyf",    0x81000000, 0xff000000, Q_rSr_rSr },
-  { "addf_mpyf",    0x82000000, 0xff000000, Q_SSr_rrr },
-  { "addf_mpyf",    0x83000000, 0xff000000, Q_Srr_Srr },
-  { "addf_mpyf",    0x83000000, 0xff000000, Q_Srr_rSr },
-  { "addf3_mpyf3",  0x80000000, 0xff000000, Q_rrr_SSr },
-  { "addf3_mpyf3",  0x81000000, 0xff000000, Q_rSr_Srr },
-  { "addf3_mpyf3",  0x81000000, 0xff000000, Q_rSr_rSr },
-  { "addf3_mpyf3",  0x82000000, 0xff000000, Q_SSr_rrr },
-  { "addf3_mpyf3",  0x83000000, 0xff000000, Q_Srr_Srr },
-  { "addf3_mpyf3",  0x83000000, 0xff000000, Q_Srr_rSr },
-  { "addf_stf",     0xcc000000, 0xfe000000, P_Srr_rS },
-  { "addf_stf",     0xcc000000, 0xfe000000, P_rSr_rS },
-  { "addf3_stf",    0xcc000000, 0xfe000000, P_Srr_rS },
-  { "addf3_stf",    0xcc000000, 0xfe000000, P_rSr_rS },
-  { "addi_mpyi",    0x88000000, 0xff000000, Q_rrr_SSr },
-  { "addi_mpyi",    0x89000000, 0xff000000, Q_rSr_Srr },
-  { "addi_mpyi",    0x89000000, 0xff000000, Q_rSr_rSr },
-  { "addi_mpyi",    0x8a000000, 0xff000000, Q_SSr_rrr },
-  { "addi_mpyi",    0x8b000000, 0xff000000, Q_Srr_Srr },
-  { "addi_mpyi",    0x8b000000, 0xff000000, Q_Srr_rSr },
-  { "addi3_mpyi3",  0x88000000, 0xff000000, Q_rrr_SSr },
-  { "addi3_mpyi3",  0x89000000, 0xff000000, Q_rSr_Srr },
-  { "addi3_mpyi3",  0x89000000, 0xff000000, Q_rSr_rSr },
-  { "addi3_mpyi3",  0x8a000000, 0xff000000, Q_SSr_rrr },
-  { "addi3_mpyi3",  0x8b000000, 0xff000000, Q_Srr_Srr },
-  { "addi3_mpyi3",  0x8b000000, 0xff000000, Q_Srr_rSr },
-  { "addi_sti",     0xce000000, 0xfe000000, P_Srr_rS },
-  { "addi_sti",     0xce000000, 0xfe000000, P_rSr_rS },
-  { "addi3_sti",    0xce000000, 0xfe000000, P_Srr_rS },
-  { "addi3_sti",    0xce000000, 0xfe000000, P_rSr_rS },
-  { "and_sti",      0xd0000000, 0xfe000000, P_Srr_rS },
-  { "and_sti",      0xd0000000, 0xfe000000, P_rSr_rS },
-  { "and3_sti",     0xd0000000, 0xfe000000, P_Srr_rS },
-  { "and3_sti",     0xd0000000, 0xfe000000, P_rSr_rS },
-  { "ash_sti",      0xd2000000, 0xfe000000, P_rSr_rS },
-  { "ash3_sti",     0xd2000000, 0xfe000000, P_rSr_rS },
-  { "fix_sti",      0xd4000000, 0xfe000000, P_Sr_rS },
-  { "float_stf",    0xd6000000, 0xfe000000, P_Sr_rS },
-  { "ldf_ldf",      0xc4000000, 0xfe000000, P_Sr_Sr },
-  { "ldf1_ldf2",    0xc4000000, 0xfe000000, Q_Sr_Sr }, /* synonym */
-  { "ldf2_ldf1",    0xc4000000, 0xfe000000, P_Sr_Sr }, /* synonym */
-  { "ldf_stf",      0xd8000000, 0xfe000000, P_Sr_rS },
-  { "ldi_ldi",      0xc6000000, 0xfe000000, P_Sr_Sr },
-  { "ldi1_ldi2",    0xc6000000, 0xfe000000, Q_Sr_Sr }, /* synonym  */
-  { "ldi2_ldi1",    0xc6000000, 0xfe000000, P_Sr_Sr }, /* synonym  */
-  { "ldi_sti",      0xda000000, 0xfe000000, P_Sr_rS },
-  { "lsh_sti",      0xdc000000, 0xfe000000, P_rSr_rS },
-  { "lsh3_sti",     0xdc000000, 0xfe000000, P_rSr_rS },
-  { "mpyf_addf",    0x80000000, 0xff000000, P_SSr_rrr },
-  { "mpyf_addf",    0x81000000, 0xff000000, P_Srr_rSr },
-  { "mpyf_addf",    0x81000000, 0xff000000, P_rSr_rSr },
-  { "mpyf_addf",    0x82000000, 0xff000000, P_rrr_SSr },
-  { "mpyf_addf",    0x83000000, 0xff000000, P_Srr_Srr },
-  { "mpyf_addf",    0x83000000, 0xff000000, P_rSr_Srr },
-  { "mpyf3_addf3",  0x80000000, 0xff000000, P_SSr_rrr },
-  { "mpyf3_addf3",  0x81000000, 0xff000000, P_Srr_rSr },
-  { "mpyf3_addf3",  0x81000000, 0xff000000, P_rSr_rSr },
-  { "mpyf3_addf3",  0x82000000, 0xff000000, P_rrr_SSr },
-  { "mpyf3_addf3",  0x83000000, 0xff000000, P_Srr_Srr },
-  { "mpyf3_addf3",  0x83000000, 0xff000000, P_rSr_Srr },
-  { "mpyf_stf",     0xde000000, 0xfe000000, P_Srr_rS },
-  { "mpyf_stf",     0xde000000, 0xfe000000, P_rSr_rS },
-  { "mpyf3_stf",    0xde000000, 0xfe000000, P_Srr_rS },
-  { "mpyf3_stf",    0xde000000, 0xfe000000, P_rSr_rS },
-  { "mpyf_subf",    0x84000000, 0xff000000, P_SSr_rrr },
-  { "mpyf_subf",    0x85000000, 0xff000000, P_Srr_rSr },
-  { "mpyf_subf",    0x85000000, 0xff000000, P_rSr_rSr },
-  { "mpyf_subf",    0x86000000, 0xff000000, P_rrr_SSr },
-  { "mpyf_subf",    0x87000000, 0xff000000, P_Srr_Srr },
-  { "mpyf_subf",    0x87000000, 0xff000000, P_rSr_Srr },
-  { "mpyf3_subf3",  0x84000000, 0xff000000, P_SSr_rrr },
-  { "mpyf3_subf3",  0x85000000, 0xff000000, P_Srr_rSr },
-  { "mpyf3_subf3",  0x85000000, 0xff000000, P_rSr_rSr },
-  { "mpyf3_subf3",  0x86000000, 0xff000000, P_rrr_SSr },
-  { "mpyf3_subf3",  0x87000000, 0xff000000, P_Srr_Srr },
-  { "mpyf3_subf3",  0x87000000, 0xff000000, P_rSr_Srr },
-  { "mpyi_addi",    0x88000000, 0xff000000, P_SSr_rrr },
-  { "mpyi_addi",    0x89000000, 0xff000000, P_Srr_rSr },
-  { "mpyi_addi",    0x89000000, 0xff000000, P_rSr_rSr },
-  { "mpyi_addi",    0x8a000000, 0xff000000, P_rrr_SSr },
-  { "mpyi_addi",    0x8b000000, 0xff000000, P_Srr_Srr },
-  { "mpyi_addi",    0x8b000000, 0xff000000, P_rSr_Srr },
-  { "mpyi3_addi3",  0x88000000, 0xff000000, P_SSr_rrr },
-  { "mpyi3_addi3",  0x89000000, 0xff000000, P_Srr_rSr },
-  { "mpyi3_addi3",  0x89000000, 0xff000000, P_rSr_rSr },
-  { "mpyi3_addi3",  0x8a000000, 0xff000000, P_rrr_SSr },
-  { "mpyi3_addi3",  0x8b000000, 0xff000000, P_Srr_Srr },
-  { "mpyi3_addi3",  0x8b000000, 0xff000000, P_rSr_Srr },
-  { "mpyi_sti",     0xe0000000, 0xfe000000, P_Srr_rS },
-  { "mpyi_sti",     0xe0000000, 0xfe000000, P_rSr_rS },
-  { "mpyi3_sti",    0xe0000000, 0xfe000000, P_Srr_rS },
-  { "mpyi3_sti",    0xe0000000, 0xfe000000, P_rSr_rS },
-  { "mpyi_subi",    0x8c000000, 0xff000000, P_SSr_rrr },
-  { "mpyi_subi",    0x8d000000, 0xff000000, P_Srr_rSr },
-  { "mpyi_subi",    0x8d000000, 0xff000000, P_rSr_rSr },
-  { "mpyi_subi",    0x8e000000, 0xff000000, P_rrr_SSr },
-  { "mpyi_subi",    0x8f000000, 0xff000000, P_Srr_Srr },
-  { "mpyi_subi",    0x8f000000, 0xff000000, P_rSr_Srr },
-  { "mpyi3_subi3",  0x8c000000, 0xff000000, P_SSr_rrr },
-  { "mpyi3_subi3",  0x8d000000, 0xff000000, P_Srr_rSr },
-  { "mpyi3_subi3",  0x8d000000, 0xff000000, P_rSr_rSr },
-  { "mpyi3_subi3",  0x8e000000, 0xff000000, P_rrr_SSr },
-  { "mpyi3_subi3",  0x8f000000, 0xff000000, P_Srr_Srr },
-  { "mpyi3_subi3",  0x8f000000, 0xff000000, P_rSr_Srr },
-  { "negf_stf",     0xe2000000, 0xfe000000, P_Sr_rS },
-  { "negi_sti",     0xe4000000, 0xfe000000, P_Sr_rS },
-  { "not_sti",      0xe6000000, 0xfe000000, P_Sr_rS },
-  { "or_sti",       0xe8000000, 0xfe000000, P_Srr_rS },
-  { "or_sti",       0xe8000000, 0xfe000000, P_rSr_rS },
-  { "or3_sti",      0xe8000000, 0xfe000000, P_Srr_rS },
-  { "or3_sti",      0xe8000000, 0xfe000000, P_rSr_rS },
-  { "stf_absf",     0xc8000000, 0xfe000000, Q_rS_Sr },
-  { "stf_addf",     0xcc000000, 0xfe000000, Q_rS_Srr },
-  { "stf_addf",     0xcc000000, 0xfe000000, Q_rS_rSr },
-  { "stf_addf3",    0xcc000000, 0xfe000000, Q_rS_Srr },
-  { "stf_addf3",    0xcc000000, 0xfe000000, Q_rS_rSr },
-  { "stf_float",    0xd6000000, 0xfe000000, Q_rS_Sr },
-  { "stf_mpyf",     0xde000000, 0xfe000000, Q_rS_Srr },
-  { "stf_mpyf",     0xde000000, 0xfe000000, Q_rS_rSr },
-  { "stf_mpyf3",    0xde000000, 0xfe000000, Q_rS_Srr },
-  { "stf_mpyf3",    0xde000000, 0xfe000000, Q_rS_rSr },
-  { "stf_ldf",      0xd8000000, 0xfe000000, Q_rS_Sr  },
-  { "stf_negf",     0xe2000000, 0xfe000000, Q_rS_Sr },
-  { "stf_stf",      0xc0000000, 0xfe000000, P_rS_rS },
-  { "stf1_stf2",    0xc0000000, 0xfe000000, Q_rS_rS }, /* synonym */
-  { "stf2_stf1",    0xc0000000, 0xfe000000, P_rS_rS }, /* synonym */
-  { "stf_subf",     0xea000000, 0xfe000000, Q_rS_rSr },
-  { "stf_subf3",    0xea000000, 0xfe000000, Q_rS_rSr },
-  { "sti_absi",     0xca000000, 0xfe000000, Q_rS_Sr },
-  { "sti_addi",     0xce000000, 0xfe000000, Q_rS_Srr },
-  { "sti_addi",     0xce000000, 0xfe000000, Q_rS_rSr },
-  { "sti_addi3",    0xce000000, 0xfe000000, Q_rS_Srr },
-  { "sti_addi3",    0xce000000, 0xfe000000, Q_rS_rSr },
-  { "sti_and",      0xd0000000, 0xfe000000, Q_rS_Srr },
-  { "sti_and",      0xd0000000, 0xfe000000, Q_rS_rSr },
-  { "sti_and3",     0xd0000000, 0xfe000000, Q_rS_Srr },
-  { "sti_and3",     0xd0000000, 0xfe000000, Q_rS_rSr },
-  { "sti_ash",      0xd2000000, 0xfe000000, Q_rS_rSr },
-  { "sti_ash3",     0xd2000000, 0xfe000000, Q_rS_rSr },
-  { "sti_fix",      0xd4000000, 0xfe000000, Q_rS_Sr },
-  { "sti_ldi",      0xda000000, 0xfe000000, Q_rS_Sr },
-  { "sti_lsh",      0xdc000000, 0xfe000000, Q_rS_rSr },
-  { "sti_lsh3",     0xdc000000, 0xfe000000, Q_rS_rSr },
-  { "sti_mpyi",     0xe0000000, 0xfe000000, Q_rS_Srr },
-  { "sti_mpyi",     0xe0000000, 0xfe000000, Q_rS_rSr },
-  { "sti_mpyi3",    0xe0000000, 0xfe000000, Q_rS_Srr },
-  { "sti_mpyi3",    0xe0000000, 0xfe000000, Q_rS_rSr },
-  { "sti_negi",     0xe4000000, 0xfe000000, Q_rS_Sr },
-  { "sti_not",      0xe6000000, 0xfe000000, Q_rS_Sr },
-  { "sti_or",       0xe8000000, 0xfe000000, Q_rS_Srr },
-  { "sti_or",       0xe8000000, 0xfe000000, Q_rS_rSr },
-  { "sti_or3",      0xe8000000, 0xfe000000, Q_rS_Srr },
-  { "sti_or3",      0xe8000000, 0xfe000000, Q_rS_rSr },
-  { "sti_sti",      0xc2000000, 0xfe000000, P_rS_rS },
-  { "sti1_sti2",    0xc2000000, 0xfe000000, Q_rS_rS }, /* synonym */
-  { "sti2_sti1",    0xc2000000, 0xfe000000, P_rS_rS }, /* synonym */
-  { "sti_subi",     0xec000000, 0xfe000000, Q_rS_rSr },    
-  { "sti_subi3",    0xec000000, 0xfe000000, Q_rS_rSr },
-  { "sti_xor",      0xee000000, 0xfe000000, Q_rS_Srr },
-  { "sti_xor",      0xee000000, 0xfe000000, Q_rS_rSr },
-  { "sti_xor3",     0xee000000, 0xfe000000, Q_rS_Srr },
-  { "sti_xor3",     0xee000000, 0xfe000000, Q_rS_rSr },
-  { "subf_mpyf",    0x84000000, 0xff000000, Q_rrr_SSr },
-  { "subf_mpyf",    0x85000000, 0xff000000, Q_rSr_Srr },
-  { "subf_mpyf",    0x85000000, 0xff000000, Q_rSr_rSr },
-  { "subf_mpyf",    0x86000000, 0xff000000, Q_SSr_rrr },
-  { "subf_mpyf",    0x87000000, 0xff000000, Q_Srr_Srr },
-  { "subf_mpyf",    0x87000000, 0xff000000, Q_Srr_rSr },
-  { "subf3_mpyf3",  0x84000000, 0xff000000, Q_rrr_SSr },
-  { "subf3_mpyf3",  0x85000000, 0xff000000, Q_rSr_Srr },
-  { "subf3_mpyf3",  0x85000000, 0xff000000, Q_rSr_rSr },
-  { "subf3_mpyf3",  0x86000000, 0xff000000, Q_SSr_rrr },
-  { "subf3_mpyf3",  0x87000000, 0xff000000, Q_Srr_Srr },
-  { "subf3_mpyf3",  0x87000000, 0xff000000, Q_Srr_rSr },
-  { "subf_stf",     0xea000000, 0xfe000000, P_rSr_rS },
-  { "subf3_stf",    0xea000000, 0xfe000000, P_rSr_rS },
-  { "subi_mpyi",    0x8c000000, 0xff000000, Q_rrr_SSr },
-  { "subi_mpyi",    0x8d000000, 0xff000000, Q_rSr_Srr },
-  { "subi_mpyi",    0x8d000000, 0xff000000, Q_rSr_rSr },
-  { "subi_mpyi",    0x8e000000, 0xff000000, Q_SSr_rrr },
-  { "subi_mpyi",    0x8f000000, 0xff000000, Q_Srr_Srr },
-  { "subi_mpyi",    0x8f000000, 0xff000000, Q_Srr_rSr },
-  { "subi3_mpyi3",  0x8c000000, 0xff000000, Q_rrr_SSr },
-  { "subi3_mpyi3",  0x8d000000, 0xff000000, Q_rSr_Srr },
-  { "subi3_mpyi3",  0x8d000000, 0xff000000, Q_rSr_rSr },
-  { "subi3_mpyi3",  0x8e000000, 0xff000000, Q_SSr_rrr },
-  { "subi3_mpyi3",  0x8f000000, 0xff000000, Q_Srr_Srr },
-  { "subi3_mpyi3",  0x8f000000, 0xff000000, Q_Srr_rSr },
-  { "subi_sti",     0xec000000, 0xfe000000, P_rSr_rS },    
-  { "subi3_sti",    0xec000000, 0xfe000000, P_rSr_rS },
-  { "xor_sti",      0xee000000, 0xfe000000, P_Srr_rS },
-  { "xor_sti",      0xee000000, 0xfe000000, P_rSr_rS },
-  { "xor3_sti",     0xee000000, 0xfe000000, P_Srr_rS },
-  { "xor3_sti",     0xee000000, 0xfe000000, P_rSr_rS },
-
-  { "absf",   0x00000000, 0xffe00000, G_r_r },
-  { "absf",   0x00200000, 0xffe00000, G_T_r },
-  { "absf",   0x00400000, 0xffe00000, G_Q_r },
-  { "absf",   0x00600000, 0xffe00000, G_F_r },
-  { "absi",   0x00800000, 0xffe00000, G_r_r },
-  { "absi",   0x00a00000, 0xffe00000, G_T_r },
-  { "absi",   0x00c00000, 0xffe00000, G_Q_r },
-  { "absi",   0x00e00000, 0xffe00000, G_I_r },
-  { "addc",   0x01000000, 0xffe00000, G_r_r },
-  { "addc",   0x01200000, 0xffe00000, G_T_r },
-  { "addc",   0x01400000, 0xffe00000, G_Q_r },
-  { "addc",   0x01600000, 0xffe00000, G_I_r },
-  { "addc",   0x20000000, 0xffe00000, T_rrr },
-  { "addc",   0x20200000, 0xffe00000, T_Srr },
-  { "addc",   0x20400000, 0xffe00000, T_rSr },
-  { "addc",   0x20600000, 0xffe00000, T_SSr },
-  { "addc",   0x30000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "addc",   0x30000000, 0xffe00000, T_rJr }, /* C4x */
-  { "addc",   0x30200000, 0xffe00000, T_rRr }, /* C4x */
-  { "addc",   0x30200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "addc",   0x30400000, 0xffe00000, T_JRr }, /* C4x */
-  { "addc",   0x30400000, 0xffe00000, T_RJr }, /* C4x */
-  { "addc",   0x30600000, 0xffe00000, T_RRr }, /* C4x */
-  { "addc3",  0x20000000, 0xffe00000, T_rrr },
-  { "addc3",  0x20200000, 0xffe00000, T_Srr },
-  { "addc3",  0x20400000, 0xffe00000, T_rSr },
-  { "addc3",  0x20600000, 0xffe00000, T_SSr },
-  { "addc3",  0x30000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "addc3",  0x30000000, 0xffe00000, T_rJr }, /* C4x */
-  { "addc3",  0x30200000, 0xffe00000, T_rRr }, /* C4x */
-  { "addc3",  0x30200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "addc3",  0x30400000, 0xffe00000, T_JRr }, /* C4x */
-  { "addc3",  0x30400000, 0xffe00000, T_RJr }, /* C4x */
-  { "addc3",  0x30600000, 0xffe00000, T_RRr }, /* C4x */
-  { "addf",   0x01800000, 0xffe00000, G_r_r },
-  { "addf",   0x01a00000, 0xffe00000, G_T_r },
-  { "addf",   0x01c00000, 0xffe00000, G_Q_r },
-  { "addf",   0x01e00000, 0xffe00000, G_F_r },
-  { "addf",   0x20800000, 0xffe00000, T_rrr },
-  { "addf",   0x20a00000, 0xffe00000, T_Srr },
-  { "addf",   0x20c00000, 0xffe00000, T_rSr },
-  { "addf",   0x20e00000, 0xffe00000, T_SSr },
-  { "addf",   0x30800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "addf",   0x30800000, 0xffe00000, T_rJr }, /* C4x */
-  { "addf",   0x30a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "addf",   0x30a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "addf",   0x30c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "addf",   0x30c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "addf",   0x30e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "addf3",  0x20800000, 0xffe00000, T_rrr },
-  { "addf3",  0x20a00000, 0xffe00000, T_Srr },
-  { "addf3",  0x20c00000, 0xffe00000, T_rSr },
-  { "addf3",  0x20e00000, 0xffe00000, T_SSr },
-  { "addf3",  0x30800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "addf3",  0x30800000, 0xffe00000, T_rJr }, /* C4x */
-  { "addf3",  0x30a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "addf3",  0x30a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "addf3",  0x30c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "addf3",  0x30c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "addf3",  0x30e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "addi",   0x02000000, 0xffe00000, G_r_r },
-  { "addi",   0x02200000, 0xffe00000, G_T_r },
-  { "addi",   0x02400000, 0xffe00000, G_Q_r },
-  { "addi",   0x02600000, 0xffe00000, G_I_r },
-  { "addi",   0x21000000, 0xffe00000, T_rrr },
-  { "addi",   0x21200000, 0xffe00000, T_Srr },
-  { "addi",   0x21400000, 0xffe00000, T_rSr },
-  { "addi",   0x21600000, 0xffe00000, T_SSr },
-  { "addi",   0x31000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "addi",   0x31000000, 0xffe00000, T_rJr }, /* C4x */
-  { "addi",   0x31200000, 0xffe00000, T_rRr }, /* C4x */
-  { "addi",   0x31200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "addi",   0x31400000, 0xffe00000, T_JRr }, /* C4x */
-  { "addi",   0x31400000, 0xffe00000, T_RJr }, /* C4x */
-  { "addi",   0x31600000, 0xffe00000, T_RRr }, /* C4x */
-  { "addi3",  0x21000000, 0xffe00000, T_rrr },
-  { "addi3",  0x21200000, 0xffe00000, T_Srr },
-  { "addi3",  0x21400000, 0xffe00000, T_rSr },
-  { "addi3",  0x21600000, 0xffe00000, T_SSr },
-  { "addi3",  0x31000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "addi3",  0x31000000, 0xffe00000, T_rJr }, /* C4x */
-  { "addi3",  0x31200000, 0xffe00000, T_rRr }, /* C4x */
-  { "addi3",  0x31200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "addi3",  0x31400000, 0xffe00000, T_JRr }, /* C4x */
-  { "addi3",  0x31400000, 0xffe00000, T_RJr }, /* C4x */
-  { "addi3",  0x31600000, 0xffe00000, T_RRr }, /* C4x */
-  { "and",    0x02800000, 0xffe00000, G_r_r },
-  { "and",    0x02a00000, 0xffe00000, G_T_r },
-  { "and",    0x02c00000, 0xffe00000, G_Q_r },
-  { "and",    0x02e00000, 0xffe00000, G_L_r },
-  { "and",    0x21800000, 0xffe00000, T_rrr },
-  { "and",    0x21a00000, 0xffe00000, T_Srr },
-  { "and",    0x21c00000, 0xffe00000, T_rSr },
-  { "and",    0x21e00000, 0xffe00000, T_SSr },
-  { "and",    0x31800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "and",    0x31800000, 0xffe00000, T_rJr }, /* C4x */
-  { "and",    0x31a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "and",    0x31a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "and",    0x31c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "and",    0x31c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "and",    0x31e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "and3",   0x21800000, 0xffe00000, T_rrr },
-  { "and3",   0x21a00000, 0xffe00000, T_Srr },
-  { "and3",   0x21c00000, 0xffe00000, T_rSr },
-  { "and3",   0x21e00000, 0xffe00000, T_SSr },
-  { "and3",   0x31800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "and3",   0x31800000, 0xffe00000, T_rJr }, /* C4x */
-  { "and3",   0x31a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "and3",   0x31a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "and3",   0x31c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "and3",   0x31c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "and3",   0x31e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "andn",   0x03000000, 0xffe00000, G_r_r },
-  { "andn",   0x03200000, 0xffe00000, G_T_r },
-  { "andn",   0x03400000, 0xffe00000, G_Q_r },
-  { "andn",   0x03600000, 0xffe00000, G_L_r },
-  { "andn",   0x22000000, 0xffe00000, T_rrr },
-  { "andn",   0x22200000, 0xffe00000, T_Srr },
-  { "andn",   0x22400000, 0xffe00000, T_rSr },
-  { "andn",   0x22600000, 0xffe00000, T_SSr },
-  { "andn",   0x32000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "andn",   0x32200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "andn",   0x32400000, 0xffe00000, T_JRr }, /* C4x */
-  { "andn",   0x32600000, 0xffe00000, T_RRr }, /* C4x */
-  { "andn3",  0x22000000, 0xffe00000, T_rrr },
-  { "andn3",  0x22200000, 0xffe00000, T_Srr },
-  { "andn3",  0x22400000, 0xffe00000, T_rSr },
-  { "andn3",  0x22600000, 0xffe00000, T_SSr },
-  { "andn3",  0x32000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "andn3",  0x32200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "andn3",  0x32400000, 0xffe00000, T_JRr }, /* C4x */
-  { "andn3",  0x32600000, 0xffe00000, T_RRr }, /* C4x */
-  { "ash",    0x03800000, 0xffe00000, G_r_r },
-  { "ash",    0x03a00000, 0xffe00000, G_T_r },
-  { "ash",    0x03c00000, 0xffe00000, G_Q_r },
-  { "ash",    0x03e00000, 0xffe00000, G_I_r },
-  { "ash",    0x22800000, 0xffe00000, T_rrr },
-  { "ash",    0x22a00000, 0xffe00000, T_Srr },
-  { "ash",    0x22c00000, 0xffe00000, T_rSr },
-  { "ash",    0x22e00000, 0xffe00000, T_SSr },
-  { "ash",    0x32800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "ash",    0x32a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "ash",    0x32c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "ash",    0x32e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "ash3",   0x22800000, 0xffe00000, T_rrr },
-  { "ash3",   0x22a00000, 0xffe00000, T_Srr },
-  { "ash3",   0x22c00000, 0xffe00000, T_rSr },
-  { "ash3",   0x22e00000, 0xffe00000, T_SSr },
-  { "ash3",   0x32800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "ash3",   0x32a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "ash3",   0x32c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "ash3",   0x32e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "bB",     0x68000000, 0xffe00000, "Q" },
-  { "bB",     0x6a000000, 0xffe00000, "P" }, 
-  { "b",      0x68000000, 0xffe00000, "Q" }, /* synonym for bu */
-  { "b",      0x6a000000, 0xffe00000, "P" }, /* synonym for bu */
-  { "bBd",    0x68200000, 0xffe00000, "Q" },
-  { "bBd",    0x6a200000, 0xffe00000, "P" },
-  { "bd",     0x68200000, 0xffe00000, "Q" }, /* synonym for bud */
-  { "bd",     0x6a200000, 0xffe00000, "P" }, /* synonym for bud */
-  { "br",     0x60000000, 0xff000000, "B" },
-  { "brd",    0x61000000, 0xff000000, "B" },
-  { "call",   0x62000000, 0xff000000, "B" },
-  { "callB",  0x70000000, 0xffe00000, "Q" },
-  { "callB",  0x72000000, 0xffe00000, "P" },
-  { "cmpf",   0x04000000, 0xffe00000, G_r_r },
-  { "cmpf",   0x04200000, 0xffe00000, G_T_r },
-  { "cmpf",   0x04400000, 0xffe00000, G_Q_r },
-  { "cmpf",   0x04600000, 0xffe00000, G_F_r },
-  { "cmpf",   0x23000000, 0xffe00000, T_rr_ },
-  { "cmpf",   0x23200000, 0xffe00000, T_rS_ },
-  { "cmpf",   0x23400000, 0xffe00000, T_Sr_ },
-  { "cmpf",   0x23600000, 0xffe00000, T_SS_ },
-  { "cmpf",   0x33200000, 0xffe00000, T_Rr_ }, /* C4x */
-  { "cmpf",   0x33600000, 0xffe00000, T_RR_ }, /* C4x */
-  { "cmpf3",  0x23000000, 0xffe00000, T_rr_ },
-  { "cmpf3",  0x23200000, 0xffe00000, T_rS_ },
-  { "cmpf3",  0x23400000, 0xffe00000, T_Sr_ },
-  { "cmpf3",  0x23600000, 0xffe00000, T_SS_ },
-  { "cmpf3",  0x33200000, 0xffe00000, T_Rr_ }, /* C4x */
-  { "cmpf3",  0x33600000, 0xffe00000, T_RR_ }, /* C4x */
-  { "cmpi",   0x04800000, 0xffe00000, G_r_r },
-  { "cmpi",   0x04a00000, 0xffe00000, G_T_r },
-  { "cmpi",   0x04c00000, 0xffe00000, G_Q_r },
-  { "cmpi",   0x04e00000, 0xffe00000, G_I_r },
-  { "cmpi",   0x23800000, 0xffe00000, T_rr_ },
-  { "cmpi",   0x23a00000, 0xffe00000, T_rS_ },
-  { "cmpi",   0x23c00000, 0xffe00000, T_Sr_ },
-  { "cmpi",   0x23e00000, 0xffe00000, T_SS_ },
-  { "cmpi",   0x33800000, 0xffe00000, T_Jr_ }, /* C4x */
-  { "cmpi",   0x33a00000, 0xffe00000, T_Rr_ }, /* C4x */
-  { "cmpi",   0x33c00000, 0xffe00000, T_JR_ }, /* C4x */
-  { "cmpi",   0x33e00000, 0xffe00000, T_RR_ }, /* C4x */
-  { "cmpi3",  0x23800000, 0xffe00000, T_rr_ },
-  { "cmpi3",  0x23a00000, 0xffe00000, T_rS_ },
-  { "cmpi3",  0x23c00000, 0xffe00000, T_Sr_ },
-  { "cmpi3",  0x23e00000, 0xffe00000, T_SS_ },
-  { "cmpi3",  0x33800000, 0xffe00000, T_Jr_ }, /* C4x */
-  { "cmpi3",  0x33a00000, 0xffe00000, T_Rr_ }, /* C4x */
-  { "cmpi3",  0x33c00000, 0xffe00000, T_JR_ }, /* C4x */
-  { "cmpi3",  0x33e00000, 0xffe00000, T_RR_ }, /* C4x */
-  { "dbB",    0x6c000000, 0xfe200000, "A,Q" },
-  { "dbB",    0x6e000000, 0xfe200000, "A,P" },
-  { "db",     0x6c000000, 0xfe200000, "A,Q" }, /* synonym for dbu */
-  { "db",     0x6e000000, 0xfe200000, "A,P" }, /* synonym for dbu */
-  { "dbBd",   0x6c200000, 0xfe200000, "A,Q" },
-  { "dbBd",   0x6e200000, 0xfe200000, "A,P" },
-  { "dbd",    0x6c200000, 0xfe200000, "A,Q" }, /* synonym for dbud */
-  { "dbd",    0x6e200000, 0xfe200000, "A,P" }, /* synonym for dbud */
-  { "fix",    0x05000000, 0xffe00000, G_r_r },
-  { "fix",    0x05200000, 0xffe00000, G_T_r },
-  { "fix",    0x05400000, 0xffe00000, G_Q_r },
-  { "fix",    0x05600000, 0xffe00000, G_F_r },
-  { "float",  0x05800000, 0xffe00000, G_r_r },
-  { "float",  0x05a00000, 0xffe00000, G_T_r },
-  { "float",  0x05c00000, 0xffe00000, G_Q_r },
-  { "float",  0x05e00000, 0xffe00000, G_I_r },
-  { "iack",   0x1b200000, 0xffe00000, "@" },
-  { "iack",   0x1b400000, 0xffe00000, "*" },
-  { "idle",   0x06000000, 0xffffffff, "" },
-  { "lde",    0x06800000, 0xffe00000, G_r_r },
-  { "lde",    0x06a00000, 0xffe00000, G_T_r },
-  { "lde",    0x06c00000, 0xffe00000, G_Q_r },
-  { "lde",    0x06e00000, 0xffe00000, G_F_r },
-  { "ldf",    0x07000000, 0xffe00000, G_r_r },
-  { "ldf",    0x07200000, 0xffe00000, G_T_r },
-  { "ldf",    0x07400000, 0xffe00000, G_Q_r },
-  { "ldf",    0x07600000, 0xffe00000, G_F_r },
-  { "ldfC",   0x40000000, 0xf0600000, G_r_r },
-  { "ldfC",   0x40200000, 0xf0600000, G_T_r },
-  { "ldfC",   0x40400000, 0xf0600000, G_Q_r },
-  { "ldfC",   0x40600000, 0xf0600000, G_F_r },
-  { "ldfi",   0x07a00000, 0xffe00000, G_T_r },
-  { "ldfi",   0x07c00000, 0xffe00000, G_Q_r },
-  { "ldi",    0x08000000, 0xffe00000, G_r_r },
-  { "ldi",    0x08200000, 0xffe00000, G_T_r },
-  { "ldi",    0x08400000, 0xffe00000, G_Q_r },
-  { "ldi",    0x08600000, 0xffe00000, G_I_r },
-  { "ldiC",   0x50000000, 0xf0600000, G_r_r },
-  { "ldiC",   0x50200000, 0xf0600000, G_T_r },
-  { "ldiC",   0x50400000, 0xf0600000, G_Q_r },
-  { "ldiC",   0x50600000, 0xf0600000, G_I_r },
-  { "ldii",   0x08a00000, 0xffe00000, G_T_r },
-  { "ldii",   0x08c00000, 0xffe00000, G_Q_r },
-  { "ldp",    0x50700000, 0xffff0000, "#" }, /* synonym for ldiu #,dp */
-  { "ldm",    0x09000000, 0xffe00000, G_r_r },
-  { "ldm",    0x09200000, 0xffe00000, G_T_r },
-  { "ldm",    0x09400000, 0xffe00000, G_Q_r },
-  { "ldm",    0x09600000, 0xffe00000, G_F_r },
-  { "lsh",    0x09800000, 0xffe00000, G_r_r },
-  { "lsh",    0x09a00000, 0xffe00000, G_T_r },
-  { "lsh",    0x09c00000, 0xffe00000, G_Q_r },
-  { "lsh",    0x09e00000, 0xffe00000, G_I_r },
-  { "lsh",    0x24000000, 0xffe00000, T_rrr },
-  { "lsh",    0x24200000, 0xffe00000, T_Srr },
-  { "lsh",    0x24400000, 0xffe00000, T_rSr },
-  { "lsh",    0x24600000, 0xffe00000, T_SSr },
-  { "lsh",    0x34000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "lsh",    0x34200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "lsh",    0x34400000, 0xffe00000, T_JRr }, /* C4x */
-  { "lsh",    0x34600000, 0xffe00000, T_RRr }, /* C4x */
-  { "lsh3",   0x24000000, 0xffe00000, T_rrr },
-  { "lsh3",   0x24200000, 0xffe00000, T_Srr },
-  { "lsh3",   0x24400000, 0xffe00000, T_rSr },
-  { "lsh3",   0x24600000, 0xffe00000, T_SSr },
-  { "lsh3",   0x34000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "lsh3",   0x34200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "lsh3",   0x34400000, 0xffe00000, T_JRr }, /* C4x */
-  { "lsh3",   0x34600000, 0xffe00000, T_RRr }, /* C4x */
-  { "mpyf",   0x0a000000, 0xffe00000, G_r_r },
-  { "mpyf",   0x0a200000, 0xffe00000, G_T_r },
-  { "mpyf",   0x0a400000, 0xffe00000, G_Q_r },
-  { "mpyf",   0x0a600000, 0xffe00000, G_F_r },
-  { "mpyf",   0x24800000, 0xffe00000, T_rrr },
-  { "mpyf",   0x24a00000, 0xffe00000, T_Srr },
-  { "mpyf",   0x24c00000, 0xffe00000, T_rSr },
-  { "mpyf",   0x24e00000, 0xffe00000, T_SSr },
-  { "mpyf",   0x34800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "mpyf",   0x34800000, 0xffe00000, T_rJr }, /* C4x */
-  { "mpyf",   0x34a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "mpyf",   0x34a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "mpyf",   0x34c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "mpyf",   0x34c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "mpyf",   0x34e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "mpyf3",  0x24800000, 0xffe00000, T_rrr },
-  { "mpyf3",  0x24a00000, 0xffe00000, T_Srr },
-  { "mpyf3",  0x24c00000, 0xffe00000, T_rSr },
-  { "mpyf3",  0x24e00000, 0xffe00000, T_SSr },
-  { "mpyf3",  0x34800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "mpyf3",  0x34800000, 0xffe00000, T_rJr }, /* C4x */
-  { "mpyf3",  0x34a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "mpyf3",  0x34a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "mpyf3",  0x34c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "mpyf3",  0x34c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "mpyf3",  0x34e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "mpyi",   0x0a800000, 0xffe00000, G_r_r },
-  { "mpyi",   0x0aa00000, 0xffe00000, G_T_r },
-  { "mpyi",   0x0ac00000, 0xffe00000, G_Q_r },
-  { "mpyi",   0x0ae00000, 0xffe00000, G_I_r },
-  { "mpyi",   0x25000000, 0xffe00000, T_rrr },
-  { "mpyi",   0x25200000, 0xffe00000, T_Srr },
-  { "mpyi",   0x25400000, 0xffe00000, T_rSr },
-  { "mpyi",   0x25600000, 0xffe00000, T_SSr },
-  { "mpyi",   0x35000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "mpyi",   0x35000000, 0xffe00000, T_rJr }, /* C4x */
-  { "mpyi",   0x35200000, 0xffe00000, T_rRr }, /* C4x */
-  { "mpyi",   0x35200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "mpyi",   0x35400000, 0xffe00000, T_JRr }, /* C4x */
-  { "mpyi",   0x35400000, 0xffe00000, T_RJr }, /* C4x */
-  { "mpyi",   0x35600000, 0xffe00000, T_RRr }, /* C4x */
-  { "mpyi3",  0x25000000, 0xffe00000, T_rrr },
-  { "mpyi3",  0x25200000, 0xffe00000, T_Srr },
-  { "mpyi3",  0x25400000, 0xffe00000, T_rSr },
-  { "mpyi3",  0x25600000, 0xffe00000, T_SSr },
-  { "mpyi3",  0x35000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "mpyi3",  0x35000000, 0xffe00000, T_rJr }, /* C4x */
-  { "mpyi3",  0x35200000, 0xffe00000, T_rRr }, /* C4x */
-  { "mpyi3",  0x35200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "mpyi3",  0x35400000, 0xffe00000, T_JRr }, /* C4x */
-  { "mpyi3",  0x35400000, 0xffe00000, T_RJr }, /* C4x */
-  { "mpyi3",  0x35600000, 0xffe00000, T_RRr }, /* C4x */
-  { "negb",   0x0b000000, 0xffe00000, G_r_r },
-  { "negb",   0x0b200000, 0xffe00000, G_T_r },
-  { "negb",   0x0b400000, 0xffe00000, G_Q_r },
-  { "negb",   0x0b600000, 0xffe00000, G_I_r },
-  { "negf",   0x0b800000, 0xffe00000, G_r_r },
-  { "negf",   0x0ba00000, 0xffe00000, G_T_r },
-  { "negf",   0x0bc00000, 0xffe00000, G_Q_r },
-  { "negf",   0x0be00000, 0xffe00000, G_F_r },
-  { "negi",   0x0c000000, 0xffe00000, G_r_r },
-  { "negi",   0x0c200000, 0xffe00000, G_T_r },
-  { "negi",   0x0c400000, 0xffe00000, G_Q_r },
-  { "negi",   0x0c600000, 0xffe00000, G_I_r },
-  { "nop",    0x0c800000, 0xffe00000, "Q" },
-  { "nop",    0x0cc00000, 0xffe00000, "*" },
-  { "nop",    0x0c800000, 0xffe00000, "" },
-  { "norm",   0x0d000000, 0xffe00000, G_r_r },
-  { "norm",   0x0d200000, 0xffe00000, G_T_r },
-  { "norm",   0x0d400000, 0xffe00000, G_Q_r },
-  { "norm",   0x0d600000, 0xffe00000, G_F_r },
-  { "not",    0x0d800000, 0xffe00000, G_r_r },
-  { "not",    0x0da00000, 0xffe00000, G_T_r },
-  { "not",    0x0dc00000, 0xffe00000, G_Q_r },
-  { "not",    0x0de00000, 0xffe00000, G_L_r },
-  { "or",     0x10000000, 0xffe00000, G_r_r },
-  { "or",     0x10200000, 0xffe00000, G_T_r },
-  { "or",     0x10400000, 0xffe00000, G_Q_r },
-  { "or",     0x10600000, 0xffe00000, G_L_r },
-  { "or",     0x25800000, 0xffe00000, T_rrr },
-  { "or",     0x25a00000, 0xffe00000, T_Srr },
-  { "or",     0x25c00000, 0xffe00000, T_rSr },
-  { "or",     0x25e00000, 0xffe00000, T_SSr },
-  { "or",     0x35800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "or",     0x35800000, 0xffe00000, T_rJr }, /* C4x */
-  { "or",     0x35a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "or",     0x35a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "or",     0x35c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "or",     0x35c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "or",     0x35e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "or3",    0x25800000, 0xffe00000, T_rrr },
-  { "or3",    0x25a00000, 0xffe00000, T_Srr },
-  { "or3",    0x25c00000, 0xffe00000, T_rSr },
-  { "or3",    0x25e00000, 0xffe00000, T_SSr },
-  { "or3",    0x35800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "or3",    0x35800000, 0xffe00000, T_rJr }, /* C4x */
-  { "or3",    0x35a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "or3",    0x35a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "or3",    0x35c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "or3",    0x35c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "or3",    0x35e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "pop",    0x0e200000, 0xffe00000, "R" },
-  { "popf",   0x0ea00000, 0xffe00000, "R" },
-  { "push",   0x0f200000, 0xffe00000, "R" },
-  { "pushf",  0x0fa00000, 0xffe00000, "R" },
-  { "retiB",  0x78000000, 0xffe00000, "" },
-  { "reti",   0x78000000, 0xffe00000, "" }, /* synonym for reti */
-  { "retsB",  0x78800000, 0xffe00000, "" },
-  { "rets",   0x78800000, 0xffe00000, "" }, /* synonym for rets */
-  { "rnd",    0x11000000, 0xffe00000, G_r_r },
-  { "rnd",    0x11200000, 0xffe00000, G_T_r },
-  { "rnd",    0x11400000, 0xffe00000, G_Q_r },
-  { "rnd",    0x11600000, 0xffe00000, G_F_r },
-  { "rol",    0x11e00000, 0xffe00000, "R" },
-  { "rolc",   0x12600000, 0xffe00000, "R" },
-  { "ror",    0x12e00000, 0xffe00000, "R" },
-  { "rorc",   0x13600000, 0xffe00000, "R" },
-  { "rptb",   0x64000000, 0xff000000, "B" },
-  { "rptb",   0x79000000, 0xff000000, "Q" }, /* C4x */
-  { "rpts",   0x139b0000, 0xffff0000, "Q" },
-  { "rpts",   0x13bb0000, 0xffff0000, "@" },
-  { "rpts",   0x13db0000, 0xffff0000, "*" },
-  { "rpts",   0x13fb0000, 0xffff0000, "U" },
-  { "sigi",   0x16000000, 0xffe00000, "" },  /* C3x */
-  { "sigi",   0x16200000, 0xffe00000, G_T_r }, /* C4x */
-  { "sigi",   0x16400000, 0xffe00000, G_Q_r }, /* C4x */
-  { "stf",    0x14200000, 0xffe00000, "R,@" },
-  { "stf",    0x14400000, 0xffe00000, "R,*" },
-  { "stfi",   0x14a00000, 0xffe00000, "R,@" },
-  { "stfi",   0x14c00000, 0xffe00000, "R,*" },
-  { "sti",    0x15000000, 0xffe00000, "T,@" }, /* C4x only */
-  { "sti",    0x15200000, 0xffe00000, "R,@" },
-  { "sti",    0x15400000, 0xffe00000, "R,*" },
-  { "sti",    0x15600000, 0xffe00000, "T,*" }, /* C4x only */
-  { "stii",   0x15a00000, 0xffe00000, "R,@" },
-  { "stii",   0x15c00000, 0xffe00000, "R,*" },
-  { "subb",   0x16800000, 0xffe00000, G_r_r },
-  { "subb",   0x16a00000, 0xffe00000, G_T_r },
-  { "subb",   0x16c00000, 0xffe00000, G_Q_r },
-  { "subb",   0x16e00000, 0xffe00000, G_I_r },
-  { "subb",   0x26000000, 0xffe00000, T_rrr },
-  { "subb",   0x26200000, 0xffe00000, T_Srr },
-  { "subb",   0x26400000, 0xffe00000, T_rSr },
-  { "subb",   0x26600000, 0xffe00000, T_SSr },
-  { "subb",   0x36000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "subb",   0x36200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "subb",   0x36400000, 0xffe00000, T_JRr }, /* C4x */
-  { "subb",   0x36600000, 0xffe00000, T_RRr }, /* C4x */
-  { "subb3",  0x26000000, 0xffe00000, T_rrr },
-  { "subb3",  0x26200000, 0xffe00000, T_Srr },
-  { "subb3",  0x26400000, 0xffe00000, T_rSr },
-  { "subb3",  0x26600000, 0xffe00000, T_SSr },
-  { "subb3",  0x36000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "subb3",  0x36200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "subb3",  0x36400000, 0xffe00000, T_JRr }, /* C4x */
-  { "subb3",  0x36600000, 0xffe00000, T_RRr }, /* C4x */
-  { "subc",   0x17000000, 0xffe00000, G_r_r },
-  { "subc",   0x17200000, 0xffe00000, G_T_r },
-  { "subc",   0x17400000, 0xffe00000, G_Q_r },
-  { "subc",   0x17600000, 0xffe00000, G_I_r },
-  { "subf",   0x17800000, 0xffe00000, G_r_r },
-  { "subf",   0x17a00000, 0xffe00000, G_T_r },
-  { "subf",   0x17c00000, 0xffe00000, G_Q_r },
-  { "subf",   0x17e00000, 0xffe00000, G_F_r },
-  { "subf",   0x26800000, 0xffe00000, T_rrr },
-  { "subf",   0x26a00000, 0xffe00000, T_Srr },
-  { "subf",   0x26c00000, 0xffe00000, T_rSr },
-  { "subf",   0x26e00000, 0xffe00000, T_SSr },
-  { "subf",   0x36800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "subf",   0x36a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "subf",   0x36c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "subf",   0x36e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "subf3",  0x26800000, 0xffe00000, T_rrr },
-  { "subf3",  0x26a00000, 0xffe00000, T_Srr },
-  { "subf3",  0x26c00000, 0xffe00000, T_rSr },
-  { "subf3",  0x26e00000, 0xffe00000, T_SSr },
-  { "subf3",  0x36800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "subf3",  0x36a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "subf3",  0x36c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "subf3",  0x36e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "subi",   0x18000000, 0xffe00000, G_r_r },
-  { "subi",   0x18200000, 0xffe00000, G_T_r },
-  { "subi",   0x18400000, 0xffe00000, G_Q_r },
-  { "subi",   0x18600000, 0xffe00000, G_I_r },
-  { "subi",   0x27000000, 0xffe00000, T_rrr },
-  { "subi",   0x27200000, 0xffe00000, T_Srr },
-  { "subi",   0x27400000, 0xffe00000, T_rSr },
-  { "subi",   0x27600000, 0xffe00000, T_SSr },
-  { "subi",   0x37000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "subi",   0x37200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "subi",   0x37400000, 0xffe00000, T_JRr }, /* C4x */
-  { "subi",   0x37600000, 0xffe00000, T_RRr }, /* C4x */
-  { "subi3",  0x27000000, 0xffe00000, T_rrr },
-  { "subi3",  0x27200000, 0xffe00000, T_Srr },
-  { "subi3",  0x27400000, 0xffe00000, T_rSr },
-  { "subi3",  0x27600000, 0xffe00000, T_SSr },
-  { "subi3",  0x37000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "subi3",  0x37200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "subi3",  0x37400000, 0xffe00000, T_JRr }, /* C4x */
-  { "subi3",  0x37600000, 0xffe00000, T_RRr }, /* C4x */
-  { "subrb",  0x18800000, 0xffe00000, G_r_r },
-  { "subrb",  0x18a00000, 0xffe00000, G_T_r },
-  { "subrb",  0x18c00000, 0xffe00000, G_Q_r },
-  { "subrb",  0x18e00000, 0xffe00000, G_I_r },
-  { "subrf",  0x19000000, 0xffe00000, G_r_r },
-  { "subrf",  0x19200000, 0xffe00000, G_T_r },
-  { "subrf",  0x19400000, 0xffe00000, G_Q_r },
-  { "subrf",  0x19600000, 0xffe00000, G_F_r },
-  { "subri",  0x19800000, 0xffe00000, G_r_r },
-  { "subri",  0x19a00000, 0xffe00000, G_T_r },
-  { "subri",  0x19c00000, 0xffe00000, G_Q_r },
-  { "subri",  0x19e00000, 0xffe00000, G_I_r },
-  { "swi",    0x66000000, 0xffffffff, "" },
-  { "trapB",  0x74000000, 0xffe00000, "V" },
-  { "trap",   0x74000000, 0xffe00000, "V" }, /* synonym for trapu */
-  { "tstb",   0x1a000000, 0xffe00000, G_r_r },
-  { "tstb",   0x1a200000, 0xffe00000, G_T_r },
-  { "tstb",   0x1a400000, 0xffe00000, G_Q_r },
-  { "tstb",   0x1a600000, 0xffe00000, G_L_r },
-  { "tstb",   0x27800000, 0xffe00000, T_rr_ },
-  { "tstb",   0x27a00000, 0xffe00000, T_rS_ },
-  { "tstb",   0x27c00000, 0xffe00000, T_Sr_ },
-  { "tstb",   0x27e00000, 0xffe00000, T_SS_ },
-  { "tstb",   0x37800000, 0xffe00000, T_Jr_ }, /* C4x */
-  { "tstb",   0x37800000, 0xffe00000, T_rJ_ }, /* C4x */
-  { "tstb",   0x37a00000, 0xffe00000, T_rR_ }, /* C4x */
-  { "tstb",   0x37a00000, 0xffe00000, T_Rr_ }, /* C4x */
-  { "tstb",   0x37c00000, 0xffe00000, T_JR_ }, /* C4x */
-  { "tstb",   0x37c00000, 0xffe00000, T_RJ_ }, /* C4x */
-  { "tstb",   0x37e00000, 0xffe00000, T_RR_ }, /* C4x */
-  { "tstb3",  0x27800000, 0xffe00000, T_rr_ },
-  { "tstb3",  0x27a00000, 0xffe00000, T_rS_ },
-  { "tstb3",  0x27c00000, 0xffe00000, T_Sr_ },
-  { "tstb3",  0x27e00000, 0xffe00000, T_SS_ },
-  { "tstb3",  0x37800000, 0xffe00000, T_Jr_ }, /* C4x */
-  { "tstb3",  0x37800000, 0xffe00000, T_rJ_ }, /* C4x */
-  { "tstb3",  0x37a00000, 0xffe00000, T_rR_ }, /* C4x */
-  { "tstb3",  0x37a00000, 0xffe00000, T_Rr_ }, /* C4x */
-  { "tstb3",  0x37c00000, 0xffe00000, T_JR_ }, /* C4x */
-  { "tstb3",  0x37c00000, 0xffe00000, T_RJ_ }, /* C4x */
-  { "tstb3",  0x37e00000, 0xffe00000, T_RR_ }, /* C4x */
-  { "xor",    0x1a800000, 0xffe00000, G_r_r },
-  { "xor",    0x1aa00000, 0xffe00000, G_T_r },
-  { "xor",    0x1ac00000, 0xffe00000, G_Q_r },
-  { "xor",    0x1ae00000, 0xffe00000, G_L_r },
-  { "xor",    0x28000000, 0xffe00000, T_rrr },
-  { "xor",    0x28200000, 0xffe00000, T_Srr },
-  { "xor",    0x28400000, 0xffe00000, T_rSr },
-  { "xor",    0x28600000, 0xffe00000, T_SSr },
-  { "xor",    0x38000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "xor",    0x38000000, 0xffe00000, T_rJr }, /* C4x */
-  { "xor",    0x38200000, 0xffe00000, T_rRr }, /* C4x */
-  { "xor",    0x38200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "xor",    0x3c400000, 0xffe00000, T_JRr }, /* C4x */
-  { "xor",    0x3c400000, 0xffe00000, T_RJr }, /* C4x */
-  { "xor",    0x3c600000, 0xffe00000, T_RRr }, /* C4x */
-  { "xor3",   0x28000000, 0xffe00000, T_rrr },
-  { "xor3",   0x28200000, 0xffe00000, T_Srr },
-  { "xor3",   0x28400000, 0xffe00000, T_rSr },
-  { "xor3",   0x28600000, 0xffe00000, T_SSr },
-  { "xor3",   0x38000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "xor3",   0x38000000, 0xffe00000, T_rJr }, /* C4x */
-  { "xor3",   0x38200000, 0xffe00000, T_rRr }, /* C4x */
-  { "xor3",   0x38200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "xor3",   0x38400000, 0xffe00000, T_JRr }, /* C4x */
-  { "xor3",   0x38400000, 0xffe00000, T_RJr }, /* C4x */
-  { "xor3",   0x38600000, 0xffe00000, T_RRr }, /* C4x */
-    
-  /* Dummy entry, not included in c3x_num_insts.  This
-     lets code examine entry i + 1 without checking
-     if we've run off the end of the table.  */
-  { "",      0x0, 0x00, "" }
-};
-
-const unsigned int c3x_num_insts = (((sizeof c3x_insts) / (sizeof c3x_insts[0])) - 1);
-
-/* Define c4x additional opcodes for assembler and disassembler.  */
-static const c4x_inst_t c4x_insts[] =
-{
-  /* Parallel instructions.  */
-  { "frieee_stf",    0xf2000000, 0xfe000000, P_Sr_rS },
-  { "toieee_stf",    0xf0000000, 0xfe000000, P_Sr_rS },
-  { "stf_frieee",    0xf2000000, 0xfe000000, Q_rS_Sr },
-  { "stf_toieee",    0xf0000000, 0xfe000000, Q_rS_Sr },
-
-  { "bBaf",    0x68a00000, 0xffe00000, "Q" },
-  { "bBaf",    0x6aa00000, 0xffe00000, "P" },
-  { "baf",     0x68a00000, 0xffe00000, "Q" }, /* synonym for buaf */
-  { "baf",     0x6aa00000, 0xffe00000, "P" }, /* synonym for buaf */
-  { "bBat",    0x68600000, 0xffe00000, "Q" },
-  { "bBat",    0x6a600000, 0xffe00000, "P" },
-  { "bat",     0x68600000, 0xffe00000, "Q" }, /* synonym for buat */
-  { "bat",     0x6a600000, 0xffe00000, "P" }, /* synonym for buat */
-  { "laj",     0x63000000, 0xff000000, "B" },
-  { "lajB",    0x70200000, 0xffe00000, "Q" },
-  { "lajB",    0x72200000, 0xffe00000, "P" },
-  { "latB",    0x74800000, 0xffe00000, "V" },
-  { "frieee",  0x1c000000, 0xffe00000, G_r_r },
-  { "frieee",  0x1c200000, 0xffe00000, G_T_r },
-  { "frieee",  0x1c400000, 0xffe00000, G_Q_r },
-  { "frieee",  0x1c600000, 0xffe00000, G_F_r },
-  { "lb0",     0xb0000000, 0xffe00000, G_r_r },
-  { "lb0",     0xb0200000, 0xffe00000, G_T_r },
-  { "lb0",     0xb0400000, 0xffe00000, G_Q_r },
-  { "lb0",     0xb0600000, 0xffe00000, G_I_r },
-  { "lbu0",    0xb2000000, 0xffe00000, G_r_r },
-  { "lbu0",    0xb2200000, 0xffe00000, G_T_r },
-  { "lbu0",    0xb2400000, 0xffe00000, G_Q_r },
-  { "lbu0",    0xb2600000, 0xffe00000, G_L_r },
-  { "lb1",     0xb0800000, 0xffe00000, G_r_r },
-  { "lb1",     0xb0a00000, 0xffe00000, G_T_r },
-  { "lb1",     0xb0c00000, 0xffe00000, G_Q_r },
-  { "lb1",     0xb0e00000, 0xffe00000, G_I_r },
-  { "lbu1",    0xb2800000, 0xffe00000, G_r_r },
-  { "lbu1",    0xb2a00000, 0xffe00000, G_T_r },
-  { "lbu1",    0xb2c00000, 0xffe00000, G_Q_r },
-  { "lbu1",    0xb2e00000, 0xffe00000, G_L_r },
-  { "lb2",     0xb1000000, 0xffe00000, G_r_r },
-  { "lb2",     0xb1200000, 0xffe00000, G_T_r },
-  { "lb2",     0xb1400000, 0xffe00000, G_Q_r },
-  { "lb2",     0xb1600000, 0xffe00000, G_I_r },
-  { "lbu2",    0xb3000000, 0xffe00000, G_r_r },
-  { "lbu2",    0xb3200000, 0xffe00000, G_T_r },
-  { "lbu2",    0xb3400000, 0xffe00000, G_Q_r },
-  { "lbu2",    0xb3600000, 0xffe00000, G_L_r },
-  { "lb3",     0xb1800000, 0xffe00000, G_r_r },
-  { "lb3",     0xb1a00000, 0xffe00000, G_T_r },
-  { "lb3",     0xb1c00000, 0xffe00000, G_Q_r },
-  { "lb3",     0xb1e00000, 0xffe00000, G_I_r },
-  { "lbu3",    0xb3800000, 0xffe00000, G_r_r },
-  { "lbu3",    0xb3a00000, 0xffe00000, G_T_r },
-  { "lbu3",    0xb3c00000, 0xffe00000, G_Q_r },
-  { "lbu3",    0xb3e00000, 0xffe00000, G_L_r },
-  { "lda",     0x1e800000, 0xffe00000, "Q,Y" }, 
-  { "lda",     0x1ea00000, 0xffe00000, "@,Y" }, 
-  { "lda",     0x1ec00000, 0xffe00000, "*,Y" }, 
-  { "lda",     0x1ee00000, 0xffe00000, "S,Y" }, 
-  { "ldep",    0x76000000, 0xffe00000, "X,R" }, 
-  { "ldhi",    0x1fe00000, 0xffe00000, G_L_r },
-  { "ldhi",    0x1fe00000, 0xffe00000, "#,R" },
-  { "ldpe",    0x76800000, 0xffe00000, "Q,Z" }, 
-  { "ldpk",    0x1F700000, 0xffff0000, "#" },
-  { "lh0",     0xba000000, 0xffe00000, G_r_r },
-  { "lh0",     0xba200000, 0xffe00000, G_T_r },
-  { "lh0",     0xba400000, 0xffe00000, G_Q_r },
-  { "lh0",     0xba600000, 0xffe00000, G_I_r },
-  { "lhu0",    0xbb000000, 0xffe00000, G_r_r },
-  { "lhu0",    0xbb200000, 0xffe00000, G_T_r },
-  { "lhu0",    0xbb400000, 0xffe00000, G_Q_r },
-  { "lhu0",    0xbb600000, 0xffe00000, G_L_r },
-  { "lh1",     0xba800000, 0xffe00000, G_r_r },
-  { "lh1",     0xbaa00000, 0xffe00000, G_T_r },
-  { "lh1",     0xbac00000, 0xffe00000, G_Q_r },
-  { "lh1",     0xbae00000, 0xffe00000, G_I_r },
-  { "lhu1",    0xbb800000, 0xffe00000, G_r_r },
-  { "lhu1",    0xbba00000, 0xffe00000, G_T_r },
-  { "lhu1",    0xbbc00000, 0xffe00000, G_Q_r },
-  { "lhu1",    0xbbe00000, 0xffe00000, G_L_r },
-  { "lwl0",    0xb4000000, 0xffe00000, G_r_r },
-  { "lwl0",    0xb4200000, 0xffe00000, G_T_r },
-  { "lwl0",    0xb4400000, 0xffe00000, G_Q_r },
-  { "lwl0",    0xb4600000, 0xffe00000, G_I_r },
-  { "lwl1",    0xb4800000, 0xffe00000, G_r_r },
-  { "lwl1",    0xb4a00000, 0xffe00000, G_T_r },
-  { "lwl1",    0xb4c00000, 0xffe00000, G_Q_r },
-  { "lwl1",    0xb4e00000, 0xffe00000, G_I_r },
-  { "lwl2",    0xb5000000, 0xffe00000, G_r_r },
-  { "lwl2",    0xb5200000, 0xffe00000, G_T_r },
-  { "lwl2",    0xb5400000, 0xffe00000, G_Q_r },
-  { "lwl2",    0xb5600000, 0xffe00000, G_I_r },
-  { "lwl3",    0xb5800000, 0xffe00000, G_r_r },
-  { "lwl3",    0xb5a00000, 0xffe00000, G_T_r },
-  { "lwl3",    0xb5c00000, 0xffe00000, G_Q_r },
-  { "lwl3",    0xb5e00000, 0xffe00000, G_I_r },
-  { "lwr0",    0xb6000000, 0xffe00000, G_r_r },
-  { "lwr0",    0xb6200000, 0xffe00000, G_T_r },
-  { "lwr0",    0xb6400000, 0xffe00000, G_Q_r },
-  { "lwr0",    0xb6600000, 0xffe00000, G_I_r },
-  { "lwr1",    0xb6800000, 0xffe00000, G_r_r },
-  { "lwr1",    0xb6a00000, 0xffe00000, G_T_r },
-  { "lwr1",    0xb6c00000, 0xffe00000, G_Q_r },
-  { "lwr1",    0xb6e00000, 0xffe00000, G_I_r },
-  { "lwr2",    0xb7000000, 0xffe00000, G_r_r },
-  { "lwr2",    0xb7200000, 0xffe00000, G_T_r },
-  { "lwr2",    0xb7400000, 0xffe00000, G_Q_r },
-  { "lwr2",    0xb7600000, 0xffe00000, G_I_r },
-  { "lwr3",    0xb7800000, 0xffe00000, G_r_r },
-  { "lwr3",    0xb7a00000, 0xffe00000, G_T_r },
-  { "lwr3",    0xb7c00000, 0xffe00000, G_Q_r },
-  { "lwr3",    0xb7e00000, 0xffe00000, G_I_r },
-  { "mb0",     0xb8000000, 0xffe00000, G_r_r },
-  { "mb0",     0xb8200000, 0xffe00000, G_T_r },
-  { "mb0",     0xb8400000, 0xffe00000, G_Q_r },
-  { "mb0",     0xb8600000, 0xffe00000, G_I_r },
-  { "mb1",     0xb8800000, 0xffe00000, G_r_r },
-  { "mb1",     0xb8a00000, 0xffe00000, G_T_r },
-  { "mb1",     0xb8c00000, 0xffe00000, G_Q_r },
-  { "mb1",     0xb8e00000, 0xffe00000, G_I_r },
-  { "mb2",     0xb9000000, 0xffe00000, G_r_r },
-  { "mb2",     0xb9200000, 0xffe00000, G_T_r },
-  { "mb2",     0xb9400000, 0xffe00000, G_Q_r },
-  { "mb2",     0xb9600000, 0xffe00000, G_I_r },
-  { "mb3",     0xb9800000, 0xffe00000, G_r_r },
-  { "mb3",     0xb9a00000, 0xffe00000, G_T_r },
-  { "mb3",     0xb9c00000, 0xffe00000, G_Q_r },
-  { "mb3",     0xb9e00000, 0xffe00000, G_I_r },
-  { "mh0",     0xbc000000, 0xffe00000, G_r_r },
-  { "mh0",     0xbc200000, 0xffe00000, G_T_r },
-  { "mh0",     0xbc400000, 0xffe00000, G_Q_r },
-  { "mh0",     0xbc600000, 0xffe00000, G_I_r },
-  { "mh1",     0xbc800000, 0xffe00000, G_r_r },
-  { "mh1",     0xbca00000, 0xffe00000, G_T_r },
-  { "mh1",     0xbcc00000, 0xffe00000, G_Q_r },
-  { "mh1",     0xbce00000, 0xffe00000, G_I_r },
-  { "mh2",     0xbd000000, 0xffe00000, G_r_r },
-  { "mh2",     0xbd200000, 0xffe00000, G_T_r },
-  { "mh2",     0xbd400000, 0xffe00000, G_Q_r },
-  { "mh2",     0xbd600000, 0xffe00000, G_I_r },
-  { "mh3",     0xbd800000, 0xffe00000, G_r_r },
-  { "mh3",     0xbda00000, 0xffe00000, G_T_r },
-  { "mh3",     0xbdc00000, 0xffe00000, G_Q_r },
-  { "mh3",     0xbde00000, 0xffe00000, G_I_r },
-  { "mpyshi",  0x1d800000, 0xffe00000, G_r_r },
-  { "mpyshi",  0x1da00000, 0xffe00000, G_T_r },
-  { "mpyshi",  0x1dc00000, 0xffe00000, G_Q_r },
-  { "mpyshi",  0x1de00000, 0xffe00000, G_I_r },
-  { "mpyshi",  0x28800000, 0xffe00000, T_rrr },
-  { "mpyshi",  0x28a00000, 0xffe00000, T_Srr },
-  { "mpyshi",  0x28c00000, 0xffe00000, T_rSr },
-  { "mpyshi",  0x28e00000, 0xffe00000, T_SSr },
-  { "mpyshi",  0x38800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "mpyshi",  0x38800000, 0xffe00000, T_rJr }, /* C4x */
-  { "mpyshi",  0x38a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "mpyshi",  0x38a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "mpyshi",  0x38c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "mpyshi",  0x38c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "mpyshi",  0x38e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "mpyshi3", 0x28800000, 0xffe00000, T_rrr },
-  { "mpyshi3", 0x28a00000, 0xffe00000, T_Srr },
-  { "mpyshi3", 0x28c00000, 0xffe00000, T_rSr },
-  { "mpyshi3", 0x28e00000, 0xffe00000, T_SSr },
-  { "mpyshi3", 0x38800000, 0xffe00000, T_Jrr }, /* C4x */
-  { "mpyshi3", 0x38800000, 0xffe00000, T_rJr }, /* C4x */
-  { "mpyshi3", 0x38a00000, 0xffe00000, T_rRr }, /* C4x */
-  { "mpyshi3", 0x38a00000, 0xffe00000, T_Rrr }, /* C4x */
-  { "mpyshi3", 0x38c00000, 0xffe00000, T_JRr }, /* C4x */
-  { "mpyshi3", 0x38c00000, 0xffe00000, T_RJr }, /* C4x */
-  { "mpyshi3", 0x38e00000, 0xffe00000, T_RRr }, /* C4x */
-  { "mpyuhi",  0x1e000000, 0xffe00000, G_r_r },
-  { "mpyuhi",  0x1e200000, 0xffe00000, G_T_r },
-  { "mpyuhi",  0x1e400000, 0xffe00000, G_Q_r },
-  { "mpyuhi",  0x1e600000, 0xffe00000, G_I_r },
-  { "mpyuhi",  0x29000000, 0xffe00000, T_rrr },
-  { "mpyuhi",  0x29200000, 0xffe00000, T_Srr },
-  { "mpyuhi",  0x29400000, 0xffe00000, T_rSr },
-  { "mpyuhi",  0x29600000, 0xffe00000, T_SSr },
-  { "mpyuhi",  0x39000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "mpyuhi",  0x39000000, 0xffe00000, T_rJr }, /* C4x */
-  { "mpyuhi",  0x39200000, 0xffe00000, T_rRr }, /* C4x */
-  { "mpyuhi",  0x39200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "mpyuhi",  0x39400000, 0xffe00000, T_JRr }, /* C4x */
-  { "mpyuhi",  0x39400000, 0xffe00000, T_RJr }, /* C4x */
-  { "mpyuhi",  0x39600000, 0xffe00000, T_RRr }, /* C4x */
-  { "mpyuhi3", 0x29000000, 0xffe00000, T_rrr },
-  { "mpyuhi3", 0x29200000, 0xffe00000, T_Srr },
-  { "mpyuhi3", 0x29400000, 0xffe00000, T_rSr },
-  { "mpyuhi3", 0x29600000, 0xffe00000, T_SSr },
-  { "mpyuhi3", 0x39000000, 0xffe00000, T_Jrr }, /* C4x */
-  { "mpyuhi3", 0x39000000, 0xffe00000, T_rJr }, /* C4x */
-  { "mpyuhi3", 0x39200000, 0xffe00000, T_rRr }, /* C4x */
-  { "mpyuhi3", 0x39200000, 0xffe00000, T_Rrr }, /* C4x */
-  { "mpyuhi3", 0x39400000, 0xffe00000, T_JRr }, /* C4x */
-  { "mpyuhi3", 0x39400000, 0xffe00000, T_RJr }, /* C4x */
-  { "mpyuhi3", 0x39600000, 0xffe00000, T_RRr }, /* C4x */
-  { "rcpf",    0x1d000000, 0xffe00000, G_r_r },
-  { "rcpf",    0x1d200000, 0xffe00000, G_T_r },
-  { "rcpf",    0x1d400000, 0xffe00000, G_Q_r },
-  { "rcpf",    0x1d600000, 0xffe00000, G_F_r },
-  { "retiBd",  0x78200000, 0xffe00000, "" },
-  { "retid",   0x78200000, 0xffe00000, "" }, /* synonym for retiud */
-  { "rptbd",   0x79800000, 0xff000000, "Q" },  
-  { "rptbd",   0x65000000, 0xff000000, "B" },  
-  { "rsqrf",   0x1c800000, 0xffe00000, G_r_r },
-  { "rsqrf",   0x1ca00000, 0xffe00000, G_T_r },
-  { "rsqrf",   0x1cc00000, 0xffe00000, G_Q_r },
-  { "rsqrf",   0x1ce00000, 0xffe00000, G_F_r },
-  { "stik",    0x15000000, 0xffe00000, "T,@" },
-  { "stik",    0x15600000, 0xffe00000, "T,*" },
-  { "toieee",  0x1b800000, 0xffe00000, G_r_r },
-  { "toieee",  0x1ba00000, 0xffe00000, G_T_r },
-  { "toieee",  0x1bc00000, 0xffe00000, G_Q_r },
-  { "toieee",  0x1be00000, 0xffe00000, G_F_r },
-  { "idle2",   0x06000001, 0xffffffff, "" }, 
-    
-  /* Dummy entry, not included in num_insts.  This
-     lets code examine entry i+1 without checking
-     if we've run off the end of the table.  */
-  { "",      0x0, 0x00, "" }
-};
-
-const unsigned int c4x_num_insts = (((sizeof c4x_insts) / (sizeof c4x_insts[0])) - 1);
-    
-
 struct c4x_cond
 {
   char *        name;
@@ -1341,4 +218,862 @@ static const c4x_indirect_t c4x_indirects[] =
 
 #define C3X_MODN_MAX 0x19
 
-const unsigned int num_indirects = (((sizeof c4x_indirects) / (sizeof c4x_indirects[0])) - 1);
+const unsigned int c4x_num_indirects = (((sizeof c4x_indirects) / (sizeof c4x_indirects[0])) - 1);
+
+/* Instruction template.  */
+struct c4x_inst
+{
+  char *        name;
+  unsigned long opcode;
+  unsigned long opmask;
+  char *        args;
+  unsigned long oplevel;
+};
+
+typedef struct c4x_inst c4x_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 C4X_OPERANDS_MAX 7     /* Max number of operands for an inst.  */
+#define C4X_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 c3x opcodes for assembler and disassembler.  */
+static const c4x_inst_t c4x_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 c3x_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 c4x_num_insts = (((sizeof c4x_insts) / (sizeof c4x_insts[0])) - 1);
index 4a32a3b298a7c85f8e7c52db7815fbf90b48fae8..7280aa03747f7732781fe580c13cbd276c12feed 100644 (file)
@@ -1,3 +1,24 @@
+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-03-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
 
-       * cp-demangle.c (java_demangle_v3): Don't try to release "demangled" 
+       * cp-demangle.c (java_demangle_v3): Don't try to release "demangled"
        if it is NULL.
 
 2002-03-27  DJ Delorie  <dj@redhat.com>
@@ -559,10 +580,10 @@ Thu Nov 15 11:06:25 2001  Jeffrey A Law  (law@cygnus.com)
 
 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.
+       * 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>
 
index e0bb15a7519825b06cc6a1a67d1fa7bcdf8a90c0..cdf14a4311b11589ab2d431f996fe63086a81f82 100644 (file)
@@ -135,6 +135,7 @@ CFILES = alloca.c argv.c asprintf.c atexit.c                                \
        hashtab.c hex.c                                                 \
        index.c insque.c                                                \
        lbasename.c                                                     \
+       make-relative-prefix.c                                          \
        make-temp-file.c md5.c memchr.c memcmp.c memcpy.c memmove.c     \
         memset.c mkstemps.c                                            \
        objalloc.c obstack.c                                            \
@@ -159,6 +160,7 @@ REQUIRED_OFILES = regex.o cplus-dem.o cp-demangle.o md5.o           \
        getopt.o getopt1.o getpwd.o getruntime.o                        \
        hashtab.o hex.o                                                 \
        lbasename.o                                                     \
+       make-relative-prefix.o                                          \
        make-temp-file.o                                                \
        objalloc.o obstack.o                                            \
        partition.o pexecute.o                                          \
@@ -432,6 +434,7 @@ hashtab.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/hashtab.h \
 hex.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 lbasename.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
        $(INCDIR)/safe-ctype.h
+make-relative-prefix.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 make-temp-file.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
 md5.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/md5.h
 memchr.o: $(INCDIR)/ansidecl.h
index b518243d95a6729c7603b29a749cf933ad4c37bb..7d9c181d219549150720c631b3b452a84d911adb 100644 (file)
@@ -276,7 +276,7 @@ itself.
 
 @end deftypefn
 
-@c getruntime.c:78
+@c getruntime.c:82
 @deftypefn Replacement long get_run_time (void)
 
 Returns the time used so far, in microseconds.  If possible, this is
@@ -322,11 +322,12 @@ between calls to @code{getpwd}.
 
 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}.
+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:33
+@c hex.c:34
 @deftypefn Extension int hex_p (int @var{c})
 
 Evaluates to non-zero if the given character is a valid hex character,
@@ -335,7 +336,7 @@ or zero if it is not.  Note that the value you pass will be cast to
 
 @end deftypefn
 
-@c hex.c:41
+@c hex.c:42
 @deftypefn Extension int hex_value (int @var{c})
 
 Returns the numeric equivalent of the given character when interpreted
@@ -391,6 +392,22 @@ and a path ending in @code{/} returns the empty string after it.
 
 @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 strings @var{progname}, @var{bin_prefix}, @var{prefix}, return a string
+that gets to @var{prefix} starting with the directory portion of @var{progname} and
+a relative pathname of the difference between @var{bin_prefix} and @var{prefix}.
+
+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:138
 @deftypefn Replacement char* make_temp_file (const char *@var{suffix})
 
index 2e829fb3ee125de210516be5a0eb11e8b5b4ece4..e458f2a6a6412da925c0a6733910210c75bfe761 100644 (file)
@@ -343,68 +343,76 @@ md5_process_block (buffer, len, ctx)
         in CORRECT_WORDS.  Redefine the macro to take an additional first
         argument specifying the function to use.  */
 #undef OP
-#define OP(f, a, b, c, d, k, s, T)                                     \
+#define OP(a, b, c, d, k, s, T)                                                \
       do                                                               \
        {                                                               \
-         a += f (b, c, d) + correct_words[k] + T;                      \
+         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 (FG, A, B, C, D,  1,  5, (md5_uint32) 0xf61e2562);
-      OP (FG, D, A, B, C,  6,  9, (md5_uint32) 0xc040b340);
-      OP (FG, C, D, A, B, 11, 14, (md5_uint32) 0x265e5a51);
-      OP (FG, B, C, D, A,  0, 20, (md5_uint32) 0xe9b6c7aa);
-      OP (FG, A, B, C, D,  5,  5, (md5_uint32) 0xd62f105d);
-      OP (FG, D, A, B, C, 10,  9, (md5_uint32) 0x02441453);
-      OP (FG, C, D, A, B, 15, 14, (md5_uint32) 0xd8a1e681);
-      OP (FG, B, C, D, A,  4, 20, (md5_uint32) 0xe7d3fbc8);
-      OP (FG, A, B, C, D,  9,  5, (md5_uint32) 0x21e1cde6);
-      OP (FG, D, A, B, C, 14,  9, (md5_uint32) 0xc33707d6);
-      OP (FG, C, D, A, B,  3, 14, (md5_uint32) 0xf4d50d87);
-      OP (FG, B, C, D, A,  8, 20, (md5_uint32) 0x455a14ed);
-      OP (FG, A, B, C, D, 13,  5, (md5_uint32) 0xa9e3e905);
-      OP (FG, D, A, B, C,  2,  9, (md5_uint32) 0xfcefa3f8);
-      OP (FG, C, D, A, B,  7, 14, (md5_uint32) 0x676f02d9);
-      OP (FG, B, C, D, A, 12, 20, (md5_uint32) 0x8d2a4c8a);
+      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 (FH, A, B, C, D,  5,  4, (md5_uint32) 0xfffa3942);
-      OP (FH, D, A, B, C,  8, 11, (md5_uint32) 0x8771f681);
-      OP (FH, C, D, A, B, 11, 16, (md5_uint32) 0x6d9d6122);
-      OP (FH, B, C, D, A, 14, 23, (md5_uint32) 0xfde5380c);
-      OP (FH, A, B, C, D,  1,  4, (md5_uint32) 0xa4beea44);
-      OP (FH, D, A, B, C,  4, 11, (md5_uint32) 0x4bdecfa9);
-      OP (FH, C, D, A, B,  7, 16, (md5_uint32) 0xf6bb4b60);
-      OP (FH, B, C, D, A, 10, 23, (md5_uint32) 0xbebfbc70);
-      OP (FH, A, B, C, D, 13,  4, (md5_uint32) 0x289b7ec6);
-      OP (FH, D, A, B, C,  0, 11, (md5_uint32) 0xeaa127fa);
-      OP (FH, C, D, A, B,  3, 16, (md5_uint32) 0xd4ef3085);
-      OP (FH, B, C, D, A,  6, 23, (md5_uint32) 0x04881d05);
-      OP (FH, A, B, C, D,  9,  4, (md5_uint32) 0xd9d4d039);
-      OP (FH, D, A, B, C, 12, 11, (md5_uint32) 0xe6db99e5);
-      OP (FH, C, D, A, B, 15, 16, (md5_uint32) 0x1fa27cf8);
-      OP (FH, B, C, D, A,  2, 23, (md5_uint32) 0xc4ac5665);
+      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 (FI, A, B, C, D,  0,  6, (md5_uint32) 0xf4292244);
-      OP (FI, D, A, B, C,  7, 10, (md5_uint32) 0x432aff97);
-      OP (FI, C, D, A, B, 14, 15, (md5_uint32) 0xab9423a7);
-      OP (FI, B, C, D, A,  5, 21, (md5_uint32) 0xfc93a039);
-      OP (FI, A, B, C, D, 12,  6, (md5_uint32) 0x655b59c3);
-      OP (FI, D, A, B, C,  3, 10, (md5_uint32) 0x8f0ccc92);
-      OP (FI, C, D, A, B, 10, 15, (md5_uint32) 0xffeff47d);
-      OP (FI, B, C, D, A,  1, 21, (md5_uint32) 0x85845dd1);
-      OP (FI, A, B, C, D,  8,  6, (md5_uint32) 0x6fa87e4f);
-      OP (FI, D, A, B, C, 15, 10, (md5_uint32) 0xfe2ce6e0);
-      OP (FI, C, D, A, B,  6, 15, (md5_uint32) 0xa3014314);
-      OP (FI, B, C, D, A, 13, 21, (md5_uint32) 0x4e0811a1);
-      OP (FI, A, B, C, D,  4,  6, (md5_uint32) 0xf7537e82);
-      OP (FI, D, A, B, C, 11, 10, (md5_uint32) 0xbd3af235);
-      OP (FI, C, D, A, B,  2, 15, (md5_uint32) 0x2ad7d2bb);
-      OP (FI, B, C, D, A,  9, 21, (md5_uint32) 0xeb86d391);
+      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;
index ea6a31f4c4eb56be32cf401515e8846caf3b6ef4..d60a3baa19bc13295706d4471e0d6fcad7b8aac5 100644 (file)
--- a/ltcf-c.sh
+++ b/ltcf-c.sh
@@ -108,7 +108,7 @@ EOF
     extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
       sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //; p; }" -e d < $0 > $output_objdir/impgen.c~
       test -f $output_objdir/impgen.exe || (cd $output_objdir && \
-      if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
+      if test "x$BUILD_CC" != "x" ; then $BUILD_CC -o impgen impgen.c ; \
       else $CC -o impgen impgen.c ; fi)~
       $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
 
index 7be87123642ab4878c9527a4ab83a6839d130b19..d33278a59693ff706bc24383487ca2b79ed6bbc8 100644 (file)
@@ -111,7 +111,7 @@ EOF
     extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
       sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //; p; }" -e d < $0 > $output_objdir/impgen.c~
       test -f $output_objdir/impgen.exe || (cd $output_objdir && \
-      if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
+      if test "x$BUILD_CC" != "x" ; then $BUILD_CC -o impgen impgen.c ; \
       else $CC -o impgen impgen.c ; fi)~
       $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
 
index 8b59d38c68b0796f084cf8dbc7ac422a88d90c9c..a46ca3666a468a66e35090843100fa1b72849eb5 100644 (file)
@@ -1,3 +1,17 @@
+2002-11-28  Elena Zannoni  <ezannoni@redhat.com>
+
+       * Makefile.in (install): Move install-info to here...
+       (all): ...from here.
+
+2002-11-26  Elena Zannoni  <ezannoni@redhat.com>
+
+       * Makefile.in (INFO_DEPS): Define.
+       (all): Add install-info to the rule.
+       (info): Unse INFO_DEPS.
+       (install-info): Rewrite.
+       (uninstall-info): New.
+       (uninstall): New.
+
 2002-04-07  Andrew Cagney  <ac131313@redhat.com>
 
        From 2002-03-05 Scott Pakin <pakin@uiuc.edu>
index cde39897aaa01b06116c26789a64ad015796f750..06fbd9c383259a9dda9c9487fa7165d31f412baf 100644 (file)
@@ -64,6 +64,9 @@ MAKEINFO=makeinfo
 
 SET_TEXINPUTS = TEXINPUTS=${TEXIDIR}:.:$(srcdir):$(READLINE_DIR):$$TEXINPUTS
 
+# Files which should be generated via 'info' and installed by 'install-info'
+INFO_DEPS = mmalloc.info
+
 # The TeX formatter
 TEX = tex
 
@@ -96,7 +99,7 @@ STAGESTUFF =  $(TARGETLIB) *.o
 
 all:           $(TARGETLIB)
 
-info: mmalloc.info
+info: $(INFO_DEPS)
 dvi: mmalloc.dvi
 clean-info:
 installcheck:
@@ -110,14 +113,41 @@ mmalloc.dvi: mmalloc.texi
        rm -f mmalloc.?? mmalloc.??s mmalloc.log mmalloc.aux mmalloc.toc
 
 install-info: info
-       $(SHELL) $(srcdir)/../mkinstalldirs $(infodir)
-       if test ! -f mmalloc.info ; then cd $(srcdir); fi; \
-       $(INSTALL_DATA) mmalloc.info $(infodir)/mmalloc.info
+       @list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+         for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+           if test -f $$d/$$ifile; then \
+             echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
+             $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
+           else : ; fi; \
+         done; \
+       done
+       $(POST_INSTALL)
        @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
-         echo " install-info --info-dir=$(infodir) $(infodir)/mmalloc.info";\
-         install-info --info-dir=$(infodir) $(infodir)/mmalloc.info || :;\
+         list='$(INFO_DEPS)'; \
+         for file in $$list; do \
+           echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
+           install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
+         done; \
        else : ; fi
 
+uninstall-info:
+       $(PRE_UNINSTALL)
+       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+         ii=yes; \
+       else ii=; fi; \
+       list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         test -z "$$ii" \
+           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
+       done
+       $(NORMAL_UNINSTALL)
+       list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
+       done
+
 check: test1.c
 #      $(CC) -g $(srcdir)/test1.c libmmalloc.a
 # This loses for Canadian cross (building mmalloc with a cross-compiler).
@@ -125,11 +155,13 @@ check: test1.c
 # for gdb, perhaps).
 #      ./a.out
 
-install:       all
+install:       all install-info
                $(INSTALL_DATA) $(TARGETLIB) $(libdir)/$(TARGETLIB)n
                $(RANLIB) $(libdir)/$(TARGETLIB)n
                mv -f $(libdir)/$(TARGETLIB)n $(libdir)/$(TARGETLIB)
 
+uninstall:     uninstall-info
+
 $(TARGETLIB):  $(TARGETOBJS)
                $(RM) -rf $@
                $(AR) $(AR_FLAGS) $@ $(TARGETOBJS)
index 7366e94e887f68d9198f3280493f21d9762df1a7..430b4ddba6352bfd3e982465c06544b889f13e61 100644 (file)
@@ -1,3 +1,242 @@
+2002-12-23  Alan Modra  <amodra@bigpond.net.au>
+
+       * Makefile.in: Regenerate.
+
+2002-12-19  Nick Kelsey  <nickk@ubicom.com>
+
+       * cgen-asm.c (cgen_parse_keyword): Added underscore to symbol character
+       check to fix false keyword trigger with names such as <keyword>_foo.
+
+2002-12-19  Doug Evans  <dje@sebabeach.org>
+
+       * Makefile.am (CGEN_CPUS): New variable.
+       (run-cgen-all): New rule.
+       * Makefile.in: Regenerate.
+
+2002-12-18  Chris Demetriou  <cgd@broadcom.com>
+
+       * mips-opc.c (mips_builtin_opcodes): Remove one "ror" and two
+       "dror" entries, and reorder the remaining "dror" and "ror" entries.
+
+2002-12-16  DJ Delorie  <dj@delorie.com>
+
+       * xstormy16-asm.c (parse_immediate16): Add prototype.
+
+2002-12-16  Andrew MacLeod  <amacleod@redhat.com>
+
+       * xstormy16-asm.c: Regenerate.
+
+2002-12-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * ns32k-dis.c (print_insn_ns32k): Constify "d", remove register
+       keyword.
+
+2002-12-13  Alan Modra  <amodra@bigpond.net.au>
+
+       * h8500-opc.h (h8500_table): Add missing initializers to quiet
+       warnings.
+       * pj-dis.c (print_insn_pj): Adjust for pj_opc_info_t change.
+       * pj-opc.c (pj_opc_info): Add braces around union initializer.
+       * z8kgen.c: Include "libiberty.h".
+       (opt, args, toks): Fix initializer warnings.
+       (chewname): Make "name" a char **.  Return mnemonic trimmed of
+       operands.
+       (gas): Improve emitted "DO NOT EDIT" warning.  Format emitted
+       opcode_entry_type, and make "nicename" and "name" const.  Make
+       z8k_table const too.  Formatting.  Generate idx as gas needs it.
+       * z8k-opc.h: Regenerate.
+
+2002-12-08  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * m68hc11-dis.c (print_indexed_operand): Fix PC-relative address
+       for 9 and 16-bit PC-relative addressing mode.
+
+2002-12-05  Aldy Hernandez  <aldyh@redhat.com>
+
+       * ppc-opc.c: Delete evsabs, evsnabs, evsneg, evsadd, evssub,
+       evsmul, evsdiv, evscmpgt, evsgmplt, evststgt, evtstlt, evststeq,
+       evscfui, evscfsi, evscfuf, evscfsf, evsctui, evsctuiz, evsctsi,
+       evsctsiz, evsctuf, evsctsf, evmwhssfaa, evmwhssmaa, evmwhsmfaa,
+       evmwhsmiaa, evmwhusiaa, evmwhumiaa, evmwhssfan, evmwhssian,
+       evmwhsmfan, evmwhsmian, evmwhusian, evmwhumian, evmwhgssfaa,
+       evmwhgsmfaa, evmwhgsmiaa, evmwhgumiaa, evmwhgssfan, evmwhgsmfan,
+       evmwhgsmian, evmwhgumian.
+       (mftb): Add to opcode table.
+       (mtspefscr): Change RT to RS in opcode table.
+
+2002-12-05  Aldy Hernandez  <aldyh@redhat.com>
+
+       * ppc-opc.c: Move mbar and msync up.  Change mask for mbar and
+       msync.
+
+2002-12-04  David Mosberger  <davidm@hpl.hp.com>
+
+       * ia64-opc-d.c (ia64_opcodes_d): Add "hint" instruction.
+       * ia64-opc-b.c: Add "hint.b" instruction.
+       * ia64-opc-f.c: Add "hint.f" instruction.
+       * ia64-opc-i.c: Add "hint.i" instruction.
+       * ia64-opc-m.c: Add "hint.m", "fc.i", "ld16", "st16", and
+       "cmp8xchg16" instructions.
+       * ia64-opc-x.c: Add "hint.x" instruction.
+
+       * ia64-opc.h (AR_CSD): New macro.
+
+       * ia64-ic.tbl: Update according to SDM2.1.
+       * ia64-raw.tbl: Ditto.
+       * ia64-waw.tbl: Ditto.
+
+       * ia64-gen.c (in_iclass): Handle "hint" like "nop".
+       (lookup_regindex): Recognize AR[FCR], AR[EFLAG], AR[CSD],
+       AR[SSD], AR[CFLG], AR[FSR], AR[FIR], and AR[FDR].
+       * ia64-asmtab.c: Regenerate.
+       
+2002-11-25  Aldy Hernandez  <aldyh@redhat.com>
+
+       * ppc-opc.c: Remove evmwlssf, evmwlssfa, evmwlsmf, evmwlsmfa,
+       evmwlssfaaw, evmwlsmfaaw, evmwlssfanw, evmwlsfanw.
+
+2002-12-04  Aldy Hernandez  <aldyh@redhat.com>
+
+       * ppc-opc.c (PMRN): Remove.
+       (RA): Set to NB + 1.
+       (powerpc_opcodes): Change PMRN to SPR.
+       Change all RD to RS.
+       Change mftb to look like mftbl.
+       Move mftb before mftbl.
+       Add mfbbtar.
+       Add mtbbtar.
+       Change mfpmr to use PMR.
+       Change mtpmr to use PMR.
+       (RD): Remove.
+       (insert_ev2): Fix mask and shift.
+       (extract_ev2): Same.
+       (insert_ev4): Same.
+       (extract_ev4): Same.
+       (PMR): Define.
+       (extract_pmrn): Remove.
+       (insert_pmrn): Remove.
+
+2002-12-03  Richard Henderson  <rth@redhat.com>
+
+       * ia64-opc-m.c: Add ld8.mov.
+       * ia64-asmtab.c: Regenerate.
+
+2002-12-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * arm-dis.c (print_insn_arm): Constify "insn".  Formatting.
+       (print_insn_thumb): Likewise.
+       * h8500-dis.c (print_insn_h8500): Constify "opcode".
+       * mcore-dis.c (print_insn_mcore): Constify "op".  Formatting.
+       * ns32k-dis.c (print_insn_arg <case 'F'>): Use a union to avoid
+       type-punned pointer warnings.
+       <case 'L'>: Likewise.  Fix error message too.
+       * pdp11-dis.c (print_reg): Warning fix.
+       * sh-dis.c (print_movxy): Constify "op" param.
+       (print_insn_ddt): Constify sh_opcode_info vars.
+       (print_insn_ppi): Likewise.
+       (print_insn_sh): Likewise.
+       * tic30-dis.c (cnvt_tmsfloat_ieee): Use a union to avoid
+       type-punned pointer warnings.
+       * w65-dis.c (print_insn_w65): Constify "op".
+
+2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * m68hc11-dis.c (PC_REGNUM): Define.
+       (print_indexed_operand): Need an adjustment for some PC-relative
+       operand modes; print the final address of PC-relative modes.
+       (print_insn): Take into account movw/movb to adjust the PC-relative
+       operand addresses.
+
+2002-11-30  Alan Modra  <amodra@bigpond.net.au>
+
+       *arm-dis.c, cris-dis.c, h8300-dis.c, mips-dis.c, mmix-dis.c, sh-dis.c,
+       sh64-dis.c, v850-dis.c: Replace boolean with bfd_boolean, true with
+       TRUE, false with FALSE.  Simplify comparisons of bfd_boolean vars
+       with TRUE/FALSE.  Formatting.
+
+2002-11-25  DJ Delorie  <dj@redhat.com>
+
+       * xstormy16-opc.c: Regenerate.
+
+2002-11-25  Jim Wilson  <wilson@redhat.com>
+
+       * ia64-dis.c (print_insn_ia64): Correct handling of IA64_OPND_TGT64.
+
+2002-11-15  DJ Delorie  <dj@redhat.com>
+
+       * xstormy16-desc.c: Regenerate.
+       * xstormy16-opc.c: Regenerate.
+       * xstormy16-opc.h: Regenerate.
+       
+2002-11-18  Klee Dienes  <kdienes@apple.com>
+
+       * avr-dis.c: Include libiberty.h (for xmalloc).
+       (struct avr_opcodes_s): Remove 'bin_mask' field (it's
+       automatically computed in the init routine).
+       (AVR_INSN): No longer provide bin_mask field in initializer.
+       (avr_opcodes_s): Declare as const.
+       (print_insn_avr): Store the bin_mask field in a separate table
+       (allocated with xmalloc); iterate through it at the same time as
+       we iterate through the opcodes.
+
+2002-11-18  Klee Dienes  <kdienes@apple.com>
+
+       * h8300-dis.c: Include libiberty.h (for xmalloc).
+       (struct h8_instruction): New type, used to wrap h8_opcodes with a
+       length field (computed at run-time).
+       (h8_instructions): New variable.
+       (bfd_h8_disassemble_init): Allocate the storage for
+       h8_instructions.  Fill h8_instructions with pointers to the
+       appropriate opcode and the correct value for the length field.
+       (bfd_h8_disassemble): Iterate through h8_instructions instead of
+       h8_opcodes.
+
+2002-11-18  Klee Dienes  <kdienes@apple.com>
+
+       * arc-opc.c (arc_ext_opcodes): Define.
+       (arc_ext_operands): Define.
+       * i386-dis.c (Suffix3DNow): Declare as const.
+       * arm-opc.h (arm_opcodes): Declare as const.
+       (thumb_opcodes): Declare as const.
+       * h8500-opc.h (h8500_table): Declare as const.
+       (h8500_table): Use a NULL for the opcode in the terminator, so
+       that code testing (opcode->name) behaves correctly.
+       * mcore-opc.h (mcore_table): Declare as const.
+       * sh-opc.h (sh_table): Declare as const.
+       * w65-opc.h (optable): Declare as const.
+       * z8k-opc.h (z8k_table): Declare as const.
+
+2002-11-18  Svein E. Seldal  <Svein.Seldal@solidas.com>
+
+       * tic4x-dis.c: Added support for enhanced and special insn.
+       (c4x_print_op): Added insn class 'i' and 'j'
+       (c4x_hash_opcode_special): Add to support special insn
+       (c4x_hash_opcode): Update to support the new opcode-list
+       format. Add support for the new special insns.
+       (c4x_disassemble): New opcode-list support.
+
+2002-11-16  Klee Dienes  <kdienes@apple.com>
+
+       * m88k-dis.c: Include libiberty.h (for xmalloc).
+       (HASHTAB): New type, used to build instruction hash tables.
+       Contains a pointer to an INSTAB and a pointer to the next hash
+       chain entry.
+       (instructions): Move definition from m88k.h; remove initialization
+       of 'next' field.
+       (hashtable): Now an aray of pointer-to-HASHTAB, not INSTAB.
+       (printop): Mark pointer to OPSPEC as const.
+       (install): Remove; fold into init_disasm.
+       (m88kdis): Update to ihashtab_initialized to 1 after calling
+       init_disasm.  entry_ptr now iterates through HASHTABs, not
+       INSTABs.
+       (init_disasm): Iterate through the instructions and add to
+       hashtable[].
+
+2002-11-16  Svein E. Seldal  <Svein.Seldal@solidas.com>
+
+       * tic4x-dis.c: (c4x_print_op): Add support for the new argument
+         format. Fix bug in 'N' register printer.
+
 2002-11-12  Segher Boessenkool  <segher@koffie.nl>
 
        * ppc-dis.c (print_insn_powerpc): Correct condition register display.
index 6bdfa36ca1c5a9be1106785ea5e2b0ddc5d40cee..ba0072681c3c969fae26723ed3cb9a4825673dac 100644 (file)
@@ -342,6 +342,8 @@ CGENDEPS = \
        $(CGENDIR)/opc-opinst.scm \
        cgen-asm.in cgen-dis.in cgen-ibld.in
 
+CGEN_CPUS = fr30 frv ip2k m32r openrisc xstormy16
+
 if CGEN_MAINT
 IP2K_DEPS = stamp-ip2k
 M32R_DEPS = stamp-m32r
@@ -365,6 +367,14 @@ run-cgen:
        touch stamp-${prefix}
 .PHONY: run-cgen
 
+# Maintainer utility rule to regenerate all cgen files.
+run-cgen-all:
+       for c in $(CGEN_CPUS) ; \
+       do \
+               $(MAKE) stamp-$$c || exit 1 ; \
+       done
+.PHONY: run-cgen-all
+
 # For now, require developers to configure with --enable-cgen-maint.
 $(srcdir)/ip2k-desc.h $(srcdir)/ip2k-desc.c $(srcdir)/ip2k-opc.h $(srcdir)/ip2k-opc.c $(srcdir)/ip2k-ibld.c $(srcdir)/ip2k-asm.c $(srcdir)/ip2k-dis.c: $(IP2K_DEPS)
        @true
index 6d1180216938466b2a490e564bf58ec6e3fec130..da66cf594e8a53299d2b3c4e28b33dd0a28bdf27 100644 (file)
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -409,6 +409,8 @@ CGENDEPS = \
        $(CGENDIR)/opc-opinst.scm \
        cgen-asm.in cgen-dis.in cgen-ibld.in
 
+
+CGEN_CPUS = fr30 frv ip2k m32r openrisc xstormy16
 @CGEN_MAINT_TRUE@IP2K_DEPS = @CGEN_MAINT_TRUE@stamp-ip2k
 @CGEN_MAINT_FALSE@IP2K_DEPS = 
 @CGEN_MAINT_TRUE@M32R_DEPS = @CGEN_MAINT_TRUE@stamp-m32r
@@ -449,7 +451,7 @@ acinclude.m4 aclocal.m4 config.in configure configure.in
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = gtar
+TAR = tar
 GZIP_ENV = --best
 SOURCES = libopcodes.a.c $(libopcodes_la_SOURCES)
 OBJECTS = libopcodes.a.$(OBJEXT) $(libopcodes_la_OBJECTS)
@@ -598,7 +600,7 @@ maintainer-clean-recursive:
        dot_seen=no; \
        rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
          rev="$$subdir $$rev"; \
-         test "$$subdir" != "." || dot_seen=yes; \
+         test "$$subdir" = "." && dot_seen=yes; \
        done; \
        test "$$dot_seen" = "no" && rev=". $$rev"; \
        target=`echo $@ | sed s/-recursive//`; \
@@ -861,6 +863,14 @@ run-cgen:
        touch stamp-${prefix}
 .PHONY: run-cgen
 
+# Maintainer utility rule to regenerate all cgen files.
+run-cgen-all:
+       for c in $(CGEN_CPUS) ; \
+       do \
+               $(MAKE) stamp-$$c || exit 1 ; \
+       done
+.PHONY: run-cgen-all
+
 # For now, require developers to configure with --enable-cgen-maint.
 $(srcdir)/ip2k-desc.h $(srcdir)/ip2k-desc.c $(srcdir)/ip2k-opc.h $(srcdir)/ip2k-opc.c $(srcdir)/ip2k-ibld.c $(srcdir)/ip2k-asm.c $(srcdir)/ip2k-dis.c: $(IP2K_DEPS)
        @true
index c2d9e1b747842426267b510119115e3761c4ac7a..614fff033f7e33dc68e451403f2093d908b56fdd 100644 (file)
@@ -66,6 +66,9 @@ enum operand {OP_NONE,OP_REG,OP_SHIMM,OP_LIMM};
 
 enum operand ls_operand[OPERANDS];
 
+struct arc_opcode *arc_ext_opcodes;
+struct arc_ext_operand_value *arc_ext_operands;
+
 #define LS_VALUE  0
 #define LS_DEST   0
 #define LS_BASE   1
index f3785f2ed9bc8475f5b1cf5bae5dfe3e33c1e6de..62a2a39ab62df8ef659ad71d8ffc58c31166eac9 100644 (file)
@@ -4,17 +4,17 @@
    Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
    Modification by James G. Smith (jsmith@cygnus.co.uk)
 
-This file is part of libopcodes. 
+This file is part of libopcodes.
 
 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. 
+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. 
+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
@@ -79,20 +79,25 @@ static unsigned int regname_selected = 1;
 #define NUM_ARM_REGNAMES  NUM_ELEM (regnames)
 #define arm_regnames      regnames[regname_selected].reg_names
 
-static boolean force_thumb = false;
+static bfd_boolean force_thumb = FALSE;
 
 static char * arm_fp_const[] =
 {"0.0", "1.0", "2.0", "3.0", "4.0", "5.0", "0.5", "10.0"};
 
-static char * arm_shift[] = 
+static char * arm_shift[] =
 {"lsl", "lsr", "asr", "ror"};
 \f
 /* Forward declarations.  */
-static void arm_decode_shift PARAMS ((long, fprintf_ftype, void *));
-static int  print_insn_arm   PARAMS ((bfd_vma, struct disassemble_info *, long));
-static int  print_insn_thumb PARAMS ((bfd_vma, struct disassemble_info *, long));
-static void parse_disassembler_options PARAMS ((char *));
-static int  print_insn       PARAMS ((bfd_vma, struct disassemble_info *, boolean));
+static void arm_decode_shift
+  PARAMS ((long, fprintf_ftype, void *));
+static int  print_insn_arm
+  PARAMS ((bfd_vma, struct disassemble_info *, long));
+static int  print_insn_thumb
+  PARAMS ((bfd_vma, struct disassemble_info *, long));
+static void parse_disassembler_options
+  PARAMS ((char *));
+static int  print_insn
+  PARAMS ((bfd_vma, struct disassemble_info *, bfd_boolean));
 int get_arm_regname_num_options (void);
 int set_arm_regname_option (int option);
 int get_arm_regnames (int option, const char **setname,
@@ -135,14 +140,14 @@ arm_decode_shift (given, func, stream)
      void * stream;
 {
   func (stream, "%s", arm_regnames[given & 0xf]);
-  
+
   if ((given & 0xff0) != 0)
     {
       if ((given & 0x10) == 0)
        {
          int amount = (given & 0xf80) >> 7;
          int shift = (given & 0x60) >> 5;
-         
+
          if (amount == 0)
            {
              if (shift == 3)
@@ -150,10 +155,10 @@ arm_decode_shift (given, func, stream)
                  func (stream, ", rrx");
                  return;
                }
-             
+
              amount = 32;
            }
-         
+
          func (stream, ", %s #%d", arm_shift[shift], amount);
        }
       else
@@ -167,20 +172,20 @@ arm_decode_shift (given, func, stream)
 
 static int
 print_insn_arm (pc, info, given)
-     bfd_vma                   pc;
-     struct disassemble_info * info;
-     long                      given;
+     bfd_vma pc;
+     struct disassemble_info *info;
+     long given;
 {
-  struct arm_opcode *  insn;
-  void *               stream = info->stream;
-  fprintf_ftype        func   = info->fprintf_func;
+  const struct arm_opcode *insn;
+  void *stream = info->stream;
+  fprintf_ftype func   = info->fprintf_func;
 
   for (insn = arm_opcodes; insn->assembler; insn++)
     {
       if ((given & insn->mask) == insn->value)
        {
          char * c;
-         
+
          for (c = insn->assembler; *c; c++)
            {
              if (*c == '%')
@@ -196,14 +201,14 @@ print_insn_arm (pc, info, given)
                          && ((given & 0x02000000) == 0))
                        {
                          int offset = given & 0xfff;
-                         
+
                          func (stream, "[pc");
+
                          if (given & 0x01000000)
                            {
                              if ((given & 0x00800000) == 0)
                                offset = - offset;
-                         
+
                              /* Pre-indexed.  */
                              func (stream, ", #%d]", offset);
 
@@ -224,13 +229,13 @@ print_insn_arm (pc, info, given)
                              /* ie ignore the offset.  */
                              offset = pc + 8;
                            }
-                         
+
                          func (stream, "\t; ");
                          info->print_address_func (offset, info);
                        }
                      else
                        {
-                         func (stream, "[%s", 
+                         func (stream, "[%s",
                                arm_regnames[(given >> 16) & 0xf]);
                          if ((given & 0x01000000) != 0)
                            {
@@ -250,7 +255,7 @@ print_insn_arm (pc, info, given)
                                  arm_decode_shift (given, func, stream);
                                }
 
-                             func (stream, "]%s", 
+                             func (stream, "]%s",
                                    ((given & 0x00200000) != 0) ? "!" : "");
                            }
                          else
@@ -262,13 +267,13 @@ print_insn_arm (pc, info, given)
                                    func (stream, "], %s#%d",
                                          (((given & 0x00800000) == 0)
                                           ? "-" : ""), offset);
-                                 else 
+                                 else
                                    func (stream, "]");
                                }
                              else
                                {
                                  func (stream, "], %s",
-                                       (((given & 0x00800000) == 0) 
+                                       (((given & 0x00800000) == 0)
                                         ? "-" : ""));
                                  arm_decode_shift (given, func, stream);
                                }
@@ -281,18 +286,18 @@ print_insn_arm (pc, info, given)
                        {
                           /* PC relative with immediate offset.  */
                          int offset = ((given & 0xf00) >> 4) | (given & 0xf);
-                         
+
                          if ((given & 0x00800000) == 0)
                            offset = -offset;
-                         
+
                          func (stream, "[pc, #%d]\t; ", offset);
-                         
+
                          (*info->print_address_func)
                            (offset + pc + 8, info);
                        }
                      else
                        {
-                         func (stream, "[%s", 
+                         func (stream, "[%s",
                                arm_regnames[(given >> 16) & 0xf]);
                          if ((given & 0x01000000) != 0)
                            {
@@ -315,7 +320,7 @@ print_insn_arm (pc, info, given)
                                         arm_regnames[given & 0xf]);
                                }
 
-                             func (stream, "]%s", 
+                             func (stream, "]%s",
                                    ((given & 0x00200000) != 0) ? "!" : "");
                            }
                          else
@@ -329,7 +334,7 @@ print_insn_arm (pc, info, given)
                                    func (stream, "], %s#%d",
                                          (((given & 0x00800000) == 0)
                                           ? "-" : ""), offset);
-                                 else 
+                                 else
                                    func (stream, "]");
                                }
                              else
@@ -343,7 +348,7 @@ print_insn_arm (pc, info, given)
                            }
                        }
                      break;
-                         
+
                    case 'b':
                      (*info->print_address_func)
                        (BDISP (given) * 4 + pc + 8, info);
@@ -425,7 +430,7 @@ print_insn_arm (pc, info, given)
                      {
                        bfd_vma address;
                        bfd_vma offset = 0;
-                       
+
                        if (given & 0x00800000)
                          /* Is signed, hi bits should be ones.  */
                          offset = (-1) ^ 0x00ffffff;
@@ -434,7 +439,7 @@ print_insn_arm (pc, info, given)
                        offset += given & 0x00ffffff;
                        offset <<= 2;
                        address = offset + pc + 8;
-                       
+
                        if (given & 0x01000000)
                          /* H bit allows addressing to 2-byte boundaries.  */
                          address += 2;
@@ -490,7 +495,7 @@ print_insn_arm (pc, info, given)
                          func (stream, "3");
                        }
                      break;
-                       
+
                    case 'P':
                      switch (given & 0x00080080)
                        {
@@ -542,7 +547,7 @@ print_insn_arm (pc, info, given)
                        }
                      break;
 
-                   case '0': case '1': case '2': case '3': case '4': 
+                   case '0': case '1': case '2': case '3': case '4':
                    case '5': case '6': case '7': case '8': case '9':
                      {
                        int bitstart = *c++ - '0';
@@ -554,44 +559,44 @@ print_insn_arm (pc, info, given)
                          {
                          case '-':
                            c++;
-                           
+
                            while (*c >= '0' && *c <= '9')
                              bitend = (bitend * 10) + *c++ - '0';
-                           
+
                            if (!bitend)
                              abort ();
-                           
+
                            switch (*c)
                              {
                              case 'r':
                                {
                                  long reg;
-                                 
+
                                  reg = given >> bitstart;
                                  reg &= (2 << (bitend - bitstart)) - 1;
-                                 
+
                                  func (stream, "%s", arm_regnames[reg]);
                                }
                                break;
                              case 'd':
                                {
                                  long reg;
-                                 
+
                                  reg = given >> bitstart;
                                  reg &= (2 << (bitend - bitstart)) - 1;
-                                 
+
                                  func (stream, "%d", reg);
                                }
                                break;
                              case 'x':
                                {
                                  long reg;
-                                 
+
                                  reg = given >> bitstart;
                                  reg &= (2 << (bitend - bitstart)) - 1;
-                                 
+
                                  func (stream, "0x%08x", reg);
-                                 
+
                                  /* Some SWI instructions have special
                                     meanings.  */
                                  if ((given & 0x0fffffff) == 0x0FF00000)
@@ -603,20 +608,20 @@ print_insn_arm (pc, info, given)
                              case 'X':
                                {
                                  long reg;
-                                 
+
                                  reg = given >> bitstart;
                                  reg &= (2 << (bitend - bitstart)) - 1;
-                                 
+
                                  func (stream, "%01x", reg & 0xf);
                                }
                                break;
                              case 'f':
                                {
                                  long reg;
-                                 
+
                                  reg = given >> bitstart;
                                  reg &= (2 << (bitend - bitstart)) - 1;
-                                 
+
                                  if (reg > 7)
                                    func (stream, "#%s",
                                          arm_fp_const[reg & 7]);
@@ -677,7 +682,7 @@ print_insn_arm (pc, info, given)
                                    }
                                  break;
 
-                                 
+
                                default:
                                  abort ();
                                }
@@ -748,13 +753,13 @@ print_insn_arm (pc, info, given)
 
 static int
 print_insn_thumb (pc, info, given)
-     bfd_vma                   pc;
-     struct disassemble_info * info;
-     long                      given;
+     bfd_vma pc;
+     struct disassemble_info *info;
+     long given;
 {
-  struct thumb_opcode * insn;
-  void *                stream = info->stream;
-  fprintf_ftype         func = info->fprintf_func;
+  const struct thumb_opcode *insn;
+  void *stream = info->stream;
+  fprintf_ftype func = info->fprintf_func;
 
   for (insn = thumb_opcodes; insn->assembler; insn++)
     {
@@ -766,7 +771,7 @@ print_insn_thumb (pc, info, given)
           if (!*c) /* Check for empty (not NULL) assembler string.  */
             {
              long offset;
-             
+
              info->bytes_per_chunk = 4;
              info->bytes_per_line  = 4;
 
@@ -788,16 +793,16 @@ print_insn_thumb (pc, info, given)
             {
              info->bytes_per_chunk = 2;
              info->bytes_per_line  = 4;
-                     
+
               given &= 0xffff;
-             
+
               for (; *c; c++)
                 {
                   if (*c == '%')
                     {
                       int domaskpc = 0;
                       int domasklr = 0;
-                     
+
                       switch (*++c)
                         {
                         case '%':
@@ -807,11 +812,11 @@ print_insn_thumb (pc, info, given)
                         case 'S':
                           {
                             long reg;
-                           
+
                             reg = (given >> 3) & 0x7;
                             if (given & (1 << 6))
                               reg += 8;
-                           
+
                             func (stream, "%s", arm_regnames[reg]);
                           }
                           break;
@@ -819,11 +824,11 @@ print_insn_thumb (pc, info, given)
                         case 'D':
                           {
                             long reg;
-                           
+
                             reg = given & 0x7;
                             if (given & (1 << 7))
                              reg += 8;
-                           
+
                             func (stream, "%s", arm_regnames[reg]);
                           }
                           break;
@@ -845,9 +850,9 @@ print_insn_thumb (pc, info, given)
                           {
                             int started = 0;
                             int reg;
-                           
+
                             func (stream, "{");
-                           
+
                             /* It would be nice if we could spot
                                ranges, and generate the rS-rE format: */
                             for (reg = 0; (reg < 8); reg++)
@@ -879,12 +884,12 @@ print_insn_thumb (pc, info, given)
                           break;
 
 
-                        case '0': case '1': case '2': case '3': case '4': 
+                        case '0': case '1': case '2': case '3': case '4':
                         case '5': case '6': case '7': case '8': case '9':
                           {
                             int bitstart = *c++ - '0';
                             int bitend = 0;
-                           
+
                             while (*c >= '0' && *c <= '9')
                               bitstart = (bitstart * 10) + *c++ - '0';
 
@@ -893,7 +898,7 @@ print_insn_thumb (pc, info, given)
                               case '-':
                                 {
                                   long reg;
-                                 
+
                                   c++;
                                   while (*c >= '0' && *c <= '9')
                                     bitend = (bitend * 10) + *c++ - '0';
@@ -992,11 +997,11 @@ parse_arm_disassembler_option (option)
 {
   if (option == NULL)
     return;
-      
+
   if (strneq (option, "reg-names-", 10))
     {
       int i;
-       
+
       option += 10;
 
       for (i = NUM_ARM_REGNAMES; i--;)
@@ -1005,7 +1010,7 @@ parse_arm_disassembler_option (option)
            regname_selected = i;
            break;
          }
-      
+
       if (i < 0)
        fprintf (stderr, _("Unrecognised register name set: %s\n"), option);
     }
@@ -1015,7 +1020,7 @@ parse_arm_disassembler_option (option)
     force_thumb = 0;
   else
     fprintf (stderr, _("Unrecognised disassembler option: %s\n"), option);
-  
+
   return;
 }
 
@@ -1026,7 +1031,7 @@ parse_disassembler_options (options)
      char * options;
 {
   char * space;
-  
+
   if (options == NULL)
     return;
 
@@ -1054,7 +1059,7 @@ static int
 print_insn (pc, info, little)
      bfd_vma pc;
      struct disassemble_info * info;
-     boolean little;
+     bfd_boolean little;
 {
   unsigned char      b[4];
   long               given;
@@ -1064,19 +1069,19 @@ print_insn (pc, info, little)
   if (info->disassembler_options)
     {
       parse_disassembler_options (info->disassembler_options);
-      
+
       /* To avoid repeated parsing of these options, we remove them here.  */
       info->disassembler_options = NULL;
     }
-  
+
   is_thumb = force_thumb;
-  
+
   if (!is_thumb && info->symbols != NULL)
     {
       if (bfd_asymbol_flavour (*info->symbols) == bfd_target_coff_flavour)
        {
          coff_symbol_type * cs;
-         
+
          cs = coffsymbol (*info->symbols);
          is_thumb = (   cs->native->u.syment.n_sclass == C_THUMBEXT
                      || cs->native->u.syment.n_sclass == C_THUMBSTAT
@@ -1088,14 +1093,14 @@ print_insn (pc, info, little)
        {
          elf_symbol_type *  es;
          unsigned int       type;
-         
+
          es = *(elf_symbol_type **)(info->symbols);
          type = ELF_ST_TYPE (es->internal_elf_sym.st_info);
-         
+
          is_thumb = (type == STT_ARM_TFUNC) || (type == STT_ARM_16BIT);
        }
     }
-  
+
   info->bytes_per_chunk = 4;
   info->display_endian  = little ? BFD_ENDIAN_LITTLE : BFD_ENDIAN_BIG;
 
@@ -1105,17 +1110,17 @@ print_insn (pc, info, little)
       if (status != 0 && is_thumb)
        {
          info->bytes_per_chunk = 2;
-         
+
          status = info->read_memory_func (pc, (bfd_byte *) b, 2, info);
          b[3] = b[2] = 0;
        }
-      
+
       if (status != 0)
        {
          info->memory_error_func (status, pc, info);
          return -1;
        }
-      
+
       given = (b[0]) | (b[1] << 8) | (b[2] << 16) | (b[3] << 24);
     }
   else
@@ -1127,13 +1132,13 @@ print_insn (pc, info, little)
          info->memory_error_func (status, pc, info);
          return -1;
        }
-      
+
       if (is_thumb)
        {
          if (pc & 0x2)
            {
              given = (b[2] << 8) | b[3];
-             
+
              status = info->read_memory_func
                ((pc + 4) & ~ 0x3, (bfd_byte *) b, 4, info);
              if (status != 0)
@@ -1141,7 +1146,7 @@ print_insn (pc, info, little)
                  info->memory_error_func (status, pc + 4, info);
                  return -1;
                }
-             
+
              given |= (b[0] << 24) | (b[1] << 16);
            }
          else
@@ -1150,7 +1155,7 @@ print_insn (pc, info, little)
       else
        given = (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | (b[3]);
     }
-  
+
   if (info->flags & INSN_HAS_RELOC)
     /* If the instruction has a reloc associated with it, then
        the offset field in the instruction will actually be the
@@ -1158,7 +1163,7 @@ print_insn (pc, info, little)
        In such cases, we can ignore the pc when computing
        addresses, since the addend is not currently pc-relative.  */
     pc = 0;
-  
+
   if (is_thumb)
     status = print_insn_thumb (pc, info, given);
   else
@@ -1172,7 +1177,7 @@ print_insn_big_arm (pc, info)
      bfd_vma pc;
      struct disassemble_info * info;
 {
-  return print_insn (pc, info, false);
+  return print_insn (pc, info, FALSE);
 }
 
 int
@@ -1180,7 +1185,7 @@ print_insn_little_arm (pc, info)
      bfd_vma pc;
      struct disassemble_info * info;
 {
-  return print_insn (pc, info, true);
+  return print_insn (pc, info, TRUE);
 }
 
 void
@@ -1191,7 +1196,7 @@ print_arm_disassembler_options (FILE * stream)
   fprintf (stream, _("\n\
 The following ARM specific disassembler options are supported for use with\n\
 the -M switch:\n"));
-  
+
   for (i = NUM_ARM_REGNAMES; i--;)
     fprintf (stream, "  reg-names-%s %*c%s\n",
             regnames[i].name,
index 85f611d1a003d1a5c96629ed48335bcf61437cc7..213d4f034dec15c20037035c0086663753c94557 100644 (file)
@@ -79,7 +79,7 @@ Thumb specific format options:
 /* Note: There is a partial ordering in this table - it must be searched from
    the top to obtain a correct match. */
 
-static struct arm_opcode arm_opcodes[] =
+static const struct arm_opcode arm_opcodes[] =
 {
     /* ARM instructions.  */
     {0xe1a00000, 0xffffffff, "nop\t\t\t(mov r0,r0)"},
@@ -395,7 +395,7 @@ static struct arm_opcode arm_opcodes[] =
 
 #define BDISP(x) ((((x) & 0xffffff) ^ 0x800000) - 0x800000) /* 26 bit */
 
-static struct thumb_opcode thumb_opcodes[] =
+static const struct thumb_opcode thumb_opcodes[] =
 {
   /* Thumb instructions.  */
 
index 4598cab4145cc20ca6464be96cb45c76d810ccfd..adc4680cd14bc85d006e9b77ab5ed13a81bdc19b 100644 (file)
@@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "sysdep.h"
 #include "dis-asm.h"
 #include "opintl.h"
-
+#include "libiberty.h"
 
 struct avr_opcodes_s
 {
@@ -31,16 +31,15 @@ struct avr_opcodes_s
   int insn_size;               /* in words */
   int isa;
   unsigned int bin_opcode;
-  unsigned int bin_mask;
 };
 
 #define AVR_INSN(NAME, CONSTR, OPCODE, SIZE, ISA, BIN) \
-{#NAME, CONSTR, OPCODE, SIZE, ISA, BIN, 0},
+{#NAME, CONSTR, OPCODE, SIZE, ISA, BIN},
 
-struct avr_opcodes_s avr_opcodes[] =
+const struct avr_opcodes_s avr_opcodes[] =
 {
   #include "opcode/avr.h"
-  {NULL, NULL, NULL, 0, 0, 0, 0}
+  {NULL, NULL, NULL, 0, 0, 0}
 };
 
 static int avr_operand PARAMS ((unsigned int, unsigned int,
@@ -257,9 +256,11 @@ print_insn_avr(addr, info)
      disassemble_info *info;
 {
   unsigned int insn, insn2;
-  struct avr_opcodes_s *opcode;
+  const struct avr_opcodes_s *opcode;
+  static unsigned int *maskptr;
   void *stream = info->stream;
   fprintf_ftype prin = info->fprintf_func;
+  static unsigned int *avr_bin_masks;
   static int initialized;
   int cmd_len = 2;
   int ok = 0;
@@ -267,9 +268,16 @@ print_insn_avr(addr, info)
 
   if (!initialized)
     {
-      initialized = 1;
+      unsigned int nopcodes;
+
+      nopcodes = sizeof (avr_opcodes) / sizeof (struct avr_opcodes_s);
       
-      for (opcode = avr_opcodes; opcode->name; opcode++)
+      avr_bin_masks = (unsigned int *)
+       xmalloc (nopcodes * sizeof (unsigned int));
+
+      for (opcode = avr_opcodes, maskptr = avr_bin_masks;
+          opcode->name;
+          opcode++, maskptr++)
        {
          char * s;
          unsigned int bin = 0;
@@ -284,15 +292,19 @@ print_insn_avr(addr, info)
            }
          assert (s - opcode->opcode == 16);
          assert (opcode->bin_opcode == bin);
-         opcode->bin_mask = mask;
+         *maskptr = mask;
        }
+
+      initialized = 1;
     }
 
   insn = avrdis_opcode (addr, info);
   
-  for (opcode = avr_opcodes; opcode->name; opcode++)
+  for (opcode = avr_opcodes, maskptr = avr_bin_masks;
+       opcode->name;
+       opcode++, maskptr++)
     {
-      if ((insn & opcode->bin_mask) == opcode->bin_opcode)
+      if ((insn & *maskptr) == opcode->bin_opcode)
        break;
     }
   
index 05b62bf49e1926830e1ccd0a399d82c176e68413..c71c70de08ed1cf4bd5270dc59344f90114859c6 100644 (file)
@@ -225,7 +225,9 @@ cgen_parse_keyword (cd, strp, keyword_table, valuep)
   /* Allow letters, digits, and any special characters.  */
   while (((p - start) < (int) sizeof (buf))
         && *p
-        && (ISALNUM (*p) || strchr (keyword_table->nonalpha_chars, *p)))
+        && (ISALNUM (*p)
+            || *p == '_'
+            || strchr (keyword_table->nonalpha_chars, *p)))
     ++p;
 
   if (p - start >= (int) sizeof (buf))
index 7c5934037df8b92b06bac86f545c9125ab164a10..9203b71d027e0541296aaaf1a00b4db3d5d04dc2 100644 (file)
@@ -4,7 +4,8 @@
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 - the resultant file is machine generated, cgen-dis.in isn't
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and GDB, the GNU debugger.
 
@@ -31,6 +32,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #include "dis-asm.h"
 #include "bfd.h"
 #include "symcat.h"
+#include "libiberty.h"
 #include "@prefix@-desc.h"
 #include "@prefix@-opc.h"
 #include "opintl.h"
index 33806ee88acb8f28cb93851bc096bf3d9744654c..6beb4abea1d47fdfb14650c51b506bc60c8f21fc 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassembler code for CRIS.
-   Copyright 2000, 2001 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Axis Communications AB, Lund, Sweden.
    Written by Hans-Peter Nilsson.
 
@@ -77,22 +77,28 @@ static long no_of_case_offsets = 0;
 /* Candidate for next case_offset.  */
 static long last_immediate = 0;
 
-static int number_of_bits PARAMS ((unsigned int));
-static char *format_hex PARAMS ((unsigned long, char *));
-static char *format_dec PARAMS ((long, char *, int));
-static char *format_reg PARAMS ((int, char *, boolean));
-static int cris_constraint PARAMS ((const char *, unsigned int,
-                                   unsigned int));
-static unsigned bytes_to_skip PARAMS ((unsigned int,
-                                      const struct cris_opcode *));
-static char *print_flags PARAMS ((unsigned int, char *));
+static int number_of_bits
+  PARAMS ((unsigned int));
+static char *format_hex
+  PARAMS ((unsigned long, char *));
+static char *format_dec
+  PARAMS ((long, char *, int));
+static char *format_reg
+  PARAMS ((int, char *, bfd_boolean));
+static int cris_constraint
+  PARAMS ((const char *, unsigned int, unsigned int));
+static unsigned bytes_to_skip
+  PARAMS ((unsigned int, const struct cris_opcode *));
+static char *print_flags
+  PARAMS ((unsigned int, char *));
 static void print_with_operands
   PARAMS ((const struct cris_opcode *, unsigned int, unsigned char *,
           bfd_vma, disassemble_info *, const struct cris_opcode *,
-          unsigned int, unsigned char *, boolean));
-static const struct cris_spec_reg *spec_reg_info PARAMS ((unsigned int));
+          unsigned int, unsigned char *, bfd_boolean));
+static const struct cris_spec_reg *spec_reg_info
+  PARAMS ((unsigned int));
 static int print_insn_cris_generic
-  PARAMS ((bfd_vma, disassemble_info *, boolean));
+  PARAMS ((bfd_vma, disassemble_info *, bfd_boolean));
 static int print_insn_cris_with_register_prefix
   PARAMS ((bfd_vma, disassemble_info *));
 static int print_insn_cris_without_register_prefix
@@ -334,7 +340,7 @@ static char *
 format_reg (regno, outbuffer_start, with_reg_prefix)
      int regno;
      char *outbuffer_start;
-     boolean with_reg_prefix;
+     bfd_boolean with_reg_prefix;
 {
   char *outbuffer = outbuffer_start;
 
@@ -593,7 +599,7 @@ print_with_operands (opcodep, insn, buffer, addr, info, prefix_opcodep,
      const struct cris_opcode *prefix_opcodep;
      unsigned int prefix_insn;
      unsigned char *prefix_buffer;
-     boolean with_reg_prefix;
+     bfd_boolean with_reg_prefix;
 {
   /* Get a buffer of somewhat reasonable size where we store
      intermediate parts of the insn.  */
@@ -1186,7 +1192,7 @@ static int
 print_insn_cris_generic (memaddr, info, with_reg_prefix)
      bfd_vma memaddr;
      disassemble_info *info;
-     boolean with_reg_prefix;
+     bfd_boolean with_reg_prefix;
 {
   int nbytes;
   unsigned int insn;
@@ -1369,7 +1375,7 @@ print_insn_cris_with_register_prefix (vma, info)
      bfd_vma vma;
      disassemble_info *info;
 {
-  return print_insn_cris_generic (vma, info, true);
+  return print_insn_cris_generic (vma, info, TRUE);
 }
 
 /* Disassemble, no prefixes on register names.  */
@@ -1379,7 +1385,7 @@ print_insn_cris_without_register_prefix (vma, info)
      bfd_vma vma;
      disassemble_info *info;
 {
-  return print_insn_cris_generic (vma, info, false);
+  return print_insn_cris_generic (vma, info, FALSE);
 }
 
 /* Return a disassembler-function that prints registers with a `$' prefix,
index 18963b9f1687bf0b92eb5324289574d6a7873f01..a404f9ba40e8a7209227e11080c260c22aa2c2f7 100644 (file)
@@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "fr30-opc.h"
 #include "opintl.h"
 #include "libiberty.h"
+#include "xregex.h"
 
 /* Attributes.  */
 
@@ -356,9 +357,9 @@ const CGEN_MAYBE_MULTI_IFLD FR30_F_I20_MULTI_IFIELD [];
 
 const CGEN_MAYBE_MULTI_IFLD FR30_F_I20_MULTI_IFIELD [] =
 {
-    { 0, &(fr30_cgen_ifld_table[23]) },
-    { 0, &(fr30_cgen_ifld_table[24]) },
-    {0,0}
+    { 0, { (const PTR) &fr30_cgen_ifld_table[23] } },
+    { 0, { (const PTR) &fr30_cgen_ifld_table[24] } },
+    { 0, { (const PTR) 0 } }
 };
 
 /* The operand table.  */
@@ -378,201 +379,204 @@ const CGEN_OPERAND fr30_cgen_operand_table[] =
 {
 /* pc: program counter */
   { "pc", FR30_OPERAND_PC, HW_H_PC, 0, 0,
-    { 0, &(fr30_cgen_ifld_table[0]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[0] } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* Ri: destination register */
   { "Ri", FR30_OPERAND_RI, HW_H_GR, 12, 4,
-    { 0, &(fr30_cgen_ifld_table[10]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[10] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Rj: source register */
   { "Rj", FR30_OPERAND_RJ, HW_H_GR, 8, 4,
-    { 0, &(fr30_cgen_ifld_table[9]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[9] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Ric: target register coproc insn */
   { "Ric", FR30_OPERAND_RIC, HW_H_GR, 12, 4,
-    { 0, &(fr30_cgen_ifld_table[14]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[14] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Rjc: source register coproc insn */
   { "Rjc", FR30_OPERAND_RJC, HW_H_GR, 8, 4,
-    { 0, &(fr30_cgen_ifld_table[13]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[13] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* CRi: coprocessor register */
   { "CRi", FR30_OPERAND_CRI, HW_H_CR, 12, 4,
-    { 0, &(fr30_cgen_ifld_table[16]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[16] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* CRj: coprocessor register */
   { "CRj", FR30_OPERAND_CRJ, HW_H_CR, 8, 4,
-    { 0, &(fr30_cgen_ifld_table[15]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[15] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Rs1: dedicated register */
   { "Rs1", FR30_OPERAND_RS1, HW_H_DR, 8, 4,
-    { 0, &(fr30_cgen_ifld_table[11]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[11] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Rs2: dedicated register */
   { "Rs2", FR30_OPERAND_RS2, HW_H_DR, 12, 4,
-    { 0, &(fr30_cgen_ifld_table[12]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[12] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* R13: General Register 13 */
   { "R13", FR30_OPERAND_R13, HW_H_R13, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* R14: General Register 14 */
   { "R14", FR30_OPERAND_R14, HW_H_R14, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* R15: General Register 15 */
   { "R15", FR30_OPERAND_R15, HW_H_R15, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ps: Program Status register */
   { "ps", FR30_OPERAND_PS, HW_H_PS, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* u4: 4  bit unsigned immediate */
   { "u4", FR30_OPERAND_U4, HW_H_UINT, 8, 4,
-    { 0, &(fr30_cgen_ifld_table[17]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[17] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* u4c: 4  bit unsigned immediate */
   { "u4c", FR30_OPERAND_U4C, HW_H_UINT, 12, 4,
-    { 0, &(fr30_cgen_ifld_table[18]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[18] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* u8: 8  bit unsigned immediate */
   { "u8", FR30_OPERAND_U8, HW_H_UINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[21]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[21] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* i8: 8  bit unsigned immediate */
   { "i8", FR30_OPERAND_I8, HW_H_UINT, 4, 8,
-    { 0, &(fr30_cgen_ifld_table[22]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[22] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* udisp6: 6  bit unsigned immediate */
   { "udisp6", FR30_OPERAND_UDISP6, HW_H_UINT, 8, 4,
-    { 0, &(fr30_cgen_ifld_table[26]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[26] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* disp8: 8  bit signed   immediate */
   { "disp8", FR30_OPERAND_DISP8, HW_H_SINT, 4, 8,
-    { 0, &(fr30_cgen_ifld_table[27]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[27] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* disp9: 9  bit signed   immediate */
   { "disp9", FR30_OPERAND_DISP9, HW_H_SINT, 4, 8,
-    { 0, &(fr30_cgen_ifld_table[28]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[28] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* disp10: 10 bit signed   immediate */
   { "disp10", FR30_OPERAND_DISP10, HW_H_SINT, 4, 8,
-    { 0, &(fr30_cgen_ifld_table[29]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[29] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* s10: 10 bit signed   immediate */
   { "s10", FR30_OPERAND_S10, HW_H_SINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[30]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[30] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* u10: 10 bit unsigned immediate */
   { "u10", FR30_OPERAND_U10, HW_H_UINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[31]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[31] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* i32: 32 bit immediate */
   { "i32", FR30_OPERAND_I32, HW_H_UINT, 0, 32,
-    { 0, &(fr30_cgen_ifld_table[25]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[25] } }, 
     { 0|A(HASH_PREFIX)|A(SIGN_OPT), { (1<<MACH_BASE) } }  },
 /* m4: 4  bit negative immediate */
   { "m4", FR30_OPERAND_M4, HW_H_SINT, 8, 4,
-    { 0, &(fr30_cgen_ifld_table[20]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[20] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* i20: 20 bit immediate */
   { "i20", FR30_OPERAND_I20, HW_H_UINT, 0, 20,
-    { 2, &(FR30_F_I20_MULTI_IFIELD[0]) }, 
+    { 2, { (const PTR) &FR30_F_I20_MULTI_IFIELD[0] } }, 
     { 0|A(HASH_PREFIX)|A(VIRTUAL), { (1<<MACH_BASE) } }  },
 /* dir8: 8  bit direct address */
   { "dir8", FR30_OPERAND_DIR8, HW_H_UINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[33]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[33] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* dir9: 9  bit direct address */
   { "dir9", FR30_OPERAND_DIR9, HW_H_UINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[34]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[34] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* dir10: 10 bit direct address */
   { "dir10", FR30_OPERAND_DIR10, HW_H_UINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[35]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[35] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* label9: 9  bit pc relative address */
   { "label9", FR30_OPERAND_LABEL9, HW_H_IADDR, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[32]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[32] } }, 
     { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* label12: 12 bit pc relative address */
   { "label12", FR30_OPERAND_LABEL12, HW_H_IADDR, 5, 11,
-    { 0, &(fr30_cgen_ifld_table[36]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[36] } }, 
     { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* reglist_low_ld: 8 bit low register mask for ldm */
   { "reglist_low_ld", FR30_OPERAND_REGLIST_LOW_LD, HW_H_UINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[40]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[40] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* reglist_hi_ld: 8 bit high register mask for ldm */
   { "reglist_hi_ld", FR30_OPERAND_REGLIST_HI_LD, HW_H_UINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[39]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[39] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* reglist_low_st: 8 bit low register mask for stm */
   { "reglist_low_st", FR30_OPERAND_REGLIST_LOW_ST, HW_H_UINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[38]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[38] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* reglist_hi_st: 8 bit high register mask for stm */
   { "reglist_hi_st", FR30_OPERAND_REGLIST_HI_ST, HW_H_UINT, 8, 8,
-    { 0, &(fr30_cgen_ifld_table[37]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[37] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* cc: condition codes */
   { "cc", FR30_OPERAND_CC, HW_H_UINT, 4, 4,
-    { 0, &(fr30_cgen_ifld_table[7]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[7] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ccc: coprocessor calc */
   { "ccc", FR30_OPERAND_CCC, HW_H_UINT, 0, 8,
-    { 0, &(fr30_cgen_ifld_table[8]) }, 
+    { 0, { (const PTR) &fr30_cgen_ifld_table[8] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* nbit: negative   bit */
   { "nbit", FR30_OPERAND_NBIT, HW_H_NBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* vbit: overflow   bit */
   { "vbit", FR30_OPERAND_VBIT, HW_H_VBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* zbit: zero       bit */
   { "zbit", FR30_OPERAND_ZBIT, HW_H_ZBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* cbit: carry      bit */
   { "cbit", FR30_OPERAND_CBIT, HW_H_CBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* ibit: interrupt  bit */
   { "ibit", FR30_OPERAND_IBIT, HW_H_IBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* sbit: stack      bit */
   { "sbit", FR30_OPERAND_SBIT, HW_H_SBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* tbit: trace trap bit */
   { "tbit", FR30_OPERAND_TBIT, HW_H_TBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* d0bit: division 0 bit */
   { "d0bit", FR30_OPERAND_D0BIT, HW_H_D0BIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* d1bit: division 1 bit */
   { "d1bit", FR30_OPERAND_D1BIT, HW_H_D1BIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* ccr: condition code bits */
   { "ccr", FR30_OPERAND_CCR, HW_H_CCR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* scr: system condition bits */
   { "scr", FR30_OPERAND_SCR, HW_H_SCR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* ilm: interrupt level mask */
   { "ilm", FR30_OPERAND_ILM, HW_H_ILM, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
-  { 0, 0, 0, 0, 0, {0, {0}} }
+/* sentinel */
+  { 0, 0, 0, 0, 0,
+    { 0, { (const PTR) 0 } },
+    { 0, { 0 } } }
 };
 
 #undef A
@@ -1748,7 +1752,7 @@ fr30_cgen_cpu_close (cd)
      CGEN_CPU_DESC cd;
 {
   unsigned int i;
-  CGEN_INSN *insns;
+  const CGEN_INSN *insns;
 
   if (cd->macro_insn_table.init_entries)
     {
@@ -1756,7 +1760,7 @@ fr30_cgen_cpu_close (cd)
       for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX ((insns)))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
@@ -1766,7 +1770,7 @@ fr30_cgen_cpu_close (cd)
       for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX (insns))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
index 7affa860f4f0d4130a4728980d7658d72b8d8446..ef7b37a5a24f10484fd177dd4b1b7be191f79eae 100644 (file)
@@ -4,7 +4,8 @@
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 - the resultant file is machine generated, cgen-dis.in isn't
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and GDB, the GNU debugger.
 
@@ -31,6 +32,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #include "dis-asm.h"
 #include "bfd.h"
 #include "symcat.h"
+#include "libiberty.h"
 #include "fr30-desc.h"
 #include "fr30-opc.h"
 #include "opintl.h"
index 8b8274c99ec88b01e240a5d4774684e5d79e5f86..54bed6bad7a5be5180f7a5f6d93ab08adba7a3ec 100644 (file)
@@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "frv-opc.h"
 #include "opintl.h"
 #include "libiberty.h"
+#include "xregex.h"
 
 /* Attributes.  */
 
@@ -1889,21 +1890,21 @@ const CGEN_MAYBE_MULTI_IFLD FRV_F_LABEL24_MULTI_IFIELD [];
 
 const CGEN_MAYBE_MULTI_IFLD FRV_F_U12_MULTI_IFIELD [] =
 {
-    { 0, &(frv_cgen_ifld_table[46]) },
-    { 0, &(frv_cgen_ifld_table[47]) },
-    {0,0}
+    { 0, { (const PTR) &frv_cgen_ifld_table[46] } },
+    { 0, { (const PTR) &frv_cgen_ifld_table[47] } },
+    { 0, { (const PTR) 0 } }
 };
 const CGEN_MAYBE_MULTI_IFLD FRV_F_SPR_MULTI_IFIELD [] =
 {
-    { 0, &(frv_cgen_ifld_table[58]) },
-    { 0, &(frv_cgen_ifld_table[59]) },
-    {0,0}
+    { 0, { (const PTR) &frv_cgen_ifld_table[58] } },
+    { 0, { (const PTR) &frv_cgen_ifld_table[59] } },
+    { 0, { (const PTR) 0 } }
 };
 const CGEN_MAYBE_MULTI_IFLD FRV_F_LABEL24_MULTI_IFIELD [] =
 {
-    { 0, &(frv_cgen_ifld_table[61]) },
-    { 0, &(frv_cgen_ifld_table[62]) },
-    {0,0}
+    { 0, { (const PTR) &frv_cgen_ifld_table[61] } },
+    { 0, { (const PTR) &frv_cgen_ifld_table[62] } },
+    { 0, { (const PTR) 0 } }
 };
 
 /* The operand table.  */
@@ -1923,313 +1924,316 @@ const CGEN_OPERAND frv_cgen_operand_table[] =
 {
 /* pc: program counter */
   { "pc", FRV_OPERAND_PC, HW_H_PC, 0, 0,
-    { 0, &(frv_cgen_ifld_table[0]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[0] } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* pack: packing bit */
   { "pack", FRV_OPERAND_PACK, HW_H_PACK, 31, 1,
-    { 0, &(frv_cgen_ifld_table[2]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[2] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* GRi: source register 1 */
   { "GRi", FRV_OPERAND_GRI, HW_H_GR, 17, 6,
-    { 0, &(frv_cgen_ifld_table[8]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[8] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* GRj: source register 2 */
   { "GRj", FRV_OPERAND_GRJ, HW_H_GR, 5, 6,
-    { 0, &(frv_cgen_ifld_table[9]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[9] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* GRk: destination register */
   { "GRk", FRV_OPERAND_GRK, HW_H_GR, 30, 6,
-    { 0, &(frv_cgen_ifld_table[10]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[10] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* GRkhi: destination register */
   { "GRkhi", FRV_OPERAND_GRKHI, HW_H_GR_HI, 30, 6,
-    { 0, &(frv_cgen_ifld_table[10]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[10] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* GRklo: destination register */
   { "GRklo", FRV_OPERAND_GRKLO, HW_H_GR_LO, 30, 6,
-    { 0, &(frv_cgen_ifld_table[10]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[10] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* GRdoublek: destination register */
   { "GRdoublek", FRV_OPERAND_GRDOUBLEK, HW_H_GR_DOUBLE, 30, 6,
-    { 0, &(frv_cgen_ifld_table[10]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[10] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ACC40Si: signed accumulator */
   { "ACC40Si", FRV_OPERAND_ACC40SI, HW_H_ACC40S, 17, 6,
-    { 0, &(frv_cgen_ifld_table[19]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[19] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ACC40Ui: unsigned accumulator */
   { "ACC40Ui", FRV_OPERAND_ACC40UI, HW_H_ACC40U, 17, 6,
-    { 0, &(frv_cgen_ifld_table[20]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[20] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ACC40Sk: target accumulator */
   { "ACC40Sk", FRV_OPERAND_ACC40SK, HW_H_ACC40S, 30, 6,
-    { 0, &(frv_cgen_ifld_table[21]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[21] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ACC40Uk: target accumulator */
   { "ACC40Uk", FRV_OPERAND_ACC40UK, HW_H_ACC40U, 30, 6,
-    { 0, &(frv_cgen_ifld_table[22]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[22] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ACCGi: source register */
   { "ACCGi", FRV_OPERAND_ACCGI, HW_H_ACCG, 17, 6,
-    { 0, &(frv_cgen_ifld_table[17]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[17] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ACCGk: target register */
   { "ACCGk", FRV_OPERAND_ACCGK, HW_H_ACCG, 30, 6,
-    { 0, &(frv_cgen_ifld_table[18]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[18] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* CPRi: source register */
   { "CPRi", FRV_OPERAND_CPRI, HW_H_CPR, 17, 6,
-    { 0, &(frv_cgen_ifld_table[14]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[14] } }, 
     { 0, { (1<<MACH_FRV) } }  },
 /* CPRj: source register */
   { "CPRj", FRV_OPERAND_CPRJ, HW_H_CPR, 5, 6,
-    { 0, &(frv_cgen_ifld_table[15]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[15] } }, 
     { 0, { (1<<MACH_FRV) } }  },
 /* CPRk: destination register */
   { "CPRk", FRV_OPERAND_CPRK, HW_H_CPR, 30, 6,
-    { 0, &(frv_cgen_ifld_table[16]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[16] } }, 
     { 0, { (1<<MACH_FRV) } }  },
 /* CPRdoublek: destination register */
   { "CPRdoublek", FRV_OPERAND_CPRDOUBLEK, HW_H_CPR_DOUBLE, 30, 6,
-    { 0, &(frv_cgen_ifld_table[16]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[16] } }, 
     { 0, { (1<<MACH_FRV) } }  },
 /* FRinti: source register 1 */
   { "FRinti", FRV_OPERAND_FRINTI, HW_H_FR_INT, 17, 6,
-    { 0, &(frv_cgen_ifld_table[11]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[11] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRintj: source register 2 */
   { "FRintj", FRV_OPERAND_FRINTJ, HW_H_FR_INT, 5, 6,
-    { 0, &(frv_cgen_ifld_table[12]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[12] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRintk: target register */
   { "FRintk", FRV_OPERAND_FRINTK, HW_H_FR_INT, 30, 6,
-    { 0, &(frv_cgen_ifld_table[13]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[13] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRi: source register 1 */
   { "FRi", FRV_OPERAND_FRI, HW_H_FR, 17, 6,
-    { 0, &(frv_cgen_ifld_table[11]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[11] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRj: source register 2 */
   { "FRj", FRV_OPERAND_FRJ, HW_H_FR, 5, 6,
-    { 0, &(frv_cgen_ifld_table[12]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[12] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRk: destination register */
   { "FRk", FRV_OPERAND_FRK, HW_H_FR, 30, 6,
-    { 0, &(frv_cgen_ifld_table[13]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[13] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRkhi: destination register */
   { "FRkhi", FRV_OPERAND_FRKHI, HW_H_FR_HI, 30, 6,
-    { 0, &(frv_cgen_ifld_table[13]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[13] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRklo: destination register */
   { "FRklo", FRV_OPERAND_FRKLO, HW_H_FR_LO, 30, 6,
-    { 0, &(frv_cgen_ifld_table[13]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[13] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRdoublei: source register 1 */
   { "FRdoublei", FRV_OPERAND_FRDOUBLEI, HW_H_FR_DOUBLE, 17, 6,
-    { 0, &(frv_cgen_ifld_table[11]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[11] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRdoublej: source register 2 */
   { "FRdoublej", FRV_OPERAND_FRDOUBLEJ, HW_H_FR_DOUBLE, 5, 6,
-    { 0, &(frv_cgen_ifld_table[12]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[12] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FRdoublek: target register */
   { "FRdoublek", FRV_OPERAND_FRDOUBLEK, HW_H_FR_DOUBLE, 30, 6,
-    { 0, &(frv_cgen_ifld_table[13]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[13] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* CRi: source register 1 */
   { "CRi", FRV_OPERAND_CRI, HW_H_CCCR, 14, 3,
-    { 0, &(frv_cgen_ifld_table[23]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[23] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* CRj: source register 2 */
   { "CRj", FRV_OPERAND_CRJ, HW_H_CCCR, 2, 3,
-    { 0, &(frv_cgen_ifld_table[24]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[24] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* CRj_int: destination register */
   { "CRj_int", FRV_OPERAND_CRJ_INT, HW_H_CCCR, 26, 2,
-    { 0, &(frv_cgen_ifld_table[27]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[27] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* CRj_float: destination register */
   { "CRj_float", FRV_OPERAND_CRJ_FLOAT, HW_H_CCCR, 26, 2,
-    { 0, &(frv_cgen_ifld_table[28]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[28] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* CRk: destination register */
   { "CRk", FRV_OPERAND_CRK, HW_H_CCCR, 27, 3,
-    { 0, &(frv_cgen_ifld_table[25]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[25] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* CCi: condition   register */
   { "CCi", FRV_OPERAND_CCI, HW_H_CCCR, 11, 3,
-    { 0, &(frv_cgen_ifld_table[26]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[26] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ICCi_1: condition   register */
   { "ICCi_1", FRV_OPERAND_ICCI_1, HW_H_ICCR, 11, 2,
-    { 0, &(frv_cgen_ifld_table[29]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[29] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ICCi_2: condition   register */
   { "ICCi_2", FRV_OPERAND_ICCI_2, HW_H_ICCR, 26, 2,
-    { 0, &(frv_cgen_ifld_table[30]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[30] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ICCi_3: condition   register */
   { "ICCi_3", FRV_OPERAND_ICCI_3, HW_H_ICCR, 1, 2,
-    { 0, &(frv_cgen_ifld_table[31]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[31] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FCCi_1: condition   register */
   { "FCCi_1", FRV_OPERAND_FCCI_1, HW_H_FCCR, 11, 2,
-    { 0, &(frv_cgen_ifld_table[32]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[32] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FCCi_2: condition   register */
   { "FCCi_2", FRV_OPERAND_FCCI_2, HW_H_FCCR, 26, 2,
-    { 0, &(frv_cgen_ifld_table[33]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[33] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FCCi_3: condition   register */
   { "FCCi_3", FRV_OPERAND_FCCI_3, HW_H_FCCR, 1, 2,
-    { 0, &(frv_cgen_ifld_table[34]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[34] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* FCCk: condition   register */
   { "FCCk", FRV_OPERAND_FCCK, HW_H_FCCR, 26, 2,
-    { 0, &(frv_cgen_ifld_table[35]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[35] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* eir: exception insn reg */
   { "eir", FRV_OPERAND_EIR, HW_H_UINT, 17, 6,
-    { 0, &(frv_cgen_ifld_table[36]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[36] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* s10: 10 bit signed immediate */
   { "s10", FRV_OPERAND_S10, HW_H_SINT, 9, 10,
-    { 0, &(frv_cgen_ifld_table[37]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[37] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* u16: 16 bit unsigned immediate */
   { "u16", FRV_OPERAND_U16, HW_H_UINT, 15, 16,
-    { 0, &(frv_cgen_ifld_table[40]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[40] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* s16: 16 bit signed   immediate */
   { "s16", FRV_OPERAND_S16, HW_H_SINT, 15, 16,
-    { 0, &(frv_cgen_ifld_table[41]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[41] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* s6: 6  bit signed   immediate */
   { "s6", FRV_OPERAND_S6, HW_H_SINT, 5, 6,
-    { 0, &(frv_cgen_ifld_table[42]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[42] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* s6_1: 6  bit signed   immediate */
   { "s6_1", FRV_OPERAND_S6_1, HW_H_SINT, 11, 6,
-    { 0, &(frv_cgen_ifld_table[43]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[43] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* u6: 6  bit unsigned immediate */
   { "u6", FRV_OPERAND_U6, HW_H_UINT, 5, 6,
-    { 0, &(frv_cgen_ifld_table[44]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[44] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* s5: 5  bit signed   immediate */
   { "s5", FRV_OPERAND_S5, HW_H_SINT, 4, 5,
-    { 0, &(frv_cgen_ifld_table[45]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[45] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* cond: conditional arithmetic */
   { "cond", FRV_OPERAND_COND, HW_H_UINT, 8, 1,
-    { 0, &(frv_cgen_ifld_table[50]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[50] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* ccond: lr branch condition */
   { "ccond", FRV_OPERAND_CCOND, HW_H_UINT, 12, 1,
-    { 0, &(frv_cgen_ifld_table[51]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[51] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* hint: 2 bit branch predictor */
   { "hint", FRV_OPERAND_HINT, HW_H_UINT, 17, 2,
-    { 0, &(frv_cgen_ifld_table[52]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[52] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* hint_taken: 2 bit branch predictor */
   { "hint_taken", FRV_OPERAND_HINT_TAKEN, HW_H_HINT_TAKEN, 17, 2,
-    { 0, &(frv_cgen_ifld_table[52]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[52] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* hint_not_taken: 2 bit branch predictor */
   { "hint_not_taken", FRV_OPERAND_HINT_NOT_TAKEN, HW_H_HINT_NOT_TAKEN, 17, 2,
-    { 0, &(frv_cgen_ifld_table[52]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[52] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* LI: link indicator */
   { "LI", FRV_OPERAND_LI, HW_H_UINT, 25, 1,
-    { 0, &(frv_cgen_ifld_table[53]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[53] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* lock: cache lock indicator */
   { "lock", FRV_OPERAND_LOCK, HW_H_UINT, 25, 1,
-    { 0, &(frv_cgen_ifld_table[54]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[54] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* debug: debug mode indicator */
   { "debug", FRV_OPERAND_DEBUG, HW_H_UINT, 25, 1,
-    { 0, &(frv_cgen_ifld_table[55]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[55] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* A: all accumulator indicator */
   { "A", FRV_OPERAND_A, HW_H_UINT, 17, 1,
-    { 0, &(frv_cgen_ifld_table[56]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[56] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* ae: all entries indicator */
   { "ae", FRV_OPERAND_AE, HW_H_UINT, 25, 1,
-    { 0, &(frv_cgen_ifld_table[57]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[57] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* label16: 18 bit pc relative address */
   { "label16", FRV_OPERAND_LABEL16, HW_H_IADDR, 15, 16,
-    { 0, &(frv_cgen_ifld_table[60]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[60] } }, 
     { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* label24: 26 bit pc relative address */
   { "label24", FRV_OPERAND_LABEL24, HW_H_IADDR, 17, 24,
-    { 2, &(FRV_F_LABEL24_MULTI_IFIELD[0]) }, 
+    { 2, { (const PTR) &FRV_F_LABEL24_MULTI_IFIELD[0] } }, 
     { 0|A(PCREL_ADDR)|A(VIRTUAL), { (1<<MACH_BASE) } }  },
 /* d12: 12 bit signed immediate */
   { "d12", FRV_OPERAND_D12, HW_H_SINT, 11, 12,
-    { 0, &(frv_cgen_ifld_table[39]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[39] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* s12: 12 bit signed immediate */
   { "s12", FRV_OPERAND_S12, HW_H_SINT, 11, 12,
-    { 0, &(frv_cgen_ifld_table[39]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[39] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* u12: 12 bit signed immediate */
   { "u12", FRV_OPERAND_U12, HW_H_SINT, 5, 12,
-    { 2, &(FRV_F_U12_MULTI_IFIELD[0]) }, 
+    { 2, { (const PTR) &FRV_F_U12_MULTI_IFIELD[0] } }, 
     { 0|A(HASH_PREFIX)|A(VIRTUAL), { (1<<MACH_BASE) } }  },
 /* spr: special purpose register */
   { "spr", FRV_OPERAND_SPR, HW_H_SPR, 17, 12,
-    { 2, &(FRV_F_SPR_MULTI_IFIELD[0]) }, 
+    { 2, { (const PTR) &FRV_F_SPR_MULTI_IFIELD[0] } }, 
     { 0|A(VIRTUAL), { (1<<MACH_BASE) } }  },
 /* ulo16: 16 bit unsigned immediate, for #lo() */
   { "ulo16", FRV_OPERAND_ULO16, HW_H_UINT, 15, 16,
-    { 0, &(frv_cgen_ifld_table[40]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[40] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* slo16: 16 bit unsigned immediate, for #lo() */
   { "slo16", FRV_OPERAND_SLO16, HW_H_SINT, 15, 16,
-    { 0, &(frv_cgen_ifld_table[41]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[41] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* uhi16: 16 bit unsigned immediate, for #hi() */
   { "uhi16", FRV_OPERAND_UHI16, HW_H_UINT, 15, 16,
-    { 0, &(frv_cgen_ifld_table[40]) }, 
+    { 0, { (const PTR) &frv_cgen_ifld_table[40] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* psr_esr: PSR.ESR bit */
   { "psr_esr", FRV_OPERAND_PSR_ESR, HW_H_PSR_ESR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psr_s: PSR.S   bit */
   { "psr_s", FRV_OPERAND_PSR_S, HW_H_PSR_S, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psr_ps: PSR.PS  bit */
   { "psr_ps", FRV_OPERAND_PSR_PS, HW_H_PSR_PS, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psr_et: PSR.ET  bit */
   { "psr_et", FRV_OPERAND_PSR_ET, HW_H_PSR_ET, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* bpsr_bs: BPSR.BS  bit */
   { "bpsr_bs", FRV_OPERAND_BPSR_BS, HW_H_BPSR_BS, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* bpsr_bet: BPSR.BET bit */
   { "bpsr_bet", FRV_OPERAND_BPSR_BET, HW_H_BPSR_BET, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* tbr_tba: TBR.TBA */
   { "tbr_tba", FRV_OPERAND_TBR_TBA, HW_H_TBR_TBA, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* tbr_tt: TBR.TT */
   { "tbr_tt", FRV_OPERAND_TBR_TT, HW_H_TBR_TT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
-  { 0, 0, 0, 0, 0, {0, {0}} }
+/* sentinel */
+  { 0, 0, 0, 0, 0,
+    { 0, { (const PTR) 0 } },
+    { 0, { 0 } } }
 };
 
 #undef A
@@ -6270,7 +6274,7 @@ frv_cgen_cpu_close (cd)
      CGEN_CPU_DESC cd;
 {
   unsigned int i;
-  CGEN_INSN *insns;
+  const CGEN_INSN *insns;
 
   if (cd->macro_insn_table.init_entries)
     {
@@ -6278,7 +6282,7 @@ frv_cgen_cpu_close (cd)
       for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX ((insns)))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
@@ -6288,7 +6292,7 @@ frv_cgen_cpu_close (cd)
       for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX (insns))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
index a6378763868e255a189f17ce3728d22c46c506b4..f71e1c5c83f3af9fef11fc99859d639595f402e3 100644 (file)
@@ -4,7 +4,8 @@
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 - the resultant file is machine generated, cgen-dis.in isn't
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and GDB, the GNU debugger.
 
@@ -31,6 +32,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #include "dis-asm.h"
 #include "bfd.h"
 #include "symcat.h"
+#include "libiberty.h"
 #include "frv-desc.h"
 #include "frv-opc.h"
 #include "opintl.h"
index d14fda9858b102b2905be98325ced061bd3339d7..2a3cd218f4791d74c072d1b820c8d7d48a7dd6a1 100644 (file)
@@ -23,6 +23,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "opcode/h8300.h"
 #include "dis-asm.h"
 #include "opintl.h"
+#include "libiberty.h"
+
+struct h8_instruction
+{
+  int length;
+  const struct h8_opcode *opcode;
+};
+
+struct h8_instruction *h8_instructions;
 
 static void bfd_h8_disassemble_init PARAMS ((void));
 static unsigned int bfd_h8_disassemble
@@ -34,9 +43,16 @@ static void
 bfd_h8_disassemble_init ()
 {
   unsigned int i;
-  struct h8_opcode *p;
+  unsigned int nopcodes;
+  const struct h8_opcode *p;
+  struct h8_instruction *pi;
 
-  for (p = h8_opcodes; p->name; p++)
+  nopcodes = sizeof (h8_opcodes) / sizeof (struct h8_opcode);
+
+  h8_instructions = (struct h8_instruction *)
+    xmalloc (nopcodes * sizeof (struct h8_instruction));
+
+  for (p = h8_opcodes, pi = h8_instructions; p->name; p++, pi++)
     {
       int n1 = 0;
       int n2 = 0;
@@ -59,8 +75,13 @@ bfd_h8_disassemble_init ()
       if (i & 1)
        abort ();
 
-      p->length = i / 2;
+      pi->length = i / 2;
+      pi->opcode = p;
     }
+
+  /* Add entry for the NULL vector terminator.  */
+  pi->length = 0;
+  pi->opcode = p;
 }
 
 static unsigned int
@@ -91,8 +112,8 @@ bfd_h8_disassemble (addr, info, mode)
   int abs = 0;
   int bit = 0;
   int plen = 0;
-  static boolean init = 0;
-  struct h8_opcode *q;
+  static bfd_boolean init = 0;
+  const struct h8_instruction *qi;
   char const **pregnames = mode != 0 ? lregnames : wregnames;
   int status;
   int l;
@@ -117,8 +138,9 @@ bfd_h8_disassemble (addr, info, mode)
     status = info->read_memory_func (addr + l, data + l, 2, info);
 
   /* Find the exact opcode/arg combo.  */
-  for (q = h8_opcodes; q->name; q++)
+  for (qi = h8_instructions; qi->opcode->name; qi++)
     {
+      const struct h8_opcode *q = qi->opcode;
       op_type *nib = q->data.nib;
       unsigned int len = 0;
 
@@ -247,7 +269,7 @@ bfd_h8_disassemble (addr, info, mode)
                {
                  int i;
 
-                 for (i = 0; i < q->length; i++)
+                 for (i = 0; i < qi->length; i++)
                    fprintf (stream, "%02x ", data[i]);
 
                  for (; i < 6; i++)
@@ -264,7 +286,7 @@ bfd_h8_disassemble (addr, info, mode)
                      high = data[3] & 0x7;
 
                      fprintf (stream, "@sp+,er%d-er%d", high - count, high);
-                     return q->length;
+                     return qi->length;
                    }
 
                  if (strcmp (q->name, "stm.l") == 0)
@@ -275,7 +297,7 @@ bfd_h8_disassemble (addr, info, mode)
                      low = data[3] & 0x7;
 
                      fprintf (stream, "er%d-er%d,@-sp", low, low + count);
-                     return q->length;
+                     return qi->length;
                    }
 
                  /* Fill in the args.  */
@@ -389,7 +411,7 @@ bfd_h8_disassemble (addr, info, mode)
                      }
                  }
 
-                 return q->length;
+                 return qi->length;
                }
              else
                /* xgettext:c-format */
index 62371829e2bbcb89e523025fd8e4e8934b8b7412..5fa52fbf99e911b17a49811ba80fd25018a6b8f4 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassemble h8500 instructions.
-   Copyright 1993, 1998, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1993, 1998, 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
@@ -78,7 +78,7 @@ print_insn_h8500 (addr, info)
      bfd_vma addr;
      disassemble_info *info;
 {
-  h8500_opcode_info *opcode;
+  const h8500_opcode_info *opcode;
   void *stream = info->stream;
   fprintf_ftype func = info->fprintf_func;
 
index 13ee7fbd2fa9c50eaa706957de4fbe2b1a71765c..b2c86176e1534a05d4c32c7ae67ef095968d9880 100644 (file)
@@ -157,7 +157,7 @@ typedef struct {
        int length;
        struct { unsigned char contents;unsigned char mask; char insert; } bytes[6];
 } h8500_opcode_info;
-h8500_opcode_info h8500_table[]
+const h8500_opcode_info h8500_table[]
 #ifdef ASSEMBLER_TABLE
 #ifdef DEFINE_TABLE
 ={
@@ -168,185 +168,185 @@ h8500_opcode_info h8500_table[]
                                                                   {0x07,0xff, },
                                                                   {0x00,0x00,IMM16 },{0x00,0x00, }}},*/
 
-{1,'s','E','C','C',O_XORC|O_WORD,"xorc.w",2,{IMM16,CRW},4,     {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x68,0xf8,CRW }}},
-{2,'s','E','C','C',O_XORC|O_BYTE,"xorc.b",2,{IMM8,CRB},3,      {{0x04,0xff, },{0x00,0x00,IMM8 },{0x68,0xf8,CRB }}},
+{1,'s','E','C','C',O_XORC|O_WORD,"xorc.w",2,{IMM16,CRW},4,     {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x68,0xf8,CRW }}},
+{2,'s','E','C','C',O_XORC|O_BYTE,"xorc.b",2,{IMM8,CRB},3,      {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x68,0xf8,CRB }}},
 {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RN,RD},2,   {{0xa8,0xf8,RN },{0x60,0xf8,RD }}},
 {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNDEC,RD},2,        {{0xb8,0xf8,RN },{0x60,0xf8,RD }}},
 {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNINC,RD},2,        {{0xc8,0xf8,RN },{0x60,0xf8,RD }}},
 {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNIND,RD},2,        {{0xd8,0xf8,RN },{0x60,0xf8,RD }}},
-{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}},
+{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}},
 {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNIND_D8,RD},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x60,0xf8,RD }}},
-{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{ABS16,RD},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x60,0xf8,RD }}},
-{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{IMM16,RD},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x60,0xf8,RD }}},
-{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x60,0xf8,RD }}},
+{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{ABS16,RD},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x60,0xf8,RD }}},
+{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{IMM16,RD},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x60,0xf8,RD }}},
+{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x60,0xf8,RD }}},
 {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RN,RD},2,   {{0xa0,0xf8,RN },{0x60,0xf8,RD }}},
 {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNDEC,RD},2,        {{0xb0,0xf8,RN },{0x60,0xf8,RD }}},
 {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNINC,RD},2,        {{0xc0,0xf8,RN },{0x60,0xf8,RD }}},
 {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNIND,RD},2,        {{0xd0,0xf8,RN },{0x60,0xf8,RD }}},
-{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x60,0xf8,RD }}},
-{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}},
+{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x60,0xf8,RD }}},
+{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}},
 {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNIND_D8,RD},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x60,0xf8,RD }}},
-{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{ABS16,RD},4,        {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x60,0xf8,RD }}},
-{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNIND_D16,RD},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x60,0xf8,RD }}},
+{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{ABS16,RD},4,        {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x60,0xf8,RD }}},
+{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNIND_D16,RD},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x60,0xf8,RD }}},
 {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RN,RD},2,     {{0xa8,0xf8,RN },{0x60,0xf8,RD }}},
 {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNDEC,RD},2,  {{0xb8,0xf8,RN },{0x60,0xf8,RD }}},
 {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNIND,RD},2,  {{0xd8,0xf8,RN },{0x60,0xf8,RD }}},
 {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNINC,RD},2,  {{0xc8,0xf8,RN },{0x60,0xf8,RD }}},
 {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNIND_D8,RD},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x60,0xf8,RD }}},
-{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{ABS8,RD},3,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}},
-{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{IMM16,RD},4,  {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x60,0xf8,RD }}},
-{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{ABS16,RD},4,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x60,0xf8,RD }}},
-{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNIND_D16,RD},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x60,0xf8,RD }}},
+{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{ABS8,RD},3,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}},
+{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{IMM16,RD},4,  {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x60,0xf8,RD }}},
+{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{ABS16,RD},4,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x60,0xf8,RD }}},
+{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNIND_D16,RD},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x60,0xf8,RD }}},
 {6,'-','X','!','!',O_XCH|O_WORD,"xch.w",2,{RS,RD},2,   {{0xa8,0xf8,RS },{0x90,0xf8,RD }}},
 {7,'-','X','!','!',O_XCH|O_UNSZ,"xch",2,{RS,RD},2,     {{0xa8,0xf8,RS },{0x90,0xf8,RD }}},
-{8,'-','B','!','!',O_UNLK|O_UNSZ,"unlk",1,{FP,0},1,    {{0x0f,0xff, }}},
-{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RN,0},2,    {{0xa8,0xf8,RN },{0x16,0xff, }}},
-{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x16,0xff, }}},
-{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x16,0xff, }}},
-{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x16,0xff, }}},
-{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{ABS8,0},3,  {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x16,0xff, }}},
-{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND_D8,0},3,      {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff, }}},
-{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x16,0xff, }}},
-{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x16,0xff, }}},
-{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND_D16,0},4,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x16,0xff, }}},
-{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RN,0},2,   {{0xa0,0xf8,RN },{0x16,0xff, }}},
-{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNDEC,0},2,        {{0xb0,0xf8,RN },{0x16,0xff, }}},
-{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNINC,0},2,        {{0xc0,0xf8,RN },{0x16,0xff, }}},
-{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND,0},2,        {{0xd0,0xf8,RN },{0x16,0xff, }}},
-{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x16,0xff, }}},
-{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x16,0xff, }}},
-{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND_D8,0},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff, }}},
-{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{ABS16,0},4,        {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x16,0xff, }}},
-{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND_D16,0},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x16,0xff, }}},
-{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RN,0},2,     {{0xa8,0xf8,RN },{0x16,0xff, }}},
-{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND,0},2,  {{0xd8,0xf8,RN },{0x16,0xff, }}},
-{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNDEC,0},2,  {{0xb8,0xf8,RN },{0x16,0xff, }}},
-{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNINC,0},2,  {{0xc8,0xf8,RN },{0x16,0xff, }}},
-{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{ABS8,0},3,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x16,0xff, }}},
-{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND_D8,0},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff, }}},
-{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{IMM16,0},4,  {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x16,0xff, }}},
-{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{ABS16,0},4,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x16,0xff, }}},
-{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND_D16,0},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x16,0xff, }}},
-{12,'-','I','!','!',O_TRAPA|O_UNSZ,"trapa",1,{IMM4,0},2,       {{0x08,0xff, },{0x10,0xf0,IMM4 }}},
-{13,'-','B','!','!',O_TRAP_VS|O_UNSZ,"trap/vs",0,{0,0},1,      {{0x09,0xff, }}},
-{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RN,0},2,   {{0xa0,0xf8,RN },{0x17,0xff, }}},
-{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNINC,0},2,        {{0xc0,0xf8,RN },{0x17,0xff, }}},
-{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNDEC,0},2,        {{0xb0,0xf8,RN },{0x17,0xff, }}},
-{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND,0},2,        {{0xd0,0xf8,RN },{0x17,0xff, }}},
-{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x17,0xff, }}},
-{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x17,0xff, }}},
-{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND_D8,0},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x17,0xff, }}},
-{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{ABS16,0},4,        {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x17,0xff, }}},
-{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND_D16,0},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x17,0xff, }}},
-{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RN,0},2,     {{0xa0,0xf8,RN },{0x17,0xff, }}},
-{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND,0},2,  {{0xd0,0xf8,RN },{0x17,0xff, }}},
-{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNINC,0},2,  {{0xc0,0xf8,RN },{0x17,0xff, }}},
-{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNDEC,0},2,  {{0xb0,0xf8,RN },{0x17,0xff, }}},
-{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{IMM8,0},3,   {{0x04,0xff, },{0x00,0x00,IMM8 },{0x17,0xff, }}},
-{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{ABS8,0},3,   {{0x05,0xff, },{0x00,0x00,ABS8 },{0x17,0xff, }}},
-{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND_D8,0},3,       {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x17,0xff, }}},
-{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{ABS16,0},4,  {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x17,0xff, }}},
-{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND_D16,0},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x17,0xff, }}},
-{16,'m','D','!','D',O_SWAP|O_BYTE,"swap.b",1,{RD,0},2, {{0xa0,0xf8,RD },{0x10,0xff, }}},
-{17,'m','D','!','D',O_SWAP|O_UNSZ,"swap",1,{RD,0},2,   {{0xa0,0xf8,RD },{0x10,0xff, }}},
+{8,'-','B','!','!',O_UNLK|O_UNSZ,"unlk",1,{FP,0},1,    {{0x0f,0xff,0 }}},
+{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RN,0},2,    {{0xa8,0xf8,RN },{0x16,0xff,0 }}},
+{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x16,0xff,0 }}},
+{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x16,0xff,0 }}},
+{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x16,0xff,0 }}},
+{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{ABS8,0},3,  {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x16,0xff,0 }}},
+{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND_D8,0},3,      {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff,0 }}},
+{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x16,0xff,0 }}},
+{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x16,0xff,0 }}},
+{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND_D16,0},4,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x16,0xff,0 }}},
+{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RN,0},2,   {{0xa0,0xf8,RN },{0x16,0xff,0 }}},
+{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNDEC,0},2,        {{0xb0,0xf8,RN },{0x16,0xff,0 }}},
+{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNINC,0},2,        {{0xc0,0xf8,RN },{0x16,0xff,0 }}},
+{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND,0},2,        {{0xd0,0xf8,RN },{0x16,0xff,0 }}},
+{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x16,0xff,0 }}},
+{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x16,0xff,0 }}},
+{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND_D8,0},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff,0 }}},
+{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{ABS16,0},4,        {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x16,0xff,0 }}},
+{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND_D16,0},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x16,0xff,0 }}},
+{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RN,0},2,     {{0xa8,0xf8,RN },{0x16,0xff,0 }}},
+{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND,0},2,  {{0xd8,0xf8,RN },{0x16,0xff,0 }}},
+{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNDEC,0},2,  {{0xb8,0xf8,RN },{0x16,0xff,0 }}},
+{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNINC,0},2,  {{0xc8,0xf8,RN },{0x16,0xff,0 }}},
+{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{ABS8,0},3,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x16,0xff,0 }}},
+{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND_D8,0},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff,0 }}},
+{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{IMM16,0},4,  {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x16,0xff,0 }}},
+{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{ABS16,0},4,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x16,0xff,0 }}},
+{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND_D16,0},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x16,0xff,0 }}},
+{12,'-','I','!','!',O_TRAPA|O_UNSZ,"trapa",1,{IMM4,0},2,       {{0x08,0xff,0 },{0x10,0xf0,IMM4 }}},
+{13,'-','B','!','!',O_TRAP_VS|O_UNSZ,"trap/vs",0,{0,0},1,      {{0x09,0xff,0 }}},
+{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RN,0},2,   {{0xa0,0xf8,RN },{0x17,0xff,0 }}},
+{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNINC,0},2,        {{0xc0,0xf8,RN },{0x17,0xff,0 }}},
+{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNDEC,0},2,        {{0xb0,0xf8,RN },{0x17,0xff,0 }}},
+{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND,0},2,        {{0xd0,0xf8,RN },{0x17,0xff,0 }}},
+{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x17,0xff,0 }}},
+{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x17,0xff,0 }}},
+{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND_D8,0},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x17,0xff,0 }}},
+{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{ABS16,0},4,        {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x17,0xff,0 }}},
+{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND_D16,0},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x17,0xff,0 }}},
+{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RN,0},2,     {{0xa0,0xf8,RN },{0x17,0xff,0 }}},
+{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND,0},2,  {{0xd0,0xf8,RN },{0x17,0xff,0 }}},
+{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNINC,0},2,  {{0xc0,0xf8,RN },{0x17,0xff,0 }}},
+{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNDEC,0},2,  {{0xb0,0xf8,RN },{0x17,0xff,0 }}},
+{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{IMM8,0},3,   {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x17,0xff,0 }}},
+{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{ABS8,0},3,   {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x17,0xff,0 }}},
+{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND_D8,0},3,       {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x17,0xff,0 }}},
+{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{ABS16,0},4,  {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x17,0xff,0 }}},
+{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND_D16,0},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x17,0xff,0 }}},
+{16,'m','D','!','D',O_SWAP|O_BYTE,"swap.b",1,{RD,0},2, {{0xa0,0xf8,RD },{0x10,0xff,0 }}},
+{17,'m','D','!','D',O_SWAP|O_UNSZ,"swap",1,{RD,0},2,   {{0xa0,0xf8,RD },{0x10,0xff,0 }}},
 {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RN,RD},2,        {{0xa8,0xf8,RN },{0xb0,0xf8,RD }}},
 {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNDEC,RD},2,     {{0xb8,0xf8,RN },{0xb0,0xf8,RD }}},
 {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNIND,RD},2,     {{0xd8,0xf8,RN },{0xb0,0xf8,RD }}},
 {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNINC,RD},2,     {{0xc8,0xf8,RN },{0xb0,0xf8,RD }}},
-{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{ABS8,RD},3,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}},
+{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{ABS8,RD},3,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}},
 {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNIND_D8,RD},3,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xb0,0xf8,RD }}},
-{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{ABS16,RD},4,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb0,0xf8,RD }}},
-{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{IMM16,RD},4,     {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xb0,0xf8,RD }}},
-{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb0,0xf8,RD }}},
+{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{ABS16,RD},4,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}},
+{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{IMM16,RD},4,     {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}},
+{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}},
 {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RN,RD},2,        {{0xa0,0xf8,RN },{0xb0,0xf8,RD }}},
 {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNINC,RD},2,     {{0xc0,0xf8,RN },{0xb0,0xf8,RD }}},
 {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNIND,RD},2,     {{0xd0,0xf8,RN },{0xb0,0xf8,RD }}},
 {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNDEC,RD},2,     {{0xb0,0xf8,RN },{0xb0,0xf8,RD }}},
-{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{ABS8,RD},3,      {{0x05,0xff, },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}},
-{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{IMM8,RD},3,      {{0x04,0xff, },{0x00,0x00,IMM8 },{0xb0,0xf8,RD }}},
+{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{ABS8,RD},3,      {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}},
+{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{IMM8,RD},3,      {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0xb0,0xf8,RD }}},
 {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNIND_D8,RD},3,  {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xb0,0xf8,RD }}},
-{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{ABS16,RD},4,     {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb0,0xf8,RD }}},
-{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb0,0xf8,RD }}},
+{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{ABS16,RD},4,     {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}},
+{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}},
 {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RN,RD},2,  {{0xa8,0xf8,RN },{0xb0,0xf8,RD }}},
 {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNDEC,RD},2,       {{0xb8,0xf8,RN },{0xb0,0xf8,RD }}},
 {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNINC,RD},2,       {{0xc8,0xf8,RN },{0xb0,0xf8,RD }}},
 {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNIND,RD},2,       {{0xd8,0xf8,RN },{0xb0,0xf8,RD }}},
-{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{ABS8,RD},3,        {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}},
+{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{ABS8,RD},3,        {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}},
 {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNIND_D8,RD},3,    {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xb0,0xf8,RD }}},
-{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{IMM16,RD},4,       {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xb0,0xf8,RD }}},
-{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{ABS16,RD},4,       {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb0,0xf8,RD }}},
-{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNIND_D16,RD},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb0,0xf8,RD }}},
+{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{IMM16,RD},4,       {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}},
+{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{ABS16,RD},4,       {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}},
+{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNIND_D16,RD},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}},
 {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RN,RD},2,        {{0xa8,0xf8,RN },{0x38,0xf8,RD }}},
 {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNIND,RD},2,     {{0xd8,0xf8,RN },{0x38,0xf8,RD }}},
 {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNINC,RD},2,     {{0xc8,0xf8,RN },{0x38,0xf8,RD }}},
 {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNDEC,RD},2,     {{0xb8,0xf8,RN },{0x38,0xf8,RD }}},
-{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{ABS8,RD},3,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}},
+{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{ABS8,RD},3,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}},
 {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNIND_D8,RD},3,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x38,0xf8,RD }}},
-{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{ABS16,RD},4,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x38,0xf8,RD }}},
-{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{IMM16,RD},4,     {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x38,0xf8,RD }}},
-{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x38,0xf8,RD }}},
+{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{ABS16,RD},4,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x38,0xf8,RD }}},
+{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{IMM16,RD},4,     {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x38,0xf8,RD }}},
+{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x38,0xf8,RD }}},
 {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RN,RD},2,        {{0xa0,0xf8,RN },{0x38,0xf8,RD }}},
 {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNINC,RD},2,     {{0xc0,0xf8,RN },{0x38,0xf8,RD }}},
 {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNDEC,RD},2,     {{0xb0,0xf8,RN },{0x38,0xf8,RD }}},
 {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNIND,RD},2,     {{0xd0,0xf8,RN },{0x38,0xf8,RD }}},
-{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{ABS8,RD},3,      {{0x05,0xff, },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}},
-{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{IMM8,RD},3,      {{0x04,0xff, },{0x00,0x00,IMM8 },{0x38,0xf8,RD }}},
+{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{ABS8,RD},3,      {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}},
+{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{IMM8,RD},3,      {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x38,0xf8,RD }}},
 {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNIND_D8,RD},3,  {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x38,0xf8,RD }}},
-{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{ABS16,RD},4,     {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x38,0xf8,RD }}},
-{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x38,0xf8,RD }}},
+{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{ABS16,RD},4,     {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x38,0xf8,RD }}},
+{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x38,0xf8,RD }}},
 {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RN,RD},2,  {{0xa8,0xf8,RN },{0x38,0xf8,RD }}},
 {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNDEC,RD},2,       {{0xb8,0xf8,RN },{0x38,0xf8,RD }}},
 {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNIND,RD},2,       {{0xd8,0xf8,RN },{0x38,0xf8,RD }}},
 {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNINC,RD},2,       {{0xc8,0xf8,RN },{0x38,0xf8,RD }}},
-{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{ABS8,RD},3,        {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}},
+{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{ABS8,RD},3,        {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}},
 {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNIND_D8,RD},3,    {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x38,0xf8,RD }}},
-{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{ABS16,RD},4,       {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x38,0xf8,RD }}},
-{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{IMM16,RD},4,       {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x38,0xf8,RD }}},
-{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNIND_D16,RD},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x38,0xf8,RD }}},
+{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{ABS16,RD},4,       {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x38,0xf8,RD }}},
+{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{IMM16,RD},4,       {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x38,0xf8,RD }}},
+{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNIND_D16,RD},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x38,0xf8,RD }}},
 {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RN,RD},2,  {{0xa8,0xf8,RN },{0x30,0xf8,RD }}},
 {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNINC,RD},2,       {{0xc8,0xf8,RN },{0x30,0xf8,RD }}},
 {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNIND,RD},2,       {{0xd8,0xf8,RN },{0x30,0xf8,RD }}},
 {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNDEC,RD},2,       {{0xb8,0xf8,RN },{0x30,0xf8,RD }}},
-{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{ABS8,RD},3,        {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}},
+{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{ABS8,RD},3,        {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}},
 {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNIND_D8,RD},3,    {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x30,0xf8,RD }}},
-{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{ABS16,RD},4,       {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x30,0xf8,RD }}},
-{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{IMM16,RD},4,       {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x30,0xf8,RD }}},
-{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNIND_D16,RD},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x30,0xf8,RD }}},
+{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{ABS16,RD},4,       {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x30,0xf8,RD }}},
+{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{IMM16,RD},4,       {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x30,0xf8,RD }}},
+{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNIND_D16,RD},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x30,0xf8,RD }}},
 {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RN,RD},2,  {{0xa0,0xf8,RN },{0x30,0xf8,RD }}},
 {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNIND,RD},2,       {{0xd0,0xf8,RN },{0x30,0xf8,RD }}},
 {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNDEC,RD},2,       {{0xb0,0xf8,RN },{0x30,0xf8,RD }}},
 {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNINC,RD},2,       {{0xc0,0xf8,RN },{0x30,0xf8,RD }}},
-{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{ABS8,RD},3,        {{0x05,0xff, },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}},
-{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{IMM8,RD},3,        {{0x04,0xff, },{0x00,0x00,IMM8 },{0x30,0xf8,RD }}},
+{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{ABS8,RD},3,        {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}},
+{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{IMM8,RD},3,        {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x30,0xf8,RD }}},
 {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNIND_D8,RD},3,    {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x30,0xf8,RD }}},
-{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{ABS16,RD},4,       {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x30,0xf8,RD }}},
-{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNIND_D16,RD},4,   {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x30,0xf8,RD }}},
+{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{ABS16,RD},4,       {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x30,0xf8,RD }}},
+{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNIND_D16,RD},4,   {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x30,0xf8,RD }}},
 {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RN,RD},2,    {{0xa8,0xf8,RN },{0x30,0xf8,RD }}},
 {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x30,0xf8,RD }}},
 {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x30,0xf8,RD }}},
 {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x30,0xf8,RD }}},
-{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{ABS8,RD},3,  {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}},
+{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{ABS8,RD},3,  {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}},
 {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNIND_D8,RD},3,      {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x30,0xf8,RD }}},
-{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x30,0xf8,RD }}},
-{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x30,0xf8,RD }}},
-{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNIND_D16,RD},4,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x30,0xf8,RD }}},
-{27,'-','I','!','E',O_STM|O_UNSZ,"stm",2,{RLIST,SPDEC},2,      {{0x12,0xff, },{0x00,0x00,RLIST }}},
+{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x30,0xf8,RD }}},
+{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x30,0xf8,RD }}},
+{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNIND_D16,RD},4,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x30,0xf8,RD }}},
+{27,'-','I','!','E',O_STM|O_UNSZ,"stm",2,{RLIST,SPDEC},2,      {{0x12,0xff,0 },{0x00,0x00,RLIST }}},
 {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RN},2,         {{0xa8,0xf8,RN },{0x98,0xf8,CRW }}},
 {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNDEC},2,      {{0xb8,0xf8,RN },{0x98,0xf8,CRW }}},
 {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNINC},2,      {{0xc8,0xf8,RN },{0x98,0xf8,CRW }}},
 {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNIND},2,      {{0xd8,0xf8,RN },{0x98,0xf8,CRW }}},
-{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,ABS8},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x98,0xf8,CRW }}},
+{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,ABS8},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x98,0xf8,CRW }}},
 {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNIND_D8},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x98,0xf8,CRW }}},
-{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,ABS16},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x98,0xf8,CRW }}},
-{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x98,0xf8,CRW }}},
+{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,ABS16},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x98,0xf8,CRW }}},
+{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x98,0xf8,CRW }}},
 {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RN},2,         {{0xa0,0xf8,RN },{0x98,0xf8,CRB }}},
 {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNDEC},2,      {{0xb0,0xf8,RN },{0x98,0xf8,CRB }}},
 {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNINC},2,      {{0xc0,0xf8,RN },{0x98,0xf8,CRB }}},
 {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNIND},2,      {{0xd0,0xf8,RN },{0x98,0xf8,CRB }}},
-{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,ABS8},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x98,0xf8,CRB }}},
+{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,ABS8},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x98,0xf8,CRB }}},
 {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNIND_D8},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x98,0xf8,CRB }}},
-{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,ABS16},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x98,0xf8,CRB }}},
-{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNIND_D16},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x98,0xf8,CRB }}},
+{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,ABS16},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x98,0xf8,CRB }}},
+{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNIND_D16},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x98,0xf8,CRB }}},
 {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,RN},2,   {{0xa8,0xf8,RN },{0x98,0xf8,CRW }}},
 {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RN},2,   {{0xa0,0xf8,RN },{0x98,0xf8,CRB }}},
 {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNDEC},2,        {{0xb0,0xf8,RN },{0x98,0xf8,CRB }}},
@@ -356,398 +356,398 @@ h8500_opcode_info h8500_table[]
 {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNIND},2,        {{0xd0,0xf8,RN },{0x98,0xf8,CRB }}},
 {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNINC},2,        {{0xc0,0xf8,RN },{0x98,0xf8,CRB }}},
 {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,RNIND_D8},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x98,0xf8,CRW }}},
-{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x98,0xf8,CRB }}},
+{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x98,0xf8,CRB }}},
 {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNIND_D8},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x98,0xf8,CRB }}},
-{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x98,0xf8,CRW }}},
-{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,RNIND_D16},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x98,0xf8,CRW }}},
-{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,ABS16},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x98,0xf8,CRW }}},
-{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,ABS16},4,        {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x98,0xf8,CRB }}},
-{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNIND_D16},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x98,0xf8,CRB }}},
-{31,'-','!','!','!',O_SLEEP|O_UNSZ,"sleep",0,{0,0},1,  {{0x1a,0xff, }}},
-{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1b,0xff, }}},
-{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1b,0xff, }}},
-{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1b,0xff, }}},
-{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1b,0xff, }}},
-{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{ABS8,0},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1b,0xff, }}},
-{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff, }}},
-{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{ABS16,0},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1b,0xff, }}},
-{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{IMM16,0},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1b,0xff, }}},
-{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1b,0xff, }}},
-{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1b,0xff, }}},
-{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x1b,0xff, }}},
-{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x1b,0xff, }}},
-{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x1b,0xff, }}},
-{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{ABS8,0},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1b,0xff, }}},
-{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{IMM8,0},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1b,0xff, }}},
-{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff, }}},
-{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{ABS16,0},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1b,0xff, }}},
-{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1b,0xff, }}},
-{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x1b,0xff, }}},
-{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x1b,0xff, }}},
-{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x1b,0xff, }}},
-{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x1b,0xff, }}},
-{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1b,0xff, }}},
-{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff, }}},
-{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{ABS16,0},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1b,0xff, }}},
-{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{IMM16,0},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1b,0xff, }}},
-{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1b,0xff, }}},
-{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1a,0xff, }}},
-{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1a,0xff, }}},
-{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1a,0xff, }}},
-{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1a,0xff, }}},
-{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{ABS8,0},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1a,0xff, }}},
-{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff, }}},
-{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{IMM16,0},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1a,0xff, }}},
-{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{ABS16,0},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1a,0xff, }}},
-{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1a,0xff, }}},
-{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1a,0xff, }}},
-{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x1a,0xff, }}},
-{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x1a,0xff, }}},
-{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x1a,0xff, }}},
-{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff, }}},
-{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{ABS8,0},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1a,0xff, }}},
-{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{IMM8,0},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1a,0xff, }}},
-{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{ABS16,0},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1a,0xff, }}},
-{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1a,0xff, }}},
-{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x1a,0xff, }}},
-{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x1a,0xff, }}},
-{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x1a,0xff, }}},
-{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x1a,0xff, }}},
-{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1a,0xff, }}},
-{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff, }}},
-{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{IMM16,0},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1a,0xff, }}},
-{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{ABS16,0},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1a,0xff, }}},
-{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1a,0xff, }}},
-{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x19,0xff, }}},
-{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x19,0xff, }}},
-{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x19,0xff, }}},
-{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x19,0xff, }}},
-{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{ABS8,0},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x19,0xff, }}},
-{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff, }}},
-{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{ABS16,0},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x19,0xff, }}},
-{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{IMM16,0},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x19,0xff, }}},
-{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x19,0xff, }}},
-{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x19,0xff, }}},
-{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x19,0xff, }}},
-{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x19,0xff, }}},
-{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x19,0xff, }}},
-{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{IMM8,0},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x19,0xff, }}},
-{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff, }}},
-{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{ABS8,0},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x19,0xff, }}},
-{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{ABS16,0},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x19,0xff, }}},
-{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x19,0xff, }}},
-{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x19,0xff, }}},
-{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x19,0xff, }}},
-{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x19,0xff, }}},
-{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x19,0xff, }}},
-{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x19,0xff, }}},
-{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff, }}},
-{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{IMM16,0},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x19,0xff, }}},
-{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{ABS16,0},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x19,0xff, }}},
-{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x19,0xff, }}},
-{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x18,0xff, }}},
-{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x18,0xff, }}},
-{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x18,0xff, }}},
-{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x18,0xff, }}},
-{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{ABS8,0},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x18,0xff, }}},
-{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff, }}},
-{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{ABS16,0},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x18,0xff, }}},
-{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{IMM16,0},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x18,0xff, }}},
-{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x18,0xff, }}},
-{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x18,0xff, }}},
-{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x18,0xff, }}},
-{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x18,0xff, }}},
-{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x18,0xff, }}},
-{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{ABS8,0},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x18,0xff, }}},
-{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{IMM8,0},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x18,0xff, }}},
-{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff, }}},
-{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{ABS16,0},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x18,0xff, }}},
-{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x18,0xff, }}},
-{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x18,0xff, }}},
-{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x18,0xff, }}},
-{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x18,0xff, }}},
-{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x18,0xff, }}},
-{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x18,0xff, }}},
-{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff, }}},
-{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{ABS16,0},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x18,0xff, }}},
-{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{IMM16,0},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x18,0xff, }}},
-{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x18,0xff, }}},
-{44,'-','B','S','S',O_SCB_NE|O_UNSZ,"scb/ne",2,{RS,PCREL8},3,  {{0x06,0xff, },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}},
-{45,'-','B','S','S',O_SCB_F|O_UNSZ,"scb/f",2,{RS,PCREL8},3,    {{0x01,0xff, },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}},
-{46,'-','B','S','S',O_SCB_EQ|O_UNSZ,"scb/eq",2,{RS,PCREL8},3,  {{0x07,0xff, },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}},
-{47,'-','B','!','!',O_RTS|O_UNSZ,"rts",0,{0,0},1,      {{0x19,0xff, }}},
-{48,'-','B','!','!',O_RTD|O_UNSZ,"rtd",1,{IMM8,0},2,   {{0x14,0xff, },{0x00,0x00,IMM8 }}},
-{48,'-','B','!','!',O_RTD|O_UNSZ,"rtd",1,{IMM16,0},3,  {{0x14,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RN,0},2,       {{0xa8,0xf8,RN },{0x1f,0xff, }}},
-{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNDEC,0},2,    {{0xb8,0xf8,RN },{0x1f,0xff, }}},
-{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNINC,0},2,    {{0xc8,0xf8,RN },{0x1f,0xff, }}},
-{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND,0},2,    {{0xd8,0xf8,RN },{0x1f,0xff, }}},
-{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{ABS8,0},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1f,0xff, }}},
-{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff, }}},
-{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{ABS16,0},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1f,0xff, }}},
-{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{IMM16,0},4,    {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1f,0xff, }}},
-{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND_D16,0},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1f,0xff, }}},
-{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RN,0},2,       {{0xa0,0xf8,RN },{0x1f,0xff, }}},
-{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNDEC,0},2,    {{0xb0,0xf8,RN },{0x1f,0xff, }}},
-{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND,0},2,    {{0xd0,0xf8,RN },{0x1f,0xff, }}},
-{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNINC,0},2,    {{0xc0,0xf8,RN },{0x1f,0xff, }}},
-{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{IMM8,0},3,     {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1f,0xff, }}},
-{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{ABS8,0},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1f,0xff, }}},
-{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff, }}},
-{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{ABS16,0},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1f,0xff, }}},
-{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND_D16,0},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1f,0xff, }}},
-{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1f,0xff, }}},
-{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1f,0xff, }}},
-{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1f,0xff, }}},
-{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1f,0xff, }}},
-{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{ABS8,0},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1f,0xff, }}},
-{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff, }}},
-{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{IMM16,0},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1f,0xff, }}},
-{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{ABS16,0},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1f,0xff, }}},
-{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1f,0xff, }}},
-{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RN,0},2,       {{0xa8,0xf8,RN },{0x1e,0xff, }}},
-{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND,0},2,    {{0xd8,0xf8,RN },{0x1e,0xff, }}},
-{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNINC,0},2,    {{0xc8,0xf8,RN },{0x1e,0xff, }}},
-{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNDEC,0},2,    {{0xb8,0xf8,RN },{0x1e,0xff, }}},
-{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{ABS8,0},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1e,0xff, }}},
-{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff, }}},
-{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{ABS16,0},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1e,0xff, }}},
-{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{IMM16,0},4,    {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1e,0xff, }}},
-{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND_D16,0},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1e,0xff, }}},
-{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RN,0},2,       {{0xa0,0xf8,RN },{0x1e,0xff, }}},
-{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNINC,0},2,    {{0xc0,0xf8,RN },{0x1e,0xff, }}},
-{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNDEC,0},2,    {{0xb0,0xf8,RN },{0x1e,0xff, }}},
-{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND,0},2,    {{0xd0,0xf8,RN },{0x1e,0xff, }}},
-{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{ABS8,0},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1e,0xff, }}},
-{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{IMM8,0},3,     {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1e,0xff, }}},
-{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff, }}},
-{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{ABS16,0},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1e,0xff, }}},
-{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND_D16,0},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1e,0xff, }}},
-{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1e,0xff, }}},
-{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1e,0xff, }}},
-{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1e,0xff, }}},
-{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1e,0xff, }}},
-{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{ABS8,0},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1e,0xff, }}},
-{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff, }}},
-{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{ABS16,0},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1e,0xff, }}},
-{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{IMM16,0},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1e,0xff, }}},
-{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1e,0xff, }}},
-{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1d,0xff, }}},
-{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1d,0xff, }}},
-{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1d,0xff, }}},
-{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1d,0xff, }}},
-{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{ABS8,0},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1d,0xff, }}},
-{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff, }}},
-{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{ABS16,0},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1d,0xff, }}},
-{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{IMM16,0},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1d,0xff, }}},
-{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1d,0xff, }}},
-{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1d,0xff, }}},
-{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x1d,0xff, }}},
-{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x1d,0xff, }}},
-{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x1d,0xff, }}},
-{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{IMM8,0},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1d,0xff, }}},
-{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{ABS8,0},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1d,0xff, }}},
-{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff, }}},
-{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{ABS16,0},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1d,0xff, }}},
-{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1d,0xff, }}},
-{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x1d,0xff, }}},
-{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x1d,0xff, }}},
-{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x1d,0xff, }}},
-{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x1d,0xff, }}},
-{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1d,0xff, }}},
-{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff, }}},
-{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{ABS16,0},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1d,0xff, }}},
-{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{IMM16,0},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1d,0xff, }}},
-{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1d,0xff, }}},
-{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1c,0xff, }}},
-{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1c,0xff, }}},
-{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1c,0xff, }}},
-{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1c,0xff, }}},
-{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{ABS8,0},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1c,0xff, }}},
-{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff, }}},
-{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{IMM16,0},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1c,0xff, }}},
-{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{ABS16,0},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1c,0xff, }}},
-{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1c,0xff, }}},
-{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1c,0xff, }}},
-{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x1c,0xff, }}},
-{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x1c,0xff, }}},
-{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x1c,0xff, }}},
-{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{IMM8,0},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1c,0xff, }}},
-{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{ABS8,0},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1c,0xff, }}},
-{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff, }}},
-{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{ABS16,0},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1c,0xff, }}},
-{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1c,0xff, }}},
-{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x1c,0xff, }}},
-{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x1c,0xff, }}},
-{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x1c,0xff, }}},
-{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x1c,0xff, }}},
-{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff, }}},
-{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1c,0xff, }}},
-{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{IMM16,0},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1c,0xff, }}},
-{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{ABS16,0},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1c,0xff, }}},
-{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1c,0xff, }}},
-{61,'-','B','!','!',O_PRTS|O_UNSZ,"prts",0,{0,0},2,    {{0x11,0xff, },{0x19,0xff, }}},
-{62,'-','B','!','!',O_PRTD|O_UNSZ,"prtd",1,{IMM8,0},3, {{0x11,0xff, },{0x14,0xff, },{0x00,0x00,IMM8 }}},
-{62,'-','B','!','!',O_PRTD|O_UNSZ,"prtd",1,{IMM16,0},4,        {{0x11,0xff, },{0x1c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{63,'-','J','!','!',O_PJSR|O_UNSZ,"pjsr",1,{RDIND,0},2,        {{0x11,0xff, },{0xc8,0xf8,RDIND }}},
-{63,'-','J','!','!',O_PJSR|O_UNSZ,"pjsr",1,{ABS24,0},4,        {{0x03,0xff, },{0x00,0x00,ABS24 },{0x00,0x00, },{0x00,0x00, }}},
-{64,'-','J','!','!',O_PJMP|O_UNSZ,"pjmp",1,{RDIND,0},2,        {{0x11,0xff, },{0xc0,0xf8,RDIND }}},
-{64,'-','J','!','!',O_PJMP|O_UNSZ,"pjmp",1,{ABS24,0},4,        {{0x13,0xff, },{0x00,0x00,ABS24 },{0x00,0x00, },{0x00,0x00, }}},
-{65,'s','I','C','C',O_ORC|O_WORD,"orc.w",2,{IMM16,CRW},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x48,0xf8,CRW }}},
-{66,'s','I','C','C',O_ORC|O_BYTE,"orc.b",2,{IMM8,CRB},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x48,0xf8,CRB }}},
-{67,'s','I','C','C',O_ORC|O_UNSZ,"orc",2,{IMM8,CRB},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x48,0xf8,CRB }}},
-{67,'s','I','C','C',O_ORC|O_UNSZ,"orc",2,{IMM16,CRW},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x48,0xf8,CRW }}},
+{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x98,0xf8,CRW }}},
+{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,RNIND_D16},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x98,0xf8,CRW }}},
+{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,ABS16},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x98,0xf8,CRW }}},
+{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,ABS16},4,        {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x98,0xf8,CRB }}},
+{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNIND_D16},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x98,0xf8,CRB }}},
+{31,'-','!','!','!',O_SLEEP|O_UNSZ,"sleep",0,{0,0},1,  {{0x1a,0xff,0 }}},
+{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1b,0xff,0 }}},
+{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1b,0xff,0 }}},
+{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1b,0xff,0 }}},
+{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1b,0xff,0 }}},
+{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{ABS8,0},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1b,0xff,0 }}},
+{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff,0 }}},
+{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{ABS16,0},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1b,0xff,0 }}},
+{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{IMM16,0},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1b,0xff,0 }}},
+{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1b,0xff,0 }}},
+{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1b,0xff,0 }}},
+{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x1b,0xff,0 }}},
+{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x1b,0xff,0 }}},
+{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x1b,0xff,0 }}},
+{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{ABS8,0},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1b,0xff,0 }}},
+{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{IMM8,0},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1b,0xff,0 }}},
+{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff,0 }}},
+{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{ABS16,0},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1b,0xff,0 }}},
+{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1b,0xff,0 }}},
+{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x1b,0xff,0 }}},
+{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x1b,0xff,0 }}},
+{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x1b,0xff,0 }}},
+{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x1b,0xff,0 }}},
+{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1b,0xff,0 }}},
+{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff,0 }}},
+{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{ABS16,0},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1b,0xff,0 }}},
+{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{IMM16,0},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1b,0xff,0 }}},
+{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1b,0xff,0 }}},
+{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1a,0xff,0 }}},
+{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1a,0xff,0 }}},
+{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1a,0xff,0 }}},
+{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1a,0xff,0 }}},
+{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{ABS8,0},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1a,0xff,0 }}},
+{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff,0 }}},
+{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{IMM16,0},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1a,0xff,0 }}},
+{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{ABS16,0},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1a,0xff,0 }}},
+{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1a,0xff,0 }}},
+{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1a,0xff,0 }}},
+{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x1a,0xff,0 }}},
+{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x1a,0xff,0 }}},
+{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x1a,0xff,0 }}},
+{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff,0 }}},
+{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{ABS8,0},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1a,0xff,0 }}},
+{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{IMM8,0},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1a,0xff,0 }}},
+{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{ABS16,0},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1a,0xff,0 }}},
+{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1a,0xff,0 }}},
+{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x1a,0xff,0 }}},
+{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x1a,0xff,0 }}},
+{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x1a,0xff,0 }}},
+{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x1a,0xff,0 }}},
+{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1a,0xff,0 }}},
+{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff,0 }}},
+{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{IMM16,0},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1a,0xff,0 }}},
+{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{ABS16,0},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1a,0xff,0 }}},
+{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1a,0xff,0 }}},
+{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x19,0xff,0 }}},
+{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x19,0xff,0 }}},
+{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x19,0xff,0 }}},
+{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x19,0xff,0 }}},
+{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{ABS8,0},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x19,0xff,0 }}},
+{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff,0 }}},
+{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{ABS16,0},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x19,0xff,0 }}},
+{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{IMM16,0},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x19,0xff,0 }}},
+{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x19,0xff,0 }}},
+{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x19,0xff,0 }}},
+{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x19,0xff,0 }}},
+{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x19,0xff,0 }}},
+{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x19,0xff,0 }}},
+{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{IMM8,0},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x19,0xff,0 }}},
+{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff,0 }}},
+{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{ABS8,0},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x19,0xff,0 }}},
+{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{ABS16,0},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x19,0xff,0 }}},
+{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x19,0xff,0 }}},
+{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x19,0xff,0 }}},
+{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x19,0xff,0 }}},
+{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x19,0xff,0 }}},
+{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x19,0xff,0 }}},
+{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x19,0xff,0 }}},
+{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff,0 }}},
+{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{IMM16,0},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x19,0xff,0 }}},
+{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{ABS16,0},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x19,0xff,0 }}},
+{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x19,0xff,0 }}},
+{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x18,0xff,0 }}},
+{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x18,0xff,0 }}},
+{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x18,0xff,0 }}},
+{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x18,0xff,0 }}},
+{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{ABS8,0},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x18,0xff,0 }}},
+{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff,0 }}},
+{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{ABS16,0},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x18,0xff,0 }}},
+{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{IMM16,0},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x18,0xff,0 }}},
+{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x18,0xff,0 }}},
+{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x18,0xff,0 }}},
+{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x18,0xff,0 }}},
+{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x18,0xff,0 }}},
+{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x18,0xff,0 }}},
+{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{ABS8,0},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x18,0xff,0 }}},
+{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{IMM8,0},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x18,0xff,0 }}},
+{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff,0 }}},
+{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{ABS16,0},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x18,0xff,0 }}},
+{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x18,0xff,0 }}},
+{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x18,0xff,0 }}},
+{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x18,0xff,0 }}},
+{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x18,0xff,0 }}},
+{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x18,0xff,0 }}},
+{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x18,0xff,0 }}},
+{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff,0 }}},
+{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{ABS16,0},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x18,0xff,0 }}},
+{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{IMM16,0},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x18,0xff,0 }}},
+{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x18,0xff,0 }}},
+{44,'-','B','S','S',O_SCB_NE|O_UNSZ,"scb/ne",2,{RS,PCREL8},3,  {{0x06,0xff,0 },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}},
+{45,'-','B','S','S',O_SCB_F|O_UNSZ,"scb/f",2,{RS,PCREL8},3,    {{0x01,0xff,0 },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}},
+{46,'-','B','S','S',O_SCB_EQ|O_UNSZ,"scb/eq",2,{RS,PCREL8},3,  {{0x07,0xff,0 },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}},
+{47,'-','B','!','!',O_RTS|O_UNSZ,"rts",0,{0,0},1,      {{0x19,0xff,0 }}},
+{48,'-','B','!','!',O_RTD|O_UNSZ,"rtd",1,{IMM8,0},2,   {{0x14,0xff,0 },{0x00,0x00,IMM8 }}},
+{48,'-','B','!','!',O_RTD|O_UNSZ,"rtd",1,{IMM16,0},3,  {{0x14,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RN,0},2,       {{0xa8,0xf8,RN },{0x1f,0xff,0 }}},
+{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNDEC,0},2,    {{0xb8,0xf8,RN },{0x1f,0xff,0 }}},
+{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNINC,0},2,    {{0xc8,0xf8,RN },{0x1f,0xff,0 }}},
+{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND,0},2,    {{0xd8,0xf8,RN },{0x1f,0xff,0 }}},
+{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{ABS8,0},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1f,0xff,0 }}},
+{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff,0 }}},
+{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{ABS16,0},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1f,0xff,0 }}},
+{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{IMM16,0},4,    {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1f,0xff,0 }}},
+{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND_D16,0},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1f,0xff,0 }}},
+{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RN,0},2,       {{0xa0,0xf8,RN },{0x1f,0xff,0 }}},
+{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNDEC,0},2,    {{0xb0,0xf8,RN },{0x1f,0xff,0 }}},
+{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND,0},2,    {{0xd0,0xf8,RN },{0x1f,0xff,0 }}},
+{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNINC,0},2,    {{0xc0,0xf8,RN },{0x1f,0xff,0 }}},
+{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{IMM8,0},3,     {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1f,0xff,0 }}},
+{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{ABS8,0},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1f,0xff,0 }}},
+{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff,0 }}},
+{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{ABS16,0},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1f,0xff,0 }}},
+{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND_D16,0},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1f,0xff,0 }}},
+{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1f,0xff,0 }}},
+{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1f,0xff,0 }}},
+{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1f,0xff,0 }}},
+{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1f,0xff,0 }}},
+{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{ABS8,0},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1f,0xff,0 }}},
+{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff,0 }}},
+{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{IMM16,0},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1f,0xff,0 }}},
+{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{ABS16,0},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1f,0xff,0 }}},
+{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1f,0xff,0 }}},
+{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RN,0},2,       {{0xa8,0xf8,RN },{0x1e,0xff,0 }}},
+{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND,0},2,    {{0xd8,0xf8,RN },{0x1e,0xff,0 }}},
+{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNINC,0},2,    {{0xc8,0xf8,RN },{0x1e,0xff,0 }}},
+{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNDEC,0},2,    {{0xb8,0xf8,RN },{0x1e,0xff,0 }}},
+{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{ABS8,0},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1e,0xff,0 }}},
+{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff,0 }}},
+{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{ABS16,0},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1e,0xff,0 }}},
+{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{IMM16,0},4,    {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1e,0xff,0 }}},
+{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND_D16,0},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1e,0xff,0 }}},
+{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RN,0},2,       {{0xa0,0xf8,RN },{0x1e,0xff,0 }}},
+{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNINC,0},2,    {{0xc0,0xf8,RN },{0x1e,0xff,0 }}},
+{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNDEC,0},2,    {{0xb0,0xf8,RN },{0x1e,0xff,0 }}},
+{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND,0},2,    {{0xd0,0xf8,RN },{0x1e,0xff,0 }}},
+{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{ABS8,0},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1e,0xff,0 }}},
+{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{IMM8,0},3,     {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1e,0xff,0 }}},
+{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff,0 }}},
+{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{ABS16,0},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1e,0xff,0 }}},
+{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND_D16,0},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1e,0xff,0 }}},
+{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1e,0xff,0 }}},
+{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1e,0xff,0 }}},
+{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1e,0xff,0 }}},
+{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1e,0xff,0 }}},
+{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{ABS8,0},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1e,0xff,0 }}},
+{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff,0 }}},
+{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{ABS16,0},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1e,0xff,0 }}},
+{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{IMM16,0},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1e,0xff,0 }}},
+{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1e,0xff,0 }}},
+{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1d,0xff,0 }}},
+{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1d,0xff,0 }}},
+{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1d,0xff,0 }}},
+{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1d,0xff,0 }}},
+{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{ABS8,0},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1d,0xff,0 }}},
+{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff,0 }}},
+{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{ABS16,0},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1d,0xff,0 }}},
+{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{IMM16,0},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1d,0xff,0 }}},
+{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1d,0xff,0 }}},
+{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1d,0xff,0 }}},
+{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x1d,0xff,0 }}},
+{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x1d,0xff,0 }}},
+{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x1d,0xff,0 }}},
+{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{IMM8,0},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1d,0xff,0 }}},
+{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{ABS8,0},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1d,0xff,0 }}},
+{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff,0 }}},
+{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{ABS16,0},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1d,0xff,0 }}},
+{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1d,0xff,0 }}},
+{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x1d,0xff,0 }}},
+{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x1d,0xff,0 }}},
+{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x1d,0xff,0 }}},
+{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x1d,0xff,0 }}},
+{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1d,0xff,0 }}},
+{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff,0 }}},
+{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{ABS16,0},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1d,0xff,0 }}},
+{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{IMM16,0},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1d,0xff,0 }}},
+{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1d,0xff,0 }}},
+{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1c,0xff,0 }}},
+{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND,0},2,      {{0xd8,0xf8,RN },{0x1c,0xff,0 }}},
+{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNINC,0},2,      {{0xc8,0xf8,RN },{0x1c,0xff,0 }}},
+{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNDEC,0},2,      {{0xb8,0xf8,RN },{0x1c,0xff,0 }}},
+{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{ABS8,0},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1c,0xff,0 }}},
+{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND_D8,0},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff,0 }}},
+{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{IMM16,0},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1c,0xff,0 }}},
+{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{ABS16,0},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1c,0xff,0 }}},
+{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND_D16,0},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1c,0xff,0 }}},
+{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1c,0xff,0 }}},
+{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNDEC,0},2,      {{0xb0,0xf8,RN },{0x1c,0xff,0 }}},
+{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND,0},2,      {{0xd0,0xf8,RN },{0x1c,0xff,0 }}},
+{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNINC,0},2,      {{0xc0,0xf8,RN },{0x1c,0xff,0 }}},
+{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{IMM8,0},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1c,0xff,0 }}},
+{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{ABS8,0},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1c,0xff,0 }}},
+{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND_D8,0},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff,0 }}},
+{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{ABS16,0},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1c,0xff,0 }}},
+{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND_D16,0},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1c,0xff,0 }}},
+{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x1c,0xff,0 }}},
+{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x1c,0xff,0 }}},
+{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x1c,0xff,0 }}},
+{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x1c,0xff,0 }}},
+{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff,0 }}},
+{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1c,0xff,0 }}},
+{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{IMM16,0},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1c,0xff,0 }}},
+{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{ABS16,0},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1c,0xff,0 }}},
+{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1c,0xff,0 }}},
+{61,'-','B','!','!',O_PRTS|O_UNSZ,"prts",0,{0,0},2,    {{0x11,0xff,0 },{0x19,0xff,0 }}},
+{62,'-','B','!','!',O_PRTD|O_UNSZ,"prtd",1,{IMM8,0},3, {{0x11,0xff,0 },{0x14,0xff,0 },{0x00,0x00,IMM8 }}},
+{62,'-','B','!','!',O_PRTD|O_UNSZ,"prtd",1,{IMM16,0},4,        {{0x11,0xff,0 },{0x1c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{63,'-','J','!','!',O_PJSR|O_UNSZ,"pjsr",1,{RDIND,0},2,        {{0x11,0xff,0 },{0xc8,0xf8,RDIND }}},
+{63,'-','J','!','!',O_PJSR|O_UNSZ,"pjsr",1,{ABS24,0},4,        {{0x03,0xff,0 },{0x00,0x00,ABS24 },{0x00,0x00,0 },{0x00,0x00,0 }}},
+{64,'-','J','!','!',O_PJMP|O_UNSZ,"pjmp",1,{RDIND,0},2,        {{0x11,0xff,0 },{0xc0,0xf8,RDIND }}},
+{64,'-','J','!','!',O_PJMP|O_UNSZ,"pjmp",1,{ABS24,0},4,        {{0x13,0xff,0 },{0x00,0x00,ABS24 },{0x00,0x00,0 },{0x00,0x00,0 }}},
+{65,'s','I','C','C',O_ORC|O_WORD,"orc.w",2,{IMM16,CRW},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x48,0xf8,CRW }}},
+{66,'s','I','C','C',O_ORC|O_BYTE,"orc.b",2,{IMM8,CRB},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x48,0xf8,CRB }}},
+{67,'s','I','C','C',O_ORC|O_UNSZ,"orc",2,{IMM8,CRB},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x48,0xf8,CRB }}},
+{67,'s','I','C','C',O_ORC|O_UNSZ,"orc",2,{IMM16,CRW},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x48,0xf8,CRW }}},
 {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RN,RD},2,    {{0xa8,0xf8,RN },{0x40,0xf8,RD }}},
 {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x40,0xf8,RD }}},
 {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x40,0xf8,RD }}},
 {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x40,0xf8,RD }}},
-{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{ABS8,RD},3,  {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}},
+{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{ABS8,RD},3,  {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}},
 {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNIND_D8,RD},3,      {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x40,0xf8,RD }}},
-{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x40,0xf8,RD }}},
-{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x40,0xf8,RD }}},
-{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNIND_D16,RD},4,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x40,0xf8,RD }}},
+{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x40,0xf8,RD }}},
+{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x40,0xf8,RD }}},
+{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNIND_D16,RD},4,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x40,0xf8,RD }}},
 {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RN,RD},2,    {{0xa0,0xf8,RN },{0x40,0xf8,RD }}},
 {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x40,0xf8,RD }}},
 {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x40,0xf8,RD }}},
 {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x40,0xf8,RD }}},
-{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{ABS8,RD},3,  {{0x05,0xff, },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}},
-{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{IMM8,RD},3,  {{0x04,0xff, },{0x00,0x00,IMM8 },{0x40,0xf8,RD }}},
+{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{ABS8,RD},3,  {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}},
+{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{IMM8,RD},3,  {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x40,0xf8,RD }}},
 {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNIND_D8,RD},3,      {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x40,0xf8,RD }}},
-{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x40,0xf8,RD }}},
-{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNIND_D16,RD},4,     {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x40,0xf8,RD }}},
+{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x40,0xf8,RD }}},
+{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNIND_D16,RD},4,     {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x40,0xf8,RD }}},
 {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RN,RD},2,      {{0xa8,0xf8,RN },{0x40,0xf8,RD }}},
 {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNIND,RD},2,   {{0xd8,0xf8,RN },{0x40,0xf8,RD }}},
 {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNDEC,RD},2,   {{0xb8,0xf8,RN },{0x40,0xf8,RD }}},
 {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNINC,RD},2,   {{0xc8,0xf8,RN },{0x40,0xf8,RD }}},
-{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{ABS8,RD},3,    {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}},
+{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{ABS8,RD},3,    {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}},
 {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNIND_D8,RD},3,        {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x40,0xf8,RD }}},
-{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{ABS16,RD},4,   {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x40,0xf8,RD }}},
-{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{IMM16,RD},4,   {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x40,0xf8,RD }}},
-{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNIND_D16,RD},4,       {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x40,0xf8,RD }}},
-{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x15,0xff, }}},
-{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x15,0xff, }}},
-{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x15,0xff, }}},
-{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x15,0xff, }}},
-{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x15,0xff, }}},
-{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff, }}},
-{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{ABS16,0},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x15,0xff, }}},
-{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{IMM16,0},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x15,0xff, }}},
-{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x15,0xff, }}},
-{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RN,0},2,   {{0xa0,0xf8,RN },{0x15,0xff, }}},
-{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND,0},2,        {{0xd0,0xf8,RN },{0x15,0xff, }}},
-{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNINC,0},2,        {{0xc0,0xf8,RN },{0x15,0xff, }}},
-{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNDEC,0},2,        {{0xb0,0xf8,RN },{0x15,0xff, }}},
-{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x15,0xff, }}},
-{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x15,0xff, }}},
-{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND_D8,0},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff, }}},
-{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{ABS16,0},4,        {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x15,0xff, }}},
-{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND_D16,0},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x15,0xff, }}},
-{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RN,0},2,     {{0xa8,0xf8,RN },{0x15,0xff, }}},
-{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND,0},2,  {{0xd8,0xf8,RN },{0x15,0xff, }}},
-{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNDEC,0},2,  {{0xb8,0xf8,RN },{0x15,0xff, }}},
-{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNINC,0},2,  {{0xc8,0xf8,RN },{0x15,0xff, }}},
-{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{ABS8,0},3,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x15,0xff, }}},
-{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND_D8,0},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff, }}},
-{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{ABS16,0},4,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x15,0xff, }}},
-{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{IMM16,0},4,  {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x15,0xff, }}},
-{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND_D16,0},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x15,0xff, }}},
-{74,'-','!','!','!',O_NOP|O_UNSZ,"nop",0,{0,0},1,      {{0x00,0xff, }}},
-{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x14,0xff, }}},
-{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x14,0xff, }}},
-{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x14,0xff, }}},
-{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x14,0xff, }}},
-{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x14,0xff, }}},
-{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff, }}},
-{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{ABS16,0},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x14,0xff, }}},
-{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{IMM16,0},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x14,0xff, }}},
-{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x14,0xff, }}},
-{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RN,0},2,   {{0xa0,0xf8,RN },{0x14,0xff, }}},
-{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNDEC,0},2,        {{0xb0,0xf8,RN },{0x14,0xff, }}},
-{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND,0},2,        {{0xd0,0xf8,RN },{0x14,0xff, }}},
-{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNINC,0},2,        {{0xc0,0xf8,RN },{0x14,0xff, }}},
-{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x14,0xff, }}},
-{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x14,0xff, }}},
-{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND_D8,0},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff, }}},
-{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{ABS16,0},4,        {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x14,0xff, }}},
-{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND_D16,0},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x14,0xff, }}},
-{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RN,0},2,     {{0xa8,0xf8,RN },{0x14,0xff, }}},
-{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNDEC,0},2,  {{0xb8,0xf8,RN },{0x14,0xff, }}},
-{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNINC,0},2,  {{0xc8,0xf8,RN },{0x14,0xff, }}},
-{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND,0},2,  {{0xd8,0xf8,RN },{0x14,0xff, }}},
-{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{ABS8,0},3,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x14,0xff, }}},
-{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND_D8,0},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff, }}},
-{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{ABS16,0},4,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x14,0xff, }}},
-{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{IMM16,0},4,  {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x14,0xff, }}},
-{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND_D16,0},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x14,0xff, }}},
+{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{ABS16,RD},4,   {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x40,0xf8,RD }}},
+{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{IMM16,RD},4,   {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x40,0xf8,RD }}},
+{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNIND_D16,RD},4,       {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x40,0xf8,RD }}},
+{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x15,0xff,0 }}},
+{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x15,0xff,0 }}},
+{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x15,0xff,0 }}},
+{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x15,0xff,0 }}},
+{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x15,0xff,0 }}},
+{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff,0 }}},
+{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{ABS16,0},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x15,0xff,0 }}},
+{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{IMM16,0},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x15,0xff,0 }}},
+{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x15,0xff,0 }}},
+{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RN,0},2,   {{0xa0,0xf8,RN },{0x15,0xff,0 }}},
+{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND,0},2,        {{0xd0,0xf8,RN },{0x15,0xff,0 }}},
+{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNINC,0},2,        {{0xc0,0xf8,RN },{0x15,0xff,0 }}},
+{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNDEC,0},2,        {{0xb0,0xf8,RN },{0x15,0xff,0 }}},
+{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x15,0xff,0 }}},
+{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x15,0xff,0 }}},
+{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND_D8,0},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff,0 }}},
+{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{ABS16,0},4,        {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x15,0xff,0 }}},
+{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND_D16,0},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x15,0xff,0 }}},
+{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RN,0},2,     {{0xa8,0xf8,RN },{0x15,0xff,0 }}},
+{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND,0},2,  {{0xd8,0xf8,RN },{0x15,0xff,0 }}},
+{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNDEC,0},2,  {{0xb8,0xf8,RN },{0x15,0xff,0 }}},
+{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNINC,0},2,  {{0xc8,0xf8,RN },{0x15,0xff,0 }}},
+{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{ABS8,0},3,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x15,0xff,0 }}},
+{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND_D8,0},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff,0 }}},
+{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{ABS16,0},4,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x15,0xff,0 }}},
+{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{IMM16,0},4,  {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x15,0xff,0 }}},
+{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND_D16,0},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x15,0xff,0 }}},
+{74,'-','!','!','!',O_NOP|O_UNSZ,"nop",0,{0,0},1,      {{0x00,0xff,0 }}},
+{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RN,0},2,   {{0xa8,0xf8,RN },{0x14,0xff,0 }}},
+{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNDEC,0},2,        {{0xb8,0xf8,RN },{0x14,0xff,0 }}},
+{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNINC,0},2,        {{0xc8,0xf8,RN },{0x14,0xff,0 }}},
+{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND,0},2,        {{0xd8,0xf8,RN },{0x14,0xff,0 }}},
+{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x14,0xff,0 }}},
+{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND_D8,0},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff,0 }}},
+{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{ABS16,0},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x14,0xff,0 }}},
+{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{IMM16,0},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x14,0xff,0 }}},
+{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND_D16,0},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x14,0xff,0 }}},
+{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RN,0},2,   {{0xa0,0xf8,RN },{0x14,0xff,0 }}},
+{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNDEC,0},2,        {{0xb0,0xf8,RN },{0x14,0xff,0 }}},
+{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND,0},2,        {{0xd0,0xf8,RN },{0x14,0xff,0 }}},
+{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNINC,0},2,        {{0xc0,0xf8,RN },{0x14,0xff,0 }}},
+{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x14,0xff,0 }}},
+{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x14,0xff,0 }}},
+{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND_D8,0},3,     {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff,0 }}},
+{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{ABS16,0},4,        {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x14,0xff,0 }}},
+{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND_D16,0},4,    {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x14,0xff,0 }}},
+{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RN,0},2,     {{0xa8,0xf8,RN },{0x14,0xff,0 }}},
+{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNDEC,0},2,  {{0xb8,0xf8,RN },{0x14,0xff,0 }}},
+{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNINC,0},2,  {{0xc8,0xf8,RN },{0x14,0xff,0 }}},
+{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND,0},2,  {{0xd8,0xf8,RN },{0x14,0xff,0 }}},
+{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{ABS8,0},3,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x14,0xff,0 }}},
+{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND_D8,0},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff,0 }}},
+{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{ABS16,0},4,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x14,0xff,0 }}},
+{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{IMM16,0},4,  {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x14,0xff,0 }}},
+{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND_D16,0},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x14,0xff,0 }}},
 {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RN,RD},2,      {{0xa8,0xf8,RN },{0xa8,0xf8,RD }}},
 {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNDEC,RD},2,   {{0xb8,0xf8,RN },{0xa8,0xf8,RD }}},
 {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNINC,RD},2,   {{0xc8,0xf8,RN },{0xa8,0xf8,RD }}},
 {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNIND,RD},2,   {{0xd8,0xf8,RN },{0xa8,0xf8,RD }}},
-{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{ABS8,RD},3,    {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}},
+{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{ABS8,RD},3,    {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}},
 {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNIND_D8,RD},3,        {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xa8,0xf8,RD }}},
-{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{ABS16,RD},4,   {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa8,0xf8,RD }}},
-{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{IMM16,RD},4,   {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xa8,0xf8,RD }}},
-{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNIND_D16,RD},4,       {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa8,0xf8,RD }}},
+{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{ABS16,RD},4,   {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}},
+{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{IMM16,RD},4,   {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}},
+{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNIND_D16,RD},4,       {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}},
 {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RN,RD},2,      {{0xa0,0xf8,RN },{0xa8,0xf8,RD }}},
 {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNIND,RD},2,   {{0xd0,0xf8,RN },{0xa8,0xf8,RD }}},
 {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNINC,RD},2,   {{0xc0,0xf8,RN },{0xa8,0xf8,RD }}},
 {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNDEC,RD},2,   {{0xb0,0xf8,RN },{0xa8,0xf8,RD }}},
-{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{IMM8,RD},3,    {{0x04,0xff, },{0x00,0x00,IMM8 },{0xa8,0xf8,RD }}},
-{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{ABS8,RD},3,    {{0x05,0xff, },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}},
+{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{IMM8,RD},3,    {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0xa8,0xf8,RD }}},
+{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{ABS8,RD},3,    {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}},
 {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNIND_D8,RD},3,        {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xa8,0xf8,RD }}},
-{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{ABS16,RD},4,   {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa8,0xf8,RD }}},
-{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNIND_D16,RD},4,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa8,0xf8,RD }}},
+{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{ABS16,RD},4,   {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}},
+{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNIND_D16,RD},4,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}},
 {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RN,RD},2,        {{0xa8,0xf8,RN },{0xa8,0xf8,RD }}},
 {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNIND,RD},2,     {{0xd8,0xf8,RN },{0xa8,0xf8,RD }}},
 {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNDEC,RD},2,     {{0xb8,0xf8,RN },{0xa8,0xf8,RD }}},
 {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNINC,RD},2,     {{0xc8,0xf8,RN },{0xa8,0xf8,RD }}},
 {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNIND_D8,RD},3,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xa8,0xf8,RD }}},
-{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{ABS8,RD},3,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}},
-{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{IMM16,RD},4,     {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xa8,0xf8,RD }}},
-{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{ABS16,RD},4,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa8,0xf8,RD }}},
-{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa8,0xf8,RD }}},
-{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RN},3,    {{0xa0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}},
-{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNDEC},3, {{0xb0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}},
-{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNINC},3, {{0xc0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}},
-{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND},3, {{0xd0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}},
-{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,ABS8},4,  {{0x05,0xff, },{0x00,0x00,ABS8 },{0x00,0xff, },{0x90,0xf8,RS }}},
-{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND_D8},4,      {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff, },{0x90,0xf8,RS }}},
-{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,ABS16},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x00,0xff, },{0x90,0xf8,RS }}},
-{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND_D16},5,     {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x00,0xff, },{0x90,0xf8,RS }}},
-{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RN},3,      {{0xa0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}},
-{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNDEC},3,   {{0xb0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}},
-{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND},3,   {{0xd0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}},
-{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNINC},3,   {{0xc0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}},
-{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,ABS8},4,    {{0x05,0xff, },{0x00,0x00,ABS8 },{0x00,0xff, },{0x90,0xf8,RS }}},
-{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND_D8},4,        {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff, },{0x90,0xf8,RS }}},
-{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,ABS16},5,   {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x00,0xff, },{0x90,0xf8,RS }}},
-{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND_D16},5,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x00,0xff, },{0x90,0xf8,RS }}},
-{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RN,RD},3,    {{0xa0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}},
-{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNINC,RD},3, {{0xc0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}},
-{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND,RD},3, {{0xd0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}},
-{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNDEC,RD},3, {{0xb0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}},
-{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{IMM8,RD},4,  {{0x04,0xff, },{0x00,0x00,IMM8 },{0x00,0xff, },{0x80,0xf8,RD }}},
-{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{ABS8,RD},4,  {{0x05,0xff, },{0x00,0x00,ABS8 },{0x00,0xff, },{0x80,0xf8,RD }}},
-{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND_D8,RD},4,      {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff, },{0x80,0xf8,RD }}},
-{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{ABS16,RD},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x00,0xff, },{0x80,0xf8,RD }}},
-{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND_D16,RD},5,     {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x00,0xff, },{0x80,0xf8,RD }}},
-{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RN,RD},3,      {{0xa0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}},
-{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNINC,RD},3,   {{0xc0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}},
-{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND,RD},3,   {{0xd0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}},
-{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNDEC,RD},3,   {{0xb0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}},
-{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{IMM8,RD},4,    {{0x04,0xff, },{0x00,0x00,IMM8 },{0x00,0xff, },{0x80,0xf8,RD }}},
-{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{ABS8,RD},4,    {{0x05,0xff, },{0x00,0x00,ABS8 },{0x00,0xff, },{0x80,0xf8,RD }}},
-{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND_D8,RD},4,        {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff, },{0x80,0xf8,RD }}},
-{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{ABS16,RD},5,   {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x00,0xff, },{0x80,0xf8,RD }}},
-{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND_D16,RD},5,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x00,0xff, },{0x80,0xf8,RD }}},
+{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{ABS8,RD},3,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}},
+{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{IMM16,RD},4,     {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}},
+{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{ABS16,RD},4,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}},
+{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}},
+{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RN},3,    {{0xa0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNDEC},3, {{0xb0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNINC},3, {{0xc0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND},3, {{0xd0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,ABS8},4,  {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND_D8},4,      {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,ABS16},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND_D16},5,     {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RN},3,      {{0xa0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNDEC},3,   {{0xb0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND},3,   {{0xd0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNINC},3,   {{0xc0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,ABS8},4,    {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND_D8},4,        {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,ABS16},5,   {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND_D16},5,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x90,0xf8,RS }}},
+{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RN,RD},3,    {{0xa0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNINC,RD},3, {{0xc0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND,RD},3, {{0xd0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNDEC,RD},3, {{0xb0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{IMM8,RD},4,  {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{ABS8,RD},4,  {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND_D8,RD},4,      {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{ABS16,RD},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND_D16,RD},5,     {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RN,RD},3,      {{0xa0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNINC,RD},3,   {{0xc0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND,RD},3,   {{0xd0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNDEC,RD},3,   {{0xb0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{IMM8,RD},4,    {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{ABS8,RD},4,    {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND_D8,RD},4,        {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{ABS16,RD},5,   {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
+{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND_D16,RD},5,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x80,0xf8,RD }}},
 {85,'m','S','!','E',O_MOV|O_WORD,"mov:s.w",2,{RS,ABS8},2,      {{0x78,0xf8,RS },{0x00,0x00,ABS8 }}},
 {86,'m','S','!','E',O_MOV|O_BYTE,"mov:s.b",2,{RS,ABS8},2,      {{0x70,0xf8,RS },{0x00,0x00,ABS8 }}},
 {87,'m','S','!','E',O_MOV|O_UNSZ,"mov:s",2,{RS,ABS8},2,        {{0x78,0xf8,RS },{0x00,0x00,ABS8 }}},
 {88,'m','E','!','D',O_MOV|O_WORD,"mov:l.w",2,{ABS8,RD},2,      {{0x68,0xf8,RD },{0x00,0x00,ABS8 }}},
 {89,'m','E','!','D',O_MOV|O_BYTE,"mov:l.b",2,{ABS8,RD},2,      {{0x60,0xf8,RD },{0x00,0x00,ABS8 }}},
 {90,'m','E','!','D',O_MOV|O_UNSZ,"mov:l",2,{ABS8,RD},2,        {{0x68,0xf8,RD },{0x00,0x00,ABS8 }}},
-{91,'m','I','!','D',O_MOV|O_WORD,"mov:i.w",2,{IMM16,RD},3,     {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{92,'m','I','!','D',O_MOV|O_UNSZ,"mov:i",  2,{IMM16,RD},3,     {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{91,'m','I','!','D',O_MOV|O_WORD,"mov:i.w",2,{IMM16,RD},3,     {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{92,'m','I','!','D',O_MOV|O_UNSZ,"mov:i",  2,{IMM16,RD},3,     {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 {93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNIND},2,     {{0xd8,0xf8,RN },{0x90,0xf8,RS }}},
 {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNIND,RD},2,     {{0xd8,0xf8,RN },{0x80,0xf8,RD }}},
 {93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNDEC},2,     {{0xb8,0xf8,RN },{0x90,0xf8,RS }}},
@@ -755,23 +755,23 @@ h8500_opcode_info h8500_table[]
 {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNDEC,RD},2,     {{0xb8,0xf8,RN },{0x80,0xf8,RD }}},
 {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNINC,RD},2,     {{0xc8,0xf8,RN },{0x80,0xf8,RD }}},
 {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RN,RD},2,                {{0xa8,0xf8,RN },{0x80,0xf8,RD }}},
-{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,ABS8},3,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
+{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,ABS8},3,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
 {93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNIND_D8},3,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}},
 {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNIND_D8,RD},3,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}},
-{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{ABS8,RD},3,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
-{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND},4,  {{0xd8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNDEC},4,  {{0xb8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RD},4,     {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,ABS16},4,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNINC},4,  {{0xc8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{ABS16,RD},4,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND_D8},5,{{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,ABS8},5,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{ABS8,RD},3,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
+{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND},4,  {{0xd8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNDEC},4,  {{0xb8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RD},4,     {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,ABS16},4,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNINC},4,  {{0xc8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{ABS16,RD},4,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND_D8},5,{{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,ABS8},5,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 
-{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,ABS16},6,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,ABS16},6,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 
 {94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNINC},2,     {{0xc0,0xf8,RN },{0x90,0xf8,RS }}},
 {94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNIND,RD},2,     {{0xd0,0xf8,RN },{0x80,0xf8,RD }}},
@@ -780,22 +780,22 @@ h8500_opcode_info h8500_table[]
 {94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNDEC},2,     {{0xb0,0xf8,RN },{0x90,0xf8,RS }}},
 {94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RN,RD},2,        {{0xa0,0xf8,RN },{0x80,0xf8,RD }}},
 {94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNINC,RD},2,     {{0xc0,0xf8,RN },{0x80,0xf8,RD }}},
-{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,ABS8},3,      {{0x05,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
+{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,ABS8},3,      {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
 {94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNIND_D8},3,  {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}},
-{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RD},3,      {{0x04,0xff, },{0x00,0x00,IMM8 },{0x80,0xf8,RD }}},
+{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RD},3,      {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x80,0xf8,RD }}},
 {94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNIND_D8,RD},3,  {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}},
-{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND},3,   {{0xd0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNINC},3,   {{0xc0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNDEC},3,   {{0xb0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{ABS8,RD},3,      {{0x05,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
-{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,ABS8},4,    {{0x05,0xff, },{0x00,0x00,ABS8 },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND_D8},4,        {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{ABS16,RD},4,     {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,ABS16},4,     {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND_D16},5,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,ABS16},5,   {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}},
+{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND},3,   {{0xd0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNINC},3,   {{0xc0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNDEC},3,   {{0xb0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{ABS8,RD},3,      {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
+{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,ABS8},4,    {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND_D8},4,        {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{ABS16,RD},4,     {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,ABS16},4,     {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND_D16},5,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,ABS16},5,   {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
 {95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNINC},2,       {{0xc8,0xf8,RN },{0x90,0xf8,RS }}},
 {95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RN,RD},2,  {{0xa8,0xf8,RN },{0x80,0xf8,RD }}},
 {95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNIND},2,       {{0xd8,0xf8,RN },{0x90,0xf8,RS }}},
@@ -804,28 +804,28 @@ h8500_opcode_info h8500_table[]
 {95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNINC,RD},2,       {{0xc8,0xf8,RN },{0x80,0xf8,RD }}},
 {95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNDEC,RD},2,       {{0xb8,0xf8,RN },{0x80,0xf8,RD }}},
 {95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNIND_D8},3,    {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}},
-{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,ABS8},3,        {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
+{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,ABS8},3,        {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
 {95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNIND_D8,RD},3,    {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND},3,     {{0xd8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{ABS8,RD},3,        {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNDEC},3,     {{0xb8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNINC},3,     {{0xc8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND_D8},4,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,ABS8},4,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNIND_D16},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RD},4,       {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND},4,    {{0xd8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNINC},4,    {{0xc8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNDEC},4,    {{0xb8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,ABS16},4,       {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNIND_D16,RD},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{ABS16,RD},4,       {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,ABS16},5,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,ABS8},5,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND_D16},5, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,ABS16},6,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND_D16},6,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND},3,     {{0xd8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{ABS8,RD},3,        {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNDEC},3,     {{0xb8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNINC},3,     {{0xc8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND_D8},4,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,ABS8},4,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNIND_D16},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RD},4,       {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND},4,    {{0xd8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNINC},4,    {{0xc8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNDEC},4,    {{0xb8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,ABS16},4,       {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNIND_D16,RD},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{ABS16,RD},4,       {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,ABS16},5,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,ABS8},5,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND_D16},5, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,ABS16},6,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND_D16},6,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 {96,'m','S','!','E',O_MOV|O_WORD,"mov:f.w",2,{RS,FPIND_D8},2,  {{0x98,0xf8,RS },{0x00,0x00,FPIND_D8 }}},
 {96,'m','E','!','D',O_MOV|O_WORD,"mov:f.w",2,{FPIND_D8,RD},2,  {{0x88,0xf8,RD },{0x00,0x00,FPIND_D8 }}},
 {97,'m','S','!','E',O_MOV|O_BYTE,"mov:f.b",2,{RS,FPIND_D8},2,  {{0x90,0xf8,RS },{0x00,0x00,FPIND_D8 }}},
@@ -845,23 +845,23 @@ h8500_opcode_info h8500_table[]
 {101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNINC,RD},2,      {{0xc8,0xf8,RN },{0x80,0xf8,RD }}},
 {101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x80,0xf8,RD }}},
 {101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNDEC,RD},2,      {{0xb8,0xf8,RN },{0x80,0xf8,RD }}},
-{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,ABS8},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
+{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,ABS8},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
 {101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNIND_D8,RD},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}},
 {101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,RNIND_D8},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}},
-{101,'m','I','!','D',O_MOV|O_WORD,"mov.w",2,{IMM16,RD},3,      {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{ABS8,RD},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
-{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNINC},4,   {{0xc8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNDEC},4,   {{0xb8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND},4,   {{0xd8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,ABS16},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{ABS16,RD},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{IMM16,RD},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND_D8},5,        {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,ABS8},5,    {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND_D16},6,       {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,ABS16},6,   {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{101,'m','I','!','D',O_MOV|O_WORD,"mov.w",2,{IMM16,RD},3,      {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{ABS8,RD},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
+{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNINC},4,   {{0xc8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNDEC},4,   {{0xb8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND},4,   {{0xd8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,ABS16},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{ABS16,RD},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{IMM16,RD},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND_D8},5,        {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,ABS8},5,    {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND_D16},6,       {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,ABS16},6,   {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 
 {102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{FPIND_D8,RD},2,   {{0x80,0xf8,RD },{0x00,0x00,FPIND_D8 }}},
 {102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS8},2,       {{0x70,0xf8,RS },{0x00,0x00,ABS8 }}},
@@ -875,22 +875,22 @@ h8500_opcode_info h8500_table[]
 {102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x80,0xf8,RD }}},
 {102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS8,RD},2,       {{0x60,0xf8,RD },{0x00,0x00,ABS8 }}},
 {102,'m','I','!','D',O_MOV|O_BYTE,"mov.b",2,{IMM8,RD},2,       {{0x50,0xf8,RD },{0x00,0x00,IMM8 }}},
-{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{IMM8,RD},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x80,0xf8,RD }}},
-{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS8},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
-{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND},3,    {{0xd0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNINC},3,    {{0xc0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNDEC},3,    {{0xb0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
+{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{IMM8,RD},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x80,0xf8,RD }}},
+{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS8},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
+{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND},3,    {{0xd0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNINC},3,    {{0xc0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNDEC},3,    {{0xb0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
 {102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{RNIND_D8,RD},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}},
-{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS8,RD},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
+{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS8,RD},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
 {102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,RNIND_D8},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}},
-{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS16,RD},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,ABS8},4,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS16},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,RNIND_D16},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{RNIND_D16,RD},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,ABS16},5,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND_D16},5,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}},
+{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS16,RD},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,ABS8},4,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS16},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,RNIND_D16},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{RNIND_D16,RD},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,ABS16},5,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND_D16},5,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
 {103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS8,RD},2, {{0x68,0xf8,RD },{0x00,0x00,ABS8 }}},
 {103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS8},2, {{0x78,0xf8,RS },{0x00,0x00,ABS8 }}},
 {103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNIND,RD},2,        {{0xd8,0xf8,RN },{0x80,0xf8,RD }}},
@@ -904,50 +904,50 @@ h8500_opcode_info h8500_table[]
 /*{103,'m','I','!','D',O_MOV|O_UNSZ,"mov",2,{IMM8,RD},2,       {{0x58,0xf8,RD },{0x00,0x00,IMM8 }}},*/
 {103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNDEC,RD},2,        {{0xb8,0xf8,RN },{0x80,0xf8,RD }}},
 {103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,RNIND_D8},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND},3,      {{0xd8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNINC},3,      {{0xc8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNDEC},3,      {{0xb8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND},3,      {{0xd8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNINC},3,      {{0xc8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNDEC},3,      {{0xb8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
 {103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNIND_D8,RD},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}},
-{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
-{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
-{103,'m','I','!','D',O_MOV|O_UNSZ,"mov",2,{IMM16,RD},3,        {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,ABS8},4,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,RNIND_D16},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND},4,     {{0xd8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNINC},4,     {{0xc8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNDEC},4,     {{0xb8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS16},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}},
-{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{IMM16,RD},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND_D8},4,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS16,RD},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND_D8},5,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,ABS16},5,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,ABS8},5,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND_D16},5,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,ABS16},6,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{104,'-','S','I','!',O_LINK|O_UNSZ,"link",2,{FP,IMM8},2,       {{0x17,0xff, },{0x00,0x00,IMM8 }}},
-{104,'-','S','I','!',O_LINK|O_UNSZ,"link",2,{FP,IMM16},3,      {{0x1f,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{105,'-','E','!','C',O_LDM|O_UNSZ,"ldm",2,{SPINC,RLIST},2,     {{0x02,0xff, },{0x00,0x00,RLIST }}},
+{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}},
+{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}},
+{103,'m','I','!','D',O_MOV|O_UNSZ,"mov",2,{IMM16,RD},3,        {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,ABS8},4,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,RNIND_D16},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND},4,     {{0xd8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNINC},4,     {{0xc8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNDEC},4,     {{0xb8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS16},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}},
+{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{IMM16,RD},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND_D8},4,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS16,RD},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND_D8},5,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,ABS16},5,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,ABS8},5,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND_D16},5,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,ABS16},6,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{104,'-','S','I','!',O_LINK|O_UNSZ,"link",2,{FP,IMM8},2,       {{0x17,0xff,0 },{0x00,0x00,IMM8 }}},
+{104,'-','S','I','!',O_LINK|O_UNSZ,"link",2,{FP,IMM16},3,      {{0x1f,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{105,'-','E','!','C',O_LDM|O_UNSZ,"ldm",2,{SPINC,RLIST},2,     {{0x02,0xff,0 },{0x00,0x00,RLIST }}},
 {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RN,CRW},2,                {{0xa8,0xf8,RN },{0x88,0xf8,CRW }}},
 {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNIND,CRW},2,     {{0xd8,0xf8,RN },{0x88,0xf8,CRW }}},
 {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNINC,CRW},2,     {{0xc8,0xf8,RN },{0x88,0xf8,CRW }}},
 {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNDEC,CRW},2,     {{0xb8,0xf8,RN },{0x88,0xf8,CRW }}},
-{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{ABS8,CRW},3,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x88,0xf8,CRW }}},
+{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{ABS8,CRW},3,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x88,0xf8,CRW }}},
 {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNIND_D8,CRW},3,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x88,0xf8,CRW }}},
-{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{IMM16,CRW},4,     {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x88,0xf8,CRW }}},
-{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{ABS16,CRW},4,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x88,0xf8,CRW }}},
-{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNIND_D16,CRW},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x88,0xf8,CRW }}},
+{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{IMM16,CRW},4,     {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}},
+{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{ABS16,CRW},4,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}},
+{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNIND_D16,CRW},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}},
 {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RN,CRB},2,                {{0xa0,0xf8,RN },{0x88,0xf8,CRB }}},
 {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNDEC,CRB},2,     {{0xb0,0xf8,RN },{0x88,0xf8,CRB }}},
 {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNINC,CRB},2,     {{0xc0,0xf8,RN },{0x88,0xf8,CRB }}},
 {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNIND,CRB},2,     {{0xd0,0xf8,RN },{0x88,0xf8,CRB }}},
-{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{IMM8,CRB},3,      {{0x04,0xff, },{0x00,0x00,IMM8 },{0x88,0xf8,CRB }}},
-{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{ABS8,CRB},3,      {{0x05,0xff, },{0x00,0x00,ABS8 },{0x88,0xf8,CRB }}},
+{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{IMM8,CRB},3,      {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x88,0xf8,CRB }}},
+{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{ABS8,CRB},3,      {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x88,0xf8,CRB }}},
 {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNIND_D8,CRB},3,  {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x88,0xf8,CRB }}},
-{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{ABS16,CRB},4,     {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x88,0xf8,CRB }}},
-{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNIND_D16,CRB},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x88,0xf8,CRB }}},
+{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{ABS16,CRB},4,     {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x88,0xf8,CRB }}},
+{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNIND_D16,CRB},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x88,0xf8,CRB }}},
 {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RN,CRW},2,  {{0xa8,0xf8,RN },{0x88,0xf8,CRW }}},
 {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RN,CRB},2,  {{0xa0,0xf8,RN },{0x88,0xf8,CRB }}},
 {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNINC,CRW},2,       {{0xc8,0xf8,RN },{0x88,0xf8,CRW }}},
@@ -956,202 +956,202 @@ h8500_opcode_info h8500_table[]
 {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND,CRW},2,       {{0xd8,0xf8,RN },{0x88,0xf8,CRW }}},
 {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNDEC,CRB},2,       {{0xb0,0xf8,RN },{0x88,0xf8,CRB }}},
 {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNINC,CRB},2,       {{0xc0,0xf8,RN },{0x88,0xf8,CRB }}},
-{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS8,CRW},3,                {{0x05,0xff, },{0x00,0x00,ABS8 },{0x88,0xf8,CRW }}},
-{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS8,CRB},3,                {{0x05,0xff, },{0x00,0x00,ABS8 },{0x88,0xf8,CRB }}},
-{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{IMM8,CRB},3,                {{0x04,0xff, },{0x00,0x00,IMM8 },{0x88,0xf8,CRB }}},
+{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS8,CRW},3,                {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x88,0xf8,CRW }}},
+{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS8,CRB},3,                {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x88,0xf8,CRB }}},
+{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{IMM8,CRB},3,                {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x88,0xf8,CRB }}},
 {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D8,CRW},3,    {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x88,0xf8,CRW }}},
 {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D8,CRB},3,    {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x88,0xf8,CRB }}},
-{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS16,CRB},4,       {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x88,0xf8,CRB }}},
-{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS16,CRW},4,       {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x88,0xf8,CRW }}},
-{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{IMM16,CRW},4,       {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x88,0xf8,CRW }}},
-{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D16,CRW},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x88,0xf8,CRW }}},
-{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D16,CRB},4,   {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x88,0xf8,CRB }}},
-{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND,0},2, {{0x11,0xff, },{0xd8,0xf8,RD }}},
-{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{ABS16,0},3, {{0x18,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, }}},
-{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND_D8,0},3,      {{0x11,0xff, },{0xe8,0xf8,RDIND_D8 },{0x00,0x00, }}},
-{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND_D16,0},4,     {{0x11,0xff, },{0xf8,0xf8,RDIND_D16 },{0x00,0x00, },{0x00,0x00, }}},
-{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND,0},2, {{0x11,0xff, },{0xd0,0xf8,RD }}},
-{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{ABS16,0},3, {{0x10,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, }}},
-{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND_D8,0},3,      {{0x11,0xff, },{0xe0,0xf8,RDIND_D8 },{0x00,0x00, }}},
-{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND_D16,0},4,     {{0x11,0xff, },{0xf0,0xf8,RDIND_D16 },{0x00,0x00, },{0x00,0x00, }}},
-{111,'s','D','!','D',O_EXTU|O_BYTE,"extu.b",1,{RD,0},2,        {{0xa0,0xf8,RD },{0x12,0xff, }}},
-{112,'s','D','!','D',O_EXTU|O_UNSZ,"extu",1,{RD,0},2,  {{0xa0,0xf8,RD },{0x12,0xff, }}},
-{113,'s','D','!','D',O_EXTS|O_BYTE,"exts.b",1,{RD,0},2,        {{0xa0,0xf8,RD },{0x11,0xff, }}},
-{114,'s','D','!','D',O_EXTS|O_UNSZ,"exts",1,{RD,0},2,  {{0xa0,0xf8,RD },{0x11,0xff, }}},
-{115,'s','D','!','!',O_DSUB|O_UNSZ,"dsub",2,{RS,RD},3, {{0xa0,0xf8,RS },{0x00,0xff, },{0xb0,0xf8,RD }}},
+{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS16,CRB},4,       {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x88,0xf8,CRB }}},
+{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS16,CRW},4,       {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}},
+{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{IMM16,CRW},4,       {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}},
+{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D16,CRW},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}},
+{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D16,CRB},4,   {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x88,0xf8,CRB }}},
+{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND,0},2, {{0x11,0xff,0 },{0xd8,0xf8,RD }}},
+{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{ABS16,0},3, {{0x18,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 }}},
+{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND_D8,0},3,      {{0x11,0xff,0 },{0xe8,0xf8,RDIND_D8 },{0x00,0x00,0 }}},
+{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND_D16,0},4,     {{0x11,0xff,0 },{0xf8,0xf8,RDIND_D16 },{0x00,0x00,0 },{0x00,0x00,0 }}},
+{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND,0},2, {{0x11,0xff,0 },{0xd0,0xf8,RD }}},
+{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{ABS16,0},3, {{0x10,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 }}},
+{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND_D8,0},3,      {{0x11,0xff,0 },{0xe0,0xf8,RDIND_D8 },{0x00,0x00,0 }}},
+{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND_D16,0},4,     {{0x11,0xff,0 },{0xf0,0xf8,RDIND_D16 },{0x00,0x00,0 },{0x00,0x00,0 }}},
+{111,'s','D','!','D',O_EXTU|O_BYTE,"extu.b",1,{RD,0},2,        {{0xa0,0xf8,RD },{0x12,0xff,0 }}},
+{112,'s','D','!','D',O_EXTU|O_UNSZ,"extu",1,{RD,0},2,  {{0xa0,0xf8,RD },{0x12,0xff,0 }}},
+{113,'s','D','!','D',O_EXTS|O_BYTE,"exts.b",1,{RD,0},2,        {{0xa0,0xf8,RD },{0x11,0xff,0 }}},
+{114,'s','D','!','D',O_EXTS|O_UNSZ,"exts",1,{RD,0},2,  {{0xa0,0xf8,RD },{0x11,0xff,0 }}},
+{115,'s','D','!','!',O_DSUB|O_UNSZ,"dsub",2,{RS,RD},3, {{0xa0,0xf8,RS },{0x00,0xff,0 },{0xb0,0xf8,RD }}},
 {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RN,RD},2,     {{0xa8,0xf8,RN },{0xb8,0xf8,RD }}},
 {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNDEC,RD},2,  {{0xb8,0xf8,RN },{0xb8,0xf8,RD }}},
 {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNINC,RD},2,  {{0xc8,0xf8,RN },{0xb8,0xf8,RD }}},
 {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNIND,RD},2,  {{0xd8,0xf8,RN },{0xb8,0xf8,RD }}},
-{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{ABS8,RD},3,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}},
+{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{ABS8,RD},3,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}},
 {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNIND_D8,RD},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xb8,0xf8,RD }}},
-{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{ABS16,RD},4,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb8,0xf8,RD }}},
-{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{IMM16,RD},4,  {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xb8,0xf8,RD }}},
-{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNIND_D16,RD},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb8,0xf8,RD }}},
+{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{ABS16,RD},4,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}},
+{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{IMM16,RD},4,  {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}},
+{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNIND_D16,RD},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}},
 {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RN,RD},2,     {{0xa0,0xf8,RN },{0xb8,0xf8,RD }}},
 {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNDEC,RD},2,  {{0xb0,0xf8,RN },{0xb8,0xf8,RD }}},
 {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNIND,RD},2,  {{0xd0,0xf8,RN },{0xb8,0xf8,RD }}},
 {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNINC,RD},2,  {{0xc0,0xf8,RN },{0xb8,0xf8,RD }}},
-{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{IMM8,RD},3,   {{0x04,0xff, },{0x00,0x00,IMM8 },{0xb8,0xf8,RD }}},
+{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{IMM8,RD},3,   {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0xb8,0xf8,RD }}},
 {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNIND_D8,RD},3,       {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xb8,0xf8,RD }}},
-{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{ABS8,RD},3,   {{0x05,0xff, },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}},
-{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{ABS16,RD},4,  {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb8,0xf8,RD }}},
-{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNIND_D16,RD},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb8,0xf8,RD }}},
+{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{ABS8,RD},3,   {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}},
+{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{ABS16,RD},4,  {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}},
+{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNIND_D16,RD},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}},
 {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RN,RD},2,       {{0xa8,0xf8,RN },{0xb8,0xf8,RD }}},
 {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNINC,RD},2,    {{0xc8,0xf8,RN },{0xb8,0xf8,RD }}},
 {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNDEC,RD},2,    {{0xb8,0xf8,RN },{0xb8,0xf8,RD }}},
 {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNIND,RD},2,    {{0xd8,0xf8,RN },{0xb8,0xf8,RD }}},
-{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{ABS8,RD},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}},
+{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{ABS8,RD},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}},
 {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xb8,0xf8,RD }}},
-{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{IMM16,RD},4,    {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xb8,0xf8,RD }}},
-{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{ABS16,RD},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb8,0xf8,RD }}},
-{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb8,0xf8,RD }}},
-{119,'s','D','!','!',O_DADD|O_UNSZ,"dadd",2,{RS,RD},3, {{0xa0,0xf8,RS },{0x00,0xff, },{0xa0,0xf8,RD }}},
-{120,'a','D','I','!',O_CMP|O_WORD,"cmp:i.w",2,{IMM16,RD},3,    {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{121,'a','D','I','!',O_CMP|O_UNSZ,"cmp:i",2,{IMM16,RD},3,      {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{IMM16,RD},4,    {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}},
+{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{ABS16,RD},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}},
+{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}},
+{119,'s','D','!','!',O_DADD|O_UNSZ,"dadd",2,{RS,RD},3, {{0xa0,0xf8,RS },{0x00,0xff,0 },{0xa0,0xf8,RD }}},
+{120,'a','D','I','!',O_CMP|O_WORD,"cmp:i.w",2,{IMM16,RD},3,    {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{121,'a','D','I','!',O_CMP|O_UNSZ,"cmp:i",2,{IMM16,RD},3,      {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RN,RD},2,       {{0xa8,0xf8,RN },{0x70,0xf8,RD }}},
 {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNIND,RD},2,    {{0xd8,0xf8,RN },{0x70,0xf8,RD }}},
 {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNINC,RD},2,    {{0xc8,0xf8,RN },{0x70,0xf8,RD }}},
 {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNDEC,RD},2,    {{0xb8,0xf8,RN },{0x70,0xf8,RD }}},
 {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}},
-{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{ABS8,RD},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
-{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RN},4,    {{0xa8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RD},4,    {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{ABS16,RD},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND_D8},5,{{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,ABS8},5,  {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND_D16},6,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,ABS16},6, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{ABS8,RD},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
+{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RN},4,    {{0xa8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RD},4,    {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{ABS16,RD},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND_D8},5,{{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,ABS8},5,  {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND_D16},6,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,ABS16},6, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RN,RD},2,       {{0xa0,0xf8,RN },{0x70,0xf8,RD }}},
 {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNDEC,RD},2,    {{0xb0,0xf8,RN },{0x70,0xf8,RD }}},
 {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNIND,RD},2,    {{0xd0,0xf8,RN },{0x70,0xf8,RD }}},
 {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNINC,RD},2,    {{0xc0,0xf8,RN },{0x70,0xf8,RD }}},
-{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RN},3,     {{0xa0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND},3,  {{0xd0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNINC},3,  {{0xc0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNDEC},3,  {{0xb0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RD},3,     {{0x04,0xff, },{0x00,0x00,IMM8 },{0x70,0xf8,RD }}},
+{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RN},3,     {{0xa0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND},3,  {{0xd0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNINC},3,  {{0xc0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNDEC},3,  {{0xb0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RD},3,     {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x70,0xf8,RD }}},
 {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}},
-{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{ABS8,RD},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
-{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{ABS16,RD},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND_D8},4,       {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,ABS8},4,   {{0x05,0xff, },{0x00,0x00,ABS8 },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNIND_D16,RD},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,ABS16},5,  {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND_D16},5,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x04,0xff, },{0x00,0x00,IMM8 }}},
+{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{ABS8,RD},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
+{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{ABS16,RD},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND_D8},4,       {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,ABS8},4,   {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNIND_D16,RD},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,ABS16},5,  {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND_D16},5,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
 {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RN,RD},2,         {{0xa8,0xf8,RN },{0x70,0xf8,RD }}},
 {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNIND,RD},2,      {{0xd8,0xf8,RN },{0x70,0xf8,RD }}},
 {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNINC,RD},2,      {{0xc8,0xf8,RN },{0x70,0xf8,RD }}},
 {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNDEC,RD},2,      {{0xb8,0xf8,RN },{0x70,0xf8,RD }}},
 {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNIND_D8,RD},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}},
-{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{ABS8,RD},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
-{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNINC},4,   {{0xc8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND},4,   {{0xd8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RN},4,      {{0xa8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNDEC},4,   {{0xb8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RD},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{ABS16,RD},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND_D8},5,        {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,ABS8},5,    {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,ABS16},6,   {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{ABS8,RD},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
+{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNINC},4,   {{0xc8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND},4,   {{0xd8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RN},4,      {{0xa8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNDEC},4,   {{0xb8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RD},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{ABS16,RD},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND_D8},5,        {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,ABS8},5,    {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,ABS16},6,   {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 {125,'a','D','I','!',O_CMP|O_BYTE,"cmp:e.b",2,{IMM8,RD},2,     {{0x40,0xf8,RD },{0x00,0x00,IMM8 }}},
 {126,'a','D','I','!',O_CMP|O_UNSZ,"cmp:e",2,{IMM8,RD},2,       {{0x48,0xf8,RD },{0x00,0x00,IMM8 }}},
 {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RN,RD},2,         {{0xa8,0xf8,RN },{0x70,0xf8,RD }}},
 {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNDEC,RD},2,      {{0xb8,0xf8,RN },{0x70,0xf8,RD }}},
 {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNINC,RD},2,      {{0xc8,0xf8,RN },{0x70,0xf8,RD }}},
 {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNIND,RD},2,      {{0xd8,0xf8,RN },{0x70,0xf8,RD }}},
-{127,'a','D','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RD},3,      {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{127,'a','D','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RD},3,      {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNIND_D8,RD},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}},
-{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{ABS8,RD},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
-{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNINC},4,   {{0xc8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNDEC},4,   {{0xb8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND},4,   {{0xd8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{ABS16,RD},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RD},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RN},4,      {{0xa8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND_D8},5,        {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,ABS8},5,    {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,ABS16},6,   {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{ABS8,RD},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
+{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNINC},4,   {{0xc8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNDEC},4,   {{0xb8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND},4,   {{0xd8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{ABS16,RD},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RD},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RN},4,      {{0xa8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND_D8},5,        {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,ABS8},5,    {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,ABS16},6,   {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RN,RD},2,         {{0xa0,0xf8,RN },{0x70,0xf8,RD }}},
 {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNDEC,RD},2,      {{0xb0,0xf8,RN },{0x70,0xf8,RD }}},
 {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNINC,RD},2,      {{0xc0,0xf8,RN },{0x70,0xf8,RD }}},
 {128,'a','D','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RD},2,       {{0x40,0xf8,RD },{0x00,0x00,IMM8 }}},
 {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNIND,RD},2,      {{0xd0,0xf8,RN },{0x70,0xf8,RD }}},
-{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RN},3,       {{0xa0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND},3,    {{0xd0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNINC},3,    {{0xc0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNDEC},3,    {{0xb0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{ABS8,RD},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
+{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RN},3,       {{0xa0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND},3,    {{0xd0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNINC},3,    {{0xc0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNDEC},3,    {{0xb0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{ABS8,RD},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
 {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNIND_D8,RD},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}},
-{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RD},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x70,0xf8,RD }}},
-{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,ABS8},4,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{ABS16,RD},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNIND_D16,RD},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,ABS16},5,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x04,0xff, },{0x00,0x00,IMM8 }}},
-{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND_D16},5,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x04,0xff, },{0x00,0x00,IMM8 }}},
+{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RD},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x70,0xf8,RD }}},
+{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,ABS8},4,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{ABS16,RD},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNIND_D16,RD},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,ABS16},5,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
+{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND_D16},5,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}},
 {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RN,RD},2,   {{0xa8,0xf8,RN },{0x70,0xf8,RD }}},
 {129,'a','D','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM8,RD},2, {{0x48,0xf8,RD },{0x00,0x00,IMM8 }}},
 {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNINC,RD},2,        {{0xc8,0xf8,RN },{0x70,0xf8,RD }}},
 {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNIND,RD},2,        {{0xd8,0xf8,RN },{0x70,0xf8,RD }}},
 {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNDEC,RD},2,        {{0xb8,0xf8,RN },{0x70,0xf8,RD }}},
-{129,'a','D','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RD},3,        {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}},
+{129,'a','D','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RD},3,        {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
 {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNIND_D8,RD},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}},
-{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{ABS8,RD},3,         {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
-{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RN},4,                {{0xa8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNDEC},4,     {{0xb8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND},4,     {{0xd8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNINC},4,     {{0xc8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{ABS16,RD},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RD},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x70,0xf8,RD }}},
-{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,ABS8},5,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND_D8},5,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,ABS16},6,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}},
-{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RN,0},2,  {{0xa8,0xf8,RN },{0x13,0xff, }}},
-{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND,0},2,       {{0xd8,0xf8,RN },{0x13,0xff, }}},
-{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNINC,0},2,       {{0xc8,0xf8,RN },{0x13,0xff, }}},
-{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNDEC,0},2,       {{0xb8,0xf8,RN },{0x13,0xff, }}},
-{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{ABS8,0},3,        {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x13,0xff, }}},
-{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND_D8,0},3,    {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff, }}},
-{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{ABS16,0},4,       {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x13,0xff, }}},
-{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{IMM16,0},4,       {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x13,0xff, }}},
-{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND_D16,0},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x13,0xff, }}},
-{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RN,0},2,  {{0xa0,0xf8,RN },{0x13,0xff, }}},
-{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNINC,0},2,       {{0xc0,0xf8,RN },{0x13,0xff, }}},
-{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNDEC,0},2,       {{0xb0,0xf8,RN },{0x13,0xff, }}},
-{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND,0},2,       {{0xd0,0xf8,RN },{0x13,0xff, }}},
-{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{ABS8,0},3,        {{0x05,0xff, },{0x00,0x00,ABS8 },{0x13,0xff, }}},
-{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{IMM8,0},3,        {{0x04,0xff, },{0x00,0x00,IMM8 },{0x13,0xff, }}},
-{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND_D8,0},3,    {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff, }}},
-{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{ABS16,0},4,       {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x13,0xff, }}},
-{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND_D16,0},4,   {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x13,0xff, }}},
-{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RN,0},2,    {{0xa8,0xf8,RN },{0x13,0xff, }}},
-{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x13,0xff, }}},
-{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x13,0xff, }}},
-{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x13,0xff, }}},
-{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{ABS8,0},3,  {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x13,0xff, }}},
-{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND_D8,0},3,      {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff, }}},
-{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x13,0xff, }}},
-{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x13,0xff, }}},
-{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND_D16,0},4,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x13,0xff, }}},
-{133,'-','B','!','!',O_BVS|O_WORD,"bvs.w",1,{PCREL16,0},3,     {{0x39,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{134,'-','B','!','!',O_BVS|O_BYTE,"bvs.b",1,{PCREL8,0},2,      {{0x29,0xff, },{0x00,0x00,PCREL8 }}},
-{135,'-','B','!','!',O_BVS|O_UNSZ,"bvs",1,{PCREL8,0},2,        {{0x29,0xff, },{0x00,0x00,PCREL8 }}},
-{135,'-','B','!','!',O_BVS|O_UNSZ,"bvs",1,{PCREL16,0},3,       {{0x39,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{136,'-','B','!','!',O_BVC|O_WORD,"bvc.w",1,{PCREL16,0},3,     {{0x38,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{137,'-','B','!','!',O_BVC|O_BYTE,"bvc.b",1,{PCREL8,0},2,      {{0x28,0xff, },{0x00,0x00,PCREL8 }}},
-{138,'-','B','!','!',O_BVC|O_UNSZ,"bvc",1,{PCREL8,0},2,        {{0x28,0xff, },{0x00,0x00,PCREL8 }}},
-{138,'-','B','!','!',O_BVC|O_UNSZ,"bvc",1,{PCREL16,0},3,       {{0x38,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
+{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{ABS8,RD},3,         {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}},
+{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RN},4,                {{0xa8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNDEC},4,     {{0xb8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND},4,     {{0xd8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNINC},4,     {{0xc8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{ABS16,RD},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RD},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x70,0xf8,RD }}},
+{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,ABS8},5,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND_D8},5,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,ABS16},6,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}},
+{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RN,0},2,  {{0xa8,0xf8,RN },{0x13,0xff,0 }}},
+{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND,0},2,       {{0xd8,0xf8,RN },{0x13,0xff,0 }}},
+{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNINC,0},2,       {{0xc8,0xf8,RN },{0x13,0xff,0 }}},
+{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNDEC,0},2,       {{0xb8,0xf8,RN },{0x13,0xff,0 }}},
+{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{ABS8,0},3,        {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x13,0xff,0 }}},
+{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND_D8,0},3,    {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff,0 }}},
+{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{ABS16,0},4,       {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x13,0xff,0 }}},
+{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{IMM16,0},4,       {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x13,0xff,0 }}},
+{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND_D16,0},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x13,0xff,0 }}},
+{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RN,0},2,  {{0xa0,0xf8,RN },{0x13,0xff,0 }}},
+{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNINC,0},2,       {{0xc0,0xf8,RN },{0x13,0xff,0 }}},
+{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNDEC,0},2,       {{0xb0,0xf8,RN },{0x13,0xff,0 }}},
+{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND,0},2,       {{0xd0,0xf8,RN },{0x13,0xff,0 }}},
+{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{ABS8,0},3,        {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x13,0xff,0 }}},
+{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{IMM8,0},3,        {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x13,0xff,0 }}},
+{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND_D8,0},3,    {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff,0 }}},
+{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{ABS16,0},4,       {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x13,0xff,0 }}},
+{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND_D16,0},4,   {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x13,0xff,0 }}},
+{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RN,0},2,    {{0xa8,0xf8,RN },{0x13,0xff,0 }}},
+{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x13,0xff,0 }}},
+{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x13,0xff,0 }}},
+{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x13,0xff,0 }}},
+{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{ABS8,0},3,  {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x13,0xff,0 }}},
+{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND_D8,0},3,      {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff,0 }}},
+{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x13,0xff,0 }}},
+{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x13,0xff,0 }}},
+{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND_D16,0},4,     {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x13,0xff,0 }}},
+{133,'-','B','!','!',O_BVS|O_WORD,"bvs.w",1,{PCREL16,0},3,     {{0x39,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{134,'-','B','!','!',O_BVS|O_BYTE,"bvs.b",1,{PCREL8,0},2,      {{0x29,0xff,0 },{0x00,0x00,PCREL8 }}},
+{135,'-','B','!','!',O_BVS|O_UNSZ,"bvs",1,{PCREL8,0},2,        {{0x29,0xff,0 },{0x00,0x00,PCREL8 }}},
+{135,'-','B','!','!',O_BVS|O_UNSZ,"bvs",1,{PCREL16,0},3,       {{0x39,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{136,'-','B','!','!',O_BVC|O_WORD,"bvc.w",1,{PCREL16,0},3,     {{0x38,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{137,'-','B','!','!',O_BVC|O_BYTE,"bvc.b",1,{PCREL8,0},2,      {{0x28,0xff,0 },{0x00,0x00,PCREL8 }}},
+{138,'-','B','!','!',O_BVC|O_UNSZ,"bvc",1,{PCREL8,0},2,        {{0x28,0xff,0 },{0x00,0x00,PCREL8 }}},
+{138,'-','B','!','!',O_BVC|O_UNSZ,"bvc",1,{PCREL16,0},3,       {{0x38,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
 {139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,RN},2,       {{0xa8,0xf8,RN },{0x78,0xf8,RS }}},
 {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNDEC},2,  {{0xb8,0xf8,RN },{0xf0,0xf0,IMM4 }}},
 {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNINC},2,  {{0xc8,0xf8,RN },{0xf0,0xf0,IMM4 }}},
@@ -1161,13 +1161,13 @@ h8500_opcode_info h8500_table[]
 {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNIND},2,  {{0xd8,0xf8,RN },{0xf0,0xf0,IMM4 }}},
 {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RN},2,     {{0xa8,0xf8,RN },{0xf0,0xf0,IMM4 }}},
 {139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x78,0xf8,RS }}},
-{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,ABS8},3,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}},
-{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,ABS8},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}},
+{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,ABS8},3,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}},
+{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,ABS8},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}},
 {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNIND_D8},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xf0,0xf0,IMM4 }}},
-{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x78,0xf8,RS }}},
-{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,ABS16},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x78,0xf8,RS }}},
-{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,ABS16},4,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}},
-{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNIND_D16},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}},
+{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x78,0xf8,RS }}},
+{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,ABS16},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x78,0xf8,RS }}},
+{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,ABS16},4,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}},
+{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNIND_D16},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}},
 {140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,RN},2,       {{0xa0,0xf8,RN },{0x78,0xf8,RS }}},
 {140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNDEC},2,  {{0xb0,0xf8,RN },{0xf0,0xf0,IMM4 }}},
 {140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RN},2,     {{0xa0,0xf8,RN },{0xf0,0xf0,IMM4 }}},
@@ -1178,12 +1178,12 @@ h8500_opcode_info h8500_table[]
 {140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNINC},2,  {{0xc0,0xf8,RN },{0xf0,0xf0,IMM4 }}},
 {140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x78,0xf8,RS }}},
 {140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNIND_D8},3,       {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xf0,0xf0,IMM4 }}},
-{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,ABS8},3,   {{0x05,0xff, },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}},
-{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,ABS8},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}},
-{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,ABS16},4,  {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}},
-{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,RNIND_D16},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x78,0xf8,RS }}},
-{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,ABS16},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x78,0xf8,RS }}},
-{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNIND_D16},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}},
+{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,ABS8},3,   {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}},
+{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,ABS8},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}},
+{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,ABS16},4,  {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}},
+{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,RNIND_D16},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x78,0xf8,RS }}},
+{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,ABS16},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x78,0xf8,RS }}},
+{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNIND_D16},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}},
 {141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x78,0xf8,RS }}},
 {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNDEC},2,    {{0xb8,0xf8,RN },{0xf0,0xf0,IMM4 }}},
 {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNIND},2,    {{0xd8,0xf8,RN },{0xf0,0xf0,IMM4 }}},
@@ -1193,21 +1193,21 @@ h8500_opcode_info h8500_table[]
 {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RN},2,       {{0xa8,0xf8,RN },{0xf0,0xf0,IMM4 }}},
 {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNINC},2,    {{0xc8,0xf8,RN },{0xf0,0xf0,IMM4 }}},
 {141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,RNIND_D8},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x78,0xf8,RS }}},
-{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,ABS8},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}},
-{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,ABS8},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}},
+{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,ABS8},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}},
+{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,ABS8},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}},
 {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xf0,0xf0,IMM4 }}},
-{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,ABS16},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}},
-{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x78,0xf8,RS }}},
-{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,ABS16},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x78,0xf8,RS }}},
-{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}},
-{142,'-','B','!','!',O_BT|O_WORD,"bt.w",1,{PCREL16,0},3,       {{0x30,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{143,'-','B','!','!',O_BT|O_BYTE,"bt.b",1,{PCREL8,0},2,        {{0x20,0xff, },{0x00,0x00,PCREL8 }}},
-{144,'-','B','!','!',O_BT|O_UNSZ,"bt",1,{PCREL8,0},2,  {{0x20,0xff, },{0x00,0x00,PCREL8 }}},
-{144,'-','B','!','!',O_BT|O_UNSZ,"bt",1,{PCREL16,0},3, {{0x30,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{145,'-','B','!','!',O_BSR|O_WORD,"bsr.w",1,{PCREL16,0},3,     {{0x1e,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{146,'-','B','!','!',O_BSR|O_BYTE,"bsr.b",1,{PCREL8,0},2,      {{0x0e,0xff, },{0x00,0x00,PCREL8 }}},
-{147,'-','B','!','!',O_BSR|O_UNSZ,"bsr",1,{PCREL8,0},2,        {{0x0e,0xff, },{0x00,0x00,PCREL8 }}},
-{147,'-','B','!','!',O_BSR|O_UNSZ,"bsr",1,{PCREL16,0},3,       {{0x1e,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
+{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,ABS16},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}},
+{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x78,0xf8,RS }}},
+{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,ABS16},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x78,0xf8,RS }}},
+{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}},
+{142,'-','B','!','!',O_BT|O_WORD,"bt.w",1,{PCREL16,0},3,       {{0x30,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{143,'-','B','!','!',O_BT|O_BYTE,"bt.b",1,{PCREL8,0},2,        {{0x20,0xff,0 },{0x00,0x00,PCREL8 }}},
+{144,'-','B','!','!',O_BT|O_UNSZ,"bt",1,{PCREL8,0},2,  {{0x20,0xff,0 },{0x00,0x00,PCREL8 }}},
+{144,'-','B','!','!',O_BT|O_UNSZ,"bt",1,{PCREL16,0},3, {{0x30,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{145,'-','B','!','!',O_BSR|O_WORD,"bsr.w",1,{PCREL16,0},3,     {{0x1e,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{146,'-','B','!','!',O_BSR|O_BYTE,"bsr.b",1,{PCREL8,0},2,      {{0x0e,0xff,0 },{0x00,0x00,PCREL8 }}},
+{147,'-','B','!','!',O_BSR|O_UNSZ,"bsr",1,{PCREL8,0},2,        {{0x0e,0xff,0 },{0x00,0x00,PCREL8 }}},
+{147,'-','B','!','!',O_BSR|O_UNSZ,"bsr",1,{PCREL16,0},3,       {{0x1e,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
 {148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,RN},2,       {{0xa8,0xf8,RN },{0x48,0xf8,RS }}},
 {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNDEC},2,  {{0xb8,0xf8,RN },{0xc0,0xf0,IMM4 }}},
 {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RN},2,     {{0xa8,0xf8,RN },{0xc0,0xf0,IMM4 }}},
@@ -1217,13 +1217,13 @@ h8500_opcode_info h8500_table[]
 {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNINC},2,  {{0xc8,0xf8,RN },{0xc0,0xf0,IMM4 }}},
 {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNIND},2,  {{0xd8,0xf8,RN },{0xc0,0xf0,IMM4 }}},
 {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNIND_D8},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xc0,0xf0,IMM4 }}},
-{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,ABS8},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}},
-{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,ABS8},3,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}},
+{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,ABS8},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}},
+{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,ABS8},3,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}},
 {148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x48,0xf8,RS }}},
-{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,ABS16},4,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}},
-{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,ABS16},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x48,0xf8,RS }}},
-{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x48,0xf8,RS }}},
-{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNIND_D16},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}},
+{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,ABS16},4,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}},
+{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,ABS16},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x48,0xf8,RS }}},
+{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x48,0xf8,RS }}},
+{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNIND_D16},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}},
 {149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RN},2,       {{0xa0,0xf8,RN },{0x48,0xf8,RS }}},
 {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNINC},2,  {{0xc0,0xf8,RN },{0xc0,0xf0,IMM4 }}},
 {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RN},2,     {{0xa0,0xf8,RN },{0xc0,0xf0,IMM4 }}},
@@ -1232,14 +1232,14 @@ h8500_opcode_info h8500_table[]
 {149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RNDEC},2,    {{0xb0,0xf8,RN },{0x48,0xf8,RS }}},
 {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNDEC},2,  {{0xb0,0xf8,RN },{0xc0,0xf0,IMM4 }}},
 {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNIND},2,  {{0xd0,0xf8,RN },{0xc0,0xf0,IMM4 }}},
-{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,ABS8},3,   {{0x05,0xff, },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}},
+{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,ABS8},3,   {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}},
 {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNIND_D8},3,       {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xc0,0xf0,IMM4 }}},
 {149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x48,0xf8,RS }}},
-{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,ABS8},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}},
-{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RNIND_D16},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x48,0xf8,RS }}},
-{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,ABS16},4,  {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}},
-{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,ABS16},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x48,0xf8,RS }}},
-{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNIND_D16},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}},
+{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,ABS8},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}},
+{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RNIND_D16},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x48,0xf8,RS }}},
+{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,ABS16},4,  {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}},
+{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,ABS16},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x48,0xf8,RS }}},
+{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNIND_D16},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}},
 {150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x48,0xf8,RS }}},
 {150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RN},2,       {{0xa8,0xf8,RN },{0xc0,0xf0,IMM4 }}},
 {150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNIND},2,    {{0xd8,0xf8,RN },{0xc0,0xf0,IMM4 }}},
@@ -1250,25 +1250,25 @@ h8500_opcode_info h8500_table[]
 {150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNDEC},2,    {{0xb8,0xf8,RN },{0xc0,0xf0,IMM4 }}},
 {150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,RNIND_D8},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x48,0xf8,RS }}},
 {150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xc0,0xf0,IMM4 }}},
-{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,ABS8},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}},
-{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,ABS8},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}},
-{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,ABS16},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}},
-{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x48,0xf8,RS }}},
-{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,ABS16},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x48,0xf8,RS }}},
-{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}},
-{151,'-','B','!','!',O_BRN|O_WORD,"brn.w",1,{PCREL16,0},3,     {{0x31,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{152,'-','B','!','!',O_BRN|O_BYTE,"brn.b",1,{PCREL8,0},2,      {{0x21,0xff, },{0x00,0x00,PCREL8 }}},
-{153,'-','B','!','!',O_BRN|O_UNSZ,"brn",1,{PCREL8,0},2,        {{0x21,0xff, },{0x00,0x00,PCREL8 }}},
-{153,'-','B','!','!',O_BRN|O_UNSZ,"brn",1,{PCREL16,0},3,       {{0x31,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{154,'-','B','!','!',O_BRA|O_WORD,"bra.w",1,{PCREL16,0},3,     {{0x30,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{155,'-','B','!','!',O_BRA|O_BYTE,"bra.b",1,{PCREL8,0},2,      {{0x20,0xff, },{0x00,0x00,PCREL8 }}},
-{156,'-','B','!','!',O_BRA|O_UNSZ,"bra",1,{PCREL8,0},2,        {{0x20,0xff, },{0x00,0x00,PCREL8 }}},
-{156,'-','B','!','!',O_BRA|O_UNSZ,"bra",1,{PCREL16,0},3,       {{0x30,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{157,'-','!','!','!',O_BPT|O_UNSZ,"bpt",0,{0,0},1,     {{0x0b,0xff, }}},
-{158,'-','B','!','!',O_BPL|O_WORD,"bpl.w",1,{PCREL16,0},3,     {{0x3a,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{159,'-','B','!','!',O_BPL|O_BYTE,"bpl.b",1,{PCREL8,0},2,      {{0x2a,0xff, },{0x00,0x00,PCREL8 }}},
-{160,'-','B','!','!',O_BPL|O_UNSZ,"bpl",1,{PCREL8,0},2,        {{0x2a,0xff, },{0x00,0x00,PCREL8 }}},
-{160,'-','B','!','!',O_BPL|O_UNSZ,"bpl",1,{PCREL16,0},3,       {{0x3a,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
+{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,ABS8},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}},
+{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,ABS8},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}},
+{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,ABS16},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}},
+{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x48,0xf8,RS }}},
+{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,ABS16},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x48,0xf8,RS }}},
+{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}},
+{151,'-','B','!','!',O_BRN|O_WORD,"brn.w",1,{PCREL16,0},3,     {{0x31,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{152,'-','B','!','!',O_BRN|O_BYTE,"brn.b",1,{PCREL8,0},2,      {{0x21,0xff,0 },{0x00,0x00,PCREL8 }}},
+{153,'-','B','!','!',O_BRN|O_UNSZ,"brn",1,{PCREL8,0},2,        {{0x21,0xff,0 },{0x00,0x00,PCREL8 }}},
+{153,'-','B','!','!',O_BRN|O_UNSZ,"brn",1,{PCREL16,0},3,       {{0x31,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{154,'-','B','!','!',O_BRA|O_WORD,"bra.w",1,{PCREL16,0},3,     {{0x30,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{155,'-','B','!','!',O_BRA|O_BYTE,"bra.b",1,{PCREL8,0},2,      {{0x20,0xff,0 },{0x00,0x00,PCREL8 }}},
+{156,'-','B','!','!',O_BRA|O_UNSZ,"bra",1,{PCREL8,0},2,        {{0x20,0xff,0 },{0x00,0x00,PCREL8 }}},
+{156,'-','B','!','!',O_BRA|O_UNSZ,"bra",1,{PCREL16,0},3,       {{0x30,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{157,'-','!','!','!',O_BPT|O_UNSZ,"bpt",0,{0,0},1,     {{0x0b,0xff,0 }}},
+{158,'-','B','!','!',O_BPL|O_WORD,"bpl.w",1,{PCREL16,0},3,     {{0x3a,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{159,'-','B','!','!',O_BPL|O_BYTE,"bpl.b",1,{PCREL8,0},2,      {{0x2a,0xff,0 },{0x00,0x00,PCREL8 }}},
+{160,'-','B','!','!',O_BPL|O_UNSZ,"bpl",1,{PCREL8,0},2,        {{0x2a,0xff,0 },{0x00,0x00,PCREL8 }}},
+{160,'-','B','!','!',O_BPL|O_UNSZ,"bpl",1,{PCREL16,0},3,       {{0x3a,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
 {161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RN},2,       {{0xa8,0xf8,RN },{0x68,0xf8,RS }}},
 {161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RNINC},2,    {{0xc8,0xf8,RN },{0x68,0xf8,RS }}},
 {161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RN},2,     {{0xa8,0xf8,RN },{0xe0,0xf0,IMM4 }}},
@@ -1279,12 +1279,12 @@ h8500_opcode_info h8500_table[]
 {161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RNINC},2,  {{0xc8,0xf8,RN },{0xe0,0xf0,IMM4 }}},
 {161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RNIND_D8},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xe0,0xf0,IMM4 }}},
 {161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x68,0xf8,RS }}},
-{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,ABS8},3,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}},
-{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,ABS8},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}},
-{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,ABS16},4,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}},
-{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x68,0xf8,RS }}},
-{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,ABS16},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x68,0xf8,RS }}},
-{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RNIND_D16},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}},
+{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,ABS8},3,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}},
+{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,ABS8},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}},
+{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,ABS16},4,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}},
+{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x68,0xf8,RS }}},
+{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,ABS16},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x68,0xf8,RS }}},
+{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RNIND_D16},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}},
 {162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RN},2,       {{0xa0,0xf8,RN },{0x68,0xf8,RS }}},
 {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNIND},2,  {{0xd0,0xf8,RN },{0xe0,0xf0,IMM4 }}},
 {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RN},2,     {{0xa0,0xf8,RN },{0xe0,0xf0,IMM4 }}},
@@ -1293,14 +1293,14 @@ h8500_opcode_info h8500_table[]
 {162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RNDEC},2,    {{0xb0,0xf8,RN },{0x68,0xf8,RS }}},
 {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNDEC},2,  {{0xb0,0xf8,RN },{0xe0,0xf0,IMM4 }}},
 {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNINC},2,  {{0xc0,0xf8,RN },{0xe0,0xf0,IMM4 }}},
-{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,ABS8},3,   {{0x05,0xff, },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}},
+{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,ABS8},3,   {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}},
 {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNIND_D8},3,       {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xe0,0xf0,IMM4 }}},
 {162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x68,0xf8,RS }}},
-{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,ABS8},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}},
-{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RNIND_D16},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x68,0xf8,RS }}},
-{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,ABS16},4,  {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}},
-{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,ABS16},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x68,0xf8,RS }}},
-{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNIND_D16},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}},
+{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,ABS8},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}},
+{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RNIND_D16},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x68,0xf8,RS }}},
+{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,ABS16},4,  {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}},
+{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,ABS16},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x68,0xf8,RS }}},
+{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNIND_D16},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}},
 {163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x68,0xf8,RS }}},
 {163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNIND},2,      {{0xd8,0xf8,RN },{0x68,0xf8,RS }}},
 {163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNIND},2,    {{0xd8,0xf8,RN },{0xe0,0xf0,IMM4 }}},
@@ -1309,66 +1309,66 @@ h8500_opcode_info h8500_table[]
 {163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNDEC},2,      {{0xb8,0xf8,RN },{0x68,0xf8,RS }}},
 {163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNDEC},2,    {{0xb8,0xf8,RN },{0xe0,0xf0,IMM4 }}},
 {163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNINC},2,    {{0xc8,0xf8,RN },{0xe0,0xf0,IMM4 }}},
-{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,ABS8},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}},
-{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,ABS8},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}},
+{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,ABS8},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}},
+{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,ABS8},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}},
 {163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNIND_D8},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x68,0xf8,RS }}},
 {163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xe0,0xf0,IMM4 }}},
-{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x68,0xf8,RS }}},
-{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,ABS16},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}},
-{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,ABS16},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x68,0xf8,RS }}},
-{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}},
-{164,'-','B','!','!',O_BNE|O_WORD,"bne.w",1,{PCREL16,0},3,     {{0x36,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{165,'-','B','!','!',O_BNE|O_BYTE,"bne.b",1,{PCREL8,0},2,      {{0x26,0xff, },{0x00,0x00,PCREL8 }}},
-{166,'-','B','!','!',O_BNE|O_UNSZ,"bne",1,{PCREL8,0},2,        {{0x26,0xff, },{0x00,0x00,PCREL8 }}},
-{166,'-','B','!','!',O_BNE|O_UNSZ,"bne",1,{PCREL16,0},3,       {{0x36,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{167,'-','B','!','!',O_BMI|O_WORD,"bmi.w",1,{PCREL16,0},3,     {{0x3b,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{168,'-','B','!','!',O_BMI|O_BYTE,"bmi.b",1,{PCREL8,0},2,      {{0x2b,0xff, },{0x00,0x00,PCREL8 }}},
-{169,'-','B','!','!',O_BMI|O_UNSZ,"bmi",1,{PCREL8,0},2,        {{0x2b,0xff, },{0x00,0x00,PCREL8 }}},
-{169,'-','B','!','!',O_BMI|O_UNSZ,"bmi",1,{PCREL16,0},3,       {{0x3b,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{170,'-','B','!','!',O_BLT|O_WORD,"blt.w",1,{PCREL16,0},3,     {{0x3d,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{171,'-','B','!','!',O_BLT|O_BYTE,"blt.b",1,{PCREL8,0},2,      {{0x2d,0xff, },{0x00,0x00,PCREL8 }}},
-{172,'-','B','!','!',O_BLT|O_UNSZ,"blt",1,{PCREL8,0},2,        {{0x2d,0xff, },{0x00,0x00,PCREL8 }}},
-{172,'-','B','!','!',O_BLT|O_UNSZ,"blt",1,{PCREL16,0},3,       {{0x3d,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{173,'-','B','!','!',O_BLS|O_WORD,"bls.w",1,{PCREL16,0},3,     {{0x33,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{174,'-','B','!','!',O_BLS|O_BYTE,"bls.b",1,{PCREL8,0},2,      {{0x23,0xff, },{0x00,0x00,PCREL8 }}},
-{175,'-','B','!','!',O_BLS|O_UNSZ,"bls",1,{PCREL8,0},2,        {{0x23,0xff, },{0x00,0x00,PCREL8 }}},
-{175,'-','B','!','!',O_BLS|O_UNSZ,"bls",1,{PCREL16,0},3,       {{0x33,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{176,'-','B','!','!',O_BLO|O_WORD,"blo.w",1,{PCREL16,0},3,     {{0x35,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{177,'-','B','!','!',O_BLO|O_BYTE,"blo.b",1,{PCREL8,0},2,      {{0x25,0xff, },{0x00,0x00,PCREL8 }}},
-{178,'-','B','!','!',O_BLO|O_UNSZ,"blo",1,{PCREL8,0},2,        {{0x25,0xff, },{0x00,0x00,PCREL8 }}},
-{178,'-','B','!','!',O_BLO|O_UNSZ,"blo",1,{PCREL16,0},3,       {{0x35,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{179,'-','B','!','!',O_BLE|O_WORD,"ble.w",1,{PCREL16,0},3,     {{0x3f,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{180,'-','B','!','!',O_BLE|O_BYTE,"ble.b",1,{PCREL8,0},2,      {{0x2f,0xff, },{0x00,0x00,PCREL8 }}},
-{181,'-','B','!','!',O_BLE|O_UNSZ,"ble",1,{PCREL8,0},2,        {{0x2f,0xff, },{0x00,0x00,PCREL8 }}},
-{181,'-','B','!','!',O_BLE|O_UNSZ,"ble",1,{PCREL16,0},3,       {{0x3f,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{182,'-','B','!','!',O_BHS|O_WORD,"bhs.w",1,{PCREL16,0},3,     {{0x34,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{183,'-','B','!','!',O_BHS|O_BYTE,"bhs.b",1,{PCREL8,0},2,      {{0x24,0xff, },{0x00,0x00,PCREL8 }}},
-{184,'-','B','!','!',O_BHS|O_UNSZ,"bhs",1,{PCREL8,0},2,        {{0x24,0xff, },{0x00,0x00,PCREL8 }}},
-{184,'-','B','!','!',O_BHS|O_UNSZ,"bhs",1,{PCREL16,0},3,       {{0x34,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{185,'-','B','!','!',O_BHI|O_WORD,"bhi.w",1,{PCREL16,0},3,     {{0x32,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{186,'-','B','!','!',O_BHI|O_BYTE,"bhi.b",1,{PCREL8,0},2,      {{0x22,0xff, },{0x00,0x00,PCREL8 }}},
-{187,'-','B','!','!',O_BHI|O_UNSZ,"bhi",1,{PCREL8,0},2,        {{0x22,0xff, },{0x00,0x00,PCREL8 }}},
-{187,'-','B','!','!',O_BHI|O_UNSZ,"bhi",1,{PCREL16,0},3,       {{0x32,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{188,'-','B','!','!',O_BGT|O_WORD,"bgt.w",1,{PCREL16,0},3,     {{0x3e,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{189,'-','B','!','!',O_BGT|O_BYTE,"bgt.b",1,{PCREL8,0},2,      {{0x2e,0xff, },{0x00,0x00,PCREL8 }}},
-{190,'-','B','!','!',O_BGT|O_UNSZ,"bgt",1,{PCREL8,0},2,        {{0x2e,0xff, },{0x00,0x00,PCREL8 }}},
-{190,'-','B','!','!',O_BGT|O_UNSZ,"bgt",1,{PCREL16,0},3,       {{0x3e,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{191,'-','B','!','!',O_BGE|O_WORD,"bge.w",1,{PCREL16,0},3,     {{0x3c,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{192,'-','B','!','!',O_BGE|O_BYTE,"bge.b",1,{PCREL8,0},2,      {{0x2c,0xff, },{0x00,0x00,PCREL8 }}},
-{193,'-','B','!','!',O_BGE|O_UNSZ,"bge",1,{PCREL8,0},2,        {{0x2c,0xff, },{0x00,0x00,PCREL8 }}},
-{193,'-','B','!','!',O_BGE|O_UNSZ,"bge",1,{PCREL16,0},3,       {{0x3c,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{194,'-','B','!','!',O_BF|O_WORD,"bf.w",1,{PCREL16,0},3,       {{0x31,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{195,'-','B','!','!',O_BF|O_BYTE,"bf.b",1,{PCREL8,0},2,        {{0x21,0xff, },{0x00,0x00,PCREL8 }}},
-{196,'-','B','!','!',O_BF|O_UNSZ,"bf",1,{PCREL8,0},2,  {{0x21,0xff, },{0x00,0x00,PCREL8 }}},
-{196,'-','B','!','!',O_BF|O_UNSZ,"bf",1,{PCREL16,0},3, {{0x31,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{197,'-','B','!','!',O_BEQ|O_WORD,"beq.w",1,{PCREL16,0},3,     {{0x37,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{198,'-','B','!','!',O_BEQ|O_BYTE,"beq.b",1,{PCREL8,0},2,      {{0x27,0xff, },{0x00,0x00,PCREL8 }}},
-{199,'-','B','!','!',O_BEQ|O_UNSZ,"beq",1,{PCREL8,0},2,        {{0x27,0xff, },{0x00,0x00,PCREL8 }}},
-{199,'-','B','!','!',O_BEQ|O_UNSZ,"beq",1,{PCREL16,0},3,       {{0x37,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{200,'-','B','!','!',O_BCS|O_WORD,"bcs.w",1,{PCREL16,0},3,     {{0x35,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{201,'-','B','!','!',O_BCS|O_BYTE,"bcs.b",1,{PCREL8,0},2,      {{0x25,0xff, },{0x00,0x00,PCREL8 }}},
-{202,'-','B','!','!',O_BCS|O_UNSZ,"bcs",1,{PCREL8,0},2,        {{0x25,0xff, },{0x00,0x00,PCREL8 }}},
-{202,'-','B','!','!',O_BCS|O_UNSZ,"bcs",1,{PCREL16,0},3,       {{0x35,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
+{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x68,0xf8,RS }}},
+{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,ABS16},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}},
+{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,ABS16},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x68,0xf8,RS }}},
+{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}},
+{164,'-','B','!','!',O_BNE|O_WORD,"bne.w",1,{PCREL16,0},3,     {{0x36,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{165,'-','B','!','!',O_BNE|O_BYTE,"bne.b",1,{PCREL8,0},2,      {{0x26,0xff,0 },{0x00,0x00,PCREL8 }}},
+{166,'-','B','!','!',O_BNE|O_UNSZ,"bne",1,{PCREL8,0},2,        {{0x26,0xff,0 },{0x00,0x00,PCREL8 }}},
+{166,'-','B','!','!',O_BNE|O_UNSZ,"bne",1,{PCREL16,0},3,       {{0x36,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{167,'-','B','!','!',O_BMI|O_WORD,"bmi.w",1,{PCREL16,0},3,     {{0x3b,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{168,'-','B','!','!',O_BMI|O_BYTE,"bmi.b",1,{PCREL8,0},2,      {{0x2b,0xff,0 },{0x00,0x00,PCREL8 }}},
+{169,'-','B','!','!',O_BMI|O_UNSZ,"bmi",1,{PCREL8,0},2,        {{0x2b,0xff,0 },{0x00,0x00,PCREL8 }}},
+{169,'-','B','!','!',O_BMI|O_UNSZ,"bmi",1,{PCREL16,0},3,       {{0x3b,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{170,'-','B','!','!',O_BLT|O_WORD,"blt.w",1,{PCREL16,0},3,     {{0x3d,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{171,'-','B','!','!',O_BLT|O_BYTE,"blt.b",1,{PCREL8,0},2,      {{0x2d,0xff,0 },{0x00,0x00,PCREL8 }}},
+{172,'-','B','!','!',O_BLT|O_UNSZ,"blt",1,{PCREL8,0},2,        {{0x2d,0xff,0 },{0x00,0x00,PCREL8 }}},
+{172,'-','B','!','!',O_BLT|O_UNSZ,"blt",1,{PCREL16,0},3,       {{0x3d,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{173,'-','B','!','!',O_BLS|O_WORD,"bls.w",1,{PCREL16,0},3,     {{0x33,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{174,'-','B','!','!',O_BLS|O_BYTE,"bls.b",1,{PCREL8,0},2,      {{0x23,0xff,0 },{0x00,0x00,PCREL8 }}},
+{175,'-','B','!','!',O_BLS|O_UNSZ,"bls",1,{PCREL8,0},2,        {{0x23,0xff,0 },{0x00,0x00,PCREL8 }}},
+{175,'-','B','!','!',O_BLS|O_UNSZ,"bls",1,{PCREL16,0},3,       {{0x33,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{176,'-','B','!','!',O_BLO|O_WORD,"blo.w",1,{PCREL16,0},3,     {{0x35,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{177,'-','B','!','!',O_BLO|O_BYTE,"blo.b",1,{PCREL8,0},2,      {{0x25,0xff,0 },{0x00,0x00,PCREL8 }}},
+{178,'-','B','!','!',O_BLO|O_UNSZ,"blo",1,{PCREL8,0},2,        {{0x25,0xff,0 },{0x00,0x00,PCREL8 }}},
+{178,'-','B','!','!',O_BLO|O_UNSZ,"blo",1,{PCREL16,0},3,       {{0x35,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{179,'-','B','!','!',O_BLE|O_WORD,"ble.w",1,{PCREL16,0},3,     {{0x3f,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{180,'-','B','!','!',O_BLE|O_BYTE,"ble.b",1,{PCREL8,0},2,      {{0x2f,0xff,0 },{0x00,0x00,PCREL8 }}},
+{181,'-','B','!','!',O_BLE|O_UNSZ,"ble",1,{PCREL8,0},2,        {{0x2f,0xff,0 },{0x00,0x00,PCREL8 }}},
+{181,'-','B','!','!',O_BLE|O_UNSZ,"ble",1,{PCREL16,0},3,       {{0x3f,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{182,'-','B','!','!',O_BHS|O_WORD,"bhs.w",1,{PCREL16,0},3,     {{0x34,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{183,'-','B','!','!',O_BHS|O_BYTE,"bhs.b",1,{PCREL8,0},2,      {{0x24,0xff,0 },{0x00,0x00,PCREL8 }}},
+{184,'-','B','!','!',O_BHS|O_UNSZ,"bhs",1,{PCREL8,0},2,        {{0x24,0xff,0 },{0x00,0x00,PCREL8 }}},
+{184,'-','B','!','!',O_BHS|O_UNSZ,"bhs",1,{PCREL16,0},3,       {{0x34,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{185,'-','B','!','!',O_BHI|O_WORD,"bhi.w",1,{PCREL16,0},3,     {{0x32,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{186,'-','B','!','!',O_BHI|O_BYTE,"bhi.b",1,{PCREL8,0},2,      {{0x22,0xff,0 },{0x00,0x00,PCREL8 }}},
+{187,'-','B','!','!',O_BHI|O_UNSZ,"bhi",1,{PCREL8,0},2,        {{0x22,0xff,0 },{0x00,0x00,PCREL8 }}},
+{187,'-','B','!','!',O_BHI|O_UNSZ,"bhi",1,{PCREL16,0},3,       {{0x32,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{188,'-','B','!','!',O_BGT|O_WORD,"bgt.w",1,{PCREL16,0},3,     {{0x3e,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{189,'-','B','!','!',O_BGT|O_BYTE,"bgt.b",1,{PCREL8,0},2,      {{0x2e,0xff,0 },{0x00,0x00,PCREL8 }}},
+{190,'-','B','!','!',O_BGT|O_UNSZ,"bgt",1,{PCREL8,0},2,        {{0x2e,0xff,0 },{0x00,0x00,PCREL8 }}},
+{190,'-','B','!','!',O_BGT|O_UNSZ,"bgt",1,{PCREL16,0},3,       {{0x3e,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{191,'-','B','!','!',O_BGE|O_WORD,"bge.w",1,{PCREL16,0},3,     {{0x3c,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{192,'-','B','!','!',O_BGE|O_BYTE,"bge.b",1,{PCREL8,0},2,      {{0x2c,0xff,0 },{0x00,0x00,PCREL8 }}},
+{193,'-','B','!','!',O_BGE|O_UNSZ,"bge",1,{PCREL8,0},2,        {{0x2c,0xff,0 },{0x00,0x00,PCREL8 }}},
+{193,'-','B','!','!',O_BGE|O_UNSZ,"bge",1,{PCREL16,0},3,       {{0x3c,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{194,'-','B','!','!',O_BF|O_WORD,"bf.w",1,{PCREL16,0},3,       {{0x31,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{195,'-','B','!','!',O_BF|O_BYTE,"bf.b",1,{PCREL8,0},2,        {{0x21,0xff,0 },{0x00,0x00,PCREL8 }}},
+{196,'-','B','!','!',O_BF|O_UNSZ,"bf",1,{PCREL8,0},2,  {{0x21,0xff,0 },{0x00,0x00,PCREL8 }}},
+{196,'-','B','!','!',O_BF|O_UNSZ,"bf",1,{PCREL16,0},3, {{0x31,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{197,'-','B','!','!',O_BEQ|O_WORD,"beq.w",1,{PCREL16,0},3,     {{0x37,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{198,'-','B','!','!',O_BEQ|O_BYTE,"beq.b",1,{PCREL8,0},2,      {{0x27,0xff,0 },{0x00,0x00,PCREL8 }}},
+{199,'-','B','!','!',O_BEQ|O_UNSZ,"beq",1,{PCREL8,0},2,        {{0x27,0xff,0 },{0x00,0x00,PCREL8 }}},
+{199,'-','B','!','!',O_BEQ|O_UNSZ,"beq",1,{PCREL16,0},3,       {{0x37,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{200,'-','B','!','!',O_BCS|O_WORD,"bcs.w",1,{PCREL16,0},3,     {{0x35,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{201,'-','B','!','!',O_BCS|O_BYTE,"bcs.b",1,{PCREL8,0},2,      {{0x25,0xff,0 },{0x00,0x00,PCREL8 }}},
+{202,'-','B','!','!',O_BCS|O_UNSZ,"bcs",1,{PCREL8,0},2,        {{0x25,0xff,0 },{0x00,0x00,PCREL8 }}},
+{202,'-','B','!','!',O_BCS|O_UNSZ,"bcs",1,{PCREL16,0},3,       {{0x35,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
 {203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RN},2,       {{0xa8,0xf8,RN },{0x58,0xf8,RS }}},
 {203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RNDEC},2,    {{0xb8,0xf8,RN },{0x58,0xf8,RS }}},
 {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNDEC},2,  {{0xb8,0xf8,RN },{0xd0,0xf0,IMM4 }}},
@@ -1377,14 +1377,14 @@ h8500_opcode_info h8500_table[]
 {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNINC},2,  {{0xc8,0xf8,RN },{0xd0,0xf0,IMM4 }}},
 {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RN},2,     {{0xa8,0xf8,RN },{0xd0,0xf0,IMM4 }}},
 {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNIND},2,  {{0xd8,0xf8,RN },{0xd0,0xf0,IMM4 }}},
-{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,ABS8},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}},
+{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,ABS8},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}},
 {203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x58,0xf8,RS }}},
-{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,ABS8},3,   {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}},
+{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,ABS8},3,   {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}},
 {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNIND_D8},3,       {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xd0,0xf0,IMM4 }}},
-{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x58,0xf8,RS }}},
-{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,ABS16},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x58,0xf8,RS }}},
-{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,ABS16},4,  {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}},
-{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNIND_D16},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}},
+{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x58,0xf8,RS }}},
+{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,ABS16},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x58,0xf8,RS }}},
+{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,ABS16},4,  {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}},
+{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNIND_D16},4,      {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}},
 {204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,RN},2,       {{0xa0,0xf8,RN },{0x58,0xf8,RS }}},
 {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RN},2,     {{0xa0,0xf8,RN },{0xd0,0xf0,IMM4 }}},
 {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNIND},2,  {{0xd0,0xf8,RN },{0xd0,0xf0,IMM4 }}},
@@ -1394,13 +1394,13 @@ h8500_opcode_info h8500_table[]
 {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNINC},2,  {{0xc0,0xf8,RN },{0xd0,0xf0,IMM4 }}},
 {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNDEC},2,  {{0xb0,0xf8,RN },{0xd0,0xf0,IMM4 }}},
 {204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x58,0xf8,RS }}},
-{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,ABS8},3,   {{0x05,0xff, },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}},
-{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,ABS8},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}},
+{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,ABS8},3,   {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}},
+{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,ABS8},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}},
 {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNIND_D8},3,       {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xd0,0xf0,IMM4 }}},
-{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,ABS16},4,  {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}},
-{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,RNIND_D16},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x58,0xf8,RS }}},
-{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,ABS16},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x58,0xf8,RS }}},
-{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNIND_D16},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}},
+{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,ABS16},4,  {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}},
+{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,RNIND_D16},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x58,0xf8,RS }}},
+{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,ABS16},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x58,0xf8,RS }}},
+{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNIND_D16},4,      {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}},
 {205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x58,0xf8,RS }}},
 {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNDEC},2,    {{0xb8,0xf8,RN },{0xd0,0xf0,IMM4 }}},
 {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNINC},2,    {{0xc8,0xf8,RN },{0xd0,0xf0,IMM4 }}},
@@ -1410,153 +1410,153 @@ h8500_opcode_info h8500_table[]
 {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNIND},2,    {{0xd8,0xf8,RN },{0xd0,0xf0,IMM4 }}},
 {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RN},2,       {{0xa8,0xf8,RN },{0xd0,0xf0,IMM4 }}},
 {205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,RNIND_D8},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x58,0xf8,RS }}},
-{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,ABS8},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}},
-{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,ABS8},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}},
+{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,ABS8},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}},
+{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,ABS8},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}},
 {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xd0,0xf0,IMM4 }}},
-{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,ABS16},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}},
-{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x58,0xf8,RS }}},
-{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,ABS16},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x58,0xf8,RS }}},
-{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}},
-{206,'-','B','!','!',O_BCC|O_WORD,"bcc.w",1,{PCREL16,0},3,     {{0x34,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{207,'-','B','!','!',O_BCC|O_BYTE,"bcc.b",1,{PCREL8,0},2,      {{0x24,0xff, },{0x00,0x00,PCREL8 }}},
-{208,'-','B','!','!',O_BCC|O_UNSZ,"bcc",1,{PCREL8,0},2,        {{0x24,0xff, },{0x00,0x00,PCREL8 }}},
-{208,'-','B','!','!',O_BCC|O_UNSZ,"bcc",1,{PCREL16,0},3,       {{0x34,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}},
-{209,'s','I','S','S',O_ANDC|O_WORD,"andc.w",2,{IMM16,CRW},4,   {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x58,0xf8,CRW }}},
-{210,'s','I','S','S',O_ANDC|O_BYTE,"andc.b",2,{IMM8,CRB},3,    {{0x04,0xff, },{0x00,0x00,IMM8 },{0x58,0xf8,CRB }}},
-{211,'s','I','S','S',O_ANDC|O_UNSZ,"andc",2,{IMM8,CRB},3,      {{0x04,0xff, },{0x00,0x00,IMM8 },{0x58,0xf8,CRB }}},
-{211,'s','I','S','S',O_ANDC|O_UNSZ,"andc",2,{IMM16,CRW},4,     {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x58,0xf8,CRW }}},
+{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,ABS16},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}},
+{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,RNIND_D16},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x58,0xf8,RS }}},
+{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,ABS16},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x58,0xf8,RS }}},
+{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNIND_D16},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}},
+{206,'-','B','!','!',O_BCC|O_WORD,"bcc.w",1,{PCREL16,0},3,     {{0x34,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{207,'-','B','!','!',O_BCC|O_BYTE,"bcc.b",1,{PCREL8,0},2,      {{0x24,0xff,0 },{0x00,0x00,PCREL8 }}},
+{208,'-','B','!','!',O_BCC|O_UNSZ,"bcc",1,{PCREL8,0},2,        {{0x24,0xff,0 },{0x00,0x00,PCREL8 }}},
+{208,'-','B','!','!',O_BCC|O_UNSZ,"bcc",1,{PCREL16,0},3,       {{0x34,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}},
+{209,'s','I','S','S',O_ANDC|O_WORD,"andc.w",2,{IMM16,CRW},4,   {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x58,0xf8,CRW }}},
+{210,'s','I','S','S',O_ANDC|O_BYTE,"andc.b",2,{IMM8,CRB},3,    {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x58,0xf8,CRB }}},
+{211,'s','I','S','S',O_ANDC|O_UNSZ,"andc",2,{IMM8,CRB},3,      {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x58,0xf8,CRB }}},
+{211,'s','I','S','S',O_ANDC|O_UNSZ,"andc",2,{IMM16,CRW},4,     {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x58,0xf8,CRW }}},
 {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x50,0xf8,RD }}},
 {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNIND,RD},2,      {{0xd8,0xf8,RN },{0x50,0xf8,RD }}},
 {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNDEC,RD},2,      {{0xb8,0xf8,RN },{0x50,0xf8,RD }}},
 {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNINC,RD},2,      {{0xc8,0xf8,RN },{0x50,0xf8,RD }}},
-{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{ABS8,RD},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}},
+{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{ABS8,RD},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}},
 {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNIND_D8,RD},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x50,0xf8,RD }}},
-{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{ABS16,RD},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x50,0xf8,RD }}},
-{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{IMM16,RD},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x50,0xf8,RD }}},
-{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x50,0xf8,RD }}},
+{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{ABS16,RD},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x50,0xf8,RD }}},
+{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{IMM16,RD},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x50,0xf8,RD }}},
+{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x50,0xf8,RD }}},
 {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x50,0xf8,RD }}},
 {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNDEC,RD},2,      {{0xb0,0xf8,RN },{0x50,0xf8,RD }}},
 {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNINC,RD},2,      {{0xc0,0xf8,RN },{0x50,0xf8,RD }}},
 {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNIND,RD},2,      {{0xd0,0xf8,RN },{0x50,0xf8,RD }}},
-{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{ABS8,RD},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}},
-{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{IMM8,RD},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x50,0xf8,RD }}},
+{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{ABS8,RD},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}},
+{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{IMM8,RD},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x50,0xf8,RD }}},
 {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNIND_D8,RD},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x50,0xf8,RD }}},
-{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{ABS16,RD},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x50,0xf8,RD }}},
-{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNIND_D16,RD},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x50,0xf8,RD }}},
+{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{ABS16,RD},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x50,0xf8,RD }}},
+{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNIND_D16,RD},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x50,0xf8,RD }}},
 {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RN,RD},2,   {{0xa8,0xf8,RN },{0x50,0xf8,RD }}},
 {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNDEC,RD},2,        {{0xb8,0xf8,RN },{0x50,0xf8,RD }}},
 {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNINC,RD},2,        {{0xc8,0xf8,RN },{0x50,0xf8,RD }}},
 {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNIND,RD},2,        {{0xd8,0xf8,RN },{0x50,0xf8,RD }}},
-{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}},
+{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}},
 {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNIND_D8,RD},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x50,0xf8,RD }}},
-{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{IMM16,RD},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x50,0xf8,RD }}},
-{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{ABS16,RD},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x50,0xf8,RD }}},
-{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x50,0xf8,RD }}},
+{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{IMM16,RD},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x50,0xf8,RD }}},
+{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{ABS16,RD},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x50,0xf8,RD }}},
+{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x50,0xf8,RD }}},
 {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RN,RD},2,       {{0xa8,0xf8,RN },{0xa0,0xf8,RD }}},
 {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNIND,RD},2,    {{0xd8,0xf8,RN },{0xa0,0xf8,RD }}},
 {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNDEC,RD},2,    {{0xb8,0xf8,RN },{0xa0,0xf8,RD }}},
 {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNINC,RD},2,    {{0xc8,0xf8,RN },{0xa0,0xf8,RD }}},
-{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{ABS8,RD},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}},
+{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{ABS8,RD},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}},
 {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xa0,0xf8,RD }}},
-{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{ABS16,RD},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa0,0xf8,RD }}},
-{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{IMM16,RD},4,    {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xa0,0xf8,RD }}},
-{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa0,0xf8,RD }}},
+{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{ABS16,RD},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}},
+{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{IMM16,RD},4,    {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}},
+{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}},
 {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RN,RD},2,       {{0xa0,0xf8,RN },{0xa0,0xf8,RD }}},
 {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNIND,RD},2,    {{0xd0,0xf8,RN },{0xa0,0xf8,RD }}},
 {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNDEC,RD},2,    {{0xb0,0xf8,RN },{0xa0,0xf8,RD }}},
 {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNINC,RD},2,    {{0xc0,0xf8,RN },{0xa0,0xf8,RD }}},
-{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{IMM8,RD},3,     {{0x04,0xff, },{0x00,0x00,IMM8 },{0xa0,0xf8,RD }}},
-{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{ABS8,RD},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}},
+{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{IMM8,RD},3,     {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0xa0,0xf8,RD }}},
+{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{ABS8,RD},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}},
 {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xa0,0xf8,RD }}},
-{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{ABS16,RD},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa0,0xf8,RD }}},
-{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNIND_D16,RD},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa0,0xf8,RD }}},
+{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{ABS16,RD},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}},
+{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNIND_D16,RD},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}},
 {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RN,RD},2, {{0xa8,0xf8,RN },{0xa0,0xf8,RD }}},
 {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNINC,RD},2,      {{0xc8,0xf8,RN },{0xa0,0xf8,RD }}},
 {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNIND,RD},2,      {{0xd8,0xf8,RN },{0xa0,0xf8,RD }}},
 {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNDEC,RD},2,      {{0xb8,0xf8,RN },{0xa0,0xf8,RD }}},
-{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{ABS8,RD},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}},
+{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{ABS8,RD},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}},
 {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNIND_D8,RD},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xa0,0xf8,RD }}},
-{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{ABS16,RD},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa0,0xf8,RD }}},
-{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{IMM16,RD},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xa0,0xf8,RD }}},
-{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa0,0xf8,RD }}},
+{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{ABS16,RD},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}},
+{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{IMM16,RD},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}},
+{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}},
 {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RN,RD},2,       {{0xa8,0xf8,RN },{0x28,0xf8,RD }}},
 {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNIND,RD},2,    {{0xd8,0xf8,RN },{0x28,0xf8,RD }}},
 {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNDEC,RD},2,    {{0xb8,0xf8,RN },{0x28,0xf8,RD }}},
 {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNINC,RD},2,    {{0xc8,0xf8,RN },{0x28,0xf8,RD }}},
-{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{ABS8,RD},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}},
+{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{ABS8,RD},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}},
 {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x28,0xf8,RD }}},
-{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{ABS16,RD},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x28,0xf8,RD }}},
-{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{IMM16,RD},4,    {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x28,0xf8,RD }}},
-{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x28,0xf8,RD }}},
+{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{ABS16,RD},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x28,0xf8,RD }}},
+{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{IMM16,RD},4,    {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x28,0xf8,RD }}},
+{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x28,0xf8,RD }}},
 {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RN,RD},2,       {{0xa0,0xf8,RN },{0x28,0xf8,RD }}},
 {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNINC,RD},2,    {{0xc0,0xf8,RN },{0x28,0xf8,RD }}},
 {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNDEC,RD},2,    {{0xb0,0xf8,RN },{0x28,0xf8,RD }}},
 {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNIND,RD},2,    {{0xd0,0xf8,RN },{0x28,0xf8,RD }}},
-{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{ABS8,RD},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}},
-{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{IMM8,RD},3,     {{0x04,0xff, },{0x00,0x00,IMM8 },{0x28,0xf8,RD }}},
+{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{ABS8,RD},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}},
+{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{IMM8,RD},3,     {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x28,0xf8,RD }}},
 {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x28,0xf8,RD }}},
-{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{ABS16,RD},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x28,0xf8,RD }}},
-{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNIND_D16,RD},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x28,0xf8,RD }}},
+{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{ABS16,RD},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x28,0xf8,RD }}},
+{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNIND_D16,RD},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x28,0xf8,RD }}},
 {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x28,0xf8,RD }}},
 {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNIND,RD},2,      {{0xd8,0xf8,RN },{0x28,0xf8,RD }}},
 {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNINC,RD},2,      {{0xc8,0xf8,RN },{0x28,0xf8,RD }}},
 {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNDEC,RD},2,      {{0xb8,0xf8,RN },{0x28,0xf8,RD }}},
-{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{ABS8,RD},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}},
+{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{ABS8,RD},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}},
 {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNIND_D8,RD},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x28,0xf8,RD }}},
-{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{ABS16,RD},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x28,0xf8,RD }}},
-{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{IMM16,RD},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x28,0xf8,RD }}},
-{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x28,0xf8,RD }}},
+{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{ABS16,RD},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x28,0xf8,RD }}},
+{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{IMM16,RD},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x28,0xf8,RD }}},
+{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x28,0xf8,RD }}},
 {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RN},2,      {{0xa8,0xf8,RN },{0x08,0xf8,QIM }}},
 {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNINC},2,   {{0xc8,0xf8,RN },{0x08,0xf8,QIM }}},
 {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNDEC},2,   {{0xb8,0xf8,RN },{0x08,0xf8,QIM }}},
 {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNIND},2,   {{0xd8,0xf8,RN },{0x08,0xf8,QIM }}},
-{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,ABS8},3,    {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
+{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,ABS8},3,    {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
 {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNIND_D8},3,        {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}},
-{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,ABS16},4,   {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
-{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNIND_D16},4,       {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
+{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,ABS16},4,   {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
+{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNIND_D16},4,       {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
 {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RN},2,      {{0xa0,0xf8,RN },{0x08,0xf8,QIM }}},
 {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNINC},2,   {{0xc0,0xf8,RN },{0x08,0xf8,QIM }}},
 {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNDEC},2,   {{0xb0,0xf8,RN },{0x08,0xf8,QIM }}},
 {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNIND},2,   {{0xd0,0xf8,RN },{0x08,0xf8,QIM }}},
-{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,ABS8},3,    {{0x05,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
+{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,ABS8},3,    {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
 {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNIND_D8},3,        {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}},
-{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,ABS16},4,   {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
-{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNIND_D16},4,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
+{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,ABS16},4,   {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
+{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNIND_D16},4,       {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
 {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RN},2,        {{0xa8,0xf8,RN },{0x08,0xf8,QIM }}},
 {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNDEC},2,     {{0xb8,0xf8,RN },{0x08,0xf8,QIM }}},
 {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNINC},2,     {{0xc8,0xf8,RN },{0x08,0xf8,QIM }}},
 {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNIND},2,     {{0xd8,0xf8,RN },{0x08,0xf8,QIM }}},
-{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,ABS8},3,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
+{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,ABS8},3,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
 {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNIND_D8},3,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}},
-{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,ABS16},4,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
-{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
+{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,ABS16},4,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
+{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
 {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RN,RD},2,       {{0xa8,0xf8,RN },{0x20,0xf8,RD }}},
 {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNDEC,RD},2,    {{0xb8,0xf8,RN },{0x20,0xf8,RD }}},
 {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNIND,RD},2,    {{0xd8,0xf8,RN },{0x20,0xf8,RD }}},
 {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNINC,RD},2,    {{0xc8,0xf8,RN },{0x20,0xf8,RD }}},
-{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{ABS8,RD},3,     {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
+{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{ABS8,RD},3,     {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
 {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}},
-{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{ABS16,RD},4,    {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{IMM16,RD},4,    {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}},
+{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{ABS16,RD},4,    {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{IMM16,RD},4,    {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNIND_D16,RD},4,        {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
 {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RN,RD},2,       {{0xa0,0xf8,RN },{0x20,0xf8,RD }}},
 {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNDEC,RD},2,    {{0xb0,0xf8,RN },{0x20,0xf8,RD }}},
 {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNINC,RD},2,    {{0xc0,0xf8,RN },{0x20,0xf8,RD }}},
 {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNIND,RD},2,    {{0xd0,0xf8,RN },{0x20,0xf8,RD }}},
-{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{ABS8,RD},3,     {{0x05,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
+{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{ABS8,RD},3,     {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
 {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}},
-{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{IMM8,RD},3,     {{0x04,0xff, },{0x00,0x00,IMM8 },{0x20,0xf8,RD }}},
-{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{ABS16,RD},4,    {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNIND_D16,RD},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}},
+{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{IMM8,RD},3,     {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x20,0xf8,RD }}},
+{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{ABS16,RD},4,    {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNIND_D16,RD},4,        {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
 {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x20,0xf8,RD }}},
 {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNDEC,RD},2,      {{0xb8,0xf8,RN },{0x20,0xf8,RD }}},
 {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNINC,RD},2,      {{0xc8,0xf8,RN },{0x20,0xf8,RD }}},
 {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNIND,RD},2,      {{0xd8,0xf8,RN },{0x20,0xf8,RD }}},
-{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{ABS8,RD},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
+{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{ABS8,RD},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
 {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNIND_D8,RD},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}},
-{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{ABS16,RD},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{IMM16,RD},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}},
+{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{ABS16,RD},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{IMM16,RD},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
 {227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x20,0xf8,RD }}},
 {227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RN},2,        {{0xa8,0xf8,RN },{0x08,0xf8,QIM }}},
 {227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNIND},2,     {{0xd8,0xf8,RN },{0x08,0xf8,QIM }}},
@@ -1565,15 +1565,15 @@ h8500_opcode_info h8500_table[]
 {227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNINC},2,     {{0xc8,0xf8,RN },{0x08,0xf8,QIM }}},
 {227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNIND,RD},2,      {{0xd8,0xf8,RN },{0x20,0xf8,RD }}},
 {227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNINC,RD},2,      {{0xc8,0xf8,RN },{0x20,0xf8,RD }}},
-{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,ABS8},3,      {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
+{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,ABS8},3,      {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
 {227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNIND_D8},3,  {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}},
-{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{ABS8,RD},3,       {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
+{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{ABS8,RD},3,       {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
 {227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNIND_D8,RD},3,   {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}},
-{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{ABS16,RD},4,      {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
-{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{IMM16,RD},4,      {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,ABS16},4,     {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
-{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}},
+{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{ABS16,RD},4,      {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
+{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{IMM16,RD},4,      {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,ABS16},4,     {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
+{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNIND_D16,RD},4,  {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
 {228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x20,0xf8,RD }}},
 {228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RN},2,        {{0xa0,0xf8,RN },{0x08,0xf8,QIM }}},
 {228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNINC},2,     {{0xc0,0xf8,RN },{0x08,0xf8,QIM }}},
@@ -1583,14 +1583,14 @@ h8500_opcode_info h8500_table[]
 {228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNDEC},2,     {{0xb0,0xf8,RN },{0x08,0xf8,QIM }}},
 {228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RNIND,RD},2,      {{0xd0,0xf8,RN },{0x20,0xf8,RD }}},
 {228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNIND_D8},3,  {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}},
-{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{IMM8,RD},3,       {{0x04,0xff, },{0x00,0x00,IMM8 },{0x20,0xf8,RD }}},
-{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,ABS8},3,      {{0x05,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
-{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{ABS8,RD},3,       {{0x05,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
+{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{IMM8,RD},3,       {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x20,0xf8,RD }}},
+{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,ABS8},3,      {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
+{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{ABS8,RD},3,       {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
 {228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RNIND_D8,RD},3,   {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}},
-{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
-{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,ABS16},4,     {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
-{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{ABS16,RD},4,      {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RNIND_D16,RD},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}},
+{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
+{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,ABS16},4,     {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
+{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{ABS16,RD},4,      {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RNIND_D16,RD},4,  {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
 {229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RN,RD},2,   {{0xa8,0xf8,RN },{0x20,0xf8,RD }}},
 {229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RN},2,  {{0xa8,0xf8,RN },{0x08,0xf8,QIM }}},
 {229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNDEC},2,       {{0xb8,0xf8,RN },{0x08,0xf8,QIM }}},
@@ -1599,16 +1599,17 @@ h8500_opcode_info h8500_table[]
 {229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNINC},2,       {{0xc8,0xf8,RN },{0x08,0xf8,QIM }}},
 {229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNINC,RD},2,        {{0xc8,0xf8,RN },{0x20,0xf8,RD }}},
 {229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNIND,RD},2,        {{0xd8,0xf8,RN },{0x20,0xf8,RD }}},
-{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,ABS8},3,        {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
+{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,ABS8},3,        {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}},
 {229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNIND_D8},3,    {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}},
 {229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNIND_D8,RD},3,     {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}},
-{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
-{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{ABS16,RD},4,        {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNIND_D16},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
-{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{IMM16,RD},4,        {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,ABS16},4,       {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}},
-{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}},
-0,0,0}
+{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}},
+{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{ABS16,RD},4,        {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNIND_D16},4,   {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
+{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{IMM16,RD},4,        {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,ABS16},4,       {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}},
+{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNIND_D16,RD},4,    {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}},
+{0,0,0,0,0,0,0,0,{0,0},0,{{0,0,0}}}
+}
 #endif
 ;
 #endif
@@ -3852,7 +3853,7 @@ IMM16,RD  'a','E','D','D'
 QIM,ABS16  'a','I','E','E'
 RNIND_D16,RD  'a','E','D','D'
 */
-{0,0,0,0,0,0,"",0,{0,0},0,{}}}
+{0,0,0,0,0,0,NULL,0,{0,0},0,{}}}
 #endif
 ;
 #endif
index d2271d8a7185f3f3219255d999ef33173bc17a1e..65c36f15f3d00581b7d675f564bfe7542f18f7f1 100644 (file)
@@ -3970,7 +3970,7 @@ OP_XS (bytemode, sizeflag)
     BadOp ();
 }
 
-static const char *Suffix3DNow[] = {
+static const char *const Suffix3DNow[] = {
 /* 00 */       NULL,           NULL,           NULL,           NULL,
 /* 04 */       NULL,           NULL,           NULL,           NULL,
 /* 08 */       NULL,           NULL,           NULL,           NULL,
index 399e2bc40544a15473604cd2fd2cc5ecbde421d3..a8aa97664f16f3477f4e56638cf8e3fbfa469770 100644 (file)
@@ -2,36 +2,36 @@
 static const char * const ia64_strings[] = {
   "", "0", "1", "a", "acq", "add", "addl", "addp4", "adds", "alloc", "and",
   "andcm", "b", "bias", "br", "break", "brl", "brp", "bsw", "c", "call",
-  "cexit", "chk", "cloop", "clr", "clrrrb", "cmp", "cmp4", "cmpxchg1",
-  "cmpxchg2", "cmpxchg4", "cmpxchg8", "cond", "cover", "ctop", "czx1",
-  "czx2", "d", "dep", "dpnt", "dptk", "e", "epc", "eq", "excl", "exit",
-  "exp", "extr", "f", "fabs", "fadd", "famax", "famin", "fand", "fandcm",
-  "fault", "fc", "fchkf", "fclass", "fclrf", "fcmp", "fcvt", "fetchadd4",
-  "fetchadd8", "few", "fill", "flushrs", "fma", "fmax", "fmerge", "fmin",
-  "fmix", "fmpy", "fms", "fneg", "fnegabs", "fnma", "fnmpy", "fnorm", "for",
-  "fpabs", "fpack", "fpamax", "fpamin", "fpcmp", "fpcvt", "fpma", "fpmax",
-  "fpmerge", "fpmin", "fpmpy", "fpms", "fpneg", "fpnegabs", "fpnma",
-  "fpnmpy", "fprcpa", "fprsqrta", "frcpa", "frsqrta", "fselect", "fsetc",
-  "fsub", "fswap", "fsxt", "fwb", "fx", "fxor", "fxu", "g", "ga", "ge",
-  "getf", "geu", "gt", "gtu", "h", "hu", "i", "ia", "imp", "invala", "itc",
-  "itr", "l", "ld1", "ld2", "ld4", "ld8", "ldf", "ldf8", "ldfd", "ldfe",
-  "ldfp8", "ldfpd", "ldfps", "ldfs", "le", "leu", "lfetch", "loadrs",
-  "loop", "lr", "lt", "ltu", "lu", "m", "many", "mf", "mix1", "mix2",
-  "mix4", "mov", "movl", "mux1", "mux2", "nc", "ne", "neq", "nge", "ngt",
-  "nl", "nle", "nlt", "nm", "nop", "nr", "ns", "nt1", "nt2", "nta", "nz",
-  "or", "orcm", "ord", "pack2", "pack4", "padd1", "padd2", "padd4", "pavg1",
-  "pavg2", "pavgsub1", "pavgsub2", "pcmp1", "pcmp2", "pcmp4", "pmax1",
-  "pmax2", "pmin1", "pmin2", "pmpy2", "pmpyshr2", "popcnt", "pr", "probe",
-  "psad1", "pshl2", "pshl4", "pshladd2", "pshr2", "pshr4", "pshradd2",
-  "psub1", "psub2", "psub4", "ptc", "ptr", "r", "raz", "rel", "ret", "rfi",
-  "rsm", "rum", "rw", "s", "s0", "s1", "s2", "s3", "sa", "se", "setf",
-  "shl", "shladd", "shladdp4", "shr", "shrp", "sig", "spill", "spnt",
-  "sptk", "srlz", "ssm", "sss", "st1", "st2", "st4", "st8", "stf", "stf8",
-  "stfd", "stfe", "stfs", "sub", "sum", "sxt1", "sxt2", "sxt4", "sync",
-  "tak", "tbit", "thash", "tnat", "tpa", "trunc", "ttag", "u", "unc",
-  "unord", "unpack1", "unpack2", "unpack4", "uss", "uus", "uuu", "w",
-  "wexit", "wtop", "x", "xchg1", "xchg2", "xchg4", "xchg8", "xf", "xma",
-  "xmpy", "xor", "xuf", "z", "zxt1", "zxt2", "zxt4",
+  "cexit", "chk", "cloop", "clr", "clrrrb", "cmp", "cmp4", "cmp8xchg16",
+  "cmpxchg1", "cmpxchg2", "cmpxchg4", "cmpxchg8", "cond", "cover", "ctop",
+  "czx1", "czx2", "d", "dep", "dpnt", "dptk", "e", "epc", "eq", "excl",
+  "exit", "exp", "extr", "f", "fabs", "fadd", "famax", "famin", "fand",
+  "fandcm", "fault", "fc", "fchkf", "fclass", "fclrf", "fcmp", "fcvt",
+  "fetchadd4", "fetchadd8", "few", "fill", "flushrs", "fma", "fmax",
+  "fmerge", "fmin", "fmix", "fmpy", "fms", "fneg", "fnegabs", "fnma",
+  "fnmpy", "fnorm", "for", "fpabs", "fpack", "fpamax", "fpamin", "fpcmp",
+  "fpcvt", "fpma", "fpmax", "fpmerge", "fpmin", "fpmpy", "fpms", "fpneg",
+  "fpnegabs", "fpnma", "fpnmpy", "fprcpa", "fprsqrta", "frcpa", "frsqrta",
+  "fselect", "fsetc", "fsub", "fswap", "fsxt", "fwb", "fx", "fxor", "fxu",
+  "g", "ga", "ge", "getf", "geu", "gt", "gtu", "h", "hint", "hu", "i", "ia",
+  "imp", "invala", "itc", "itr", "l", "ld1", "ld16", "ld2", "ld4", "ld8",
+  "ldf", "ldf8", "ldfd", "ldfe", "ldfp8", "ldfpd", "ldfps", "ldfs", "le",
+  "leu", "lfetch", "loadrs", "loop", "lr", "lt", "ltu", "lu", "m", "many",
+  "mf", "mix1", "mix2", "mix4", "mov", "movl", "mux1", "mux2", "nc", "ne",
+  "neq", "nge", "ngt", "nl", "nle", "nlt", "nm", "nop", "nr", "ns", "nt1",
+  "nt2", "nta", "nz", "or", "orcm", "ord", "pack2", "pack4", "padd1",
+  "padd2", "padd4", "pavg1", "pavg2", "pavgsub1", "pavgsub2", "pcmp1",
+  "pcmp2", "pcmp4", "pmax1", "pmax2", "pmin1", "pmin2", "pmpy2", "pmpyshr2",
+  "popcnt", "pr", "probe", "psad1", "pshl2", "pshl4", "pshladd2", "pshr2",
+  "pshr4", "pshradd2", "psub1", "psub2", "psub4", "ptc", "ptr", "r", "raz",
+  "rel", "ret", "rfi", "rsm", "rum", "rw", "s", "s0", "s1", "s2", "s3",
+  "sa", "se", "setf", "shl", "shladd", "shladdp4", "shr", "shrp", "sig",
+  "spill", "spnt", "sptk", "srlz", "ssm", "sss", "st1", "st16", "st2",
+  "st4", "st8", "stf", "stf8", "stfd", "stfe", "stfs", "sub", "sum", "sxt1",
+  "sxt2", "sxt4", "sync", "tak", "tbit", "thash", "tnat", "tpa", "trunc",
+  "ttag", "u", "unc", "unord", "unpack1", "unpack2", "unpack4", "uss",
+  "uus", "uuu", "w", "wexit", "wtop", "x", "xchg1", "xchg2", "xchg4",
+  "xchg8", "xf", "xma", "xmpy", "xor", "xuf", "z", "zxt1", "zxt2", "zxt4",
 };
 
 static const struct ia64_dependency
@@ -39,8 +39,14 @@ dependencies[] = {
   { "ALAT", 0, 0, 0, -1, NULL, },
   { "AR[BSP]", 26, 0, 2, 17, NULL, },
   { "AR[BSPSTORE]", 26, 0, 2, 18, NULL, },
+  { "AR[CFLG]", 26, 0, 2, 27, NULL, },
   { "AR[CCV]", 26, 0, 2, 32, NULL, },
+  { "AR[CSD]", 26, 0, 2, 25, NULL, },
   { "AR[EC]", 26, 0, 2, 66, NULL, },
+  { "AR[EFLAG]", 26, 0, 2, 24, NULL, },
+  { "AR[FCR]", 26, 0, 2, 21, NULL, },
+  { "AR[FDR]", 26, 0, 2, 30, NULL, },
+  { "AR[FIR]", 26, 0, 2, 29, NULL, },
   { "AR[FPSR].sf0.controls", 30, 0, 2, -1, NULL, },
   { "AR[FPSR].sf1.controls", 30, 0, 2, -1, NULL, },
   { "AR[FPSR].sf2.controls", 30, 0, 2, -1, NULL, },
@@ -51,6 +57,7 @@ dependencies[] = {
   { "AR[FPSR].sf3.flags", 30, 0, 2, -1, NULL, },
   { "AR[FPSR].traps", 30, 0, 2, -1, NULL, },
   { "AR[FPSR].rv", 30, 0, 2, -1, NULL, },
+  { "AR[FSR]", 26, 0, 2, 28, NULL, },
   { "AR[ITC]", 26, 0, 2, 44, NULL, },
   { "AR[K%], % in 0 - 7", 1, 0, 2, -1, NULL, },
   { "AR[LC]", 26, 0, 2, 65, NULL, },
@@ -59,6 +66,7 @@ dependencies[] = {
   { "AR[PFS]", 26, 0, 0, 64, NULL, },
   { "AR[RNAT]", 26, 0, 2, 19, NULL, },
   { "AR[RSC]", 26, 0, 2, 16, NULL, },
+  { "AR[SSD]", 26, 0, 2, 26, NULL, },
   { "AR[UNAT]{%}, % in 0 - 63", 2, 0, 2, -1, NULL, },
   { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 0, 0, -1, NULL, },
   { "AR%, % in 48-63, 112-127", 4, 0, 2, -1, NULL, },
@@ -213,7 +221,13 @@ dependencies[] = {
   { "AR[BSP]", 26, 1, 2, 17, NULL, },
   { "AR[BSPSTORE]", 26, 1, 2, 18, NULL, },
   { "AR[CCV]", 26, 1, 2, 32, NULL, },
+  { "AR[CFLG]", 26, 1, 2, 27, NULL, },
+  { "AR[CSD]", 26, 1, 2, 25, NULL, },
   { "AR[EC]", 26, 1, 2, 66, NULL, },
+  { "AR[EFLAG]", 26, 1, 2, 24, NULL, },
+  { "AR[FCR]", 26, 1, 2, 21, NULL, },
+  { "AR[FDR]", 26, 1, 2, 30, NULL, },
+  { "AR[FIR]", 26, 1, 2, 29, NULL, },
   { "AR[FPSR].sf0.controls", 30, 1, 2, -1, NULL, },
   { "AR[FPSR].sf1.controls", 30, 1, 2, -1, NULL, },
   { "AR[FPSR].sf2.controls", 30, 1, 2, -1, NULL, },
@@ -232,6 +246,7 @@ dependencies[] = {
   { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, },
   { "AR[FPSR].rv", 30, 1, 2, -1, NULL, },
   { "AR[FPSR].traps", 30, 1, 2, -1, NULL, },
+  { "AR[FSR]", 26, 1, 2, 28, NULL, },
   { "AR[ITC]", 26, 1, 2, 44, NULL, },
   { "AR[K%], % in 0 - 7", 1, 1, 2, -1, NULL, },
   { "AR[LC]", 26, 1, 2, 65, NULL, },
@@ -356,1180 +371,1217 @@ dependencies[] = {
 };
 
 static const short dep0[] = {
-  88, 252, 2131, 2297
+  96, 267, 2139, 2312
 };
 
 static const short dep1[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, 4127
-  20605
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, 4135
+  20613
 };
 
 static const short dep2[] = {
-  88, 252, 2157, 2158, 2160, 2161, 2163, 2164, 2166, 2314, 2317, 2318, 2321
-  2322, 2325, 2326
+  96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2332, 2333, 2336
+  2337, 2340, 2341
 };
 
 static const short dep3[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2314, 2317
-  2318, 2321, 2322, 2325, 2326, 4127, 20605
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2332
+  2333, 2336, 2337, 2340, 2341, 4135, 20613
 };
 
 static const short dep4[] = {
-  88, 252, 22637, 22638, 22640, 22641, 22643, 22644, 22646, 22794, 22797, 22798
-  22801, 22802, 22805, 22806
+  96, 267, 22645, 22646, 22648, 22649, 22651, 22652, 22654, 22809, 22812, 22813
+  22816, 22817, 22820, 22821
 };
 
 static const short dep5[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
-  22794, 22797, 22798, 22801, 22802, 22805, 22806
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
+  22809, 22812, 22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep6[] = {
-  88, 252, 2157, 2158, 2160, 2161, 2163, 2164, 2166, 2314, 2315, 2317, 2319
-  2321, 2323, 2325
+  96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2330, 2332, 2334
+  2336, 2338, 2340
 };
 
 static const short dep7[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2314, 2315
-  2318, 2319, 2322, 2323, 2326, 4127, 20605
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2330
+  2333, 2334, 2337, 2338, 2341, 4135, 20613
 };
 
 static const short dep8[] = {
-  88, 252, 2157, 2158, 2160, 2161, 2163, 2164, 2166, 2314, 2316, 2318, 2320
-  2322, 2324, 2326
+  96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2331, 2333, 2335
+  2337, 2339, 2341
 };
 
 static const short dep9[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2314, 2316
-  2317, 2320, 2321, 2324, 2325, 4127, 20605
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2331
+  2332, 2335, 2336, 2339, 2340, 4135, 20613
 };
 
 static const short dep10[] = {
-  88, 252, 2157, 2158, 2160, 2161, 2163, 2164, 2166, 2314, 2315, 2316, 2317
-  2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326
+  96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2330, 2331, 2332
+  2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341
 };
 
 static const short dep11[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2314, 2315
-  2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 4127, 20605
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2330
+  2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 4135, 20613
   
 };
 
 static const short dep12[] = {
-  88, 252, 2364
+  96, 267, 2379
 };
 
 static const short dep13[] = {
-  32, 33, 88, 148, 166, 167, 252, 2074, 2075, 2157, 2159, 2160, 2162, 2163
-  2165, 2166, 4127
+  40, 41, 96, 156, 174, 175, 267, 2082, 2083, 2165, 2167, 2168, 2170, 2171
+  2173, 2174, 4135
 };
 
 static const short dep14[] = {
-  88, 147, 252, 295, 2364, 28844, 28987
+  96, 155, 267, 310, 2379, 28852, 29002
 };
 
 static const short dep15[] = {
-  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 
-  23, 24, 25, 32, 33, 88, 136, 148, 166, 167, 252, 295, 2074, 2075, 2157, 2159, 
-  2160, 2162, 2163, 2165, 2166, 4127, 28844, 28987, 
+  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, 28, 29, 30, 31, 32, 33, 40, 41, 96, 144, 156, 174, 175, 
+  267, 310, 2082, 2083, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135, 28852, 
+  29002, 
 };
 
 static const short dep16[] = {
-  1, 4, 32, 88, 126, 174, 177, 211, 252, 282, 2364, 28844, 28987
+  1, 6, 40, 96, 134, 182, 187, 226, 267, 297, 2379, 28852, 29002
 };
 
 static const short dep17[] = {
-  1, 18, 20, 30, 32, 33, 88, 148, 150, 151, 166, 167, 174, 177, 211, 252, 282
-  2074, 2075, 2157, 2159, 2160, 2162, 2163, 2165, 2166, 4127, 28844, 28987
+  1, 25, 27, 38, 40, 41, 96, 156, 158, 159, 174, 175, 182, 187, 226, 267, 297
+  2082, 2083, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135, 28852, 29002
   
 };
 
 static const short dep18[] = {
-  1, 32, 43, 88, 174, 211, 218, 252, 28844, 28987
+  1, 40, 51, 96, 182, 226, 233, 267, 28852, 29002
 };
 
 static const short dep19[] = {
-  1, 30, 32, 33, 88, 145, 166, 174, 211, 218, 252, 4127, 28844, 28987
+  1, 38, 40, 41, 96, 153, 174, 182, 226, 233, 267, 4135, 28852, 29002
 };
 
 static const short dep20[] = {
-  32, 88, 211, 252
+  40, 96, 226, 267
 };
 
 static const short dep21[] = {
-  88, 166, 211, 252
+  96, 174, 226, 267
 };
 
 static const short dep22[] = {
-  1, 32, 88, 120, 121, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135
-  136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 151, 152, 153
-  154, 155, 156, 157, 158, 161, 162, 163, 164, 165, 166, 167, 168, 169, 174
-  211, 252, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291
-  292, 293, 294, 295, 296, 297, 298, 300, 301, 303, 304, 305, 306, 307, 308
-  309, 310, 311, 312, 313, 28844, 28987
+  1, 40, 96, 128, 129, 131, 132, 133, 134, 135, 138, 139, 140, 141, 142, 143
+  144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161
+  162, 163, 164, 165, 166, 169, 170, 171, 172, 173, 174, 175, 176, 177, 182
+  226, 267, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306
+  307, 308, 309, 310, 311, 312, 313, 315, 316, 318, 319, 320, 321, 322, 323
+  324, 325, 326, 327, 328, 28852, 29002
 };
 
 static const short dep23[] = {
-  1, 30, 32, 33, 42, 43, 47, 50, 64, 88, 126, 166, 174, 211, 252, 279, 280
-  281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295
-  296, 297, 298, 300, 301, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312
-  313, 4127, 28844, 28987
+  1, 38, 40, 41, 50, 51, 55, 58, 72, 96, 134, 174, 182, 226, 267, 294, 295
+  296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310
+  311, 312, 313, 315, 316, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327
+  328, 4135, 28852, 29002
 };
 
 static const short dep24[] = {
-  88, 125, 252, 281
+  96, 133, 267, 296
 };
 
 static const short dep25[] = {
-  88, 126, 166, 252, 281
+  96, 134, 174, 267, 296
 };
 
 static const short dep26[] = {
-  88, 126, 252, 282
+  96, 134, 267, 297
 };
 
 static const short dep27[] = {
-  18, 19, 88, 89, 92, 96, 99, 126, 148, 166, 252, 282
+  25, 26, 96, 97, 100, 104, 107, 134, 156, 174, 267, 297
 };
 
 static const short dep28[] = {
-  32, 33, 88, 166, 252, 2157, 2159, 2160, 2162, 2163, 2165, 2166, 4127
+  40, 41, 96, 174, 267, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135
 };
 
 static const short dep29[] = {
-  1, 18, 32, 88, 174, 199, 200, 211, 252, 2074, 2255, 2258, 2364, 28844, 28987
+  1, 25, 40, 96, 182, 214, 215, 226, 267, 2082, 2270, 2273, 2379, 28852, 29002
   
 };
 
 static const short dep30[] = {
-  1, 4, 30, 32, 33, 88, 126, 148, 166, 167, 174, 199, 201, 211, 252, 2074, 2075
-  2157, 2159, 2160, 2162, 2163, 2165, 2166, 2256, 2258, 4127, 28844, 28987
+  1, 6, 38, 40, 41, 96, 134, 156, 174, 175, 182, 214, 216, 226, 267, 2082, 2083
+  2165, 2167, 2168, 2170, 2171, 2173, 2174, 2271, 2273, 4135, 28852, 29002
   
 };
 
 static const short dep31[] = {
-  88, 252
+  96, 267
 };
 
 static const short dep32[] = {
-  88, 166, 252, 2074, 2076
+  96, 174, 267, 2082, 2084
 };
 
 static const short dep33[] = {
-  32, 33, 88, 148, 166, 167, 252, 2157, 2159, 2160, 2162, 2163, 2165, 2166
-  4127
+  40, 41, 96, 156, 174, 175, 267, 2165, 2167, 2168, 2170, 2171, 2173, 2174
+  4135
 };
 
 static const short dep34[] = {
-  4, 29, 30, 31, 88, 116, 117, 177, 211, 252, 277, 278, 2364
+  6, 37, 38, 39, 96, 124, 125, 187, 226, 267, 292, 293, 2379
 };
 
 static const short dep35[] = {
-  4, 29, 32, 33, 88, 148, 166, 167, 177, 211, 252, 277, 278, 316, 2157, 2159
-  2160, 2162, 2163, 2165, 2166, 4127
+  6, 37, 40, 41, 96, 156, 174, 175, 187, 226, 267, 292, 293, 331, 2165, 2167
+  2168, 2170, 2171, 2173, 2174, 4135
 };
 
 static const short dep36[] = {
-  17, 88, 198, 252, 2364
+  24, 96, 213, 267, 2379
 };
 
 static const short dep37[] = {
-  17, 32, 33, 88, 148, 166, 167, 198, 252, 2157, 2159, 2160, 2162, 2163, 2165
-  2166, 4127
+  24, 40, 41, 96, 156, 174, 175, 213, 267, 2165, 2167, 2168, 2170, 2171, 2173
+  2174, 4135
 };
 
 static const short dep38[] = {
-  4, 17, 29, 30, 31, 88, 116, 117, 177, 198, 211, 252, 277, 278, 2364
+  6, 24, 37, 38, 39, 96, 124, 125, 187, 213, 226, 267, 292, 293, 2379
 };
 
 static const short dep39[] = {
-  4, 17, 29, 32, 33, 88, 148, 166, 167, 177, 198, 211, 252, 277, 278, 316, 2157
-  2159, 2160, 2162, 2163, 2165, 2166, 4127
+  6, 24, 37, 40, 41, 96, 156, 174, 175, 187, 213, 226, 267, 292, 293, 331, 2165
+  2167, 2168, 2170, 2171, 2173, 2174, 4135
 };
 
 static const short dep40[] = {
-  1, 4, 30, 32, 33, 88, 126, 148, 166, 167, 174, 199, 201, 211, 252, 2157, 2159
-  2160, 2162, 2163, 2165, 2166, 2256, 2258, 4127, 28844, 28987
+  1, 6, 38, 40, 41, 96, 134, 156, 174, 175, 182, 214, 216, 226, 267, 2165, 2167
+  2168, 2170, 2171, 2173, 2174, 2271, 2273, 4135, 28852, 29002
 };
 
 static const short dep41[] = {
-  88, 166, 252
+  96, 174, 267
 };
 
 static const short dep42[] = {
-  9, 88, 182, 183, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
-  22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801
-  22802, 22805, 22806
+  15, 96, 196, 197, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
+  22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816
+  22817, 22820, 22821
 };
 
 static const short dep43[] = {
-  5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 22794, 22797
-  22798, 22801, 22802, 22805, 22806
+  11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812
+  22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep44[] = {
-  9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252, 2127, 2295
-  18585, 18586, 18731, 18732, 18734, 18735, 22637, 22638, 22639, 22641, 22642
-  22644, 22645, 22794, 22797, 22798, 22801, 22802, 22805, 22806
+  15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2135, 2310
+  18593, 18594, 18746, 18747, 18749, 18750, 22645, 22646, 22647, 22649, 22650
+  22652, 22653, 22809, 22812, 22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep45[] = {
-  5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193, 
-  252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2295, 4127, 16516, 16518, 18731, 
-  18733, 18734, 18736, 22794, 22797, 22798, 22801, 22802, 22805, 22806, 
+  11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205, 
+  207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135, 16524, 16526, 
+  18746, 18748, 18749, 18751, 22809, 22812, 22813, 22816, 22817, 22820, 22821, 
+  
 };
 
 static const short dep46[] = {
-  10, 88, 185, 186, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
-  22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801
-  22802, 22805, 22806
+  16, 96, 199, 200, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
+  22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816
+  22817, 22820, 22821
 };
 
 static const short dep47[] = {
-  6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 22794, 22797
-  22798, 22801, 22802, 22805, 22806
+  12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812
+  22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep48[] = {
-  11, 88, 188, 189, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
-  22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801
-  22802, 22805, 22806
+  17, 96, 202, 203, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
+  22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816
+  22817, 22820, 22821
 };
 
 static const short dep49[] = {
-  7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 22794, 22797
-  22798, 22801, 22802, 22805, 22806
+  13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812
+  22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep50[] = {
-  12, 88, 191, 192, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
-  22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801
-  22802, 22805, 22806
+  18, 96, 205, 206, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
+  22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816
+  22817, 22820, 22821
 };
 
 static const short dep51[] = {
-  8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 22794, 22797
-  22798, 22801, 22802, 22805, 22806
+  14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812
+  22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep52[] = {
-  9, 88, 182, 183, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
+  15, 96, 196, 197, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
   
 };
 
 static const short dep53[] = {
-  5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736
+  11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751
 };
 
 static const short dep54[] = {
-  9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252, 2127, 2295
-  18585, 18586, 18731, 18732, 18734, 18735
+  15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2135, 2310
+  18593, 18594, 18746, 18747, 18749, 18750
 };
 
 static const short dep55[] = {
-  5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193
-  252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2295, 4127, 16516, 16518, 18731
-  18733, 18734, 18736
+  11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205
+  207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135, 16524, 16526
+  18746, 18748, 18749, 18751
 };
 
 static const short dep56[] = {
-  10, 88, 185, 186, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
+  16, 96, 199, 200, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
   
 };
 
 static const short dep57[] = {
-  6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736
+  12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751
 };
 
 static const short dep58[] = {
-  11, 88, 188, 189, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
+  17, 96, 202, 203, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
   
 };
 
 static const short dep59[] = {
-  7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736
+  13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751
 };
 
 static const short dep60[] = {
-  12, 88, 191, 192, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
+  18, 96, 205, 206, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
   
 };
 
 static const short dep61[] = {
-  8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736
+  14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751
 };
 
 static const short dep62[] = {
-  88, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
+  96, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
 };
 
 static const short dep63[] = {
-  32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2295, 4127
-  16516, 16518, 18731, 18733, 18734, 18736
+  40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135
+  16524, 16526, 18746, 18748, 18749, 18751
 };
 
 static const short dep64[] = {
-  5, 88, 178, 252
+  11, 96, 192, 267
 };
 
 static const short dep65[] = {
-  5, 32, 33, 88, 166, 178, 252, 2157, 2158, 2161, 2164, 4127
+  11, 40, 41, 96, 174, 192, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep66[] = {
-  5, 32, 33, 88, 166, 252, 2157, 2158, 2161, 2164, 4127
+  11, 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep67[] = {
-  6, 88, 179, 252
+  12, 96, 193, 267
 };
 
 static const short dep68[] = {
-  5, 32, 33, 88, 166, 179, 252, 2157, 2158, 2161, 2164, 4127
+  11, 40, 41, 96, 174, 193, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep69[] = {
-  7, 88, 180, 252
+  13, 96, 194, 267
 };
 
 static const short dep70[] = {
-  5, 32, 33, 88, 166, 180, 252, 2157, 2158, 2161, 2164, 4127
+  11, 40, 41, 96, 174, 194, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep71[] = {
-  8, 88, 181, 252
+  14, 96, 195, 267
 };
 
 static const short dep72[] = {
-  5, 32, 33, 88, 166, 181, 252, 2157, 2158, 2161, 2164, 4127
+  11, 40, 41, 96, 174, 195, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep73[] = {
-  9, 88, 183, 184, 252
+  15, 96, 197, 198, 267
 };
 
 static const short dep74[] = {
-  32, 33, 88, 166, 183, 184, 252, 2157, 2158, 2161, 2164, 4127
+  40, 41, 96, 174, 197, 198, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep75[] = {
-  32, 33, 88, 166, 252, 2157, 2158, 2161, 2164, 4127
+  40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep76[] = {
-  10, 88, 186, 187, 252
+  16, 96, 200, 201, 267
 };
 
 static const short dep77[] = {
-  32, 33, 88, 166, 186, 187, 252, 2157, 2158, 2161, 2164, 4127
+  40, 41, 96, 174, 200, 201, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep78[] = {
-  11, 88, 189, 190, 252
+  17, 96, 203, 204, 267
 };
 
 static const short dep79[] = {
-  32, 33, 88, 166, 189, 190, 252, 2157, 2158, 2161, 2164, 4127
+  40, 41, 96, 174, 203, 204, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep80[] = {
-  12, 88, 192, 193, 252
+  18, 96, 206, 207, 267
 };
 
 static const short dep81[] = {
-  32, 33, 88, 166, 192, 193, 252, 2157, 2158, 2161, 2164, 4127
+  40, 41, 96, 174, 206, 207, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep82[] = {
-  9, 13, 14, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127, 
+  15, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135, 
+  
 };
 
 static const short dep83[] = {
-  9, 10, 13, 14, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127
+  15, 16, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135
   
 };
 
 static const short dep84[] = {
-  9, 11, 13, 14, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127
+  15, 17, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135
   
 };
 
 static const short dep85[] = {
-  9, 12, 13, 14, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127
+  15, 18, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135
   
 };
 
 static const short dep86[] = {
-  9, 88, 182, 183, 252
+  15, 96, 196, 197, 267
 };
 
 static const short dep87[] = {
-  5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2157, 2158, 2161, 2164, 4127, 
+  11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2165, 2166, 2169, 2172, 4135, 
+  
 };
 
 static const short dep88[] = {
-  9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252
+  15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267
 };
 
 static const short dep89[] = {
-  5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193
-  252, 2157, 2158, 2161, 2164, 4127
+  11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205
+  207, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep90[] = {
-  10, 88, 185, 186, 252
+  16, 96, 199, 200, 267
 };
 
 static const short dep91[] = {
-  6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2157, 2158, 2161, 2164, 4127, 
+  12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2165, 2166, 2169, 2172, 4135, 
+  
 };
 
 static const short dep92[] = {
-  11, 88, 188, 189, 252
+  17, 96, 202, 203, 267
 };
 
 static const short dep93[] = {
-  7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2157, 2158, 2161, 2164, 4127, 
+  13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2165, 2166, 2169, 2172, 4135, 
+  
 };
 
 static const short dep94[] = {
-  12, 88, 191, 192, 252
+  18, 96, 205, 206, 267
 };
 
 static const short dep95[] = {
-  8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2157, 2158, 2161, 2164, 4127, 
+  14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2165, 2166, 2169, 2172, 4135, 
+  
 };
 
 static const short dep96[] = {
-  9, 88, 182, 183, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317
-  2318, 2321, 2322, 2325, 2326
+  15, 96, 196, 197, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332
+  2333, 2336, 2337, 2340, 2341
 };
 
 static const short dep97[] = {
-  5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2126, 2127, 2128, 2157, 2158, 2161, 
-  2164, 2314, 2317, 2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518, 
+  11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166, 
+  2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526, 
+  
 };
 
 static const short dep98[] = {
-  9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252, 2157, 2158
-  2159, 2161, 2162, 2164, 2165, 2314, 2317, 2318, 2321, 2322, 2325, 2326
+  15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2165, 2166
+  2167, 2169, 2170, 2172, 2173, 2329, 2332, 2333, 2336, 2337, 2340, 2341
 };
 
 static const short dep99[] = {
-  5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193
-  252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2314, 2317, 2318, 2321, 2322
-  2325, 2326, 4127, 16516, 16518
+  11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205
+  207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2329, 2332, 2333, 2336
+  2337, 2340, 2341, 4135, 16524, 16526
 };
 
 static const short dep100[] = {
-  10, 88, 185, 186, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317
-  2318, 2321, 2322, 2325, 2326
+  16, 96, 199, 200, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332
+  2333, 2336, 2337, 2340, 2341
 };
 
 static const short dep101[] = {
-  6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2126, 2127, 2128, 2157, 2158, 2161, 
-  2164, 2314, 2317, 2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518, 
+  12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166, 
+  2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526, 
+  
 };
 
 static const short dep102[] = {
-  11, 88, 188, 189, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317
-  2318, 2321, 2322, 2325, 2326
+  17, 96, 202, 203, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332
+  2333, 2336, 2337, 2340, 2341
 };
 
 static const short dep103[] = {
-  7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2126, 2127, 2128, 2157, 2158, 2161, 
-  2164, 2314, 2317, 2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518, 
+  13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166, 
+  2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526, 
+  
 };
 
 static const short dep104[] = {
-  12, 88, 191, 192, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317
-  2318, 2321, 2322, 2325, 2326
+  18, 96, 205, 206, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332
+  2333, 2336, 2337, 2340, 2341
 };
 
 static const short dep105[] = {
-  8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2126, 2127, 2128, 2157, 2158, 2161, 
-  2164, 2314, 2317, 2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518, 
+  14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166, 
+  2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526, 
+  
 };
 
 static const short dep106[] = {
-  9, 88, 182, 183, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794
-  22797, 22798, 22801, 22802, 22805, 22806
+  15, 96, 196, 197, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809
+  22812, 22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep107[] = {
-  5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 4127, 16516, 16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806
-  
+  11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820
+  22821, 
 };
 
 static const short dep108[] = {
-  9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252, 22637, 22638
-  22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801, 22802, 22805
-  22806
+  15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 22645, 22646
+  22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816, 22817, 22820
+  22821
 };
 
 static const short dep109[] = {
-  5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193
-  252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 4127, 16516, 16518, 22794
-  22797, 22798, 22801, 22802, 22805, 22806
+  11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205
+  207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 4135, 16524, 16526, 22809
+  22812, 22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep110[] = {
-  10, 88, 185, 186, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794
-  22797, 22798, 22801, 22802, 22805, 22806
+  16, 96, 199, 200, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809
+  22812, 22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep111[] = {
-  6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 4127, 16516, 16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806
-  
+  12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820
+  22821, 
 };
 
 static const short dep112[] = {
-  11, 88, 188, 189, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794
-  22797, 22798, 22801, 22802, 22805, 22806
+  17, 96, 202, 203, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809
+  22812, 22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep113[] = {
-  7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 4127, 16516, 16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806
-  
+  13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820
+  22821, 
 };
 
 static const short dep114[] = {
-  12, 88, 191, 192, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794
-  22797, 22798, 22801, 22802, 22805, 22806
+  18, 96, 205, 206, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809
+  22812, 22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep115[] = {
-  8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2126, 2127, 2128, 2157, 2158, 2161
-  2164, 4127, 16516, 16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806
-  
+  14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166
+  2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820
+  22821, 
 };
 
 static const short dep116[] = {
-  88, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317, 2318, 2321
-  2322, 2325, 2326
+  96, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332, 2333, 2336
+  2337, 2340, 2341
 };
 
 static const short dep117[] = {
-  32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2314, 2317
-  2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518
+  40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2329, 2332
+  2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526
 };
 
 static const short dep118[] = {
-  88, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798
-  22801, 22802, 22805, 22806
+  96, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813
+  22816, 22817, 22820, 22821
 };
 
 static const short dep119[] = {
-  32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 4127, 16516
-  16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806
+  40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 4135, 16524
+  16526, 22809, 22812, 22813, 22816, 22817, 22820, 22821
 };
 
 static const short dep120[] = {
-  13, 14, 32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2295
-  4127, 16516, 16518, 18731, 18733, 18734, 18736
+  19, 20, 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310
+  4135, 16524, 16526, 18746, 18748, 18749, 18751
 };
 
 static const short dep121[] = {
-  32, 33, 88, 148, 166, 167, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164
-  4127, 20605
+  40, 41, 96, 156, 174, 175, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172
+  4135, 20613
 };
 
 static const short dep122[] = {
-  88, 252, 2075, 2076, 2256, 2257
+  96, 267, 2083, 2084, 2271, 2272
 };
 
 static const short dep123[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2255, 2257
-  4127, 20605
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2270, 2272
+  4135, 20613
 };
 
 static const short dep124[] = {
-  32, 33, 88, 166, 252, 2074, 2076, 2157, 2158, 2161, 2164, 2297, 4127, 20605
+  40, 41, 96, 174, 267, 2082, 2084, 2165, 2166, 2169, 2172, 2312, 4135, 20613
   
 };
 
 static const short dep125[] = {
-  88, 252, 14446, 14448, 14449, 14451, 14452, 14454, 14605, 14606, 14609, 14610
-  14613, 14614
+  96, 267, 14454, 14456, 14457, 14459, 14460, 14462, 14620, 14621, 14624, 14625
+  14628, 14629
 };
 
 static const short dep126[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 4127, 14605, 14606, 14609, 14610
-  14613, 14614, 20605, 24685, 24686, 24689, 24692
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 4135, 14620, 14621, 14624, 14625
+  14628, 14629, 20613, 24693, 24694, 24697, 24700
 };
 
 static const short dep127[] = {
-  88, 113, 115, 116, 118, 252, 273, 274, 277, 278
+  96, 121, 123, 124, 126, 267, 288, 289, 292, 293
 };
 
 static const short dep128[] = {
-  32, 33, 88, 166, 252, 273, 274, 277, 278, 4127, 24685, 24686, 24689, 24692
+  40, 41, 96, 174, 267, 288, 289, 292, 293, 4135, 24693, 24694, 24697, 24700
   
 };
 
 static const short dep129[] = {
-  32, 33, 88, 166, 252, 2157, 2158, 2161, 2164, 2297, 4127, 20605
+  40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 2312, 4135, 20613
 };
 
 static const short dep130[] = {
-  32, 33, 88, 110, 113, 116, 166, 252, 2297, 4127, 20605, 24685
+  40, 41, 96, 118, 121, 124, 174, 267, 2312, 4135, 20613, 24693
 };
 
 static const short dep131[] = {
-  4, 17, 19, 20, 88, 177, 198, 201, 252, 2073, 2254
+  6, 24, 26, 27, 96, 187, 213, 216, 267, 2081, 2269
 };
 
 static const short dep132[] = {
-  32, 33, 88, 166, 177, 198, 200, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164
-  2254, 4127, 20605
+  40, 41, 96, 174, 187, 213, 215, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172
+  2269, 4135, 20613
 };
 
 static const short dep133[] = {
-  4, 17, 18, 19, 32, 33, 88, 166, 252, 2073, 2157, 2158, 2161, 2164, 2297, 4127
-  20605
+  6, 24, 25, 26, 40, 41, 96, 174, 267, 2081, 2165, 2166, 2169, 2172, 2312, 4135
+  20613
 };
 
 static const short dep134[] = {
-  0, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127
+  0, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep135[] = {
-  0, 88, 173, 252
+  0, 96, 181, 267
 };
 
 static const short dep136[] = {
-  0, 32, 33, 88, 148, 166, 167, 173, 252, 2157, 2158, 2161, 2164, 4127
+  0, 40, 41, 96, 156, 174, 175, 181, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep137[] = {
-  32, 33, 88, 166, 173, 252, 2157, 2158, 2161, 2164, 4127
+  40, 41, 96, 174, 181, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep138[] = {
-  2, 21, 88, 175, 202, 252, 28844, 28987
+  2, 28, 96, 183, 217, 267, 28852, 29002
 };
 
 static const short dep139[] = {
-  1, 2, 21, 22, 88, 160, 161, 166, 175, 202, 252, 28844, 28987
+  1, 2, 28, 29, 96, 168, 169, 174, 183, 217, 267, 28852, 29002
 };
 
 static const short dep140[] = {
-  1, 21, 22, 30, 32, 33, 88, 160, 161, 166, 175, 202, 252, 4127, 28844, 28987
+  1, 28, 29, 38, 40, 41, 96, 168, 169, 174, 183, 217, 267, 4135, 28852, 29002
   
 };
 
 static const short dep141[] = {
-  0, 32, 33, 88, 166, 173, 252, 2157, 2158, 2161, 2164, 4127
+  0, 40, 41, 96, 174, 181, 267, 2165, 2166, 2169, 2172, 4135
 };
 
 static const short dep142[] = {
-  1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23, 88, 174, 175, 
-  176, 178, 179, 180, 181, 183, 184, 186, 187, 189, 190, 192, 193, 194, 195, 
-  196, 202, 203, 204, 252, 2064, 2073, 2245, 2254, 28844, 28987, 
+  1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 
+  28, 29, 30, 31, 96, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, 
+  194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211, 217, 
+  218, 219, 267, 2071, 2081, 2260, 2269, 28852, 29002, 
 };
 
 static const short dep143[] = {
-  22, 32, 33, 88, 126, 166, 174, 175, 176, 178, 179, 180, 181, 183, 184, 186, 
-  187, 189, 190, 192, 193, 194, 195, 196, 202, 203, 204, 252, 2129, 2130, 2131, 
-  2157, 2158, 2161, 2164, 2245, 2254, 4127, 20605, 28844, 28987, 
+  29, 40, 41, 96, 134, 174, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 
+  193, 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211, 
+  217, 218, 219, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2260, 2269, 
+  4135, 20613, 28852, 29002, 
 };
 
 static const short dep144[] = {
-  88, 252, 14455, 14457, 14458, 14460, 14489, 14490, 14505, 14615, 14616, 14636
-  14637, 14639, 14640, 14649
+  96, 267, 14463, 14465, 14466, 14468, 14497, 14498, 14513, 14630, 14631, 14651
+  14652, 14654, 14655, 14664
 };
 
 static const short dep145[] = {
-  32, 33, 88, 165, 166, 252, 2157, 2158, 2161, 2164, 4127, 14615, 14616, 14636
-  14637, 14639, 14640, 14649
+  40, 41, 96, 173, 174, 267, 2165, 2166, 2169, 2172, 4135, 14630, 14631, 14651
+  14652, 14654, 14655, 14664
 };
 
 static const short dep146[] = {
-  14455, 14457, 14458, 14460, 14489, 14490, 14505, 14615, 14616, 14636, 14637
-  14639, 14640, 14649
+  14463, 14465, 14466, 14468, 14497, 14498, 14513, 14630, 14631, 14651, 14652
+  14654, 14655, 14664
 };
 
 static const short dep147[] = {
-  165, 14615, 14616, 14636, 14637, 14639, 14640, 14649
+  173, 14630, 14631, 14651, 14652, 14654, 14655, 14664
 };
 
 static const short dep148[] = {
-  88, 252, 14456, 14457, 14459, 14460, 14468, 14469, 14470, 14471, 14472, 14473
-  14474, 14475, 14477, 14480, 14481, 14489, 14490, 14491, 14492, 14493, 14498
-  14499, 14500, 14501, 14505, 14615, 14616, 14622, 14623, 14624, 14625, 14627
-  14629, 14636, 14637, 14639, 14640, 14641, 14642, 14645, 14646, 14649
+  96, 267, 14464, 14465, 14467, 14468, 14476, 14477, 14478, 14479, 14480, 14481
+  14482, 14483, 14485, 14488, 14489, 14497, 14498, 14499, 14500, 14501, 14506
+  14507, 14508, 14509, 14513, 14630, 14631, 14637, 14638, 14639, 14640, 14642
+  14644, 14651, 14652, 14654, 14655, 14656, 14657, 14660, 14661, 14664
 };
 
 static const short dep149[] = {
-  32, 33, 64, 88, 126, 166, 252, 2157, 2158, 2161, 2164, 4127, 14615, 14616
-  14622, 14623, 14624, 14625, 14627, 14629, 14636, 14637, 14639, 14640, 14641
-  14642, 14645, 14646, 14649
+  40, 41, 72, 96, 134, 174, 267, 2165, 2166, 2169, 2172, 4135, 14630, 14631
+  14637, 14638, 14639, 14640, 14642, 14644, 14651, 14652, 14654, 14655, 14656
+  14657, 14660, 14661, 14664
 };
 
 static const short dep150[] = {
-  1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23, 32, 33, 88, 126
-  163, 166, 252, 2064, 2073, 2157, 2158, 2161, 2164, 2297, 4127, 20605, 28844
-  
+  1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
+  28, 29, 30, 31, 40, 41, 96, 134, 171, 174, 267, 2071, 2081, 2165, 2166, 2169
+  2172, 2312, 4135, 20613, 28852, 
 };
 
 static const short dep151[] = {
-  35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55
-  56, 57, 59, 61, 62, 63, 64, 85, 87, 88, 213, 214, 215, 216, 217, 218, 219
-  220, 221, 222, 223, 225, 226, 227, 228, 229, 231, 233, 234, 235, 251, 252
-  2108, 2280
+  43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63
+  64, 65, 67, 69, 70, 71, 72, 93, 95, 96, 228, 229, 230, 231, 232, 233, 234
+  235, 236, 237, 238, 240, 241, 242, 243, 244, 246, 248, 249, 250, 266, 267
+  2116, 2295
 };
 
 static const short dep152[] = {
-  32, 33, 87, 88, 126, 145, 166, 213, 214, 215, 216, 217, 218, 219, 220, 221
-  222, 223, 225, 226, 227, 228, 229, 231, 233, 234, 235, 251, 252, 2129, 2130
-  2131, 2157, 2158, 2161, 2164, 2280, 4127, 20605
+  40, 41, 95, 96, 134, 153, 174, 228, 229, 230, 231, 232, 233, 234, 235, 236
+  237, 238, 240, 241, 242, 243, 244, 246, 248, 249, 250, 266, 267, 2137, 2138
+  2139, 2165, 2166, 2169, 2172, 2295, 4135, 20613
 };
 
 static const short dep153[] = {
-  51, 86, 88, 224, 251, 252, 2131, 2297
+  59, 94, 96, 239, 266, 267, 2139, 2312
 };
 
 static const short dep154[] = {
-  32, 33, 35, 36, 38, 40, 41, 43, 44, 45, 46, 48, 49, 52, 53, 55, 56, 57, 58
-  59, 61, 62, 63, 85, 86, 88, 126, 145, 166, 224, 251, 252, 2099, 2108, 2157
-  2158, 2161, 2164, 2297, 4127, 20605
+  40, 41, 43, 44, 46, 48, 49, 51, 52, 53, 54, 56, 57, 60, 61, 63, 64, 65, 66
+  67, 69, 70, 71, 93, 94, 96, 134, 153, 174, 239, 266, 267, 2107, 2116, 2165
+  2166, 2169, 2172, 2312, 4135, 20613
 };
 
 static const short dep155[] = {
-  2, 21, 33, 88, 175, 202, 211, 252, 2131, 2297, 28844, 28987
+  2, 28, 41, 96, 183, 217, 226, 267, 2139, 2312, 28852, 29002
 };
 
 static const short dep156[] = {
-  2, 18, 19, 21, 22, 30, 32, 33, 88, 160, 161, 166, 175, 202, 211, 252, 2297
-  4127, 20605, 28844, 28987
+  2, 25, 26, 28, 29, 38, 40, 41, 96, 168, 169, 174, 183, 217, 226, 267, 2312
+  4135, 20613, 28852, 29002
 };
 
 static const short dep157[] = {
-  88, 120, 121, 123, 124, 128, 129, 132, 133, 134, 135, 136, 137, 138, 139
-  141, 144, 145, 149, 150, 153, 154, 155, 156, 157, 159, 160, 162, 163, 164
-  165, 167, 168, 169, 252, 279, 280, 284, 286, 287, 288, 289, 291, 293, 297
-  300, 301, 303, 304, 305, 306, 308, 309, 310, 312, 313
+  96, 128, 129, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 147
+  149, 152, 153, 157, 158, 161, 162, 163, 164, 165, 167, 168, 170, 171, 172
+  173, 175, 176, 177, 267, 294, 295, 299, 301, 302, 303, 304, 306, 308, 312
+  315, 316, 318, 319, 320, 321, 323, 324, 325, 327, 328
 };
 
 static const short dep158[] = {
-  32, 33, 64, 88, 126, 166, 252, 279, 280, 284, 286, 287, 288, 289, 291, 293
-  297, 300, 301, 303, 304, 305, 306, 308, 309, 310, 312, 313, 2129, 2130, 2131
-  2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 72, 96, 134, 174, 267, 294, 295, 299, 301, 302, 303, 304, 306, 308
+  312, 315, 316, 318, 319, 320, 321, 323, 324, 325, 327, 328, 2137, 2138, 2139
+  2165, 2166, 2169, 2172, 4135, 20613
 };
 
 static const short dep159[] = {
-  88, 119, 121, 122, 124, 153, 154, 169, 252, 279, 280, 300, 301, 303, 304
-  313
+  96, 127, 129, 130, 132, 161, 162, 177, 267, 294, 295, 315, 316, 318, 319
+  328
 };
 
 static const short dep160[] = {
-  32, 33, 88, 165, 166, 252, 279, 280, 300, 301, 303, 304, 313, 2129, 2130
-  2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 96, 173, 174, 267, 294, 295, 315, 316, 318, 319, 328, 2137, 2138
+  2139, 2165, 2166, 2169, 2172, 4135, 20613
 };
 
 static const short dep161[] = {
-  32, 33, 88, 121, 124, 126, 129, 130, 133, 135, 137, 139, 141, 142, 144, 148
-  149, 151, 152, 153, 154, 156, 157, 159, 161, 162, 164, 166, 168, 169, 252
-  2157, 2158, 2161, 2164, 2297, 4127, 20605
+  40, 41, 96, 129, 132, 134, 137, 138, 141, 143, 145, 147, 149, 150, 152, 156
+  157, 159, 160, 161, 162, 164, 165, 167, 169, 170, 172, 174, 176, 177, 267
+  2165, 2166, 2169, 2172, 2312, 4135, 20613
 };
 
 static const short dep162[] = {
-  32, 33, 88, 121, 124, 153, 154, 166, 169, 252, 2157, 2158, 2161, 2164, 2297
-  4127, 20605
+  40, 41, 96, 129, 132, 161, 162, 174, 177, 267, 2165, 2166, 2169, 2172, 2312
+  4135, 20613
 };
 
 static const short dep163[] = {
-  32, 33, 67, 68, 73, 75, 88, 102, 126, 155, 166, 170, 252, 2129, 2130, 2131
-  2157, 2158, 2161, 2164, 2297, 4127, 20605
+  40, 41, 75, 76, 81, 83, 96, 110, 134, 163, 174, 178, 267, 2137, 2138, 2139
+  2165, 2166, 2169, 2172, 2312, 4135, 20613
 };
 
 static const short dep164[] = {
-  32, 33, 67, 68, 73, 75, 88, 102, 126, 127, 128, 130, 131, 155, 166, 170, 252
-  2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 75, 76, 81, 83, 96, 110, 134, 135, 136, 138, 139, 163, 174, 178, 267
+  2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
 };
 
 static const short dep165[] = {
-  68, 69, 88, 92, 93, 239, 240, 252, 254, 255
+  76, 77, 96, 100, 101, 254, 255, 267, 269, 270
 };
 
 static const short dep166[] = {
-  32, 33, 39, 54, 69, 71, 77, 88, 90, 93, 126, 145, 166, 170, 239, 240, 252
-  254, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 47, 62, 77, 79, 85, 96, 98, 101, 134, 153, 174, 178, 254, 255, 267
+  269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
 };
 
 static const short dep167[] = {
-  32, 33, 39, 54, 69, 71, 88, 90, 93, 95, 97, 126, 145, 166, 170, 239, 240
-  252, 254, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 47, 62, 77, 79, 96, 98, 101, 103, 105, 134, 153, 174, 178, 254, 255
+  267, 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
 };
 
 static const short dep168[] = {
-  88, 252, 12458, 12459, 12602
+  96, 267, 12466, 12467, 12617
 };
 
 static const short dep169[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127
-  12602, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135
+  12617, 20613
 };
 
 static const short dep170[] = {
-  88, 252, 6210, 6211, 6381
+  96, 267, 6218, 6219, 6396
 };
 
 static const short dep171[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127
-  6381, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135
+  6396, 20613
 };
 
 static const short dep172[] = {
-  88, 252, 6228, 6394
+  96, 267, 6236, 6409
 };
 
 static const short dep173[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127
-  6394, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135
+  6409, 20613
 };
 
 static const short dep174[] = {
-  88, 252, 6246, 6247, 6248, 6249, 6405, 6407, 8454
+  96, 267, 6254, 6255, 6256, 6257, 6420, 6422, 8469
 };
 
 static const short dep175[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127
-  6249, 6406, 6407, 8295, 8453, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135
+  6257, 6421, 6422, 8303, 8468, 20613
 };
 
 static const short dep176[] = {
-  88, 252, 6250, 6251, 6408
+  96, 267, 6258, 6259, 6423
 };
 
 static const short dep177[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127
-  6408, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135
+  6423, 20613
 };
 
 static const short dep178[] = {
-  88, 252, 6252, 6409
+  96, 267, 6260, 6424
 };
 
 static const short dep179[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127
-  6409, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135
+  6424, 20613
 };
 
 static const short dep180[] = {
-  88, 252, 10341, 10500
+  96, 267, 10349, 10515
 };
 
 static const short dep181[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127
-  10500, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135
+  10515, 20613
 };
 
 static const short dep182[] = {
-  68, 69, 73, 74, 88, 92, 93, 239, 240, 242, 243, 252, 254, 255
+  76, 77, 81, 82, 96, 100, 101, 254, 255, 257, 258, 267, 269, 270
 };
 
 static const short dep183[] = {
-  32, 33, 39, 54, 69, 71, 74, 77, 88, 90, 93, 126, 145, 166, 170, 239, 240
-  242, 244, 252, 254, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 47, 62, 77, 79, 82, 85, 96, 98, 101, 134, 153, 174, 178, 254, 255
+  257, 259, 267, 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
   
 };
 
 static const short dep184[] = {
-  68, 69, 88, 92, 93, 95, 96, 239, 240, 252, 254, 255, 256, 257
+  76, 77, 96, 100, 101, 103, 104, 254, 255, 267, 269, 270, 271, 272
 };
 
 static const short dep185[] = {
-  32, 33, 39, 54, 69, 71, 88, 90, 93, 95, 97, 126, 145, 166, 170, 239, 240
-  252, 254, 255, 256, 257, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 47, 62, 77, 79, 96, 98, 101, 103, 105, 134, 153, 174, 178, 254, 255
+  267, 269, 270, 271, 272, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
   
 };
 
 static const short dep186[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297
-  4127, 12459, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312
+  4135, 12467, 20613
 };
 
 static const short dep187[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297
-  4127, 6210, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312
+  4135, 6218, 20613
 };
 
 static const short dep188[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297
-  4127, 6228, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312
+  4135, 6236, 20613
 };
 
 static const short dep189[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297
-  4127, 6248, 8294, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312
+  4135, 6256, 8302, 20613
 };
 
 static const short dep190[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297
-  4127, 6250, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312
+  4135, 6258, 20613
 };
 
 static const short dep191[] = {
-  32, 33, 88, 126, 165, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164
-  2297, 4127, 6251, 6252, 20605
+  40, 41, 96, 134, 173, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172
+  2312, 4135, 6259, 6260, 20613
 };
 
 static const short dep192[] = {
-  32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297
-  4127, 10341, 20605
+  40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312
+  4135, 10349, 20613
 };
 
 static const short dep193[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, 4127
-  6178, 20605
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, 4135
+  6186, 20613
 };
 
 static const short dep194[] = {
-  68, 70, 71, 88, 89, 90, 91, 238, 239, 252, 253, 254
+  76, 78, 79, 96, 97, 98, 99, 253, 254, 267, 268, 269
 };
 
 static const short dep195[] = {
-  32, 33, 69, 70, 74, 76, 88, 91, 93, 95, 98, 126, 166, 170, 238, 240, 252
-  253, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 77, 78, 82, 84, 96, 99, 101, 103, 106, 134, 174, 178, 253, 255, 267
+  268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
 };
 
 static const short dep196[] = {
-  68, 70, 71, 72, 88, 89, 90, 91, 94, 238, 239, 241, 252, 253, 254
+  76, 78, 79, 80, 96, 97, 98, 99, 102, 253, 254, 256, 267, 268, 269
 };
 
 static const short dep197[] = {
-  32, 33, 69, 70, 72, 74, 76, 88, 91, 93, 94, 95, 98, 126, 166, 170, 238, 240
-  241, 252, 253, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 77, 78, 80, 82, 84, 96, 99, 101, 102, 103, 106, 134, 174, 178, 253
+  255, 256, 267, 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
   
 };
 
 static const short dep198[] = {
-  68, 70, 71, 75, 76, 77, 88, 89, 90, 91, 238, 239, 244, 245, 252, 253, 254
+  76, 78, 79, 83, 84, 85, 96, 97, 98, 99, 253, 254, 259, 260, 267, 268, 269
   
 };
 
 static const short dep199[] = {
-  32, 33, 69, 70, 74, 76, 88, 91, 93, 126, 166, 170, 238, 240, 243, 245, 252
-  253, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 77, 78, 82, 84, 96, 99, 101, 134, 174, 178, 253, 255, 258, 260, 267
+  268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
 };
 
 static const short dep200[] = {
-  68, 70, 71, 88, 89, 90, 91, 97, 98, 99, 238, 239, 252, 253, 254, 257, 258
+  76, 78, 79, 96, 97, 98, 99, 105, 106, 107, 253, 254, 267, 268, 269, 272, 273
   
 };
 
 static const short dep201[] = {
-  32, 33, 69, 70, 88, 91, 93, 95, 98, 126, 166, 170, 238, 240, 252, 253, 255
-  256, 258, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 77, 78, 96, 99, 101, 103, 106, 134, 174, 178, 253, 255, 267, 268
+  270, 271, 273, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613
 };
 
 static const short dep202[] = {
-  32, 33, 38, 62, 88, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164
-  2297, 4127, 20605
+  40, 41, 46, 70, 96, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172
+  2312, 4135, 20613
 };
 
 static const short dep203[] = {
-  32, 33, 88, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297
-  4127, 20605
+  40, 41, 96, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312
+  4135, 20613
 };
 
 static const short dep204[] = {
-  32, 33, 68, 73, 75, 88, 126, 166, 170, 252, 2129, 2130, 2131, 2157, 2158
-  2161, 2164, 2297, 4127, 20605
+  40, 41, 76, 81, 83, 96, 134, 174, 178, 267, 2137, 2138, 2139, 2165, 2166
+  2169, 2172, 2312, 4135, 20613
 };
 
 static const short dep205[] = {
-  32, 33, 88, 148, 166, 167, 252, 2126, 2127, 2128, 2129, 2130, 2131, 2157
-  2158, 2161, 2164, 4127, 16516, 16518, 20605
+  40, 41, 96, 156, 174, 175, 267, 2134, 2135, 2136, 2137, 2138, 2139, 2165
+  2166, 2169, 2172, 4135, 16524, 16526, 20613
 };
 
 static const short dep206[] = {
-  32, 33, 68, 73, 75, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164
-  4127, 20605
+  40, 41, 76, 81, 83, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172
+  4135, 20613
 };
 
 static const short dep207[] = {
-  32, 33, 69, 70, 88, 91, 126, 166, 238, 240, 252, 253, 255, 2129, 2130, 2131
-  2157, 2158, 2161, 2164, 4127, 20605
+  40, 41, 77, 78, 96, 99, 134, 174, 253, 255, 267, 268, 270, 2137, 2138, 2139
+  2165, 2166, 2169, 2172, 4135, 20613
 };
 
 static const short dep208[] = {
-  32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, 130
-  131, 138, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297
-  4127, 20605
+  40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138
+  139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312
+  4135, 20613
 };
 
 static const short dep209[] = {
-  32, 33, 36, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, 
-  130, 131, 138, 140, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 
-  2164, 2297, 4127, 20605, 
+  5, 96, 186, 267, 2139, 2312, 
 };
 
 static const short dep210[] = {
-  0, 88, 173, 252, 2131, 2297, 
+  40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138, 
+  139, 146, 163, 174, 178, 186, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 
+  2312, 4135, 20613, 
 };
 
 static const short dep211[] = {
-  0, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128
-  130, 131, 138, 155, 166, 170, 173, 252, 2129, 2130, 2131, 2157, 2158, 2161
-  2164, 2297, 4127, 20605
+  40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136
+  138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169
+  2172, 2312, 4135, 20613
 };
 
 static const short dep212[] = {
-  0, 32, 33, 36, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 
-  128, 130, 131, 138, 140, 155, 166, 170, 173, 252, 2129, 2130, 2131, 2157, 
-  2158, 2161, 2164, 2297, 4127, 20605, 
+  0, 96, 181, 267, 2139, 2312, 
 };
 
 static const short dep213[] = {
-  23, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128
-  130, 131, 138, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164
-  2297, 4127, 20605
+  0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136
+  138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169
+  2172, 2312, 4135, 20613
 };
 
 static const short dep214[] = {
-  0, 88, 173, 252, 2297, 26706, 
+  0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 
+  136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 
+  2166, 2169, 2172, 2312, 4135, 20613, 
 };
 
 static const short dep215[] = {
-  0, 88, 100, 173, 252, 259, 
+  31, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 
+  138, 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 
+  2312, 4135, 20613, 
 };
 
 static const short dep216[] = {
-  0, 32, 33, 67, 68, 73, 75, 88, 102, 119, 120, 122, 123, 126, 127, 128, 130, 
-  131, 138, 155, 166, 170, 173, 252, 259, 2129, 2130, 2131, 2157, 2158, 2161, 
-  2164, 4127, 20605, 
+  0, 96, 181, 267, 2312, 26714, 
 };
 
 static const short dep217[] = {
-  0, 23, 88, 100, 173, 204, 252, 259
+  0, 96, 108, 181, 267, 274
 };
 
 static const short dep218[] = {
-  0, 32, 33, 67, 68, 73, 75, 88, 102, 119, 120, 122, 123, 126, 127, 128, 130
-  131, 138, 155, 166, 170, 173, 204, 252, 259, 2129, 2130, 2131, 2157, 2158
-  2161, 2164, 4127, 20605
+  0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138
+  139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, 2169
+  2172, 4135, 20613
 };
 
 static const short dep219[] = {
-  0, 88, 100, 173, 252, 259, 2131, 2297, 
+  0, 5, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 
+  138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, 
+  2169, 2172, 4135, 20613, 
 };
 
 static const short dep220[] = {
-  0, 3, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 
-  128, 130, 131, 138, 155, 166, 170, 173, 252, 259, 2129, 2130, 2131, 2157, 
-  2158, 2161, 2164, 2297, 4127, 20605, 
+  0, 31, 96, 108, 181, 219, 267, 274, 
 };
 
 static const short dep221[] = {
-  0, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, 
-  130, 131, 138, 155, 166, 170, 173, 252, 259, 2129, 2130, 2131, 2157, 2158
-  2161, 2164, 2297, 4127, 20605
+  0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138, 
+  139, 146, 163, 174, 178, 181, 219, 267, 274, 2137, 2138, 2139, 2165, 2166
+  2169, 2172, 4135, 20613
 };
 
 static const short dep222[] = {
-  32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2297, 4127, 
-  16516, 16518, 20605, 
+  0, 96, 108, 181, 267, 274, 2139, 2312, 
 };
 
 static const short dep223[] = {
-  0, 32, 33, 67, 68, 73, 75, 88, 102, 119, 120, 122, 123, 126, 127, 128, 130
-  131, 138, 155, 166, 170, 173, 252, 259, 2129, 2130, 2131, 2157, 2158, 2161
-  2164, 2297, 4127, 20605
+  0, 4, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135
+  136, 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165
+  2166, 2169, 2172, 2312, 4135, 20613
 };
 
 static const short dep224[] = {
-  0, 23, 88, 100, 173, 204, 252, 259, 2131, 2297, 
+  0, 4, 5, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 
+  136, 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 
+  2166, 2169, 2172, 2312, 4135, 20613, 
 };
 
 static const short dep225[] = {
-  0, 32, 33, 67, 68, 73, 75, 88, 102, 119, 120, 122, 123, 126, 127, 128, 130
-  131, 138, 155, 166, 170, 173, 204, 252, 259, 2129, 2130, 2131, 2157, 2158
-  2161, 2164, 2297, 4127, 20605
+  0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136
+  138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166
+  2169, 2172, 2312, 4135, 20613
 };
 
 static const short dep226[] = {
-  32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, 130, 
-  131, 138, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2295, 
-  4127, 16516, 16518, 18731, 18733, 18734, 18736, 20605, 
+  40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2312, 4135, 
+  16524, 16526, 20613, 
 };
 
 static const short dep227[] = {
-  32, 33, 36, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, 
-  130, 131, 138, 140, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 20605
+  0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138, 
+  139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, 2169
+  2172, 2312, 4135, 20613
 };
 
 static const short dep228[] = {
-  0, 88, 173, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735
+  0, 31, 96, 108, 181, 219, 267, 274, 2139, 2312
 };
 
 static const short dep229[] = {
-  0, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, 
-  130, 131, 138, 155, 166, 170, 173, 252, 2129, 2130, 2131, 2157, 2158, 2161
-  2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 20605
+  0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138, 
+  139, 146, 163, 174, 178, 181, 219, 267, 274, 2137, 2138, 2139, 2165, 2166
+  2169, 2172, 2312, 4135, 20613
 };
 
 static const short dep230[] = {
-  0, 32, 33, 36, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 
-  128, 130, 131, 138, 140, 155, 166, 170, 173, 252, 2129, 2130, 2131, 2157, 
-  2158, 2161, 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 20605, 
-  
+  40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138, 
+  139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310, 
+  4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613, 
 };
 
 static const short dep231[] = {
-  0, 88, 173, 252, 2128, 2295, 18585, 18586, 18731, 18732, 18734, 18735, 
+  40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 
+  138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 
+  2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613, 
 };
 
 static const short dep232[] = {
-  32, 33, 67, 88, 126, 140, 166, 252, 2157, 2158, 2161, 2164, 4127
+  0, 96, 181, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750
 };
 
 static const short dep233[] = {
-  32, 33, 67, 88, 126, 127, 131, 140, 166, 252, 2157, 2158, 2161, 2164, 4127, 
-  
+  0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 
+  138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169, 
+  2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613, 
 };
 
 static const short dep234[] = {
-  32, 33, 67, 88, 126, 140, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 
-  2297, 4127, 20605, 
+  0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 
+  136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 
+  2166, 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613, 
+  
 };
 
 static const short dep235[] = {
-  32, 33, 67, 88, 126, 127, 131, 140, 166, 252, 2129, 2130, 2131, 2157, 2158, 
-  2161, 2164, 2297, 4127, 20605, 
+  0, 96, 181, 267, 2136, 2310, 18593, 18594, 18746, 18747, 18749, 18750, 
 };
 
 static const short dep236[] = {
-  32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2295, 4127, 
-  16516, 16518, 18731, 18733, 18734, 18736, 20605, 
+  40, 41, 75, 96, 134, 148, 174, 267, 2165, 2166, 2169, 2172, 4135, 
 };
 
 static const short dep237[] = {
-  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 
-  88, 174, 175, 176, 177, 178, 179, 180, 181, 183, 184, 186, 187, 189, 190, 
-  192, 193, 194, 195, 196, 198, 201, 202, 203, 204, 252, 2064, 2073, 2131, 2245, 
-  2254, 2297, 28844, 28987, 
+  40, 41, 75, 96, 134, 135, 139, 148, 174, 267, 2165, 2166, 2169, 2172, 4135, 
+  
 };
 
 static const short dep238[] = {
-  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 
-  32, 33, 88, 126, 163, 166, 174, 175, 176, 177, 178, 179, 180, 181, 183, 184, 
-  186, 187, 189, 190, 192, 193, 194, 195, 196, 198, 200, 202, 203, 204, 252, 
-  2064, 2073, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2245, 2254, 2297, 4127, 
-  20605, 28844, 28987, 
+  40, 41, 75, 96, 134, 148, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 
+  2312, 4135, 20613, 
+};
+
+static const short dep239[] = {
+  40, 41, 75, 96, 134, 135, 139, 148, 174, 267, 2137, 2138, 2139, 2165, 2166, 
+  2169, 2172, 2312, 4135, 20613, 
+};
+
+static const short dep240[] = {
+  40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310, 4135, 
+  16524, 16526, 18746, 18748, 18749, 18751, 20613, 
+};
+
+static const short dep241[] = {
+  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 
+  22, 24, 26, 27, 28, 29, 30, 31, 96, 182, 183, 184, 185, 186, 187, 188, 189, 
+  190, 191, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, 
+  209, 210, 211, 213, 216, 217, 218, 219, 267, 2071, 2081, 2139, 2260, 2269, 
+  2312, 28852, 29002, 
+};
+
+static const short dep242[] = {
+  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 
+  22, 24, 25, 26, 28, 29, 30, 31, 40, 41, 96, 134, 171, 174, 182, 183, 184, 
+  185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 197, 198, 200, 201, 
+  203, 204, 206, 207, 208, 209, 210, 211, 213, 215, 217, 218, 219, 267, 2071, 
+  2081, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2260, 2269, 2312, 4135, 20613, 
+  28852, 29002, 
 };
 
 #define NELS(X) (sizeof(X)/sizeof(X[0]))
@@ -1660,30 +1712,33 @@ op_dependencies[] = {
   { NELS(dep206), dep206, NELS(dep31), dep31, },
   { NELS(dep207), dep207, NELS(dep194), dep194, },
   { NELS(dep208), dep208, NELS(dep0), dep0, },
-  { NELS(dep209), dep209, NELS(dep0), dep0, },
-  { NELS(dep211), dep211, NELS(dep210), dep210, },
-  { NELS(dep212), dep212, NELS(dep210), dep210, },
-  { NELS(dep213), dep213, NELS(dep0), dep0, },
-  { NELS(dep211), dep211, NELS(dep214), dep214, },
-  { NELS(dep216), dep216, NELS(dep215), dep215, },
+  { NELS(dep210), dep210, NELS(dep209), dep209, },
+  { NELS(dep211), dep211, NELS(dep0), dep0, },
+  { NELS(dep213), dep213, NELS(dep212), dep212, },
+  { NELS(dep214), dep214, NELS(dep212), dep212, },
+  { NELS(dep215), dep215, NELS(dep0), dep0, },
+  { NELS(dep213), dep213, NELS(dep216), dep216, },
   { NELS(dep218), dep218, NELS(dep217), dep217, },
-  { NELS(dep220), dep220, NELS(dep219), dep219, },
-  { NELS(dep221), dep221, NELS(dep219), dep219, },
-  { NELS(dep222), dep222, NELS(dep0), dep0, },
-  { NELS(dep223), dep223, NELS(dep219), dep219, },
-  { NELS(dep225), dep225, NELS(dep224), dep224, },
-  { NELS(dep226), dep226, NELS(dep62), dep62, },
-  { NELS(dep227), dep227, NELS(dep62), dep62, },
+  { NELS(dep219), dep219, NELS(dep217), dep217, },
+  { NELS(dep221), dep221, NELS(dep220), dep220, },
+  { NELS(dep223), dep223, NELS(dep222), dep222, },
+  { NELS(dep224), dep224, NELS(dep222), dep222, },
+  { NELS(dep225), dep225, NELS(dep222), dep222, },
+  { NELS(dep226), dep226, NELS(dep0), dep0, },
+  { NELS(dep227), dep227, NELS(dep222), dep222, },
   { NELS(dep229), dep229, NELS(dep228), dep228, },
-  { NELS(dep230), dep230, NELS(dep228), dep228, },
-  { NELS(dep229), dep229, NELS(dep231), dep231, },
-  { NELS(dep232), dep232, NELS(dep31), dep31, },
-  { NELS(dep233), dep233, NELS(dep31), dep31, },
-  { NELS(dep234), dep234, NELS(dep0), dep0, },
-  { NELS(dep235), dep235, NELS(dep0), dep0, },
-  { NELS(dep236), dep236, NELS(dep62), dep62, },
+  { NELS(dep230), dep230, NELS(dep62), dep62, },
+  { NELS(dep231), dep231, NELS(dep62), dep62, },
+  { NELS(dep233), dep233, NELS(dep232), dep232, },
+  { NELS(dep234), dep234, NELS(dep232), dep232, },
+  { NELS(dep233), dep233, NELS(dep235), dep235, },
+  { NELS(dep236), dep236, NELS(dep31), dep31, },
+  { NELS(dep237), dep237, NELS(dep31), dep31, },
+  { NELS(dep238), dep238, NELS(dep0), dep0, },
+  { NELS(dep239), dep239, NELS(dep0), dep0, },
+  { NELS(dep240), dep240, NELS(dep62), dep62, },
   { 0, NULL, 0, NULL, },
-  { NELS(dep238), dep238, NELS(dep237), dep237, },
+  { NELS(dep242), dep242, NELS(dep241), dep241, },
 };
 
 static const struct ia64_completer_table
@@ -1701,36 +1756,36 @@ completer_table[] = {
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 449, -1, 0, 1, 6 },
-  { 0x0, 0x0, 0, 512, -1, 0, 1, 17 },
-  { 0x0, 0x0, 0, -1, -1, 0, 1, 147 },
-  { 0x0, 0x0, 0, 611, -1, 0, 1, 17 },
-  { 0x0, 0x0, 0, 1815, -1, 0, 1, 10 },
+  { 0x0, 0x0, 0, 455, -1, 0, 1, 6 },
+  { 0x0, 0x0, 0, 518, -1, 0, 1, 17 },
+  { 0x0, 0x0, 0, -1, -1, 0, 1, 150 },
+  { 0x0, 0x0, 0, 617, -1, 0, 1, 17 },
+  { 0x0, 0x0, 0, 1836, -1, 0, 1, 10 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 9 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 13 },
   { 0x1, 0x1, 0, -1, -1, 13, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
-  { 0x0, 0x0, 0, 1991, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 2014, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
-  { 0x0, 0x0, 0, -1, -1, 0, 1, 122 },
+  { 0x0, 0x0, 0, 958, -1, 0, 1, 122 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 44 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 40 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 78 },
-  { 0x0, 0x0, 0, 1855, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 1878, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
-  { 0x0, 0x0, 0, 2034, -1, 0, 1, 29 },
-  { 0x0, 0x0, 0, 1859, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 2057, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 1882, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
-  { 0x0, 0x0, 0, 1861, -1, 0, 1, 29 },
-  { 0x0, 0x0, 0, 2043, -1, 0, 1, 29 },
-  { 0x0, 0x0, 0, 2046, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 1884, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 2066, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 2069, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
@@ -1739,64 +1794,66 @@ completer_table[] = {
   { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
-  { 0x0, 0x0, 0, 2068, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 2091, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
-  { 0x0, 0x0, 0, 2071, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 2094, -1, 0, 1, 29 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 35 },
-  { 0x0, 0x0, 0, 2079, -1, 0, 1, 29 },
-  { 0x0, 0x0, 0, 1170, -1, 0, 1, 33 },
+  { 0x0, 0x0, 0, 2102, -1, 0, 1, 29 },
+  { 0x0, 0x0, 0, 1181, -1, 0, 1, 33 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 40 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
+  { 0x0, 0x0, 0, -1, -1, 0, 1, 150 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 77 },
-  { 0x0, 0x0, 0, 1203, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1212, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1221, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1230, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1239, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1248, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1257, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1266, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1275, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1285, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1295, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1305, -1, 0, 1, 124 },
-  { 0x0, 0x0, 0, 1314, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1320, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1326, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1332, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1338, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1344, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1350, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1356, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1362, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1368, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1374, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1380, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1386, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1392, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1398, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1404, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1410, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1416, -1, 0, 1, 137 },
-  { 0x0, 0x0, 0, 1420, -1, 0, 1, 142 },
-  { 0x0, 0x0, 0, 1424, -1, 0, 1, 144 },
-  { 0x0, 0x0, 0, 1428, -1, 0, 1, 144 },
+  { 0x0, 0x0, 0, 1216, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1225, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1234, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1236, -1, 0, 1, 125 },
+  { 0x0, 0x0, 0, 1245, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1254, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1263, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1272, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1281, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1290, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1300, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1310, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1320, -1, 0, 1, 124 },
+  { 0x0, 0x0, 0, 1329, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1335, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1341, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1347, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1353, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1359, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1365, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1371, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1377, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1383, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1389, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1395, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1401, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1407, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1413, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1419, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1425, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1431, -1, 0, 1, 140 },
+  { 0x0, 0x0, 0, 1435, -1, 0, 1, 145 },
+  { 0x0, 0x0, 0, 1439, -1, 0, 1, 147 },
+  { 0x0, 0x0, 0, 1443, -1, 0, 1, 147 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 79 },
-  { 0x0, 0x0, 0, 250, -1, 0, 1, 40 },
+  { 0x0, 0x0, 0, 253, -1, 0, 1, 40 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 67 },
-  { 0x1, 0x1, 0, 975, -1, 20, 1, 67 },
+  { 0x1, 0x1, 0, 984, -1, 20, 1, 67 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 68 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 69 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 70 },
@@ -1823,25 +1880,25 @@ completer_table[] = {
   { 0x0, 0x0, 0, -1, -1, 0, 1, 111 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 112 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 113 },
-  { 0x0, 0x0, 0, -1, -1, 0, 1, 148 },
-  { 0x0, 0x0, 0, -1, -1, 0, 1, 148 },
-  { 0x0, 0x0, 0, -1, -1, 0, 1, 148 },
+  { 0x0, 0x0, 0, -1, -1, 0, 1, 151 },
+  { 0x0, 0x0, 0, -1, -1, 0, 1, 151 },
+  { 0x0, 0x0, 0, -1, -1, 0, 1, 151 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 71 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, -1, -1, 0, 1, 147 },
+  { 0x0, 0x0, 0, -1, -1, 0, 1, 150 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 2371, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 2372, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2394, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2395, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 1827, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 1828, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 1848, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 1849, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 2386, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2409, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
@@ -1849,13 +1906,13 @@ completer_table[] = {
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 2387, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 2388, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 2389, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 2390, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2410, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2411, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2412, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2413, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 2373, -1, 0, 1, 0 },
-  { 0x0, 0x0, 0, 2374, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2396, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2397, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 11 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 84 },
@@ -1865,25 +1922,26 @@ completer_table[] = {
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x1, 0x1, 0, -1, -1, 13, 1, 0 },
-  { 0x0, 0x0, 0, 2392, -1, 0, 1, 0 },
+  { 0x0, 0x0, 0, 2415, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 84 },
-  { 0x0, 0x0, 0, 1692, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1694, -1, 0, 1, 135 },
-  { 0x0, 0x0, 0, 1696, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1698, -1, 0, 1, 135 },
-  { 0x0, 0x0, 0, 1700, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1702, -1, 0, 1, 135 },
-  { 0x0, 0x0, 0, 1705, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1708, -1, 0, 1, 135 },
-  { 0x0, 0x0, 0, 1711, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1712, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1713, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1714, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1715, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1716, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1717, -1, 0, 1, 130 },
-  { 0x0, 0x0, 0, 1718, -1, 0, 1, 130 },
+  { 0x0, 0x0, 0, 1711, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1713, -1, 0, 1, 138 },
+  { 0x0, 0x0, 0, 1715, -1, 0, 1, 132 },
+  { 0x0, 0x0, 0, 1717, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1719, -1, 0, 1, 138 },
+  { 0x0, 0x0, 0, 1721, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1723, -1, 0, 1, 138 },
+  { 0x0, 0x0, 0, 1726, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1729, -1, 0, 1, 138 },
+  { 0x0, 0x0, 0, 1732, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1733, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1734, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1735, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1736, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1737, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1738, -1, 0, 1, 131 },
+  { 0x0, 0x0, 0, 1739, -1, 0, 1, 131 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
@@ -1895,116 +1953,97 @@ completer_table[] = {
   { 0x0, 0x0, 0, -1, -1, 0, 1, 118 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 120 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 119 },
-  { 0x0, 0x0, 0, 1429, -1, 0, 1, 133 },
-  { 0x0, 0x0, 0, 1430, -1, 0, 1, 133 },
-  { 0x0, 0x0, 0, 1431, -1, 0, 1, 133 },
-  { 0x0, 0x0, 0, 1432, -1, 0, 1, 133 },
+  { 0x0, 0x0, 0, 1444, -1, 0, 1, 136 },
+  { 0x0, 0x0, 0, 1445, -1, 0, 1, 136 },
+  { 0x0, 0x0, 0, 1446, -1, 0, 1, 136 },
+  { 0x0, 0x0, 0, 1447, -1, 0, 1, 136 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 1, 217, -1, 0, 1, 12 },
+  { 0x0, 0x0, 1, 220, -1, 0, 1, 12 },
   { 0x1, 0x1, 2, -1, -1, 27, 1, 12 },
-  { 0x0, 0x0, 3, -1, 1112, 0, 0, -1 },
-  { 0x0, 0x0, 3, -1, 1113, 0, 0, -1 },
-  { 0x1, 0x1, 3, 2262, 1196, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2263, 1205, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2264, 1214, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2265, 1223, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2266, 1232, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2267, 1241, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2268, 1250, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2269, 1259, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2270, 1268, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2271, 1277, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2272, 1287, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2273, 1297, 33, 1, 126 },
-  { 0x1, 0x1, 3, 2274, 1310, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2275, 1316, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2276, 1322, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2277, 1328, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2278, 1334, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2279, 1340, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2280, 1346, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2281, 1352, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2282, 1358, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2283, 1364, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2284, 1370, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2285, 1376, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2286, 1382, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2287, 1388, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2288, 1394, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2289, 1400, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2290, 1406, 33, 1, 139 },
-  { 0x1, 0x1, 3, 2291, 1412, 33, 1, 139 },
+  { 0x0, 0x0, 3, -1, 1123, 0, 0, -1 },
+  { 0x0, 0x0, 3, -1, 1124, 0, 0, -1 },
+  { 0x1, 0x1, 3, 2285, 1209, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2286, 1218, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2287, 1227, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2288, 1238, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2289, 1247, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2290, 1256, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2291, 1265, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2292, 1274, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2293, 1283, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2294, 1292, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2295, 1302, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2296, 1312, 33, 1, 127 },
+  { 0x1, 0x1, 3, 2297, 1325, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2298, 1331, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2299, 1337, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2300, 1343, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2301, 1349, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2302, 1355, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2303, 1361, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2304, 1367, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2305, 1373, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2306, 1379, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2307, 1385, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2308, 1391, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2309, 1397, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2310, 1403, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2311, 1409, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2312, 1415, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2313, 1421, 33, 1, 142 },
+  { 0x1, 0x1, 3, 2314, 1427, 33, 1, 142 },
   { 0x1, 0x1, 3, -1, -1, 27, 1, 40 },
-  { 0x0, 0x0, 4, 1829, 1183, 0, 1, 132 },
-  { 0x0, 0x0, 4, 1830, 1185, 0, 1, 132 },
-  { 0x0, 0x0, 4, 1831, 1187, 0, 1, 132 },
-  { 0x0, 0x0, 4, 1832, 1189, 0, 1, 132 },
-  { 0x0, 0x0, 4, 1833, 1191, 0, 1, 133 },
-  { 0x0, 0x0, 4, 1834, 1193, 0, 1, 133 },
-  { 0x1, 0x1, 4, -1, 1200, 33, 1, 129 },
-  { 0x5, 0x5, 4, 407, 1199, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1209, 33, 1, 129 },
-  { 0x5, 0x5, 4, 408, 1208, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1218, 33, 1, 129 },
-  { 0x5, 0x5, 4, 409, 1217, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1227, 33, 1, 129 },
-  { 0x5, 0x5, 4, 410, 1226, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1236, 33, 1, 129 },
-  { 0x5, 0x5, 4, 411, 1235, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1245, 33, 1, 129 },
-  { 0x5, 0x5, 4, 412, 1244, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1254, 33, 1, 129 },
-  { 0x5, 0x5, 4, 413, 1253, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1263, 33, 1, 129 },
-  { 0x5, 0x5, 4, 414, 1262, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1272, 33, 1, 129 },
-  { 0x5, 0x5, 4, 415, 1271, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1282, 33, 1, 129 },
-  { 0x5, 0x5, 4, 881, 1280, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1292, 33, 1, 129 },
-  { 0x5, 0x5, 4, 882, 1290, 32, 1, 124 },
-  { 0x1, 0x1, 4, -1, 1302, 33, 1, 129 },
-  { 0x5, 0x5, 4, 883, 1300, 32, 1, 124 },
-  { 0x1, 0x21, 10, 1727, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 10, 1728, -1, 12, 1, 3 },
-  { 0x0, 0x0, 10, 1729, -1, 0, 1, 3 },
-  { 0x1, 0x1, 10, 1730, -1, 12, 1, 3 },
-  { 0x1, 0x1, 10, 1731, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 10, 1732, -1, 12, 1, 3 },
-  { 0x0, 0x0, 10, 346, -1, 0, 1, 3 },
-  { 0x1, 0x1, 10, 1758, -1, 12, 1, 3 },
-  { 0x1, 0x1, 10, 350, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 10, 1760, -1, 12, 1, 3 },
-  { 0x1, 0x21, 10, 1737, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 10, 1738, -1, 12, 1, 3 },
-  { 0x0, 0x0, 10, -1, 1767, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1768, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1769, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1770, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1771, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1772, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1773, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1774, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1775, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1776, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1777, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1778, 0, 0, -1 },
-  { 0x1, 0x21, 10, 1739, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 10, 1740, -1, 12, 1, 3 },
-  { 0x0, 0x0, 10, 1741, -1, 0, 1, 3 },
-  { 0x1, 0x1, 10, 1742, -1, 12, 1, 3 },
-  { 0x1, 0x1, 10, 1743, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 10, 1744, -1, 12, 1, 3 },
-  { 0x0, 0x0, 10, 370, -1, 0, 1, 3 },
-  { 0x1, 0x1, 10, 1782, -1, 12, 1, 3 },
-  { 0x1, 0x1, 10, 374, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 10, 1784, -1, 12, 1, 3 },
-  { 0x1, 0x21, 10, 1749, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 10, 1750, -1, 12, 1, 3 },
+  { 0x0, 0x0, 4, 1850, 1194, 0, 1, 135 },
+  { 0x0, 0x0, 4, 1851, 1196, 0, 1, 134 },
+  { 0x0, 0x0, 4, 1852, 1198, 0, 1, 134 },
+  { 0x0, 0x0, 4, 1853, 1200, 0, 1, 134 },
+  { 0x0, 0x0, 4, 1854, 1202, 0, 1, 134 },
+  { 0x0, 0x0, 4, 1855, 1204, 0, 1, 136 },
+  { 0x0, 0x0, 4, 1856, 1206, 0, 1, 136 },
+  { 0x1, 0x1, 4, -1, 1213, 33, 1, 130 },
+  { 0x5, 0x5, 4, 413, 1212, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1222, 33, 1, 130 },
+  { 0x5, 0x5, 4, 414, 1221, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1231, 33, 1, 130 },
+  { 0x5, 0x5, 4, 415, 1230, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1235, 32, 1, 125 },
+  { 0x1, 0x1, 4, -1, 1242, 33, 1, 130 },
+  { 0x5, 0x5, 4, 416, 1241, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1251, 33, 1, 130 },
+  { 0x5, 0x5, 4, 417, 1250, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1260, 33, 1, 130 },
+  { 0x5, 0x5, 4, 418, 1259, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1269, 33, 1, 130 },
+  { 0x5, 0x5, 4, 419, 1268, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1278, 33, 1, 130 },
+  { 0x5, 0x5, 4, 420, 1277, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1287, 33, 1, 130 },
+  { 0x5, 0x5, 4, 421, 1286, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1297, 33, 1, 130 },
+  { 0x5, 0x5, 4, 888, 1295, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1307, 33, 1, 130 },
+  { 0x5, 0x5, 4, 889, 1305, 32, 1, 124 },
+  { 0x1, 0x1, 4, -1, 1317, 33, 1, 130 },
+  { 0x5, 0x5, 4, 890, 1315, 32, 1, 124 },
+  { 0x1, 0x21, 10, 1748, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 10, 1749, -1, 12, 1, 3 },
+  { 0x0, 0x0, 10, 1750, -1, 0, 1, 3 },
+  { 0x1, 0x1, 10, 1751, -1, 12, 1, 3 },
+  { 0x1, 0x1, 10, 1752, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 10, 1753, -1, 12, 1, 3 },
+  { 0x0, 0x0, 10, 351, -1, 0, 1, 3 },
+  { 0x1, 0x1, 10, 1779, -1, 12, 1, 3 },
+  { 0x1, 0x1, 10, 355, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 10, 1781, -1, 12, 1, 3 },
+  { 0x1, 0x21, 10, 1758, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 10, 1759, -1, 12, 1, 3 },
+  { 0x0, 0x0, 10, -1, 1788, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1789, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1790, 0, 0, -1 },
   { 0x0, 0x0, 10, -1, 1791, 0, 0, -1 },
   { 0x0, 0x0, 10, -1, 1792, 0, 0, -1 },
   { 0x0, 0x0, 10, -1, 1793, 0, 0, -1 },
@@ -2014,93 +2053,109 @@ completer_table[] = {
   { 0x0, 0x0, 10, -1, 1797, 0, 0, -1 },
   { 0x0, 0x0, 10, -1, 1798, 0, 0, -1 },
   { 0x0, 0x0, 10, -1, 1799, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1800, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1801, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1802, 0, 0, -1 },
-  { 0x1, 0x1, 10, 1751, -1, 36, 1, 3 },
-  { 0x1000001, 0x1000001, 10, 1752, -1, 12, 1, 3 },
-  { 0x0, 0x0, 10, -1, 1803, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1805, 0, 0, -1 },
-  { 0x1, 0x1, 10, 1753, -1, 36, 1, 3 },
-  { 0x1000001, 0x1000001, 10, 1754, -1, 12, 1, 3 },
-  { 0x0, 0x0, 10, -1, 1807, 0, 0, -1 },
-  { 0x0, 0x0, 10, -1, 1809, 0, 0, -1 },
+  { 0x1, 0x21, 10, 1760, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 10, 1761, -1, 12, 1, 3 },
+  { 0x0, 0x0, 10, 1762, -1, 0, 1, 3 },
+  { 0x1, 0x1, 10, 1763, -1, 12, 1, 3 },
+  { 0x1, 0x1, 10, 1764, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 10, 1765, -1, 12, 1, 3 },
+  { 0x0, 0x0, 10, 375, -1, 0, 1, 3 },
+  { 0x1, 0x1, 10, 1803, -1, 12, 1, 3 },
+  { 0x1, 0x1, 10, 379, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 10, 1805, -1, 12, 1, 3 },
+  { 0x1, 0x21, 10, 1770, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 10, 1771, -1, 12, 1, 3 },
+  { 0x0, 0x0, 10, -1, 1812, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1813, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1814, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1815, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1816, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1817, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1818, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1819, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1820, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1821, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1822, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1823, 0, 0, -1 },
+  { 0x1, 0x1, 10, 1772, -1, 36, 1, 3 },
+  { 0x1000001, 0x1000001, 10, 1773, -1, 12, 1, 3 },
+  { 0x0, 0x0, 10, -1, 1824, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1826, 0, 0, -1 },
+  { 0x1, 0x1, 10, 1774, -1, 36, 1, 3 },
+  { 0x1000001, 0x1000001, 10, 1775, -1, 12, 1, 3 },
+  { 0x0, 0x0, 10, -1, 1828, 0, 0, -1 },
+  { 0x0, 0x0, 10, -1, 1830, 0, 0, -1 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x0, 0x0, 11, 1755, -1, 0, 1, 3 },
-  { 0x1, 0x1, 11, 1756, -1, 12, 1, 3 },
+  { 0x0, 0x0, 11, 1776, -1, 0, 1, 3 },
+  { 0x1, 0x1, 11, 1777, -1, 12, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x1, 0x1, 11, 1733, -1, 12, 1, 3 },
+  { 0x1, 0x1, 11, 1754, -1, 12, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x0, 0x0, 11, 288, -1, 0, 1, 3 },
+  { 0x0, 0x0, 11, 293, -1, 0, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x200001, 0x200001, 11, 1735, -1, 12, 1, 3 },
+  { 0x200001, 0x200001, 11, 1756, -1, 12, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x1, 0x1, 11, 290, -1, 33, 1, 3 },
-  { 0x0, 0x0, 11, 1761, -1, 0, 1, 3 },
-  { 0x1, 0x1, 11, 1762, -1, 12, 1, 3 },
-  { 0x1, 0x1, 11, 1763, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 11, 1764, -1, 12, 1, 3 },
+  { 0x1, 0x1, 11, 295, -1, 33, 1, 3 },
+  { 0x0, 0x0, 11, 1782, -1, 0, 1, 3 },
+  { 0x1, 0x1, 11, 1783, -1, 12, 1, 3 },
+  { 0x1, 0x1, 11, 1784, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 11, 1785, -1, 12, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x0, 0x0, 11, 1765, -1, 0, 1, 3 },
-  { 0x1, 0x1, 11, 1766, -1, 12, 1, 3 },
+  { 0x0, 0x0, 11, 1786, -1, 0, 1, 3 },
+  { 0x1, 0x1, 11, 1787, -1, 12, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x0, 0x0, 11, 1779, -1, 0, 1, 3 },
-  { 0x1, 0x1, 11, 1780, -1, 12, 1, 3 },
+  { 0x0, 0x0, 11, 1800, -1, 0, 1, 3 },
+  { 0x1, 0x1, 11, 1801, -1, 12, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x1, 0x1, 11, 1745, -1, 12, 1, 3 },
+  { 0x1, 0x1, 11, 1766, -1, 12, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x0, 0x0, 11, 312, -1, 0, 1, 3 },
+  { 0x0, 0x0, 11, 317, -1, 0, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x200001, 0x200001, 11, 1747, -1, 12, 1, 3 },
+  { 0x200001, 0x200001, 11, 1768, -1, 12, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x1, 0x1, 11, 314, -1, 33, 1, 3 },
-  { 0x0, 0x0, 11, 1785, -1, 0, 1, 3 },
-  { 0x1, 0x1, 11, 1786, -1, 12, 1, 3 },
-  { 0x1, 0x1, 11, 1787, -1, 33, 1, 3 },
-  { 0x200001, 0x200001, 11, 1788, -1, 12, 1, 3 },
+  { 0x1, 0x1, 11, 319, -1, 33, 1, 3 },
+  { 0x0, 0x0, 11, 1806, -1, 0, 1, 3 },
+  { 0x1, 0x1, 11, 1807, -1, 12, 1, 3 },
+  { 0x1, 0x1, 11, 1808, -1, 33, 1, 3 },
+  { 0x200001, 0x200001, 11, 1809, -1, 12, 1, 3 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
   { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
-  { 0x0, 0x0, 11, 1789, -1, 0, 1, 3 },
-  { 0x1, 0x1, 11, 1790, -1, 12, 1, 3 },
+  { 0x0, 0x0, 11, 1810, -1, 0, 1, 3 },
+  { 0x1, 0x1, 11, 1811, -1, 12, 1, 3 },
   { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
   { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
-  { 0x1, 0x1, 11, 1804, -1, 36, 1, 3 },
-  { 0x1000001, 0x1000001, 11, 1806, -1, 12, 1, 3 },
+  { 0x1, 0x1, 11, 1825, -1, 36, 1, 3 },
+  { 0x1000001, 0x1000001, 11, 1827, -1, 12, 1, 3 },
   { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
   { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
-  { 0x1, 0x1, 11, 1808, -1, 36, 1, 3 },
-  { 0x1000001, 0x1000001, 11, 1810, -1, 12, 1, 3 },
+  { 0x1, 0x1, 11, 1829, -1, 36, 1, 3 },
+  { 0x1000001, 0x1000001, 11, 1831, -1, 12, 1, 3 },
+  { 0x0, 0x0, 12, -1, -1, 0, 1, 14 },
   { 0x0, 0x0, 12, -1, -1, 0, 1, 14 },
   { 0x0, 0x0, 12, -1, -1, 0, 1, 14 },
-  { 0x1, 0x1, 13, 258, 1198, 34, 1, 124 },
-  { 0x1, 0x1, 13, 260, 1207, 34, 1, 124 },
-  { 0x1, 0x1, 13, 262, 1216, 34, 1, 124 },
-  { 0x1, 0x1, 13, 264, 1225, 34, 1, 124 },
-  { 0x1, 0x1, 13, 266, 1234, 34, 1, 124 },
-  { 0x1, 0x1, 13, 268, 1243, 34, 1, 124 },
-  { 0x1, 0x1, 13, 270, 1252, 34, 1, 124 },
-  { 0x1, 0x1, 13, 272, 1261, 34, 1, 124 },
-  { 0x1, 0x1, 13, 274, 1270, 34, 1, 124 },
-  { 0x1, 0x1, 13, 276, 1279, 34, 1, 124 },
-  { 0x1, 0x1, 13, 278, 1289, 34, 1, 124 },
-  { 0x1, 0x1, 13, 280, 1299, 34, 1, 124 },
-  { 0x0, 0x0, 19, -1, 650, 0, 0, -1 },
-  { 0x0, 0x0, 19, -1, 651, 0, 0, -1 },
-  { 0x0, 0x0, 19, -1, 652, 0, 0, -1 },
-  { 0x0, 0x0, 19, -1, 653, 0, 0, -1 },
-  { 0x0, 0x0, 19, -1, 654, 0, 0, -1 },
-  { 0x0, 0x0, 19, -1, 655, 0, 0, -1 },
+  { 0x1, 0x1, 13, 262, 1211, 34, 1, 124 },
+  { 0x1, 0x1, 13, 264, 1220, 34, 1, 124 },
+  { 0x1, 0x1, 13, 266, 1229, 34, 1, 124 },
+  { 0x1, 0x1, 13, 269, 1240, 34, 1, 124 },
+  { 0x1, 0x1, 13, 271, 1249, 34, 1, 124 },
+  { 0x1, 0x1, 13, 273, 1258, 34, 1, 124 },
+  { 0x1, 0x1, 13, 275, 1267, 34, 1, 124 },
+  { 0x1, 0x1, 13, 277, 1276, 34, 1, 124 },
+  { 0x1, 0x1, 13, 279, 1285, 34, 1, 124 },
+  { 0x1, 0x1, 13, 281, 1294, 34, 1, 124 },
+  { 0x1, 0x1, 13, 283, 1304, 34, 1, 124 },
+  { 0x1, 0x1, 13, 285, 1314, 34, 1, 124 },
   { 0x0, 0x0, 19, -1, 656, 0, 0, -1 },
   { 0x0, 0x0, 19, -1, 657, 0, 0, -1 },
   { 0x0, 0x0, 19, -1, 658, 0, 0, -1 },
@@ -2125,19 +2180,25 @@ completer_table[] = {
   { 0x0, 0x0, 19, -1, 677, 0, 0, -1 },
   { 0x0, 0x0, 19, -1, 678, 0, 0, -1 },
   { 0x0, 0x0, 19, -1, 679, 0, 0, -1 },
-  { 0x0, 0x0, 20, -1, 2340, 0, 0, -1 },
-  { 0x0, 0x0, 20, -1, 2341, 0, 0, -1 },
-  { 0x0, 0x0, 20, -1, 2356, 0, 0, -1 },
-  { 0x0, 0x0, 20, -1, 2357, 0, 0, -1 },
-  { 0x0, 0x0, 20, -1, 2362, 0, 0, -1 },
+  { 0x0, 0x0, 19, -1, 680, 0, 0, -1 },
+  { 0x0, 0x0, 19, -1, 681, 0, 0, -1 },
+  { 0x0, 0x0, 19, -1, 682, 0, 0, -1 },
+  { 0x0, 0x0, 19, -1, 683, 0, 0, -1 },
+  { 0x0, 0x0, 19, -1, 684, 0, 0, -1 },
+  { 0x0, 0x0, 19, -1, 685, 0, 0, -1 },
   { 0x0, 0x0, 20, -1, 2363, 0, 0, -1 },
-  { 0x0, 0x0, 21, 686, 2352, 0, 0, -1 },
-  { 0x0, 0x0, 21, 687, 2354, 0, 0, -1 },
-  { 0x0, 0x0, 23, -1, 2350, 0, 0, -1 },
-  { 0x0, 0x0, 23, -1, 2351, 0, 0, -1 },
+  { 0x0, 0x0, 20, -1, 2364, 0, 0, -1 },
+  { 0x0, 0x0, 20, -1, 2379, 0, 0, -1 },
+  { 0x0, 0x0, 20, -1, 2380, 0, 0, -1 },
+  { 0x0, 0x0, 20, -1, 2385, 0, 0, -1 },
+  { 0x0, 0x0, 20, -1, 2386, 0, 0, -1 },
+  { 0x0, 0x0, 21, 692, 2375, 0, 0, -1 },
+  { 0x0, 0x0, 21, 693, 2377, 0, 0, -1 },
+  { 0x0, 0x0, 23, -1, 2373, 0, 0, -1 },
+  { 0x0, 0x0, 23, -1, 2374, 0, 0, -1 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
-  { 0x1, 0x1, 24, 1045, -1, 35, 1, 6 },
+  { 0x1, 0x1, 24, 1055, -1, 35, 1, 6 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
@@ -2200,7 +2261,7 @@ completer_table[] = {
   { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
-  { 0x1, 0x1, 24, 1066, -1, 35, 1, 17 },
+  { 0x1, 0x1, 24, 1076, -1, 35, 1, 17 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
@@ -2299,7 +2360,7 @@ completer_table[] = {
   { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
-  { 0x1, 0x1, 24, 1099, -1, 35, 1, 17 },
+  { 0x1, 0x1, 24, 1109, -1, 35, 1, 17 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
   { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
@@ -2338,5100 +2399,5157 @@ completer_table[] = {
   { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
   { 0x1, 0x1, 24, -1, -1, 33, 1, 76 },
   { 0x1, 0x1, 24, -1, -1, 33, 1, 76 },
-  { 0x1, 0x1, 24, 1114, 1201, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1115, 1210, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1116, 1219, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1117, 1228, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1118, 1237, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1119, 1246, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1120, 1255, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1121, 1264, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1122, 1273, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1123, 1283, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1124, 1293, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1125, 1303, 35, 1, 129 },
-  { 0x1, 0x1, 24, 1126, 1312, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1127, 1318, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1128, 1324, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1129, 1330, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1130, 1336, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1131, 1342, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1132, 1348, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1133, 1354, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1134, 1360, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1135, 1366, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1136, 1372, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1137, 1378, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1138, 1384, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1139, 1390, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1140, 1396, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1141, 1402, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1142, 1408, 35, 1, 141 },
-  { 0x1, 0x1, 24, 1143, 1414, 35, 1, 141 },
-  { 0x0, 0x0, 32, 2334, 2332, 0, 0, -1 },
-  { 0x0, 0x0, 32, 2337, 2335, 0, 0, -1 },
-  { 0x0, 0x0, 32, 2343, 2342, 0, 0, -1 },
-  { 0x0, 0x0, 32, 2345, 2344, 0, 0, -1 },
-  { 0x0, 0x0, 32, 2359, 2358, 0, 0, -1 },
-  { 0x0, 0x0, 32, 2361, 2360, 0, 0, -1 },
-  { 0x0, 0x0, 34, -1, 2353, 0, 0, -1 },
-  { 0x0, 0x0, 34, -1, 2355, 0, 0, -1 },
-  { 0x1, 0x1, 37, -1, 1899, 37, 1, 29 },
-  { 0x1, 0x1, 37, -1, 1934, 37, 1, 29 },
-  { 0x0, 0x0, 37, -1, 1937, 0, 0, -1 },
-  { 0x1, 0x1, 37, -1, -1, 37, 1, 29 },
-  { 0x1, 0x1, 37, -1, 1942, 37, 1, 29 },
-  { 0x0, 0x0, 37, -1, 1945, 0, 0, -1 },
-  { 0x1, 0x1, 37, -1, -1, 37, 1, 29 },
-  { 0x0, 0x0, 37, -1, 1948, 0, 0, -1 },
-  { 0x1, 0x1, 37, -1, -1, 37, 1, 29 },
-  { 0x1, 0x1, 37, -1, 1951, 37, 1, 29 },
-  { 0x1, 0x1, 37, -1, 1954, 37, 1, 29 },
-  { 0x1, 0x1, 37, -1, 1987, 37, 1, 29 },
-  { 0x3, 0x3, 37, -1, -1, 30, 1, 134 },
-  { 0x0, 0x0, 37, 951, -1, 0, 1, 95 },
-  { 0x0, 0x0, 37, -1, -1, 0, 1, 104 },
-  { 0x0, 0x0, 37, 957, -1, 0, 1, 116 },
-  { 0x3, 0x3, 37, -1, -1, 30, 1, 146 },
-  { 0x0, 0x0, 37, 958, -1, 0, 1, 40 },
-  { 0x0, 0x0, 39, -1, 818, 0, 0, -1 },
-  { 0x0, 0x0, 39, -1, 826, 0, 0, -1 },
-  { 0x0, 0x0, 39, 960, 822, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 477, 33, 1, 6 },
-  { 0x18000001, 0x18000001, 39, -1, 485, 6, 1, 7 },
-  { 0x3, 0x3, 39, 961, 481, 33, 1, 6 },
-  { 0x0, 0x0, 39, -1, 830, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 497, 33, 1, 8 },
-  { 0x0, 0x0, 39, -1, 834, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 509, 33, 1, 15 },
-  { 0x0, 0x0, 39, -1, 839, 0, 0, -1 },
-  { 0x0, 0x0, 39, -1, 843, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 532, 33, 1, 17 },
-  { 0x3, 0x3, 39, -1, 536, 33, 1, 17 },
-  { 0x0, 0x0, 39, -1, 847, 0, 0, -1 },
-  { 0x0, 0x0, 39, -1, 851, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 556, 33, 1, 18 },
-  { 0x18000001, 0x18000001, 39, -1, 560, 6, 1, 18 },
-  { 0x0, 0x0, 39, -1, 855, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 572, 33, 1, 19 },
-  { 0x0, 0x0, 39, -1, 859, 0, 0, -1 },
-  { 0x0, 0x0, 39, -1, 863, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 592, 33, 1, 20 },
-  { 0x18000001, 0x18000001, 39, -1, 596, 6, 1, 20 },
-  { 0x0, 0x0, 39, -1, 867, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 608, 33, 1, 21 },
-  { 0x0, 0x0, 39, -1, 872, 0, 0, -1 },
-  { 0x0, 0x0, 39, -1, 876, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 631, 33, 1, 17 },
-  { 0x3, 0x3, 39, -1, 635, 33, 1, 17 },
-  { 0x0, 0x0, 39, -1, 880, 0, 0, -1 },
-  { 0x3, 0x3, 39, -1, 647, 33, 1, 21 },
-  { 0x0, 0x0, 40, 706, 817, 0, 0, -1 },
-  { 0x0, 0x0, 40, 707, 825, 0, 0, -1 },
-  { 0x0, 0x0, 40, 708, 821, 0, 0, -1 },
-  { 0x1, 0x1, 40, 709, 476, 34, 1, 6 },
-  { 0x10000001, 0x10000001, 40, 710, 484, 6, 1, 7 },
-  { 0x1, 0x1, 40, 711, 480, 34, 1, 6 },
-  { 0x0, 0x0, 40, 712, 829, 0, 0, -1 },
-  { 0x1, 0x1, 40, 713, 496, 34, 1, 8 },
-  { 0x0, 0x0, 40, 714, 833, 0, 0, -1 },
-  { 0x1, 0x1, 40, 715, 508, 34, 1, 15 },
-  { 0x0, 0x0, 40, 716, 838, 0, 0, -1 },
-  { 0x0, 0x0, 40, 717, 842, 0, 0, -1 },
-  { 0x1, 0x1, 40, 718, 531, 34, 1, 17 },
-  { 0x1, 0x1, 40, 719, 535, 34, 1, 17 },
-  { 0x0, 0x0, 40, 720, 846, 0, 0, -1 },
-  { 0x0, 0x0, 40, 721, 850, 0, 0, -1 },
-  { 0x1, 0x1, 40, 722, 555, 34, 1, 18 },
-  { 0x10000001, 0x10000001, 40, 723, 559, 6, 1, 18 },
-  { 0x0, 0x0, 40, 724, 854, 0, 0, -1 },
-  { 0x1, 0x1, 40, 725, 571, 34, 1, 19 },
-  { 0x0, 0x0, 40, 726, 858, 0, 0, -1 },
-  { 0x0, 0x0, 40, 727, 862, 0, 0, -1 },
-  { 0x1, 0x1, 40, 728, 591, 34, 1, 20 },
-  { 0x10000001, 0x10000001, 40, 729, 595, 6, 1, 20 },
-  { 0x0, 0x0, 40, 730, 866, 0, 0, -1 },
-  { 0x1, 0x1, 40, 731, 607, 34, 1, 21 },
-  { 0x0, 0x0, 40, 732, 871, 0, 0, -1 },
-  { 0x0, 0x0, 40, 733, 875, 0, 0, -1 },
-  { 0x1, 0x1, 40, 734, 630, 34, 1, 17 },
-  { 0x1, 0x1, 40, 735, 634, 34, 1, 17 },
-  { 0x0, 0x0, 40, 736, 879, 0, 0, -1 },
-  { 0x1, 0x1, 40, 737, 646, 34, 1, 21 },
-  { 0x800001, 0x800001, 40, -1, 965, 4, 1, 16 },
-  { 0x1, 0x1, 40, 1845, 963, 4, 1, 16 },
-  { 0x1, 0x1, 40, 803, 968, 4, 1, 22 },
-  { 0x2, 0x3, 40, -1, 973, 20, 1, 67 },
-  { 0x1, 0x1, 40, 1846, 971, 21, 1, 67 },
-  { 0x0, 0x0, 41, -1, -1, 0, 1, 80 },
-  { 0x0, 0x0, 41, -1, -1, 0, 1, 80 },
-  { 0x0, 0x0, 41, -1, -1, 0, 1, 123 },
-  { 0x1, 0x1, 43, 1144, 281, 38, 1, 1 },
-  { 0x0, 0x0, 43, -1, 340, 0, 0, -1 },
-  { 0x1, 0x1, 43, 1147, 291, 38, 1, 1 },
-  { 0x0, 0x0, 43, -1, 360, 0, 0, -1 },
-  { 0x0, 0x0, 43, -1, 294, 0, 0, -1 },
-  { 0x0, 0x0, 43, -1, 304, 0, 0, -1 },
-  { 0x1, 0x1, 43, 1152, 305, 38, 1, 1 },
-  { 0x0, 0x0, 43, -1, 364, 0, 0, -1 },
-  { 0x1, 0x1, 43, 1155, 315, 38, 1, 1 },
-  { 0x0, 0x0, 43, -1, 384, 0, 0, -1 },
-  { 0x0, 0x0, 43, -1, 318, 0, 0, -1 },
-  { 0x0, 0x0, 43, -1, 328, 0, 0, -1 },
-  { 0x0, 0x0, 43, 1028, 1906, 0, 0, -1 },
-  { 0x0, 0x0, 43, 1029, 2439, 0, 1, 54 },
-  { 0x0, 0x0, 43, 1030, 1958, 0, 0, -1 },
-  { 0x0, 0x0, 43, 1031, -1, 0, 1, 49 },
-  { 0x0, 0x0, 43, 935, -1, 0, 1, 0 },
-  { 0x0, 0x0, 43, 936, -1, 0, 1, 0 },
-  { 0x0, 0x0, 43, 937, -1, 0, 1, 0 },
-  { 0x1, 0x1, 44, -1, 1418, 30, 1, 143 },
-  { 0x1, 0x1, 44, 808, 1417, 30, 1, 142 },
-  { 0x1, 0x1, 44, -1, 1422, 30, 1, 145 },
-  { 0x1, 0x1, 44, 809, 1421, 30, 1, 144 },
-  { 0x1, 0x1, 44, -1, 1426, 30, 1, 145 },
-  { 0x1, 0x1, 44, 810, 1425, 30, 1, 144 },
-  { 0x3, 0x3, 45, -1, 969, 3, 1, 22 },
-  { 0x1, 0x1, 46, 1866, -1, 30, 1, 134 },
-  { 0x1, 0x1, 46, 1897, -1, 30, 1, 146 },
-  { 0x0, 0x0, 48, -1, -1, 0, 1, 40 },
-  { 0x0, 0x0, 48, -1, -1, 0, 1, 40 },
-  { 0x1, 0x1, 55, -1, 1419, 31, 1, 143 },
-  { 0x1, 0x1, 55, -1, 1423, 31, 1, 145 },
-  { 0x1, 0x1, 55, -1, 1427, 31, 1, 145 },
-  { 0x0, 0x0, 55, -1, -1, 0, 1, 94 },
-  { 0x2, 0x3, 55, -1, -1, 27, 1, 94 },
-  { 0x1, 0x1, 55, -1, -1, 28, 1, 94 },
-  { 0x0, 0x0, 64, 13, 447, 0, 1, 6 },
-  { 0x0, 0x0, 64, 1046, 450, 0, 1, 6 },
-  { 0x1, 0x1, 64, 1047, 452, 33, 1, 6 },
-  { 0x1, 0x1, 64, 1048, 454, 34, 1, 6 },
-  { 0x3, 0x3, 64, 1049, 456, 33, 1, 6 },
-  { 0x0, 0x0, 64, 1050, 458, 0, 1, 6 },
-  { 0x1, 0x1, 64, 1051, 460, 33, 1, 6 },
-  { 0x1, 0x1, 64, 1052, 462, 34, 1, 6 },
-  { 0x3, 0x3, 64, 1053, 464, 33, 1, 6 },
-  { 0x1, 0x1, 64, 1054, 466, 6, 1, 7 },
-  { 0x8000001, 0x8000001, 64, 1055, 468, 6, 1, 7 },
-  { 0x10000001, 0x10000001, 64, 1056, 470, 6, 1, 7 },
-  { 0x18000001, 0x18000001, 64, 1057, 472, 6, 1, 7 },
-  { 0x0, 0x0, 64, 1058, 486, 0, 1, 8 },
-  { 0x1, 0x1, 64, 1059, 488, 33, 1, 8 },
-  { 0x1, 0x1, 64, 1060, 490, 34, 1, 8 },
-  { 0x3, 0x3, 64, 1061, 492, 33, 1, 8 },
-  { 0x0, 0x0, 64, 1062, 498, 0, 1, 15 },
-  { 0x1, 0x1, 64, 1063, 500, 33, 1, 15 },
-  { 0x1, 0x1, 64, 1064, 502, 34, 1, 15 },
-  { 0x3, 0x3, 64, 1065, 504, 33, 1, 15 },
-  { 0x0, 0x0, 64, 14, 510, 0, 1, 17 },
-  { 0x0, 0x0, 64, 1067, 513, 0, 1, 17 },
-  { 0x1, 0x1, 64, 1068, 515, 33, 1, 17 },
-  { 0x1, 0x1, 64, 1069, 517, 34, 1, 17 },
-  { 0x3, 0x3, 64, 1070, 519, 33, 1, 17 },
-  { 0x0, 0x0, 64, 1071, 521, 0, 1, 17 },
-  { 0x1, 0x1, 64, 1072, 523, 33, 1, 17 },
-  { 0x1, 0x1, 64, 1073, 525, 34, 1, 17 },
-  { 0x3, 0x3, 64, 1074, 527, 33, 1, 17 },
-  { 0x0, 0x0, 64, 1075, 537, 0, 1, 18 },
-  { 0x1, 0x1, 64, 1076, 539, 33, 1, 18 },
-  { 0x1, 0x1, 64, 1077, 541, 34, 1, 18 },
-  { 0x3, 0x3, 64, 1078, 543, 33, 1, 18 },
-  { 0x1, 0x1, 64, 1079, 545, 6, 1, 18 },
-  { 0x8000001, 0x8000001, 64, 1080, 547, 6, 1, 18 },
-  { 0x10000001, 0x10000001, 64, 1081, 549, 6, 1, 18 },
-  { 0x18000001, 0x18000001, 64, 1082, 551, 6, 1, 18 },
-  { 0x0, 0x0, 64, 1083, 561, 0, 1, 19 },
-  { 0x1, 0x1, 64, 1084, 563, 33, 1, 19 },
-  { 0x1, 0x1, 64, 1085, 565, 34, 1, 19 },
-  { 0x3, 0x3, 64, 1086, 567, 33, 1, 19 },
-  { 0x0, 0x0, 64, 1087, 573, 0, 1, 20 },
-  { 0x1, 0x1, 64, 1088, 575, 33, 1, 20 },
-  { 0x1, 0x1, 64, 1089, 577, 34, 1, 20 },
-  { 0x3, 0x3, 64, 1090, 579, 33, 1, 20 },
-  { 0x1, 0x1, 64, 1091, 581, 6, 1, 20 },
-  { 0x8000001, 0x8000001, 64, 1092, 583, 6, 1, 20 },
-  { 0x10000001, 0x10000001, 64, 1093, 585, 6, 1, 20 },
-  { 0x18000001, 0x18000001, 64, 1094, 587, 6, 1, 20 },
-  { 0x0, 0x0, 64, 1095, 597, 0, 1, 21 },
-  { 0x1, 0x1, 64, 1096, 599, 33, 1, 21 },
-  { 0x1, 0x1, 64, 1097, 601, 34, 1, 21 },
-  { 0x3, 0x3, 64, 1098, 603, 33, 1, 21 },
-  { 0x0, 0x0, 64, 16, 609, 0, 1, 17 },
-  { 0x0, 0x0, 64, 1100, 612, 0, 1, 17 },
-  { 0x1, 0x1, 64, 1101, 614, 33, 1, 17 },
-  { 0x1, 0x1, 64, 1102, 616, 34, 1, 17 },
-  { 0x3, 0x3, 64, 1103, 618, 33, 1, 17 },
-  { 0x0, 0x0, 64, 1104, 620, 0, 1, 17 },
-  { 0x1, 0x1, 64, 1105, 622, 33, 1, 17 },
-  { 0x1, 0x1, 64, 1106, 624, 34, 1, 17 },
-  { 0x3, 0x3, 64, 1107, 626, 33, 1, 17 },
-  { 0x0, 0x0, 64, 1108, 636, 0, 1, 21 },
-  { 0x1, 0x1, 64, 1109, 638, 33, 1, 21 },
-  { 0x1, 0x1, 64, 1110, 640, 34, 1, 21 },
-  { 0x3, 0x3, 64, 1111, 642, 33, 1, 21 },
-  { 0x3, 0x3, 65, 416, 1281, 33, 1, 128 },
-  { 0x3, 0x3, 65, 417, 1291, 33, 1, 128 },
-  { 0x3, 0x3, 65, 418, 1301, 33, 1, 128 },
-  { 0x0, 0x0, 65, -1, 1306, 0, 1, 137 },
-  { 0x0, 0x0, 65, -1, 1307, 0, 1, 137 },
-  { 0x0, 0x0, 65, -1, 1308, 0, 1, 137 },
-  { 0x0, 0x0, 106, 891, 1930, 0, 0, -1 },
-  { 0x0, 0x0, 106, 892, 2377, 0, 1, 29 },
-  { 0x0, 0x0, 106, 893, 1971, 0, 0, -1 },
-  { 0x0, 0x0, 106, 894, 2381, 0, 1, 29 },
-  { 0x0, 0x0, 108, -1, 1932, 0, 0, -1 },
-  { 0x1, 0x1, 108, -1, 2378, 27, 1, 29 },
-  { 0x0, 0x0, 108, -1, 1973, 0, 0, -1 },
-  { 0x1, 0x1, 108, -1, 2382, 27, 1, 29 },
-  { 0x0, 0x0, 109, 896, -1, 0, 1, 115 },
-  { 0x1, 0x1, 110, -1, -1, 27, 1, 115 },
-  { 0x0, 0x0, 111, 914, 2400, 0, 1, 1 },
-  { 0x0, 0x0, 111, 1015, 285, 0, 0, -1 },
-  { 0x0, 0x0, 111, 992, 348, 0, 0, -1 },
-  { 0x0, 0x0, 111, -1, 356, 0, 0, -1 },
-  { 0x0, 0x0, 111, 915, 2408, 0, 1, 1 },
-  { 0x0, 0x0, 111, -1, 298, 0, 0, -1 },
-  { 0x0, 0x0, 111, 1020, 299, 0, 0, -1 },
-  { 0x0, 0x0, 111, 916, 2420, 0, 1, 1 },
-  { 0x0, 0x0, 111, 1022, 309, 0, 0, -1 },
-  { 0x0, 0x0, 111, 999, 372, 0, 0, -1 },
-  { 0x0, 0x0, 111, -1, 380, 0, 0, -1 },
-  { 0x0, 0x0, 111, 1156, 2427, 0, 1, 1 },
-  { 0x0, 0x0, 111, -1, 322, 0, 0, -1 },
-  { 0x0, 0x0, 111, 1027, 323, 0, 0, -1 },
-  { 0x0, 0x0, 111, -1, 1916, 0, 0, -1 },
-  { 0x1, 0x9, 111, -1, 2446, 33, 1, 54 },
-  { 0x2, 0x3, 111, 1169, 1967, 27, 1, 49 },
-  { 0x1, 0x1, 113, 1145, 2401, 37, 1, 1 },
-  { 0x1, 0x1, 113, 1148, 2409, 37, 1, 1 },
-  { 0x1, 0x1, 113, 1153, 2421, 37, 1, 1 },
-  { 0x0, 0x0, 113, -1, 2432, 0, 1, 1 },
-  { 0x0, 0x0, 114, 938, 2398, 0, 1, 1 },
-  { 0x0, 0x0, 114, 991, 283, 0, 0, -1 },
-  { 0x0, 0x0, 114, -1, 352, 0, 0, -1 },
-  { 0x0, 0x0, 114, 1017, 354, 0, 0, -1 },
-  { 0x0, 0x0, 114, -1, 2407, 0, 1, 1 },
-  { 0x0, 0x0, 114, 1019, 296, 0, 0, -1 },
-  { 0x0, 0x0, 114, 996, 301, 0, 0, -1 },
-  { 0x0, 0x0, 114, 940, 2418, 0, 1, 1 },
-  { 0x0, 0x0, 114, 998, 307, 0, 0, -1 },
-  { 0x0, 0x0, 114, -1, 376, 0, 0, -1 },
-  { 0x0, 0x0, 114, 1024, 378, 0, 0, -1 },
-  { 0x0, 0x0, 114, -1, 2426, 0, 1, 1 },
-  { 0x0, 0x0, 114, 1026, 320, 0, 0, -1 },
-  { 0x0, 0x0, 114, 1003, 325, 0, 0, -1 },
-  { 0x0, 0x0, 114, 911, 1914, 0, 0, -1 },
-  { 0x0, 0x0, 114, 912, 2445, 0, 1, 54 },
-  { 0x0, 0x0, 114, 913, 1966, 0, 1, 49 },
-  { 0x1, 0x1, 114, -1, -1, 27, 1, 0 },
-  { 0x1, 0x1, 114, -1, -1, 27, 1, 0 },
-  { 0x1, 0x1, 114, -1, -1, 27, 1, 0 },
-  { 0x1, 0x1, 115, -1, 2399, 37, 1, 1 },
-  { 0x0, 0x0, 115, -1, 2412, 0, 1, 1 },
-  { 0x1, 0x1, 115, -1, 2419, 37, 1, 1 },
-  { 0x0, 0x0, 115, -1, 2431, 0, 1, 1 },
-  { 0x0, 0x0, 116, 985, -1, 0, 1, 0 },
-  { 0x0, 0x0, 116, 986, -1, 0, 1, 0 },
-  { 0x0, 0x0, 116, 987, -1, 0, 1, 0 },
-  { 0x3, 0x3, 116, 947, -1, 34, 1, 33 },
-  { 0x3, 0x3, 116, 948, -1, 34, 1, 40 },
-  { 0x1, 0x1, 117, -1, -1, 35, 1, 33 },
-  { 0x1, 0x1, 117, -1, -1, 35, 1, 40 },
-  { 0x0, 0x0, 118, -1, -1, 0, 1, 40 },
-  { 0x0, 0x0, 118, -1, -1, 0, 1, 66 },
-  { 0x1, 0x1, 118, -1, -1, 27, 1, 96 },
-  { 0x0, 0x0, 118, -1, -1, 0, 1, 105 },
-  { 0x0, 0x0, 118, -1, -1, 0, 1, 73 },
-  { 0x0, 0x0, 118, -1, -1, 0, 1, 73 },
-  { 0x0, 0x0, 118, -1, -1, 0, 1, 74 },
-  { 0x0, 0x0, 118, -1, -1, 0, 1, 40 },
-  { 0x1, 0x1, 118, -1, -1, 27, 1, 117 },
-  { 0x1, 0x1, 118, -1, -1, 27, 1, 40 },
-  { 0x0, 0x0, 118, -1, -1, 0, 1, 40 },
-  { 0x0, 0x0, 119, -1, 2333, 0, 0, -1 },
-  { 0x0, 0x0, 119, -1, 2336, 0, 0, -1 },
-  { 0x1, 0x1, 120, -1, -1, 35, 1, 16 },
-  { 0x1, 0x1, 120, -1, -1, 35, 1, 16 },
-  { 0x1, 0x1, 120, -1, -1, 35, 1, 16 },
-  { 0x1, 0x1, 120, -1, -1, 35, 1, 16 },
-  { 0x1, 0x1, 120, -1, -1, 35, 1, 22 },
-  { 0x1, 0x1, 120, -1, -1, 35, 1, 22 },
-  { 0x1, 0x1, 120, -1, -1, 35, 1, 22 },
-  { 0x1, 0x1, 120, -1, -1, 35, 1, 22 },
-  { 0x1, 0x1, 120, -1, -1, 23, 1, 67 },
-  { 0x1, 0x1, 120, -1, -1, 23, 1, 67 },
-  { 0x1, 0x1, 120, -1, -1, 23, 1, 67 },
-  { 0x1, 0x1, 120, -1, -1, 23, 1, 67 },
-  { 0x1, 0x1, 120, 773, -1, 23, 1, 67 },
-  { 0x9, 0x9, 120, 774, -1, 20, 1, 67 },
-  { 0x0, 0x0, 124, 1816, -1, 0, 1, 0 },
-  { 0x0, 0x0, 124, 1817, -1, 0, 1, 0 },
-  { 0x1, 0x1, 124, -1, -1, 28, 1, 33 },
-  { 0x1, 0x1, 124, -1, -1, 27, 1, 33 },
-  { 0x1, 0x1, 124, -1, -1, 29, 1, 0 },
-  { 0x1, 0x1, 124, -1, -1, 29, 1, 0 },
-  { 0x1, 0x1, 124, -1, -1, 29, 1, 0 },
-  { 0x1, 0x1, 124, -1, -1, 29, 1, 0 },
-  { 0x0, 0x0, 124, -1, -1, 0, 1, 114 },
-  { 0x1, 0x1, 124, -1, -1, 29, 1, 0 },
-  { 0x1, 0x1, 124, -1, -1, 29, 1, 0 },
-  { 0x1, 0x1, 124, -1, -1, 29, 1, 0 },
-  { 0x0, 0x0, 124, 945, -1, 0, 1, 33 },
-  { 0x0, 0x0, 124, 1037, -1, 0, 1, 40 },
-  { 0x0, 0x0, 137, 1008, 2396, 0, 1, 1 },
-  { 0x0, 0x0, 137, 898, 284, 0, 0, -1 },
-  { 0x0, 0x0, 137, 920, 289, 0, 0, -1 },
-  { 0x0, 0x0, 137, 921, 353, 0, 0, -1 },
-  { 0x0, 0x0, 137, -1, 2406, 0, 1, 1 },
-  { 0x0, 0x0, 137, 923, 295, 0, 0, -1 },
-  { 0x0, 0x0, 137, -1, 302, 0, 0, -1 },
-  { 0x0, 0x0, 137, 1010, 2416, 0, 1, 1 },
-  { 0x0, 0x0, 137, 905, 308, 0, 0, -1 },
-  { 0x0, 0x0, 137, 927, 313, 0, 0, -1 },
-  { 0x0, 0x0, 137, 928, 377, 0, 0, -1 },
-  { 0x0, 0x0, 137, -1, 2425, 0, 1, 1 },
-  { 0x0, 0x0, 137, 930, 319, 0, 0, -1 },
-  { 0x0, 0x0, 137, -1, 326, 0, 0, -1 },
-  { 0x0, 0x0, 137, 2463, 1910, 0, 0, -1 },
-  { 0x1, 0x1, 137, 2464, 2441, 33, 1, 54 },
-  { 0x0, 0x0, 137, 2465, 1960, 0, 0, -1 },
-  { 0x1, 0x1, 137, 2466, -1, 28, 1, 49 },
-  { 0x1, 0x1, 138, -1, 2397, 37, 1, 1 },
-  { 0x0, 0x0, 138, -1, 2411, 0, 1, 1 },
-  { 0x1, 0x1, 138, -1, 2417, 37, 1, 1 },
-  { 0x0, 0x0, 138, -1, 2430, 0, 1, 1 },
-  { 0x1, 0x1, 141, 772, 967, 3, 1, 22 },
-  { 0x0, 0x0, 142, 1818, -1, 0, 1, 33 },
-  { 0x0, 0x0, 143, 778, 2393, 0, 1, 1 },
-  { 0x0, 0x0, 143, -1, 286, 0, 0, -1 },
-  { 0x0, 0x0, 143, 899, 287, 0, 0, -1 },
-  { 0x0, 0x0, 143, 900, 355, 0, 0, -1 },
-  { 0x0, 0x0, 143, 780, 2403, 0, 1, 1 },
-  { 0x0, 0x0, 143, 902, 297, 0, 0, -1 },
-  { 0x0, 0x0, 143, 924, 300, 0, 0, -1 },
-  { 0x0, 0x0, 143, 784, 2413, 0, 1, 1 },
-  { 0x0, 0x0, 143, -1, 310, 0, 0, -1 },
-  { 0x0, 0x0, 143, 906, 311, 0, 0, -1 },
-  { 0x0, 0x0, 143, 907, 379, 0, 0, -1 },
-  { 0x0, 0x0, 143, 786, 2423, 0, 1, 1 },
-  { 0x0, 0x0, 143, 909, 321, 0, 0, -1 },
-  { 0x0, 0x0, 143, 931, 324, 0, 0, -1 },
-  { 0x0, 0x0, 143, 1004, 1908, 0, 0, -1 },
-  { 0x1, 0x1, 143, 1005, 2440, 36, 1, 54 },
-  { 0x0, 0x0, 143, 1006, 1959, 0, 0, -1 },
-  { 0x1, 0x1, 143, 1007, -1, 27, 1, 49 },
-  { 0x1, 0x1, 144, -1, 2395, 37, 1, 1 },
-  { 0x1, 0x1, 144, -1, 2405, 37, 1, 1 },
-  { 0x1, 0x1, 144, -1, 2415, 37, 1, 1 },
-  { 0x0, 0x0, 144, -1, 2429, 0, 1, 1 },
-  { 0x0, 0x0, 145, -1, -1, 0, 1, 33 },
-  { 0x0, 0x0, 145, 946, -1, 0, 1, 40 },
-  { 0x0, 0x0, 146, -1, -1, 0, 1, 40 },
-  { 0x0, 0x0, 146, -1, -1, 0, 1, 66 },
-  { 0x0, 0x0, 146, -1, 2433, 0, 1, 63 },
-  { 0x0, 0x0, 146, -1, -1, 0, 1, 81 },
-  { 0x0, 0x0, 146, -1, -1, 0, 1, 81 },
-  { 0x0, 0x0, 146, -1, -1, 0, 1, 85 },
-  { 0x0, 0x0, 146, -1, -1, 0, 1, 40 },
-  { 0x1, 0x1, 147, -1, 448, 12, 1, 6 },
-  { 0x1, 0x1, 147, -1, 451, 12, 1, 6 },
-  { 0x200001, 0x200001, 147, -1, 453, 12, 1, 6 },
-  { 0x400001, 0x400001, 147, -1, 455, 12, 1, 6 },
-  { 0x600001, 0x600001, 147, -1, 457, 12, 1, 6 },
-  { 0x1, 0x1, 147, -1, 459, 12, 1, 6 },
-  { 0x200001, 0x200001, 147, -1, 461, 12, 1, 6 },
-  { 0x400001, 0x400001, 147, -1, 463, 12, 1, 6 },
-  { 0x600001, 0x600001, 147, -1, 465, 12, 1, 6 },
-  { 0x41, 0x41, 147, -1, 467, 6, 1, 7 },
-  { 0x8000041, 0x8000041, 147, -1, 469, 6, 1, 7 },
-  { 0x10000041, 0x10000041, 147, -1, 471, 6, 1, 7 },
-  { 0x18000041, 0x18000041, 147, -1, 473, 6, 1, 7 },
-  { 0x1, 0x1, 147, -1, 487, 12, 1, 8 },
-  { 0x200001, 0x200001, 147, -1, 489, 12, 1, 8 },
-  { 0x400001, 0x400001, 147, -1, 491, 12, 1, 8 },
-  { 0x600001, 0x600001, 147, -1, 493, 12, 1, 8 },
-  { 0x1, 0x1, 147, -1, 499, 12, 1, 15 },
-  { 0x200001, 0x200001, 147, -1, 501, 12, 1, 15 },
-  { 0x400001, 0x400001, 147, -1, 503, 12, 1, 15 },
-  { 0x600001, 0x600001, 147, -1, 505, 12, 1, 15 },
-  { 0x1, 0x1, 147, -1, 511, 12, 1, 17 },
-  { 0x1, 0x1, 147, -1, 514, 12, 1, 17 },
-  { 0x200001, 0x200001, 147, -1, 516, 12, 1, 17 },
-  { 0x400001, 0x400001, 147, -1, 518, 12, 1, 17 },
-  { 0x600001, 0x600001, 147, -1, 520, 12, 1, 17 },
-  { 0x1, 0x1, 147, -1, 522, 12, 1, 17 },
-  { 0x200001, 0x200001, 147, -1, 524, 12, 1, 17 },
-  { 0x400001, 0x400001, 147, -1, 526, 12, 1, 17 },
-  { 0x600001, 0x600001, 147, -1, 528, 12, 1, 17 },
-  { 0x1, 0x1, 147, -1, 538, 12, 1, 18 },
-  { 0x200001, 0x200001, 147, -1, 540, 12, 1, 18 },
-  { 0x400001, 0x400001, 147, -1, 542, 12, 1, 18 },
-  { 0x600001, 0x600001, 147, -1, 544, 12, 1, 18 },
-  { 0x41, 0x41, 147, -1, 546, 6, 1, 18 },
-  { 0x8000041, 0x8000041, 147, -1, 548, 6, 1, 18 },
-  { 0x10000041, 0x10000041, 147, -1, 550, 6, 1, 18 },
-  { 0x18000041, 0x18000041, 147, -1, 552, 6, 1, 18 },
-  { 0x1, 0x1, 147, -1, 562, 12, 1, 19 },
-  { 0x200001, 0x200001, 147, -1, 564, 12, 1, 19 },
-  { 0x400001, 0x400001, 147, -1, 566, 12, 1, 19 },
-  { 0x600001, 0x600001, 147, -1, 568, 12, 1, 19 },
-  { 0x1, 0x1, 147, -1, 574, 12, 1, 20 },
-  { 0x200001, 0x200001, 147, -1, 576, 12, 1, 20 },
-  { 0x400001, 0x400001, 147, -1, 578, 12, 1, 20 },
-  { 0x600001, 0x600001, 147, -1, 580, 12, 1, 20 },
-  { 0x41, 0x41, 147, -1, 582, 6, 1, 20 },
-  { 0x8000041, 0x8000041, 147, -1, 584, 6, 1, 20 },
-  { 0x10000041, 0x10000041, 147, -1, 586, 6, 1, 20 },
-  { 0x18000041, 0x18000041, 147, -1, 588, 6, 1, 20 },
-  { 0x1, 0x1, 147, -1, 598, 12, 1, 21 },
-  { 0x200001, 0x200001, 147, -1, 600, 12, 1, 21 },
-  { 0x400001, 0x400001, 147, -1, 602, 12, 1, 21 },
-  { 0x600001, 0x600001, 147, -1, 604, 12, 1, 21 },
-  { 0x1, 0x1, 147, -1, 610, 12, 1, 17 },
-  { 0x1, 0x1, 147, -1, 613, 12, 1, 17 },
-  { 0x200001, 0x200001, 147, -1, 615, 12, 1, 17 },
-  { 0x400001, 0x400001, 147, -1, 617, 12, 1, 17 },
-  { 0x600001, 0x600001, 147, -1, 619, 12, 1, 17 },
-  { 0x1, 0x1, 147, -1, 621, 12, 1, 17 },
-  { 0x200001, 0x200001, 147, -1, 623, 12, 1, 17 },
-  { 0x400001, 0x400001, 147, -1, 625, 12, 1, 17 },
-  { 0x600001, 0x600001, 147, -1, 627, 12, 1, 17 },
-  { 0x1, 0x1, 147, -1, 637, 12, 1, 21 },
-  { 0x200001, 0x200001, 147, -1, 639, 12, 1, 21 },
-  { 0x400001, 0x400001, 147, -1, 641, 12, 1, 21 },
-  { 0x600001, 0x600001, 147, -1, 643, 12, 1, 21 },
-  { 0x0, 0x0, 156, 648, -1, 0, 1, 75 },
-  { 0x0, 0x0, 156, 649, -1, 0, 1, 75 },
-  { 0x9, 0x9, 156, -1, 1202, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1211, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1220, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1229, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1238, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1247, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1256, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1265, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1274, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1284, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1294, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1304, 32, 1, 129 },
-  { 0x9, 0x9, 156, -1, 1313, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1319, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1325, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1331, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1337, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1343, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1349, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1355, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1361, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1367, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1373, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1379, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1385, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1391, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1397, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1403, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1409, 32, 1, 141 },
-  { 0x9, 0x9, 156, -1, 1415, 32, 1, 141 },
-  { 0x0, 0x0, 157, 1032, 282, 0, 0, -1 },
-  { 0x1, 0x1, 157, -1, 2402, 38, 1, 1 },
-  { 0x0, 0x0, 157, 779, 339, 0, 0, -1 },
-  { 0x0, 0x0, 157, 1033, 292, 0, 0, -1 },
-  { 0x1, 0x1, 157, -1, 2410, 38, 1, 1 },
-  { 0x0, 0x0, 157, 781, 359, 0, 0, -1 },
-  { 0x0, 0x0, 157, 782, 293, 0, 0, -1 },
-  { 0x0, 0x0, 157, 783, 303, 0, 0, -1 },
-  { 0x0, 0x0, 157, 1034, 306, 0, 0, -1 },
-  { 0x1, 0x1, 157, -1, 2422, 38, 1, 1 },
-  { 0x0, 0x0, 157, 785, 363, 0, 0, -1 },
-  { 0x0, 0x0, 157, -1, 316, 0, 0, -1 },
-  { 0x1, 0x1, 157, -1, 2428, 38, 1, 1 },
-  { 0x0, 0x0, 157, 787, 383, 0, 0, -1 },
-  { 0x0, 0x0, 157, 788, 317, 0, 0, -1 },
-  { 0x0, 0x0, 157, 789, 327, 0, 0, -1 },
-  { 0x0, 0x0, 158, 1175, 1918, 0, 0, -1 },
-  { 0x0, 0x0, 158, 1176, 2451, 0, 1, 54 },
-  { 0x0, 0x0, 158, 1177, 1962, 0, 0, -1 },
-  { 0x1, 0x1, 158, 1178, -1, 29, 1, 49 },
-  { 0x0, 0x0, 159, -1, 1928, 0, 0, -1 },
-  { 0x1, 0x9, 159, -1, 2458, 33, 1, 54 },
-  { 0x6, 0x7, 159, -1, 1969, 27, 1, 49 },
-  { 0x0, 0x0, 160, 1164, 1926, 0, 0, -1 },
-  { 0x0, 0x0, 160, 1165, 2457, 0, 1, 54 },
-  { 0x1, 0x1, 160, 1166, 1968, 29, 1, 49 },
-  { 0x1, 0x1, 161, 1180, -1, 27, 1, 33 },
-  { 0x0, 0x0, 162, 1811, 1922, 0, 0, -1 },
-  { 0x1, 0x1, 162, 1812, 2453, 33, 1, 54 },
-  { 0x0, 0x0, 162, 1813, 1964, 0, 0, -1 },
-  { 0x3, 0x3, 162, 1814, -1, 28, 1, 49 },
-  { 0x0, 0x0, 163, 1171, 1920, 0, 0, -1 },
-  { 0x1, 0x1, 163, 1172, 2452, 36, 1, 54 },
-  { 0x0, 0x0, 163, 1173, 1963, 0, 0, -1 },
-  { 0x5, 0x5, 163, 1174, -1, 27, 1, 49 },
-  { 0x0, 0x0, 164, -1, 2434, 0, 1, 63 },
-  { 0x1, 0x1, 166, -1, -1, 28, 1, 33 },
-  { 0x1, 0x1, 167, 2292, -1, 27, 1, 33 },
-  { 0x1, 0x1, 167, 2293, -1, 27, 1, 33 },
-  { 0x1, 0x1, 168, 1445, -1, 28, 1, 132 },
-  { 0x1, 0x1, 168, 1446, -1, 28, 1, 132 },
-  { 0x1, 0x1, 168, 1447, -1, 28, 1, 132 },
-  { 0x1, 0x1, 168, 1448, -1, 28, 1, 132 },
-  { 0x1, 0x1, 168, 1449, -1, 28, 1, 132 },
-  { 0x1, 0x1, 168, 1450, -1, 28, 1, 132 },
-  { 0x1, 0x1, 168, 1451, -1, 28, 1, 132 },
-  { 0x1, 0x1, 168, 1452, -1, 28, 1, 132 },
-  { 0x1, 0x1, 168, 1453, -1, 28, 1, 133 },
-  { 0x1, 0x1, 168, 1454, -1, 28, 1, 133 },
-  { 0x1, 0x1, 168, 1455, -1, 28, 1, 133 },
-  { 0x1, 0x1, 168, 1456, -1, 28, 1, 133 },
-  { 0x1, 0x1, 168, 1457, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1458, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1459, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1460, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1461, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1462, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1463, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1464, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1465, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1466, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1467, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1468, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1469, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1470, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1471, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1472, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1473, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1474, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1475, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1476, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1477, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1478, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1479, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1480, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1481, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1482, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1483, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1484, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1485, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1486, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1487, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1488, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1489, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1490, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1491, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1492, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1493, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1494, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1495, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1496, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1497, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1498, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1499, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1500, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1501, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1502, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1503, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1504, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1505, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1506, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1507, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1508, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1509, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1510, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1511, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1512, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1513, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1514, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1515, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1516, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1517, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1518, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1519, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1520, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1521, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1522, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1523, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1524, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1525, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1526, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1527, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1528, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1529, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1530, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1531, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1532, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1533, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1534, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1535, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1536, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1537, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1538, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1539, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1540, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1541, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1542, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1543, -1, 28, 1, 128 },
-  { 0x1, 0x1, 168, 1544, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1545, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1546, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1547, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1548, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1549, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1550, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1551, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1552, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1553, -1, 28, 1, 128 },
-  { 0x1, 0x1, 168, 1554, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1555, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1556, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1557, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1558, -1, 28, 1, 125 },
-  { 0x1, 0x1, 168, 1559, -1, 28, 1, 126 },
-  { 0x1, 0x1, 168, 1560, -1, 28, 1, 127 },
-  { 0x1, 0x1, 168, 1561, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1562, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1563, -1, 28, 1, 128 },
-  { 0x1, 0x1, 168, 1564, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1565, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1566, -1, 28, 1, 129 },
-  { 0x1, 0x1, 168, 1567, -1, 28, 1, 124 },
-  { 0x1, 0x1, 168, 1568, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1569, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1570, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1571, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1572, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1573, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1574, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1575, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1576, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1577, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1578, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1579, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1580, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1581, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1582, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1583, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1584, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1585, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1586, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1587, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1588, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1589, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1590, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1591, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1592, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1593, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1594, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1595, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1596, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1597, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1598, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1599, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1600, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1601, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1602, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1603, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1604, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1605, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1606, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1607, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1608, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1609, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1610, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1611, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1612, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1613, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1614, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1615, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1616, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1617, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1618, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1619, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1620, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1621, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1622, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1623, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1624, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1625, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1626, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1627, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1628, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1629, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1630, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1631, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1632, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1633, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1634, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1635, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1636, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1637, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1638, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1639, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1640, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1641, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1642, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1643, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1644, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1645, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1646, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1647, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1648, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1649, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1650, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1651, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1652, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1653, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1654, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1655, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1656, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1657, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1658, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1659, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1660, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1661, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1662, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1663, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1664, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1665, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1666, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1667, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1668, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1669, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1670, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1671, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1672, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1673, -1, 28, 1, 138 },
-  { 0x1, 0x1, 168, 1674, -1, 28, 1, 139 },
-  { 0x1, 0x1, 168, 1675, -1, 28, 1, 140 },
-  { 0x1, 0x1, 168, 1676, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1677, -1, 28, 1, 141 },
-  { 0x1, 0x1, 168, 1678, -1, 28, 1, 137 },
-  { 0x1, 0x1, 168, 1433, -1, 28, 1, 142 },
-  { 0x1, 0x1, 168, 1434, -1, 28, 1, 143 },
-  { 0x1, 0x1, 168, 1435, -1, 28, 1, 143 },
-  { 0x1, 0x1, 168, 1436, -1, 28, 1, 142 },
-  { 0x1, 0x1, 168, 1437, -1, 28, 1, 144 },
-  { 0x1, 0x1, 168, 1438, -1, 28, 1, 145 },
-  { 0x1, 0x1, 168, 1439, -1, 28, 1, 145 },
-  { 0x1, 0x1, 168, 1440, -1, 28, 1, 144 },
-  { 0x1, 0x1, 168, 1441, -1, 28, 1, 144 },
-  { 0x1, 0x1, 168, 1442, -1, 28, 1, 145 },
-  { 0x1, 0x1, 168, 1443, -1, 28, 1, 145 },
-  { 0x1, 0x1, 168, 1444, -1, 28, 1, 144 },
-  { 0x1, 0x1, 168, 1719, -1, 28, 1, 133 },
-  { 0x1, 0x1, 168, 1720, -1, 28, 1, 133 },
-  { 0x1, 0x1, 168, 1721, -1, 28, 1, 133 },
-  { 0x1, 0x1, 168, 1722, -1, 28, 1, 133 },
-  { 0x1, 0x1, 169, 1679, -1, 29, 1, 142 },
-  { 0x1, 0x1, 169, 1680, -1, 29, 1, 143 },
-  { 0x1, 0x1, 169, 1681, -1, 29, 1, 143 },
-  { 0x1, 0x1, 169, 1682, -1, 29, 1, 142 },
-  { 0x1, 0x1, 169, 1683, -1, 29, 1, 144 },
-  { 0x1, 0x1, 169, 1684, -1, 29, 1, 145 },
-  { 0x1, 0x1, 169, 1685, -1, 29, 1, 145 },
-  { 0x1, 0x1, 169, 1686, -1, 29, 1, 144 },
-  { 0x1, 0x1, 169, 1687, -1, 29, 1, 144 },
-  { 0x1, 0x1, 169, 1688, -1, 29, 1, 145 },
-  { 0x1, 0x1, 169, 1689, -1, 29, 1, 145 },
-  { 0x1, 0x1, 169, 1690, -1, 29, 1, 144 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 132 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 132 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 132 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 132 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 132 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 132 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 132 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 132 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 133 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 133 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 133 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 133 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 257, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1867, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 259, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1868, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 261, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1869, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 263, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1870, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 265, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1871, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 267, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1872, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 269, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1873, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 271, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1874, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 273, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1875, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 128 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 275, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1876, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 128 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 277, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1877, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 125 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 126 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 127 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 128 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 279, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 129 },
-  { 0x3, 0x3, 170, 1878, -1, 28, 1, 124 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1879, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1880, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1881, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1882, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1883, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1884, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1885, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1886, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1887, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1888, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1889, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1890, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1891, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1892, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1893, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1894, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1895, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 138 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 139 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 140 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 141 },
-  { 0x3, 0x3, 170, 1896, -1, 28, 1, 137 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 142 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 143 },
-  { 0x3, 0x3, 170, 797, -1, 28, 1, 143 },
-  { 0x3, 0x3, 170, 798, -1, 28, 1, 142 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 144 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 145 },
-  { 0x3, 0x3, 170, 799, -1, 28, 1, 145 },
-  { 0x3, 0x3, 170, 800, -1, 28, 1, 144 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 144 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 145 },
-  { 0x3, 0x3, 170, 801, -1, 28, 1, 145 },
-  { 0x3, 0x3, 170, 802, -1, 28, 1, 144 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, 1835, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 135 },
-  { 0x3, 0x3, 170, 1836, -1, 28, 1, 135 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, 1837, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 135 },
-  { 0x3, 0x3, 170, 1838, -1, 28, 1, 135 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, 1839, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 135 },
-  { 0x3, 0x3, 170, 1840, -1, 28, 1, 135 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 131 },
-  { 0x3, 0x3, 170, 1841, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 135 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 136 },
-  { 0x3, 0x3, 170, 1842, -1, 28, 1, 135 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 130 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 133 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 133 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 133 },
-  { 0x3, 0x3, 170, -1, -1, 28, 1, 133 },
-  { 0x0, 0x0, 171, -1, 330, 0, 0, -1 },
-  { 0x0, 0x0, 171, 2490, 2460, 0, 1, 1 },
-  { 0x0, 0x0, 171, -1, 334, 0, 0, -1 },
-  { 0x0, 0x0, 171, 2492, 2462, 0, 1, 1 },
-  { 0x11, 0x31, 172, 2394, 337, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 172, -1, 338, 12, 1, 4 },
-  { 0x1, 0x1, 172, -1, 341, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 172, -1, 342, 12, 1, 4 },
-  { 0x11, 0x11, 172, -1, 343, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 172, -1, 344, 12, 1, 4 },
-  { 0x1, 0x1, 172, 1757, 345, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 172, -1, 347, 12, 1, 4 },
-  { 0x11, 0x11, 172, 1759, 349, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 172, -1, 351, 12, 1, 4 },
-  { 0x11, 0x31, 172, 2404, 357, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 172, -1, 358, 12, 1, 4 },
-  { 0x11, 0x31, 172, 2414, 361, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 172, -1, 362, 12, 1, 4 },
-  { 0x1, 0x1, 172, -1, 365, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 172, -1, 366, 12, 1, 4 },
-  { 0x11, 0x11, 172, -1, 367, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 172, -1, 368, 12, 1, 4 },
-  { 0x1, 0x1, 172, 1781, 369, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 172, -1, 371, 12, 1, 4 },
-  { 0x11, 0x11, 172, 1783, 373, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 172, -1, 375, 12, 1, 4 },
-  { 0x11, 0x31, 172, 2424, 381, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 172, -1, 382, 12, 1, 4 },
-  { 0x1, 0x1, 172, -1, 385, 33, 1, 4 },
-  { 0x200001, 0x200001, 172, -1, 386, 12, 1, 4 },
-  { 0x1, 0x1, 172, -1, 389, 33, 1, 4 },
-  { 0x200001, 0x200001, 172, -1, 390, 12, 1, 4 },
-  { 0x1, 0x1, 173, -1, -1, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 },
-  { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 },
-  { 0x1, 0x1, 173, 1734, -1, 37, 1, 4 },
-  { 0x2200001, 0x2200001, 173, -1, -1, 12, 1, 4 },
-  { 0x11, 0x11, 173, 1736, -1, 33, 1, 4 },
-  { 0x1, 0x1, 173, -1, -1, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 },
-  { 0x11, 0x11, 173, -1, -1, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 173, -1, -1, 12, 1, 4 },
-  { 0x1, 0x1, 173, -1, -1, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 },
-  { 0x0, 0x0, 173, -1, -1, 0, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 12, 1, 5 },
-  { 0x0, 0x0, 173, -1, -1, 0, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 12, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 33, 1, 5 },
-  { 0x200001, 0x200001, 173, -1, -1, 12, 1, 5 },
-  { 0x0, 0x0, 173, -1, -1, 0, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 12, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 33, 1, 5 },
-  { 0x200001, 0x200001, 173, -1, -1, 12, 1, 5 },
-  { 0x0, 0x0, 173, -1, -1, 0, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 12, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 },
-  { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 },
-  { 0x1, 0x1, 173, 1746, -1, 37, 1, 4 },
-  { 0x2200001, 0x2200001, 173, -1, -1, 12, 1, 4 },
-  { 0x11, 0x11, 173, 1748, -1, 33, 1, 4 },
-  { 0x1, 0x1, 173, -1, -1, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 },
-  { 0x11, 0x11, 173, -1, -1, 33, 1, 4 },
-  { 0x2200001, 0x2200001, 173, -1, -1, 12, 1, 4 },
-  { 0x1, 0x1, 173, -1, -1, 37, 1, 4 },
-  { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 },
-  { 0x0, 0x0, 173, -1, -1, 0, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 12, 1, 5 },
-  { 0x0, 0x0, 173, -1, -1, 0, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 12, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 33, 1, 5 },
-  { 0x200001, 0x200001, 173, -1, -1, 12, 1, 5 },
-  { 0x0, 0x0, 173, -1, -1, 0, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 12, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 33, 1, 5 },
-  { 0x200001, 0x200001, 173, -1, -1, 12, 1, 5 },
-  { 0x0, 0x0, 173, -1, -1, 0, 1, 5 },
-  { 0x1, 0x1, 173, -1, -1, 12, 1, 5 },
-  { 0x9, 0x9, 173, -1, -1, 33, 1, 5 },
-  { 0x1, 0x1, 173, 331, -1, 33, 1, 4 },
-  { 0x1200001, 0x1200001, 173, -1, -1, 12, 1, 5 },
-  { 0x200001, 0x200001, 173, 332, -1, 12, 1, 4 },
-  { 0x9, 0x9, 173, -1, -1, 33, 1, 5 },
-  { 0x1, 0x1, 173, 335, -1, 33, 1, 4 },
-  { 0x1200001, 0x1200001, 173, -1, -1, 12, 1, 5 },
-  { 0x200001, 0x200001, 173, 336, -1, 12, 1, 4 },
-  { 0x0, 0x0, 174, -1, 1924, 0, 0, -1 },
-  { 0x9, 0x9, 174, -1, 2454, 33, 1, 49 },
-  { 0x0, 0x0, 174, -1, 1965, 0, 0, -1 },
-  { 0x7, 0x7, 174, -1, -1, 27, 1, 49 },
-  { 0x1, 0x1, 194, -1, -1, 27, 1, 10 },
-  { 0x1, 0x1, 208, -1, -1, 29, 1, 0 },
-  { 0x1, 0x1, 208, -1, -1, 29, 1, 0 },
-  { 0x2, 0x3, 208, 978, -1, 27, 1, 33 },
-  { 0x0, 0x0, 208, 979, -1, 0, 1, 33 },
-  { 0x0, 0x0, 208, 980, -1, 0, 1, 0 },
-  { 0x0, 0x0, 208, 981, -1, 0, 1, 0 },
-  { 0x0, 0x0, 208, 982, -1, 0, 1, 0 },
-  { 0x0, 0x0, 208, 983, -1, 0, 1, 0 },
-  { 0x0, 0x0, 208, 2476, -1, 0, 1, 93 },
-  { 0x0, 0x0, 208, 2477, -1, 0, 1, 93 },
-  { 0x0, 0x0, 208, 2478, 812, 0, 0, -1 },
-  { 0x1, 0x1, 209, -1, -1, 27, 1, 0 },
-  { 0x1, 0x1, 209, -1, -1, 27, 1, 0 },
-  { 0x1, 0x1, 210, -1, 1184, 32, 1, 132 },
-  { 0x1, 0x1, 210, -1, 1186, 32, 1, 132 },
-  { 0x1, 0x1, 210, -1, 1188, 32, 1, 132 },
-  { 0x1, 0x1, 210, -1, 1190, 32, 1, 132 },
-  { 0x1, 0x1, 210, -1, 1192, 32, 1, 133 },
-  { 0x1, 0x1, 210, -1, 1194, 32, 1, 133 },
-  { 0x1, 0x1, 210, -1, 1691, 32, 1, 130 },
-  { 0x1, 0x1, 210, -1, 1693, 32, 1, 135 },
-  { 0x1, 0x1, 210, -1, 1695, 32, 1, 130 },
-  { 0x1, 0x1, 210, -1, 1697, 32, 1, 135 },
-  { 0x1, 0x1, 210, -1, 1699, 32, 1, 130 },
-  { 0x1, 0x1, 210, -1, 1701, 32, 1, 135 },
-  { 0x1, 0x1, 210, 2296, 1703, 32, 1, 130 },
-  { 0x1, 0x1, 210, 2297, 1706, 32, 1, 135 },
-  { 0x0, 0x0, 211, -1, 2338, 0, 0, -1 },
-  { 0x0, 0x0, 211, -1, 2339, 0, 0, -1 },
-  { 0x0, 0x0, 211, -1, 2364, 0, 0, -1 },
-  { 0x5, 0x5, 211, -1, 2367, 20, 1, 67 },
-  { 0x0, 0x0, 215, 1826, 811, 0, 0, -1 },
-  { 0x0, 0x0, 216, -1, 950, 0, 0, -1 },
-  { 0x0, 0x0, 216, -1, 1039, 0, 0, -1 },
-  { 0x0, 0x0, 216, -1, -1, 0, 1, 121 },
-  { 0x0, 0x0, 216, -1, -1, 0, 1, 66 },
-  { 0x1, 0x1, 216, 688, 1898, 36, 1, 65 },
-  { 0x1, 0x1, 216, 689, 1933, 36, 1, 65 },
-  { 0x0, 0x0, 216, 690, 1936, 0, 0, -1 },
-  { 0x1, 0x1, 216, 691, -1, 36, 1, 65 },
-  { 0x0, 0x0, 216, 1181, -1, 0, 1, 33 },
-  { 0x1, 0x1, 216, 692, 1941, 36, 1, 65 },
-  { 0x0, 0x0, 216, 693, 1944, 0, 0, -1 },
-  { 0x1, 0x1, 216, 694, -1, 36, 1, 65 },
-  { 0x0, 0x0, 216, 695, 1947, 0, 0, -1 },
-  { 0x1, 0x1, 216, 696, -1, 36, 1, 65 },
-  { 0x1, 0x1, 216, 697, 1950, 36, 1, 65 },
-  { 0x1, 0x1, 216, 698, 1953, 36, 1, 65 },
-  { 0x0, 0x0, 216, 1182, -1, 0, 1, 33 },
-  { 0x1, 0x1, 216, 699, 1986, 36, 1, 65 },
-  { 0x1, 0x1, 216, 700, -1, 31, 1, 134 },
-  { 0x1, 0x1, 216, 220, 1195, 32, 1, 125 },
-  { 0x1, 0x1, 216, 221, 1204, 32, 1, 125 },
-  { 0x1, 0x1, 216, 222, 1213, 32, 1, 125 },
-  { 0x1, 0x1, 216, 223, 1222, 32, 1, 125 },
-  { 0x1, 0x1, 216, 224, 1231, 32, 1, 125 },
-  { 0x1, 0x1, 216, 225, 1240, 32, 1, 125 },
-  { 0x1, 0x1, 216, 226, 1249, 32, 1, 125 },
-  { 0x1, 0x1, 216, 227, 1258, 32, 1, 125 },
-  { 0x1, 0x1, 216, 228, 1267, 32, 1, 125 },
-  { 0x1, 0x1, 216, 229, 1276, 32, 1, 125 },
-  { 0x1, 0x1, 216, 230, 1286, 32, 1, 125 },
-  { 0x1, 0x1, 216, 231, 1296, 32, 1, 125 },
-  { 0x1, 0x1, 216, 232, 1309, 32, 1, 138 },
-  { 0x1, 0x1, 216, 233, 1315, 32, 1, 138 },
-  { 0x1, 0x1, 216, 234, 1321, 32, 1, 138 },
-  { 0x1, 0x1, 216, 235, 1327, 32, 1, 138 },
-  { 0x1, 0x1, 216, 236, 1333, 32, 1, 138 },
-  { 0x1, 0x1, 216, 237, 1339, 32, 1, 138 },
-  { 0x1, 0x1, 216, 238, 1345, 32, 1, 138 },
-  { 0x1, 0x1, 216, 239, 1351, 32, 1, 138 },
-  { 0x1, 0x1, 216, 240, 1357, 32, 1, 138 },
-  { 0x1, 0x1, 216, 241, 1363, 32, 1, 138 },
-  { 0x1, 0x1, 216, 242, 1369, 32, 1, 138 },
-  { 0x1, 0x1, 216, 243, 1375, 32, 1, 138 },
-  { 0x1, 0x1, 216, 244, 1381, 32, 1, 138 },
-  { 0x1, 0x1, 216, 245, 1387, 32, 1, 138 },
-  { 0x1, 0x1, 216, 246, 1393, 32, 1, 138 },
-  { 0x1, 0x1, 216, 247, 1399, 32, 1, 138 },
-  { 0x1, 0x1, 216, 248, 1405, 32, 1, 138 },
-  { 0x1, 0x1, 216, 249, 1411, 32, 1, 138 },
-  { 0x1, 0x1, 216, 704, -1, 31, 1, 146 },
-  { 0x0, 0x0, 217, 1989, -1, 0, 1, 65 },
-  { 0x0, 0x0, 217, 1990, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 24, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 1992, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 1993, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 1994, -1, 0, 1, 44 },
-  { 0x0, 0x0, 217, 1995, -1, 0, 1, 39 },
-  { 0x1, 0x1, 217, 1996, -1, 12, 1, 58 },
-  { 0x0, 0x0, 217, 1997, -1, 0, 1, 53 },
-  { 0x1000001, 0x1000001, 217, 1998, -1, 12, 1, 58 },
-  { 0x1, 0x1, 217, 1999, -1, 36, 1, 53 },
-  { 0x200001, 0x200001, 217, 2000, -1, 12, 1, 58 },
-  { 0x1, 0x1, 217, 2001, -1, 33, 1, 53 },
-  { 0x1200001, 0x1200001, 217, 2002, -1, 12, 1, 48 },
-  { 0x9, 0x9, 217, 2003, -1, 33, 1, 48 },
-  { 0x1, 0x1, 217, 2004, -1, 12, 1, 58 },
-  { 0x0, 0x0, 217, 2005, -1, 0, 1, 53 },
-  { 0x200001, 0x1200001, 217, 2006, -1, 12, 1, 58 },
-  { 0x1, 0x9, 217, 2007, -1, 33, 1, 53 },
-  { 0x1, 0x1, 217, 2008, -1, 12, 1, 58 },
-  { 0x0, 0x0, 217, 2009, -1, 0, 1, 53 },
-  { 0x1000001, 0x1000001, 217, 2010, -1, 12, 1, 58 },
-  { 0x1, 0x1, 217, 2011, -1, 36, 1, 53 },
-  { 0x200001, 0x200001, 217, 2012, -1, 12, 1, 58 },
-  { 0x1, 0x1, 217, 2013, -1, 33, 1, 53 },
-  { 0x1200001, 0x1200001, 217, 2014, -1, 12, 1, 48 },
-  { 0x9, 0x9, 217, 2015, -1, 33, 1, 48 },
-  { 0x1, 0x1, 217, 2016, -1, 12, 1, 58 },
-  { 0x0, 0x0, 217, 2017, -1, 0, 1, 53 },
-  { 0x200001, 0x1200001, 217, 2018, -1, 12, 1, 58 },
-  { 0x1, 0x9, 217, 2019, -1, 33, 1, 53 },
-  { 0x1, 0x1, 217, 2020, -1, 28, 1, 28 },
-  { 0x0, 0x0, 217, 2021, -1, 0, 1, 28 },
-  { 0x3, 0x3, 217, 2022, -1, 27, 1, 28 },
-  { 0x1, 0x1, 217, 2023, -1, 27, 1, 28 },
-  { 0x0, 0x0, 217, 2024, -1, 0, 1, 65 },
-  { 0x0, 0x0, 217, 2025, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2026, -1, 0, 1, 28 },
-  { 0x1, 0x1, 217, 2027, -1, 36, 1, 65 },
-  { 0x1, 0x1, 217, 2028, -1, 37, 1, 28 },
-  { 0x0, 0x0, 217, 2029, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2030, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2031, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2032, -1, 0, 1, 65 },
-  { 0x0, 0x0, 217, 2033, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 36, -1, 0, 1, 28 },
-  { 0x1, 0x1, 217, 2035, -1, 36, 1, 65 },
-  { 0x1, 0x1, 217, 2036, -1, 37, 1, 28 },
-  { 0x0, 0x0, 217, 2037, -1, 0, 1, 28 },
-  { 0x1, 0x1, 217, 2038, -1, 36, 1, 65 },
-  { 0x1, 0x1, 217, 2039, -1, 37, 1, 28 },
-  { 0x0, 0x0, 217, 2040, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2041, -1, 0, 1, 65 },
-  { 0x0, 0x0, 217, 2042, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 41, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2044, -1, 0, 1, 65 },
-  { 0x0, 0x0, 217, 2045, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 42, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2047, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2048, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2049, -1, 0, 1, 48 },
-  { 0x1, 0x1, 217, 2050, -1, 27, 1, 48 },
-  { 0x1, 0x1, 217, 2051, -1, 28, 1, 48 },
-  { 0x3, 0x3, 217, 2052, -1, 27, 1, 48 },
-  { 0x1, 0x1, 217, 2053, -1, 29, 1, 48 },
-  { 0x5, 0x5, 217, 2054, -1, 27, 1, 48 },
-  { 0x3, 0x3, 217, 2055, -1, 28, 1, 48 },
-  { 0x7, 0x7, 217, 2056, -1, 27, 1, 48 },
-  { 0x0, 0x0, 217, 2057, -1, 0, 1, 48 },
-  { 0x0, 0x0, 217, 2058, -1, 0, 1, 48 },
-  { 0x0, 0x0, 217, 2059, -1, 0, 1, 48 },
-  { 0x0, 0x0, 217, 2060, -1, 0, 1, 48 },
-  { 0x1, 0x1, 217, 2061, -1, 28, 1, 28 },
-  { 0x0, 0x0, 217, 2062, -1, 0, 1, 28 },
-  { 0x3, 0x3, 217, 2063, -1, 27, 1, 28 },
-  { 0x1, 0x1, 217, 2064, -1, 27, 1, 28 },
-  { 0x0, 0x0, 217, 2065, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2066, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2067, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 51, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2069, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2070, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 56, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 2072, -1, 0, 1, 23 },
-  { 0x0, 0x0, 217, 2073, -1, 0, 1, 23 },
-  { 0x0, 0x0, 217, 2074, -1, 0, 1, 23 },
-  { 0x0, 0x0, 217, 2075, -1, 0, 1, 23 },
-  { 0x0, 0x0, 217, 2076, -1, 0, 1, 34 },
-  { 0x0, 0x0, 217, 2077, -1, 0, 1, 65 },
-  { 0x0, 0x0, 217, 2078, -1, 0, 1, 28 },
-  { 0x0, 0x0, 217, 63, -1, 0, 1, 28 },
-  { 0x1, 0x1, 218, 2080, -1, 34, 1, 65 },
-  { 0x1, 0x1, 218, 2081, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2082, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2083, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2084, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2085, -1, 34, 1, 45 },
-  { 0x1, 0x1, 218, 2086, -1, 34, 1, 41 },
-  { 0x400001, 0x400001, 218, 2087, -1, 12, 1, 60 },
-  { 0x1, 0x1, 218, 2088, -1, 34, 1, 55 },
-  { 0x1400001, 0x1400001, 218, 2089, -1, 12, 1, 60 },
-  { 0x5, 0x5, 218, 2090, -1, 34, 1, 55 },
-  { 0x600001, 0x600001, 218, 2091, -1, 12, 1, 60 },
-  { 0x3, 0x3, 218, 2092, -1, 33, 1, 55 },
-  { 0x1600001, 0x1600001, 218, 2093, -1, 12, 1, 50 },
-  { 0xb, 0xb, 218, 2094, -1, 33, 1, 50 },
-  { 0x400001, 0x400001, 218, 2095, -1, 12, 1, 60 },
-  { 0x1, 0x1, 218, 2096, -1, 34, 1, 55 },
-  { 0x600001, 0x1600001, 218, 2097, -1, 12, 1, 60 },
-  { 0x3, 0xb, 218, 2098, -1, 33, 1, 55 },
-  { 0x400001, 0x400001, 218, 2099, -1, 12, 1, 60 },
-  { 0x1, 0x1, 218, 2100, -1, 34, 1, 55 },
-  { 0x1400001, 0x1400001, 218, 2101, -1, 12, 1, 60 },
-  { 0x5, 0x5, 218, 2102, -1, 34, 1, 55 },
-  { 0x600001, 0x600001, 218, 2103, -1, 12, 1, 60 },
-  { 0x3, 0x3, 218, 2104, -1, 33, 1, 55 },
-  { 0x1600001, 0x1600001, 218, 2105, -1, 12, 1, 50 },
-  { 0xb, 0xb, 218, 2106, -1, 33, 1, 50 },
-  { 0x400001, 0x400001, 218, 2107, -1, 12, 1, 60 },
-  { 0x1, 0x1, 218, 2108, -1, 34, 1, 55 },
-  { 0x600001, 0x1600001, 218, 2109, -1, 12, 1, 60 },
-  { 0x3, 0xb, 218, 2110, -1, 33, 1, 55 },
-  { 0x41, 0x41, 218, 2111, -1, 28, 1, 30 },
-  { 0x1, 0x1, 218, 2112, -1, 34, 1, 30 },
-  { 0x83, 0x83, 218, 2113, -1, 27, 1, 30 },
-  { 0x81, 0x81, 218, 2114, -1, 27, 1, 30 },
-  { 0x1, 0x1, 218, 2115, -1, 34, 1, 65 },
-  { 0x1, 0x1, 218, 2116, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2117, -1, 34, 1, 30 },
-  { 0x5, 0x5, 218, 2118, -1, 34, 1, 65 },
-  { 0x9, 0x9, 218, 2119, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2120, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2121, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2122, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2123, -1, 34, 1, 65 },
-  { 0x1, 0x1, 218, 2124, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2125, -1, 34, 1, 30 },
-  { 0x5, 0x5, 218, 2126, -1, 34, 1, 65 },
-  { 0x9, 0x9, 218, 2127, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2128, -1, 34, 1, 30 },
-  { 0x5, 0x5, 218, 2129, -1, 34, 1, 65 },
-  { 0x9, 0x9, 218, 2130, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2131, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2132, -1, 34, 1, 65 },
-  { 0x1, 0x1, 218, 2133, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2134, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2135, -1, 34, 1, 65 },
-  { 0x1, 0x1, 218, 2136, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2137, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2138, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2139, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2140, -1, 34, 1, 50 },
-  { 0x81, 0x81, 218, 2141, -1, 27, 1, 50 },
-  { 0x41, 0x41, 218, 2142, -1, 28, 1, 50 },
-  { 0x83, 0x83, 218, 2143, -1, 27, 1, 50 },
-  { 0x21, 0x21, 218, 2144, -1, 29, 1, 50 },
-  { 0x85, 0x85, 218, 2145, -1, 27, 1, 50 },
-  { 0x43, 0x43, 218, 2146, -1, 28, 1, 50 },
-  { 0x87, 0x87, 218, 2147, -1, 27, 1, 50 },
-  { 0x1, 0x1, 218, 2148, -1, 34, 1, 50 },
-  { 0x1, 0x1, 218, 2149, -1, 34, 1, 50 },
-  { 0x1, 0x1, 218, 2150, -1, 34, 1, 50 },
-  { 0x1, 0x1, 218, 2151, -1, 34, 1, 50 },
-  { 0x41, 0x41, 218, 2152, -1, 28, 1, 30 },
-  { 0x1, 0x1, 218, 2153, -1, 34, 1, 30 },
-  { 0x83, 0x83, 218, 2154, -1, 27, 1, 30 },
-  { 0x81, 0x81, 218, 2155, -1, 27, 1, 30 },
-  { 0x1, 0x1, 218, 2156, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2157, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2158, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2159, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2160, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2161, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2162, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2163, -1, 34, 1, 25 },
-  { 0x1, 0x1, 218, 2164, -1, 34, 1, 25 },
-  { 0x1, 0x1, 218, 2165, -1, 34, 1, 25 },
-  { 0x1, 0x1, 218, 2166, -1, 34, 1, 25 },
-  { 0x1, 0x1, 218, 2167, -1, 34, 1, 36 },
-  { 0x1, 0x1, 218, 2168, -1, 34, 1, 65 },
-  { 0x1, 0x1, 218, 2169, -1, 34, 1, 30 },
-  { 0x1, 0x1, 218, 2170, -1, 34, 1, 30 },
-  { 0x1, 0x1, 219, 2171, -1, 35, 1, 65 },
-  { 0x1, 0x1, 219, 2172, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2173, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2174, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2175, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2176, -1, 35, 1, 46 },
-  { 0x1, 0x1, 219, 2177, -1, 35, 1, 42 },
-  { 0x800001, 0x800001, 219, 2178, -1, 12, 1, 61 },
-  { 0x1, 0x1, 219, 2179, -1, 35, 1, 56 },
-  { 0x1800001, 0x1800001, 219, 2180, -1, 12, 1, 61 },
-  { 0x3, 0x3, 219, 2181, -1, 35, 1, 56 },
-  { 0xa00001, 0xa00001, 219, 2182, -1, 12, 1, 61 },
-  { 0x5, 0x5, 219, 2183, -1, 33, 1, 56 },
-  { 0x1a00001, 0x1a00001, 219, 2184, -1, 12, 1, 51 },
-  { 0xd, 0xd, 219, 2185, -1, 33, 1, 51 },
-  { 0x800001, 0x800001, 219, 2186, -1, 12, 1, 61 },
-  { 0x1, 0x1, 219, 2187, -1, 35, 1, 56 },
-  { 0xa00001, 0x1a00001, 219, 2188, -1, 12, 1, 61 },
-  { 0x5, 0xd, 219, 2189, -1, 33, 1, 56 },
-  { 0x800001, 0x800001, 219, 2190, -1, 12, 1, 61 },
-  { 0x1, 0x1, 219, 2191, -1, 35, 1, 56 },
-  { 0x1800001, 0x1800001, 219, 2192, -1, 12, 1, 61 },
-  { 0x3, 0x3, 219, 2193, -1, 35, 1, 56 },
-  { 0xa00001, 0xa00001, 219, 2194, -1, 12, 1, 61 },
-  { 0x5, 0x5, 219, 2195, -1, 33, 1, 56 },
-  { 0x1a00001, 0x1a00001, 219, 2196, -1, 12, 1, 51 },
-  { 0xd, 0xd, 219, 2197, -1, 33, 1, 51 },
-  { 0x800001, 0x800001, 219, 2198, -1, 12, 1, 61 },
-  { 0x1, 0x1, 219, 2199, -1, 35, 1, 56 },
-  { 0xa00001, 0x1a00001, 219, 2200, -1, 12, 1, 61 },
-  { 0x5, 0xd, 219, 2201, -1, 33, 1, 56 },
-  { 0x81, 0x81, 219, 2202, -1, 28, 1, 31 },
-  { 0x1, 0x1, 219, 2203, -1, 35, 1, 31 },
-  { 0x103, 0x103, 219, 2204, -1, 27, 1, 31 },
-  { 0x101, 0x101, 219, 2205, -1, 27, 1, 31 },
-  { 0x1, 0x1, 219, 2206, -1, 35, 1, 65 },
-  { 0x1, 0x1, 219, 2207, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2208, -1, 35, 1, 31 },
-  { 0x3, 0x3, 219, 2209, -1, 35, 1, 65 },
-  { 0x5, 0x5, 219, 2210, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2211, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2212, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2213, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2214, -1, 35, 1, 65 },
-  { 0x1, 0x1, 219, 2215, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2216, -1, 35, 1, 31 },
-  { 0x3, 0x3, 219, 2217, -1, 35, 1, 65 },
-  { 0x5, 0x5, 219, 2218, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2219, -1, 35, 1, 31 },
-  { 0x3, 0x3, 219, 2220, -1, 35, 1, 65 },
-  { 0x5, 0x5, 219, 2221, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2222, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2223, -1, 35, 1, 65 },
-  { 0x1, 0x1, 219, 2224, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2225, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2226, -1, 35, 1, 65 },
-  { 0x1, 0x1, 219, 2227, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2228, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2229, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2230, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2231, -1, 35, 1, 51 },
-  { 0x101, 0x101, 219, 2232, -1, 27, 1, 51 },
-  { 0x81, 0x81, 219, 2233, -1, 28, 1, 51 },
-  { 0x103, 0x103, 219, 2234, -1, 27, 1, 51 },
-  { 0x41, 0x41, 219, 2235, -1, 29, 1, 51 },
-  { 0x105, 0x105, 219, 2236, -1, 27, 1, 51 },
-  { 0x83, 0x83, 219, 2237, -1, 28, 1, 51 },
-  { 0x107, 0x107, 219, 2238, -1, 27, 1, 51 },
-  { 0x1, 0x1, 219, 2239, -1, 35, 1, 51 },
-  { 0x1, 0x1, 219, 2240, -1, 35, 1, 51 },
-  { 0x1, 0x1, 219, 2241, -1, 35, 1, 51 },
-  { 0x1, 0x1, 219, 2242, -1, 35, 1, 51 },
-  { 0x81, 0x81, 219, 2243, -1, 28, 1, 31 },
-  { 0x1, 0x1, 219, 2244, -1, 35, 1, 31 },
-  { 0x103, 0x103, 219, 2245, -1, 27, 1, 31 },
-  { 0x101, 0x101, 219, 2246, -1, 27, 1, 31 },
-  { 0x1, 0x1, 219, 2247, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2248, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2249, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2250, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2251, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2252, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2253, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2254, -1, 35, 1, 26 },
-  { 0x1, 0x1, 219, 2255, -1, 35, 1, 26 },
-  { 0x1, 0x1, 219, 2256, -1, 35, 1, 26 },
-  { 0x1, 0x1, 219, 2257, -1, 35, 1, 26 },
-  { 0x1, 0x1, 219, 2258, -1, 35, 1, 37 },
-  { 0x1, 0x1, 219, 2259, -1, 35, 1, 65 },
-  { 0x1, 0x1, 219, 2260, -1, 35, 1, 31 },
-  { 0x1, 0x1, 219, 2261, -1, 35, 1, 31 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 65 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, 1852, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 47 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 43 },
-  { 0xc00001, 0xc00001, 220, -1, -1, 12, 1, 62 },
-  { 0x3, 0x3, 220, 2435, -1, 34, 1, 57 },
-  { 0x1c00001, 0x1c00001, 220, -1, -1, 12, 1, 62 },
-  { 0x7, 0x7, 220, 2436, -1, 34, 1, 57 },
-  { 0xe00001, 0xe00001, 220, -1, -1, 12, 1, 62 },
-  { 0x7, 0x7, 220, 2437, -1, 33, 1, 57 },
-  { 0x1e00001, 0x1e00001, 220, -1, -1, 12, 1, 52 },
-  { 0xf, 0xf, 220, 2438, -1, 33, 1, 52 },
-  { 0xc00001, 0xc00001, 220, -1, -1, 12, 1, 62 },
-  { 0x3, 0x3, 220, 2443, -1, 34, 1, 57 },
-  { 0xe00001, 0x1e00001, 220, -1, -1, 12, 1, 62 },
-  { 0x7, 0xf, 220, 2444, -1, 33, 1, 57 },
-  { 0xc00001, 0xc00001, 220, -1, -1, 12, 1, 62 },
-  { 0x3, 0x3, 220, 2447, -1, 34, 1, 57 },
-  { 0x1c00001, 0x1c00001, 220, -1, -1, 12, 1, 62 },
-  { 0x7, 0x7, 220, 2448, -1, 34, 1, 57 },
-  { 0xe00001, 0xe00001, 220, -1, -1, 12, 1, 62 },
-  { 0x7, 0x7, 220, 2449, -1, 33, 1, 57 },
-  { 0x1e00001, 0x1e00001, 220, -1, -1, 12, 1, 52 },
-  { 0xf, 0xf, 220, 2450, -1, 33, 1, 52 },
-  { 0xc00001, 0xc00001, 220, -1, -1, 12, 1, 62 },
-  { 0x3, 0x3, 220, 2455, -1, 34, 1, 57 },
-  { 0xe00001, 0x1e00001, 220, -1, -1, 12, 1, 62 },
-  { 0x7, 0xf, 220, 2456, -1, 33, 1, 57 },
-  { 0xc1, 0xc1, 220, -1, -1, 28, 1, 32 },
-  { 0x3, 0x3, 220, 2375, -1, 34, 1, 32 },
-  { 0x183, 0x183, 220, -1, -1, 27, 1, 32 },
-  { 0x181, 0x181, 220, 2376, -1, 27, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 65 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, 1853, -1, 34, 1, 32 },
-  { 0x7, 0x7, 220, -1, -1, 34, 1, 65 },
-  { 0xb, 0xb, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, 1854, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 65 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, 1857, -1, 34, 1, 32 },
-  { 0x7, 0x7, 220, -1, -1, 34, 1, 65 },
-  { 0xb, 0xb, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, 1858, -1, 34, 1, 32 },
-  { 0x7, 0x7, 220, -1, -1, 34, 1, 65 },
-  { 0xb, 0xb, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, 1860, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 65 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, 1862, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 65 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, 1863, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 52 },
-  { 0x181, 0x181, 220, -1, -1, 27, 1, 52 },
-  { 0xc1, 0xc1, 220, -1, -1, 28, 1, 52 },
-  { 0x183, 0x183, 220, -1, -1, 27, 1, 52 },
-  { 0x61, 0x61, 220, -1, -1, 29, 1, 52 },
-  { 0x185, 0x185, 220, -1, -1, 27, 1, 52 },
-  { 0xc3, 0xc3, 220, -1, -1, 28, 1, 52 },
-  { 0x187, 0x187, 220, -1, -1, 27, 1, 52 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 52 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 52 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 52 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 52 },
-  { 0xc1, 0xc1, 220, -1, -1, 28, 1, 32 },
-  { 0x3, 0x3, 220, 2379, -1, 34, 1, 32 },
-  { 0x183, 0x183, 220, -1, -1, 27, 1, 32 },
-  { 0x181, 0x181, 220, 2380, -1, 27, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 27 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 27 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 27 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 27 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 38 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 65 },
-  { 0x3, 0x3, 220, -1, -1, 34, 1, 32 },
-  { 0x3, 0x3, 220, 1865, -1, 34, 1, 32 },
-  { 0x3, 0x3, 221, 395, 1197, 32, 1, 127 },
-  { 0x3, 0x3, 221, 396, 1206, 32, 1, 127 },
-  { 0x3, 0x3, 221, 397, 1215, 32, 1, 127 },
-  { 0x3, 0x3, 221, 398, 1224, 32, 1, 127 },
-  { 0x3, 0x3, 221, 399, 1233, 32, 1, 127 },
-  { 0x3, 0x3, 221, 400, 1242, 32, 1, 127 },
-  { 0x3, 0x3, 221, 401, 1251, 32, 1, 127 },
-  { 0x3, 0x3, 221, 402, 1260, 32, 1, 127 },
-  { 0x3, 0x3, 221, 403, 1269, 32, 1, 127 },
-  { 0x3, 0x3, 221, 404, 1278, 32, 1, 127 },
-  { 0x3, 0x3, 221, 405, 1288, 32, 1, 127 },
-  { 0x3, 0x3, 221, 406, 1298, 32, 1, 127 },
-  { 0x3, 0x3, 221, 419, 1311, 32, 1, 140 },
-  { 0x3, 0x3, 221, 420, 1317, 32, 1, 140 },
-  { 0x3, 0x3, 221, 421, 1323, 32, 1, 140 },
-  { 0x3, 0x3, 221, 422, 1329, 32, 1, 140 },
-  { 0x3, 0x3, 221, 423, 1335, 32, 1, 140 },
-  { 0x3, 0x3, 221, 424, 1341, 32, 1, 140 },
-  { 0x3, 0x3, 221, 425, 1347, 32, 1, 140 },
-  { 0x3, 0x3, 221, 426, 1353, 32, 1, 140 },
-  { 0x3, 0x3, 221, 427, 1359, 32, 1, 140 },
-  { 0x3, 0x3, 221, 428, 1365, 32, 1, 140 },
-  { 0x3, 0x3, 221, 429, 1371, 32, 1, 140 },
-  { 0x3, 0x3, 221, 430, 1377, 32, 1, 140 },
-  { 0x3, 0x3, 221, 431, 1383, 32, 1, 140 },
-  { 0x3, 0x3, 221, 432, 1389, 32, 1, 140 },
-  { 0x3, 0x3, 221, 433, 1395, 32, 1, 140 },
-  { 0x3, 0x3, 221, 434, 1401, 32, 1, 140 },
-  { 0x3, 0x3, 221, 435, 1407, 32, 1, 140 },
-  { 0x3, 0x3, 221, 436, 1413, 32, 1, 140 },
-  { 0x1, 0x1, 222, -1, -1, 28, 1, 33 },
-  { 0x1, 0x1, 222, -1, -1, 28, 1, 33 },
-  { 0x0, 0x0, 229, 804, -1, 0, 1, 134 },
-  { 0x0, 0x0, 229, 805, -1, 0, 1, 146 },
-  { 0x1, 0x1, 230, -1, 1704, 33, 1, 131 },
-  { 0x1, 0x1, 230, -1, 1707, 33, 1, 136 },
-  { 0x0, 0x0, 230, -1, 1709, 0, 1, 130 },
-  { 0x0, 0x0, 230, -1, 1710, 0, 1, 130 },
-  { 0x0, 0x0, 231, 738, 816, 0, 0, -1 },
-  { 0x0, 0x0, 231, 739, 824, 0, 0, -1 },
-  { 0x0, 0x0, 231, 740, 820, 0, 0, -1 },
-  { 0x1, 0x1, 231, 741, 475, 33, 1, 6 },
-  { 0x8000001, 0x8000001, 231, 742, 483, 6, 1, 7 },
-  { 0x1, 0x1, 231, 743, 479, 33, 1, 6 },
-  { 0x0, 0x0, 231, 744, 828, 0, 0, -1 },
-  { 0x1, 0x1, 231, 745, 495, 33, 1, 8 },
-  { 0x0, 0x0, 231, 746, 832, 0, 0, -1 },
-  { 0x1, 0x1, 231, 747, 507, 33, 1, 15 },
-  { 0x0, 0x0, 231, 748, 837, 0, 0, -1 },
-  { 0x0, 0x0, 231, 749, 841, 0, 0, -1 },
-  { 0x1, 0x1, 231, 750, 530, 33, 1, 17 },
-  { 0x1, 0x1, 231, 751, 534, 33, 1, 17 },
-  { 0x0, 0x0, 231, 752, 845, 0, 0, -1 },
-  { 0x0, 0x0, 231, 753, 849, 0, 0, -1 },
-  { 0x1, 0x1, 231, 754, 554, 33, 1, 18 },
-  { 0x8000001, 0x8000001, 231, 755, 558, 6, 1, 18 },
-  { 0x0, 0x0, 231, 756, 853, 0, 0, -1 },
-  { 0x1, 0x1, 231, 757, 570, 33, 1, 19 },
-  { 0x0, 0x0, 231, 758, 857, 0, 0, -1 },
-  { 0x0, 0x0, 231, 759, 861, 0, 0, -1 },
-  { 0x1, 0x1, 231, 760, 590, 33, 1, 20 },
-  { 0x8000001, 0x8000001, 231, 761, 594, 6, 1, 20 },
-  { 0x0, 0x0, 231, 762, 865, 0, 0, -1 },
-  { 0x1, 0x1, 231, 763, 606, 33, 1, 21 },
-  { 0x0, 0x0, 231, 764, 870, 0, 0, -1 },
-  { 0x0, 0x0, 231, 765, 874, 0, 0, -1 },
-  { 0x1, 0x1, 231, 766, 629, 33, 1, 17 },
-  { 0x1, 0x1, 231, 767, 633, 33, 1, 17 },
-  { 0x0, 0x0, 231, 768, 878, 0, 0, -1 },
-  { 0x1, 0x1, 231, 769, 645, 33, 1, 21 },
-  { 0x0, 0x0, 232, 2300, 815, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2301, 823, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2302, 819, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2303, 474, 0, 1, 6 },
-  { 0x1, 0x1, 232, 2304, 482, 6, 1, 7 },
-  { 0x0, 0x0, 232, 2305, 478, 0, 1, 6 },
-  { 0x0, 0x0, 232, 2306, 827, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2307, 494, 0, 1, 8 },
-  { 0x0, 0x0, 232, 2308, 831, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2309, 506, 0, 1, 15 },
-  { 0x0, 0x0, 232, 2310, 836, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2311, 840, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2312, 529, 0, 1, 17 },
-  { 0x0, 0x0, 232, 2313, 533, 0, 1, 17 },
-  { 0x0, 0x0, 232, 2314, 844, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2315, 848, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2316, 553, 0, 1, 18 },
-  { 0x1, 0x1, 232, 2317, 557, 6, 1, 18 },
-  { 0x0, 0x0, 232, 2318, 852, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2319, 569, 0, 1, 19 },
-  { 0x0, 0x0, 232, 2320, 856, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2321, 860, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2322, 589, 0, 1, 20 },
-  { 0x1, 0x1, 232, 2323, 593, 6, 1, 20 },
-  { 0x0, 0x0, 232, 2324, 864, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2325, 605, 0, 1, 21 },
-  { 0x0, 0x0, 232, 2326, 869, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2327, 873, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2328, 628, 0, 1, 17 },
-  { 0x0, 0x0, 232, 2329, 632, 0, 1, 17 },
-  { 0x0, 0x0, 232, 2330, 877, 0, 0, -1 },
-  { 0x0, 0x0, 232, 2331, 644, 0, 1, 21 },
-  { 0x1, 0x1, 232, 770, 964, 27, 1, 16 },
-  { 0x0, 0x0, 232, 771, 962, 0, 1, 16 },
-  { 0x0, 0x0, 232, 1012, 966, 0, 1, 22 },
-  { 0x0, 0x1, 232, 974, 972, 20, 1, 67 },
-  { 0x0, 0x0, 232, 108, 970, 0, 1, 67 },
-  { 0x1, 0x1, 235, -1, -1, 29, 1, 0 },
-  { 0x0, 0x0, 235, -1, -1, 0, 1, 0 },
-  { 0x1, 0x1, 235, 2472, -1, 27, 1, 0 },
-  { 0x1, 0x1, 235, 2473, -1, 27, 1, 0 },
-  { 0x1, 0x1, 235, 2474, -1, 27, 1, 0 },
-  { 0x1, 0x1, 235, 2475, -1, 27, 1, 0 },
-  { 0x0, 0x0, 256, -1, 1929, 0, 0, -1 },
-  { 0x0, 0x0, 256, -1, 1931, 0, 0, -1 },
-  { 0x1, 0x1, 256, -1, -1, 28, 1, 29 },
-  { 0x1, 0x1, 256, -1, -1, 28, 1, 29 },
-  { 0x0, 0x0, 256, -1, 1970, 0, 0, -1 },
-  { 0x0, 0x0, 256, -1, 1972, 0, 0, -1 },
-  { 0x1, 0x1, 256, -1, -1, 28, 1, 29 },
-  { 0x1, 0x1, 256, -1, -1, 28, 1, 29 },
-  { 0x0, 0x0, 258, 22, -1, 0, 1, 0 },
-  { 0x0, 0x0, 258, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 258, -1, -1, 0, 1, 0 },
-  { 0x0, 0x1, 258, -1, -1, 29, 1, 0 },
-  { 0x0, 0x1, 258, -1, -1, 29, 1, 0 },
-  { 0x0, 0x1, 258, -1, -1, 29, 1, 0 },
-  { 0x0, 0x1, 258, -1, -1, 29, 1, 0 },
-  { 0x0, 0x1, 258, -1, -1, 29, 1, 0 },
-  { 0x0, 0x0, 258, 176, -1, 0, 1, 0 },
-  { 0x0, 0x1, 258, -1, -1, 29, 1, 0 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 64 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 64 },
-  { 0x0, 0x0, 259, -1, 1905, 0, 0, -1 },
-  { 0x0, 0x0, 259, -1, 1907, 0, 0, -1 },
-  { 0x0, 0x0, 259, -1, 1909, 0, 0, -1 },
-  { 0x0, 0x0, 259, -1, 1911, 0, 0, -1 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 49 },
-  { 0x0, 0x0, 259, -1, 1913, 0, 0, -1 },
-  { 0x0, 0x0, 259, -1, 1915, 0, 0, -1 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x0, 0x0, 259, -1, 1917, 0, 0, -1 },
-  { 0x0, 0x0, 259, -1, 1919, 0, 0, -1 },
-  { 0x0, 0x0, 259, -1, 1921, 0, 0, -1 },
-  { 0x0, 0x0, 259, -1, 1923, 0, 0, -1 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 49 },
-  { 0x0, 0x0, 259, -1, 1925, 0, 0, -1 },
-  { 0x0, 0x0, 259, -1, 1927, 0, 0, -1 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x1, 0x1, 259, -1, -1, 12, 1, 59 },
-  { 0x1, 0x1, 259, 329, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, 387, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, 333, -1, 12, 1, 2 },
-  { 0x1, 0x1, 259, 391, -1, 12, 1, 2 },
-  { 0x0, 0x0, 260, -1, 1912, 0, 0, -1 },
-  { 0x9, 0x9, 260, -1, 2442, 33, 1, 49 },
-  { 0x0, 0x0, 260, 1162, 1961, 0, 0, -1 },
-  { 0x3, 0x3, 260, 1163, -1, 27, 1, 49 },
-  { 0x0, 0x0, 264, 2369, -1, 0, 1, 0 },
-  { 0x3, 0x3, 265, -1, -1, 27, 1, 0 },
-  { 0x3, 0x3, 265, -1, -1, 27, 1, 0 },
-  { 0x3, 0x3, 265, -1, -1, 27, 1, 0 },
-  { 0x3, 0x3, 265, -1, -1, 27, 1, 0 },
-  { 0x1, 0x1, 266, 2468, -1, 28, 1, 0 },
-  { 0x1, 0x1, 266, 2469, -1, 28, 1, 0 },
-  { 0x1, 0x1, 266, 2470, -1, 28, 1, 0 },
-  { 0x1, 0x1, 266, 2471, -1, 28, 1, 0 },
-  { 0x1, 0x1, 267, -1, -1, 27, 1, 93 },
-  { 0x1, 0x1, 267, -1, -1, 27, 1, 93 },
-  { 0x0, 0x0, 267, -1, 813, 0, 0, -1 },
-  { 0x0, 0x0, 268, 2481, 2346, 0, 0, -1 },
-  { 0x0, 0x0, 268, 2482, 2348, 0, 0, -1 },
-  { 0x0, 0x0, 269, -1, 2347, 0, 0, -1 },
-  { 0x0, 0x0, 269, -1, 2349, 0, 0, -1 },
-  { 0x0, 0x0, 270, -1, -1, 0, 1, 40 },
-  { 0x0, 0x0, 270, -1, -1, 0, 1, 40 },
-  { 0x0, 0x0, 275, -1, -1, 0, 1, 33 },
-  { 0x0, 0x0, 279, -1, 1935, 0, 1, 29 },
-  { 0x0, 0x0, 280, -1, -1, 0, 1, 0 },
-  { 0x0, 0x0, 280, -1, -1, 0, 1, 71 },
-  { 0x0, 0x0, 280, 1723, 2459, 0, 1, 1 },
-  { 0x0, 0x0, 280, -1, 388, 0, 0, -1 },
-  { 0x0, 0x0, 280, 1725, 2461, 0, 1, 1 },
-  { 0x0, 0x0, 280, -1, 392, 0, 0, -1 },
+  { 0x1, 0x1, 24, 1125, 1214, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1126, 1223, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1127, 1232, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1128, 1243, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1129, 1252, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1130, 1261, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1131, 1270, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1132, 1279, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1133, 1288, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1134, 1298, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1135, 1308, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1136, 1318, 35, 1, 130 },
+  { 0x1, 0x1, 24, 1137, 1327, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1138, 1333, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1139, 1339, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1140, 1345, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1141, 1351, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1142, 1357, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1143, 1363, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1144, 1369, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1145, 1375, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1146, 1381, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1147, 1387, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1148, 1393, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1149, 1399, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1150, 1405, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1151, 1411, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1152, 1417, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1153, 1423, 35, 1, 144 },
+  { 0x1, 0x1, 24, 1154, 1429, 35, 1, 144 },
+  { 0x0, 0x0, 33, 2357, 2355, 0, 0, -1 },
+  { 0x0, 0x0, 33, 2360, 2358, 0, 0, -1 },
+  { 0x0, 0x0, 33, 2366, 2365, 0, 0, -1 },
+  { 0x0, 0x0, 33, 2368, 2367, 0, 0, -1 },
+  { 0x0, 0x0, 33, 2382, 2381, 0, 0, -1 },
+  { 0x0, 0x0, 33, 2384, 2383, 0, 0, -1 },
+  { 0x0, 0x0, 35, -1, 2376, 0, 0, -1 },
+  { 0x0, 0x0, 35, -1, 2378, 0, 0, -1 },
+  { 0x1, 0x1, 38, -1, 1922, 37, 1, 29 },
+  { 0x1, 0x1, 38, -1, 1957, 37, 1, 29 },
+  { 0x0, 0x0, 38, -1, 1960, 0, 0, -1 },
+  { 0x1, 0x1, 38, -1, -1, 37, 1, 29 },
+  { 0x1, 0x1, 38, -1, 1965, 37, 1, 29 },
+  { 0x0, 0x0, 38, -1, 1968, 0, 0, -1 },
+  { 0x1, 0x1, 38, -1, -1, 37, 1, 29 },
+  { 0x0, 0x0, 38, -1, 1971, 0, 0, -1 },
+  { 0x1, 0x1, 38, -1, -1, 37, 1, 29 },
+  { 0x1, 0x1, 38, -1, 1974, 37, 1, 29 },
+  { 0x1, 0x1, 38, -1, 1977, 37, 1, 29 },
+  { 0x1, 0x1, 38, -1, 2010, 37, 1, 29 },
+  { 0x3, 0x3, 38, -1, -1, 30, 1, 137 },
+  { 0x0, 0x0, 38, 960, -1, 0, 1, 95 },
+  { 0x0, 0x0, 38, -1, -1, 0, 1, 104 },
+  { 0x0, 0x0, 38, 966, -1, 0, 1, 116 },
+  { 0x3, 0x3, 38, -1, -1, 30, 1, 149 },
+  { 0x0, 0x0, 38, 967, -1, 0, 1, 40 },
+  { 0x0, 0x0, 40, -1, 825, 0, 0, -1 },
+  { 0x0, 0x0, 40, -1, 833, 0, 0, -1 },
+  { 0x0, 0x0, 40, 969, 829, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 483, 33, 1, 6 },
+  { 0x18000001, 0x18000001, 40, -1, 491, 6, 1, 7 },
+  { 0x3, 0x3, 40, 970, 487, 33, 1, 6 },
+  { 0x0, 0x0, 40, -1, 837, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 503, 33, 1, 8 },
+  { 0x0, 0x0, 40, -1, 841, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 515, 33, 1, 15 },
+  { 0x0, 0x0, 40, -1, 846, 0, 0, -1 },
+  { 0x0, 0x0, 40, -1, 850, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 538, 33, 1, 17 },
+  { 0x3, 0x3, 40, -1, 542, 33, 1, 17 },
+  { 0x0, 0x0, 40, -1, 854, 0, 0, -1 },
+  { 0x0, 0x0, 40, -1, 858, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 562, 33, 1, 18 },
+  { 0x18000001, 0x18000001, 40, -1, 566, 6, 1, 18 },
+  { 0x0, 0x0, 40, -1, 862, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 578, 33, 1, 19 },
+  { 0x0, 0x0, 40, -1, 866, 0, 0, -1 },
+  { 0x0, 0x0, 40, -1, 870, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 598, 33, 1, 20 },
+  { 0x18000001, 0x18000001, 40, -1, 602, 6, 1, 20 },
+  { 0x0, 0x0, 40, -1, 874, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 614, 33, 1, 21 },
+  { 0x0, 0x0, 40, -1, 879, 0, 0, -1 },
+  { 0x0, 0x0, 40, -1, 883, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 637, 33, 1, 17 },
+  { 0x3, 0x3, 40, -1, 641, 33, 1, 17 },
+  { 0x0, 0x0, 40, -1, 887, 0, 0, -1 },
+  { 0x3, 0x3, 40, -1, 653, 33, 1, 21 },
+  { 0x0, 0x0, 41, 712, 824, 0, 0, -1 },
+  { 0x0, 0x0, 41, 713, 832, 0, 0, -1 },
+  { 0x0, 0x0, 41, 714, 828, 0, 0, -1 },
+  { 0x1, 0x1, 41, 715, 482, 34, 1, 6 },
+  { 0x10000001, 0x10000001, 41, 716, 490, 6, 1, 7 },
+  { 0x1, 0x1, 41, 717, 486, 34, 1, 6 },
+  { 0x0, 0x0, 41, 718, 836, 0, 0, -1 },
+  { 0x1, 0x1, 41, 719, 502, 34, 1, 8 },
+  { 0x0, 0x0, 41, 720, 840, 0, 0, -1 },
+  { 0x1, 0x1, 41, 721, 514, 34, 1, 15 },
+  { 0x0, 0x0, 41, 722, 845, 0, 0, -1 },
+  { 0x0, 0x0, 41, 723, 849, 0, 0, -1 },
+  { 0x1, 0x1, 41, 724, 537, 34, 1, 17 },
+  { 0x1, 0x1, 41, 725, 541, 34, 1, 17 },
+  { 0x0, 0x0, 41, 726, 853, 0, 0, -1 },
+  { 0x0, 0x0, 41, 727, 857, 0, 0, -1 },
+  { 0x1, 0x1, 41, 728, 561, 34, 1, 18 },
+  { 0x10000001, 0x10000001, 41, 729, 565, 6, 1, 18 },
+  { 0x0, 0x0, 41, 730, 861, 0, 0, -1 },
+  { 0x1, 0x1, 41, 731, 577, 34, 1, 19 },
+  { 0x0, 0x0, 41, 732, 865, 0, 0, -1 },
+  { 0x0, 0x0, 41, 733, 869, 0, 0, -1 },
+  { 0x1, 0x1, 41, 734, 597, 34, 1, 20 },
+  { 0x10000001, 0x10000001, 41, 735, 601, 6, 1, 20 },
+  { 0x0, 0x0, 41, 736, 873, 0, 0, -1 },
+  { 0x1, 0x1, 41, 737, 613, 34, 1, 21 },
+  { 0x0, 0x0, 41, 738, 878, 0, 0, -1 },
+  { 0x0, 0x0, 41, 739, 882, 0, 0, -1 },
+  { 0x1, 0x1, 41, 740, 636, 34, 1, 17 },
+  { 0x1, 0x1, 41, 741, 640, 34, 1, 17 },
+  { 0x0, 0x0, 41, 742, 886, 0, 0, -1 },
+  { 0x1, 0x1, 41, 743, 652, 34, 1, 21 },
+  { 0x800001, 0x800001, 41, -1, 974, 4, 1, 16 },
+  { 0x1, 0x1, 41, 1868, 972, 4, 1, 16 },
+  { 0x1, 0x1, 41, 809, 977, 4, 1, 22 },
+  { 0x2, 0x3, 41, -1, 982, 20, 1, 67 },
+  { 0x1, 0x1, 41, 1869, 980, 21, 1, 67 },
+  { 0x0, 0x0, 42, -1, -1, 0, 1, 80 },
+  { 0x0, 0x0, 42, -1, -1, 0, 1, 80 },
+  { 0x0, 0x0, 42, -1, -1, 0, 1, 123 },
+  { 0x1, 0x1, 44, 1155, 286, 38, 1, 1 },
+  { 0x0, 0x0, 44, -1, 345, 0, 0, -1 },
+  { 0x1, 0x1, 44, 1158, 296, 38, 1, 1 },
+  { 0x0, 0x0, 44, -1, 365, 0, 0, -1 },
+  { 0x0, 0x0, 44, -1, 299, 0, 0, -1 },
+  { 0x0, 0x0, 44, -1, 309, 0, 0, -1 },
+  { 0x1, 0x1, 44, 1163, 310, 38, 1, 1 },
+  { 0x0, 0x0, 44, -1, 369, 0, 0, -1 },
+  { 0x1, 0x1, 44, 1166, 320, 38, 1, 1 },
+  { 0x0, 0x0, 44, -1, 389, 0, 0, -1 },
+  { 0x0, 0x0, 44, -1, 323, 0, 0, -1 },
+  { 0x0, 0x0, 44, -1, 333, 0, 0, -1 },
+  { 0x0, 0x0, 44, 1037, 1929, 0, 0, -1 },
+  { 0x0, 0x0, 44, 1038, 2462, 0, 1, 54 },
+  { 0x0, 0x0, 44, 1039, 1981, 0, 0, -1 },
+  { 0x0, 0x0, 44, 1040, -1, 0, 1, 49 },
+  { 0x0, 0x0, 44, 942, -1, 0, 1, 0 },
+  { 0x0, 0x0, 44, 943, -1, 0, 1, 0 },
+  { 0x0, 0x0, 44, 944, -1, 0, 1, 0 },
+  { 0x1, 0x1, 45, -1, 1433, 30, 1, 146 },
+  { 0x1, 0x1, 45, 815, 1432, 30, 1, 145 },
+  { 0x1, 0x1, 45, -1, 1437, 30, 1, 148 },
+  { 0x1, 0x1, 45, 816, 1436, 30, 1, 147 },
+  { 0x1, 0x1, 45, -1, 1441, 30, 1, 148 },
+  { 0x1, 0x1, 45, 817, 1440, 30, 1, 147 },
+  { 0x3, 0x3, 46, -1, 978, 3, 1, 22 },
+  { 0x1, 0x1, 47, 1889, -1, 30, 1, 137 },
+  { 0x1, 0x1, 47, 1920, -1, 30, 1, 149 },
+  { 0x0, 0x0, 49, -1, -1, 0, 1, 40 },
+  { 0x0, 0x0, 49, -1, -1, 0, 1, 40 },
+  { 0x0, 0x0, 49, -1, -1, 0, 1, 40 },
+  { 0x1, 0x1, 56, -1, 1434, 31, 1, 146 },
+  { 0x1, 0x1, 56, -1, 1438, 31, 1, 148 },
+  { 0x1, 0x1, 56, -1, 1442, 31, 1, 148 },
+  { 0x0, 0x0, 56, -1, -1, 0, 1, 94 },
+  { 0x2, 0x3, 56, -1, -1, 27, 1, 94 },
+  { 0x1, 0x1, 56, -1, -1, 28, 1, 94 },
+  { 0x0, 0x0, 65, 13, 453, 0, 1, 6 },
+  { 0x0, 0x0, 65, 1056, 456, 0, 1, 6 },
+  { 0x1, 0x1, 65, 1057, 458, 33, 1, 6 },
+  { 0x1, 0x1, 65, 1058, 460, 34, 1, 6 },
+  { 0x3, 0x3, 65, 1059, 462, 33, 1, 6 },
+  { 0x0, 0x0, 65, 1060, 464, 0, 1, 6 },
+  { 0x1, 0x1, 65, 1061, 466, 33, 1, 6 },
+  { 0x1, 0x1, 65, 1062, 468, 34, 1, 6 },
+  { 0x3, 0x3, 65, 1063, 470, 33, 1, 6 },
+  { 0x1, 0x1, 65, 1064, 472, 6, 1, 7 },
+  { 0x8000001, 0x8000001, 65, 1065, 474, 6, 1, 7 },
+  { 0x10000001, 0x10000001, 65, 1066, 476, 6, 1, 7 },
+  { 0x18000001, 0x18000001, 65, 1067, 478, 6, 1, 7 },
+  { 0x0, 0x0, 65, 1068, 492, 0, 1, 8 },
+  { 0x1, 0x1, 65, 1069, 494, 33, 1, 8 },
+  { 0x1, 0x1, 65, 1070, 496, 34, 1, 8 },
+  { 0x3, 0x3, 65, 1071, 498, 33, 1, 8 },
+  { 0x0, 0x0, 65, 1072, 504, 0, 1, 15 },
+  { 0x1, 0x1, 65, 1073, 506, 33, 1, 15 },
+  { 0x1, 0x1, 65, 1074, 508, 34, 1, 15 },
+  { 0x3, 0x3, 65, 1075, 510, 33, 1, 15 },
+  { 0x0, 0x0, 65, 14, 516, 0, 1, 17 },
+  { 0x0, 0x0, 65, 1077, 519, 0, 1, 17 },
+  { 0x1, 0x1, 65, 1078, 521, 33, 1, 17 },
+  { 0x1, 0x1, 65, 1079, 523, 34, 1, 17 },
+  { 0x3, 0x3, 65, 1080, 525, 33, 1, 17 },
+  { 0x0, 0x0, 65, 1081, 527, 0, 1, 17 },
+  { 0x1, 0x1, 65, 1082, 529, 33, 1, 17 },
+  { 0x1, 0x1, 65, 1083, 531, 34, 1, 17 },
+  { 0x3, 0x3, 65, 1084, 533, 33, 1, 17 },
+  { 0x0, 0x0, 65, 1085, 543, 0, 1, 18 },
+  { 0x1, 0x1, 65, 1086, 545, 33, 1, 18 },
+  { 0x1, 0x1, 65, 1087, 547, 34, 1, 18 },
+  { 0x3, 0x3, 65, 1088, 549, 33, 1, 18 },
+  { 0x1, 0x1, 65, 1089, 551, 6, 1, 18 },
+  { 0x8000001, 0x8000001, 65, 1090, 553, 6, 1, 18 },
+  { 0x10000001, 0x10000001, 65, 1091, 555, 6, 1, 18 },
+  { 0x18000001, 0x18000001, 65, 1092, 557, 6, 1, 18 },
+  { 0x0, 0x0, 65, 1093, 567, 0, 1, 19 },
+  { 0x1, 0x1, 65, 1094, 569, 33, 1, 19 },
+  { 0x1, 0x1, 65, 1095, 571, 34, 1, 19 },
+  { 0x3, 0x3, 65, 1096, 573, 33, 1, 19 },
+  { 0x0, 0x0, 65, 1097, 579, 0, 1, 20 },
+  { 0x1, 0x1, 65, 1098, 581, 33, 1, 20 },
+  { 0x1, 0x1, 65, 1099, 583, 34, 1, 20 },
+  { 0x3, 0x3, 65, 1100, 585, 33, 1, 20 },
+  { 0x1, 0x1, 65, 1101, 587, 6, 1, 20 },
+  { 0x8000001, 0x8000001, 65, 1102, 589, 6, 1, 20 },
+  { 0x10000001, 0x10000001, 65, 1103, 591, 6, 1, 20 },
+  { 0x18000001, 0x18000001, 65, 1104, 593, 6, 1, 20 },
+  { 0x0, 0x0, 65, 1105, 603, 0, 1, 21 },
+  { 0x1, 0x1, 65, 1106, 605, 33, 1, 21 },
+  { 0x1, 0x1, 65, 1107, 607, 34, 1, 21 },
+  { 0x3, 0x3, 65, 1108, 609, 33, 1, 21 },
+  { 0x0, 0x0, 65, 16, 615, 0, 1, 17 },
+  { 0x0, 0x0, 65, 1110, 618, 0, 1, 17 },
+  { 0x1, 0x1, 65, 1111, 620, 33, 1, 17 },
+  { 0x1, 0x1, 65, 1112, 622, 34, 1, 17 },
+  { 0x3, 0x3, 65, 1113, 624, 33, 1, 17 },
+  { 0x0, 0x0, 65, 1114, 626, 0, 1, 17 },
+  { 0x1, 0x1, 65, 1115, 628, 33, 1, 17 },
+  { 0x1, 0x1, 65, 1116, 630, 34, 1, 17 },
+  { 0x3, 0x3, 65, 1117, 632, 33, 1, 17 },
+  { 0x0, 0x0, 65, 1118, 642, 0, 1, 21 },
+  { 0x1, 0x1, 65, 1119, 644, 33, 1, 21 },
+  { 0x1, 0x1, 65, 1120, 646, 34, 1, 21 },
+  { 0x3, 0x3, 65, 1121, 648, 33, 1, 21 },
+  { 0x3, 0x3, 66, 422, 1296, 33, 1, 129 },
+  { 0x3, 0x3, 66, 423, 1306, 33, 1, 129 },
+  { 0x3, 0x3, 66, 424, 1316, 33, 1, 129 },
+  { 0x0, 0x0, 66, -1, 1321, 0, 1, 140 },
+  { 0x0, 0x0, 66, -1, 1322, 0, 1, 140 },
+  { 0x0, 0x0, 66, -1, 1323, 0, 1, 140 },
+  { 0x0, 0x0, 107, 898, 1953, 0, 0, -1 },
+  { 0x0, 0x0, 107, 899, 2400, 0, 1, 29 },
+  { 0x0, 0x0, 107, 900, 1994, 0, 0, -1 },
+  { 0x0, 0x0, 107, 901, 2404, 0, 1, 29 },
+  { 0x0, 0x0, 109, -1, 1955, 0, 0, -1 },
+  { 0x1, 0x1, 109, -1, 2401, 27, 1, 29 },
+  { 0x0, 0x0, 109, -1, 1996, 0, 0, -1 },
+  { 0x1, 0x1, 109, -1, 2405, 27, 1, 29 },
+  { 0x0, 0x0, 110, 903, -1, 0, 1, 115 },
+  { 0x1, 0x1, 111, -1, -1, 27, 1, 115 },
+  { 0x0, 0x0, 112, 921, 2423, 0, 1, 1 },
+  { 0x0, 0x0, 112, 1024, 290, 0, 0, -1 },
+  { 0x0, 0x0, 112, 1001, 353, 0, 0, -1 },
+  { 0x0, 0x0, 112, -1, 361, 0, 0, -1 },
+  { 0x0, 0x0, 112, 922, 2431, 0, 1, 1 },
+  { 0x0, 0x0, 112, -1, 303, 0, 0, -1 },
+  { 0x0, 0x0, 112, 1029, 304, 0, 0, -1 },
+  { 0x0, 0x0, 112, 923, 2443, 0, 1, 1 },
+  { 0x0, 0x0, 112, 1031, 314, 0, 0, -1 },
+  { 0x0, 0x0, 112, 1008, 377, 0, 0, -1 },
+  { 0x0, 0x0, 112, -1, 385, 0, 0, -1 },
+  { 0x0, 0x0, 112, 1167, 2450, 0, 1, 1 },
+  { 0x0, 0x0, 112, -1, 327, 0, 0, -1 },
+  { 0x0, 0x0, 112, 1036, 328, 0, 0, -1 },
+  { 0x0, 0x0, 112, -1, 1939, 0, 0, -1 },
+  { 0x1, 0x9, 112, -1, 2469, 33, 1, 54 },
+  { 0x2, 0x3, 112, 1180, 1990, 27, 1, 49 },
+  { 0x1, 0x1, 114, 1156, 2424, 37, 1, 1 },
+  { 0x1, 0x1, 114, 1159, 2432, 37, 1, 1 },
+  { 0x1, 0x1, 114, 1164, 2444, 37, 1, 1 },
+  { 0x0, 0x0, 114, -1, 2455, 0, 1, 1 },
+  { 0x0, 0x0, 115, 945, 2421, 0, 1, 1 },
+  { 0x0, 0x0, 115, 1000, 288, 0, 0, -1 },
+  { 0x0, 0x0, 115, -1, 357, 0, 0, -1 },
+  { 0x0, 0x0, 115, 1026, 359, 0, 0, -1 },
+  { 0x0, 0x0, 115, -1, 2430, 0, 1, 1 },
+  { 0x0, 0x0, 115, 1028, 301, 0, 0, -1 },
+  { 0x0, 0x0, 115, 1005, 306, 0, 0, -1 },
+  { 0x0, 0x0, 115, 947, 2441, 0, 1, 1 },
+  { 0x0, 0x0, 115, 1007, 312, 0, 0, -1 },
+  { 0x0, 0x0, 115, -1, 381, 0, 0, -1 },
+  { 0x0, 0x0, 115, 1033, 383, 0, 0, -1 },
+  { 0x0, 0x0, 115, -1, 2449, 0, 1, 1 },
+  { 0x0, 0x0, 115, 1035, 325, 0, 0, -1 },
+  { 0x0, 0x0, 115, 1012, 330, 0, 0, -1 },
+  { 0x0, 0x0, 115, 918, 1937, 0, 0, -1 },
+  { 0x0, 0x0, 115, 919, 2468, 0, 1, 54 },
+  { 0x0, 0x0, 115, 920, 1989, 0, 1, 49 },
+  { 0x1, 0x1, 115, -1, -1, 27, 1, 0 },
+  { 0x1, 0x1, 115, -1, -1, 27, 1, 0 },
+  { 0x1, 0x1, 115, -1, -1, 27, 1, 0 },
+  { 0x1, 0x1, 116, -1, 2422, 37, 1, 1 },
+  { 0x0, 0x0, 116, -1, 2435, 0, 1, 1 },
+  { 0x1, 0x1, 116, -1, 2442, 37, 1, 1 },
+  { 0x0, 0x0, 116, -1, 2454, 0, 1, 1 },
+  { 0x0, 0x0, 117, 994, -1, 0, 1, 0 },
+  { 0x0, 0x0, 117, 995, -1, 0, 1, 0 },
+  { 0x0, 0x0, 117, 996, -1, 0, 1, 0 },
+  { 0x3, 0x3, 117, 954, -1, 34, 1, 33 },
+  { 0x3, 0x3, 117, 955, -1, 34, 1, 40 },
+  { 0x1, 0x1, 119, -1, -1, 35, 1, 33 },
+  { 0x1, 0x1, 119, -1, -1, 35, 1, 40 },
+  { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
+  { 0x0, 0x0, 120, -1, -1, 0, 1, 66 },
+  { 0x1, 0x1, 120, -1, -1, 36, 1, 122 },
+  { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
+  { 0x1, 0x1, 120, -1, -1, 27, 1, 96 },
+  { 0x0, 0x0, 120, -1, -1, 0, 1, 105 },
+  { 0x0, 0x0, 120, -1, -1, 0, 1, 73 },
+  { 0x0, 0x0, 120, -1, -1, 0, 1, 73 },
+  { 0x0, 0x0, 120, -1, -1, 0, 1, 74 },
+  { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
+  { 0x1, 0x1, 120, -1, -1, 27, 1, 117 },
+  { 0x1, 0x1, 120, -1, -1, 27, 1, 40 },
+  { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
+  { 0x0, 0x0, 121, -1, 2356, 0, 0, -1 },
+  { 0x0, 0x0, 121, -1, 2359, 0, 0, -1 },
+  { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
+  { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
+  { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
+  { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
+  { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
+  { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
+  { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
+  { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
+  { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
+  { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
+  { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
+  { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
+  { 0x1, 0x1, 122, 779, -1, 23, 1, 67 },
+  { 0x9, 0x9, 122, 780, -1, 20, 1, 67 },
+  { 0x0, 0x0, 126, 1837, -1, 0, 1, 0 },
+  { 0x0, 0x0, 126, 1838, -1, 0, 1, 0 },
+  { 0x1, 0x1, 126, -1, -1, 28, 1, 33 },
+  { 0x1, 0x1, 126, -1, -1, 27, 1, 33 },
+  { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
+  { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
+  { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
+  { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
+  { 0x0, 0x0, 126, -1, -1, 0, 1, 114 },
+  { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
+  { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
+  { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
+  { 0x0, 0x0, 126, 952, -1, 0, 1, 33 },
+  { 0x0, 0x0, 126, 1046, -1, 0, 1, 40 },
+  { 0x0, 0x0, 140, 1017, 2419, 0, 1, 1 },
+  { 0x0, 0x0, 140, 905, 289, 0, 0, -1 },
+  { 0x0, 0x0, 140, 927, 294, 0, 0, -1 },
+  { 0x0, 0x0, 140, 928, 358, 0, 0, -1 },
+  { 0x0, 0x0, 140, -1, 2429, 0, 1, 1 },
+  { 0x0, 0x0, 140, 930, 300, 0, 0, -1 },
+  { 0x0, 0x0, 140, -1, 307, 0, 0, -1 },
+  { 0x0, 0x0, 140, 1019, 2439, 0, 1, 1 },
+  { 0x0, 0x0, 140, 912, 313, 0, 0, -1 },
+  { 0x0, 0x0, 140, 934, 318, 0, 0, -1 },
+  { 0x0, 0x0, 140, 935, 382, 0, 0, -1 },
+  { 0x0, 0x0, 140, -1, 2448, 0, 1, 1 },
+  { 0x0, 0x0, 140, 937, 324, 0, 0, -1 },
+  { 0x0, 0x0, 140, -1, 331, 0, 0, -1 },
+  { 0x0, 0x0, 140, 2486, 1933, 0, 0, -1 },
+  { 0x1, 0x1, 140, 2487, 2464, 33, 1, 54 },
+  { 0x0, 0x0, 140, 2488, 1983, 0, 0, -1 },
+  { 0x1, 0x1, 140, 2489, -1, 28, 1, 49 },
+  { 0x1, 0x1, 141, -1, 2420, 37, 1, 1 },
+  { 0x0, 0x0, 141, -1, 2434, 0, 1, 1 },
+  { 0x1, 0x1, 141, -1, 2440, 37, 1, 1 },
+  { 0x0, 0x0, 141, -1, 2453, 0, 1, 1 },
+  { 0x1, 0x1, 144, 778, 976, 3, 1, 22 },
+  { 0x0, 0x0, 145, 1839, -1, 0, 1, 33 },
+  { 0x0, 0x0, 146, 784, 2416, 0, 1, 1 },
+  { 0x0, 0x0, 146, -1, 291, 0, 0, -1 },
+  { 0x0, 0x0, 146, 906, 292, 0, 0, -1 },
+  { 0x0, 0x0, 146, 907, 360, 0, 0, -1 },
+  { 0x0, 0x0, 146, 786, 2426, 0, 1, 1 },
+  { 0x0, 0x0, 146, 909, 302, 0, 0, -1 },
+  { 0x0, 0x0, 146, 931, 305, 0, 0, -1 },
+  { 0x0, 0x0, 146, 790, 2436, 0, 1, 1 },
+  { 0x0, 0x0, 146, -1, 315, 0, 0, -1 },
+  { 0x0, 0x0, 146, 913, 316, 0, 0, -1 },
+  { 0x0, 0x0, 146, 914, 384, 0, 0, -1 },
+  { 0x0, 0x0, 146, 792, 2446, 0, 1, 1 },
+  { 0x0, 0x0, 146, 916, 326, 0, 0, -1 },
+  { 0x0, 0x0, 146, 938, 329, 0, 0, -1 },
+  { 0x0, 0x0, 146, 1013, 1931, 0, 0, -1 },
+  { 0x1, 0x1, 146, 1014, 2463, 36, 1, 54 },
+  { 0x0, 0x0, 146, 1015, 1982, 0, 0, -1 },
+  { 0x1, 0x1, 146, 1016, -1, 27, 1, 49 },
+  { 0x1, 0x1, 147, -1, 2418, 37, 1, 1 },
+  { 0x1, 0x1, 147, -1, 2428, 37, 1, 1 },
+  { 0x1, 0x1, 147, -1, 2438, 37, 1, 1 },
+  { 0x0, 0x0, 147, -1, 2452, 0, 1, 1 },
+  { 0x0, 0x0, 148, -1, -1, 0, 1, 33 },
+  { 0x0, 0x0, 148, 953, -1, 0, 1, 40 },
+  { 0x0, 0x0, 149, -1, -1, 0, 1, 40 },
+  { 0x0, 0x0, 149, -1, -1, 0, 1, 66 },
+  { 0x0, 0x0, 149, -1, 2456, 0, 1, 63 },
+  { 0x0, 0x0, 149, -1, -1, 0, 1, 40 },
+  { 0x0, 0x0, 149, -1, -1, 0, 1, 81 },
+  { 0x0, 0x0, 149, -1, -1, 0, 1, 81 },
+  { 0x0, 0x0, 149, -1, -1, 0, 1, 85 },
+  { 0x0, 0x0, 149, -1, -1, 0, 1, 40 },
+  { 0x1, 0x1, 150, -1, 454, 12, 1, 6 },
+  { 0x1, 0x1, 150, -1, 457, 12, 1, 6 },
+  { 0x200001, 0x200001, 150, -1, 459, 12, 1, 6 },
+  { 0x400001, 0x400001, 150, -1, 461, 12, 1, 6 },
+  { 0x600001, 0x600001, 150, -1, 463, 12, 1, 6 },
+  { 0x1, 0x1, 150, -1, 465, 12, 1, 6 },
+  { 0x200001, 0x200001, 150, -1, 467, 12, 1, 6 },
+  { 0x400001, 0x400001, 150, -1, 469, 12, 1, 6 },
+  { 0x600001, 0x600001, 150, -1, 471, 12, 1, 6 },
+  { 0x41, 0x41, 150, -1, 473, 6, 1, 7 },
+  { 0x8000041, 0x8000041, 150, -1, 475, 6, 1, 7 },
+  { 0x10000041, 0x10000041, 150, -1, 477, 6, 1, 7 },
+  { 0x18000041, 0x18000041, 150, -1, 479, 6, 1, 7 },
+  { 0x1, 0x1, 150, -1, 493, 12, 1, 8 },
+  { 0x200001, 0x200001, 150, -1, 495, 12, 1, 8 },
+  { 0x400001, 0x400001, 150, -1, 497, 12, 1, 8 },
+  { 0x600001, 0x600001, 150, -1, 499, 12, 1, 8 },
+  { 0x1, 0x1, 150, -1, 505, 12, 1, 15 },
+  { 0x200001, 0x200001, 150, -1, 507, 12, 1, 15 },
+  { 0x400001, 0x400001, 150, -1, 509, 12, 1, 15 },
+  { 0x600001, 0x600001, 150, -1, 511, 12, 1, 15 },
+  { 0x1, 0x1, 150, -1, 517, 12, 1, 17 },
+  { 0x1, 0x1, 150, -1, 520, 12, 1, 17 },
+  { 0x200001, 0x200001, 150, -1, 522, 12, 1, 17 },
+  { 0x400001, 0x400001, 150, -1, 524, 12, 1, 17 },
+  { 0x600001, 0x600001, 150, -1, 526, 12, 1, 17 },
+  { 0x1, 0x1, 150, -1, 528, 12, 1, 17 },
+  { 0x200001, 0x200001, 150, -1, 530, 12, 1, 17 },
+  { 0x400001, 0x400001, 150, -1, 532, 12, 1, 17 },
+  { 0x600001, 0x600001, 150, -1, 534, 12, 1, 17 },
+  { 0x1, 0x1, 150, -1, 544, 12, 1, 18 },
+  { 0x200001, 0x200001, 150, -1, 546, 12, 1, 18 },
+  { 0x400001, 0x400001, 150, -1, 548, 12, 1, 18 },
+  { 0x600001, 0x600001, 150, -1, 550, 12, 1, 18 },
+  { 0x41, 0x41, 150, -1, 552, 6, 1, 18 },
+  { 0x8000041, 0x8000041, 150, -1, 554, 6, 1, 18 },
+  { 0x10000041, 0x10000041, 150, -1, 556, 6, 1, 18 },
+  { 0x18000041, 0x18000041, 150, -1, 558, 6, 1, 18 },
+  { 0x1, 0x1, 150, -1, 568, 12, 1, 19 },
+  { 0x200001, 0x200001, 150, -1, 570, 12, 1, 19 },
+  { 0x400001, 0x400001, 150, -1, 572, 12, 1, 19 },
+  { 0x600001, 0x600001, 150, -1, 574, 12, 1, 19 },
+  { 0x1, 0x1, 150, -1, 580, 12, 1, 20 },
+  { 0x200001, 0x200001, 150, -1, 582, 12, 1, 20 },
+  { 0x400001, 0x400001, 150, -1, 584, 12, 1, 20 },
+  { 0x600001, 0x600001, 150, -1, 586, 12, 1, 20 },
+  { 0x41, 0x41, 150, -1, 588, 6, 1, 20 },
+  { 0x8000041, 0x8000041, 150, -1, 590, 6, 1, 20 },
+  { 0x10000041, 0x10000041, 150, -1, 592, 6, 1, 20 },
+  { 0x18000041, 0x18000041, 150, -1, 594, 6, 1, 20 },
+  { 0x1, 0x1, 150, -1, 604, 12, 1, 21 },
+  { 0x200001, 0x200001, 150, -1, 606, 12, 1, 21 },
+  { 0x400001, 0x400001, 150, -1, 608, 12, 1, 21 },
+  { 0x600001, 0x600001, 150, -1, 610, 12, 1, 21 },
+  { 0x1, 0x1, 150, -1, 616, 12, 1, 17 },
+  { 0x1, 0x1, 150, -1, 619, 12, 1, 17 },
+  { 0x200001, 0x200001, 150, -1, 621, 12, 1, 17 },
+  { 0x400001, 0x400001, 150, -1, 623, 12, 1, 17 },
+  { 0x600001, 0x600001, 150, -1, 625, 12, 1, 17 },
+  { 0x1, 0x1, 150, -1, 627, 12, 1, 17 },
+  { 0x200001, 0x200001, 150, -1, 629, 12, 1, 17 },
+  { 0x400001, 0x400001, 150, -1, 631, 12, 1, 17 },
+  { 0x600001, 0x600001, 150, -1, 633, 12, 1, 17 },
+  { 0x1, 0x1, 150, -1, 643, 12, 1, 21 },
+  { 0x200001, 0x200001, 150, -1, 645, 12, 1, 21 },
+  { 0x400001, 0x400001, 150, -1, 647, 12, 1, 21 },
+  { 0x600001, 0x600001, 150, -1, 649, 12, 1, 21 },
+  { 0x0, 0x0, 155, -1, -1, 0, 1, 124 },
+  { 0x0, 0x0, 159, 654, -1, 0, 1, 75 },
+  { 0x0, 0x0, 159, 655, -1, 0, 1, 75 },
+  { 0x9, 0x9, 159, -1, 1215, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1224, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1233, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1244, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1253, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1262, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1271, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1280, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1289, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1299, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1309, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1319, 32, 1, 130 },
+  { 0x9, 0x9, 159, -1, 1328, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1334, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1340, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1346, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1352, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1358, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1364, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1370, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1376, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1382, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1388, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1394, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1400, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1406, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1412, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1418, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1424, 32, 1, 144 },
+  { 0x9, 0x9, 159, -1, 1430, 32, 1, 144 },
+  { 0x0, 0x0, 160, 1041, 287, 0, 0, -1 },
+  { 0x1, 0x1, 160, -1, 2425, 38, 1, 1 },
+  { 0x0, 0x0, 160, 785, 344, 0, 0, -1 },
+  { 0x0, 0x0, 160, 1042, 297, 0, 0, -1 },
+  { 0x1, 0x1, 160, -1, 2433, 38, 1, 1 },
+  { 0x0, 0x0, 160, 787, 364, 0, 0, -1 },
+  { 0x0, 0x0, 160, 788, 298, 0, 0, -1 },
+  { 0x0, 0x0, 160, 789, 308, 0, 0, -1 },
+  { 0x0, 0x0, 160, 1043, 311, 0, 0, -1 },
+  { 0x1, 0x1, 160, -1, 2445, 38, 1, 1 },
+  { 0x0, 0x0, 160, 791, 368, 0, 0, -1 },
+  { 0x0, 0x0, 160, -1, 321, 0, 0, -1 },
+  { 0x1, 0x1, 160, -1, 2451, 38, 1, 1 },
+  { 0x0, 0x0, 160, 793, 388, 0, 0, -1 },
+  { 0x0, 0x0, 160, 794, 322, 0, 0, -1 },
+  { 0x0, 0x0, 160, 795, 332, 0, 0, -1 },
+  { 0x0, 0x0, 161, 1186, 1941, 0, 0, -1 },
+  { 0x0, 0x0, 161, 1187, 2474, 0, 1, 54 },
+  { 0x0, 0x0, 161, 1188, 1985, 0, 0, -1 },
+  { 0x1, 0x1, 161, 1189, -1, 29, 1, 49 },
+  { 0x0, 0x0, 162, -1, 1951, 0, 0, -1 },
+  { 0x1, 0x9, 162, -1, 2481, 33, 1, 54 },
+  { 0x6, 0x7, 162, -1, 1992, 27, 1, 49 },
+  { 0x0, 0x0, 163, 1175, 1949, 0, 0, -1 },
+  { 0x0, 0x0, 163, 1176, 2480, 0, 1, 54 },
+  { 0x1, 0x1, 163, 1177, 1991, 29, 1, 49 },
+  { 0x1, 0x1, 164, 1191, -1, 27, 1, 33 },
+  { 0x0, 0x0, 165, 1832, 1945, 0, 0, -1 },
+  { 0x1, 0x1, 165, 1833, 2476, 33, 1, 54 },
+  { 0x0, 0x0, 165, 1834, 1987, 0, 0, -1 },
+  { 0x3, 0x3, 165, 1835, -1, 28, 1, 49 },
+  { 0x0, 0x0, 166, 1182, 1943, 0, 0, -1 },
+  { 0x1, 0x1, 166, 1183, 2475, 36, 1, 54 },
+  { 0x0, 0x0, 166, 1184, 1986, 0, 0, -1 },
+  { 0x5, 0x5, 166, 1185, -1, 27, 1, 49 },
+  { 0x0, 0x0, 167, -1, 2457, 0, 1, 63 },
+  { 0x1, 0x1, 169, -1, -1, 28, 1, 33 },
+  { 0x1, 0x1, 170, 2315, -1, 27, 1, 33 },
+  { 0x1, 0x1, 170, 2316, -1, 27, 1, 33 },
+  { 0x1, 0x1, 171, 1460, -1, 28, 1, 135 },
+  { 0x1, 0x1, 171, 1461, -1, 28, 1, 135 },
+  { 0x1, 0x1, 171, 1462, -1, 28, 1, 134 },
+  { 0x1, 0x1, 171, 1463, -1, 28, 1, 134 },
+  { 0x1, 0x1, 171, 1464, -1, 28, 1, 134 },
+  { 0x1, 0x1, 171, 1465, -1, 28, 1, 134 },
+  { 0x1, 0x1, 171, 1466, -1, 28, 1, 134 },
+  { 0x1, 0x1, 171, 1467, -1, 28, 1, 134 },
+  { 0x1, 0x1, 171, 1468, -1, 28, 1, 134 },
+  { 0x1, 0x1, 171, 1469, -1, 28, 1, 134 },
+  { 0x1, 0x1, 171, 1470, -1, 28, 1, 136 },
+  { 0x1, 0x1, 171, 1471, -1, 28, 1, 136 },
+  { 0x1, 0x1, 171, 1472, -1, 28, 1, 136 },
+  { 0x1, 0x1, 171, 1473, -1, 28, 1, 136 },
+  { 0x1, 0x1, 171, 1474, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1475, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1476, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1477, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1478, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1479, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1480, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1481, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1482, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1483, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1484, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1485, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1486, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1487, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1488, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1489, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1490, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1491, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1492, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1493, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1494, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1495, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1496, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1497, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1498, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1499, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1500, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1501, -1, 28, 1, 125 },
+  { 0x1, 0x1, 171, 1502, -1, 28, 1, 125 },
+  { 0x1, 0x1, 171, 1503, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1504, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1505, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1506, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1507, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1508, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1509, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1510, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1511, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1512, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1513, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1514, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1515, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1516, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1517, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1518, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1519, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1520, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1521, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1522, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1523, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1524, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1525, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1526, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1527, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1528, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1529, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1530, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1531, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1532, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1533, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1534, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1535, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1536, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1537, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1538, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1539, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1540, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1541, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1542, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1543, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1544, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1545, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1546, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1547, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1548, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1549, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1550, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1551, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1552, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1553, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1554, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1555, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1556, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1557, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1558, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1559, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1560, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1561, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1562, -1, 28, 1, 129 },
+  { 0x1, 0x1, 171, 1563, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1564, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1565, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1566, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1567, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1568, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1569, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1570, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1571, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1572, -1, 28, 1, 129 },
+  { 0x1, 0x1, 171, 1573, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1574, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1575, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1576, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1577, -1, 28, 1, 126 },
+  { 0x1, 0x1, 171, 1578, -1, 28, 1, 127 },
+  { 0x1, 0x1, 171, 1579, -1, 28, 1, 128 },
+  { 0x1, 0x1, 171, 1580, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1581, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1582, -1, 28, 1, 129 },
+  { 0x1, 0x1, 171, 1583, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1584, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1585, -1, 28, 1, 130 },
+  { 0x1, 0x1, 171, 1586, -1, 28, 1, 124 },
+  { 0x1, 0x1, 171, 1587, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1588, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1589, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1590, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1591, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1592, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1593, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1594, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1595, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1596, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1597, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1598, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1599, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1600, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1601, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1602, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1603, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1604, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1605, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1606, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1607, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1608, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1609, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1610, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1611, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1612, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1613, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1614, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1615, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1616, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1617, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1618, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1619, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1620, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1621, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1622, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1623, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1624, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1625, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1626, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1627, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1628, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1629, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1630, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1631, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1632, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1633, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1634, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1635, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1636, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1637, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1638, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1639, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1640, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1641, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1642, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1643, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1644, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1645, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1646, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1647, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1648, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1649, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1650, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1651, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1652, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1653, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1654, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1655, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1656, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1657, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1658, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1659, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1660, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1661, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1662, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1663, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1664, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1665, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1666, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1667, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1668, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1669, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1670, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1671, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1672, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1673, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1674, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1675, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1676, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1677, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1678, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1679, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1680, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1681, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1682, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1683, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1684, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1685, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1686, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1687, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1688, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1689, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1690, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1691, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1692, -1, 28, 1, 141 },
+  { 0x1, 0x1, 171, 1693, -1, 28, 1, 142 },
+  { 0x1, 0x1, 171, 1694, -1, 28, 1, 143 },
+  { 0x1, 0x1, 171, 1695, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1696, -1, 28, 1, 144 },
+  { 0x1, 0x1, 171, 1697, -1, 28, 1, 140 },
+  { 0x1, 0x1, 171, 1448, -1, 28, 1, 145 },
+  { 0x1, 0x1, 171, 1449, -1, 28, 1, 146 },
+  { 0x1, 0x1, 171, 1450, -1, 28, 1, 146 },
+  { 0x1, 0x1, 171, 1451, -1, 28, 1, 145 },
+  { 0x1, 0x1, 171, 1452, -1, 28, 1, 147 },
+  { 0x1, 0x1, 171, 1453, -1, 28, 1, 148 },
+  { 0x1, 0x1, 171, 1454, -1, 28, 1, 148 },
+  { 0x1, 0x1, 171, 1455, -1, 28, 1, 147 },
+  { 0x1, 0x1, 171, 1456, -1, 28, 1, 147 },
+  { 0x1, 0x1, 171, 1457, -1, 28, 1, 148 },
+  { 0x1, 0x1, 171, 1458, -1, 28, 1, 148 },
+  { 0x1, 0x1, 171, 1459, -1, 28, 1, 147 },
+  { 0x1, 0x1, 171, 1740, -1, 28, 1, 136 },
+  { 0x1, 0x1, 171, 1741, -1, 28, 1, 136 },
+  { 0x1, 0x1, 171, 1742, -1, 28, 1, 136 },
+  { 0x1, 0x1, 171, 1743, -1, 28, 1, 136 },
+  { 0x1, 0x1, 172, 1698, -1, 29, 1, 145 },
+  { 0x1, 0x1, 172, 1699, -1, 29, 1, 146 },
+  { 0x1, 0x1, 172, 1700, -1, 29, 1, 146 },
+  { 0x1, 0x1, 172, 1701, -1, 29, 1, 145 },
+  { 0x1, 0x1, 172, 1702, -1, 29, 1, 147 },
+  { 0x1, 0x1, 172, 1703, -1, 29, 1, 148 },
+  { 0x1, 0x1, 172, 1704, -1, 29, 1, 148 },
+  { 0x1, 0x1, 172, 1705, -1, 29, 1, 147 },
+  { 0x1, 0x1, 172, 1706, -1, 29, 1, 147 },
+  { 0x1, 0x1, 172, 1707, -1, 29, 1, 148 },
+  { 0x1, 0x1, 172, 1708, -1, 29, 1, 148 },
+  { 0x1, 0x1, 172, 1709, -1, 29, 1, 147 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 261, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1890, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 263, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1891, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 265, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1892, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 125 },
+  { 0x3, 0x3, 173, 267, -1, 28, 1, 125 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 268, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1893, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 270, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1894, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 272, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1895, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 274, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1896, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 276, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1897, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 278, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1898, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 129 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 280, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1899, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 129 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 282, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1900, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 129 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 284, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
+  { 0x3, 0x3, 173, 1901, -1, 28, 1, 124 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1902, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1903, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1904, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1905, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1906, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1907, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1908, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1909, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1910, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1911, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1912, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1913, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1914, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1915, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1916, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1917, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1918, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
+  { 0x3, 0x3, 173, 1919, -1, 28, 1, 140 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 145 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
+  { 0x3, 0x3, 173, 803, -1, 28, 1, 146 },
+  { 0x3, 0x3, 173, 804, -1, 28, 1, 145 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
+  { 0x3, 0x3, 173, 805, -1, 28, 1, 148 },
+  { 0x3, 0x3, 173, 806, -1, 28, 1, 147 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
+  { 0x3, 0x3, 173, 807, -1, 28, 1, 148 },
+  { 0x3, 0x3, 173, 808, -1, 28, 1, 147 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, 1857, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
+  { 0x3, 0x3, 173, 1858, -1, 28, 1, 138 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 132 },
+  { 0x3, 0x3, 173, 1859, -1, 28, 1, 132 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, 1860, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
+  { 0x3, 0x3, 173, 1861, -1, 28, 1, 138 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, 1862, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
+  { 0x3, 0x3, 173, 1863, -1, 28, 1, 138 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 133 },
+  { 0x3, 0x3, 173, 1864, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 139 },
+  { 0x3, 0x3, 173, 1865, -1, 28, 1, 138 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
+  { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
+  { 0x0, 0x0, 174, -1, 335, 0, 0, -1 },
+  { 0x0, 0x0, 174, 2514, 2483, 0, 1, 1 },
+  { 0x0, 0x0, 174, -1, 339, 0, 0, -1 },
+  { 0x0, 0x0, 174, 2516, 2485, 0, 1, 1 },
+  { 0x11, 0x31, 175, 2417, 342, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 175, -1, 343, 12, 1, 4 },
+  { 0x1, 0x1, 175, -1, 346, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 175, -1, 347, 12, 1, 4 },
+  { 0x11, 0x11, 175, -1, 348, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 175, -1, 349, 12, 1, 4 },
+  { 0x1, 0x1, 175, 1778, 350, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 175, -1, 352, 12, 1, 4 },
+  { 0x11, 0x11, 175, 1780, 354, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 175, -1, 356, 12, 1, 4 },
+  { 0x11, 0x31, 175, 2427, 362, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 175, -1, 363, 12, 1, 4 },
+  { 0x11, 0x31, 175, 2437, 366, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 175, -1, 367, 12, 1, 4 },
+  { 0x1, 0x1, 175, -1, 370, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 175, -1, 371, 12, 1, 4 },
+  { 0x11, 0x11, 175, -1, 372, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 175, -1, 373, 12, 1, 4 },
+  { 0x1, 0x1, 175, 1802, 374, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 175, -1, 376, 12, 1, 4 },
+  { 0x11, 0x11, 175, 1804, 378, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 175, -1, 380, 12, 1, 4 },
+  { 0x11, 0x31, 175, 2447, 386, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 175, -1, 387, 12, 1, 4 },
+  { 0x1, 0x1, 175, -1, 390, 33, 1, 4 },
+  { 0x200001, 0x200001, 175, -1, 391, 12, 1, 4 },
+  { 0x1, 0x1, 175, -1, 394, 33, 1, 4 },
+  { 0x200001, 0x200001, 175, -1, 395, 12, 1, 4 },
+  { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
+  { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
+  { 0x1, 0x1, 176, 1755, -1, 37, 1, 4 },
+  { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
+  { 0x11, 0x11, 176, 1757, -1, 33, 1, 4 },
+  { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
+  { 0x11, 0x11, 176, -1, -1, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
+  { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
+  { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
+  { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
+  { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
+  { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
+  { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
+  { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
+  { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
+  { 0x1, 0x1, 176, 1767, -1, 37, 1, 4 },
+  { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
+  { 0x11, 0x11, 176, 1769, -1, 33, 1, 4 },
+  { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
+  { 0x11, 0x11, 176, -1, -1, 33, 1, 4 },
+  { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
+  { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
+  { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
+  { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
+  { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
+  { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
+  { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
+  { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
+  { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
+  { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
+  { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
+  { 0x1, 0x1, 176, 336, -1, 33, 1, 4 },
+  { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
+  { 0x200001, 0x200001, 176, 337, -1, 12, 1, 4 },
+  { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
+  { 0x1, 0x1, 176, 340, -1, 33, 1, 4 },
+  { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
+  { 0x200001, 0x200001, 176, 341, -1, 12, 1, 4 },
+  { 0x0, 0x0, 177, -1, 1947, 0, 0, -1 },
+  { 0x9, 0x9, 177, -1, 2477, 33, 1, 49 },
+  { 0x0, 0x0, 177, -1, 1988, 0, 0, -1 },
+  { 0x7, 0x7, 177, -1, -1, 27, 1, 49 },
+  { 0x1, 0x1, 197, -1, -1, 27, 1, 10 },
+  { 0x1, 0x1, 211, -1, -1, 29, 1, 0 },
+  { 0x1, 0x1, 211, -1, -1, 29, 1, 0 },
+  { 0x2, 0x3, 211, 987, -1, 27, 1, 33 },
+  { 0x0, 0x0, 211, 988, -1, 0, 1, 33 },
+  { 0x0, 0x0, 211, 989, -1, 0, 1, 0 },
+  { 0x0, 0x0, 211, 990, -1, 0, 1, 0 },
+  { 0x0, 0x0, 211, 991, -1, 0, 1, 0 },
+  { 0x0, 0x0, 211, 992, -1, 0, 1, 0 },
+  { 0x0, 0x0, 211, 2499, -1, 0, 1, 93 },
+  { 0x0, 0x0, 211, 2500, -1, 0, 1, 93 },
+  { 0x0, 0x0, 211, 2501, 819, 0, 0, -1 },
+  { 0x1, 0x1, 212, -1, -1, 27, 1, 0 },
+  { 0x1, 0x1, 212, -1, -1, 27, 1, 0 },
+  { 0x1, 0x1, 213, -1, 1195, 32, 1, 135 },
+  { 0x1, 0x1, 213, -1, 1197, 32, 1, 134 },
+  { 0x1, 0x1, 213, -1, 1199, 32, 1, 134 },
+  { 0x1, 0x1, 213, -1, 1201, 32, 1, 134 },
+  { 0x1, 0x1, 213, -1, 1203, 32, 1, 134 },
+  { 0x1, 0x1, 213, -1, 1205, 32, 1, 136 },
+  { 0x1, 0x1, 213, -1, 1207, 32, 1, 136 },
+  { 0x1, 0x1, 213, -1, 1710, 32, 1, 131 },
+  { 0x1, 0x1, 213, -1, 1712, 32, 1, 138 },
+  { 0x1, 0x1, 213, -1, 1714, 32, 1, 132 },
+  { 0x1, 0x1, 213, -1, 1716, 32, 1, 131 },
+  { 0x1, 0x1, 213, -1, 1718, 32, 1, 138 },
+  { 0x1, 0x1, 213, -1, 1720, 32, 1, 131 },
+  { 0x1, 0x1, 213, -1, 1722, 32, 1, 138 },
+  { 0x1, 0x1, 213, 2319, 1724, 32, 1, 131 },
+  { 0x1, 0x1, 213, 2320, 1727, 32, 1, 138 },
+  { 0x0, 0x0, 214, -1, 2361, 0, 0, -1 },
+  { 0x0, 0x0, 214, -1, 2362, 0, 0, -1 },
+  { 0x0, 0x0, 214, -1, 2387, 0, 0, -1 },
+  { 0x5, 0x5, 214, -1, 2390, 20, 1, 67 },
+  { 0x0, 0x0, 218, 1847, 818, 0, 0, -1 },
+  { 0x0, 0x0, 219, -1, 957, 0, 0, -1 },
+  { 0x0, 0x0, 219, -1, 1048, 0, 0, -1 },
+  { 0x0, 0x0, 219, -1, -1, 0, 1, 121 },
+  { 0x0, 0x0, 219, -1, -1, 0, 1, 66 },
+  { 0x1, 0x1, 219, 694, 1921, 36, 1, 65 },
+  { 0x1, 0x1, 219, 695, 1956, 36, 1, 65 },
+  { 0x0, 0x0, 219, 696, 1959, 0, 0, -1 },
+  { 0x1, 0x1, 219, 697, -1, 36, 1, 65 },
+  { 0x0, 0x0, 219, 1192, -1, 0, 1, 33 },
+  { 0x1, 0x1, 219, 698, 1964, 36, 1, 65 },
+  { 0x0, 0x0, 219, 699, 1967, 0, 0, -1 },
+  { 0x1, 0x1, 219, 700, -1, 36, 1, 65 },
+  { 0x0, 0x0, 219, 701, 1970, 0, 0, -1 },
+  { 0x1, 0x1, 219, 702, -1, 36, 1, 65 },
+  { 0x1, 0x1, 219, 703, 1973, 36, 1, 65 },
+  { 0x1, 0x1, 219, 704, 1976, 36, 1, 65 },
+  { 0x0, 0x0, 219, 1193, -1, 0, 1, 33 },
+  { 0x1, 0x1, 219, 705, 2009, 36, 1, 65 },
+  { 0x1, 0x1, 219, 706, -1, 31, 1, 137 },
+  { 0x1, 0x1, 219, 223, 1208, 32, 1, 126 },
+  { 0x1, 0x1, 219, 224, 1217, 32, 1, 126 },
+  { 0x1, 0x1, 219, 225, 1226, 32, 1, 126 },
+  { 0x1, 0x1, 219, 226, 1237, 32, 1, 126 },
+  { 0x1, 0x1, 219, 227, 1246, 32, 1, 126 },
+  { 0x1, 0x1, 219, 228, 1255, 32, 1, 126 },
+  { 0x1, 0x1, 219, 229, 1264, 32, 1, 126 },
+  { 0x1, 0x1, 219, 230, 1273, 32, 1, 126 },
+  { 0x1, 0x1, 219, 231, 1282, 32, 1, 126 },
+  { 0x1, 0x1, 219, 232, 1291, 32, 1, 126 },
+  { 0x1, 0x1, 219, 233, 1301, 32, 1, 126 },
+  { 0x1, 0x1, 219, 234, 1311, 32, 1, 126 },
+  { 0x1, 0x1, 219, 235, 1324, 32, 1, 141 },
+  { 0x1, 0x1, 219, 236, 1330, 32, 1, 141 },
+  { 0x1, 0x1, 219, 237, 1336, 32, 1, 141 },
+  { 0x1, 0x1, 219, 238, 1342, 32, 1, 141 },
+  { 0x1, 0x1, 219, 239, 1348, 32, 1, 141 },
+  { 0x1, 0x1, 219, 240, 1354, 32, 1, 141 },
+  { 0x1, 0x1, 219, 241, 1360, 32, 1, 141 },
+  { 0x1, 0x1, 219, 242, 1366, 32, 1, 141 },
+  { 0x1, 0x1, 219, 243, 1372, 32, 1, 141 },
+  { 0x1, 0x1, 219, 244, 1378, 32, 1, 141 },
+  { 0x1, 0x1, 219, 245, 1384, 32, 1, 141 },
+  { 0x1, 0x1, 219, 246, 1390, 32, 1, 141 },
+  { 0x1, 0x1, 219, 247, 1396, 32, 1, 141 },
+  { 0x1, 0x1, 219, 248, 1402, 32, 1, 141 },
+  { 0x1, 0x1, 219, 249, 1408, 32, 1, 141 },
+  { 0x1, 0x1, 219, 250, 1414, 32, 1, 141 },
+  { 0x1, 0x1, 219, 251, 1420, 32, 1, 141 },
+  { 0x1, 0x1, 219, 252, 1426, 32, 1, 141 },
+  { 0x1, 0x1, 219, 710, -1, 31, 1, 149 },
+  { 0x0, 0x0, 220, 2012, -1, 0, 1, 65 },
+  { 0x0, 0x0, 220, 2013, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 24, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2015, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2016, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2017, -1, 0, 1, 44 },
+  { 0x0, 0x0, 220, 2018, -1, 0, 1, 39 },
+  { 0x1, 0x1, 220, 2019, -1, 12, 1, 58 },
+  { 0x0, 0x0, 220, 2020, -1, 0, 1, 53 },
+  { 0x1000001, 0x1000001, 220, 2021, -1, 12, 1, 58 },
+  { 0x1, 0x1, 220, 2022, -1, 36, 1, 53 },
+  { 0x200001, 0x200001, 220, 2023, -1, 12, 1, 58 },
+  { 0x1, 0x1, 220, 2024, -1, 33, 1, 53 },
+  { 0x1200001, 0x1200001, 220, 2025, -1, 12, 1, 48 },
+  { 0x9, 0x9, 220, 2026, -1, 33, 1, 48 },
+  { 0x1, 0x1, 220, 2027, -1, 12, 1, 58 },
+  { 0x0, 0x0, 220, 2028, -1, 0, 1, 53 },
+  { 0x200001, 0x1200001, 220, 2029, -1, 12, 1, 58 },
+  { 0x1, 0x9, 220, 2030, -1, 33, 1, 53 },
+  { 0x1, 0x1, 220, 2031, -1, 12, 1, 58 },
+  { 0x0, 0x0, 220, 2032, -1, 0, 1, 53 },
+  { 0x1000001, 0x1000001, 220, 2033, -1, 12, 1, 58 },
+  { 0x1, 0x1, 220, 2034, -1, 36, 1, 53 },
+  { 0x200001, 0x200001, 220, 2035, -1, 12, 1, 58 },
+  { 0x1, 0x1, 220, 2036, -1, 33, 1, 53 },
+  { 0x1200001, 0x1200001, 220, 2037, -1, 12, 1, 48 },
+  { 0x9, 0x9, 220, 2038, -1, 33, 1, 48 },
+  { 0x1, 0x1, 220, 2039, -1, 12, 1, 58 },
+  { 0x0, 0x0, 220, 2040, -1, 0, 1, 53 },
+  { 0x200001, 0x1200001, 220, 2041, -1, 12, 1, 58 },
+  { 0x1, 0x9, 220, 2042, -1, 33, 1, 53 },
+  { 0x1, 0x1, 220, 2043, -1, 28, 1, 28 },
+  { 0x0, 0x0, 220, 2044, -1, 0, 1, 28 },
+  { 0x3, 0x3, 220, 2045, -1, 27, 1, 28 },
+  { 0x1, 0x1, 220, 2046, -1, 27, 1, 28 },
+  { 0x0, 0x0, 220, 2047, -1, 0, 1, 65 },
+  { 0x0, 0x0, 220, 2048, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2049, -1, 0, 1, 28 },
+  { 0x1, 0x1, 220, 2050, -1, 36, 1, 65 },
+  { 0x1, 0x1, 220, 2051, -1, 37, 1, 28 },
+  { 0x0, 0x0, 220, 2052, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2053, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2054, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2055, -1, 0, 1, 65 },
+  { 0x0, 0x0, 220, 2056, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 36, -1, 0, 1, 28 },
+  { 0x1, 0x1, 220, 2058, -1, 36, 1, 65 },
+  { 0x1, 0x1, 220, 2059, -1, 37, 1, 28 },
+  { 0x0, 0x0, 220, 2060, -1, 0, 1, 28 },
+  { 0x1, 0x1, 220, 2061, -1, 36, 1, 65 },
+  { 0x1, 0x1, 220, 2062, -1, 37, 1, 28 },
+  { 0x0, 0x0, 220, 2063, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2064, -1, 0, 1, 65 },
+  { 0x0, 0x0, 220, 2065, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 41, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2067, -1, 0, 1, 65 },
+  { 0x0, 0x0, 220, 2068, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 42, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2070, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2071, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2072, -1, 0, 1, 48 },
+  { 0x1, 0x1, 220, 2073, -1, 27, 1, 48 },
+  { 0x1, 0x1, 220, 2074, -1, 28, 1, 48 },
+  { 0x3, 0x3, 220, 2075, -1, 27, 1, 48 },
+  { 0x1, 0x1, 220, 2076, -1, 29, 1, 48 },
+  { 0x5, 0x5, 220, 2077, -1, 27, 1, 48 },
+  { 0x3, 0x3, 220, 2078, -1, 28, 1, 48 },
+  { 0x7, 0x7, 220, 2079, -1, 27, 1, 48 },
+  { 0x0, 0x0, 220, 2080, -1, 0, 1, 48 },
+  { 0x0, 0x0, 220, 2081, -1, 0, 1, 48 },
+  { 0x0, 0x0, 220, 2082, -1, 0, 1, 48 },
+  { 0x0, 0x0, 220, 2083, -1, 0, 1, 48 },
+  { 0x1, 0x1, 220, 2084, -1, 28, 1, 28 },
+  { 0x0, 0x0, 220, 2085, -1, 0, 1, 28 },
+  { 0x3, 0x3, 220, 2086, -1, 27, 1, 28 },
+  { 0x1, 0x1, 220, 2087, -1, 27, 1, 28 },
+  { 0x0, 0x0, 220, 2088, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2089, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2090, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 51, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2092, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2093, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 56, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 2095, -1, 0, 1, 23 },
+  { 0x0, 0x0, 220, 2096, -1, 0, 1, 23 },
+  { 0x0, 0x0, 220, 2097, -1, 0, 1, 23 },
+  { 0x0, 0x0, 220, 2098, -1, 0, 1, 23 },
+  { 0x0, 0x0, 220, 2099, -1, 0, 1, 34 },
+  { 0x0, 0x0, 220, 2100, -1, 0, 1, 65 },
+  { 0x0, 0x0, 220, 2101, -1, 0, 1, 28 },
+  { 0x0, 0x0, 220, 63, -1, 0, 1, 28 },
+  { 0x1, 0x1, 221, 2103, -1, 34, 1, 65 },
+  { 0x1, 0x1, 221, 2104, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2105, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2106, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2107, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2108, -1, 34, 1, 45 },
+  { 0x1, 0x1, 221, 2109, -1, 34, 1, 41 },
+  { 0x400001, 0x400001, 221, 2110, -1, 12, 1, 60 },
+  { 0x1, 0x1, 221, 2111, -1, 34, 1, 55 },
+  { 0x1400001, 0x1400001, 221, 2112, -1, 12, 1, 60 },
+  { 0x5, 0x5, 221, 2113, -1, 34, 1, 55 },
+  { 0x600001, 0x600001, 221, 2114, -1, 12, 1, 60 },
+  { 0x3, 0x3, 221, 2115, -1, 33, 1, 55 },
+  { 0x1600001, 0x1600001, 221, 2116, -1, 12, 1, 50 },
+  { 0xb, 0xb, 221, 2117, -1, 33, 1, 50 },
+  { 0x400001, 0x400001, 221, 2118, -1, 12, 1, 60 },
+  { 0x1, 0x1, 221, 2119, -1, 34, 1, 55 },
+  { 0x600001, 0x1600001, 221, 2120, -1, 12, 1, 60 },
+  { 0x3, 0xb, 221, 2121, -1, 33, 1, 55 },
+  { 0x400001, 0x400001, 221, 2122, -1, 12, 1, 60 },
+  { 0x1, 0x1, 221, 2123, -1, 34, 1, 55 },
+  { 0x1400001, 0x1400001, 221, 2124, -1, 12, 1, 60 },
+  { 0x5, 0x5, 221, 2125, -1, 34, 1, 55 },
+  { 0x600001, 0x600001, 221, 2126, -1, 12, 1, 60 },
+  { 0x3, 0x3, 221, 2127, -1, 33, 1, 55 },
+  { 0x1600001, 0x1600001, 221, 2128, -1, 12, 1, 50 },
+  { 0xb, 0xb, 221, 2129, -1, 33, 1, 50 },
+  { 0x400001, 0x400001, 221, 2130, -1, 12, 1, 60 },
+  { 0x1, 0x1, 221, 2131, -1, 34, 1, 55 },
+  { 0x600001, 0x1600001, 221, 2132, -1, 12, 1, 60 },
+  { 0x3, 0xb, 221, 2133, -1, 33, 1, 55 },
+  { 0x41, 0x41, 221, 2134, -1, 28, 1, 30 },
+  { 0x1, 0x1, 221, 2135, -1, 34, 1, 30 },
+  { 0x83, 0x83, 221, 2136, -1, 27, 1, 30 },
+  { 0x81, 0x81, 221, 2137, -1, 27, 1, 30 },
+  { 0x1, 0x1, 221, 2138, -1, 34, 1, 65 },
+  { 0x1, 0x1, 221, 2139, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2140, -1, 34, 1, 30 },
+  { 0x5, 0x5, 221, 2141, -1, 34, 1, 65 },
+  { 0x9, 0x9, 221, 2142, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2143, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2144, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2145, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2146, -1, 34, 1, 65 },
+  { 0x1, 0x1, 221, 2147, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2148, -1, 34, 1, 30 },
+  { 0x5, 0x5, 221, 2149, -1, 34, 1, 65 },
+  { 0x9, 0x9, 221, 2150, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2151, -1, 34, 1, 30 },
+  { 0x5, 0x5, 221, 2152, -1, 34, 1, 65 },
+  { 0x9, 0x9, 221, 2153, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2154, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2155, -1, 34, 1, 65 },
+  { 0x1, 0x1, 221, 2156, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2157, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2158, -1, 34, 1, 65 },
+  { 0x1, 0x1, 221, 2159, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2160, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2161, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2162, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2163, -1, 34, 1, 50 },
+  { 0x81, 0x81, 221, 2164, -1, 27, 1, 50 },
+  { 0x41, 0x41, 221, 2165, -1, 28, 1, 50 },
+  { 0x83, 0x83, 221, 2166, -1, 27, 1, 50 },
+  { 0x21, 0x21, 221, 2167, -1, 29, 1, 50 },
+  { 0x85, 0x85, 221, 2168, -1, 27, 1, 50 },
+  { 0x43, 0x43, 221, 2169, -1, 28, 1, 50 },
+  { 0x87, 0x87, 221, 2170, -1, 27, 1, 50 },
+  { 0x1, 0x1, 221, 2171, -1, 34, 1, 50 },
+  { 0x1, 0x1, 221, 2172, -1, 34, 1, 50 },
+  { 0x1, 0x1, 221, 2173, -1, 34, 1, 50 },
+  { 0x1, 0x1, 221, 2174, -1, 34, 1, 50 },
+  { 0x41, 0x41, 221, 2175, -1, 28, 1, 30 },
+  { 0x1, 0x1, 221, 2176, -1, 34, 1, 30 },
+  { 0x83, 0x83, 221, 2177, -1, 27, 1, 30 },
+  { 0x81, 0x81, 221, 2178, -1, 27, 1, 30 },
+  { 0x1, 0x1, 221, 2179, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2180, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2181, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2182, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2183, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2184, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2185, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2186, -1, 34, 1, 25 },
+  { 0x1, 0x1, 221, 2187, -1, 34, 1, 25 },
+  { 0x1, 0x1, 221, 2188, -1, 34, 1, 25 },
+  { 0x1, 0x1, 221, 2189, -1, 34, 1, 25 },
+  { 0x1, 0x1, 221, 2190, -1, 34, 1, 36 },
+  { 0x1, 0x1, 221, 2191, -1, 34, 1, 65 },
+  { 0x1, 0x1, 221, 2192, -1, 34, 1, 30 },
+  { 0x1, 0x1, 221, 2193, -1, 34, 1, 30 },
+  { 0x1, 0x1, 222, 2194, -1, 35, 1, 65 },
+  { 0x1, 0x1, 222, 2195, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2196, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2197, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2198, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2199, -1, 35, 1, 46 },
+  { 0x1, 0x1, 222, 2200, -1, 35, 1, 42 },
+  { 0x800001, 0x800001, 222, 2201, -1, 12, 1, 61 },
+  { 0x1, 0x1, 222, 2202, -1, 35, 1, 56 },
+  { 0x1800001, 0x1800001, 222, 2203, -1, 12, 1, 61 },
+  { 0x3, 0x3, 222, 2204, -1, 35, 1, 56 },
+  { 0xa00001, 0xa00001, 222, 2205, -1, 12, 1, 61 },
+  { 0x5, 0x5, 222, 2206, -1, 33, 1, 56 },
+  { 0x1a00001, 0x1a00001, 222, 2207, -1, 12, 1, 51 },
+  { 0xd, 0xd, 222, 2208, -1, 33, 1, 51 },
+  { 0x800001, 0x800001, 222, 2209, -1, 12, 1, 61 },
+  { 0x1, 0x1, 222, 2210, -1, 35, 1, 56 },
+  { 0xa00001, 0x1a00001, 222, 2211, -1, 12, 1, 61 },
+  { 0x5, 0xd, 222, 2212, -1, 33, 1, 56 },
+  { 0x800001, 0x800001, 222, 2213, -1, 12, 1, 61 },
+  { 0x1, 0x1, 222, 2214, -1, 35, 1, 56 },
+  { 0x1800001, 0x1800001, 222, 2215, -1, 12, 1, 61 },
+  { 0x3, 0x3, 222, 2216, -1, 35, 1, 56 },
+  { 0xa00001, 0xa00001, 222, 2217, -1, 12, 1, 61 },
+  { 0x5, 0x5, 222, 2218, -1, 33, 1, 56 },
+  { 0x1a00001, 0x1a00001, 222, 2219, -1, 12, 1, 51 },
+  { 0xd, 0xd, 222, 2220, -1, 33, 1, 51 },
+  { 0x800001, 0x800001, 222, 2221, -1, 12, 1, 61 },
+  { 0x1, 0x1, 222, 2222, -1, 35, 1, 56 },
+  { 0xa00001, 0x1a00001, 222, 2223, -1, 12, 1, 61 },
+  { 0x5, 0xd, 222, 2224, -1, 33, 1, 56 },
+  { 0x81, 0x81, 222, 2225, -1, 28, 1, 31 },
+  { 0x1, 0x1, 222, 2226, -1, 35, 1, 31 },
+  { 0x103, 0x103, 222, 2227, -1, 27, 1, 31 },
+  { 0x101, 0x101, 222, 2228, -1, 27, 1, 31 },
+  { 0x1, 0x1, 222, 2229, -1, 35, 1, 65 },
+  { 0x1, 0x1, 222, 2230, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2231, -1, 35, 1, 31 },
+  { 0x3, 0x3, 222, 2232, -1, 35, 1, 65 },
+  { 0x5, 0x5, 222, 2233, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2234, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2235, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2236, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2237, -1, 35, 1, 65 },
+  { 0x1, 0x1, 222, 2238, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2239, -1, 35, 1, 31 },
+  { 0x3, 0x3, 222, 2240, -1, 35, 1, 65 },
+  { 0x5, 0x5, 222, 2241, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2242, -1, 35, 1, 31 },
+  { 0x3, 0x3, 222, 2243, -1, 35, 1, 65 },
+  { 0x5, 0x5, 222, 2244, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2245, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2246, -1, 35, 1, 65 },
+  { 0x1, 0x1, 222, 2247, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2248, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2249, -1, 35, 1, 65 },
+  { 0x1, 0x1, 222, 2250, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2251, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2252, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2253, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2254, -1, 35, 1, 51 },
+  { 0x101, 0x101, 222, 2255, -1, 27, 1, 51 },
+  { 0x81, 0x81, 222, 2256, -1, 28, 1, 51 },
+  { 0x103, 0x103, 222, 2257, -1, 27, 1, 51 },
+  { 0x41, 0x41, 222, 2258, -1, 29, 1, 51 },
+  { 0x105, 0x105, 222, 2259, -1, 27, 1, 51 },
+  { 0x83, 0x83, 222, 2260, -1, 28, 1, 51 },
+  { 0x107, 0x107, 222, 2261, -1, 27, 1, 51 },
+  { 0x1, 0x1, 222, 2262, -1, 35, 1, 51 },
+  { 0x1, 0x1, 222, 2263, -1, 35, 1, 51 },
+  { 0x1, 0x1, 222, 2264, -1, 35, 1, 51 },
+  { 0x1, 0x1, 222, 2265, -1, 35, 1, 51 },
+  { 0x81, 0x81, 222, 2266, -1, 28, 1, 31 },
+  { 0x1, 0x1, 222, 2267, -1, 35, 1, 31 },
+  { 0x103, 0x103, 222, 2268, -1, 27, 1, 31 },
+  { 0x101, 0x101, 222, 2269, -1, 27, 1, 31 },
+  { 0x1, 0x1, 222, 2270, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2271, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2272, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2273, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2274, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2275, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2276, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2277, -1, 35, 1, 26 },
+  { 0x1, 0x1, 222, 2278, -1, 35, 1, 26 },
+  { 0x1, 0x1, 222, 2279, -1, 35, 1, 26 },
+  { 0x1, 0x1, 222, 2280, -1, 35, 1, 26 },
+  { 0x1, 0x1, 222, 2281, -1, 35, 1, 37 },
+  { 0x1, 0x1, 222, 2282, -1, 35, 1, 65 },
+  { 0x1, 0x1, 222, 2283, -1, 35, 1, 31 },
+  { 0x1, 0x1, 222, 2284, -1, 35, 1, 31 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, 1875, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 47 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 43 },
+  { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
+  { 0x3, 0x3, 223, 2458, -1, 34, 1, 57 },
+  { 0x1c00001, 0x1c00001, 223, -1, -1, 12, 1, 62 },
+  { 0x7, 0x7, 223, 2459, -1, 34, 1, 57 },
+  { 0xe00001, 0xe00001, 223, -1, -1, 12, 1, 62 },
+  { 0x7, 0x7, 223, 2460, -1, 33, 1, 57 },
+  { 0x1e00001, 0x1e00001, 223, -1, -1, 12, 1, 52 },
+  { 0xf, 0xf, 223, 2461, -1, 33, 1, 52 },
+  { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
+  { 0x3, 0x3, 223, 2466, -1, 34, 1, 57 },
+  { 0xe00001, 0x1e00001, 223, -1, -1, 12, 1, 62 },
+  { 0x7, 0xf, 223, 2467, -1, 33, 1, 57 },
+  { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
+  { 0x3, 0x3, 223, 2470, -1, 34, 1, 57 },
+  { 0x1c00001, 0x1c00001, 223, -1, -1, 12, 1, 62 },
+  { 0x7, 0x7, 223, 2471, -1, 34, 1, 57 },
+  { 0xe00001, 0xe00001, 223, -1, -1, 12, 1, 62 },
+  { 0x7, 0x7, 223, 2472, -1, 33, 1, 57 },
+  { 0x1e00001, 0x1e00001, 223, -1, -1, 12, 1, 52 },
+  { 0xf, 0xf, 223, 2473, -1, 33, 1, 52 },
+  { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
+  { 0x3, 0x3, 223, 2478, -1, 34, 1, 57 },
+  { 0xe00001, 0x1e00001, 223, -1, -1, 12, 1, 62 },
+  { 0x7, 0xf, 223, 2479, -1, 33, 1, 57 },
+  { 0xc1, 0xc1, 223, -1, -1, 28, 1, 32 },
+  { 0x3, 0x3, 223, 2398, -1, 34, 1, 32 },
+  { 0x183, 0x183, 223, -1, -1, 27, 1, 32 },
+  { 0x181, 0x181, 223, 2399, -1, 27, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, 1876, -1, 34, 1, 32 },
+  { 0x7, 0x7, 223, -1, -1, 34, 1, 65 },
+  { 0xb, 0xb, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, 1877, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, 1880, -1, 34, 1, 32 },
+  { 0x7, 0x7, 223, -1, -1, 34, 1, 65 },
+  { 0xb, 0xb, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, 1881, -1, 34, 1, 32 },
+  { 0x7, 0x7, 223, -1, -1, 34, 1, 65 },
+  { 0xb, 0xb, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, 1883, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, 1885, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, 1886, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
+  { 0x181, 0x181, 223, -1, -1, 27, 1, 52 },
+  { 0xc1, 0xc1, 223, -1, -1, 28, 1, 52 },
+  { 0x183, 0x183, 223, -1, -1, 27, 1, 52 },
+  { 0x61, 0x61, 223, -1, -1, 29, 1, 52 },
+  { 0x185, 0x185, 223, -1, -1, 27, 1, 52 },
+  { 0xc3, 0xc3, 223, -1, -1, 28, 1, 52 },
+  { 0x187, 0x187, 223, -1, -1, 27, 1, 52 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
+  { 0xc1, 0xc1, 223, -1, -1, 28, 1, 32 },
+  { 0x3, 0x3, 223, 2402, -1, 34, 1, 32 },
+  { 0x183, 0x183, 223, -1, -1, 27, 1, 32 },
+  { 0x181, 0x181, 223, 2403, -1, 27, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 38 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
+  { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
+  { 0x3, 0x3, 223, 1888, -1, 34, 1, 32 },
+  { 0x3, 0x3, 224, 401, 1210, 32, 1, 128 },
+  { 0x3, 0x3, 224, 402, 1219, 32, 1, 128 },
+  { 0x3, 0x3, 224, 403, 1228, 32, 1, 128 },
+  { 0x3, 0x3, 224, 404, 1239, 32, 1, 128 },
+  { 0x3, 0x3, 224, 405, 1248, 32, 1, 128 },
+  { 0x3, 0x3, 224, 406, 1257, 32, 1, 128 },
+  { 0x3, 0x3, 224, 407, 1266, 32, 1, 128 },
+  { 0x3, 0x3, 224, 408, 1275, 32, 1, 128 },
+  { 0x3, 0x3, 224, 409, 1284, 32, 1, 128 },
+  { 0x3, 0x3, 224, 410, 1293, 32, 1, 128 },
+  { 0x3, 0x3, 224, 411, 1303, 32, 1, 128 },
+  { 0x3, 0x3, 224, 412, 1313, 32, 1, 128 },
+  { 0x3, 0x3, 224, 425, 1326, 32, 1, 143 },
+  { 0x3, 0x3, 224, 426, 1332, 32, 1, 143 },
+  { 0x3, 0x3, 224, 427, 1338, 32, 1, 143 },
+  { 0x3, 0x3, 224, 428, 1344, 32, 1, 143 },
+  { 0x3, 0x3, 224, 429, 1350, 32, 1, 143 },
+  { 0x3, 0x3, 224, 430, 1356, 32, 1, 143 },
+  { 0x3, 0x3, 224, 431, 1362, 32, 1, 143 },
+  { 0x3, 0x3, 224, 432, 1368, 32, 1, 143 },
+  { 0x3, 0x3, 224, 433, 1374, 32, 1, 143 },
+  { 0x3, 0x3, 224, 434, 1380, 32, 1, 143 },
+  { 0x3, 0x3, 224, 435, 1386, 32, 1, 143 },
+  { 0x3, 0x3, 224, 436, 1392, 32, 1, 143 },
+  { 0x3, 0x3, 224, 437, 1398, 32, 1, 143 },
+  { 0x3, 0x3, 224, 438, 1404, 32, 1, 143 },
+  { 0x3, 0x3, 224, 439, 1410, 32, 1, 143 },
+  { 0x3, 0x3, 224, 440, 1416, 32, 1, 143 },
+  { 0x3, 0x3, 224, 441, 1422, 32, 1, 143 },
+  { 0x3, 0x3, 224, 442, 1428, 32, 1, 143 },
+  { 0x1, 0x1, 225, -1, -1, 28, 1, 33 },
+  { 0x1, 0x1, 225, -1, -1, 28, 1, 33 },
+  { 0x0, 0x0, 232, 810, -1, 0, 1, 137 },
+  { 0x0, 0x0, 232, 811, -1, 0, 1, 149 },
+  { 0x1, 0x1, 233, -1, 1725, 33, 1, 133 },
+  { 0x1, 0x1, 233, -1, 1728, 33, 1, 139 },
+  { 0x0, 0x0, 233, -1, 1730, 0, 1, 131 },
+  { 0x0, 0x0, 233, -1, 1731, 0, 1, 131 },
+  { 0x0, 0x0, 234, 744, 823, 0, 0, -1 },
+  { 0x0, 0x0, 234, 745, 831, 0, 0, -1 },
+  { 0x0, 0x0, 234, 746, 827, 0, 0, -1 },
+  { 0x1, 0x1, 234, 747, 481, 33, 1, 6 },
+  { 0x8000001, 0x8000001, 234, 748, 489, 6, 1, 7 },
+  { 0x1, 0x1, 234, 749, 485, 33, 1, 6 },
+  { 0x0, 0x0, 234, 750, 835, 0, 0, -1 },
+  { 0x1, 0x1, 234, 751, 501, 33, 1, 8 },
+  { 0x0, 0x0, 234, 752, 839, 0, 0, -1 },
+  { 0x1, 0x1, 234, 753, 513, 33, 1, 15 },
+  { 0x0, 0x0, 234, 754, 844, 0, 0, -1 },
+  { 0x0, 0x0, 234, 755, 848, 0, 0, -1 },
+  { 0x1, 0x1, 234, 756, 536, 33, 1, 17 },
+  { 0x1, 0x1, 234, 757, 540, 33, 1, 17 },
+  { 0x0, 0x0, 234, 758, 852, 0, 0, -1 },
+  { 0x0, 0x0, 234, 759, 856, 0, 0, -1 },
+  { 0x1, 0x1, 234, 760, 560, 33, 1, 18 },
+  { 0x8000001, 0x8000001, 234, 761, 564, 6, 1, 18 },
+  { 0x0, 0x0, 234, 762, 860, 0, 0, -1 },
+  { 0x1, 0x1, 234, 763, 576, 33, 1, 19 },
+  { 0x0, 0x0, 234, 764, 864, 0, 0, -1 },
+  { 0x0, 0x0, 234, 765, 868, 0, 0, -1 },
+  { 0x1, 0x1, 234, 766, 596, 33, 1, 20 },
+  { 0x8000001, 0x8000001, 234, 767, 600, 6, 1, 20 },
+  { 0x0, 0x0, 234, 768, 872, 0, 0, -1 },
+  { 0x1, 0x1, 234, 769, 612, 33, 1, 21 },
+  { 0x0, 0x0, 234, 770, 877, 0, 0, -1 },
+  { 0x0, 0x0, 234, 771, 881, 0, 0, -1 },
+  { 0x1, 0x1, 234, 772, 635, 33, 1, 17 },
+  { 0x1, 0x1, 234, 773, 639, 33, 1, 17 },
+  { 0x0, 0x0, 234, 774, 885, 0, 0, -1 },
+  { 0x1, 0x1, 234, 775, 651, 33, 1, 21 },
+  { 0x0, 0x0, 235, 2323, 822, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2324, 830, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2325, 826, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2326, 480, 0, 1, 6 },
+  { 0x1, 0x1, 235, 2327, 488, 6, 1, 7 },
+  { 0x0, 0x0, 235, 2328, 484, 0, 1, 6 },
+  { 0x0, 0x0, 235, 2329, 834, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2330, 500, 0, 1, 8 },
+  { 0x0, 0x0, 235, 2331, 838, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2332, 512, 0, 1, 15 },
+  { 0x0, 0x0, 235, 2333, 843, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2334, 847, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2335, 535, 0, 1, 17 },
+  { 0x0, 0x0, 235, 2336, 539, 0, 1, 17 },
+  { 0x0, 0x0, 235, 2337, 851, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2338, 855, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2339, 559, 0, 1, 18 },
+  { 0x1, 0x1, 235, 2340, 563, 6, 1, 18 },
+  { 0x0, 0x0, 235, 2341, 859, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2342, 575, 0, 1, 19 },
+  { 0x0, 0x0, 235, 2343, 863, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2344, 867, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2345, 595, 0, 1, 20 },
+  { 0x1, 0x1, 235, 2346, 599, 6, 1, 20 },
+  { 0x0, 0x0, 235, 2347, 871, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2348, 611, 0, 1, 21 },
+  { 0x0, 0x0, 235, 2349, 876, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2350, 880, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2351, 634, 0, 1, 17 },
+  { 0x0, 0x0, 235, 2352, 638, 0, 1, 17 },
+  { 0x0, 0x0, 235, 2353, 884, 0, 0, -1 },
+  { 0x0, 0x0, 235, 2354, 650, 0, 1, 21 },
+  { 0x1, 0x1, 235, 776, 973, 27, 1, 16 },
+  { 0x0, 0x0, 235, 777, 971, 0, 1, 16 },
+  { 0x0, 0x0, 235, 1021, 975, 0, 1, 22 },
+  { 0x0, 0x1, 235, 983, 981, 20, 1, 67 },
+  { 0x0, 0x0, 235, 110, 979, 0, 1, 67 },
+  { 0x1, 0x1, 238, -1, -1, 29, 1, 0 },
+  { 0x0, 0x0, 238, -1, -1, 0, 1, 0 },
+  { 0x1, 0x1, 238, 2495, -1, 27, 1, 0 },
+  { 0x1, 0x1, 238, 2496, -1, 27, 1, 0 },
+  { 0x1, 0x1, 238, 2497, -1, 27, 1, 0 },
+  { 0x1, 0x1, 238, 2498, -1, 27, 1, 0 },
+  { 0x0, 0x0, 260, -1, 1952, 0, 0, -1 },
+  { 0x0, 0x0, 260, -1, 1954, 0, 0, -1 },
+  { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
+  { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
+  { 0x0, 0x0, 260, -1, 1993, 0, 0, -1 },
+  { 0x0, 0x0, 260, -1, 1995, 0, 0, -1 },
+  { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
+  { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
+  { 0x0, 0x0, 262, 22, -1, 0, 1, 0 },
+  { 0x0, 0x0, 262, -1, -1, 0, 1, 0 },
+  { 0x0, 0x0, 262, -1, -1, 0, 1, 0 },
+  { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
+  { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
+  { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
+  { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
+  { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
+  { 0x0, 0x0, 262, 178, -1, 0, 1, 0 },
+  { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
+  { 0x0, 0x0, 263, -1, 1928, 0, 0, -1 },
+  { 0x0, 0x0, 263, -1, 1930, 0, 0, -1 },
+  { 0x0, 0x0, 263, -1, 1932, 0, 0, -1 },
+  { 0x0, 0x0, 263, -1, 1934, 0, 0, -1 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 49 },
+  { 0x0, 0x0, 263, -1, 1936, 0, 0, -1 },
+  { 0x0, 0x0, 263, -1, 1938, 0, 0, -1 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x0, 0x0, 263, -1, 1940, 0, 0, -1 },
+  { 0x0, 0x0, 263, -1, 1942, 0, 0, -1 },
+  { 0x0, 0x0, 263, -1, 1944, 0, 0, -1 },
+  { 0x0, 0x0, 263, -1, 1946, 0, 0, -1 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 49 },
+  { 0x0, 0x0, 263, -1, 1948, 0, 0, -1 },
+  { 0x0, 0x0, 263, -1, 1950, 0, 0, -1 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
+  { 0x1, 0x1, 263, 334, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, 392, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, 338, -1, 12, 1, 2 },
+  { 0x1, 0x1, 263, 396, -1, 12, 1, 2 },
+  { 0x0, 0x0, 264, -1, 1935, 0, 0, -1 },
+  { 0x9, 0x9, 264, -1, 2465, 33, 1, 49 },
+  { 0x0, 0x0, 264, 1173, 1984, 0, 0, -1 },
+  { 0x3, 0x3, 264, 1174, -1, 27, 1, 49 },
+  { 0x0, 0x0, 268, 2392, -1, 0, 1, 0 },
+  { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
+  { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
+  { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
+  { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
+  { 0x1, 0x1, 270, 2491, -1, 28, 1, 0 },
+  { 0x1, 0x1, 270, 2492, -1, 28, 1, 0 },
+  { 0x1, 0x1, 270, 2493, -1, 28, 1, 0 },
+  { 0x1, 0x1, 270, 2494, -1, 28, 1, 0 },
+  { 0x1, 0x1, 271, -1, -1, 27, 1, 93 },
+  { 0x1, 0x1, 271, -1, -1, 27, 1, 93 },
+  { 0x0, 0x0, 271, -1, 820, 0, 0, -1 },
+  { 0x0, 0x0, 272, 2504, 2369, 0, 0, -1 },
+  { 0x0, 0x0, 272, 2505, 2371, 0, 0, -1 },
+  { 0x0, 0x0, 273, -1, 2370, 0, 0, -1 },
+  { 0x0, 0x0, 273, -1, 2372, 0, 0, -1 },
+  { 0x0, 0x0, 274, -1, -1, 0, 1, 40 },
+  { 0x0, 0x0, 274, -1, -1, 0, 1, 40 },
+  { 0x0, 0x0, 274, -1, -1, 0, 1, 40 },
+  { 0x0, 0x0, 279, -1, -1, 0, 1, 33 },
+  { 0x0, 0x0, 283, -1, 1958, 0, 1, 29 },
+  { 0x0, 0x0, 284, -1, -1, 0, 1, 0 },
+  { 0x0, 0x0, 284, -1, -1, 0, 1, 71 },
+  { 0x0, 0x0, 284, 1744, 2482, 0, 1, 1 },
+  { 0x0, 0x0, 284, -1, 393, 0, 0, -1 },
+  { 0x0, 0x0, 284, 1746, 2484, 0, 1, 1 },
+  { 0x0, 0x0, 284, -1, 397, 0, 0, -1 },
 };
 
 static const struct ia64_main_table
 main_table[] = {
-  { 5, 1, 1, 0x0000010000000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 0, },
-  { 5, 1, 1, 0x0000010008000000ull, 0x000001eff8000000ull, { 23, 24, 25, 3, 0 }, 0x0, 1, },
-  { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 23, 65, 26, 0, 0 }, 0x0, 2, },
-  { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 23, 62, 25, 0, 0 }, 0x0, 3, },
-  { 6, 1, 1, 0x0000012000000000ull, 0x000001e000000000ull, { 23, 65, 26, 0, 0 }, 0x0, 4, },
-  { 7, 1, 1, 0x0000010040000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 5, },
-  { 7, 1, 1, 0x0000010c00000000ull, 0x000001ee00000000ull, { 23, 62, 25, 0, 0 }, 0x0, 6, },
-  { 8, 1, 1, 0x0000010800000000ull, 0x000001ee00000000ull, { 23, 62, 25, 0, 0 }, 0x0, 7, },
-  { 9, 3, 1, 0x0000002c00000000ull, 0x000001ee00000000ull, { 23, 2, 51, 52, 53 }, 0x221, 8, },
-  { 10, 1, 1, 0x0000010060000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 9, },
-  { 10, 1, 1, 0x0000010160000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 10, },
-  { 11, 1, 1, 0x0000010068000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 11, },
-  { 11, 1, 1, 0x0000010168000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 12, },
-  { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011ffull, { 15, 0, 0, 0, 0 }, 0x40, 814, },
-  { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 15, 0, 0, 0, 0 }, 0x0, 680, },
-  { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 15, 0, 0, 0, 0 }, 0x40, 681, },
-  { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 15, 0, 0, 0, 0 }, 0x200, 1843, },
-  { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 15, 0, 0, 0, 0 }, 0x240, 1844, },
-  { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 14, 15, 0, 0, 0 }, 0x0, 437, },
-  { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 14, 15, 0, 0, 0 }, 0x40, 438, },
-  { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011ffull, { 80, 0, 0, 0, 0 }, 0x40, 835, },
-  { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x0, 682, },
-  { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x40, 683, },
-  { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x210, 2479, },
-  { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x250, 2480, },
-  { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x30, 445, },
-  { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x70, 446, },
-  { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x230, 443, },
-  { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x270, 444, },
-  { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 14, 80, 0, 0, 0 }, 0x0, 439, },
-  { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 14, 80, 0, 0, 0 }, 0x40, 440, },
-  { 15, 4, 0, 0x0000000000000000ull, 0x000001e1f8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 393, },
-  { 15, 5, 0, 0x0000000000000000ull, 0x000001e3f8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 806, },
-  { 15, 2, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 64, 0, 0, 0, 0 }, 0x2, 949, },
-  { 15, 3, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 1038, },
-  { 15, 6, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 68, 0, 0, 0, 0 }, 0x0, 2483, },
-  { 15, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 64, 0, 0, 0, 0 }, 0x0, 15, },
-  { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011ffull, { 81, 0, 0, 0, 0 }, 0x40, 868, },
-  { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x0, 684, },
-  { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x40, 685, },
-  { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 14, 81, 0, 0, 0 }, 0x0, 441, },
-  { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 14, 81, 0, 0, 0 }, 0x40, 442, },
-  { 17, 4, 0, 0x0000004080000000ull, 0x000001e9f8000018ull, { 15, 76, 0, 0, 0 }, 0x20, 2365, },
-  { 17, 4, 0, 0x000000e000000000ull, 0x000001e800000018ull, { 80, 76, 0, 0, 0 }, 0x20, 2366, },
-  { 18, 4, 0, 0x0000000060000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x2c, 216, },
-  { 22, 2, 0, 0x0000000200000000ull, 0x000001ee00000000ull, { 24, 79, 0, 0, 0 }, 0x0, 1848, },
-  { 22, 3, 0, 0x0000000800000000ull, 0x000001ee00000000ull, { 23, 80, 0, 0, 0 }, 0x0, 218, },
-  { 22, 3, 0, 0x0000000c00000000ull, 0x000001ee00000000ull, { 17, 80, 0, 0, 0 }, 0x0, 219, },
-  { 22, 3, 0, 0x0000002200000000ull, 0x000001ee00000000ull, { 24, 79, 0, 0, 0 }, 0x0, 1849, },
-  { 22, 3, 0, 0x0000002600000000ull, 0x000001ee00000000ull, { 18, 79, 0, 0, 0 }, 0x0, 1850, },
-  { 22, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 79, 0, 0, 0 }, 0x0, 1851, },
+  { 5, 1, 1, 0x0000010000000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 0, },
+  { 5, 1, 1, 0x0000010008000000ull, 0x000001eff8000000ull, { 24, 25, 26, 4, 0 }, 0x0, 1, },
+  { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 66, 27, 0, 0 }, 0x0, 2, },
+  { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 63, 26, 0, 0 }, 0x0, 3, },
+  { 6, 1, 1, 0x0000012000000000ull, 0x000001e000000000ull, { 24, 66, 27, 0, 0 }, 0x0, 4, },
+  { 7, 1, 1, 0x0000010040000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 5, },
+  { 7, 1, 1, 0x0000010c00000000ull, 0x000001ee00000000ull, { 24, 63, 26, 0, 0 }, 0x0, 6, },
+  { 8, 1, 1, 0x0000010800000000ull, 0x000001ee00000000ull, { 24, 63, 26, 0, 0 }, 0x0, 7, },
+  { 9, 3, 1, 0x0000002c00000000ull, 0x000001ee00000000ull, { 24, 3, 52, 53, 54 }, 0x221, 8, },
+  { 10, 1, 1, 0x0000010060000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 9, },
+  { 10, 1, 1, 0x0000010160000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 10, },
+  { 11, 1, 1, 0x0000010068000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 11, },
+  { 11, 1, 1, 0x0000010168000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 12, },
+  { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011ffull, { 16, 0, 0, 0, 0 }, 0x40, 821, },
+  { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x0, 686, },
+  { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x40, 687, },
+  { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x200, 1866, },
+  { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x240, 1867, },
+  { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 15, 16, 0, 0, 0 }, 0x0, 443, },
+  { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 15, 16, 0, 0, 0 }, 0x40, 444, },
+  { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011ffull, { 81, 0, 0, 0, 0 }, 0x40, 842, },
+  { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x0, 688, },
+  { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x40, 689, },
+  { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x210, 2502, },
+  { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x250, 2503, },
+  { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x30, 451, },
+  { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x70, 452, },
+  { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x230, 449, },
+  { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x270, 450, },
+  { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 15, 81, 0, 0, 0 }, 0x0, 445, },
+  { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 15, 81, 0, 0, 0 }, 0x40, 446, },
+  { 15, 4, 0, 0x0000000000000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 398, },
+  { 15, 5, 0, 0x0000000000000000ull, 0x000001e3f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 812, },
+  { 15, 2, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 65, 0, 0, 0, 0 }, 0x2, 956, },
+  { 15, 3, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1047, },
+  { 15, 6, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2506, },
+  { 15, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 15, },
+  { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011ffull, { 82, 0, 0, 0, 0 }, 0x40, 875, },
+  { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 82, 0, 0, 0, 0 }, 0x0, 690, },
+  { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 82, 0, 0, 0, 0 }, 0x40, 691, },
+  { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 15, 82, 0, 0, 0 }, 0x0, 447, },
+  { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 15, 82, 0, 0, 0 }, 0x40, 448, },
+  { 17, 4, 0, 0x0000004080000000ull, 0x000001e9f8000018ull, { 16, 77, 0, 0, 0 }, 0x20, 2388, },
+  { 17, 4, 0, 0x000000e000000000ull, 0x000001e800000018ull, { 81, 77, 0, 0, 0 }, 0x20, 2389, },
+  { 18, 4, 0, 0x0000000060000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x2c, 219, },
+  { 22, 2, 0, 0x0000000200000000ull, 0x000001ee00000000ull, { 25, 80, 0, 0, 0 }, 0x0, 1871, },
+  { 22, 3, 0, 0x0000000800000000ull, 0x000001ee00000000ull, { 24, 81, 0, 0, 0 }, 0x0, 221, },
+  { 22, 3, 0, 0x0000000c00000000ull, 0x000001ee00000000ull, { 18, 81, 0, 0, 0 }, 0x0, 222, },
+  { 22, 3, 0, 0x0000002200000000ull, 0x000001ee00000000ull, { 25, 80, 0, 0, 0 }, 0x0, 1872, },
+  { 22, 3, 0, 0x0000002600000000ull, 0x000001ee00000000ull, { 19, 80, 0, 0, 0 }, 0x0, 1873, },
+  { 22, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 25, 80, 0, 0, 0 }, 0x0, 1874, },
   { 25, 4, 0, 0x0000000020000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 17, },
-  { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 21, 22, 24, 25, 0 }, 0x0, 1014, },
-  { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 21, 25, 24, 0 }, 0x0, 990, },
-  { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 21, 22, 25, 24, 0 }, 0x0, 918, },
-  { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 21, 24, 25, 0 }, 0x0, 897, },
-  { 26, 1, 2, 0x0000018200000000ull, 0x000001fe00001000ull, { 21, 22, 24, 25, 0 }, 0x40, 1146, },
-  { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 21, 22, 6, 25, 0 }, 0x0, 919, },
-  { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 21, 22, 25, 6, 0 }, 0x40, 1016, },
-  { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 21, 22, 6, 25, 0 }, 0x40, 993, },
-  { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 21, 22, 54, 25, 0 }, 0x0, 1018, },
-  { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 21, 22, 56, 25, 0 }, 0x0, 994, },
-  { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 21, 56, 25, 0 }, 0x0, 922, },
-  { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 21, 54, 25, 0 }, 0x0, 901, },
-  { 26, 1, 2, 0x0000018a00000000ull, 0x000001ee00001000ull, { 21, 22, 54, 25, 0 }, 0x40, 1149, },
-  { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 21, 22, 58, 25, 0 }, 0x0, 1009, },
-  { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 22, 21, 58, 25, 0 }, 0x0, 939, },
-  { 26, 1, 2, 0x000001c200000000ull, 0x000001fe00001000ull, { 22, 21, 24, 25, 0 }, 0x40, 1150, },
-  { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 22, 21, 6, 25, 0 }, 0x40, 995, },
-  { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 22, 21, 25, 6, 0 }, 0x40, 903, },
-  { 26, 1, 2, 0x000001ca00000000ull, 0x000001ee00001000ull, { 22, 21, 54, 25, 0 }, 0x40, 1151, },
-  { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 21, 22, 24, 25, 0 }, 0x0, 1021, },
-  { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 21, 25, 24, 0 }, 0x0, 997, },
-  { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 21, 22, 25, 24, 0 }, 0x0, 925, },
-  { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 21, 24, 25, 0 }, 0x0, 904, },
-  { 27, 1, 2, 0x0000018600000000ull, 0x000001fe00001000ull, { 21, 22, 24, 25, 0 }, 0x40, 1154, },
-  { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 21, 22, 6, 25, 0 }, 0x0, 926, },
-  { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 21, 22, 25, 6, 0 }, 0x40, 1023, },
-  { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 21, 22, 6, 25, 0 }, 0x40, 1000, },
-  { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 21, 22, 54, 25, 0 }, 0x0, 1025, },
-  { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 21, 22, 56, 25, 0 }, 0x0, 1001, },
-  { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 21, 56, 25, 0 }, 0x0, 929, },
-  { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 21, 54, 25, 0 }, 0x0, 908, },
-  { 27, 1, 2, 0x0000018e00000000ull, 0x000001ee00001000ull, { 21, 22, 54, 25, 0 }, 0x40, 1157, },
-  { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 21, 22, 55, 25, 0 }, 0x0, 1035, },
-  { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 21, 22, 57, 25, 0 }, 0x0, 1011, },
-  { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 21, 57, 25, 0 }, 0x0, 941, },
-  { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 21, 55, 25, 0 }, 0x0, 917, },
-  { 27, 1, 2, 0x000001c600000000ull, 0x000001fe00001000ull, { 22, 21, 24, 25, 0 }, 0x40, 1158, },
-  { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 22, 21, 6, 25, 0 }, 0x40, 1002, },
-  { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 22, 21, 25, 6, 0 }, 0x40, 910, },
-  { 27, 1, 2, 0x000001ce00000000ull, 0x000001ee00001000ull, { 22, 21, 54, 25, 0 }, 0x40, 1159, },
-  { 28, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 23, 32, 24, 1, 0 }, 0x0, 251, },
-  { 29, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 23, 32, 24, 1, 0 }, 0x0, 252, },
-  { 30, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 23, 32, 24, 1, 0 }, 0x0, 253, },
-  { 31, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 23, 32, 24, 1, 0 }, 0x0, 254, },
-  { 33, 4, 0, 0x0000000010000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 18, },
-  { 35, 2, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 976, },
-  { 36, 2, 1, 0x00000000c8000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 977, },
-  { 38, 2, 1, 0x0000008000000000ull, 0x000001e000000000ull, { 23, 24, 25, 46, 71 }, 0x0, 19, },
-  { 38, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 23, 24, 44, 72, 0 }, 0x0, 2487, },
-  { 38, 2, 1, 0x000000a604000000ull, 0x000001ee04000000ull, { 23, 54, 44, 72, 0 }, 0x0, 2488, },
-  { 38, 2, 1, 0x000000ae00000000ull, 0x000001ee00000000ull, { 23, 47, 25, 45, 72 }, 0x0, 20, },
-  { 42, 4, 0, 0x0000000080000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x20, 21, },
-  { 47, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 23, 25, 75, 72, 0 }, 0x0, 2383, },
-  { 49, 5, 1, 0x0000000080000000ull, 0x000001e3f80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 23, },
-  { 50, 5, 1, 0x0000010008000000ull, 0x000001fff8000000ull, { 17, 19, 18, 0, 0 }, 0x40, 1900, },
-  { 51, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1901, },
-  { 51, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 25, },
-  { 52, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1902, },
-  { 52, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 26, },
-  { 53, 5, 1, 0x0000000160000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 27, },
-  { 54, 5, 1, 0x0000000168000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 28, },
-  { 56, 3, 0, 0x0000002180000000ull, 0x000001eff8000000ull, { 25, 0, 0, 0, 0 }, 0x0, 29, },
-  { 57, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 78, 0, 0, 0, 0 }, 0x0, 1903, },
-  { 57, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 78, 0, 0, 0, 0 }, 0x40, 30, },
-  { 58, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 21, 22, 18, 59, 0 }, 0x0, 1040, },
-  { 58, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 22, 21, 18, 59, 0 }, 0x40, 1179, },
-  { 59, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 1904, },
-  { 59, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x40, 31, },
-  { 60, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 21, 22, 18, 19, 0 }, 0x0, 790, },
-  { 60, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 21, 22, 18, 19, 0 }, 0x40, 791, },
-  { 60, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 21, 22, 19, 18, 0 }, 0x0, 932, },
-  { 60, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 21, 22, 19, 18, 0 }, 0x40, 933, },
-  { 60, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 21, 18, 19, 0 }, 0x0, 1160, },
-  { 60, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 21, 18, 19, 0 }, 0x40, 1161, },
-  { 60, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 21, 19, 18, 0 }, 0x0, 1167, },
-  { 60, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 21, 19, 18, 0 }, 0x40, 1168, },
-  { 61, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 17, 18, 0, 0, 0 }, 0x0, 887, },
-  { 61, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 17, 18, 0, 0, 0 }, 0x40, 888, },
-  { 61, 5, 1, 0x00000000e0000000ull, 0x000001e3f8000000ull, { 17, 18, 0, 0, 0 }, 0x0, 2485, },
-  { 61, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 2486, },
-  { 62, 3, 1, 0x0000008488000000ull, 0x000001fff8000000ull, { 23, 32, 70, 0, 0 }, 0x0, 255, },
-  { 63, 3, 1, 0x00000084c8000000ull, 0x000001fff8000000ull, { 23, 32, 70, 0, 0 }, 0x0, 256, },
-  { 66, 3, 0, 0x0000000060000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 32, },
-  { 67, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1938, },
-  { 67, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 33, },
-  { 68, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1939, },
-  { 68, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 34, },
-  { 69, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1856, },
-  { 70, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1940, },
-  { 70, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 35, },
-  { 71, 5, 1, 0x00000001c8000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1013, },
-  { 72, 5, 1, 0x0000010000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 1943, },
-  { 73, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1946, },
-  { 73, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 37, },
-  { 74, 5, 1, 0x0000000088000000ull, 0x000001e3f8000000ull, { 17, 19, 0, 0, 0 }, 0xc0, 38, },
-  { 75, 5, 1, 0x0000000088000000ull, 0x000001e3f80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 39, },
-  { 76, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1949, },
-  { 76, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 40, },
-  { 77, 5, 1, 0x0000018000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 1952, },
-  { 78, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 1955, },
-  { 79, 5, 1, 0x0000000170000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 43, },
-  { 80, 5, 1, 0x0000002080000000ull, 0x000001e3f80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 44, },
-  { 81, 5, 1, 0x0000000140000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 45, },
-  { 82, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1956, },
-  { 82, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 46, },
-  { 83, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1957, },
-  { 83, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 47, },
-  { 84, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 792, },
-  { 84, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 793, },
-  { 84, 5, 1, 0x0000002188000000ull, 0x000001eff8000000ull, { 17, 19, 18, 0, 0 }, 0x40, 934, },
-  { 85, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 17, 18, 0, 0, 0 }, 0x0, 889, },
-  { 85, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 17, 18, 0, 0, 0 }, 0x40, 890, },
-  { 86, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1974, },
-  { 86, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 48, },
-  { 87, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1975, },
-  { 87, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 49, },
-  { 88, 5, 1, 0x0000002080000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1864, },
-  { 89, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1976, },
-  { 89, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 50, },
-  { 90, 5, 1, 0x0000013000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 1977, },
-  { 91, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1978, },
-  { 91, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 52, },
-  { 92, 5, 1, 0x0000002088000000ull, 0x000001e3f8000000ull, { 17, 19, 0, 0, 0 }, 0xc0, 53, },
-  { 93, 5, 1, 0x0000002088000000ull, 0x000001e3f80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 54, },
-  { 94, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1979, },
-  { 94, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 55, },
-  { 95, 5, 1, 0x000001b000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 1980, },
-  { 96, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 17, 22, 18, 19, 0 }, 0x0, 1981, },
-  { 96, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 17, 22, 18, 19, 0 }, 0x40, 57, },
-  { 97, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 17, 22, 19, 0, 0 }, 0x0, 1982, },
-  { 97, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 17, 22, 19, 0, 0 }, 0x40, 58, },
-  { 98, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 17, 22, 18, 19, 0 }, 0x0, 1983, },
-  { 98, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 17, 22, 18, 19, 0 }, 0x40, 59, },
-  { 99, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 17, 22, 19, 0, 0 }, 0x0, 1984, },
-  { 99, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 17, 22, 19, 0, 0 }, 0x40, 60, },
-  { 100, 5, 1, 0x000001c000000000ull, 0x000001f000000000ull, { 17, 19, 20, 18, 0 }, 0x0, 61, },
-  { 101, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 49, 50, 0, 0, 0 }, 0x0, 1985, },
-  { 101, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 49, 50, 0, 0, 0 }, 0x40, 62, },
-  { 102, 5, 1, 0x0000014008000000ull, 0x000001fff8000000ull, { 17, 19, 18, 0, 0 }, 0x40, 1988, },
-  { 103, 5, 1, 0x00000001a0000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 64, },
-  { 104, 5, 1, 0x00000001e0000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1819, },
-  { 105, 3, 0, 0x0000000100000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 65, },
-  { 107, 5, 1, 0x0000000178000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 66, },
-  { 112, 3, 1, 0x0000008708000000ull, 0x000001ffc8000000ull, { 23, 18, 0, 0, 0 }, 0x0, 2294, },
-  { 121, 3, 0, 0x0000000080000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 67, },
-  { 121, 3, 0, 0x0000000090000000ull, 0x000001eff8000000ull, { 23, 0, 0, 0, 0 }, 0x0, 775, },
-  { 121, 3, 0, 0x0000000098000000ull, 0x000001eff8000000ull, { 17, 0, 0, 0, 0 }, 0x0, 776, },
-  { 122, 3, 0, 0x0000002170000000ull, 0x000001eff8000000ull, { 24, 0, 0, 0, 0 }, 0xc, 701, },
-  { 123, 3, 1, 0x0000002070000000ull, 0x000001eff8000000ull, { 29, 24, 0, 0, 0 }, 0x8, 702, },
-  { 123, 3, 1, 0x0000002078000000ull, 0x000001eff8000000ull, { 30, 24, 0, 0, 0 }, 0x8, 952, },
-  { 125, 3, 1, 0x0000008000000000ull, 0x000001fff8000000ull, { 23, 32, 0, 0, 0 }, 0x0, 68, },
-  { 125, 3, 1, 0x0000009000000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x400, 69, },
-  { 125, 3, 1, 0x000000a000000000ull, 0x000001eff0000000ull, { 23, 32, 61, 0, 0 }, 0x400, 70, },
-  { 126, 3, 1, 0x0000008040000000ull, 0x000001fff8000000ull, { 23, 32, 0, 0, 0 }, 0x0, 71, },
-  { 126, 3, 1, 0x0000009040000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x400, 72, },
-  { 126, 3, 1, 0x000000a040000000ull, 0x000001eff0000000ull, { 23, 32, 61, 0, 0 }, 0x400, 73, },
-  { 127, 3, 1, 0x0000008080000000ull, 0x000001fff8000000ull, { 23, 32, 0, 0, 0 }, 0x0, 74, },
-  { 127, 3, 1, 0x0000009080000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x400, 75, },
-  { 127, 3, 1, 0x000000a080000000ull, 0x000001eff0000000ull, { 23, 32, 61, 0, 0 }, 0x400, 76, },
-  { 128, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 23, 32, 0, 0, 0 }, 0x0, 77, },
-  { 128, 3, 1, 0x00000090c0000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x400, 78, },
-  { 128, 3, 1, 0x000000a0c0000000ull, 0x000001eff0000000ull, { 23, 32, 61, 0, 0 }, 0x400, 79, },
-  { 129, 3, 1, 0x000000c6c0000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 884, },
-  { 129, 3, 1, 0x000000d6c0000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 885, },
-  { 129, 3, 1, 0x000000e6c0000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 886, },
-  { 130, 3, 1, 0x000000c040000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 80, },
-  { 130, 3, 1, 0x000000d040000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 81, },
-  { 130, 3, 1, 0x000000e040000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 82, },
-  { 131, 3, 1, 0x000000c0c0000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 83, },
-  { 131, 3, 1, 0x000000d0c0000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 84, },
-  { 131, 3, 1, 0x000000e0c0000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 85, },
-  { 132, 3, 1, 0x000000c000000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 86, },
-  { 132, 3, 1, 0x000000d000000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 87, },
-  { 132, 3, 1, 0x000000e000000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 88, },
-  { 133, 3, 2, 0x000000c048000000ull, 0x000001fff8000000ull, { 17, 18, 32, 0, 0 }, 0x0, 89, },
-  { 133, 3, 2, 0x000000d048000000ull, 0x000001fff8000000ull, { 17, 18, 32, 5, 0 }, 0x400, 90, },
-  { 134, 3, 2, 0x000000c0c8000000ull, 0x000001fff8000000ull, { 17, 18, 32, 0, 0 }, 0x0, 91, },
-  { 134, 3, 2, 0x000000d0c8000000ull, 0x000001fff8000000ull, { 17, 18, 32, 5, 0 }, 0x400, 92, },
-  { 135, 3, 2, 0x000000c088000000ull, 0x000001fff8000000ull, { 17, 18, 32, 0, 0 }, 0x0, 93, },
-  { 135, 3, 2, 0x000000d088000000ull, 0x000001fff8000000ull, { 17, 18, 32, 4, 0 }, 0x400, 94, },
-  { 136, 3, 1, 0x000000c080000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 95, },
-  { 136, 3, 1, 0x000000d080000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 96, },
-  { 136, 3, 1, 0x000000e080000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 97, },
-  { 139, 3, 0, 0x000000cb00000000ull, 0x000001fff8000000ull, { 32, 0, 0, 0, 0 }, 0x0, 98, },
-  { 139, 3, 0, 0x000000db00000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x400, 99, },
-  { 139, 3, 0, 0x000000eb00000000ull, 0x000001eff0000000ull, { 32, 61, 0, 0, 0 }, 0x400, 100, },
-  { 140, 3, 0, 0x0000000050000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 101, },
-  { 148, 3, 0, 0x0000000110000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 102, },
-  { 149, 2, 1, 0x000000e880000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 1820, },
-  { 150, 2, 1, 0x000000ea80000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 1821, },
-  { 151, 2, 1, 0x000000f880000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 1822, },
-  { 152, 1, 1, 0x0000010800000000ull, 0x000001fff80fe000ull, { 23, 25, 0, 0, 0 }, 0x0, 103, },
-  { 152, 1, 1, 0x0000010800000000ull, 0x000001ee07f00000ull, { 23, 62, 0, 0, 0 }, 0x40, 104, },
-  { 152, 1, 1, 0x0000012000000000ull, 0x000001e000300000ull, { 23, 65, 0, 0, 0 }, 0x40, 105, },
-  { 152, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 17, 19, 0, 0, 0 }, 0xc0, 106, },
-  { 152, 2, 1, 0x0000000e00100000ull, 0x000001ee00f00000ull, { 14, 24, 0, 0, 0 }, 0x40, 107, },
-  { 152, 2, 1, 0x0000000e00000000ull, 0x000001ee00f00000ull, { 14, 24, 77, 0, 0 }, 0x0, 2368, },
-  { 152, 2, 1, 0x0000000188000000ull, 0x000001eff8000000ull, { 23, 15, 0, 0, 0 }, 0x0, 109, },
-  { 152, 2, 1, 0x0000000600000000ull, 0x000001ee00000000ull, { 8, 24, 63, 0, 0 }, 0x0, 110, },
-  { 152, 2, 1, 0x0000000400000000ull, 0x000001ee00000000ull, { 9, 67, 0, 0, 0 }, 0x0, 111, },
-  { 152, 2, 1, 0x0000000180000000ull, 0x000001eff8000000ull, { 23, 7, 0, 0, 0 }, 0x0, 112, },
-  { 152, 2, 1, 0x0000000198000000ull, 0x000001eff8000000ull, { 23, 8, 0, 0, 0 }, 0x0, 113, },
-  { 152, 2, 1, 0x0000000150000000ull, 0x000001eff8000000ull, { 13, 24, 0, 0, 0 }, 0x0, 953, },
-  { 152, 2, 1, 0x0000000050000000ull, 0x000001eff8000000ull, { 13, 54, 0, 0, 0 }, 0x0, 954, },
-  { 152, 2, 1, 0x0000000190000000ull, 0x000001eff8000000ull, { 23, 13, 0, 0, 0 }, 0x0, 955, },
-  { 152, 3, 1, 0x0000000140000000ull, 0x000001eff8000000ull, { 13, 54, 0, 0, 0 }, 0x0, 1041, },
-  { 152, 3, 1, 0x0000002150000000ull, 0x000001eff8000000ull, { 13, 24, 0, 0, 0 }, 0x0, 1042, },
-  { 152, 3, 1, 0x0000002110000000ull, 0x000001eff8000000ull, { 23, 13, 0, 0, 0 }, 0x0, 1043, },
-  { 152, 3, 1, 0x0000002160000000ull, 0x000001eff8000000ull, { 16, 24, 0, 0, 0 }, 0x8, 114, },
-  { 152, 3, 1, 0x0000002120000000ull, 0x000001eff8000000ull, { 23, 16, 0, 0, 0 }, 0x8, 115, },
-  { 152, 3, 1, 0x0000002168000000ull, 0x000001eff8000000ull, { 11, 24, 0, 0, 0 }, 0x8, 116, },
-  { 152, 3, 1, 0x0000002148000000ull, 0x000001eff8000000ull, { 12, 24, 0, 0, 0 }, 0x0, 117, },
-  { 152, 3, 1, 0x0000002128000000ull, 0x000001eff8000000ull, { 23, 10, 0, 0, 0 }, 0x8, 118, },
-  { 152, 3, 1, 0x0000002108000000ull, 0x000001eff8000000ull, { 23, 12, 0, 0, 0 }, 0x0, 119, },
-  { 152, 3, 1, 0x0000002000000000ull, 0x000001eff8000000ull, { 37, 24, 0, 0, 0 }, 0x8, 120, },
-  { 152, 3, 1, 0x0000002008000000ull, 0x000001eff8000000ull, { 28, 24, 0, 0, 0 }, 0x8, 121, },
-  { 152, 3, 1, 0x0000002010000000ull, 0x000001eff8000000ull, { 31, 24, 0, 0, 0 }, 0x8, 122, },
-  { 152, 3, 1, 0x0000002018000000ull, 0x000001eff8000000ull, { 34, 24, 0, 0, 0 }, 0x8, 123, },
-  { 152, 3, 1, 0x0000002020000000ull, 0x000001eff8000000ull, { 35, 24, 0, 0, 0 }, 0x8, 124, },
-  { 152, 3, 1, 0x0000002028000000ull, 0x000001eff8000000ull, { 36, 24, 0, 0, 0 }, 0x8, 125, },
-  { 152, 3, 1, 0x0000002030000000ull, 0x000001eff8000000ull, { 33, 24, 0, 0, 0 }, 0x8, 126, },
-  { 152, 3, 1, 0x0000002080000000ull, 0x000001eff8000000ull, { 23, 37, 0, 0, 0 }, 0x8, 127, },
-  { 152, 3, 1, 0x0000002088000000ull, 0x000001eff8000000ull, { 23, 28, 0, 0, 0 }, 0x8, 128, },
-  { 152, 3, 1, 0x0000002090000000ull, 0x000001eff8000000ull, { 23, 31, 0, 0, 0 }, 0x8, 129, },
-  { 152, 3, 1, 0x0000002098000000ull, 0x000001eff8000000ull, { 23, 34, 0, 0, 0 }, 0x8, 130, },
-  { 152, 3, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 23, 35, 0, 0, 0 }, 0x8, 131, },
-  { 152, 3, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 23, 36, 0, 0, 0 }, 0x0, 132, },
-  { 152, 3, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 23, 33, 0, 0, 0 }, 0x8, 133, },
-  { 152, 3, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 23, 27, 0, 0, 0 }, 0x0, 134, },
-  { 152, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 23, 13, 0, 0, 0 }, 0x0, 135, },
-  { 152, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 13, 54, 0, 0, 0 }, 0x0, 136, },
-  { 152, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 13, 24, 0, 0, 0 }, 0x0, 137, },
-  { 153, 6, 1, 0x000000c000000000ull, 0x000001e000100000ull, { 23, 69, 0, 0, 0 }, 0x0, 138, },
-  { 154, 2, 1, 0x000000eca0000000ull, 0x000001fff0000000ull, { 23, 24, 73, 0, 0 }, 0x0, 139, },
-  { 155, 2, 1, 0x000000eea0000000ull, 0x000001fff0000000ull, { 23, 24, 74, 0, 0 }, 0x0, 140, },
-  { 165, 4, 0, 0x0000004000000000ull, 0x000001e1f8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 394, },
-  { 165, 5, 0, 0x0000000008000000ull, 0x000001e3f8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 807, },
-  { 165, 2, 0, 0x0000000008000000ull, 0x000001eff8000000ull, { 64, 0, 0, 0, 0 }, 0x2, 956, },
-  { 165, 3, 0, 0x0000000008000000ull, 0x000001eff8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 1044, },
-  { 165, 6, 0, 0x0000000008000000ull, 0x000001eff8000000ull, { 68, 0, 0, 0, 0 }, 0x0, 2484, },
-  { 165, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 64, 0, 0, 0, 0 }, 0x0, 141, },
-  { 172, 1, 1, 0x0000010070000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 142, },
-  { 172, 1, 1, 0x0000010170000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 143, },
-  { 175, 2, 1, 0x000000ea00000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 2467, },
-  { 176, 2, 1, 0x000000f820000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 2370, },
-  { 177, 1, 1, 0x0000010400000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 144, },
-  { 178, 1, 1, 0x0000010600000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 145, },
-  { 179, 1, 1, 0x0000011400000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 146, },
-  { 180, 1, 1, 0x0000010450000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 147, },
-  { 181, 1, 1, 0x0000010650000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 148, },
-  { 182, 1, 1, 0x0000010470000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 149, },
-  { 183, 1, 1, 0x0000010670000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 150, },
-  { 184, 1, 1, 0x0000010520000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 794, },
-  { 185, 1, 1, 0x0000010720000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 795, },
-  { 186, 1, 1, 0x0000011520000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 796, },
-  { 187, 2, 1, 0x000000e850000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 2384, },
-  { 188, 2, 1, 0x000000ea70000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 151, },
-  { 189, 2, 1, 0x000000e810000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 2385, },
-  { 190, 2, 1, 0x000000ea30000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 152, },
-  { 191, 2, 1, 0x000000ead0000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 1823, },
-  { 192, 2, 1, 0x000000e230000000ull, 0x000001ff30000000ull, { 23, 24, 25, 41, 0 }, 0x0, 153, },
-  { 193, 2, 1, 0x000000e690000000ull, 0x000001fff0000000ull, { 23, 25, 0, 0, 0 }, 0x0, 154, },
-  { 195, 3, 1, 0x00000021c0000000ull, 0x000001eff8000000ull, { 23, 25, 24, 0, 0 }, 0x0, 1824, },
-  { 195, 3, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 23, 25, 48, 0, 0 }, 0x0, 1825, },
-  { 195, 3, 0, 0x0000002188000000ull, 0x000001eff8000000ull, { 25, 48, 0, 0, 0 }, 0x0, 1847, },
-  { 196, 2, 1, 0x000000e8b0000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 155, },
-  { 197, 2, 1, 0x000000e240000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 156, },
-  { 197, 2, 1, 0x000000ee50000000ull, 0x000001fff0000000ull, { 23, 24, 38, 0, 0 }, 0x0, 157, },
-  { 198, 2, 1, 0x000000f040000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 158, },
-  { 198, 2, 1, 0x000000fc50000000ull, 0x000001fff0000000ull, { 23, 24, 38, 0, 0 }, 0x0, 159, },
-  { 199, 1, 1, 0x0000010680000000ull, 0x000001ffe0000000ull, { 23, 24, 40, 25, 0 }, 0x0, 160, },
-  { 200, 2, 1, 0x000000e220000000ull, 0x000001fff0000000ull, { 23, 25, 24, 0, 0 }, 0x0, 161, },
-  { 200, 2, 1, 0x000000e630000000ull, 0x000001fff0000000ull, { 23, 25, 42, 0, 0 }, 0x0, 162, },
-  { 201, 2, 1, 0x000000f020000000ull, 0x000001fff0000000ull, { 23, 25, 24, 0, 0 }, 0x0, 163, },
-  { 201, 2, 1, 0x000000f430000000ull, 0x000001fff0000000ull, { 23, 25, 42, 0, 0 }, 0x0, 164, },
-  { 202, 1, 1, 0x00000106c0000000ull, 0x000001ffe0000000ull, { 23, 24, 40, 25, 0 }, 0x0, 165, },
-  { 203, 1, 1, 0x0000010420000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 166, },
-  { 204, 1, 1, 0x0000010620000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 167, },
-  { 205, 1, 1, 0x0000011420000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 168, },
-  { 206, 3, 0, 0x0000002048000000ull, 0x000001eff8000000ull, { 25, 24, 0, 0, 0 }, 0x8, 984, },
-  { 206, 3, 0, 0x0000002050000000ull, 0x000001eff8000000ull, { 25, 24, 0, 0, 0 }, 0xc, 895, },
-  { 206, 3, 0, 0x00000021a0000000ull, 0x000001eff8000000ull, { 25, 0, 0, 0, 0 }, 0x8, 777, },
-  { 207, 3, 0, 0x0000002060000000ull, 0x000001eff8000000ull, { 25, 24, 0, 0, 0 }, 0x8, 703, },
-  { 212, 4, 0, 0x0000000040000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x22c, 169, },
-  { 213, 3, 0, 0x0000000038000000ull, 0x000001ee78000000ull, { 66, 0, 0, 0, 0 }, 0x8, 170, },
-  { 214, 3, 0, 0x0000000028000000ull, 0x000001ee78000000ull, { 66, 0, 0, 0, 0 }, 0x0, 171, },
-  { 223, 3, 1, 0x000000c708000000ull, 0x000001ffc8000000ull, { 17, 24, 0, 0, 0 }, 0x0, 2295, },
-  { 224, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 23, 24, 44, 0, 0 }, 0x140, 172, },
-  { 224, 2, 1, 0x000000f240000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 173, },
-  { 225, 1, 1, 0x0000010080000000ull, 0x000001efe0000000ull, { 23, 24, 39, 25, 0 }, 0x0, 174, },
-  { 226, 1, 1, 0x00000100c0000000ull, 0x000001efe0000000ull, { 23, 24, 39, 25, 0 }, 0x0, 175, },
-  { 227, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 23, 25, 75, 0, 0 }, 0x140, 2391, },
-  { 227, 2, 1, 0x000000f220000000ull, 0x000001fff0000000ull, { 23, 25, 24, 0, 0 }, 0x0, 177, },
-  { 228, 2, 1, 0x000000ac00000000ull, 0x000001ee00000000ull, { 23, 24, 25, 43, 0 }, 0x0, 178, },
-  { 233, 3, 0, 0x0000000180000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 705, },
-  { 234, 3, 0, 0x0000000030000000ull, 0x000001ee78000000ull, { 66, 0, 0, 0, 0 }, 0x8, 179, },
-  { 236, 3, 1, 0x0000008c00000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x0, 180, },
-  { 236, 3, 1, 0x000000ac00000000ull, 0x000001eff0000000ull, { 32, 24, 60, 0, 0 }, 0x400, 181, },
-  { 237, 3, 1, 0x0000008c40000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x0, 182, },
-  { 237, 3, 1, 0x000000ac40000000ull, 0x000001eff0000000ull, { 32, 24, 60, 0, 0 }, 0x400, 183, },
-  { 238, 3, 1, 0x0000008c80000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x0, 184, },
-  { 238, 3, 1, 0x000000ac80000000ull, 0x000001eff0000000ull, { 32, 24, 60, 0, 0 }, 0x400, 185, },
-  { 239, 3, 1, 0x0000008cc0000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x0, 186, },
-  { 239, 3, 1, 0x000000acc0000000ull, 0x000001eff0000000ull, { 32, 24, 60, 0, 0 }, 0x400, 187, },
-  { 240, 3, 1, 0x000000cec0000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 2298, },
-  { 240, 3, 1, 0x000000eec0000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 2299, },
-  { 241, 3, 1, 0x000000cc40000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 188, },
-  { 241, 3, 1, 0x000000ec40000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 189, },
-  { 242, 3, 1, 0x000000ccc0000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 190, },
-  { 242, 3, 1, 0x000000ecc0000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 191, },
-  { 243, 3, 1, 0x000000cc00000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 192, },
-  { 243, 3, 1, 0x000000ec00000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 193, },
-  { 244, 3, 1, 0x000000cc80000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 194, },
-  { 244, 3, 1, 0x000000ec80000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 195, },
-  { 245, 1, 1, 0x0000010028000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 196, },
-  { 245, 1, 1, 0x0000010020000000ull, 0x000001eff8000000ull, { 23, 24, 25, 3, 0 }, 0x0, 197, },
-  { 245, 1, 1, 0x0000010128000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 198, },
-  { 246, 3, 0, 0x0000000020000000ull, 0x000001ee78000000ull, { 66, 0, 0, 0, 0 }, 0x0, 199, },
-  { 247, 2, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 200, },
-  { 248, 2, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 201, },
-  { 249, 2, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 202, },
-  { 250, 3, 0, 0x0000000198000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 959, },
-  { 251, 3, 1, 0x00000020f8000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x8, 203, },
-  { 252, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 21, 22, 25, 75, 0 }, 0x0, 2489, },
-  { 252, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 22, 21, 25, 75, 0 }, 0x40, 1724, },
-  { 253, 3, 1, 0x00000020d0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 204, },
-  { 254, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 21, 22, 25, 0, 0 }, 0x0, 2491, },
-  { 254, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 22, 21, 25, 0, 0 }, 0x40, 1726, },
-  { 255, 3, 1, 0x00000020f0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x8, 205, },
-  { 257, 3, 1, 0x00000020d8000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 206, },
-  { 261, 2, 1, 0x000000e840000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 942, },
-  { 262, 2, 1, 0x000000ea40000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 943, },
-  { 263, 2, 1, 0x000000f840000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 944, },
-  { 271, 3, 1, 0x0000008208000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x0, 207, },
-  { 272, 3, 1, 0x0000008248000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x0, 208, },
-  { 273, 3, 1, 0x0000008288000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x0, 209, },
-  { 274, 3, 1, 0x00000082c8000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x0, 210, },
-  { 276, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 988, },
-  { 276, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 1036, },
-  { 277, 5, 1, 0x000001d000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 989, },
-  { 278, 1, 1, 0x0000010078000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 211, },
-  { 278, 1, 1, 0x0000010178000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 212, },
-  { 281, 2, 1, 0x0000000080000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 213, },
-  { 282, 2, 1, 0x0000000088000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 214, },
-  { 283, 2, 1, 0x0000000090000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 215, },
+  { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x0, 1023, },
+  { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 22, 26, 25, 0 }, 0x0, 999, },
+  { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 23, 26, 25, 0 }, 0x0, 925, },
+  { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x0, 904, },
+  { 26, 1, 2, 0x0000018200000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x40, 1157, },
+  { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x0, 926, },
+  { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 26, 7, 0 }, 0x40, 1025, },
+  { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x40, 1002, },
+  { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x0, 1027, },
+  { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 23, 57, 26, 0 }, 0x0, 1003, },
+  { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 22, 57, 26, 0 }, 0x0, 929, },
+  { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x0, 908, },
+  { 26, 1, 2, 0x0000018a00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x40, 1160, },
+  { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 22, 23, 59, 26, 0 }, 0x0, 1018, },
+  { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 23, 22, 59, 26, 0 }, 0x0, 946, },
+  { 26, 1, 2, 0x000001c200000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x40, 1161, },
+  { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 22, 7, 26, 0 }, 0x40, 1004, },
+  { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 22, 26, 7, 0 }, 0x40, 910, },
+  { 26, 1, 2, 0x000001ca00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x40, 1162, },
+  { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x0, 1030, },
+  { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 22, 26, 25, 0 }, 0x0, 1006, },
+  { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 23, 26, 25, 0 }, 0x0, 932, },
+  { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x0, 911, },
+  { 27, 1, 2, 0x0000018600000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x40, 1165, },
+  { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x0, 933, },
+  { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 26, 7, 0 }, 0x40, 1032, },
+  { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x40, 1009, },
+  { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x0, 1034, },
+  { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 23, 57, 26, 0 }, 0x0, 1010, },
+  { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 22, 57, 26, 0 }, 0x0, 936, },
+  { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x0, 915, },
+  { 27, 1, 2, 0x0000018e00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x40, 1168, },
+  { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 23, 56, 26, 0 }, 0x0, 1044, },
+  { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 23, 58, 26, 0 }, 0x0, 1020, },
+  { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 22, 58, 26, 0 }, 0x0, 948, },
+  { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 22, 56, 26, 0 }, 0x0, 924, },
+  { 27, 1, 2, 0x000001c600000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x40, 1169, },
+  { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 22, 7, 26, 0 }, 0x40, 1011, },
+  { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 22, 26, 7, 0 }, 0x40, 917, },
+  { 27, 1, 2, 0x000001ce00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x40, 1170, },
+  { 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 33, 25, 1, 2 }, 0x0, 254, },
+  { 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 255, },
+  { 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 256, },
+  { 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 257, },
+  { 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 258, },
+  { 34, 4, 0, 0x0000000010000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 18, },
+  { 36, 2, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 985, },
+  { 37, 2, 1, 0x00000000c8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 986, },
+  { 39, 2, 1, 0x0000008000000000ull, 0x000001e000000000ull, { 24, 25, 26, 47, 72 }, 0x0, 19, },
+  { 39, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 24, 25, 45, 73, 0 }, 0x0, 2511, },
+  { 39, 2, 1, 0x000000a604000000ull, 0x000001ee04000000ull, { 24, 55, 45, 73, 0 }, 0x0, 2512, },
+  { 39, 2, 1, 0x000000ae00000000ull, 0x000001ee00000000ull, { 24, 48, 26, 46, 73 }, 0x0, 20, },
+  { 43, 4, 0, 0x0000000080000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x20, 21, },
+  { 48, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 24, 26, 76, 73, 0 }, 0x0, 2406, },
+  { 50, 5, 1, 0x0000000080000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 23, },
+  { 51, 5, 1, 0x0000010008000000ull, 0x000001fff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 1923, },
+  { 52, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1924, },
+  { 52, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 25, },
+  { 53, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1925, },
+  { 53, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 26, },
+  { 54, 5, 1, 0x0000000160000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 27, },
+  { 55, 5, 1, 0x0000000168000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 28, },
+  { 57, 3, 0, 0x0000002180000000ull, 0x000001fff8000000ull, { 26, 0, 0, 0, 0 }, 0x0, 29, },
+  { 58, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 79, 0, 0, 0, 0 }, 0x0, 1926, },
+  { 58, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 79, 0, 0, 0, 0 }, 0x40, 30, },
+  { 59, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 22, 23, 19, 60, 0 }, 0x0, 1049, },
+  { 59, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 23, 22, 19, 60, 0 }, 0x40, 1190, },
+  { 60, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 1927, },
+  { 60, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x40, 31, },
+  { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 23, 19, 20, 0 }, 0x0, 796, },
+  { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 23, 19, 20, 0 }, 0x40, 797, },
+  { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 23, 20, 19, 0 }, 0x0, 939, },
+  { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 23, 20, 19, 0 }, 0x40, 940, },
+  { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 22, 19, 20, 0 }, 0x0, 1171, },
+  { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 22, 19, 20, 0 }, 0x40, 1172, },
+  { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 22, 20, 19, 0 }, 0x0, 1178, },
+  { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 22, 20, 19, 0 }, 0x40, 1179, },
+  { 62, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 894, },
+  { 62, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x40, 895, },
+  { 62, 5, 1, 0x00000000e0000000ull, 0x000001e3f8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 2509, },
+  { 62, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 2510, },
+  { 63, 3, 1, 0x0000008488000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 259, },
+  { 64, 3, 1, 0x00000084c8000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 260, },
+  { 67, 3, 0, 0x0000000060000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 32, },
+  { 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1961, },
+  { 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 33, },
+  { 69, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1962, },
+  { 69, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 34, },
+  { 70, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1879, },
+  { 71, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1963, },
+  { 71, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 35, },
+  { 72, 5, 1, 0x00000001c8000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1022, },
+  { 73, 5, 1, 0x0000010000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 1966, },
+  { 74, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1969, },
+  { 74, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 37, },
+  { 75, 5, 1, 0x0000000088000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 38, },
+  { 76, 5, 1, 0x0000000088000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 39, },
+  { 77, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1972, },
+  { 77, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 40, },
+  { 78, 5, 1, 0x0000018000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 1975, },
+  { 79, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 1978, },
+  { 80, 5, 1, 0x0000000170000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 43, },
+  { 81, 5, 1, 0x0000002080000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 44, },
+  { 82, 5, 1, 0x0000000140000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 45, },
+  { 83, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1979, },
+  { 83, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 46, },
+  { 84, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1980, },
+  { 84, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 47, },
+  { 85, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 798, },
+  { 85, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 799, },
+  { 85, 5, 1, 0x0000002188000000ull, 0x000001eff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 941, },
+  { 86, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 896, },
+  { 86, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x40, 897, },
+  { 87, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1997, },
+  { 87, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 48, },
+  { 88, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1998, },
+  { 88, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 49, },
+  { 89, 5, 1, 0x0000002080000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1887, },
+  { 90, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1999, },
+  { 90, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 50, },
+  { 91, 5, 1, 0x0000013000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2000, },
+  { 92, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2001, },
+  { 92, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 52, },
+  { 93, 5, 1, 0x0000002088000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 53, },
+  { 94, 5, 1, 0x0000002088000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 54, },
+  { 95, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2002, },
+  { 95, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 55, },
+  { 96, 5, 1, 0x000001b000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2003, },
+  { 97, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x0, 2004, },
+  { 97, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x40, 57, },
+  { 98, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x0, 2005, },
+  { 98, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x40, 58, },
+  { 99, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x0, 2006, },
+  { 99, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x40, 59, },
+  { 100, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x0, 2007, },
+  { 100, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x40, 60, },
+  { 101, 5, 1, 0x000001c000000000ull, 0x000001f000000000ull, { 18, 20, 21, 19, 0 }, 0x0, 61, },
+  { 102, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 50, 51, 0, 0, 0 }, 0x0, 2008, },
+  { 102, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 50, 51, 0, 0, 0 }, 0x40, 62, },
+  { 103, 5, 1, 0x0000014008000000ull, 0x000001fff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 2011, },
+  { 104, 5, 1, 0x00000001a0000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 64, },
+  { 105, 5, 1, 0x00000001e0000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1840, },
+  { 106, 3, 0, 0x0000000100000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 65, },
+  { 108, 5, 1, 0x0000000178000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 66, },
+  { 113, 3, 1, 0x0000008708000000ull, 0x000001ffc8000000ull, { 24, 19, 0, 0, 0 }, 0x0, 2317, },
+  { 118, 4, 0, 0x0000004008000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 399, },
+  { 118, 5, 0, 0x000000000c000000ull, 0x000001e3fc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 813, },
+  { 118, 2, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x2, 959, },
+  { 118, 3, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1050, },
+  { 118, 6, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2507, },
+  { 118, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 67, },
+  { 123, 3, 0, 0x0000000080000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 68, },
+  { 123, 3, 0, 0x0000000090000000ull, 0x000001eff8000000ull, { 24, 0, 0, 0, 0 }, 0x0, 781, },
+  { 123, 3, 0, 0x0000000098000000ull, 0x000001eff8000000ull, { 18, 0, 0, 0, 0 }, 0x0, 782, },
+  { 124, 3, 0, 0x0000002170000000ull, 0x000001eff8000000ull, { 25, 0, 0, 0, 0 }, 0xc, 707, },
+  { 125, 3, 1, 0x0000002070000000ull, 0x000001eff8000000ull, { 30, 25, 0, 0, 0 }, 0x8, 708, },
+  { 125, 3, 1, 0x0000002078000000ull, 0x000001eff8000000ull, { 31, 25, 0, 0, 0 }, 0x8, 961, },
+  { 127, 3, 1, 0x0000008000000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 69, },
+  { 127, 3, 1, 0x0000009000000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 70, },
+  { 127, 3, 1, 0x000000a000000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 71, },
+  { 128, 3, 2, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 1, 33, 0, 0 }, 0x0, 72, },
+  { 129, 3, 1, 0x0000008040000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 73, },
+  { 129, 3, 1, 0x0000009040000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 74, },
+  { 129, 3, 1, 0x000000a040000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 75, },
+  { 130, 3, 1, 0x0000008080000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 76, },
+  { 130, 3, 1, 0x0000009080000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 77, },
+  { 130, 3, 1, 0x000000a080000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 78, },
+  { 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 79, },
+  { 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 83, 0, 0 }, 0x0, 1122, },
+  { 131, 3, 1, 0x00000090c0000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 80, },
+  { 131, 3, 1, 0x000000a0c0000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 81, },
+  { 132, 3, 1, 0x000000c6c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 891, },
+  { 132, 3, 1, 0x000000d6c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 892, },
+  { 132, 3, 1, 0x000000e6c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 893, },
+  { 133, 3, 1, 0x000000c040000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 82, },
+  { 133, 3, 1, 0x000000d040000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 83, },
+  { 133, 3, 1, 0x000000e040000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 84, },
+  { 134, 3, 1, 0x000000c0c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 85, },
+  { 134, 3, 1, 0x000000d0c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 86, },
+  { 134, 3, 1, 0x000000e0c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 87, },
+  { 135, 3, 1, 0x000000c000000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 88, },
+  { 135, 3, 1, 0x000000d000000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 89, },
+  { 135, 3, 1, 0x000000e000000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 90, },
+  { 136, 3, 2, 0x000000c048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 91, },
+  { 136, 3, 2, 0x000000d048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 92, },
+  { 137, 3, 2, 0x000000c0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 93, },
+  { 137, 3, 2, 0x000000d0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 94, },
+  { 138, 3, 2, 0x000000c088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 95, },
+  { 138, 3, 2, 0x000000d088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 5, 0 }, 0x400, 96, },
+  { 139, 3, 1, 0x000000c080000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 97, },
+  { 139, 3, 1, 0x000000d080000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 98, },
+  { 139, 3, 1, 0x000000e080000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 99, },
+  { 142, 3, 0, 0x000000cb00000000ull, 0x000001fff8000000ull, { 33, 0, 0, 0, 0 }, 0x0, 100, },
+  { 142, 3, 0, 0x000000db00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x400, 101, },
+  { 142, 3, 0, 0x000000eb00000000ull, 0x000001eff0000000ull, { 33, 62, 0, 0, 0 }, 0x400, 102, },
+  { 143, 3, 0, 0x0000000050000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 103, },
+  { 151, 3, 0, 0x0000000110000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 104, },
+  { 152, 2, 1, 0x000000e880000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1841, },
+  { 153, 2, 1, 0x000000ea80000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1842, },
+  { 154, 2, 1, 0x000000f880000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1843, },
+  { 155, 1, 1, 0x0000010800000000ull, 0x000001fff80fe000ull, { 24, 26, 0, 0, 0 }, 0x0, 105, },
+  { 155, 1, 1, 0x0000010800000000ull, 0x000001ee07f00000ull, { 24, 63, 0, 0, 0 }, 0x40, 106, },
+  { 155, 1, 1, 0x0000012000000000ull, 0x000001e000300000ull, { 24, 66, 0, 0, 0 }, 0x40, 107, },
+  { 155, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 108, },
+  { 155, 2, 1, 0x0000000e00100000ull, 0x000001ee00f00000ull, { 15, 25, 0, 0, 0 }, 0x40, 109, },
+  { 155, 2, 1, 0x0000000e00000000ull, 0x000001ee00f00000ull, { 15, 25, 78, 0, 0 }, 0x0, 2391, },
+  { 155, 2, 1, 0x0000000188000000ull, 0x000001eff8000000ull, { 24, 16, 0, 0, 0 }, 0x0, 111, },
+  { 155, 2, 1, 0x0000000600000000ull, 0x000001ee00000000ull, { 9, 25, 64, 0, 0 }, 0x0, 112, },
+  { 155, 2, 1, 0x0000000400000000ull, 0x000001ee00000000ull, { 10, 68, 0, 0, 0 }, 0x0, 113, },
+  { 155, 2, 1, 0x0000000180000000ull, 0x000001eff8000000ull, { 24, 8, 0, 0, 0 }, 0x0, 114, },
+  { 155, 2, 1, 0x0000000198000000ull, 0x000001eff8000000ull, { 24, 9, 0, 0, 0 }, 0x0, 115, },
+  { 155, 2, 1, 0x0000000150000000ull, 0x000001eff8000000ull, { 14, 25, 0, 0, 0 }, 0x0, 962, },
+  { 155, 2, 1, 0x0000000050000000ull, 0x000001eff8000000ull, { 14, 55, 0, 0, 0 }, 0x0, 963, },
+  { 155, 2, 1, 0x0000000190000000ull, 0x000001eff8000000ull, { 24, 14, 0, 0, 0 }, 0x0, 964, },
+  { 155, 3, 1, 0x0000000140000000ull, 0x000001eff8000000ull, { 14, 55, 0, 0, 0 }, 0x0, 1051, },
+  { 155, 3, 1, 0x0000002150000000ull, 0x000001eff8000000ull, { 14, 25, 0, 0, 0 }, 0x0, 1052, },
+  { 155, 3, 1, 0x0000002110000000ull, 0x000001eff8000000ull, { 24, 14, 0, 0, 0 }, 0x0, 1053, },
+  { 155, 3, 1, 0x0000002160000000ull, 0x000001eff8000000ull, { 17, 25, 0, 0, 0 }, 0x8, 116, },
+  { 155, 3, 1, 0x0000002120000000ull, 0x000001eff8000000ull, { 24, 17, 0, 0, 0 }, 0x8, 117, },
+  { 155, 3, 1, 0x0000002168000000ull, 0x000001eff8000000ull, { 12, 25, 0, 0, 0 }, 0x8, 118, },
+  { 155, 3, 1, 0x0000002148000000ull, 0x000001eff8000000ull, { 13, 25, 0, 0, 0 }, 0x0, 119, },
+  { 155, 3, 1, 0x0000002128000000ull, 0x000001eff8000000ull, { 24, 11, 0, 0, 0 }, 0x8, 120, },
+  { 155, 3, 1, 0x0000002108000000ull, 0x000001eff8000000ull, { 24, 13, 0, 0, 0 }, 0x0, 121, },
+  { 155, 3, 1, 0x0000002000000000ull, 0x000001eff8000000ull, { 38, 25, 0, 0, 0 }, 0x8, 122, },
+  { 155, 3, 1, 0x0000002008000000ull, 0x000001eff8000000ull, { 29, 25, 0, 0, 0 }, 0x8, 123, },
+  { 155, 3, 1, 0x0000002010000000ull, 0x000001eff8000000ull, { 32, 25, 0, 0, 0 }, 0x8, 124, },
+  { 155, 3, 1, 0x0000002018000000ull, 0x000001eff8000000ull, { 35, 25, 0, 0, 0 }, 0x8, 125, },
+  { 155, 3, 1, 0x0000002020000000ull, 0x000001eff8000000ull, { 36, 25, 0, 0, 0 }, 0x8, 126, },
+  { 155, 3, 1, 0x0000002028000000ull, 0x000001eff8000000ull, { 37, 25, 0, 0, 0 }, 0x8, 127, },
+  { 155, 3, 1, 0x0000002030000000ull, 0x000001eff8000000ull, { 34, 25, 0, 0, 0 }, 0x8, 128, },
+  { 155, 3, 1, 0x0000002080000000ull, 0x000001eff8000000ull, { 24, 38, 0, 0, 0 }, 0x8, 129, },
+  { 155, 3, 1, 0x0000002088000000ull, 0x000001eff8000000ull, { 24, 29, 0, 0, 0 }, 0x8, 130, },
+  { 155, 3, 1, 0x0000002090000000ull, 0x000001eff8000000ull, { 24, 32, 0, 0, 0 }, 0x8, 131, },
+  { 155, 3, 1, 0x0000002098000000ull, 0x000001eff8000000ull, { 24, 35, 0, 0, 0 }, 0x8, 132, },
+  { 155, 3, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 24, 36, 0, 0, 0 }, 0x8, 133, },
+  { 155, 3, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 24, 37, 0, 0, 0 }, 0x0, 134, },
+  { 155, 3, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 24, 34, 0, 0, 0 }, 0x8, 135, },
+  { 155, 3, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 24, 28, 0, 0, 0 }, 0x0, 136, },
+  { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 14, 0, 0, 0 }, 0x0, 137, },
+  { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 55, 0, 0, 0 }, 0x0, 138, },
+  { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 25, 0, 0, 0 }, 0x0, 139, },
+  { 156, 6, 1, 0x000000c000000000ull, 0x000001e000100000ull, { 24, 70, 0, 0, 0 }, 0x0, 140, },
+  { 157, 2, 1, 0x000000eca0000000ull, 0x000001fff0000000ull, { 24, 25, 74, 0, 0 }, 0x0, 141, },
+  { 158, 2, 1, 0x000000eea0000000ull, 0x000001fff0000000ull, { 24, 25, 75, 0, 0 }, 0x0, 142, },
+  { 168, 4, 0, 0x0000004000000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 400, },
+  { 168, 5, 0, 0x0000000008000000ull, 0x000001e3fc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 814, },
+  { 168, 2, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x2, 965, },
+  { 168, 3, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1054, },
+  { 168, 6, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2508, },
+  { 168, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 143, },
+  { 175, 1, 1, 0x0000010070000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 144, },
+  { 175, 1, 1, 0x0000010170000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 145, },
+  { 178, 2, 1, 0x000000ea00000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2490, },
+  { 179, 2, 1, 0x000000f820000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2393, },
+  { 180, 1, 1, 0x0000010400000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 146, },
+  { 181, 1, 1, 0x0000010600000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 147, },
+  { 182, 1, 1, 0x0000011400000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 148, },
+  { 183, 1, 1, 0x0000010450000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 149, },
+  { 184, 1, 1, 0x0000010650000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 150, },
+  { 185, 1, 1, 0x0000010470000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 151, },
+  { 186, 1, 1, 0x0000010670000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 152, },
+  { 187, 1, 1, 0x0000010520000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 800, },
+  { 188, 1, 1, 0x0000010720000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 801, },
+  { 189, 1, 1, 0x0000011520000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 802, },
+  { 190, 2, 1, 0x000000e850000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2407, },
+  { 191, 2, 1, 0x000000ea70000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 153, },
+  { 192, 2, 1, 0x000000e810000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2408, },
+  { 193, 2, 1, 0x000000ea30000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 154, },
+  { 194, 2, 1, 0x000000ead0000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1844, },
+  { 195, 2, 1, 0x000000e230000000ull, 0x000001ff30000000ull, { 24, 25, 26, 42, 0 }, 0x0, 155, },
+  { 196, 2, 1, 0x000000e690000000ull, 0x000001fff0000000ull, { 24, 26, 0, 0, 0 }, 0x0, 156, },
+  { 198, 3, 1, 0x00000021c0000000ull, 0x000001eff8000000ull, { 24, 26, 25, 0, 0 }, 0x0, 1845, },
+  { 198, 3, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 24, 26, 49, 0, 0 }, 0x0, 1846, },
+  { 198, 3, 0, 0x0000002188000000ull, 0x000001eff8000000ull, { 26, 49, 0, 0, 0 }, 0x0, 1870, },
+  { 199, 2, 1, 0x000000e8b0000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 157, },
+  { 200, 2, 1, 0x000000e240000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 158, },
+  { 200, 2, 1, 0x000000ee50000000ull, 0x000001fff0000000ull, { 24, 25, 39, 0, 0 }, 0x0, 159, },
+  { 201, 2, 1, 0x000000f040000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 160, },
+  { 201, 2, 1, 0x000000fc50000000ull, 0x000001fff0000000ull, { 24, 25, 39, 0, 0 }, 0x0, 161, },
+  { 202, 1, 1, 0x0000010680000000ull, 0x000001ffe0000000ull, { 24, 25, 41, 26, 0 }, 0x0, 162, },
+  { 203, 2, 1, 0x000000e220000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 163, },
+  { 203, 2, 1, 0x000000e630000000ull, 0x000001fff0000000ull, { 24, 26, 43, 0, 0 }, 0x0, 164, },
+  { 204, 2, 1, 0x000000f020000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 165, },
+  { 204, 2, 1, 0x000000f430000000ull, 0x000001fff0000000ull, { 24, 26, 43, 0, 0 }, 0x0, 166, },
+  { 205, 1, 1, 0x00000106c0000000ull, 0x000001ffe0000000ull, { 24, 25, 41, 26, 0 }, 0x0, 167, },
+  { 206, 1, 1, 0x0000010420000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 168, },
+  { 207, 1, 1, 0x0000010620000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 169, },
+  { 208, 1, 1, 0x0000011420000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 170, },
+  { 209, 3, 0, 0x0000002048000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0x8, 993, },
+  { 209, 3, 0, 0x0000002050000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0xc, 902, },
+  { 209, 3, 0, 0x00000021a0000000ull, 0x000001eff8000000ull, { 26, 0, 0, 0, 0 }, 0x8, 783, },
+  { 210, 3, 0, 0x0000002060000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0x8, 709, },
+  { 215, 4, 0, 0x0000000040000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x22c, 171, },
+  { 216, 3, 0, 0x0000000038000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x8, 172, },
+  { 217, 3, 0, 0x0000000028000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x0, 173, },
+  { 226, 3, 1, 0x000000c708000000ull, 0x000001ffc8000000ull, { 18, 25, 0, 0, 0 }, 0x0, 2318, },
+  { 227, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 24, 25, 45, 0, 0 }, 0x140, 174, },
+  { 227, 2, 1, 0x000000f240000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 175, },
+  { 228, 1, 1, 0x0000010080000000ull, 0x000001efe0000000ull, { 24, 25, 40, 26, 0 }, 0x0, 176, },
+  { 229, 1, 1, 0x00000100c0000000ull, 0x000001efe0000000ull, { 24, 25, 40, 26, 0 }, 0x0, 177, },
+  { 230, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 24, 26, 76, 0, 0 }, 0x140, 2414, },
+  { 230, 2, 1, 0x000000f220000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 179, },
+  { 231, 2, 1, 0x000000ac00000000ull, 0x000001ee00000000ull, { 24, 25, 26, 44, 0 }, 0x0, 180, },
+  { 236, 3, 0, 0x0000000180000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 711, },
+  { 237, 3, 0, 0x0000000030000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x8, 181, },
+  { 239, 3, 1, 0x0000008c00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 182, },
+  { 239, 3, 1, 0x000000ac00000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 183, },
+  { 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 33, 25, 1, 0, 0 }, 0x0, 184, },
+  { 241, 3, 1, 0x0000008c40000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 185, },
+  { 241, 3, 1, 0x000000ac40000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 186, },
+  { 242, 3, 1, 0x0000008c80000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 187, },
+  { 242, 3, 1, 0x000000ac80000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 188, },
+  { 243, 3, 1, 0x0000008cc0000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 189, },
+  { 243, 3, 1, 0x000000acc0000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 190, },
+  { 244, 3, 1, 0x000000cec0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 2321, },
+  { 244, 3, 1, 0x000000eec0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 2322, },
+  { 245, 3, 1, 0x000000cc40000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 191, },
+  { 245, 3, 1, 0x000000ec40000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 192, },
+  { 246, 3, 1, 0x000000ccc0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 193, },
+  { 246, 3, 1, 0x000000ecc0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 194, },
+  { 247, 3, 1, 0x000000cc00000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 195, },
+  { 247, 3, 1, 0x000000ec00000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 196, },
+  { 248, 3, 1, 0x000000cc80000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 197, },
+  { 248, 3, 1, 0x000000ec80000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 198, },
+  { 249, 1, 1, 0x0000010028000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 199, },
+  { 249, 1, 1, 0x0000010020000000ull, 0x000001eff8000000ull, { 24, 25, 26, 4, 0 }, 0x0, 200, },
+  { 249, 1, 1, 0x0000010128000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 201, },
+  { 250, 3, 0, 0x0000000020000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x0, 202, },
+  { 251, 2, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 203, },
+  { 252, 2, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 204, },
+  { 253, 2, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 205, },
+  { 254, 3, 0, 0x0000000198000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 968, },
+  { 255, 3, 1, 0x00000020f8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x8, 206, },
+  { 256, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 22, 23, 26, 76, 0 }, 0x0, 2513, },
+  { 256, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 23, 22, 26, 76, 0 }, 0x40, 1745, },
+  { 257, 3, 1, 0x00000020d0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 207, },
+  { 258, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 22, 23, 26, 0, 0 }, 0x0, 2515, },
+  { 258, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 23, 22, 26, 0, 0 }, 0x40, 1747, },
+  { 259, 3, 1, 0x00000020f0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x8, 208, },
+  { 261, 3, 1, 0x00000020d8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 209, },
+  { 265, 2, 1, 0x000000e840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 949, },
+  { 266, 2, 1, 0x000000ea40000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 950, },
+  { 267, 2, 1, 0x000000f840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 951, },
+  { 275, 3, 1, 0x0000008208000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 210, },
+  { 276, 3, 1, 0x0000008248000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 211, },
+  { 277, 3, 1, 0x0000008288000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 212, },
+  { 278, 3, 1, 0x00000082c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 213, },
+  { 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 997, },
+  { 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 1045, },
+  { 281, 5, 1, 0x000001d000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 998, },
+  { 282, 1, 1, 0x0000010078000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 214, },
+  { 282, 1, 1, 0x0000010178000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 215, },
+  { 285, 2, 1, 0x0000000080000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 216, },
+  { 286, 2, 1, 0x0000000088000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 217, },
+  { 287, 2, 1, 0x0000000090000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 218, },
 };
 
 static const char dis_table[] = {
-0xa0, 0xc2, 0xa0, 0xa0, 0x2c, 0xc0, 0xa0, 0x2a, 0xc0, 0xa0, 0x1a, 0x70, 
-0x98, 0xb0, 0x01, 0x40, 0x90, 0x50, 0x90, 0x28, 0x24, 0x31, 0x48, 0x24, 
-0x31, 0x40, 0x90, 0x28, 0x24, 0x31, 0x38, 0x24, 0x31, 0x30, 0x90, 0x50, 
-0x90, 0x28, 0x24, 0x31, 0x20, 0x24, 0x31, 0x18, 0x90, 0x28, 0x24, 0x31, 
-0x10, 0x24, 0x31, 0x08, 0xa8, 0x0b, 0x28, 0x15, 0x00, 0x97, 0x00, 0x95, 
-0xa8, 0x9a, 0x98, 0x05, 0x18, 0x90, 0xf8, 0x90, 0x80, 0x90, 0x40, 0x80, 
-0xa4, 0x21, 0x18, 0x34, 0x26, 0x80, 0xa4, 0x2e, 0xc0, 0x35, 0xdd, 0x90, 
-0x50, 0x90, 0x28, 0x80, 0x35, 0xd3, 0x80, 0x34, 0x0a, 0x81, 0x33, 0xa6, 
-0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x20, 0x30, 0x34, 0x07, 0xa4, 
-0x1d, 0x28, 0x34, 0x04, 0x90, 0x38, 0xa4, 0x30, 0xc0, 0x36, 0x1e, 0xa4, 
-0x30, 0x68, 0x36, 0x12, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x2f, 0x40, 0x35, 
-0xf3, 0xa4, 0x2f, 0x18, 0x35, 0xee, 0x80, 0xa4, 0x20, 0x10, 0x34, 0x03, 
-0x92, 0x18, 0x91, 0xc0, 0x80, 0x91, 0x80, 0x90, 0xf8, 0xdb, 0x84, 0x60, 
-0xea, 0x40, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x70, 0x8c, 0x3b, 0xd0, 0x84, 
-0x37, 0x84, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x60, 0x8c, 0x3b, 0xb0, 0x84, 
-0x37, 0x82, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x36, 0x50, 
-0xc0, 0xc0, 0x81, 0x37, 0x34, 0xa4, 0x1d, 0x38, 0x33, 0xa8, 0x80, 0x90, 
-0x28, 0x80, 0x33, 0xa4, 0x80, 0x34, 0x0c, 0x81, 0x90, 0x38, 0xa4, 0x20, 
-0x98, 0x34, 0x0f, 0xa4, 0x20, 0x68, 0x34, 0x09, 0xc0, 0x40, 0x10, 0x10, 
-0x90, 0x38, 0xa4, 0x1d, 0x10, 0x33, 0xa3, 0xa4, 0x1d, 0x00, 0x33, 0xa1, 
-0x18, 0x24, 0x21, 0x10, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 
-0x80, 0xa4, 0x3a, 0x40, 0x37, 0x6e, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x30, 
-0x37, 0x6a, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x30, 0x50, 
-0xc0, 0xc0, 0x81, 0x37, 0x2e, 0x92, 0xb8, 0x99, 0x84, 0x20, 0x88, 0x90, 
-0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x2e, 0xb8, 0x35, 0xdc, 0x82, 
-0x35, 0xd2, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x30, 0xb8, 0x36, 
-0x1d, 0xa4, 0x30, 0x60, 0x36, 0x11, 0x80, 0x90, 0x38, 0xa4, 0x2f, 0x38, 
-0x35, 0xf2, 0xa4, 0x2f, 0x10, 0x35, 0xed, 0x83, 0x90, 0xa8, 0xd3, 0x82, 
-0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x10, 0x37, 0x62, 0xc0, 0xc0, 0x80, 
-0xa4, 0x3a, 0x00, 0x37, 0x5e, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 
-0x37, 0x2a, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x28, 0x18, 0x24, 0x20, 0x90, 
-0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x39, 0xe0, 
-0x37, 0x56, 0xc0, 0xc0, 0x80, 0xa4, 0x39, 0xd0, 0x37, 0x52, 0xd3, 0x82, 
-0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x24, 0x50, 0xc0, 0xc0, 0x81, 0x37, 
-0x22, 0x94, 0x50, 0x92, 0xf8, 0x99, 0x84, 0x1d, 0x68, 0x90, 0x78, 0x90, 
-0x50, 0x10, 0x10, 0x80, 0xa4, 0x2e, 0xb0, 0x35, 0xdb, 0x82, 0x35, 0xd1, 
-0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x30, 0xb0, 0x36, 0x1c, 0xa4, 
-0x30, 0x58, 0x36, 0x10, 0x80, 0x90, 0x38, 0xa4, 0x2f, 0x30, 0x35, 0xf1, 
-0xa4, 0x2f, 0x08, 0x35, 0xec, 0x83, 0x90, 0xe8, 0xd3, 0x83, 0xc0, 0xc0, 
-0xc0, 0x80, 0xa4, 0x3a, 0x80, 0x8c, 0x3b, 0xf0, 0x84, 0x37, 0x86, 0xc0, 
-0xc0, 0x80, 0xa4, 0x3a, 0x68, 0x8c, 0x3b, 0xc0, 0x84, 0x37, 0x83, 0xd3, 
-0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x38, 0x50, 0xc0, 0xc0, 0x81, 
-0x37, 0x35, 0x18, 0x24, 0x1d, 0x60, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 
-0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x50, 0x37, 0x72, 0xc0, 0xc0, 0x80, 0xa4, 
-0x3a, 0x38, 0x37, 0x6c, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 
-0x32, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x2f, 0x92, 0xb8, 0x99, 0x84, 0x1d, 
-0x58, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x2e, 0xa8, 0x35, 
-0xda, 0x82, 0x35, 0xd0, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x30, 
-0xa8, 0x36, 0x1b, 0xa4, 0x30, 0x50, 0x36, 0x0f, 0x80, 0x90, 0x38, 0xa4, 
-0x2f, 0x28, 0x35, 0xf0, 0xa4, 0x2f, 0x00, 0x35, 0xeb, 0x83, 0x90, 0xa8, 
-0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x20, 0x37, 0x66, 0xc0, 
-0xc0, 0x80, 0xa4, 0x3a, 0x08, 0x37, 0x60, 0xd3, 0x82, 0x40, 0x50, 0xc0, 
-0xc0, 0x81, 0x37, 0x2c, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x29, 0x18, 0x20, 
-0x01, 0x48, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 
-0x39, 0xf0, 0x37, 0x5a, 0xc0, 0xc0, 0x80, 0xa4, 0x39, 0xd8, 0x37, 0x54, 
-0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x26, 0x50, 0xc0, 0xc0, 
-0x81, 0x37, 0x23, 0xda, 0x06, 0xe0, 0xea, 0x80, 0x90, 0x60, 0x90, 0x38, 
-0xa4, 0x21, 0x00, 0x34, 0x1e, 0x80, 0x34, 0x1b, 0x90, 0x38, 0xa4, 0x20, 
-0xa8, 0x34, 0x19, 0x80, 0x34, 0x16, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x20, 
-0xe8, 0x34, 0x1f, 0x80, 0x34, 0x1c, 0x90, 0x38, 0xa4, 0x20, 0xc0, 0x34, 
-0x1a, 0x80, 0x34, 0x17, 0xc8, 0x40, 0x18, 0x00, 0x91, 0x38, 0x90, 0x40, 
-0x82, 0xa4, 0x2e, 0x70, 0x35, 0xcf, 0x90, 0xc0, 0x80, 0x90, 0x90, 0x90, 
-0x48, 0xc9, 0xe1, 0x82, 0x00, 0x85, 0x36, 0x07, 0xc9, 0xe1, 0x81, 0x40, 
-0x85, 0x36, 0x04, 0x80, 0x36, 0x03, 0x10, 0x10, 0x81, 0x35, 0xdf, 0x90, 
-0xa8, 0x10, 0x10, 0x90, 0x28, 0x81, 0x35, 0xfd, 0x90, 0x38, 0xa4, 0x2f, 
-0xc0, 0x35, 0xf9, 0xa4, 0x2f, 0xb0, 0x35, 0xf7, 0x90, 0x70, 0x10, 0x10, 
-0x90, 0x38, 0xa4, 0x2f, 0xd8, 0x35, 0xfc, 0x80, 0x35, 0xfa, 0x90, 0x60, 
-0x90, 0x28, 0x24, 0x30, 0x10, 0xa4, 0x30, 0x00, 0x36, 0x01, 0x80, 0xa4, 
-0x2f, 0xf0, 0x35, 0xff, 0x80, 0x90, 0xf8, 0x90, 0x90, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x37, 0x1a, 0x80, 0x37, 0x21, 0x80, 0xa4, 0x38, 0xf8, 0x37, 
-0x20, 0x90, 0x28, 0x81, 0x37, 0x1e, 0x80, 0xa4, 0x38, 0xe0, 0x37, 0x1d, 
-0x83, 0x37, 0x1b, 0x98, 0xb0, 0x01, 0x40, 0x90, 0x50, 0x90, 0x28, 0x24, 
-0x2e, 0x60, 0x24, 0x2e, 0x58, 0x90, 0x28, 0x24, 0x2e, 0x50, 0x24, 0x2e, 
-0x48, 0x90, 0x50, 0x90, 0x28, 0x24, 0x2e, 0x38, 0x24, 0x2e, 0x30, 0x90, 
-0x28, 0x24, 0x2e, 0x28, 0x24, 0x2e, 0x20, 0xa8, 0x09, 0x00, 0x0e, 0x20, 
-0x96, 0x48, 0x95, 0xe8, 0x93, 0x38, 0x91, 0xa0, 0x90, 0xd0, 0x90, 0x70, 
-0x90, 0x38, 0xa4, 0x1c, 0x88, 0x33, 0x92, 0xa4, 0x1c, 0x78, 0x33, 0x90, 
-0x90, 0x38, 0xa4, 0x1c, 0x68, 0x33, 0x8e, 0x80, 0x33, 0x8c, 0x90, 0x60, 
-0x90, 0x28, 0x24, 0x1c, 0x28, 0xa4, 0x1c, 0x18, 0x33, 0x84, 0x90, 0x38, 
-0xa4, 0x1c, 0x08, 0x33, 0x82, 0xa4, 0x1c, 0x50, 0x33, 0x8b, 0x90, 0xe0, 
-0x90, 0x70, 0x90, 0x38, 0xa4, 0x1c, 0x40, 0x33, 0x89, 0xa4, 0x1c, 0x30, 
-0x33, 0x87, 0x90, 0x38, 0xa4, 0x2d, 0xd8, 0x35, 0xc1, 0xa4, 0x2d, 0x78, 
-0x35, 0xb5, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x2a, 0xb0, 0x35, 0x62, 0xa4, 
-0x2a, 0x80, 0x35, 0x5c, 0x10, 0x10, 0xa4, 0x1b, 0xf8, 0x33, 0x80, 0x99, 
-0x60, 0x02, 0x70, 0x90, 0x90, 0x90, 0x50, 0x90, 0x28, 0x24, 0x1c, 0xb8, 
-0x80, 0x33, 0x9e, 0x80, 0xa4, 0x1c, 0xc0, 0x33, 0x9c, 0x90, 0x50, 0x90, 
-0x28, 0x24, 0x1c, 0xc8, 0x80, 0x33, 0x9f, 0x90, 0x38, 0xa4, 0x1c, 0xd0, 
-0x33, 0x9d, 0xa4, 0x1c, 0x98, 0x33, 0x94, 0x90, 0xe0, 0x90, 0x70, 0x90, 
-0x38, 0xa4, 0x2d, 0x08, 0x35, 0xa9, 0xa4, 0x2c, 0x68, 0x35, 0x96, 0x90, 
-0x38, 0xa4, 0x2c, 0x00, 0x35, 0x87, 0xa4, 0x2b, 0x70, 0x35, 0x76, 0x81, 
-0xa4, 0x1c, 0xa8, 0x33, 0x96, 0xe4, 0xa1, 0xc5, 0x00, 0x37, 0x16, 0x18, 
-0x24, 0x1b, 0xf0, 0xe4, 0xe1, 0xc3, 0x80, 0x37, 0x10, 0x92, 0x40, 0x91, 
-0x08, 0x10, 0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2d, 0xd0, 
-0x35, 0xc0, 0xa4, 0x2d, 0x70, 0x35, 0xb4, 0x80, 0x90, 0x38, 0xa4, 0x2a, 
-0xa8, 0x35, 0x61, 0xa4, 0x2a, 0x78, 0x35, 0x5b, 0x18, 0x20, 0x00, 0xf8, 
-0x80, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x2c, 0xf8, 0x35, 0xa8, 0xa4, 0x2c, 
-0x60, 0x35, 0x94, 0x90, 0x38, 0xa4, 0x2b, 0xf0, 0x35, 0x86, 0xa4, 0x2b, 
-0x68, 0x35, 0x74, 0xe4, 0xa1, 0xc2, 0x00, 0x37, 0x0a, 0x18, 0x24, 0x1b, 
-0xe8, 0xe4, 0xe1, 0xc0, 0x80, 0x37, 0x04, 0x92, 0x90, 0x92, 0x40, 0x91, 
-0x08, 0x10, 0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2d, 0xc8, 
-0x35, 0xbf, 0xa4, 0x2d, 0x68, 0x35, 0xb3, 0x80, 0x90, 0x38, 0xa4, 0x2a, 
-0xa0, 0x35, 0x60, 0xa4, 0x2a, 0x70, 0x35, 0x5a, 0x18, 0x20, 0x00, 0xf8, 
-0x80, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x2c, 0xe8, 0x35, 0xa7, 0xa4, 0x2c, 
-0x58, 0x35, 0x92, 0x90, 0x38, 0xa4, 0x2b, 0xe0, 0x35, 0x85, 0xa4, 0x2b, 
-0x60, 0x35, 0x72, 0xe4, 0xa1, 0xc5, 0x40, 0x37, 0x18, 0x10, 0x10, 0xe4, 
-0xe1, 0xc3, 0xc0, 0x37, 0x12, 0x92, 0x50, 0x99, 0x1c, 0x1c, 0xd8, 0x10, 
-0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2d, 0xc0, 0x35, 0xbe, 
-0xa4, 0x2d, 0x60, 0x35, 0xb2, 0x80, 0x90, 0x38, 0xa4, 0x2a, 0x98, 0x35, 
-0x5f, 0xa4, 0x2a, 0x68, 0x35, 0x59, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 
-0x70, 0x90, 0x38, 0xa4, 0x2c, 0xd8, 0x35, 0xa6, 0xa4, 0x2c, 0x50, 0x35, 
-0x90, 0x90, 0x38, 0xa4, 0x2b, 0xd0, 0x35, 0x84, 0xa4, 0x2b, 0x58, 0x35, 
-0x70, 0xe4, 0xa1, 0xc2, 0x40, 0x37, 0x0c, 0x10, 0x10, 0xe4, 0xe1, 0xc0, 
-0xc0, 0x37, 0x06, 0xc0, 0x40, 0x80, 0x10, 0x10, 0x81, 0x90, 0x90, 0x90, 
-0x48, 0xc9, 0xe1, 0x59, 0x80, 0x85, 0x35, 0x6a, 0xc9, 0xe1, 0x5a, 0x00, 
-0x85, 0x35, 0x67, 0x80, 0x35, 0x65, 0x80, 0xd8, 0x47, 0x80, 0x0d, 0xc0, 
-0xc0, 0x80, 0x10, 0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, 
-0x00, 0x80, 0x36, 0xfe, 0xd5, 0x81, 0x80, 0x80, 0x36, 0xfc, 0x80, 0x36, 
-0xfa, 0xc0, 0x80, 0x10, 0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 
-0x37, 0x01, 0x80, 0x36, 0xff, 0xd5, 0x81, 0x80, 0x80, 0x36, 0xfd, 0x80, 
-0x36, 0xfb, 0xc0, 0x80, 0x84, 0x36, 0xf9, 0xa0, 0x56, 0x50, 0xa0, 0x40, 
-0x70, 0xa8, 0x1d, 0x40, 0x33, 0x18, 0xa0, 0x12, 0x38, 0xa0, 0x0b, 0x48, 
-0x96, 0x00, 0x9a, 0xf0, 0x05, 0xc0, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 
-0x90, 0x38, 0xa4, 0x14, 0x50, 0x33, 0x7c, 0xa4, 0x14, 0x60, 0x33, 0x7b, 
-0x10, 0x10, 0xa4, 0x14, 0x58, 0x33, 0x7a, 0x90, 0x70, 0x90, 0x38, 0xa4, 
-0x14, 0x20, 0x33, 0x61, 0xa4, 0x14, 0x30, 0x33, 0x60, 0x10, 0x10, 0xa4, 
-0x14, 0x28, 0x33, 0x5f, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 
-0xf0, 0x33, 0x46, 0xa4, 0x14, 0x00, 0x33, 0x45, 0x10, 0x10, 0xa4, 0x13, 
-0xf8, 0x33, 0x44, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xc0, 0x33, 0x2b, 
-0xa4, 0x13, 0xd0, 0x33, 0x2a, 0x10, 0x10, 0xa4, 0x13, 0xc8, 0x33, 0x29, 
-0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x38, 0x33, 
-0x77, 0xa4, 0x14, 0x48, 0x33, 0x79, 0x10, 0x10, 0xa4, 0x14, 0x40, 0x33, 
-0x78, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x08, 0x33, 0x5c, 0xa4, 0x14, 
-0x18, 0x33, 0x5e, 0x10, 0x10, 0xa4, 0x14, 0x10, 0x33, 0x5d, 0x90, 0xb8, 
-0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xd8, 0x33, 0x41, 0xa4, 0x13, 0xe8, 
-0x33, 0x43, 0x10, 0x10, 0xa4, 0x13, 0xe0, 0x33, 0x42, 0x90, 0x70, 0x90, 
-0x38, 0xa4, 0x13, 0xa8, 0x33, 0x26, 0xa4, 0x13, 0xb8, 0x33, 0x28, 0x10, 
-0x10, 0xa4, 0x13, 0xb0, 0x33, 0x27, 0xe4, 0xe1, 0x4f, 0xc0, 0x35, 0x49, 
-0x9a, 0xf0, 0x05, 0x00, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 
-0xa4, 0x13, 0xa0, 0x33, 0x74, 0xa4, 0x13, 0x98, 0x33, 0x76, 0x10, 0x10, 
-0xa4, 0x13, 0x90, 0x33, 0x75, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x88, 
-0x33, 0x59, 0xa4, 0x13, 0x80, 0x33, 0x5b, 0x10, 0x10, 0xa4, 0x13, 0x78, 
-0x33, 0x5a, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x70, 0x33, 
-0x3e, 0xa4, 0x13, 0x68, 0x33, 0x40, 0x10, 0x10, 0xa4, 0x13, 0x60, 0x33, 
-0x3f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x58, 0x33, 0x23, 0xa4, 0x13, 
-0x50, 0x33, 0x25, 0x10, 0x10, 0xa4, 0x13, 0x48, 0x33, 0x24, 0x91, 0x10, 
-0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x71, 0x80, 0x33, 0x73, 
-0x10, 0x10, 0x80, 0x33, 0x72, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x56, 
-0x80, 0x33, 0x58, 0x10, 0x10, 0x80, 0x33, 0x57, 0x90, 0x88, 0x90, 0x50, 
-0x90, 0x28, 0x80, 0x33, 0x3b, 0x80, 0x33, 0x3d, 0x10, 0x10, 0x80, 0x33, 
-0x3c, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x20, 0x80, 0x33, 0x22, 0x10, 
-0x10, 0x80, 0x33, 0x21, 0xe4, 0xe1, 0x3d, 0x40, 0x35, 0x09, 0x95, 0x40, 
-0x9a, 0x90, 0x05, 0x00, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 
-0x80, 0x33, 0x6e, 0x80, 0x33, 0x70, 0x10, 0x10, 0x80, 0x33, 0x6f, 0x90, 
-0x50, 0x90, 0x28, 0x80, 0x33, 0x53, 0x80, 0x33, 0x55, 0x10, 0x10, 0x80, 
-0x33, 0x54, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x30, 0x33, 
-0x38, 0xa4, 0x13, 0x40, 0x33, 0x3a, 0x10, 0x10, 0xa4, 0x13, 0x38, 0x33, 
-0x39, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x00, 0x33, 0x1d, 0xa4, 0x13, 
-0x10, 0x33, 0x1f, 0x10, 0x10, 0xa4, 0x13, 0x08, 0x33, 0x1e, 0x91, 0x10, 
-0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x6b, 0x80, 0x33, 0x6d, 
-0x10, 0x10, 0x80, 0x33, 0x6c, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x50, 
-0x80, 0x33, 0x52, 0x10, 0x10, 0x80, 0x33, 0x51, 0x90, 0xb8, 0x90, 0x70, 
-0x90, 0x38, 0xa4, 0x13, 0x18, 0x33, 0x35, 0xa4, 0x13, 0x28, 0x33, 0x37, 
-0x10, 0x10, 0xa4, 0x13, 0x20, 0x33, 0x36, 0x90, 0x70, 0x90, 0x38, 0xa4, 
-0x12, 0xe8, 0x33, 0x1a, 0xa4, 0x12, 0xf8, 0x33, 0x1c, 0x10, 0x10, 0xa4, 
-0x12, 0xf0, 0x33, 0x1b, 0xe4, 0xe1, 0x4f, 0x40, 0x35, 0x47, 0x98, 0xb8, 
-0x01, 0x68, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 
-0x17, 0x80, 0x33, 0x19, 0x10, 0x10, 0x80, 0x33, 0x18, 0x90, 0x60, 0x90, 
-0x30, 0x60, 0xa0, 0x97, 0x00, 0x60, 0xa0, 0x96, 0xc0, 0x90, 0x30, 0x60, 
-0xa0, 0x96, 0x80, 0x60, 0xa0, 0x96, 0x40, 0xe4, 0xe1, 0x3c, 0x40, 0x35, 
-0x05, 0x96, 0xe8, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, 
-0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x65, 0x80, 0x33, 0x6a, 0x10, 
-0x10, 0x80, 0x33, 0x69, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x4a, 0x80, 
-0x33, 0x4f, 0x10, 0x10, 0x80, 0x33, 0x4e, 0x90, 0x88, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x33, 0x2f, 0x80, 0x33, 0x34, 0x10, 0x10, 0x80, 0x33, 0x33, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x11, 0x80, 0x33, 0x16, 0x10, 0x10, 
-0x80, 0x33, 0x15, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 
-0x33, 0x62, 0x80, 0x33, 0x64, 0x10, 0x10, 0x80, 0x33, 0x63, 0x90, 0x50, 
-0x90, 0x28, 0x80, 0x33, 0x47, 0x80, 0x33, 0x49, 0x10, 0x10, 0x80, 0x33, 
-0x48, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x2c, 0x80, 0x33, 
-0x2e, 0x10, 0x10, 0x80, 0x33, 0x2d, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 
-0x0e, 0x80, 0x33, 0x10, 0x10, 0x10, 0x80, 0x33, 0x0f, 0xe4, 0xe1, 0x4e, 
-0xc0, 0x35, 0x45, 0x88, 0x02, 0x28, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 
-0x90, 0x28, 0x80, 0x33, 0x66, 0x80, 0x33, 0x68, 0x10, 0x10, 0x80, 0x33, 
-0x67, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x4b, 0x80, 0x33, 0x4d, 0x10, 
-0x10, 0x80, 0x33, 0x4c, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 
-0x30, 0x80, 0x33, 0x32, 0x10, 0x10, 0x80, 0x33, 0x31, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x33, 0x12, 0x80, 0x33, 0x14, 0x10, 0x10, 0x80, 0x33, 0x13, 
-0xe4, 0xe1, 0x3b, 0x40, 0x35, 0x01, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 
-0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x81, 0x32, 0x9e, 0x10, 0x10, 0x80, 
-0x32, 0x9d, 0x90, 0x28, 0x81, 0x32, 0x9a, 0x10, 0x10, 0x80, 0x32, 0x99, 
-0x90, 0x60, 0x90, 0x28, 0x81, 0x32, 0x96, 0x10, 0x10, 0x80, 0x32, 0x95, 
-0x90, 0x28, 0x81, 0x32, 0x92, 0x10, 0x10, 0x80, 0x32, 0x91, 0x90, 0xc0, 
-0x90, 0x60, 0x90, 0x28, 0x81, 0x32, 0x9b, 0x10, 0x10, 0x80, 0x32, 0x9c, 
-0x90, 0x28, 0x81, 0x32, 0x97, 0x10, 0x10, 0x80, 0x32, 0x98, 0x90, 0x60, 
-0x90, 0x28, 0x81, 0x32, 0x93, 0x10, 0x10, 0x80, 0x32, 0x94, 0x90, 0x28, 
-0x81, 0x32, 0x8f, 0x10, 0x10, 0x80, 0x32, 0x90, 0xe4, 0xe1, 0x4e, 0x40, 
-0x35, 0x43, 0x88, 0x00, 0x88, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, 
-0x32, 0x8d, 0x10, 0x10, 0x80, 0x32, 0x8e, 0xe4, 0xe1, 0x3a, 0x40, 0x34, 
-0xfd, 0xa0, 0x0e, 0x80, 0xa0, 0x09, 0x08, 0x94, 0x80, 0x9a, 0x30, 0x04, 
-0x40, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x0d, 
-0x80, 0x33, 0x0c, 0x10, 0x10, 0x80, 0x33, 0x0b, 0x90, 0x50, 0x90, 0x28, 
-0x80, 0x32, 0xf2, 0x80, 0x32, 0xf1, 0x10, 0x10, 0x80, 0x32, 0xf0, 0x90, 
-0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xd7, 0x80, 0x32, 0xd6, 0x10, 
-0x10, 0x80, 0x32, 0xd5, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xbc, 0x80, 
-0x32, 0xbb, 0x10, 0x10, 0x80, 0x32, 0xba, 0x91, 0x10, 0x90, 0x88, 0x90, 
-0x50, 0x90, 0x28, 0x80, 0x33, 0x08, 0x80, 0x33, 0x0a, 0x10, 0x10, 0x80, 
-0x33, 0x09, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xed, 0x80, 0x32, 0xef, 
-0x10, 0x10, 0x80, 0x32, 0xee, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 
-0x32, 0xd2, 0x80, 0x32, 0xd4, 0x10, 0x10, 0x80, 0x32, 0xd3, 0x90, 0x50, 
-0x90, 0x28, 0x80, 0x32, 0xb7, 0x80, 0x32, 0xb9, 0x10, 0x10, 0x80, 0x32, 
-0xb8, 0xe4, 0xe1, 0x47, 0x40, 0x35, 0x31, 0x9a, 0x30, 0x04, 0x40, 0x91, 
-0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x05, 0x80, 0x33, 
-0x07, 0x10, 0x10, 0x80, 0x33, 0x06, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 
-0xea, 0x80, 0x32, 0xec, 0x10, 0x10, 0x80, 0x32, 0xeb, 0x90, 0x88, 0x90, 
-0x50, 0x90, 0x28, 0x80, 0x32, 0xcf, 0x80, 0x32, 0xd1, 0x10, 0x10, 0x80, 
-0x32, 0xd0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xb4, 0x80, 0x32, 0xb6, 
-0x10, 0x10, 0x80, 0x32, 0xb5, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x33, 0x02, 0x80, 0x33, 0x04, 0x10, 0x10, 0x80, 0x33, 0x03, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe7, 0x80, 0x32, 0xe9, 0x10, 0x10, 
-0x80, 0x32, 0xe8, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xcc, 
-0x80, 0x32, 0xce, 0x10, 0x10, 0x80, 0x32, 0xcd, 0x90, 0x50, 0x90, 0x28, 
-0x80, 0x32, 0xb1, 0x80, 0x32, 0xb3, 0x10, 0x10, 0x80, 0x32, 0xb2, 0xe4, 
-0xe1, 0x36, 0xc0, 0x34, 0xe5, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 
-0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xff, 0x80, 0x33, 
-0x01, 0x10, 0x10, 0x80, 0x33, 0x00, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 
-0xe4, 0x80, 0x32, 0xe6, 0x10, 0x10, 0x80, 0x32, 0xe5, 0x90, 0x88, 0x90, 
-0x50, 0x90, 0x28, 0x80, 0x32, 0xc9, 0x80, 0x32, 0xcb, 0x10, 0x10, 0x80, 
-0x32, 0xca, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xae, 0x80, 0x32, 0xb0, 
-0x10, 0x10, 0x80, 0x32, 0xaf, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x32, 0xfc, 0x80, 0x32, 0xfe, 0x10, 0x10, 0x80, 0x32, 0xfd, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe1, 0x80, 0x32, 0xe3, 0x10, 0x10, 
-0x80, 0x32, 0xe2, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xc6, 
-0x80, 0x32, 0xc8, 0x10, 0x10, 0x80, 0x32, 0xc7, 0x90, 0x50, 0x90, 0x28, 
-0x80, 0x32, 0xab, 0x80, 0x32, 0xad, 0x10, 0x10, 0x80, 0x32, 0xac, 0xe4, 
-0xe1, 0x46, 0x40, 0x35, 0x2d, 0x88, 0x00, 0xb0, 0x10, 0x10, 0x10, 0x10, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xa8, 0x80, 0x32, 0xaa, 0x10, 0x10, 
-0x80, 0x32, 0xa9, 0xe4, 0xe1, 0x36, 0x40, 0x34, 0xe3, 0x96, 0xe8, 0x94, 
-0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x32, 0xf6, 0x80, 0x32, 0xfb, 0x10, 0x10, 0x80, 0x32, 0xfa, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xdb, 0x80, 0x32, 0xe0, 0x10, 0x10, 
-0x80, 0x32, 0xdf, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xc0, 
-0x80, 0x32, 0xc5, 0x10, 0x10, 0x80, 0x32, 0xc4, 0x90, 0x50, 0x90, 0x28, 
-0x80, 0x32, 0xa2, 0x80, 0x32, 0xa7, 0x10, 0x10, 0x80, 0x32, 0xa6, 0x91, 
-0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf3, 0x80, 0x32, 
-0xf5, 0x10, 0x10, 0x80, 0x32, 0xf4, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 
-0xd8, 0x80, 0x32, 0xda, 0x10, 0x10, 0x80, 0x32, 0xd9, 0x90, 0x88, 0x90, 
-0x50, 0x90, 0x28, 0x80, 0x32, 0xbd, 0x80, 0x32, 0xbf, 0x10, 0x10, 0x80, 
-0x32, 0xbe, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0x9f, 0x80, 0x32, 0xa1, 
-0x10, 0x10, 0x80, 0x32, 0xa0, 0xe4, 0xe1, 0x45, 0x40, 0x35, 0x29, 0x88, 
-0x02, 0x28, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 
-0xf7, 0x80, 0x32, 0xf9, 0x10, 0x10, 0x80, 0x32, 0xf8, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x32, 0xdc, 0x80, 0x32, 0xde, 0x10, 0x10, 0x80, 0x32, 0xdd, 
-0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xc1, 0x80, 0x32, 0xc3, 
-0x10, 0x10, 0x80, 0x32, 0xc2, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xa3, 
-0x80, 0x32, 0xa5, 0x10, 0x10, 0x80, 0x32, 0xa4, 0xe4, 0xe1, 0x35, 0xc0, 
-0x34, 0xe1, 0x90, 0x40, 0xe5, 0x21, 0x44, 0x40, 0x35, 0x25, 0xe5, 0x21, 
-0x35, 0x40, 0x34, 0xdf, 0x9e, 0xb4, 0x20, 0x08, 0x93, 0x70, 0x91, 0xd8, 
-0xd5, 0x07, 0x80, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x37, 0x58, 
-0x84, 0x36, 0xf5, 0xa4, 0x35, 0x38, 0x36, 0xbf, 0x90, 0x28, 0x24, 0x34, 
-0x78, 0xa4, 0x32, 0xf8, 0x36, 0x77, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 
-0x8c, 0x37, 0x38, 0x84, 0x36, 0xf3, 0xa4, 0x35, 0x28, 0x36, 0xbd, 0x90, 
-0x28, 0x24, 0x34, 0x68, 0xa4, 0x32, 0xe8, 0x36, 0x75, 0xd5, 0x06, 0x80, 
-0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xdf, 0xa4, 0x35, 0x08, 0x36, 
-0xb9, 0x90, 0x28, 0x24, 0x34, 0x48, 0xa4, 0x32, 0xc8, 0x36, 0x71, 0xd0, 
-0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xdb, 0xa4, 0x34, 0xf8, 0x36, 0xb7, 
-0x90, 0x28, 0x24, 0x34, 0x38, 0xa4, 0x32, 0xb8, 0x36, 0x6f, 0x91, 0x98, 
-0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xd3, 0xa4, 
-0x34, 0xd8, 0x36, 0xb3, 0x90, 0x28, 0x24, 0x34, 0x18, 0xa4, 0x32, 0x98, 
-0x36, 0x6b, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xcf, 0xa4, 0x34, 
-0xc8, 0x36, 0xb1, 0x90, 0x28, 0x24, 0x34, 0x08, 0xa4, 0x32, 0x88, 0x36, 
-0x69, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xc7, 
-0xa4, 0x34, 0xa8, 0x36, 0xad, 0x90, 0x28, 0x24, 0x33, 0xe8, 0xa4, 0x32, 
-0x68, 0x36, 0x65, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xc3, 0xa4, 
-0x34, 0x98, 0x36, 0xab, 0x90, 0x28, 0x24, 0x33, 0xd8, 0xa4, 0x32, 0x58, 
-0x36, 0x63, 0x93, 0x70, 0x91, 0xd8, 0xd5, 0x07, 0x80, 0xd0, 0xc4, 0x40, 
-0x90, 0x48, 0x80, 0x8c, 0x37, 0x78, 0x84, 0x36, 0xf7, 0xa4, 0x35, 0x48, 
-0x36, 0xc1, 0x90, 0x28, 0x24, 0x34, 0x88, 0xa4, 0x33, 0x08, 0x36, 0x79, 
-0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x37, 0x48, 0x84, 0x36, 0xf4, 
-0xa4, 0x35, 0x30, 0x36, 0xbe, 0x90, 0x28, 0x24, 0x34, 0x70, 0xa4, 0x32, 
-0xf0, 0x36, 0x76, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 
-0x36, 0xe3, 0xa4, 0x35, 0x18, 0x36, 0xbb, 0x90, 0x28, 0x24, 0x34, 0x58, 
-0xa4, 0x32, 0xd8, 0x36, 0x73, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 
-0xdd, 0xa4, 0x35, 0x00, 0x36, 0xb8, 0x90, 0x28, 0x24, 0x34, 0x40, 0xa4, 
-0x32, 0xc0, 0x36, 0x70, 0x91, 0x98, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 
-0x90, 0x28, 0x80, 0x36, 0xd7, 0xa4, 0x34, 0xe8, 0x36, 0xb5, 0x90, 0x28, 
-0x24, 0x34, 0x28, 0xa4, 0x32, 0xa8, 0x36, 0x6d, 0xd0, 0xc3, 0x40, 0x90, 
-0x28, 0x80, 0x36, 0xd1, 0xa4, 0x34, 0xd0, 0x36, 0xb2, 0x90, 0x28, 0x24, 
-0x34, 0x10, 0xa4, 0x32, 0x90, 0x36, 0x6a, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 
-0x40, 0x90, 0x28, 0x80, 0x36, 0xcb, 0xa4, 0x34, 0xb8, 0x36, 0xaf, 0x90, 
-0x28, 0x24, 0x33, 0xf8, 0xa4, 0x32, 0x78, 0x36, 0x67, 0xd0, 0xc3, 0x40, 
-0x90, 0x28, 0x80, 0x36, 0xc5, 0xa4, 0x34, 0xa0, 0x36, 0xac, 0x90, 0x28, 
-0x24, 0x33, 0xe0, 0xa4, 0x32, 0x60, 0x36, 0x64, 0x99, 0x08, 0x01, 0xf0, 
-0x81, 0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, 0x1f, 0xb0, 0x33, 0xee, 0xa4, 
-0x1f, 0x30, 0x33, 0xde, 0xd4, 0xc2, 0x00, 0xa4, 0x1f, 0x40, 0x33, 0xf0, 
-0xa4, 0x1e, 0xc0, 0x33, 0xe0, 0x81, 0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, 
-0x1f, 0x60, 0x33, 0xf4, 0xa4, 0x1e, 0xe0, 0x33, 0xe4, 0xd4, 0xc2, 0x00, 
-0xa4, 0x1f, 0x50, 0x33, 0xf2, 0xa4, 0x1e, 0xd0, 0x33, 0xe2, 0xa8, 0x0b, 
-0x18, 0x13, 0xa8, 0x96, 0x80, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 0x90, 
-0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0xb8, 0x32, 0x58, 0x24, 0x12, 
-0xb0, 0x90, 0x38, 0xa4, 0x11, 0xe0, 0x32, 0x3d, 0x24, 0x11, 0xd8, 0x90, 
-0x60, 0x90, 0x38, 0xa4, 0x11, 0x08, 0x32, 0x22, 0x24, 0x11, 0x00, 0x90, 
-0x38, 0xa4, 0x10, 0x30, 0x32, 0x07, 0x24, 0x10, 0x28, 0x90, 0xc0, 0x90, 
-0x60, 0x90, 0x38, 0xa4, 0x12, 0xa8, 0x32, 0x53, 0x24, 0x12, 0xa0, 0x90, 
-0x38, 0xa4, 0x11, 0xd0, 0x32, 0x38, 0x24, 0x11, 0xc8, 0x90, 0x60, 0x90, 
-0x38, 0xa4, 0x10, 0xf8, 0x32, 0x1d, 0x24, 0x10, 0xf0, 0x90, 0x38, 0xa4, 
-0x10, 0x20, 0x32, 0x02, 0x24, 0x10, 0x18, 0xe4, 0xe1, 0x91, 0x40, 0x36, 
-0x47, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 
-0x12, 0x90, 0x32, 0x50, 0x24, 0x12, 0x88, 0x90, 0x38, 0xa4, 0x11, 0xb8, 
-0x32, 0x35, 0x24, 0x11, 0xb0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xe0, 
-0x32, 0x1a, 0x24, 0x10, 0xd8, 0x90, 0x38, 0xa4, 0x10, 0x08, 0x31, 0xff, 
-0x24, 0x10, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x78, 
-0x32, 0x4d, 0x24, 0x12, 0x70, 0x90, 0x38, 0xa4, 0x11, 0xa0, 0x32, 0x32, 
-0x24, 0x11, 0x98, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xc8, 0x32, 0x17, 
-0x24, 0x10, 0xc0, 0x90, 0x38, 0xa4, 0x0f, 0xf0, 0x31, 0xfc, 0x24, 0x0f, 
-0xe8, 0xe4, 0xe1, 0x8f, 0xc0, 0x36, 0x41, 0x93, 0x78, 0x99, 0x90, 0x03, 
-0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x60, 0x32, 0x4a, 
-0x24, 0x12, 0x58, 0x90, 0x38, 0xa4, 0x11, 0x88, 0x32, 0x2f, 0x24, 0x11, 
-0x80, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xb0, 0x32, 0x14, 0x24, 0x10, 
-0xa8, 0x90, 0x38, 0xa4, 0x0f, 0xd8, 0x31, 0xf9, 0x24, 0x0f, 0xd0, 0x90, 
-0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x48, 0x32, 0x47, 0x24, 0x12, 
-0x40, 0x90, 0x38, 0xa4, 0x11, 0x70, 0x32, 0x2c, 0x24, 0x11, 0x68, 0x90, 
-0x60, 0x90, 0x38, 0xa4, 0x10, 0x98, 0x32, 0x11, 0x24, 0x10, 0x90, 0x90, 
-0x38, 0xa4, 0x0f, 0xc0, 0x31, 0xf6, 0x24, 0x0f, 0xb8, 0xec, 0xa0, 0xff, 
-0x00, 0x02, 0x00, 0x33, 0xfe, 0xa4, 0x31, 0xc8, 0x36, 0x3b, 0x88, 0x00, 
-0x88, 0x10, 0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x0f, 0xa8, 0x31, 0xf3, 
-0x24, 0x0f, 0xa0, 0xe9, 0x60, 0xfe, 0x40, 0x02, 0x00, 0x33, 0xfa, 0xe3, 
-0x61, 0x8c, 0xc0, 0x36, 0x35, 0x95, 0x08, 0x93, 0x40, 0x99, 0x90, 0x03, 
-0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x30, 0x32, 0x41, 
-0x24, 0x12, 0x28, 0x90, 0x38, 0xa4, 0x11, 0x58, 0x32, 0x26, 0x24, 0x11, 
-0x50, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0x80, 0x32, 0x0b, 0x24, 0x10, 
-0x78, 0x90, 0x38, 0xa4, 0x0f, 0x90, 0x31, 0xed, 0x24, 0x0f, 0x88, 0x90, 
-0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x00, 0x32, 0x3e, 0x24, 0x11, 
-0xf8, 0x90, 0x38, 0xa4, 0x11, 0x28, 0x32, 0x23, 0x24, 0x11, 0x20, 0x90, 
-0x60, 0x90, 0x38, 0xa4, 0x10, 0x50, 0x32, 0x08, 0x24, 0x10, 0x48, 0x90, 
-0x38, 0xa4, 0x0f, 0x60, 0x31, 0xea, 0x24, 0x0f, 0x58, 0xe4, 0xe1, 0x91, 
-0x80, 0x36, 0x49, 0x88, 0x01, 0x88, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 
-0xa4, 0x12, 0x20, 0x32, 0x42, 0x24, 0x12, 0x18, 0x90, 0x38, 0xa4, 0x11, 
-0x48, 0x32, 0x27, 0x24, 0x11, 0x40, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 
-0x70, 0x32, 0x0c, 0x24, 0x10, 0x68, 0x90, 0x38, 0xa4, 0x0f, 0x80, 0x31, 
-0xee, 0x24, 0x0f, 0x78, 0xe4, 0xe1, 0x90, 0x00, 0x36, 0x43, 0x92, 0xd0, 
-0x99, 0x50, 0x02, 0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 
-0xe9, 0x24, 0x0f, 0x40, 0x90, 0x28, 0x80, 0x31, 0xe5, 0x24, 0x0f, 0x20, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xe1, 0x24, 0x0f, 0x00, 0x90, 0x28, 
-0x80, 0x31, 0xdd, 0x24, 0x0e, 0xe0, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 
-0x80, 0x31, 0xe6, 0x24, 0x0f, 0x38, 0x90, 0x28, 0x80, 0x31, 0xe2, 0x24, 
-0x0f, 0x18, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xde, 0x24, 0x0e, 0xf8, 
-0x90, 0x28, 0x80, 0x31, 0xda, 0x24, 0x0e, 0xd8, 0xec, 0xe1, 0x8e, 0xa1, 
-0x00, 0x00, 0x36, 0x3d, 0x88, 0x00, 0x78, 0x10, 0x10, 0x10, 0x10, 0x90, 
-0x28, 0x80, 0x31, 0xd8, 0x24, 0x0e, 0xc8, 0xec, 0xe1, 0x8d, 0x20, 0xfe, 
-0x00, 0x36, 0x37, 0xe5, 0xa1, 0x34, 0xc0, 0x34, 0xd1, 0xa0, 0x2a, 0x10, 
-0xa8, 0x16, 0x60, 0x29, 0xd8, 0xa0, 0x0c, 0x48, 0xa0, 0x0a, 0xc8, 0x95, 
-0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 
-0x31, 0xa1, 0x80, 0x31, 0xa0, 0x10, 0x10, 0x80, 0x31, 0x9f, 0x90, 0x70, 
-0x90, 0x38, 0xa4, 0x08, 0x98, 0x31, 0xb3, 0xa4, 0x08, 0x90, 0x31, 0xb2, 
-0x10, 0x10, 0xa4, 0x08, 0x88, 0x31, 0xb1, 0x90, 0xb8, 0x90, 0x70, 0x90, 
-0x38, 0xa4, 0x09, 0xb8, 0x31, 0xd7, 0xa4, 0x09, 0xb0, 0x31, 0xd6, 0x10, 
-0x10, 0xa4, 0x09, 0xa8, 0x31, 0xd5, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 
-0x28, 0x31, 0xc5, 0xa4, 0x09, 0x20, 0x31, 0xc4, 0x10, 0x10, 0xa4, 0x09, 
-0x18, 0x31, 0xc3, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 
-0x31, 0x9c, 0x80, 0x31, 0x9e, 0x10, 0x10, 0x80, 0x31, 0x9d, 0x90, 0x70, 
-0x90, 0x38, 0xa4, 0x08, 0x70, 0x31, 0xae, 0xa4, 0x08, 0x80, 0x31, 0xb0, 
-0x10, 0x10, 0xa4, 0x08, 0x78, 0x31, 0xaf, 0x90, 0xb8, 0x90, 0x70, 0x90, 
-0x38, 0xa4, 0x09, 0x90, 0x31, 0xd2, 0xa4, 0x09, 0xa0, 0x31, 0xd4, 0x10, 
-0x10, 0xa4, 0x09, 0x98, 0x31, 0xd3, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 
-0x00, 0x31, 0xc0, 0xa4, 0x09, 0x10, 0x31, 0xc2, 0x10, 0x10, 0xa4, 0x09, 
-0x08, 0x31, 0xc1, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x31, 0x99, 0x80, 0x31, 0x9b, 0x10, 0x10, 0x80, 0x31, 0x9a, 
-0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x58, 0x31, 0xab, 0xa4, 0x08, 0x68, 
-0x31, 0xad, 0x10, 0x10, 0xa4, 0x08, 0x60, 0x31, 0xac, 0x90, 0xb8, 0x90, 
-0x70, 0x90, 0x38, 0xa4, 0x09, 0x78, 0x31, 0xcf, 0xa4, 0x09, 0x88, 0x31, 
-0xd1, 0x10, 0x10, 0xa4, 0x09, 0x80, 0x31, 0xd0, 0x90, 0x70, 0x90, 0x38, 
-0xa4, 0x08, 0xe8, 0x31, 0xbd, 0xa4, 0x08, 0xf8, 0x31, 0xbf, 0x10, 0x10, 
-0xa4, 0x08, 0xf0, 0x31, 0xbe, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x31, 0x96, 0x80, 0x31, 0x98, 0x10, 0x10, 0x80, 0x31, 0x97, 
-0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x40, 0x31, 0xa8, 0xa4, 0x08, 0x50, 
-0x31, 0xaa, 0x10, 0x10, 0xa4, 0x08, 0x48, 0x31, 0xa9, 0x90, 0xb8, 0x90, 
-0x70, 0x90, 0x38, 0xa4, 0x09, 0x60, 0x31, 0xcc, 0xa4, 0x09, 0x70, 0x31, 
-0xce, 0x10, 0x10, 0xa4, 0x09, 0x68, 0x31, 0xcd, 0x90, 0x70, 0x90, 0x38, 
-0xa4, 0x08, 0xd0, 0x31, 0xba, 0xa4, 0x08, 0xe0, 0x31, 0xbc, 0x10, 0x10, 
-0xa4, 0x08, 0xd8, 0x31, 0xbb, 0x10, 0x10, 0x90, 0xa8, 0x10, 0x10, 0x10, 
-0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x8d, 0x80, 0x31, 0x8f, 0x10, 
-0x10, 0x80, 0x31, 0x8e, 0x90, 0x60, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0xc0, 
-0x60, 0xa0, 0x2a, 0x80, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0x40, 0x60, 0xa0, 
-0x2a, 0x00, 0x97, 0xf0, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x93, 0x80, 0x31, 0x95, 0x10, 0x10, 
-0x80, 0x31, 0x94, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x28, 0x31, 0xa5, 
-0xa4, 0x08, 0x38, 0x31, 0xa7, 0x10, 0x10, 0xa4, 0x08, 0x30, 0x31, 0xa6, 
-0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x48, 0x31, 0xc9, 0xa4, 
-0x09, 0x58, 0x31, 0xcb, 0x10, 0x10, 0xa4, 0x09, 0x50, 0x31, 0xca, 0x90, 
-0x70, 0x90, 0x38, 0xa4, 0x08, 0xb8, 0x31, 0xb7, 0xa4, 0x08, 0xc8, 0x31, 
-0xb9, 0x10, 0x10, 0xa4, 0x08, 0xc0, 0x31, 0xb8, 0x91, 0x40, 0x90, 0x88, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x90, 0x80, 0x31, 0x92, 0x10, 0x10, 
-0x80, 0x31, 0x91, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x10, 0x31, 0xa2, 
-0xa4, 0x08, 0x20, 0x31, 0xa4, 0x10, 0x10, 0xa4, 0x08, 0x18, 0x31, 0xa3, 
-0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x30, 0x31, 0xc6, 0xa4, 
-0x09, 0x40, 0x31, 0xc8, 0x10, 0x10, 0xa4, 0x09, 0x38, 0x31, 0xc7, 0x90, 
-0x70, 0x90, 0x38, 0xa4, 0x08, 0xa0, 0x31, 0xb4, 0xa4, 0x08, 0xb0, 0x31, 
-0xb6, 0x10, 0x10, 0xa4, 0x08, 0xa8, 0x31, 0xb5, 0x10, 0x10, 0x91, 0x40, 
-0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xcb, 0x80, 0x30, 0xca, 
-0x90, 0x28, 0x80, 0x30, 0xc9, 0x80, 0x30, 0xc8, 0x90, 0x50, 0x90, 0x28, 
-0x80, 0x30, 0xc4, 0x80, 0x30, 0xc7, 0x90, 0x28, 0x80, 0x30, 0xc6, 0x80, 
-0x30, 0xc5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbc, 0x80, 
-0x30, 0xc3, 0x90, 0x28, 0x80, 0x30, 0xc2, 0x80, 0x30, 0xc1, 0x90, 0x50, 
-0x90, 0x28, 0x80, 0x30, 0xbd, 0x80, 0x30, 0xc0, 0x90, 0x28, 0x80, 0x30, 
-0xbf, 0x80, 0x30, 0xbe, 0x91, 0x88, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 
-0x28, 0x81, 0x31, 0x3b, 0x10, 0x10, 0x80, 0x31, 0x3a, 0x90, 0x28, 0x81, 
-0x31, 0x3d, 0x10, 0x10, 0x80, 0x31, 0x3c, 0x90, 0x60, 0x90, 0x28, 0x81, 
-0x31, 0x41, 0x10, 0x10, 0x80, 0x31, 0x40, 0x90, 0x28, 0x81, 0x31, 0x3f, 
-0x10, 0x10, 0x80, 0x31, 0x3e, 0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 
-0x81, 0x31, 0x38, 0x10, 0x10, 0x80, 0x31, 0x39, 0xa0, 0x0b, 0x90, 0xa0, 
-0x0a, 0xc8, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 
-0x90, 0x28, 0x80, 0x31, 0x56, 0x80, 0x31, 0x55, 0x10, 0x10, 0x80, 0x31, 
-0x54, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xe8, 0x31, 0x68, 0xa4, 0x06, 
-0xe0, 0x31, 0x67, 0x10, 0x10, 0xa4, 0x06, 0xd8, 0x31, 0x66, 0x90, 0xb8, 
-0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x08, 0x31, 0x8c, 0xa4, 0x08, 0x00, 
-0x31, 0x8b, 0x10, 0x10, 0xa4, 0x07, 0xf8, 0x31, 0x8a, 0x90, 0x70, 0x90, 
-0x38, 0xa4, 0x07, 0x78, 0x31, 0x7a, 0xa4, 0x07, 0x70, 0x31, 0x79, 0x10, 
-0x10, 0xa4, 0x07, 0x68, 0x31, 0x78, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 
-0x90, 0x28, 0x80, 0x31, 0x51, 0x80, 0x31, 0x53, 0x10, 0x10, 0x80, 0x31, 
-0x52, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xc0, 0x31, 0x63, 0xa4, 0x06, 
-0xd0, 0x31, 0x65, 0x10, 0x10, 0xa4, 0x06, 0xc8, 0x31, 0x64, 0x90, 0xb8, 
-0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xe0, 0x31, 0x87, 0xa4, 0x07, 0xf0, 
-0x31, 0x89, 0x10, 0x10, 0xa4, 0x07, 0xe8, 0x31, 0x88, 0x90, 0x70, 0x90, 
-0x38, 0xa4, 0x07, 0x50, 0x31, 0x75, 0xa4, 0x07, 0x60, 0x31, 0x77, 0x10, 
-0x10, 0xa4, 0x07, 0x58, 0x31, 0x76, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x4e, 0x80, 0x31, 0x50, 0x10, 0x10, 
-0x80, 0x31, 0x4f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xa8, 0x31, 0x60, 
-0xa4, 0x06, 0xb8, 0x31, 0x62, 0x10, 0x10, 0xa4, 0x06, 0xb0, 0x31, 0x61, 
-0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xc8, 0x31, 0x84, 0xa4, 
-0x07, 0xd8, 0x31, 0x86, 0x10, 0x10, 0xa4, 0x07, 0xd0, 0x31, 0x85, 0x90, 
-0x70, 0x90, 0x38, 0xa4, 0x07, 0x38, 0x31, 0x72, 0xa4, 0x07, 0x48, 0x31, 
-0x74, 0x10, 0x10, 0xa4, 0x07, 0x40, 0x31, 0x73, 0x91, 0x40, 0x90, 0x88, 
-0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x4b, 0x80, 0x31, 0x4d, 0x10, 0x10, 
-0x80, 0x31, 0x4c, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x90, 0x31, 0x5d, 
-0xa4, 0x06, 0xa0, 0x31, 0x5f, 0x10, 0x10, 0xa4, 0x06, 0x98, 0x31, 0x5e, 
-0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xb0, 0x31, 0x81, 0xa4, 
-0x07, 0xc0, 0x31, 0x83, 0x10, 0x10, 0xa4, 0x07, 0xb8, 0x31, 0x82, 0x90, 
-0x70, 0x90, 0x38, 0xa4, 0x07, 0x20, 0x31, 0x6f, 0xa4, 0x07, 0x30, 0x31, 
-0x71, 0x10, 0x10, 0xa4, 0x07, 0x28, 0x31, 0x70, 0x10, 0x10, 0x80, 0x10, 
-0x10, 0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x42, 0x80, 0x31, 
-0x44, 0x10, 0x10, 0x80, 0x31, 0x43, 0x80, 0x95, 0x60, 0x92, 0xb0, 0x91, 
-0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x48, 0x80, 0x31, 
-0x4a, 0x10, 0x10, 0x80, 0x31, 0x49, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 
-0x78, 0x31, 0x5a, 0xa4, 0x06, 0x88, 0x31, 0x5c, 0x10, 0x10, 0xa4, 0x06, 
-0x80, 0x31, 0x5b, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x98, 
-0x31, 0x7e, 0xa4, 0x07, 0xa8, 0x31, 0x80, 0x10, 0x10, 0xa4, 0x07, 0xa0, 
-0x31, 0x7f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x08, 0x31, 0x6c, 0xa4, 
-0x07, 0x18, 0x31, 0x6e, 0x10, 0x10, 0xa4, 0x07, 0x10, 0x31, 0x6d, 0x91, 
-0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x45, 0x80, 0x31, 
-0x47, 0x10, 0x10, 0x80, 0x31, 0x46, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 
-0x60, 0x31, 0x57, 0xa4, 0x06, 0x70, 0x31, 0x59, 0x10, 0x10, 0xa4, 0x06, 
-0x68, 0x31, 0x58, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x80, 
-0x31, 0x7b, 0xa4, 0x07, 0x90, 0x31, 0x7d, 0x10, 0x10, 0xa4, 0x07, 0x88, 
-0x31, 0x7c, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xf0, 0x31, 0x69, 0xa4, 
-0x07, 0x00, 0x31, 0x6b, 0x10, 0x10, 0xa4, 0x06, 0xf8, 0x31, 0x6a, 0x10, 
-0x10, 0x91, 0x40, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbb, 
-0x80, 0x30, 0xba, 0x90, 0x28, 0x80, 0x30, 0xb9, 0x80, 0x30, 0xb8, 0x90, 
-0x50, 0x90, 0x28, 0x80, 0x30, 0xb4, 0x80, 0x30, 0xb7, 0x90, 0x28, 0x80, 
-0x30, 0xb6, 0x80, 0x30, 0xb5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 
-0x30, 0xac, 0x80, 0x30, 0xb3, 0x90, 0x28, 0x80, 0x30, 0xb2, 0x80, 0x30, 
-0xb1, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xad, 0x80, 0x30, 0xb0, 0x90, 
-0x28, 0x80, 0x30, 0xaf, 0x80, 0x30, 0xae, 0xc3, 0xc0, 0x30, 0x42, 0x9c, 
-0xe8, 0x07, 0x60, 0x91, 0x90, 0x90, 0xf0, 0x10, 0x10, 0x80, 0x88, 0x00, 
-0x80, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xbc, 0x80, 0x33, 0xbd, 0x81, 
-0x33, 0xb3, 0xd0, 0x41, 0x80, 0x24, 0x1e, 0xb0, 0x24, 0x1e, 0xb8, 0x10, 
-0x10, 0x80, 0x90, 0x58, 0x80, 0x90, 0x28, 0x24, 0x1d, 0xb0, 0x24, 0x1d, 
-0xb8, 0x81, 0x24, 0x1d, 0x70, 0x92, 0x68, 0x91, 0x00, 0x80, 0x90, 0x90, 
-0x90, 0x30, 0x80, 0x24, 0x1e, 0x20, 0x90, 0x38, 0xa4, 0x1e, 0x18, 0x33, 
-0xca, 0x80, 0x33, 0xc9, 0x80, 0x90, 0x28, 0x80, 0x33, 0xd3, 0xa4, 0x1e, 
-0x00, 0x33, 0xd2, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x80, 0x33, 
-0xcd, 0xa4, 0x1e, 0x10, 0x33, 0xcc, 0x90, 0x28, 0x80, 0x33, 0xc8, 0xa4, 
-0x1e, 0x08, 0x33, 0xc7, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xd1, 0x80, 
-0x33, 0xd0, 0x90, 0x28, 0x24, 0x1e, 0xa8, 0x24, 0x1e, 0xa0, 0x90, 0x58, 
-0x80, 0x10, 0x10, 0x80, 0x10, 0x10, 0x80, 0x33, 0xbf, 0x80, 0x90, 0x40, 
-0x10, 0x10, 0x80, 0x24, 0x1d, 0x80, 0x80, 0x10, 0x10, 0x80, 0x33, 0xbe, 
-0x91, 0x58, 0x91, 0x00, 0x90, 0x80, 0x81, 0x90, 0x50, 0x90, 0x28, 0x80, 
-0x33, 0xba, 0x80, 0x33, 0xbb, 0x81, 0x33, 0xb2, 0x81, 0x90, 0x50, 0x90, 
-0x28, 0x80, 0x33, 0xb8, 0x80, 0x33, 0xb9, 0x81, 0x33, 0xb1, 0x83, 0x90, 
-0x28, 0x24, 0x1d, 0xa0, 0x24, 0x1d, 0xa8, 0x90, 0xe8, 0x81, 0x90, 0x88, 
-0x90, 0x38, 0x10, 0x10, 0x80, 0x33, 0xcb, 0x90, 0x28, 0x80, 0x33, 0xc6, 
-0x80, 0x33, 0xc5, 0x80, 0x90, 0x28, 0x80, 0x33, 0xcf, 0x80, 0x33, 0xce, 
-0x82, 0x10, 0x10, 0x80, 0x24, 0x1d, 0x78, 0x97, 0x10, 0x9e, 0x10, 0x06, 
-0x98, 0x93, 0x00, 0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 
-0x03, 0x80, 0x30, 0x71, 0x24, 0x03, 0x78, 0x90, 0x38, 0xa4, 0x04, 0x10, 
-0x30, 0x83, 0x24, 0x04, 0x08, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x30, 
-0x30, 0xa7, 0x24, 0x05, 0x28, 0x90, 0x38, 0xa4, 0x04, 0xa0, 0x30, 0x95, 
-0x24, 0x04, 0x98, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x70, 
-0x30, 0x6c, 0x24, 0x03, 0x68, 0x90, 0x38, 0xa4, 0x04, 0x00, 0x30, 0x7e, 
-0x24, 0x03, 0xf8, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x20, 0x30, 0xa2, 
-0x24, 0x05, 0x18, 0x90, 0x38, 0xa4, 0x04, 0x90, 0x30, 0x90, 0x24, 0x04, 
-0x88, 0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x58, 
-0x30, 0x69, 0x24, 0x03, 0x50, 0x90, 0x38, 0xa4, 0x03, 0xe8, 0x30, 0x7b, 
-0x24, 0x03, 0xe0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x08, 0x30, 0x9f, 
-0x24, 0x05, 0x00, 0x90, 0x38, 0xa4, 0x04, 0x78, 0x30, 0x8d, 0x24, 0x04, 
-0x70, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x40, 0x30, 0x66, 
-0x24, 0x03, 0x38, 0x90, 0x38, 0xa4, 0x03, 0xd0, 0x30, 0x78, 0x24, 0x03, 
-0xc8, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x04, 0xf0, 0x30, 0x9c, 0x24, 0x04, 
-0xe8, 0x90, 0x38, 0xa4, 0x04, 0x60, 0x30, 0x8a, 0x24, 0x04, 0x58, 0x10, 
-0x10, 0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x02, 0xf8, 0x30, 
-0x5d, 0x24, 0x02, 0xf0, 0xd7, 0x42, 0x00, 0xa4, 0x31, 0x78, 0x36, 0x31, 
-0xa4, 0x31, 0x58, 0x36, 0x2d, 0x9c, 0xe0, 0x06, 0x90, 0x93, 0x00, 0x91, 
-0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x28, 0x30, 0x63, 
-0x24, 0x03, 0x20, 0x90, 0x38, 0xa4, 0x03, 0xb8, 0x30, 0x75, 0x24, 0x03, 
-0xb0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x04, 0xd8, 0x30, 0x99, 0x24, 0x04, 
-0xd0, 0x90, 0x38, 0xa4, 0x04, 0x48, 0x30, 0x87, 0x24, 0x04, 0x40, 0x90, 
-0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x10, 0x30, 0x60, 0x24, 0x03, 
-0x08, 0x90, 0x38, 0xa4, 0x03, 0xa0, 0x30, 0x72, 0x24, 0x03, 0x98, 0x90, 
-0x60, 0x90, 0x38, 0xa4, 0x04, 0xc0, 0x30, 0x96, 0x24, 0x04, 0xb8, 0x90, 
-0x38, 0xa4, 0x04, 0x30, 0x30, 0x84, 0x24, 0x04, 0x28, 0x10, 0x10, 0x90, 
-0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x88, 0x30, 0x52, 0xa4, 0x02, 
-0x78, 0x30, 0x50, 0x90, 0x38, 0xa4, 0x02, 0x70, 0x30, 0x4b, 0xa4, 0x02, 
-0x60, 0x30, 0x4d, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x50, 0x30, 0x43, 
-0xa4, 0x02, 0x40, 0x30, 0x49, 0x90, 0x38, 0xa4, 0x02, 0x38, 0x30, 0x44, 
-0xa4, 0x02, 0x28, 0x30, 0x46, 0x91, 0x48, 0x80, 0x90, 0xa0, 0x90, 0x50, 
-0x90, 0x28, 0x80, 0x30, 0x56, 0x24, 0x02, 0xa8, 0x90, 0x28, 0x80, 0x30, 
-0x58, 0x24, 0x02, 0xb8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0x5c, 0x24, 
-0x02, 0xd8, 0x90, 0x28, 0x80, 0x30, 0x5a, 0x24, 0x02, 0xc8, 0x80, 0x10, 
-0x10, 0x10, 0x10, 0x90, 0x28, 0x80, 0x30, 0x53, 0x24, 0x02, 0xa0, 0xd7, 
-0x42, 0x00, 0xa4, 0x31, 0x80, 0x36, 0x32, 0xa4, 0x31, 0x60, 0x36, 0x2e, 
-0xa0, 0x14, 0x90, 0xa0, 0x10, 0xb8, 0xa0, 0x0c, 0x88, 0x9e, 0x88, 0x09, 
-0xd0, 0x94, 0xf0, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 
-0xe1, 0x2c, 0x40, 0x85, 0x34, 0xcd, 0xcb, 0x61, 0x25, 0x00, 0x85, 0x34, 
-0xa3, 0x9a, 0x00, 0x03, 0xf8, 0x91, 0x98, 0x80, 0x91, 0x10, 0x90, 0xa0, 
-0x90, 0x68, 0x90, 0x20, 0x38, 0x96, 0xc9, 0xe2, 0x25, 0x00, 0x85, 0x34, 
-0xcb, 0xa4, 0x44, 0x90, 0x38, 0x93, 0x90, 0x38, 0xa4, 0x44, 0x58, 0x38, 
-0x8c, 0xa4, 0x44, 0x48, 0x38, 0x8a, 0x90, 0x48, 0x10, 0x10, 0xa4, 0x44, 
-0x10, 0x38, 0x83, 0x10, 0x10, 0x80, 0x38, 0x7f, 0x81, 0x10, 0x10, 0x80, 
-0xa4, 0x43, 0xe0, 0x38, 0x7d, 0x91, 0xb0, 0x91, 0x60, 0x90, 0xe0, 0x90, 
-0x70, 0x90, 0x38, 0xa4, 0x44, 0x80, 0x38, 0x91, 0xa4, 0x44, 0x70, 0x38, 
-0x8f, 0x90, 0x38, 0xa4, 0x44, 0x38, 0x38, 0x88, 0xa4, 0x44, 0x28, 0x38, 
-0x86, 0x90, 0x48, 0x10, 0x10, 0xa4, 0x44, 0x00, 0x38, 0x81, 0x10, 0x10, 
-0x80, 0x38, 0x7e, 0x90, 0x28, 0x80, 0x38, 0x77, 0x80, 0x38, 0x76, 0x81, 
-0x10, 0x10, 0x80, 0xa4, 0x43, 0xd0, 0x38, 0x7b, 0xcb, 0x61, 0x24, 0xc0, 
-0x85, 0x34, 0xa2, 0x90, 0xd8, 0x88, 0x00, 0x90, 0x84, 0x90, 0x38, 0xc1, 
-0xc0, 0x85, 0x38, 0x9a, 0xc9, 0xe1, 0x2c, 0x00, 0x85, 0x34, 0xc9, 0xcb, 
-0x61, 0x24, 0x80, 0x85, 0x34, 0xa1, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 
-0xc9, 0xe1, 0x2b, 0xc0, 0x85, 0x34, 0xc7, 0xcb, 0x61, 0x24, 0x40, 0x85, 
-0x34, 0xa0, 0x91, 0xf8, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 
-0xc9, 0xe1, 0x2b, 0x40, 0x85, 0x34, 0xc3, 0xcb, 0x61, 0x23, 0xc0, 0x85, 
-0x34, 0x9e, 0x88, 0x01, 0x00, 0x90, 0xa0, 0x81, 0x90, 0x70, 0x80, 0x90, 
-0x20, 0x38, 0x8d, 0xc9, 0xe1, 0x2b, 0x00, 0x85, 0x34, 0xc1, 0x81, 0x38, 
-0x84, 0x81, 0x10, 0x10, 0x80, 0xa4, 0x43, 0xc0, 0x38, 0x79, 0xcb, 0x61, 
-0x23, 0x80, 0x85, 0x34, 0x9d, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 
-0x10, 0xc9, 0xe1, 0x2a, 0xc0, 0x85, 0x34, 0xbf, 0xcb, 0x61, 0x23, 0x40, 
-0x85, 0x34, 0x9c, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x2a, 
-0x80, 0x85, 0x34, 0xbd, 0xcb, 0x61, 0x23, 0x00, 0x85, 0x34, 0x9b, 0x92, 
-0x38, 0x81, 0x91, 0x68, 0x91, 0x18, 0x90, 0x80, 0x90, 0x40, 0x80, 0xa4, 
-0x45, 0x48, 0x38, 0xaa, 0x80, 0xa4, 0x45, 0x40, 0x38, 0xa7, 0x90, 0x28, 
-0x81, 0x38, 0xa6, 0x90, 0x38, 0xa4, 0x45, 0x20, 0x38, 0xa5, 0xa4, 0x45, 
-0x10, 0x38, 0xa3, 0x90, 0x28, 0x80, 0x38, 0xa1, 0x80, 0x38, 0xa0, 0x80, 
-0x90, 0x40, 0x10, 0x10, 0x80, 0x24, 0x44, 0xf8, 0x10, 0x10, 0x90, 0x38, 
-0xa4, 0x44, 0xe8, 0x38, 0x9e, 0xa4, 0x44, 0xd8, 0x38, 0x9c, 0x90, 0x50, 
-0x80, 0xc9, 0xa2, 0x26, 0x00, 0x85, 0x38, 0x99, 0x80, 0x38, 0x97, 0x9a, 
-0xd0, 0x03, 0xe0, 0x91, 0x60, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 
-0x10, 0xc9, 0xe1, 0x2a, 0x00, 0x85, 0x34, 0xb9, 0xcb, 0x61, 0x22, 0x80, 
-0x85, 0x34, 0x99, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x29, 
-0xc0, 0x85, 0x34, 0xb7, 0xcb, 0x61, 0x22, 0x40, 0x85, 0x34, 0x98, 0x90, 
-0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x29, 0x80, 0x85, 
-0x34, 0xb5, 0xcb, 0x61, 0x22, 0x00, 0x85, 0x34, 0x97, 0x88, 0x00, 0x68, 
-0x84, 0x10, 0x10, 0xc9, 0xe1, 0x29, 0x40, 0x85, 0x34, 0xb3, 0xcb, 0x61, 
-0x21, 0xc0, 0x85, 0x34, 0x96, 0x90, 0x90, 0x90, 0x48, 0xcb, 0xa1, 0x20, 
-0x00, 0x85, 0x34, 0x85, 0xcb, 0xa1, 0x1f, 0xc0, 0x85, 0x34, 0x84, 0x90, 
-0x48, 0xcb, 0xa1, 0x1f, 0x80, 0x85, 0x34, 0x83, 0xcb, 0xa1, 0x1f, 0x40, 
-0x85, 0x34, 0x82, 0xcb, 0xa2, 0x1d, 0x00, 0x80, 0x38, 0x75, 0x92, 0x40, 
-0x91, 0x20, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x23, 0x60, 0x84, 0x24, 0x23, 
-0xd8, 0x8c, 0x23, 0x58, 0x84, 0x24, 0x23, 0xd0, 0x90, 0x48, 0x8c, 0x23, 
-0x50, 0x84, 0x24, 0x23, 0xc8, 0x8c, 0x23, 0x48, 0x84, 0x24, 0x23, 0xc0, 
-0x90, 0x90, 0x90, 0x48, 0x8c, 0x23, 0x38, 0x84, 0x24, 0x23, 0xb0, 0x8c, 
-0x23, 0x30, 0x84, 0x24, 0x23, 0xa8, 0x90, 0x48, 0x8c, 0x23, 0x28, 0x84, 
-0x24, 0x23, 0xa0, 0x8c, 0x23, 0x20, 0x84, 0x24, 0x23, 0x98, 0x91, 0x20, 
-0x90, 0x90, 0x90, 0x48, 0x8c, 0x23, 0x10, 0x84, 0x24, 0x23, 0x88, 0x8c, 
-0x23, 0x08, 0x84, 0x24, 0x23, 0x80, 0x90, 0x48, 0x8c, 0x23, 0x00, 0x84, 
-0x24, 0x23, 0x78, 0x8c, 0x22, 0xf8, 0x84, 0x24, 0x23, 0x70, 0x90, 0x38, 
-0xa4, 0x22, 0xe0, 0x34, 0x5d, 0xa4, 0x22, 0xd0, 0x34, 0x5b, 0xa0, 0x0f, 
-0x50, 0xa0, 0x09, 0x08, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90, 0x90, 0xc8, 
-0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x1c, 0x00, 0x38, 0x6c, 0xe5, 0x22, 
-0x18, 0x00, 0x38, 0x6a, 0xcb, 0x61, 0x12, 0x40, 0x85, 0x34, 0x58, 0x98, 
-0x50, 0x00, 0x80, 0xe5, 0x22, 0x14, 0x00, 0x38, 0x4c, 0xe5, 0x22, 0x10, 
-0x00, 0x38, 0x4a, 0xcb, 0x61, 0x12, 0x00, 0x85, 0x34, 0x57, 0x90, 0x48, 
-0xcb, 0xa1, 0x11, 0xc0, 0x85, 0x34, 0x56, 0xcb, 0xa1, 0x11, 0x80, 0x85, 
-0x34, 0x55, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 
-0x09, 0x00, 0x38, 0x30, 0xe5, 0x22, 0x03, 0x00, 0x38, 0x18, 0xcb, 0x61, 
-0x11, 0x00, 0x85, 0x34, 0x53, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x21, 0xfd, 
-0x00, 0x38, 0x00, 0xe5, 0x21, 0xf7, 0x00, 0x37, 0xe8, 0xcb, 0x61, 0x10, 
-0xc0, 0x85, 0x34, 0x52, 0x90, 0x48, 0xcb, 0xa1, 0x10, 0x80, 0x85, 0x34, 
-0x51, 0xcb, 0xa1, 0x10, 0x40, 0x85, 0x34, 0x50, 0x92, 0x20, 0x91, 0x30, 
-0x90, 0xb8, 0xd5, 0x03, 0x00, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0xa0, 0x84, 
-0x30, 0x3e, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0x80, 0x84, 0x30, 0x3c, 0xd5, 
-0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x28, 0xc0, 0xc0, 0x81, 0x30, 0x24, 
-0x90, 0x78, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x1c, 0xc0, 0xc0, 
-0x81, 0x30, 0x18, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x10, 0xc0, 
-0xc0, 0x81, 0x30, 0x0c, 0x91, 0x70, 0x90, 0xd8, 0xd5, 0x03, 0x80, 0xc8, 
-0xe1, 0xf3, 0x00, 0x81, 0x8c, 0x01, 0xc0, 0x84, 0x30, 0x40, 0xc8, 0xe1, 
-0xf4, 0x00, 0x81, 0x8c, 0x01, 0x90, 0x84, 0x30, 0x3d, 0xd5, 0x02, 0x80, 
-0xc8, 0xe1, 0xf2, 0x80, 0x81, 0x30, 0x2c, 0xc8, 0xe1, 0xef, 0x80, 0x81, 
-0x30, 0x26, 0x90, 0x98, 0xd5, 0x02, 0x80, 0xc8, 0xe1, 0xe9, 0x80, 0x81, 
-0x30, 0x20, 0xc8, 0xe1, 0xea, 0x80, 0x81, 0x30, 0x1a, 0xd5, 0x02, 0x80, 
-0xc8, 0xe1, 0xe9, 0x00, 0x81, 0x30, 0x14, 0xc8, 0xe1, 0xe6, 0x00, 0x81, 
-0x30, 0x0e, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 
-0x00, 0x80, 0xe5, 0x22, 0x16, 0x00, 0x38, 0x54, 0xe5, 0x22, 0x17, 0x00, 
-0x38, 0x66, 0xcb, 0x61, 0x0f, 0xc0, 0x85, 0x34, 0x4e, 0x98, 0x50, 0x00, 
-0x80, 0xe5, 0x22, 0x0e, 0x00, 0x38, 0x34, 0xe5, 0x22, 0x0f, 0x00, 0x38, 
-0x46, 0xcb, 0x61, 0x0f, 0x80, 0x85, 0x34, 0x4d, 0x90, 0x48, 0xcb, 0xa1, 
-0x0f, 0x40, 0x85, 0x34, 0x4c, 0xcb, 0xa1, 0x0f, 0x00, 0x85, 0x34, 0x4b, 
-0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x07, 0x00, 
-0x38, 0x28, 0xe5, 0x22, 0x01, 0x00, 0x38, 0x10, 0xcb, 0x61, 0x0d, 0x40, 
-0x85, 0x34, 0x3a, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x21, 0xfb, 0x00, 0x37, 
-0xf8, 0xe5, 0x21, 0xf5, 0x00, 0x37, 0xe0, 0xcb, 0x61, 0x0d, 0x00, 0x85, 
-0x34, 0x39, 0x90, 0x48, 0xcb, 0xa1, 0x0c, 0xc0, 0x85, 0x34, 0x38, 0xcb, 
-0xa1, 0x0c, 0x80, 0x85, 0x34, 0x37, 0x91, 0x00, 0x90, 0x80, 0x90, 0x40, 
-0xe5, 0x20, 0x02, 0x40, 0x30, 0x0a, 0xe5, 0x20, 0x01, 0x80, 0x30, 0x07, 
-0x90, 0x40, 0xe5, 0x20, 0x00, 0xc0, 0x30, 0x04, 0xe5, 0x20, 0x00, 0x00, 
-0x30, 0x01, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x21, 0xed, 0x00, 0x37, 0xae, 
-0xe5, 0x21, 0xee, 0x40, 0x37, 0xc4, 0x90, 0x40, 0xe5, 0x21, 0xe3, 0x80, 
-0x37, 0x88, 0xe5, 0x21, 0xe4, 0xc0, 0x37, 0x9e, 0x80, 0x99, 0x28, 0x02, 
-0xf0, 0x8c, 0x21, 0x48, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x22, 0x19, 0x00, 
-0x38, 0x62, 0xe5, 0x22, 0x17, 0x80, 0x38, 0x68, 0x90, 0x40, 0xe5, 0x22, 
-0x11, 0x00, 0x38, 0x42, 0xe5, 0x22, 0x0f, 0x80, 0x38, 0x48, 0x91, 0x48, 
-0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x08, 0x00, 0x38, 0x2c, 
-0xe5, 0x22, 0x02, 0x00, 0x38, 0x14, 0xcb, 0x61, 0x0b, 0x00, 0x85, 0x34, 
-0x30, 0x90, 0x40, 0xe5, 0x21, 0xfc, 0x00, 0x37, 0xfc, 0xe5, 0x21, 0xf6, 
-0x00, 0x37, 0xe4, 0x90, 0x48, 0xcb, 0xa1, 0x0a, 0x80, 0x85, 0x34, 0x2e, 
-0xcb, 0xa1, 0x0a, 0xc0, 0x85, 0x34, 0x2f, 0x10, 0x10, 0x90, 0x80, 0x90, 
-0x40, 0xe5, 0x21, 0xf0, 0x80, 0x37, 0xc0, 0xe5, 0x21, 0xef, 0x00, 0x37, 
-0xc8, 0x90, 0x40, 0xe5, 0x21, 0xe7, 0x00, 0x37, 0x9a, 0xe5, 0x21, 0xe5, 
-0x80, 0x37, 0xa2, 
+0xa0, 0xc4, 0xd8, 0xa0, 0x2d, 0x88, 0xa0, 0x2b, 0x70, 0xa0, 0x1a, 0xb0, 
+0x98, 0xb0, 0x01, 0x40, 0x90, 0x50, 0x90, 0x28, 0x24, 0x31, 0xf8, 0x24, 
+0x31, 0xf0, 0x90, 0x28, 0x24, 0x31, 0xe8, 0x24, 0x31, 0xe0, 0x90, 0x50, 
+0x90, 0x28, 0x24, 0x31, 0xd0, 0x24, 0x31, 0xc8, 0x90, 0x28, 0x24, 0x31, 
+0xc0, 0x24, 0x31, 0xb8, 0xa8, 0x0b, 0x48, 0x15, 0x20, 0x97, 0x20, 0x95, 
+0xc8, 0x9a, 0xb8, 0x05, 0x38, 0x91, 0x18, 0x90, 0xa0, 0x90, 0x60, 0x80, 
+0x90, 0x20, 0x34, 0x3c, 0xa4, 0x21, 0xb0, 0x34, 0x39, 0x80, 0xa4, 0x2f, 
+0x70, 0x35, 0xf3, 0x90, 0x50, 0x90, 0x28, 0x80, 0x35, 0xe9, 0x80, 0x34, 
+0x1d, 0x81, 0x33, 0xb9, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x20, 
+0xc8, 0x34, 0x1a, 0xa4, 0x1d, 0xc0, 0x34, 0x17, 0x90, 0x38, 0xa4, 0x31, 
+0x70, 0x36, 0x34, 0xa4, 0x31, 0x18, 0x36, 0x28, 0x90, 0x70, 0x90, 0x38, 
+0xa4, 0x2f, 0xf0, 0x36, 0x09, 0xa4, 0x2f, 0xc8, 0x36, 0x04, 0x80, 0xa4, 
+0x20, 0xa8, 0x34, 0x16, 0x92, 0x18, 0x91, 0xc0, 0x80, 0x91, 0x80, 0x90, 
+0xf8, 0xdb, 0x84, 0x60, 0xef, 0x00, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x28, 
+0x8c, 0x3c, 0x88, 0x84, 0x37, 0x9b, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x18, 
+0x8c, 0x3c, 0x68, 0x84, 0x37, 0x99, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 
+0x81, 0x37, 0x4d, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x4b, 0xa4, 0x1d, 0xd0, 
+0x33, 0xbb, 0x80, 0x90, 0x28, 0x80, 0x33, 0xb7, 0x80, 0x34, 0x1f, 0x81, 
+0x90, 0x38, 0xa4, 0x21, 0x30, 0x34, 0x22, 0xa4, 0x21, 0x00, 0x34, 0x1c, 
+0xc0, 0x40, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x1d, 0xa8, 0x33, 0xb6, 0xa4, 
+0x1d, 0x98, 0x33, 0xb4, 0x18, 0x24, 0x21, 0xa8, 0x83, 0x90, 0xa8, 0xd3, 
+0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xf8, 0x37, 0x85, 0xc0, 0xc0, 
+0x80, 0xa4, 0x3a, 0xe8, 0x37, 0x81, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 
+0x81, 0x37, 0x47, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x45, 0x92, 0xb8, 0x99, 
+0x84, 0x21, 0x20, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x2f, 
+0x68, 0x35, 0xf2, 0x82, 0x35, 0xe8, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 
+0xa4, 0x31, 0x68, 0x36, 0x33, 0xa4, 0x31, 0x10, 0x36, 0x27, 0x80, 0x90, 
+0x38, 0xa4, 0x2f, 0xe8, 0x36, 0x08, 0xa4, 0x2f, 0xc0, 0x36, 0x03, 0x83, 
+0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xc8, 0x37, 
+0x79, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xb8, 0x37, 0x75, 0xd3, 0x82, 0x40, 
+0x50, 0xc0, 0xc0, 0x81, 0x37, 0x41, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x3f, 
+0x18, 0x24, 0x21, 0x28, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 
+0x80, 0xa4, 0x3a, 0x98, 0x37, 0x6d, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x88, 
+0x37, 0x69, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x3b, 0x50, 
+0xc0, 0xc0, 0x81, 0x37, 0x39, 0x94, 0x50, 0x92, 0xf8, 0x99, 0x84, 0x1e, 
+0x00, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x2f, 0x60, 0x35, 
+0xf1, 0x82, 0x35, 0xe7, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x31, 
+0x60, 0x36, 0x32, 0xa4, 0x31, 0x08, 0x36, 0x26, 0x80, 0x90, 0x38, 0xa4, 
+0x2f, 0xe0, 0x36, 0x07, 0xa4, 0x2f, 0xb8, 0x36, 0x02, 0x83, 0x90, 0xe8, 
+0xd3, 0x83, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x38, 0x8c, 0x3c, 0xa8, 
+0x84, 0x37, 0x9d, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x20, 0x8c, 0x3c, 0x78, 
+0x84, 0x37, 0x9a, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x4f, 
+0x50, 0xc0, 0xc0, 0x81, 0x37, 0x4c, 0x18, 0x24, 0x1d, 0xf8, 0x83, 0x90, 
+0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x08, 0x37, 0x89, 
+0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xf0, 0x37, 0x83, 0xd3, 0x82, 0x40, 0x50, 
+0xc0, 0xc0, 0x81, 0x37, 0x49, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x46, 0x92, 
+0xb8, 0x99, 0x84, 0x1d, 0xf0, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 
+0xa4, 0x2f, 0x58, 0x35, 0xf0, 0x82, 0x35, 0xe6, 0x90, 0x80, 0x10, 0x10, 
+0x90, 0x38, 0xa4, 0x31, 0x58, 0x36, 0x31, 0xa4, 0x31, 0x00, 0x36, 0x25, 
+0x80, 0x90, 0x38, 0xa4, 0x2f, 0xd8, 0x36, 0x06, 0xa4, 0x2f, 0xb0, 0x36, 
+0x01, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 
+0xd8, 0x37, 0x7d, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xc0, 0x37, 0x77, 0xd3, 
+0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x43, 0x50, 0xc0, 0xc0, 0x81, 
+0x37, 0x40, 0x18, 0x20, 0x01, 0x48, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 
+0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xa8, 0x37, 0x71, 0xc0, 0xc0, 0x80, 0xa4, 
+0x3a, 0x90, 0x37, 0x6b, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 
+0x3d, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x3a, 0xda, 0x06, 0xe0, 0xef, 0x40, 
+0x90, 0x60, 0x90, 0x38, 0xa4, 0x21, 0x98, 0x34, 0x31, 0x80, 0x34, 0x2e, 
+0x90, 0x38, 0xa4, 0x21, 0x40, 0x34, 0x2c, 0x80, 0x34, 0x29, 0x90, 0x60, 
+0x90, 0x38, 0xa4, 0x21, 0x80, 0x34, 0x32, 0x80, 0x34, 0x2f, 0x90, 0x38, 
+0xa4, 0x21, 0x58, 0x34, 0x2d, 0x80, 0x34, 0x2a, 0xc8, 0x40, 0x19, 0x00, 
+0x91, 0x58, 0x90, 0x60, 0x82, 0x90, 0x20, 0x35, 0xe5, 0xa4, 0x2f, 0x18, 
+0x35, 0xe4, 0x90, 0xc0, 0x80, 0x90, 0x90, 0x90, 0x48, 0xc9, 0xe1, 0x87, 
+0x80, 0x85, 0x36, 0x1d, 0xc9, 0xe1, 0x86, 0xc0, 0x85, 0x36, 0x1a, 0x80, 
+0x36, 0x19, 0x10, 0x10, 0x81, 0x35, 0xf5, 0x90, 0xa8, 0x10, 0x10, 0x90, 
+0x28, 0x81, 0x36, 0x13, 0x90, 0x38, 0xa4, 0x30, 0x70, 0x36, 0x0f, 0xa4, 
+0x30, 0x60, 0x36, 0x0d, 0x90, 0x70, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x30, 
+0x88, 0x36, 0x12, 0x80, 0x36, 0x10, 0x90, 0x60, 0x90, 0x28, 0x24, 0x30, 
+0xc0, 0xa4, 0x30, 0xb0, 0x36, 0x17, 0x80, 0xa4, 0x30, 0xa0, 0x36, 0x15, 
+0x80, 0x90, 0xf8, 0x90, 0x90, 0x90, 0x50, 0x90, 0x28, 0x80, 0x37, 0x31, 
+0x80, 0x37, 0x38, 0x80, 0xa4, 0x39, 0xb0, 0x37, 0x37, 0x90, 0x28, 0x81, 
+0x37, 0x35, 0x80, 0xa4, 0x39, 0x98, 0x37, 0x34, 0x83, 0x37, 0x32, 0x98, 
+0xe8, 0x01, 0xb0, 0x90, 0x88, 0x90, 0x60, 0xa4, 0x2f, 0x08, 0x10, 0x10, 
+0x10, 0x10, 0x83, 0x33, 0x8f, 0x24, 0x2f, 0x00, 0x90, 0x28, 0x24, 0x2e, 
+0xf8, 0x24, 0x2e, 0xf0, 0x90, 0x88, 0x90, 0x60, 0xa4, 0x2e, 0xe0, 0x10, 
+0x10, 0x10, 0x10, 0x83, 0x33, 0x8e, 0x24, 0x2e, 0xd8, 0x90, 0x28, 0x24, 
+0x2e, 0xd0, 0x24, 0x2e, 0xc8, 0xa8, 0x09, 0x00, 0x0e, 0x20, 0x96, 0x48, 
+0x95, 0xe8, 0x93, 0x38, 0x91, 0xa0, 0x90, 0xd0, 0x90, 0x70, 0x90, 0x38, 
+0xa4, 0x1d, 0x20, 0x33, 0xa5, 0xa4, 0x1d, 0x10, 0x33, 0xa3, 0x90, 0x38, 
+0xa4, 0x1d, 0x00, 0x33, 0xa1, 0x80, 0x33, 0x9f, 0x90, 0x60, 0x90, 0x28, 
+0x24, 0x1c, 0xc0, 0xa4, 0x1c, 0xb0, 0x33, 0x97, 0x90, 0x38, 0xa4, 0x1c, 
+0xa0, 0x33, 0x95, 0xa4, 0x1c, 0xe8, 0x33, 0x9e, 0x90, 0xe0, 0x90, 0x70, 
+0x90, 0x38, 0xa4, 0x1c, 0xd8, 0x33, 0x9c, 0xa4, 0x1c, 0xc8, 0x33, 0x9a, 
+0x90, 0x38, 0xa4, 0x2e, 0x80, 0x35, 0xd6, 0xa4, 0x2e, 0x20, 0x35, 0xca, 
+0x90, 0x70, 0x90, 0x38, 0xa4, 0x2b, 0x60, 0x35, 0x78, 0xa4, 0x2b, 0x30, 
+0x35, 0x72, 0x10, 0x10, 0xa4, 0x1c, 0x90, 0x33, 0x93, 0x99, 0x60, 0x02, 
+0x70, 0x90, 0x90, 0x90, 0x50, 0x90, 0x28, 0x24, 0x1d, 0x50, 0x80, 0x33, 
+0xb1, 0x80, 0xa4, 0x1d, 0x58, 0x33, 0xaf, 0x90, 0x50, 0x90, 0x28, 0x24, 
+0x1d, 0x60, 0x80, 0x33, 0xb2, 0x90, 0x38, 0xa4, 0x1d, 0x68, 0x33, 0xb0, 
+0xa4, 0x1d, 0x30, 0x33, 0xa7, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 
+0x2d, 0xb8, 0x35, 0xbf, 0xa4, 0x2d, 0x18, 0x35, 0xac, 0x90, 0x38, 0xa4, 
+0x2c, 0xb0, 0x35, 0x9d, 0xa4, 0x2c, 0x20, 0x35, 0x8c, 0x81, 0xa4, 0x1d, 
+0x40, 0x33, 0xa9, 0xe4, 0xa1, 0xca, 0xc0, 0x37, 0x2d, 0x18, 0x24, 0x1c, 
+0x88, 0xe4, 0xe1, 0xc9, 0x40, 0x37, 0x27, 0x92, 0x40, 0x91, 0x08, 0x10, 
+0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2e, 0x78, 0x35, 0xd5, 
+0xa4, 0x2e, 0x18, 0x35, 0xc9, 0x80, 0x90, 0x38, 0xa4, 0x2b, 0x58, 0x35, 
+0x77, 0xa4, 0x2b, 0x28, 0x35, 0x71, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 
+0x70, 0x90, 0x38, 0xa4, 0x2d, 0xa8, 0x35, 0xbe, 0xa4, 0x2d, 0x10, 0x35, 
+0xaa, 0x90, 0x38, 0xa4, 0x2c, 0xa0, 0x35, 0x9c, 0xa4, 0x2c, 0x18, 0x35, 
+0x8a, 0xe4, 0xa1, 0xc7, 0xc0, 0x37, 0x21, 0x18, 0x24, 0x1c, 0x80, 0xe4, 
+0xe1, 0xc6, 0x40, 0x37, 0x1b, 0x92, 0x90, 0x92, 0x40, 0x91, 0x08, 0x10, 
+0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2e, 0x70, 0x35, 0xd4, 
+0xa4, 0x2e, 0x10, 0x35, 0xc8, 0x80, 0x90, 0x38, 0xa4, 0x2b, 0x50, 0x35, 
+0x76, 0xa4, 0x2b, 0x20, 0x35, 0x70, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 
+0x70, 0x90, 0x38, 0xa4, 0x2d, 0x98, 0x35, 0xbd, 0xa4, 0x2d, 0x08, 0x35, 
+0xa8, 0x90, 0x38, 0xa4, 0x2c, 0x90, 0x35, 0x9b, 0xa4, 0x2c, 0x10, 0x35, 
+0x88, 0xe4, 0xa1, 0xcb, 0x00, 0x37, 0x2f, 0x10, 0x10, 0xe4, 0xe1, 0xc9, 
+0x80, 0x37, 0x29, 0x92, 0x50, 0x99, 0x1c, 0x1d, 0x70, 0x10, 0x10, 0x90, 
+0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2e, 0x68, 0x35, 0xd3, 0xa4, 0x2e, 
+0x08, 0x35, 0xc7, 0x80, 0x90, 0x38, 0xa4, 0x2b, 0x48, 0x35, 0x75, 0xa4, 
+0x2b, 0x18, 0x35, 0x6f, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 0x70, 0x90, 
+0x38, 0xa4, 0x2d, 0x88, 0x35, 0xbc, 0xa4, 0x2d, 0x00, 0x35, 0xa6, 0x90, 
+0x38, 0xa4, 0x2c, 0x80, 0x35, 0x9a, 0xa4, 0x2c, 0x08, 0x35, 0x86, 0xe4, 
+0xa1, 0xc8, 0x00, 0x37, 0x23, 0x10, 0x10, 0xe4, 0xe1, 0xc6, 0x80, 0x37, 
+0x1d, 0xc0, 0x40, 0x80, 0x10, 0x10, 0x81, 0x90, 0x90, 0x90, 0x48, 0xc9, 
+0xe1, 0x5f, 0x00, 0x85, 0x35, 0x80, 0xc9, 0xe1, 0x5f, 0x80, 0x85, 0x35, 
+0x7d, 0x80, 0x35, 0x7b, 0x80, 0xd8, 0x47, 0x80, 0x0d, 0xc0, 0xc0, 0x80, 
+0x10, 0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, 0x17, 0x80, 
+0x37, 0x15, 0xd5, 0x81, 0x80, 0x80, 0x37, 0x13, 0x80, 0x37, 0x11, 0xc0, 
+0x80, 0x10, 0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, 0x18, 
+0x80, 0x37, 0x16, 0xd5, 0x81, 0x80, 0x80, 0x37, 0x14, 0x80, 0x37, 0x12, 
+0xc0, 0x80, 0x83, 0xa4, 0x38, 0x78, 0x37, 0x10, 0xa0, 0x57, 0xc0, 0xa0, 
+0x41, 0xe0, 0xa8, 0x1e, 0xb0, 0x34, 0x88, 0xa0, 0x12, 0x38, 0xa0, 0x0b, 
+0x48, 0x96, 0x00, 0x9a, 0xf0, 0x05, 0xc0, 0x91, 0x70, 0x90, 0xb8, 0x90, 
+0x70, 0x90, 0x38, 0xa4, 0x14, 0x80, 0x33, 0x8d, 0xa4, 0x14, 0x90, 0x33, 
+0x8c, 0x10, 0x10, 0xa4, 0x14, 0x88, 0x33, 0x8b, 0x90, 0x70, 0x90, 0x38, 
+0xa4, 0x14, 0x50, 0x33, 0x72, 0xa4, 0x14, 0x60, 0x33, 0x71, 0x10, 0x10, 
+0xa4, 0x14, 0x58, 0x33, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 
+0x14, 0x20, 0x33, 0x57, 0xa4, 0x14, 0x30, 0x33, 0x56, 0x10, 0x10, 0xa4, 
+0x14, 0x28, 0x33, 0x55, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xf0, 0x33, 
+0x3b, 0xa4, 0x14, 0x00, 0x33, 0x3a, 0x10, 0x10, 0xa4, 0x13, 0xf8, 0x33, 
+0x39, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x68, 
+0x33, 0x88, 0xa4, 0x14, 0x78, 0x33, 0x8a, 0x10, 0x10, 0xa4, 0x14, 0x70, 
+0x33, 0x89, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x38, 0x33, 0x6d, 0xa4, 
+0x14, 0x48, 0x33, 0x6f, 0x10, 0x10, 0xa4, 0x14, 0x40, 0x33, 0x6e, 0x90, 
+0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x08, 0x33, 0x52, 0xa4, 0x14, 
+0x18, 0x33, 0x54, 0x10, 0x10, 0xa4, 0x14, 0x10, 0x33, 0x53, 0x90, 0x70, 
+0x90, 0x38, 0xa4, 0x13, 0xd8, 0x33, 0x36, 0xa4, 0x13, 0xe8, 0x33, 0x38, 
+0x10, 0x10, 0xa4, 0x13, 0xe0, 0x33, 0x37, 0xe4, 0xe1, 0x55, 0x40, 0x35, 
+0x5f, 0x9a, 0xf0, 0x05, 0x00, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 
+0x38, 0xa4, 0x13, 0xa0, 0x33, 0x85, 0xa4, 0x13, 0x98, 0x33, 0x87, 0x10, 
+0x10, 0xa4, 0x13, 0x90, 0x33, 0x86, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 
+0x88, 0x33, 0x6a, 0xa4, 0x13, 0x80, 0x33, 0x6c, 0x10, 0x10, 0xa4, 0x13, 
+0x78, 0x33, 0x6b, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x70, 
+0x33, 0x4f, 0xa4, 0x13, 0x68, 0x33, 0x51, 0x10, 0x10, 0xa4, 0x13, 0x60, 
+0x33, 0x50, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x58, 0x33, 0x33, 0xa4, 
+0x13, 0x50, 0x33, 0x35, 0x10, 0x10, 0xa4, 0x13, 0x48, 0x33, 0x34, 0x91, 
+0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x82, 0x80, 0x33, 
+0x84, 0x10, 0x10, 0x80, 0x33, 0x83, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 
+0x67, 0x80, 0x33, 0x69, 0x10, 0x10, 0x80, 0x33, 0x68, 0x90, 0x88, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x33, 0x4c, 0x80, 0x33, 0x4e, 0x10, 0x10, 0x80, 
+0x33, 0x4d, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x30, 0x80, 0x33, 0x32, 
+0x10, 0x10, 0x80, 0x33, 0x31, 0xe4, 0xe1, 0x42, 0xc0, 0x35, 0x1f, 0x95, 
+0x40, 0x9a, 0x90, 0x05, 0x00, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 
+0x28, 0x80, 0x33, 0x7f, 0x80, 0x33, 0x81, 0x10, 0x10, 0x80, 0x33, 0x80, 
+0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x64, 0x80, 0x33, 0x66, 0x10, 0x10, 
+0x80, 0x33, 0x65, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x30, 
+0x33, 0x49, 0xa4, 0x13, 0x40, 0x33, 0x4b, 0x10, 0x10, 0xa4, 0x13, 0x38, 
+0x33, 0x4a, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x00, 0x33, 0x2d, 0xa4, 
+0x13, 0x10, 0x33, 0x2f, 0x10, 0x10, 0xa4, 0x13, 0x08, 0x33, 0x2e, 0x91, 
+0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x7c, 0x80, 0x33, 
+0x7e, 0x10, 0x10, 0x80, 0x33, 0x7d, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 
+0x61, 0x80, 0x33, 0x63, 0x10, 0x10, 0x80, 0x33, 0x62, 0x90, 0xb8, 0x90, 
+0x70, 0x90, 0x38, 0xa4, 0x13, 0x18, 0x33, 0x46, 0xa4, 0x13, 0x28, 0x33, 
+0x48, 0x10, 0x10, 0xa4, 0x13, 0x20, 0x33, 0x47, 0x90, 0x70, 0x90, 0x38, 
+0xa4, 0x12, 0xe8, 0x33, 0x2a, 0xa4, 0x12, 0xf8, 0x33, 0x2c, 0x10, 0x10, 
+0xa4, 0x12, 0xf0, 0x33, 0x2b, 0xe4, 0xe1, 0x54, 0xc0, 0x35, 0x5d, 0x98, 
+0xb8, 0x01, 0x68, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 
+0x33, 0x27, 0x80, 0x33, 0x29, 0x10, 0x10, 0x80, 0x33, 0x28, 0x90, 0x60, 
+0x90, 0x30, 0x60, 0xa0, 0x97, 0x00, 0x60, 0xa0, 0x96, 0xc0, 0x90, 0x30, 
+0x60, 0xa0, 0x96, 0x80, 0x60, 0xa0, 0x96, 0x40, 0xe4, 0xe1, 0x41, 0xc0, 
+0x35, 0x1b, 0xa0, 0x08, 0x08, 0x94, 0xe0, 0x9a, 0x60, 0x04, 0xa0, 0x91, 
+0x40, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xc0, 0x33, 0x76, 
+0xa4, 0x13, 0xd0, 0x33, 0x7b, 0x10, 0x10, 0xa4, 0x13, 0xc8, 0x33, 0x7a, 
+0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x5b, 0x80, 0x33, 0x60, 0x10, 0x10, 
+0x80, 0x33, 0x5f, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x40, 
+0x80, 0x33, 0x45, 0x10, 0x10, 0x80, 0x33, 0x44, 0x90, 0x50, 0x90, 0x28, 
+0x80, 0x33, 0x21, 0x80, 0x33, 0x26, 0x10, 0x10, 0x80, 0x33, 0x25, 0x91, 
+0x40, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xa8, 0x33, 0x73, 
+0xa4, 0x13, 0xb8, 0x33, 0x75, 0x10, 0x10, 0xa4, 0x13, 0xb0, 0x33, 0x74, 
+0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x58, 0x80, 0x33, 0x5a, 0x10, 0x10, 
+0x80, 0x33, 0x59, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x3d, 
+0x80, 0x33, 0x3f, 0x10, 0x10, 0x80, 0x33, 0x3e, 0x90, 0x50, 0x90, 0x28, 
+0x80, 0x33, 0x1e, 0x80, 0x33, 0x20, 0x10, 0x10, 0x80, 0x33, 0x1f, 0xe4, 
+0xe1, 0x54, 0x40, 0x35, 0x5b, 0x9a, 0x60, 0x02, 0xe0, 0x91, 0x40, 0x90, 
+0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x18, 0xe8, 0x33, 0x77, 0xa4, 0x18, 
+0xe0, 0x33, 0x79, 0x10, 0x10, 0xa4, 0x18, 0xd8, 0x33, 0x78, 0x90, 0x50, 
+0x90, 0x28, 0x80, 0x33, 0x5c, 0x80, 0x33, 0x5e, 0x10, 0x10, 0x80, 0x33, 
+0x5d, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x41, 0x80, 0x33, 
+0x43, 0x10, 0x10, 0x80, 0x33, 0x42, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 
+0x22, 0x80, 0x33, 0x24, 0x10, 0x10, 0x80, 0x33, 0x23, 0x81, 0x90, 0x50, 
+0x90, 0x28, 0x24, 0x18, 0xc0, 0x24, 0x18, 0xd0, 0x10, 0x10, 0x24, 0x18, 
+0xc8, 0xe4, 0xe1, 0x40, 0xc0, 0x35, 0x17, 0x93, 0x90, 0x99, 0xb8, 0x03, 
+0x50, 0x90, 0xe8, 0x90, 0x88, 0x90, 0x40, 0x80, 0xa4, 0x14, 0xb0, 0x32, 
+0xa8, 0x10, 0x10, 0xa4, 0x14, 0xa8, 0x32, 0xa7, 0x90, 0x28, 0x81, 0x32, 
+0xa4, 0x10, 0x10, 0x80, 0x32, 0xa3, 0x90, 0x60, 0x90, 0x28, 0x81, 0x32, 
+0xa0, 0x10, 0x10, 0x80, 0x32, 0x9f, 0x90, 0x28, 0x81, 0x32, 0x9c, 0x10, 
+0x10, 0x80, 0x32, 0x9b, 0x90, 0xe8, 0x90, 0x88, 0x90, 0x40, 0x80, 0xa4, 
+0x14, 0x98, 0x32, 0xa5, 0x10, 0x10, 0xa4, 0x14, 0xa0, 0x32, 0xa6, 0x90, 
+0x28, 0x81, 0x32, 0xa1, 0x10, 0x10, 0x80, 0x32, 0xa2, 0x90, 0x60, 0x90, 
+0x28, 0x81, 0x32, 0x9d, 0x10, 0x10, 0x80, 0x32, 0x9e, 0x90, 0x28, 0x81, 
+0x32, 0x99, 0x10, 0x10, 0x80, 0x32, 0x9a, 0xe4, 0xe1, 0x53, 0xc0, 0x35, 
+0x59, 0x88, 0x00, 0x88, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, 0x32, 
+0x97, 0x10, 0x10, 0x80, 0x32, 0x98, 0xe4, 0xe1, 0x3f, 0xc0, 0x35, 0x13, 
+0xa0, 0x0e, 0x80, 0xa0, 0x09, 0x08, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 
+0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x17, 0x80, 
+0x33, 0x16, 0x10, 0x10, 0x80, 0x33, 0x15, 0x90, 0x50, 0x90, 0x28, 0x80, 
+0x32, 0xfc, 0x80, 0x32, 0xfb, 0x10, 0x10, 0x80, 0x32, 0xfa, 0x90, 0x88, 
+0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe1, 0x80, 0x32, 0xe0, 0x10, 0x10, 
+0x80, 0x32, 0xdf, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xc6, 0x80, 0x32, 
+0xc5, 0x10, 0x10, 0x80, 0x32, 0xc4, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 
+0x90, 0x28, 0x80, 0x33, 0x12, 0x80, 0x33, 0x14, 0x10, 0x10, 0x80, 0x33, 
+0x13, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf7, 0x80, 0x32, 0xf9, 0x10, 
+0x10, 0x80, 0x32, 0xf8, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 
+0xdc, 0x80, 0x32, 0xde, 0x10, 0x10, 0x80, 0x32, 0xdd, 0x90, 0x50, 0x90, 
+0x28, 0x80, 0x32, 0xc1, 0x80, 0x32, 0xc3, 0x10, 0x10, 0x80, 0x32, 0xc2, 
+0xe4, 0xe1, 0x4c, 0xc0, 0x35, 0x47, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 
+0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x0f, 0x80, 0x33, 0x11, 
+0x10, 0x10, 0x80, 0x33, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf4, 
+0x80, 0x32, 0xf6, 0x10, 0x10, 0x80, 0x32, 0xf5, 0x90, 0x88, 0x90, 0x50, 
+0x90, 0x28, 0x80, 0x32, 0xd9, 0x80, 0x32, 0xdb, 0x10, 0x10, 0x80, 0x32, 
+0xda, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xbe, 0x80, 0x32, 0xc0, 0x10, 
+0x10, 0x80, 0x32, 0xbf, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 
+0x80, 0x33, 0x0c, 0x80, 0x33, 0x0e, 0x10, 0x10, 0x80, 0x33, 0x0d, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x32, 0xf1, 0x80, 0x32, 0xf3, 0x10, 0x10, 0x80, 
+0x32, 0xf2, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xd6, 0x80, 
+0x32, 0xd8, 0x10, 0x10, 0x80, 0x32, 0xd7, 0x90, 0x50, 0x90, 0x28, 0x80, 
+0x32, 0xbb, 0x80, 0x32, 0xbd, 0x10, 0x10, 0x80, 0x32, 0xbc, 0xe4, 0xe1, 
+0x3c, 0x40, 0x34, 0xfb, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 
+0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x09, 0x80, 0x33, 0x0b, 
+0x10, 0x10, 0x80, 0x33, 0x0a, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xee, 
+0x80, 0x32, 0xf0, 0x10, 0x10, 0x80, 0x32, 0xef, 0x90, 0x88, 0x90, 0x50, 
+0x90, 0x28, 0x80, 0x32, 0xd3, 0x80, 0x32, 0xd5, 0x10, 0x10, 0x80, 0x32, 
+0xd4, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xb8, 0x80, 0x32, 0xba, 0x10, 
+0x10, 0x80, 0x32, 0xb9, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 
+0x80, 0x33, 0x06, 0x80, 0x33, 0x08, 0x10, 0x10, 0x80, 0x33, 0x07, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x32, 0xeb, 0x80, 0x32, 0xed, 0x10, 0x10, 0x80, 
+0x32, 0xec, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xd0, 0x80, 
+0x32, 0xd2, 0x10, 0x10, 0x80, 0x32, 0xd1, 0x90, 0x50, 0x90, 0x28, 0x80, 
+0x32, 0xb5, 0x80, 0x32, 0xb7, 0x10, 0x10, 0x80, 0x32, 0xb6, 0xe4, 0xe1, 
+0x4b, 0xc0, 0x35, 0x43, 0x88, 0x00, 0xb0, 0x10, 0x10, 0x10, 0x10, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x32, 0xb2, 0x80, 0x32, 0xb4, 0x10, 0x10, 0x80, 
+0x32, 0xb3, 0xe4, 0xe1, 0x3b, 0xc0, 0x34, 0xf9, 0x96, 0xe8, 0x94, 0x80, 
+0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 
+0x80, 0x33, 0x00, 0x80, 0x33, 0x05, 0x10, 0x10, 0x80, 0x33, 0x04, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x32, 0xe5, 0x80, 0x32, 0xea, 0x10, 0x10, 0x80, 
+0x32, 0xe9, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xca, 0x80, 
+0x32, 0xcf, 0x10, 0x10, 0x80, 0x32, 0xce, 0x90, 0x50, 0x90, 0x28, 0x80, 
+0x32, 0xac, 0x80, 0x32, 0xb1, 0x10, 0x10, 0x80, 0x32, 0xb0, 0x91, 0x10, 
+0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xfd, 0x80, 0x32, 0xff, 
+0x10, 0x10, 0x80, 0x32, 0xfe, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe2, 
+0x80, 0x32, 0xe4, 0x10, 0x10, 0x80, 0x32, 0xe3, 0x90, 0x88, 0x90, 0x50, 
+0x90, 0x28, 0x80, 0x32, 0xc7, 0x80, 0x32, 0xc9, 0x10, 0x10, 0x80, 0x32, 
+0xc8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xa9, 0x80, 0x32, 0xab, 0x10, 
+0x10, 0x80, 0x32, 0xaa, 0xe4, 0xe1, 0x4a, 0xc0, 0x35, 0x3f, 0x88, 0x02, 
+0x28, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x01, 
+0x80, 0x33, 0x03, 0x10, 0x10, 0x80, 0x33, 0x02, 0x90, 0x50, 0x90, 0x28, 
+0x80, 0x32, 0xe6, 0x80, 0x32, 0xe8, 0x10, 0x10, 0x80, 0x32, 0xe7, 0x90, 
+0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xcb, 0x80, 0x32, 0xcd, 0x10, 
+0x10, 0x80, 0x32, 0xcc, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xad, 0x80, 
+0x32, 0xaf, 0x10, 0x10, 0x80, 0x32, 0xae, 0xe4, 0xe1, 0x3b, 0x40, 0x34, 
+0xf7, 0x90, 0x40, 0xe5, 0x21, 0x49, 0xc0, 0x35, 0x3b, 0xe5, 0x21, 0x3a, 
+0xc0, 0x34, 0xf5, 0x9e, 0xb4, 0x20, 0xa0, 0x93, 0x70, 0x91, 0xd8, 0xd5, 
+0x07, 0x80, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x38, 0x08, 0x84, 
+0x37, 0x0b, 0xa4, 0x35, 0xe8, 0x36, 0xd5, 0x90, 0x28, 0x24, 0x35, 0x28, 
+0xa4, 0x33, 0xa8, 0x36, 0x8d, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 
+0x37, 0xe8, 0x84, 0x37, 0x09, 0xa4, 0x35, 0xd8, 0x36, 0xd3, 0x90, 0x28, 
+0x24, 0x35, 0x18, 0xa4, 0x33, 0x98, 0x36, 0x8b, 0xd5, 0x06, 0x80, 0xd0, 
+0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xf5, 0xa4, 0x35, 0xb8, 0x36, 0xcf, 
+0x90, 0x28, 0x24, 0x34, 0xf8, 0xa4, 0x33, 0x78, 0x36, 0x87, 0xd0, 0xc3, 
+0x40, 0x90, 0x28, 0x80, 0x36, 0xf1, 0xa4, 0x35, 0xa8, 0x36, 0xcd, 0x90, 
+0x28, 0x24, 0x34, 0xe8, 0xa4, 0x33, 0x68, 0x36, 0x85, 0x91, 0x98, 0xd5, 
+0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xe9, 0xa4, 0x35, 
+0x88, 0x36, 0xc9, 0x90, 0x28, 0x24, 0x34, 0xc8, 0xa4, 0x33, 0x48, 0x36, 
+0x81, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xe5, 0xa4, 0x35, 0x78, 
+0x36, 0xc7, 0x90, 0x28, 0x24, 0x34, 0xb8, 0xa4, 0x33, 0x38, 0x36, 0x7f, 
+0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xdd, 0xa4, 
+0x35, 0x58, 0x36, 0xc3, 0x90, 0x28, 0x24, 0x34, 0x98, 0xa4, 0x33, 0x18, 
+0x36, 0x7b, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xd9, 0xa4, 0x35, 
+0x48, 0x36, 0xc1, 0x90, 0x28, 0x24, 0x34, 0x88, 0xa4, 0x33, 0x08, 0x36, 
+0x79, 0x93, 0x70, 0x91, 0xd8, 0xd5, 0x07, 0x80, 0xd0, 0xc4, 0x40, 0x90, 
+0x48, 0x80, 0x8c, 0x38, 0x28, 0x84, 0x37, 0x0d, 0xa4, 0x35, 0xf8, 0x36, 
+0xd7, 0x90, 0x28, 0x24, 0x35, 0x38, 0xa4, 0x33, 0xb8, 0x36, 0x8f, 0xd0, 
+0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x37, 0xf8, 0x84, 0x37, 0x0a, 0xa4, 
+0x35, 0xe0, 0x36, 0xd4, 0x90, 0x28, 0x24, 0x35, 0x20, 0xa4, 0x33, 0xa0, 
+0x36, 0x8c, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 
+0xf9, 0xa4, 0x35, 0xc8, 0x36, 0xd1, 0x90, 0x28, 0x24, 0x35, 0x08, 0xa4, 
+0x33, 0x88, 0x36, 0x89, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xf3, 
+0xa4, 0x35, 0xb0, 0x36, 0xce, 0x90, 0x28, 0x24, 0x34, 0xf0, 0xa4, 0x33, 
+0x70, 0x36, 0x86, 0x91, 0x98, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 
+0x28, 0x80, 0x36, 0xed, 0xa4, 0x35, 0x98, 0x36, 0xcb, 0x90, 0x28, 0x24, 
+0x34, 0xd8, 0xa4, 0x33, 0x58, 0x36, 0x83, 0xd0, 0xc3, 0x40, 0x90, 0x28, 
+0x80, 0x36, 0xe7, 0xa4, 0x35, 0x80, 0x36, 0xc8, 0x90, 0x28, 0x24, 0x34, 
+0xc0, 0xa4, 0x33, 0x40, 0x36, 0x80, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 
+0x90, 0x28, 0x80, 0x36, 0xe1, 0xa4, 0x35, 0x68, 0x36, 0xc5, 0x90, 0x28, 
+0x24, 0x34, 0xa8, 0xa4, 0x33, 0x28, 0x36, 0x7d, 0xd0, 0xc3, 0x40, 0x90, 
+0x28, 0x80, 0x36, 0xdb, 0xa4, 0x35, 0x50, 0x36, 0xc2, 0x90, 0x28, 0x24, 
+0x34, 0x90, 0xa4, 0x33, 0x10, 0x36, 0x7a, 0x99, 0x08, 0x01, 0xf0, 0x81, 
+0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, 0x20, 0x48, 0x34, 0x01, 0xa4, 0x1f, 
+0xc8, 0x33, 0xf1, 0xd4, 0xc2, 0x00, 0xa4, 0x1f, 0xd8, 0x34, 0x03, 0xa4, 
+0x1f, 0x58, 0x33, 0xf3, 0x81, 0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, 0x1f, 
+0xf8, 0x34, 0x07, 0xa4, 0x1f, 0x78, 0x33, 0xf7, 0xd4, 0xc2, 0x00, 0xa4, 
+0x1f, 0xe8, 0x34, 0x05, 0xa4, 0x1f, 0x68, 0x33, 0xf5, 0xa8, 0x0b, 0x18, 
+0x13, 0xa8, 0x96, 0x80, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0, 
+0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0xb8, 0x32, 0x58, 0x24, 0x12, 0xb0, 
+0x90, 0x38, 0xa4, 0x11, 0xe0, 0x32, 0x3d, 0x24, 0x11, 0xd8, 0x90, 0x60, 
+0x90, 0x38, 0xa4, 0x11, 0x08, 0x32, 0x22, 0x24, 0x11, 0x00, 0x90, 0x38, 
+0xa4, 0x10, 0x30, 0x32, 0x07, 0x24, 0x10, 0x28, 0x90, 0xc0, 0x90, 0x60, 
+0x90, 0x38, 0xa4, 0x12, 0xa8, 0x32, 0x53, 0x24, 0x12, 0xa0, 0x90, 0x38, 
+0xa4, 0x11, 0xd0, 0x32, 0x38, 0x24, 0x11, 0xc8, 0x90, 0x60, 0x90, 0x38, 
+0xa4, 0x10, 0xf8, 0x32, 0x1d, 0x24, 0x10, 0xf0, 0x90, 0x38, 0xa4, 0x10, 
+0x20, 0x32, 0x02, 0x24, 0x10, 0x18, 0xe4, 0xe1, 0x96, 0xc0, 0x36, 0x5d, 
+0x99, 0x90, 0x03, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 
+0x90, 0x32, 0x50, 0x24, 0x12, 0x88, 0x90, 0x38, 0xa4, 0x11, 0xb8, 0x32, 
+0x35, 0x24, 0x11, 0xb0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xe0, 0x32, 
+0x1a, 0x24, 0x10, 0xd8, 0x90, 0x38, 0xa4, 0x10, 0x08, 0x31, 0xff, 0x24, 
+0x10, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x78, 0x32, 
+0x4d, 0x24, 0x12, 0x70, 0x90, 0x38, 0xa4, 0x11, 0xa0, 0x32, 0x32, 0x24, 
+0x11, 0x98, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xc8, 0x32, 0x17, 0x24, 
+0x10, 0xc0, 0x90, 0x38, 0xa4, 0x0f, 0xf0, 0x31, 0xfc, 0x24, 0x0f, 0xe8, 
+0xe4, 0xe1, 0x95, 0x40, 0x36, 0x57, 0x93, 0x78, 0x99, 0x90, 0x03, 0x00, 
+0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x60, 0x32, 0x4a, 0x24, 
+0x12, 0x58, 0x90, 0x38, 0xa4, 0x11, 0x88, 0x32, 0x2f, 0x24, 0x11, 0x80, 
+0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xb0, 0x32, 0x14, 0x24, 0x10, 0xa8, 
+0x90, 0x38, 0xa4, 0x0f, 0xd8, 0x31, 0xf9, 0x24, 0x0f, 0xd0, 0x90, 0xc0, 
+0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x48, 0x32, 0x47, 0x24, 0x12, 0x40, 
+0x90, 0x38, 0xa4, 0x11, 0x70, 0x32, 0x2c, 0x24, 0x11, 0x68, 0x90, 0x60, 
+0x90, 0x38, 0xa4, 0x10, 0x98, 0x32, 0x11, 0x24, 0x10, 0x90, 0x90, 0x38, 
+0xa4, 0x0f, 0xc0, 0x31, 0xf6, 0x24, 0x0f, 0xb8, 0xec, 0xa1, 0x03, 0xc0, 
+0x02, 0x00, 0x34, 0x11, 0xa4, 0x32, 0x78, 0x36, 0x51, 0x88, 0x00, 0x88, 
+0x10, 0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x0f, 0xa8, 0x31, 0xf3, 0x24, 
+0x0f, 0xa0, 0xe9, 0x61, 0x03, 0x00, 0x02, 0x00, 0x34, 0x0d, 0xe3, 0x61, 
+0x92, 0x40, 0x36, 0x4b, 0x95, 0x08, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 
+0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x30, 0x32, 0x41, 0x24, 
+0x12, 0x28, 0x90, 0x38, 0xa4, 0x11, 0x58, 0x32, 0x26, 0x24, 0x11, 0x50, 
+0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0x80, 0x32, 0x0b, 0x24, 0x10, 0x78, 
+0x90, 0x38, 0xa4, 0x0f, 0x90, 0x31, 0xed, 0x24, 0x0f, 0x88, 0x90, 0xc0, 
+0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x00, 0x32, 0x3e, 0x24, 0x11, 0xf8, 
+0x90, 0x38, 0xa4, 0x11, 0x28, 0x32, 0x23, 0x24, 0x11, 0x20, 0x90, 0x60, 
+0x90, 0x38, 0xa4, 0x10, 0x50, 0x32, 0x08, 0x24, 0x10, 0x48, 0x90, 0x38, 
+0xa4, 0x0f, 0x60, 0x31, 0xea, 0x24, 0x0f, 0x58, 0xe4, 0xe1, 0x97, 0x00, 
+0x36, 0x5f, 0x88, 0x01, 0x88, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 
+0x12, 0x20, 0x32, 0x42, 0x24, 0x12, 0x18, 0x90, 0x38, 0xa4, 0x11, 0x48, 
+0x32, 0x27, 0x24, 0x11, 0x40, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0x70, 
+0x32, 0x0c, 0x24, 0x10, 0x68, 0x90, 0x38, 0xa4, 0x0f, 0x80, 0x31, 0xee, 
+0x24, 0x0f, 0x78, 0xe4, 0xe1, 0x95, 0x80, 0x36, 0x59, 0x92, 0xd0, 0x99, 
+0x50, 0x02, 0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xe9, 
+0x24, 0x0f, 0x40, 0x90, 0x28, 0x80, 0x31, 0xe5, 0x24, 0x0f, 0x20, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x31, 0xe1, 0x24, 0x0f, 0x00, 0x90, 0x28, 0x80, 
+0x31, 0xdd, 0x24, 0x0e, 0xe0, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 
+0x31, 0xe6, 0x24, 0x0f, 0x38, 0x90, 0x28, 0x80, 0x31, 0xe2, 0x24, 0x0f, 
+0x18, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xde, 0x24, 0x0e, 0xf8, 0x90, 
+0x28, 0x80, 0x31, 0xda, 0x24, 0x0e, 0xd8, 0xec, 0xe1, 0x94, 0x21, 0x04, 
+0xc0, 0x36, 0x53, 0x88, 0x00, 0x78, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 
+0x80, 0x31, 0xd8, 0x24, 0x0e, 0xc8, 0xec, 0xe1, 0x92, 0xa1, 0x02, 0xc0, 
+0x36, 0x4d, 0xe5, 0xa1, 0x3a, 0x40, 0x34, 0xe7, 0xa0, 0x2a, 0x10, 0xa8, 
+0x16, 0x60, 0x29, 0xd8, 0xa0, 0x0c, 0x48, 0xa0, 0x0a, 0xc8, 0x95, 0x60, 
+0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 
+0xa1, 0x80, 0x31, 0xa0, 0x10, 0x10, 0x80, 0x31, 0x9f, 0x90, 0x70, 0x90, 
+0x38, 0xa4, 0x08, 0x98, 0x31, 0xb3, 0xa4, 0x08, 0x90, 0x31, 0xb2, 0x10, 
+0x10, 0xa4, 0x08, 0x88, 0x31, 0xb1, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 
+0xa4, 0x09, 0xb8, 0x31, 0xd7, 0xa4, 0x09, 0xb0, 0x31, 0xd6, 0x10, 0x10, 
+0xa4, 0x09, 0xa8, 0x31, 0xd5, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x28, 
+0x31, 0xc5, 0xa4, 0x09, 0x20, 0x31, 0xc4, 0x10, 0x10, 0xa4, 0x09, 0x18, 
+0x31, 0xc3, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 
+0x9c, 0x80, 0x31, 0x9e, 0x10, 0x10, 0x80, 0x31, 0x9d, 0x90, 0x70, 0x90, 
+0x38, 0xa4, 0x08, 0x70, 0x31, 0xae, 0xa4, 0x08, 0x80, 0x31, 0xb0, 0x10, 
+0x10, 0xa4, 0x08, 0x78, 0x31, 0xaf, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 
+0xa4, 0x09, 0x90, 0x31, 0xd2, 0xa4, 0x09, 0xa0, 0x31, 0xd4, 0x10, 0x10, 
+0xa4, 0x09, 0x98, 0x31, 0xd3, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x00, 
+0x31, 0xc0, 0xa4, 0x09, 0x10, 0x31, 0xc2, 0x10, 0x10, 0xa4, 0x09, 0x08, 
+0x31, 0xc1, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 
+0x80, 0x31, 0x99, 0x80, 0x31, 0x9b, 0x10, 0x10, 0x80, 0x31, 0x9a, 0x90, 
+0x70, 0x90, 0x38, 0xa4, 0x08, 0x58, 0x31, 0xab, 0xa4, 0x08, 0x68, 0x31, 
+0xad, 0x10, 0x10, 0xa4, 0x08, 0x60, 0x31, 0xac, 0x90, 0xb8, 0x90, 0x70, 
+0x90, 0x38, 0xa4, 0x09, 0x78, 0x31, 0xcf, 0xa4, 0x09, 0x88, 0x31, 0xd1, 
+0x10, 0x10, 0xa4, 0x09, 0x80, 0x31, 0xd0, 0x90, 0x70, 0x90, 0x38, 0xa4, 
+0x08, 0xe8, 0x31, 0xbd, 0xa4, 0x08, 0xf8, 0x31, 0xbf, 0x10, 0x10, 0xa4, 
+0x08, 0xf0, 0x31, 0xbe, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 
+0x80, 0x31, 0x96, 0x80, 0x31, 0x98, 0x10, 0x10, 0x80, 0x31, 0x97, 0x90, 
+0x70, 0x90, 0x38, 0xa4, 0x08, 0x40, 0x31, 0xa8, 0xa4, 0x08, 0x50, 0x31, 
+0xaa, 0x10, 0x10, 0xa4, 0x08, 0x48, 0x31, 0xa9, 0x90, 0xb8, 0x90, 0x70, 
+0x90, 0x38, 0xa4, 0x09, 0x60, 0x31, 0xcc, 0xa4, 0x09, 0x70, 0x31, 0xce, 
+0x10, 0x10, 0xa4, 0x09, 0x68, 0x31, 0xcd, 0x90, 0x70, 0x90, 0x38, 0xa4, 
+0x08, 0xd0, 0x31, 0xba, 0xa4, 0x08, 0xe0, 0x31, 0xbc, 0x10, 0x10, 0xa4, 
+0x08, 0xd8, 0x31, 0xbb, 0x10, 0x10, 0x90, 0xa8, 0x10, 0x10, 0x10, 0x10, 
+0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x8d, 0x80, 0x31, 0x8f, 0x10, 0x10, 
+0x80, 0x31, 0x8e, 0x90, 0x60, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0xc0, 0x60, 
+0xa0, 0x2a, 0x80, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0x40, 0x60, 0xa0, 0x2a, 
+0x00, 0x97, 0xf0, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x31, 0x93, 0x80, 0x31, 0x95, 0x10, 0x10, 0x80, 
+0x31, 0x94, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x28, 0x31, 0xa5, 0xa4, 
+0x08, 0x38, 0x31, 0xa7, 0x10, 0x10, 0xa4, 0x08, 0x30, 0x31, 0xa6, 0x90, 
+0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x48, 0x31, 0xc9, 0xa4, 0x09, 
+0x58, 0x31, 0xcb, 0x10, 0x10, 0xa4, 0x09, 0x50, 0x31, 0xca, 0x90, 0x70, 
+0x90, 0x38, 0xa4, 0x08, 0xb8, 0x31, 0xb7, 0xa4, 0x08, 0xc8, 0x31, 0xb9, 
+0x10, 0x10, 0xa4, 0x08, 0xc0, 0x31, 0xb8, 0x91, 0x40, 0x90, 0x88, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x31, 0x90, 0x80, 0x31, 0x92, 0x10, 0x10, 0x80, 
+0x31, 0x91, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x10, 0x31, 0xa2, 0xa4, 
+0x08, 0x20, 0x31, 0xa4, 0x10, 0x10, 0xa4, 0x08, 0x18, 0x31, 0xa3, 0x90, 
+0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x30, 0x31, 0xc6, 0xa4, 0x09, 
+0x40, 0x31, 0xc8, 0x10, 0x10, 0xa4, 0x09, 0x38, 0x31, 0xc7, 0x90, 0x70, 
+0x90, 0x38, 0xa4, 0x08, 0xa0, 0x31, 0xb4, 0xa4, 0x08, 0xb0, 0x31, 0xb6, 
+0x10, 0x10, 0xa4, 0x08, 0xa8, 0x31, 0xb5, 0x10, 0x10, 0x91, 0x40, 0x90, 
+0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xcb, 0x80, 0x30, 0xca, 0x90, 
+0x28, 0x80, 0x30, 0xc9, 0x80, 0x30, 0xc8, 0x90, 0x50, 0x90, 0x28, 0x80, 
+0x30, 0xc4, 0x80, 0x30, 0xc7, 0x90, 0x28, 0x80, 0x30, 0xc6, 0x80, 0x30, 
+0xc5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbc, 0x80, 0x30, 
+0xc3, 0x90, 0x28, 0x80, 0x30, 0xc2, 0x80, 0x30, 0xc1, 0x90, 0x50, 0x90, 
+0x28, 0x80, 0x30, 0xbd, 0x80, 0x30, 0xc0, 0x90, 0x28, 0x80, 0x30, 0xbf, 
+0x80, 0x30, 0xbe, 0x91, 0x88, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 
+0x81, 0x31, 0x3b, 0x10, 0x10, 0x80, 0x31, 0x3a, 0x90, 0x28, 0x81, 0x31, 
+0x3d, 0x10, 0x10, 0x80, 0x31, 0x3c, 0x90, 0x60, 0x90, 0x28, 0x81, 0x31, 
+0x41, 0x10, 0x10, 0x80, 0x31, 0x40, 0x90, 0x28, 0x81, 0x31, 0x3f, 0x10, 
+0x10, 0x80, 0x31, 0x3e, 0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, 
+0x31, 0x38, 0x10, 0x10, 0x80, 0x31, 0x39, 0xa0, 0x0b, 0x90, 0xa0, 0x0a, 
+0xc8, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 
+0x28, 0x80, 0x31, 0x56, 0x80, 0x31, 0x55, 0x10, 0x10, 0x80, 0x31, 0x54, 
+0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xe8, 0x31, 0x68, 0xa4, 0x06, 0xe0, 
+0x31, 0x67, 0x10, 0x10, 0xa4, 0x06, 0xd8, 0x31, 0x66, 0x90, 0xb8, 0x90, 
+0x70, 0x90, 0x38, 0xa4, 0x08, 0x08, 0x31, 0x8c, 0xa4, 0x08, 0x00, 0x31, 
+0x8b, 0x10, 0x10, 0xa4, 0x07, 0xf8, 0x31, 0x8a, 0x90, 0x70, 0x90, 0x38, 
+0xa4, 0x07, 0x78, 0x31, 0x7a, 0xa4, 0x07, 0x70, 0x31, 0x79, 0x10, 0x10, 
+0xa4, 0x07, 0x68, 0x31, 0x78, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 
+0x28, 0x80, 0x31, 0x51, 0x80, 0x31, 0x53, 0x10, 0x10, 0x80, 0x31, 0x52, 
+0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xc0, 0x31, 0x63, 0xa4, 0x06, 0xd0, 
+0x31, 0x65, 0x10, 0x10, 0xa4, 0x06, 0xc8, 0x31, 0x64, 0x90, 0xb8, 0x90, 
+0x70, 0x90, 0x38, 0xa4, 0x07, 0xe0, 0x31, 0x87, 0xa4, 0x07, 0xf0, 0x31, 
+0x89, 0x10, 0x10, 0xa4, 0x07, 0xe8, 0x31, 0x88, 0x90, 0x70, 0x90, 0x38, 
+0xa4, 0x07, 0x50, 0x31, 0x75, 0xa4, 0x07, 0x60, 0x31, 0x77, 0x10, 0x10, 
+0xa4, 0x07, 0x58, 0x31, 0x76, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x31, 0x4e, 0x80, 0x31, 0x50, 0x10, 0x10, 0x80, 
+0x31, 0x4f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xa8, 0x31, 0x60, 0xa4, 
+0x06, 0xb8, 0x31, 0x62, 0x10, 0x10, 0xa4, 0x06, 0xb0, 0x31, 0x61, 0x90, 
+0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xc8, 0x31, 0x84, 0xa4, 0x07, 
+0xd8, 0x31, 0x86, 0x10, 0x10, 0xa4, 0x07, 0xd0, 0x31, 0x85, 0x90, 0x70, 
+0x90, 0x38, 0xa4, 0x07, 0x38, 0x31, 0x72, 0xa4, 0x07, 0x48, 0x31, 0x74, 
+0x10, 0x10, 0xa4, 0x07, 0x40, 0x31, 0x73, 0x91, 0x40, 0x90, 0x88, 0x90, 
+0x50, 0x90, 0x28, 0x80, 0x31, 0x4b, 0x80, 0x31, 0x4d, 0x10, 0x10, 0x80, 
+0x31, 0x4c, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x90, 0x31, 0x5d, 0xa4, 
+0x06, 0xa0, 0x31, 0x5f, 0x10, 0x10, 0xa4, 0x06, 0x98, 0x31, 0x5e, 0x90, 
+0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xb0, 0x31, 0x81, 0xa4, 0x07, 
+0xc0, 0x31, 0x83, 0x10, 0x10, 0xa4, 0x07, 0xb8, 0x31, 0x82, 0x90, 0x70, 
+0x90, 0x38, 0xa4, 0x07, 0x20, 0x31, 0x6f, 0xa4, 0x07, 0x30, 0x31, 0x71, 
+0x10, 0x10, 0xa4, 0x07, 0x28, 0x31, 0x70, 0x10, 0x10, 0x80, 0x10, 0x10, 
+0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x42, 0x80, 0x31, 0x44, 
+0x10, 0x10, 0x80, 0x31, 0x43, 0x80, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 
+0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x48, 0x80, 0x31, 0x4a, 
+0x10, 0x10, 0x80, 0x31, 0x49, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x78, 
+0x31, 0x5a, 0xa4, 0x06, 0x88, 0x31, 0x5c, 0x10, 0x10, 0xa4, 0x06, 0x80, 
+0x31, 0x5b, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x98, 0x31, 
+0x7e, 0xa4, 0x07, 0xa8, 0x31, 0x80, 0x10, 0x10, 0xa4, 0x07, 0xa0, 0x31, 
+0x7f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x08, 0x31, 0x6c, 0xa4, 0x07, 
+0x18, 0x31, 0x6e, 0x10, 0x10, 0xa4, 0x07, 0x10, 0x31, 0x6d, 0x91, 0x40, 
+0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x45, 0x80, 0x31, 0x47, 
+0x10, 0x10, 0x80, 0x31, 0x46, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x60, 
+0x31, 0x57, 0xa4, 0x06, 0x70, 0x31, 0x59, 0x10, 0x10, 0xa4, 0x06, 0x68, 
+0x31, 0x58, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x80, 0x31, 
+0x7b, 0xa4, 0x07, 0x90, 0x31, 0x7d, 0x10, 0x10, 0xa4, 0x07, 0x88, 0x31, 
+0x7c, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xf0, 0x31, 0x69, 0xa4, 0x07, 
+0x00, 0x31, 0x6b, 0x10, 0x10, 0xa4, 0x06, 0xf8, 0x31, 0x6a, 0x10, 0x10, 
+0x91, 0x40, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbb, 0x80, 
+0x30, 0xba, 0x90, 0x28, 0x80, 0x30, 0xb9, 0x80, 0x30, 0xb8, 0x90, 0x50, 
+0x90, 0x28, 0x80, 0x30, 0xb4, 0x80, 0x30, 0xb7, 0x90, 0x28, 0x80, 0x30, 
+0xb6, 0x80, 0x30, 0xb5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 
+0xac, 0x80, 0x30, 0xb3, 0x90, 0x28, 0x80, 0x30, 0xb2, 0x80, 0x30, 0xb1, 
+0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xad, 0x80, 0x30, 0xb0, 0x90, 0x28, 
+0x80, 0x30, 0xaf, 0x80, 0x30, 0xae, 0xc3, 0xc0, 0x30, 0x42, 0x9c, 0xe8, 
+0x07, 0x60, 0x91, 0x90, 0x90, 0xf0, 0x10, 0x10, 0x80, 0x88, 0x00, 0x80, 
+0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xcf, 0x80, 0x33, 0xd0, 0x81, 0x33, 
+0xc6, 0xd0, 0x41, 0x80, 0x24, 0x1f, 0x48, 0x24, 0x1f, 0x50, 0x10, 0x10, 
+0x80, 0x90, 0x58, 0x80, 0x90, 0x28, 0x24, 0x1e, 0x48, 0x24, 0x1e, 0x50, 
+0x81, 0x24, 0x1e, 0x08, 0x92, 0x68, 0x91, 0x00, 0x80, 0x90, 0x90, 0x90, 
+0x30, 0x80, 0x24, 0x1e, 0xb8, 0x90, 0x38, 0xa4, 0x1e, 0xb0, 0x33, 0xdd, 
+0x80, 0x33, 0xdc, 0x80, 0x90, 0x28, 0x80, 0x33, 0xe6, 0xa4, 0x1e, 0x98, 
+0x33, 0xe5, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x80, 0x33, 0xe0, 
+0xa4, 0x1e, 0xa8, 0x33, 0xdf, 0x90, 0x28, 0x80, 0x33, 0xdb, 0xa4, 0x1e, 
+0xa0, 0x33, 0xda, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xe4, 0x80, 0x33, 
+0xe3, 0x90, 0x28, 0x24, 0x1f, 0x40, 0x24, 0x1f, 0x38, 0x90, 0x58, 0x80, 
+0x10, 0x10, 0x80, 0x10, 0x10, 0x80, 0x33, 0xd2, 0x80, 0x90, 0x40, 0x10, 
+0x10, 0x80, 0x24, 0x1e, 0x18, 0x80, 0x10, 0x10, 0x80, 0x33, 0xd1, 0x91, 
+0x58, 0x91, 0x00, 0x90, 0x80, 0x81, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 
+0xcd, 0x80, 0x33, 0xce, 0x81, 0x33, 0xc5, 0x81, 0x90, 0x50, 0x90, 0x28, 
+0x80, 0x33, 0xcb, 0x80, 0x33, 0xcc, 0x81, 0x33, 0xc4, 0x83, 0x90, 0x28, 
+0x24, 0x1e, 0x38, 0x24, 0x1e, 0x40, 0x90, 0xe8, 0x81, 0x90, 0x88, 0x90, 
+0x38, 0x10, 0x10, 0x80, 0x33, 0xde, 0x90, 0x28, 0x80, 0x33, 0xd9, 0x80, 
+0x33, 0xd8, 0x80, 0x90, 0x28, 0x80, 0x33, 0xe2, 0x80, 0x33, 0xe1, 0x82, 
+0x10, 0x10, 0x80, 0x24, 0x1e, 0x10, 0x97, 0x10, 0x9e, 0x10, 0x06, 0x98, 
+0x93, 0x00, 0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 
+0x80, 0x30, 0x71, 0x24, 0x03, 0x78, 0x90, 0x38, 0xa4, 0x04, 0x10, 0x30, 
+0x83, 0x24, 0x04, 0x08, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x30, 0x30, 
+0xa7, 0x24, 0x05, 0x28, 0x90, 0x38, 0xa4, 0x04, 0xa0, 0x30, 0x95, 0x24, 
+0x04, 0x98, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x70, 0x30, 
+0x6c, 0x24, 0x03, 0x68, 0x90, 0x38, 0xa4, 0x04, 0x00, 0x30, 0x7e, 0x24, 
+0x03, 0xf8, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x20, 0x30, 0xa2, 0x24, 
+0x05, 0x18, 0x90, 0x38, 0xa4, 0x04, 0x90, 0x30, 0x90, 0x24, 0x04, 0x88, 
+0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x58, 0x30, 
+0x69, 0x24, 0x03, 0x50, 0x90, 0x38, 0xa4, 0x03, 0xe8, 0x30, 0x7b, 0x24, 
+0x03, 0xe0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x08, 0x30, 0x9f, 0x24, 
+0x05, 0x00, 0x90, 0x38, 0xa4, 0x04, 0x78, 0x30, 0x8d, 0x24, 0x04, 0x70, 
+0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x40, 0x30, 0x66, 0x24, 
+0x03, 0x38, 0x90, 0x38, 0xa4, 0x03, 0xd0, 0x30, 0x78, 0x24, 0x03, 0xc8, 
+0x90, 0x60, 0x90, 0x38, 0xa4, 0x04, 0xf0, 0x30, 0x9c, 0x24, 0x04, 0xe8, 
+0x90, 0x38, 0xa4, 0x04, 0x60, 0x30, 0x8a, 0x24, 0x04, 0x58, 0x10, 0x10, 
+0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x02, 0xf8, 0x30, 0x5d, 
+0x24, 0x02, 0xf0, 0xd7, 0x42, 0x00, 0xa4, 0x32, 0x28, 0x36, 0x47, 0xa4, 
+0x32, 0x08, 0x36, 0x43, 0x9c, 0xe0, 0x06, 0x90, 0x93, 0x00, 0x91, 0x80, 
+0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x28, 0x30, 0x63, 0x24, 
+0x03, 0x20, 0x90, 0x38, 0xa4, 0x03, 0xb8, 0x30, 0x75, 0x24, 0x03, 0xb0, 
+0x90, 0x60, 0x90, 0x38, 0xa4, 0x04, 0xd8, 0x30, 0x99, 0x24, 0x04, 0xd0, 
+0x90, 0x38, 0xa4, 0x04, 0x48, 0x30, 0x87, 0x24, 0x04, 0x40, 0x90, 0xc0, 
+0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x10, 0x30, 0x60, 0x24, 0x03, 0x08, 
+0x90, 0x38, 0xa4, 0x03, 0xa0, 0x30, 0x72, 0x24, 0x03, 0x98, 0x90, 0x60, 
+0x90, 0x38, 0xa4, 0x04, 0xc0, 0x30, 0x96, 0x24, 0x04, 0xb8, 0x90, 0x38, 
+0xa4, 0x04, 0x30, 0x30, 0x84, 0x24, 0x04, 0x28, 0x10, 0x10, 0x90, 0xe0, 
+0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x88, 0x30, 0x52, 0xa4, 0x02, 0x78, 
+0x30, 0x50, 0x90, 0x38, 0xa4, 0x02, 0x70, 0x30, 0x4b, 0xa4, 0x02, 0x60, 
+0x30, 0x4d, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x50, 0x30, 0x43, 0xa4, 
+0x02, 0x40, 0x30, 0x49, 0x90, 0x38, 0xa4, 0x02, 0x38, 0x30, 0x44, 0xa4, 
+0x02, 0x28, 0x30, 0x46, 0x91, 0x48, 0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, 
+0x28, 0x80, 0x30, 0x56, 0x24, 0x02, 0xa8, 0x90, 0x28, 0x80, 0x30, 0x58, 
+0x24, 0x02, 0xb8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0x5c, 0x24, 0x02, 
+0xd8, 0x90, 0x28, 0x80, 0x30, 0x5a, 0x24, 0x02, 0xc8, 0x80, 0x10, 0x10, 
+0x10, 0x10, 0x90, 0x28, 0x80, 0x30, 0x53, 0x24, 0x02, 0xa0, 0xd7, 0x42, 
+0x00, 0xa4, 0x32, 0x30, 0x36, 0x48, 0xa4, 0x32, 0x10, 0x36, 0x44, 0xa0, 
+0x14, 0x90, 0xa0, 0x10, 0xb8, 0xa0, 0x0c, 0x88, 0x9e, 0x88, 0x09, 0xd0, 
+0x94, 0xf0, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 
+0x31, 0xc0, 0x85, 0x34, 0xe3, 0xcb, 0x61, 0x2a, 0x80, 0x85, 0x34, 0xb9, 
+0x9a, 0x00, 0x03, 0xf8, 0x91, 0x98, 0x80, 0x91, 0x10, 0x90, 0xa0, 0x90, 
+0x68, 0x90, 0x20, 0x38, 0xad, 0xc9, 0xe2, 0x2a, 0xc0, 0x85, 0x34, 0xe1, 
+0xa4, 0x45, 0x48, 0x38, 0xaa, 0x90, 0x38, 0xa4, 0x45, 0x10, 0x38, 0xa3, 
+0xa4, 0x45, 0x00, 0x38, 0xa1, 0x90, 0x48, 0x10, 0x10, 0xa4, 0x44, 0xc8, 
+0x38, 0x9a, 0x10, 0x10, 0x80, 0x38, 0x96, 0x81, 0x10, 0x10, 0x80, 0xa4, 
+0x44, 0x98, 0x38, 0x94, 0x91, 0xb0, 0x91, 0x60, 0x90, 0xe0, 0x90, 0x70, 
+0x90, 0x38, 0xa4, 0x45, 0x38, 0x38, 0xa8, 0xa4, 0x45, 0x28, 0x38, 0xa6, 
+0x90, 0x38, 0xa4, 0x44, 0xf0, 0x38, 0x9f, 0xa4, 0x44, 0xe0, 0x38, 0x9d, 
+0x90, 0x48, 0x10, 0x10, 0xa4, 0x44, 0xb8, 0x38, 0x98, 0x10, 0x10, 0x80, 
+0x38, 0x95, 0x90, 0x28, 0x80, 0x38, 0x8e, 0x80, 0x38, 0x8d, 0x81, 0x10, 
+0x10, 0x80, 0xa4, 0x44, 0x88, 0x38, 0x92, 0xcb, 0x61, 0x2a, 0x40, 0x85, 
+0x34, 0xb8, 0x90, 0xd8, 0x88, 0x00, 0x90, 0x84, 0x90, 0x38, 0xc1, 0xc0, 
+0x85, 0x38, 0xb1, 0xc9, 0xe1, 0x31, 0x80, 0x85, 0x34, 0xdf, 0xcb, 0x61, 
+0x2a, 0x00, 0x85, 0x34, 0xb7, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 
+0xe1, 0x31, 0x40, 0x85, 0x34, 0xdd, 0xcb, 0x61, 0x29, 0xc0, 0x85, 0x34, 
+0xb6, 0x91, 0xf8, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 
+0xe1, 0x30, 0xc0, 0x85, 0x34, 0xd9, 0xcb, 0x61, 0x29, 0x40, 0x85, 0x34, 
+0xb4, 0x88, 0x01, 0x00, 0x90, 0xa0, 0x81, 0x90, 0x70, 0x80, 0x90, 0x20, 
+0x38, 0xa4, 0xc9, 0xe1, 0x30, 0x80, 0x85, 0x34, 0xd7, 0x81, 0x38, 0x9b, 
+0x81, 0x10, 0x10, 0x80, 0xa4, 0x44, 0x78, 0x38, 0x90, 0xcb, 0x61, 0x29, 
+0x00, 0x85, 0x34, 0xb3, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 
+0xc9, 0xe1, 0x30, 0x40, 0x85, 0x34, 0xd5, 0xcb, 0x61, 0x28, 0xc0, 0x85, 
+0x34, 0xb2, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x30, 0x00, 
+0x85, 0x34, 0xd3, 0xcb, 0x61, 0x28, 0x80, 0x85, 0x34, 0xb1, 0x92, 0x38, 
+0x81, 0x91, 0x68, 0x91, 0x18, 0x90, 0x80, 0x90, 0x40, 0x80, 0xa4, 0x46, 
+0x00, 0x38, 0xc1, 0x80, 0xa4, 0x45, 0xf8, 0x38, 0xbe, 0x90, 0x28, 0x81, 
+0x38, 0xbd, 0x90, 0x38, 0xa4, 0x45, 0xd8, 0x38, 0xbc, 0xa4, 0x45, 0xc8, 
+0x38, 0xba, 0x90, 0x28, 0x80, 0x38, 0xb8, 0x80, 0x38, 0xb7, 0x80, 0x90, 
+0x40, 0x10, 0x10, 0x80, 0x24, 0x45, 0xb0, 0x10, 0x10, 0x90, 0x38, 0xa4, 
+0x45, 0xa0, 0x38, 0xb5, 0xa4, 0x45, 0x90, 0x38, 0xb3, 0x90, 0x50, 0x80, 
+0xc9, 0xa2, 0x2b, 0xc0, 0x85, 0x38, 0xb0, 0x80, 0x38, 0xae, 0x9a, 0xd0, 
+0x03, 0xe0, 0x91, 0x60, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 
+0xc9, 0xe1, 0x2f, 0x80, 0x85, 0x34, 0xcf, 0xcb, 0x61, 0x28, 0x00, 0x85, 
+0x34, 0xaf, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x2f, 0x40, 
+0x85, 0x34, 0xcd, 0xcb, 0x61, 0x27, 0xc0, 0x85, 0x34, 0xae, 0x90, 0xb0, 
+0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x2f, 0x00, 0x85, 0x34, 
+0xcb, 0xcb, 0x61, 0x27, 0x80, 0x85, 0x34, 0xad, 0x88, 0x00, 0x68, 0x84, 
+0x10, 0x10, 0xc9, 0xe1, 0x2e, 0xc0, 0x85, 0x34, 0xc9, 0xcb, 0x61, 0x27, 
+0x40, 0x85, 0x34, 0xac, 0x90, 0x90, 0x90, 0x48, 0xcb, 0xa1, 0x25, 0x80, 
+0x85, 0x34, 0x9b, 0xcb, 0xa1, 0x25, 0x40, 0x85, 0x34, 0x9a, 0x90, 0x48, 
+0xcb, 0xa1, 0x25, 0x00, 0x85, 0x34, 0x99, 0xcb, 0xa1, 0x24, 0xc0, 0x85, 
+0x34, 0x98, 0xcb, 0xa2, 0x22, 0xc0, 0x80, 0x38, 0x8c, 0x92, 0x40, 0x91, 
+0x20, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x24, 0x10, 0x84, 0x24, 0x24, 0x88, 
+0x8c, 0x24, 0x08, 0x84, 0x24, 0x24, 0x80, 0x90, 0x48, 0x8c, 0x24, 0x00, 
+0x84, 0x24, 0x24, 0x78, 0x8c, 0x23, 0xf8, 0x84, 0x24, 0x24, 0x70, 0x90, 
+0x90, 0x90, 0x48, 0x8c, 0x23, 0xe8, 0x84, 0x24, 0x24, 0x60, 0x8c, 0x23, 
+0xe0, 0x84, 0x24, 0x24, 0x58, 0x90, 0x48, 0x8c, 0x23, 0xd8, 0x84, 0x24, 
+0x24, 0x50, 0x8c, 0x23, 0xd0, 0x84, 0x24, 0x24, 0x48, 0x91, 0x20, 0x90, 
+0x90, 0x90, 0x48, 0x8c, 0x23, 0xc0, 0x84, 0x24, 0x24, 0x38, 0x8c, 0x23, 
+0xb8, 0x84, 0x24, 0x24, 0x30, 0x90, 0x48, 0x8c, 0x23, 0xb0, 0x84, 0x24, 
+0x24, 0x28, 0x8c, 0x23, 0xa8, 0x84, 0x24, 0x24, 0x20, 0x90, 0x38, 0xa4, 
+0x23, 0x90, 0x34, 0x73, 0xa4, 0x23, 0x80, 0x34, 0x71, 0xa0, 0x0f, 0x50, 
+0xa0, 0x09, 0x08, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90, 0x90, 0xc8, 0x98, 
+0x50, 0x00, 0x80, 0xe5, 0x22, 0x21, 0xc0, 0x38, 0x83, 0xe5, 0x22, 0x1d, 
+0xc0, 0x38, 0x81, 0xcb, 0x61, 0x17, 0xc0, 0x85, 0x34, 0x6e, 0x98, 0x50, 
+0x00, 0x80, 0xe5, 0x22, 0x19, 0xc0, 0x38, 0x63, 0xe5, 0x22, 0x15, 0xc0, 
+0x38, 0x61, 0xcb, 0x61, 0x17, 0x80, 0x85, 0x34, 0x6d, 0x90, 0x48, 0xcb, 
+0xa1, 0x17, 0x40, 0x85, 0x34, 0x6c, 0xcb, 0xa1, 0x17, 0x00, 0x85, 0x34, 
+0x6b, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x0e, 
+0xc0, 0x38, 0x47, 0xe5, 0x22, 0x08, 0xc0, 0x38, 0x2f, 0xcb, 0x61, 0x16, 
+0x80, 0x85, 0x34, 0x69, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x02, 0xc0, 
+0x38, 0x17, 0xe5, 0x21, 0xfc, 0xc0, 0x37, 0xff, 0xcb, 0x61, 0x16, 0x40, 
+0x85, 0x34, 0x68, 0x90, 0x48, 0xcb, 0xa1, 0x16, 0x00, 0x85, 0x34, 0x67, 
+0xcb, 0xa1, 0x15, 0xc0, 0x85, 0x34, 0x66, 0x92, 0x20, 0x91, 0x30, 0x90, 
+0xb8, 0xd5, 0x03, 0x00, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0xa0, 0x84, 0x30, 
+0x3e, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0x80, 0x84, 0x30, 0x3c, 0xd5, 0x02, 
+0x00, 0xc0, 0xc0, 0x81, 0x30, 0x28, 0xc0, 0xc0, 0x81, 0x30, 0x24, 0x90, 
+0x78, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x1c, 0xc0, 0xc0, 0x81, 
+0x30, 0x18, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x10, 0xc0, 0xc0, 
+0x81, 0x30, 0x0c, 0x91, 0x70, 0x90, 0xd8, 0xd5, 0x03, 0x80, 0xc8, 0xe1, 
+0xf8, 0xc0, 0x81, 0x8c, 0x01, 0xc0, 0x84, 0x30, 0x40, 0xc8, 0xe1, 0xf9, 
+0xc0, 0x81, 0x8c, 0x01, 0x90, 0x84, 0x30, 0x3d, 0xd5, 0x02, 0x80, 0xc8, 
+0xe1, 0xf8, 0x40, 0x81, 0x30, 0x2c, 0xc8, 0xe1, 0xf5, 0x40, 0x81, 0x30, 
+0x26, 0x90, 0x98, 0xd5, 0x02, 0x80, 0xc8, 0xe1, 0xef, 0x40, 0x81, 0x30, 
+0x20, 0xc8, 0xe1, 0xf0, 0x40, 0x81, 0x30, 0x1a, 0xd5, 0x02, 0x80, 0xc8, 
+0xe1, 0xee, 0xc0, 0x81, 0x30, 0x14, 0xc8, 0xe1, 0xeb, 0xc0, 0x81, 0x30, 
+0x0e, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 
+0x80, 0xe5, 0x22, 0x1b, 0xc0, 0x38, 0x6b, 0xe5, 0x22, 0x1c, 0xc0, 0x38, 
+0x7d, 0xcb, 0x61, 0x15, 0x40, 0x85, 0x34, 0x64, 0x98, 0x50, 0x00, 0x80, 
+0xe5, 0x22, 0x13, 0xc0, 0x38, 0x4b, 0xe5, 0x22, 0x14, 0xc0, 0x38, 0x5d, 
+0xcb, 0x61, 0x15, 0x00, 0x85, 0x34, 0x63, 0x90, 0x48, 0xcb, 0xa1, 0x14, 
+0xc0, 0x85, 0x34, 0x62, 0xcb, 0xa1, 0x14, 0x80, 0x85, 0x34, 0x61, 0x91, 
+0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x0c, 0xc0, 0x38, 
+0x3f, 0xe5, 0x22, 0x06, 0xc0, 0x38, 0x27, 0xcb, 0x61, 0x12, 0xc0, 0x85, 
+0x34, 0x50, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x00, 0xc0, 0x38, 0x0f, 
+0xe5, 0x21, 0xfa, 0xc0, 0x37, 0xf7, 0xcb, 0x61, 0x12, 0x80, 0x85, 0x34, 
+0x4f, 0x90, 0x48, 0xcb, 0xa1, 0x12, 0x40, 0x85, 0x34, 0x4e, 0xcb, 0xa1, 
+0x12, 0x00, 0x85, 0x34, 0x4d, 0x91, 0x00, 0x90, 0x80, 0x90, 0x40, 0xe5, 
+0x20, 0x02, 0x40, 0x30, 0x0a, 0xe5, 0x20, 0x01, 0x80, 0x30, 0x07, 0x90, 
+0x40, 0xe5, 0x20, 0x00, 0xc0, 0x30, 0x04, 0xe5, 0x20, 0x00, 0x00, 0x30, 
+0x01, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x21, 0xf2, 0xc0, 0x37, 0xc5, 0xe5, 
+0x21, 0xf4, 0x00, 0x37, 0xdb, 0x90, 0x40, 0xe5, 0x21, 0xe9, 0x40, 0x37, 
+0x9f, 0xe5, 0x21, 0xea, 0x80, 0x37, 0xb5, 0x80, 0x99, 0x28, 0x02, 0xf0, 
+0x8c, 0x21, 0xf8, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x22, 0x1e, 0xc0, 0x38, 
+0x79, 0xe5, 0x22, 0x1d, 0x40, 0x38, 0x7f, 0x90, 0x40, 0xe5, 0x22, 0x16, 
+0xc0, 0x38, 0x59, 0xe5, 0x22, 0x15, 0x40, 0x38, 0x5f, 0x91, 0x48, 0x90, 
+0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x0d, 0xc0, 0x38, 0x43, 0xe5, 
+0x22, 0x07, 0xc0, 0x38, 0x2b, 0xcb, 0x61, 0x10, 0x80, 0x85, 0x34, 0x46, 
+0x90, 0x40, 0xe5, 0x22, 0x01, 0xc0, 0x38, 0x13, 0xe5, 0x21, 0xfb, 0xc0, 
+0x37, 0xfb, 0x90, 0x48, 0xcb, 0xa1, 0x10, 0x00, 0x85, 0x34, 0x44, 0xcb, 
+0xa1, 0x10, 0x40, 0x85, 0x34, 0x45, 0x10, 0x10, 0x90, 0x80, 0x90, 0x40, 
+0xe5, 0x21, 0xf6, 0x40, 0x37, 0xd7, 0xe5, 0x21, 0xf4, 0xc0, 0x37, 0xdf, 
+0x90, 0x40, 0xe5, 0x21, 0xec, 0xc0, 0x37, 0xb1, 0xe5, 0x21, 0xeb, 0x40, 
+0x37, 0xb9, 
 };
 
 static const struct ia64_dis_names ia64_dis_names[] = {
-{ 0x51, 40, 0, 9 },
-{ 0x31, 40, 1, 19 },
-{ 0x11, 41, 0, 18 },
-{ 0x29, 40, 0, 11 },
-{ 0x19, 40, 1, 23 },
-{ 0x9, 41, 0, 22 },
-{ 0x15, 40, 0, 13 },
-{ 0xd, 40, 1, 27 },
-{ 0x5, 41, 0, 26 },
-{ 0xb, 40, 0, 15 },
-{ 0x7, 40, 1, 31 },
-{ 0x3, 41, 0, 30 },
-{ 0x51, 38, 1, 57 },
-{ 0x50, 38, 0, 33 },
-{ 0xd1, 38, 1, 56 },
-{ 0xd0, 38, 0, 32 },
-{ 0x31, 38, 1, 67 },
-{ 0x30, 38, 1, 43 },
-{ 0x11, 39, 1, 66 },
-{ 0x10, 39, 0, 42 },
-{ 0x71, 38, 1, 65 },
-{ 0x70, 38, 1, 41 },
-{ 0x31, 39, 1, 64 },
-{ 0x30, 39, 0, 40 },
-{ 0x29, 38, 1, 59 },
-{ 0x28, 38, 0, 35 },
-{ 0x69, 38, 1, 58 },
-{ 0x68, 38, 0, 34 },
-{ 0x19, 38, 1, 71 },
-{ 0x18, 38, 1, 47 },
-{ 0x9, 39, 1, 70 },
-{ 0x8, 39, 0, 46 },
-{ 0x39, 38, 1, 69 },
-{ 0x38, 38, 1, 45 },
-{ 0x19, 39, 1, 68 },
-{ 0x18, 39, 0, 44 },
-{ 0x15, 38, 1, 61 },
-{ 0x14, 38, 0, 37 },
-{ 0x35, 38, 1, 60 },
-{ 0x34, 38, 0, 36 },
-{ 0xd, 38, 1, 75 },
-{ 0xc, 38, 1, 51 },
-{ 0x5, 39, 1, 74 },
-{ 0x4, 39, 0, 50 },
-{ 0x1d, 38, 1, 73 },
-{ 0x1c, 38, 1, 49 },
-{ 0xd, 39, 1, 72 },
-{ 0xc, 39, 0, 48 },
-{ 0xb, 38, 1, 63 },
-{ 0xa, 38, 0, 39 },
-{ 0x1b, 38, 1, 62 },
-{ 0x1a, 38, 0, 38 },
-{ 0x7, 38, 1, 79 },
-{ 0x6, 38, 1, 55 },
-{ 0x3, 39, 1, 78 },
-{ 0x2, 39, 0, 54 },
-{ 0xf, 38, 1, 77 },
-{ 0xe, 38, 1, 53 },
-{ 0x7, 39, 1, 76 },
-{ 0x6, 39, 0, 52 },
-{ 0x8, 37, 0, 81 },
-{ 0x18, 37, 0, 80 },
-{ 0x1, 37, 1, 85 },
-{ 0x2, 37, 0, 84 },
-{ 0x3, 37, 1, 83 },
-{ 0x4, 37, 0, 82 },
-{ 0x1, 284, 0, 86 },
-{ 0x20, 237, 0, 96 },
-{ 0x220, 237, 0, 92 },
-{ 0x1220, 237, 0, 89 },
-{ 0xa20, 237, 0, 90 },
-{ 0x620, 237, 0, 91 },
-{ 0x120, 237, 0, 93 },
-{ 0xa0, 237, 0, 94 },
-{ 0x60, 237, 0, 95 },
-{ 0x10, 237, 0, 100 },
-{ 0x90, 237, 0, 97 },
-{ 0x50, 237, 0, 98 },
-{ 0x30, 237, 0, 99 },
-{ 0x8, 237, 0, 101 },
-{ 0x4, 237, 0, 102 },
-{ 0x2, 237, 0, 103 },
-{ 0x1, 237, 0, 104 },
-{ 0x1, 357, 0, 106 },
-{ 0x3, 357, 0, 105 },
-{ 0x2, 363, 0, 107 },
-{ 0x1, 363, 0, 108 },
-{ 0x2, 359, 0, 109 },
-{ 0x1, 359, 0, 110 },
-{ 0x2, 361, 0, 111 },
-{ 0x1, 361, 0, 112 },
-{ 0x2, 365, 0, 113 },
-{ 0x1, 365, 0, 114 },
-{ 0x1, 216, 0, 141 },
-{ 0x5, 216, 0, 139 },
-{ 0x3, 216, 0, 140 },
-{ 0x140, 225, 0, 117 },
-{ 0x540, 225, 0, 115 },
-{ 0x340, 225, 0, 116 },
-{ 0xc0, 225, 0, 129 },
-{ 0x2c0, 225, 0, 127 },
-{ 0x1c0, 225, 0, 128 },
-{ 0x20, 225, 0, 144 },
-{ 0xa0, 225, 0, 142 },
-{ 0x60, 225, 0, 143 },
-{ 0x10, 225, 0, 156 },
-{ 0x50, 225, 0, 154 },
-{ 0x30, 225, 0, 155 },
-{ 0x8, 225, 0, 168 },
-{ 0x28, 225, 0, 166 },
-{ 0x18, 225, 0, 167 },
-{ 0x4, 225, 0, 178 },
-{ 0x2, 225, 0, 179 },
-{ 0x1, 225, 0, 180 },
-{ 0x140, 219, 0, 120 },
-{ 0x540, 219, 0, 118 },
-{ 0x340, 219, 0, 119 },
-{ 0xc0, 219, 0, 132 },
-{ 0x2c0, 219, 0, 130 },
-{ 0x1c0, 219, 0, 131 },
-{ 0x20, 219, 0, 147 },
-{ 0xa0, 219, 0, 145 },
-{ 0x60, 219, 0, 146 },
-{ 0x10, 219, 0, 159 },
-{ 0x50, 219, 0, 157 },
-{ 0x30, 219, 0, 158 },
-{ 0x8, 219, 0, 171 },
-{ 0x28, 219, 0, 169 },
-{ 0x18, 219, 0, 170 },
-{ 0x4, 219, 0, 181 },
-{ 0x2, 219, 0, 182 },
-{ 0x1, 219, 0, 183 },
-{ 0x140, 222, 0, 123 },
-{ 0x540, 222, 0, 121 },
-{ 0x340, 222, 0, 122 },
-{ 0xc0, 222, 0, 135 },
-{ 0x2c0, 222, 0, 133 },
-{ 0x1c0, 222, 0, 134 },
-{ 0x20, 222, 0, 150 },
-{ 0xa0, 222, 0, 148 },
-{ 0x60, 222, 0, 149 },
-{ 0x10, 222, 0, 162 },
-{ 0x50, 222, 0, 160 },
-{ 0x30, 222, 0, 161 },
-{ 0x8, 222, 0, 174 },
-{ 0x28, 222, 0, 172 },
-{ 0x18, 222, 0, 173 },
-{ 0x4, 222, 0, 184 },
-{ 0x2, 222, 0, 185 },
-{ 0x1, 222, 0, 186 },
-{ 0x140, 234, 0, 126 },
-{ 0x540, 234, 0, 124 },
-{ 0x340, 234, 0, 125 },
-{ 0xc0, 234, 0, 138 },
-{ 0x2c0, 234, 0, 136 },
-{ 0x1c0, 234, 0, 137 },
-{ 0x20, 234, 0, 153 },
-{ 0xa0, 234, 0, 151 },
-{ 0x60, 234, 0, 152 },
-{ 0x10, 234, 0, 165 },
-{ 0x50, 234, 0, 163 },
-{ 0x30, 234, 0, 164 },
-{ 0x8, 234, 0, 177 },
-{ 0x28, 234, 0, 175 },
-{ 0x18, 234, 0, 176 },
-{ 0x4, 234, 0, 187 },
-{ 0x2, 234, 0, 188 },
-{ 0x1, 234, 0, 189 },
-{ 0x8, 338, 0, 190 },
-{ 0x4, 338, 0, 191 },
-{ 0x2, 338, 0, 192 },
-{ 0x1, 338, 0, 193 },
-{ 0x20, 236, 0, 201 },
-{ 0x220, 236, 0, 197 },
-{ 0x1220, 236, 0, 194 },
-{ 0xa20, 236, 0, 195 },
-{ 0x620, 236, 0, 196 },
-{ 0x120, 236, 0, 198 },
-{ 0xa0, 236, 0, 199 },
-{ 0x60, 236, 0, 200 },
-{ 0x10, 236, 0, 205 },
-{ 0x90, 236, 0, 202 },
-{ 0x50, 236, 0, 203 },
-{ 0x30, 236, 0, 204 },
-{ 0x8, 236, 0, 206 },
-{ 0x4, 236, 0, 207 },
-{ 0x2, 236, 0, 208 },
-{ 0x1, 236, 0, 209 },
-{ 0x20, 235, 0, 217 },
-{ 0x220, 235, 0, 213 },
-{ 0x1220, 235, 0, 210 },
-{ 0xa20, 235, 0, 211 },
-{ 0x620, 235, 0, 212 },
-{ 0x120, 235, 0, 214 },
-{ 0xa0, 235, 0, 215 },
-{ 0x60, 235, 0, 216 },
-{ 0x10, 235, 0, 221 },
-{ 0x90, 235, 0, 218 },
-{ 0x50, 235, 0, 219 },
-{ 0x30, 235, 0, 220 },
-{ 0x8, 235, 0, 222 },
-{ 0x4, 235, 0, 223 },
-{ 0x2, 235, 0, 224 },
-{ 0x1, 235, 0, 225 },
-{ 0x140, 227, 0, 228 },
-{ 0x540, 227, 0, 226 },
-{ 0x340, 227, 0, 227 },
-{ 0xc0, 227, 0, 237 },
-{ 0x2c0, 227, 0, 235 },
-{ 0x1c0, 227, 0, 236 },
-{ 0x20, 227, 0, 246 },
-{ 0xa0, 227, 0, 244 },
-{ 0x60, 227, 0, 245 },
-{ 0x10, 227, 0, 255 },
-{ 0x50, 227, 0, 253 },
-{ 0x30, 227, 0, 254 },
-{ 0x8, 227, 0, 264 },
-{ 0x28, 227, 0, 262 },
-{ 0x18, 227, 0, 263 },
-{ 0x4, 227, 0, 271 },
-{ 0x2, 227, 0, 272 },
-{ 0x1, 227, 0, 273 },
-{ 0x140, 229, 0, 231 },
-{ 0x540, 229, 0, 229 },
-{ 0x340, 229, 0, 230 },
-{ 0xc0, 229, 0, 240 },
-{ 0x2c0, 229, 0, 238 },
-{ 0x1c0, 229, 0, 239 },
-{ 0x20, 229, 0, 249 },
-{ 0xa0, 229, 0, 247 },
-{ 0x60, 229, 0, 248 },
-{ 0x10, 229, 0, 258 },
-{ 0x50, 229, 0, 256 },
-{ 0x30, 229, 0, 257 },
-{ 0x8, 229, 0, 267 },
-{ 0x28, 229, 0, 265 },
-{ 0x18, 229, 0, 266 },
-{ 0x4, 229, 0, 274 },
-{ 0x2, 229, 0, 275 },
-{ 0x1, 229, 0, 276 },
-{ 0x140, 231, 0, 234 },
-{ 0x540, 231, 0, 232 },
-{ 0x340, 231, 0, 233 },
-{ 0xc0, 231, 0, 243 },
-{ 0x2c0, 231, 0, 241 },
-{ 0x1c0, 231, 0, 242 },
-{ 0x20, 231, 0, 252 },
-{ 0xa0, 231, 0, 250 },
-{ 0x60, 231, 0, 251 },
-{ 0x10, 231, 0, 261 },
-{ 0x50, 231, 0, 259 },
-{ 0x30, 231, 0, 260 },
-{ 0x8, 231, 0, 270 },
-{ 0x28, 231, 0, 268 },
-{ 0x18, 231, 0, 269 },
-{ 0x4, 231, 0, 277 },
-{ 0x2, 231, 0, 278 },
-{ 0x1, 231, 0, 279 },
-{ 0x140, 226, 0, 282 },
-{ 0x540, 226, 0, 280 },
-{ 0x340, 226, 0, 281 },
-{ 0xc0, 226, 0, 291 },
-{ 0x2c0, 226, 0, 289 },
-{ 0x1c0, 226, 0, 290 },
-{ 0x20, 226, 0, 300 },
-{ 0xa0, 226, 0, 298 },
-{ 0x60, 226, 0, 299 },
-{ 0x10, 226, 0, 309 },
-{ 0x50, 226, 0, 307 },
-{ 0x30, 226, 0, 308 },
-{ 0x8, 226, 0, 318 },
-{ 0x28, 226, 0, 316 },
-{ 0x18, 226, 0, 317 },
-{ 0x4, 226, 0, 325 },
-{ 0x2, 226, 0, 326 },
-{ 0x1, 226, 0, 327 },
-{ 0x140, 228, 0, 285 },
-{ 0x540, 228, 0, 283 },
-{ 0x340, 228, 0, 284 },
-{ 0xc0, 228, 0, 294 },
-{ 0x2c0, 228, 0, 292 },
-{ 0x1c0, 228, 0, 293 },
-{ 0x20, 228, 0, 303 },
-{ 0xa0, 228, 0, 301 },
-{ 0x60, 228, 0, 302 },
-{ 0x10, 228, 0, 312 },
-{ 0x50, 228, 0, 310 },
-{ 0x30, 228, 0, 311 },
-{ 0x8, 228, 0, 321 },
-{ 0x28, 228, 0, 319 },
-{ 0x18, 228, 0, 320 },
-{ 0x4, 228, 0, 328 },
-{ 0x2, 228, 0, 329 },
-{ 0x1, 228, 0, 330 },
-{ 0x140, 230, 0, 288 },
-{ 0x540, 230, 0, 286 },
-{ 0x340, 230, 0, 287 },
-{ 0xc0, 230, 0, 297 },
-{ 0x2c0, 230, 0, 295 },
-{ 0x1c0, 230, 0, 296 },
-{ 0x20, 230, 0, 306 },
-{ 0xa0, 230, 0, 304 },
-{ 0x60, 230, 0, 305 },
-{ 0x10, 230, 0, 315 },
-{ 0x50, 230, 0, 313 },
-{ 0x30, 230, 0, 314 },
-{ 0x8, 230, 0, 324 },
-{ 0x28, 230, 0, 322 },
-{ 0x18, 230, 0, 323 },
-{ 0x4, 230, 0, 331 },
-{ 0x2, 230, 0, 332 },
-{ 0x1, 230, 0, 333 },
-{ 0x1, 356, 0, 335 },
-{ 0x3, 356, 0, 334 },
-{ 0x2, 362, 0, 336 },
-{ 0x1, 362, 0, 337 },
-{ 0x2, 358, 0, 338 },
-{ 0x1, 358, 0, 339 },
-{ 0x2, 360, 0, 340 },
-{ 0x1, 360, 0, 341 },
-{ 0x2, 364, 0, 342 },
-{ 0x1, 364, 0, 343 },
-{ 0x1, 215, 0, 370 },
-{ 0x5, 215, 0, 368 },
-{ 0x3, 215, 0, 369 },
-{ 0x140, 224, 0, 346 },
-{ 0x540, 224, 0, 344 },
-{ 0x340, 224, 0, 345 },
-{ 0xc0, 224, 0, 358 },
-{ 0x2c0, 224, 0, 356 },
-{ 0x1c0, 224, 0, 357 },
-{ 0x20, 224, 0, 373 },
-{ 0xa0, 224, 0, 371 },
-{ 0x60, 224, 0, 372 },
-{ 0x10, 224, 0, 385 },
-{ 0x50, 224, 0, 383 },
-{ 0x30, 224, 0, 384 },
-{ 0x8, 224, 0, 397 },
-{ 0x28, 224, 0, 395 },
-{ 0x18, 224, 0, 396 },
-{ 0x4, 224, 0, 407 },
-{ 0x2, 224, 0, 408 },
-{ 0x1, 224, 0, 409 },
-{ 0x140, 218, 0, 349 },
-{ 0x540, 218, 0, 347 },
-{ 0x340, 218, 0, 348 },
-{ 0xc0, 218, 0, 361 },
-{ 0x2c0, 218, 0, 359 },
-{ 0x1c0, 218, 0, 360 },
-{ 0x20, 218, 0, 376 },
-{ 0xa0, 218, 0, 374 },
-{ 0x60, 218, 0, 375 },
-{ 0x10, 218, 0, 388 },
-{ 0x50, 218, 0, 386 },
-{ 0x30, 218, 0, 387 },
-{ 0x8, 218, 0, 400 },
-{ 0x28, 218, 0, 398 },
-{ 0x18, 218, 0, 399 },
-{ 0x4, 218, 0, 410 },
-{ 0x2, 218, 0, 411 },
-{ 0x1, 218, 0, 412 },
-{ 0x140, 221, 0, 352 },
-{ 0x540, 221, 0, 350 },
-{ 0x340, 221, 0, 351 },
-{ 0xc0, 221, 0, 364 },
-{ 0x2c0, 221, 0, 362 },
-{ 0x1c0, 221, 0, 363 },
-{ 0x20, 221, 0, 379 },
-{ 0xa0, 221, 0, 377 },
-{ 0x60, 221, 0, 378 },
-{ 0x10, 221, 0, 391 },
-{ 0x50, 221, 0, 389 },
-{ 0x30, 221, 0, 390 },
-{ 0x8, 221, 0, 403 },
-{ 0x28, 221, 0, 401 },
-{ 0x18, 221, 0, 402 },
-{ 0x4, 221, 0, 413 },
-{ 0x2, 221, 0, 414 },
-{ 0x1, 221, 0, 415 },
-{ 0x140, 233, 0, 355 },
-{ 0x540, 233, 0, 353 },
-{ 0x340, 233, 0, 354 },
-{ 0xc0, 233, 0, 367 },
-{ 0x2c0, 233, 0, 365 },
-{ 0x1c0, 233, 0, 366 },
-{ 0x20, 233, 0, 382 },
-{ 0xa0, 233, 0, 380 },
-{ 0x60, 233, 0, 381 },
-{ 0x10, 233, 0, 394 },
-{ 0x50, 233, 0, 392 },
-{ 0x30, 233, 0, 393 },
-{ 0x8, 233, 0, 406 },
-{ 0x28, 233, 0, 404 },
-{ 0x18, 233, 0, 405 },
-{ 0x4, 233, 0, 416 },
-{ 0x2, 233, 0, 417 },
-{ 0x1, 233, 0, 418 },
-{ 0x1, 214, 0, 445 },
-{ 0x5, 214, 0, 443 },
-{ 0x3, 214, 0, 444 },
-{ 0x140, 223, 0, 421 },
-{ 0x540, 223, 0, 419 },
-{ 0x340, 223, 0, 420 },
-{ 0xc0, 223, 0, 433 },
-{ 0x2c0, 223, 0, 431 },
-{ 0x1c0, 223, 0, 432 },
-{ 0x20, 223, 0, 448 },
-{ 0xa0, 223, 0, 446 },
-{ 0x60, 223, 0, 447 },
-{ 0x10, 223, 0, 460 },
-{ 0x50, 223, 0, 458 },
-{ 0x30, 223, 0, 459 },
-{ 0x8, 223, 0, 472 },
-{ 0x28, 223, 0, 470 },
-{ 0x18, 223, 0, 471 },
-{ 0x4, 223, 0, 482 },
-{ 0x2, 223, 0, 483 },
-{ 0x1, 223, 0, 484 },
-{ 0x140, 217, 0, 424 },
-{ 0x540, 217, 0, 422 },
-{ 0x340, 217, 0, 423 },
-{ 0xc0, 217, 0, 436 },
-{ 0x2c0, 217, 0, 434 },
-{ 0x1c0, 217, 0, 435 },
-{ 0x20, 217, 0, 451 },
-{ 0xa0, 217, 0, 449 },
-{ 0x60, 217, 0, 450 },
-{ 0x10, 217, 0, 463 },
-{ 0x50, 217, 0, 461 },
-{ 0x30, 217, 0, 462 },
-{ 0x8, 217, 0, 475 },
-{ 0x28, 217, 0, 473 },
-{ 0x18, 217, 0, 474 },
-{ 0x4, 217, 0, 485 },
-{ 0x2, 217, 0, 486 },
-{ 0x1, 217, 0, 487 },
-{ 0x140, 220, 0, 427 },
-{ 0x540, 220, 0, 425 },
-{ 0x340, 220, 0, 426 },
-{ 0xc0, 220, 0, 439 },
-{ 0x2c0, 220, 0, 437 },
-{ 0x1c0, 220, 0, 438 },
-{ 0x20, 220, 0, 454 },
-{ 0xa0, 220, 0, 452 },
-{ 0x60, 220, 0, 453 },
-{ 0x10, 220, 0, 466 },
-{ 0x50, 220, 0, 464 },
-{ 0x30, 220, 0, 465 },
-{ 0x8, 220, 0, 478 },
-{ 0x28, 220, 0, 476 },
-{ 0x18, 220, 0, 477 },
-{ 0x4, 220, 0, 488 },
-{ 0x2, 220, 0, 489 },
-{ 0x1, 220, 0, 490 },
-{ 0x140, 232, 0, 430 },
-{ 0x540, 232, 0, 428 },
-{ 0x340, 232, 0, 429 },
-{ 0xc0, 232, 0, 442 },
-{ 0x2c0, 232, 0, 440 },
-{ 0x1c0, 232, 0, 441 },
-{ 0x20, 232, 0, 457 },
-{ 0xa0, 232, 0, 455 },
-{ 0x60, 232, 0, 456 },
-{ 0x10, 232, 0, 469 },
-{ 0x50, 232, 0, 467 },
-{ 0x30, 232, 0, 468 },
-{ 0x8, 232, 0, 481 },
-{ 0x28, 232, 0, 479 },
-{ 0x18, 232, 0, 480 },
-{ 0x4, 232, 0, 491 },
-{ 0x2, 232, 0, 492 },
-{ 0x1, 232, 0, 493 },
-{ 0x8, 355, 0, 495 },
-{ 0x18, 355, 0, 494 },
-{ 0x4, 355, 0, 497 },
-{ 0xc, 355, 0, 496 },
-{ 0x2, 355, 0, 504 },
-{ 0x1, 355, 0, 505 },
-{ 0x4, 353, 0, 499 },
-{ 0xc, 353, 0, 498 },
-{ 0x2, 353, 0, 506 },
-{ 0x1, 353, 0, 507 },
-{ 0x4, 351, 0, 501 },
-{ 0xc, 351, 0, 500 },
-{ 0x2, 351, 0, 508 },
-{ 0x1, 351, 0, 509 },
-{ 0x4, 349, 0, 503 },
-{ 0xc, 349, 0, 502 },
-{ 0x2, 349, 0, 510 },
-{ 0x1, 349, 0, 511 },
-{ 0xa00, 213, 0, 526 },
-{ 0x2a00, 213, 0, 524 },
-{ 0x1a00, 213, 0, 525 },
-{ 0x600, 213, 0, 538 },
-{ 0x2600, 213, 0, 514 },
-{ 0xa600, 213, 0, 512 },
-{ 0x6600, 213, 0, 513 },
-{ 0x1600, 213, 0, 536 },
-{ 0xe00, 213, 0, 537 },
-{ 0x100, 213, 0, 550 },
-{ 0x500, 213, 0, 548 },
-{ 0x300, 213, 0, 549 },
-{ 0x80, 213, 0, 553 },
-{ 0x280, 213, 0, 551 },
-{ 0x180, 213, 0, 552 },
-{ 0x40, 213, 0, 565 },
-{ 0x140, 213, 0, 563 },
-{ 0xc0, 213, 0, 564 },
-{ 0x20, 213, 0, 577 },
-{ 0xa0, 213, 0, 575 },
-{ 0x60, 213, 0, 576 },
-{ 0x10, 213, 0, 589 },
-{ 0x50, 213, 0, 587 },
-{ 0x30, 213, 0, 588 },
-{ 0x8, 213, 0, 601 },
-{ 0x28, 213, 0, 599 },
-{ 0x18, 213, 0, 600 },
-{ 0x4, 213, 0, 611 },
-{ 0x2, 213, 0, 612 },
-{ 0x1, 213, 0, 613 },
-{ 0x500, 210, 0, 529 },
-{ 0x1500, 210, 0, 527 },
-{ 0xd00, 210, 0, 528 },
-{ 0x300, 210, 0, 541 },
-{ 0x1300, 210, 0, 517 },
-{ 0x5300, 210, 0, 515 },
-{ 0x3300, 210, 0, 516 },
-{ 0xb00, 210, 0, 539 },
-{ 0x700, 210, 0, 540 },
-{ 0x80, 210, 0, 556 },
-{ 0x280, 210, 0, 554 },
-{ 0x180, 210, 0, 555 },
-{ 0x40, 210, 0, 568 },
-{ 0x140, 210, 0, 566 },
-{ 0xc0, 210, 0, 567 },
-{ 0x20, 210, 0, 580 },
-{ 0xa0, 210, 0, 578 },
-{ 0x60, 210, 0, 579 },
-{ 0x10, 210, 0, 592 },
-{ 0x50, 210, 0, 590 },
-{ 0x30, 210, 0, 591 },
-{ 0x8, 210, 0, 604 },
-{ 0x28, 210, 0, 602 },
-{ 0x18, 210, 0, 603 },
-{ 0x4, 210, 0, 614 },
-{ 0x2, 210, 0, 615 },
-{ 0x1, 210, 0, 616 },
-{ 0x500, 207, 0, 532 },
-{ 0x1500, 207, 0, 530 },
-{ 0xd00, 207, 0, 531 },
-{ 0x300, 207, 0, 544 },
-{ 0x1300, 207, 0, 520 },
-{ 0x5300, 207, 0, 518 },
-{ 0x3300, 207, 0, 519 },
-{ 0xb00, 207, 0, 542 },
-{ 0x700, 207, 0, 543 },
-{ 0x80, 207, 0, 559 },
-{ 0x280, 207, 0, 557 },
-{ 0x180, 207, 0, 558 },
-{ 0x40, 207, 0, 571 },
-{ 0x140, 207, 0, 569 },
-{ 0xc0, 207, 0, 570 },
-{ 0x20, 207, 0, 583 },
-{ 0xa0, 207, 0, 581 },
-{ 0x60, 207, 0, 582 },
-{ 0x10, 207, 0, 595 },
-{ 0x50, 207, 0, 593 },
-{ 0x30, 207, 0, 594 },
-{ 0x8, 207, 0, 607 },
-{ 0x28, 207, 0, 605 },
-{ 0x18, 207, 0, 606 },
-{ 0x4, 207, 0, 617 },
-{ 0x2, 207, 0, 618 },
-{ 0x1, 207, 0, 619 },
-{ 0x500, 204, 0, 535 },
-{ 0x1500, 204, 0, 533 },
-{ 0xd00, 204, 0, 534 },
-{ 0x300, 204, 0, 547 },
-{ 0x1300, 204, 0, 523 },
-{ 0x5300, 204, 0, 521 },
-{ 0x3300, 204, 0, 522 },
-{ 0xb00, 204, 0, 545 },
-{ 0x700, 204, 0, 546 },
-{ 0x80, 204, 0, 562 },
-{ 0x280, 204, 0, 560 },
-{ 0x180, 204, 0, 561 },
-{ 0x40, 204, 0, 574 },
-{ 0x140, 204, 0, 572 },
-{ 0xc0, 204, 0, 573 },
-{ 0x20, 204, 0, 586 },
-{ 0xa0, 204, 0, 584 },
-{ 0x60, 204, 0, 585 },
-{ 0x10, 204, 0, 598 },
-{ 0x50, 204, 0, 596 },
-{ 0x30, 204, 0, 597 },
-{ 0x8, 204, 0, 610 },
-{ 0x28, 204, 0, 608 },
-{ 0x18, 204, 0, 609 },
-{ 0x4, 204, 0, 620 },
-{ 0x2, 204, 0, 621 },
-{ 0x1, 204, 0, 622 },
-{ 0x8, 195, 0, 623 },
-{ 0x4, 195, 0, 624 },
-{ 0x2, 195, 0, 625 },
-{ 0x1, 195, 0, 626 },
-{ 0x2, 133, 0, 629 },
-{ 0xa, 133, 0, 627 },
-{ 0x6, 133, 0, 628 },
-{ 0x1, 133, 0, 635 },
-{ 0x5, 133, 0, 633 },
-{ 0x3, 133, 0, 634 },
-{ 0x2, 132, 0, 632 },
-{ 0xa, 132, 0, 630 },
-{ 0x6, 132, 0, 631 },
-{ 0x1, 132, 0, 638 },
-{ 0x5, 132, 0, 636 },
-{ 0x3, 132, 0, 637 },
-{ 0x4, 388, 0, 639 },
-{ 0x2, 388, 0, 640 },
-{ 0x1, 388, 0, 641 },
-{ 0x4, 387, 0, 642 },
-{ 0x2, 387, 0, 643 },
-{ 0x1, 387, 0, 644 },
-{ 0x4, 386, 0, 645 },
-{ 0x2, 386, 0, 646 },
-{ 0x1, 386, 0, 647 },
-{ 0x4, 385, 0, 648 },
-{ 0x2, 385, 0, 649 },
-{ 0x1, 385, 0, 650 },
-{ 0x2, 95, 0, 653 },
-{ 0xa, 95, 0, 651 },
-{ 0x6, 95, 0, 652 },
-{ 0x1, 95, 0, 665 },
-{ 0x5, 95, 0, 663 },
-{ 0x3, 95, 0, 664 },
-{ 0x2, 94, 0, 656 },
-{ 0xa, 94, 0, 654 },
-{ 0x6, 94, 0, 655 },
-{ 0x1, 94, 0, 668 },
-{ 0x5, 94, 0, 666 },
-{ 0x3, 94, 0, 667 },
-{ 0x2, 93, 0, 659 },
-{ 0xa, 93, 0, 657 },
-{ 0x6, 93, 0, 658 },
-{ 0x1, 93, 0, 671 },
-{ 0x5, 93, 0, 669 },
-{ 0x3, 93, 0, 670 },
-{ 0x2, 92, 0, 662 },
-{ 0xa, 92, 0, 660 },
-{ 0x6, 92, 0, 661 },
-{ 0x1, 92, 0, 674 },
-{ 0x5, 92, 0, 672 },
-{ 0x3, 92, 0, 673 },
-{ 0x8, 354, 0, 676 },
-{ 0x18, 354, 0, 675 },
-{ 0x4, 354, 0, 678 },
-{ 0xc, 354, 0, 677 },
-{ 0x2, 354, 0, 685 },
-{ 0x1, 354, 0, 686 },
-{ 0x4, 352, 0, 680 },
-{ 0xc, 352, 0, 679 },
-{ 0x2, 352, 0, 687 },
-{ 0x1, 352, 0, 688 },
-{ 0x4, 350, 0, 682 },
-{ 0xc, 350, 0, 681 },
-{ 0x2, 350, 0, 689 },
-{ 0x1, 350, 0, 690 },
-{ 0x4, 348, 0, 684 },
-{ 0xc, 348, 0, 683 },
-{ 0x2, 348, 0, 691 },
-{ 0x1, 348, 0, 692 },
-{ 0xa00, 212, 0, 707 },
-{ 0x2a00, 212, 0, 705 },
-{ 0x1a00, 212, 0, 706 },
-{ 0x600, 212, 0, 719 },
-{ 0x2600, 212, 0, 695 },
-{ 0xa600, 212, 0, 693 },
-{ 0x6600, 212, 0, 694 },
-{ 0x1600, 212, 0, 717 },
-{ 0xe00, 212, 0, 718 },
-{ 0x100, 212, 0, 731 },
-{ 0x500, 212, 0, 729 },
-{ 0x300, 212, 0, 730 },
-{ 0x80, 212, 0, 734 },
-{ 0x280, 212, 0, 732 },
-{ 0x180, 212, 0, 733 },
-{ 0x40, 212, 0, 746 },
-{ 0x140, 212, 0, 744 },
-{ 0xc0, 212, 0, 745 },
-{ 0x20, 212, 0, 758 },
-{ 0xa0, 212, 0, 756 },
-{ 0x60, 212, 0, 757 },
-{ 0x10, 212, 0, 770 },
-{ 0x50, 212, 0, 768 },
-{ 0x30, 212, 0, 769 },
-{ 0x8, 212, 0, 782 },
-{ 0x28, 212, 0, 780 },
-{ 0x18, 212, 0, 781 },
-{ 0x4, 212, 0, 792 },
-{ 0x2, 212, 0, 793 },
-{ 0x1, 212, 0, 794 },
-{ 0x500, 209, 0, 710 },
-{ 0x1500, 209, 0, 708 },
-{ 0xd00, 209, 0, 709 },
-{ 0x300, 209, 0, 722 },
-{ 0x1300, 209, 0, 698 },
-{ 0x5300, 209, 0, 696 },
-{ 0x3300, 209, 0, 697 },
-{ 0xb00, 209, 0, 720 },
-{ 0x700, 209, 0, 721 },
-{ 0x80, 209, 0, 737 },
-{ 0x280, 209, 0, 735 },
-{ 0x180, 209, 0, 736 },
-{ 0x40, 209, 0, 749 },
-{ 0x140, 209, 0, 747 },
-{ 0xc0, 209, 0, 748 },
-{ 0x20, 209, 0, 761 },
-{ 0xa0, 209, 0, 759 },
-{ 0x60, 209, 0, 760 },
-{ 0x10, 209, 0, 773 },
-{ 0x50, 209, 0, 771 },
-{ 0x30, 209, 0, 772 },
-{ 0x8, 209, 0, 785 },
-{ 0x28, 209, 0, 783 },
-{ 0x18, 209, 0, 784 },
-{ 0x4, 209, 0, 795 },
-{ 0x2, 209, 0, 796 },
-{ 0x1, 209, 0, 797 },
-{ 0x500, 206, 0, 713 },
-{ 0x1500, 206, 0, 711 },
-{ 0xd00, 206, 0, 712 },
-{ 0x300, 206, 0, 725 },
-{ 0x1300, 206, 0, 701 },
-{ 0x5300, 206, 0, 699 },
-{ 0x3300, 206, 0, 700 },
-{ 0xb00, 206, 0, 723 },
-{ 0x700, 206, 0, 724 },
-{ 0x80, 206, 0, 740 },
-{ 0x280, 206, 0, 738 },
-{ 0x180, 206, 0, 739 },
-{ 0x40, 206, 0, 752 },
-{ 0x140, 206, 0, 750 },
-{ 0xc0, 206, 0, 751 },
-{ 0x20, 206, 0, 764 },
-{ 0xa0, 206, 0, 762 },
-{ 0x60, 206, 0, 763 },
-{ 0x10, 206, 0, 776 },
-{ 0x50, 206, 0, 774 },
-{ 0x30, 206, 0, 775 },
-{ 0x8, 206, 0, 788 },
-{ 0x28, 206, 0, 786 },
-{ 0x18, 206, 0, 787 },
-{ 0x4, 206, 0, 798 },
-{ 0x2, 206, 0, 799 },
-{ 0x1, 206, 0, 800 },
-{ 0x500, 203, 0, 716 },
-{ 0x1500, 203, 0, 714 },
-{ 0xd00, 203, 0, 715 },
-{ 0x300, 203, 0, 728 },
-{ 0x1300, 203, 0, 704 },
-{ 0x5300, 203, 0, 702 },
-{ 0x3300, 203, 0, 703 },
-{ 0xb00, 203, 0, 726 },
-{ 0x700, 203, 0, 727 },
-{ 0x80, 203, 0, 743 },
-{ 0x280, 203, 0, 741 },
-{ 0x180, 203, 0, 742 },
-{ 0x40, 203, 0, 755 },
-{ 0x140, 203, 0, 753 },
-{ 0xc0, 203, 0, 754 },
-{ 0x20, 203, 0, 767 },
-{ 0xa0, 203, 0, 765 },
-{ 0x60, 203, 0, 766 },
-{ 0x10, 203, 0, 779 },
-{ 0x50, 203, 0, 777 },
-{ 0x30, 203, 0, 778 },
-{ 0x8, 203, 0, 791 },
-{ 0x28, 203, 0, 789 },
-{ 0x18, 203, 0, 790 },
-{ 0x4, 203, 0, 801 },
-{ 0x2, 203, 0, 802 },
-{ 0x1, 203, 0, 803 },
-{ 0xa00, 211, 0, 818 },
-{ 0x2a00, 211, 0, 816 },
-{ 0x1a00, 211, 0, 817 },
-{ 0x600, 211, 0, 830 },
-{ 0x2600, 211, 0, 806 },
-{ 0xa600, 211, 0, 804 },
-{ 0x6600, 211, 0, 805 },
-{ 0x1600, 211, 0, 828 },
-{ 0xe00, 211, 0, 829 },
-{ 0x100, 211, 0, 842 },
-{ 0x500, 211, 0, 840 },
-{ 0x300, 211, 0, 841 },
-{ 0x80, 211, 0, 845 },
-{ 0x280, 211, 0, 843 },
-{ 0x180, 211, 0, 844 },
-{ 0x40, 211, 0, 857 },
-{ 0x140, 211, 0, 855 },
-{ 0xc0, 211, 0, 856 },
-{ 0x20, 211, 0, 869 },
-{ 0xa0, 211, 0, 867 },
-{ 0x60, 211, 0, 868 },
-{ 0x10, 211, 0, 881 },
-{ 0x50, 211, 0, 879 },
-{ 0x30, 211, 0, 880 },
-{ 0x8, 211, 0, 893 },
-{ 0x28, 211, 0, 891 },
-{ 0x18, 211, 0, 892 },
-{ 0x4, 211, 0, 903 },
-{ 0x2, 211, 0, 904 },
-{ 0x1, 211, 0, 905 },
-{ 0x500, 208, 0, 821 },
-{ 0x1500, 208, 0, 819 },
-{ 0xd00, 208, 0, 820 },
-{ 0x300, 208, 0, 833 },
-{ 0x1300, 208, 0, 809 },
-{ 0x5300, 208, 0, 807 },
-{ 0x3300, 208, 0, 808 },
-{ 0xb00, 208, 0, 831 },
-{ 0x700, 208, 0, 832 },
-{ 0x80, 208, 0, 848 },
-{ 0x280, 208, 0, 846 },
-{ 0x180, 208, 0, 847 },
-{ 0x40, 208, 0, 860 },
-{ 0x140, 208, 0, 858 },
-{ 0xc0, 208, 0, 859 },
-{ 0x20, 208, 0, 872 },
-{ 0xa0, 208, 0, 870 },
-{ 0x60, 208, 0, 871 },
-{ 0x10, 208, 0, 884 },
-{ 0x50, 208, 0, 882 },
-{ 0x30, 208, 0, 883 },
-{ 0x8, 208, 0, 896 },
-{ 0x28, 208, 0, 894 },
-{ 0x18, 208, 0, 895 },
-{ 0x4, 208, 0, 906 },
-{ 0x2, 208, 0, 907 },
-{ 0x1, 208, 0, 908 },
-{ 0x500, 205, 0, 824 },
-{ 0x1500, 205, 0, 822 },
-{ 0xd00, 205, 0, 823 },
-{ 0x300, 205, 0, 836 },
-{ 0x1300, 205, 0, 812 },
-{ 0x5300, 205, 0, 810 },
-{ 0x3300, 205, 0, 811 },
-{ 0xb00, 205, 0, 834 },
-{ 0x700, 205, 0, 835 },
-{ 0x80, 205, 0, 851 },
-{ 0x280, 205, 0, 849 },
-{ 0x180, 205, 0, 850 },
-{ 0x40, 205, 0, 863 },
-{ 0x140, 205, 0, 861 },
-{ 0xc0, 205, 0, 862 },
-{ 0x20, 205, 0, 875 },
-{ 0xa0, 205, 0, 873 },
-{ 0x60, 205, 0, 874 },
-{ 0x10, 205, 0, 887 },
-{ 0x50, 205, 0, 885 },
-{ 0x30, 205, 0, 886 },
-{ 0x8, 205, 0, 899 },
-{ 0x28, 205, 0, 897 },
-{ 0x18, 205, 0, 898 },
-{ 0x4, 205, 0, 909 },
-{ 0x2, 205, 0, 910 },
-{ 0x1, 205, 0, 911 },
-{ 0x500, 202, 0, 827 },
-{ 0x1500, 202, 0, 825 },
-{ 0xd00, 202, 0, 826 },
-{ 0x300, 202, 0, 839 },
-{ 0x1300, 202, 0, 815 },
-{ 0x5300, 202, 0, 813 },
-{ 0x3300, 202, 0, 814 },
-{ 0xb00, 202, 0, 837 },
-{ 0x700, 202, 0, 838 },
-{ 0x80, 202, 0, 854 },
-{ 0x280, 202, 0, 852 },
-{ 0x180, 202, 0, 853 },
-{ 0x40, 202, 0, 866 },
-{ 0x140, 202, 0, 864 },
-{ 0xc0, 202, 0, 865 },
-{ 0x20, 202, 0, 878 },
-{ 0xa0, 202, 0, 876 },
-{ 0x60, 202, 0, 877 },
-{ 0x10, 202, 0, 890 },
-{ 0x50, 202, 0, 888 },
-{ 0x30, 202, 0, 889 },
-{ 0x8, 202, 0, 902 },
-{ 0x28, 202, 0, 900 },
-{ 0x18, 202, 0, 901 },
-{ 0x4, 202, 0, 912 },
-{ 0x2, 202, 0, 913 },
-{ 0x1, 202, 0, 914 },
-{ 0x1, 49, 0, 917 },
-{ 0x3, 48, 0, 918 },
-{ 0x1, 374, 0, 919 },
-{ 0x1, 380, 0, 920 },
-{ 0x2, 334, 0, 923 },
-{ 0x1, 334, 0, 924 },
-{ 0x2, 332, 0, 925 },
-{ 0x1, 332, 0, 926 },
-{ 0x1, 331, 0, 927 },
-{ 0x1, 276, 0, 932 },
-{ 0x1, 275, 0, 933 },
-{ 0x1, 274, 0, 934 },
-{ 0x1, 273, 0, 935 },
-{ 0x1, 201, 0, 936 },
-{ 0x1, 200, 0, 937 },
-{ 0x1, 272, 0, 938 },
-{ 0x1, 271, 0, 939 },
-{ 0x1, 270, 0, 940 },
-{ 0x1, 269, 0, 941 },
-{ 0x1, 268, 0, 942 },
-{ 0x1, 267, 0, 943 },
-{ 0x1, 266, 0, 944 },
-{ 0x2, 199, 0, 945 },
-{ 0x1, 199, 0, 946 },
-{ 0x2, 314, 0, 952 },
-{ 0x1, 314, 0, 953 },
-{ 0x1, 265, 0, 954 },
-{ 0x1, 264, 0, 955 },
-{ 0x1, 263, 0, 956 },
-{ 0x1, 262, 0, 957 },
-{ 0x1, 8, 0, 958 },
-{ 0x1, 261, 0, 959 },
-{ 0x1, 260, 0, 960 },
-{ 0x1, 259, 0, 961 },
-{ 0x1, 258, 0, 962 },
-{ 0x1, 336, 0, 963 },
-{ 0x1, 347, 0, 964 },
-{ 0x1, 337, 0, 965 },
-{ 0x1, 369, 0, 966 },
-{ 0x1, 257, 0, 969 },
-{ 0x1, 198, 0, 970 },
-{ 0x1, 134, 0, 973 },
-{ 0x2, 239, 0, 977 },
-{ 0x1, 239, 0, 978 },
-{ 0x1, 193, 0, 979 },
-{ 0x5, 47, 0, 981 },
-{ 0x3, 47, 0, 982 },
-{ 0x5, 46, 0, 983 },
-{ 0x3, 46, 0, 984 },
-{ 0x1, 313, 0, 985 },
-{ 0x1, 321, 0, 986 },
-{ 0x1, 319, 0, 987 },
-{ 0x1, 340, 0, 988 },
-{ 0x1, 320, 0, 989 },
-{ 0x1, 318, 0, 990 },
-{ 0x2, 326, 0, 991 },
-{ 0x1, 326, 0, 993 },
-{ 0x2, 324, 0, 992 },
-{ 0x1, 324, 0, 994 },
-{ 0x2, 344, 0, 995 },
-{ 0x1, 344, 0, 998 },
-{ 0x2, 325, 0, 996 },
-{ 0x1, 325, 0, 999 },
-{ 0x2, 323, 0, 997 },
-{ 0x1, 323, 0, 1000 },
-{ 0x1, 286, 0, 1001 },
-{ 0x1, 285, 0, 1002 },
-{ 0x1, 317, 0, 1003 },
-{ 0x1, 308, 0, 1004 },
-{ 0x1, 310, 0, 1005 },
-{ 0x1, 307, 0, 1006 },
-{ 0x1, 309, 0, 1007 },
-{ 0x2, 384, 0, 1008 },
-{ 0x1, 384, 0, 1011 },
-{ 0x2, 383, 0, 1009 },
-{ 0x1, 383, 0, 1012 },
-{ 0x2, 382, 0, 1010 },
-{ 0x1, 382, 0, 1013 },
-{ 0x1, 296, 0, 1014 },
-{ 0x2, 295, 0, 1015 },
-{ 0x1, 295, 0, 1016 },
-{ 0x2, 242, 0, 1017 },
-{ 0x1, 242, 0, 1020 },
-{ 0x2, 241, 0, 1018 },
-{ 0x1, 241, 0, 1021 },
-{ 0x2, 240, 0, 1019 },
-{ 0x1, 240, 0, 1022 },
-{ 0x2, 311, 0, 1023 },
-{ 0x1, 311, 0, 1024 },
-{ 0x2, 312, 0, 1025 },
-{ 0x1, 312, 0, 1026 },
-{ 0xa, 378, 1, 1032 },
-{ 0xa, 379, 0, 1031 },
-{ 0x1a, 378, 1, 1028 },
-{ 0x32, 379, 0, 1027 },
-{ 0x6, 378, 1, 1036 },
-{ 0x6, 379, 0, 1035 },
-{ 0x1, 378, 1, 1042 },
-{ 0x1, 379, 0, 1041 },
-{ 0x9, 378, 1, 1034 },
-{ 0x9, 379, 0, 1033 },
-{ 0x19, 378, 1, 1030 },
-{ 0x31, 379, 0, 1029 },
-{ 0x5, 378, 1, 1038 },
-{ 0x5, 379, 0, 1037 },
-{ 0x3, 378, 1, 1040 },
-{ 0x3, 379, 0, 1039 },
-{ 0xa, 375, 1, 1048 },
-{ 0xa, 376, 0, 1047 },
-{ 0x1a, 375, 1, 1044 },
-{ 0x32, 376, 0, 1043 },
-{ 0x6, 375, 1, 1052 },
-{ 0x6, 376, 0, 1051 },
-{ 0x1, 375, 1, 1058 },
-{ 0x1, 376, 0, 1057 },
-{ 0x9, 375, 1, 1050 },
-{ 0x9, 376, 0, 1049 },
-{ 0x19, 375, 1, 1046 },
-{ 0x31, 376, 0, 1045 },
-{ 0x5, 375, 1, 1054 },
-{ 0x5, 376, 0, 1053 },
-{ 0x3, 375, 1, 1056 },
-{ 0x3, 376, 0, 1055 },
-{ 0x1, 102, 0, 1059 },
-{ 0x1, 101, 0, 1060 },
-{ 0x1, 339, 1, 1062 },
-{ 0x1, 100, 0, 1061 },
-{ 0x2, 343, 1, 1064 },
-{ 0x2, 104, 0, 1063 },
-{ 0x1, 343, 1, 1066 },
-{ 0x1, 104, 0, 1065 },
-{ 0x1, 345, 0, 1067 },
-{ 0x1, 99, 0, 1068 },
-{ 0x2, 98, 0, 1069 },
-{ 0x2, 97, 0, 1070 },
-{ 0x1, 396, 1, 1076 },
-{ 0x1, 197, 0, 971 },
-{ 0x1, 395, 0, 1077 },
-{ 0x1, 394, 1, 1078 },
-{ 0x1, 196, 0, 980 },
-{ 0x1, 256, 0, 1079 },
-{ 0x1, 255, 1, 1080 },
-{ 0x1, 238, 0, 972 },
-{ 0x1, 254, 0, 1081 },
-{ 0x1, 253, 1, 1082 },
-{ 0x1, 373, 0, 974 },
-{ 0x1, 252, 1, 1083 },
-{ 0x1, 346, 0, 976 },
-{ 0x1, 251, 0, 1084 },
-{ 0x1, 250, 0, 1085 },
-{ 0x1, 249, 1, 1086 },
-{ 0x2, 346, 0, 975 },
-{ 0x10, 248, 0, 1090 },
-{ 0x90, 248, 0, 1088 },
-{ 0x190, 248, 0, 1087 },
-{ 0x50, 248, 0, 1089 },
-{ 0x30, 248, 0, 1092 },
-{ 0x70, 248, 0, 1091 },
-{ 0x8, 248, 0, 1094 },
-{ 0x18, 248, 0, 1093 },
-{ 0x4, 248, 0, 1095 },
-{ 0x1, 248, 0, 1098 },
-{ 0x3, 248, 0, 1097 },
-{ 0x1, 247, 1, 1099 },
-{ 0x2, 248, 0, 1096 },
-{ 0x3, 45, 0, 1100 },
-{ 0x1, 289, 1, 1101 },
-{ 0x1, 290, 1, 967 },
-{ 0x1, 291, 0, 87 },
-{ 0x1, 33, 1, 1102 },
-{ 0x1, 34, 1, 968 },
-{ 0x1, 35, 0, 88 },
-{ 0x1, 187, 0, 1103 },
-{ 0x4, 389, 0, 1104 },
-{ 0x2, 389, 0, 1105 },
-{ 0x1, 389, 1, 1107 },
-{ 0x1, 390, 0, 1106 },
-{ 0x8, 391, 0, 1108 },
-{ 0x4, 391, 0, 1109 },
-{ 0x1, 391, 1, 1111 },
-{ 0x2, 391, 0, 1110 },
-{ 0x8, 176, 0, 1112 },
-{ 0x4, 176, 0, 1113 },
-{ 0x2, 176, 0, 1114 },
-{ 0x1, 176, 1, 1116 },
-{ 0x1, 177, 0, 1115 },
-{ 0x10, 178, 0, 1117 },
-{ 0x8, 178, 0, 1118 },
-{ 0x4, 178, 0, 1119 },
-{ 0x1, 178, 1, 1121 },
-{ 0x2, 178, 0, 1120 },
-{ 0x220, 148, 0, 1122 },
-{ 0x120, 148, 0, 1123 },
-{ 0xa0, 148, 0, 1124 },
-{ 0x60, 148, 1, 1126 },
-{ 0x4, 149, 0, 1125 },
-{ 0x110, 148, 0, 1132 },
-{ 0x90, 148, 0, 1133 },
-{ 0x50, 148, 0, 1134 },
-{ 0x30, 148, 1, 1136 },
-{ 0x2, 149, 0, 1135 },
-{ 0x8, 148, 0, 1137 },
-{ 0x4, 148, 0, 1138 },
-{ 0x2, 148, 0, 1139 },
-{ 0x1, 148, 1, 1141 },
-{ 0x1, 149, 0, 1140 },
-{ 0x440, 150, 0, 1127 },
-{ 0x240, 150, 0, 1128 },
-{ 0x140, 150, 0, 1129 },
-{ 0xc0, 150, 1, 1131 },
-{ 0x40, 150, 0, 1130 },
-{ 0x220, 150, 0, 1142 },
-{ 0x120, 150, 0, 1143 },
-{ 0xa0, 150, 0, 1144 },
-{ 0x60, 150, 1, 1146 },
-{ 0x20, 150, 0, 1145 },
-{ 0x10, 150, 0, 1147 },
-{ 0x8, 150, 0, 1148 },
-{ 0x4, 150, 0, 1149 },
-{ 0x1, 150, 1, 1151 },
-{ 0x2, 150, 0, 1150 },
-{ 0x8, 172, 0, 1152 },
-{ 0x4, 172, 0, 1153 },
-{ 0x2, 172, 0, 1154 },
-{ 0x1, 172, 1, 1156 },
-{ 0x1, 173, 0, 1155 },
-{ 0x220, 144, 0, 1157 },
-{ 0x120, 144, 0, 1158 },
-{ 0xa0, 144, 0, 1159 },
-{ 0x60, 144, 1, 1161 },
-{ 0x4, 145, 0, 1160 },
-{ 0x110, 144, 0, 1167 },
-{ 0x90, 144, 0, 1168 },
-{ 0x50, 144, 0, 1169 },
-{ 0x30, 144, 1, 1171 },
-{ 0x2, 145, 0, 1170 },
-{ 0x8, 144, 0, 1172 },
-{ 0x4, 144, 0, 1173 },
-{ 0x2, 144, 0, 1174 },
-{ 0x1, 144, 1, 1176 },
-{ 0x1, 145, 0, 1175 },
-{ 0x440, 190, 0, 1162 },
-{ 0x240, 190, 0, 1163 },
-{ 0x140, 190, 0, 1164 },
-{ 0xc0, 190, 1, 1166 },
-{ 0x40, 190, 0, 1165 },
-{ 0x220, 190, 0, 1177 },
-{ 0x120, 190, 0, 1178 },
-{ 0xa0, 190, 0, 1179 },
-{ 0x60, 190, 1, 1181 },
-{ 0x20, 190, 0, 1180 },
-{ 0x10, 190, 0, 1182 },
-{ 0x8, 190, 0, 1183 },
-{ 0x4, 190, 0, 1184 },
-{ 0x1, 190, 1, 1186 },
-{ 0x2, 190, 0, 1185 },
-{ 0x8, 164, 0, 1187 },
-{ 0x4, 164, 0, 1188 },
-{ 0x2, 164, 0, 1189 },
-{ 0x1, 164, 1, 1191 },
-{ 0x1, 165, 0, 1190 },
-{ 0x10, 171, 0, 1192 },
-{ 0x8, 171, 0, 1193 },
-{ 0x4, 171, 0, 1194 },
-{ 0x1, 171, 1, 1196 },
-{ 0x2, 171, 0, 1195 },
-{ 0x220, 135, 0, 1197 },
-{ 0x120, 135, 0, 1198 },
-{ 0xa0, 135, 0, 1199 },
-{ 0x60, 135, 1, 1201 },
-{ 0x4, 136, 0, 1200 },
-{ 0x110, 135, 0, 1222 },
-{ 0x90, 135, 0, 1223 },
-{ 0x50, 135, 0, 1224 },
-{ 0x30, 135, 1, 1226 },
-{ 0x2, 136, 0, 1225 },
-{ 0x8, 135, 0, 1227 },
-{ 0x4, 135, 0, 1228 },
-{ 0x2, 135, 0, 1229 },
-{ 0x1, 135, 1, 1231 },
-{ 0x1, 136, 0, 1230 },
-{ 0x440, 143, 0, 1202 },
-{ 0x240, 143, 0, 1203 },
-{ 0x140, 143, 0, 1204 },
-{ 0xc0, 143, 1, 1206 },
-{ 0x40, 143, 0, 1205 },
-{ 0x220, 143, 0, 1232 },
-{ 0x120, 143, 0, 1233 },
-{ 0xa0, 143, 0, 1234 },
-{ 0x60, 143, 1, 1236 },
-{ 0x20, 143, 0, 1235 },
-{ 0x10, 143, 0, 1237 },
-{ 0x8, 143, 0, 1238 },
-{ 0x4, 143, 0, 1239 },
-{ 0x1, 143, 1, 1241 },
-{ 0x2, 143, 0, 1240 },
-{ 0x440, 106, 0, 1207 },
-{ 0x240, 106, 0, 1208 },
-{ 0x140, 106, 0, 1209 },
-{ 0xc0, 106, 1, 1211 },
-{ 0x40, 106, 0, 1210 },
-{ 0x220, 106, 0, 1242 },
-{ 0x120, 106, 0, 1243 },
-{ 0xa0, 106, 0, 1244 },
-{ 0x60, 106, 1, 1246 },
-{ 0x20, 106, 0, 1245 },
-{ 0x10, 106, 0, 1247 },
-{ 0x8, 106, 0, 1248 },
-{ 0x1, 106, 1, 1251 },
-{ 0x2, 106, 0, 1250 },
-{ 0x440, 151, 1, 1217 },
-{ 0x441, 131, 0, 1212 },
-{ 0x240, 151, 1, 1218 },
-{ 0x241, 131, 0, 1213 },
-{ 0x140, 151, 1, 1219 },
-{ 0x141, 131, 0, 1214 },
-{ 0xc0, 151, 1, 1221 },
-{ 0x40, 151, 1, 1220 },
-{ 0xc1, 131, 1, 1216 },
-{ 0x41, 131, 0, 1215 },
-{ 0x220, 151, 1, 1262 },
-{ 0x221, 131, 0, 1252 },
-{ 0x120, 151, 1, 1263 },
-{ 0x121, 131, 0, 1253 },
-{ 0xa0, 151, 1, 1264 },
-{ 0xa1, 131, 0, 1254 },
-{ 0x60, 151, 1, 1266 },
-{ 0x20, 151, 1, 1265 },
-{ 0x61, 131, 1, 1256 },
-{ 0x21, 131, 0, 1255 },
-{ 0x10, 151, 1, 1267 },
-{ 0x11, 131, 0, 1257 },
-{ 0x8, 151, 1, 1268 },
-{ 0x9, 131, 0, 1258 },
-{ 0x4, 151, 1, 1269 },
-{ 0x5, 131, 0, 1259 },
-{ 0x1, 151, 1, 1271 },
-{ 0x2, 151, 1, 1270 },
-{ 0x3, 131, 1, 1261 },
-{ 0x1, 131, 0, 1260 },
-{ 0x1, 116, 1, 1275 },
-{ 0x1, 117, 0, 1274 },
-{ 0x3, 116, 1, 1273 },
-{ 0x3, 117, 0, 1272 },
-{ 0x1108, 120, 1, 1356 },
-{ 0x1108, 124, 0, 1276 },
-{ 0x908, 120, 1, 1357 },
-{ 0x908, 124, 0, 1277 },
-{ 0x508, 120, 1, 1358 },
-{ 0x508, 124, 0, 1278 },
-{ 0x308, 120, 1, 1360 },
-{ 0x18, 121, 1, 1359 },
-{ 0x308, 124, 1, 1280 },
-{ 0x18, 125, 0, 1279 },
-{ 0x88, 120, 1, 1376 },
-{ 0x88, 124, 0, 1316 },
-{ 0x48, 120, 1, 1377 },
-{ 0x48, 124, 0, 1317 },
-{ 0x28, 120, 1, 1378 },
-{ 0x28, 124, 0, 1318 },
-{ 0x18, 120, 1, 1380 },
-{ 0x8, 121, 1, 1379 },
-{ 0x18, 124, 1, 1320 },
-{ 0x8, 125, 0, 1319 },
-{ 0x884, 120, 1, 1361 },
-{ 0x442, 122, 1, 1306 },
-{ 0x884, 124, 1, 1291 },
-{ 0x442, 126, 0, 1281 },
-{ 0x484, 120, 1, 1362 },
-{ 0x242, 122, 1, 1307 },
-{ 0x484, 124, 1, 1292 },
-{ 0x242, 126, 0, 1282 },
-{ 0x284, 120, 1, 1363 },
-{ 0x142, 122, 1, 1308 },
-{ 0x284, 124, 1, 1293 },
-{ 0x142, 126, 0, 1283 },
-{ 0x184, 120, 1, 1365 },
-{ 0xc, 121, 1, 1364 },
-{ 0xc2, 122, 1, 1310 },
-{ 0x6, 123, 1, 1309 },
-{ 0x184, 124, 1, 1295 },
-{ 0xc, 125, 1, 1294 },
-{ 0xc2, 126, 1, 1285 },
-{ 0x6, 127, 0, 1284 },
-{ 0x44, 120, 1, 1381 },
-{ 0x22, 122, 1, 1346 },
-{ 0x44, 124, 1, 1331 },
-{ 0x22, 126, 0, 1321 },
-{ 0x24, 120, 1, 1382 },
-{ 0x12, 122, 1, 1347 },
-{ 0x24, 124, 1, 1332 },
-{ 0x12, 126, 0, 1322 },
-{ 0x14, 120, 1, 1383 },
-{ 0xa, 122, 1, 1348 },
-{ 0x14, 124, 1, 1333 },
-{ 0xa, 126, 0, 1323 },
-{ 0xc, 120, 1, 1385 },
-{ 0x4, 121, 1, 1384 },
-{ 0x6, 122, 1, 1350 },
-{ 0x2, 123, 1, 1349 },
-{ 0xc, 124, 1, 1335 },
-{ 0x4, 125, 1, 1334 },
-{ 0x6, 126, 1, 1325 },
-{ 0x2, 127, 0, 1324 },
-{ 0x442, 120, 1, 1366 },
-{ 0x221, 122, 1, 1311 },
-{ 0x442, 124, 1, 1296 },
-{ 0x221, 126, 0, 1286 },
-{ 0x242, 120, 1, 1367 },
-{ 0x121, 122, 1, 1312 },
-{ 0x242, 124, 1, 1297 },
-{ 0x121, 126, 0, 1287 },
-{ 0x142, 120, 1, 1368 },
-{ 0xa1, 122, 1, 1313 },
-{ 0x142, 124, 1, 1298 },
-{ 0xa1, 126, 0, 1288 },
-{ 0xc2, 120, 1, 1370 },
-{ 0x6, 121, 1, 1369 },
-{ 0x61, 122, 1, 1315 },
-{ 0x3, 123, 1, 1314 },
-{ 0xc2, 124, 1, 1300 },
-{ 0x6, 125, 1, 1299 },
-{ 0x61, 126, 1, 1290 },
-{ 0x3, 127, 0, 1289 },
-{ 0x22, 120, 1, 1386 },
-{ 0x11, 122, 1, 1351 },
-{ 0x22, 124, 1, 1336 },
-{ 0x11, 126, 0, 1326 },
-{ 0x12, 120, 1, 1387 },
-{ 0x9, 122, 1, 1352 },
-{ 0x12, 124, 1, 1337 },
-{ 0x9, 126, 0, 1327 },
-{ 0xa, 120, 1, 1388 },
-{ 0x5, 122, 1, 1353 },
-{ 0xa, 124, 1, 1338 },
-{ 0x5, 126, 0, 1328 },
-{ 0x6, 120, 1, 1390 },
-{ 0x2, 121, 1, 1389 },
-{ 0x3, 122, 1, 1355 },
-{ 0x1, 123, 1, 1354 },
-{ 0x6, 124, 1, 1340 },
-{ 0x2, 125, 1, 1339 },
-{ 0x3, 126, 1, 1330 },
-{ 0x1, 127, 0, 1329 },
-{ 0x221, 120, 1, 1371 },
-{ 0x221, 124, 0, 1301 },
-{ 0x121, 120, 1, 1372 },
-{ 0x121, 124, 0, 1302 },
-{ 0xa1, 120, 1, 1373 },
-{ 0xa1, 124, 0, 1303 },
-{ 0x61, 120, 1, 1375 },
-{ 0x3, 121, 1, 1374 },
-{ 0x61, 124, 1, 1305 },
-{ 0x3, 125, 0, 1304 },
-{ 0x11, 120, 1, 1391 },
-{ 0x11, 124, 0, 1341 },
-{ 0x9, 120, 1, 1392 },
-{ 0x9, 124, 0, 1342 },
-{ 0x5, 120, 1, 1393 },
-{ 0x5, 124, 0, 1343 },
-{ 0x3, 120, 1, 1395 },
-{ 0x1, 121, 1, 1394 },
-{ 0x3, 124, 1, 1345 },
-{ 0x1, 125, 0, 1344 },
-{ 0x442, 162, 0, 1396 },
-{ 0x242, 162, 0, 1397 },
-{ 0x142, 162, 0, 1398 },
-{ 0xc2, 162, 1, 1400 },
-{ 0x6, 163, 1, 1399 },
-{ 0x1, 381, 0, 921 },
-{ 0x22, 162, 0, 1406 },
-{ 0x12, 162, 0, 1407 },
-{ 0xa, 162, 0, 1408 },
-{ 0x6, 162, 1, 1410 },
-{ 0x2, 163, 1, 1409 },
-{ 0x2, 315, 0, 950 },
-{ 0x221, 162, 0, 1401 },
-{ 0x121, 162, 0, 1402 },
-{ 0xa1, 162, 0, 1403 },
-{ 0x61, 162, 1, 1405 },
-{ 0x3, 163, 1, 1404 },
-{ 0x1, 377, 0, 922 },
-{ 0x11, 162, 0, 1411 },
-{ 0x9, 162, 0, 1412 },
-{ 0x5, 162, 0, 1413 },
-{ 0x3, 162, 1, 1415 },
-{ 0x1, 163, 1, 1414 },
-{ 0x1, 315, 0, 951 },
-{ 0x4, 168, 0, 1416 },
-{ 0x1, 168, 0, 1418 },
-{ 0x1, 175, 0, 1419 },
-{ 0x1, 174, 1, 1420 },
-{ 0x2, 168, 0, 1417 },
-{ 0x1, 153, 0, 1421 },
-{ 0x880, 159, 0, 1422 },
-{ 0x480, 159, 0, 1423 },
-{ 0x280, 159, 0, 1424 },
-{ 0x180, 159, 1, 1426 },
-{ 0x80, 160, 0, 1425 },
-{ 0x440, 159, 1, 1437 },
-{ 0x88, 161, 0, 1427 },
-{ 0x240, 159, 1, 1438 },
-{ 0x48, 161, 0, 1428 },
-{ 0x140, 159, 1, 1439 },
-{ 0x28, 161, 0, 1429 },
-{ 0xc0, 159, 1, 1441 },
-{ 0x40, 160, 1, 1440 },
-{ 0x18, 161, 1, 1431 },
-{ 0x8, 161, 0, 1430 },
-{ 0x220, 159, 1, 1442 },
-{ 0x44, 161, 0, 1432 },
-{ 0x120, 159, 1, 1443 },
-{ 0x24, 161, 0, 1433 },
-{ 0xa0, 159, 1, 1444 },
-{ 0x14, 161, 0, 1434 },
-{ 0x60, 159, 1, 1446 },
-{ 0x20, 160, 1, 1445 },
-{ 0xc, 161, 1, 1436 },
-{ 0x4, 161, 0, 1435 },
-{ 0x110, 159, 0, 1447 },
-{ 0x90, 159, 0, 1448 },
-{ 0x50, 159, 0, 1449 },
-{ 0x30, 159, 1, 1451 },
-{ 0x10, 160, 1, 1450 },
-{ 0x1, 333, 0, 915 },
-{ 0x88, 159, 0, 1452 },
-{ 0x48, 159, 0, 1453 },
-{ 0x28, 159, 0, 1454 },
-{ 0x18, 159, 1, 1456 },
-{ 0x8, 160, 1, 1455 },
-{ 0xc, 316, 0, 947 },
-{ 0x44, 159, 1, 1467 },
-{ 0x22, 161, 0, 1457 },
-{ 0x24, 159, 1, 1468 },
-{ 0x12, 161, 0, 1458 },
-{ 0x14, 159, 1, 1469 },
-{ 0xa, 161, 0, 1459 },
-{ 0xc, 159, 1, 1471 },
-{ 0x4, 160, 1, 1470 },
-{ 0x6, 161, 1, 1461 },
-{ 0x2, 161, 1, 1460 },
-{ 0x6, 316, 0, 948 },
-{ 0x22, 159, 1, 1472 },
-{ 0x11, 161, 0, 1462 },
-{ 0x12, 159, 1, 1473 },
-{ 0x9, 161, 0, 1463 },
-{ 0xa, 159, 1, 1474 },
-{ 0x5, 161, 0, 1464 },
-{ 0x6, 159, 1, 1476 },
-{ 0x2, 160, 1, 1475 },
-{ 0x3, 161, 1, 1466 },
-{ 0x1, 161, 1, 1465 },
-{ 0x3, 316, 0, 949 },
-{ 0x11, 159, 0, 1477 },
-{ 0x9, 159, 0, 1478 },
-{ 0x5, 159, 0, 1479 },
-{ 0x3, 159, 1, 1481 },
-{ 0x1, 160, 1, 1480 },
-{ 0x1, 113, 0, 916 },
-{ 0x8, 155, 0, 1482 },
-{ 0x4, 155, 0, 1483 },
-{ 0x2, 155, 0, 1484 },
-{ 0x1, 155, 1, 1486 },
-{ 0x1, 156, 1, 1485 },
-{ 0x1, 280, 0, 928 },
-{ 0x8, 157, 0, 1487 },
-{ 0x4, 157, 0, 1488 },
-{ 0x2, 157, 0, 1489 },
-{ 0x1, 157, 1, 1491 },
-{ 0x1, 158, 1, 1490 },
-{ 0x1, 279, 0, 929 },
-{ 0x8, 166, 0, 1492 },
-{ 0x4, 166, 0, 1493 },
-{ 0x2, 166, 0, 1494 },
-{ 0x1, 166, 1, 1496 },
-{ 0x1, 167, 1, 1495 },
-{ 0x1, 278, 0, 930 },
-{ 0x8, 169, 0, 1497 },
-{ 0x4, 169, 0, 1498 },
-{ 0x2, 169, 0, 1499 },
-{ 0x1, 169, 1, 1501 },
-{ 0x1, 170, 1, 1500 },
-{ 0x1, 277, 0, 931 },
-{ 0x8, 181, 0, 1502 },
-{ 0x4, 181, 0, 1503 },
-{ 0x2, 181, 0, 1504 },
-{ 0x1, 181, 1, 1506 },
-{ 0x1, 182, 0, 1505 },
-{ 0x8, 179, 0, 1507 },
-{ 0x4, 179, 0, 1508 },
-{ 0x2, 179, 0, 1509 },
-{ 0x1, 179, 1, 1511 },
-{ 0x1, 180, 0, 1510 },
-{ 0x1, 288, 0, 1512 },
-{ 0x1, 32, 0, 1513 },
-{ 0x8, 114, 0, 1514 },
-{ 0x4, 114, 0, 1515 },
-{ 0x2, 114, 0, 1516 },
-{ 0x1, 114, 1, 1518 },
-{ 0x1, 115, 0, 1517 },
-{ 0x8, 118, 0, 1519 },
-{ 0x4, 118, 0, 1520 },
-{ 0x2, 118, 0, 1521 },
-{ 0x1, 118, 1, 1523 },
-{ 0x1, 119, 0, 1522 },
-{ 0x8, 188, 0, 1524 },
-{ 0x4, 188, 0, 1525 },
-{ 0x2, 188, 0, 1526 },
-{ 0x1, 188, 1, 1528 },
-{ 0x1, 189, 0, 1527 },
-{ 0x1, 130, 0, 1529 },
-{ 0x442, 128, 0, 1530 },
-{ 0x242, 128, 0, 1531 },
-{ 0x142, 128, 0, 1532 },
-{ 0xc2, 128, 1, 1534 },
-{ 0x6, 129, 0, 1533 },
-{ 0x22, 128, 0, 1540 },
-{ 0x12, 128, 0, 1541 },
-{ 0xa, 128, 0, 1542 },
-{ 0x6, 128, 1, 1544 },
-{ 0x2, 129, 1, 1543 },
-{ 0x1, 98, 0, 1071 },
-{ 0x221, 128, 0, 1535 },
-{ 0x121, 128, 0, 1536 },
-{ 0xa1, 128, 0, 1537 },
-{ 0x61, 128, 1, 1539 },
-{ 0x3, 129, 0, 1538 },
-{ 0x11, 128, 0, 1545 },
-{ 0x9, 128, 0, 1546 },
-{ 0x5, 128, 0, 1547 },
-{ 0x3, 128, 1, 1549 },
-{ 0x1, 129, 1, 1548 },
-{ 0x1, 97, 0, 1072 },
-{ 0x1, 194, 0, 1550 },
-{ 0x1, 152, 0, 1551 },
-{ 0x1, 112, 0, 1552 },
-{ 0x1, 111, 0, 1553 },
-{ 0x4, 191, 0, 1554 },
-{ 0x2, 191, 0, 1555 },
-{ 0x1, 191, 0, 1556 },
-{ 0x1, 154, 0, 1557 },
-{ 0x2, 192, 0, 1558 },
-{ 0x1, 192, 0, 1559 },
-{ 0x4, 142, 0, 1560 },
-{ 0x2, 142, 0, 1561 },
-{ 0x1, 142, 0, 1562 },
-{ 0x4, 139, 0, 1563 },
-{ 0x1, 147, 0, 1566 },
-{ 0x1, 146, 1, 1567 },
-{ 0x2, 139, 0, 1564 },
-{ 0x1, 105, 0, 1568 },
-{ 0x1, 246, 1, 1569 },
-{ 0x1, 139, 0, 1565 },
-{ 0x8, 107, 0, 1570 },
-{ 0x4, 107, 0, 1571 },
-{ 0x2, 107, 0, 1572 },
-{ 0x1, 107, 1, 1574 },
-{ 0x1, 108, 0, 1573 },
-{ 0x8, 109, 0, 1575 },
-{ 0x4, 109, 0, 1576 },
-{ 0x2, 109, 0, 1577 },
-{ 0x1, 109, 1, 1579 },
-{ 0x1, 110, 1, 1578 },
-{ 0x1, 372, 0, 1073 },
-{ 0x8, 137, 0, 1580 },
-{ 0x4, 137, 0, 1581 },
-{ 0x2, 137, 0, 1582 },
-{ 0x1, 137, 1, 1584 },
-{ 0x1, 138, 1, 1583 },
-{ 0x1, 371, 0, 1074 },
-{ 0x8, 140, 0, 1585 },
+{ 0x51, 40, 0, 10 },
+{ 0x31, 40, 1, 20 },
+{ 0x11, 41, 0, 19 },
+{ 0x29, 40, 0, 12 },
+{ 0x19, 40, 1, 24 },
+{ 0x9, 41, 0, 23 },
+{ 0x15, 40, 0, 14 },
+{ 0xd, 40, 1, 28 },
+{ 0x5, 41, 0, 27 },
+{ 0xb, 40, 0, 16 },
+{ 0x7, 40, 1, 32 },
+{ 0x3, 41, 0, 31 },
+{ 0x51, 38, 1, 58 },
+{ 0x50, 38, 0, 34 },
+{ 0xd1, 38, 1, 57 },
+{ 0xd0, 38, 0, 33 },
+{ 0x31, 38, 1, 68 },
+{ 0x30, 38, 1, 44 },
+{ 0x11, 39, 1, 67 },
+{ 0x10, 39, 0, 43 },
+{ 0x71, 38, 1, 66 },
+{ 0x70, 38, 1, 42 },
+{ 0x31, 39, 1, 65 },
+{ 0x30, 39, 0, 41 },
+{ 0x29, 38, 1, 60 },
+{ 0x28, 38, 0, 36 },
+{ 0x69, 38, 1, 59 },
+{ 0x68, 38, 0, 35 },
+{ 0x19, 38, 1, 72 },
+{ 0x18, 38, 1, 48 },
+{ 0x9, 39, 1, 71 },
+{ 0x8, 39, 0, 47 },
+{ 0x39, 38, 1, 70 },
+{ 0x38, 38, 1, 46 },
+{ 0x19, 39, 1, 69 },
+{ 0x18, 39, 0, 45 },
+{ 0x15, 38, 1, 62 },
+{ 0x14, 38, 0, 38 },
+{ 0x35, 38, 1, 61 },
+{ 0x34, 38, 0, 37 },
+{ 0xd, 38, 1, 76 },
+{ 0xc, 38, 1, 52 },
+{ 0x5, 39, 1, 75 },
+{ 0x4, 39, 0, 51 },
+{ 0x1d, 38, 1, 74 },
+{ 0x1c, 38, 1, 50 },
+{ 0xd, 39, 1, 73 },
+{ 0xc, 39, 0, 49 },
+{ 0xb, 38, 1, 64 },
+{ 0xa, 38, 0, 40 },
+{ 0x1b, 38, 1, 63 },
+{ 0x1a, 38, 0, 39 },
+{ 0x7, 38, 1, 80 },
+{ 0x6, 38, 1, 56 },
+{ 0x3, 39, 1, 79 },
+{ 0x2, 39, 0, 55 },
+{ 0xf, 38, 1, 78 },
+{ 0xe, 38, 1, 54 },
+{ 0x7, 39, 1, 77 },
+{ 0x6, 39, 0, 53 },
+{ 0x8, 37, 0, 82 },
+{ 0x18, 37, 0, 81 },
+{ 0x1, 37, 1, 86 },
+{ 0x2, 37, 0, 85 },
+{ 0x3, 37, 1, 84 },
+{ 0x4, 37, 0, 83 },
+{ 0x1, 293, 0, 87 },
+{ 0x20, 246, 0, 98 },
+{ 0x220, 246, 0, 94 },
+{ 0x1220, 246, 0, 91 },
+{ 0xa20, 246, 0, 92 },
+{ 0x620, 246, 0, 93 },
+{ 0x120, 246, 0, 95 },
+{ 0xa0, 246, 0, 96 },
+{ 0x60, 246, 0, 97 },
+{ 0x10, 246, 0, 102 },
+{ 0x90, 246, 0, 99 },
+{ 0x50, 246, 0, 100 },
+{ 0x30, 246, 0, 101 },
+{ 0x8, 246, 0, 103 },
+{ 0x4, 246, 0, 104 },
+{ 0x2, 246, 0, 105 },
+{ 0x1, 246, 0, 106 },
+{ 0x1, 367, 0, 108 },
+{ 0x3, 367, 0, 107 },
+{ 0x2, 373, 0, 109 },
+{ 0x1, 373, 0, 110 },
+{ 0x2, 369, 0, 111 },
+{ 0x1, 369, 0, 112 },
+{ 0x2, 371, 0, 113 },
+{ 0x1, 371, 0, 114 },
+{ 0x2, 375, 0, 115 },
+{ 0x1, 375, 0, 116 },
+{ 0x1, 225, 0, 143 },
+{ 0x5, 225, 0, 141 },
+{ 0x3, 225, 0, 142 },
+{ 0x140, 234, 0, 119 },
+{ 0x540, 234, 0, 117 },
+{ 0x340, 234, 0, 118 },
+{ 0xc0, 234, 0, 131 },
+{ 0x2c0, 234, 0, 129 },
+{ 0x1c0, 234, 0, 130 },
+{ 0x20, 234, 0, 146 },
+{ 0xa0, 234, 0, 144 },
+{ 0x60, 234, 0, 145 },
+{ 0x10, 234, 0, 158 },
+{ 0x50, 234, 0, 156 },
+{ 0x30, 234, 0, 157 },
+{ 0x8, 234, 0, 170 },
+{ 0x28, 234, 0, 168 },
+{ 0x18, 234, 0, 169 },
+{ 0x4, 234, 0, 180 },
+{ 0x2, 234, 0, 181 },
+{ 0x1, 234, 0, 182 },
+{ 0x140, 228, 0, 122 },
+{ 0x540, 228, 0, 120 },
+{ 0x340, 228, 0, 121 },
+{ 0xc0, 228, 0, 134 },
+{ 0x2c0, 228, 0, 132 },
+{ 0x1c0, 228, 0, 133 },
+{ 0x20, 228, 0, 149 },
+{ 0xa0, 228, 0, 147 },
+{ 0x60, 228, 0, 148 },
+{ 0x10, 228, 0, 161 },
+{ 0x50, 228, 0, 159 },
+{ 0x30, 228, 0, 160 },
+{ 0x8, 228, 0, 173 },
+{ 0x28, 228, 0, 171 },
+{ 0x18, 228, 0, 172 },
+{ 0x4, 228, 0, 183 },
+{ 0x2, 228, 0, 184 },
+{ 0x1, 228, 0, 185 },
+{ 0x140, 231, 0, 125 },
+{ 0x540, 231, 0, 123 },
+{ 0x340, 231, 0, 124 },
+{ 0xc0, 231, 0, 137 },
+{ 0x2c0, 231, 0, 135 },
+{ 0x1c0, 231, 0, 136 },
+{ 0x20, 231, 0, 152 },
+{ 0xa0, 231, 0, 150 },
+{ 0x60, 231, 0, 151 },
+{ 0x10, 231, 0, 164 },
+{ 0x50, 231, 0, 162 },
+{ 0x30, 231, 0, 163 },
+{ 0x8, 231, 0, 176 },
+{ 0x28, 231, 0, 174 },
+{ 0x18, 231, 0, 175 },
+{ 0x4, 231, 0, 186 },
+{ 0x2, 231, 0, 187 },
+{ 0x1, 231, 0, 188 },
+{ 0x140, 243, 0, 128 },
+{ 0x540, 243, 0, 126 },
+{ 0x340, 243, 0, 127 },
+{ 0xc0, 243, 0, 140 },
+{ 0x2c0, 243, 0, 138 },
+{ 0x1c0, 243, 0, 139 },
+{ 0x20, 243, 0, 155 },
+{ 0xa0, 243, 0, 153 },
+{ 0x60, 243, 0, 154 },
+{ 0x10, 243, 0, 167 },
+{ 0x50, 243, 0, 165 },
+{ 0x30, 243, 0, 166 },
+{ 0x8, 243, 0, 179 },
+{ 0x28, 243, 0, 177 },
+{ 0x18, 243, 0, 178 },
+{ 0x4, 243, 0, 189 },
+{ 0x2, 243, 0, 190 },
+{ 0x1, 243, 0, 191 },
+{ 0x8, 347, 0, 192 },
+{ 0x4, 347, 0, 193 },
+{ 0x2, 347, 0, 194 },
+{ 0x1, 347, 0, 195 },
+{ 0x20, 245, 0, 203 },
+{ 0x220, 245, 0, 199 },
+{ 0x1220, 245, 0, 196 },
+{ 0xa20, 245, 0, 197 },
+{ 0x620, 245, 0, 198 },
+{ 0x120, 245, 0, 200 },
+{ 0xa0, 245, 0, 201 },
+{ 0x60, 245, 0, 202 },
+{ 0x10, 245, 0, 207 },
+{ 0x90, 245, 0, 204 },
+{ 0x50, 245, 0, 205 },
+{ 0x30, 245, 0, 206 },
+{ 0x8, 245, 0, 208 },
+{ 0x4, 245, 0, 209 },
+{ 0x2, 245, 0, 210 },
+{ 0x1, 245, 0, 211 },
+{ 0x20, 244, 0, 219 },
+{ 0x220, 244, 0, 215 },
+{ 0x1220, 244, 0, 212 },
+{ 0xa20, 244, 0, 213 },
+{ 0x620, 244, 0, 214 },
+{ 0x120, 244, 0, 216 },
+{ 0xa0, 244, 0, 217 },
+{ 0x60, 244, 0, 218 },
+{ 0x10, 244, 0, 223 },
+{ 0x90, 244, 0, 220 },
+{ 0x50, 244, 0, 221 },
+{ 0x30, 244, 0, 222 },
+{ 0x8, 244, 0, 224 },
+{ 0x4, 244, 0, 225 },
+{ 0x2, 244, 0, 226 },
+{ 0x1, 244, 0, 227 },
+{ 0x140, 236, 0, 230 },
+{ 0x540, 236, 0, 228 },
+{ 0x340, 236, 0, 229 },
+{ 0xc0, 236, 0, 239 },
+{ 0x2c0, 236, 0, 237 },
+{ 0x1c0, 236, 0, 238 },
+{ 0x20, 236, 0, 248 },
+{ 0xa0, 236, 0, 246 },
+{ 0x60, 236, 0, 247 },
+{ 0x10, 236, 0, 257 },
+{ 0x50, 236, 0, 255 },
+{ 0x30, 236, 0, 256 },
+{ 0x8, 236, 0, 266 },
+{ 0x28, 236, 0, 264 },
+{ 0x18, 236, 0, 265 },
+{ 0x4, 236, 0, 273 },
+{ 0x2, 236, 0, 274 },
+{ 0x1, 236, 0, 275 },
+{ 0x140, 238, 0, 233 },
+{ 0x540, 238, 0, 231 },
+{ 0x340, 238, 0, 232 },
+{ 0xc0, 238, 0, 242 },
+{ 0x2c0, 238, 0, 240 },
+{ 0x1c0, 238, 0, 241 },
+{ 0x20, 238, 0, 251 },
+{ 0xa0, 238, 0, 249 },
+{ 0x60, 238, 0, 250 },
+{ 0x10, 238, 0, 260 },
+{ 0x50, 238, 0, 258 },
+{ 0x30, 238, 0, 259 },
+{ 0x8, 238, 0, 269 },
+{ 0x28, 238, 0, 267 },
+{ 0x18, 238, 0, 268 },
+{ 0x4, 238, 0, 276 },
+{ 0x2, 238, 0, 277 },
+{ 0x1, 238, 0, 278 },
+{ 0x140, 240, 0, 236 },
+{ 0x540, 240, 0, 234 },
+{ 0x340, 240, 0, 235 },
+{ 0xc0, 240, 0, 245 },
+{ 0x2c0, 240, 0, 243 },
+{ 0x1c0, 240, 0, 244 },
+{ 0x20, 240, 0, 254 },
+{ 0xa0, 240, 0, 252 },
+{ 0x60, 240, 0, 253 },
+{ 0x10, 240, 0, 263 },
+{ 0x50, 240, 0, 261 },
+{ 0x30, 240, 0, 262 },
+{ 0x8, 240, 0, 272 },
+{ 0x28, 240, 0, 270 },
+{ 0x18, 240, 0, 271 },
+{ 0x4, 240, 0, 279 },
+{ 0x2, 240, 0, 280 },
+{ 0x1, 240, 0, 281 },
+{ 0x140, 235, 0, 284 },
+{ 0x540, 235, 0, 282 },
+{ 0x340, 235, 0, 283 },
+{ 0xc0, 235, 0, 293 },
+{ 0x2c0, 235, 0, 291 },
+{ 0x1c0, 235, 0, 292 },
+{ 0x20, 235, 0, 302 },
+{ 0xa0, 235, 0, 300 },
+{ 0x60, 235, 0, 301 },
+{ 0x10, 235, 0, 311 },
+{ 0x50, 235, 0, 309 },
+{ 0x30, 235, 0, 310 },
+{ 0x8, 235, 0, 320 },
+{ 0x28, 235, 0, 318 },
+{ 0x18, 235, 0, 319 },
+{ 0x4, 235, 0, 327 },
+{ 0x2, 235, 0, 328 },
+{ 0x1, 235, 0, 329 },
+{ 0x140, 237, 0, 287 },
+{ 0x540, 237, 0, 285 },
+{ 0x340, 237, 0, 286 },
+{ 0xc0, 237, 0, 296 },
+{ 0x2c0, 237, 0, 294 },
+{ 0x1c0, 237, 0, 295 },
+{ 0x20, 237, 0, 305 },
+{ 0xa0, 237, 0, 303 },
+{ 0x60, 237, 0, 304 },
+{ 0x10, 237, 0, 314 },
+{ 0x50, 237, 0, 312 },
+{ 0x30, 237, 0, 313 },
+{ 0x8, 237, 0, 323 },
+{ 0x28, 237, 0, 321 },
+{ 0x18, 237, 0, 322 },
+{ 0x4, 237, 0, 330 },
+{ 0x2, 237, 0, 331 },
+{ 0x1, 237, 0, 332 },
+{ 0x140, 239, 0, 290 },
+{ 0x540, 239, 0, 288 },
+{ 0x340, 239, 0, 289 },
+{ 0xc0, 239, 0, 299 },
+{ 0x2c0, 239, 0, 297 },
+{ 0x1c0, 239, 0, 298 },
+{ 0x20, 239, 0, 308 },
+{ 0xa0, 239, 0, 306 },
+{ 0x60, 239, 0, 307 },
+{ 0x10, 239, 0, 317 },
+{ 0x50, 239, 0, 315 },
+{ 0x30, 239, 0, 316 },
+{ 0x8, 239, 0, 326 },
+{ 0x28, 239, 0, 324 },
+{ 0x18, 239, 0, 325 },
+{ 0x4, 239, 0, 333 },
+{ 0x2, 239, 0, 334 },
+{ 0x1, 239, 0, 335 },
+{ 0x1, 366, 0, 337 },
+{ 0x3, 366, 0, 336 },
+{ 0x2, 372, 0, 338 },
+{ 0x1, 372, 0, 339 },
+{ 0x2, 368, 0, 340 },
+{ 0x1, 368, 0, 341 },
+{ 0x2, 370, 0, 342 },
+{ 0x1, 370, 0, 343 },
+{ 0x2, 374, 0, 344 },
+{ 0x1, 374, 0, 345 },
+{ 0x1, 224, 0, 372 },
+{ 0x5, 224, 0, 370 },
+{ 0x3, 224, 0, 371 },
+{ 0x140, 233, 0, 348 },
+{ 0x540, 233, 0, 346 },
+{ 0x340, 233, 0, 347 },
+{ 0xc0, 233, 0, 360 },
+{ 0x2c0, 233, 0, 358 },
+{ 0x1c0, 233, 0, 359 },
+{ 0x20, 233, 0, 375 },
+{ 0xa0, 233, 0, 373 },
+{ 0x60, 233, 0, 374 },
+{ 0x10, 233, 0, 387 },
+{ 0x50, 233, 0, 385 },
+{ 0x30, 233, 0, 386 },
+{ 0x8, 233, 0, 399 },
+{ 0x28, 233, 0, 397 },
+{ 0x18, 233, 0, 398 },
+{ 0x4, 233, 0, 409 },
+{ 0x2, 233, 0, 410 },
+{ 0x1, 233, 0, 411 },
+{ 0x140, 227, 0, 351 },
+{ 0x540, 227, 0, 349 },
+{ 0x340, 227, 0, 350 },
+{ 0xc0, 227, 0, 363 },
+{ 0x2c0, 227, 0, 361 },
+{ 0x1c0, 227, 0, 362 },
+{ 0x20, 227, 0, 378 },
+{ 0xa0, 227, 0, 376 },
+{ 0x60, 227, 0, 377 },
+{ 0x10, 227, 0, 390 },
+{ 0x50, 227, 0, 388 },
+{ 0x30, 227, 0, 389 },
+{ 0x8, 227, 0, 402 },
+{ 0x28, 227, 0, 400 },
+{ 0x18, 227, 0, 401 },
+{ 0x4, 227, 0, 412 },
+{ 0x2, 227, 0, 413 },
+{ 0x1, 227, 0, 414 },
+{ 0x140, 230, 0, 354 },
+{ 0x540, 230, 0, 352 },
+{ 0x340, 230, 0, 353 },
+{ 0xc0, 230, 0, 366 },
+{ 0x2c0, 230, 0, 364 },
+{ 0x1c0, 230, 0, 365 },
+{ 0x20, 230, 0, 381 },
+{ 0xa0, 230, 0, 379 },
+{ 0x60, 230, 0, 380 },
+{ 0x10, 230, 0, 393 },
+{ 0x50, 230, 0, 391 },
+{ 0x30, 230, 0, 392 },
+{ 0x8, 230, 0, 405 },
+{ 0x28, 230, 0, 403 },
+{ 0x18, 230, 0, 404 },
+{ 0x4, 230, 0, 415 },
+{ 0x2, 230, 0, 416 },
+{ 0x1, 230, 0, 417 },
+{ 0x140, 242, 0, 357 },
+{ 0x540, 242, 0, 355 },
+{ 0x340, 242, 0, 356 },
+{ 0xc0, 242, 0, 369 },
+{ 0x2c0, 242, 0, 367 },
+{ 0x1c0, 242, 0, 368 },
+{ 0x20, 242, 0, 384 },
+{ 0xa0, 242, 0, 382 },
+{ 0x60, 242, 0, 383 },
+{ 0x10, 242, 0, 396 },
+{ 0x50, 242, 0, 394 },
+{ 0x30, 242, 0, 395 },
+{ 0x8, 242, 0, 408 },
+{ 0x28, 242, 0, 406 },
+{ 0x18, 242, 0, 407 },
+{ 0x4, 242, 0, 418 },
+{ 0x2, 242, 0, 419 },
+{ 0x1, 242, 0, 420 },
+{ 0x1, 223, 0, 447 },
+{ 0x5, 223, 0, 445 },
+{ 0x3, 223, 0, 446 },
+{ 0x140, 232, 0, 423 },
+{ 0x540, 232, 0, 421 },
+{ 0x340, 232, 0, 422 },
+{ 0xc0, 232, 0, 435 },
+{ 0x2c0, 232, 0, 433 },
+{ 0x1c0, 232, 0, 434 },
+{ 0x20, 232, 0, 450 },
+{ 0xa0, 232, 0, 448 },
+{ 0x60, 232, 0, 449 },
+{ 0x10, 232, 0, 462 },
+{ 0x50, 232, 0, 460 },
+{ 0x30, 232, 0, 461 },
+{ 0x8, 232, 0, 474 },
+{ 0x28, 232, 0, 472 },
+{ 0x18, 232, 0, 473 },
+{ 0x4, 232, 0, 484 },
+{ 0x2, 232, 0, 485 },
+{ 0x1, 232, 0, 486 },
+{ 0x140, 226, 0, 426 },
+{ 0x540, 226, 0, 424 },
+{ 0x340, 226, 0, 425 },
+{ 0xc0, 226, 0, 438 },
+{ 0x2c0, 226, 0, 436 },
+{ 0x1c0, 226, 0, 437 },
+{ 0x20, 226, 0, 453 },
+{ 0xa0, 226, 0, 451 },
+{ 0x60, 226, 0, 452 },
+{ 0x10, 226, 0, 465 },
+{ 0x50, 226, 0, 463 },
+{ 0x30, 226, 0, 464 },
+{ 0x8, 226, 0, 477 },
+{ 0x28, 226, 0, 475 },
+{ 0x18, 226, 0, 476 },
+{ 0x4, 226, 0, 487 },
+{ 0x2, 226, 0, 488 },
+{ 0x1, 226, 0, 489 },
+{ 0x140, 229, 0, 429 },
+{ 0x540, 229, 0, 427 },
+{ 0x340, 229, 0, 428 },
+{ 0xc0, 229, 0, 441 },
+{ 0x2c0, 229, 0, 439 },
+{ 0x1c0, 229, 0, 440 },
+{ 0x20, 229, 0, 456 },
+{ 0xa0, 229, 0, 454 },
+{ 0x60, 229, 0, 455 },
+{ 0x10, 229, 0, 468 },
+{ 0x50, 229, 0, 466 },
+{ 0x30, 229, 0, 467 },
+{ 0x8, 229, 0, 480 },
+{ 0x28, 229, 0, 478 },
+{ 0x18, 229, 0, 479 },
+{ 0x4, 229, 0, 490 },
+{ 0x2, 229, 0, 491 },
+{ 0x1, 229, 0, 492 },
+{ 0x140, 241, 0, 432 },
+{ 0x540, 241, 0, 430 },
+{ 0x340, 241, 0, 431 },
+{ 0xc0, 241, 0, 444 },
+{ 0x2c0, 241, 0, 442 },
+{ 0x1c0, 241, 0, 443 },
+{ 0x20, 241, 0, 459 },
+{ 0xa0, 241, 0, 457 },
+{ 0x60, 241, 0, 458 },
+{ 0x10, 241, 0, 471 },
+{ 0x50, 241, 0, 469 },
+{ 0x30, 241, 0, 470 },
+{ 0x8, 241, 0, 483 },
+{ 0x28, 241, 0, 481 },
+{ 0x18, 241, 0, 482 },
+{ 0x4, 241, 0, 493 },
+{ 0x2, 241, 0, 494 },
+{ 0x1, 241, 0, 495 },
+{ 0x8, 365, 0, 497 },
+{ 0x18, 365, 0, 496 },
+{ 0x4, 365, 0, 499 },
+{ 0xc, 365, 0, 498 },
+{ 0x2, 365, 0, 506 },
+{ 0x1, 365, 0, 507 },
+{ 0x4, 363, 0, 501 },
+{ 0xc, 363, 0, 500 },
+{ 0x2, 363, 0, 508 },
+{ 0x1, 363, 0, 509 },
+{ 0x4, 361, 0, 503 },
+{ 0xc, 361, 0, 502 },
+{ 0x2, 361, 0, 510 },
+{ 0x1, 361, 0, 511 },
+{ 0x4, 358, 0, 505 },
+{ 0xc, 358, 0, 504 },
+{ 0x2, 358, 0, 512 },
+{ 0x1, 358, 0, 513 },
+{ 0xa00, 222, 0, 528 },
+{ 0x2a00, 222, 0, 526 },
+{ 0x1a00, 222, 0, 527 },
+{ 0x600, 222, 0, 540 },
+{ 0x2600, 222, 0, 516 },
+{ 0xa600, 222, 0, 514 },
+{ 0x6600, 222, 0, 515 },
+{ 0x1600, 222, 0, 538 },
+{ 0xe00, 222, 0, 539 },
+{ 0x100, 222, 0, 552 },
+{ 0x500, 222, 0, 550 },
+{ 0x300, 222, 0, 551 },
+{ 0x80, 222, 0, 555 },
+{ 0x280, 222, 0, 553 },
+{ 0x180, 222, 0, 554 },
+{ 0x40, 222, 0, 567 },
+{ 0x140, 222, 0, 565 },
+{ 0xc0, 222, 0, 566 },
+{ 0x20, 222, 0, 579 },
+{ 0xa0, 222, 0, 577 },
+{ 0x60, 222, 0, 578 },
+{ 0x10, 222, 0, 591 },
+{ 0x50, 222, 0, 589 },
+{ 0x30, 222, 0, 590 },
+{ 0x8, 222, 0, 603 },
+{ 0x28, 222, 0, 601 },
+{ 0x18, 222, 0, 602 },
+{ 0x4, 222, 0, 613 },
+{ 0x2, 222, 0, 614 },
+{ 0x1, 222, 0, 615 },
+{ 0x500, 218, 0, 531 },
+{ 0x1500, 218, 0, 529 },
+{ 0xd00, 218, 0, 530 },
+{ 0x300, 218, 0, 543 },
+{ 0x1300, 218, 0, 519 },
+{ 0x5300, 218, 0, 517 },
+{ 0x3300, 218, 0, 518 },
+{ 0xb00, 218, 0, 541 },
+{ 0x700, 218, 0, 542 },
+{ 0x80, 218, 0, 558 },
+{ 0x280, 218, 0, 556 },
+{ 0x180, 218, 0, 557 },
+{ 0x40, 218, 0, 570 },
+{ 0x140, 218, 0, 568 },
+{ 0xc0, 218, 0, 569 },
+{ 0x20, 218, 0, 582 },
+{ 0xa0, 218, 0, 580 },
+{ 0x60, 218, 0, 581 },
+{ 0x10, 218, 0, 594 },
+{ 0x50, 218, 0, 592 },
+{ 0x30, 218, 0, 593 },
+{ 0x8, 218, 0, 606 },
+{ 0x28, 218, 0, 604 },
+{ 0x18, 218, 0, 605 },
+{ 0x4, 218, 0, 616 },
+{ 0x2, 218, 0, 617 },
+{ 0x1, 218, 0, 618 },
+{ 0x500, 215, 0, 534 },
+{ 0x1500, 215, 0, 532 },
+{ 0xd00, 215, 0, 533 },
+{ 0x300, 215, 0, 546 },
+{ 0x1300, 215, 0, 522 },
+{ 0x5300, 215, 0, 520 },
+{ 0x3300, 215, 0, 521 },
+{ 0xb00, 215, 0, 544 },
+{ 0x700, 215, 0, 545 },
+{ 0x80, 215, 0, 561 },
+{ 0x280, 215, 0, 559 },
+{ 0x180, 215, 0, 560 },
+{ 0x40, 215, 0, 573 },
+{ 0x140, 215, 0, 571 },
+{ 0xc0, 215, 0, 572 },
+{ 0x20, 215, 0, 585 },
+{ 0xa0, 215, 0, 583 },
+{ 0x60, 215, 0, 584 },
+{ 0x10, 215, 0, 597 },
+{ 0x50, 215, 0, 595 },
+{ 0x30, 215, 0, 596 },
+{ 0x8, 215, 0, 609 },
+{ 0x28, 215, 0, 607 },
+{ 0x18, 215, 0, 608 },
+{ 0x4, 215, 0, 619 },
+{ 0x2, 215, 0, 620 },
+{ 0x1, 215, 0, 621 },
+{ 0x500, 211, 0, 537 },
+{ 0x1500, 211, 0, 535 },
+{ 0xd00, 211, 0, 536 },
+{ 0x300, 211, 0, 549 },
+{ 0x1300, 211, 0, 525 },
+{ 0x5300, 211, 0, 523 },
+{ 0x3300, 211, 0, 524 },
+{ 0xb00, 211, 0, 547 },
+{ 0x700, 211, 0, 548 },
+{ 0x80, 211, 0, 564 },
+{ 0x280, 211, 0, 562 },
+{ 0x180, 211, 0, 563 },
+{ 0x40, 211, 0, 576 },
+{ 0x140, 211, 0, 574 },
+{ 0xc0, 211, 0, 575 },
+{ 0x20, 211, 0, 588 },
+{ 0xa0, 211, 0, 586 },
+{ 0x60, 211, 0, 587 },
+{ 0x10, 211, 0, 600 },
+{ 0x50, 211, 0, 598 },
+{ 0x30, 211, 0, 599 },
+{ 0x8, 211, 0, 612 },
+{ 0x28, 211, 0, 610 },
+{ 0x18, 211, 0, 611 },
+{ 0x4, 211, 0, 622 },
+{ 0x2, 211, 0, 623 },
+{ 0x1, 211, 0, 624 },
+{ 0x8, 196, 0, 625 },
+{ 0x4, 196, 0, 626 },
+{ 0x2, 196, 0, 627 },
+{ 0x1, 196, 0, 628 },
+{ 0x2, 134, 0, 631 },
+{ 0xa, 134, 0, 629 },
+{ 0x6, 134, 0, 630 },
+{ 0x1, 134, 0, 637 },
+{ 0x5, 134, 0, 635 },
+{ 0x3, 134, 0, 636 },
+{ 0x2, 133, 0, 634 },
+{ 0xa, 133, 0, 632 },
+{ 0x6, 133, 0, 633 },
+{ 0x1, 133, 0, 640 },
+{ 0x5, 133, 0, 638 },
+{ 0x3, 133, 0, 639 },
+{ 0x4, 398, 0, 641 },
+{ 0x2, 398, 0, 642 },
+{ 0x1, 398, 0, 643 },
+{ 0x4, 397, 0, 644 },
+{ 0x2, 397, 0, 645 },
+{ 0x1, 397, 0, 646 },
+{ 0x4, 396, 0, 647 },
+{ 0x2, 396, 0, 648 },
+{ 0x1, 396, 0, 649 },
+{ 0x4, 395, 0, 650 },
+{ 0x2, 395, 0, 651 },
+{ 0x1, 395, 0, 652 },
+{ 0x2, 92, 0, 655 },
+{ 0xa, 92, 0, 653 },
+{ 0x6, 92, 0, 654 },
+{ 0x1, 92, 0, 670 },
+{ 0x5, 92, 0, 668 },
+{ 0x3, 92, 0, 669 },
+{ 0x2, 96, 0, 658 },
+{ 0xa, 96, 0, 656 },
+{ 0x6, 96, 0, 657 },
+{ 0x1, 96, 0, 673 },
+{ 0x5, 96, 0, 671 },
+{ 0x3, 96, 0, 672 },
+{ 0x2, 95, 0, 661 },
+{ 0xa, 95, 0, 659 },
+{ 0x6, 95, 0, 660 },
+{ 0x1, 95, 0, 676 },
+{ 0x5, 95, 0, 674 },
+{ 0x3, 95, 0, 675 },
+{ 0x2, 94, 0, 664 },
+{ 0xa, 94, 0, 662 },
+{ 0x6, 94, 0, 663 },
+{ 0x1, 94, 0, 679 },
+{ 0x5, 94, 0, 677 },
+{ 0x3, 94, 0, 678 },
+{ 0x2, 93, 0, 667 },
+{ 0xa, 93, 0, 665 },
+{ 0x6, 93, 0, 666 },
+{ 0x1, 93, 0, 682 },
+{ 0x5, 93, 0, 680 },
+{ 0x3, 93, 0, 681 },
+{ 0x4, 359, 0, 686 },
+{ 0xc, 359, 0, 685 },
+{ 0x2, 359, 0, 695 },
+{ 0x1, 359, 0, 696 },
+{ 0x8, 364, 0, 684 },
+{ 0x18, 364, 0, 683 },
+{ 0x4, 364, 0, 688 },
+{ 0xc, 364, 0, 687 },
+{ 0x2, 364, 0, 697 },
+{ 0x1, 364, 0, 698 },
+{ 0x4, 362, 0, 690 },
+{ 0xc, 362, 0, 689 },
+{ 0x2, 362, 0, 699 },
+{ 0x1, 362, 0, 700 },
+{ 0x4, 360, 0, 692 },
+{ 0xc, 360, 0, 691 },
+{ 0x2, 360, 0, 701 },
+{ 0x1, 360, 0, 702 },
+{ 0x4, 357, 0, 694 },
+{ 0xc, 357, 0, 693 },
+{ 0x2, 357, 0, 703 },
+{ 0x1, 357, 0, 704 },
+{ 0xa00, 221, 0, 719 },
+{ 0x2a00, 221, 0, 717 },
+{ 0x1a00, 221, 0, 718 },
+{ 0x600, 221, 0, 731 },
+{ 0x2600, 221, 0, 707 },
+{ 0xa600, 221, 0, 705 },
+{ 0x6600, 221, 0, 706 },
+{ 0x1600, 221, 0, 729 },
+{ 0xe00, 221, 0, 730 },
+{ 0x100, 221, 0, 743 },
+{ 0x500, 221, 0, 741 },
+{ 0x300, 221, 0, 742 },
+{ 0x80, 221, 0, 746 },
+{ 0x280, 221, 0, 744 },
+{ 0x180, 221, 0, 745 },
+{ 0x40, 221, 0, 758 },
+{ 0x140, 221, 0, 756 },
+{ 0xc0, 221, 0, 757 },
+{ 0x20, 221, 0, 770 },
+{ 0xa0, 221, 0, 768 },
+{ 0x60, 221, 0, 769 },
+{ 0x10, 221, 0, 782 },
+{ 0x50, 221, 0, 780 },
+{ 0x30, 221, 0, 781 },
+{ 0x8, 221, 0, 794 },
+{ 0x28, 221, 0, 792 },
+{ 0x18, 221, 0, 793 },
+{ 0x4, 221, 0, 804 },
+{ 0x2, 221, 0, 805 },
+{ 0x1, 221, 0, 806 },
+{ 0x500, 217, 0, 722 },
+{ 0x1500, 217, 0, 720 },
+{ 0xd00, 217, 0, 721 },
+{ 0x300, 217, 0, 734 },
+{ 0x1300, 217, 0, 710 },
+{ 0x5300, 217, 0, 708 },
+{ 0x3300, 217, 0, 709 },
+{ 0xb00, 217, 0, 732 },
+{ 0x700, 217, 0, 733 },
+{ 0x80, 217, 0, 749 },
+{ 0x280, 217, 0, 747 },
+{ 0x180, 217, 0, 748 },
+{ 0x40, 217, 0, 761 },
+{ 0x140, 217, 0, 759 },
+{ 0xc0, 217, 0, 760 },
+{ 0x20, 217, 0, 773 },
+{ 0xa0, 217, 0, 771 },
+{ 0x60, 217, 0, 772 },
+{ 0x10, 217, 0, 785 },
+{ 0x50, 217, 0, 783 },
+{ 0x30, 217, 0, 784 },
+{ 0x8, 217, 0, 797 },
+{ 0x28, 217, 0, 795 },
+{ 0x18, 217, 0, 796 },
+{ 0x4, 217, 0, 807 },
+{ 0x2, 217, 0, 808 },
+{ 0x1, 217, 0, 809 },
+{ 0x500, 214, 0, 725 },
+{ 0x1500, 214, 0, 723 },
+{ 0xd00, 214, 0, 724 },
+{ 0x300, 214, 0, 737 },
+{ 0x1300, 214, 0, 713 },
+{ 0x5300, 214, 0, 711 },
+{ 0x3300, 214, 0, 712 },
+{ 0xb00, 214, 0, 735 },
+{ 0x700, 214, 0, 736 },
+{ 0x80, 214, 0, 752 },
+{ 0x280, 214, 0, 750 },
+{ 0x180, 214, 0, 751 },
+{ 0x40, 214, 0, 764 },
+{ 0x140, 214, 0, 762 },
+{ 0xc0, 214, 0, 763 },
+{ 0x20, 214, 0, 776 },
+{ 0xa0, 214, 0, 774 },
+{ 0x60, 214, 0, 775 },
+{ 0x10, 214, 0, 788 },
+{ 0x50, 214, 0, 786 },
+{ 0x30, 214, 0, 787 },
+{ 0x8, 214, 0, 800 },
+{ 0x28, 214, 0, 798 },
+{ 0x18, 214, 0, 799 },
+{ 0x4, 214, 0, 810 },
+{ 0x2, 214, 0, 811 },
+{ 0x1, 214, 0, 812 },
+{ 0x500, 210, 0, 728 },
+{ 0x1500, 210, 0, 726 },
+{ 0xd00, 210, 0, 727 },
+{ 0x300, 210, 0, 740 },
+{ 0x1300, 210, 0, 716 },
+{ 0x5300, 210, 0, 714 },
+{ 0x3300, 210, 0, 715 },
+{ 0xb00, 210, 0, 738 },
+{ 0x700, 210, 0, 739 },
+{ 0x80, 210, 0, 755 },
+{ 0x280, 210, 0, 753 },
+{ 0x180, 210, 0, 754 },
+{ 0x40, 210, 0, 767 },
+{ 0x140, 210, 0, 765 },
+{ 0xc0, 210, 0, 766 },
+{ 0x20, 210, 0, 779 },
+{ 0xa0, 210, 0, 777 },
+{ 0x60, 210, 0, 778 },
+{ 0x10, 210, 0, 791 },
+{ 0x50, 210, 0, 789 },
+{ 0x30, 210, 0, 790 },
+{ 0x8, 210, 0, 803 },
+{ 0x28, 210, 0, 801 },
+{ 0x18, 210, 0, 802 },
+{ 0x4, 210, 0, 813 },
+{ 0x2, 210, 0, 814 },
+{ 0x1, 210, 0, 815 },
+{ 0x8, 212, 0, 858 },
+{ 0x28, 212, 0, 856 },
+{ 0x18, 212, 0, 857 },
+{ 0x4, 212, 0, 919 },
+{ 0x2, 212, 0, 920 },
+{ 0x1, 212, 0, 921 },
+{ 0xa00, 219, 0, 831 },
+{ 0x2a00, 219, 0, 829 },
+{ 0x1a00, 219, 0, 830 },
+{ 0x600, 219, 0, 843 },
+{ 0x2600, 219, 0, 819 },
+{ 0xa600, 219, 0, 817 },
+{ 0x6600, 219, 0, 818 },
+{ 0x1600, 219, 0, 841 },
+{ 0xe00, 219, 0, 842 },
+{ 0x100, 219, 0, 855 },
+{ 0x500, 219, 0, 853 },
+{ 0x300, 219, 0, 854 },
+{ 0x80, 219, 0, 861 },
+{ 0x280, 219, 0, 859 },
+{ 0x180, 219, 0, 860 },
+{ 0x40, 219, 0, 873 },
+{ 0x140, 219, 0, 871 },
+{ 0xc0, 219, 0, 872 },
+{ 0x20, 219, 0, 885 },
+{ 0xa0, 219, 0, 883 },
+{ 0x60, 219, 0, 884 },
+{ 0x10, 219, 0, 897 },
+{ 0x50, 219, 0, 895 },
+{ 0x30, 219, 0, 896 },
+{ 0x8, 219, 0, 909 },
+{ 0x28, 219, 0, 907 },
+{ 0x18, 219, 0, 908 },
+{ 0x4, 219, 0, 922 },
+{ 0x2, 219, 0, 923 },
+{ 0x1, 219, 1, 924 },
+{ 0x1, 220, 0, 816 },
+{ 0x500, 216, 0, 834 },
+{ 0x1500, 216, 0, 832 },
+{ 0xd00, 216, 0, 833 },
+{ 0x300, 216, 0, 846 },
+{ 0x1300, 216, 0, 822 },
+{ 0x5300, 216, 0, 820 },
+{ 0x3300, 216, 0, 821 },
+{ 0xb00, 216, 0, 844 },
+{ 0x700, 216, 0, 845 },
+{ 0x80, 216, 0, 864 },
+{ 0x280, 216, 0, 862 },
+{ 0x180, 216, 0, 863 },
+{ 0x40, 216, 0, 876 },
+{ 0x140, 216, 0, 874 },
+{ 0xc0, 216, 0, 875 },
+{ 0x20, 216, 0, 888 },
+{ 0xa0, 216, 0, 886 },
+{ 0x60, 216, 0, 887 },
+{ 0x10, 216, 0, 900 },
+{ 0x50, 216, 0, 898 },
+{ 0x30, 216, 0, 899 },
+{ 0x8, 216, 0, 912 },
+{ 0x28, 216, 0, 910 },
+{ 0x18, 216, 0, 911 },
+{ 0x4, 216, 0, 925 },
+{ 0x2, 216, 0, 926 },
+{ 0x1, 216, 0, 927 },
+{ 0x500, 213, 0, 837 },
+{ 0x1500, 213, 0, 835 },
+{ 0xd00, 213, 0, 836 },
+{ 0x300, 213, 0, 849 },
+{ 0x1300, 213, 0, 825 },
+{ 0x5300, 213, 0, 823 },
+{ 0x3300, 213, 0, 824 },
+{ 0xb00, 213, 0, 847 },
+{ 0x700, 213, 0, 848 },
+{ 0x80, 213, 0, 867 },
+{ 0x280, 213, 0, 865 },
+{ 0x180, 213, 0, 866 },
+{ 0x40, 213, 0, 879 },
+{ 0x140, 213, 0, 877 },
+{ 0xc0, 213, 0, 878 },
+{ 0x20, 213, 0, 891 },
+{ 0xa0, 213, 0, 889 },
+{ 0x60, 213, 0, 890 },
+{ 0x10, 213, 0, 903 },
+{ 0x50, 213, 0, 901 },
+{ 0x30, 213, 0, 902 },
+{ 0x8, 213, 0, 915 },
+{ 0x28, 213, 0, 913 },
+{ 0x18, 213, 0, 914 },
+{ 0x4, 213, 0, 928 },
+{ 0x2, 213, 0, 929 },
+{ 0x1, 213, 0, 930 },
+{ 0x500, 209, 0, 840 },
+{ 0x1500, 209, 0, 838 },
+{ 0xd00, 209, 0, 839 },
+{ 0x300, 209, 0, 852 },
+{ 0x1300, 209, 0, 828 },
+{ 0x5300, 209, 0, 826 },
+{ 0x3300, 209, 0, 827 },
+{ 0xb00, 209, 0, 850 },
+{ 0x700, 209, 0, 851 },
+{ 0x80, 209, 0, 870 },
+{ 0x280, 209, 0, 868 },
+{ 0x180, 209, 0, 869 },
+{ 0x40, 209, 0, 882 },
+{ 0x140, 209, 0, 880 },
+{ 0xc0, 209, 0, 881 },
+{ 0x20, 209, 0, 894 },
+{ 0xa0, 209, 0, 892 },
+{ 0x60, 209, 0, 893 },
+{ 0x10, 209, 0, 906 },
+{ 0x50, 209, 0, 904 },
+{ 0x30, 209, 0, 905 },
+{ 0x8, 209, 0, 918 },
+{ 0x28, 209, 0, 916 },
+{ 0x18, 209, 0, 917 },
+{ 0x4, 209, 0, 931 },
+{ 0x2, 209, 0, 932 },
+{ 0x1, 209, 0, 933 },
+{ 0x2, 114, 0, 935 },
+{ 0x1, 114, 0, 936 },
+{ 0x1, 49, 0, 937 },
+{ 0x3, 48, 0, 938 },
+{ 0x1, 384, 0, 939 },
+{ 0x1, 390, 0, 940 },
+{ 0x2, 343, 0, 943 },
+{ 0x1, 343, 0, 944 },
+{ 0x2, 341, 0, 945 },
+{ 0x1, 341, 0, 946 },
+{ 0x1, 340, 0, 947 },
+{ 0x1, 285, 0, 952 },
+{ 0x1, 284, 0, 953 },
+{ 0x1, 283, 0, 954 },
+{ 0x1, 282, 0, 955 },
+{ 0x1, 208, 0, 956 },
+{ 0x1, 207, 0, 957 },
+{ 0x1, 281, 0, 958 },
+{ 0x1, 280, 0, 959 },
+{ 0x1, 279, 0, 960 },
+{ 0x1, 278, 0, 961 },
+{ 0x1, 277, 0, 962 },
+{ 0x1, 276, 0, 963 },
+{ 0x1, 275, 0, 964 },
+{ 0x2, 206, 0, 965 },
+{ 0x1, 206, 0, 966 },
+{ 0x2, 323, 0, 972 },
+{ 0x1, 323, 0, 973 },
+{ 0x1, 274, 0, 974 },
+{ 0x1, 273, 0, 975 },
+{ 0x1, 272, 0, 976 },
+{ 0x1, 271, 0, 977 },
+{ 0x1, 8, 0, 978 },
+{ 0x1, 270, 0, 979 },
+{ 0x1, 269, 0, 980 },
+{ 0x1, 268, 0, 981 },
+{ 0x1, 267, 0, 982 },
+{ 0x1, 345, 0, 983 },
+{ 0x1, 356, 0, 984 },
+{ 0x1, 346, 0, 985 },
+{ 0x1, 379, 0, 986 },
+{ 0x1, 266, 0, 990 },
+{ 0x1, 205, 0, 991 },
+{ 0x1, 135, 0, 994 },
+{ 0x2, 248, 0, 998 },
+{ 0x1, 248, 0, 999 },
+{ 0x1, 194, 0, 1000 },
+{ 0x5, 47, 0, 1002 },
+{ 0x3, 47, 0, 1003 },
+{ 0x5, 46, 0, 1004 },
+{ 0x3, 46, 0, 1005 },
+{ 0x1, 322, 0, 1006 },
+{ 0x1, 330, 0, 1007 },
+{ 0x1, 328, 0, 1008 },
+{ 0x1, 349, 0, 1009 },
+{ 0x1, 329, 0, 1010 },
+{ 0x1, 327, 0, 1011 },
+{ 0x2, 335, 0, 1012 },
+{ 0x1, 335, 0, 1014 },
+{ 0x2, 333, 0, 1013 },
+{ 0x1, 333, 0, 1015 },
+{ 0x2, 353, 0, 1016 },
+{ 0x1, 353, 0, 1019 },
+{ 0x2, 334, 0, 1017 },
+{ 0x1, 334, 0, 1020 },
+{ 0x2, 332, 0, 1018 },
+{ 0x1, 332, 0, 1021 },
+{ 0x1, 295, 0, 1022 },
+{ 0x1, 294, 0, 1023 },
+{ 0x1, 326, 0, 1024 },
+{ 0x1, 317, 0, 1025 },
+{ 0x1, 319, 0, 1026 },
+{ 0x1, 316, 0, 1027 },
+{ 0x1, 318, 0, 1028 },
+{ 0x2, 394, 0, 1029 },
+{ 0x1, 394, 0, 1032 },
+{ 0x2, 393, 0, 1030 },
+{ 0x1, 393, 0, 1033 },
+{ 0x2, 392, 0, 1031 },
+{ 0x1, 392, 0, 1034 },
+{ 0x1, 305, 0, 1035 },
+{ 0x2, 304, 0, 1036 },
+{ 0x1, 304, 0, 1037 },
+{ 0x2, 251, 0, 1038 },
+{ 0x1, 251, 0, 1041 },
+{ 0x2, 250, 0, 1039 },
+{ 0x1, 250, 0, 1042 },
+{ 0x2, 249, 0, 1040 },
+{ 0x1, 249, 0, 1043 },
+{ 0x2, 320, 0, 1044 },
+{ 0x1, 320, 0, 1045 },
+{ 0x2, 321, 0, 1046 },
+{ 0x1, 321, 0, 1047 },
+{ 0xa, 388, 1, 1053 },
+{ 0xa, 389, 0, 1052 },
+{ 0x1a, 388, 1, 1049 },
+{ 0x32, 389, 0, 1048 },
+{ 0x6, 388, 1, 1057 },
+{ 0x6, 389, 0, 1056 },
+{ 0x1, 388, 1, 1063 },
+{ 0x1, 389, 0, 1062 },
+{ 0x9, 388, 1, 1055 },
+{ 0x9, 389, 0, 1054 },
+{ 0x19, 388, 1, 1051 },
+{ 0x31, 389, 0, 1050 },
+{ 0x5, 388, 1, 1059 },
+{ 0x5, 389, 0, 1058 },
+{ 0x3, 388, 1, 1061 },
+{ 0x3, 389, 0, 1060 },
+{ 0xa, 385, 1, 1069 },
+{ 0xa, 386, 0, 1068 },
+{ 0x1a, 385, 1, 1065 },
+{ 0x32, 386, 0, 1064 },
+{ 0x6, 385, 1, 1073 },
+{ 0x6, 386, 0, 1072 },
+{ 0x1, 385, 1, 1079 },
+{ 0x1, 386, 0, 1078 },
+{ 0x9, 385, 1, 1071 },
+{ 0x9, 386, 0, 1070 },
+{ 0x19, 385, 1, 1067 },
+{ 0x31, 386, 0, 1066 },
+{ 0x5, 385, 1, 1075 },
+{ 0x5, 386, 0, 1074 },
+{ 0x3, 385, 1, 1077 },
+{ 0x3, 386, 0, 1076 },
+{ 0x1, 103, 0, 1080 },
+{ 0x1, 102, 0, 1081 },
+{ 0x1, 348, 1, 1083 },
+{ 0x1, 101, 0, 1082 },
+{ 0x2, 352, 1, 1085 },
+{ 0x2, 105, 0, 1084 },
+{ 0x1, 352, 1, 1087 },
+{ 0x1, 105, 0, 1086 },
+{ 0x1, 354, 0, 1088 },
+{ 0x1, 100, 0, 1089 },
+{ 0x2, 99, 0, 1090 },
+{ 0x2, 98, 0, 1091 },
+{ 0x1, 406, 1, 1097 },
+{ 0x1, 204, 0, 992 },
+{ 0x1, 405, 0, 1098 },
+{ 0x1, 404, 1, 1099 },
+{ 0x1, 203, 0, 1001 },
+{ 0x1, 265, 0, 1100 },
+{ 0x1, 264, 1, 1101 },
+{ 0x1, 247, 0, 993 },
+{ 0x1, 263, 0, 1102 },
+{ 0x1, 262, 1, 1103 },
+{ 0x1, 383, 0, 995 },
+{ 0x1, 261, 1, 1104 },
+{ 0x1, 355, 0, 997 },
+{ 0x1, 260, 0, 1105 },
+{ 0x1, 259, 0, 1106 },
+{ 0x1, 258, 1, 1107 },
+{ 0x2, 355, 0, 996 },
+{ 0x10, 257, 0, 1111 },
+{ 0x90, 257, 0, 1109 },
+{ 0x190, 257, 0, 1108 },
+{ 0x50, 257, 0, 1110 },
+{ 0x30, 257, 0, 1113 },
+{ 0x70, 257, 0, 1112 },
+{ 0x8, 257, 0, 1115 },
+{ 0x18, 257, 0, 1114 },
+{ 0x4, 257, 0, 1116 },
+{ 0x1, 257, 0, 1119 },
+{ 0x3, 257, 0, 1118 },
+{ 0x1, 256, 1, 1120 },
+{ 0x2, 257, 0, 1117 },
+{ 0x3, 45, 0, 1121 },
+{ 0x1, 199, 1, 1122 },
+{ 0x1, 200, 1, 987 },
+{ 0x1, 201, 0, 88 },
+{ 0x1, 298, 1, 1123 },
+{ 0x1, 299, 1, 988 },
+{ 0x1, 300, 0, 89 },
+{ 0x1, 33, 1, 1124 },
+{ 0x1, 34, 1, 989 },
+{ 0x1, 35, 0, 90 },
+{ 0x1, 188, 0, 1125 },
+{ 0x4, 399, 0, 1126 },
+{ 0x2, 399, 0, 1127 },
+{ 0x1, 399, 1, 1129 },
+{ 0x1, 400, 0, 1128 },
+{ 0x8, 401, 0, 1130 },
+{ 0x4, 401, 0, 1131 },
+{ 0x1, 401, 1, 1133 },
+{ 0x2, 401, 0, 1132 },
+{ 0x8, 177, 0, 1134 },
+{ 0x4, 177, 0, 1135 },
+{ 0x2, 177, 0, 1136 },
+{ 0x1, 177, 1, 1138 },
+{ 0x1, 178, 0, 1137 },
+{ 0x10, 179, 0, 1139 },
+{ 0x8, 179, 0, 1140 },
+{ 0x4, 179, 0, 1141 },
+{ 0x1, 179, 1, 1143 },
+{ 0x2, 179, 0, 1142 },
+{ 0x220, 149, 0, 1144 },
+{ 0x120, 149, 0, 1145 },
+{ 0xa0, 149, 0, 1146 },
+{ 0x60, 149, 1, 1148 },
+{ 0x4, 150, 0, 1147 },
+{ 0x110, 149, 0, 1154 },
+{ 0x90, 149, 0, 1155 },
+{ 0x50, 149, 0, 1156 },
+{ 0x30, 149, 1, 1158 },
+{ 0x2, 150, 0, 1157 },
+{ 0x8, 149, 0, 1159 },
+{ 0x4, 149, 0, 1160 },
+{ 0x2, 149, 0, 1161 },
+{ 0x1, 149, 1, 1163 },
+{ 0x1, 150, 0, 1162 },
+{ 0x440, 151, 0, 1149 },
+{ 0x240, 151, 0, 1150 },
+{ 0x140, 151, 0, 1151 },
+{ 0xc0, 151, 1, 1153 },
+{ 0x40, 151, 0, 1152 },
+{ 0x220, 151, 0, 1164 },
+{ 0x120, 151, 0, 1165 },
+{ 0xa0, 151, 0, 1166 },
+{ 0x60, 151, 1, 1168 },
+{ 0x20, 151, 0, 1167 },
+{ 0x10, 151, 0, 1169 },
+{ 0x8, 151, 0, 1170 },
+{ 0x4, 151, 0, 1171 },
+{ 0x1, 151, 1, 1173 },
+{ 0x2, 151, 0, 1172 },
+{ 0x8, 173, 0, 1174 },
+{ 0x4, 173, 0, 1175 },
+{ 0x2, 173, 0, 1176 },
+{ 0x1, 173, 1, 1178 },
+{ 0x1, 174, 0, 1177 },
+{ 0x220, 145, 0, 1179 },
+{ 0x120, 145, 0, 1180 },
+{ 0xa0, 145, 0, 1181 },
+{ 0x60, 145, 1, 1183 },
+{ 0x4, 146, 0, 1182 },
+{ 0x110, 145, 0, 1189 },
+{ 0x90, 145, 0, 1190 },
+{ 0x50, 145, 0, 1191 },
+{ 0x30, 145, 1, 1193 },
+{ 0x2, 146, 0, 1192 },
+{ 0x8, 145, 0, 1194 },
+{ 0x4, 145, 0, 1195 },
+{ 0x2, 145, 0, 1196 },
+{ 0x1, 145, 1, 1198 },
+{ 0x1, 146, 0, 1197 },
+{ 0x440, 191, 0, 1184 },
+{ 0x240, 191, 0, 1185 },
+{ 0x140, 191, 0, 1186 },
+{ 0xc0, 191, 1, 1188 },
+{ 0x40, 191, 0, 1187 },
+{ 0x220, 191, 0, 1199 },
+{ 0x120, 191, 0, 1200 },
+{ 0xa0, 191, 0, 1201 },
+{ 0x60, 191, 1, 1203 },
+{ 0x20, 191, 0, 1202 },
+{ 0x10, 191, 0, 1204 },
+{ 0x8, 191, 0, 1205 },
+{ 0x4, 191, 0, 1206 },
+{ 0x1, 191, 1, 1208 },
+{ 0x2, 191, 0, 1207 },
+{ 0x8, 165, 0, 1209 },
+{ 0x4, 165, 0, 1210 },
+{ 0x2, 165, 0, 1211 },
+{ 0x1, 165, 1, 1213 },
+{ 0x1, 166, 0, 1212 },
+{ 0x10, 172, 0, 1214 },
+{ 0x8, 172, 0, 1215 },
+{ 0x4, 172, 0, 1216 },
+{ 0x1, 172, 1, 1218 },
+{ 0x2, 172, 0, 1217 },
+{ 0x220, 136, 0, 1219 },
+{ 0x120, 136, 0, 1220 },
+{ 0xa0, 136, 0, 1221 },
+{ 0x60, 136, 1, 1223 },
+{ 0x4, 137, 0, 1222 },
+{ 0x110, 136, 0, 1244 },
+{ 0x90, 136, 0, 1245 },
+{ 0x50, 136, 0, 1246 },
+{ 0x30, 136, 1, 1248 },
+{ 0x2, 137, 0, 1247 },
+{ 0x8, 136, 0, 1249 },
+{ 0x4, 136, 0, 1250 },
+{ 0x2, 136, 0, 1251 },
+{ 0x1, 136, 1, 1253 },
+{ 0x1, 137, 0, 1252 },
+{ 0x440, 144, 0, 1224 },
+{ 0x240, 144, 0, 1225 },
+{ 0x140, 144, 0, 1226 },
+{ 0xc0, 144, 1, 1228 },
+{ 0x40, 144, 0, 1227 },
+{ 0x220, 144, 0, 1254 },
+{ 0x120, 144, 0, 1255 },
+{ 0xa0, 144, 0, 1256 },
+{ 0x60, 144, 1, 1258 },
+{ 0x20, 144, 0, 1257 },
+{ 0x10, 144, 0, 1259 },
+{ 0x8, 144, 0, 1260 },
+{ 0x4, 144, 0, 1261 },
+{ 0x1, 144, 1, 1263 },
+{ 0x2, 144, 0, 1262 },
+{ 0x440, 107, 0, 1229 },
+{ 0x240, 107, 0, 1230 },
+{ 0x140, 107, 0, 1231 },
+{ 0xc0, 107, 1, 1233 },
+{ 0x40, 107, 0, 1232 },
+{ 0x220, 107, 0, 1264 },
+{ 0x120, 107, 0, 1265 },
+{ 0xa0, 107, 0, 1266 },
+{ 0x60, 107, 1, 1268 },
+{ 0x20, 107, 0, 1267 },
+{ 0x10, 107, 0, 1269 },
+{ 0x8, 107, 0, 1270 },
+{ 0x1, 107, 1, 1273 },
+{ 0x2, 107, 0, 1272 },
+{ 0x440, 152, 1, 1239 },
+{ 0x441, 132, 0, 1234 },
+{ 0x240, 152, 1, 1240 },
+{ 0x241, 132, 0, 1235 },
+{ 0x140, 152, 1, 1241 },
+{ 0x141, 132, 0, 1236 },
+{ 0xc0, 152, 1, 1243 },
+{ 0x40, 152, 1, 1242 },
+{ 0xc1, 132, 1, 1238 },
+{ 0x41, 132, 0, 1237 },
+{ 0x220, 152, 1, 1284 },
+{ 0x221, 132, 0, 1274 },
+{ 0x120, 152, 1, 1285 },
+{ 0x121, 132, 0, 1275 },
+{ 0xa0, 152, 1, 1286 },
+{ 0xa1, 132, 0, 1276 },
+{ 0x60, 152, 1, 1288 },
+{ 0x20, 152, 1, 1287 },
+{ 0x61, 132, 1, 1278 },
+{ 0x21, 132, 0, 1277 },
+{ 0x10, 152, 1, 1289 },
+{ 0x11, 132, 0, 1279 },
+{ 0x8, 152, 1, 1290 },
+{ 0x9, 132, 0, 1280 },
+{ 0x4, 152, 1, 1291 },
+{ 0x5, 132, 0, 1281 },
+{ 0x1, 152, 1, 1293 },
+{ 0x2, 152, 1, 1292 },
+{ 0x3, 132, 1, 1283 },
+{ 0x1, 132, 0, 1282 },
+{ 0x1, 117, 1, 1297 },
+{ 0x1, 118, 0, 1296 },
+{ 0x3, 117, 1, 1295 },
+{ 0x3, 118, 0, 1294 },
+{ 0x1108, 121, 1, 1378 },
+{ 0x1108, 125, 0, 1298 },
+{ 0x908, 121, 1, 1379 },
+{ 0x908, 125, 0, 1299 },
+{ 0x508, 121, 1, 1380 },
+{ 0x508, 125, 0, 1300 },
+{ 0x308, 121, 1, 1382 },
+{ 0x18, 122, 1, 1381 },
+{ 0x308, 125, 1, 1302 },
+{ 0x18, 126, 0, 1301 },
+{ 0x88, 121, 1, 1398 },
+{ 0x88, 125, 0, 1338 },
+{ 0x48, 121, 1, 1399 },
+{ 0x48, 125, 0, 1339 },
+{ 0x28, 121, 1, 1400 },
+{ 0x28, 125, 0, 1340 },
+{ 0x18, 121, 1, 1402 },
+{ 0x8, 122, 1, 1401 },
+{ 0x18, 125, 1, 1342 },
+{ 0x8, 126, 0, 1341 },
+{ 0x884, 121, 1, 1383 },
+{ 0x442, 123, 1, 1328 },
+{ 0x884, 125, 1, 1313 },
+{ 0x442, 127, 0, 1303 },
+{ 0x484, 121, 1, 1384 },
+{ 0x242, 123, 1, 1329 },
+{ 0x484, 125, 1, 1314 },
+{ 0x242, 127, 0, 1304 },
+{ 0x284, 121, 1, 1385 },
+{ 0x142, 123, 1, 1330 },
+{ 0x284, 125, 1, 1315 },
+{ 0x142, 127, 0, 1305 },
+{ 0x184, 121, 1, 1387 },
+{ 0xc, 122, 1, 1386 },
+{ 0xc2, 123, 1, 1332 },
+{ 0x6, 124, 1, 1331 },
+{ 0x184, 125, 1, 1317 },
+{ 0xc, 126, 1, 1316 },
+{ 0xc2, 127, 1, 1307 },
+{ 0x6, 128, 0, 1306 },
+{ 0x44, 121, 1, 1403 },
+{ 0x22, 123, 1, 1368 },
+{ 0x44, 125, 1, 1353 },
+{ 0x22, 127, 0, 1343 },
+{ 0x24, 121, 1, 1404 },
+{ 0x12, 123, 1, 1369 },
+{ 0x24, 125, 1, 1354 },
+{ 0x12, 127, 0, 1344 },
+{ 0x14, 121, 1, 1405 },
+{ 0xa, 123, 1, 1370 },
+{ 0x14, 125, 1, 1355 },
+{ 0xa, 127, 0, 1345 },
+{ 0xc, 121, 1, 1407 },
+{ 0x4, 122, 1, 1406 },
+{ 0x6, 123, 1, 1372 },
+{ 0x2, 124, 1, 1371 },
+{ 0xc, 125, 1, 1357 },
+{ 0x4, 126, 1, 1356 },
+{ 0x6, 127, 1, 1347 },
+{ 0x2, 128, 0, 1346 },
+{ 0x442, 121, 1, 1388 },
+{ 0x221, 123, 1, 1333 },
+{ 0x442, 125, 1, 1318 },
+{ 0x221, 127, 0, 1308 },
+{ 0x242, 121, 1, 1389 },
+{ 0x121, 123, 1, 1334 },
+{ 0x242, 125, 1, 1319 },
+{ 0x121, 127, 0, 1309 },
+{ 0x142, 121, 1, 1390 },
+{ 0xa1, 123, 1, 1335 },
+{ 0x142, 125, 1, 1320 },
+{ 0xa1, 127, 0, 1310 },
+{ 0xc2, 121, 1, 1392 },
+{ 0x6, 122, 1, 1391 },
+{ 0x61, 123, 1, 1337 },
+{ 0x3, 124, 1, 1336 },
+{ 0xc2, 125, 1, 1322 },
+{ 0x6, 126, 1, 1321 },
+{ 0x61, 127, 1, 1312 },
+{ 0x3, 128, 0, 1311 },
+{ 0x22, 121, 1, 1408 },
+{ 0x11, 123, 1, 1373 },
+{ 0x22, 125, 1, 1358 },
+{ 0x11, 127, 0, 1348 },
+{ 0x12, 121, 1, 1409 },
+{ 0x9, 123, 1, 1374 },
+{ 0x12, 125, 1, 1359 },
+{ 0x9, 127, 0, 1349 },
+{ 0xa, 121, 1, 1410 },
+{ 0x5, 123, 1, 1375 },
+{ 0xa, 125, 1, 1360 },
+{ 0x5, 127, 0, 1350 },
+{ 0x6, 121, 1, 1412 },
+{ 0x2, 122, 1, 1411 },
+{ 0x3, 123, 1, 1377 },
+{ 0x1, 124, 1, 1376 },
+{ 0x6, 125, 1, 1362 },
+{ 0x2, 126, 1, 1361 },
+{ 0x3, 127, 1, 1352 },
+{ 0x1, 128, 0, 1351 },
+{ 0x221, 121, 1, 1393 },
+{ 0x221, 125, 0, 1323 },
+{ 0x121, 121, 1, 1394 },
+{ 0x121, 125, 0, 1324 },
+{ 0xa1, 121, 1, 1395 },
+{ 0xa1, 125, 0, 1325 },
+{ 0x61, 121, 1, 1397 },
+{ 0x3, 122, 1, 1396 },
+{ 0x61, 125, 1, 1327 },
+{ 0x3, 126, 0, 1326 },
+{ 0x11, 121, 1, 1413 },
+{ 0x11, 125, 0, 1363 },
+{ 0x9, 121, 1, 1414 },
+{ 0x9, 125, 0, 1364 },
+{ 0x5, 121, 1, 1415 },
+{ 0x5, 125, 0, 1365 },
+{ 0x3, 121, 1, 1417 },
+{ 0x1, 122, 1, 1416 },
+{ 0x3, 125, 1, 1367 },
+{ 0x1, 126, 0, 1366 },
+{ 0x442, 163, 0, 1418 },
+{ 0x242, 163, 0, 1419 },
+{ 0x142, 163, 0, 1420 },
+{ 0xc2, 163, 1, 1422 },
+{ 0x6, 164, 1, 1421 },
+{ 0x1, 391, 0, 941 },
+{ 0x22, 163, 0, 1428 },
+{ 0x12, 163, 0, 1429 },
+{ 0xa, 163, 0, 1430 },
+{ 0x6, 163, 1, 1432 },
+{ 0x2, 164, 1, 1431 },
+{ 0x2, 324, 0, 970 },
+{ 0x221, 163, 0, 1423 },
+{ 0x121, 163, 0, 1424 },
+{ 0xa1, 163, 0, 1425 },
+{ 0x61, 163, 1, 1427 },
+{ 0x3, 164, 1, 1426 },
+{ 0x1, 387, 0, 942 },
+{ 0x11, 163, 0, 1433 },
+{ 0x9, 163, 0, 1434 },
+{ 0x5, 163, 0, 1435 },
+{ 0x3, 163, 1, 1437 },
+{ 0x1, 164, 1, 1436 },
+{ 0x1, 324, 0, 971 },
+{ 0x4, 169, 0, 1438 },
+{ 0x1, 169, 0, 1440 },
+{ 0x1, 176, 0, 1441 },
+{ 0x1, 175, 1, 1442 },
+{ 0x2, 169, 0, 1439 },
+{ 0x1, 154, 0, 1443 },
+{ 0x880, 160, 0, 1444 },
+{ 0x480, 160, 0, 1445 },
+{ 0x280, 160, 0, 1446 },
+{ 0x180, 160, 1, 1448 },
+{ 0x80, 161, 0, 1447 },
+{ 0x440, 160, 1, 1459 },
+{ 0x88, 162, 0, 1449 },
+{ 0x240, 160, 1, 1460 },
+{ 0x48, 162, 0, 1450 },
+{ 0x140, 160, 1, 1461 },
+{ 0x28, 162, 0, 1451 },
+{ 0xc0, 160, 1, 1463 },
+{ 0x40, 161, 1, 1462 },
+{ 0x18, 162, 1, 1453 },
+{ 0x8, 162, 0, 1452 },
+{ 0x220, 160, 1, 1464 },
+{ 0x44, 162, 0, 1454 },
+{ 0x120, 160, 1, 1465 },
+{ 0x24, 162, 0, 1455 },
+{ 0xa0, 160, 1, 1466 },
+{ 0x14, 162, 0, 1456 },
+{ 0x60, 160, 1, 1468 },
+{ 0x20, 161, 1, 1467 },
+{ 0xc, 162, 1, 1458 },
+{ 0x4, 162, 0, 1457 },
+{ 0x110, 160, 0, 1469 },
+{ 0x90, 160, 0, 1470 },
+{ 0x50, 160, 0, 1471 },
+{ 0x30, 160, 1, 1473 },
+{ 0x10, 161, 1, 1472 },
+{ 0x1, 342, 0, 934 },
+{ 0x88, 160, 0, 1474 },
+{ 0x48, 160, 0, 1475 },
+{ 0x28, 160, 0, 1476 },
+{ 0x18, 160, 1, 1478 },
+{ 0x8, 161, 1, 1477 },
+{ 0xc, 325, 0, 967 },
+{ 0x44, 160, 1, 1489 },
+{ 0x22, 162, 0, 1479 },
+{ 0x24, 160, 1, 1490 },
+{ 0x12, 162, 0, 1480 },
+{ 0x14, 160, 1, 1491 },
+{ 0xa, 162, 0, 1481 },
+{ 0xc, 160, 1, 1493 },
+{ 0x4, 161, 1, 1492 },
+{ 0x6, 162, 1, 1483 },
+{ 0x2, 162, 1, 1482 },
+{ 0x6, 325, 0, 968 },
+{ 0x22, 160, 1, 1494 },
+{ 0x11, 162, 0, 1484 },
+{ 0x12, 160, 1, 1495 },
+{ 0x9, 162, 0, 1485 },
+{ 0xa, 160, 1, 1496 },
+{ 0x5, 162, 0, 1486 },
+{ 0x6, 160, 1, 1498 },
+{ 0x2, 161, 1, 1497 },
+{ 0x3, 162, 1, 1488 },
+{ 0x1, 162, 1, 1487 },
+{ 0x3, 325, 0, 969 },
+{ 0x11, 160, 0, 1499 },
+{ 0x9, 160, 0, 1500 },
+{ 0x5, 160, 0, 1501 },
+{ 0x3, 160, 1, 1503 },
+{ 0x1, 161, 0, 1502 },
+{ 0x8, 156, 0, 1504 },
+{ 0x4, 156, 0, 1505 },
+{ 0x2, 156, 0, 1506 },
+{ 0x1, 156, 1, 1508 },
+{ 0x1, 157, 1, 1507 },
+{ 0x1, 289, 0, 948 },
+{ 0x8, 158, 0, 1509 },
+{ 0x4, 158, 0, 1510 },
+{ 0x2, 158, 0, 1511 },
+{ 0x1, 158, 1, 1513 },
+{ 0x1, 159, 1, 1512 },
+{ 0x1, 288, 0, 949 },
+{ 0x8, 167, 0, 1514 },
+{ 0x4, 167, 0, 1515 },
+{ 0x2, 167, 0, 1516 },
+{ 0x1, 167, 1, 1518 },
+{ 0x1, 168, 1, 1517 },
+{ 0x1, 287, 0, 950 },
+{ 0x8, 170, 0, 1519 },
+{ 0x4, 170, 0, 1520 },
+{ 0x2, 170, 0, 1521 },
+{ 0x1, 170, 1, 1523 },
+{ 0x1, 171, 1, 1522 },
+{ 0x1, 286, 0, 951 },
+{ 0x8, 182, 0, 1524 },
+{ 0x4, 182, 0, 1525 },
+{ 0x2, 182, 0, 1526 },
+{ 0x1, 182, 1, 1528 },
+{ 0x1, 183, 0, 1527 },
+{ 0x8, 180, 0, 1529 },
+{ 0x4, 180, 0, 1530 },
+{ 0x2, 180, 0, 1531 },
+{ 0x1, 180, 1, 1533 },
+{ 0x1, 181, 0, 1532 },
+{ 0x1, 198, 0, 1534 },
+{ 0x1, 297, 0, 1535 },
+{ 0x1, 32, 0, 1536 },
+{ 0x8, 115, 0, 1537 },
+{ 0x4, 115, 0, 1538 },
+{ 0x2, 115, 0, 1539 },
+{ 0x1, 115, 1, 1541 },
+{ 0x1, 116, 0, 1540 },
+{ 0x8, 119, 0, 1542 },
+{ 0x4, 119, 0, 1543 },
+{ 0x2, 119, 0, 1544 },
+{ 0x1, 119, 1, 1546 },
+{ 0x1, 120, 0, 1545 },
+{ 0x8, 189, 0, 1547 },
+{ 0x4, 189, 0, 1548 },
+{ 0x2, 189, 0, 1549 },
+{ 0x1, 189, 1, 1551 },
+{ 0x1, 190, 0, 1550 },
+{ 0x1, 131, 0, 1552 },
+{ 0x442, 129, 0, 1553 },
+{ 0x242, 129, 0, 1554 },
+{ 0x142, 129, 0, 1555 },
+{ 0xc2, 129, 1, 1557 },
+{ 0x6, 130, 0, 1556 },
+{ 0x22, 129, 0, 1563 },
+{ 0x12, 129, 0, 1564 },
+{ 0xa, 129, 0, 1565 },
+{ 0x6, 129, 1, 1567 },
+{ 0x2, 130, 1, 1566 },
+{ 0x1, 99, 0, 1092 },
+{ 0x221, 129, 0, 1558 },
+{ 0x121, 129, 0, 1559 },
+{ 0xa1, 129, 0, 1560 },
+{ 0x61, 129, 1, 1562 },
+{ 0x3, 130, 0, 1561 },
+{ 0x11, 129, 0, 1568 },
+{ 0x9, 129, 0, 1569 },
+{ 0x5, 129, 0, 1570 },
+{ 0x3, 129, 1, 1572 },
+{ 0x1, 130, 1, 1571 },
+{ 0x1, 98, 0, 1093 },
+{ 0x1, 195, 0, 1573 },
+{ 0x1, 153, 0, 1574 },
+{ 0x1, 113, 0, 1575 },
+{ 0x1, 112, 0, 1576 },
+{ 0x4, 192, 0, 1577 },
+{ 0x2, 192, 0, 1578 },
+{ 0x1, 192, 0, 1579 },
+{ 0x1, 155, 0, 1580 },
+{ 0x2, 193, 0, 1581 },
+{ 0x1, 193, 0, 1582 },
+{ 0x4, 143, 0, 1583 },
+{ 0x2, 143, 0, 1584 },
+{ 0x1, 143, 0, 1585 },
 { 0x4, 140, 0, 1586 },
+{ 0x1, 148, 0, 1589 },
+{ 0x1, 147, 1, 1590 },
 { 0x2, 140, 0, 1587 },
-{ 0x1, 140, 1, 1589 },
-{ 0x1, 141, 1, 1588 },
-{ 0x1, 370, 0, 1075 },
-{ 0x8, 185, 0, 1590 },
-{ 0x4, 185, 0, 1591 },
-{ 0x2, 185, 0, 1592 },
-{ 0x1, 185, 1, 1594 },
-{ 0x1, 186, 0, 1593 },
-{ 0x8, 183, 0, 1595 },
-{ 0x4, 183, 0, 1596 },
-{ 0x2, 183, 0, 1597 },
-{ 0x1, 183, 1, 1599 },
-{ 0x1, 184, 0, 1598 },
-{ 0x8, 43, 0, 1604 },
-{ 0x18, 43, 0, 1600 },
-{ 0x4, 43, 0, 1605 },
-{ 0xc, 43, 0, 1601 },
-{ 0x2, 43, 0, 1606 },
-{ 0x6, 43, 0, 1602 },
-{ 0x1, 43, 0, 1607 },
-{ 0x3, 43, 0, 1603 },
-{ 0x51, 29, 0, 1609 },
-{ 0xd1, 29, 0, 1608 },
-{ 0x31, 29, 1, 1619 },
-{ 0x11, 30, 0, 1618 },
-{ 0x71, 29, 1, 1617 },
-{ 0x31, 30, 0, 1616 },
-{ 0x29, 29, 0, 1611 },
-{ 0x69, 29, 0, 1610 },
-{ 0x19, 29, 1, 1623 },
-{ 0x9, 30, 0, 1622 },
-{ 0x39, 29, 1, 1621 },
-{ 0x19, 30, 0, 1620 },
-{ 0x15, 29, 0, 1613 },
-{ 0x35, 29, 0, 1612 },
-{ 0xd, 29, 1, 1627 },
-{ 0x5, 30, 0, 1626 },
-{ 0x1d, 29, 1, 1625 },
-{ 0xd, 30, 0, 1624 },
-{ 0xb, 29, 0, 1615 },
-{ 0x1b, 29, 0, 1614 },
-{ 0x7, 29, 1, 1631 },
-{ 0x3, 30, 0, 1630 },
-{ 0xf, 29, 1, 1629 },
-{ 0x7, 30, 0, 1628 },
-{ 0xa2, 27, 0, 1633 },
-{ 0x1a2, 27, 0, 1632 },
-{ 0x62, 27, 1, 1643 },
-{ 0x22, 28, 0, 1642 },
-{ 0xe2, 27, 1, 1641 },
-{ 0x62, 28, 0, 1640 },
-{ 0x52, 27, 0, 1635 },
-{ 0xd2, 27, 0, 1634 },
-{ 0x32, 27, 1, 1647 },
-{ 0x12, 28, 0, 1646 },
-{ 0x72, 27, 1, 1645 },
-{ 0x32, 28, 0, 1644 },
-{ 0x2a, 27, 0, 1637 },
-{ 0x6a, 27, 0, 1636 },
-{ 0x1a, 27, 1, 1651 },
-{ 0xa, 28, 0, 1650 },
-{ 0x3a, 27, 1, 1649 },
-{ 0x1a, 28, 0, 1648 },
-{ 0x16, 27, 0, 1639 },
-{ 0x36, 27, 0, 1638 },
-{ 0xe, 27, 1, 1655 },
-{ 0x6, 28, 0, 1654 },
-{ 0x1e, 27, 1, 1653 },
-{ 0xe, 28, 0, 1652 },
-{ 0x51, 27, 0, 1657 },
-{ 0xd1, 27, 0, 1656 },
-{ 0x31, 27, 1, 1667 },
-{ 0x11, 28, 0, 1666 },
-{ 0x71, 27, 1, 1665 },
-{ 0x31, 28, 0, 1664 },
-{ 0x29, 27, 0, 1659 },
-{ 0x69, 27, 0, 1658 },
-{ 0x19, 27, 1, 1671 },
-{ 0x9, 28, 0, 1670 },
-{ 0x39, 27, 1, 1669 },
-{ 0x19, 28, 0, 1668 },
-{ 0x15, 27, 0, 1661 },
-{ 0x35, 27, 0, 1660 },
-{ 0xd, 27, 1, 1675 },
-{ 0x5, 28, 0, 1674 },
-{ 0x1d, 27, 1, 1673 },
-{ 0xd, 28, 0, 1672 },
-{ 0xb, 27, 0, 1663 },
-{ 0x1b, 27, 0, 1662 },
-{ 0x7, 27, 1, 1679 },
-{ 0x3, 28, 0, 1678 },
-{ 0xf, 27, 1, 1677 },
-{ 0x7, 28, 0, 1676 },
-{ 0x51, 25, 0, 1681 },
-{ 0xd1, 25, 0, 1680 },
-{ 0x31, 25, 1, 1691 },
-{ 0x11, 26, 0, 1690 },
-{ 0x71, 25, 1, 1689 },
-{ 0x31, 26, 0, 1688 },
-{ 0x29, 25, 0, 1683 },
-{ 0x69, 25, 0, 1682 },
-{ 0x19, 25, 1, 1695 },
-{ 0x9, 26, 0, 1694 },
-{ 0x39, 25, 1, 1693 },
-{ 0x19, 26, 0, 1692 },
-{ 0x15, 25, 0, 1685 },
-{ 0x35, 25, 0, 1684 },
-{ 0xd, 25, 1, 1699 },
-{ 0x5, 26, 0, 1698 },
-{ 0x1d, 25, 1, 1697 },
-{ 0xd, 26, 0, 1696 },
-{ 0xb, 25, 0, 1687 },
-{ 0x1b, 25, 0, 1686 },
-{ 0x7, 25, 1, 1703 },
-{ 0x3, 26, 0, 1702 },
-{ 0xf, 25, 1, 1701 },
-{ 0x7, 26, 0, 1700 },
-{ 0xa2, 23, 0, 1705 },
-{ 0x1a2, 23, 0, 1704 },
-{ 0x62, 23, 1, 1715 },
-{ 0x22, 24, 0, 1714 },
-{ 0xe2, 23, 1, 1713 },
-{ 0x62, 24, 0, 1712 },
-{ 0x52, 23, 0, 1707 },
-{ 0xd2, 23, 0, 1706 },
-{ 0x32, 23, 1, 1719 },
-{ 0x12, 24, 0, 1718 },
-{ 0x72, 23, 1, 1717 },
-{ 0x32, 24, 0, 1716 },
-{ 0x2a, 23, 0, 1709 },
-{ 0x6a, 23, 0, 1708 },
-{ 0x1a, 23, 1, 1723 },
-{ 0xa, 24, 0, 1722 },
-{ 0x3a, 23, 1, 1721 },
-{ 0x1a, 24, 0, 1720 },
-{ 0x16, 23, 0, 1711 },
-{ 0x36, 23, 0, 1710 },
-{ 0xe, 23, 1, 1727 },
-{ 0x6, 24, 0, 1726 },
-{ 0x1e, 23, 1, 1725 },
-{ 0xe, 24, 0, 1724 },
-{ 0x51, 23, 0, 1729 },
-{ 0xd1, 23, 0, 1728 },
-{ 0x31, 23, 1, 1739 },
-{ 0x11, 24, 0, 1738 },
-{ 0x71, 23, 1, 1737 },
-{ 0x31, 24, 0, 1736 },
-{ 0x29, 23, 0, 1731 },
-{ 0x69, 23, 0, 1730 },
-{ 0x19, 23, 1, 1743 },
-{ 0x9, 24, 0, 1742 },
-{ 0x39, 23, 1, 1741 },
-{ 0x19, 24, 0, 1740 },
-{ 0x15, 23, 0, 1733 },
-{ 0x35, 23, 0, 1732 },
-{ 0xd, 23, 1, 1747 },
-{ 0x5, 24, 0, 1746 },
-{ 0x1d, 23, 1, 1745 },
-{ 0xd, 24, 0, 1744 },
-{ 0xb, 23, 0, 1735 },
-{ 0x1b, 23, 0, 1734 },
-{ 0x7, 23, 1, 1751 },
-{ 0x3, 24, 0, 1750 },
-{ 0xf, 23, 1, 1749 },
-{ 0x7, 24, 0, 1748 },
-{ 0x51, 21, 1, 1777 },
-{ 0x50, 21, 0, 1753 },
-{ 0xd1, 21, 1, 1776 },
-{ 0xd0, 21, 0, 1752 },
-{ 0x31, 21, 1, 1787 },
-{ 0x30, 21, 1, 1763 },
-{ 0x11, 22, 1, 1786 },
-{ 0x10, 22, 0, 1762 },
-{ 0x71, 21, 1, 1785 },
-{ 0x70, 21, 1, 1761 },
-{ 0x31, 22, 1, 1784 },
-{ 0x30, 22, 0, 1760 },
-{ 0x29, 21, 1, 1779 },
-{ 0x28, 21, 0, 1755 },
-{ 0x69, 21, 1, 1778 },
-{ 0x68, 21, 0, 1754 },
-{ 0x19, 21, 1, 1791 },
-{ 0x18, 21, 1, 1767 },
-{ 0x9, 22, 1, 1790 },
-{ 0x8, 22, 0, 1766 },
-{ 0x39, 21, 1, 1789 },
-{ 0x38, 21, 1, 1765 },
-{ 0x19, 22, 1, 1788 },
-{ 0x18, 22, 0, 1764 },
-{ 0x15, 21, 1, 1781 },
-{ 0x14, 21, 0, 1757 },
-{ 0x35, 21, 1, 1780 },
-{ 0x34, 21, 0, 1756 },
-{ 0xd, 21, 1, 1795 },
-{ 0xc, 21, 1, 1771 },
-{ 0x5, 22, 1, 1794 },
-{ 0x4, 22, 0, 1770 },
-{ 0x1d, 21, 1, 1793 },
-{ 0x1c, 21, 1, 1769 },
-{ 0xd, 22, 1, 1792 },
-{ 0xc, 22, 0, 1768 },
-{ 0xb, 21, 1, 1783 },
-{ 0xa, 21, 0, 1759 },
-{ 0x1b, 21, 1, 1782 },
-{ 0x1a, 21, 0, 1758 },
-{ 0x7, 21, 1, 1799 },
-{ 0x6, 21, 1, 1775 },
-{ 0x3, 22, 1, 1798 },
-{ 0x2, 22, 0, 1774 },
-{ 0xf, 21, 1, 1797 },
-{ 0xe, 21, 1, 1773 },
-{ 0x7, 22, 1, 1796 },
-{ 0x6, 22, 0, 1772 },
-{ 0x8, 20, 0, 1801 },
-{ 0x18, 20, 0, 1800 },
-{ 0x1, 20, 1, 1805 },
-{ 0x2, 20, 0, 1804 },
-{ 0x3, 20, 1, 1803 },
-{ 0x4, 20, 0, 1802 },
-{ 0x1, 287, 0, 1806 },
-{ 0x14, 42, 0, 1809 },
-{ 0x34, 42, 0, 1807 },
-{ 0xc, 42, 0, 1810 },
-{ 0x1c, 42, 0, 1808 },
-{ 0x2, 42, 0, 1813 },
-{ 0x6, 42, 0, 1811 },
-{ 0x1, 42, 0, 1814 },
-{ 0x3, 42, 0, 1812 },
-{ 0x51, 18, 0, 1816 },
-{ 0xd1, 18, 0, 1815 },
-{ 0x31, 18, 1, 1826 },
-{ 0x11, 19, 0, 1825 },
-{ 0x71, 18, 1, 1824 },
-{ 0x31, 19, 0, 1823 },
-{ 0x29, 18, 0, 1818 },
-{ 0x69, 18, 0, 1817 },
-{ 0x19, 18, 1, 1830 },
-{ 0x9, 19, 0, 1829 },
-{ 0x39, 18, 1, 1828 },
-{ 0x19, 19, 0, 1827 },
-{ 0x15, 18, 0, 1820 },
-{ 0x35, 18, 0, 1819 },
-{ 0xd, 18, 1, 1834 },
-{ 0x5, 19, 0, 1833 },
-{ 0x1d, 18, 1, 1832 },
-{ 0xd, 19, 0, 1831 },
-{ 0xb, 18, 0, 1822 },
-{ 0x1b, 18, 0, 1821 },
-{ 0x7, 18, 1, 1838 },
-{ 0x3, 19, 0, 1837 },
-{ 0xf, 18, 1, 1836 },
-{ 0x7, 19, 0, 1835 },
-{ 0x1, 31, 0, 1839 },
-{ 0x1, 103, 0, 1840 },
-{ 0x2, 44, 0, 1841 },
-{ 0x1, 44, 0, 1842 },
-{ 0x1, 335, 0, 1843 },
-{ 0x2, 51, 0, 1844 },
-{ 0x1, 51, 0, 1845 },
-{ 0x1, 96, 0, 1846 },
-{ 0x51, 16, 0, 1848 },
-{ 0xd1, 16, 0, 1847 },
-{ 0x31, 16, 1, 1858 },
-{ 0x11, 17, 0, 1857 },
-{ 0x71, 16, 1, 1856 },
-{ 0x31, 17, 0, 1855 },
-{ 0x29, 16, 0, 1850 },
-{ 0x69, 16, 0, 1849 },
-{ 0x19, 16, 1, 1862 },
-{ 0x9, 17, 0, 1861 },
-{ 0x39, 16, 1, 1860 },
-{ 0x19, 17, 0, 1859 },
-{ 0x15, 16, 0, 1852 },
-{ 0x35, 16, 0, 1851 },
-{ 0xd, 16, 1, 1866 },
-{ 0x5, 17, 0, 1865 },
-{ 0x1d, 16, 1, 1864 },
-{ 0xd, 17, 0, 1863 },
-{ 0xb, 16, 0, 1854 },
-{ 0x1b, 16, 0, 1853 },
-{ 0x7, 16, 1, 1870 },
-{ 0x3, 17, 0, 1869 },
-{ 0xf, 16, 1, 1868 },
-{ 0x7, 17, 0, 1867 },
-{ 0xa20, 14, 0, 1872 },
-{ 0x1a20, 14, 0, 1871 },
-{ 0x620, 14, 1, 1882 },
-{ 0x220, 15, 0, 1881 },
-{ 0xe20, 14, 1, 1880 },
-{ 0x620, 15, 0, 1879 },
-{ 0x520, 14, 0, 1874 },
-{ 0xd20, 14, 0, 1873 },
-{ 0x320, 14, 1, 1886 },
-{ 0x120, 15, 0, 1885 },
-{ 0x720, 14, 1, 1884 },
-{ 0x320, 15, 0, 1883 },
-{ 0x2a0, 14, 0, 1876 },
-{ 0x6a0, 14, 0, 1875 },
-{ 0x1a0, 14, 1, 1890 },
-{ 0xa0, 15, 0, 1889 },
-{ 0x3a0, 14, 1, 1888 },
-{ 0x1a0, 15, 0, 1887 },
-{ 0x160, 14, 0, 1878 },
-{ 0x360, 14, 0, 1877 },
-{ 0xe0, 14, 1, 1894 },
-{ 0x60, 15, 0, 1893 },
-{ 0x1e0, 14, 1, 1892 },
-{ 0xe0, 15, 0, 1891 },
-{ 0x51, 14, 1, 1920 },
-{ 0x50, 14, 0, 1896 },
-{ 0xd1, 14, 1, 1919 },
-{ 0xd0, 14, 0, 1895 },
-{ 0x31, 14, 1, 1930 },
-{ 0x30, 14, 1, 1906 },
-{ 0x11, 15, 1, 1929 },
-{ 0x10, 15, 0, 1905 },
-{ 0x71, 14, 1, 1928 },
-{ 0x70, 14, 1, 1904 },
-{ 0x31, 15, 1, 1927 },
-{ 0x30, 15, 0, 1903 },
-{ 0x29, 14, 1, 1922 },
-{ 0x28, 14, 0, 1898 },
-{ 0x69, 14, 1, 1921 },
-{ 0x68, 14, 0, 1897 },
-{ 0x19, 14, 1, 1934 },
-{ 0x18, 14, 1, 1910 },
-{ 0x9, 15, 1, 1933 },
-{ 0x8, 15, 0, 1909 },
-{ 0x39, 14, 1, 1932 },
-{ 0x38, 14, 1, 1908 },
-{ 0x19, 15, 1, 1931 },
-{ 0x18, 15, 0, 1907 },
-{ 0x15, 14, 1, 1924 },
-{ 0x14, 14, 0, 1900 },
-{ 0x35, 14, 1, 1923 },
-{ 0x34, 14, 0, 1899 },
-{ 0xd, 14, 1, 1938 },
-{ 0xc, 14, 1, 1914 },
-{ 0x5, 15, 1, 1937 },
-{ 0x4, 15, 0, 1913 },
-{ 0x1d, 14, 1, 1936 },
-{ 0x1c, 14, 1, 1912 },
-{ 0xd, 15, 1, 1935 },
-{ 0xc, 15, 0, 1911 },
-{ 0xb, 14, 1, 1926 },
-{ 0xa, 14, 0, 1902 },
-{ 0x1b, 14, 1, 1925 },
-{ 0x1a, 14, 0, 1901 },
-{ 0x7, 14, 1, 1942 },
-{ 0x6, 14, 1, 1918 },
-{ 0x3, 15, 1, 1941 },
-{ 0x2, 15, 0, 1917 },
-{ 0xf, 14, 1, 1940 },
-{ 0xe, 14, 1, 1916 },
-{ 0x7, 15, 1, 1939 },
-{ 0x6, 15, 0, 1915 },
-{ 0x8, 13, 0, 1944 },
-{ 0x18, 13, 0, 1943 },
-{ 0x1, 13, 1, 1948 },
-{ 0x2, 13, 0, 1947 },
-{ 0x3, 13, 1, 1946 },
-{ 0x4, 13, 0, 1945 },
-{ 0x1, 84, 1, 2024 },
-{ 0x1, 85, 1, 2023 },
-{ 0x1, 86, 1, 2022 },
-{ 0x1, 87, 1, 2021 },
-{ 0x39, 40, 1, 21 },
-{ 0x19, 41, 0, 20 },
-{ 0x3, 84, 1, 2020 },
-{ 0x3, 85, 1, 2019 },
-{ 0x3, 86, 1, 2018 },
-{ 0x3, 87, 1, 2017 },
-{ 0x69, 40, 0, 10 },
-{ 0x14, 79, 1, 2014 },
-{ 0xa, 83, 1, 2013 },
-{ 0xd1, 40, 0, 8 },
-{ 0x34, 79, 1, 1950 },
-{ 0xe, 91, 0, 1949 },
-{ 0xc, 79, 1, 2094 },
-{ 0x6, 83, 0, 2093 },
-{ 0x2, 79, 1, 1956 },
-{ 0x2, 82, 0, 1955 },
-{ 0x12, 79, 1, 1954 },
-{ 0x6, 82, 0, 1953 },
-{ 0xa, 79, 1, 2016 },
-{ 0x5, 83, 1, 2015 },
-{ 0x71, 40, 1, 17 },
-{ 0x31, 41, 0, 16 },
-{ 0x1a, 79, 1, 1952 },
-{ 0x7, 91, 0, 1951 },
-{ 0x6, 79, 1, 2096 },
-{ 0x3, 83, 0, 2095 },
-{ 0x1, 79, 1, 2104 },
-{ 0x1, 80, 1, 2103 },
-{ 0x1, 81, 1, 2102 },
-{ 0x1, 82, 0, 2101 },
-{ 0x3, 79, 1, 2100 },
-{ 0x3, 80, 1, 2099 },
-{ 0x3, 81, 1, 2098 },
-{ 0x3, 82, 0, 2097 },
-{ 0x8, 60, 1, 2036 },
-{ 0x2, 63, 1, 2033 },
-{ 0x1, 65, 1, 2035 },
-{ 0x1, 66, 1, 2034 },
-{ 0xf, 40, 1, 29 },
-{ 0x7, 41, 0, 28 },
-{ 0x18, 60, 1, 2032 },
-{ 0x6, 63, 1, 2029 },
-{ 0x3, 65, 1, 2031 },
-{ 0x3, 66, 1, 2030 },
-{ 0x1b, 40, 0, 14 },
-{ 0x14, 60, 1, 2026 },
-{ 0xa, 64, 1, 2025 },
-{ 0x35, 40, 0, 12 },
-{ 0x34, 60, 1, 1958 },
-{ 0xe, 70, 0, 1957 },
-{ 0xc, 60, 1, 2106 },
-{ 0x6, 64, 0, 2105 },
-{ 0x2, 60, 1, 1964 },
-{ 0x4, 63, 0, 1963 },
-{ 0x12, 60, 1, 1962 },
-{ 0xc, 63, 0, 1961 },
-{ 0xa, 60, 1, 2028 },
-{ 0x5, 64, 1, 2027 },
-{ 0x1d, 40, 1, 25 },
-{ 0xd, 41, 0, 24 },
-{ 0x1a, 60, 1, 1960 },
-{ 0x7, 70, 0, 1959 },
-{ 0x6, 60, 1, 2108 },
-{ 0x3, 64, 0, 2107 },
-{ 0x1, 60, 1, 2116 },
-{ 0x1, 61, 1, 2115 },
-{ 0x1, 62, 1, 2114 },
-{ 0x1, 63, 0, 2113 },
-{ 0x3, 60, 1, 2112 },
-{ 0x3, 61, 1, 2111 },
-{ 0x3, 62, 1, 2110 },
-{ 0x3, 63, 0, 2109 },
-{ 0x28, 76, 1, 2040 },
-{ 0x44, 77, 1, 2037 },
-{ 0x88, 77, 1, 2039 },
-{ 0x28, 78, 0, 2038 },
-{ 0x68, 76, 1, 1968 },
-{ 0x188, 77, 1, 1967 },
-{ 0x38, 89, 1, 1966 },
-{ 0x38, 90, 0, 1965 },
-{ 0x18, 76, 1, 2120 },
-{ 0x14, 77, 1, 2117 },
-{ 0x28, 77, 1, 2119 },
-{ 0x18, 78, 0, 2118 },
-{ 0x14, 76, 1, 2044 },
-{ 0x24, 77, 1, 2043 },
-{ 0x48, 77, 1, 2041 },
-{ 0x14, 78, 0, 2042 },
-{ 0x34, 76, 1, 1972 },
-{ 0x64, 77, 1, 1971 },
-{ 0x1c, 89, 1, 1970 },
-{ 0x1c, 90, 0, 1969 },
-{ 0xc, 76, 1, 2124 },
-{ 0xc, 77, 1, 2123 },
-{ 0x18, 77, 1, 2121 },
-{ 0xc, 78, 0, 2122 },
-{ 0xa, 76, 1, 2048 },
-{ 0x11, 77, 1, 2045 },
-{ 0x22, 77, 1, 2047 },
-{ 0xa, 78, 0, 2046 },
-{ 0x1a, 76, 1, 1976 },
-{ 0x62, 77, 1, 1975 },
-{ 0xe, 89, 1, 1974 },
-{ 0xe, 90, 0, 1973 },
-{ 0x6, 76, 1, 2128 },
-{ 0x5, 77, 1, 2125 },
-{ 0xa, 77, 1, 2127 },
-{ 0x6, 78, 0, 2126 },
-{ 0x5, 76, 1, 2052 },
-{ 0x9, 77, 1, 2051 },
-{ 0x12, 77, 1, 2049 },
-{ 0x5, 78, 0, 2050 },
-{ 0xd, 76, 1, 1980 },
-{ 0x19, 77, 1, 1979 },
-{ 0x7, 89, 1, 1978 },
-{ 0x7, 90, 0, 1977 },
-{ 0x3, 76, 1, 2132 },
-{ 0x3, 77, 1, 2131 },
-{ 0x6, 77, 1, 2129 },
-{ 0x3, 78, 0, 2130 },
-{ 0x28, 57, 1, 2056 },
-{ 0x44, 58, 1, 2053 },
-{ 0x88, 58, 1, 2055 },
-{ 0x28, 59, 0, 2054 },
-{ 0x68, 57, 1, 1984 },
-{ 0x188, 58, 1, 1983 },
-{ 0x38, 68, 1, 1982 },
-{ 0x38, 69, 0, 1981 },
-{ 0x18, 57, 1, 2136 },
-{ 0x14, 58, 1, 2133 },
-{ 0x28, 58, 1, 2135 },
-{ 0x18, 59, 0, 2134 },
-{ 0x14, 57, 1, 2060 },
-{ 0x24, 58, 1, 2059 },
-{ 0x48, 58, 1, 2057 },
-{ 0x14, 59, 0, 2058 },
-{ 0x34, 57, 1, 1988 },
-{ 0x64, 58, 1, 1987 },
-{ 0x1c, 68, 1, 1986 },
-{ 0x1c, 69, 0, 1985 },
-{ 0xc, 57, 1, 2140 },
-{ 0xc, 58, 1, 2139 },
-{ 0x18, 58, 1, 2137 },
-{ 0xc, 59, 0, 2138 },
-{ 0xa, 57, 1, 2064 },
-{ 0x11, 58, 1, 2061 },
-{ 0x22, 58, 1, 2063 },
-{ 0xa, 59, 0, 2062 },
-{ 0x1a, 57, 1, 1992 },
-{ 0x62, 58, 1, 1991 },
-{ 0xe, 68, 1, 1990 },
-{ 0xe, 69, 0, 1989 },
-{ 0x6, 57, 1, 2144 },
-{ 0x5, 58, 1, 2141 },
-{ 0xa, 58, 1, 2143 },
-{ 0x6, 59, 0, 2142 },
-{ 0x5, 57, 1, 2068 },
-{ 0x9, 58, 1, 2067 },
-{ 0x12, 58, 1, 2065 },
-{ 0x5, 59, 0, 2066 },
-{ 0xd, 57, 1, 1996 },
-{ 0x19, 58, 1, 1995 },
-{ 0x7, 68, 1, 1994 },
-{ 0x7, 69, 0, 1993 },
-{ 0x3, 57, 1, 2148 },
-{ 0x3, 58, 1, 2147 },
-{ 0x6, 58, 1, 2145 },
-{ 0x3, 59, 0, 2146 },
-{ 0x8, 71, 1, 2080 },
-{ 0x2, 72, 1, 2079 },
-{ 0x2, 73, 1, 2078 },
-{ 0x2, 74, 0, 2077 },
-{ 0x18, 71, 1, 2076 },
-{ 0x6, 72, 1, 2075 },
-{ 0x6, 73, 1, 2074 },
-{ 0x6, 74, 0, 2073 },
-{ 0x14, 71, 1, 2070 },
-{ 0xa, 75, 0, 2069 },
-{ 0x34, 71, 1, 1998 },
-{ 0xe, 88, 0, 1997 },
-{ 0xc, 71, 1, 2150 },
-{ 0x6, 75, 0, 2149 },
-{ 0x2, 71, 1, 2004 },
-{ 0x4, 74, 0, 2003 },
-{ 0x12, 71, 1, 2002 },
-{ 0xc, 74, 0, 2001 },
-{ 0xa, 71, 1, 2072 },
-{ 0x5, 75, 0, 2071 },
-{ 0x1a, 71, 1, 2000 },
-{ 0x7, 88, 0, 1999 },
-{ 0x6, 71, 1, 2152 },
-{ 0x3, 75, 0, 2151 },
-{ 0x1, 71, 1, 2160 },
-{ 0x1, 72, 1, 2159 },
-{ 0x1, 73, 1, 2158 },
-{ 0x1, 74, 0, 2157 },
-{ 0x3, 71, 1, 2156 },
-{ 0x3, 72, 1, 2155 },
-{ 0x3, 73, 1, 2154 },
-{ 0x3, 74, 0, 2153 },
-{ 0x8, 52, 1, 2092 },
-{ 0x2, 53, 1, 2091 },
-{ 0x2, 54, 1, 2090 },
-{ 0x2, 55, 0, 2089 },
-{ 0x18, 52, 1, 2088 },
-{ 0x6, 53, 1, 2087 },
-{ 0x6, 54, 1, 2086 },
-{ 0x6, 55, 0, 2085 },
-{ 0x14, 52, 1, 2082 },
-{ 0xa, 56, 0, 2081 },
-{ 0x34, 52, 1, 2006 },
-{ 0xe, 67, 0, 2005 },
-{ 0xc, 52, 1, 2162 },
-{ 0x6, 56, 0, 2161 },
-{ 0x2, 52, 1, 2012 },
-{ 0x4, 55, 0, 2011 },
-{ 0x12, 52, 1, 2010 },
-{ 0xc, 55, 0, 2009 },
-{ 0xa, 52, 1, 2084 },
-{ 0x5, 56, 0, 2083 },
-{ 0x1a, 52, 1, 2008 },
-{ 0x7, 67, 0, 2007 },
-{ 0x6, 52, 1, 2164 },
-{ 0x3, 56, 0, 2163 },
-{ 0x1, 52, 1, 2172 },
-{ 0x1, 53, 1, 2171 },
-{ 0x1, 54, 1, 2170 },
-{ 0x1, 55, 0, 2169 },
-{ 0x3, 52, 1, 2168 },
-{ 0x3, 53, 1, 2167 },
-{ 0x3, 54, 1, 2166 },
-{ 0x3, 55, 0, 2165 },
-{ 0x1, 4, 0, 2173 },
-{ 0x1, 245, 0, 2174 },
-{ 0x1, 327, 0, 2175 },
-{ 0x1, 322, 0, 2176 },
-{ 0x2, 306, 0, 2177 },
-{ 0x1, 306, 0, 2180 },
-{ 0x2, 305, 0, 2178 },
-{ 0x1, 305, 0, 2181 },
-{ 0x2, 304, 0, 2179 },
-{ 0x1, 304, 0, 2182 },
-{ 0x1, 303, 0, 2183 },
-{ 0x1, 302, 0, 2184 },
-{ 0x2, 301, 0, 2185 },
-{ 0x1, 301, 0, 2187 },
-{ 0x2, 300, 0, 2186 },
-{ 0x1, 300, 0, 2188 },
-{ 0x1, 330, 0, 2195 },
-{ 0x8, 329, 0, 2189 },
-{ 0x4, 329, 0, 2191 },
-{ 0x2, 329, 0, 2193 },
-{ 0x1, 329, 0, 2196 },
-{ 0x8, 328, 0, 2190 },
-{ 0x4, 328, 0, 2192 },
-{ 0x2, 328, 0, 2194 },
-{ 0x1, 328, 0, 2197 },
-{ 0x1, 299, 0, 2204 },
-{ 0x8, 298, 0, 2198 },
-{ 0x4, 298, 0, 2200 },
-{ 0x2, 298, 0, 2202 },
-{ 0x1, 298, 0, 2205 },
-{ 0x8, 297, 0, 2199 },
-{ 0x4, 297, 0, 2201 },
-{ 0x2, 297, 1, 2203 },
-{ 0x4, 106, 0, 1249 },
-{ 0x1, 297, 0, 2206 },
-{ 0x1, 6, 0, 2207 },
-{ 0x1, 7, 0, 2208 },
-{ 0x1, 244, 0, 2209 },
-{ 0x1, 243, 0, 2210 },
-{ 0x1, 393, 0, 2211 },
-{ 0x1, 294, 0, 2212 },
-{ 0x1, 12, 0, 2213 },
-{ 0x1, 10, 0, 2214 },
-{ 0x1, 368, 0, 2215 },
-{ 0x1, 342, 0, 2216 },
-{ 0x1, 341, 0, 2217 },
-{ 0x1, 392, 0, 2218 },
-{ 0x1, 293, 0, 2219 },
-{ 0x1, 11, 0, 2220 },
-{ 0x1, 9, 0, 2221 },
-{ 0x1, 5, 0, 2222 },
-{ 0x1, 367, 0, 2223 },
-{ 0x1, 366, 0, 2224 },
-{ 0x1, 1, 0, 2225 },
-{ 0x1, 0, 0, 2226 },
+{ 0x1, 106, 0, 1591 },
+{ 0x1, 255, 1, 1592 },
+{ 0x1, 140, 0, 1588 },
+{ 0x8, 108, 0, 1593 },
+{ 0x4, 108, 0, 1594 },
+{ 0x2, 108, 0, 1595 },
+{ 0x1, 108, 1, 1597 },
+{ 0x1, 109, 0, 1596 },
+{ 0x8, 110, 0, 1598 },
+{ 0x4, 110, 0, 1599 },
+{ 0x2, 110, 0, 1600 },
+{ 0x1, 110, 1, 1602 },
+{ 0x1, 111, 1, 1601 },
+{ 0x1, 382, 0, 1094 },
+{ 0x8, 138, 0, 1603 },
+{ 0x4, 138, 0, 1604 },
+{ 0x2, 138, 0, 1605 },
+{ 0x1, 138, 1, 1607 },
+{ 0x1, 139, 1, 1606 },
+{ 0x1, 381, 0, 1095 },
+{ 0x8, 141, 0, 1608 },
+{ 0x4, 141, 0, 1609 },
+{ 0x2, 141, 0, 1610 },
+{ 0x1, 141, 1, 1612 },
+{ 0x1, 142, 1, 1611 },
+{ 0x1, 380, 0, 1096 },
+{ 0x8, 186, 0, 1613 },
+{ 0x4, 186, 0, 1614 },
+{ 0x2, 186, 0, 1615 },
+{ 0x1, 186, 1, 1617 },
+{ 0x1, 187, 0, 1616 },
+{ 0x8, 184, 0, 1618 },
+{ 0x4, 184, 0, 1619 },
+{ 0x2, 184, 0, 1620 },
+{ 0x1, 184, 1, 1622 },
+{ 0x1, 185, 0, 1621 },
+{ 0x8, 43, 0, 1627 },
+{ 0x18, 43, 0, 1623 },
+{ 0x4, 43, 0, 1628 },
+{ 0xc, 43, 0, 1624 },
+{ 0x2, 43, 0, 1629 },
+{ 0x6, 43, 0, 1625 },
+{ 0x1, 43, 0, 1630 },
+{ 0x3, 43, 0, 1626 },
+{ 0x51, 29, 0, 1632 },
+{ 0xd1, 29, 0, 1631 },
+{ 0x31, 29, 1, 1642 },
+{ 0x11, 30, 0, 1641 },
+{ 0x71, 29, 1, 1640 },
+{ 0x31, 30, 0, 1639 },
+{ 0x29, 29, 0, 1634 },
+{ 0x69, 29, 0, 1633 },
+{ 0x19, 29, 1, 1646 },
+{ 0x9, 30, 0, 1645 },
+{ 0x39, 29, 1, 1644 },
+{ 0x19, 30, 0, 1643 },
+{ 0x15, 29, 0, 1636 },
+{ 0x35, 29, 0, 1635 },
+{ 0xd, 29, 1, 1650 },
+{ 0x5, 30, 0, 1649 },
+{ 0x1d, 29, 1, 1648 },
+{ 0xd, 30, 0, 1647 },
+{ 0xb, 29, 0, 1638 },
+{ 0x1b, 29, 0, 1637 },
+{ 0x7, 29, 1, 1654 },
+{ 0x3, 30, 0, 1653 },
+{ 0xf, 29, 1, 1652 },
+{ 0x7, 30, 0, 1651 },
+{ 0xa2, 27, 0, 1656 },
+{ 0x1a2, 27, 0, 1655 },
+{ 0x62, 27, 1, 1666 },
+{ 0x22, 28, 0, 1665 },
+{ 0xe2, 27, 1, 1664 },
+{ 0x62, 28, 0, 1663 },
+{ 0x52, 27, 0, 1658 },
+{ 0xd2, 27, 0, 1657 },
+{ 0x32, 27, 1, 1670 },
+{ 0x12, 28, 0, 1669 },
+{ 0x72, 27, 1, 1668 },
+{ 0x32, 28, 0, 1667 },
+{ 0x2a, 27, 0, 1660 },
+{ 0x6a, 27, 0, 1659 },
+{ 0x1a, 27, 1, 1674 },
+{ 0xa, 28, 0, 1673 },
+{ 0x3a, 27, 1, 1672 },
+{ 0x1a, 28, 0, 1671 },
+{ 0x16, 27, 0, 1662 },
+{ 0x36, 27, 0, 1661 },
+{ 0xe, 27, 1, 1678 },
+{ 0x6, 28, 0, 1677 },
+{ 0x1e, 27, 1, 1676 },
+{ 0xe, 28, 0, 1675 },
+{ 0x51, 27, 0, 1680 },
+{ 0xd1, 27, 0, 1679 },
+{ 0x31, 27, 1, 1690 },
+{ 0x11, 28, 0, 1689 },
+{ 0x71, 27, 1, 1688 },
+{ 0x31, 28, 0, 1687 },
+{ 0x29, 27, 0, 1682 },
+{ 0x69, 27, 0, 1681 },
+{ 0x19, 27, 1, 1694 },
+{ 0x9, 28, 0, 1693 },
+{ 0x39, 27, 1, 1692 },
+{ 0x19, 28, 0, 1691 },
+{ 0x15, 27, 0, 1684 },
+{ 0x35, 27, 0, 1683 },
+{ 0xd, 27, 1, 1698 },
+{ 0x5, 28, 0, 1697 },
+{ 0x1d, 27, 1, 1696 },
+{ 0xd, 28, 0, 1695 },
+{ 0xb, 27, 0, 1686 },
+{ 0x1b, 27, 0, 1685 },
+{ 0x7, 27, 1, 1702 },
+{ 0x3, 28, 0, 1701 },
+{ 0xf, 27, 1, 1700 },
+{ 0x7, 28, 0, 1699 },
+{ 0x51, 25, 0, 1704 },
+{ 0xd1, 25, 0, 1703 },
+{ 0x31, 25, 1, 1714 },
+{ 0x11, 26, 0, 1713 },
+{ 0x71, 25, 1, 1712 },
+{ 0x31, 26, 0, 1711 },
+{ 0x29, 25, 0, 1706 },
+{ 0x69, 25, 0, 1705 },
+{ 0x19, 25, 1, 1718 },
+{ 0x9, 26, 0, 1717 },
+{ 0x39, 25, 1, 1716 },
+{ 0x19, 26, 0, 1715 },
+{ 0x15, 25, 0, 1708 },
+{ 0x35, 25, 0, 1707 },
+{ 0xd, 25, 1, 1722 },
+{ 0x5, 26, 0, 1721 },
+{ 0x1d, 25, 1, 1720 },
+{ 0xd, 26, 0, 1719 },
+{ 0xb, 25, 0, 1710 },
+{ 0x1b, 25, 0, 1709 },
+{ 0x7, 25, 1, 1726 },
+{ 0x3, 26, 0, 1725 },
+{ 0xf, 25, 1, 1724 },
+{ 0x7, 26, 0, 1723 },
+{ 0xa2, 23, 0, 1728 },
+{ 0x1a2, 23, 0, 1727 },
+{ 0x62, 23, 1, 1738 },
+{ 0x22, 24, 0, 1737 },
+{ 0xe2, 23, 1, 1736 },
+{ 0x62, 24, 0, 1735 },
+{ 0x52, 23, 0, 1730 },
+{ 0xd2, 23, 0, 1729 },
+{ 0x32, 23, 1, 1742 },
+{ 0x12, 24, 0, 1741 },
+{ 0x72, 23, 1, 1740 },
+{ 0x32, 24, 0, 1739 },
+{ 0x2a, 23, 0, 1732 },
+{ 0x6a, 23, 0, 1731 },
+{ 0x1a, 23, 1, 1746 },
+{ 0xa, 24, 0, 1745 },
+{ 0x3a, 23, 1, 1744 },
+{ 0x1a, 24, 0, 1743 },
+{ 0x16, 23, 0, 1734 },
+{ 0x36, 23, 0, 1733 },
+{ 0xe, 23, 1, 1750 },
+{ 0x6, 24, 0, 1749 },
+{ 0x1e, 23, 1, 1748 },
+{ 0xe, 24, 0, 1747 },
+{ 0x51, 23, 0, 1752 },
+{ 0xd1, 23, 0, 1751 },
+{ 0x31, 23, 1, 1762 },
+{ 0x11, 24, 0, 1761 },
+{ 0x71, 23, 1, 1760 },
+{ 0x31, 24, 0, 1759 },
+{ 0x29, 23, 0, 1754 },
+{ 0x69, 23, 0, 1753 },
+{ 0x19, 23, 1, 1766 },
+{ 0x9, 24, 0, 1765 },
+{ 0x39, 23, 1, 1764 },
+{ 0x19, 24, 0, 1763 },
+{ 0x15, 23, 0, 1756 },
+{ 0x35, 23, 0, 1755 },
+{ 0xd, 23, 1, 1770 },
+{ 0x5, 24, 0, 1769 },
+{ 0x1d, 23, 1, 1768 },
+{ 0xd, 24, 0, 1767 },
+{ 0xb, 23, 0, 1758 },
+{ 0x1b, 23, 0, 1757 },
+{ 0x7, 23, 1, 1774 },
+{ 0x3, 24, 0, 1773 },
+{ 0xf, 23, 1, 1772 },
+{ 0x7, 24, 0, 1771 },
+{ 0x51, 21, 1, 1800 },
+{ 0x50, 21, 0, 1776 },
+{ 0xd1, 21, 1, 1799 },
+{ 0xd0, 21, 0, 1775 },
+{ 0x31, 21, 1, 1810 },
+{ 0x30, 21, 1, 1786 },
+{ 0x11, 22, 1, 1809 },
+{ 0x10, 22, 0, 1785 },
+{ 0x71, 21, 1, 1808 },
+{ 0x70, 21, 1, 1784 },
+{ 0x31, 22, 1, 1807 },
+{ 0x30, 22, 0, 1783 },
+{ 0x29, 21, 1, 1802 },
+{ 0x28, 21, 0, 1778 },
+{ 0x69, 21, 1, 1801 },
+{ 0x68, 21, 0, 1777 },
+{ 0x19, 21, 1, 1814 },
+{ 0x18, 21, 1, 1790 },
+{ 0x9, 22, 1, 1813 },
+{ 0x8, 22, 0, 1789 },
+{ 0x39, 21, 1, 1812 },
+{ 0x38, 21, 1, 1788 },
+{ 0x19, 22, 1, 1811 },
+{ 0x18, 22, 0, 1787 },
+{ 0x15, 21, 1, 1804 },
+{ 0x14, 21, 0, 1780 },
+{ 0x35, 21, 1, 1803 },
+{ 0x34, 21, 0, 1779 },
+{ 0xd, 21, 1, 1818 },
+{ 0xc, 21, 1, 1794 },
+{ 0x5, 22, 1, 1817 },
+{ 0x4, 22, 0, 1793 },
+{ 0x1d, 21, 1, 1816 },
+{ 0x1c, 21, 1, 1792 },
+{ 0xd, 22, 1, 1815 },
+{ 0xc, 22, 0, 1791 },
+{ 0xb, 21, 1, 1806 },
+{ 0xa, 21, 0, 1782 },
+{ 0x1b, 21, 1, 1805 },
+{ 0x1a, 21, 0, 1781 },
+{ 0x7, 21, 1, 1822 },
+{ 0x6, 21, 1, 1798 },
+{ 0x3, 22, 1, 1821 },
+{ 0x2, 22, 0, 1797 },
+{ 0xf, 21, 1, 1820 },
+{ 0xe, 21, 1, 1796 },
+{ 0x7, 22, 1, 1819 },
+{ 0x6, 22, 0, 1795 },
+{ 0x8, 20, 0, 1824 },
+{ 0x18, 20, 0, 1823 },
+{ 0x1, 20, 1, 1828 },
+{ 0x2, 20, 0, 1827 },
+{ 0x3, 20, 1, 1826 },
+{ 0x4, 20, 0, 1825 },
+{ 0x1, 197, 0, 1829 },
+{ 0x1, 296, 0, 1830 },
+{ 0x14, 42, 0, 1833 },
+{ 0x34, 42, 0, 1831 },
+{ 0xc, 42, 0, 1834 },
+{ 0x1c, 42, 0, 1832 },
+{ 0x2, 42, 0, 1837 },
+{ 0x6, 42, 0, 1835 },
+{ 0x1, 42, 0, 1838 },
+{ 0x3, 42, 0, 1836 },
+{ 0x51, 18, 0, 1840 },
+{ 0xd1, 18, 0, 1839 },
+{ 0x31, 18, 1, 1850 },
+{ 0x11, 19, 0, 1849 },
+{ 0x71, 18, 1, 1848 },
+{ 0x31, 19, 0, 1847 },
+{ 0x29, 18, 0, 1842 },
+{ 0x69, 18, 0, 1841 },
+{ 0x19, 18, 1, 1854 },
+{ 0x9, 19, 0, 1853 },
+{ 0x39, 18, 1, 1852 },
+{ 0x19, 19, 0, 1851 },
+{ 0x15, 18, 0, 1844 },
+{ 0x35, 18, 0, 1843 },
+{ 0xd, 18, 1, 1858 },
+{ 0x5, 19, 0, 1857 },
+{ 0x1d, 18, 1, 1856 },
+{ 0xd, 19, 0, 1855 },
+{ 0xb, 18, 0, 1846 },
+{ 0x1b, 18, 0, 1845 },
+{ 0x7, 18, 1, 1862 },
+{ 0x3, 19, 0, 1861 },
+{ 0xf, 18, 1, 1860 },
+{ 0x7, 19, 0, 1859 },
+{ 0x1, 31, 0, 1863 },
+{ 0x1, 104, 0, 1864 },
+{ 0x2, 44, 0, 1865 },
+{ 0x1, 44, 0, 1866 },
+{ 0x1, 344, 0, 1867 },
+{ 0x2, 51, 0, 1868 },
+{ 0x1, 51, 0, 1869 },
+{ 0x1, 97, 0, 1870 },
+{ 0x51, 16, 0, 1872 },
+{ 0xd1, 16, 0, 1871 },
+{ 0x31, 16, 1, 1882 },
+{ 0x11, 17, 0, 1881 },
+{ 0x71, 16, 1, 1880 },
+{ 0x31, 17, 0, 1879 },
+{ 0x29, 16, 0, 1874 },
+{ 0x69, 16, 0, 1873 },
+{ 0x19, 16, 1, 1886 },
+{ 0x9, 17, 0, 1885 },
+{ 0x39, 16, 1, 1884 },
+{ 0x19, 17, 0, 1883 },
+{ 0x15, 16, 0, 1876 },
+{ 0x35, 16, 0, 1875 },
+{ 0xd, 16, 1, 1890 },
+{ 0x5, 17, 0, 1889 },
+{ 0x1d, 16, 1, 1888 },
+{ 0xd, 17, 0, 1887 },
+{ 0xb, 16, 0, 1878 },
+{ 0x1b, 16, 0, 1877 },
+{ 0x7, 16, 1, 1894 },
+{ 0x3, 17, 0, 1893 },
+{ 0xf, 16, 1, 1892 },
+{ 0x7, 17, 0, 1891 },
+{ 0xa20, 14, 0, 1896 },
+{ 0x1a20, 14, 0, 1895 },
+{ 0x620, 14, 1, 1906 },
+{ 0x220, 15, 0, 1905 },
+{ 0xe20, 14, 1, 1904 },
+{ 0x620, 15, 0, 1903 },
+{ 0x520, 14, 0, 1898 },
+{ 0xd20, 14, 0, 1897 },
+{ 0x320, 14, 1, 1910 },
+{ 0x120, 15, 0, 1909 },
+{ 0x720, 14, 1, 1908 },
+{ 0x320, 15, 0, 1907 },
+{ 0x2a0, 14, 0, 1900 },
+{ 0x6a0, 14, 0, 1899 },
+{ 0x1a0, 14, 1, 1914 },
+{ 0xa0, 15, 0, 1913 },
+{ 0x3a0, 14, 1, 1912 },
+{ 0x1a0, 15, 0, 1911 },
+{ 0x160, 14, 0, 1902 },
+{ 0x360, 14, 0, 1901 },
+{ 0xe0, 14, 1, 1918 },
+{ 0x60, 15, 0, 1917 },
+{ 0x1e0, 14, 1, 1916 },
+{ 0xe0, 15, 0, 1915 },
+{ 0x51, 14, 1, 1944 },
+{ 0x50, 14, 0, 1920 },
+{ 0xd1, 14, 1, 1943 },
+{ 0xd0, 14, 0, 1919 },
+{ 0x31, 14, 1, 1954 },
+{ 0x30, 14, 1, 1930 },
+{ 0x11, 15, 1, 1953 },
+{ 0x10, 15, 0, 1929 },
+{ 0x71, 14, 1, 1952 },
+{ 0x70, 14, 1, 1928 },
+{ 0x31, 15, 1, 1951 },
+{ 0x30, 15, 0, 1927 },
+{ 0x29, 14, 1, 1946 },
+{ 0x28, 14, 0, 1922 },
+{ 0x69, 14, 1, 1945 },
+{ 0x68, 14, 0, 1921 },
+{ 0x19, 14, 1, 1958 },
+{ 0x18, 14, 1, 1934 },
+{ 0x9, 15, 1, 1957 },
+{ 0x8, 15, 0, 1933 },
+{ 0x39, 14, 1, 1956 },
+{ 0x38, 14, 1, 1932 },
+{ 0x19, 15, 1, 1955 },
+{ 0x18, 15, 0, 1931 },
+{ 0x15, 14, 1, 1948 },
+{ 0x14, 14, 0, 1924 },
+{ 0x35, 14, 1, 1947 },
+{ 0x34, 14, 0, 1923 },
+{ 0xd, 14, 1, 1962 },
+{ 0xc, 14, 1, 1938 },
+{ 0x5, 15, 1, 1961 },
+{ 0x4, 15, 0, 1937 },
+{ 0x1d, 14, 1, 1960 },
+{ 0x1c, 14, 1, 1936 },
+{ 0xd, 15, 1, 1959 },
+{ 0xc, 15, 0, 1935 },
+{ 0xb, 14, 1, 1950 },
+{ 0xa, 14, 0, 1926 },
+{ 0x1b, 14, 1, 1949 },
+{ 0x1a, 14, 0, 1925 },
+{ 0x7, 14, 1, 1966 },
+{ 0x6, 14, 1, 1942 },
+{ 0x3, 15, 1, 1965 },
+{ 0x2, 15, 0, 1941 },
+{ 0xf, 14, 1, 1964 },
+{ 0xe, 14, 1, 1940 },
+{ 0x7, 15, 1, 1963 },
+{ 0x6, 15, 0, 1939 },
+{ 0x8, 13, 0, 1968 },
+{ 0x18, 13, 0, 1967 },
+{ 0x1, 13, 1, 1972 },
+{ 0x2, 13, 0, 1971 },
+{ 0x3, 13, 1, 1970 },
+{ 0x4, 13, 0, 1969 },
+{ 0x1, 84, 1, 2048 },
+{ 0x1, 85, 1, 2047 },
+{ 0x1, 86, 1, 2046 },
+{ 0x1, 87, 1, 2045 },
+{ 0x39, 40, 1, 22 },
+{ 0x19, 41, 0, 21 },
+{ 0x3, 84, 1, 2044 },
+{ 0x3, 85, 1, 2043 },
+{ 0x3, 86, 1, 2042 },
+{ 0x3, 87, 1, 2041 },
+{ 0x69, 40, 0, 11 },
+{ 0x14, 79, 1, 2038 },
+{ 0xa, 83, 1, 2037 },
+{ 0xd1, 40, 0, 9 },
+{ 0x34, 79, 1, 1974 },
+{ 0xe, 91, 0, 1973 },
+{ 0xc, 79, 1, 2118 },
+{ 0x6, 83, 0, 2117 },
+{ 0x2, 79, 1, 1980 },
+{ 0x2, 82, 0, 1979 },
+{ 0x12, 79, 1, 1978 },
+{ 0x6, 82, 0, 1977 },
+{ 0xa, 79, 1, 2040 },
+{ 0x5, 83, 1, 2039 },
+{ 0x71, 40, 1, 18 },
+{ 0x31, 41, 0, 17 },
+{ 0x1a, 79, 1, 1976 },
+{ 0x7, 91, 0, 1975 },
+{ 0x6, 79, 1, 2120 },
+{ 0x3, 83, 0, 2119 },
+{ 0x1, 79, 1, 2128 },
+{ 0x1, 80, 1, 2127 },
+{ 0x1, 81, 1, 2126 },
+{ 0x1, 82, 0, 2125 },
+{ 0x3, 79, 1, 2124 },
+{ 0x3, 80, 1, 2123 },
+{ 0x3, 81, 1, 2122 },
+{ 0x3, 82, 0, 2121 },
+{ 0x8, 60, 1, 2060 },
+{ 0x2, 63, 1, 2057 },
+{ 0x1, 65, 1, 2059 },
+{ 0x1, 66, 1, 2058 },
+{ 0xf, 40, 1, 30 },
+{ 0x7, 41, 0, 29 },
+{ 0x18, 60, 1, 2056 },
+{ 0x6, 63, 1, 2053 },
+{ 0x3, 65, 1, 2055 },
+{ 0x3, 66, 1, 2054 },
+{ 0x1b, 40, 0, 15 },
+{ 0x14, 60, 1, 2050 },
+{ 0xa, 64, 1, 2049 },
+{ 0x35, 40, 0, 13 },
+{ 0x34, 60, 1, 1982 },
+{ 0xe, 70, 0, 1981 },
+{ 0xc, 60, 1, 2130 },
+{ 0x6, 64, 0, 2129 },
+{ 0x2, 60, 1, 1988 },
+{ 0x4, 63, 0, 1987 },
+{ 0x12, 60, 1, 1986 },
+{ 0xc, 63, 0, 1985 },
+{ 0xa, 60, 1, 2052 },
+{ 0x5, 64, 1, 2051 },
+{ 0x1d, 40, 1, 26 },
+{ 0xd, 41, 0, 25 },
+{ 0x1a, 60, 1, 1984 },
+{ 0x7, 70, 0, 1983 },
+{ 0x6, 60, 1, 2132 },
+{ 0x3, 64, 0, 2131 },
+{ 0x1, 60, 1, 2140 },
+{ 0x1, 61, 1, 2139 },
+{ 0x1, 62, 1, 2138 },
+{ 0x1, 63, 0, 2137 },
+{ 0x3, 60, 1, 2136 },
+{ 0x3, 61, 1, 2135 },
+{ 0x3, 62, 1, 2134 },
+{ 0x3, 63, 0, 2133 },
+{ 0x28, 76, 1, 2064 },
+{ 0x44, 77, 1, 2061 },
+{ 0x88, 77, 1, 2063 },
+{ 0x28, 78, 0, 2062 },
+{ 0x68, 76, 1, 1992 },
+{ 0x188, 77, 1, 1991 },
+{ 0x38, 89, 1, 1990 },
+{ 0x38, 90, 0, 1989 },
+{ 0x18, 76, 1, 2144 },
+{ 0x14, 77, 1, 2141 },
+{ 0x28, 77, 1, 2143 },
+{ 0x18, 78, 0, 2142 },
+{ 0x14, 76, 1, 2068 },
+{ 0x24, 77, 1, 2067 },
+{ 0x48, 77, 1, 2065 },
+{ 0x14, 78, 0, 2066 },
+{ 0x34, 76, 1, 1996 },
+{ 0x64, 77, 1, 1995 },
+{ 0x1c, 89, 1, 1994 },
+{ 0x1c, 90, 0, 1993 },
+{ 0xc, 76, 1, 2148 },
+{ 0xc, 77, 1, 2147 },
+{ 0x18, 77, 1, 2145 },
+{ 0xc, 78, 0, 2146 },
+{ 0xa, 76, 1, 2072 },
+{ 0x11, 77, 1, 2069 },
+{ 0x22, 77, 1, 2071 },
+{ 0xa, 78, 0, 2070 },
+{ 0x1a, 76, 1, 2000 },
+{ 0x62, 77, 1, 1999 },
+{ 0xe, 89, 1, 1998 },
+{ 0xe, 90, 0, 1997 },
+{ 0x6, 76, 1, 2152 },
+{ 0x5, 77, 1, 2149 },
+{ 0xa, 77, 1, 2151 },
+{ 0x6, 78, 0, 2150 },
+{ 0x5, 76, 1, 2076 },
+{ 0x9, 77, 1, 2075 },
+{ 0x12, 77, 1, 2073 },
+{ 0x5, 78, 0, 2074 },
+{ 0xd, 76, 1, 2004 },
+{ 0x19, 77, 1, 2003 },
+{ 0x7, 89, 1, 2002 },
+{ 0x7, 90, 0, 2001 },
+{ 0x3, 76, 1, 2156 },
+{ 0x3, 77, 1, 2155 },
+{ 0x6, 77, 1, 2153 },
+{ 0x3, 78, 0, 2154 },
+{ 0x28, 57, 1, 2080 },
+{ 0x44, 58, 1, 2077 },
+{ 0x88, 58, 1, 2079 },
+{ 0x28, 59, 0, 2078 },
+{ 0x68, 57, 1, 2008 },
+{ 0x188, 58, 1, 2007 },
+{ 0x38, 68, 1, 2006 },
+{ 0x38, 69, 0, 2005 },
+{ 0x18, 57, 1, 2160 },
+{ 0x14, 58, 1, 2157 },
+{ 0x28, 58, 1, 2159 },
+{ 0x18, 59, 0, 2158 },
+{ 0x14, 57, 1, 2084 },
+{ 0x24, 58, 1, 2083 },
+{ 0x48, 58, 1, 2081 },
+{ 0x14, 59, 0, 2082 },
+{ 0x34, 57, 1, 2012 },
+{ 0x64, 58, 1, 2011 },
+{ 0x1c, 68, 1, 2010 },
+{ 0x1c, 69, 0, 2009 },
+{ 0xc, 57, 1, 2164 },
+{ 0xc, 58, 1, 2163 },
+{ 0x18, 58, 1, 2161 },
+{ 0xc, 59, 0, 2162 },
+{ 0xa, 57, 1, 2088 },
+{ 0x11, 58, 1, 2085 },
+{ 0x22, 58, 1, 2087 },
+{ 0xa, 59, 0, 2086 },
+{ 0x1a, 57, 1, 2016 },
+{ 0x62, 58, 1, 2015 },
+{ 0xe, 68, 1, 2014 },
+{ 0xe, 69, 0, 2013 },
+{ 0x6, 57, 1, 2168 },
+{ 0x5, 58, 1, 2165 },
+{ 0xa, 58, 1, 2167 },
+{ 0x6, 59, 0, 2166 },
+{ 0x5, 57, 1, 2092 },
+{ 0x9, 58, 1, 2091 },
+{ 0x12, 58, 1, 2089 },
+{ 0x5, 59, 0, 2090 },
+{ 0xd, 57, 1, 2020 },
+{ 0x19, 58, 1, 2019 },
+{ 0x7, 68, 1, 2018 },
+{ 0x7, 69, 0, 2017 },
+{ 0x3, 57, 1, 2172 },
+{ 0x3, 58, 1, 2171 },
+{ 0x6, 58, 1, 2169 },
+{ 0x3, 59, 0, 2170 },
+{ 0x8, 71, 1, 2104 },
+{ 0x2, 72, 1, 2103 },
+{ 0x2, 73, 1, 2102 },
+{ 0x2, 74, 0, 2101 },
+{ 0x18, 71, 1, 2100 },
+{ 0x6, 72, 1, 2099 },
+{ 0x6, 73, 1, 2098 },
+{ 0x6, 74, 0, 2097 },
+{ 0x14, 71, 1, 2094 },
+{ 0xa, 75, 0, 2093 },
+{ 0x34, 71, 1, 2022 },
+{ 0xe, 88, 0, 2021 },
+{ 0xc, 71, 1, 2174 },
+{ 0x6, 75, 0, 2173 },
+{ 0x2, 71, 1, 2028 },
+{ 0x4, 74, 0, 2027 },
+{ 0x12, 71, 1, 2026 },
+{ 0xc, 74, 0, 2025 },
+{ 0xa, 71, 1, 2096 },
+{ 0x5, 75, 0, 2095 },
+{ 0x1a, 71, 1, 2024 },
+{ 0x7, 88, 0, 2023 },
+{ 0x6, 71, 1, 2176 },
+{ 0x3, 75, 0, 2175 },
+{ 0x1, 71, 1, 2184 },
+{ 0x1, 72, 1, 2183 },
+{ 0x1, 73, 1, 2182 },
+{ 0x1, 74, 0, 2181 },
+{ 0x3, 71, 1, 2180 },
+{ 0x3, 72, 1, 2179 },
+{ 0x3, 73, 1, 2178 },
+{ 0x3, 74, 0, 2177 },
+{ 0x8, 52, 1, 2116 },
+{ 0x2, 53, 1, 2115 },
+{ 0x2, 54, 1, 2114 },
+{ 0x2, 55, 0, 2113 },
+{ 0x18, 52, 1, 2112 },
+{ 0x6, 53, 1, 2111 },
+{ 0x6, 54, 1, 2110 },
+{ 0x6, 55, 0, 2109 },
+{ 0x14, 52, 1, 2106 },
+{ 0xa, 56, 0, 2105 },
+{ 0x34, 52, 1, 2030 },
+{ 0xe, 67, 0, 2029 },
+{ 0xc, 52, 1, 2186 },
+{ 0x6, 56, 0, 2185 },
+{ 0x2, 52, 1, 2036 },
+{ 0x4, 55, 0, 2035 },
+{ 0x12, 52, 1, 2034 },
+{ 0xc, 55, 0, 2033 },
+{ 0xa, 52, 1, 2108 },
+{ 0x5, 56, 0, 2107 },
+{ 0x1a, 52, 1, 2032 },
+{ 0x7, 67, 0, 2031 },
+{ 0x6, 52, 1, 2188 },
+{ 0x3, 56, 0, 2187 },
+{ 0x1, 52, 1, 2196 },
+{ 0x1, 53, 1, 2195 },
+{ 0x1, 54, 1, 2194 },
+{ 0x1, 55, 0, 2193 },
+{ 0x3, 52, 1, 2192 },
+{ 0x3, 53, 1, 2191 },
+{ 0x3, 54, 1, 2190 },
+{ 0x3, 55, 0, 2189 },
+{ 0x1, 4, 0, 2197 },
+{ 0x1, 254, 0, 2198 },
+{ 0x1, 336, 0, 2199 },
+{ 0x1, 331, 0, 2200 },
+{ 0x2, 315, 0, 2201 },
+{ 0x1, 315, 0, 2204 },
+{ 0x2, 314, 0, 2202 },
+{ 0x1, 314, 0, 2205 },
+{ 0x2, 313, 0, 2203 },
+{ 0x1, 313, 0, 2206 },
+{ 0x1, 312, 0, 2207 },
+{ 0x1, 311, 0, 2208 },
+{ 0x2, 310, 0, 2209 },
+{ 0x1, 310, 0, 2211 },
+{ 0x2, 309, 0, 2210 },
+{ 0x1, 309, 0, 2212 },
+{ 0x1, 339, 0, 2219 },
+{ 0x8, 338, 0, 2213 },
+{ 0x4, 338, 0, 2215 },
+{ 0x2, 338, 0, 2217 },
+{ 0x1, 338, 0, 2220 },
+{ 0x8, 337, 0, 2214 },
+{ 0x4, 337, 0, 2216 },
+{ 0x2, 337, 0, 2218 },
+{ 0x1, 337, 0, 2221 },
+{ 0x1, 308, 0, 2228 },
+{ 0x8, 307, 0, 2222 },
+{ 0x4, 307, 0, 2224 },
+{ 0x2, 307, 0, 2226 },
+{ 0x1, 307, 0, 2229 },
+{ 0x8, 306, 0, 2223 },
+{ 0x4, 306, 0, 2225 },
+{ 0x2, 306, 1, 2227 },
+{ 0x4, 107, 0, 1271 },
+{ 0x1, 306, 0, 2230 },
+{ 0x1, 6, 0, 2231 },
+{ 0x1, 7, 0, 2232 },
+{ 0x1, 253, 0, 2233 },
+{ 0x1, 252, 0, 2234 },
+{ 0x1, 403, 0, 2235 },
+{ 0x1, 303, 0, 2236 },
+{ 0x1, 12, 0, 2237 },
+{ 0x1, 10, 0, 2238 },
+{ 0x1, 378, 0, 2239 },
+{ 0x1, 351, 0, 2240 },
+{ 0x1, 350, 0, 2241 },
+{ 0x1, 402, 0, 2242 },
+{ 0x1, 302, 0, 2243 },
+{ 0x1, 11, 0, 2244 },
+{ 0x1, 9, 0, 2245 },
+{ 0x1, 5, 0, 2246 },
+{ 0x1, 377, 0, 2247 },
+{ 0x1, 376, 0, 2248 },
+{ 0x1, 1, 0, 2249 },
+{ 0x1, 0, 0, 2250 },
 };
 
index f9add9177702361aaf630fa7b6064c45d1e1f0f8..4c63815289c380a79addef683d603ebc1528b8b5 100644 (file)
@@ -167,10 +167,10 @@ print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
         }
       else if (odesc - elf64_ia64_operands == IA64_OPND_TGT64)
        {
-         /* 60-bit immedate for long branches.  */
+         /* 60-bit immediate for long branches. */
          value = (((insn >> 13) & 0xfffff)
                   | (((insn >> 36) & 1) << 59)
-                  | (slot[1] << 20)) << 4;
+                  | (((slot[1] >> 2) & 0x7fffffffffLL) << 20)) << 4;
        }
       else
        {
index f6bfda00620e0267a77131501abf70e24fd13f80..a4e2cecd20bf89cd2b94483b60490e8a456fd20e 100644 (file)
@@ -1061,10 +1061,11 @@ in_iclass (struct ia64_opcode *idesc, struct iclass *ic,
                   && (idesc->name[len] == '\0' 
                       || idesc->name[len] == '.'));
 
-      /* All break and nop variations must match exactly.  */
+      /* All break, nop, and hint variations must match exactly.  */
       if (resolved &&
           (strcmp (ic->name, "break") == 0
-           || strcmp (ic->name, "nop") == 0))
+           || strcmp (ic->name, "nop") == 0
+          || strcmp (ic->name, "hint") == 0))
         resolved = strcmp (ic->name, idesc->name) == 0;
 
       /* Assume restrictions in the FORMAT/FIELD negate resolution,
@@ -1257,6 +1258,22 @@ lookup_regindex (const char *name, int specifier)
         return 18;
       else if (strstr (name, "[RNAT]"))
         return 19;
+      else if (strstr (name, "[FCR]"))
+        return 21;
+      else if (strstr (name, "[EFLAG]"))
+        return 24;
+      else if (strstr (name, "[CSD]"))
+        return 25;
+      else if (strstr (name, "[SSD]"))
+        return 26;
+      else if (strstr (name, "[CFLG]"))
+        return 27;
+      else if (strstr (name, "[FSR]"))
+        return 28;
+      else if (strstr (name, "[FIR]"))
+        return 29;
+      else if (strstr (name, "[FDR]"))
+        return 30;
       else if (strstr (name, "[CCV]"))
         return 32;
       else if (strstr (name, "[ITC]"))
index 115a2763d41d16b63e41d1996488e9ec1fbfa0d3..3eab2eb0b65be4ab79cb6ab7ac62642010430d34 100644 (file)
@@ -3,7 +3,7 @@ all;    IC:predicatable-instructions, IC:unpredicatable-instructions
 branches;      IC:indirect-brs, IC:ip-rel-brs
 cfm-readers;   IC:fr-readers, IC:fr-writers, IC:gr-readers, IC:gr-writers, IC:mod-sched-brs, IC:predicatable-instructions, IC:pr-writers, alloc, br.call, brl.call, br.ret, cover, loadrs, rfi, IC:chk-a, invala.e
 chk-a; chk.a.clr, chk.a.nc
-cmpxchg;       cmpxchg1, cmpxchg2, cmpxchg4, cmpxchg8
+cmpxchg;       cmpxchg1, cmpxchg2, cmpxchg4, cmpxchg8, cmp8xchg16
 czx;   czx1, czx2
 fcmp-s0;       fcmp[Field(sf)==s0]
 fcmp-s1;       fcmp[Field(sf)==s1]
@@ -29,7 +29,7 @@ indirect-brp; brp[Format in {B7}]
 indirect-brs;  br.call[Format in {B5}], br.cond[Format in {B4}], br.ia, br.ret
 invala-all;    invala[Format in {M24}], invala.e
 ip-rel-brs;    IC:mod-sched-brs, br.call[Format in {B3}], brl.call, brl.cond, br.cond[Format in {B1}], br.cloop
-ld;    ld1, ld2, ld4, ld8, ld8.fill
+ld;    ld1, ld2, ld4, ld8, ld8.fill, ld16
 ld-a;  ld1.a, ld2.a, ld4.a, ld8.a
 ld-all-postinc;        IC:ld[Format in {M2 M3}], IC:ldfp[Format in {M12}], IC:ldf[Format in {M7 M8}]
 ld-c;  IC:ld-c-nc, IC:ld-c-clr
@@ -71,8 +71,15 @@ mov-from-AR; IC:mov-from-AR-M, IC:mov-from-AR-I, IC:mov-from-AR-IM
 mov-from-AR-BSP;       IC:mov-from-AR-M[Field(ar3) == BSP]
 mov-from-AR-BSPSTORE;  IC:mov-from-AR-M[Field(ar3) == BSPSTORE]
 mov-from-AR-CCV;       IC:mov-from-AR-M[Field(ar3) == CCV]
+mov-from-AR-CFLG;      IC:mov-from-AR-M[Field(ar3) == CFLG]
+mov-from-AR-CSD;       IC:mov-from-AR-M[Field(ar3) == CSD]
 mov-from-AR-EC;        IC:mov-from-AR-I[Field(ar3) == EC]
+mov-from-AR-EFLAG;     IC:mov-from-AR-M[Field(ar3) == EFLAG]
+mov-from-AR-FCR;       IC:mov-from-AR-M[Field(ar3) == FCR]
+mov-from-AR-FDR;       IC:mov-from-AR-M[Field(ar3) == FDR]
+mov-from-AR-FIR;       IC:mov-from-AR-M[Field(ar3) == FIR]
 mov-from-AR-FPSR;      IC:mov-from-AR-M[Field(ar3) == FPSR]
+mov-from-AR-FSR;       IC:mov-from-AR-M[Field(ar3) == FSR]
 mov-from-AR-I; mov_ar[Format in {I28}]
 mov-from-AR-ig;        IC:mov-from-AR-IM[Field(ar3) in {48-63 112-127}]
 mov-from-AR-IM;        mov_ar[Format in {I28 M31}]
@@ -84,6 +91,7 @@ mov-from-AR-PFS;      IC:mov-from-AR-I[Field(ar3) == PFS]
 mov-from-AR-RNAT;      IC:mov-from-AR-M[Field(ar3) == RNAT]
 mov-from-AR-RSC;       IC:mov-from-AR-M[Field(ar3) == RSC]
 mov-from-AR-rv;        IC:none
+mov-from-AR-SSD;       IC:mov-from-AR-M[Field(ar3) == SSD]
 mov-from-AR-UNAT;      IC:mov-from-AR-M[Field(ar3) == UNAT]
 mov-from-BR;   mov_br[Format in {I22}]
 mov-from-CR;   mov_cr[Format in {M33}]
@@ -129,8 +137,15 @@ mov-to-AR; IC:mov-to-AR-M, IC:mov-to-AR-I
 mov-to-AR-BSP; IC:mov-to-AR-M[Field(ar3) == BSP]
 mov-to-AR-BSPSTORE;    IC:mov-to-AR-M[Field(ar3) == BSPSTORE]
 mov-to-AR-CCV; IC:mov-to-AR-M[Field(ar3) == CCV]
+mov-to-AR-CFLG;        IC:mov-to-AR-M[Field(ar3) == CFLG]
+mov-to-AR-CSD; IC:mov-to-AR-M[Field(ar3) == CSD]
 mov-to-AR-EC;  IC:mov-to-AR-I[Field(ar3) == EC]
+mov-to-AR-EFLAG;       IC:mov-to-AR-M[Field(ar3) == EFLAG]
+mov-to-AR-FCR; IC:mov-to-AR-M[Field(ar3) == FCR]
+mov-to-AR-FDR; IC:mov-to-AR-M[Field(ar3) == FDR]
+mov-to-AR-FIR; IC:mov-to-AR-M[Field(ar3) == FIR]
 mov-to-AR-FPSR;        IC:mov-to-AR-M[Field(ar3) == FPSR]
+mov-to-AR-FSR; IC:mov-to-AR-M[Field(ar3) == FSR]
 mov-to-AR-gr;  IC:mov-to-AR-M[Format in {M29}], IC:mov-to-AR-I[Format in {I26}]
 mov-to-AR-I;   mov_ar[Format in {I26 I27}]
 mov-to-AR-ig;  IC:mov-to-AR-IM[Field(ar3) in {48-63 112-127}]
@@ -142,6 +157,7 @@ mov-to-AR-M;        mov_ar[Format in {M29 M30}]
 mov-to-AR-PFS; IC:mov-to-AR-I[Field(ar3) == PFS]
 mov-to-AR-RNAT;        IC:mov-to-AR-M[Field(ar3) == RNAT]
 mov-to-AR-RSC; IC:mov-to-AR-M[Field(ar3) == RSC]
+mov-to-AR-SSD; IC:mov-to-AR-M[Field(ar3) == SSD]
 mov-to-AR-UNAT;        IC:mov-to-AR-M[Field(ar3) == UNAT]
 mov-to-BR;     mov_br[Format in {I21}]
 mov-to-CR;     mov_cr[Format in {M32}]
@@ -200,8 +216,8 @@ pr-gen-writers-int; cmp, cmp4, tbit, tnat
 pr-norm-writers-fp;    IC:pr-gen-writers-fp[Field(ctype)==]
 pr-norm-writers-int;   IC:pr-gen-writers-int[Field(ctype)==]
 pr-or-writers; IC:pr-gen-writers-int[Field(ctype) in {or orcm}], IC:pr-gen-writers-int[Field(ctype) in {or.andcm and.orcm}]
-pr-readers-br; br.call, br.cond, brl.call, brl.cond, br.ret, br.wexit, br.wtop, break.b, nop.b, IC:ReservedBQP
-pr-readers-nobr-nomovpr;       add, addl, addp4, adds, and, andcm, break.f, break.i, break.m, break.x, chk.s, IC:chk-a, cmp, cmp4, IC:cmpxchg, IC:czx, dep, extr, IC:fp-arith, IC:fp-non-arith, fc, fchkf, fclrf, fcmp, IC:fetchadd, fpcmp, fsetc, fwb, getf, IC:invala-all, itc.i, itc.d, itr.i, itr.d, IC:ld, IC:ldf, IC:ldfp, IC:lfetch-all, mf, IC:mix, IC:mov-from-AR-M, IC:mov-from-AR-IM, IC:mov-from-AR-I, IC:mov-to-AR-M, IC:mov-to-AR-I, IC:mov-to-AR-IM, IC:mov-to-BR, IC:mov-from-BR, IC:mov-to-CR, IC:mov-from-CR, IC:mov-to-IND, IC:mov-from-IND, IC:mov-ip, IC:mov-to-PSR-l, IC:mov-to-PSR-um, IC:mov-from-PSR, IC:mov-from-PSR-um, movl, IC:mux, nop.f, nop.i, nop.m, nop.x, or, IC:pack, IC:padd, IC:pavg, IC:pavgsub, IC:pcmp, IC:pmax, IC:pmin, IC:pmpy, IC:pmpyshr, popcnt, IC:probe-all, IC:psad, IC:pshl, IC:pshladd, IC:pshr, IC:pshradd, IC:psub, ptc.e, ptc.g, ptc.ga, ptc.l, ptr.d, ptr.i, IC:ReservedQP, rsm, setf, shl, shladd, shladdp4, shr, shrp, srlz.i, srlz.d, ssm, IC:st, IC:stf, sub, sum, IC:sxt, sync, tak, tbit, thash, tnat, tpa, ttag, IC:unpack, IC:xchg, xma, xmpy, xor, IC:zxt
+pr-readers-br; br.call, br.cond, brl.call, brl.cond, br.ret, br.wexit, br.wtop, break.b, hint.b, nop.b, IC:ReservedBQP
+pr-readers-nobr-nomovpr;       add, addl, addp4, adds, and, andcm, break.f, break.i, break.m, break.x, chk.s, IC:chk-a, cmp, cmp4, IC:cmpxchg, IC:czx, dep, extr, IC:fp-arith, IC:fp-non-arith, fc, fchkf, fclrf, fcmp, IC:fetchadd, fpcmp, fsetc, fwb, getf, hint.f, hint.i, hint.m, hint.x, IC:invala-all, itc.i, itc.d, itr.i, itr.d, IC:ld, IC:ldf, IC:ldfp, IC:lfetch-all, mf, IC:mix, IC:mov-from-AR-M, IC:mov-from-AR-IM, IC:mov-from-AR-I, IC:mov-to-AR-M, IC:mov-to-AR-I, IC:mov-to-AR-IM, IC:mov-to-BR, IC:mov-from-BR, IC:mov-to-CR, IC:mov-from-CR, IC:mov-to-IND, IC:mov-from-IND, IC:mov-ip, IC:mov-to-PSR-l, IC:mov-to-PSR-um, IC:mov-from-PSR, IC:mov-from-PSR-um, movl, IC:mux, nop.f, nop.i, nop.m, nop.x, or, IC:pack, IC:padd, IC:pavg, IC:pavgsub, IC:pcmp, IC:pmax, IC:pmin, IC:pmpy, IC:pmpyshr, popcnt, IC:probe-all, IC:psad, IC:pshl, IC:pshladd, IC:pshr, IC:pshradd, IC:psub, ptc.e, ptc.g, ptc.ga, ptc.l, ptr.d, ptr.i, IC:ReservedQP, rsm, setf, shl, shladd, shladdp4, shr, shrp, srlz.i, srlz.d, ssm, IC:st, IC:stf, sub, sum, IC:sxt, sync, tak, tbit, thash, tnat, tpa, ttag, IC:unpack, IC:xchg, xma, xmpy, xor, IC:zxt
 pr-unc-writers-fp;     IC:pr-gen-writers-fp[Field(ctype)==unc]+11, fprcpa+11, fprsqrta+11, frcpa+11, frsqrta+11
 pr-unc-writers-int;    IC:pr-gen-writers-int[Field(ctype)==unc]+11
 pr-writers;    IC:pr-writers-int, IC:pr-writers-fp
@@ -222,7 +238,7 @@ ReservedBQP;        -+15
 ReservedQP;    -+16
 rse-readers;   alloc, br.call, br.ia, br.ret, brl.call, cover, flushrs, loadrs, IC:mov-from-AR-BSP, IC:mov-from-AR-BSPSTORE, IC:mov-to-AR-BSPSTORE, IC:mov-from-AR-RNAT, IC:mov-to-AR-RNAT, rfi
 rse-writers;   alloc, br.call, br.ia, br.ret, brl.call, cover, flushrs, loadrs, IC:mov-to-AR-BSPSTORE, rfi
-st;    st1, st2, st4, st8, st8.spill
+st;    st1, st2, st4, st8, st8.spill, st16
 st-postinc;    IC:stf[Format in {M10}], IC:st[Format in {M5}]
 stf;   stfs, stfd, stfe, stf8, stf.spill
 sxt;   sxt1, sxt2, sxt4
index efc2536e8bfad6306116b83aaab6359f4f7b55ac..fc57ab669d104570ee9dfa2c580c7cc30f8cbe0c 100644 (file)
@@ -189,7 +189,7 @@ struct ia64_opcode ia64_opcodes_b[] =
 #undef BR
 #undef BRP
 #undef BRT
-    
+
     {"cover",          B0, OpX6 (0, 0x02), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL},
     {"clrrrb",         B0, OpX6 (0, 0x04), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL},
     {"clrrrb.pr",      B0, OpX6 (0, 0x05), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL},
@@ -238,6 +238,7 @@ struct ia64_opcode ia64_opcodes_b[] =
 #undef BRP
 
     {"nop.b",          B0, OpX6 (2, 0x00), {IMMU21}, EMPTY},
+    {"hint.b",         B0, OpX6 (2, 0x01), {IMMU21}, EMPTY},
 
 #define BR(a,b) \
       B0, OpBtypePaWhaDPr (4, 0, a, 0, b, 0), {TGT25c}, PSEUDO, 0, NULL
index f0761ddccf03b522917f4705955bb5cce11b0bce..d916085242e3dfe9ccda6d004e4d35ddee7c4f96 100644 (file)
@@ -25,6 +25,7 @@ struct ia64_opcode ia64_opcodes_d[] =
     {"add",   IA64_TYPE_DYN, 1, 0, 0, {IA64_OPND_R1, IA64_OPND_IMM14, IA64_OPND_R3}, 0, 0, NULL},
     {"break", IA64_TYPE_DYN, 0, 0, 0, {IA64_OPND_IMMU21}, 0, 0, NULL},
     {"chk.s", IA64_TYPE_DYN, 0, 0, 0, {IA64_OPND_R2, IA64_OPND_TGT25b}, 0, 0, NULL},
+    {"hint",  IA64_TYPE_DYN, 0, 0, 0, {IA64_OPND_IMMU21}, 0, 0, NULL},
     {"mov",   IA64_TYPE_DYN, 1, 0, 0, {IA64_OPND_R1,  IA64_OPND_AR3}, 0, 0, NULL},
     {"mov",   IA64_TYPE_DYN, 1, 0, 0, {IA64_OPND_AR3, IA64_OPND_IMM8}, 0, 0, NULL},
     {"mov",   IA64_TYPE_DYN, 1, 0, 0, {IA64_OPND_AR3, IA64_OPND_R2}, 0, 0, NULL},
index 41d4a0064056b7f6580f5087de31d7a2051c92a3..89dbcdee1841dbbfe7f90edfce569bd3bca4b16a 100644 (file)
@@ -36,6 +36,7 @@
 #define bXb(x) (((ia64_insn) ((x) & 0x1)) << 33)
 #define bX2(x) (((ia64_insn) ((x) & 0x3)) << 34)
 #define bX6(x) (((ia64_insn) ((x) & 0x3f)) << 27)
+#define bY(x)  (((ia64_insn) ((x) & 0x1)) << 26)
 
 #define mF2    bF2 (-1)
 #define mF4    bF4 (-1)
@@ -48,6 +49,7 @@
 #define mXb    bXb (-1)
 #define mX2    bX2 (-1)
 #define mX6    bX6 (-1)
+#define mY     bY (-1)
 
 #define OpXa(a,b)      (bOp (a) | bXa (b)), (mOp | mXa)
 #define OpXaSf(a,b,c)  (bOp (a) | bXa (b) | bSf (c)), (mOp | mXa | mSf)
@@ -69,6 +71,8 @@
        (bOp (a) | bXb (b) | bQ (c) | bSf (d)), (mOp | mXb | mQ | mSf)
 #define OpXbX6(a,b,c) \
        (bOp (a) | bXb (b) | bX6 (c)), (mOp | mXb | mX6)
+#define OpXbX6Y(a,b,c,d) \
+       (bOp (a) | bXb (b) | bX6 (c) | bY (d)), (mOp | mXb | mX6 | mY)
 #define OpXbX6F2(a,b,c,d) \
        (bOp (a) | bXb (b) | bX6 (c) | bF2 (d)), (mOp | mXb | mX6 | mF2)
 #define OpXbX6Sf(a,b,c,d) \
@@ -177,7 +181,8 @@ struct ia64_opcode ia64_opcodes_f[] =
     {"fchkf.s3",       f0, OpXbX6Sf (0, 0, 0x08, 3), {TGT25}, EMPTY},
 
     {"break.f",                f0, OpXbX6 (0, 0, 0x00), {IMMU21}, EMPTY},
-    {"nop.f",          f0, OpXbX6 (0, 0, 0x01), {IMMU21}, EMPTY},
+    {"nop.f",          f0, OpXbX6Y (0, 0, 0x01, 0), {IMMU21}, EMPTY},
+    {"hint.f",         f0, OpXbX6Y (0, 0, 0x01, 1), {IMMU21}, EMPTY},
 
     {"fprcpa.s0",      f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, EMPTY},
     {"fprcpa",         f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO, 0, NULL},
index 8de169611eff4ef07e017c127878a4bbec0dabe0..86440f7b57f6aa1ce0f1a5d3ed000833ac827857 100644 (file)
@@ -86,6 +86,8 @@
 #define OpX3(a,b)              (bOp (a) | bX3 (b)), (mOp | mX3)
 #define OpX3X6(a,b,c)          (bOp (a) | bX3 (b) | bX6(c)), \
                                (mOp | mX3 | mX6)
+#define OpX3X6Yb(a,b,c,d)      (bOp (a) | bX3 (b) | bX6(c) | bYb(d)), \
+                               (mOp | mX3 | mX6 | mYb)
 #define OpX3XbIhWh(a,b,c,d,e) \
   (bOp (a) | bX3 (b) | bXb (c) | bIh (d) | bWh (e)), \
   (mOp | mX3 | mXb | mIh | mWh)
@@ -102,7 +104,8 @@ struct ia64_opcode ia64_opcodes_i[] =
     /* I-type instruction encodings (sorted according to major opcode).  */
 
     {"break.i",        I0, OpX3X6 (0, 0, 0x00), {IMMU21}, X_IN_MLX, 0, NULL},
-    {"nop.i",  I0, OpX3X6 (0, 0, 0x01), {IMMU21}, X_IN_MLX, 0, NULL},
+    {"nop.i",  I0, OpX3X6Yb (0, 0, 0x01, 0), {IMMU21}, X_IN_MLX, 0, NULL},
+    {"hint.i", I0, OpX3X6Yb (0, 0, 0x01, 1), {IMMU21}, X_IN_MLX, 0, NULL},
     {"chk.s.i",        I0, OpX3 (0, 1), {R2, TGT25b}, EMPTY},
 
     {"mov", I, OpX3XbIhWhTag13 (0, 7, 0, 0, 1, 0), {B1, R2}, PSEUDO, 0, NULL},
index ba59d1dc4d2a6bb5937b2b345807563659f3b451..8e9454ba3c367dced6bc251b4e9ea1893fc8e989 100644 (file)
@@ -33,6 +33,8 @@
 #define bX4(x)         (((ia64_insn) ((x) & 0xf)) << 27)
 #define bX6a(x)                (((ia64_insn) ((x) & 0x3f)) << 30)
 #define bX6b(x)                (((ia64_insn) ((x) & 0x3f)) << 27)
+#define bX7(x)         (((ia64_insn) ((x) & 0x1)) << 36)       /* note: alias for bM() */
+#define bY(x)          (((ia64_insn) ((x) & 0x1)) << 26)
 #define bHint(x)       (((ia64_insn) ((x) & 0x3)) << 28)
 
 #define mM     bM (-1)
 #define mX4    bX4 (-1)
 #define mX6a   bX6a (-1)
 #define mX6b   bX6b (-1)
+#define mX7    bX7 (-1)
+#define mY     bY (-1)
 #define mHint  bHint (-1)
 
 #define OpX3(a,b)              (bOp (a) | bX3 (b)), (mOp | mX3)
 #define OpX3X6b(a,b,c)                 (bOp (a) | bX3 (b) | bX6b (c)), \
                                (mOp | mX3 | mX6b)
+#define OpX3X6bX7(a,b,c,d)     (bOp (a) | bX3 (b) | bX6b (c) | bX7 (d)), \
+                               (mOp | mX3 | mX6b | mX7)
 #define OpX3X4(a,b,c)          (bOp (a) | bX3 (b) | bX4 (c)), \
                                (mOp | mX3 | mX4)
 #define OpX3X4X2(a,b,c,d)      (bOp (a) | bX3 (b) | bX4 (c) | bX2 (d)), \
                                (mOp | mX3 | mX4 | mX2)
+#define OpX3X4X2Y(a,b,c,d,e)   (bOp (a) | bX3 (b) | bX4 (c) | bX2 (d) | bY (e)), \
+                               (mOp | mX3 | mX4 | mX2 | mY)
 #define OpX6aHint(a,b,c)       (bOp (a) | bX6a (b) | bHint (c)), \
                                (mOp | mX6a | mHint)
 #define OpXX6aHint(a,b,c,d)    (bOp (a) | bX (b) | bX6a (c) | bHint (d)), \
@@ -88,7 +96,8 @@ struct ia64_opcode ia64_opcodes_m[] =
     {"mov.m",          M, OpX3X4X2 (0, 0, 8, 2), {AR3, IMM8}, EMPTY},
 
     {"break.m",                M0, OpX3X4X2 (0, 0, 0, 0), {IMMU21}, EMPTY},
-    {"nop.m",          M0, OpX3X4X2 (0, 0, 1, 0), {IMMU21}, EMPTY},
+    {"nop.m",          M0, OpX3X4X2Y (0, 0, 1, 0, 0), {IMMU21}, EMPTY},
+    {"hint.m",         M0, OpX3X4X2Y (0, 0, 1, 0, 1), {IMMU21}, EMPTY},
 
     {"sum",            M0, OpX3X4 (0, 0, 4), {IMMU24}, EMPTY},
     {"rum",            M0, OpX3X4 (0, 0, 5), {IMMU24}, EMPTY},
@@ -149,7 +158,8 @@ struct ia64_opcode ia64_opcodes_m[] =
     {"chk.s.m",        M0, OpX3 (1, 1), {R2, TGT25b}, EMPTY},
     {"chk.s",  M0, OpX3 (1, 3), {F2, TGT25b}, EMPTY},
 
-    {"fc",     M0, OpX3X6b (1, 0, 0x30), {R3}, EMPTY},
+    {"fc",     M0, OpX3X6bX7 (1, 0, 0x30, 0), {R3}, EMPTY},
+    {"fc.i",   M0, OpX3X6bX7 (1, 0, 0x30, 1), {R3}, EMPTY},
     {"ptc.e",  M0, OpX3X6b (1, 0, 0x34), {R3}, PRIV, 0, NULL},
 
     /* integer load */
@@ -165,6 +175,9 @@ struct ia64_opcode ia64_opcodes_m[] =
     {"ld8",            M, OpMXX6aHint (4, 0, 0, 0x03, 0), {R1, MR3}, EMPTY},
     {"ld8.nt1",                M, OpMXX6aHint (4, 0, 0, 0x03, 1), {R1, MR3}, EMPTY},
     {"ld8.nta",                M, OpMXX6aHint (4, 0, 0, 0x03, 3), {R1, MR3}, EMPTY},
+    {"ld16",           M2, OpMXX6aHint (4, 0, 1, 0x28, 0), {R1, AR_CSD, MR3}, EMPTY},
+    {"ld16.nt1",       M2, OpMXX6aHint (4, 0, 1, 0x28, 1), {R1, AR_CSD, MR3}, EMPTY},
+    {"ld16.nta",       M2, OpMXX6aHint (4, 0, 1, 0x28, 3), {R1, AR_CSD, MR3}, EMPTY},
     {"ld1.s",          M, OpMXX6aHint (4, 0, 0, 0x04, 0), {R1, MR3}, EMPTY},
     {"ld1.s.nt1",      M, OpMXX6aHint (4, 0, 0, 0x04, 1), {R1, MR3}, EMPTY},
     {"ld1.s.nta",      M, OpMXX6aHint (4, 0, 0, 0x04, 3), {R1, MR3}, EMPTY},
@@ -225,6 +238,9 @@ struct ia64_opcode ia64_opcodes_m[] =
     {"ld8.acq",                M, OpMXX6aHint (4, 0, 0, 0x17, 0), {R1, MR3}, EMPTY},
     {"ld8.acq.nt1",    M, OpMXX6aHint (4, 0, 0, 0x17, 1), {R1, MR3}, EMPTY},
     {"ld8.acq.nta",    M, OpMXX6aHint (4, 0, 0, 0x17, 3), {R1, MR3}, EMPTY},
+    {"ld16.acq",       M2, OpMXX6aHint (4, 0, 1, 0x2c, 0), {R1, AR_CSD, MR3}, EMPTY},
+    {"ld16.acq.nt1",   M2, OpMXX6aHint (4, 0, 1, 0x2c, 1), {R1, AR_CSD, MR3}, EMPTY},
+    {"ld16.acq.nta",   M2, OpMXX6aHint (4, 0, 1, 0x2c, 3), {R1, AR_CSD, MR3}, EMPTY},
     {"ld8.fill",       M, OpMXX6aHint (4, 0, 0, 0x1b, 0), {R1, MR3}, EMPTY},
     {"ld8.fill.nt1",   M, OpMXX6aHint (4, 0, 0, 0x1b, 1), {R1, MR3}, EMPTY},
     {"ld8.fill.nta",   M, OpMXX6aHint (4, 0, 0, 0x1b, 3), {R1, MR3}, EMPTY},
@@ -265,6 +281,10 @@ struct ia64_opcode ia64_opcodes_m[] =
     {"ld8.c.clr.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x2b, 1), {R1, MR3}, EMPTY},
     {"ld8.c.clr.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x2b, 3), {R1, MR3}, EMPTY},
 
+    /* Pseudo-op that generates ldxmov relocation.  */
+    {"ld8.mov",                M, OpMXX6aHint (4, 0, 0, 0x03, 0),
+     {R1, MR3, IA64_OPND_LDXMOV}, EMPTY},
+
     /* Integer load w/increment by register.  */
 #define LDINCREG(c,h) M, OpMXX6aHint (4, 1, 0, c, h), {R1, MR3, R2}, POSTINC, 0, NULL
     {"ld1",            LDINCREG (0x00, 0)},
@@ -388,6 +408,8 @@ struct ia64_opcode ia64_opcodes_m[] =
     {"st4.nta",                M, OpMXX6aHint (4, 0, 0, 0x32, 3), {MR3, R2}, EMPTY},
     {"st8",            M, OpMXX6aHint (4, 0, 0, 0x33, 0), {MR3, R2}, EMPTY},
     {"st8.nta",                M, OpMXX6aHint (4, 0, 0, 0x33, 3), {MR3, R2}, EMPTY},
+    {"st16",           M, OpMXX6aHint (4, 0, 1, 0x30, 0), {MR3, R2, AR_CSD}, EMPTY},
+    {"st16.nta",       M, OpMXX6aHint (4, 0, 1, 0x30, 3), {MR3, R2, AR_CSD}, EMPTY},
     {"st1.rel",                M, OpMXX6aHint (4, 0, 0, 0x34, 0), {MR3, R2}, EMPTY},
     {"st1.rel.nta",    M, OpMXX6aHint (4, 0, 0, 0x34, 3), {MR3, R2}, EMPTY},
     {"st2.rel",                M, OpMXX6aHint (4, 0, 0, 0x35, 0), {MR3, R2}, EMPTY},
@@ -396,10 +418,13 @@ struct ia64_opcode ia64_opcodes_m[] =
     {"st4.rel.nta",    M, OpMXX6aHint (4, 0, 0, 0x36, 3), {MR3, R2}, EMPTY},
     {"st8.rel",                M, OpMXX6aHint (4, 0, 0, 0x37, 0), {MR3, R2}, EMPTY},
     {"st8.rel.nta",    M, OpMXX6aHint (4, 0, 0, 0x37, 3), {MR3, R2}, EMPTY},
+    {"st16.rel",       M, OpMXX6aHint (4, 0, 1, 0x34, 0), {MR3, R2, AR_CSD}, EMPTY},
+    {"st16.rel.nta",   M, OpMXX6aHint (4, 0, 1, 0x34, 3), {MR3, R2, AR_CSD}, EMPTY},
     {"st8.spill",      M, OpMXX6aHint (4, 0, 0, 0x3b, 0), {MR3, R2}, EMPTY},
     {"st8.spill.nta",  M, OpMXX6aHint (4, 0, 0, 0x3b, 3), {MR3, R2}, EMPTY},
 
 #define CMPXCHG(c,h)   M, OpMXX6aHint (4, 0, 1, c, h), {R1, MR3, R2, AR_CCV}, EMPTY
+#define CMPXCHG16(c,h) M, OpMXX6aHint (4, 0, 1, c, h), {R1, MR3, R2, AR_CSD, AR_CCV}, EMPTY
     {"cmpxchg1.acq",           CMPXCHG (0x00, 0)},
     {"cmpxchg1.acq.nt1",       CMPXCHG (0x00, 1)},
     {"cmpxchg1.acq.nta",       CMPXCHG (0x00, 3)},
@@ -412,6 +437,9 @@ struct ia64_opcode ia64_opcodes_m[] =
     {"cmpxchg8.acq",           CMPXCHG (0x03, 0)},
     {"cmpxchg8.acq.nt1",       CMPXCHG (0x03, 1)},
     {"cmpxchg8.acq.nta",       CMPXCHG (0x03, 3)},
+    {"cmp8xchg16.acq",         CMPXCHG16 (0x20, 0)},
+    {"cmp8xchg16.acq.nt1",     CMPXCHG16 (0x20, 1)},
+    {"cmp8xchg16.acq.nta",     CMPXCHG16 (0x20, 3)},
     {"cmpxchg1.rel",           CMPXCHG (0x04, 0)},
     {"cmpxchg1.rel.nt1",       CMPXCHG (0x04, 1)},
     {"cmpxchg1.rel.nta",       CMPXCHG (0x04, 3)},
@@ -424,7 +452,11 @@ struct ia64_opcode ia64_opcodes_m[] =
     {"cmpxchg8.rel",           CMPXCHG (0x07, 0)},
     {"cmpxchg8.rel.nt1",       CMPXCHG (0x07, 1)},
     {"cmpxchg8.rel.nta",       CMPXCHG (0x07, 3)},
+    {"cmp8xchg16.rel",         CMPXCHG16 (0x24, 0)},
+    {"cmp8xchg16.rel.nt1",     CMPXCHG16 (0x24, 1)},
+    {"cmp8xchg16.rel.nta",     CMPXCHG16 (0x24, 3)},
 #undef CMPXCHG
+#undef CMPXCHG16
     {"xchg1",            M, OpMXX6aHint (4, 0, 1, 0x08, 0), {R1, MR3, R2}, EMPTY},
     {"xchg1.nt1",        M, OpMXX6aHint (4, 0, 1, 0x08, 1), {R1, MR3, R2}, EMPTY},
     {"xchg1.nta",        M, OpMXX6aHint (4, 0, 1, 0x08, 3), {R1, MR3, R2}, EMPTY},
index 9d9a6c109cc87344909a975a9317d9deaab5619c..e1d434519aed0096e80677d1d2c2fadc14d104a4 100644 (file)
@@ -34,6 +34,7 @@
 #define bWha(x)                (((ia64_insn) ((x) & 0x3)) << 33)
 #define bX3(x)         (((ia64_insn) ((x) & 0x7)) << 33)
 #define bX6(x)         (((ia64_insn) ((x) & 0x3f)) << 27)
+#define bY(x)          (((ia64_insn) ((x) & 0x1)) << 26)
 
 #define mBtype         bBtype (-1)
 #define mD             bD (-1)
 #define mWha           bWha (-1)
 #define mX3             bX3 (-1)
 #define mX6            bX6 (-1)
+#define mY             bY (-1)
 
 #define OpX3X6(a,b,c)          (bOp (a) | bX3 (b) | bX6(c)), \
                                (mOp | mX3 | mX6)
+#define OpX3X6Y(a,b,c,d)       (bOp (a) | bX3 (b) | bX6(c) | bY(d)), \
+                               (mOp | mX3 | mX6 | mY)
 #define OpVc(a,b)              (bOp (a) | bVc (b)), (mOp | mVc)
 #define OpPaWhaD(a,b,c,d) \
        (bOp (a) | bPa (b) | bWha (c) | bD (d)), (mOp | mPa | mWha | mD)
@@ -58,8 +62,9 @@
 
 struct ia64_opcode ia64_opcodes_x[] =
   {
-    {"break.x", X0, OpX3X6 (0, 0, 0x00), {IMMU62}, 0, 0, NULL},
-    {"nop.x",   X0, OpX3X6 (0, 0, 0x01), {IMMU62}, 0, 0, NULL},
+    {"break.x",        X0, OpX3X6 (0, 0, 0x00), {IMMU62}, 0, 0, NULL},
+    {"nop.x",  X0, OpX3X6Y (0, 0, 0x01, 0), {IMMU62}, 0, 0, NULL},
+    {"hint.x", X0, OpX3X6Y (0, 0, 0x01, 1), {IMMU62}, 0, 0, NULL},
     {"movl",   X,  OpVc (6, 0), {R1, IMMU64}, 0, 0, NULL},
 #define BRL(a,b) \
       X0, OpBtypePaWhaDPr (0xC, 0, a, 0, b, 0), {TGT64}, PSEUDO, 0, NULL
index b721cb872158f83829343b21daf3c7d5bba74672..f9476d8c0f03ddd01117f7f20390827d0f257a1f 100644 (file)
@@ -44,6 +44,7 @@
 
 #define AR_CCV IA64_OPND_AR_CCV
 #define AR_PFS IA64_OPND_AR_PFS
+#define AR_CSD IA64_OPND_AR_CSD
 #define C1     IA64_OPND_C1
 #define C8     IA64_OPND_C8
 #define C16    IA64_OPND_C16
index ec35888cf482ab4f1a68e1ed834c2f35015a83fb..476721c510e9a6891c37dc31640fb7bd50201063 100644 (file)
@@ -2,8 +2,14 @@ Resource Name; Writers;        Readers;        Semantics of Dependency
 ALAT;  chk.a.clr, IC:mem-readers-alat, IC:mem-writers, IC:invala-all;  IC:mem-readers-alat, IC:mem-writers, IC:chk-a, invala.e;        none
 AR[BSP];       br.call, brl.call, br.ret, cover, IC:mov-to-AR-BSPSTORE, rfi;   br.call, brl.call, br.ia, br.ret, cover, flushrs, loadrs, IC:mov-from-AR-BSP, rfi;      impliedF
 AR[BSPSTORE];  alloc, loadrs, flushrs, IC:mov-to-AR-BSPSTORE;  alloc, br.ia, flushrs, IC:mov-from-AR-BSPSTORE; impliedF
+AR[CFLG];      IC:mov-to-AR-CFLG;      br.ia, IC:mov-from-AR-CFLG;     impliedF
 AR[CCV];       IC:mov-to-AR-CCV;       br.ia, IC:cmpxchg, IC:mov-from-AR-CCV;  impliedF
+AR[CSD];       ld16, IC:mov-to-AR-CSD; br.ia, cmp8xchg16, IC:mov-from-AR-CSD, st16;    impliedF
 AR[EC];        IC:mod-sched-brs, br.ret, IC:mov-to-AR-EC;      br.call, brl.call, br.ia, IC:mod-sched-brs, IC:mov-from-AR-EC;  impliedF
+AR[EFLAG];     IC:mov-to-AR-EFLAG;     br.ia, IC:mov-from-AR-EFLAG;    impliedF
+AR[FCR];       IC:mov-to-AR-FCR;       br.ia, IC:mov-from-AR-FCR;      impliedF
+AR[FDR];       IC:mov-to-AR-FDR;       br.ia, IC:mov-from-AR-FDR;      impliedF
+AR[FIR];       IC:mov-to-AR-FIR;       br.ia, IC:mov-from-AR-FIR;      impliedF
 AR[FPSR].sf0.controls; IC:mov-to-AR-FPSR, fsetc.s0;    br.ia, IC:fp-arith-s0, IC:fcmp-s0, IC:fpcmp-s0, fsetc, IC:mov-from-AR-FPSR;     impliedF
 AR[FPSR].sf1.controls; IC:mov-to-AR-FPSR, fsetc.s1;    br.ia, IC:fp-arith-s1, IC:fcmp-s1, IC:fpcmp-s1, IC:mov-from-AR-FPSR;    impliedF
 AR[FPSR].sf2.controls; IC:mov-to-AR-FPSR, fsetc.s2;    br.ia, IC:fp-arith-s2, IC:fcmp-s2, IC:fpcmp-s2, IC:mov-from-AR-FPSR;    impliedF
@@ -14,6 +20,7 @@ AR[FPSR].sf2.flags;   IC:fp-arith-s2, fclrf.s2, IC:fcmp-s2, IC:fpcmp-s2, IC:mov-to
 AR[FPSR].sf3.flags;    IC:fp-arith-s3, fclrf.s3, IC:fcmp-s3, IC:fpcmp-s3, IC:mov-to-AR-FPSR;   br.ia, fchkf.s3, IC:mov-from-AR-FPSR;   impliedF
 AR[FPSR].traps;        IC:mov-to-AR-FPSR;      br.ia, IC:fp-arith, fchkf, fcmp, fpcmp, IC:mov-from-AR-FPSR;    impliedF
 AR[FPSR].rv;   IC:mov-to-AR-FPSR;      br.ia, IC:fp-arith, fchkf, fcmp, fpcmp, IC:mov-from-AR-FPSR;    impliedF
+AR[FSR];       IC:mov-to-AR-FSR;       br.ia, IC:mov-from-AR-FSR;      impliedF
 AR[ITC];       IC:mov-to-AR-ITC;       br.ia, IC:mov-from-AR-ITC;      impliedF
 AR[K%], % in 0 - 7;    IC:mov-to-AR-K+1;       br.ia, IC:mov-from-AR-K+1;      impliedF
 AR[LC];        IC:mod-sched-brs-counted, IC:mov-to-AR-LC;      br.ia, IC:mod-sched-brs-counted, IC:mov-from-AR-LC;     impliedF
@@ -22,6 +29,7 @@ AR[PFS];      IC:mov-to-AR-PFS;       alloc, br.ia, epc, IC:mov-from-AR-PFS;  impliedF
 AR[PFS];       IC:mov-to-AR-PFS;       br.ret; none
 AR[RNAT];      alloc, flushrs, loadrs, IC:mov-to-AR-RNAT, IC:mov-to-AR-BSPSTORE;       alloc, br.ia, flushrs, loadrs, IC:mov-from-AR-RNAT;     impliedF
 AR[RSC];       IC:mov-to-AR-RSC;       alloc, br.ia, flushrs, loadrs, IC:mov-from-AR-RSC, IC:mov-from-AR-BSPSTORE, IC:mov-to-AR-RNAT, IC:mov-from-AR-RNAT, IC:mov-to-AR-BSPSTORE;      impliedF
+AR[SSD];       IC:mov-to-AR-SSD;       br.ia, IC:mov-from-AR-SSD;      impliedF
 AR[UNAT]{%}, % in 0 - 63;      IC:mov-to-AR-UNAT, st8.spill;   br.ia, ld8.fill, IC:mov-from-AR-UNAT;   impliedF
 AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111;     IC:none;        br.ia, IC:mov-from-AR-rv+1;     none
 AR%, % in 48-63, 112-127;      IC:mov-to-AR-ig+1;      br.ia, IC:mov-from-AR-ig+1;     impliedF
index c8a3365b1cdb42c0291ff1e7c07b53e1c053ae8a..98daebfc622751c3afb2f50f6ffc89bf5dfc7248 100644 (file)
@@ -3,7 +3,13 @@ ALAT;  IC:mem-readers-alat, IC:mem-writers, chk.a.clr, IC:invala-all;  IC:mem-read
 AR[BSP];       br.call, brl.call, br.ret, cover, IC:mov-to-AR-BSPSTORE, rfi;   br.call, brl.call, br.ret, cover, IC:mov-to-AR-BSPSTORE, rfi;   impliedF
 AR[BSPSTORE];  alloc, loadrs, flushrs, IC:mov-to-AR-BSPSTORE;  alloc, loadrs, flushrs, IC:mov-to-AR-BSPSTORE;  impliedF
 AR[CCV];       IC:mov-to-AR-CCV;       IC:mov-to-AR-CCV;       impliedF
+AR[CFLG];      IC:mov-to-AR-CFLG;      IC:mov-to-AR-CFLG;      impliedF
+AR[CSD];       ld16, IC:mov-to-AR-CSD; ld16, IC:mov-to-AR-CSD; impliedF
 AR[EC];        br.ret, IC:mod-sched-brs, IC:mov-to-AR-EC;      br.ret, IC:mod-sched-brs, IC:mov-to-AR-EC;      impliedF
+AR[EFLAG];     mov-to-AR-EFLAG;        mov-to-AR-EFLAG;        impliedF
+AR[FCR];       mov-to-AR-FCR;  mov-to-AR-FCR;  impliedF
+AR[FDR];       mov-to-AR-FDR;  mov-to-AR-FDR;  impliedF
+AR[FIR];       mov-to-AR-FIR;  mov-to-AR-FIR;  impliedF
 AR[FPSR].sf0.controls; IC:mov-to-AR-FPSR, fsetc.s0;    IC:mov-to-AR-FPSR, fsetc.s0;    impliedF
 AR[FPSR].sf1.controls; IC:mov-to-AR-FPSR, fsetc.s1;    IC:mov-to-AR-FPSR, fsetc.s1;    impliedF
 AR[FPSR].sf2.controls; IC:mov-to-AR-FPSR, fsetc.s2;    IC:mov-to-AR-FPSR, fsetc.s2;    impliedF
@@ -18,6 +24,7 @@ AR[FPSR].sf3.flags;   IC:fp-arith-s3, IC:fcmp-s3, IC:fpcmp-s3;        IC:fp-arith-s3, IC:
 AR[FPSR].sf3.flags;    fclrf.s3, IC:fcmp-s3, IC:fp-arith-s3, IC:fpcmp-s3, IC:mov-to-AR-FPSR;   fclrf.s3, IC:mov-to-AR-FPSR;    impliedF
 AR[FPSR].rv;   IC:mov-to-AR-FPSR;      IC:mov-to-AR-FPSR;      impliedF
 AR[FPSR].traps;        IC:mov-to-AR-FPSR;      IC:mov-to-AR-FPSR;      impliedF
+AR[FSR];       IC:mov-to-AR-FSR;       IC:mov-to-AR-FSR;       impliedF
 AR[ITC];       IC:mov-to-AR-ITC;       IC:mov-to-AR-ITC;       impliedF
 AR[K%], % in 0 - 7;    IC:mov-to-AR-K+1;       IC:mov-to-AR-K+1;       impliedF
 AR[LC];        IC:mod-sched-brs-counted, IC:mov-to-AR-LC;      IC:mod-sched-brs-counted, IC:mov-to-AR-LC;      impliedF
index c2163b0ceed66d1014c063e4c09b5b5b5741e55a..6a1653b014b120f20156b676f2b6b7b299a87e38 100644 (file)
@@ -49,6 +49,17 @@ static const char * parse_insn_normal
 
 /* -- asm.c */
 
+#define PARSE_FUNC_DECL(name) \
+static const char *name PARAMS ((CGEN_CPU_DESC, const char **, int, long *))
+
+PARSE_FUNC_DECL (parse_fr);
+PARSE_FUNC_DECL (parse_addr16);
+PARSE_FUNC_DECL (parse_addr16_p);
+PARSE_FUNC_DECL (parse_addr16_cjp);
+PARSE_FUNC_DECL (parse_lit8);
+PARSE_FUNC_DECL (parse_bit3);
+
+
 static const char *
 parse_fr (cd, strp, opindex, valuep)
      CGEN_CPU_DESC cd;
@@ -57,12 +68,12 @@ parse_fr (cd, strp, opindex, valuep)
      long *valuep;
 {
   const char *errmsg;
-  char *old_strp;
+  const char *old_strp;
   char *afteroffset; 
   enum cgen_parse_operand_result result_type;
   bfd_vma value;
   extern CGEN_KEYWORD ip2k_cgen_opval_register_names;
-  long tempvalue;
+  bfd_vma tempvalue;
 
   old_strp = *strp;
   afteroffset = NULL; 
@@ -71,36 +82,37 @@ parse_fr (cd, strp, opindex, valuep)
   /* Check here to see if you're about to try parsing a w as the first arg */
   /* and return an error if you are.                                       */
   if ( (strncmp(*strp,"w",1)==0) || (strncmp(*strp,"W",1)==0) )
-  {
-     (*strp)++;
-
-     if ( (strncmp(*strp,",",1)==0) || isspace(**strp) )
-     {
-        /* We've been passed a w.  Return with an error message so that  */
-        /* cgen will try the next parsing option.                        */
-        errmsg = _("W keyword invalid in FR operand slot.");
-        return errmsg;
-     }
-     *strp = old_strp;
-  }
+    {
+      (*strp)++;
+
+      if ( (strncmp(*strp,",",1)==0) || ISSPACE(**strp) )
+       {
+         /* We've been passed a w.  Return with an error message so that  */
+         /* cgen will try the next parsing option.                        */
+         errmsg = _("W keyword invalid in FR operand slot.");
+         return errmsg;
+       }
+      *strp = old_strp;
+    }
 
 
   /* Attempt parse as register keyword. */
   /* old_strp = *strp; */
 
-  errmsg = cgen_parse_keyword (cd, strp, & ip2k_cgen_opval_register_names, valuep);
+  errmsg = cgen_parse_keyword (cd, strp, & ip2k_cgen_opval_register_names,
+                              valuep);
   if ( *strp != NULL )
-  if (errmsg == NULL)
-    return errmsg;
+    if (errmsg == NULL)
+      return errmsg;
 
   /* Attempt to parse for "(IP)" */
   afteroffset = strstr(*strp,"(IP)");
 
   if ( afteroffset == NULL)
-  {
-     /* Make sure it's not in lower case */
-     afteroffset = strstr(*strp,"(ip)");
-  }
+    {
+      /* Make sure it's not in lower case */
+      afteroffset = strstr(*strp,"(ip)");
+    }
 
   if ( afteroffset != NULL )
     {
@@ -127,42 +139,44 @@ parse_fr (cd, strp, opindex, valuep)
   afteroffset = strstr(*strp,"(DP)");
 
   if ( afteroffset == NULL)
-  {
-     /* Maybe it's in lower case */
-     afteroffset = strstr(*strp,"(dp)");
-  }
+    {
+      /* Maybe it's in lower case */
+      afteroffset = strstr(*strp,"(dp)");
+    }
 
   if ( afteroffset != NULL )
-  {
-     if ( afteroffset == *strp )
-     {
-        /* No offset present. Use 0 by default. */
-        tempvalue = 0;
-        errmsg = NULL;
-     }
-     else
-     {
-       errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_IP2K_FR_OFFSET,
-                                   & result_type, & tempvalue);
-     }
-
-     if (errmsg == NULL)
-     {
-        if ( (tempvalue >= 0) && (tempvalue <= 127) )
-        {
-           /* Value is ok.  Fix up the first 2 bits and return */       
-           *valuep = 0x0100 | tempvalue;
-           *strp += 4; /* skip over the (DP) in *strp */
-           return errmsg;
-        } else
-        {
-           /* Found something there in front of (DP) but it's out of range. */
-           errmsg = _("(DP) offset out of range.");
-           return errmsg;
-        }
-        
-     }
-  }
+    {
+      if ( afteroffset == *strp )
+       {
+         /* No offset present. Use 0 by default. */
+         tempvalue = 0;
+         errmsg = NULL;
+       }
+      else
+       {
+         errmsg = cgen_parse_address (cd, strp, opindex,
+                                      BFD_RELOC_IP2K_FR_OFFSET,
+                                      & result_type, & tempvalue);
+       }
+
+      if (errmsg == NULL)
+       {
+         if (tempvalue <= 127)
+           {
+             /* Value is ok.  Fix up the first 2 bits and return */       
+             *valuep = 0x0100 | tempvalue;
+             *strp += 4; /* skip over the (DP) in *strp */
+             return errmsg;
+           }
+         else
+           {
+             /* Found something there in front of (DP) but it's out
+                of range. */
+             errmsg = _("(DP) offset out of range.");
+             return errmsg;
+           }
+       }
+    }
 
 
   /* Attempt to parse for SP. ex: mov w, offset(SP)  */
@@ -172,41 +186,44 @@ parse_fr (cd, strp, opindex, valuep)
   afteroffset = strstr(*strp,"(SP)");
 
   if (afteroffset == NULL)
-  {
-     /* Maybe it's in lower case. */
-     afteroffset = strstr(*strp, "(sp)");
-  }
+    {
+      /* Maybe it's in lower case. */
+      afteroffset = strstr(*strp, "(sp)");
+    }
 
   if ( afteroffset != NULL )
-  {
-     if ( afteroffset ==  *strp )
-     {
-        /* No offset present. Use 0 by default. */
-        tempvalue = 0;
-        errmsg = NULL;
-     }
-     else
-     {
-       errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_IP2K_FR_OFFSET,
-                                   & result_type, & tempvalue);
-     }
-     if (errmsg == NULL)
-     {
-        if ( (tempvalue >= 0) && (tempvalue <= 127) )
-        {
-           /* Value is ok.  Fix up the first 2 bits and return */
-           *valuep = 0x0180 | tempvalue;
-           *strp += 4; /* skip over the (SP) in *strp */
-           return errmsg;
-        } else
-        {
-           /* Found something there in front of (SP) but it's out of range. */
-           errmsg = _("(SP) offset out of range.");
-           return errmsg;
-        }
+    {
+      if ( afteroffset ==  *strp )
+       {
+         /* No offset present. Use 0 by default. */
+         tempvalue = 0;
+         errmsg = NULL;
+       }
+      else
+       {
+         errmsg = cgen_parse_address (cd, strp, opindex,
+                                      BFD_RELOC_IP2K_FR_OFFSET,
+                                      & result_type, & tempvalue);
+       }
+      if (errmsg == NULL)
+       {
+         if (tempvalue <= 127)
+           {
+             /* Value is ok.  Fix up the first 2 bits and return */
+             *valuep = 0x0180 | tempvalue;
+             *strp += 4; /* skip over the (SP) in *strp */
+             return errmsg;
+           }
+         else
+           {
+             /* Found something there in front of (SP) but it's out
+                of range. */
+             errmsg = _("(SP) offset out of range.");
+             return errmsg;
+           }
         
-     }
-  }
+       }
+    }
 
 
   /* Attempt to parse as an address. */
@@ -223,7 +240,8 @@ parse_fr (cd, strp, opindex, valuep)
        {
          errmsg = _("illegal use of parentheses");
         }
-      /* if a numeric value is specified, ensure that it is between 1 and 255 */
+      /* if a numeric value is specified, ensure that it is between
+        1 and 255 */
       else if (result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER)
        {
          if (value < 0x1 || value > 0xff)
@@ -243,12 +261,12 @@ parse_addr16 (cd, strp, opindex, valuep)
   const char *errmsg;
   enum cgen_parse_operand_result result_type;
   bfd_reloc_code_real_type code = BFD_RELOC_NONE;
-  long value;
+  bfd_vma value;
 
   if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16H )
-      code = BFD_RELOC_IP2K_HI8DATA;
+    code = BFD_RELOC_IP2K_HI8DATA;
   else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16L )
-      code = BFD_RELOC_IP2K_LO8DATA;
+    code = BFD_RELOC_IP2K_LO8DATA;
   else
     {
       /* Something is very wrong. opindex has to be one of the above. */
@@ -257,93 +275,94 @@ parse_addr16 (cd, strp, opindex, valuep)
     }
   
   errmsg = cgen_parse_address (cd, strp, opindex, code,
-                                  & result_type, & value);
+                              & result_type, & value);
   if (errmsg == NULL)
     {
-       /* We either have a relocation or a number now. */
+      /* We either have a relocation or a number now. */
       if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER )
-      {
-         /* We got a number back. */
-         if ( code == BFD_RELOC_IP2K_HI8DATA )
+       {
+         /* We got a number back. */
+         if ( code == BFD_RELOC_IP2K_HI8DATA )
             value >>= 8;
-         else    /* code = BFD_RELOC_IP2K_LOW8DATA */
+         else    /* code = BFD_RELOC_IP2K_LOW8DATA */
            value &= 0x00FF;
-      }   
-         *valuep = value;
-   }
+       }   
+      *valuep = value;
+    }
 
   return errmsg;
 }
 
 
- static const char *
- parse_addr16_p (cd, strp, opindex, valuep)
-      CGEN_CPU_DESC cd;
-      const char **strp;
-      int opindex;
-      long *valuep;
- {
-   const char *errmsg;
-   enum cgen_parse_operand_result result_type;
-   bfd_reloc_code_real_type code = BFD_RELOC_IP2K_PAGE3;
-   long value;
+static const char *
+parse_addr16_p (cd, strp, opindex, valuep)
+     CGEN_CPU_DESC cd;
+     const char **strp;
+     int opindex;
+     long *valuep;
+{
+  const char *errmsg;
+  enum cgen_parse_operand_result result_type;
+  bfd_reloc_code_real_type code = BFD_RELOC_IP2K_PAGE3;
+  bfd_vma value;
  
-   errmsg = cgen_parse_address (cd, strp, opindex, code,
-                                 & result_type, & value);
-   if (errmsg == NULL)
-   {
-       if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER )
-            *valuep = (value >> 13) & 0x7;
-       else if ( result_type == CGEN_PARSE_OPERAND_RESULT_QUEUED )
-            *valuep = value;
-   }
-   return errmsg; 
- }
-
-
- static const char *
- parse_addr16_cjp (cd, strp, opindex, valuep)
-      CGEN_CPU_DESC cd;
-      const char **strp;
-      int opindex;
-      long *valuep;
- {
-   const char *errmsg;
-   enum cgen_parse_operand_result result_type;
-   bfd_reloc_code_real_type code = BFD_RELOC_NONE;
-   long value;
+  errmsg = cgen_parse_address (cd, strp, opindex, code,
+                              & result_type, & value);
+  if (errmsg == NULL)
+    {
+      if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER )
+       *valuep = (value >> 13) & 0x7;
+      else if ( result_type == CGEN_PARSE_OPERAND_RESULT_QUEUED )
+       *valuep = value;
+    }
+  return errmsg; 
+}
+
+
+static const char *
+parse_addr16_cjp (cd, strp, opindex, valuep)
+     CGEN_CPU_DESC cd;
+     const char **strp;
+     int opindex;
+     long *valuep;
+{
+  const char *errmsg;
+  enum cgen_parse_operand_result result_type;
+  bfd_reloc_code_real_type code = BFD_RELOC_NONE;
+  bfd_vma value;
  
-   if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16CJP )
-      code = BFD_RELOC_IP2K_ADDR16CJP;
-   else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16P )
-      code = BFD_RELOC_IP2K_PAGE3;
-
-   errmsg = cgen_parse_address (cd, strp, opindex, code,
-                                 & result_type, & value);
-   if (errmsg == NULL)
-   {
-       if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER )
-       {
-        if ( (value & 0x1) == 0)  /* If the address is even .... */
-         {
-             if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16CJP )
+  if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16CJP )
+    code = BFD_RELOC_IP2K_ADDR16CJP;
+  else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16P )
+    code = BFD_RELOC_IP2K_PAGE3;
+
+  errmsg = cgen_parse_address (cd, strp, opindex, code,
+                              & result_type, & value);
+  if (errmsg == NULL)
+    {
+      if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER )
+       {
+         if ( (value & 0x1) == 0)  /* If the address is even .... */
+           {
+             if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16CJP )
                 *valuep = (value >> 1) & 0x1FFF;  /* Should mask be 1FFF? */
-             else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16P )
+             else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16P )
                 *valuep = (value >> 14) & 0x7;
-          }
+           }
           else
            errmsg = _("Byte address required. - must be even.");
-       }else if ( result_type == CGEN_PARSE_OPERAND_RESULT_QUEUED )
-       {
-            /* This will happen for things like (s2-s1) where s2 and s1 */
-           /* are labels.                                              */
-            *valuep = value;
-        }
+       }
+      else if ( result_type == CGEN_PARSE_OPERAND_RESULT_QUEUED )
+       {
+         /* This will happen for things like (s2-s1) where s2 and s1
+            are labels.  */
+         *valuep = value;
+       }
       else 
         errmsg = _("cgen_parse_address returned a symbol. Literal required.");
-   }
-   return errmsg; 
- }
+    }
+  return errmsg; 
+}
 
 
 static const char *
@@ -356,7 +375,7 @@ parse_lit8 (cd, strp, opindex, valuep)
   const char *errmsg;
   enum cgen_parse_operand_result result_type;
   bfd_reloc_code_real_type code = BFD_RELOC_NONE;
-  long value;
+  bfd_vma value;
 
   /* Parse %OP relocating operators. */
   if (strncmp (*strp, "%bank", 5) == 0)
@@ -444,33 +463,39 @@ parse_bit3 (cd, strp, opindex, valuep)
     }
 
   errmsg = cgen_parse_signed_integer (cd, strp, opindex, valuep);
-  if (errmsg) {
+  if (errmsg)
     return errmsg;
-  }
 
-  if (mode) {
-    value = (unsigned long) *valuep;
-    if (value == 0) {
-      errmsg = _("Attempt to find bit index of 0");
-      return errmsg;
-    }
+  if (mode)
+    {
+      value = (unsigned long) *valuep;
+      if (value == 0)
+       {
+         errmsg = _("Attempt to find bit index of 0");
+         return errmsg;
+       }
     
-    if (mode == 1) {
-      count = 31;
-      while ((value & 0x80000000) == 0) {
-        count--;
-        value <<= 1;
-      }
-    } else if (mode == 2) {
-      count = 0;
-      while ((value & 0x00000001) == 0) {
-        count++;
-        value >>= 1;
-      }
-    }
+      if (mode == 1)
+       {
+         count = 31;
+         while ((value & 0x80000000) == 0)
+           {
+             count--;
+             value <<= 1;
+           }
+       }
+      else if (mode == 2)
+       {
+         count = 0;
+         while ((value & 0x00000001) == 0)
+           {
+             count++;
+             value >>= 1;
+           }
+       }
     
-    *valuep = count;
-  }
+      *valuep = count;
+    }
 
   return errmsg;
 }
index a676e77670dc3484234fbef244f3ded13445457c..ab6f7bf732ff01131312c1810f976c528fc2cd7b 100644 (file)
@@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "ip2k-opc.h"
 #include "opintl.h"
 #include "libiberty.h"
+#include "xregex.h"
 
 /* Attributes.  */
 
@@ -347,57 +348,60 @@ const CGEN_OPERAND ip2k_cgen_operand_table[] =
 {
 /* pc: program counter */
   { "pc", IP2K_OPERAND_PC, HW_H_PC, 0, 0,
-    { 0, &(ip2k_cgen_ifld_table[0]) }, 
+    { 0, { (const PTR) &ip2k_cgen_ifld_table[0] } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* addr16cjp: 13-bit address */
   { "addr16cjp", IP2K_OPERAND_ADDR16CJP, HW_H_UINT, 12, 13,
-    { 0, &(ip2k_cgen_ifld_table[4]) }, 
+    { 0, { (const PTR) &ip2k_cgen_ifld_table[4] } }, 
     { 0|A(ABS_ADDR), { (1<<MACH_BASE) } }  },
 /* fr: register */
   { "fr", IP2K_OPERAND_FR, HW_H_REGISTERS, 8, 9,
-    { 0, &(ip2k_cgen_ifld_table[3]) }, 
+    { 0, { (const PTR) &ip2k_cgen_ifld_table[3] } }, 
     { 0|A(ABS_ADDR), { (1<<MACH_BASE) } }  },
 /* lit8: 8-bit signed literal */
   { "lit8", IP2K_OPERAND_LIT8, HW_H_SINT, 7, 8,
-    { 0, &(ip2k_cgen_ifld_table[2]) }, 
+    { 0, { (const PTR) &ip2k_cgen_ifld_table[2] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* bitno: bit number */
   { "bitno", IP2K_OPERAND_BITNO, HW_H_UINT, 11, 3,
-    { 0, &(ip2k_cgen_ifld_table[6]) }, 
+    { 0, { (const PTR) &ip2k_cgen_ifld_table[6] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* addr16p: page number */
   { "addr16p", IP2K_OPERAND_ADDR16P, HW_H_UINT, 2, 3,
-    { 0, &(ip2k_cgen_ifld_table[16]) }, 
+    { 0, { (const PTR) &ip2k_cgen_ifld_table[16] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* addr16h: high 8 bits of address */
   { "addr16h", IP2K_OPERAND_ADDR16H, HW_H_UINT, 7, 8,
-    { 0, &(ip2k_cgen_ifld_table[2]) }, 
+    { 0, { (const PTR) &ip2k_cgen_ifld_table[2] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* addr16l: low 8 bits of address */
   { "addr16l", IP2K_OPERAND_ADDR16L, HW_H_UINT, 7, 8,
-    { 0, &(ip2k_cgen_ifld_table[2]) }, 
+    { 0, { (const PTR) &ip2k_cgen_ifld_table[2] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* reti3: reti flags */
   { "reti3", IP2K_OPERAND_RETI3, HW_H_UINT, 2, 3,
-    { 0, &(ip2k_cgen_ifld_table[14]) }, 
+    { 0, { (const PTR) &ip2k_cgen_ifld_table[14] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* pabits: page bits */
   { "pabits", IP2K_OPERAND_PABITS, HW_H_PABITS, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* zbit: zero bit */
   { "zbit", IP2K_OPERAND_ZBIT, HW_H_ZBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* cbit: carry bit */
   { "cbit", IP2K_OPERAND_CBIT, HW_H_CBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* dcbit: digit carry bit */
   { "dcbit", IP2K_OPERAND_DCBIT, HW_H_DCBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0, { (1<<MACH_BASE) } }  },
-  { 0, 0, 0, 0, 0, {0, {0}} }
+/* sentinel */
+  { 0, 0, 0, 0, 0,
+    { 0, { (const PTR) 0 } },
+    { 0, { 0 } } }
 };
 
 #undef A
@@ -1178,7 +1182,7 @@ ip2k_cgen_cpu_close (cd)
      CGEN_CPU_DESC cd;
 {
   unsigned int i;
-  CGEN_INSN *insns;
+  const CGEN_INSN *insns;
 
   if (cd->macro_insn_table.init_entries)
     {
@@ -1186,7 +1190,7 @@ ip2k_cgen_cpu_close (cd)
       for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX ((insns)))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
@@ -1196,7 +1200,7 @@ ip2k_cgen_cpu_close (cd)
       for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX (insns))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
index 91aaa618ba44fc262ec9909b27e3f2114b33b30c..f33fcc05ff61d644940ebe96f7d53c7faf8ad8f1 100644 (file)
@@ -4,7 +4,8 @@
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 - the resultant file is machine generated, cgen-dis.in isn't
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and GDB, the GNU debugger.
 
@@ -31,6 +32,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #include "dis-asm.h"
 #include "bfd.h"
 #include "symcat.h"
+#include "libiberty.h"
 #include "ip2k-desc.h"
 #include "ip2k-opc.h"
 #include "opintl.h"
@@ -59,14 +61,27 @@ static int read_insn
 
 /* -- dis.c */
 
+#define PRINT_FUNC_DECL(name) \
+static void name PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int))
+
+PRINT_FUNC_DECL (print_fr);
+PRINT_FUNC_DECL (print_dollarhex);
+PRINT_FUNC_DECL (print_dollarhex8);
+PRINT_FUNC_DECL (print_dollarhex16);
+PRINT_FUNC_DECL (print_dollarhex_addr16h);
+PRINT_FUNC_DECL (print_dollarhex_addr16l);
+PRINT_FUNC_DECL (print_dollarhex_p);
+PRINT_FUNC_DECL (print_dollarhex_cj);
+PRINT_FUNC_DECL (print_decimal);
+
 static void
 print_fr (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      PTR dis_info;
      long value;
-     unsigned int attrs;
-     bfd_vma pc;
-     int length;
+     unsigned int attrs ATTRIBUTE_UNUSED;
+     bfd_vma pc ATTRIBUTE_UNUSED;
+     int length ATTRIBUTE_UNUSED;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
   const CGEN_KEYWORD_ENTRY *ke;
@@ -75,33 +90,33 @@ print_fr (cd, dis_info, value, attrs, pc, length)
   long offsetvalue;
 
   if ( value == 0 ) /* This is (IP) */
-  {
+    {
       (*info->fprintf_func) (info->stream, "%s", "(IP)");
       return;
-  }
+    }
 
   offsettest = value >> 7;
   offsetvalue = value & 0x7F;
 
   /* Check to see if first two bits are 10 -> (DP) */
   if ( offsettest == 2 )
-  {
+    {
       if ( offsetvalue == 0 )
-         (*info->fprintf_func) (info->stream, "%s","(DP)");
+       (*info->fprintf_func) (info->stream, "%s","(DP)");
       else
-         (*info->fprintf_func) (info->stream, "$%x%s",offsetvalue, "(DP)");
+       (*info->fprintf_func) (info->stream, "$%x%s",offsetvalue, "(DP)");
       return;
-  }
+    }
 
   /* Check to see if first two bits are 11 -> (SP) */
   if ( offsettest == 3 )
-  {
+    {
       if ( offsetvalue == 0 )
-         (*info->fprintf_func) (info->stream, "%s", "(SP)");
+       (*info->fprintf_func) (info->stream, "%s", "(SP)");
       else
-         (*info->fprintf_func) (info->stream, "$%x%s", offsetvalue,"(SP)");
+       (*info->fprintf_func) (info->stream, "$%x%s", offsetvalue,"(SP)");
       return;
-  }
+    }
 
   /* Attempt to print as a register keyword. */
   ke = cgen_keyword_lookup_value (& ip2k_cgen_opval_register_names, value);
@@ -117,12 +132,12 @@ print_fr (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_dollarhex (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      PTR dis_info;
      long value;
-     unsigned int attrs;
-     bfd_vma pc;
-     int length;
+     unsigned int attrs ATTRIBUTE_UNUSED;
+     bfd_vma pc ATTRIBUTE_UNUSED;
+     int length ATTRIBUTE_UNUSED;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -131,12 +146,12 @@ print_dollarhex (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_dollarhex8 (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      PTR dis_info;
      long value;
-     unsigned int attrs;
-     bfd_vma pc;
-     int length;
+     unsigned int attrs ATTRIBUTE_UNUSED;
+     bfd_vma pc ATTRIBUTE_UNUSED;
+     int length ATTRIBUTE_UNUSED;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -145,12 +160,12 @@ print_dollarhex8 (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_dollarhex16 (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      PTR dis_info;
      long value;
-     unsigned int attrs;
-     bfd_vma pc;
-     int length;
+     unsigned int attrs ATTRIBUTE_UNUSED;
+     bfd_vma pc ATTRIBUTE_UNUSED;
+     int length ATTRIBUTE_UNUSED;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -159,12 +174,12 @@ print_dollarhex16 (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_dollarhex_addr16h (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      PTR dis_info;
      long value;
-     unsigned int attrs;
-     bfd_vma pc;
-     int length;
+     unsigned int attrs ATTRIBUTE_UNUSED;
+     bfd_vma pc ATTRIBUTE_UNUSED;
+     int length ATTRIBUTE_UNUSED;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -177,12 +192,12 @@ print_dollarhex_addr16h (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_dollarhex_addr16l (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      PTR dis_info;
      long value;
-     unsigned int attrs;
-     bfd_vma pc;
-     int length;
+     unsigned int attrs ATTRIBUTE_UNUSED;
+     bfd_vma pc ATTRIBUTE_UNUSED;
+     int length ATTRIBUTE_UNUSED;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -191,12 +206,12 @@ print_dollarhex_addr16l (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_dollarhex_p (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      PTR dis_info;
      long value;
-     unsigned int attrs;
-     bfd_vma pc;
-     int length;
+     unsigned int attrs ATTRIBUTE_UNUSED;
+     bfd_vma pc ATTRIBUTE_UNUSED;
+     int length ATTRIBUTE_UNUSED;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -207,12 +222,12 @@ print_dollarhex_p (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_dollarhex_cj (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      PTR dis_info;
      long value;
-     unsigned int attrs;
-     bfd_vma pc;
-     int length;
+     unsigned int attrs ATTRIBUTE_UNUSED;
+     bfd_vma pc ATTRIBUTE_UNUSED;
+     int length ATTRIBUTE_UNUSED;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
@@ -223,12 +238,12 @@ print_dollarhex_cj (cd, dis_info, value, attrs, pc, length)
 
 static void
 print_decimal (cd, dis_info, value, attrs, pc, length)
-     CGEN_CPU_DESC cd;
+     CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
      PTR dis_info;
      long value;
-     unsigned int attrs;
-     bfd_vma pc;
-     int length;
+     unsigned int attrs ATTRIBUTE_UNUSED;
+     bfd_vma pc ATTRIBUTE_UNUSED;
+     int length ATTRIBUTE_UNUSED;
 {
   disassemble_info *info = (disassemble_info *) dis_info;
 
index 311a0f76d96ade74a95c721d922e654a11baa5d3..691cc7873519bc4b671a675534eefc767015a116 100644 (file)
@@ -32,6 +32,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 /* -- opc.c */
 
+#include "safe-ctype.h"
+
 /* A better hash function for instruction mnemonics. */
 unsigned int
 ip2k_asm_hash (insn)
@@ -40,8 +42,8 @@ ip2k_asm_hash (insn)
   unsigned int hash;
   const char* m = insn;
 
-  for (hash = 0; *m && !isspace(*m); m++)
-    hash = (hash * 23) ^ (0x1F & tolower(*m));
+  for (hash = 0; *m && !ISSPACE(*m); m++)
+    hash = (hash * 23) ^ (0x1F & TOLOWER(*m));
 
   /* printf ("%s %d\n", insn, (hash % CGEN_ASM_HASH_SIZE)); */
 
@@ -49,6 +51,20 @@ ip2k_asm_hash (insn)
 }
 
 
+/* Special check to ensure that instruction exists for given machine. */
+int
+ip2k_cgen_insn_supported (cd, insn)
+     CGEN_CPU_DESC cd;
+     const CGEN_INSN *insn;
+{
+  int machs = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_MACH);
+
+  /* No mach attribute?  Assume it's supported for all machs.  */
+  if (machs == 0)
+    return 1;
+  
+  return ((machs & cd->machs) != 0);
+}
 
 \f
 /* -- asm.c */
index 0f8df98491e51f71f6b35dd52e26b6291feabc5b..2f8a2e13eeaecb5a1e0233c928766594a9973d15 100644 (file)
@@ -41,24 +41,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define CGEN_ASM_HASH_SIZE 127
 #define CGEN_ASM_HASH(insn) ip2k_asm_hash(insn)
 
-extern unsigned int ip2k_asm_hash (const char *insn);
-
-
-/* Special check to ensure that instruction exists for given machine. */
-static int
-ip2k_cgen_insn_supported (cd, insn)
-     CGEN_CPU_DESC cd;
-     CGEN_INSN *insn;
-{
-  int machs = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_MACH);
-
-  /* No mach attribute?  Assume it's supported for all machs.  */
-  if (machs == 0)
-    return 1;
-  
-  return ((machs & cd->machs) != 0);
-}
-
+extern unsigned int ip2k_asm_hash PARAMS ((const char *insn));
+extern int ip2k_cgen_insn_supported
+  PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *));
 \f
 /* -- opc.c */
 /* Enum declaration for ip2k instruction types.  */
index de7bde44fdc9293a7a56a22085a65ecaeb0e27f9..98fecb2650b92bf3fd30e79b073f472eeb4853cb 100644 (file)
@@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "m32r-opc.h"
 #include "opintl.h"
 #include "libiberty.h"
+#include "xregex.h"
 
 /* Attributes.  */
 
@@ -319,109 +320,112 @@ const CGEN_OPERAND m32r_cgen_operand_table[] =
 {
 /* pc: program counter */
   { "pc", M32R_OPERAND_PC, HW_H_PC, 0, 0,
-    { 0, &(m32r_cgen_ifld_table[0]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[0] } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* sr: source register */
   { "sr", M32R_OPERAND_SR, HW_H_GR, 12, 4,
-    { 0, &(m32r_cgen_ifld_table[6]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[6] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* dr: destination register */
   { "dr", M32R_OPERAND_DR, HW_H_GR, 4, 4,
-    { 0, &(m32r_cgen_ifld_table[5]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[5] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* src1: source register 1 */
   { "src1", M32R_OPERAND_SRC1, HW_H_GR, 4, 4,
-    { 0, &(m32r_cgen_ifld_table[5]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[5] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* src2: source register 2 */
   { "src2", M32R_OPERAND_SRC2, HW_H_GR, 12, 4,
-    { 0, &(m32r_cgen_ifld_table[6]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[6] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* scr: source control register */
   { "scr", M32R_OPERAND_SCR, HW_H_CR, 12, 4,
-    { 0, &(m32r_cgen_ifld_table[6]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[6] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* dcr: destination control register */
   { "dcr", M32R_OPERAND_DCR, HW_H_CR, 4, 4,
-    { 0, &(m32r_cgen_ifld_table[5]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[5] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* simm8: 8 bit signed immediate */
   { "simm8", M32R_OPERAND_SIMM8, HW_H_SINT, 8, 8,
-    { 0, &(m32r_cgen_ifld_table[7]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[7] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* simm16: 16 bit signed immediate */
   { "simm16", M32R_OPERAND_SIMM16, HW_H_SINT, 16, 16,
-    { 0, &(m32r_cgen_ifld_table[8]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[8] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* uimm4: 4 bit trap number */
   { "uimm4", M32R_OPERAND_UIMM4, HW_H_UINT, 12, 4,
-    { 0, &(m32r_cgen_ifld_table[10]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[10] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* uimm5: 5 bit shift count */
   { "uimm5", M32R_OPERAND_UIMM5, HW_H_UINT, 11, 5,
-    { 0, &(m32r_cgen_ifld_table[11]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[11] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* uimm16: 16 bit unsigned immediate */
   { "uimm16", M32R_OPERAND_UIMM16, HW_H_UINT, 16, 16,
-    { 0, &(m32r_cgen_ifld_table[12]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[12] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_BASE) } }  },
 /* imm1: 1 bit immediate */
   { "imm1", M32R_OPERAND_IMM1, HW_H_UINT, 15, 1,
-    { 0, &(m32r_cgen_ifld_table[25]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[25] } }, 
     { 0|A(HASH_PREFIX), { (1<<MACH_M32RX) } }  },
 /* accd: accumulator destination register */
   { "accd", M32R_OPERAND_ACCD, HW_H_ACCUMS, 4, 2,
-    { 0, &(m32r_cgen_ifld_table[22]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[22] } }, 
     { 0, { (1<<MACH_M32RX) } }  },
 /* accs: accumulator source register */
   { "accs", M32R_OPERAND_ACCS, HW_H_ACCUMS, 12, 2,
-    { 0, &(m32r_cgen_ifld_table[21]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[21] } }, 
     { 0, { (1<<MACH_M32RX) } }  },
 /* acc: accumulator reg (d) */
   { "acc", M32R_OPERAND_ACC, HW_H_ACCUMS, 8, 1,
-    { 0, &(m32r_cgen_ifld_table[20]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[20] } }, 
     { 0, { (1<<MACH_M32RX) } }  },
 /* hash: # prefix */
   { "hash", M32R_OPERAND_HASH, HW_H_SINT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* hi16: high 16 bit immediate, sign optional */
   { "hi16", M32R_OPERAND_HI16, HW_H_HI16, 16, 16,
-    { 0, &(m32r_cgen_ifld_table[14]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[14] } }, 
     { 0|A(SIGN_OPT), { (1<<MACH_BASE) } }  },
 /* slo16: 16 bit signed immediate, for low() */
   { "slo16", M32R_OPERAND_SLO16, HW_H_SLO16, 16, 16,
-    { 0, &(m32r_cgen_ifld_table[8]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[8] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ulo16: 16 bit unsigned immediate, for low() */
   { "ulo16", M32R_OPERAND_ULO16, HW_H_ULO16, 16, 16,
-    { 0, &(m32r_cgen_ifld_table[12]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[12] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* uimm24: 24 bit address */
   { "uimm24", M32R_OPERAND_UIMM24, HW_H_ADDR, 8, 24,
-    { 0, &(m32r_cgen_ifld_table[13]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[13] } }, 
     { 0|A(HASH_PREFIX)|A(RELOC)|A(ABS_ADDR), { (1<<MACH_BASE) } }  },
 /* disp8: 8 bit displacement */
   { "disp8", M32R_OPERAND_DISP8, HW_H_IADDR, 8, 8,
-    { 0, &(m32r_cgen_ifld_table[15]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[15] } }, 
     { 0|A(RELAX)|A(RELOC)|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* disp16: 16 bit displacement */
   { "disp16", M32R_OPERAND_DISP16, HW_H_IADDR, 16, 16,
-    { 0, &(m32r_cgen_ifld_table[16]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[16] } }, 
     { 0|A(RELOC)|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* disp24: 24 bit displacement */
   { "disp24", M32R_OPERAND_DISP24, HW_H_IADDR, 8, 24,
-    { 0, &(m32r_cgen_ifld_table[17]) }, 
+    { 0, { (const PTR) &m32r_cgen_ifld_table[17] } }, 
     { 0|A(RELAX)|A(RELOC)|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* condbit: condition bit */
   { "condbit", M32R_OPERAND_CONDBIT, HW_H_COND, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* accum: accumulator */
   { "accum", M32R_OPERAND_ACCUM, HW_H_ACCUM, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
-  { 0, 0, 0, 0, 0, {0, {0}} }
+/* sentinel */
+  { 0, 0, 0, 0, 0,
+    { 0, { (const PTR) 0 } },
+    { 0, { 0 } } }
 };
 
 #undef A
@@ -1442,7 +1446,7 @@ m32r_cgen_cpu_close (cd)
      CGEN_CPU_DESC cd;
 {
   unsigned int i;
-  CGEN_INSN *insns;
+  const CGEN_INSN *insns;
 
   if (cd->macro_insn_table.init_entries)
     {
@@ -1450,7 +1454,7 @@ m32r_cgen_cpu_close (cd)
       for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX ((insns)))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
@@ -1460,7 +1464,7 @@ m32r_cgen_cpu_close (cd)
       for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX (insns))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
index 07560e15ff5059d7019dc9c8abc1f6e97d35e625..5688049ef16e6352715f2090b658525d71aac35c 100644 (file)
@@ -4,7 +4,8 @@
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 - the resultant file is machine generated, cgen-dis.in isn't
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and GDB, the GNU debugger.
 
@@ -31,6 +32,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #include "dis-asm.h"
 #include "bfd.h"
 #include "symcat.h"
+#include "libiberty.h"
 #include "m32r-desc.h"
 #include "m32r-opc.h"
 #include "opintl.h"
index bcd3ee5103fd0888593f610f53e66d6b8b64284c..cf42b6468c2d020ef31af46bdc8c1ab8637d6af3 100644 (file)
@@ -22,6 +22,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "opcode/m68hc11.h"
 #include "dis-asm.h"
 
+#define PC_REGNUM 3
+
 static const char *const reg_name[] = {
   "X", "Y", "SP", "PC"
 };
@@ -40,7 +42,7 @@ static const char *const reg_dst_table[] = {
 static int read_memory
   PARAMS ((bfd_vma, bfd_byte *, int, struct disassemble_info *));
 static int print_indexed_operand
-  PARAMS ((bfd_vma, struct disassemble_info *, int*, int));
+  PARAMS ((bfd_vma, struct disassemble_info *, int*, int, int, bfd_vma));
 static int print_insn
   PARAMS ((bfd_vma, struct disassemble_info *, int));
 
@@ -68,11 +70,13 @@ read_memory (memaddr, buffer, size, info)
 /* Read the 68HC12 indexed operand byte and print the corresponding mode.
    Returns the number of bytes read or -1 if failure.  */
 static int
-print_indexed_operand (memaddr, info, indirect, mov_insn)
+print_indexed_operand (memaddr, info, indirect, mov_insn, pc_offset, endaddr)
      bfd_vma memaddr;
      struct disassemble_info *info;
      int *indirect;
      int mov_insn;
+     int pc_offset;
+     bfd_vma endaddr;
 {
   bfd_byte buffer[4];
   int reg;
@@ -96,8 +100,18 @@ print_indexed_operand (memaddr, info, indirect, mov_insn)
       sval = (buffer[0] & 0x1f);
       if (sval & 0x10)
        sval |= 0xfff0;
+      /* 68HC12 requires an adjustment for movb/movw pc relative modes.  */
+      if (reg == PC_REGNUM && info->mach == bfd_mach_m6812 && mov_insn)
+        sval += pc_offset;
       (*info->fprintf_func) (info->stream, "%d,%s",
                             (int) sval, reg_name[reg]);
+
+      if (reg == PC_REGNUM)
+        {
+          (* info->fprintf_func) (info->stream, " {");
+          (* info->print_address_func) (endaddr + sval, info);
+          (* info->fprintf_func) (info->stream, "}");
+        }
     }
 
   /* Auto pre/post increment/decrement.  */
@@ -147,6 +161,8 @@ print_indexed_operand (memaddr, info, indirect, mov_insn)
       if (indirect)
         *indirect = 1;
     }
+
+  /* n,r with 9 and 16 bit signed constant.  */
   else if ((buffer[0] & 0x4) == 0)
     {
       if (mov_insn)
@@ -167,6 +183,7 @@ print_indexed_operand (memaddr, info, indirect, mov_insn)
          sval = ((buffer[1] << 8) | (buffer[2] & 0x0FF));
          sval &= 0x0FFFF;
          pos += 2;
+          endaddr += 2;
        }
       else
        {
@@ -174,9 +191,16 @@ print_indexed_operand (memaddr, info, indirect, mov_insn)
          if (buffer[0] & 0x01)
            sval |= 0xff00;
          pos++;
+          endaddr++;
        }
       (*info->fprintf_func) (info->stream, "%d,%s",
                             (int) sval, reg_name[reg]);
+      if (reg == PC_REGNUM)
+        {
+          (* info->fprintf_func) (info->stream, " {");
+          (* info->print_address_func) (endaddr + sval, info);
+          (* info->fprintf_func) (info->stream, "}");
+        }
     }
   else
     {
@@ -299,6 +323,8 @@ print_insn (memaddr, info, arch)
   for (i = 0; i < m68hc11_num_opcodes; i++, opcode++)
     {
       int offset;
+      int pc_src_offset;
+      int pc_dst_offset;
 
       if ((opcode->arch & arch) == 0)
        continue;
@@ -420,10 +446,13 @@ print_insn (memaddr, info, arch)
           /* This movb/movw is special (see above).  */
           offset = -offset;
 
+          pc_dst_offset = 2;
          if (format & M6811_OP_IMM8)
            {
              (*info->fprintf_func) (info->stream, "#%d", (int) buffer[0]);
              format &= ~M6811_OP_IMM8;
+              /* Set PC destination offset.  */
+              pc_dst_offset = 1;
            }
          else if (format & M6811_OP_IX)
            {
@@ -444,13 +473,22 @@ print_insn (memaddr, info, arch)
            }
        }
 
+#define M6812_DST_MOVE  (M6812_OP_IND16_P2 | M6812_OP_IDX_P2)
 #define M6812_INDEXED_FLAGS (M6812_OP_IDX|M6812_OP_IDX_1|M6812_OP_IDX_2)
       /* Analyze the 68HC12 indexed byte.  */
       if (format & M6812_INDEXED_FLAGS)
        {
           int indirect;
-
-         status = print_indexed_operand (memaddr + pos, info, &indirect, 0);
+          bfd_vma endaddr;
+
+          endaddr = memaddr + pos + 1;
+          if (format & M6811_OP_IND16)
+            endaddr += 2;
+          pc_src_offset = -1;
+          pc_dst_offset = 1;
+         status = print_indexed_operand (memaddr + pos, info, &indirect,
+                                          (format & M6812_DST_MOVE),
+                                          pc_src_offset, endaddr);
          if (status < 0)
            {
              return status;
@@ -515,6 +553,7 @@ print_insn (memaddr, info, arch)
          val = ((buffer[0] << 8) | (buffer[1] & 0x0FF));
          val &= 0x0FFFF;
           addr = val;
+          pc_dst_offset = 2;
           if (format & M6812_OP_PAGE)
             {
               status = read_memory (memaddr + pos + offset, buffer, 1, info);
@@ -568,7 +607,9 @@ print_insn (memaddr, info, arch)
       if (format & M6812_OP_IDX_P2)
        {
          (*info->fprintf_func) (info->stream, ", ");
-         status = print_indexed_operand (memaddr + pos + offset, info, 0, 1);
+         status = print_indexed_operand (memaddr + pos + offset, info,
+                                          0, 1, pc_dst_offset,
+                                          memaddr + pos + offset + 1);
          if (status < 0)
            return status;
          pos += status;
index cd549d673b64adfcf490339bb0b650ba9b043f20..5901a5a3bcc687e7ef16ac24f7a9622ace2700a7 100644 (file)
@@ -24,20 +24,508 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "dis-asm.h"
 #include "opcode/m88k.h"
 #include "opintl.h"
-
-INSTAB  *hashtable[HASHVAL] = {0};
+#include "libiberty.h"
+
+typedef struct HASHTAB {
+  const INSTAB  *instr;
+  struct HASHTAB *next;
+} HASHTAB;
+
+/* Opcode     Mnemonic       Op 1 Spec     Op 2 Spec    Op 3 Spec         Simflags             Next  */
+
+const INSTAB  instructions[] = {
+  {0xf400c800,"jsr         ",{0,5,REG}   ,NO_OPERAND      ,NO_OPERAND   , {2,2,NA,JSR ,          0,0,1,0,0,0,0,1,0,0,0,0} },
+  {0xf400cc00,"jsr.n       ",{0,5,REG}   ,NO_OPERAND      ,NO_OPERAND   , {1,1,NA,JSR ,          0,0,1,0,0,0,1,1,0,0,0,0} },
+  {0xf400c000,"jmp         ",{0,5,REG}   ,NO_OPERAND      ,NO_OPERAND   , {2,2,NA,JMP ,          0,0,1,0,0,0,0,1,0,0,0,0} },
+  {0xf400c400,"jmp.n       ",{0,5,REG}   ,NO_OPERAND      ,NO_OPERAND   , {1,1,NA,JMP ,          0,0,1,0,0,0,1,1,0,0,0,0} },
+  {0xc8000000,"bsr         ",{0,26,PCREL},NO_OPERAND      ,NO_OPERAND   , {2,2,NA,BSR ,     i26bit,0,0,0,0,0,0,1,0,0,0,0} },
+  {0xcc000000,"bsr.n       ",{0,26,PCREL},NO_OPERAND      ,NO_OPERAND   , {1,1,NA,BSR ,     i26bit,0,0,0,0,0,1,1,0,0,0,0} },
+  {0xc0000000,"br          ",{0,26,PCREL},NO_OPERAND      ,NO_OPERAND   , {2,2,NA,BR  ,     i26bit,0,0,0,0,0,0,1,0,0,0,0} },
+  {0xc4000000,"br.n        ",{0,26,PCREL},NO_OPERAND      ,NO_OPERAND   , {1,1,NA,BR  ,     i26bit,0,0,0,0,0,1,1,0,0,0,0} },
+  {0xd0000000,"bb0         ",{21,5,HEX}  ,{16,5,REG}   ,{0,16,PCREL},{2,2,NA,BB0,     i16bit,0,1,0,0,0,0,1,0,0,0,0} },
+  {0xd4000000,"bb0.n       ",{21,5,HEX}  ,{16,5,REG}   ,{0,16,PCREL},{1,1,NA,BB0,     i16bit,0,1,0,0,0,1,1,0,0,0,0} },
+  {0xd8000000,"bb1         ",{21,5,HEX},{16,5,REG}     ,{0,16,PCREL},{2,2,NA,BB1,     i16bit,0,1,0,0,0,0,1,0,0,0,0} },
+  {0xdc000000,"bb1.n       ",{21,5,HEX},{16,5,REG}     ,{0,16,PCREL},{1,1,NA,BB1,     i16bit,0,1,0,0,0,1,1,0,0,0,0} },
+  {0xf000d000,"tb0         ",{21,5,HEX}  ,{16,5,REG}   ,{0,10,HEX}, {2,2,NA,TB0 ,     i10bit,0,1,0,0,0,0,1,0,0,0,0} },
+  {0xf000d800,"tb1         ",{21,5,HEX}  ,{16,5,REG}   ,{0,10,HEX}, {2,2,NA,TB1 ,     i10bit,0,1,0,0,0,0,1,0,0,0,0} },
+  {0xe8000000,"bcnd        ",{21,5,CONDMASK},{16,5,REG},{0,16,PCREL},{2,2,NA,BCND,    i16bit,0,1,0,0,0,0,1,0,0,0,0} },
+  {0xec000000,"bcnd.n      ",{21,5,CONDMASK},{16,5,REG},{0,16,PCREL},{1,1,NA,BCND,    i16bit,0,1,0,0,0,1,1,0,0,0,0} },
+  {0xf000e800,"tcnd        ",{21,5,CONDMASK},{16,5,REG},{0,10,HEX}, {2,2,NA,TCND,     i10bit,0,1,0,0,0,0,1,0,0,0,0} },
+  {0xf8000000,"tbnd        ",{16,5,REG}  ,{0,16,HEX}   ,NO_OPERAND   , {2,2,NA,TBND,     i10bit,1,0,0,0,0,0,1,0,0,0,0} },
+  {0xf400f800,"tbnd        ",{16,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {2,2,NA,TBND,          0,1,1,0,0,0,0,1,0,0,0,0} },
+  {0xf400fc00,"rte         ",NO_OPERAND     ,NO_OPERAND      ,NO_OPERAND   , {2,2,NA,RTE ,          0,0,0,0,0,0,0,1,0,0,0,0} },
+  {0x1c000000,"ld.b        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDB    ,i16bit,1,0,1,0,0,0,1,0,0,0,0} },
+  {0xf4001c00,"ld.b        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDB     ,    0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0x0c000000,"ld.bu       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDBU,   i16bit,1,0,1,0,0,0,1,0,0,0,0} },
+  {0xf4000c00,"ld.bu       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDBU        ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0x18000000,"ld.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDH    ,i16bit,1,0,1,0,0,0,1,0,0,0,0} },
+  {0xf4001800,"ld.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDH         ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4001a00,"ld.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LDH         ,0,1,1,1,0,0,0,1,0,0,0,1} },
+  {0x08000000,"ld.hu       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDHU,   i16bit,1,0,1,0,0,0,1,0,0,0,0} },
+  {0xf4000800,"ld.hu       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDHU        ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4000a00,"ld.hu       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LDHU        ,0,1,1,1,0,0,0,1,0,0,0,1} },
+  {0x14000000,"ld          ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LD     ,i16bit,1,0,1,0,0,0,1,0,0,0,0} },
+  {0xf4001400,"ld          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4001600,"ld          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,1} },
+  {0x10000000,"ld.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,LDD    ,i16bit,1,0,1,0,0,0,1,0,0,0,0} },
+  {0xf4001000,"ld.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LDD         ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4001200,"ld.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LDD         ,0,1,1,1,0,0,0,1,0,0,0,1} },
+  {0xf4001500,"ld.usr      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4001700,"ld.usr      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,LD          ,0,1,1,1,0,0,0,1,0,0,0,1} },
+  {0x2c000000,"st.b        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,STB      ,i16bit,1,0,1,0,0,0,1,0,0,0,0} },
+  {0xf4002c00,"st.b        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,STB           ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0x28000000,"st.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,STH      ,i16bit,1,0,1,0,0,0,1,0,0,0,0} },
+  {0xf4002800,"st.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,STH           ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4002a00,"st.h        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,STH           ,0,1,1,1,0,0,0,1,0,0,0,1} },
+  {0x24000000,"st          ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,ST       ,i16bit,1,0,1,0,0,0,1,0,0,0,0} },
+  {0xf4002400,"st          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4002600,"st          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,1} },
+  {0x20000000,"st.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,NA,STD      ,i16bit,0,1,0,0,0,0,1,0,0,0,0} },
+  {0xf4002000,"st.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,STD           ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4002200,"st.d        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,STD           ,0,1,1,1,0,0,0,1,0,0,0,1} },
+  {0xf4002500,"st.usr      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4002700,"st.usr      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,NA,ST            ,0,1,1,1,0,0,0,1,0,0,0,1} },
+/*  m88100 only:
+  {0x00000000,"xmem.bu     ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,XMEMBU ,i16bit,1,1,1,0,0,0,1,0,0,0,0} },
+ */
+  {0xf4000000,"xmem.bu     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,0} },
+/*  m88100 only:
+  {0x04000000,"xmem        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {3,1,PMEM,XMEM   ,i16bit,1,1,1,0,0,0,1,0,0,0,0} },
+ */
+  {0xf4000400,"xmem        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4000600,"xmem        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,1} },
+  {0xf4000500,"xmem.usr    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0xf4000700,"xmem.usr    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{3,1,PMEM,XMEM        ,0,1,1,1,0,0,0,1,0,0,0,1} },
+/* m88100 only:
+  {0xf4003e00,"lda.b       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAH,        0,1,1,1,0,0,0,0,0,0,0,1} },
+ */
+  {0xf4003e00,"lda.x       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAH,        0,1,1,1,0,0,0,0,0,0,0,1} },
+  {0xf4003a00,"lda.h       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAH,        0,1,1,1,0,0,0,0,0,0,0,1} },
+  {0xf4003600,"lda         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDA ,        0,1,1,1,0,0,0,0,0,0,0,1} },
+  {0xf4003200,"lda.d       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REGSC},{1,1,PINT,LDAD,        0,1,1,1,0,0,0,0,0,0,0,1} },
+
+  {0x80004000,"ldcr        ",{21,5,REG}  ,{5,6,CRREG}  ,NO_OPERAND    ,{1,1,PINT,LDCR,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0x80008000,"stcr        ",{16,5,REG}  ,{5,6,CRREG}  ,NO_OPERAND    ,{1,1,PINT,STCR,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0x8000c000,"xcr         ",{21,5,REG}  ,{16,5,REG}   ,{5,6,CRREG},{1,1,PINT,XCR,         0,1,1,1,0,0,0,0,0,0,0,0} },
+
+  {0xf4006000,"addu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4006200,"addu.ci     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4006100,"addu.co     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4006300,"addu.cio    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADDU,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4006400,"subu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4006600,"subu.ci     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4006500,"subu.co     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4006700,"subu.cio    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUBU,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4006800,"divu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {32,32,PINT,DIVU,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4006900,"divu.d      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,} },
+  {0xf4006e00,"muls        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,} },
+  {0xf4006c00,"mulu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,4,PINT,MUL,      0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007000,"add         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007200,"add.ci      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007100,"add.co      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007300,"add.cio     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ADD ,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007400,"sub         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007600,"sub.ci      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007500,"sub.co      ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007700,"sub.cio     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SUB ,        0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007800,"divs        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {32,32,PINT,DIV ,      0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4007c00,"cmp         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,CMP,         0,1,1,1,0,0,0,0,0,0,0,0} },
+
+  {0x60000000,"addu        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,ADDU,   i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x64000000,"subu        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,SUBU,   i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+
+  {0x68000000,"divu        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {32,32,PINT,DIVU, i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x6c000000,"mulu        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {4,1,PINT,MUL,    i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x70000000,"add         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,ADD,    i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x74000000,"sub         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,SUB,    i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x78000000,"divs        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {32,32,PINT,DIV,  i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x7c000000,"cmp         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,CMP,    i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+
+  {0xf4004000,"and         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,AND_        ,0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4004400,"and.c       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,AND_        ,0,1,1,1,1,0,0,0,0,0,0,0} },
+  {0xf4005800,"or          ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,OR          ,0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4005c00,"or.c        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,OR          ,0,1,1,1,1,0,0,0,0,0,0,0} },
+  {0xf4005000,"xor         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,XOR         ,0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4005400,"xor.c       ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,XOR         ,0,1,1,1,1,0,0,0,0,0,0,0} },
+  {0x40000000,"and         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,AND_   ,i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x44000000,"and.u       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,AND_   ,i16bit,1,0,1,0,1,0,0,0,0,0,0} },
+  {0x58000000,"or          ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,OR     ,i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x5c000000,"or.u        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,OR     ,i16bit,1,0,1,0,1,0,0,0,0,0,0} },
+  {0x50000000,"xor         ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,XOR    ,i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x54000000,"xor.u       ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,XOR    ,i16bit,1,0,1,0,1,0,0,0,0,0,0} },
+  {0x48000000,"mask        ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,MASK   ,i16bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0x4c000000,"mask.u      ",{21,5,REG}  ,{16,5,REG}   ,{0,16,HEX}, {1,1,PINT,MASK   ,i16bit,1,0,1,0,1,0,0,0,0,0,0} },
+  {0xf400ec00,"ff0         ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {1,1,PINT,FF0         ,0,0,1,1,0,0,0,0,0,0,0,0} },
+  {0xf400e800,"ff1         ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {1,1,PINT,FF1         ,0,0,1,1,0,0,0,0,0,0,0,0} },
+  {0xf0008000,"clr         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,CLR    ,i10bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0xf0008800,"set         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,SET    ,i10bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0xf0009000,"ext         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,EXT    ,i10bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0xf0009800,"extu        ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,EXTU   ,i10bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0xf000a000,"mak         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,MAK    ,i10bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0xf000a800,"rot         ",{21,5,REG}  ,{16,5,REG}   ,{0,10,BF} , {1,1,PINT,ROT    ,i10bit,1,0,1,0,0,0,0,0,0,0,0} },
+  {0xf4008000,"clr         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,CLR         ,0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4008800,"set         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,SET         ,0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4009000,"ext         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,EXT         ,0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf4009800,"extu        ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,EXTU        ,0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf400a000,"mak         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,MAK         ,0,1,1,1,0,0,0,0,0,0,0,0} },
+  {0xf400a800,"rot         ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {1,1,PINT,ROT         ,0,1,1,1,0,0,0,0,0,0,0,0} },
+
+  {0x84002800,"fadd.sss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {5,1,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0x84002880,"fadd.ssd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,0,1,0} },
+  {0x84002a00,"fadd.sds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,1,0,0} },
+  {0x84002a80,"fadd.sdd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,0,1,1,0} },
+  {0x84002820,"fadd.dss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,0,0,0} },
+  {0x840028a0,"fadd.dsd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,0,1,0} },
+  {0x84002a20,"fadd.dds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,1,0,0} },
+  {0x84002aa0,"fadd.ddd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FADD        ,0,1,1,1,0,0,0,1,1,1,1,0} },
+  {0x84003000,"fsub.sss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {5,1,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0x84003080,"fsub.ssd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,0,1,0} },
+  {0x84003200,"fsub.sds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,1,0,0} },
+  {0x84003280,"fsub.sdd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,0,1,1,0} },
+  {0x84003020,"fsub.dss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,0,0,0} },
+  {0x840030a0,"fsub.dsd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,0,1,0} },
+  {0x84003220,"fsub.dds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,1,0,0} },
+  {0x840032a0,"fsub.ddd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,2,PFLT,FSUB        ,0,1,1,1,0,0,0,1,1,1,1,0} },
+  {0x84000000,"fmul.sss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0x84000080,"fmul.ssd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,0,1,0} },
+  {0x84000200,"fmul.sds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,1,0,0} },
+  {0x84000280,"fmul.sdd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,0,1,1,0} },
+  {0x84000020,"fmul.dss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,0,0,0} },
+  {0x840000a0,"fmul.dsd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,0,1,0} },
+  {0x84000220,"fmul.dds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,1,0,0} },
+  {0x840002a0,"fmul.ddd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {9,2,PFLT,FMUL        ,0,1,1,1,0,0,0,1,1,1,1,0} },
+  {0x84007000,"fdiv.sss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {30,30,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0x84007080,"fdiv.ssd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,0,1,0} },
+  {0x84007200,"fdiv.sds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,1,0,0} },
+  {0x84007280,"fdiv.sdd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,0,1,1,0} },
+  {0x84007020,"fdiv.dss    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,0,0,0} },
+  {0x840070a0,"fdiv.dsd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,0,1,0} },
+  {0x84007220,"fdiv.dds    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,1,0,0} },
+  {0x840072a0,"fdiv.ddd    ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {60,60,PFLT,FDIV      ,0,1,1,1,0,0,0,1,1,1,1,0} },
+  {0x84007800,"fsqrt.ss    ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0} },
+  {0x84007820,"fsqrt.sd    ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0} },
+  {0x84007880,"fsqrt.ds    ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0} },
+  {0x840078a0,"fsqrt.dd    ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,1,0,0,0} },
+  {0x84003800,"fcmp.ss     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {5,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,0,0,0,0} },
+  {0x84003880,"fcmp.sd     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,0,1,0,0} },
+  {0x84003a00,"fcmp.ds     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,1,0,0,0} },
+  {0x84003a80,"fcmp.dd     ",{21,5,REG}  ,{16,5,REG}   ,{0,5,REG} , {6,1,PFLT,FCMP        ,0,1,1,1,0,0,0,1,1,1,0,0} },
+  {0x84002000,"flt.s       ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,0,0,0,0} },
+  {0x84002020,"flt.d       ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,FLT         ,0,0,1,1,0,0,0,1,1,0,0,0} },
+  {0x84004800,"int.s       ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,INT         ,0,0,1,1,0,0,0,1,0,0,0,0} },
+  {0x84004880,"int.d       ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,INT         ,0,0,1,1,0,0,0,1,1,0,0,0} },
+  {0x84005000,"nint.s      ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,INT         ,0,0,1,1,0,0,0,1,0,0,0,0} },
+  {0x84005080,"nint.d      ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,INT         ,0,0,1,1,0,0,0,1,1,0,0,0} },
+  {0x84005800,"trnc.s      ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {5,1,PFLT,TRNC        ,0,0,1,1,0,0,0,1,0,0,0,0} },
+  {0x84005880,"trnc.d      ",{21,5,REG}  ,{0,5,REG}    ,NO_OPERAND   , {6,1,PFLT,TRNC        ,0,0,1,1,0,0,0,1,1,0,0,0} },
+
+  {0x80004800,"fldcr       ",{21,5,REG}  ,{5,6,FCRREG} ,NO_OPERAND   , {1,1,PFLT,FLDC        ,0,0,1,1,0,0,0,1,0,0,0,0} },
+  {0x80008800,"fstcr       ",{16,5,REG}  ,{5,6,FCRREG} ,NO_OPERAND   , {1,1,PFLT,FSTC        ,0,0,1,1,0,0,0,1,0,0,0,0} },
+  {0x8000c800,"fxcr        ",{21,5,REG}  ,{16,5,REG}   ,{5,6,FCRREG} , {1,1,PFLT,FXC         ,0,0,1,1,0,0,0,1,0,0,0,0} },
+
+/* The following are new for the 88110.  */
+
+  {0x8400aaa0,"fadd.ddd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400aa80,"fadd.dds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400aac0,"fadd.ddx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400aa20,"fadd.dsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400aa00,"fadd.dss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400aa40,"fadd.dsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ab20,"fadd.dxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ab00,"fadd.dxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ab40,"fadd.dxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400a8a0,"fadd.sdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400a880,"fadd.sds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400a8c0,"fadd.sdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400a820,"fadd.ssd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400a800,"fadd.sss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400a840,"fadd.ssx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400a920,"fadd.sxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400a900,"fadd.sxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400a940,"fadd.sxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400aca0,"fadd.xdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ac80,"fadd.xds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400acc0,"fadd.xdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ac20,"fadd.xsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ac00,"fadd.xss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ac40,"fadd.xsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ad20,"fadd.xxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ad00,"fadd.xxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ad40,"fadd.xxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400ba80,"fcmp.sdd    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ba00,"fcmp.sds    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400bb00,"fcmp.sdx    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b880,"fcmp.ssd    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b800,"fcmp.sss    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b900,"fcmp.ssx    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400bc80,"fcmp.sxd    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400bc00,"fcmp.sxs    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400bd00,"fcmp.sxx    ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400baa0,"fcmpu.sdd   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400ba20,"fcmpu.sds   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400bb20,"fcmpu.sdx   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b8a0,"fcmpu.ssd   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b820,"fcmpu.sss   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b920,"fcmpu.ssx   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400bca0,"fcmpu.sxd   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400bc20,"fcmpu.sxs   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400bd20,"fcmpu.sxx   ",{21,5,REG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x84000820,"fcvt.sd     ",{21,5,REG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84000880,"fcvt.ds     ",{21,5,REG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x84008880,"fcvt.ds     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x840088c0,"fcvt.dx     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008820,"fcvt.sd     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008840,"fcvt.sx     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008920,"fcvt.xd     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008900,"fcvt.xs     ",{21,5,XREG} ,{0,5,XREG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400f2a0,"fdiv.ddd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f280,"fdiv.dds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f2c0,"fdiv.ddx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f220,"fdiv.dsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f200,"fdiv.dss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f240,"fdiv.dsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f320,"fdiv.dxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f300,"fdiv.dxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f340,"fdiv.dxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f0a0,"fdiv.sdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f080,"fdiv.sds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f0c0,"fdiv.sdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f020,"fdiv.ssd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f000,"fdiv.sss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f040,"fdiv.ssx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f120,"fdiv.sxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f100,"fdiv.sxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f140,"fdiv.sxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f4a0,"fdiv.xdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f480,"fdiv.xds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f4c0,"fdiv.xdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f420,"fdiv.xsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f400,"fdiv.xss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f440,"fdiv.xsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f520,"fdiv.xxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f500,"fdiv.xxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f540,"fdiv.xxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x84002220,"flt.ds      ",{21,5,XREG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84002200,"flt.ss      ",{21,5,XREG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84002240,"flt.xs      ",{21,5,XREG} ,{0,5,REG}  ,NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x840082a0,"fmul.ddd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008280,"fmul.dds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x840082c0,"fmul.ddx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008220,"fmul.dsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008200,"fmul.dss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008240,"fmul.dsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008320,"fmul.dxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008300,"fmul.dxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008340,"fmul.dxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x840080a0,"fmul.sdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008080,"fmul.sds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x840080c0,"fmul.sdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008020,"fmul.ssd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008000,"fmul.sss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008040,"fmul.ssx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008120,"fmul.sxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008100,"fmul.sxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008140,"fmul.sxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x840084a0,"fmul.xdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008480,"fmul.xds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x840084c0,"fmul.xdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008420,"fmul.xsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008400,"fmul.xss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008440,"fmul.xsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008520,"fmul.xxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008500,"fmul.xxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84008540,"fmul.xxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400f8a0,"fsqrt.dd    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f880,"fsqrt.ds    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f8c0,"fsqrt.dx    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f820,"fsqrt.sd    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f800,"fsqrt.ss    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f840,"fsqrt.sx    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f920,"fsqrt.xd    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f900,"fsqrt.xs    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400f940,"fsqrt.xx    ",{21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400b2a0,"fsub.ddd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b280,"fsub.dds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b2c0,"fsub.ddx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b220,"fsub.dsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b200,"fsub.dss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b240,"fsub.dsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b320,"fsub.dxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b300,"fsub.dxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b340,"fsub.dxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b0a0,"fsub.sdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b080,"fsub.sds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b0c0,"fsub.sdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b020,"fsub.ssd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b000,"fsub.sss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b040,"fsub.ssx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b120,"fsub.sxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b100,"fsub.sxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b140,"fsub.sxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b4a0,"fsub.xdd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b480,"fsub.xds    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b4c0,"fsub.xdx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b420,"fsub.xsd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b400,"fsub.xss    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b440,"fsub.xsx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b520,"fsub.xxd    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b500,"fsub.xxs    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400b540,"fsub.xxx    ",{21,5,XREG} ,{16,5,XREG}  ,{0,5,XREG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400fc00,"illop", {0,2,DEC}, NO_OPERAND, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400c800,"int.ss      ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400c880,"int.sd      ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400c900,"int.sx      ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x04000000,"ld          ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x00000000,"ld.d        ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x3c000000,"ld.x        ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0xf0001400,"ld          ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001000,"ld.d        ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001800,"ld.x        ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001500,"ld.usr      ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001100,"ld.d.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001900,"ld.x.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0xf0001600,"ld          ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001200,"ld.d        ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001a00,"ld.x        ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001700,"ld.usr      ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001300,"ld.d.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0001b00,"ld.x.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400c000,"mov.s       ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400c080,"mov.d       ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84004200,"mov.s       ", {21,5,XREG}, {0,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x84004280,"mov.d       ", {21,5,XREG}, {0,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400c300,"mov         ", {21,5,XREG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0xf4006d00,"mulu.d      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400d080,"nint.sd     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400d000,"nint.ss     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400d100,"nint.sx     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x88002020,"padd.b      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88002040,"padd.h      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88002060,"padd        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x880021e0,"padds.s     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880021a0,"padds.s.b   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880021c0,"padds.s.h   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880020e0,"padds.u     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880020a0,"padds.u.b   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880020c0,"padds.u.h   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88002160,"padds.us    ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88002120,"padds.us.b  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88002140,"padds.us.h  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x88003860,"pcmp        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x88000000,"pmul        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x88006260,"ppack.16    ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88006240,"ppack.16.h  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88006460,"ppack.32    ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88006420,"ppack.32.b  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88006440,"ppack.32.h  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88006160,"ppack.8     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x88007200,"prot        ", {21,5,REG}, {16,5,REG}, {5,6,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88007800,"prot        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x88003020,"psub.b      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88003040,"psub.h      ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88003060,"psub        ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x880031e0,"psubs.s     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880031a0,"psubs.s.b   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880031c0,"psubs.s.h   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880030e0,"psubs.u     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880030a0,"psubs.u.b   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x880030c0,"psubs.u.h   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88003160,"psubs.us    ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88003120,"psubs.us.b  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88003140,"psubs.us.h  ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x88006800,"punpk.n     ", {21,5,REG}, {16,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x88006820,"punpk.b     ", {21,5,REG}, {16,5,REG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x34000000,"st          ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x30000000,"st.d        ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x38000000,"st.x        ", {21,5,XREG}, {16,5,REG}, {0,16,HEX}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0xf4002c80,"st.b.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002880,"st.h.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002480,"st.wt       ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002080,"st.d.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002d80,"st.b.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002980,"st.h.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002580,"st.usr.wt   ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002180,"st.d.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0xf0002400,"st          ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002000,"st.d        ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002100,"st.d.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002180,"st.d.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002080,"st.d.wt     ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002500,"st.usr      ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002580,"st.usr.wt   ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002480,"st.wt       ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002800,"st.x        ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002900,"st.x.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002980,"st.x.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002880,"st.x.wt     ", {21,5,XREG}, {16,5,REG}, {0,5,REG}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0xf4002f80,"st.b.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002e80,"st.b.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002380,"st.d.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002280,"st.d.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002b80,"st.h.usr.wt ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002a80,"st.h.wt     ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002780,"st.usr.wt   ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf4002680,"st.wt       ", {21,5,REG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0xf0002600,"st          ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002200,"st.d        ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002300,"st.d.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002380,"st.d.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002280,"st.d.wt     ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002700,"st.usr      ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002780,"st.usr.wt   ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002680,"st.wt       ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002a00,"st.x        ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002b00,"st.x.usr    ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002b80,"st.x.usr.wt ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0xf0002a80,"st.x.wt     ", {21,5,XREG}, {16,5,REG}, {0,5,REGSC}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+  {0x8400d880,"trnc.sd     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400d800,"trnc.ss     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+  {0x8400d900,"trnc.sx     ", {21,5,REG}, {0,5,XREG}, NO_OPERAND, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} },
+
+};
+
+HASHTAB  *hashtable[HASHVAL] = {0};
 
 static int
 m88kdis PARAMS ((bfd_vma, unsigned long, struct disassemble_info *));
 
 static void
-printop PARAMS ((struct disassemble_info *, OPSPEC *, unsigned long, bfd_vma, int));
+printop PARAMS ((struct disassemble_info *, const OPSPEC *, unsigned long, bfd_vma, int));
 
 static void
 init_disasm PARAMS ((void));
-
-static void
-install PARAMS ((INSTAB *instptr));
 \f
 
 /* Disassemble an M88000 instruction at `memaddr'.  */
@@ -80,12 +568,15 @@ m88kdis (pc, instruction, info)
 {
   static int ihashtab_initialized = 0;
   unsigned int opcode;
-  INSTAB *entry_ptr;
+  const HASHTAB *entry_ptr;
   int opmask;
   unsigned int class;
 
   if (! ihashtab_initialized)
-    init_disasm ();
+    {
+      init_disasm ();
+      ihashtab_initialized = 1;
+    }
 
   /* Create the appropriate mask to isolate the opcode.  */
   opmask = DEFMASK;
@@ -107,7 +598,7 @@ m88kdis (pc, instruction, info)
 
   /* Search the hash table with the isolated opcode.  */
   for (entry_ptr = hashtable[opcode % HASHVAL];
-       (entry_ptr != NULL) && (entry_ptr->opcode != opcode);
+       (entry_ptr != NULL) && (entry_ptr->instr->opcode != opcode);
        entry_ptr = entry_ptr->next)
     ;
 
@@ -115,10 +606,10 @@ m88kdis (pc, instruction, info)
     (*info->fprintf_func) (info->stream, "word\t%08x", instruction);
   else
     {
-      (*info->fprintf_func) (info->stream, "%s", entry_ptr->mnemonic);
-      printop (info, &(entry_ptr->op1), instruction, pc, 1);
-      printop (info, &(entry_ptr->op2), instruction, pc, 0);
-      printop (info, &(entry_ptr->op3), instruction, pc, 0);
+      (*info->fprintf_func) (info->stream, "%s", entry_ptr->instr->mnemonic);
+      printop (info, &(entry_ptr->instr->op1), instruction, pc, 1);
+      printop (info, &(entry_ptr->instr->op2), instruction, pc, 0);
+      printop (info, &(entry_ptr->instr->op3), instruction, pc, 0);
     }
 
   return 4;
@@ -150,7 +641,7 @@ m88kdis (pc, instruction, info)
 static void
 printop (info, opptr, inst, pc, first)
      struct disassemble_info *info;
-     OPSPEC *opptr;
+     const OPSPEC *opptr;
      unsigned long inst;
      bfd_vma pc;
      int first;
@@ -267,28 +758,23 @@ printop (info, opptr, inst, pc, first)
 static void
 init_disasm ()
 {
-  int i, size;
-  
-  for (i = 0; i < HASHVAL; i++)
-    hashtable[i] = NULL;
+  unsigned int hashvalue, hashsize;
+  struct HASHTAB *hashentries;
+  unsigned int i;
 
-  size = sizeof (instructions) / sizeof (INSTAB);
-  for (i = 0; i < size; i++)
-    install (&instructions[i]);
-}
+  hashsize = sizeof (instructions) / sizeof (INSTAB);
 
-/*
- * Insert an instruction into the disassembler table by hashing the
- * opcode and inserting it into the linked list for that hash value.
- */
+  hashentries = (struct HASHTAB *) xmalloc (hashsize * sizeof (struct HASHTAB));
 
-static void
-install (instptr)
-     INSTAB *instptr;
-{
-  unsigned int i;
+  for (i = 0; i < HASHVAL; i++)
+    hashtable[i] = NULL;
 
-  i = (instptr->opcode) % HASHVAL;
-  instptr->next = hashtable[i];
-  hashtable[i] = instptr;
+  for (i = 0; i < hashsize; i++)
+    {
+      hashvalue = (instructions[i].opcode) % HASHVAL;
+      hashentries[i].instr = &instructions[i];
+      hashentries[i].next = hashtable[hashvalue];
+      hashtable[hashvalue] = &hashentries[i];
+    }
 }
index ad453186dc440178eb3d9e90748e3773c926a970..ba33dd39118f22f127e0037496b0443f9df05adf 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassemble Motorola M*Core instructions.
-   Copyright 1993, 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1993, 1999, 2000, 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
@@ -89,12 +89,12 @@ print_insn_mcore (memaddr, info)
      bfd_vma memaddr;
      struct disassemble_info *info;
 {
-  unsigned char       ibytes[4];
-  fprintf_ftype       fprintf = info->fprintf_func;
-  void *              stream = info->stream;
-  unsigned short      inst;
-  mcore_opcode_info * op;
-  int                 status;
+  unsigned char ibytes[4];
+  fprintf_ftype fprintf = info->fprintf_func;
+  void *stream = info->stream;
+  unsigned short inst;
+  const mcore_opcode_info *op;
+  int status;
 
   info->bytes_per_chunk = 2;
 
@@ -128,19 +128,48 @@ print_insn_mcore (memaddr, info)
 
       switch (op->opclass)
        {
-       case O0: break;
-       case OT: fprintf (stream, "\t%d", inst & 0x3); break;
+       case O0:
+         break;
+
+       case OT:
+         fprintf (stream, "\t%d", inst & 0x3);
+         break;
+
        case O1:
        case JMP:
-       case JSR: fprintf (stream, "\t%s", name); break;
-       case OC:  fprintf (stream, "\t%s, %s", name, crname[(inst >> 4) & 0x1F]); break;
-       case O1R1: fprintf (stream, "\t%s, r1", name); break;
+       case JSR:
+         fprintf (stream, "\t%s", name);
+         break;
+
+       case OC:
+         fprintf (stream, "\t%s, %s", name, crname[(inst >> 4) & 0x1F]);
+         break;
+
+       case O1R1:
+         fprintf (stream, "\t%s, r1", name);
+         break;
+
        case MULSH:
-       case O2: fprintf (stream, "\t%s, %s", name, grname[(inst >> 4) & 0xF]); break;
-       case X1: fprintf (stream, "\tr1, %s", name); break;
-       case OI: fprintf (stream, "\t%s, %d", name, ((inst >> 4) & 0x1F) + 1); break;
-       case RM: fprintf (stream, "\t%s-r15, (r0)", name); break;
-       case RQ: fprintf (stream, "\tr4-r7, (%s)", name); break;
+       case O2:
+         fprintf (stream, "\t%s, %s", name, grname[(inst >> 4) & 0xF]);
+         break;
+
+       case X1:
+         fprintf (stream, "\tr1, %s", name);
+         break;
+
+       case OI:
+         fprintf (stream, "\t%s, %d", name, ((inst >> 4) & 0x1F) + 1);
+         break;
+
+       case RM:
+         fprintf (stream, "\t%s-r15, (r0)", name);
+         break;
+
+       case RQ:
+         fprintf (stream, "\tr4-r7, (%s)", name);
+         break;
+
        case OB:
        case OBRa:
        case OBRb:
@@ -149,10 +178,17 @@ print_insn_mcore (memaddr, info)
        case SIa:
        case OMa:
        case OMb:
-       case OMc: fprintf (stream, "\t%s, %d", name, (inst >> 4) & 0x1F); break;
-       case I7: fprintf (stream, "\t%s, %d", name, (inst >> 4) & 0x7F); break;
-       case LS: fprintf (stream, "\t%s, (%s, %d)", grname[(inst >> 8) & 0xF],
-                         name, ((inst >> 4) & 0xF) << isiz[(inst >> 13) & 3]);
+       case OMc:
+         fprintf (stream, "\t%s, %d", name, (inst >> 4) & 0x1F);
+         break;
+
+       case I7:
+         fprintf (stream, "\t%s, %d", name, (inst >> 4) & 0x7F);
+         break;
+
+       case LS:
+         fprintf (stream, "\t%s, (%s, %d)", grname[(inst >> 8) & 0xF],
+                  name, ((inst >> 4) & 0xF) << isiz[(inst >> 13) & 3]);
          break;
 
        case BR:
index 7e4f539dd446f5b99aca81bc9e1096b778c250d7..39d76bbd1f0a1ccec72950f0714440fb10cf5701 100644 (file)
@@ -39,7 +39,7 @@ typedef struct inst
 mcore_opcode_info;
 
 #ifdef DEFINE_TABLE
-mcore_opcode_info mcore_table[] =
+const mcore_opcode_info mcore_table[] =
 {
   { "bkpt",    O0,     0,      0x0000 },
   { "sync",    O0,     0,      0x0001 },
index 0a4280108da449257a9d7caa092c1fae42ce734b..d8862f78de504bb3876ef2936335787029acfe88 100644 (file)
@@ -52,7 +52,7 @@ static int print_insn_mips16
 static int is_newabi
   PARAMS ((Elf_Internal_Ehdr *));
 static void print_mips16_insn_arg
-  PARAMS ((int, const struct mips_opcode *, int, boolean, int, bfd_vma,
+  PARAMS ((int, const struct mips_opcode *, int, bfd_boolean, int, bfd_vma,
           struct disassemble_info *));
 \f
 /* FIXME: These should be shared with gdb somehow.  */
@@ -312,7 +312,7 @@ print_insn_arg (d, l, pc, info)
              if ((vsel & 1) == 0)
                break;
            (*info->fprintf_func) (info->stream, "$v%d[%d]",
-                                  (l >> OP_SH_FT) & OP_MASK_FT, 
+                                  (l >> OP_SH_FT) & OP_MASK_FT,
                                   vsel >> 1);
          }
        else if ((vsel & 0x08) == 0)
@@ -498,7 +498,7 @@ print_insn_mips (memaddr, word, info)
 {
   register const struct mips_opcode *op;
   int target_processor, mips_isa;
-  static boolean init = 0;
+  static bfd_boolean init = 0;
   static const struct mips_opcode *mips_hash[OP_MASK_OP + 1];
 
   /* Build a hash table to shorten the search time.  */
@@ -687,7 +687,7 @@ print_insn_mips16 (memaddr, info)
   bfd_byte buffer[2];
   int length;
   int insn;
-  boolean use_extend;
+  bfd_boolean use_extend;
   int extend = 0;
   const struct mips_opcode *op, *opend;
 
@@ -715,10 +715,10 @@ print_insn_mips16 (memaddr, info)
     insn = bfd_getl16 (buffer);
 
   /* Handle the extend opcode specially.  */
-  use_extend = false;
+  use_extend = FALSE;
   if ((insn & 0xf800) == 0xf000)
     {
-      use_extend = true;
+      use_extend = TRUE;
       extend = insn & 0x7ff;
 
       memaddr += 2;
@@ -768,7 +768,7 @@ print_insn_mips16 (memaddr, info)
                  return length - 2;
                }
 
-             use_extend = false;
+             use_extend = FALSE;
 
              memaddr += 2;
 
@@ -776,7 +776,7 @@ print_insn_mips16 (memaddr, info)
                                                  info);
              if (status == 0)
                {
-                 use_extend = true;
+                 use_extend = TRUE;
                  if (info->endian == BFD_ENDIAN_BIG)
                    extend = bfd_getb16 (buffer);
                  else
@@ -839,7 +839,7 @@ print_mips16_insn_arg (type, op, l, use_extend, extend, memaddr, info)
      char type;
      const struct mips_opcode *op;
      int l;
-     boolean use_extend;
+     bfd_boolean use_extend;
      int extend;
      bfd_vma memaddr;
      struct disassemble_info *info;
index 7dae28a4f556af5c9a554b8f1059e2d84dbf8de0..61a2ebd79a5488a16ef3b59bba16433f0ad68c28 100644 (file)
@@ -550,13 +550,11 @@ const struct mips_opcode mips_builtin_opcodes[] =
 {"dret",    "",                0x7000003e, 0xffffffff, 0,                      N5      },
 {"drol",    "d,v,t",   0,    (int) M_DROL,     INSN_MACRO,             I3      },
 {"drol",    "d,v,I",   0,    (int) M_DROL_I,   INSN_MACRO,             I3      },
-{"drorv",   "d,t,s",   0x00000056, 0xfc0007ff, RD_t|RD_s|WR_d,         N5      },
-{"dror32",  "d,w,<",   0x0020003e, 0xffe0003f, WR_d|RD_t,              N5      },
-{"dror",    "d,w,s",   0x00000056, 0xfc0007ff, RD_t|RD_s|WR_d,         N5      }, /* drorv */
-{"dror",    "d,w,>",   0x0020003e, 0xffe0003f, WR_d|RD_t,              N5      },
-{"dror",    "d,w,<",   0x0020003a, 0xffe0003f, WR_d|RD_t,              N5      },
 {"dror",    "d,v,t",   0,    (int) M_DROR,     INSN_MACRO,             I3      },
 {"dror",    "d,v,I",   0,    (int) M_DROR_I,   INSN_MACRO,             I3      },
+{"dror",    "d,w,<",   0x0020003a, 0xffe0003f, WR_d|RD_t,              N5      },
+{"drorv",   "d,t,s",   0x00000056, 0xfc0007ff, RD_t|RD_s|WR_d,         N5      },
+{"dror32",  "d,w,<",   0x0020003e, 0xffe0003f, WR_d|RD_t,              N5      },
 {"dsllv",   "d,t,s",   0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s,         I3      },
 {"dsll32",  "d,w,<",   0x0000003c, 0xffe0003f, WR_d|RD_t,              I3      },
 {"dsll",    "d,w,s",   0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s,         I3      }, /* dsllv */
@@ -901,11 +899,10 @@ const struct mips_opcode mips_builtin_opcodes[] =
 {"rneu.qh", "X,Q",     0x78200022, 0xfc20f83f, WR_D|RD_MACC|RD_T|FP_D, MX      },
 {"rol",     "d,v,t",   0,    (int) M_ROL,      INSN_MACRO,             I1      },
 {"rol",     "d,v,I",   0,    (int) M_ROL_I,    INSN_MACRO,             I1      },
-{"rorv",    "d,t,s",   0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d,         N5      },
-{"ror",     "d,w,s",   0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d,         N5      }, /* rorv */
-{"ror",            "d,w,<",    0x00200002, 0xffe0003f, WR_d|RD_t,              N5      },
 {"ror",     "d,v,t",   0,    (int) M_ROR,      INSN_MACRO,             I1      },
 {"ror",     "d,v,I",   0,    (int) M_ROR_I,    INSN_MACRO,             I1      },
+{"ror",            "d,w,<",    0x00200002, 0xffe0003f, WR_d|RD_t,              N5      },
+{"rorv",    "d,t,s",   0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d,         N5      },
 {"round.l.d", "D,S",   0x46200008, 0xffff003f, WR_D|RD_S|FP_D,         I3      },
 {"round.l.s", "D,S",   0x46000008, 0xffff003f, WR_D|RD_S|FP_S,         I3      },
 {"round.w.d", "D,S",   0x4620000c, 0xffff003f, WR_D|RD_S|FP_D,         I2      },
index c81e679f4e1164ce6a524ce1518f1c72454e091c..f28e5284372e176400d0990f047c4acf6c3cbfb1 100644 (file)
@@ -1,5 +1,5 @@
 /* mmix-dis.c -- Disassemble MMIX instructions.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
    Written by Hans-Peter Nilsson (hp@bitrange.com)
 
 This file is part of GDB and the GNU binutils.
@@ -66,13 +66,15 @@ struct mmix_dis_info
    char basic_reg_name[256][sizeof ("$255")];
  };
 
-static boolean initialize_mmix_dis_info PARAMS ((struct disassemble_info *));
-static const struct mmix_opcode *get_opcode PARAMS ((unsigned long));
+static bfd_boolean initialize_mmix_dis_info
+  PARAMS ((struct disassemble_info *));
+static const struct mmix_opcode *get_opcode
+  PARAMS ((unsigned long));
 
 
 /* Initialize a target-specific array in INFO.  */
 
-static boolean
+static bfd_boolean
 initialize_mmix_dis_info (info)
      struct disassemble_info *info;
 {
@@ -80,7 +82,7 @@ initialize_mmix_dis_info (info)
   int i;
 
   if (minfop == NULL)
-    return false;
+    return FALSE;
 
   memset (minfop, 0, sizeof (*minfop));
 
@@ -107,7 +109,7 @@ initialize_mmix_dis_info (info)
          if (syms == NULL)
            { FATAL_DEBUG;
              free (minfop);
-             return false;
+             return FALSE;
            }
          nsyms = bfd_canonicalize_symtab (abfd, syms);
 
@@ -137,7 +139,7 @@ initialize_mmix_dis_info (info)
     minfop->spec_reg_name[mmix_spec_regs[i].number] = mmix_spec_regs[i].name;
 
   info->private_data = (PTR) minfop;
-  return true;
+  return TRUE;
 }
 
 /* A table indexed by the first byte is constructed as we disassemble each
index 49facb358cec85f186b580c169dba8255fbeaedd..fe7144ae5054840857025e526bcb5d4a6e9ef82d 100644 (file)
@@ -1,5 +1,5 @@
 /* Print National Semiconductor 32000 instructions.
-   Copyright 1986, 1988, 1991, 1992, 1994, 1998, 2001
+   Copyright 1986, 1988, 1991, 1992, 1994, 1998, 2001, 2002
    Free Software Foundation, Inc.
 
 This file is part of opcodes library.
@@ -405,8 +405,8 @@ print_insn_ns32k (memaddr, info)
      bfd_vma memaddr;
      disassemble_info *info;
 {
-  register unsigned int i;
-  register char *d;
+  unsigned int i;
+  const char *d;
   unsigned short first_word;
   int ioffset;         /* bits into instruction */
   int aoffset;         /* bits into arguments */
@@ -556,10 +556,13 @@ print_insn_arg (d, ioffset, aoffsetp, buffer, addr, result, index_offset)
      char *result;
      int index_offset;
 {
-  int addr_mode;
-  float Fvalue;
-  double Lvalue;
+  union {
+    float f;
+    double d;
+    int i[2];
+  } value;
   int Ivalue;
+  int addr_mode;
   int disp1, disp2;
   int index;
   int size;
@@ -647,23 +650,23 @@ print_insn_arg (d, ioffset, aoffsetp, buffer, addr, result, index_offset)
              sprintf (result, "$%d", Ivalue);
              break;
            case 'F':
-             bit_copy (buffer, *aoffsetp, 32, (char *) &Fvalue);
-             flip_bytes ((char *) & Fvalue, 4);
+             bit_copy (buffer, *aoffsetp, 32, (char *) &value.f);
+             flip_bytes ((char *) &value.f, 4);
              *aoffsetp += 32;
-             if (INVALID_FLOAT (&Fvalue, 4))
-               sprintf (result, "<<invalid float 0x%.8x>>", *(int *) &Fvalue);
+             if (INVALID_FLOAT (&value.f, 4))
+               sprintf (result, "<<invalid float 0x%.8x>>", value.i[0]);
              else /* assume host has ieee float */
-               sprintf (result, "$%g", Fvalue);
+               sprintf (result, "$%g", value.f);
              break;
            case 'L':
-             bit_copy (buffer, *aoffsetp, 64, (char *) &Lvalue);
-             flip_bytes ((char *) & Lvalue, 8);
+             bit_copy (buffer, *aoffsetp, 64, (char *) &value.d);
+             flip_bytes ((char *) &value.d, 8);
              *aoffsetp += 64;
-             if (INVALID_FLOAT (&Lvalue, 8))
-               sprintf (result, "<<invalid long 0x%.8x%.8x>>",
-                        *(((int *) &Lvalue) + 1), *(int *) &Lvalue);
+             if (INVALID_FLOAT (&value.d, 8))
+               sprintf (result, "<<invalid double 0x%.8x%.8x>>",
+                        value.i[1], value.i[0]);
              else /* assume host has ieee float */
-               sprintf (result, "$%g", Lvalue);
+               sprintf (result, "$%g", value.d);
              break;
            }
          break;
index f66514c002ba4dec6ba8371c2a70b3e236bc9a32..5ec476622a1af282a9a16dec753714b08116044f 100644 (file)
@@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "openrisc-opc.h"
 #include "opintl.h"
 #include "libiberty.h"
+#include "xregex.h"
 
 /* Attributes.  */
 
@@ -263,9 +264,9 @@ const CGEN_MAYBE_MULTI_IFLD OPENRISC_F_I16NC_MULTI_IFIELD [];
 
 const CGEN_MAYBE_MULTI_IFLD OPENRISC_F_I16NC_MULTI_IFIELD [] =
 {
-    { 0, &(openrisc_cgen_ifld_table[19]) },
-    { 0, &(openrisc_cgen_ifld_table[20]) },
-    {0,0}
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[19] } },
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[20] } },
+    { 0, { (const PTR) 0 } }
 };
 
 /* The operand table.  */
@@ -285,69 +286,72 @@ const CGEN_OPERAND openrisc_cgen_operand_table[] =
 {
 /* pc: program counter */
   { "pc", OPENRISC_OPERAND_PC, HW_H_PC, 0, 0,
-    { 0, &(openrisc_cgen_ifld_table[0]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[0] } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* sr: special register */
   { "sr", OPENRISC_OPERAND_SR, HW_H_SR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* cbit: condition bit */
   { "cbit", OPENRISC_OPERAND_CBIT, HW_H_CBIT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* simm-16: 16 bit signed immediate */
   { "simm-16", OPENRISC_OPERAND_SIMM_16, HW_H_SINT, 15, 16,
-    { 0, &(openrisc_cgen_ifld_table[7]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[7] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* uimm-16: 16 bit unsigned immediate */
   { "uimm-16", OPENRISC_OPERAND_UIMM_16, HW_H_UINT, 15, 16,
-    { 0, &(openrisc_cgen_ifld_table[8]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[8] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* disp-26: pc-rel 26 bit */
   { "disp-26", OPENRISC_OPERAND_DISP_26, HW_H_IADDR, 25, 26,
-    { 0, &(openrisc_cgen_ifld_table[21]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[21] } }, 
     { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* abs-26: abs 26 bit */
   { "abs-26", OPENRISC_OPERAND_ABS_26, HW_H_IADDR, 25, 26,
-    { 0, &(openrisc_cgen_ifld_table[22]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[22] } }, 
     { 0|A(ABS_ADDR), { (1<<MACH_BASE) } }  },
 /* uimm-5: imm5 */
   { "uimm-5", OPENRISC_OPERAND_UIMM_5, HW_H_UINT, 4, 5,
-    { 0, &(openrisc_cgen_ifld_table[9]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[9] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* rD: destination register */
   { "rD", OPENRISC_OPERAND_RD, HW_H_GR, 25, 5,
-    { 0, &(openrisc_cgen_ifld_table[4]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[4] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* rA: source register A */
   { "rA", OPENRISC_OPERAND_RA, HW_H_GR, 20, 5,
-    { 0, &(openrisc_cgen_ifld_table[5]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[5] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* rB: source register B */
   { "rB", OPENRISC_OPERAND_RB, HW_H_GR, 15, 5,
-    { 0, &(openrisc_cgen_ifld_table[6]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[6] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* op-f-23: f-op23 */
   { "op-f-23", OPENRISC_OPERAND_OP_F_23, HW_H_UINT, 23, 3,
-    { 0, &(openrisc_cgen_ifld_table[15]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[15] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* op-f-3: f-op3 */
   { "op-f-3", OPENRISC_OPERAND_OP_F_3, HW_H_UINT, 25, 5,
-    { 0, &(openrisc_cgen_ifld_table[16]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[16] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* hi16: high 16 bit immediate, sign optional */
   { "hi16", OPENRISC_OPERAND_HI16, HW_H_HI16, 15, 16,
-    { 0, &(openrisc_cgen_ifld_table[7]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[7] } }, 
     { 0|A(SIGN_OPT), { (1<<MACH_BASE) } }  },
 /* lo16: low 16 bit immediate, sign optional */
   { "lo16", OPENRISC_OPERAND_LO16, HW_H_LO16, 15, 16,
-    { 0, &(openrisc_cgen_ifld_table[11]) }, 
+    { 0, { (const PTR) &openrisc_cgen_ifld_table[11] } }, 
     { 0|A(SIGN_OPT), { (1<<MACH_BASE) } }  },
 /* ui16nc: 16 bit immediate, sign optional */
   { "ui16nc", OPENRISC_OPERAND_UI16NC, HW_H_LO16, 10, 16,
-    { 2, &(OPENRISC_F_I16NC_MULTI_IFIELD[0]) }, 
+    { 2, { (const PTR) &OPENRISC_F_I16NC_MULTI_IFIELD[0] } }, 
     { 0|A(SIGN_OPT)|A(VIRTUAL), { (1<<MACH_BASE) } }  },
-  { 0, 0, 0, 0, 0, {0, {0}} }
+/* sentinel */
+  { 0, 0, 0, 0, 0,
+    { 0, { (const PTR) 0 } },
+    { 0, { 0 } } }
 };
 
 #undef A
@@ -1018,7 +1022,7 @@ openrisc_cgen_cpu_close (cd)
      CGEN_CPU_DESC cd;
 {
   unsigned int i;
-  CGEN_INSN *insns;
+  const CGEN_INSN *insns;
 
   if (cd->macro_insn_table.init_entries)
     {
@@ -1026,7 +1030,7 @@ openrisc_cgen_cpu_close (cd)
       for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX ((insns)))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
@@ -1036,7 +1040,7 @@ openrisc_cgen_cpu_close (cd)
       for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX (insns))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
index e6a7d6a9d8520c8850ded90729751ff9866128e8..5c4da5f3e94f510a66019dea3f9a8c465d3cc597 100644 (file)
@@ -4,7 +4,8 @@
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 - the resultant file is machine generated, cgen-dis.in isn't
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and GDB, the GNU debugger.
 
@@ -31,6 +32,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #include "dis-asm.h"
 #include "bfd.h"
 #include "symcat.h"
+#include "libiberty.h"
 #include "openrisc-desc.h"
 #include "openrisc-opc.h"
 #include "opintl.h"
index 507db93a6d98429061f155bc345d2b05ad997c28..4f5bf84aead8ad8af5451ed78bd20dc9ac73d87d 100644 (file)
@@ -84,7 +84,7 @@ print_reg (reg, info)
                FPRINTF (F, "r%d", reg); break;
     case 6:    FPRINTF (F, "sp"); break;
     case 7:    FPRINTF (F, "pc"); break;
-    default:   /* error */
+    default: ; /* error */
     }
 }
 
index b8b81a96a7ecc6e2b7aff130021d216ca4d3999e..50d1750f2521e20f6e116b1280c4871a30351c6c 100644 (file)
@@ -62,7 +62,7 @@ print_insn_pj (addr, info)
       unsigned char byte_2;
       if ((status = info->read_memory_func (addr + 1, &byte_2, 1, info)))
        goto fail;
-      fprintf_fn (stream, "%s\t", pj_opc_info[opcode + byte_2].name);
+      fprintf_fn (stream, "%s\t", pj_opc_info[opcode + byte_2].u.name);
       return 2;
     }
   else
@@ -72,12 +72,12 @@ print_insn_pj (addr, info)
       const pj_opc_info_t *op = &pj_opc_info[opcode];
       int a;
       addr++;
-      fprintf_fn (stream, "%s", op->name);
+      fprintf_fn (stream, "%s", op->u.name);
 
       /* The tableswitch instruction is followed by the default
         address, low value, high value and the destinations.  */
 
-      if (strcmp (op->name, "tableswitch") == 0)
+      if (strcmp (op->u.name, "tableswitch") == 0)
        {
          int lowval;
          int highval;
@@ -116,7 +116,7 @@ print_insn_pj (addr, info)
         address, element count and pairs of values and
         addresses.  */
 
-      if (strcmp (op->name, "lookupswitch") == 0)
+      if (strcmp (op->u.name, "lookupswitch") == 0)
        {
          int count;
          int val;
index ca2a867482a051e66aec63d93cc118d3969b1ef9..68ca05e20f52d219528b9e4a6def81f7639bbc77 100644 (file)
@@ -22,515 +22,515 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 const pj_opc_info_t pj_opc_info[512] =
 {
-{ 0x00,   -1, 1, {O_N, O_N}, "nop"},
-{ 0x01,   -1, 1, {O_N, O_N}, "aconst_null"},
-{ 0x02,   -1, 1, {O_N, O_N}, "iconst_m1"},
-{ 0x03,   -1, 1, {O_N, O_N}, "iconst_0"},
-{ 0x04,   -1, 1, {O_N, O_N}, "iconst_1"},
-{ 0x05,   -1, 1, {O_N, O_N}, "iconst_2"},
-{ 0x06,   -1, 1, {O_N, O_N}, "iconst_3"},
-{ 0x07,   -1, 1, {O_N, O_N}, "iconst_4"},
-{ 0x08,   -1, 1, {O_N, O_N}, "iconst_5"},
-{ 0x09,   -1, 1, {O_N, O_N}, "lconst_0"},
-{ 0x0a,   -1, 1, {O_N, O_N}, "lconst_1"},
-{ 0x0b,   -1, 1, {O_N, O_N}, "fconst_0"},
-{ 0x0c,   -1, 1, {O_N, O_N}, "fconst_1"},
-{ 0x0d,   -1, 1, {O_N, O_N}, "fconst_2"},
-{ 0x0e,   -1, 1, {O_N, O_N}, "dconst_0"},
-{ 0x0f,   -1, 1, {O_N, O_N}, "dconst_1"},
-{ 0x10,   -1, 2, {O_8, O_N}, "bipush"},
-{ 0x11,   -1, 3, {O_16, O_N}, "sipush"},
-{ 0x12,   -1, 2, {O_N, O_N}, "ldc"},
-{ 0x13,   -1, 3, {O_N, O_N}, "ldc_w"},
-{ 0x14,   -1, 3, {O_N, O_N}, "ldc2_w"},
-{ 0x15,   -1, 2, {O_U8, O_N}, "iload"},
-{ 0x16,   -1, 2, {O_U8, O_N}, "lload"},
-{ 0x17,   -1, 2, {O_U8, O_N}, "fload"},
-{ 0x18,   -1, 2, {O_U8, O_N}, "dload"},
-{ 0x19,   -1, 2, {O_U8, O_N}, "aload"},
-{ 0x1a,   -1, 1, {O_N, O_N}, "iload_0"},
-{ 0x1b,   -1, 1, {O_N, O_N}, "iload_1"},
-{ 0x1c,   -1, 1, {O_N, O_N}, "iload_2"},
-{ 0x1d,   -1, 1, {O_N, O_N}, "iload_3"},
-{ 0x1e,   -1, 1, {O_N, O_N}, "lload_0"},
-{ 0x1f,   -1, 1, {O_N, O_N}, "lload_1"},
-{ 0x20,   -1, 1, {O_N, O_N}, "lload_2"},
-{ 0x21,   -1, 1, {O_N, O_N}, "lload_3"},
-{ 0x22,   -1, 1, {O_N, O_N}, "fload_0"},
-{ 0x23,   -1, 1, {O_N, O_N}, "fload_1"},
-{ 0x24,   -1, 1, {O_N, O_N}, "fload_2"},
-{ 0x25,   -1, 1, {O_N, O_N}, "fload_3"},
-{ 0x26,   -1, 1, {O_N, O_N}, "dload_0"},
-{ 0x27,   -1, 1, {O_N, O_N}, "dload_1"},
-{ 0x28,   -1, 1, {O_N, O_N}, "dload_2"},
-{ 0x29,   -1, 1, {O_N, O_N}, "dload_3"},
-{ 0x2a,   -1, 1, {O_N, O_N}, "aload_0"},
-{ 0x2b,   -1, 1, {O_N, O_N}, "aload_1"},
-{ 0x2c,   -1, 1, {O_N, O_N}, "aload_2"},
-{ 0x2d,   -1, 1, {O_N, O_N}, "aload_3"},
-{ 0x2e,   -1, 1, {O_N, O_N}, "iaload"},
-{ 0x2f,   -1, 1, {O_N, O_N}, "laload"},
-{ 0x30,   -1, 1, {O_N, O_N}, "faload"},
-{ 0x31,   -1, 1, {O_N, O_N}, "daload"},
-{ 0x32,   -1, 1, {O_N, O_N}, "aaload"},
-{ 0x33,   -1, 1, {O_N, O_N}, "baload"},
-{ 0x34,   -1, 1, {O_N, O_N}, "caload"},
-{ 0x35,   -1, 1, {O_N, O_N}, "saload"},
-{ 0x36,   -1, 2, {O_U8, O_N}, "istore"},
-{ 0x37,   -1, 2, {O_U8, O_N}, "lstore"},
-{ 0x38,   -1, 2, {O_U8, O_N}, "fstore"},
-{ 0x39,   -1, 2, {O_U8, O_N}, "dstore"},
-{ 0x3a,   -1, 2, {O_U8, O_N}, "astore"},
-{ 0x3b,   -1, 1, {O_N, O_N}, "istore_0"},
-{ 0x3c,   -1, 1, {O_N, O_N}, "istore_1"},
-{ 0x3d,   -1, 1, {O_N, O_N}, "istore_2"},
-{ 0x3e,   -1, 1, {O_N, O_N}, "istore_3"},
-{ 0x3f,   -1, 1, {O_N, O_N}, "lstore_0"},
-{ 0x40,   -1, 1, {O_N, O_N}, "lstore_1"},
-{ 0x41,   -1, 1, {O_N, O_N}, "lstore_2"},
-{ 0x42,   -1, 1, {O_N, O_N}, "lstore_3"},
-{ 0x43,   -1, 1, {O_N, O_N}, "fstore_0"},
-{ 0x44,   -1, 1, {O_N, O_N}, "fstore_1"},
-{ 0x45,   -1, 1, {O_N, O_N}, "fstore_2"},
-{ 0x46,   -1, 1, {O_N, O_N}, "fstore_3"},
-{ 0x47,   -1, 1, {O_N, O_N}, "dstore_0"},
-{ 0x48,   -1, 1, {O_N, O_N}, "dstore_1"},
-{ 0x49,   -1, 1, {O_N, O_N}, "dstore_2"},
-{ 0x4a,   -1, 1, {O_N, O_N}, "dstore_3"},
-{ 0x4b,   -1, 1, {O_N, O_N}, "astore_0"},
-{ 0x4c,   -1, 1, {O_N, O_N}, "astore_1"},
-{ 0x4d,   -1, 1, {O_N, O_N}, "astore_2"},
-{ 0x4e,   -1, 1, {O_N, O_N}, "astore_3"},
-{ 0x4f,   -1, 1, {O_N, O_N}, "iastore"},
-{ 0x50,   -1, 1, {O_N, O_N}, "lastore"},
-{ 0x51,   -1, 1, {O_N, O_N}, "fastore"},
-{ 0x52,   -1, 1, {O_N, O_N}, "dastore"},
-{ 0x53,   -1, 1, {O_N, O_N}, "aastore"},
-{ 0x54,   -1, 1, {O_N, O_N}, "bastore"},
-{ 0x55,   -1, 1, {O_N, O_N}, "castore"},
-{ 0x56,   -1, 1, {O_N, O_N}, "sastore"},
-{ 0x57,   -1, 1, {O_N, O_N}, "pop"},
-{ 0x58,   -1, 1, {O_N, O_N}, "pop2"},
-{ 0x59,   -1, 1, {O_N, O_N}, "dup"},
-{ 0x5a,   -1, 1, {O_N, O_N}, "dup_x1"},
-{ 0x5b,   -1, 1, {O_N, O_N}, "dup_x2"},
-{ 0x5c,   -1, 1, {O_N, O_N}, "dup2"},
-{ 0x5d,   -1, 1, {O_N, O_N}, "dup2_x1"},
-{ 0x5e,   -1, 1, {O_N, O_N}, "dup2_x2"},
-{ 0x5f,   -1, 1, {O_N, O_N}, "swap"},
-{ 0x60,   -1, 1, {O_N, O_N}, "iadd"},
-{ 0x61,   -1, 1, {O_N, O_N}, "ladd"},
-{ 0x62,   -1, 1, {O_N, O_N}, "fadd"},
-{ 0x63,   -1, 1, {O_N, O_N}, "dadd"},
-{ 0x64,   -1, 1, {O_N, O_N}, "isub"},
-{ 0x65,   -1, 1, {O_N, O_N}, "lsub"},
-{ 0x66,   -1, 1, {O_N, O_N}, "fsub"},
-{ 0x67,   -1, 1, {O_N, O_N}, "dsub"},
-{ 0x68,   -1, 1, {O_N, O_N}, "imul"},
-{ 0x69,   -1, 1, {O_N, O_N}, "lmul"},
-{ 0x6a,   -1, 1, {O_N, O_N}, "fmul"},
-{ 0x6b,   -1, 1, {O_N, O_N}, "dmul"},
-{ 0x6c,   -1, 1, {O_N, O_N}, "idiv"},
-{ 0x6d,   -1, 1, {O_N, O_N}, "ldiv"},
-{ 0x6e,   -1, 1, {O_N, O_N}, "fdiv"},
-{ 0x6f,   -1, 1, {O_N, O_N}, "ddiv"},
-{ 0x70,   -1, 1, {O_N, O_N}, "irem"},
-{ 0x71,   -1, 1, {O_N, O_N}, "lrem"},
-{ 0x72,   -1, 1, {O_N, O_N}, "frem"},
-{ 0x73,   -1, 1, {O_N, O_N}, "drem"},
-{ 0x74,   -1, 1, {O_N, O_N}, "ineg"},
-{ 0x75,   -1, 1, {O_N, O_N}, "lneg"},
-{ 0x76,   -1, 1, {O_N, O_N}, "fneg"},
-{ 0x77,   -1, 1, {O_N, O_N}, "dneg"},
-{ 0x78,   -1, 1, {O_N, O_N}, "ishl"},
-{ 0x79,   -1, 1, {O_N, O_N}, "lshl"},
-{ 0x7a,   -1, 1, {O_N, O_N}, "ishr"},
-{ 0x7b,   -1, 1, {O_N, O_N}, "lshr"},
-{ 0x7c,   -1, 1, {O_N, O_N}, "iushr"},
-{ 0x7d,   -1, 1, {O_N, O_N}, "lushr"},
-{ 0x7e,   -1, 1, {O_N, O_N}, "iand"},
-{ 0x7f,   -1, 1, {O_N, O_N}, "land"},
-{ 0x80,   -1, 1, {O_N, O_N}, "ior"},
-{ 0x81,   -1, 1, {O_N, O_N}, "lor"},
-{ 0x82,   -1, 1, {O_N, O_N}, "ixor"},
-{ 0x83,   -1, 1, {O_N, O_N}, "lxor"},
-{ 0x84,   -1, 3, {O_U8, O_8}, "iinc"},
-{ 0x85,   -1, 1, {O_N, O_N}, "i2l"},
-{ 0x86,   -1, 1, {O_N, O_N}, "i2f"},
-{ 0x87,   -1, 1, {O_N, O_N}, "i2d"},
-{ 0x88,   -1, 1, {O_N, O_N}, "l2i"},
-{ 0x89,   -1, 1, {O_N, O_N}, "l2f"},
-{ 0x8a,   -1, 1, {O_N, O_N}, "l2d"},
-{ 0x8b,   -1, 1, {O_N, O_N}, "f2i"},
-{ 0x8c,   -1, 1, {O_N, O_N}, "f2l"},
-{ 0x8d,   -1, 1, {O_N, O_N}, "f2d"},
-{ 0x8e,   -1, 1, {O_N, O_N}, "d2i"},
-{ 0x8f,   -1, 1, {O_N, O_N}, "d2l"},
-{ 0x90,   -1, 1, {O_N, O_N}, "d2f"},
-{ 0x91,   -1, 1, {O_N, O_N}, "i2b"},
-{ 0x92,   -1, 1, {O_N, O_N}, "i2c"},
-{ 0x93,   -1, 1, {O_N, O_N}, "i2s"},
-{ 0x94,   -1, 1, {O_N, O_N}, "lcmp"},
-{ 0x95,   -1, 1, {O_N, O_N}, "fcmpl"},
-{ 0x96,   -1, 1, {O_N, O_N}, "fcmpg"},
-{ 0x97,   -1, 1, {O_N, O_N}, "dcmpl"},
-{ 0x98,   -1, 1, {O_N, O_N}, "dcmpg"},
-{ 0x99,   -1, 3, {O_R16, O_N}, "ifeq"},
-{ 0x9a,   -1, 3, {O_R16, O_N}, "ifne"},
-{ 0x9b,   -1, 3, {O_R16, O_N}, "iflt"},
-{ 0x9c,   -1, 3, {O_R16, O_N}, "ifge"},
-{ 0x9d,   -1, 3, {O_R16, O_N}, "ifgt"},
-{ 0x9e,   -1, 3, {O_R16, O_N}, "ifle"},
-{ 0x9f,   -1, 3, {O_R16, O_N}, "if_icmpeq"},
-{ 0xa0,   -1, 3, {O_R16, O_N}, "if_icmpne"},
-{ 0xa1,   -1, 3, {O_R16, O_N}, "if_icmplt"},
-{ 0xa2,   -1, 3, {O_R16, O_N}, "if_icmpge"},
-{ 0xa3,   -1, 3, {O_R16, O_N}, "if_icmpgt"},
-{ 0xa4,   -1, 3, {O_R16, O_N}, "if_icmple"},
-{ 0xa5,   -1, 3, {O_R16, O_N}, "if_acmpeq"},
-{ 0xa6,   -1, 3, {O_R16, O_N}, "if_acmpne"},
-{ 0xa7,   -1, 3, {O_R16, O_N}, "goto"},
-{ 0xa8,   -1, 3, {O_N, O_N}, "jsr"},
-{ 0xa9,   -1, 2, {O_N, O_N}, "ret"},
-{ 0xaa,   -1, 1, {O_N, O_N}, "tableswitch"},
-{ 0xab,   -1, 1, {O_N, O_N}, "lookupswitch"},
-{ 0xac,   -1, 1, {O_N, O_N}, "ireturn"},
-{ 0xad,   -1, 1, {O_N, O_N}, "lreturn"},
-{ 0xae,   -1, 1, {O_N, O_N}, "freturn"},
-{ 0xaf,   -1, 1, {O_N, O_N}, "dreturn"},
-{ 0xb0,   -1, 1, {O_N, O_N}, "areturn"},
-{ 0xb1,   -1, 1, {O_N, O_N}, "return"},
-{ 0xb2,   -1, 3, {O_N, O_N}, "getstatic"},
-{ 0xb3,   -1, 3, {O_N, O_N}, "putstatic"},
-{ 0xb4,   -1, 3, {O_N, O_N}, "getfield"},
-{ 0xb5,   -1, 3, {O_N, O_N}, "putfield"},
-{ 0xb6,   -1, 3, {O_N, O_N}, "invokevirtual"},
-{ 0xb7,   -1, 3, {O_N, O_N}, "invokespecial"},
-{ 0xb8,   -1, 3, {O_N, O_N}, "invokestatic"},
-{ 0xb9,   -1, 5, {O_N, O_N}, "invokeinterface"},
-{ 0xba,   -1, 1, {O_N, O_N}, "bad_ba"},
-{ 0xbb,   -1, 3, {O_N, O_N}, "new"},
-{ 0xbc,   -1, 2, {O_N, O_N}, "newarray"},
-{ 0xbd,   -1, 3, {O_N, O_N}, "anewarray"},
-{ 0xbe,   -1, 1, {O_N, O_N}, "arraylength"},
-{ 0xbf,   -1, 1, {O_N, O_N}, "athrow"},
-{ 0xc0,   -1, 3, {O_N, O_N}, "checkcast"},
-{ 0xc1,   -1, 3, {O_N, O_N}, "instanceof"},
-{ 0xc2,   -1, 1, {O_N, O_N}, "monitorenter"},
-{ 0xc3,   -1, 1, {O_N, O_N}, "monitorexit"},
-{ 0xc4,   -1, 1, {O_N, O_N}, "wide"},
-{ 0xc5,   -1, 4, {O_N, O_N}, "multianewarray"},
-{ 0xc6,   -1, 3, {O_N, O_N}, "ifnull"},
-{ 0xc7,   -1, 3, {O_N, O_N}, "ifnonnull"},
-{ 0xc8,   -1, 5, {O_N, O_N}, "goto_w"},
-{ 0xc9,   -1, 5, {O_N, O_N}, "jsr_w"},
-{ 0xca,   -1, 1, {O_N, O_N}, "breakpoint"},
-{ 0xcb,   -1, 1, {O_N, O_N}, "bytecode"},
-{ 0xcc,   -1, 1, {O_N, O_N}, "try"},
-{ 0xcd,   -1, 1, {O_N, O_N}, "endtry"},
-{ 0xce,   -1, 1, {O_N, O_N}, "catch"},
-{ 0xcf,   -1, 1, {O_N, O_N}, "var"},
-{ 0xd0,   -1, 1, {O_N, O_N}, "endvar"},
-{ 0xd1,   -1, 1, {O_N, O_N}, "bad_d1"},
-{ 0xd2,   -1, 1, {O_N, O_N}, "bad_d2"},
-{ 0xd3,   -1, 1, {O_N, O_N}, "bad_d3"},
-{ 0xd4,   -1, 1, {O_N, O_N}, "bad_d4"},
-{ 0xd5,   -1, 1, {O_N, O_N}, "bad_d5"},
-{ 0xd6,   -1, 1, {O_N, O_N}, "bad_d6"},
-{ 0xd7,   -1, 1, {O_N, O_N}, "bad_d7"},
-{ 0xd8,   -1, 1, {O_N, O_N}, "bad_d8"},
-{ 0xd9,   -1, 1, {O_N, O_N}, "bad_d9"},
-{ 0xda,   -1, 1, {O_N, O_N}, "bad_da"},
-{ 0xdb,   -1, 1, {O_N, O_N}, "bad_db"},
-{ 0xdc,   -1, 1, {O_N, O_N}, "bad_dc"},
-{ 0xdd,   -1, 1, {O_N, O_N}, "bad_dd"},
-{ 0xde,   -1, 1, {O_N, O_N}, "bad_de"},
-{ 0xdf,   -1, 1, {O_N, O_N}, "bad_df"},
-{ 0xe0,   -1, 1, {O_N, O_N}, "bad_e0"},
-{ 0xe1,   -1, 1, {O_N, O_N}, "bad_e1"},
-{ 0xe2,   -1, 1, {O_N, O_N}, "bad_e2"},
-{ 0xe3,   -1, 1, {O_N, O_N}, "bad_e3"},
-{ 0xe4,   -1, 1, {O_N, O_N}, "bad_e4"},
-{ 0xe5,   -1, 1, {O_N, O_N}, "bad_e5"},
-{ 0xe6,   -1, 1, {O_N, O_N}, "bad_e6"},
-{ 0xe7,   -1, 1, {O_N, O_N}, "bad_e7"},
-{ 0xe8,   -1, 1, {O_N, O_N}, "bad_e8"},
-{ 0xe9,   -1, 1, {O_N, O_N}, "bad_e9"},
-{ 0xea,   -1, 1, {O_N, O_N}, "bad_ea"},
-{ 0xeb,   -1, 1, {O_N, O_N}, "bad_eb"},
-{ 0xec,   -1, 1, {O_N, O_N}, "bad_ec"},
-{ 0xed,   -1, 3, {O_16, O_N}, "sethi"},
-{ 0xee,   -1, 3, {O_U8, O_8}, "load_word_index"},
-{ 0xef,   -1, 3, {O_U8, O_8}, "load_short_index"},
-{ 0xf0,   -1, 3, {O_U8, O_8}, "load_char_index"},
-{ 0xf1,   -1, 3, {O_U8, O_8}, "load_byte_index"},
-{ 0xf2,   -1, 3, {O_U8, O_8}, "load_ubyte_index"},
-{ 0xf3,   -1, 3, {O_U8, O_8}, "store_word_index"},
-{ 0xf4,   -1, 3, {O_U8, O_8}, "na_store_word_index"},
-{ 0xf5,   -1, 3, {O_U8, O_8}, "store_short_index"},
-{ 0xf6,   -1, 3, {O_U8, O_8}, "store_byte_index"},
-{ 0xf7,   -1, 1, {O_N, O_N}, "bad_f7"},
-{ 0xf8,   -1, 1, {O_N, O_N}, "bad_f8"},
-{ 0xf9,   -1, 1, {O_N, O_N}, "bad_f9"},
-{ 0xfa,   -1, 1, {O_N, O_N}, "bad_fa"},
-{ 0xfb,   -1, 1, {O_N, O_N}, "bad_fb"},
-{ 0xfc,   -1, 1, {O_N, O_N}, "bad_fc"},
-{ 0xfd,   -1, 1, {O_N, O_N}, "bad_fd"},
-{ 0xfe,   -1, 1, {O_N, O_N}, "bad_fe"},
-{ 0xff, 0x00, 2, {O_N, O_N}, "load_ubyte"},
-{ 0xff, 0x01, 2, {O_N, O_N}, "load_byte"},
-{ 0xff, 0x02, 2, {O_N, O_N}, "load_char"},
-{ 0xff, 0x03, 2, {O_N, O_N}, "load_short"},
-{ 0xff, 0x04, 2, {O_N, O_N}, "load_word"},
-{ 0xff, 0x05, 2, {O_N, O_N}, "priv_ret_from_trap"},
-{ 0xff, 0x06, 2, {O_N, O_N}, "priv_read_dcache_tag"},
-{ 0xff, 0x07, 2, {O_N, O_N}, "priv_read_dcache_data"},
-{ 0xff, 0x08, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x09, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x0a, 2, {O_N, O_N}, "load_char_oe"},
-{ 0xff, 0x0b, 2, {O_N, O_N}, "load_short_oe"},
-{ 0xff, 0x0c, 2, {O_N, O_N}, "load_word_oe"},
-{ 0xff, 0x0d, 2, {O_N, O_N}, "return0"},
-{ 0xff, 0x0e, 2, {O_N, O_N}, "priv_read_icache_tag"},
-{ 0xff, 0x0f, 2, {O_N, O_N}, "priv_read_icache_data"},
-{ 0xff, 0x10, 2, {O_N, O_N}, "ncload_ubyte"},
-{ 0xff, 0x11, 2, {O_N, O_N}, "ncload_byte"},
-{ 0xff, 0x12, 2, {O_N, O_N}, "ncload_char"},
-{ 0xff, 0x13, 2, {O_N, O_N}, "ncload_short"},
-{ 0xff, 0x14, 2, {O_N, O_N}, "ncload_word"},
-{ 0xff, 0x15, 2, {O_N, O_N}, "iucmp"},
-{ 0xff, 0x16, 2, {O_N, O_N}, "priv_powerdown"},
-{ 0xff, 0x17, 2, {O_N, O_N}, "cache_invalidate"},
-{ 0xff, 0x18, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x19, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x1a, 2, {O_N, O_N}, "ncload_char_oe"},
-{ 0xff, 0x1b, 2, {O_N, O_N}, "ncload_short_oe"},
-{ 0xff, 0x1c, 2, {O_N, O_N}, "ncload_word_oe"},
-{ 0xff, 0x1d, 2, {O_N, O_N}, "return1"},
-{ 0xff, 0x1e, 2, {O_N, O_N}, "cache_flush"},
-{ 0xff, 0x1f, 2, {O_N, O_N}, "cache_index_flush"},
-{ 0xff, 0x20, 2, {O_N, O_N}, "store_byte"},
-{ 0xff, 0x21, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x22, 2, {O_N, O_N}, "store_short"},
-{ 0xff, 0x23, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x24, 2, {O_N, O_N}, "store_word"},
-{ 0xff, 0x25, 2, {O_N, O_N}, "soft_trap"},
-{ 0xff, 0x26, 2, {O_N, O_N}, "priv_write_dcache_tag"},
-{ 0xff, 0x27, 2, {O_N, O_N}, "priv_write_dcache_data"},
-{ 0xff, 0x28, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x29, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x2a, 2, {O_N, O_N}, "store_short_oe"},
-{ 0xff, 0x2b, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x2c, 2, {O_N, O_N}, "store_word_oe"},
-{ 0xff, 0x2d, 2, {O_N, O_N}, "return2"},
-{ 0xff, 0x2e, 2, {O_N, O_N}, "priv_write_icache_tag"},
-{ 0xff, 0x2f, 2, {O_N, O_N}, "priv_write_icache_data"},
-{ 0xff, 0x30, 2, {O_N, O_N}, "ncstore_byte"},
-{ 0xff, 0x31, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x32, 2, {O_N, O_N}, "ncstore_short"},
-{ 0xff, 0x33, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x34, 2, {O_N, O_N}, "ncstore_word"},
-{ 0xff, 0x35, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x36, 2, {O_N, O_N}, "priv_reset"},
-{ 0xff, 0x37, 2, {O_N, O_N}, "get_current_class"},
-{ 0xff, 0x38, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x39, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x3a, 2, {O_N, O_N}, "ncstore_short_oe"},
-{ 0xff, 0x3b, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x3c, 2, {O_N, O_N}, "ncstore_word_oe"},
-{ 0xff, 0x3d, 2, {O_N, O_N}, "call"},
-{ 0xff, 0x3e, 2, {O_N, O_N}, "zero_line"},
-{ 0xff, 0x3f, 2, {O_N, O_N}, "priv_update_optop"},
-{ 0xff, 0x40, 2, {O_N, O_N}, "read_pc"},
-{ 0xff, 0x41, 2, {O_N, O_N}, "read_vars"},
-{ 0xff, 0x42, 2, {O_N, O_N}, "read_frame"},
-{ 0xff, 0x43, 2, {O_N, O_N}, "read_optop"},
-{ 0xff, 0x44, 2, {O_N, O_N}, "priv_read_oplim"},
-{ 0xff, 0x45, 2, {O_N, O_N}, "read_const_pool"},
-{ 0xff, 0x46, 2, {O_N, O_N}, "priv_read_psr"},
-{ 0xff, 0x47, 2, {O_N, O_N}, "priv_read_trapbase"},
-{ 0xff, 0x48, 2, {O_N, O_N}, "priv_read_lockcount0"},
-{ 0xff, 0x49, 2, {O_N, O_N}, "priv_read_lockcount1"},
-{ 0xff, 0x4a, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x4b, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x4c, 2, {O_N, O_N}, "priv_read_lockaddr0"},
-{ 0xff, 0x4d, 2, {O_N, O_N}, "priv_read_lockaddr1"},
-{ 0xff, 0x4e, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x4f, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x50, 2, {O_N, O_N}, "priv_read_userrange1"},
-{ 0xff, 0x51, 2, {O_N, O_N}, "priv_read_gc_config"},
-{ 0xff, 0x52, 2, {O_N, O_N}, "priv_read_brk1a"},
-{ 0xff, 0x53, 2, {O_N, O_N}, "priv_read_brk2a"},
-{ 0xff, 0x54, 2, {O_N, O_N}, "priv_read_brk12c"},
-{ 0xff, 0x55, 2, {O_N, O_N}, "priv_read_userrange2"},
-{ 0xff, 0x56, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x57, 2, {O_N, O_N}, "priv_read_versionid"},
-{ 0xff, 0x58, 2, {O_N, O_N}, "priv_read_hcr"},
-{ 0xff, 0x59, 2, {O_N, O_N}, "priv_read_sc_bottom"},
-{ 0xff, 0x5a, 2, {O_N, O_N}, "read_global0"},
-{ 0xff, 0x5b, 2, {O_N, O_N}, "read_global1"},
-{ 0xff, 0x5c, 2, {O_N, O_N}, "read_global2"},
-{ 0xff, 0x5d, 2, {O_N, O_N}, "read_global3"},
-{ 0xff, 0x5e, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x5f, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x60, 2, {O_N, O_N}, "write_pc"},
-{ 0xff, 0x61, 2, {O_N, O_N}, "write_vars"},
-{ 0xff, 0x62, 2, {O_N, O_N}, "write_frame"},
-{ 0xff, 0x63, 2, {O_N, O_N}, "write_optop"},
-{ 0xff, 0x64, 2, {O_N, O_N}, "priv_write_oplim"},
-{ 0xff, 0x65, 2, {O_N, O_N}, "write_const_pool"},
-{ 0xff, 0x66, 2, {O_N, O_N}, "priv_write_psr"},
-{ 0xff, 0x67, 2, {O_N, O_N}, "priv_write_trapbase"},
-{ 0xff, 0x68, 2, {O_N, O_N}, "priv_write_lockcount0"},
-{ 0xff, 0x69, 2, {O_N, O_N}, "priv_write_lockcount1"},
-{ 0xff, 0x6a, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x6b, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x6c, 2, {O_N, O_N}, "priv_write_lockaddr0"},
-{ 0xff, 0x6d, 2, {O_N, O_N}, "priv_write_lockaddr1"},
-{ 0xff, 0x6e, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x6f, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x70, 2, {O_N, O_N}, "priv_write_userrange1"},
-{ 0xff, 0x71, 2, {O_N, O_N}, "priv_write_gc_config"},
-{ 0xff, 0x72, 2, {O_N, O_N}, "priv_write_brk1a"},
-{ 0xff, 0x73, 2, {O_N, O_N}, "priv_write_brk2a"},
-{ 0xff, 0x74, 2, {O_N, O_N}, "priv_write_brk12c"},
-{ 0xff, 0x75, 2, {O_N, O_N}, "priv_write_userrange2"},
-{ 0xff, 0x76, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x77, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x78, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x79, 2, {O_N, O_N}, "priv_write_sc_bottom"},
-{ 0xff, 0x7a, 2, {O_N, O_N}, "write_global0"},
-{ 0xff, 0x7b, 2, {O_N, O_N}, "write_global1"},
-{ 0xff, 0x7c, 2, {O_N, O_N}, "write_global2"},
-{ 0xff, 0x7d, 2, {O_N, O_N}, "write_global3"},
-{ 0xff, 0x7e, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x7f, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x80, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x81, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x82, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x83, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x84, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x85, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x86, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x87, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x88, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x89, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x8a, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x8b, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x8c, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x8d, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x8e, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x8f, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x90, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x91, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x92, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x93, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x94, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x95, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x96, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x97, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x98, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x99, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x9a, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x9b, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x9c, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x9d, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x9e, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0x9f, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa0, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa1, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa2, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa3, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa4, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa5, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa6, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa7, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa8, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xa9, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xaa, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xab, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xac, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xad, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xae, 2, {O_N, O_N}, "tm_putchar"},
-{ 0xff, 0xaf, 2, {O_N, O_N}, "tm_exit"},
-{ 0xff, 0xb0, 2, {O_N, O_N}, "tm_trap"},
-{ 0xff, 0xb1, 2, {O_N, O_N}, "tm_minfo"},
-{ 0xff, 0xb2, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xb3, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xb4, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xb5, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xb6, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xb7, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xb8, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xb9, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xba, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xbb, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xbc, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xbd, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xbe, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xbf, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc0, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc1, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc2, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc3, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc4, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc5, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc6, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc7, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc8, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xc9, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xca, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xcb, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xcc, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xcd, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xce, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xcf, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd0, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd1, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd2, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd3, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd4, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd5, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd6, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd7, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd8, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xd9, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xda, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xdb, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xdc, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xdd, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xde, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xdf, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe0, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe1, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe2, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe3, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe4, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe5, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe6, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe7, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe8, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xe9, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xea, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xeb, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xec, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xed, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xee, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xef, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf0, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf1, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf2, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf3, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf4, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf5, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf6, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf7, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf8, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xf9, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xfa, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xfb, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xfc, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xfd, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xfe, 2, {O_N, O_N}, "bad"},
-{ 0xff, 0xff, 2, {O_N, O_N}, "bad"},
+{ 0x00,   -1, 1, {O_N, O_N}, {"nop"}},
+{ 0x01,   -1, 1, {O_N, O_N}, {"aconst_null"}},
+{ 0x02,   -1, 1, {O_N, O_N}, {"iconst_m1"}},
+{ 0x03,   -1, 1, {O_N, O_N}, {"iconst_0"}},
+{ 0x04,   -1, 1, {O_N, O_N}, {"iconst_1"}},
+{ 0x05,   -1, 1, {O_N, O_N}, {"iconst_2"}},
+{ 0x06,   -1, 1, {O_N, O_N}, {"iconst_3"}},
+{ 0x07,   -1, 1, {O_N, O_N}, {"iconst_4"}},
+{ 0x08,   -1, 1, {O_N, O_N}, {"iconst_5"}},
+{ 0x09,   -1, 1, {O_N, O_N}, {"lconst_0"}},
+{ 0x0a,   -1, 1, {O_N, O_N}, {"lconst_1"}},
+{ 0x0b,   -1, 1, {O_N, O_N}, {"fconst_0"}},
+{ 0x0c,   -1, 1, {O_N, O_N}, {"fconst_1"}},
+{ 0x0d,   -1, 1, {O_N, O_N}, {"fconst_2"}},
+{ 0x0e,   -1, 1, {O_N, O_N}, {"dconst_0"}},
+{ 0x0f,   -1, 1, {O_N, O_N}, {"dconst_1"}},
+{ 0x10,   -1, 2, {O_8, O_N}, {"bipush"}},
+{ 0x11,   -1, 3, {O_16, O_N}, {"sipush"}},
+{ 0x12,   -1, 2, {O_N, O_N}, {"ldc"}},
+{ 0x13,   -1, 3, {O_N, O_N}, {"ldc_w"}},
+{ 0x14,   -1, 3, {O_N, O_N}, {"ldc2_w"}},
+{ 0x15,   -1, 2, {O_U8, O_N}, {"iload"}},
+{ 0x16,   -1, 2, {O_U8, O_N}, {"lload"}},
+{ 0x17,   -1, 2, {O_U8, O_N}, {"fload"}},
+{ 0x18,   -1, 2, {O_U8, O_N}, {"dload"}},
+{ 0x19,   -1, 2, {O_U8, O_N}, {"aload"}},
+{ 0x1a,   -1, 1, {O_N, O_N}, {"iload_0"}},
+{ 0x1b,   -1, 1, {O_N, O_N}, {"iload_1"}},
+{ 0x1c,   -1, 1, {O_N, O_N}, {"iload_2"}},
+{ 0x1d,   -1, 1, {O_N, O_N}, {"iload_3"}},
+{ 0x1e,   -1, 1, {O_N, O_N}, {"lload_0"}},
+{ 0x1f,   -1, 1, {O_N, O_N}, {"lload_1"}},
+{ 0x20,   -1, 1, {O_N, O_N}, {"lload_2"}},
+{ 0x21,   -1, 1, {O_N, O_N}, {"lload_3"}},
+{ 0x22,   -1, 1, {O_N, O_N}, {"fload_0"}},
+{ 0x23,   -1, 1, {O_N, O_N}, {"fload_1"}},
+{ 0x24,   -1, 1, {O_N, O_N}, {"fload_2"}},
+{ 0x25,   -1, 1, {O_N, O_N}, {"fload_3"}},
+{ 0x26,   -1, 1, {O_N, O_N}, {"dload_0"}},
+{ 0x27,   -1, 1, {O_N, O_N}, {"dload_1"}},
+{ 0x28,   -1, 1, {O_N, O_N}, {"dload_2"}},
+{ 0x29,   -1, 1, {O_N, O_N}, {"dload_3"}},
+{ 0x2a,   -1, 1, {O_N, O_N}, {"aload_0"}},
+{ 0x2b,   -1, 1, {O_N, O_N}, {"aload_1"}},
+{ 0x2c,   -1, 1, {O_N, O_N}, {"aload_2"}},
+{ 0x2d,   -1, 1, {O_N, O_N}, {"aload_3"}},
+{ 0x2e,   -1, 1, {O_N, O_N}, {"iaload"}},
+{ 0x2f,   -1, 1, {O_N, O_N}, {"laload"}},
+{ 0x30,   -1, 1, {O_N, O_N}, {"faload"}},
+{ 0x31,   -1, 1, {O_N, O_N}, {"daload"}},
+{ 0x32,   -1, 1, {O_N, O_N}, {"aaload"}},
+{ 0x33,   -1, 1, {O_N, O_N}, {"baload"}},
+{ 0x34,   -1, 1, {O_N, O_N}, {"caload"}},
+{ 0x35,   -1, 1, {O_N, O_N}, {"saload"}},
+{ 0x36,   -1, 2, {O_U8, O_N}, {"istore"}},
+{ 0x37,   -1, 2, {O_U8, O_N}, {"lstore"}},
+{ 0x38,   -1, 2, {O_U8, O_N}, {"fstore"}},
+{ 0x39,   -1, 2, {O_U8, O_N}, {"dstore"}},
+{ 0x3a,   -1, 2, {O_U8, O_N}, {"astore"}},
+{ 0x3b,   -1, 1, {O_N, O_N}, {"istore_0"}},
+{ 0x3c,   -1, 1, {O_N, O_N}, {"istore_1"}},
+{ 0x3d,   -1, 1, {O_N, O_N}, {"istore_2"}},
+{ 0x3e,   -1, 1, {O_N, O_N}, {"istore_3"}},
+{ 0x3f,   -1, 1, {O_N, O_N}, {"lstore_0"}},
+{ 0x40,   -1, 1, {O_N, O_N}, {"lstore_1"}},
+{ 0x41,   -1, 1, {O_N, O_N}, {"lstore_2"}},
+{ 0x42,   -1, 1, {O_N, O_N}, {"lstore_3"}},
+{ 0x43,   -1, 1, {O_N, O_N}, {"fstore_0"}},
+{ 0x44,   -1, 1, {O_N, O_N}, {"fstore_1"}},
+{ 0x45,   -1, 1, {O_N, O_N}, {"fstore_2"}},
+{ 0x46,   -1, 1, {O_N, O_N}, {"fstore_3"}},
+{ 0x47,   -1, 1, {O_N, O_N}, {"dstore_0"}},
+{ 0x48,   -1, 1, {O_N, O_N}, {"dstore_1"}},
+{ 0x49,   -1, 1, {O_N, O_N}, {"dstore_2"}},
+{ 0x4a,   -1, 1, {O_N, O_N}, {"dstore_3"}},
+{ 0x4b,   -1, 1, {O_N, O_N}, {"astore_0"}},
+{ 0x4c,   -1, 1, {O_N, O_N}, {"astore_1"}},
+{ 0x4d,   -1, 1, {O_N, O_N}, {"astore_2"}},
+{ 0x4e,   -1, 1, {O_N, O_N}, {"astore_3"}},
+{ 0x4f,   -1, 1, {O_N, O_N}, {"iastore"}},
+{ 0x50,   -1, 1, {O_N, O_N}, {"lastore"}},
+{ 0x51,   -1, 1, {O_N, O_N}, {"fastore"}},
+{ 0x52,   -1, 1, {O_N, O_N}, {"dastore"}},
+{ 0x53,   -1, 1, {O_N, O_N}, {"aastore"}},
+{ 0x54,   -1, 1, {O_N, O_N}, {"bastore"}},
+{ 0x55,   -1, 1, {O_N, O_N}, {"castore"}},
+{ 0x56,   -1, 1, {O_N, O_N}, {"sastore"}},
+{ 0x57,   -1, 1, {O_N, O_N}, {"pop"}},
+{ 0x58,   -1, 1, {O_N, O_N}, {"pop2"}},
+{ 0x59,   -1, 1, {O_N, O_N}, {"dup"}},
+{ 0x5a,   -1, 1, {O_N, O_N}, {"dup_x1"}},
+{ 0x5b,   -1, 1, {O_N, O_N}, {"dup_x2"}},
+{ 0x5c,   -1, 1, {O_N, O_N}, {"dup2"}},
+{ 0x5d,   -1, 1, {O_N, O_N}, {"dup2_x1"}},
+{ 0x5e,   -1, 1, {O_N, O_N}, {"dup2_x2"}},
+{ 0x5f,   -1, 1, {O_N, O_N}, {"swap"}},
+{ 0x60,   -1, 1, {O_N, O_N}, {"iadd"}},
+{ 0x61,   -1, 1, {O_N, O_N}, {"ladd"}},
+{ 0x62,   -1, 1, {O_N, O_N}, {"fadd"}},
+{ 0x63,   -1, 1, {O_N, O_N}, {"dadd"}},
+{ 0x64,   -1, 1, {O_N, O_N}, {"isub"}},
+{ 0x65,   -1, 1, {O_N, O_N}, {"lsub"}},
+{ 0x66,   -1, 1, {O_N, O_N}, {"fsub"}},
+{ 0x67,   -1, 1, {O_N, O_N}, {"dsub"}},
+{ 0x68,   -1, 1, {O_N, O_N}, {"imul"}},
+{ 0x69,   -1, 1, {O_N, O_N}, {"lmul"}},
+{ 0x6a,   -1, 1, {O_N, O_N}, {"fmul"}},
+{ 0x6b,   -1, 1, {O_N, O_N}, {"dmul"}},
+{ 0x6c,   -1, 1, {O_N, O_N}, {"idiv"}},
+{ 0x6d,   -1, 1, {O_N, O_N}, {"ldiv"}},
+{ 0x6e,   -1, 1, {O_N, O_N}, {"fdiv"}},
+{ 0x6f,   -1, 1, {O_N, O_N}, {"ddiv"}},
+{ 0x70,   -1, 1, {O_N, O_N}, {"irem"}},
+{ 0x71,   -1, 1, {O_N, O_N}, {"lrem"}},
+{ 0x72,   -1, 1, {O_N, O_N}, {"frem"}},
+{ 0x73,   -1, 1, {O_N, O_N}, {"drem"}},
+{ 0x74,   -1, 1, {O_N, O_N}, {"ineg"}},
+{ 0x75,   -1, 1, {O_N, O_N}, {"lneg"}},
+{ 0x76,   -1, 1, {O_N, O_N}, {"fneg"}},
+{ 0x77,   -1, 1, {O_N, O_N}, {"dneg"}},
+{ 0x78,   -1, 1, {O_N, O_N}, {"ishl"}},
+{ 0x79,   -1, 1, {O_N, O_N}, {"lshl"}},
+{ 0x7a,   -1, 1, {O_N, O_N}, {"ishr"}},
+{ 0x7b,   -1, 1, {O_N, O_N}, {"lshr"}},
+{ 0x7c,   -1, 1, {O_N, O_N}, {"iushr"}},
+{ 0x7d,   -1, 1, {O_N, O_N}, {"lushr"}},
+{ 0x7e,   -1, 1, {O_N, O_N}, {"iand"}},
+{ 0x7f,   -1, 1, {O_N, O_N}, {"land"}},
+{ 0x80,   -1, 1, {O_N, O_N}, {"ior"}},
+{ 0x81,   -1, 1, {O_N, O_N}, {"lor"}},
+{ 0x82,   -1, 1, {O_N, O_N}, {"ixor"}},
+{ 0x83,   -1, 1, {O_N, O_N}, {"lxor"}},
+{ 0x84,   -1, 3, {O_U8, O_8}, {"iinc"}},
+{ 0x85,   -1, 1, {O_N, O_N}, {"i2l"}},
+{ 0x86,   -1, 1, {O_N, O_N}, {"i2f"}},
+{ 0x87,   -1, 1, {O_N, O_N}, {"i2d"}},
+{ 0x88,   -1, 1, {O_N, O_N}, {"l2i"}},
+{ 0x89,   -1, 1, {O_N, O_N}, {"l2f"}},
+{ 0x8a,   -1, 1, {O_N, O_N}, {"l2d"}},
+{ 0x8b,   -1, 1, {O_N, O_N}, {"f2i"}},
+{ 0x8c,   -1, 1, {O_N, O_N}, {"f2l"}},
+{ 0x8d,   -1, 1, {O_N, O_N}, {"f2d"}},
+{ 0x8e,   -1, 1, {O_N, O_N}, {"d2i"}},
+{ 0x8f,   -1, 1, {O_N, O_N}, {"d2l"}},
+{ 0x90,   -1, 1, {O_N, O_N}, {"d2f"}},
+{ 0x91,   -1, 1, {O_N, O_N}, {"i2b"}},
+{ 0x92,   -1, 1, {O_N, O_N}, {"i2c"}},
+{ 0x93,   -1, 1, {O_N, O_N}, {"i2s"}},
+{ 0x94,   -1, 1, {O_N, O_N}, {"lcmp"}},
+{ 0x95,   -1, 1, {O_N, O_N}, {"fcmpl"}},
+{ 0x96,   -1, 1, {O_N, O_N}, {"fcmpg"}},
+{ 0x97,   -1, 1, {O_N, O_N}, {"dcmpl"}},
+{ 0x98,   -1, 1, {O_N, O_N}, {"dcmpg"}},
+{ 0x99,   -1, 3, {O_R16, O_N}, {"ifeq"}},
+{ 0x9a,   -1, 3, {O_R16, O_N}, {"ifne"}},
+{ 0x9b,   -1, 3, {O_R16, O_N}, {"iflt"}},
+{ 0x9c,   -1, 3, {O_R16, O_N}, {"ifge"}},
+{ 0x9d,   -1, 3, {O_R16, O_N}, {"ifgt"}},
+{ 0x9e,   -1, 3, {O_R16, O_N}, {"ifle"}},
+{ 0x9f,   -1, 3, {O_R16, O_N}, {"if_icmpeq"}},
+{ 0xa0,   -1, 3, {O_R16, O_N}, {"if_icmpne"}},
+{ 0xa1,   -1, 3, {O_R16, O_N}, {"if_icmplt"}},
+{ 0xa2,   -1, 3, {O_R16, O_N}, {"if_icmpge"}},
+{ 0xa3,   -1, 3, {O_R16, O_N}, {"if_icmpgt"}},
+{ 0xa4,   -1, 3, {O_R16, O_N}, {"if_icmple"}},
+{ 0xa5,   -1, 3, {O_R16, O_N}, {"if_acmpeq"}},
+{ 0xa6,   -1, 3, {O_R16, O_N}, {"if_acmpne"}},
+{ 0xa7,   -1, 3, {O_R16, O_N}, {"goto"}},
+{ 0xa8,   -1, 3, {O_N, O_N}, {"jsr"}},
+{ 0xa9,   -1, 2, {O_N, O_N}, {"ret"}},
+{ 0xaa,   -1, 1, {O_N, O_N}, {"tableswitch"}},
+{ 0xab,   -1, 1, {O_N, O_N}, {"lookupswitch"}},
+{ 0xac,   -1, 1, {O_N, O_N}, {"ireturn"}},
+{ 0xad,   -1, 1, {O_N, O_N}, {"lreturn"}},
+{ 0xae,   -1, 1, {O_N, O_N}, {"freturn"}},
+{ 0xaf,   -1, 1, {O_N, O_N}, {"dreturn"}},
+{ 0xb0,   -1, 1, {O_N, O_N}, {"areturn"}},
+{ 0xb1,   -1, 1, {O_N, O_N}, {"return"}},
+{ 0xb2,   -1, 3, {O_N, O_N}, {"getstatic"}},
+{ 0xb3,   -1, 3, {O_N, O_N}, {"putstatic"}},
+{ 0xb4,   -1, 3, {O_N, O_N}, {"getfield"}},
+{ 0xb5,   -1, 3, {O_N, O_N}, {"putfield"}},
+{ 0xb6,   -1, 3, {O_N, O_N}, {"invokevirtual"}},
+{ 0xb7,   -1, 3, {O_N, O_N}, {"invokespecial"}},
+{ 0xb8,   -1, 3, {O_N, O_N}, {"invokestatic"}},
+{ 0xb9,   -1, 5, {O_N, O_N}, {"invokeinterface"}},
+{ 0xba,   -1, 1, {O_N, O_N}, {"bad_ba"}},
+{ 0xbb,   -1, 3, {O_N, O_N}, {"new"}},
+{ 0xbc,   -1, 2, {O_N, O_N}, {"newarray"}},
+{ 0xbd,   -1, 3, {O_N, O_N}, {"anewarray"}},
+{ 0xbe,   -1, 1, {O_N, O_N}, {"arraylength"}},
+{ 0xbf,   -1, 1, {O_N, O_N}, {"athrow"}},
+{ 0xc0,   -1, 3, {O_N, O_N}, {"checkcast"}},
+{ 0xc1,   -1, 3, {O_N, O_N}, {"instanceof"}},
+{ 0xc2,   -1, 1, {O_N, O_N}, {"monitorenter"}},
+{ 0xc3,   -1, 1, {O_N, O_N}, {"monitorexit"}},
+{ 0xc4,   -1, 1, {O_N, O_N}, {"wide"}},
+{ 0xc5,   -1, 4, {O_N, O_N}, {"multianewarray"}},
+{ 0xc6,   -1, 3, {O_N, O_N}, {"ifnull"}},
+{ 0xc7,   -1, 3, {O_N, O_N}, {"ifnonnull"}},
+{ 0xc8,   -1, 5, {O_N, O_N}, {"goto_w"}},
+{ 0xc9,   -1, 5, {O_N, O_N}, {"jsr_w"}},
+{ 0xca,   -1, 1, {O_N, O_N}, {"breakpoint"}},
+{ 0xcb,   -1, 1, {O_N, O_N}, {"bytecode"}},
+{ 0xcc,   -1, 1, {O_N, O_N}, {"try"}},
+{ 0xcd,   -1, 1, {O_N, O_N}, {"endtry"}},
+{ 0xce,   -1, 1, {O_N, O_N}, {"catch"}},
+{ 0xcf,   -1, 1, {O_N, O_N}, {"var"}},
+{ 0xd0,   -1, 1, {O_N, O_N}, {"endvar"}},
+{ 0xd1,   -1, 1, {O_N, O_N}, {"bad_d1"}},
+{ 0xd2,   -1, 1, {O_N, O_N}, {"bad_d2"}},
+{ 0xd3,   -1, 1, {O_N, O_N}, {"bad_d3"}},
+{ 0xd4,   -1, 1, {O_N, O_N}, {"bad_d4"}},
+{ 0xd5,   -1, 1, {O_N, O_N}, {"bad_d5"}},
+{ 0xd6,   -1, 1, {O_N, O_N}, {"bad_d6"}},
+{ 0xd7,   -1, 1, {O_N, O_N}, {"bad_d7"}},
+{ 0xd8,   -1, 1, {O_N, O_N}, {"bad_d8"}},
+{ 0xd9,   -1, 1, {O_N, O_N}, {"bad_d9"}},
+{ 0xda,   -1, 1, {O_N, O_N}, {"bad_da"}},
+{ 0xdb,   -1, 1, {O_N, O_N}, {"bad_db"}},
+{ 0xdc,   -1, 1, {O_N, O_N}, {"bad_dc"}},
+{ 0xdd,   -1, 1, {O_N, O_N}, {"bad_dd"}},
+{ 0xde,   -1, 1, {O_N, O_N}, {"bad_de"}},
+{ 0xdf,   -1, 1, {O_N, O_N}, {"bad_df"}},
+{ 0xe0,   -1, 1, {O_N, O_N}, {"bad_e0"}},
+{ 0xe1,   -1, 1, {O_N, O_N}, {"bad_e1"}},
+{ 0xe2,   -1, 1, {O_N, O_N}, {"bad_e2"}},
+{ 0xe3,   -1, 1, {O_N, O_N}, {"bad_e3"}},
+{ 0xe4,   -1, 1, {O_N, O_N}, {"bad_e4"}},
+{ 0xe5,   -1, 1, {O_N, O_N}, {"bad_e5"}},
+{ 0xe6,   -1, 1, {O_N, O_N}, {"bad_e6"}},
+{ 0xe7,   -1, 1, {O_N, O_N}, {"bad_e7"}},
+{ 0xe8,   -1, 1, {O_N, O_N}, {"bad_e8"}},
+{ 0xe9,   -1, 1, {O_N, O_N}, {"bad_e9"}},
+{ 0xea,   -1, 1, {O_N, O_N}, {"bad_ea"}},
+{ 0xeb,   -1, 1, {O_N, O_N}, {"bad_eb"}},
+{ 0xec,   -1, 1, {O_N, O_N}, {"bad_ec"}},
+{ 0xed,   -1, 3, {O_16, O_N}, {"sethi"}},
+{ 0xee,   -1, 3, {O_U8, O_8}, {"load_word_index"}},
+{ 0xef,   -1, 3, {O_U8, O_8}, {"load_short_index"}},
+{ 0xf0,   -1, 3, {O_U8, O_8}, {"load_char_index"}},
+{ 0xf1,   -1, 3, {O_U8, O_8}, {"load_byte_index"}},
+{ 0xf2,   -1, 3, {O_U8, O_8}, {"load_ubyte_index"}},
+{ 0xf3,   -1, 3, {O_U8, O_8}, {"store_word_index"}},
+{ 0xf4,   -1, 3, {O_U8, O_8}, {"na_store_word_index"}},
+{ 0xf5,   -1, 3, {O_U8, O_8}, {"store_short_index"}},
+{ 0xf6,   -1, 3, {O_U8, O_8}, {"store_byte_index"}},
+{ 0xf7,   -1, 1, {O_N, O_N}, {"bad_f7"}},
+{ 0xf8,   -1, 1, {O_N, O_N}, {"bad_f8"}},
+{ 0xf9,   -1, 1, {O_N, O_N}, {"bad_f9"}},
+{ 0xfa,   -1, 1, {O_N, O_N}, {"bad_fa"}},
+{ 0xfb,   -1, 1, {O_N, O_N}, {"bad_fb"}},
+{ 0xfc,   -1, 1, {O_N, O_N}, {"bad_fc"}},
+{ 0xfd,   -1, 1, {O_N, O_N}, {"bad_fd"}},
+{ 0xfe,   -1, 1, {O_N, O_N}, {"bad_fe"}},
+{ 0xff, 0x00, 2, {O_N, O_N}, {"load_ubyte"}},
+{ 0xff, 0x01, 2, {O_N, O_N}, {"load_byte"}},
+{ 0xff, 0x02, 2, {O_N, O_N}, {"load_char"}},
+{ 0xff, 0x03, 2, {O_N, O_N}, {"load_short"}},
+{ 0xff, 0x04, 2, {O_N, O_N}, {"load_word"}},
+{ 0xff, 0x05, 2, {O_N, O_N}, {"priv_ret_from_trap"}},
+{ 0xff, 0x06, 2, {O_N, O_N}, {"priv_read_dcache_tag"}},
+{ 0xff, 0x07, 2, {O_N, O_N}, {"priv_read_dcache_data"}},
+{ 0xff, 0x08, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x09, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x0a, 2, {O_N, O_N}, {"load_char_oe"}},
+{ 0xff, 0x0b, 2, {O_N, O_N}, {"load_short_oe"}},
+{ 0xff, 0x0c, 2, {O_N, O_N}, {"load_word_oe"}},
+{ 0xff, 0x0d, 2, {O_N, O_N}, {"return0"}},
+{ 0xff, 0x0e, 2, {O_N, O_N}, {"priv_read_icache_tag"}},
+{ 0xff, 0x0f, 2, {O_N, O_N}, {"priv_read_icache_data"}},
+{ 0xff, 0x10, 2, {O_N, O_N}, {"ncload_ubyte"}},
+{ 0xff, 0x11, 2, {O_N, O_N}, {"ncload_byte"}},
+{ 0xff, 0x12, 2, {O_N, O_N}, {"ncload_char"}},
+{ 0xff, 0x13, 2, {O_N, O_N}, {"ncload_short"}},
+{ 0xff, 0x14, 2, {O_N, O_N}, {"ncload_word"}},
+{ 0xff, 0x15, 2, {O_N, O_N}, {"iucmp"}},
+{ 0xff, 0x16, 2, {O_N, O_N}, {"priv_powerdown"}},
+{ 0xff, 0x17, 2, {O_N, O_N}, {"cache_invalidate"}},
+{ 0xff, 0x18, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x19, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x1a, 2, {O_N, O_N}, {"ncload_char_oe"}},
+{ 0xff, 0x1b, 2, {O_N, O_N}, {"ncload_short_oe"}},
+{ 0xff, 0x1c, 2, {O_N, O_N}, {"ncload_word_oe"}},
+{ 0xff, 0x1d, 2, {O_N, O_N}, {"return1"}},
+{ 0xff, 0x1e, 2, {O_N, O_N}, {"cache_flush"}},
+{ 0xff, 0x1f, 2, {O_N, O_N}, {"cache_index_flush"}},
+{ 0xff, 0x20, 2, {O_N, O_N}, {"store_byte"}},
+{ 0xff, 0x21, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x22, 2, {O_N, O_N}, {"store_short"}},
+{ 0xff, 0x23, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x24, 2, {O_N, O_N}, {"store_word"}},
+{ 0xff, 0x25, 2, {O_N, O_N}, {"soft_trap"}},
+{ 0xff, 0x26, 2, {O_N, O_N}, {"priv_write_dcache_tag"}},
+{ 0xff, 0x27, 2, {O_N, O_N}, {"priv_write_dcache_data"}},
+{ 0xff, 0x28, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x29, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x2a, 2, {O_N, O_N}, {"store_short_oe"}},
+{ 0xff, 0x2b, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x2c, 2, {O_N, O_N}, {"store_word_oe"}},
+{ 0xff, 0x2d, 2, {O_N, O_N}, {"return2"}},
+{ 0xff, 0x2e, 2, {O_N, O_N}, {"priv_write_icache_tag"}},
+{ 0xff, 0x2f, 2, {O_N, O_N}, {"priv_write_icache_data"}},
+{ 0xff, 0x30, 2, {O_N, O_N}, {"ncstore_byte"}},
+{ 0xff, 0x31, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x32, 2, {O_N, O_N}, {"ncstore_short"}},
+{ 0xff, 0x33, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x34, 2, {O_N, O_N}, {"ncstore_word"}},
+{ 0xff, 0x35, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x36, 2, {O_N, O_N}, {"priv_reset"}},
+{ 0xff, 0x37, 2, {O_N, O_N}, {"get_current_class"}},
+{ 0xff, 0x38, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x39, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x3a, 2, {O_N, O_N}, {"ncstore_short_oe"}},
+{ 0xff, 0x3b, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x3c, 2, {O_N, O_N}, {"ncstore_word_oe"}},
+{ 0xff, 0x3d, 2, {O_N, O_N}, {"call"}},
+{ 0xff, 0x3e, 2, {O_N, O_N}, {"zero_line"}},
+{ 0xff, 0x3f, 2, {O_N, O_N}, {"priv_update_optop"}},
+{ 0xff, 0x40, 2, {O_N, O_N}, {"read_pc"}},
+{ 0xff, 0x41, 2, {O_N, O_N}, {"read_vars"}},
+{ 0xff, 0x42, 2, {O_N, O_N}, {"read_frame"}},
+{ 0xff, 0x43, 2, {O_N, O_N}, {"read_optop"}},
+{ 0xff, 0x44, 2, {O_N, O_N}, {"priv_read_oplim"}},
+{ 0xff, 0x45, 2, {O_N, O_N}, {"read_const_pool"}},
+{ 0xff, 0x46, 2, {O_N, O_N}, {"priv_read_psr"}},
+{ 0xff, 0x47, 2, {O_N, O_N}, {"priv_read_trapbase"}},
+{ 0xff, 0x48, 2, {O_N, O_N}, {"priv_read_lockcount0"}},
+{ 0xff, 0x49, 2, {O_N, O_N}, {"priv_read_lockcount1"}},
+{ 0xff, 0x4a, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x4b, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x4c, 2, {O_N, O_N}, {"priv_read_lockaddr0"}},
+{ 0xff, 0x4d, 2, {O_N, O_N}, {"priv_read_lockaddr1"}},
+{ 0xff, 0x4e, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x4f, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x50, 2, {O_N, O_N}, {"priv_read_userrange1"}},
+{ 0xff, 0x51, 2, {O_N, O_N}, {"priv_read_gc_config"}},
+{ 0xff, 0x52, 2, {O_N, O_N}, {"priv_read_brk1a"}},
+{ 0xff, 0x53, 2, {O_N, O_N}, {"priv_read_brk2a"}},
+{ 0xff, 0x54, 2, {O_N, O_N}, {"priv_read_brk12c"}},
+{ 0xff, 0x55, 2, {O_N, O_N}, {"priv_read_userrange2"}},
+{ 0xff, 0x56, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x57, 2, {O_N, O_N}, {"priv_read_versionid"}},
+{ 0xff, 0x58, 2, {O_N, O_N}, {"priv_read_hcr"}},
+{ 0xff, 0x59, 2, {O_N, O_N}, {"priv_read_sc_bottom"}},
+{ 0xff, 0x5a, 2, {O_N, O_N}, {"read_global0"}},
+{ 0xff, 0x5b, 2, {O_N, O_N}, {"read_global1"}},
+{ 0xff, 0x5c, 2, {O_N, O_N}, {"read_global2"}},
+{ 0xff, 0x5d, 2, {O_N, O_N}, {"read_global3"}},
+{ 0xff, 0x5e, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x5f, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x60, 2, {O_N, O_N}, {"write_pc"}},
+{ 0xff, 0x61, 2, {O_N, O_N}, {"write_vars"}},
+{ 0xff, 0x62, 2, {O_N, O_N}, {"write_frame"}},
+{ 0xff, 0x63, 2, {O_N, O_N}, {"write_optop"}},
+{ 0xff, 0x64, 2, {O_N, O_N}, {"priv_write_oplim"}},
+{ 0xff, 0x65, 2, {O_N, O_N}, {"write_const_pool"}},
+{ 0xff, 0x66, 2, {O_N, O_N}, {"priv_write_psr"}},
+{ 0xff, 0x67, 2, {O_N, O_N}, {"priv_write_trapbase"}},
+{ 0xff, 0x68, 2, {O_N, O_N}, {"priv_write_lockcount0"}},
+{ 0xff, 0x69, 2, {O_N, O_N}, {"priv_write_lockcount1"}},
+{ 0xff, 0x6a, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x6b, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x6c, 2, {O_N, O_N}, {"priv_write_lockaddr0"}},
+{ 0xff, 0x6d, 2, {O_N, O_N}, {"priv_write_lockaddr1"}},
+{ 0xff, 0x6e, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x6f, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x70, 2, {O_N, O_N}, {"priv_write_userrange1"}},
+{ 0xff, 0x71, 2, {O_N, O_N}, {"priv_write_gc_config"}},
+{ 0xff, 0x72, 2, {O_N, O_N}, {"priv_write_brk1a"}},
+{ 0xff, 0x73, 2, {O_N, O_N}, {"priv_write_brk2a"}},
+{ 0xff, 0x74, 2, {O_N, O_N}, {"priv_write_brk12c"}},
+{ 0xff, 0x75, 2, {O_N, O_N}, {"priv_write_userrange2"}},
+{ 0xff, 0x76, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x77, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x78, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x79, 2, {O_N, O_N}, {"priv_write_sc_bottom"}},
+{ 0xff, 0x7a, 2, {O_N, O_N}, {"write_global0"}},
+{ 0xff, 0x7b, 2, {O_N, O_N}, {"write_global1"}},
+{ 0xff, 0x7c, 2, {O_N, O_N}, {"write_global2"}},
+{ 0xff, 0x7d, 2, {O_N, O_N}, {"write_global3"}},
+{ 0xff, 0x7e, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x7f, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x80, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x81, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x82, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x83, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x84, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x85, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x86, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x87, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x88, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x89, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x8a, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x8b, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x8c, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x8d, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x8e, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x8f, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x90, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x91, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x92, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x93, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x94, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x95, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x96, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x97, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x98, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x99, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x9a, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x9b, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x9c, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x9d, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x9e, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0x9f, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa0, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa1, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa2, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa3, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa4, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa5, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa6, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa7, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa8, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xa9, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xaa, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xab, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xac, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xad, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xae, 2, {O_N, O_N}, {"tm_putchar"}},
+{ 0xff, 0xaf, 2, {O_N, O_N}, {"tm_exit"}},
+{ 0xff, 0xb0, 2, {O_N, O_N}, {"tm_trap"}},
+{ 0xff, 0xb1, 2, {O_N, O_N}, {"tm_minfo"}},
+{ 0xff, 0xb2, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xb3, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xb4, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xb5, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xb6, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xb7, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xb8, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xb9, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xba, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xbb, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xbc, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xbd, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xbe, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xbf, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc0, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc1, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc2, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc3, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc4, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc5, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc6, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc7, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc8, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xc9, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xca, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xcb, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xcc, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xcd, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xce, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xcf, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd0, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd1, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd2, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd3, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd4, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd5, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd6, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd7, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd8, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xd9, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xda, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xdb, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xdc, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xdd, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xde, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xdf, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe0, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe1, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe2, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe3, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe4, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe5, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe6, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe7, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe8, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xe9, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xea, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xeb, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xec, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xed, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xee, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xef, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf0, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf1, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf2, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf3, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf4, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf5, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf6, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf7, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf8, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xf9, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xfa, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xfb, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xfc, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xfd, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xfe, 2, {O_N, O_N}, {"bad"}},
+{ 0xff, 0xff, 2, {O_N, O_N}, {"bad"}},
 };
index dc014d28a9f2613896fe00fbecc15c2f8de2baeb..75f34c87e57f95ae6d5e11d6aa4d190569888979 100644 (file)
@@ -100,10 +100,6 @@ static unsigned long insert_nsi
   PARAMS ((unsigned long, long, int, const char **));
 static long extract_nsi
   PARAMS ((unsigned long, int, int *));
-static unsigned long insert_pmrn
-  PARAMS ((unsigned long, long, int, const char **));
-static long extract_pmrn
-  PARAMS ((unsigned long, int, int *));
 static unsigned long insert_ral
   PARAMS ((unsigned long, long, int, const char **));
 static unsigned long insert_ram
@@ -265,7 +261,6 @@ const struct powerpc_operand powerpc_operands[] =
 
   /* The CT field in an X form instruction.  */
 #define CT CRFS + 1
-#define RD CT
   { 5, 21, 0, 0, PPC_OPERAND_OPTIONAL },
 
   /* The D field in a D form instruction.  This is a displacement off
@@ -394,12 +389,8 @@ const struct powerpc_operand powerpc_operands[] =
   { 16, 0, insert_nsi, extract_nsi,
       PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
 
-  /* The PMRN field in an X form instruction.  */
-#define PMRN NSI + 1
-  { 16, 0, insert_pmrn, extract_pmrn, PPC_OPERAND_GPR },
-
   /* The RA field in an D, DS, X, XO, M, or MDS form instruction.  */
-#define RA PMRN + 1
+#define RA NSI + 1
 #define RA_MASK (0x1f << 16)
   { 5, 16, 0, 0, PPC_OPERAND_GPR },
 
@@ -461,6 +452,7 @@ const struct powerpc_operand powerpc_operands[] =
   /* The SPR field in an XFX form instruction.  This is flipped--the
      lower 5 bits are stored in the upper 5 and vice- versa.  */
 #define SPR SISIGNOPT + 1
+#define PMR SPR
 #define SPR_MASK (0x3ff << 11)
   { 10, 11, insert_spr, extract_spr, 0 },
 
@@ -889,7 +881,7 @@ insert_ev2 (insn, value, dialect, errmsg)
     *errmsg = _("offset not a multiple of 2");
   if ((value > 62) != 0 && errmsg != NULL)
     *errmsg = _("offset greater than 62");
-  return insn | ((value & 0xf8) << 8);
+  return insn | ((value & 0x3e) << 10);
 }
 
 static long
@@ -898,7 +890,7 @@ extract_ev2 (insn, dialect, invalid)
      int dialect ATTRIBUTE_UNUSED;
      int * invalid ATTRIBUTE_UNUSED;
 {
-  return (insn >> 8) & 0xf8;
+  return (insn >> 10) & 0x3e;
 }
 
 static unsigned long
@@ -912,7 +904,7 @@ insert_ev4 (insn, value, dialect, errmsg)
     *errmsg = _("offset not a multiple of 4");
   if ((value > 124) != 0 && errmsg != NULL)
     *errmsg = _("offset greater than 124");
-  return insn | ((value & 0xf8) << 8);
+  return insn | ((value & 0x7c) << 9);
 }
 
 static long
@@ -921,7 +913,7 @@ extract_ev4 (insn, dialect, invalid)
      int dialect ATTRIBUTE_UNUSED;
      int * invalid ATTRIBUTE_UNUSED;
 {
-  return (insn >> 8) & 0xf8;
+  return (insn >> 9) & 0x7c;
 }
 
 static unsigned long
@@ -1229,28 +1221,6 @@ extract_nsi (insn, dialect, invalid)
   return - (((insn & 0xffff) ^ 0x8000) - 0x8000);
 }
 
-/* The PMRN field in a X form instruction.
-   This has 5+5 bits switched around.  */
-
-static unsigned long
-insert_pmrn (insn, value, dialect, errmsg)
-     unsigned long insn;
-     long value;
-     int dialect ATTRIBUTE_UNUSED;
-     const char **errmsg ATTRIBUTE_UNUSED;
-{
-  return insn | ((value & 0x1f) << 16) | ((value & 0x3e) << 11);
-}
-
-static long
-extract_pmrn (insn, dialect, invalid)
-     unsigned long insn;
-     int dialect ATTRIBUTE_UNUSED;
-     int *invalid ATTRIBUTE_UNUSED;
-{
-  return ((insn >> 16) & 0x1f) | ((insn >> 11) & 0x3e);
-}
-
 /* The RA field in a D or X form instruction which is an updating
    load, which means that the RA field may not be zero and may not
    equal the RT field.  */
@@ -2087,43 +2057,43 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 { "vupklsh",   VX(4,  718), VX_MASK,   PPCVEC,         { VD, VB } },
 { "vxor",      VX(4, 1220), VX_MASK,   PPCVEC,         { VD, VA, VB } },
 
-{ "evaddw",    VX(4, 512), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evaddiw",   VX(4, 514), VX_MASK,    PPCSPE,         { RD, RB, UIMM } },
-{ "evsubfw",   VX(4, 516), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evsubw",    VX(4, 516), VX_MASK,    PPCSPE,         { RD, RB, RA } },
-{ "evsubifw",  VX(4, 518), VX_MASK,    PPCSPE,         { RD, UIMM, RB } },
-{ "evsubiw",   VX(4, 518), VX_MASK,    PPCSPE,         { RD, RB, UIMM } },
-{ "evabs",     VX(4, 520), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evneg",     VX(4, 521), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evextsb",   VX(4, 522), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evextsh",   VX(4, 523), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evrndw",    VX(4, 524), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evcntlzw",  VX(4, 525), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evcntlsw",  VX(4, 526), VX_MASK,    PPCSPE,         { RD, RA } },
-
-{ "brinc",     VX(4, 527), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-
-{ "evand",     VX(4, 529), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evandc",    VX(4, 530), VX_MASK,    PPCSPE,         { RD, RA, RB } },
+{ "evaddw",    VX(4, 512), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evaddiw",   VX(4, 514), VX_MASK,    PPCSPE,         { RS, RB, UIMM } },
+{ "evsubfw",   VX(4, 516), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evsubw",    VX(4, 516), VX_MASK,    PPCSPE,         { RS, RB, RA } },
+{ "evsubifw",  VX(4, 518), VX_MASK,    PPCSPE,         { RS, UIMM, RB } },
+{ "evsubiw",   VX(4, 518), VX_MASK,    PPCSPE,         { RS, RB, UIMM } },
+{ "evabs",     VX(4, 520), VX_MASK,    PPCSPE,         { RS, RA } },
+{ "evneg",     VX(4, 521), VX_MASK,    PPCSPE,         { RS, RA } },
+{ "evextsb",   VX(4, 522), VX_MASK,    PPCSPE,         { RS, RA } },
+{ "evextsh",   VX(4, 523), VX_MASK,    PPCSPE,         { RS, RA } },
+{ "evrndw",    VX(4, 524), VX_MASK,    PPCSPE,         { RS, RA } },
+{ "evcntlzw",  VX(4, 525), VX_MASK,    PPCSPE,         { RS, RA } },
+{ "evcntlsw",  VX(4, 526), VX_MASK,    PPCSPE,         { RS, RA } },
+
+{ "brinc",     VX(4, 527), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+
+{ "evand",     VX(4, 529), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evandc",    VX(4, 530), VX_MASK,    PPCSPE,         { RS, RA, RB } },
 { "evmr",      VX(4, 535), VX_MASK,    PPCSPE,         { RS, RA, BBA } },
-{ "evor",      VX(4, 535), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evorc",     VX(4, 539), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evxor",     VX(4, 534), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "eveqv",     VX(4, 537), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evnand",    VX(4, 542), VX_MASK,    PPCSPE,         { RD, RA, RB } },
+{ "evor",      VX(4, 535), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evorc",     VX(4, 539), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evxor",     VX(4, 534), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "eveqv",     VX(4, 537), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evnand",    VX(4, 542), VX_MASK,    PPCSPE,         { RS, RA, RB } },
 { "evnot",     VX(4, 536), VX_MASK,    PPCSPE,         { RS, RA, BBA } },
-{ "evnor",     VX(4, 536), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-
-{ "evrlw",     VX(4, 552), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evrlwi",    VX(4, 554), VX_MASK,    PPCSPE,         { RD, RA, EVUIMM } },
-{ "evslw",     VX(4, 548), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evslwi",    VX(4, 550), VX_MASK,    PPCSPE,         { RD, RA, EVUIMM } },
-{ "evsrws",    VX(4, 545), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evsrwu",    VX(4, 544), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evsrwis",   VX(4, 547), VX_MASK,    PPCSPE,         { RD, RA, EVUIMM } },
-{ "evsrwiu",   VX(4, 546), VX_MASK,    PPCSPE,         { RD, RA, EVUIMM } },
-{ "evsplati",  VX(4, 553), VX_MASK,    PPCSPE,         { RD, SIMM } },
-{ "evsplatfi", VX(4, 555), VX_MASK,    PPCSPE,         { RD, SIMM } },
+{ "evnor",     VX(4, 536), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+
+{ "evrlw",     VX(4, 552), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evrlwi",    VX(4, 554), VX_MASK,    PPCSPE,         { RS, RA, EVUIMM } },
+{ "evslw",     VX(4, 548), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evslwi",    VX(4, 550), VX_MASK,    PPCSPE,         { RS, RA, EVUIMM } },
+{ "evsrws",    VX(4, 545), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evsrwu",    VX(4, 544), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evsrwis",   VX(4, 547), VX_MASK,    PPCSPE,         { RS, RA, EVUIMM } },
+{ "evsrwiu",   VX(4, 546), VX_MASK,    PPCSPE,         { RS, RA, EVUIMM } },
+{ "evsplati",  VX(4, 553), VX_MASK,    PPCSPE,         { RS, SIMM } },
+{ "evsplatfi", VX(4, 555), VX_MASK,    PPCSPE,         { RS, SIMM } },
 { "evmergehi", VX(4, 556), VX_MASK,    PPCSPE,         { RS, RA, RB } },
 { "evmergelo", VX(4, 557), VX_MASK,    PPCSPE,         { RS, RA, RB } },
 { "evmergehilo",VX(4,558), VX_MASK,    PPCSPE,         { RS, RA, RB } },
@@ -2134,7 +2104,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 { "evcmplts",  VX(4, 563), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
 { "evcmpltu",  VX(4, 562), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
 { "evcmpeq",   VX(4, 564), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
-{ "evsel",     EVSEL(4,79),EVSEL_MASK, PPCSPE,         { RD, RA, RB, CRFS } },
+{ "evsel",     EVSEL(4,79),EVSEL_MASK, PPCSPE,         { RS, RA, RB, CRFS } },
 
 { "evldd",     VX(4, 769), VX_MASK,    PPCSPE,         { RS, EVUIMM_8, RA } },
 { "evlddx",    VX(4, 768), VX_MASK,    PPCSPE,         { RS, RA, RB } },
@@ -2174,222 +2144,166 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 { "evstwho",   VX(4, 821), VX_MASK,    PPCSPE,         { RS, EVUIMM_4, RA } },
 { "evstwhox",  VX(4, 820), VX_MASK,    PPCSPE,         { RS, RA, RB } },
 
-{ "evfsabs",   VX(4, 644), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evfsnabs",  VX(4, 645), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evfsneg",   VX(4, 646), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evfsadd",   VX(4, 640), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evfssub",   VX(4, 641), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evfsmul",   VX(4, 648), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evfsdiv",   VX(4, 649), VX_MASK,    PPCSPE,         { RD, RA, RB } },
+{ "evfsabs",   VX(4, 644), VX_MASK,    PPCSPE,         { RS, RA } },
+{ "evfsnabs",  VX(4, 645), VX_MASK,    PPCSPE,         { RS, RA } },
+{ "evfsneg",   VX(4, 646), VX_MASK,    PPCSPE,         { RS, RA } },
+{ "evfsadd",   VX(4, 640), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evfssub",   VX(4, 641), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evfsmul",   VX(4, 648), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evfsdiv",   VX(4, 649), VX_MASK,    PPCSPE,         { RS, RA, RB } },
 { "evfscmpgt", VX(4, 652), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
 { "evfscmplt", VX(4, 653), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
 { "evfscmpeq", VX(4, 654), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
 { "evfststgt", VX(4, 668), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
 { "evfststlt", VX(4, 669), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
 { "evfststeq", VX(4, 670), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
-{ "evfscfui",  VX(4, 656), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evfsctuiz", VX(4, 664), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evfscfsi",  VX(4, 657), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evfscfuf",  VX(4, 658), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evfscfsf",  VX(4, 659), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evfsctui",  VX(4, 660), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evfsctsi",  VX(4, 661), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evfsctsiz", VX(4, 666), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evfsctuf",  VX(4, 662), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evfsctsf",  VX(4, 663), VX_MASK,    PPCSPE,         { RD, RB } },
-
-{ "efsabs",   VX(4, 708), VX_MASK,     PPCEFS,         { RD, RA } },
-{ "efsnabs",  VX(4, 709), VX_MASK,     PPCEFS,         { RD, RA } },
-{ "efsneg",   VX(4, 710), VX_MASK,     PPCEFS,         { RD, RA } },
-{ "efsadd",   VX(4, 704), VX_MASK,     PPCEFS,         { RD, RA, RB } },
-{ "efssub",   VX(4, 705), VX_MASK,     PPCEFS,         { RD, RA, RB } },
-{ "efsmul",   VX(4, 712), VX_MASK,     PPCEFS,         { RD, RA, RB } },
-{ "efsdiv",   VX(4, 713), VX_MASK,     PPCEFS,         { RD, RA, RB } },
+{ "evfscfui",  VX(4, 656), VX_MASK,    PPCSPE,         { RS, RB } },
+{ "evfsctuiz", VX(4, 664), VX_MASK,    PPCSPE,         { RS, RB } },
+{ "evfscfsi",  VX(4, 657), VX_MASK,    PPCSPE,         { RS, RB } },
+{ "evfscfuf",  VX(4, 658), VX_MASK,    PPCSPE,         { RS, RB } },
+{ "evfscfsf",  VX(4, 659), VX_MASK,    PPCSPE,         { RS, RB } },
+{ "evfsctui",  VX(4, 660), VX_MASK,    PPCSPE,         { RS, RB } },
+{ "evfsctsi",  VX(4, 661), VX_MASK,    PPCSPE,         { RS, RB } },
+{ "evfsctsiz", VX(4, 666), VX_MASK,    PPCSPE,         { RS, RB } },
+{ "evfsctuf",  VX(4, 662), VX_MASK,    PPCSPE,         { RS, RB } },
+{ "evfsctsf",  VX(4, 663), VX_MASK,    PPCSPE,         { RS, RB } },
+
+{ "efsabs",   VX(4, 708), VX_MASK,     PPCEFS,         { RS, RA } },
+{ "efsnabs",  VX(4, 709), VX_MASK,     PPCEFS,         { RS, RA } },
+{ "efsneg",   VX(4, 710), VX_MASK,     PPCEFS,         { RS, RA } },
+{ "efsadd",   VX(4, 704), VX_MASK,     PPCEFS,         { RS, RA, RB } },
+{ "efssub",   VX(4, 705), VX_MASK,     PPCEFS,         { RS, RA, RB } },
+{ "efsmul",   VX(4, 712), VX_MASK,     PPCEFS,         { RS, RA, RB } },
+{ "efsdiv",   VX(4, 713), VX_MASK,     PPCEFS,         { RS, RA, RB } },
 { "efscmpgt", VX(4, 716), VX_MASK,     PPCEFS,         { CRFD, RA, RB } },
 { "efscmplt", VX(4, 717), VX_MASK,     PPCEFS,         { CRFD, RA, RB } },
 { "efscmpeq", VX(4, 718), VX_MASK,     PPCEFS,         { CRFD, RA, RB } },
 { "efststgt", VX(4, 732), VX_MASK,     PPCEFS,         { CRFD, RA, RB } },
 { "efststlt", VX(4, 733), VX_MASK,     PPCEFS,         { CRFD, RA, RB } },
 { "efststeq", VX(4, 734), VX_MASK,     PPCEFS,         { CRFD, RA, RB } },
-{ "efscfui",  VX(4, 720), VX_MASK,     PPCEFS,         { RD, RB } },
-{ "efsctuiz", VX(4, 728), VX_MASK,     PPCEFS,         { RD, RB } },
-{ "efscfsi",  VX(4, 721), VX_MASK,     PPCEFS,         { RD, RB } },
-{ "efscfuf",  VX(4, 722), VX_MASK,     PPCEFS,         { RD, RB } },
-{ "efscfsf",  VX(4, 723), VX_MASK,     PPCEFS,         { RD, RB } },
-{ "efsctui",  VX(4, 724), VX_MASK,     PPCEFS,         { RD, RB } },
-{ "efsctsi",  VX(4, 725), VX_MASK,     PPCEFS,         { RD, RB } },
-{ "efsctsiz", VX(4, 730), VX_MASK,     PPCEFS,         { RD, RB } },
-{ "efsctuf",  VX(4, 726), VX_MASK,     PPCEFS,         { RD, RB } },
-{ "efsctsf",  VX(4, 727), VX_MASK,     PPCEFS,         { RD, RB } },
-
-{ "evsabs",    VX(4, 708), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evsnabs",   VX(4, 709), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evsneg",    VX(4, 710), VX_MASK,    PPCSPE,         { RD, RA } },
-{ "evsadd",    VX(4, 704), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evssub",    VX(4, 705), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evsmul",    VX(4, 712), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evsdiv",    VX(4, 713), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evscmpgt",  VX(4, 716), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
-{ "evsgmplt",  VX(4, 717), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
-{ "evsgmpeq",  VX(4, 718), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
-{ "evststgt",  VX(4, 732), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
-{ "evststlt",  VX(4, 733), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
-{ "evststeq",  VX(4, 734), VX_MASK,    PPCSPE,         { CRFD, RA, RB } },
-{ "evscfui",   VX(4, 720), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evscfsi",   VX(4, 721), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evscfuf",   VX(4, 722), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evscfsf",   VX(4, 723), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evsctui",   VX(4, 724), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evsctuiz",  VX(4, 728), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evsctsi",   VX(4, 725), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evsctsiz",  VX(4, 730), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evsctuf",   VX(4, 726), VX_MASK,    PPCSPE,         { RD, RB } },
-{ "evsctsf",   VX(4, 727), VX_MASK,    PPCSPE,         { RD, RB } },
-
-{ "evmhossf",  VX(4, 1031), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhossfa", VX(4, 1063), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhosmf",  VX(4, 1039), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhosmfa", VX(4, 1071), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhosmi",  VX(4, 1037), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhosmia", VX(4, 1069), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhoumi",  VX(4, 1036), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhoumia", VX(4, 1068), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhessf",  VX(4, 1027), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhessfa", VX(4, 1059), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhesmf",  VX(4, 1035), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhesmfa", VX(4, 1067), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhesmi",  VX(4, 1033), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmhesmia", VX(4, 1065), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmheumi",  VX(4, 1032), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmheumia", VX(4, 1064), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-
-{ "evmhossfaaw",VX(4, 1287), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhossiaaw",VX(4, 1285), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhosmfaaw",VX(4, 1295), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhosmiaaw",VX(4, 1293), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhousiaaw",VX(4, 1284), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhoumiaaw",VX(4, 1292), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhessfaaw",VX(4, 1283), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhessiaaw",VX(4, 1281), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhesmfaaw",VX(4, 1291), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhesmiaaw",VX(4, 1289), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmheusiaaw",VX(4, 1280), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmheumiaaw",VX(4, 1288), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-
-{ "evmhossfanw",VX(4, 1415), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhossianw",VX(4, 1413), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhosmfanw",VX(4, 1423), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhosmianw",VX(4, 1421), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhousianw",VX(4, 1412), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhoumianw",VX(4, 1420), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhessfanw",VX(4, 1411), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhessianw",VX(4, 1409), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhesmfanw",VX(4, 1419), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhesmianw",VX(4, 1417), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmheusianw",VX(4, 1408), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmheumianw",VX(4, 1416), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-
-{ "evmhogsmfaa",VX(4, 1327), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhogsmiaa",VX(4, 1325), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhogumiaa",VX(4, 1324), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhegsmfaa",VX(4, 1323), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhegsmiaa",VX(4, 1321), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhegumiaa",VX(4, 1320), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-
-{ "evmhogsmfan",VX(4, 1455), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhogsmian",VX(4, 1453), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhogumian",VX(4, 1452), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhegsmfan",VX(4, 1451), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhegsmian",VX(4, 1449), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmhegumian",VX(4, 1448), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-
-{ "evmwhssf",  VX(4, 1095), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhssfa", VX(4, 1127), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhsmf",  VX(4, 1103), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhsmfa", VX(4, 1135), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhsmi",  VX(4, 1101), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhsmia", VX(4, 1133), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhumi",  VX(4, 1100), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhumia", VX(4, 1132), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-
-{ "evmwlssf",  VX(4, 1091), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwlssfa", VX(4, 1123), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwlsmf",  VX(4, 1099), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwlsmfa", VX(4, 1131), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwlumi",  VX(4, 1096), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwlumia", VX(4, 1128), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-
-{ "evmwhssfaa",VX(4, 1351), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhssmaa",VX(4, 1349), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhsmfaa",VX(4, 1359), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhsmiaa",VX(4, 1357), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhusiaa",VX(4, 1348), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhumiaa",VX(4, 1356), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-
-{ "evmwlssfaaw",VX(4, 1347), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlssiaaw",VX(4, 1345), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlsmfaaw",VX(4, 1355), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlsmiaaw",VX(4, 1353), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlusiaaw",VX(4, 1344), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlumiaaw",VX(4, 1352), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-
-{ "evmwhssfan",VX(4, 1479), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhssian",VX(4, 1477), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhsmfan",VX(4, 1487), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhsmian",VX(4, 1485), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhusian",VX(4, 1476), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwhumian",VX(4, 1484), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-
-{ "evmwlssfanw",VX(4, 1475), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlssianw",VX(4, 1473), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlsmfanw",VX(4, 1483), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlsmianw",VX(4, 1481), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlusianw",VX(4, 1472), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwlumianw",VX(4, 1480), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-
-{ "evmwhgssfaa",VX(4, 1383), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwhgsmfaa",VX(4, 1391), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwhgsmiaa",VX(4, 1381), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwhgumiaa",VX(4, 1380), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-
-{ "evmwhgssfan",VX(4, 1511), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwhgsmfan",VX(4, 1519), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwhgsmian",VX(4, 1509), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-{ "evmwhgumian",VX(4, 1508), VX_MASK,  PPCSPE,         { RD, RA, RB } },
-
-{ "evmwssf",   VX(4, 1107), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwssfa",  VX(4, 1139), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwsmf",   VX(4, 1115), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwsmfa",  VX(4, 1147), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwsmi",   VX(4, 1113), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwsmia",  VX(4, 1145), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwumi",   VX(4, 1112), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwumia",  VX(4, 1144), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-
-{ "evmwssfaa", VX(4, 1363), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwsmfaa", VX(4, 1371), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwsmiaa", VX(4, 1369), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwumiaa", VX(4, 1368), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-
-{ "evmwssfan", VX(4, 1491), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwsmfan", VX(4, 1499), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwsmian", VX(4, 1497), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-{ "evmwumian", VX(4, 1496), VX_MASK,   PPCSPE,         { RD, RA, RB } },
-
-{ "evaddssiaaw",VX(4, 1217), VX_MASK,  PPCSPE,         { RD, RA } },
-{ "evaddsmiaaw",VX(4, 1225), VX_MASK,  PPCSPE,         { RD, RA } },
-{ "evaddusiaaw",VX(4, 1216), VX_MASK,  PPCSPE,         { RD, RA } },
-{ "evaddumiaaw",VX(4, 1224), VX_MASK,  PPCSPE,         { RD, RA } },
-
-{ "evsubfssiaaw",VX(4, 1219), VX_MASK, PPCSPE,         { RD, RA } },
-{ "evsubfsmiaaw",VX(4, 1227), VX_MASK, PPCSPE,         { RD, RA } },
-{ "evsubfusiaaw",VX(4, 1218), VX_MASK, PPCSPE,         { RD, RA } },
-{ "evsubfumiaaw",VX(4, 1226), VX_MASK, PPCSPE,         { RD, RA } },
-
-{ "evmra",    VX(4, 1220), VX_MASK,    PPCSPE,         { RD, RA } },
-
-{ "evdivws",  VX(4, 1222), VX_MASK,    PPCSPE,         { RD, RA, RB } },
-{ "evdivwu",  VX(4, 1223), VX_MASK,    PPCSPE,         { RD, RA, RB } },
+{ "efscfui",  VX(4, 720), VX_MASK,     PPCEFS,         { RS, RB } },
+{ "efsctuiz", VX(4, 728), VX_MASK,     PPCEFS,         { RS, RB } },
+{ "efscfsi",  VX(4, 721), VX_MASK,     PPCEFS,         { RS, RB } },
+{ "efscfuf",  VX(4, 722), VX_MASK,     PPCEFS,         { RS, RB } },
+{ "efscfsf",  VX(4, 723), VX_MASK,     PPCEFS,         { RS, RB } },
+{ "efsctui",  VX(4, 724), VX_MASK,     PPCEFS,         { RS, RB } },
+{ "efsctsi",  VX(4, 725), VX_MASK,     PPCEFS,         { RS, RB } },
+{ "efsctsiz", VX(4, 730), VX_MASK,     PPCEFS,         { RS, RB } },
+{ "efsctuf",  VX(4, 726), VX_MASK,     PPCEFS,         { RS, RB } },
+{ "efsctsf",  VX(4, 727), VX_MASK,     PPCEFS,         { RS, RB } },
+
+{ "evmhossf",  VX(4, 1031), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhossfa", VX(4, 1063), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhosmf",  VX(4, 1039), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhosmfa", VX(4, 1071), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhosmi",  VX(4, 1037), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhosmia", VX(4, 1069), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhoumi",  VX(4, 1036), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhoumia", VX(4, 1068), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhessf",  VX(4, 1027), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhessfa", VX(4, 1059), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhesmf",  VX(4, 1035), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhesmfa", VX(4, 1067), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhesmi",  VX(4, 1033), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmhesmia", VX(4, 1065), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmheumi",  VX(4, 1032), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmheumia", VX(4, 1064), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+
+{ "evmhossfaaw",VX(4, 1287), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhossiaaw",VX(4, 1285), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhosmfaaw",VX(4, 1295), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhosmiaaw",VX(4, 1293), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhousiaaw",VX(4, 1284), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhoumiaaw",VX(4, 1292), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhessfaaw",VX(4, 1283), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhessiaaw",VX(4, 1281), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhesmfaaw",VX(4, 1291), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhesmiaaw",VX(4, 1289), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmheusiaaw",VX(4, 1280), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmheumiaaw",VX(4, 1288), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+
+{ "evmhossfanw",VX(4, 1415), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhossianw",VX(4, 1413), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhosmfanw",VX(4, 1423), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhosmianw",VX(4, 1421), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhousianw",VX(4, 1412), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhoumianw",VX(4, 1420), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhessfanw",VX(4, 1411), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhessianw",VX(4, 1409), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhesmfanw",VX(4, 1419), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhesmianw",VX(4, 1417), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmheusianw",VX(4, 1408), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmheumianw",VX(4, 1416), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+
+{ "evmhogsmfaa",VX(4, 1327), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhogsmiaa",VX(4, 1325), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhogumiaa",VX(4, 1324), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhegsmfaa",VX(4, 1323), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhegsmiaa",VX(4, 1321), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhegumiaa",VX(4, 1320), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+
+{ "evmhogsmfan",VX(4, 1455), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhogsmian",VX(4, 1453), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhogumian",VX(4, 1452), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhegsmfan",VX(4, 1451), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhegsmian",VX(4, 1449), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmhegumian",VX(4, 1448), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+
+{ "evmwhssf",  VX(4, 1095), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwhssfa", VX(4, 1127), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwhsmf",  VX(4, 1103), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwhsmfa", VX(4, 1135), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwhsmi",  VX(4, 1101), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwhsmia", VX(4, 1133), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwhumi",  VX(4, 1100), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwhumia", VX(4, 1132), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+
+{ "evmwlumi",  VX(4, 1096), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwlumia", VX(4, 1128), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+
+{ "evmwlssiaaw",VX(4, 1345), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmwlsmiaaw",VX(4, 1353), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmwlusiaaw",VX(4, 1344), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmwlumiaaw",VX(4, 1352), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+
+{ "evmwlssianw",VX(4, 1473), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmwlsmianw",VX(4, 1481), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmwlusianw",VX(4, 1472), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+{ "evmwlumianw",VX(4, 1480), VX_MASK,  PPCSPE,         { RS, RA, RB } },
+
+{ "evmwssf",   VX(4, 1107), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwssfa",  VX(4, 1139), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwsmf",   VX(4, 1115), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwsmfa",  VX(4, 1147), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwsmi",   VX(4, 1113), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwsmia",  VX(4, 1145), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwumi",   VX(4, 1112), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwumia",  VX(4, 1144), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+
+{ "evmwssfaa", VX(4, 1363), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwsmfaa", VX(4, 1371), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwsmiaa", VX(4, 1369), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwumiaa", VX(4, 1368), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+
+{ "evmwssfan", VX(4, 1491), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwsmfan", VX(4, 1499), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwsmian", VX(4, 1497), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+{ "evmwumian", VX(4, 1496), VX_MASK,   PPCSPE,         { RS, RA, RB } },
+
+{ "evaddssiaaw",VX(4, 1217), VX_MASK,  PPCSPE,         { RS, RA } },
+{ "evaddsmiaaw",VX(4, 1225), VX_MASK,  PPCSPE,         { RS, RA } },
+{ "evaddusiaaw",VX(4, 1216), VX_MASK,  PPCSPE,         { RS, RA } },
+{ "evaddumiaaw",VX(4, 1224), VX_MASK,  PPCSPE,         { RS, RA } },
+
+{ "evsubfssiaaw",VX(4, 1219), VX_MASK, PPCSPE,         { RS, RA } },
+{ "evsubfsmiaaw",VX(4, 1227), VX_MASK, PPCSPE,         { RS, RA } },
+{ "evsubfusiaaw",VX(4, 1218), VX_MASK, PPCSPE,         { RS, RA } },
+{ "evsubfumiaaw",VX(4, 1226), VX_MASK, PPCSPE,         { RS, RA } },
+
+{ "evmra",    VX(4, 1220), VX_MASK,    PPCSPE,         { RS, RA } },
+
+{ "evdivws",  VX(4, 1222), VX_MASK,    PPCSPE,         { RS, RA, RB } },
+{ "evdivwu",  VX(4, 1223), VX_MASK,    PPCSPE,         { RS, RA, RB } },
 
 { "mulli",   OP(7),    OP_MASK,        PPCCOM,         { RT, RA, SI } },
 { "muli",    OP(7),    OP_MASK,        PWRCOM,         { RT, RA, SI } },
@@ -3627,7 +3541,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 { "divo",    XO(31,331,1,0), XO_MASK,  M601,           { RT, RA, RB } },
 { "divo.",   XO(31,331,1,1), XO_MASK,  M601,           { RT, RA, RB } },
 
-{ "mfpmr",   X(31,334),        X_MASK,         PPCPMR,         { RT, PMRN }},
+{ "mfpmr",   X(31,334),        X_MASK,         PPCPMR,         { RT, PMR }},
 
 { "mfmq",       XSPR(31,339,0),    XSPR_MASK, M601,    { RT } },
 { "mfxer",      XSPR(31,339,1),    XSPR_MASK, COM,     { RT } },
@@ -3672,6 +3586,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 { "mfsprg5",    XSPR(31,339,261),  XSPR_MASK, PPC405,  { RT } },
 { "mfsprg6",    XSPR(31,339,262),  XSPR_MASK, PPC405,  { RT } },
 { "mfsprg7",    XSPR(31,339,263),  XSPR_MASK, PPC405,  { RT } },
+{ "mftb",       XSPR(31,339,268),  XSPR_MASK, BOOKE,    { RT } },
 { "mftbl",      XSPR(31,339,268),  XSPR_MASK, BOOKE,    { RT } },
 { "mftbu",      XSPR(31,339,269),  XSPR_MASK, BOOKE,    { RT } },
 { "mfsprg",     XSPR(31,339,272),  XSPRG_MASK, PPC,    { RT, SPRG } },
@@ -3715,6 +3630,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 { "mfivor15",   XSPR(31,339,415),  XSPR_MASK, BOOKE,    { RT } },
 { "mfspefscr",  XSPR(31,339,512),  XSPR_MASK, PPCSPE,  { RT } },
 { "mfbbear",    XSPR(31,339,513),  XSPR_MASK, PPCBRLK,  { RT } },
+{ "mfbbtar",    XSPR(31,339,514),  XSPR_MASK, PPCBRLK,  { RT } },
 { "mfibatu",    XSPR(31,339,528),  XSPRBAT_MASK, PPC,  { RT, SPRBAT } },
 { "mfibatl",    XSPR(31,339,529),  XSPRBAT_MASK, PPC,  { RT, SPRBAT } },
 { "mfdbatu",    XSPR(31,339,536),  XSPRBAT_MASK, PPC,  { RT, SPRBAT } },
@@ -3835,7 +3751,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 
 { "mftbl",   XSPR(31,371,268), XSPR_MASK, CLASSIC,     { RT } },
 { "mftbu",   XSPR(31,371,269), XSPR_MASK, CLASSIC,     { RT } },
-{ "mftb",    X(31,371),        X_MASK,         BOOKE,          { RT, TBR } },
 { "mftb",    X(31,371),        X_MASK,         CLASSIC,        { RT, TBR } },
 
 { "lwaux",   X(31,373),        X_MASK,         PPC64,          { RT, RAL, RB } },
@@ -4028,8 +3943,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 { "mtivor13",  XSPR(31,467,413),  XSPR_MASK, BOOKE,     { RS } },
 { "mtivor14",  XSPR(31,467,414),  XSPR_MASK, BOOKE,     { RS } },
 { "mtivor15",  XSPR(31,467,415),  XSPR_MASK, BOOKE,     { RS } },
-{ "mtspefscr", XSPR(31,467,512),  XSPR_MASK, PPCSPE,   { RT } },
+{ "mtspefscr",  XSPR(31,467,512),  XSPR_MASK, PPCSPE,   { RS } },
 { "mtbbear",   XSPR(31,467,513),  XSPR_MASK, PPCBRLK,   { RS } },
+{ "mtbbtar",   XSPR(31,467,514),  XSPR_MASK, PPCBRLK,  { RS } },
 { "mtibatu",   XSPR(31,467,528),  XSPRBAT_MASK, PPC,   { SPRBAT, RS } },
 { "mtibatl",   XSPR(31,467,529),  XSPRBAT_MASK, PPC,   { SPRBAT, RS } },
 { "mtdbatu",   XSPR(31,467,536),  XSPRBAT_MASK, PPC,   { SPRBAT, RS } },
@@ -4103,7 +4019,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 
 { "dcread",  X(31,486),        X_MASK,         PPC403,         { RT, RA, RB }},
 
-{ "mtpmr",   X(31,462),        X_MASK,         PPCPMR,         { PMRN, RS }},
+{ "mtpmr",   X(31,462),        X_MASK,         PPCPMR,         { PMR, RS }},
 
 { "icbtls",  X(31,486),        X_MASK,         PPCCHLK,        { CT, RA, RB }},
 
@@ -4182,9 +4098,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 
 { "lwsync",  XSYNC(31,598,1), 0xffffffff, PPCONLY,     { 0 } },
 { "ptesync", XSYNC(31,598,2), 0xffffffff, PPC64,       { 0 } },
+{ "msync",   X(31,598), 0xffffffff,    BOOKE,          { 0 } },
 { "sync",    X(31,598), XSYNC_MASK,    PPCCOM,         { LS } },
 { "dcs",     X(31,598), 0xffffffff,    PWRCOM,         { 0 } },
-{ "msync",   X(31,598), 0xf80007fe,    BOOKE,          { 0 } },
 
 { "lfdx",    X(31,599), X_MASK,                COM,            { FRT, RA, RB } },
 
@@ -4280,8 +4196,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 
 { "slbmfev", X(31,851), XRA_MASK,      PPC64,          { RT, RB } },
 
+{ "mbar",    X(31,854),        X_MASK,         BOOKE,          { MO } },
 { "eieio",   X(31,854),        0xffffffff,     PPC,            { 0 } },
-{ "mbar",    X(31,854),        0xffffffff,     BOOKE,          { MO } },
 
 { "tlbsx",   XRC(31,914,0), X_MASK,    PPC403,         { RT, RA, RB } },
 { "tlbsx.",  XRC(31,914,1), X_MASK,    PPC403,         { RT, RA, RB } },
index 24d4b41eaff5b69b425bc76910fe11d643764502..966a10eb712af1b8fb019d3dcc37c19c3570fdcc 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassemble SH instructions.
-   Copyright 1993, 1994, 1995, 1997, 1998, 2000, 2001
+   Copyright 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
@@ -24,15 +24,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "sh-opc.h"
 #include "dis-asm.h"
 
+#ifdef ARCH_all
+#define INCLUDE_SHMEDIA
+#endif
+
 static void print_movxy
-  PARAMS ((sh_opcode_info *, int, int, fprintf_ftype, void *));
+  PARAMS ((const sh_opcode_info *, int, int, fprintf_ftype, void *));
 static void print_insn_ddt PARAMS ((int, struct disassemble_info *));
 static void print_dsp_reg PARAMS ((int, fprintf_ftype, void *));
 static void print_insn_ppi PARAMS ((int, struct disassemble_info *));
 
 static void
 print_movxy (op, rn, rm, fprintf_fn, stream)
-     sh_opcode_info *op;
+     const sh_opcode_info *op;
      int rn, rm;
      fprintf_ftype fprintf_fn;
      void *stream;
@@ -101,8 +105,8 @@ print_insn_ddt (insn, info)
     fprintf_fn (stream, ".word 0x%x", insn);
   else
     {
-      static sh_opcode_info *first_movx, *first_movy;
-      sh_opcode_info *opx, *opy;
+      static const sh_opcode_info *first_movx, *first_movy;
+      const sh_opcode_info *opx, *opy;
       unsigned int insn_x, insn_y;
 
       if (! first_movx)
@@ -188,7 +192,7 @@ print_insn_ppi (field_b, info)
   void *stream = info->stream;
   unsigned int nib1, nib2, nib3;
   char *dc = NULL;
-  sh_opcode_info *op;
+  const sh_opcode_info *op;
 
   if ((field_b & 0xe800) == 0)
     {
@@ -294,7 +298,7 @@ print_insn_sh (memaddr, info)
   unsigned char nibs[4];
   int status;
   bfd_vma relmask = ~(bfd_vma) 0;
-  sh_opcode_info *op;
+  const sh_opcode_info *op;
   int target_arch;
 
   switch (info->mach)
index abdc4647056295a8f55b24373370530d47b4b908..21f64dde61af8a0db6510f6cf803da5d646695cb 100644 (file)
@@ -170,7 +170,7 @@ typedef struct {
 
 #ifdef DEFINE_TABLE
 
-sh_opcode_info sh_table[] = {
+const sh_opcode_info sh_table[] = {
 
 /* 0111nnnni8*1.... add #<imm>,<REG_N>  */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh1_up},
 
index 10c0f3102e8c54416be459bb9b34ee136be797bf..631678c4c6f5b95151c2127ba1bc82485bac01d6 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassemble SH64 instructions.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright 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
@@ -48,7 +48,7 @@ struct sh64_disassemble_info
  };
 
 /* Each item in the table is a mask to indicate which bits to be set
-   to determine an instruction's operator. 
+   to determine an instruction's operator.
    The index is as same as the instruction in the opcode table.
    Note that some archs have this as a field in the opcode table.  */
 static unsigned long *shmedia_opcode_mask_table;
@@ -56,7 +56,7 @@ static unsigned long *shmedia_opcode_mask_table;
 static void initialize_shmedia_opcode_mask_table PARAMS ((void));
 static int print_insn_shmedia PARAMS ((bfd_vma, disassemble_info *));
 static const char *creg_name PARAMS ((int));
-static boolean init_sh64_disasm_info PARAMS ((struct disassemble_info *));
+static bfd_boolean init_sh64_disasm_info PARAMS ((struct disassemble_info *));
 static enum sh64_elf_cr_type sh64_get_contents_type_disasm
   PARAMS ((bfd_vma, struct disassemble_info *));
 
@@ -86,7 +86,7 @@ initialize_shmedia_opcode_mask_table ()
        {
          int offset = shmedia_table[n].nibbles[i];
          int length;
-         
+
          switch (shmedia_table[n].arg[i])
            {
            case A_GREG_M:
@@ -118,7 +118,7 @@ initialize_shmedia_opcode_mask_table ()
              length = 3;
              break;
 
-           case A_IMMM:        
+           case A_IMMM:
              abort ();
              break;
 
@@ -511,7 +511,7 @@ sh64_get_contents_type_disasm (memaddr, info)
 
 /* Initialize static and dynamic disassembly state.  */
 
-static boolean
+static bfd_boolean
 init_sh64_disasm_info (info)
      struct disassemble_info *info;
 {
@@ -519,7 +519,7 @@ init_sh64_disasm_info (info)
     = calloc (sizeof (*sh64_infop), 1);
 
   if (sh64_infop == NULL)
-    return false;
+    return FALSE;
 
   info->private_data = sh64_infop;
 
@@ -529,14 +529,14 @@ init_sh64_disasm_info (info)
   if (shmedia_opcode_mask_table == NULL)
     initialize_shmedia_opcode_mask_table ();
 
-  return true;
+  return TRUE;
 }
 
 /* Main entry to disassemble SHmedia instructions, given an endian set in
    INFO.  Note that the simulator uses this as the main entry and does not
    use any of the functions further below.  */
 
-int 
+int
 print_insn_sh64x_media (memaddr, info)
      bfd_vma memaddr;
      struct disassemble_info *info;
@@ -554,7 +554,7 @@ print_insn_sh64x_media (memaddr, info)
 /* Main entry to disassemble SHmedia insns.
    If we see an SHcompact instruction, return -2.  */
 
-int 
+int
 print_insn_sh64 (memaddr, info)
      bfd_vma memaddr;
      struct disassemble_info *info;
index 67956f7a380a707fbc503e1db0cb668eb7b7be6e..f410d74fb2686f9eaa2f9dfb5c4091c618a339db 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassembly routines for TMS320C30 architecture
-   Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
 
    This program is free software; you can redistribute it and/or modify
@@ -663,6 +663,10 @@ cnvt_tmsfloat_ieee (tmsfloat, size, ieeefloat)
      float *ieeefloat;
 {
   unsigned long exp, sign, mant;
+  union {
+    unsigned long l;
+    float f;
+  } val;
 
   if (size == 2)
     {
@@ -705,6 +709,7 @@ cnvt_tmsfloat_ieee (tmsfloat, size, ieeefloat)
   if (tmsfloat == 0x80000000)
     sign = mant = exp = 0;
   tmsfloat = sign | exp | mant;
-  *ieeefloat = *((float *) &tmsfloat);
+  val.l = tmsfloat;
+  *ieeefloat = val.f;
   return 1;
 }
index 9eda876622da1fbcbfa8eb8679178703785285da..b9916934dc04bfd933fae10cc5185e8a87763f8b 100644 (file)
@@ -25,7 +25,8 @@
 
 #define C4X_DEBUG 0
 
-#define C4X_HASH_SIZE 11 /* 11 and above should give unique entries.  */
+#define C4X_HASH_SIZE   11   /* 11 (bits) and above should give unique entries.  */
+#define C4X_SPESOP_SIZE 8    /* Max 8. ops for special instructions */
 
 typedef enum
   {
@@ -50,35 +51,37 @@ static int c4x_version = 0;
 static int c4x_dp = 0;
 
 static int c4x_pc_offset
-    PARAMS ((unsigned int));
+  PARAMS ((unsigned int));
 static int c4x_print_char
-    PARAMS ((struct disassemble_info *, char));
+  PARAMS ((struct disassemble_info *, char));
 static int c4x_print_str
-    PARAMS ((struct disassemble_info *, char *));
+  PARAMS ((struct disassemble_info *, char *));
 static int c4x_print_register
-    PARAMS ((struct disassemble_info *, unsigned long));
+  PARAMS ((struct disassemble_info *, unsigned long));
 static int c4x_print_addr
-    PARAMS ((struct disassemble_info *, unsigned long));
+  PARAMS ((struct disassemble_info *, unsigned long));
 static int c4x_print_relative
-    PARAMS ((struct disassemble_info *, unsigned long, long, unsigned long));
+  PARAMS ((struct disassemble_info *, unsigned long, long, unsigned long));
 void c4x_print_ftoa
-    PARAMS ((unsigned int, FILE *, fprintf_ftype));
+  PARAMS ((unsigned int, FILE *, fprintf_ftype));
 static int c4x_print_direct
-    PARAMS ((struct disassemble_info *, unsigned long));
+  PARAMS ((struct disassemble_info *, unsigned long));
 static int c4x_print_immed
-    PARAMS ((struct disassemble_info *, immed_t, unsigned long));
+  PARAMS ((struct disassemble_info *, immed_t, unsigned long));
 static int c4x_print_cond
-    PARAMS ((struct disassemble_info *, unsigned int));
+  PARAMS ((struct disassemble_info *, unsigned int));
 static int c4x_print_indirect
-    PARAMS ((struct disassemble_info *, indirect_t, unsigned long));
+  PARAMS ((struct disassemble_info *, indirect_t, unsigned long));
 static int c4x_print_op
-    PARAMS ((struct disassemble_info *, unsigned long, c4x_inst_t *, unsigned long));
+  PARAMS ((struct disassemble_info *, unsigned long, c4x_inst_t *, unsigned long));
+static void c4x_hash_opcode_special
+  PARAMS ((c4x_inst_t **, const c4x_inst_t *));
 static void c4x_hash_opcode
-    PARAMS ((c4x_inst_t **, const c4x_inst_t *));
+  PARAMS ((c4x_inst_t **, c4x_inst_t **, const c4x_inst_t *, unsigned long));
 static int c4x_disassemble
-    PARAMS ((unsigned long, unsigned long, struct disassemble_info *));
+  PARAMS ((unsigned long, unsigned long, struct disassemble_info *));
 int print_insn_tic4x
-    PARAMS ((bfd_vma, struct disassemble_info *));
+  PARAMS ((bfd_vma, struct disassemble_info *));
 
 
 static int
@@ -479,6 +482,7 @@ c4x_print_op (info, instruction, p, pc)
          break;
 
        case 'E': /* register 0--7 */
+        case 'e':
          if (! c4x_print_register (info, EXTRU (instruction, 7, 0)))
            return 0;
          break;
@@ -488,12 +492,29 @@ c4x_print_op (info, instruction, p, pc)
                           EXTRU (instruction, 15, 0));
          break;
 
+        case 'i': /* Extended indirect 0--7 */
+          if ( EXTRU (instruction, 7, 5) == 7 )
+            {
+              if( !c4x_print_register (info, EXTRU (instruction, 4, 0)) )
+                return 0;
+              break;
+            }
+          /* Fallthrough */
+
        case 'I': /* indirect (short) 0--7 */
          if (! c4x_print_indirect (info, INDIRECT_SHORT,
                                    EXTRU (instruction, 7, 0)))
            return 0;
          break;
 
+        case 'j': /* Extended indirect 8--15 */
+          if ( EXTRU (instruction, 15, 13) == 7 )
+            {
+              if( !c4x_print_register (info, EXTRU (instruction, 12, 8)) )
+                return 0;
+              break;
+            }
+
        case 'J': /* indirect (short) 8--15 */
          if (! c4x_print_indirect (info, INDIRECT_SHORT,
                                    EXTRU (instruction, 15, 8)))
@@ -501,6 +522,7 @@ c4x_print_op (info, instruction, p, pc)
          break;
 
        case 'G': /* register 8--15 */
+        case 'g':
          if (! c4x_print_register (info, EXTRU (instruction, 15, 8)))
            return 0;
          break;
@@ -525,7 +547,7 @@ c4x_print_op (info, instruction, p, pc)
          break;
 
        case 'N': /* register 23--23 */
-         c4x_print_register (info, EXTRU (instruction, 22, 22) + REG_R0);
+         c4x_print_register (info, EXTRU (instruction, 23, 23) + REG_R0);
          break;
 
        case 'O': /* indirect (short C4x) 8--15 */
@@ -542,11 +564,13 @@ c4x_print_op (info, instruction, p, pc)
          break;
 
        case 'Q': /* register 0--15 */
+        case 'q':
          if (! c4x_print_register (info, EXTRU (instruction, 15, 0)))
            return 0;
          break;
 
        case 'R': /* register 16--20 */
+        case 'r':
          if (! c4x_print_register (info, EXTRU (instruction, 20, 16)))
            return 0;
          break;
@@ -625,9 +649,43 @@ c4x_print_op (info, instruction, p, pc)
 }
 
 static void
-c4x_hash_opcode (optable, inst)
+c4x_hash_opcode_special (optable_special, inst)
+     c4x_inst_t **optable_special;
+     const c4x_inst_t *inst;
+{
+  int i;
+
+  for( i=0; i<C4X_SPESOP_SIZE; i++ )
+    if( optable_special[i] != NULL
+        && optable_special[i]->opcode == inst->opcode )
+      {
+        /* Collision (we have it already) - overwrite */
+        optable_special[i] = (void *)inst;
+        return;
+      }
+
+  for( i=0; i<C4X_SPESOP_SIZE; i++ )
+    if( optable_special[i] == NULL )
+      {
+        /* Add the new opcode */
+        optable_special[i] = (void *)inst;
+        return;
+      }
+
+  /* This should never occur. This happens if the number of special
+     instructions exceeds C4X_SPESOP_SIZE. Please increase the variable
+     of this variable */
+#if C4X_DEBUG
+  printf("optable_special[] is full, please increase C4X_SPESOP_SIZE!\n");
+#endif
+}
+
+static void
+c4x_hash_opcode (optable, optable_special, inst, c4x_oplevel)
      c4x_inst_t **optable;
+     c4x_inst_t **optable_special;
      const c4x_inst_t *inst;
+     const unsigned long c4x_oplevel;
 {
   int j;
   int opcode = inst->opcode >> (32 - C4X_HASH_SIZE);
@@ -637,7 +695,8 @@ c4x_hash_opcode (optable, inst)
      have unique entries so there's no point having a linked list
      for each entry? */
   for (j = opcode; j < opmask; j++)
-    if ((j & opmask) == opcode)
+    if ( (j & opmask) == opcode
+         && inst->oplevel & c4x_oplevel )
       {
 #if C4X_DEBUG
        /* We should only have collisions for synonyms like
@@ -646,7 +705,21 @@ c4x_hash_opcode (optable, inst)
          printf("Collision at index %d, %s and %s\n",
                 j, optable[j]->name, inst->name);
 #endif
-       optable[j] = (void *)inst;
+        /* Catch those ops that collide with others already inside the
+           hash, and have a opmask greater than the one we use in the
+           hash. Store them in a special-list, that will handle full
+           32-bit INSN, not only the first 11-bit (or so). */
+        if ( optable[j] != NULL
+             && inst->opmask & ~(opmask << (32 - C4X_HASH_SIZE)) )
+          {
+            /* Add the instruction already on the list */
+            c4x_hash_opcode_special(optable_special, optable[j]);
+
+            /* Add the new instruction */
+            c4x_hash_opcode_special(optable_special, inst);
+          }
+
+        optable[j] = (void *)inst;
       }
 }
 
@@ -663,36 +736,63 @@ c4x_disassemble (pc, instruction, info)
      struct disassemble_info *info;
 {
   static c4x_inst_t **optable = NULL;
+  static c4x_inst_t **optable_special = NULL;
   c4x_inst_t *p;
   int i;
+  unsigned long c4x_oplevel;
   
   c4x_version = info->mach;
+
+  c4x_oplevel  = (IS_CPU_C4X (c4x_version)) ? OP_C4X : 0;
+  c4x_oplevel |= OP_C3X|OP_LPWR|OP_IDLE2|OP_ENH;
   
   if (optable == NULL)
     {
       optable = (c4x_inst_t **)
        xcalloc (sizeof (c4x_inst_t *), (1 << C4X_HASH_SIZE));
+
+      optable_special = (c4x_inst_t **)
+        xcalloc (sizeof (c4x_inst_t *), C4X_SPESOP_SIZE );
+
       /* Install opcodes in reverse order so that preferred
         forms overwrite synonyms.  */
-      for (i = c3x_num_insts - 1; i >= 0; i--)
-       c4x_hash_opcode (optable, &c3x_insts[i]);
-      if (IS_CPU_C4X (c4x_version))
-       {
-         for (i = c4x_num_insts - 1; i >= 0; i--)
-           c4x_hash_opcode (optable, &c4x_insts[i]);
-       }
+      for (i = c4x_num_insts - 1; i >= 0; i--)
+        c4x_hash_opcode (optable, optable_special, &c4x_insts[i], c4x_oplevel);
+
+      /* We now need to remove the insn that are special from the
+         "normal" optable, to make the disasm search this extra list
+         for them.
+      */
+      for (i=0; i<C4X_SPESOP_SIZE; i++)
+        if ( optable_special[i] != NULL )
+          optable[optable_special[i]->opcode >> (32 - C4X_HASH_SIZE)] = NULL;
     }
   
   /* See if we can pick up any loading of the DP register...  */
   if ((instruction >> 16) == 0x5070 || (instruction >> 16) == 0x1f70)
     c4x_dp = EXTRU (instruction, 15, 0);
-  
+
   p = optable[instruction >> (32 - C4X_HASH_SIZE)];
-  if (p != NULL && ((instruction & p->opmask) == p->opcode)
-      && c4x_print_op (NULL, instruction, p, pc))
-    c4x_print_op (info, instruction, p, pc);
+  if ( p != NULL )
+    {
+      if ( ((instruction & p->opmask) == p->opcode)
+           && c4x_print_op (NULL, instruction, p, pc) )
+        c4x_print_op (info, instruction, p, pc);
+      else
+        (*info->fprintf_func) (info->stream, "%08x", instruction);
+    }
   else
-    (*info->fprintf_func) (info->stream, "%08x", instruction);
+    {
+      for (i = 0; i<C4X_SPESOP_SIZE; i++)
+        if (optable_special[i] != NULL
+            && optable_special[i]->opcode == instruction )
+          {
+            (*info->fprintf_func)(info->stream, "%s", optable_special[i]->name);
+            break;
+          }
+      if (i==C4X_SPESOP_SIZE)
+        (*info->fprintf_func) (info->stream, "%08x", instruction);
+    }
 
   /* Return size of insn in words.  */
   return 1;    
index dbd43aac76e250c865fb9ec78076eb0c7de1a344..7c449f67ad1c44434d1d2e9a7bb6e869925bc5a9 100644 (file)
@@ -1,5 +1,6 @@
 /* Disassemble V850 instructions.
-   Copyright 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 1998, 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
@@ -50,16 +51,16 @@ disassemble (memaddr, info, insn)
      struct disassemble_info *info;
      unsigned long insn;
 {
-  struct v850_opcode *          op = (struct v850_opcode *)v850_opcodes;
-  const struct v850_operand *   operand;
-  int                           match = 0;
-  int                          short_op = ((insn & 0x0600) != 0x0600);
-  int                          bytes_read;
-  int                          target_processor;
+  struct v850_opcode *op = (struct v850_opcode *)v850_opcodes;
+  const struct v850_operand *operand;
+  int match = 0;
+  int short_op = ((insn & 0x0600) != 0x0600);
+  int bytes_read;
+  int target_processor;
   
   /* Special case: 32 bit MOV */
   if ((insn & 0xffe0) == 0x0620)
-    short_op = true;
+    short_op = 1;
   
   bytes_read = short_op ? 2 : 4;
   
@@ -85,9 +86,9 @@ disassemble (memaddr, info, insn)
       if ((op->mask & insn) == op->opcode
          && (op->processors & target_processor))
        {
-         const unsigned char * opindex_ptr;
-         unsigned int          opnum;
-         unsigned int          memop;
+         const unsigned char *opindex_ptr;
+         unsigned int opnum;
+         unsigned int memop;
 
          match = 1;
          (*info->fprintf_func) (info->stream, "%s\t", op->name);
@@ -111,10 +112,10 @@ disassemble (memaddr, info, insn)
               *opindex_ptr != 0;
               opindex_ptr++, opnum++)
            {
-             long      value;
-             int       flag;
-             int       status;
-             bfd_byte  buffer[ 4 ];
+             long value;
+             int flag;
+             int status;
+             bfd_byte buffer[4];
              
              operand = &v850_operands[*opindex_ptr];
              
@@ -203,11 +204,11 @@ disassemble (memaddr, info, insn)
                    static int list12_regs[32]   = { 30,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 31, 29, 28, 23, 22, 21, 20, 27, 26, 25, 24 };
                    static int list18_h_regs[32] = { 19, 18, 17, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 30, 31, 29, 28, 23, 22, 21, 20, 27, 26, 25, 24 };
                    static int list18_l_regs[32] = {  3,  2,  1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 14, 15, 13, 12,  7,  6,  5,  4, 11, 10,  9,  8 };
-                   int *             regs;
-                   int               i;
+                   int *regs;
+                   int i;
                    unsigned long int mask = 0;
-                   int               pc   = false;
-                   int               sr   = false;
+                   int pc = 0;
+                   int sr = 0;
                    
                    
                    switch (operand->shift)
@@ -230,8 +231,8 @@ disassemble (memaddr, info, insn)
                              default: mask |= (1 << regs[ i ]); break;
                                /* xgettext:c-format */
                              case 0:  fprintf (stderr, _("unknown pop reg: %d\n"), i ); abort();
-                             case -1: pc = true; break;
-                             case -2: sr = true; break;
+                             case -1: pc = 1; break;
+                             case -2: sr = 1; break;
                              }
                          }
                      }
@@ -243,7 +244,7 @@ disassemble (memaddr, info, insn)
                        if (mask)
                          {
                            unsigned int bit;
-                           int          shown_one = false;
+                           int shown_one = 0;
                            
                            for (bit = 0; bit < 32; bit++)
                              if (mask & (1 << bit))
@@ -254,7 +255,7 @@ disassemble (memaddr, info, insn)
                                  if (shown_one)
                                    info->fprintf_func (info->stream, ", ");
                                  else
-                                   shown_one = true;
+                                   shown_one = 1;
                                  
                                  info->fprintf_func (info->stream, v850_reg_names[first]);
                                  
@@ -347,8 +348,8 @@ print_insn_v850 (memaddr, info)
      bfd_vma memaddr;
      struct disassemble_info * info;
 {
-  int           status;
-  bfd_byte      buffer[ 4 ];
+  int status;
+  bfd_byte buffer[4];
   unsigned long insn = 0;
 
   /* First figure out how big the opcode is.  */
index 8e9c724b1fe2638f6f159d08b804018f8307b73a..3f2affa8082cb6b15f6700dbfdbab200f2fbf041 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassemble WDC 65816 instructions.
-   Copyright 1995, 1998, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1995, 1998, 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
@@ -84,7 +84,7 @@ print_insn_w65 (memaddr, info)
 {
   int status = 0;
   unsigned char insn[4];
-  register struct opinfo *op;
+  const struct opinfo *op;
   int i;
   int X = 0;
   int M = 0;
index 25be2e99720ffd57f4b81a8418d43e06701d9204..cb7fddafb2a75e37d1c6f504d53962fff8aee93f 100644 (file)
@@ -54,7 +54,7 @@ struct opinfo {
        char *name;
        int amode;
 };
-struct opinfo optable[257]={
+const struct opinfo optable[257]={
 #define O_adc 1
 #define O_and 2
 #define O_asl 3
index 047339dadd8423cbf47a7869d41ea1c543474402..324c091893eeea8e8c28ad24181e531519b6a2ab 100644 (file)
@@ -52,6 +52,8 @@ static const char * parse_mem8
   PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
 static const char * parse_small_immediate
   PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
+static const char * parse_immediate16
+  PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
 
 /* The machine-independent code doesn't know how to disambiguate
      mov (foo),r3
@@ -73,7 +75,7 @@ parse_mem8 (cd, strp, opindex, valuep)
       if (s[1] == '-' && s[2] == '-')
        return _("Bad register in preincrement");
 
-      while (isalnum (*++s))
+      while (ISALNUM (*++s))
        ;
       if (s[0] == '+' && s[1] == '+' && (s[2] == ')' || s[2] == ','))
        return _("Bad register in postincrement");
@@ -109,6 +111,9 @@ parse_small_immediate (cd, strp, opindex, valuep)
   enum cgen_parse_operand_result result;
   const char *errmsg;
 
+  if (**strp == '@')
+    return _("No relocation for small immediate");
+
   errmsg = (* cd->parse_operand_fn)
     (cd, CGEN_PARSE_OPERAND_INTEGER, strp, opindex, BFD_RELOC_NONE,
      &result, &value);
@@ -122,6 +127,54 @@ parse_small_immediate (cd, strp, opindex, valuep)
   *valuep = value;
   return NULL;
 }
+
+/* Literal scan be either a normal literal, a @hi() or @lo relocation. */
+   
+static const char *
+parse_immediate16 (cd, strp, opindex, valuep)
+     CGEN_CPU_DESC cd;
+     const char **strp;
+     int opindex;
+     unsigned long *valuep;
+{
+  const char *errmsg;
+  enum cgen_parse_operand_result result;
+  bfd_reloc_code_real_type code = BFD_RELOC_NONE;
+  bfd_vma value;
+
+  if (strncmp (*strp, "@hi(", 4) == 0)
+    {
+      *strp += 4;
+      code = BFD_RELOC_HI16;
+    }
+  else
+  if (strncmp (*strp, "@lo(", 4) == 0)
+    {
+      *strp += 4;
+      code = BFD_RELOC_LO16;
+    }
+
+  if (code == BFD_RELOC_NONE)
+    errmsg = cgen_parse_unsigned_integer (cd, strp, opindex, valuep);
+  else
+    {
+      errmsg = cgen_parse_address (cd, strp, opindex, code, &result, &value);
+      if ((errmsg == NULL) &&
+         (result != CGEN_PARSE_OPERAND_RESULT_QUEUED))
+       errmsg = _("Operand is not a symbol");
+
+      *valuep = value;
+      if ((code == BFD_RELOC_HI16 || code == BFD_RELOC_LO16)
+         && **strp == ')')        
+       *strp += 1;
+      else
+        {
+         errmsg = _("Syntax error: No trailing ')'");
+         return errmsg;
+       }
+    }
+  return errmsg;
+}
 /* -- */
 
 const char * xstormy16_cgen_parse_operand
@@ -187,7 +240,7 @@ xstormy16_cgen_parse_operand (cd, opindex, strp, fields)
       errmsg = cgen_parse_signed_integer (cd, strp, XSTORMY16_OPERAND_IMM12, &fields->f_imm12);
       break;
     case XSTORMY16_OPERAND_IMM16 :
-      errmsg = cgen_parse_unsigned_integer (cd, strp, XSTORMY16_OPERAND_IMM16, &fields->f_imm16);
+      errmsg = parse_immediate16 (cd, strp, XSTORMY16_OPERAND_IMM16, &fields->f_imm16);
       break;
     case XSTORMY16_OPERAND_IMM2 :
       errmsg = cgen_parse_unsigned_integer (cd, strp, XSTORMY16_OPERAND_IMM2, &fields->f_imm2);
index 0c506252e4580a7d86c477080c64fe3c66843707..77d7613f4aafc40e958544631fafeb772016e884 100644 (file)
@@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "xstormy16-opc.h"
 #include "opintl.h"
 #include "libiberty.h"
+#include "xregex.h"
 
 /* Attributes.  */
 
@@ -312,9 +313,9 @@ const CGEN_MAYBE_MULTI_IFLD XSTORMY16_F_ABS24_MULTI_IFIELD [];
 
 const CGEN_MAYBE_MULTI_IFLD XSTORMY16_F_ABS24_MULTI_IFIELD [] =
 {
-    { 0, &(xstormy16_cgen_ifld_table[34]) },
-    { 0, &(xstormy16_cgen_ifld_table[35]) },
-    {0,0}
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[34] } },
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[35] } },
+    { 0, { (const PTR) 0 } }
 };
 
 /* The operand table.  */
@@ -334,161 +335,164 @@ const CGEN_OPERAND xstormy16_cgen_operand_table[] =
 {
 /* pc: program counter */
   { "pc", XSTORMY16_OPERAND_PC, HW_H_PC, 0, 0,
-    { 0, &(xstormy16_cgen_ifld_table[0]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[0] } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psw-z8:  */
   { "psw-z8", XSTORMY16_OPERAND_PSW_Z8, HW_H_Z8, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psw-z16:  */
   { "psw-z16", XSTORMY16_OPERAND_PSW_Z16, HW_H_Z16, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psw-cy:  */
   { "psw-cy", XSTORMY16_OPERAND_PSW_CY, HW_H_CY, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psw-hc:  */
   { "psw-hc", XSTORMY16_OPERAND_PSW_HC, HW_H_HC, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psw-ov:  */
   { "psw-ov", XSTORMY16_OPERAND_PSW_OV, HW_H_OV, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psw-pt:  */
   { "psw-pt", XSTORMY16_OPERAND_PSW_PT, HW_H_PT, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* psw-s:  */
   { "psw-s", XSTORMY16_OPERAND_PSW_S, HW_H_S, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* Rd: general register destination */
   { "Rd", XSTORMY16_OPERAND_RD, HW_H_GR, 12, 4,
-    { 0, &(xstormy16_cgen_ifld_table[2]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[2] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Rdm: general register destination */
   { "Rdm", XSTORMY16_OPERAND_RDM, HW_H_GR, 13, 3,
-    { 0, &(xstormy16_cgen_ifld_table[3]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[3] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Rm: general register for memory */
   { "Rm", XSTORMY16_OPERAND_RM, HW_H_GR, 4, 3,
-    { 0, &(xstormy16_cgen_ifld_table[4]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[4] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Rs: general register source */
   { "Rs", XSTORMY16_OPERAND_RS, HW_H_GR, 8, 4,
-    { 0, &(xstormy16_cgen_ifld_table[5]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[5] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Rb: base register */
   { "Rb", XSTORMY16_OPERAND_RB, HW_H_RB, 17, 3,
-    { 0, &(xstormy16_cgen_ifld_table[6]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[6] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* Rbj: base register for jump */
   { "Rbj", XSTORMY16_OPERAND_RBJ, HW_H_RBJ, 11, 1,
-    { 0, &(xstormy16_cgen_ifld_table[7]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[7] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* bcond2: branch condition opcode */
   { "bcond2", XSTORMY16_OPERAND_BCOND2, HW_H_BRANCHCOND, 4, 4,
-    { 0, &(xstormy16_cgen_ifld_table[9]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[9] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* ws2: word size opcode */
   { "ws2", XSTORMY16_OPERAND_WS2, HW_H_WORDSIZE, 7, 1,
-    { 0, &(xstormy16_cgen_ifld_table[11]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[11] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* bcond5: branch condition opcode */
   { "bcond5", XSTORMY16_OPERAND_BCOND5, HW_H_BRANCHCOND, 16, 4,
-    { 0, &(xstormy16_cgen_ifld_table[18]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[18] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* imm2: 2 bit unsigned immediate */
   { "imm2", XSTORMY16_OPERAND_IMM2, HW_H_UINT, 10, 2,
-    { 0, &(xstormy16_cgen_ifld_table[21]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[21] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* imm3: 3 bit unsigned immediate */
   { "imm3", XSTORMY16_OPERAND_IMM3, HW_H_UINT, 4, 3,
-    { 0, &(xstormy16_cgen_ifld_table[22]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[22] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* imm3b: 3 bit unsigned immediate for bit tests */
   { "imm3b", XSTORMY16_OPERAND_IMM3B, HW_H_UINT, 17, 3,
-    { 0, &(xstormy16_cgen_ifld_table[23]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[23] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* imm4: 4 bit unsigned immediate */
   { "imm4", XSTORMY16_OPERAND_IMM4, HW_H_UINT, 8, 4,
-    { 0, &(xstormy16_cgen_ifld_table[24]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[24] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* imm8: 8 bit unsigned immediate */
   { "imm8", XSTORMY16_OPERAND_IMM8, HW_H_UINT, 8, 8,
-    { 0, &(xstormy16_cgen_ifld_table[25]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[25] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* imm8small: 8 bit unsigned immediate */
   { "imm8small", XSTORMY16_OPERAND_IMM8SMALL, HW_H_UINT, 8, 8,
-    { 0, &(xstormy16_cgen_ifld_table[25]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[25] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* imm12: 12 bit signed immediate */
   { "imm12", XSTORMY16_OPERAND_IMM12, HW_H_SINT, 20, 12,
-    { 0, &(xstormy16_cgen_ifld_table[26]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[26] } }, 
     { 0, { (1<<MACH_BASE) } }  },
 /* imm16: 16 bit immediate */
   { "imm16", XSTORMY16_OPERAND_IMM16, HW_H_UINT, 16, 16,
-    { 0, &(xstormy16_cgen_ifld_table[27]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[27] } }, 
     { 0|A(SIGN_OPT), { (1<<MACH_BASE) } }  },
 /* lmem8: 8 bit unsigned immediate low memory */
   { "lmem8", XSTORMY16_OPERAND_LMEM8, HW_H_UINT, 8, 8,
-    { 0, &(xstormy16_cgen_ifld_table[28]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[28] } }, 
     { 0|A(ABS_ADDR), { (1<<MACH_BASE) } }  },
 /* hmem8: 8 bit unsigned immediate high memory */
   { "hmem8", XSTORMY16_OPERAND_HMEM8, HW_H_UINT, 8, 8,
-    { 0, &(xstormy16_cgen_ifld_table[29]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[29] } }, 
     { 0|A(ABS_ADDR), { (1<<MACH_BASE) } }  },
 /* rel8-2: 8 bit relative address */
   { "rel8-2", XSTORMY16_OPERAND_REL8_2, HW_H_UINT, 8, 8,
-    { 0, &(xstormy16_cgen_ifld_table[30]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[30] } }, 
     { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* rel8-4: 8 bit relative address */
   { "rel8-4", XSTORMY16_OPERAND_REL8_4, HW_H_UINT, 8, 8,
-    { 0, &(xstormy16_cgen_ifld_table[31]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[31] } }, 
     { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* rel12: 12 bit relative address */
   { "rel12", XSTORMY16_OPERAND_REL12, HW_H_UINT, 20, 12,
-    { 0, &(xstormy16_cgen_ifld_table[32]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[32] } }, 
     { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* rel12a: 12 bit relative address */
   { "rel12a", XSTORMY16_OPERAND_REL12A, HW_H_UINT, 4, 11,
-    { 0, &(xstormy16_cgen_ifld_table[33]) }, 
+    { 0, { (const PTR) &xstormy16_cgen_ifld_table[33] } }, 
     { 0|A(PCREL_ADDR), { (1<<MACH_BASE) } }  },
 /* abs24: 24 bit absolute address */
   { "abs24", XSTORMY16_OPERAND_ABS24, HW_H_UINT, 8, 24,
-    { 2, &(XSTORMY16_F_ABS24_MULTI_IFIELD[0]) }, 
+    { 2, { (const PTR) &XSTORMY16_F_ABS24_MULTI_IFIELD[0] } }, 
     { 0|A(ABS_ADDR)|A(VIRTUAL), { (1<<MACH_BASE) } }  },
 /* psw: program status word */
   { "psw", XSTORMY16_OPERAND_PSW, HW_H_GR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* Rpsw: N0-N3 of the program status word */
   { "Rpsw", XSTORMY16_OPERAND_RPSW, HW_H_RPSW, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* sp: stack pointer */
   { "sp", XSTORMY16_OPERAND_SP, HW_H_GR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* R0: R0 */
   { "R0", XSTORMY16_OPERAND_R0, HW_H_GR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* R1: R1 */
   { "R1", XSTORMY16_OPERAND_R1, HW_H_GR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* R2: R2 */
   { "R2", XSTORMY16_OPERAND_R2, HW_H_GR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
 /* R8: R8 */
   { "R8", XSTORMY16_OPERAND_R8, HW_H_GR, 0, 0,
-    { 0, 0 }, 
+    { 0, { (const PTR) 0 } }, 
     { 0|A(SEM_ONLY), { (1<<MACH_BASE) } }  },
-  { 0, 0, 0, 0, 0, {0, {0}} }
+/* sentinel */
+  { 0, 0, 0, 0, 0,
+    { 0, { (const PTR) 0 } },
+    { 0, { 0 } } }
 };
 
 #undef A
@@ -1099,6 +1103,21 @@ static const CGEN_IBASE xstormy16_cgen_insn_table[MAX_INSNS] =
     XSTORMY16_INSN_DIV, "div", "div", 16,
     { 0, { (1<<MACH_BASE) } }
   },
+/* sdiv */
+  {
+    XSTORMY16_INSN_SDIV, "sdiv", "sdiv", 16,
+    { 0, { (1<<MACH_BASE) } }
+  },
+/* sdivlh */
+  {
+    XSTORMY16_INSN_SDIVLH, "sdivlh", "sdivlh", 16,
+    { 0, { (1<<MACH_BASE) } }
+  },
+/* divlh */
+  {
+    XSTORMY16_INSN_DIVLH, "divlh", "divlh", 16,
+    { 0, { (1<<MACH_BASE) } }
+  },
 /* nop */
   {
     XSTORMY16_INSN_NOP, "nop", "nop", 16,
@@ -1459,7 +1478,7 @@ xstormy16_cgen_cpu_close (cd)
      CGEN_CPU_DESC cd;
 {
   unsigned int i;
-  CGEN_INSN *insns;
+  const CGEN_INSN *insns;
 
   if (cd->macro_insn_table.init_entries)
     {
@@ -1467,7 +1486,7 @@ xstormy16_cgen_cpu_close (cd)
       for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX ((insns)))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
@@ -1477,7 +1496,7 @@ xstormy16_cgen_cpu_close (cd)
       for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
        {
          if (CGEN_INSN_RX (insns))
-           regfree(CGEN_INSN_RX (insns));
+           regfree (CGEN_INSN_RX (insns));
        }
     }
 
index f3cc8e6327ac6f674b8402aedabd9192debe6309..17c54a68a15ce6b336c2f5be1dace124d3ea6058 100644 (file)
@@ -4,7 +4,8 @@
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 - the resultant file is machine generated, cgen-dis.in isn't
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and GDB, the GNU debugger.
 
@@ -31,6 +32,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
 #include "dis-asm.h"
 #include "bfd.h"
 #include "symcat.h"
+#include "libiberty.h"
 #include "xstormy16-desc.h"
 #include "xstormy16-opc.h"
 #include "opintl.h"
index 8c6d7d306aa615703853f3757ecf47d169582121..90db6f0ca12cba7435a9d419485ff1ed7c19f135 100644 (file)
@@ -892,6 +892,24 @@ static const CGEN_OPCODE xstormy16_cgen_insn_opcode_table[MAX_INSNS] =
     { { MNEM, 0 } },
     & ifmt_iret, { 0xc0 }
   },
+/* sdiv */
+  {
+    { 0, 0, 0, 0 },
+    { { MNEM, 0 } },
+    & ifmt_iret, { 0xc8 }
+  },
+/* sdivlh */
+  {
+    { 0, 0, 0, 0 },
+    { { MNEM, 0 } },
+    & ifmt_iret, { 0xe8 }
+  },
+/* divlh */
+  {
+    { 0, 0, 0, 0 },
+    { { MNEM, 0 } },
+    & ifmt_iret, { 0xe0 }
+  },
 /* nop */
   {
     { 0, 0, 0, 0 },
index 337afecbc7058cd39950663360557dcd63073779..fbe7fe11438578dd4e64d6b1b7f21b3ade8494dc 100644 (file)
@@ -66,9 +66,9 @@ typedef enum cgen_insn_type {
  , XSTORMY16_INSN_BGR, XSTORMY16_INSN_BR, XSTORMY16_INSN_JMP, XSTORMY16_INSN_JMPF
  , XSTORMY16_INSN_CALLRGR, XSTORMY16_INSN_CALLRIMM, XSTORMY16_INSN_CALLGR, XSTORMY16_INSN_CALLFIMM
  , XSTORMY16_INSN_ICALLRGR, XSTORMY16_INSN_ICALLGR, XSTORMY16_INSN_ICALLFIMM, XSTORMY16_INSN_IRET
- , XSTORMY16_INSN_RET, XSTORMY16_INSN_MUL, XSTORMY16_INSN_DIV, XSTORMY16_INSN_NOP
- , XSTORMY16_INSN_HALT, XSTORMY16_INSN_HOLD, XSTORMY16_INSN_HOLDX, XSTORMY16_INSN_BRK
- , XSTORMY16_INSN_SYSCALL
+ , XSTORMY16_INSN_RET, XSTORMY16_INSN_MUL, XSTORMY16_INSN_DIV, XSTORMY16_INSN_SDIV
+ , XSTORMY16_INSN_SDIVLH, XSTORMY16_INSN_DIVLH, XSTORMY16_INSN_NOP, XSTORMY16_INSN_HALT
+ , XSTORMY16_INSN_HOLD, XSTORMY16_INSN_HOLDX, XSTORMY16_INSN_BRK, XSTORMY16_INSN_SYSCALL
 } CGEN_INSN_TYPE;
 
 /* Index of `invalid' insn place holder.  */
index 0e478bfd0e8c8c30b7e6f21286a9c85873fc4609..022f58132057d8e54732a0f33f508a1f54ac34cf 100644 (file)
@@ -1,4 +1,6 @@
-                       /* THIS FILE IS AUTOMAGICALLY GENERATED, DON'T EDIT IT */
+/* DO NOT EDIT!  -*- buffer-read-only: t -*-
+   This file is automatically generated by z8kgen.  */
+
 #define ARG_MASK 0x0f
 #define ARG_SRC 0x01
 #define ARG_DST 0x02
 #define OPC_ldctlb 174
 #define OPC_sin 175
 #define OPC_trtdb 176
+
 typedef struct {
 #ifdef NICENAMES
-char *nicename;
-int type;
-int cycles;
-int flags;
-#endif
-char *name;
-unsigned char opcode;
-void (*func) PARAMS ((void));
-unsigned int arg_info[4];
-unsigned int byte_info[10];
-int noperands;
-int length;
-int idx;
+  const char *nicename;
+  int type;
+  int cycles;
+  int flags;
+#endif
+  const char *name;
+  unsigned char opcode;
+  void (*func) PARAMS ((void));
+  unsigned int arg_info[4];
+  unsigned int byte_info[10];
+  int noperands;
+  int length;
+  int idx;
 } opcode_entry_type;
-#ifdef DEFINE_TABLE
-opcode_entry_type z8k_table[] = {
 
+#ifdef DEFINE_TABLE
+const opcode_entry_type z8k_table[] = {
 
 /* 1011 0101 ssss dddd *** adc rd,rs */
 {
 #ifdef NICENAMES
-"adc rd,rs",16,5,
-0x3c,
+"adc rd,rs",16,5,0x3c,
 #endif
 "adc",OPC_adc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
        {CLASS_BIT+0xb,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,0},
 
-
 /* 1011 0100 ssss dddd *** adcb rbd,rbs */
 {
 #ifdef NICENAMES
-"adcb rbd,rbs",8,5,
-0x3f,
+"adcb rbd,rbs",8,5,0x3f,
 #endif
 "adcb",OPC_adcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
        {CLASS_BIT+0xb,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,1},
 
-
 /* 0000 0001 ssN0 dddd *** add rd,@rs */
 {
 #ifdef NICENAMES
-"add rd,@rs",16,7,
-0x3c,
+"add rd,@rs",16,7,0x3c,
 #endif
 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
        {CLASS_BIT+0,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,2},
 
-
 /* 0100 0001 0000 dddd address_src *** add rd,address_src */
 {
 #ifdef NICENAMES
-"add rd,address_src",16,9,
-0x3c,
+"add rd,address_src",16,9,0x3c,
 #endif
 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3},
-
+       {CLASS_BIT+4,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,2},
 
 /* 0100 0001 ssN0 dddd address_src *** add rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"add rd,address_src(rs)",16,10,
-0x3c,
+"add rd,address_src(rs)",16,10,0x3c,
 #endif
 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4},
-
+       {CLASS_BIT+4,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,2},
 
 /* 0000 0001 0000 dddd imm16 *** add rd,imm16 */
 {
 #ifdef NICENAMES
-"add rd,imm16",16,7,
-0x3c,
+"add rd,imm16",16,7,0x3c,
 #endif
 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,5},
-
+       {CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,2},
 
 /* 1000 0001 ssss dddd *** add rd,rs */
 {
 #ifdef NICENAMES
-"add rd,rs",16,4,
-0x3c,
+"add rd,rs",16,4,0x3c,
 #endif
 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6},
-
+       {CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,2},
 
 /* 0000 0000 ssN0 dddd *** addb rbd,@rs */
 {
 #ifdef NICENAMES
-"addb rbd,@rs",8,7,
-0x3f,
+"addb rbd,@rs",8,7,0x3f,
 #endif
 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,7},
-
+       {CLASS_BIT+0,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,3},
 
 /* 0100 0000 0000 dddd address_src *** addb rbd,address_src */
 {
 #ifdef NICENAMES
-"addb rbd,address_src",8,9,
-0x3f,
+"addb rbd,address_src",8,9,0x3f,
 #endif
 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,8},
-
+       {CLASS_BIT+4,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3},
 
 /* 0100 0000 ssN0 dddd address_src *** addb rbd,address_src(rs) */
 {
 #ifdef NICENAMES
-"addb rbd,address_src(rs)",8,10,
-0x3f,
+"addb rbd,address_src(rs)",8,10,0x3f,
 #endif
 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,9},
-
+       {CLASS_BIT+4,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3},
 
 /* 0000 0000 0000 dddd imm8 imm8 *** addb rbd,imm8 */
 {
 #ifdef NICENAMES
-"addb rbd,imm8",8,7,
-0x3f,
+"addb rbd,imm8",8,7,0x3f,
 #endif
 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,10},
-
+       {CLASS_BIT+0,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,3},
 
 /* 1000 0000 ssss dddd *** addb rbd,rbs */
 {
 #ifdef NICENAMES
-"addb rbd,rbs",8,4,
-0x3f,
+"addb rbd,rbs",8,4,0x3f,
 #endif
 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,11},
-
+       {CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,3},
 
 /* 0001 0110 ssN0 dddd *** addl rrd,@rs */
 {
 #ifdef NICENAMES
-"addl rrd,@rs",32,14,
-0x3c,
+"addl rrd,@rs",32,14,0x3c,
 #endif
 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,12},
-
+       {CLASS_BIT+1,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,4},
 
 /* 0101 0110 0000 dddd address_src *** addl rrd,address_src */
 {
 #ifdef NICENAMES
-"addl rrd,address_src",32,15,
-0x3c,
+"addl rrd,address_src",32,15,0x3c,
 #endif
 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,13},
-
+       {CLASS_BIT+5,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4},
 
 /* 0101 0110 ssN0 dddd address_src *** addl rrd,address_src(rs) */
 {
 #ifdef NICENAMES
-"addl rrd,address_src(rs)",32,16,
-0x3c,
+"addl rrd,address_src(rs)",32,16,0x3c,
 #endif
 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,14},
-
+       {CLASS_BIT+5,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4},
 
 /* 0001 0110 0000 dddd imm32 *** addl rrd,imm32 */
 {
 #ifdef NICENAMES
-"addl rrd,imm32",32,14,
-0x3c,
+"addl rrd,imm32",32,14,0x3c,
 #endif
 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,15},
-
+       {CLASS_BIT+1,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,4},
 
 /* 1001 0110 ssss dddd *** addl rrd,rrs */
 {
 #ifdef NICENAMES
-"addl rrd,rrs",32,8,
-0x3c,
+"addl rrd,rrs",32,8,0x3c,
 #endif
 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,16},
-
+       {CLASS_BIT+9,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,4},
 
 /* 0000 0111 ssN0 dddd *** and rd,@rs */
 {
 #ifdef NICENAMES
-"and rd,@rs",16,7,
-0x18,
+"and rd,@rs",16,7,0x18,
 #endif
 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,17},
-
+       {CLASS_BIT+0,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,5},
 
 /* 0100 0111 0000 dddd address_src *** and rd,address_src */
 {
 #ifdef NICENAMES
-"and rd,address_src",16,9,
-0x18,
+"and rd,address_src",16,9,0x18,
 #endif
 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
-
+       {CLASS_BIT+4,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,5},
 
 /* 0100 0111 ssN0 dddd address_src *** and rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"and rd,address_src(rs)",16,10,
-0x18,
+"and rd,address_src(rs)",16,10,0x18,
 #endif
 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,19},
-
+       {CLASS_BIT+4,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,5},
 
 /* 0000 0111 0000 dddd imm16 *** and rd,imm16 */
 {
 #ifdef NICENAMES
-"and rd,imm16",16,7,
-0x18,
+"and rd,imm16",16,7,0x18,
 #endif
 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,20},
-
+       {CLASS_BIT+0,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,5},
 
 /* 1000 0111 ssss dddd *** and rd,rs */
 {
 #ifdef NICENAMES
-"and rd,rs",16,4,
-0x18,
+"and rd,rs",16,4,0x18,
 #endif
 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,21},
-
+       {CLASS_BIT+8,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,5},
 
 /* 0000 0110 ssN0 dddd *** andb rbd,@rs */
 {
 #ifdef NICENAMES
-"andb rbd,@rs",8,7,
-0x1c,
+"andb rbd,@rs",8,7,0x1c,
 #endif
 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,22},
-
+       {CLASS_BIT+0,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6},
 
 /* 0100 0110 0000 dddd address_src *** andb rbd,address_src */
 {
 #ifdef NICENAMES
-"andb rbd,address_src",8,9,
-0x1c,
+"andb rbd,address_src",8,9,0x1c,
 #endif
 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,23},
-
+       {CLASS_BIT+4,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,6},
 
 /* 0100 0110 ssN0 dddd address_src *** andb rbd,address_src(rs) */
 {
 #ifdef NICENAMES
-"andb rbd,address_src(rs)",8,10,
-0x1c,
+"andb rbd,address_src(rs)",8,10,0x1c,
 #endif
 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,24},
-
+       {CLASS_BIT+4,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,6},
 
 /* 0000 0110 0000 dddd imm8 imm8 *** andb rbd,imm8 */
 {
 #ifdef NICENAMES
-"andb rbd,imm8",8,7,
-0x1c,
+"andb rbd,imm8",8,7,0x1c,
 #endif
 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,25},
-
+       {CLASS_BIT+0,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,6},
 
 /* 1000 0110 ssss dddd *** andb rbd,rbs */
 {
 #ifdef NICENAMES
-"andb rbd,rbs",8,4,
-0x1c,
+"andb rbd,rbs",8,4,0x1c,
 #endif
 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,26},
-
+       {CLASS_BIT+8,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6},
 
 /* 0010 0111 ddN0 imm4 *** bit @rd,imm4 */
 {
 #ifdef NICENAMES
-"bit @rd,imm4",16,8,
-0x10,
+"bit @rd,imm4",16,8,0x10,
 #endif
 "bit",OPC_bit,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,27},
-
+       {CLASS_BIT+2,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,7},
 
 /* 0110 0111 ddN0 imm4 address_dst *** bit address_dst(rd),imm4 */
 {
 #ifdef NICENAMES
-"bit address_dst(rd),imm4",16,11,
-0x10,
+"bit address_dst(rd),imm4",16,11,0x10,
 #endif
 "bit",OPC_bit,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,28},
-
+       {CLASS_BIT+6,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,7},
 
 /* 0110 0111 0000 imm4 address_dst *** bit address_dst,imm4 */
 {
 #ifdef NICENAMES
-"bit address_dst,imm4",16,10,
-0x10,
+"bit address_dst,imm4",16,10,0x10,
 #endif
 "bit",OPC_bit,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+7,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,29},
-
+       {CLASS_BIT+6,CLASS_BIT+7,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,7},
 
 /* 1010 0111 dddd imm4 *** bit rd,imm4 */
 {
 #ifdef NICENAMES
-"bit rd,imm4",16,4,
-0x10,
+"bit rd,imm4",16,4,0x10,
 #endif
 "bit",OPC_bit,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+7,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,30},
-
+       {CLASS_BIT+0xa,CLASS_BIT+7,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,7},
 
 /* 0010 0111 0000 ssss 0000 dddd 0000 0000 *** bit rd,rs */
 {
 #ifdef NICENAMES
-"bit rd,rs",16,10,
-0x10,
+"bit rd,rs",16,10,0x10,
 #endif
 "bit",OPC_bit,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,31},
-
+       {CLASS_BIT+2,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,7},
 
 /* 0010 0110 ddN0 imm4 *** bitb @rd,imm4 */
 {
 #ifdef NICENAMES
-"bitb @rd,imm4",8,8,
-0x10,
+"bitb @rd,imm4",8,8,0x10,
 #endif
 "bitb",OPC_bitb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,32},
-
+       {CLASS_BIT+2,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,8},
 
 /* 0110 0110 ddN0 imm4 address_dst *** bitb address_dst(rd),imm4 */
 {
 #ifdef NICENAMES
-"bitb address_dst(rd),imm4",8,11,
-0x10,
+"bitb address_dst(rd),imm4",8,11,0x10,
 #endif
 "bitb",OPC_bitb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,33},
-
+       {CLASS_BIT+6,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,8},
 
 /* 0110 0110 0000 imm4 address_dst *** bitb address_dst,imm4 */
 {
 #ifdef NICENAMES
-"bitb address_dst,imm4",8,10,
-0x10,
+"bitb address_dst,imm4",8,10,0x10,
 #endif
 "bitb",OPC_bitb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+6,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,34},
-
+       {CLASS_BIT+6,CLASS_BIT+6,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,8},
 
 /* 1010 0110 dddd imm4 *** bitb rbd,imm4 */
 {
 #ifdef NICENAMES
-"bitb rbd,imm4",8,4,
-0x10,
+"bitb rbd,imm4",8,4,0x10,
 #endif
 "bitb",OPC_bitb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+6,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,35},
-
+       {CLASS_BIT+0xa,CLASS_BIT+6,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,8},
 
 /* 0010 0110 0000 ssss 0000 dddd 0000 0000 *** bitb rbd,rs */
 {
 #ifdef NICENAMES
-"bitb rbd,rs",8,10,
-0x10,
+"bitb rbd,rs",8,10,0x10,
 #endif
 "bitb",OPC_bitb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,36},
-
+       {CLASS_BIT+2,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,8},
 
 /* 0011 0110 0000 0000 *** bpt */
 {
 #ifdef NICENAMES
-"bpt",8,2,
-0x00,
+"bpt",8,2,0x00,
 #endif
 "bpt",OPC_bpt,0,{0},
-       {CLASS_BIT+3,CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,37},
-
+       {CLASS_BIT+3,CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,9},
 
 /* 0001 1111 ddN0 0000 *** call @rd */
 {
 #ifdef NICENAMES
-"call @rd",32,10,
-0x00,
+"call @rd",32,10,0x00,
 #endif
 "call",OPC_call,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+1,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,38},
-
+       {CLASS_BIT+1,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,10},
 
 /* 0101 1111 0000 0000 address_dst *** call address_dst */
 {
 #ifdef NICENAMES
-"call address_dst",32,12,
-0x00,
+"call address_dst",32,12,0x00,
 #endif
 "call",OPC_call,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,39},
-
+       {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,10},
 
 /* 0101 1111 ddN0 0000 address_dst *** call address_dst(rd) */
 {
 #ifdef NICENAMES
-"call address_dst(rd)",32,13,
-0x00,
+"call address_dst(rd)",32,13,0x00,
 #endif
 "call",OPC_call,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,40},
-
+       {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,10},
 
 /* 1101 disp12 *** calr disp12 */
 {
 #ifdef NICENAMES
-"calr disp12",16,10,
-0x00,
+"calr disp12",16,10,0x00,
 #endif
 "calr",OPC_calr,0,{CLASS_DISP,},
-       {CLASS_BIT+0xd,CLASS_DISP+(ARG_DISP12),0,0,0,0,0,0,0,},1,2,41},
-
+       {CLASS_BIT+0xd,CLASS_DISP+(ARG_DISP12),0,0,0,0,0,0,0,},1,2,11},
 
 /* 0000 1101 ddN0 1000 *** clr @rd */
 {
 #ifdef NICENAMES
-"clr @rd",16,8,
-0x00,
+"clr @rd",16,8,0x00,
 #endif
 "clr",OPC_clr,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,42},
-
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,12},
 
 /* 0100 1101 0000 1000 address_dst *** clr address_dst */
 {
 #ifdef NICENAMES
-"clr address_dst",16,11,
-0x00,
+"clr address_dst",16,11,0x00,
 #endif
 "clr",OPC_clr,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,43},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,12},
 
 /* 0100 1101 ddN0 1000 address_dst *** clr address_dst(rd) */
 {
 #ifdef NICENAMES
-"clr address_dst(rd)",16,12,
-0x00,
+"clr address_dst(rd)",16,12,0x00,
 #endif
 "clr",OPC_clr,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,44},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,12},
 
 /* 1000 1101 dddd 1000 *** clr rd */
 {
 #ifdef NICENAMES
-"clr rd",16,7,
-0x00,
+"clr rd",16,7,0x00,
 #endif
 "clr",OPC_clr,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,45},
-
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,12},
 
 /* 0000 1100 ddN0 1000 *** clrb @rd */
 {
 #ifdef NICENAMES
-"clrb @rd",8,8,
-0x00,
+"clrb @rd",8,8,0x00,
 #endif
 "clrb",OPC_clrb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,46},
-
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
 
 /* 0100 1100 0000 1000 address_dst *** clrb address_dst */
 {
 #ifdef NICENAMES
-"clrb address_dst",8,11,
-0x00,
+"clrb address_dst",8,11,0x00,
 #endif
 "clrb",OPC_clrb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,47},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
 
 /* 0100 1100 ddN0 1000 address_dst *** clrb address_dst(rd) */
 {
 #ifdef NICENAMES
-"clrb address_dst(rd)",8,12,
-0x00,
+"clrb address_dst(rd)",8,12,0x00,
 #endif
 "clrb",OPC_clrb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,48},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
 
 /* 1000 1100 dddd 1000 *** clrb rbd */
 {
 #ifdef NICENAMES
-"clrb rbd",8,7,
-0x00,
+"clrb rbd",8,7,0x00,
 #endif
 "clrb",OPC_clrb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,49},
-
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
 
 /* 0000 1101 ddN0 0000 *** com @rd */
 {
 #ifdef NICENAMES
-"com @rd",16,12,
-0x18,
+"com @rd",16,12,0x18,
 #endif
 "com",OPC_com,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,50},
-
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,14},
 
 /* 0100 1101 0000 0000 address_dst *** com address_dst */
 {
 #ifdef NICENAMES
-"com address_dst",16,15,
-0x18,
+"com address_dst",16,15,0x18,
 #endif
 "com",OPC_com,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,51},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
 
 /* 0100 1101 ddN0 0000 address_dst *** com address_dst(rd) */
 {
 #ifdef NICENAMES
-"com address_dst(rd)",16,16,
-0x18,
+"com address_dst(rd)",16,16,0x18,
 #endif
 "com",OPC_com,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,52},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
 
 /* 1000 1101 dddd 0000 *** com rd */
 {
 #ifdef NICENAMES
-"com rd",16,7,
-0x18,
+"com rd",16,7,0x18,
 #endif
 "com",OPC_com,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,53},
-
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,14},
 
 /* 0000 1100 ddN0 0000 *** comb @rd */
 {
 #ifdef NICENAMES
-"comb @rd",8,12,
-0x1c,
+"comb @rd",8,12,0x1c,
 #endif
 "comb",OPC_comb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,54},
-
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
 
 /* 0100 1100 0000 0000 address_dst *** comb address_dst */
 {
 #ifdef NICENAMES
-"comb address_dst",8,15,
-0x1c,
+"comb address_dst",8,15,0x1c,
 #endif
 "comb",OPC_comb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,55},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
 
 /* 0100 1100 ddN0 0000 address_dst *** comb address_dst(rd) */
 {
 #ifdef NICENAMES
-"comb address_dst(rd)",8,16,
-0x1c,
+"comb address_dst(rd)",8,16,0x1c,
 #endif
 "comb",OPC_comb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,56},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
 
 /* 1000 1100 dddd 0000 *** comb rbd */
 {
 #ifdef NICENAMES
-"comb rbd",8,7,
-0x1c,
+"comb rbd",8,7,0x1c,
 #endif
 "comb",OPC_comb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,57},
-
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
 
 /* 1000 1101 flags 0101 *** comflg flags */
 {
 #ifdef NICENAMES
-"comflg flags",16,7,
-0x3c,
+"comflg flags",16,7,0x3c,
 #endif
 "comflg",OPC_comflg,0,{CLASS_FLAGS,},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+5,0,0,0,0,0,},1,2,58},
-
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+5,0,0,0,0,0,},1,2,16},
 
 /* 0000 1101 ddN0 0001 imm16 *** cp @rd,imm16 */
 {
 #ifdef NICENAMES
-"cp @rd,imm16",16,11,
-0x3c,
+"cp @rd,imm16",16,11,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,59},
-
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,17},
 
 /* 0100 1101 ddN0 0001 address_dst imm16 *** cp address_dst(rd),imm16 */
 {
 #ifdef NICENAMES
-"cp address_dst(rd),imm16",16,15,
-0x3c,
+"cp address_dst(rd),imm16",16,15,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,60},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,17},
 
 /* 0100 1101 0000 0001 address_dst imm16 *** cp address_dst,imm16 */
 {
 #ifdef NICENAMES
-"cp address_dst,imm16",16,14,
-0x3c,
+"cp address_dst,imm16",16,14,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,61},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,17},
 
 /* 0000 1011 ssN0 dddd *** cp rd,@rs */
 {
 #ifdef NICENAMES
-"cp rd,@rs",16,7,
-0x3c,
+"cp rd,@rs",16,7,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,62},
-
+       {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,17},
 
 /* 0100 1011 0000 dddd address_src *** cp rd,address_src */
 {
 #ifdef NICENAMES
-"cp rd,address_src",16,9,
-0x3c,
+"cp rd,address_src",16,9,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,63},
-
+       {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,17},
 
 /* 0100 1011 ssN0 dddd address_src *** cp rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"cp rd,address_src(rs)",16,10,
-0x3c,
+"cp rd,address_src(rs)",16,10,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,64},
-
+       {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,17},
 
 /* 0000 1011 0000 dddd imm16 *** cp rd,imm16 */
 {
 #ifdef NICENAMES
-"cp rd,imm16",16,7,
-0x3c,
+"cp rd,imm16",16,7,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,65},
-
+       {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,17},
 
 /* 1000 1011 ssss dddd *** cp rd,rs */
 {
 #ifdef NICENAMES
-"cp rd,rs",16,4,
-0x3c,
+"cp rd,rs",16,4,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,66},
-
+       {CLASS_BIT+8,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,17},
 
 /* 0000 1100 ddN0 0001 imm8 imm8 *** cpb @rd,imm8 */
 {
 #ifdef NICENAMES
-"cpb @rd,imm8",8,11,
-0x3c,
+"cpb @rd,imm8",8,11,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,67},
-
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,18},
 
 /* 0100 1100 ddN0 0001 address_dst imm8 imm8 *** cpb address_dst(rd),imm8 */
 {
 #ifdef NICENAMES
-"cpb address_dst(rd),imm8",8,15,
-0x3c,
+"cpb address_dst(rd),imm8",8,15,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,68},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,18},
 
 /* 0100 1100 0000 0001 address_dst imm8 imm8 *** cpb address_dst,imm8 */
 {
 #ifdef NICENAMES
-"cpb address_dst,imm8",8,14,
-0x3c,
+"cpb address_dst,imm8",8,14,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,69},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,18},
 
 /* 0000 1010 ssN0 dddd *** cpb rbd,@rs */
 {
 #ifdef NICENAMES
-"cpb rbd,@rs",8,7,
-0x3c,
+"cpb rbd,@rs",8,7,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,70},
-
+       {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
 
 /* 0100 1010 0000 dddd address_src *** cpb rbd,address_src */
 {
 #ifdef NICENAMES
-"cpb rbd,address_src",8,9,
-0x3c,
+"cpb rbd,address_src",8,9,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,71},
-
+       {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
 
 /* 0100 1010 ssN0 dddd address_src *** cpb rbd,address_src(rs) */
 {
 #ifdef NICENAMES
-"cpb rbd,address_src(rs)",8,10,
-0x3c,
+"cpb rbd,address_src(rs)",8,10,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,72},
-
+       {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
 
 /* 0000 1010 0000 dddd imm8 imm8 *** cpb rbd,imm8 */
 {
 #ifdef NICENAMES
-"cpb rbd,imm8",8,7,
-0x3c,
+"cpb rbd,imm8",8,7,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,73},
-
+       {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,18},
 
 /* 1000 1010 ssss dddd *** cpb rbd,rbs */
 {
 #ifdef NICENAMES
-"cpb rbd,rbs",8,4,
-0x3c,
+"cpb rbd,rbs",8,4,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,74},
-
+       {CLASS_BIT+8,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
 
 /* 1011 1011 ssN0 1000 0000 rrrr dddd cccc *** cpd rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpd rd,@rs,rr,cc",16,11,
-0x3c,
+"cpd rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpd",OPC_cpd,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,75},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,19},
 
 /* 1011 1010 ssN0 1000 0000 rrrr dddd cccc *** cpdb rbd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpdb rbd,@rs,rr,cc",8,11,
-0x3c,
+"cpdb rbd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpdb",OPC_cpdb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,76},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,20},
 
 /* 1011 1011 ssN0 1100 0000 rrrr dddd cccc *** cpdr rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpdr rd,@rs,rr,cc",16,11,
-0x3c,
+"cpdr rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpdr",OPC_cpdr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,77},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,21},
 
 /* 1011 1010 ssN0 1100 0000 rrrr dddd cccc *** cpdrb rbd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpdrb rbd,@rs,rr,cc",8,11,
-0x3c,
+"cpdrb rbd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpdrb",OPC_cpdrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,78},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,22},
 
 /* 1011 1011 ssN0 0000 0000 rrrr dddd cccc *** cpi rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpi rd,@rs,rr,cc",16,11,
-0x3c,
+"cpi rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpi",OPC_cpi,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,79},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,23},
 
 /* 1011 1010 ssN0 0000 0000 rrrr dddd cccc *** cpib rbd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpib rbd,@rs,rr,cc",8,11,
-0x3c,
+"cpib rbd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpib",OPC_cpib,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,80},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,24},
 
 /* 1011 1011 ssN0 0100 0000 rrrr dddd cccc *** cpir rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpir rd,@rs,rr,cc",16,11,
-0x3c,
+"cpir rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpir",OPC_cpir,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,81},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,25},
 
 /* 1011 1010 ssN0 0100 0000 rrrr dddd cccc *** cpirb rbd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpirb rbd,@rs,rr,cc",8,11,
-0x3c,
+"cpirb rbd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpirb",OPC_cpirb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,82},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,26},
 
 /* 0001 0000 ssN0 dddd *** cpl rrd,@rs */
 {
 #ifdef NICENAMES
-"cpl rrd,@rs",32,14,
-0x3c,
+"cpl rrd,@rs",32,14,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,83},
-
+       {CLASS_BIT+1,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,27},
 
 /* 0101 0000 0000 dddd address_src *** cpl rrd,address_src */
 {
 #ifdef NICENAMES
-"cpl rrd,address_src",32,15,
-0x3c,
+"cpl rrd,address_src",32,15,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,84},
-
+       {CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,27},
 
 /* 0101 0000 ssN0 dddd address_src *** cpl rrd,address_src(rs) */
 {
 #ifdef NICENAMES
-"cpl rrd,address_src(rs)",32,16,
-0x3c,
+"cpl rrd,address_src(rs)",32,16,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,85},
-
+       {CLASS_BIT+5,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,27},
 
 /* 0001 0000 0000 dddd imm32 *** cpl rrd,imm32 */
 {
 #ifdef NICENAMES
-"cpl rrd,imm32",32,14,
-0x3c,
+"cpl rrd,imm32",32,14,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,86},
-
+       {CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,27},
 
 /* 1001 0000 ssss dddd *** cpl rrd,rrs */
 {
 #ifdef NICENAMES
-"cpl rrd,rrs",32,8,
-0x3c,
+"cpl rrd,rrs",32,8,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,87},
-
+       {CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,27},
 
 /* 1011 1011 ssN0 1010 0000 rrrr ddN0 cccc *** cpsd @rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpsd @rd,@rs,rr,cc",16,11,
-0x3c,
+"cpsd @rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpsd",OPC_cpsd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,88},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,28},
 
 /* 1011 1010 ssN0 1010 0000 rrrr ddN0 cccc *** cpsdb @rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpsdb @rd,@rs,rr,cc",8,11,
-0x3c,
+"cpsdb @rd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpsdb",OPC_cpsdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,89},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,29},
 
 /* 1011 1011 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdr @rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpsdr @rd,@rs,rr,cc",16,11,
-0x3c,
+"cpsdr @rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpsdr",OPC_cpsdr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,90},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,30},
 
 /* 1011 1010 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdrb @rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpsdrb @rd,@rs,rr,cc",8,11,
-0x3c,
+"cpsdrb @rd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpsdrb",OPC_cpsdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,91},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,31},
 
 /* 1011 1011 ssN0 0010 0000 rrrr ddN0 cccc *** cpsi @rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpsi @rd,@rs,rr,cc",16,11,
-0x3c,
+"cpsi @rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpsi",OPC_cpsi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,92},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,32},
 
 /* 1011 1010 ssN0 0010 0000 rrrr ddN0 cccc *** cpsib @rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpsib @rd,@rs,rr,cc",8,11,
-0x3c,
+"cpsib @rd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpsib",OPC_cpsib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,93},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,33},
 
 /* 1011 1011 ssN0 0110 0000 rrrr ddN0 cccc *** cpsir @rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpsir @rd,@rs,rr,cc",16,11,
-0x3c,
+"cpsir @rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpsir",OPC_cpsir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,94},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,34},
 
 /* 1011 1010 ssN0 0110 0000 rrrr ddN0 cccc *** cpsirb @rd,@rs,rr,cc */
 {
 #ifdef NICENAMES
-"cpsirb @rd,@rs,rr,cc",8,11,
-0x3c,
+"cpsirb @rd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpsirb",OPC_cpsirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,95},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,35},
 
 /* 1011 0000 dddd 0000 *** dab rbd */
 {
 #ifdef NICENAMES
-"dab rbd",8,5,
-0x38,
+"dab rbd",8,5,0x38,
 #endif
 "dab",OPC_dab,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,96},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,36},
 
 /* 1111 dddd 0disp7 *** dbjnz rbd,disp7 */
 {
 #ifdef NICENAMES
-"dbjnz rbd,disp7",16,11,
-0x00,
+"dbjnz rbd,disp7",16,11,0x00,
 #endif
 "dbjnz",OPC_dbjnz,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_0DISP7,0,0,0,0,0,0,},2,2,97},
-
+       {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_0DISP7,0,0,0,0,0,0,},2,2,37},
 
 /* 0010 1011 ddN0 imm4m1 *** dec @rd,imm4m1 */
 {
 #ifdef NICENAMES
-"dec @rd,imm4m1",16,11,
-0x1c,
+"dec @rd,imm4m1",16,11,0x1c,
 #endif
 "dec",OPC_dec,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+2,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,98},
-
+       {CLASS_BIT+2,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,38},
 
 /* 0110 1011 ddN0 imm4m1 address_dst *** dec address_dst(rd),imm4m1 */
 {
 #ifdef NICENAMES
-"dec address_dst(rd),imm4m1",16,14,
-0x1c,
+"dec address_dst(rd),imm4m1",16,14,0x1c,
 #endif
 "dec",OPC_dec,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,99},
-
+       {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,38},
 
 /* 0110 1011 0000 imm4m1 address_dst *** dec address_dst,imm4m1 */
 {
 #ifdef NICENAMES
-"dec address_dst,imm4m1",16,13,
-0x1c,
+"dec address_dst,imm4m1",16,13,0x1c,
 #endif
 "dec",OPC_dec,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,100},
-
+       {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,38},
 
 /* 1010 1011 dddd imm4m1 *** dec rd,imm4m1 */
 {
 #ifdef NICENAMES
-"dec rd,imm4m1",16,4,
-0x1c,
+"dec rd,imm4m1",16,4,0x1c,
 #endif
 "dec",OPC_dec,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,101},
-
+       {CLASS_BIT+0xa,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,38},
 
 /* 0010 1010 ddN0 imm4m1 *** decb @rd,imm4m1 */
 {
 #ifdef NICENAMES
-"decb @rd,imm4m1",8,11,
-0x1c,
+"decb @rd,imm4m1",8,11,0x1c,
 #endif
 "decb",OPC_decb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+2,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,102},
-
+       {CLASS_BIT+2,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
 
 /* 0110 1010 ddN0 imm4m1 address_dst *** decb address_dst(rd),imm4m1 */
 {
 #ifdef NICENAMES
-"decb address_dst(rd),imm4m1",8,14,
-0x1c,
+"decb address_dst(rd),imm4m1",8,14,0x1c,
 #endif
 "decb",OPC_decb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,103},
-
+       {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39},
 
 /* 0110 1010 0000 imm4m1 address_dst *** decb address_dst,imm4m1 */
 {
 #ifdef NICENAMES
-"decb address_dst,imm4m1",8,13,
-0x1c,
+"decb address_dst,imm4m1",8,13,0x1c,
 #endif
 "decb",OPC_decb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,104},
-
+       {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39},
 
 /* 1010 1010 dddd imm4m1 *** decb rbd,imm4m1 */
 {
 #ifdef NICENAMES
-"decb rbd,imm4m1",8,4,
-0x1c,
+"decb rbd,imm4m1",8,4,0x1c,
 #endif
 "decb",OPC_decb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,105},
-
+       {CLASS_BIT+0xa,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
 
 /* 0111 1100 0000 00ii *** di i2 */
 {
 #ifdef NICENAMES
-"di i2",16,7,
-0x00,
+"di i2",16,7,0x00,
 #endif
 "di",OPC_di,0,{CLASS_IMM+(ARG_IMM2),},
-       {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_00II,0,0,0,0,0,},1,2,106},
-
+       {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_00II,0,0,0,0,0,},1,2,40},
 
 /* 0001 1011 ssN0 dddd *** div rrd,@rs */
 {
 #ifdef NICENAMES
-"div rrd,@rs",16,107,
-0x3c,
+"div rrd,@rs",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,107},
-
+       {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,41},
 
 /* 0101 1011 0000 dddd address_src *** div rrd,address_src */
 {
 #ifdef NICENAMES
-"div rrd,address_src",16,107,
-0x3c,
+"div rrd,address_src",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,108},
-
+       {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,41},
 
 /* 0101 1011 ssN0 dddd address_src *** div rrd,address_src(rs) */
 {
 #ifdef NICENAMES
-"div rrd,address_src(rs)",16,107,
-0x3c,
+"div rrd,address_src(rs)",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,109},
-
+       {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,41},
 
 /* 0001 1011 0000 dddd imm16 *** div rrd,imm16 */
 {
 #ifdef NICENAMES
-"div rrd,imm16",16,107,
-0x3c,
+"div rrd,imm16",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,110},
-
+       {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,41},
 
 /* 1001 1011 ssss dddd *** div rrd,rs */
 {
 #ifdef NICENAMES
-"div rrd,rs",16,107,
-0x3c,
+"div rrd,rs",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,111},
-
+       {CLASS_BIT+9,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,41},
 
 /* 0001 1010 ssN0 dddd *** divl rqd,@rs */
 {
 #ifdef NICENAMES
-"divl rqd,@rs",32,744,
-0x3c,
+"divl rqd,@rs",32,744,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,112},
-
+       {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
 
 /* 0101 1010 0000 dddd address_src *** divl rqd,address_src */
 {
 #ifdef NICENAMES
-"divl rqd,address_src",32,745,
-0x3c,
+"divl rqd,address_src",32,745,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,113},
-
+       {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42},
 
 /* 0101 1010 ssN0 dddd address_src *** divl rqd,address_src(rs) */
 {
 #ifdef NICENAMES
-"divl rqd,address_src(rs)",32,746,
-0x3c,
+"divl rqd,address_src(rs)",32,746,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,114},
-
+       {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42},
 
 /* 0001 1010 0000 dddd imm32 *** divl rqd,imm32 */
 {
 #ifdef NICENAMES
-"divl rqd,imm32",32,744,
-0x3c,
+"divl rqd,imm32",32,744,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,115},
-
+       {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,42},
 
 /* 1001 1010 ssss dddd *** divl rqd,rrs */
 {
 #ifdef NICENAMES
-"divl rqd,rrs",32,744,
-0x3c,
+"divl rqd,rrs",32,744,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,116},
-
+       {CLASS_BIT+9,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
 
 /* 1111 dddd 1disp7 *** djnz rd,disp7 */
 {
 #ifdef NICENAMES
-"djnz rd,disp7",16,11,
-0x00,
+"djnz rd,disp7",16,11,0x00,
 #endif
 "djnz",OPC_djnz,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_1DISP7,0,0,0,0,0,0,},2,2,117},
-
+       {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_1DISP7,0,0,0,0,0,0,},2,2,43},
 
 /* 0111 1100 0000 01ii *** ei i2 */
 {
 #ifdef NICENAMES
-"ei i2",16,7,
-0x00,
+"ei i2",16,7,0x00,
 #endif
 "ei",OPC_ei,0,{CLASS_IMM+(ARG_IMM2),},
-       {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_01II,0,0,0,0,0,},1,2,118},
-
+       {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_01II,0,0,0,0,0,},1,2,44},
 
 /* 0010 1101 ssN0 dddd *** ex rd,@rs */
 {
 #ifdef NICENAMES
-"ex rd,@rs",16,12,
-0x00,
+"ex rd,@rs",16,12,0x00,
 #endif
 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,119},
-
+       {CLASS_BIT+2,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,45},
 
 /* 0110 1101 0000 dddd address_src *** ex rd,address_src */
 {
 #ifdef NICENAMES
-"ex rd,address_src",16,15,
-0x00,
+"ex rd,address_src",16,15,0x00,
 #endif
 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,120},
-
+       {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,45},
 
 /* 0110 1101 ssN0 dddd address_src *** ex rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"ex rd,address_src(rs)",16,16,
-0x00,
+"ex rd,address_src(rs)",16,16,0x00,
 #endif
 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,121},
-
+       {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,45},
 
 /* 1010 1101 ssss dddd *** ex rd,rs */
 {
 #ifdef NICENAMES
-"ex rd,rs",16,6,
-0x00,
+"ex rd,rs",16,6,0x00,
 #endif
 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,122},
-
+       {CLASS_BIT+0xa,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,45},
 
 /* 0010 1100 ssN0 dddd *** exb rbd,@rs */
 {
 #ifdef NICENAMES
-"exb rbd,@rs",8,12,
-0x00,
+"exb rbd,@rs",8,12,0x00,
 #endif
 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,123},
-
+       {CLASS_BIT+2,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
 
 /* 0110 1100 0000 dddd address_src *** exb rbd,address_src */
 {
 #ifdef NICENAMES
-"exb rbd,address_src",8,15,
-0x00,
+"exb rbd,address_src",8,15,0x00,
 #endif
 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,124},
-
+       {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46},
 
 /* 0110 1100 ssN0 dddd address_src *** exb rbd,address_src(rs) */
 {
 #ifdef NICENAMES
-"exb rbd,address_src(rs)",8,16,
-0x00,
+"exb rbd,address_src(rs)",8,16,0x00,
 #endif
 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,125},
-
+       {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46},
 
 /* 1010 1100 ssss dddd *** exb rbd,rbs */
 {
 #ifdef NICENAMES
-"exb rbd,rbs",8,6,
-0x00,
+"exb rbd,rbs",8,6,0x00,
 #endif
 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,126},
-
+       {CLASS_BIT+0xa,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
 
 /* 0000 1110 imm8 *** ext0e imm8 */
 {
 #ifdef NICENAMES
-"ext0e imm8",8,10,
-0x00,
+"ext0e imm8",8,10,0x00,
 #endif
 "ext0e",OPC_ext0e,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,127},
-
+       {CLASS_BIT+0,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,47},
 
 /* 0000 1111 imm8 *** ext0f imm8 */
 {
 #ifdef NICENAMES
-"ext0f imm8",8,10,
-0x00,
+"ext0f imm8",8,10,0x00,
 #endif
 "ext0f",OPC_ext0f,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,128},
-
+       {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,48},
 
 /* 1000 1110 imm8 *** ext8e imm8 */
 {
 #ifdef NICENAMES
-"ext8e imm8",8,10,
-0x00,
+"ext8e imm8",8,10,0x00,
 #endif
 "ext8e",OPC_ext8e,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+8,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,129},
-
+       {CLASS_BIT+8,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,49},
 
 /* 1000 1111 imm8 *** ext8f imm8 */
 {
 #ifdef NICENAMES
-"ext8f imm8",8,10,
-0x00,
+"ext8f imm8",8,10,0x00,
 #endif
 "ext8f",OPC_ext8f,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+8,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,130},
-
+       {CLASS_BIT+8,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,50},
 
 /* 1011 0001 dddd 1010 *** exts rrd */
 {
 #ifdef NICENAMES
-"exts rrd",16,11,
-0x00,
+"exts rrd",16,11,0x00,
 #endif
 "exts",OPC_exts,0,{CLASS_REG_LONG+(ARG_RD),},
-       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0xa,0,0,0,0,0,},1,2,131},
-
+       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0xa,0,0,0,0,0,},1,2,51},
 
 /* 1011 0001 dddd 0000 *** extsb rd */
 {
 #ifdef NICENAMES
-"extsb rd",8,11,
-0x00,
+"extsb rd",8,11,0x00,
 #endif
 "extsb",OPC_extsb,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,132},
-
+       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,52},
 
 /* 1011 0001 dddd 0111 *** extsl rqd */
 {
 #ifdef NICENAMES
-"extsl rqd",32,11,
-0x00,
+"extsl rqd",32,11,0x00,
 #endif
 "extsl",OPC_extsl,0,{CLASS_REG_QUAD+(ARG_RD),},
-       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+7,0,0,0,0,0,},1,2,133},
-
+       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+7,0,0,0,0,0,},1,2,53},
 
 /* 0111 1010 0000 0000 *** halt */
 {
 #ifdef NICENAMES
-"halt",16,8,
-0x00,
+"halt",16,8,0x00,
 #endif
 "halt",OPC_halt,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,134},
-
+       {CLASS_BIT+7,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,54},
 
 /* 0011 1101 ssN0 dddd *** in rd,@rs */
 {
 #ifdef NICENAMES
-"in rd,@rs",16,10,
-0x00,
+"in rd,@rs",16,10,0x00,
 #endif
 "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,135},
-
+       {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,55},
 
 /* 0011 1011 dddd 0100 imm16 *** in rd,imm16 */
 {
 #ifdef NICENAMES
-"in rd,imm16",16,12,
-0x00,
+"in rd,imm16",16,12,0x00,
 #endif
 "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,136},
-
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,55},
 
 /* 0011 1100 ssN0 dddd *** inb rbd,@rs */
 {
 #ifdef NICENAMES
-"inb rbd,@rs",8,12,
-0x00,
+"inb rbd,@rs",8,12,0x00,
 #endif
 "inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,137},
-
+       {CLASS_BIT+3,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,56},
 
 /* 0011 1010 dddd 0100 imm16 *** inb rbd,imm16 */
 {
 #ifdef NICENAMES
-"inb rbd,imm16",8,10,
-0x00,
+"inb rbd,imm16",8,10,0x00,
 #endif
 "inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,138},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,56},
 
 /* 0010 1001 ddN0 imm4m1 *** inc @rd,imm4m1 */
 {
 #ifdef NICENAMES
-"inc @rd,imm4m1",16,11,
-0x1c,
+"inc @rd,imm4m1",16,11,0x1c,
 #endif
 "inc",OPC_inc,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+2,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,139},
-
+       {CLASS_BIT+2,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,57},
 
 /* 0110 1001 ddN0 imm4m1 address_dst *** inc address_dst(rd),imm4m1 */
 {
 #ifdef NICENAMES
-"inc address_dst(rd),imm4m1",16,14,
-0x1c,
+"inc address_dst(rd),imm4m1",16,14,0x1c,
 #endif
 "inc",OPC_inc,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,140},
-
+       {CLASS_BIT+6,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,57},
 
 /* 0110 1001 0000 imm4m1 address_dst *** inc address_dst,imm4m1 */
 {
 #ifdef NICENAMES
-"inc address_dst,imm4m1",16,13,
-0x1c,
+"inc address_dst,imm4m1",16,13,0x1c,
 #endif
 "inc",OPC_inc,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+9,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,141},
-
+       {CLASS_BIT+6,CLASS_BIT+9,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,57},
 
 /* 1010 1001 dddd imm4m1 *** inc rd,imm4m1 */
 {
 #ifdef NICENAMES
-"inc rd,imm4m1",16,4,
-0x1c,
+"inc rd,imm4m1",16,4,0x1c,
 #endif
 "inc",OPC_inc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+0xa,CLASS_BIT+9,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,142},
-
+       {CLASS_BIT+0xa,CLASS_BIT+9,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,57},
 
 /* 0010 1000 ddN0 imm4m1 *** incb @rd,imm4m1 */
 {
 #ifdef NICENAMES
-"incb @rd,imm4m1",8,11,
-0x1c,
+"incb @rd,imm4m1",8,11,0x1c,
 #endif
 "incb",OPC_incb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+2,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,143},
-
+       {CLASS_BIT+2,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
 
 /* 0110 1000 ddN0 imm4m1 address_dst *** incb address_dst(rd),imm4m1 */
 {
 #ifdef NICENAMES
-"incb address_dst(rd),imm4m1",8,14,
-0x1c,
+"incb address_dst(rd),imm4m1",8,14,0x1c,
 #endif
 "incb",OPC_incb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,144},
-
+       {CLASS_BIT+6,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58},
 
 /* 0110 1000 0000 imm4m1 address_dst *** incb address_dst,imm4m1 */
 {
 #ifdef NICENAMES
-"incb address_dst,imm4m1",8,13,
-0x1c,
+"incb address_dst,imm4m1",8,13,0x1c,
 #endif
 "incb",OPC_incb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+8,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,145},
-
+       {CLASS_BIT+6,CLASS_BIT+8,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58},
 
 /* 1010 1000 dddd imm4m1 *** incb rbd,imm4m1 */
 {
 #ifdef NICENAMES
-"incb rbd,imm4m1",8,4,
-0x1c,
+"incb rbd,imm4m1",8,4,0x1c,
 #endif
 "incb",OPC_incb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+0xa,CLASS_BIT+8,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,146},
-
+       {CLASS_BIT+0xa,CLASS_BIT+8,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
 
 /* 0011 1011 ssN0 1000 0000 aaaa ddN0 1000 *** ind @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"ind @rd,@rs,ra",16,21,
-0x04,
+"ind @rd,@rs,ra",16,21,0x04,
 #endif
 "ind",OPC_ind,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,147},
-
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,59},
 
 /* 0011 1010 ssN0 1000 0000 aaaa ddN0 1000 *** indb @rd,@rs,rba */
 {
 #ifdef NICENAMES
-"indb @rd,@rs,rba",8,21,
-0x04,
+"indb @rd,@rs,rba",8,21,0x04,
 #endif
 "indb",OPC_indb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,148},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,60},
 
 /* 0011 1010 ssN0 0000 0000 aaaa ddN0 1000 *** inib @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"inib @rd,@rs,ra",8,21,
-0x04,
+"inib @rd,@rs,ra",8,21,0x04,
 #endif
 "inib",OPC_inib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,149},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,61},
 
 /* 0011 1010 ssN0 0000 0000 aaaa ddN0 0000 *** inibr @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"inibr @rd,@rs,ra",16,21,
-0x04,
+"inibr @rd,@rs,ra",16,21,0x04,
 #endif
 "inibr",OPC_inibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,150},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,62},
 
 /* 0111 1011 0000 0000 *** iret */
 {
 #ifdef NICENAMES
-"iret",16,13,
-0x3f,
+"iret",16,13,0x3f,
 #endif
 "iret",OPC_iret,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,151},
-
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,63},
 
 /* 0001 1110 ddN0 cccc *** jp cc,@rd */
 {
 #ifdef NICENAMES
-"jp cc,@rd",16,10,
-0x00,
+"jp cc,@rd",16,10,0x00,
 #endif
 "jp",OPC_jp,0,{CLASS_CC,CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+1,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,152},
-
+       {CLASS_BIT+1,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,64},
 
 /* 0101 1110 0000 cccc address_dst *** jp cc,address_dst */
 {
 #ifdef NICENAMES
-"jp cc,address_dst",16,7,
-0x00,
+"jp cc,address_dst",16,7,0x00,
 #endif
 "jp",OPC_jp,0,{CLASS_CC,CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,153},
-
+       {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,64},
 
 /* 0101 1110 ddN0 cccc address_dst *** jp cc,address_dst(rd) */
 {
 #ifdef NICENAMES
-"jp cc,address_dst(rd)",16,8,
-0x00,
+"jp cc,address_dst(rd)",16,8,0x00,
 #endif
 "jp",OPC_jp,0,{CLASS_CC,CLASS_X+(ARG_RD),},
-       {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,154},
-
+       {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,64},
 
 /* 1110 cccc disp8 *** jr cc,disp8 */
 {
 #ifdef NICENAMES
-"jr cc,disp8",16,6,
-0x00,
+"jr cc,disp8",16,6,0x00,
 #endif
 "jr",OPC_jr,0,{CLASS_CC,CLASS_DISP,},
-       {CLASS_BIT+0xe,CLASS_CC,CLASS_DISP8,0,0,0,0,0,0,},2,2,155},
-
+       {CLASS_BIT+0xe,CLASS_CC,CLASS_DISP8,0,0,0,0,0,0,},2,2,65},
 
 /* 0000 1101 ddN0 0101 imm16 *** ld @rd,imm16 */
 {
 #ifdef NICENAMES
-"ld @rd,imm16",16,7,
-0x00,
+"ld @rd,imm16",16,7,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,156},
-
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66},
 
 /* 0010 1111 ddN0 ssss *** ld @rd,rs */
 {
 #ifdef NICENAMES
-"ld @rd,rs",16,8,
-0x00,
+"ld @rd,rs",16,8,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,157},
-
+       {CLASS_BIT+2,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,66},
 
 /* 0100 1101 ddN0 0101 address_dst imm16 *** ld address_dst(rd),imm16 */
 {
 #ifdef NICENAMES
-"ld address_dst(rd),imm16",16,15,
-0x00,
+"ld address_dst(rd),imm16",16,15,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,158},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,66},
 
 /* 0110 1111 ddN0 ssss address_dst *** ld address_dst(rd),rs */
 {
 #ifdef NICENAMES
-"ld address_dst(rd),rs",16,12,
-0x00,
+"ld address_dst(rd),rs",16,12,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,159},
-
+       {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,66},
 
 /* 0100 1101 0000 0101 address_dst imm16 *** ld address_dst,imm16 */
 {
 #ifdef NICENAMES
-"ld address_dst,imm16",16,14,
-0x00,
+"ld address_dst,imm16",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,160},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,66},
 
 /* 0110 1111 0000 ssss address_dst *** ld address_dst,rs */
 {
 #ifdef NICENAMES
-"ld address_dst,rs",16,11,
-0x00,
+"ld address_dst,rs",16,11,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,161},
-
+       {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,66},
 
 /* 0011 0011 ddN0 ssss imm16 *** ld rd(imm16),rs */
 {
 #ifdef NICENAMES
-"ld rd(imm16),rs",16,14,
-0x00,
+"ld rd(imm16),rs",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_BA+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,162},
-
+       {CLASS_BIT+3,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66},
 
 /* 0111 0011 ddN0 ssss 0000 xxxx 0000 0000 *** ld rd(rx),rs */
 {
 #ifdef NICENAMES
-"ld rd(rx),rs",16,14,
-0x00,
+"ld rd(rx),rs",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_BX+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,163},
-
+       {CLASS_BIT+7,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,66},
 
 /* 0010 0001 ssN0 dddd *** ld rd,@rs */
 {
 #ifdef NICENAMES
-"ld rd,@rs",16,7,
-0x00,
+"ld rd,@rs",16,7,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,164},
-
+       {CLASS_BIT+2,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,66},
 
 /* 0110 0001 0000 dddd address_src *** ld rd,address_src */
 {
 #ifdef NICENAMES
-"ld rd,address_src",16,9,
-0x00,
+"ld rd,address_src",16,9,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+6,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,165},
-
+       {CLASS_BIT+6,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,66},
 
 /* 0110 0001 ssN0 dddd address_src *** ld rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"ld rd,address_src(rs)",16,10,
-0x00,
+"ld rd,address_src(rs)",16,10,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,166},
-
+       {CLASS_BIT+6,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,66},
 
 /* 0010 0001 0000 dddd imm16 *** ld rd,imm16 */
 {
 #ifdef NICENAMES
-"ld rd,imm16",16,7,
-0x00,
+"ld rd,imm16",16,7,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+2,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,167},
-
+       {CLASS_BIT+2,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66},
 
 /* 1010 0001 ssss dddd *** ld rd,rs */
 {
 #ifdef NICENAMES
-"ld rd,rs",16,3,
-0x00,
+"ld rd,rs",16,3,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xa,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,168},
-
+       {CLASS_BIT+0xa,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,66},
 
 /* 0011 0001 ssN0 dddd imm16 *** ld rd,rs(imm16) */
 {
 #ifdef NICENAMES
-"ld rd,rs(imm16)",16,14,
-0x00,
+"ld rd,rs(imm16)",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BA+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,169},
-
+       {CLASS_BIT+3,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66},
 
 /* 0111 0001 ssN0 dddd 0000 xxxx 0000 0000 *** ld rd,rs(rx) */
 {
 #ifdef NICENAMES
-"ld rd,rs(rx)",16,14,
-0x00,
+"ld rd,rs(rx)",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BX+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,170},
-
+       {CLASS_BIT+7,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,66},
 
 /* 0111 0110 0000 dddd address_src *** lda prd,address_src */
 {
 #ifdef NICENAMES
-"lda prd,address_src",16,12,
-0x00,
+"lda prd,address_src",16,12,0x00,
 #endif
 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+7,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,171},
-
+       {CLASS_BIT+7,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,67},
 
 /* 0111 0110 ssN0 dddd address_src *** lda prd,address_src(rs) */
 {
 #ifdef NICENAMES
-"lda prd,address_src(rs)",16,13,
-0x00,
+"lda prd,address_src(rs)",16,13,0x00,
 #endif
 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,172},
-
+       {CLASS_BIT+7,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,67},
 
 /* 0011 0100 ssN0 dddd imm16 *** lda prd,rs(imm16) */
 {
 #ifdef NICENAMES
-"lda prd,rs(imm16)",16,15,
-0x00,
+"lda prd,rs(imm16)",16,15,0x00,
 #endif
 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BA+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,173},
-
+       {CLASS_BIT+3,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,67},
 
 /* 0111 0100 ssN0 dddd 0000 xxxx 0000 0000 *** lda prd,rs(rx) */
 {
 #ifdef NICENAMES
-"lda prd,rs(rx)",16,15,
-0x00,
+"lda prd,rs(rx)",16,15,0x00,
 #endif
 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BX+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,174},
-
+       {CLASS_BIT+7,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,67},
 
 /* 0011 0100 0000 dddd disp16 *** ldar prd,disp16 */
 {
 #ifdef NICENAMES
-"ldar prd,disp16",16,15,
-0x00,
+"ldar prd,disp16",16,15,0x00,
 #endif
 "ldar",OPC_ldar,0,{CLASS_PR+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+3,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,175},
-
+       {CLASS_BIT+3,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,68},
 
 /* 0000 1100 ddN0 0101 imm8 imm8 *** ldb @rd,imm8 */
 {
 #ifdef NICENAMES
-"ldb @rd,imm8",8,7,
-0x00,
+"ldb @rd,imm8",8,7,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,176},
-
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,69},
 
 /* 0010 1110 ddN0 ssss *** ldb @rd,rbs */
 {
 #ifdef NICENAMES
-"ldb @rd,rbs",8,8,
-0x00,
+"ldb @rd,rbs",8,8,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,177},
-
+       {CLASS_BIT+2,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,69},
 
 /* 0100 1100 ddN0 0101 address_dst imm8 imm8 *** ldb address_dst(rd),imm8 */
 {
 #ifdef NICENAMES
-"ldb address_dst(rd),imm8",8,15,
-0x00,
+"ldb address_dst(rd),imm8",8,15,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,178},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,69},
 
 /* 0110 1110 ddN0 ssss address_dst *** ldb address_dst(rd),rbs */
 {
 #ifdef NICENAMES
-"ldb address_dst(rd),rbs",8,12,
-0x00,
+"ldb address_dst(rd),rbs",8,12,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,179},
-
+       {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
 
 /* 0100 1100 0000 0101 address_dst imm8 imm8 *** ldb address_dst,imm8 */
 {
 #ifdef NICENAMES
-"ldb address_dst,imm8",8,14,
-0x00,
+"ldb address_dst,imm8",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,180},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,69},
 
 /* 0110 1110 0000 ssss address_dst *** ldb address_dst,rbs */
 {
 #ifdef NICENAMES
-"ldb address_dst,rbs",8,11,
-0x00,
+"ldb address_dst,rbs",8,11,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,181},
-
+       {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
 
 /* 0010 0000 ssN0 dddd *** ldb rbd,@rs */
 {
 #ifdef NICENAMES
-"ldb rbd,@rs",8,7,
-0x00,
+"ldb rbd,@rs",8,7,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,182},
-
+       {CLASS_BIT+2,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,69},
 
 /* 0110 0000 0000 dddd address_src *** ldb rbd,address_src */
 {
 #ifdef NICENAMES
-"ldb rbd,address_src",8,9,
-0x00,
+"ldb rbd,address_src",8,9,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,183},
-
+       {CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,69},
 
 /* 0110 0000 ssN0 dddd address_src *** ldb rbd,address_src(rs) */
 {
 #ifdef NICENAMES
-"ldb rbd,address_src(rs)",8,10,
-0x00,
+"ldb rbd,address_src(rs)",8,10,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,184},
-
+       {CLASS_BIT+6,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,69},
 
 /* 1100 dddd imm8 *** ldb rbd,imm8 */
 {
 #ifdef NICENAMES
-"ldb rbd,imm8",8,5,
-0x00,
+"ldb rbd,imm8",8,5,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},2,2,185},
-
+       {CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},2,2,69},
 
 /* 1010 0000 ssss dddd *** ldb rbd,rbs */
 {
 #ifdef NICENAMES
-"ldb rbd,rbs",8,3,
-0x00,
+"ldb rbd,rbs",8,3,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,186},
-
+       {CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,69},
 
 /* 0011 0000 ssN0 dddd imm16 *** ldb rbd,rs(imm16) */
 {
 #ifdef NICENAMES
-"ldb rbd,rs(imm16)",8,14,
-0x00,
+"ldb rbd,rs(imm16)",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BA+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,187},
-
+       {CLASS_BIT+3,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,69},
 
 /* 0111 0000 ssN0 dddd 0000 xxxx 0000 0000 *** ldb rbd,rs(rx) */
 {
 #ifdef NICENAMES
-"ldb rbd,rs(rx)",8,14,
-0x00,
+"ldb rbd,rs(rx)",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BX+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,188},
-
+       {CLASS_BIT+7,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,69},
 
 /* 0011 0010 ddN0 ssss imm16 *** ldb rd(imm16),rbs */
 {
 #ifdef NICENAMES
-"ldb rd(imm16),rbs",8,14,
-0x00,
+"ldb rd(imm16),rbs",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_BA+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,189},
-
+       {CLASS_BIT+3,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,69},
 
 /* 0111 0010 ddN0 ssss 0000 xxxx 0000 0000 *** ldb rd(rx),rbs */
 {
 #ifdef NICENAMES
-"ldb rd(rx),rbs",8,14,
-0x00,
+"ldb rd(rx),rbs",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_BX+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,190},
-
+       {CLASS_BIT+7,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,69},
 
 /* 0111 1101 ssss 1ccc *** ldctl ctrl,rs */
 {
 #ifdef NICENAMES
-"ldctl ctrl,rs",32,7,
-0x00,
+"ldctl ctrl,rs",32,7,0x00,
 #endif
 "ldctl",OPC_ldctl,0,{CLASS_CTRL,CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_1CCC,0,0,0,0,0,},2,2,191},
-
+       {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_1CCC,0,0,0,0,0,},2,2,70},
 
 /* 0111 1101 dddd 0ccc *** ldctl rd,ctrl */
 {
 #ifdef NICENAMES
-"ldctl rd,ctrl",32,7,
-0x00,
+"ldctl rd,ctrl",32,7,0x00,
 #endif
 "ldctl",OPC_ldctl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_CTRL,},
-       {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_0CCC,0,0,0,0,0,},2,2,192},
-
+       {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_0CCC,0,0,0,0,0,},2,2,70},
 
 /* 1000 1100 ssss 1001 *** ldctlb ctrl,rbs */
 {
 #ifdef NICENAMES
-"ldctlb ctrl,rbs",32,7,
-0x3f,
+"ldctlb ctrl,rbs",32,7,0x3f,
 #endif
 "ldctlb",OPC_ldctlb,0,{CLASS_CTRL,CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_BIT+9,0,0,0,0,0,},2,2,193},
-
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_BIT+9,0,0,0,0,0,},2,2,71},
 
 /* 1000 1100 dddd 0001 *** ldctlb rbd,ctrl */
 {
 #ifdef NICENAMES
-"ldctlb rbd,ctrl",32,7,
-0x00,
+"ldctlb rbd,ctrl",32,7,0x00,
 #endif
 "ldctlb",OPC_ldctlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_CTRL,},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+1,0,0,0,0,0,},2,2,194},
-
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+1,0,0,0,0,0,},2,2,71},
 
 /* 1011 1011 ssN0 1001 0000 rrrr ddN0 1000 *** ldd @rd,@rs,rr */
 {
 #ifdef NICENAMES
-"ldd @rd,@rs,rr",16,11,
-0x04,
+"ldd @rd,@rs,rr",16,11,0x04,
 #endif
 "ldd",OPC_ldd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,195},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,72},
 
 /* 1011 1010 ssN0 1001 0000 rrrr ddN0 1000 *** lddb @rd,@rs,rr */
 {
 #ifdef NICENAMES
-"lddb @rd,@rs,rr",8,11,
-0x04,
+"lddb @rd,@rs,rr",8,11,0x04,
 #endif
 "lddb",OPC_lddb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,196},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,73},
 
 /* 1011 1011 ssN0 1001 0000 rrrr ddN0 0000 *** lddr @rd,@rs,rr */
 {
 #ifdef NICENAMES
-"lddr @rd,@rs,rr",16,11,
-0x04,
+"lddr @rd,@rs,rr",16,11,0x04,
 #endif
 "lddr",OPC_lddr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,197},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,74},
 
 /* 1011 1010 ssN0 1001 0000 rrrr ddN0 0000 *** lddrb @rd,@rs,rr */
 {
 #ifdef NICENAMES
-"lddrb @rd,@rs,rr",8,11,
-0x04,
+"lddrb @rd,@rs,rr",8,11,0x04,
 #endif
 "lddrb",OPC_lddrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,198},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,75},
 
 /* 1011 1011 ssN0 0001 0000 rrrr ddN0 1000 *** ldi @rd,@rs,rr */
 {
 #ifdef NICENAMES
-"ldi @rd,@rs,rr",16,11,
-0x04,
+"ldi @rd,@rs,rr",16,11,0x04,
 #endif
 "ldi",OPC_ldi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,199},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,76},
 
 /* 1011 1010 ssN0 0001 0000 rrrr ddN0 1000 *** ldib @rd,@rs,rr */
 {
 #ifdef NICENAMES
-"ldib @rd,@rs,rr",8,11,
-0x04,
+"ldib @rd,@rs,rr",8,11,0x04,
 #endif
 "ldib",OPC_ldib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,200},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,77},
 
 /* 1011 1011 ssN0 0001 0000 rrrr ddN0 0000 *** ldir @rd,@rs,rr */
 {
 #ifdef NICENAMES
-"ldir @rd,@rs,rr",16,11,
-0x04,
+"ldir @rd,@rs,rr",16,11,0x04,
 #endif
 "ldir",OPC_ldir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,201},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,78},
 
 /* 1011 1010 ssN0 0001 0000 rrrr ddN0 0000 *** ldirb @rd,@rs,rr */
 {
 #ifdef NICENAMES
-"ldirb @rd,@rs,rr",8,11,
-0x04,
+"ldirb @rd,@rs,rr",8,11,0x04,
 #endif
 "ldirb",OPC_ldirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,202},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,79},
 
 /* 1011 1101 dddd imm4 *** ldk rd,imm4 */
 {
 #ifdef NICENAMES
-"ldk rd,imm4",16,5,
-0x00,
+"ldk rd,imm4",16,5,0x00,
 #endif
 "ldk",OPC_ldk,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,203},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,80},
 
 /* 0001 1101 ddN0 ssss *** ldl @rd,rrs */
 {
 #ifdef NICENAMES
-"ldl @rd,rrs",32,11,
-0x00,
+"ldl @rd,rrs",32,11,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,204},
-
+       {CLASS_BIT+1,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,81},
 
 /* 0101 1101 ddN0 ssss address_dst *** ldl address_dst(rd),rrs */
 {
 #ifdef NICENAMES
-"ldl address_dst(rd),rrs",32,14,
-0x00,
+"ldl address_dst(rd),rrs",32,14,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_X+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,205},
-
+       {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,81},
 
 /* 0101 1101 0000 ssss address_dst *** ldl address_dst,rrs */
 {
 #ifdef NICENAMES
-"ldl address_dst,rrs",32,15,
-0x00,
+"ldl address_dst,rrs",32,15,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_DA+(ARG_DST),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,206},
-
+       {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,81},
 
 /* 0011 0111 ddN0 ssss imm16 *** ldl rd(imm16),rrs */
 {
 #ifdef NICENAMES
-"ldl rd(imm16),rrs",32,17,
-0x00,
+"ldl rd(imm16),rrs",32,17,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_BA+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,207},
-
+       {CLASS_BIT+3,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,81},
 
 /* 0111 0111 ddN0 ssss 0000 xxxx 0000 0000 *** ldl rd(rx),rrs */
 {
 #ifdef NICENAMES
-"ldl rd(rx),rrs",32,17,
-0x00,
+"ldl rd(rx),rrs",32,17,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_BX+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,208},
-
+       {CLASS_BIT+7,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,81},
 
 /* 0001 0100 ssN0 dddd *** ldl rrd,@rs */
 {
 #ifdef NICENAMES
-"ldl rrd,@rs",32,11,
-0x00,
+"ldl rrd,@rs",32,11,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,209},
-
+       {CLASS_BIT+1,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,81},
 
 /* 0101 0100 0000 dddd address_src *** ldl rrd,address_src */
 {
 #ifdef NICENAMES
-"ldl rrd,address_src",32,12,
-0x00,
+"ldl rrd,address_src",32,12,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,210},
-
+       {CLASS_BIT+5,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,81},
 
 /* 0101 0100 ssN0 dddd address_src *** ldl rrd,address_src(rs) */
 {
 #ifdef NICENAMES
-"ldl rrd,address_src(rs)",32,13,
-0x00,
+"ldl rrd,address_src(rs)",32,13,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,211},
-
+       {CLASS_BIT+5,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,81},
 
 /* 0001 0100 0000 dddd imm32 *** ldl rrd,imm32 */
 {
 #ifdef NICENAMES
-"ldl rrd,imm32",32,11,
-0x00,
+"ldl rrd,imm32",32,11,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,212},
-
+       {CLASS_BIT+1,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,81},
 
 /* 1001 0100 ssss dddd *** ldl rrd,rrs */
 {
 #ifdef NICENAMES
-"ldl rrd,rrs",32,5,
-0x00,
+"ldl rrd,rrs",32,5,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,213},
-
+       {CLASS_BIT+9,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,81},
 
 /* 0011 0101 ssN0 dddd imm16 *** ldl rrd,rs(imm16) */
 {
 #ifdef NICENAMES
-"ldl rrd,rs(imm16)",32,17,
-0x00,
+"ldl rrd,rs(imm16)",32,17,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BA+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,214},
-
+       {CLASS_BIT+3,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,81},
 
 /* 0111 0101 ssN0 dddd 0000 xxxx 0000 0000 *** ldl rrd,rs(rx) */
 {
 #ifdef NICENAMES
-"ldl rrd,rs(rx)",32,17,
-0x00,
+"ldl rrd,rs(rx)",32,17,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BX+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,215},
-
+       {CLASS_BIT+7,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,81},
 
 /* 0001 1100 ddN0 1001 0000 ssss 0000 imm4m1 *** ldm @rd,rs,n */
 {
 #ifdef NICENAMES
-"ldm @rd,rs,n",16,11,
-0x00,
+"ldm @rd,rs,n",16,11,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,216},
-
+       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,82},
 
 /* 0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst(rd),rs,n */
 {
 #ifdef NICENAMES
-"ldm address_dst(rd),rs,n",16,15,
-0x00,
+"ldm address_dst(rd),rs,n",16,15,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,217},
-
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,82},
 
 /* 0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst,rs,n */
 {
 #ifdef NICENAMES
-"ldm address_dst,rs,n",16,14,
-0x00,
+"ldm address_dst,rs,n",16,14,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,218},
-
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,82},
 
 /* 0001 1100 ssN0 0001 0000 dddd 0000 imm4m1 *** ldm rd,@rs,n */
 {
 #ifdef NICENAMES
-"ldm rd,@rs,n",16,11,
-0x00,
+"ldm rd,@rs,n",16,11,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,219},
-
+       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,82},
 
 /* 0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src(rs),n */
 {
 #ifdef NICENAMES
-"ldm rd,address_src(rs),n",16,15,
-0x00,
+"ldm rd,address_src(rs),n",16,15,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,220},
-
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,82},
 
 /* 0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src,n */
 {
 #ifdef NICENAMES
-"ldm rd,address_src,n",16,14,
-0x00,
+"ldm rd,address_src,n",16,14,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,221},
-
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,82},
 
 /* 0011 1001 ssN0 0000 *** ldps @rs */
 {
 #ifdef NICENAMES
-"ldps @rs",16,12,
-0x3f,
+"ldps @rs",16,12,0x3f,
 #endif
 "ldps",OPC_ldps,0,{CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,0,0,0,0,},1,2,222},
-
+       {CLASS_BIT+3,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,0,0,0,0,},1,2,83},
 
 /* 0111 1001 0000 0000 address_src *** ldps address_src */
 {
 #ifdef NICENAMES
-"ldps address_src",16,16,
-0x3f,
+"ldps address_src",16,16,0x3f,
 #endif
 "ldps",OPC_ldps,0,{CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+7,CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,223},
-
+       {CLASS_BIT+7,CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,83},
 
 /* 0111 1001 ssN0 0000 address_src *** ldps address_src(rs) */
 {
 #ifdef NICENAMES
-"ldps address_src(rs)",16,17,
-0x3f,
+"ldps address_src(rs)",16,17,0x3f,
 #endif
 "ldps",OPC_ldps,0,{CLASS_X+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,224},
-
+       {CLASS_BIT+7,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,83},
 
 /* 0011 0011 0000 ssss disp16 *** ldr disp16,rs */
 {
 #ifdef NICENAMES
-"ldr disp16,rs",16,14,
-0x00,
+"ldr disp16,rs",16,14,0x00,
 #endif
 "ldr",OPC_ldr,0,{CLASS_DISP,CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,225},
-
+       {CLASS_BIT+3,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,84},
 
 /* 0011 0001 0000 dddd disp16 *** ldr rd,disp16 */
 {
 #ifdef NICENAMES
-"ldr rd,disp16",16,14,
-0x00,
+"ldr rd,disp16",16,14,0x00,
 #endif
 "ldr",OPC_ldr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+3,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,226},
-
+       {CLASS_BIT+3,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,84},
 
 /* 0011 0010 0000 ssss disp16 *** ldrb disp16,rbs */
 {
 #ifdef NICENAMES
-"ldrb disp16,rbs",8,14,
-0x00,
+"ldrb disp16,rbs",8,14,0x00,
 #endif
 "ldrb",OPC_ldrb,0,{CLASS_DISP,CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,227},
-
+       {CLASS_BIT+3,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,85},
 
 /* 0011 0000 0000 dddd disp16 *** ldrb rbd,disp16 */
 {
 #ifdef NICENAMES
-"ldrb rbd,disp16",8,14,
-0x00,
+"ldrb rbd,disp16",8,14,0x00,
 #endif
 "ldrb",OPC_ldrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+3,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,228},
-
+       {CLASS_BIT+3,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,85},
 
 /* 0011 0111 0000 ssss disp16 *** ldrl disp16,rrs */
 {
 #ifdef NICENAMES
-"ldrl disp16,rrs",32,17,
-0x00,
+"ldrl disp16,rrs",32,17,0x00,
 #endif
 "ldrl",OPC_ldrl,0,{CLASS_DISP,CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,229},
-
+       {CLASS_BIT+3,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,86},
 
 /* 0011 0101 0000 dddd disp16 *** ldrl rrd,disp16 */
 {
 #ifdef NICENAMES
-"ldrl rrd,disp16",32,17,
-0x00,
+"ldrl rrd,disp16",32,17,0x00,
 #endif
 "ldrl",OPC_ldrl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+3,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,230},
-
+       {CLASS_BIT+3,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,86},
 
 /* 0111 1011 0000 1010 *** mbit */
 {
 #ifdef NICENAMES
-"mbit",16,7,
-0x38,
+"mbit",16,7,0x38,
 #endif
 "mbit",OPC_mbit,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0xa,0,0,0,0,0,},0,2,231},
-
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0xa,0,0,0,0,0,},0,2,87},
 
 /* 0111 1011 dddd 1101 *** mreq rd */
 {
 #ifdef NICENAMES
-"mreq rd",16,12,
-0x18,
+"mreq rd",16,12,0x18,
 #endif
 "mreq",OPC_mreq,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,0,0,0,0,0,},1,2,232},
-
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,0,0,0,0,0,},1,2,88},
 
 /* 0111 1011 0000 1001 *** mres */
 {
 #ifdef NICENAMES
-"mres",16,5,
-0x00,
+"mres",16,5,0x00,
 #endif
 "mres",OPC_mres,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+9,0,0,0,0,0,},0,2,233},
-
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+9,0,0,0,0,0,},0,2,89},
 
 /* 0111 1011 0000 1000 *** mset */
 {
 #ifdef NICENAMES
-"mset",16,5,
-0x00,
+"mset",16,5,0x00,
 #endif
 "mset",OPC_mset,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+8,0,0,0,0,0,},0,2,234},
-
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+8,0,0,0,0,0,},0,2,90},
 
 /* 0001 1001 ssN0 dddd *** mult rrd,@rs */
 {
 #ifdef NICENAMES
-"mult rrd,@rs",16,70,
-0x3c,
+"mult rrd,@rs",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,235},
-
+       {CLASS_BIT+1,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,91},
 
 /* 0101 1001 0000 dddd address_src *** mult rrd,address_src */
 {
 #ifdef NICENAMES
-"mult rrd,address_src",16,70,
-0x3c,
+"mult rrd,address_src",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,236},
-
+       {CLASS_BIT+5,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,91},
 
 /* 0101 1001 ssN0 dddd address_src *** mult rrd,address_src(rs) */
 {
 #ifdef NICENAMES
-"mult rrd,address_src(rs)",16,70,
-0x3c,
+"mult rrd,address_src(rs)",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,237},
-
+       {CLASS_BIT+5,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,91},
 
 /* 0001 1001 0000 dddd imm16 *** mult rrd,imm16 */
 {
 #ifdef NICENAMES
-"mult rrd,imm16",16,70,
-0x3c,
+"mult rrd,imm16",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+1,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,238},
-
+       {CLASS_BIT+1,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,91},
 
 /* 1001 1001 ssss dddd *** mult rrd,rs */
 {
 #ifdef NICENAMES
-"mult rrd,rs",16,70,
-0x3c,
+"mult rrd,rs",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,239},
-
+       {CLASS_BIT+9,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,91},
 
 /* 0001 1000 ssN0 dddd *** multl rqd,@rs */
 {
 #ifdef NICENAMES
-"multl rqd,@rs",32,282,
-0x3c,
+"multl rqd,@rs",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,240},
-
+       {CLASS_BIT+1,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,92},
 
 /* 0101 1000 0000 dddd address_src *** multl rqd,address_src */
 {
 #ifdef NICENAMES
-"multl rqd,address_src",32,282,
-0x3c,
+"multl rqd,address_src",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,241},
-
+       {CLASS_BIT+5,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,92},
 
 /* 0101 1000 ssN0 dddd address_src *** multl rqd,address_src(rs) */
 {
 #ifdef NICENAMES
-"multl rqd,address_src(rs)",32,282,
-0x3c,
+"multl rqd,address_src(rs)",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,242},
-
+       {CLASS_BIT+5,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,92},
 
 /* 0001 1000 0000 dddd imm32 *** multl rqd,imm32 */
 {
 #ifdef NICENAMES
-"multl rqd,imm32",32,282,
-0x3c,
+"multl rqd,imm32",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,243},
-
+       {CLASS_BIT+1,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,92},
 
 /* 1001 1000 ssss dddd *** multl rqd,rrs */
 {
 #ifdef NICENAMES
-"multl rqd,rrs",32,282,
-0x3c,
+"multl rqd,rrs",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,244},
-
+       {CLASS_BIT+9,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,92},
 
 /* 0000 1101 ddN0 0010 *** neg @rd */
 {
 #ifdef NICENAMES
-"neg @rd",16,12,
-0x3c,
+"neg @rd",16,12,0x3c,
 #endif
 "neg",OPC_neg,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,245},
-
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,93},
 
 /* 0100 1101 0000 0010 address_dst *** neg address_dst */
 {
 #ifdef NICENAMES
-"neg address_dst",16,15,
-0x3c,
+"neg address_dst",16,15,0x3c,
 #endif
 "neg",OPC_neg,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,246},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,93},
 
 /* 0100 1101 ddN0 0010 address_dst *** neg address_dst(rd) */
 {
 #ifdef NICENAMES
-"neg address_dst(rd)",16,16,
-0x3c,
+"neg address_dst(rd)",16,16,0x3c,
 #endif
 "neg",OPC_neg,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,247},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,93},
 
 /* 1000 1101 dddd 0010 *** neg rd */
 {
 #ifdef NICENAMES
-"neg rd",16,7,
-0x3c,
+"neg rd",16,7,0x3c,
 #endif
 "neg",OPC_neg,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,248},
-
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,93},
 
 /* 0000 1100 ddN0 0010 *** negb @rd */
 {
 #ifdef NICENAMES
-"negb @rd",8,12,
-0x3c,
+"negb @rd",8,12,0x3c,
 #endif
 "negb",OPC_negb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,249},
-
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,94},
 
 /* 0100 1100 0000 0010 address_dst *** negb address_dst */
 {
 #ifdef NICENAMES
-"negb address_dst",8,15,
-0x3c,
+"negb address_dst",8,15,0x3c,
 #endif
 "negb",OPC_negb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,250},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,94},
 
 /* 0100 1100 ddN0 0010 address_dst *** negb address_dst(rd) */
 {
 #ifdef NICENAMES
-"negb address_dst(rd)",8,16,
-0x3c,
+"negb address_dst(rd)",8,16,0x3c,
 #endif
 "negb",OPC_negb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,251},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,94},
 
 /* 1000 1100 dddd 0010 *** negb rbd */
 {
 #ifdef NICENAMES
-"negb rbd",8,7,
-0x3c,
+"negb rbd",8,7,0x3c,
 #endif
 "negb",OPC_negb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,252},
-
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,94},
 
 /* 1000 1101 0000 0111 *** nop */
 {
 #ifdef NICENAMES
-"nop",16,7,
-0x00,
+"nop",16,7,0x00,
 #endif
 "nop",OPC_nop,0,{0},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+7,0,0,0,0,0,},0,2,253},
-
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+7,0,0,0,0,0,},0,2,95},
 
 /* 0000 0101 ssN0 dddd *** or rd,@rs */
 {
 #ifdef NICENAMES
-"or rd,@rs",16,7,
-0x38,
+"or rd,@rs",16,7,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,254},
-
+       {CLASS_BIT+0,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
 
 /* 0100 0101 0000 dddd address_src *** or rd,address_src */
 {
 #ifdef NICENAMES
-"or rd,address_src",16,9,
-0x38,
+"or rd,address_src",16,9,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,255},
-
+       {CLASS_BIT+4,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96},
 
 /* 0100 0101 ssN0 dddd address_src *** or rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"or rd,address_src(rs)",16,10,
-0x38,
+"or rd,address_src(rs)",16,10,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,256},
-
+       {CLASS_BIT+4,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96},
 
 /* 0000 0101 0000 dddd imm16 *** or rd,imm16 */
 {
 #ifdef NICENAMES
-"or rd,imm16",16,7,
-0x38,
+"or rd,imm16",16,7,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,257},
-
+       {CLASS_BIT+0,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,96},
 
 /* 1000 0101 ssss dddd *** or rd,rs */
 {
 #ifdef NICENAMES
-"or rd,rs",16,4,
-0x38,
+"or rd,rs",16,4,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,258},
-
+       {CLASS_BIT+8,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
 
 /* 0000 0100 ssN0 dddd *** orb rbd,@rs */
 {
 #ifdef NICENAMES
-"orb rbd,@rs",8,7,
-0x3c,
+"orb rbd,@rs",8,7,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,259},
-
+       {CLASS_BIT+0,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
 
 /* 0100 0100 0000 dddd address_src *** orb rbd,address_src */
 {
 #ifdef NICENAMES
-"orb rbd,address_src",8,9,
-0x3c,
+"orb rbd,address_src",8,9,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,260},
-
+       {CLASS_BIT+4,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97},
 
 /* 0100 0100 ssN0 dddd address_src *** orb rbd,address_src(rs) */
 {
 #ifdef NICENAMES
-"orb rbd,address_src(rs)",8,10,
-0x3c,
+"orb rbd,address_src(rs)",8,10,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,261},
-
+       {CLASS_BIT+4,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97},
 
 /* 0000 0100 0000 dddd imm8 imm8 *** orb rbd,imm8 */
 {
 #ifdef NICENAMES
-"orb rbd,imm8",8,7,
-0x3c,
+"orb rbd,imm8",8,7,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,262},
-
+       {CLASS_BIT+0,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,97},
 
 /* 1000 0100 ssss dddd *** orb rbd,rbs */
 {
 #ifdef NICENAMES
-"orb rbd,rbs",8,4,
-0x3c,
+"orb rbd,rbs",8,4,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,263},
-
+       {CLASS_BIT+8,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
 
 /* 0011 1111 ddN0 ssss *** out @rd,rs */
 {
 #ifdef NICENAMES
-"out @rd,rs",16,0,
-0x04,
+"out @rd,rs",16,0,0x04,
 #endif
 "out",OPC_out,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,264},
-
+       {CLASS_BIT+3,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,98},
 
 /* 0011 1011 ssss 0110 imm16 *** out imm16,rs */
 {
 #ifdef NICENAMES
-"out imm16,rs",16,0,
-0x04,
+"out imm16,rs",16,0,0x04,
 #endif
 "out",OPC_out,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,265},
-
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,98},
 
 /* 0011 1110 ddN0 ssss *** outb @rd,rbs */
 {
 #ifdef NICENAMES
-"outb @rd,rbs",8,0,
-0x04,
+"outb @rd,rbs",8,0,0x04,
 #endif
 "outb",OPC_outb,0,{CLASS_IR+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,266},
-
+       {CLASS_BIT+3,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,99},
 
 /* 0011 1010 ssss 0110 imm16 *** outb imm16,rbs */
 {
 #ifdef NICENAMES
-"outb imm16,rbs",8,0,
-0x04,
+"outb imm16,rbs",8,0,0x04,
 #endif
 "outb",OPC_outb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,267},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,99},
 
 /* 0011 1011 ssN0 1010 0000 aaaa ddN0 1000 *** outd @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"outd @rd,@rs,ra",16,0,
-0x04,
+"outd @rd,@rs,ra",16,0,0x04,
 #endif
 "outd",OPC_outd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,268},
-
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,100},
 
 /* 0011 1010 ssN0 1010 0000 aaaa ddN0 1000 *** outdb @rd,@rs,rba */
 {
 #ifdef NICENAMES
-"outdb @rd,@rs,rba",16,0,
-0x04,
+"outdb @rd,@rs,rba",16,0,0x04,
 #endif
 "outdb",OPC_outdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,269},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,101},
 
 /* 0011 1011 ssN0 0010 0000 aaaa ddN0 1000 *** outi @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"outi @rd,@rs,ra",16,0,
-0x04,
+"outi @rd,@rs,ra",16,0,0x04,
 #endif
 "outi",OPC_outi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,270},
-
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,102},
 
 /* 0011 1010 ssN0 0010 0000 aaaa ddN0 1000 *** outib @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"outib @rd,@rs,ra",16,0,
-0x04,
+"outib @rd,@rs,ra",16,0,0x04,
 #endif
 "outib",OPC_outib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,271},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,103},
 
 /* 0011 1010 ssN0 0010 0000 aaaa ddN0 0000 *** outibr @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"outibr @rd,@rs,ra",16,0,
-0x04,
+"outibr @rd,@rs,ra",16,0,0x04,
 #endif
 "outibr",OPC_outibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,272},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,104},
 
 /* 0001 0111 ssN0 ddN0 *** pop @rd,@rs */
 {
 #ifdef NICENAMES
-"pop @rd,@rs",16,12,
-0x00,
+"pop @rd,@rs",16,12,0x00,
 #endif
 "pop",OPC_pop,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,273},
-
+       {CLASS_BIT+1,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,105},
 
 /* 0101 0111 ssN0 ddN0 address_dst *** pop address_dst(rd),@rs */
 {
 #ifdef NICENAMES
-"pop address_dst(rd),@rs",16,16,
-0x00,
+"pop address_dst(rd),@rs",16,16,0x00,
 #endif
 "pop",OPC_pop,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,274},
-
+       {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,105},
 
 /* 0101 0111 ssN0 0000 address_dst *** pop address_dst,@rs */
 {
 #ifdef NICENAMES
-"pop address_dst,@rs",16,16,
-0x00,
+"pop address_dst,@rs",16,16,0x00,
 #endif
 "pop",OPC_pop,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,275},
-
+       {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,105},
 
 /* 1001 0111 ssN0 dddd *** pop rd,@rs */
 {
 #ifdef NICENAMES
-"pop rd,@rs",16,8,
-0x00,
+"pop rd,@rs",16,8,0x00,
 #endif
 "pop",OPC_pop,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,276},
-
+       {CLASS_BIT+9,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,105},
 
 /* 0001 0101 ssN0 ddN0 *** popl @rd,@rs */
 {
 #ifdef NICENAMES
-"popl @rd,@rs",32,19,
-0x00,
+"popl @rd,@rs",32,19,0x00,
 #endif
 "popl",OPC_popl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,277},
-
+       {CLASS_BIT+1,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,106},
 
 /* 0101 0101 ssN0 ddN0 address_dst *** popl address_dst(rd),@rs */
 {
 #ifdef NICENAMES
-"popl address_dst(rd),@rs",32,23,
-0x00,
+"popl address_dst(rd),@rs",32,23,0x00,
 #endif
 "popl",OPC_popl,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,278},
-
+       {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,106},
 
 /* 0101 0101 ssN0 0000 address_dst *** popl address_dst,@rs */
 {
 #ifdef NICENAMES
-"popl address_dst,@rs",32,23,
-0x00,
+"popl address_dst,@rs",32,23,0x00,
 #endif
 "popl",OPC_popl,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,279},
-
+       {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,106},
 
 /* 1001 0101 ssN0 dddd *** popl rrd,@rs */
 {
 #ifdef NICENAMES
-"popl rrd,@rs",32,12,
-0x00,
+"popl rrd,@rs",32,12,0x00,
 #endif
 "popl",OPC_popl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,280},
-
+       {CLASS_BIT+9,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,106},
 
 /* 0001 0011 ddN0 ssN0 *** push @rd,@rs */
 {
 #ifdef NICENAMES
-"push @rd,@rs",16,13,
-0x00,
+"push @rd,@rs",16,13,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,281},
-
+       {CLASS_BIT+1,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,107},
 
 /* 0101 0011 ddN0 0000 address_src *** push @rd,address_src */
 {
 #ifdef NICENAMES
-"push @rd,address_src",16,14,
-0x00,
+"push @rd,address_src",16,14,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,282},
-
+       {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,107},
 
 /* 0101 0011 ddN0 ssN0 address_src *** push @rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"push @rd,address_src(rs)",16,14,
-0x00,
+"push @rd,address_src(rs)",16,14,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,283},
-
+       {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,107},
 
 /* 0000 1101 ddN0 1001 imm16 *** push @rd,imm16 */
 {
 #ifdef NICENAMES
-"push @rd,imm16",16,12,
-0x00,
+"push @rd,imm16",16,12,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,284},
-
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,107},
 
 /* 1001 0011 ddN0 ssss *** push @rd,rs */
 {
 #ifdef NICENAMES
-"push @rd,rs",16,9,
-0x00,
+"push @rd,rs",16,9,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,285},
-
+       {CLASS_BIT+9,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,107},
 
 /* 0001 0001 ddN0 ssN0 *** pushl @rd,@rs */
 {
 #ifdef NICENAMES
-"pushl @rd,@rs",32,20,
-0x00,
+"pushl @rd,@rs",32,20,0x00,
 #endif
 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,286},
-
+       {CLASS_BIT+1,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,108},
 
 /* 0101 0001 ddN0 0000 address_src *** pushl @rd,address_src */
 {
 #ifdef NICENAMES
-"pushl @rd,address_src",32,21,
-0x00,
+"pushl @rd,address_src",32,21,0x00,
 #endif
 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,287},
-
+       {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,108},
 
 /* 0101 0001 ddN0 ssN0 address_src *** pushl @rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"pushl @rd,address_src(rs)",32,21,
-0x00,
+"pushl @rd,address_src(rs)",32,21,0x00,
 #endif
 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,288},
-
+       {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,108},
 
 /* 1001 0001 ddN0 ssss *** pushl @rd,rrs */
 {
 #ifdef NICENAMES
-"pushl @rd,rrs",32,12,
-0x00,
+"pushl @rd,rrs",32,12,0x00,
 #endif
 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,289},
-
+       {CLASS_BIT+9,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,108},
 
 /* 0010 0011 ddN0 imm4 *** res @rd,imm4 */
 {
 #ifdef NICENAMES
-"res @rd,imm4",16,11,
-0x00,
+"res @rd,imm4",16,11,0x00,
 #endif
 "res",OPC_res,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,290},
-
+       {CLASS_BIT+2,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,109},
 
 /* 0110 0011 ddN0 imm4 address_dst *** res address_dst(rd),imm4 */
 {
 #ifdef NICENAMES
-"res address_dst(rd),imm4",16,14,
-0x00,
+"res address_dst(rd),imm4",16,14,0x00,
 #endif
 "res",OPC_res,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,291},
-
+       {CLASS_BIT+6,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,109},
 
 /* 0110 0011 0000 imm4 address_dst *** res address_dst,imm4 */
 {
 #ifdef NICENAMES
-"res address_dst,imm4",16,13,
-0x00,
+"res address_dst,imm4",16,13,0x00,
 #endif
 "res",OPC_res,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+3,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,292},
-
+       {CLASS_BIT+6,CLASS_BIT+3,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,109},
 
 /* 1010 0011 dddd imm4 *** res rd,imm4 */
 {
 #ifdef NICENAMES
-"res rd,imm4",16,4,
-0x00,
+"res rd,imm4",16,4,0x00,
 #endif
 "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,293},
-
+       {CLASS_BIT+0xa,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,109},
 
 /* 0010 0011 0000 ssss 0000 dddd 0000 0000 *** res rd,rs */
 {
 #ifdef NICENAMES
-"res rd,rs",16,10,
-0x00,
+"res rd,rs",16,10,0x00,
 #endif
 "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,294},
-
+       {CLASS_BIT+2,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,109},
 
 /* 0010 0010 ddN0 imm4 *** resb @rd,imm4 */
 {
 #ifdef NICENAMES
-"resb @rd,imm4",8,11,
-0x00,
+"resb @rd,imm4",8,11,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,295},
-
+       {CLASS_BIT+2,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,110},
 
 /* 0110 0010 ddN0 imm4 address_dst *** resb address_dst(rd),imm4 */
 {
 #ifdef NICENAMES
-"resb address_dst(rd),imm4",8,14,
-0x00,
+"resb address_dst(rd),imm4",8,14,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,296},
-
+       {CLASS_BIT+6,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,110},
 
 /* 0110 0010 0000 imm4 address_dst *** resb address_dst,imm4 */
 {
 #ifdef NICENAMES
-"resb address_dst,imm4",8,13,
-0x00,
+"resb address_dst,imm4",8,13,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+2,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,297},
-
+       {CLASS_BIT+6,CLASS_BIT+2,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,110},
 
 /* 1010 0010 dddd imm4 *** resb rbd,imm4 */
 {
 #ifdef NICENAMES
-"resb rbd,imm4",8,4,
-0x00,
+"resb rbd,imm4",8,4,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,298},
-
+       {CLASS_BIT+0xa,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,110},
 
 /* 0010 0010 0000 ssss 0000 dddd 0000 0000 *** resb rbd,rs */
 {
 #ifdef NICENAMES
-"resb rbd,rs",8,10,
-0x00,
+"resb rbd,rs",8,10,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,299},
-
+       {CLASS_BIT+2,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,110},
 
 /* 1000 1101 flags 0011 *** resflg flags */
 {
 #ifdef NICENAMES
-"resflg flags",16,7,
-0x3c,
+"resflg flags",16,7,0x3c,
 #endif
 "resflg",OPC_resflg,0,{CLASS_FLAGS,},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+3,0,0,0,0,0,},1,2,300},
-
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+3,0,0,0,0,0,},1,2,111},
 
 /* 1001 1110 0000 cccc *** ret cc */
 {
 #ifdef NICENAMES
-"ret cc",16,10,
-0x00,
+"ret cc",16,10,0x00,
 #endif
 "ret",OPC_ret,0,{CLASS_CC,},
-       {CLASS_BIT+9,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,0,0,0,0,0,},1,2,301},
-
+       {CLASS_BIT+9,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,0,0,0,0,0,},1,2,112},
 
 /* 1011 0011 dddd 00I0 *** rl rd,imm1or2 */
 {
 #ifdef NICENAMES
-"rl rd,imm1or2",16,6,
-0x3c,
+"rl rd,imm1or2",16,6,0x3c,
 #endif
 "rl",OPC_rl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,302},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,113},
 
 /* 1011 0010 dddd 00I0 *** rlb rbd,imm1or2 */
 {
 #ifdef NICENAMES
-"rlb rbd,imm1or2",8,6,
-0x3c,
+"rlb rbd,imm1or2",8,6,0x3c,
 #endif
 "rlb",OPC_rlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,303},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,114},
 
 /* 1011 0011 dddd 10I0 *** rlc rd,imm1or2 */
 {
 #ifdef NICENAMES
-"rlc rd,imm1or2",16,6,
-0x3c,
+"rlc rd,imm1or2",16,6,0x3c,
 #endif
 "rlc",OPC_rlc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,304},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,115},
 
 /* 1011 0010 dddd 10I0 *** rlcb rbd,imm1or2 */
 {
 #ifdef NICENAMES
-"rlcb rbd,imm1or2",8,9,
-0x10,
+"rlcb rbd,imm1or2",8,9,0x10,
 #endif
 "rlcb",OPC_rlcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,305},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,116},
 
 /* 1011 1110 aaaa bbbb *** rldb rbb,rba */
 {
 #ifdef NICENAMES
-"rldb rbb,rba",8,9,
-0x10,
+"rldb rbb,rba",8,9,0x10,
 #endif
 "rldb",OPC_rldb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xe,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,306},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xe,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,117},
 
 /* 1011 0011 dddd 01I0 *** rr rd,imm1or2 */
 {
 #ifdef NICENAMES
-"rr rd,imm1or2",16,6,
-0x3c,
+"rr rd,imm1or2",16,6,0x3c,
 #endif
 "rr",OPC_rr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,307},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,118},
 
 /* 1011 0010 dddd 01I0 *** rrb rbd,imm1or2 */
 {
 #ifdef NICENAMES
-"rrb rbd,imm1or2",8,6,
-0x3c,
+"rrb rbd,imm1or2",8,6,0x3c,
 #endif
 "rrb",OPC_rrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,308},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,119},
 
 /* 1011 0011 dddd 11I0 *** rrc rd,imm1or2 */
 {
 #ifdef NICENAMES
-"rrc rd,imm1or2",16,6,
-0x3c,
+"rrc rd,imm1or2",16,6,0x3c,
 #endif
 "rrc",OPC_rrc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,309},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,120},
 
 /* 1011 0010 dddd 11I0 *** rrcb rbd,imm1or2 */
 {
 #ifdef NICENAMES
-"rrcb rbd,imm1or2",8,9,
-0x10,
+"rrcb rbd,imm1or2",8,9,0x10,
 #endif
 "rrcb",OPC_rrcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,310},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,121},
 
 /* 1011 1100 aaaa bbbb *** rrdb rbb,rba */
 {
 #ifdef NICENAMES
-"rrdb rbb,rba",8,9,
-0x10,
+"rrdb rbb,rba",8,9,0x10,
 #endif
 "rrdb",OPC_rrdb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xc,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,311},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xc,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,122},
 
 /* 0011 0110 imm8 *** rsvd36 */
 {
 #ifdef NICENAMES
-"rsvd36",8,10,
-0x00,
+"rsvd36",8,10,0x00,
 #endif
 "rsvd36",OPC_rsvd36,0,{0},
-       {CLASS_BIT+3,CLASS_BIT+6,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,312},
-
+       {CLASS_BIT+3,CLASS_BIT+6,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,123},
 
 /* 0011 1000 imm8 *** rsvd38 */
 {
 #ifdef NICENAMES
-"rsvd38",8,10,
-0x00,
+"rsvd38",8,10,0x00,
 #endif
 "rsvd38",OPC_rsvd38,0,{0},
-       {CLASS_BIT+3,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,313},
-
+       {CLASS_BIT+3,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,124},
 
 /* 0111 1000 imm8 *** rsvd78 */
 {
 #ifdef NICENAMES
-"rsvd78",8,10,
-0x00,
+"rsvd78",8,10,0x00,
 #endif
 "rsvd78",OPC_rsvd78,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,314},
-
+       {CLASS_BIT+7,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,125},
 
 /* 0111 1110 imm8 *** rsvd7e */
 {
 #ifdef NICENAMES
-"rsvd7e",8,10,
-0x00,
+"rsvd7e",8,10,0x00,
 #endif
 "rsvd7e",OPC_rsvd7e,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,315},
-
+       {CLASS_BIT+7,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,126},
 
 /* 1001 1101 imm8 *** rsvd9d */
 {
 #ifdef NICENAMES
-"rsvd9d",8,10,
-0x00,
+"rsvd9d",8,10,0x00,
 #endif
 "rsvd9d",OPC_rsvd9d,0,{0},
-       {CLASS_BIT+9,CLASS_BIT+0xd,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,316},
-
+       {CLASS_BIT+9,CLASS_BIT+0xd,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,127},
 
 /* 1001 1111 imm8 *** rsvd9f */
 {
 #ifdef NICENAMES
-"rsvd9f",8,10,
-0x00,
+"rsvd9f",8,10,0x00,
 #endif
 "rsvd9f",OPC_rsvd9f,0,{0},
-       {CLASS_BIT+9,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,317},
-
+       {CLASS_BIT+9,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,128},
 
 /* 1011 1001 imm8 *** rsvdb9 */
 {
 #ifdef NICENAMES
-"rsvdb9",8,10,
-0x00,
+"rsvdb9",8,10,0x00,
 #endif
 "rsvdb9",OPC_rsvdb9,0,{0},
-       {CLASS_BIT+0xb,CLASS_BIT+9,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,318},
-
+       {CLASS_BIT+0xb,CLASS_BIT+9,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,129},
 
 /* 1011 1111 imm8 *** rsvdbf */
 {
 #ifdef NICENAMES
-"rsvdbf",8,10,
-0x00,
+"rsvdbf",8,10,0x00,
 #endif
 "rsvdbf",OPC_rsvdbf,0,{0},
-       {CLASS_BIT+0xb,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,319},
-
+       {CLASS_BIT+0xb,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,130},
 
 /* 1011 0111 ssss dddd *** sbc rd,rs */
 {
 #ifdef NICENAMES
-"sbc rd,rs",16,5,
-0x3c,
+"sbc rd,rs",16,5,0x3c,
 #endif
 "sbc",OPC_sbc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,320},
-
+       {CLASS_BIT+0xb,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,131},
 
 /* 1011 0110 ssss dddd *** sbcb rbd,rbs */
 {
 #ifdef NICENAMES
-"sbcb rbd,rbs",8,5,
-0x3f,
+"sbcb rbd,rbs",8,5,0x3f,
 #endif
 "sbcb",OPC_sbcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,321},
-
+       {CLASS_BIT+0xb,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,132},
 
 /* 0111 1111 imm8 *** sc imm8 */
 {
 #ifdef NICENAMES
-"sc imm8",8,33,
-0x3f,
+"sc imm8",8,33,0x3f,
 #endif
 "sc",OPC_sc,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+7,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,322},
-
+       {CLASS_BIT+7,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,133},
 
 /* 1011 0011 dddd 1011 0000 ssss 0000 0000 *** sda rd,rs */
 {
 #ifdef NICENAMES
-"sda rd,rs",16,15,
-0x3c,
+"sda rd,rs",16,15,0x3c,
 #endif
 "sda",OPC_sda,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,323},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,134},
 
 /* 1011 0010 dddd 1011 0000 ssss 0000 0000 *** sdab rbd,rs */
 {
 #ifdef NICENAMES
-"sdab rbd,rs",8,15,
-0x3c,
+"sdab rbd,rs",8,15,0x3c,
 #endif
 "sdab",OPC_sdab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,324},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,135},
 
 /* 1011 0011 dddd 1111 0000 ssss 0000 0000 *** sdal rrd,rs */
 {
 #ifdef NICENAMES
-"sdal rrd,rs",32,15,
-0x3c,
+"sdal rrd,rs",32,15,0x3c,
 #endif
 "sdal",OPC_sdal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,325},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,136},
 
 /* 1011 0011 dddd 0011 0000 ssss 0000 0000 *** sdl rd,rs */
 {
 #ifdef NICENAMES
-"sdl rd,rs",16,15,
-0x38,
+"sdl rd,rs",16,15,0x38,
 #endif
 "sdl",OPC_sdl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,326},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,137},
 
 /* 1011 0010 dddd 0011 0000 ssss 0000 0000 *** sdlb rbd,rs */
 {
 #ifdef NICENAMES
-"sdlb rbd,rs",8,15,
-0x38,
+"sdlb rbd,rs",8,15,0x38,
 #endif
 "sdlb",OPC_sdlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,327},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,138},
 
 /* 1011 0011 dddd 0111 0000 ssss 0000 0000 *** sdll rrd,rs */
 {
 #ifdef NICENAMES
-"sdll rrd,rs",32,15,
-0x38,
+"sdll rrd,rs",32,15,0x38,
 #endif
 "sdll",OPC_sdll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,328},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,139},
 
 /* 0010 0101 ddN0 imm4 *** set @rd,imm4 */
 {
 #ifdef NICENAMES
-"set @rd,imm4",16,11,
-0x00,
+"set @rd,imm4",16,11,0x00,
 #endif
 "set",OPC_set,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,329},
-
+       {CLASS_BIT+2,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,140},
 
 /* 0110 0101 ddN0 imm4 address_dst *** set address_dst(rd),imm4 */
 {
 #ifdef NICENAMES
-"set address_dst(rd),imm4",16,14,
-0x00,
+"set address_dst(rd),imm4",16,14,0x00,
 #endif
 "set",OPC_set,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,330},
-
+       {CLASS_BIT+6,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,140},
 
 /* 0110 0101 0000 imm4 address_dst *** set address_dst,imm4 */
 {
 #ifdef NICENAMES
-"set address_dst,imm4",16,13,
-0x00,
+"set address_dst,imm4",16,13,0x00,
 #endif
 "set",OPC_set,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+5,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,331},
-
+       {CLASS_BIT+6,CLASS_BIT+5,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,140},
 
 /* 1010 0101 dddd imm4 *** set rd,imm4 */
 {
 #ifdef NICENAMES
-"set rd,imm4",16,4,
-0x00,
+"set rd,imm4",16,4,0x00,
 #endif
 "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+5,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,332},
-
+       {CLASS_BIT+0xa,CLASS_BIT+5,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,140},
 
 /* 0010 0101 0000 ssss 0000 dddd 0000 0000 *** set rd,rs */
 {
 #ifdef NICENAMES
-"set rd,rs",16,10,
-0x00,
+"set rd,rs",16,10,0x00,
 #endif
 "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,333},
-
+       {CLASS_BIT+2,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,140},
 
 /* 0010 0100 ddN0 imm4 *** setb @rd,imm4 */
 {
 #ifdef NICENAMES
-"setb @rd,imm4",8,11,
-0x00,
+"setb @rd,imm4",8,11,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,334},
-
+       {CLASS_BIT+2,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,141},
 
 /* 0110 0100 ddN0 imm4 address_dst *** setb address_dst(rd),imm4 */
 {
 #ifdef NICENAMES
-"setb address_dst(rd),imm4",8,14,
-0x00,
+"setb address_dst(rd),imm4",8,14,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,335},
-
+       {CLASS_BIT+6,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,141},
 
 /* 0110 0100 0000 imm4 address_dst *** setb address_dst,imm4 */
 {
 #ifdef NICENAMES
-"setb address_dst,imm4",8,13,
-0x00,
+"setb address_dst,imm4",8,13,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+4,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,336},
-
+       {CLASS_BIT+6,CLASS_BIT+4,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,141},
 
 /* 1010 0100 dddd imm4 *** setb rbd,imm4 */
 {
 #ifdef NICENAMES
-"setb rbd,imm4",8,4,
-0x00,
+"setb rbd,imm4",8,4,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+4,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,337},
-
+       {CLASS_BIT+0xa,CLASS_BIT+4,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,141},
 
 /* 0010 0100 0000 ssss 0000 dddd 0000 0000 *** setb rbd,rs */
 {
 #ifdef NICENAMES
-"setb rbd,rs",8,10,
-0x00,
+"setb rbd,rs",8,10,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,338},
-
+       {CLASS_BIT+2,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,141},
 
 /* 1000 1101 flags 0001 *** setflg flags */
 {
 #ifdef NICENAMES
-"setflg flags",16,7,
-0x3c,
+"setflg flags",16,7,0x3c,
 #endif
 "setflg",OPC_setflg,0,{CLASS_FLAGS,},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+1,0,0,0,0,0,},1,2,339},
-
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+1,0,0,0,0,0,},1,2,142},
 
 /* 0011 1011 dddd 0101 imm16 *** sin rd,imm16 */
 {
 #ifdef NICENAMES
-"sin rd,imm16",8,0,
-0x00,
+"sin rd,imm16",8,0,0x00,
 #endif
 "sin",OPC_sin,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,340},
-
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,143},
 
 /* 0011 1010 dddd 0101 imm16 *** sinb rbd,imm16 */
 {
 #ifdef NICENAMES
-"sinb rbd,imm16",8,0,
-0x00,
+"sinb rbd,imm16",8,0,0x00,
 #endif
 "sinb",OPC_sinb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,341},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,144},
 
 /* 0011 1011 ssN0 1000 0001 aaaa ddN0 1000 *** sind @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"sind @rd,@rs,ra",16,0,
-0x00,
+"sind @rd,@rs,ra",16,0,0x00,
 #endif
 "sind",OPC_sind,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,342},
-
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,145},
 
 /* 0011 1010 ssN0 1000 0001 aaaa ddN0 1000 *** sindb @rd,@rs,rba */
 {
 #ifdef NICENAMES
-"sindb @rd,@rs,rba",8,0,
-0x00,
+"sindb @rd,@rs,rba",8,0,0x00,
 #endif
 "sindb",OPC_sindb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,343},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,146},
 
 /* 0011 1010 ssN0 0001 0000 aaaa ddN0 1000 *** sinib @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"sinib @rd,@rs,ra",8,0,
-0x00,
+"sinib @rd,@rs,ra",8,0,0x00,
 #endif
 "sinib",OPC_sinib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,344},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,147},
 
 /* 0011 1010 ssN0 0001 0000 aaaa ddN0 0000 *** sinibr @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"sinibr @rd,@rs,ra",16,0,
-0x00,
+"sinibr @rd,@rs,ra",16,0,0x00,
 #endif
 "sinibr",OPC_sinibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,345},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,148},
 
 /* 1011 0011 dddd 1001 0000 0000 imm8 *** sla rd,imm8 */
 {
 #ifdef NICENAMES
-"sla rd,imm8",16,13,
-0x3c,
+"sla rd,imm8",16,13,0x3c,
 #endif
 "sla",OPC_sla,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,346},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,149},
 
 /* 1011 0010 dddd 1001 iiii iiii 0000 imm4 *** slab rbd,imm4 */
 {
 #ifdef NICENAMES
-"slab rbd,imm4",8,13,
-0x3c,
+"slab rbd,imm4",8,13,0x3c,
 #endif
 "slab",OPC_slab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,347},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,150},
 
 /* 1011 0011 dddd 1101 0000 0000 imm8 *** slal rrd,imm8 */
 {
 #ifdef NICENAMES
-"slal rrd,imm8",32,13,
-0x3c,
+"slal rrd,imm8",32,13,0x3c,
 #endif
 "slal",OPC_slal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,348},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,151},
 
 /* 1011 0011 dddd 0001 0000 0000 imm8 *** sll rd,imm8 */
 {
 #ifdef NICENAMES
-"sll rd,imm8",16,13,
-0x38,
+"sll rd,imm8",16,13,0x38,
 #endif
 "sll",OPC_sll,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,349},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,152},
 
 /* 1011 0010 dddd 0001 iiii iiii 0000 imm4 *** sllb rbd,imm4 */
 {
 #ifdef NICENAMES
-"sllb rbd,imm4",8,13,
-0x38,
+"sllb rbd,imm4",8,13,0x38,
 #endif
 "sllb",OPC_sllb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,350},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,153},
 
 /* 1011 0011 dddd 0101 0000 0000 imm8 *** slll rrd,imm8 */
 {
 #ifdef NICENAMES
-"slll rrd,imm8",32,13,
-0x38,
+"slll rrd,imm8",32,13,0x38,
 #endif
 "slll",OPC_slll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,351},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,154},
 
 /* 0011 1011 ssss 0111 imm16 *** sout imm16,rs */
 {
 #ifdef NICENAMES
-"sout imm16,rs",16,0,
-0x00,
+"sout imm16,rs",16,0,0x00,
 #endif
 "sout",OPC_sout,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,352},
-
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,155},
 
 /* 0011 1010 ssss 0111 imm16 *** soutb imm16,rbs */
 {
 #ifdef NICENAMES
-"soutb imm16,rbs",8,0,
-0x00,
+"soutb imm16,rbs",8,0,0x00,
 #endif
 "soutb",OPC_soutb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,353},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,156},
 
 /* 0011 1011 ssN0 1011 0000 aaaa ddN0 1000 *** soutd @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"soutd @rd,@rs,ra",16,0,
-0x00,
+"soutd @rd,@rs,ra",16,0,0x00,
 #endif
 "soutd",OPC_soutd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,354},
-
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,157},
 
 /* 0011 1010 ssN0 1011 0000 aaaa ddN0 1000 *** soutdb @rd,@rs,rba */
 {
 #ifdef NICENAMES
-"soutdb @rd,@rs,rba",8,0,
-0x00,
+"soutdb @rd,@rs,rba",8,0,0x00,
 #endif
 "soutdb",OPC_soutdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,355},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,158},
 
 /* 0011 1010 ssN0 0011 0000 aaaa ddN0 1000 *** soutib @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"soutib @rd,@rs,ra",8,0,
-0x00,
+"soutib @rd,@rs,ra",8,0,0x00,
 #endif
 "soutib",OPC_soutib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,356},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,159},
 
 /* 0011 1010 ssN0 0011 0000 aaaa ddN0 0000 *** soutibr @rd,@rs,ra */
 {
 #ifdef NICENAMES
-"soutibr @rd,@rs,ra",16,0,
-0x00,
+"soutibr @rd,@rs,ra",16,0,0x00,
 #endif
 "soutibr",OPC_soutibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,357},
-
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,160},
 
 /* 1011 0011 dddd 1001 1111 1111 nim8 *** sra rd,imm8 */
 {
 #ifdef NICENAMES
-"sra rd,imm8",16,13,
-0x3c,
+"sra rd,imm8",16,13,0x3c,
 #endif
 "sra",OPC_sra,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,358},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,161},
 
 /* 1011 0010 dddd 1001 iiii iiii 1111 nim4 *** srab rbd,imm4 */
 {
 #ifdef NICENAMES
-"srab rbd,imm4",8,13,
-0x3c,
+"srab rbd,imm4",8,13,0x3c,
 #endif
 "srab",OPC_srab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,359},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,162},
 
 /* 1011 0011 dddd 1101 1111 1111 nim8 *** sral rrd,imm8 */
 {
 #ifdef NICENAMES
-"sral rrd,imm8",32,13,
-0x3c,
+"sral rrd,imm8",32,13,0x3c,
 #endif
 "sral",OPC_sral,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,360},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,163},
 
 /* 1011 0011 dddd 0001 1111 1111 nim8 *** srl rd,imm8 */
 {
 #ifdef NICENAMES
-"srl rd,imm8",16,13,
-0x3c,
+"srl rd,imm8",16,13,0x3c,
 #endif
 "srl",OPC_srl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,361},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,164},
 
 /* 1011 0010 dddd 0001 iiii iiii 1111 nim4 *** srlb rbd,imm4 */
 {
 #ifdef NICENAMES
-"srlb rbd,imm4",8,13,
-0x3c,
+"srlb rbd,imm4",8,13,0x3c,
 #endif
 "srlb",OPC_srlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,362},
-
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,165},
 
 /* 1011 0011 dddd 0101 1111 1111 nim8 *** srll rrd,imm8 */
 {
 #ifdef NICENAMES
-"srll rrd,imm8",32,13,
-0x3c,
+"srll rrd,imm8",32,13,0x3c,
 #endif
 "srll",OPC_srll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,363},
-
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,166},
 
 /* 0000 0011 ssN0 dddd *** sub rd,@rs */
 {
 #ifdef NICENAMES
-"sub rd,@rs",16,7,
-0x3c,
+"sub rd,@rs",16,7,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,364},
-
+       {CLASS_BIT+0,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,167},
 
 /* 0100 0011 0000 dddd address_src *** sub rd,address_src */
 {
 #ifdef NICENAMES
-"sub rd,address_src",16,9,
-0x3c,
+"sub rd,address_src",16,9,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,365},
-
+       {CLASS_BIT+4,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,167},
 
 /* 0100 0011 ssN0 dddd address_src *** sub rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"sub rd,address_src(rs)",16,10,
-0x3c,
+"sub rd,address_src(rs)",16,10,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,366},
-
+       {CLASS_BIT+4,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,167},
 
 /* 0000 0011 0000 dddd imm16 *** sub rd,imm16 */
 {
 #ifdef NICENAMES
-"sub rd,imm16",16,7,
-0x3c,
+"sub rd,imm16",16,7,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,367},
-
+       {CLASS_BIT+0,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,167},
 
 /* 1000 0011 ssss dddd *** sub rd,rs */
 {
 #ifdef NICENAMES
-"sub rd,rs",16,4,
-0x3c,
+"sub rd,rs",16,4,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+3,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,368},
-
+       {CLASS_BIT+8,CLASS_BIT+3,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,167},
 
 /* 0000 0010 ssN0 dddd *** subb rbd,@rs */
 {
 #ifdef NICENAMES
-"subb rbd,@rs",8,7,
-0x3f,
+"subb rbd,@rs",8,7,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,369},
-
+       {CLASS_BIT+0,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,168},
 
 /* 0100 0010 0000 dddd address_src *** subb rbd,address_src */
 {
 #ifdef NICENAMES
-"subb rbd,address_src",8,9,
-0x3f,
+"subb rbd,address_src",8,9,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,370},
-
+       {CLASS_BIT+4,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,168},
 
 /* 0100 0010 ssN0 dddd address_src *** subb rbd,address_src(rs) */
 {
 #ifdef NICENAMES
-"subb rbd,address_src(rs)",8,10,
-0x3f,
+"subb rbd,address_src(rs)",8,10,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,371},
-
+       {CLASS_BIT+4,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,168},
 
 /* 0000 0010 0000 dddd imm8 imm8 *** subb rbd,imm8 */
 {
 #ifdef NICENAMES
-"subb rbd,imm8",8,7,
-0x3f,
+"subb rbd,imm8",8,7,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,372},
-
+       {CLASS_BIT+0,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,168},
 
 /* 1000 0010 ssss dddd *** subb rbd,rbs */
 {
 #ifdef NICENAMES
-"subb rbd,rbs",8,4,
-0x3f,
+"subb rbd,rbs",8,4,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,373},
-
+       {CLASS_BIT+8,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,168},
 
 /* 0001 0010 ssN0 dddd *** subl rrd,@rs */
 {
 #ifdef NICENAMES
-"subl rrd,@rs",32,14,
-0x3c,
+"subl rrd,@rs",32,14,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,374},
-
+       {CLASS_BIT+1,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,169},
 
 /* 0101 0010 0000 dddd address_src *** subl rrd,address_src */
 {
 #ifdef NICENAMES
-"subl rrd,address_src",32,15,
-0x3c,
+"subl rrd,address_src",32,15,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,375},
-
+       {CLASS_BIT+5,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,169},
 
 /* 0101 0010 ssN0 dddd address_src *** subl rrd,address_src(rs) */
 {
 #ifdef NICENAMES
-"subl rrd,address_src(rs)",32,16,
-0x3c,
+"subl rrd,address_src(rs)",32,16,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,376},
-
+       {CLASS_BIT+5,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,169},
 
 /* 0001 0010 0000 dddd imm32 *** subl rrd,imm32 */
 {
 #ifdef NICENAMES
-"subl rrd,imm32",32,14,
-0x3c,
+"subl rrd,imm32",32,14,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,377},
-
+       {CLASS_BIT+1,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,169},
 
 /* 1001 0010 ssss dddd *** subl rrd,rrs */
 {
 #ifdef NICENAMES
-"subl rrd,rrs",32,8,
-0x3c,
+"subl rrd,rrs",32,8,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,378},
-
+       {CLASS_BIT+9,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,169},
 
 /* 1010 1111 dddd cccc *** tcc cc,rd */
 {
 #ifdef NICENAMES
-"tcc cc,rd",16,5,
-0x00,
+"tcc cc,rd",16,5,0x00,
 #endif
 "tcc",OPC_tcc,0,{CLASS_CC,CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,379},
-
+       {CLASS_BIT+0xa,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,170},
 
 /* 1010 1110 dddd cccc *** tccb cc,rbd */
 {
 #ifdef NICENAMES
-"tccb cc,rbd",8,5,
-0x00,
+"tccb cc,rbd",8,5,0x00,
 #endif
 "tccb",OPC_tccb,0,{CLASS_CC,CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,380},
-
+       {CLASS_BIT+0xa,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,171},
 
 /* 0000 1101 ddN0 0100 *** test @rd */
 {
 #ifdef NICENAMES
-"test @rd",16,8,
-0x18,
+"test @rd",16,8,0x18,
 #endif
 "test",OPC_test,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,381},
-
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,172},
 
 /* 0100 1101 0000 0100 address_dst *** test address_dst */
 {
 #ifdef NICENAMES
-"test address_dst",16,11,
-0x00,
+"test address_dst",16,11,0x00,
 #endif
 "test",OPC_test,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,382},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,172},
 
 /* 0100 1101 ddN0 0100 address_dst *** test address_dst(rd) */
 {
 #ifdef NICENAMES
-"test address_dst(rd)",16,12,
-0x00,
+"test address_dst(rd)",16,12,0x00,
 #endif
 "test",OPC_test,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,383},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,172},
 
 /* 1000 1101 dddd 0100 *** test rd */
 {
 #ifdef NICENAMES
-"test rd",16,7,
-0x00,
+"test rd",16,7,0x00,
 #endif
 "test",OPC_test,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,384},
-
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,172},
 
 /* 0000 1100 ddN0 0100 *** testb @rd */
 {
 #ifdef NICENAMES
-"testb @rd",8,8,
-0x1c,
+"testb @rd",8,8,0x1c,
 #endif
 "testb",OPC_testb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,385},
-
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,173},
 
 /* 0100 1100 0000 0100 address_dst *** testb address_dst */
 {
 #ifdef NICENAMES
-"testb address_dst",8,11,
-0x1c,
+"testb address_dst",8,11,0x1c,
 #endif
 "testb",OPC_testb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,386},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,173},
 
 /* 0100 1100 ddN0 0100 address_dst *** testb address_dst(rd) */
 {
 #ifdef NICENAMES
-"testb address_dst(rd)",8,12,
-0x1c,
+"testb address_dst(rd)",8,12,0x1c,
 #endif
 "testb",OPC_testb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,387},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,173},
 
 /* 1000 1100 dddd 0100 *** testb rbd */
 {
 #ifdef NICENAMES
-"testb rbd",8,7,
-0x1c,
+"testb rbd",8,7,0x1c,
 #endif
 "testb",OPC_testb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,388},
-
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,173},
 
 /* 0001 1100 ddN0 1000 *** testl @rd */
 {
 #ifdef NICENAMES
-"testl @rd",32,13,
-0x18,
+"testl @rd",32,13,0x18,
 #endif
 "testl",OPC_testl,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,389},
-
+       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,174},
 
 /* 0101 1100 0000 1000 address_dst *** testl address_dst */
 {
 #ifdef NICENAMES
-"testl address_dst",32,16,
-0x18,
+"testl address_dst",32,16,0x18,
 #endif
 "testl",OPC_testl,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,390},
-
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,174},
 
 /* 0101 1100 ddN0 1000 address_dst *** testl address_dst(rd) */
 {
 #ifdef NICENAMES
-"testl address_dst(rd)",32,17,
-0x18,
+"testl address_dst(rd)",32,17,0x18,
 #endif
 "testl",OPC_testl,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,391},
-
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,174},
 
 /* 1001 1100 dddd 1000 *** testl rrd */
 {
 #ifdef NICENAMES
-"testl rrd",32,13,
-0x18,
+"testl rrd",32,13,0x18,
 #endif
 "testl",OPC_testl,0,{CLASS_REG_LONG+(ARG_RD),},
-       {CLASS_BIT+9,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,392},
-
+       {CLASS_BIT+9,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,174},
 
 /* 1011 1000 ddN0 1000 0000 aaaa ssN0 0000 *** trdb @rd,@rs,rba */
 {
 #ifdef NICENAMES
-"trdb @rd,@rs,rba",8,25,
-0x1c,
+"trdb @rd,@rs,rba",8,25,0x1c,
 #endif
 "trdb",OPC_trdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,393},
-
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,175},
 
 /* 1011 1000 ddN0 1100 0000 aaaa ssN0 0000 *** trdrb @rd,@rs,rba */
 {
 #ifdef NICENAMES
-"trdrb @rd,@rs,rba",8,25,
-0x1c,
+"trdrb @rd,@rs,rba",8,25,0x1c,
 #endif
 "trdrb",OPC_trdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,394},
-
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,176},
 
 /* 1011 1000 ddN0 0000 0000 rrrr ssN0 0000 *** trib @rd,@rs,rbr */
 {
 #ifdef NICENAMES
-"trib @rd,@rs,rbr",8,25,
-0x1c,
+"trib @rd,@rs,rbr",8,25,0x1c,
 #endif
 "trib",OPC_trib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,395},
-
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,177},
 
 /* 1011 1000 ddN0 0100 0000 rrrr ssN0 0000 *** trirb @rd,@rs,rbr */
 {
 #ifdef NICENAMES
-"trirb @rd,@rs,rbr",8,25,
-0x1c,
+"trirb @rd,@rs,rbr",8,25,0x1c,
 #endif
 "trirb",OPC_trirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,396},
-
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,178},
 
 /* 1011 1000 aaN0 1010 0000 rrrr bbN0 0000 *** trtdb @ra,@rb,rbr */
 {
 #ifdef NICENAMES
-"trtdb @ra,@rb,rbr",8,25,
-0x1c,
+"trtdb @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtdb",OPC_trtdb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,397},
-
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,179},
 
 /* 1011 1000 aaN0 1110 0000 rrrr bbN0 1110 *** trtdrb @ra,@rb,rbr */
 {
 #ifdef NICENAMES
-"trtdrb @ra,@rb,rbr",8,25,
-0x1c,
+"trtdrb @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtdrb",OPC_trtdrb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,398},
-
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,180},
 
 /* 1011 1000 aaN0 0010 0000 rrrr bbN0 0000 *** trtib @ra,@rb,rbr */
 {
 #ifdef NICENAMES
-"trtib @ra,@rb,rbr",8,25,
-0x1c,
+"trtib @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtib",OPC_trtib,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,399},
-
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,181},
 
 /* 1011 1000 aaN0 0110 0000 rrrr bbN0 1110 *** trtirb @ra,@rb,rbr */
 {
 #ifdef NICENAMES
-"trtirb @ra,@rb,rbr",8,25,
-0x1c,
+"trtirb @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtirb",OPC_trtirb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,400},
-
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,182},
 
 /* 1011 1000 aaN0 1010 0000 rrrr bbN0 0000 *** trtrb @ra,@rb,rbr */
 {
 #ifdef NICENAMES
-"trtrb @ra,@rb,rbr",8,25,
-0x1c,
+"trtrb @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtrb",OPC_trtrb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,401},
-
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,183},
 
 /* 0000 1101 ddN0 0110 *** tset @rd */
 {
 #ifdef NICENAMES
-"tset @rd",16,11,
-0x08,
+"tset @rd",16,11,0x08,
 #endif
 "tset",OPC_tset,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,402},
-
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,184},
 
 /* 0100 1101 0000 0110 address_dst *** tset address_dst */
 {
 #ifdef NICENAMES
-"tset address_dst",16,14,
-0x08,
+"tset address_dst",16,14,0x08,
 #endif
 "tset",OPC_tset,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,403},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,184},
 
 /* 0100 1101 ddN0 0110 address_dst *** tset address_dst(rd) */
 {
 #ifdef NICENAMES
-"tset address_dst(rd)",16,15,
-0x08,
+"tset address_dst(rd)",16,15,0x08,
 #endif
 "tset",OPC_tset,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,404},
-
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,184},
 
 /* 1000 1101 dddd 0110 *** tset rd */
 {
 #ifdef NICENAMES
-"tset rd",16,7,
-0x08,
+"tset rd",16,7,0x08,
 #endif
 "tset",OPC_tset,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,405},
-
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,184},
 
 /* 0000 1100 ddN0 0110 *** tsetb @rd */
 {
 #ifdef NICENAMES
-"tsetb @rd",8,11,
-0x08,
+"tsetb @rd",8,11,0x08,
 #endif
 "tsetb",OPC_tsetb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,406},
-
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,185},
 
 /* 0100 1100 0000 0110 address_dst *** tsetb address_dst */
 {
 #ifdef NICENAMES
-"tsetb address_dst",8,14,
-0x08,
+"tsetb address_dst",8,14,0x08,
 #endif
 "tsetb",OPC_tsetb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,407},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,185},
 
 /* 0100 1100 ddN0 0110 address_dst *** tsetb address_dst(rd) */
 {
 #ifdef NICENAMES
-"tsetb address_dst(rd)",8,15,
-0x08,
+"tsetb address_dst(rd)",8,15,0x08,
 #endif
 "tsetb",OPC_tsetb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,408},
-
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,185},
 
 /* 1000 1100 dddd 0110 *** tsetb rbd */
 {
 #ifdef NICENAMES
-"tsetb rbd",8,7,
-0x08,
+"tsetb rbd",8,7,0x08,
 #endif
 "tsetb",OPC_tsetb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,409},
-
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,185},
 
 /* 0000 1001 ssN0 dddd *** xor rd,@rs */
 {
 #ifdef NICENAMES
-"xor rd,@rs",16,7,
-0x18,
+"xor rd,@rs",16,7,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,410},
-
+       {CLASS_BIT+0,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,186},
 
 /* 0100 1001 0000 dddd address_src *** xor rd,address_src */
 {
 #ifdef NICENAMES
-"xor rd,address_src",16,9,
-0x18,
+"xor rd,address_src",16,9,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,411},
-
+       {CLASS_BIT+4,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,186},
 
 /* 0100 1001 ssN0 dddd address_src *** xor rd,address_src(rs) */
 {
 #ifdef NICENAMES
-"xor rd,address_src(rs)",16,10,
-0x18,
+"xor rd,address_src(rs)",16,10,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,412},
-
+       {CLASS_BIT+4,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,186},
 
 /* 0000 1001 0000 dddd imm16 *** xor rd,imm16 */
 {
 #ifdef NICENAMES
-"xor rd,imm16",16,7,
-0x18,
+"xor rd,imm16",16,7,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,413},
-
+       {CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,186},
 
 /* 1000 1001 ssss dddd *** xor rd,rs */
 {
 #ifdef NICENAMES
-"xor rd,rs",16,4,
-0x18,
+"xor rd,rs",16,4,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,414},
-
+       {CLASS_BIT+8,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,186},
 
 /* 0000 1000 ssN0 dddd *** xorb rbd,@rs */
 {
 #ifdef NICENAMES
-"xorb rbd,@rs",8,7,
-0x1c,
+"xorb rbd,@rs",8,7,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,415},
-
+       {CLASS_BIT+0,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,187},
 
 /* 0100 1000 0000 dddd address_src *** xorb rbd,address_src */
 {
 #ifdef NICENAMES
-"xorb rbd,address_src",8,9,
-0x1c,
+"xorb rbd,address_src",8,9,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,416},
-
+       {CLASS_BIT+4,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,187},
 
 /* 0100 1000 ssN0 dddd address_src *** xorb rbd,address_src(rs) */
 {
 #ifdef NICENAMES
-"xorb rbd,address_src(rs)",8,10,
-0x1c,
+"xorb rbd,address_src(rs)",8,10,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,417},
-
+       {CLASS_BIT+4,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,187},
 
 /* 0000 1000 0000 dddd imm8 imm8 *** xorb rbd,imm8 */
 {
 #ifdef NICENAMES
-"xorb rbd,imm8",8,7,
-0x1c,
+"xorb rbd,imm8",8,7,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,418},
-
+       {CLASS_BIT+0,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,187},
 
 /* 1000 1000 ssss dddd *** xorb rbd,rbs */
 {
 #ifdef NICENAMES
-"xorb rbd,rbs",8,4,
-0x1c,
+"xorb rbd,rbs",8,4,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,419},
-
+       {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,187},
 
 /* 1000 1000 ssss dddd *** xorb rbd,rbs */
 {
 #ifdef NICENAMES
-"xorb rbd,rbs",8,4,
-0x01,
+"xorb rbd,rbs",8,4,0x01,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,420},
+       {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,187},
 
 /* end marker */
 {
index 5bd9240c0213455031cc01e4ac70d1e424cd81be..efce2cf5948524aa0371c043c932d6eb2a61ed8d 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <stdio.h>
 #include "sysdep.h"
+#include "libiberty.h"
 
 #define BYTE_INFO_LEN 10
 
@@ -37,498 +38,498 @@ struct op
 #define iswhite(x) ((x) == ' ' || (x) == '\t')
 struct op opt[] =
 {
-  "------", 10, 8, "0000 1110 imm8", "ext0e imm8", 0,
-  "------", 10, 8, "0000 1111 imm8", "ext0f imm8", 0,
-  "------", 10, 8, "1000 1110 imm8", "ext8e imm8", 0,
-  "------", 10, 8, "1000 1111 imm8", "ext8f imm8", 0,
-
-  "------", 10, 8, "0011 0110 imm8", "rsvd36", 0,
-  "------", 10, 8, "0011 1000 imm8", "rsvd38", 0,
-  "------", 10, 8, "0111 1000 imm8", "rsvd78", 0,
-  "------", 10, 8, "0111 1110 imm8", "rsvd7e", 0,
-
-  "------", 10, 8, "1001 1101 imm8", "rsvd9d", 0,
-  "------", 10, 8, "1001 1111 imm8", "rsvd9f", 0,
-
-  "------", 10, 8, "1011 1001 imm8", "rsvdb9", 0,
-  "------", 10, 8, "1011 1111 imm8", "rsvdbf", 0,
-
-  "---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 1000", "ldd @rd,@rs,rr", 0,
-  "---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 0000", "lddr @rd,@rs,rr", 0,
-  "---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 0000", "lddrb @rd,@rs,rr", 0,
-  "---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 0000", "ldir @rd,@rs,rr", 0,
-  "CZSV--", 11, 16, "1011 1011 ssN0 0000 0000 rrrr dddd cccc", "cpi rd,@rs,rr,cc", 0,
-  "CZSV--", 11, 16, "1011 1011 ssN0 0100 0000 rrrr dddd cccc", "cpir rd,@rs,rr,cc", 0,
-  "CZSV--", 11, 16, "1011 1011 ssN0 1100 0000 rrrr dddd cccc", "cpdr rd,@rs,rr,cc", 0,
-  "---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 1000", "ldi @rd,@rs,rr", 0,
-  "CZSV--", 11, 16, "1011 1011 ssN0 1000 0000 rrrr dddd cccc", "cpd rd,@rs,rr,cc", 0,
-  "---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 0000", "ldirb @rd,@rs,rr", 0,
-  "---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 1000", "lddb @rd,@rs,rr", 0,
-  "---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 1000", "ldib @rd,@rs,rr", 0,
-  "CZSV--", 11, 8, "1011 1010 ssN0 1000 0000 rrrr dddd cccc", "cpdb rbd,@rs,rr,cc", 0,
-  "CZSV--", 11, 8, "1011 1010 ssN0 1100 0000 rrrr dddd cccc", "cpdrb rbd,@rs,rr,cc", 0,
-  "CZSV--", 11, 8, "1011 1010 ssN0 0000 0000 rrrr dddd cccc", "cpib rbd,@rs,rr,cc", 0,
-  "CZSV--", 11, 8, "1011 1010 ssN0 0100 0000 rrrr dddd cccc", "cpirb rbd,@rs,rr,cc", 0,
-  "CZSV--", 11, 16, "1011 1011 ssN0 1010 0000 rrrr ddN0 cccc", "cpsd @rd,@rs,rr,cc", 0,
-  "CZSV--", 11, 8, "1011 1010 ssN0 1010 0000 rrrr ddN0 cccc", "cpsdb @rd,@rs,rr,cc", 0,
-  "CZSV--", 11, 16, "1011 1011 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdr @rd,@rs,rr,cc", 0,
-  "CZSV--", 11, 8, "1011 1010 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdrb @rd,@rs,rr,cc", 0,
-  "CZSV--", 11, 16, "1011 1011 ssN0 0010 0000 rrrr ddN0 cccc", "cpsi @rd,@rs,rr,cc", 0,
-  "CZSV--", 11, 8, "1011 1010 ssN0 0010 0000 rrrr ddN0 cccc", "cpsib @rd,@rs,rr,cc", 0,
-  "CZSV--", 11, 16, "1011 1011 ssN0 0110 0000 rrrr ddN0 cccc", "cpsir @rd,@rs,rr,cc", 0,
-  "CZSV--", 11, 8, "1011 1010 ssN0 0110 0000 rrrr ddN0 cccc", "cpsirb @rd,@rs,rr,cc", 0,
-
-  "------", 2, 8, "0011 0110 0000 0000", "bpt", 0,
-  "CZSV--", 5, 16, "1011 0101 ssss dddd", "adc rd,rs", 0,
-  "CZSVDH", 5, 8, "1011 0100 ssss dddd", "adcb rbd,rbs", 0,
-  "CZSV--", 7, 16, "0000 0001 ssN0 dddd", "add rd,@rs", 0,
-  "CZSV--", 9, 16, "0100 0001 0000 dddd address_src", "add rd,address_src", 0,
-  "CZSV--", 10, 16, "0100 0001 ssN0 dddd address_src", "add rd,address_src(rs)", 0,
-  "CZSV--", 7, 16, "0000 0001 0000 dddd imm16", "add rd,imm16", 0,
-  "CZSV--", 4, 16, "1000 0001 ssss dddd", "add rd,rs", 0,
-  "CZSVDH", 7, 8, "0000 0000 ssN0 dddd", "addb rbd,@rs", 0,
-  "CZSVDH", 9, 8, "0100 0000 0000 dddd address_src", "addb rbd,address_src", 0,
-  "CZSVDH", 10, 8, "0100 0000 ssN0 dddd address_src", "addb rbd,address_src(rs)", 0,
-  "CZSVDH", 7, 8, "0000 0000 0000 dddd imm8 imm8", "addb rbd,imm8", 0,
-  "CZSVDH", 4, 8, "1000 0000 ssss dddd", "addb rbd,rbs", 0,
-  "CZSV--", 14, 32, "0001 0110 ssN0 dddd", "addl rrd,@rs", 0,
-  "CZSV--", 15, 32, "0101 0110 0000 dddd address_src", "addl rrd,address_src", 0,
-  "CZSV--", 16, 32, "0101 0110 ssN0 dddd address_src", "addl rrd,address_src(rs)", 0,
-  "CZSV--", 14, 32, "0001 0110 0000 dddd imm32", "addl rrd,imm32", 0,
-  "CZSV--", 8, 32, "1001 0110 ssss dddd", "addl rrd,rrs", 0,
-
-  "-ZS---", 7, 16, "0000 0111 ssN0 dddd", "and rd,@rs", 0,
-  "-ZS---", 9, 16, "0100 0111 0000 dddd address_src", "and rd,address_src", 0,
-  "-ZS---", 10, 16, "0100 0111 ssN0 dddd address_src", "and rd,address_src(rs)", 0,
-  "-ZS---", 7, 16, "0000 0111 0000 dddd imm16", "and rd,imm16", 0,
-  "-ZS---", 4, 16, "1000 0111 ssss dddd", "and rd,rs", 0,
-  "-ZSP--", 7, 8, "0000 0110 ssN0 dddd", "andb rbd,@rs", 0,
-  "-ZSP--", 9, 8, "0100 0110 0000 dddd address_src", "andb rbd,address_src", 0,
-  "-ZSP--", 10, 8, "0100 0110 ssN0 dddd address_src", "andb rbd,address_src(rs)", 0,
-  "-ZSP--", 7, 8, "0000 0110 0000 dddd imm8 imm8", "andb rbd,imm8", 0,
-  "-ZSP--", 4, 8, "1000 0110 ssss dddd", "andb rbd,rbs", 0,
-
-  "-Z----", 8, 16, "0010 0111 ddN0 imm4", "bit @rd,imm4", 0,
-  "-Z----", 11, 16, "0110 0111 ddN0 imm4 address_dst", "bit address_dst(rd),imm4", 0,
-  "-Z----", 10, 16, "0110 0111 0000 imm4 address_dst", "bit address_dst,imm4", 0,
-  "-Z----", 4, 16, "1010 0111 dddd imm4", "bit rd,imm4", 0,
-  "-Z----", 10, 16, "0010 0111 0000 ssss 0000 dddd 0000 0000", "bit rd,rs", 0,
-
-  "-Z----", 8, 8, "0010 0110 ddN0 imm4", "bitb @rd,imm4", 0,
-  "-Z----", 11, 8, "0110 0110 ddN0 imm4 address_dst", "bitb address_dst(rd),imm4", 0,
-  "-Z----", 10, 8, "0110 0110 0000 imm4 address_dst", "bitb address_dst,imm4", 0,
-  "-Z----", 4, 8, "1010 0110 dddd imm4", "bitb rbd,imm4", 0,
-  "-Z----", 10, 8, "0010 0110 0000 ssss 0000 dddd 0000 0000", "bitb rbd,rs", 0,
-
-  "------", 10, 32, "0001 1111 ddN0 0000", "call @rd", 0,
-  "------", 12, 32, "0101 1111 0000 0000 address_dst", "call address_dst", 0,
-  "------", 13, 32, "0101 1111 ddN0 0000 address_dst", "call address_dst(rd)", 0,
-  "------", 10, 16, "1101 disp12", "calr disp12", 0,
-
-  "------", 8, 16, "0000 1101 ddN0 1000", "clr @rd", 0,
-  "------", 11, 16, "0100 1101 0000 1000 address_dst", "clr address_dst", 0,
-  "------", 12, 16, "0100 1101 ddN0 1000 address_dst", "clr address_dst(rd)", 0,
-  "------", 7, 16, "1000 1101 dddd 1000", "clr rd", 0,
-  "------", 8, 8, "0000 1100 ddN0 1000", "clrb @rd", 0,
-  "------", 11, 8, "0100 1100 0000 1000 address_dst", "clrb address_dst", 0,
-  "------", 12, 8, "0100 1100 ddN0 1000 address_dst", "clrb address_dst(rd)", 0,
-  "------", 7, 8, "1000 1100 dddd 1000", "clrb rbd", 0,
-  "-ZS---", 12, 16, "0000 1101 ddN0 0000", "com @rd", 0,
-  "-ZS---", 15, 16, "0100 1101 0000 0000 address_dst", "com address_dst", 0,
-  "-ZS---", 16, 16, "0100 1101 ddN0 0000 address_dst", "com address_dst(rd)", 0,
-  "-ZS---", 7, 16, "1000 1101 dddd 0000", "com rd", 0,
-  "-ZSP--", 12, 8, "0000 1100 ddN0 0000", "comb @rd", 0,
-  "-ZSP--", 15, 8, "0100 1100 0000 0000 address_dst", "comb address_dst", 0,
-  "-ZSP--", 16, 8, "0100 1100 ddN0 0000 address_dst", "comb address_dst(rd)", 0,
-  "-ZSP--", 7, 8, "1000 1100 dddd 0000", "comb rbd", 0,
-  "CZSP--", 7, 16, "1000 1101 flags 0101", "comflg flags", 0,
-
-  "CZSV--", 11, 16, "0000 1101 ddN0 0001 imm16", "cp @rd,imm16", 0,
-  "CZSV--", 15, 16, "0100 1101 ddN0 0001 address_dst imm16", "cp address_dst(rd),imm16", 0,
-  "CZSV--", 14, 16, "0100 1101 0000 0001 address_dst imm16", "cp address_dst,imm16", 0,
-
-  "CZSV--", 7, 16, "0000 1011 ssN0 dddd", "cp rd,@rs", 0,
-  "CZSV--", 9, 16, "0100 1011 0000 dddd address_src", "cp rd,address_src", 0,
-  "CZSV--", 10, 16, "0100 1011 ssN0 dddd address_src", "cp rd,address_src(rs)", 0,
-  "CZSV--", 7, 16, "0000 1011 0000 dddd imm16", "cp rd,imm16", 0,
-  "CZSV--", 4, 16, "1000 1011 ssss dddd", "cp rd,rs", 0,
-
-  "CZSV--", 11, 8, "0000 1100 ddN0 0001 imm8 imm8", "cpb @rd,imm8", 0,
-  "CZSV--", 15, 8, "0100 1100 ddN0 0001 address_dst imm8 imm8", "cpb address_dst(rd),imm8", 0,
-  "CZSV--", 14, 8, "0100 1100 0000 0001 address_dst imm8 imm8", "cpb address_dst,imm8", 0,
-  "CZSV--", 7, 8, "0000 1010 ssN0 dddd", "cpb rbd,@rs", 0,
-  "CZSV--", 9, 8, "0100 1010 0000 dddd address_src", "cpb rbd,address_src", 0,
-  "CZSV--", 10, 8, "0100 1010 ssN0 dddd address_src", "cpb rbd,address_src(rs)", 0,
-  "CZSV--", 7, 8, "0000 1010 0000 dddd imm8 imm8", "cpb rbd,imm8", 0,
-  "CZSV--", 4, 8, "1000 1010 ssss dddd", "cpb rbd,rbs", 0,
-
-  "CZSV--", 14, 32, "0001 0000 ssN0 dddd", "cpl rrd,@rs", 0,
-  "CZSV--", 15, 32, "0101 0000 0000 dddd address_src", "cpl rrd,address_src", 0,
-  "CZSV--", 16, 32, "0101 0000 ssN0 dddd address_src", "cpl rrd,address_src(rs)", 0,
-  "CZSV--", 14, 32, "0001 0000 0000 dddd imm32", "cpl rrd,imm32", 0,
-  "CZSV--", 8, 32, "1001 0000 ssss dddd", "cpl rrd,rrs", 0,
-
-  "CZS---", 5, 8, "1011 0000 dddd 0000", "dab rbd", 0,
-  "------", 11, 16, "1111 dddd 0disp7", "dbjnz rbd,disp7", 0,
-  "-ZSV--", 11, 16, "0010 1011 ddN0 imm4m1", "dec @rd,imm4m1", 0,
-  "-ZSV--", 14, 16, "0110 1011 ddN0 imm4m1 address_dst", "dec address_dst(rd),imm4m1", 0,
-  "-ZSV--", 13, 16, "0110 1011 0000 imm4m1 address_dst", "dec address_dst,imm4m1", 0,
-  "-ZSV--", 4, 16, "1010 1011 dddd imm4m1", "dec rd,imm4m1", 0,
-  "-ZSV--", 11, 8, "0010 1010 ddN0 imm4m1", "decb @rd,imm4m1", 0,
-  "-ZSV--", 14, 8, "0110 1010 ddN0 imm4m1 address_dst", "decb address_dst(rd),imm4m1", 0,
-  "-ZSV--", 13, 8, "0110 1010 0000 imm4m1 address_dst", "decb address_dst,imm4m1", 0,
-  "-ZSV--", 4, 8, "1010 1010 dddd imm4m1", "decb rbd,imm4m1", 0,
-
-  "------", 7, 16, "0111 1100 0000 00ii", "di i2", 0,
-  "CZSV--", 107, 16, "0001 1011 ssN0 dddd", "div rrd,@rs", 0,
-  "CZSV--", 107, 16, "0101 1011 0000 dddd address_src", "div rrd,address_src", 0,
-  "CZSV--", 107, 16, "0101 1011 ssN0 dddd address_src", "div rrd,address_src(rs)", 0,
-  "CZSV--", 107, 16, "0001 1011 0000 dddd imm16", "div rrd,imm16", 0,
-  "CZSV--", 107, 16, "1001 1011 ssss dddd", "div rrd,rs", 0,
-  "CZSV--", 744, 32, "0001 1010 ssN0 dddd", "divl rqd,@rs", 0,
-  "CZSV--", 745, 32, "0101 1010 0000 dddd address_src", "divl rqd,address_src", 0,
-  "CZSV--", 746, 32, "0101 1010 ssN0 dddd address_src", "divl rqd,address_src(rs)", 0,
-  "CZSV--", 744, 32, "0001 1010 0000 dddd imm32", "divl rqd,imm32", 0,
-  "CZSV--", 744, 32, "1001 1010 ssss dddd", "divl rqd,rrs", 0,
-
-  "------", 11, 16, "1111 dddd 1disp7", "djnz rd,disp7", 0,
-  "------", 7, 16, "0111 1100 0000 01ii", "ei i2", 0,
-  "------", 6, 16, "1010 1101 ssss dddd", "ex rd,rs", 0,
-  "------", 12, 16, "0010 1101 ssN0 dddd", "ex rd,@rs", 0,
-  "------", 15, 16, "0110 1101 0000 dddd address_src", "ex rd,address_src", 0,
-  "------", 16, 16, "0110 1101 ssN0 dddd address_src", "ex rd,address_src(rs)", 0,
-
-  "------", 12, 8, "0010 1100 ssN0 dddd", "exb rbd,@rs", 0,
-  "------", 15, 8, "0110 1100 0000 dddd address_src", "exb rbd,address_src", 0,
-  "------", 16, 8, "0110 1100 ssN0 dddd address_src", "exb rbd,address_src(rs)", 0,
-  "------", 6, 8, "1010 1100 ssss dddd", "exb rbd,rbs", 0,
-
-  "------", 11, 16, "1011 0001 dddd 1010", "exts rrd", 0,
-  "------", 11, 8, "1011 0001 dddd 0000", "extsb rd", 0,
-  "------", 11, 32, "1011 0001 dddd 0111", "extsl rqd", 0,
-
-  "------", 8, 16, "0111 1010 0000 0000", "halt", 0,
-  "------", 10, 16, "0011 1101 ssN0 dddd", "in rd,@rs", 0,
-  "------", 12, 8, "0011 1100 ssN0 dddd", "inb rbd,@rs", 0,
-  "------", 12, 16, "0011 1011 dddd 0100 imm16", "in rd,imm16", 0,
-  "------", 10, 8, "0011 1010 dddd 0100 imm16", "inb rbd,imm16", 0,
-  "-ZSV--", 11, 16, "0010 1001 ddN0 imm4m1", "inc @rd,imm4m1", 0,
-  "-ZSV--", 14, 16, "0110 1001 ddN0 imm4m1 address_dst", "inc address_dst(rd),imm4m1", 0,
-  "-ZSV--", 13, 16, "0110 1001 0000 imm4m1 address_dst", "inc address_dst,imm4m1", 0,
-  "-ZSV--", 4, 16, "1010 1001 dddd imm4m1", "inc rd,imm4m1", 0,
-  "-ZSV--", 11, 8, "0010 1000 ddN0 imm4m1", "incb @rd,imm4m1", 0,
-  "-ZSV--", 14, 8, "0110 1000 ddN0 imm4m1 address_dst", "incb address_dst(rd),imm4m1", 0,
-  "-ZSV--", 13, 8, "0110 1000 0000 imm4m1 address_dst", "incb address_dst,imm4m1", 0,
-  "-ZSV--", 4, 8, "1010 1000 dddd imm4m1", "incb rbd,imm4m1", 0,
-  "---V--", 21, 16, "0011 1011 ssN0 1000 0000 aaaa ddN0 1000", "ind @rd,@rs,ra", 0,
-  "---V--", 21, 8, "0011 1010 ssN0 1000 0000 aaaa ddN0 1000", "indb @rd,@rs,rba", 0,
-  "---V--", 21, 8, "0011 1010 ssN0 0000 0000 aaaa ddN0 1000", "inib @rd,@rs,ra", 0,
-  "---V--", 21, 16, "0011 1010 ssN0 0000 0000 aaaa ddN0 0000", "inibr @rd,@rs,ra", 0,
-  "CZSVDH", 13, 16, "0111 1011 0000 0000", "iret", 0,
-  "------", 10, 16, "0001 1110 ddN0 cccc", "jp cc,@rd", 0,
-  "------", 7, 16, "0101 1110 0000 cccc address_dst", "jp cc,address_dst", 0,
-  "------", 8, 16, "0101 1110 ddN0 cccc address_dst", "jp cc,address_dst(rd)", 0,
-  "------", 6, 16, "1110 cccc disp8", "jr cc,disp8", 0,
-
-  "------", 7, 16, "0000 1101 ddN0 0101 imm16", "ld @rd,imm16", 0,
-  "------", 8, 16, "0010 1111 ddN0 ssss", "ld @rd,rs", 0,
-  "------", 15, 16, "0100 1101 ddN0 0101 address_dst imm16", "ld address_dst(rd),imm16", 0,
-  "------", 12, 16, "0110 1111 ddN0 ssss address_dst", "ld address_dst(rd),rs", 0,
-  "------", 14, 16, "0100 1101 0000 0101 address_dst imm16", "ld address_dst,imm16", 0,
-  "------", 11, 16, "0110 1111 0000 ssss address_dst", "ld address_dst,rs", 0,
-  "------", 14, 16, "0011 0011 ddN0 ssss imm16", "ld rd(imm16),rs", 0,
-  "------", 14, 16, "0111 0011 ddN0 ssss 0000 xxxx 0000 0000", "ld rd(rx),rs", 0,
-  "------", 7, 16, "0010 0001 ssN0 dddd", "ld rd,@rs", 0,
-  "------", 9, 16, "0110 0001 0000 dddd address_src", "ld rd,address_src", 0,
-  "------", 10, 16, "0110 0001 ssN0 dddd address_src", "ld rd,address_src(rs)", 0,
-  "------", 7, 16, "0010 0001 0000 dddd imm16", "ld rd,imm16", 0,
-  "------", 3, 16, "1010 0001 ssss dddd", "ld rd,rs", 0,
-  "------", 14, 16, "0011 0001 ssN0 dddd imm16", "ld rd,rs(imm16)", 0,
-  "------", 14, 16, "0111 0001 ssN0 dddd 0000 xxxx 0000 0000", "ld rd,rs(rx)", 0,
-
-  "------", 7, 8, "0000 1100 ddN0 0101 imm8 imm8", "ldb @rd,imm8", 0,
-  "------", 8, 8, "0010 1110 ddN0 ssss", "ldb @rd,rbs", 0,
-  "------", 15, 8, "0100 1100 ddN0 0101 address_dst imm8 imm8", "ldb address_dst(rd),imm8", 0,
-  "------", 12, 8, "0110 1110 ddN0 ssss address_dst", "ldb address_dst(rd),rbs", 0,
-  "------", 14, 8, "0100 1100 0000 0101 address_dst imm8 imm8", "ldb address_dst,imm8", 0,
-  "------", 11, 8, "0110 1110 0000 ssss address_dst", "ldb address_dst,rbs", 0,
-  "------", 14, 8, "0011 0010 ddN0 ssss imm16", "ldb rd(imm16),rbs", 0,
-  "------", 14, 8, "0111 0010 ddN0 ssss 0000 xxxx 0000 0000", "ldb rd(rx),rbs", 0,
-  "------", 7, 8, "0010 0000 ssN0 dddd", "ldb rbd,@rs", 0,
-  "------", 9, 8, "0110 0000 0000 dddd address_src", "ldb rbd,address_src", 0,
-  "------", 10, 8, "0110 0000 ssN0 dddd address_src", "ldb rbd,address_src(rs)", 0,
-  "------", 5, 8, "1100 dddd imm8", "ldb rbd,imm8", 0,
-  "------", 3, 8, "1010 0000 ssss dddd", "ldb rbd,rbs", 0,
-  "------", 14, 8, "0011 0000 ssN0 dddd imm16", "ldb rbd,rs(imm16)", 0,
-  "------", 14, 8, "0111 0000 ssN0 dddd 0000 xxxx 0000 0000", "ldb rbd,rs(rx)", 0,
-
-  "------", 11, 32, "0001 1101 ddN0 ssss", "ldl @rd,rrs", 0,
-  "------", 14, 32, "0101 1101 ddN0 ssss address_dst", "ldl address_dst(rd),rrs", 0,
-  "------", 15, 32, "0101 1101 0000 ssss address_dst", "ldl address_dst,rrs", 0,
-  "------", 17, 32, "0011 0111 ddN0 ssss imm16", "ldl rd(imm16),rrs", 0,
-  "------", 17, 32, "0111 0111 ddN0 ssss 0000 xxxx 0000 0000", "ldl rd(rx),rrs", 0,
-  "------", 11, 32, "0001 0100 ssN0 dddd", "ldl rrd,@rs", 0,
-  "------", 12, 32, "0101 0100 0000 dddd address_src", "ldl rrd,address_src", 0,
-  "------", 13, 32, "0101 0100 ssN0 dddd address_src", "ldl rrd,address_src(rs)", 0,
-  "------", 11, 32, "0001 0100 0000 dddd imm32", "ldl rrd,imm32", 0,
-  "------", 5, 32, "1001 0100 ssss dddd", "ldl rrd,rrs", 0,
-  "------", 17, 32, "0011 0101 ssN0 dddd imm16", "ldl rrd,rs(imm16)", 0,
-  "------", 17, 32, "0111 0101 ssN0 dddd 0000 xxxx 0000 0000", "ldl rrd,rs(rx)", 0,
-
-  "------", 12, 16, "0111 0110 0000 dddd address_src", "lda prd,address_src", 0,
-  "------", 13, 16, "0111 0110 ssN0 dddd address_src", "lda prd,address_src(rs)", 0,
-  "------", 15, 16, "0011 0100 ssN0 dddd imm16", "lda prd,rs(imm16)", 0,
-  "------", 15, 16, "0111 0100 ssN0 dddd 0000 xxxx 0000 0000", "lda prd,rs(rx)", 0,
-  "------", 15, 16, "0011 0100 0000 dddd disp16", "ldar prd,disp16", 0,
-  "------", 7, 32, "0111 1101 ssss 1ccc", "ldctl ctrl,rs", 0,
-  "------", 7, 32, "0111 1101 dddd 0ccc", "ldctl rd,ctrl", 0,
-
-  "------", 5, 16, "1011 1101 dddd imm4", "ldk rd,imm4", 0,
-
-  "------", 11, 16, "0001 1100 ddN0 1001 0000 ssss 0000 imm4m1", "ldm @rd,rs,n", 0,
-  "------", 15, 16, "0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst(rd),rs,n", 0,
-  "------", 14, 16, "0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst,rs,n", 0,
-  "------", 11, 16, "0001 1100 ssN0 0001 0000 dddd 0000 imm4m1", "ldm rd,@rs,n", 0,
-  "------", 15, 16, "0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src(rs),n", 0,
-  "------", 14, 16, "0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src,n", 0,
-
-  "CZSVDH", 12, 16, "0011 1001 ssN0 0000", "ldps @rs", 0,
-  "CZSVDH", 16, 16, "0111 1001 0000 0000 address_src", "ldps address_src", 0,
-  "CZSVDH", 17, 16, "0111 1001 ssN0 0000 address_src", "ldps address_src(rs)", 0,
-
-  "------", 14, 16, "0011 0011 0000 ssss disp16", "ldr disp16,rs", 0,
-  "------", 14, 16, "0011 0001 0000 dddd disp16", "ldr rd,disp16", 0,
-  "------", 14, 8, "0011 0010 0000 ssss disp16", "ldrb disp16,rbs", 0,
-  "------", 14, 8, "0011 0000 0000 dddd disp16", "ldrb rbd,disp16", 0,
-  "------", 17, 32, "0011 0111 0000 ssss disp16", "ldrl disp16,rrs", 0,
-  "------", 17, 32, "0011 0101 0000 dddd disp16", "ldrl rrd,disp16", 0,
-
-  "CZS---", 7, 16, "0111 1011 0000 1010", "mbit", 0,
-  "-ZS---", 12, 16, "0111 1011 dddd 1101", "mreq rd", 0,
-  "------", 5, 16, "0111 1011 0000 1001", "mres", 0,
-  "------", 5, 16, "0111 1011 0000 1000", "mset", 0,
-
-  "CZSV--", 70, 16, "0001 1001 ssN0 dddd", "mult rrd,@rs", 0,
-  "CZSV--", 70, 16, "0101 1001 0000 dddd address_src", "mult rrd,address_src", 0,
-  "CZSV--", 70, 16, "0101 1001 ssN0 dddd address_src", "mult rrd,address_src(rs)", 0,
-  "CZSV--", 70, 16, "0001 1001 0000 dddd imm16", "mult rrd,imm16", 0,
-  "CZSV--", 70, 16, "1001 1001 ssss dddd", "mult rrd,rs", 0,
-  "CZSV--", 282, 32, "0001 1000 ssN0 dddd", "multl rqd,@rs", 0,
-  "CZSV--", 282, 32, "0101 1000 0000 dddd address_src", "multl rqd,address_src", 0,
-  "CZSV--", 282, 32, "0101 1000 ssN0 dddd address_src", "multl rqd,address_src(rs)", 0,
-  "CZSV--", 282, 32, "0001 1000 0000 dddd imm32", "multl rqd,imm32", 0,
-  "CZSV--", 282, 32, "1001 1000 ssss dddd", "multl rqd,rrs", 0,
-  "CZSV--", 12, 16, "0000 1101 ddN0 0010", "neg @rd", 0,
-  "CZSV--", 15, 16, "0100 1101 0000 0010 address_dst", "neg address_dst", 0,
-  "CZSV--", 16, 16, "0100 1101 ddN0 0010 address_dst", "neg address_dst(rd)", 0,
-  "CZSV--", 7, 16, "1000 1101 dddd 0010", "neg rd", 0,
-  "CZSV--", 12, 8, "0000 1100 ddN0 0010", "negb @rd", 0,
-  "CZSV--", 15, 8, "0100 1100 0000 0010 address_dst", "negb address_dst", 0,
-  "CZSV--", 16, 8, "0100 1100 ddN0 0010 address_dst", "negb address_dst(rd)", 0,
-  "CZSV--", 7, 8, "1000 1100 dddd 0010", "negb rbd", 0,
-
-  "------", 7, 16, "1000 1101 0000 0111", "nop", 0,
-
-  "CZS---", 7, 16, "0000 0101 ssN0 dddd", "or rd,@rs", 0,
-  "CZS---", 9, 16, "0100 0101 0000 dddd address_src", "or rd,address_src", 0,
-  "CZS---", 10, 16, "0100 0101 ssN0 dddd address_src", "or rd,address_src(rs)", 0,
-  "CZS---", 7, 16, "0000 0101 0000 dddd imm16", "or rd,imm16", 0,
-  "CZS---", 4, 16, "1000 0101 ssss dddd", "or rd,rs", 0,
-
-  "CZSP--", 7, 8, "0000 0100 ssN0 dddd", "orb rbd,@rs", 0,
-  "CZSP--", 9, 8, "0100 0100 0000 dddd address_src", "orb rbd,address_src", 0,
-  "CZSP--", 10, 8, "0100 0100 ssN0 dddd address_src", "orb rbd,address_src(rs)", 0,
-  "CZSP--", 7, 8, "0000 0100 0000 dddd imm8 imm8", "orb rbd,imm8", 0,
-  "CZSP--", 4, 8, "1000 0100 ssss dddd", "orb rbd,rbs", 0,
-
-  "---V--", 0, 16, "0011 1111 ddN0 ssss", "out @rd,rs", 0,
-  "---V--", 0, 16, "0011 1011 ssss 0110 imm16", "out imm16,rs", 0,
-  "---V--", 0, 8, "0011 1110 ddN0 ssss", "outb @rd,rbs", 0,
-  "---V--", 0, 8, "0011 1010 ssss 0110 imm16", "outb imm16,rbs", 0,
-  "---V--", 0, 16, "0011 1011 ssN0 1010 0000 aaaa ddN0 1000", "outd @rd,@rs,ra", 0,
-  "---V--", 0, 16, "0011 1010 ssN0 1010 0000 aaaa ddN0 1000", "outdb @rd,@rs,rba", 0,
-  "---V--", 0, 16, "0011 1011 ssN0 0010 0000 aaaa ddN0 1000", "outi @rd,@rs,ra", 0,
-  "---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 1000", "outib @rd,@rs,ra", 0,
-  "---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 0000", "outibr @rd,@rs,ra", 0,
-
-  "------", 12, 16, "0001 0111 ssN0 ddN0", "pop @rd,@rs", 0,
-  "------", 16, 16, "0101 0111 ssN0 ddN0 address_dst", "pop address_dst(rd),@rs", 0,
-  "------", 16, 16, "0101 0111 ssN0 0000 address_dst", "pop address_dst,@rs", 0,
-  "------", 8, 16, "1001 0111 ssN0 dddd", "pop rd,@rs", 0,
-
-  "------", 19, 32, "0001 0101 ssN0 ddN0", "popl @rd,@rs", 0,
-  "------", 23, 32, "0101 0101 ssN0 ddN0 address_dst", "popl address_dst(rd),@rs", 0,
-  "------", 23, 32, "0101 0101 ssN0 0000 address_dst", "popl address_dst,@rs", 0,
-  "------", 12, 32, "1001 0101 ssN0 dddd", "popl rrd,@rs", 0,
-
-  "------", 13, 16, "0001 0011 ddN0 ssN0", "push @rd,@rs", 0,
-  "------", 14, 16, "0101 0011 ddN0 0000 address_src", "push @rd,address_src", 0,
-  "------", 14, 16, "0101 0011 ddN0 ssN0 address_src", "push @rd,address_src(rs)", 0,
-  "------", 12, 16, "0000 1101 ddN0 1001 imm16", "push @rd,imm16", 0,
-  "------", 9, 16, "1001 0011 ddN0 ssss", "push @rd,rs", 0,
-
-  "------", 20, 32, "0001 0001 ddN0 ssN0", "pushl @rd,@rs", 0,
-  "------", 21, 32, "0101 0001 ddN0 ssN0 address_src", "pushl @rd,address_src(rs)", 0,
-  "------", 21, 32, "0101 0001 ddN0 0000 address_src", "pushl @rd,address_src", 0,
-  "------", 12, 32, "1001 0001 ddN0 ssss", "pushl @rd,rrs", 0,
-
-  "------", 11, 16, "0010 0011 ddN0 imm4", "res @rd,imm4", 0,
-  "------", 14, 16, "0110 0011 ddN0 imm4 address_dst", "res address_dst(rd),imm4", 0,
-  "------", 13, 16, "0110 0011 0000 imm4 address_dst", "res address_dst,imm4", 0,
-  "------", 4, 16, "1010 0011 dddd imm4", "res rd,imm4", 0,
-  "------", 10, 16, "0010 0011 0000 ssss 0000 dddd 0000 0000", "res rd,rs", 0,
-
-  "------", 11, 8, "0010 0010 ddN0 imm4", "resb @rd,imm4", 0,
-  "------", 14, 8, "0110 0010 ddN0 imm4 address_dst", "resb address_dst(rd),imm4", 0,
-  "------", 13, 8, "0110 0010 0000 imm4 address_dst", "resb address_dst,imm4", 0,
-  "------", 4, 8, "1010 0010 dddd imm4", "resb rbd,imm4", 0,
-  "------", 10, 8, "0010 0010 0000 ssss 0000 dddd 0000 0000", "resb rbd,rs", 0,
-
-  "CZSV--", 7, 16, "1000 1101 flags 0011", "resflg flags", 0,
-  "------", 10, 16, "1001 1110 0000 cccc", "ret cc", 0,
-
-  "CZSV--", 6, 16, "1011 0011 dddd 00I0", "rl rd,imm1or2", 0,
-  "CZSV--", 6, 8, "1011 0010 dddd 00I0", "rlb rbd,imm1or2", 0,
-  "CZSV--", 6, 16, "1011 0011 dddd 10I0", "rlc rd,imm1or2", 0,
-
-  "-Z----", 9, 8, "1011 0010 dddd 10I0", "rlcb rbd,imm1or2", 0,
-  "-Z----", 9, 8, "1011 1110 aaaa bbbb", "rldb rbb,rba", 0,
-
-  "CZSV--", 6, 16, "1011 0011 dddd 01I0", "rr rd,imm1or2", 0,
-  "CZSV--", 6, 8, "1011 0010 dddd 01I0", "rrb rbd,imm1or2", 0,
-  "CZSV--", 6, 16, "1011 0011 dddd 11I0", "rrc rd,imm1or2", 0,
-
-  "-Z----", 9, 8, "1011 0010 dddd 11I0", "rrcb rbd,imm1or2", 0,
-  "-Z----", 9, 8, "1011 1100 aaaa bbbb", "rrdb rbb,rba", 0,
-  "CZSV--", 5, 16, "1011 0111 ssss dddd", "sbc rd,rs", 0,
-  "CZSVDH", 5, 8, "1011 0110 ssss dddd", "sbcb rbd,rbs", 0,
-
-  "CZSVDH", 33, 8, "0111 1111 imm8", "sc imm8", 0,
-
-  "CZSV--", 15, 16, "1011 0011 dddd 1011 0000 ssss 0000 0000", "sda rd,rs", 0,
-  "CZSV--", 15, 8, "1011 0010 dddd 1011 0000 ssss 0000 0000", "sdab rbd,rs", 0,
-  "CZSV--", 15, 32, "1011 0011 dddd 1111 0000 ssss 0000 0000", "sdal rrd,rs", 0,
-
-  "CZS---", 15, 16, "1011 0011 dddd 0011 0000 ssss 0000 0000", "sdl rd,rs", 0,
-  "CZS---", 15, 8, "1011 0010 dddd 0011 0000 ssss 0000 0000", "sdlb rbd,rs", 0,
-  "CZS---", 15, 32, "1011 0011 dddd 0111 0000 ssss 0000 0000", "sdll rrd,rs", 0,
-
-  "------", 11, 16, "0010 0101 ddN0 imm4", "set @rd,imm4", 0,
-  "------", 14, 16, "0110 0101 ddN0 imm4 address_dst", "set address_dst(rd),imm4", 0,
-  "------", 13, 16, "0110 0101 0000 imm4 address_dst", "set address_dst,imm4", 0,
-  "------", 4, 16, "1010 0101 dddd imm4", "set rd,imm4", 0,
-  "------", 10, 16, "0010 0101 0000 ssss 0000 dddd 0000 0000", "set rd,rs", 0,
-  "------", 11, 8, "0010 0100 ddN0 imm4", "setb @rd,imm4", 0,
-  "------", 14, 8, "0110 0100 ddN0 imm4 address_dst", "setb address_dst(rd),imm4", 0,
-  "------", 13, 8, "0110 0100 0000 imm4 address_dst", "setb address_dst,imm4", 0,
-  "------", 4, 8, "1010 0100 dddd imm4", "setb rbd,imm4", 0,
-  "------", 10, 8, "0010 0100 0000 ssss 0000 dddd 0000 0000", "setb rbd,rs", 0,
-
-  "CZSV--", 7, 16, "1000 1101 flags 0001", "setflg flags", 0,
-
-  "------", 0, 8, "0011 1010 dddd 0101 imm16", "sinb rbd,imm16", 0,
-  "------", 0, 8, "0011 1011 dddd 0101 imm16", "sin rd,imm16", 0,
-  "------", 0, 16, "0011 1011 ssN0 1000 0001 aaaa ddN0 1000", "sind @rd,@rs,ra", 0,
-  "------", 0, 8, "0011 1010 ssN0 1000 0001 aaaa ddN0 1000", "sindb @rd,@rs,rba", 0,
-  "------", 0, 8, "0011 1010 ssN0 0001 0000 aaaa ddN0 1000", "sinib @rd,@rs,ra", 0,
-  "------", 0, 16, "0011 1010 ssN0 0001 0000 aaaa ddN0 0000", "sinibr @rd,@rs,ra", 0,
-
-  "CZSV--", 13, 16, "1011 0011 dddd 1001 0000 0000 imm8", "sla rd,imm8", 0,
-  "CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 0000 imm4", "slab rbd,imm4", 0,
-  "CZSV--", 13, 32, "1011 0011 dddd 1101 0000 0000 imm8", "slal rrd,imm8", 0,
-
-  "CZS---", 13, 16, "1011 0011 dddd 0001 0000 0000 imm8", "sll rd,imm8", 0,
-  "CZS---", 13, 8, "1011 0010 dddd 0001 iiii iiii 0000 imm4", "sllb rbd,imm4", 0,
-  "CZS---", 13, 32, "1011 0011 dddd 0101 0000 0000 imm8", "slll rrd,imm8", 0,
-
-  "------", 0, 16, "0011 1011 ssss 0111 imm16", "sout imm16,rs", 0,
-  "------", 0, 8, "0011 1010 ssss 0111 imm16", "soutb imm16,rbs", 0,
-  "------", 0, 16, "0011 1011 ssN0 1011 0000 aaaa ddN0 1000", "soutd @rd,@rs,ra", 0,
-  "------", 0, 8, "0011 1010 ssN0 1011 0000 aaaa ddN0 1000", "soutdb @rd,@rs,rba", 0,
-  "------", 0, 8, "0011 1010 ssN0 0011 0000 aaaa ddN0 1000", "soutib @rd,@rs,ra", 0,
-  "------", 0, 16, "0011 1010 ssN0 0011 0000 aaaa ddN0 0000", "soutibr @rd,@rs,ra", 0,
-
-  "CZSV--", 13, 16, "1011 0011 dddd 1001 1111 1111 nim8", "sra rd,imm8", 0,
-  "CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 1111 nim4", "srab rbd,imm4", 0,
-  "CZSV--", 13, 32, "1011 0011 dddd 1101 1111 1111 nim8", "sral rrd,imm8", 0,
-
-  "CZSV--", 13, 16, "1011 0011 dddd 0001 1111 1111 nim8", "srl rd,imm8", 0,
-  "CZSV--", 13, 8, "1011 0010 dddd 0001 iiii iiii 1111 nim4", "srlb rbd,imm4", 0,
-  "CZSV--", 13, 32, "1011 0011 dddd 0101 1111 1111 nim8", "srll rrd,imm8", 0,
-
-  "CZSV--", 7, 16, "0000 0011 ssN0 dddd", "sub rd,@rs", 0,
-  "CZSV--", 9, 16, "0100 0011 0000 dddd address_src", "sub rd,address_src", 0,
-  "CZSV--", 10, 16, "0100 0011 ssN0 dddd address_src", "sub rd,address_src(rs)", 0,
-  "CZSV--", 7, 16, "0000 0011 0000 dddd imm16", "sub rd,imm16", 0,
-  "CZSV--", 4, 16, "1000 0011 ssss dddd", "sub rd,rs", 0,
-
-  "CZSVDH", 7, 8, "0000 0010 ssN0 dddd", "subb rbd,@rs", 0,
-  "CZSVDH", 9, 8, "0100 0010 0000 dddd address_src", "subb rbd,address_src", 0,
-  "CZSVDH", 10, 8, "0100 0010 ssN0 dddd address_src", "subb rbd,address_src(rs)", 0,
-  "CZSVDH", 7, 8, "0000 0010 0000 dddd imm8 imm8", "subb rbd,imm8", 0,
-  "CZSVDH", 4, 8, "1000 0010 ssss dddd", "subb rbd,rbs", 0,
-
-  "CZSV--", 14, 32, "0001 0010 ssN0 dddd", "subl rrd,@rs", 0,
-  "CZSV--", 15, 32, "0101 0010 0000 dddd address_src", "subl rrd,address_src", 0,
-  "CZSV--", 16, 32, "0101 0010 ssN0 dddd address_src", "subl rrd,address_src(rs)", 0,
-  "CZSV--", 14, 32, "0001 0010 0000 dddd imm32", "subl rrd,imm32", 0,
-  "CZSV--", 8, 32, "1001 0010 ssss dddd", "subl rrd,rrs", 0,
-
-  "------", 5, 16, "1010 1111 dddd cccc", "tcc cc,rd", 0,
-  "------", 5, 8, "1010 1110 dddd cccc", "tccb cc,rbd", 0,
-
-  "-ZS---", 8, 16, "0000 1101 ddN0 0100", "test @rd", 0,
-  "------", 11, 16, "0100 1101 0000 0100 address_dst", "test address_dst", 0,
-  "------", 12, 16, "0100 1101 ddN0 0100 address_dst", "test address_dst(rd)", 0,
-  "------", 7, 16, "1000 1101 dddd 0100", "test rd", 0,
-
-  "-ZSP--", 8, 8, "0000 1100 ddN0 0100", "testb @rd", 0,
-  "-ZSP--", 11, 8, "0100 1100 0000 0100 address_dst", "testb address_dst", 0,
-  "-ZSP--", 12, 8, "0100 1100 ddN0 0100 address_dst", "testb address_dst(rd)", 0,
-  "-ZSP--", 7, 8, "1000 1100 dddd 0100", "testb rbd", 0,
-
-  "-ZS---", 13, 32, "0001 1100 ddN0 1000", "testl @rd", 0,
-  "-ZS---", 16, 32, "0101 1100 0000 1000 address_dst", "testl address_dst", 0,
-  "-ZS---", 17, 32, "0101 1100 ddN0 1000 address_dst", "testl address_dst(rd)", 0,
-  "-ZS---", 13, 32, "1001 1100 dddd 1000", "testl rrd", 0,
-
-  "-ZSV--", 25, 8, "1011 1000 ddN0 1000 0000 aaaa ssN0 0000", "trdb @rd,@rs,rba", 0,
-  "-ZSV--", 25, 8, "1011 1000 ddN0 1100 0000 aaaa ssN0 0000", "trdrb @rd,@rs,rba", 0,
-  "-ZSV--", 25, 8, "1011 1000 ddN0 0000 0000 rrrr ssN0 0000", "trib @rd,@rs,rbr", 0,
-  "-ZSV--", 25, 8, "1011 1000 ddN0 0100 0000 rrrr ssN0 0000", "trirb @rd,@rs,rbr", 0,
-  "-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtdb @ra,@rb,rbr", 0,
-  "-ZSV--", 25, 8, "1011 1000 aaN0 1110 0000 rrrr bbN0 1110", "trtdrb @ra,@rb,rbr", 0,
-  "-ZSV--", 25, 8, "1011 1000 aaN0 0010 0000 rrrr bbN0 0000", "trtib @ra,@rb,rbr", 0,
-  "-ZSV--", 25, 8, "1011 1000 aaN0 0110 0000 rrrr bbN0 1110", "trtirb @ra,@rb,rbr", 0,
-  "-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtrb @ra,@rb,rbr", 0,
-
-  "--S---", 11, 16, "0000 1101 ddN0 0110", "tset @rd", 0,
-  "--S---", 14, 16, "0100 1101 0000 0110 address_dst", "tset address_dst", 0,
-  "--S---", 15, 16, "0100 1101 ddN0 0110 address_dst", "tset address_dst(rd)", 0,
-  "--S---", 7, 16, "1000 1101 dddd 0110", "tset rd", 0,
-
-  "--S---", 11, 8, "0000 1100 ddN0 0110", "tsetb @rd", 0,
-  "--S---", 14, 8, "0100 1100 0000 0110 address_dst", "tsetb address_dst", 0,
-  "--S---", 15, 8, "0100 1100 ddN0 0110 address_dst", "tsetb address_dst(rd)", 0,
-  "--S---", 7, 8, "1000 1100 dddd 0110", "tsetb rbd", 0,
-
-  "-ZS---", 7, 16, "0000 1001 ssN0 dddd", "xor rd,@rs", 0,
-  "-ZS---", 9, 16, "0100 1001 0000 dddd address_src", "xor rd,address_src", 0,
-  "-ZS---", 10, 16, "0100 1001 ssN0 dddd address_src", "xor rd,address_src(rs)", 0,
-  "-ZS---", 7, 16, "0000 1001 0000 dddd imm16", "xor rd,imm16", 0,
-  "-ZS---", 4, 16, "1000 1001 ssss dddd", "xor rd,rs", 0,
-
-  "-ZSP--", 7, 8, "0000 1000 ssN0 dddd", "xorb rbd,@rs", 0,
-  "-ZSP--", 9, 8, "0100 1000 0000 dddd address_src", "xorb rbd,address_src", 0,
-  "-ZSP--", 10, 8, "0100 1000 ssN0 dddd address_src", "xorb rbd,address_src(rs)", 0,
-  "-ZSP--", 7, 8, "0000 1000 0000 dddd imm8 imm8", "xorb rbd,imm8", 0,
-  "-ZSP--", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0,
-
-  "------", 7, 32, "1000 1100 dddd 0001", "ldctlb rbd,ctrl", 0,
-  "CZSVDH", 7, 32, "1000 1100 ssss 1001", "ldctlb ctrl,rbs", 0,
-
-  "*", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0,
-  "*", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+  {"------", 10, 8, "0000 1110 imm8", "ext0e imm8", 0},
+  {"------", 10, 8, "0000 1111 imm8", "ext0f imm8", 0},
+  {"------", 10, 8, "1000 1110 imm8", "ext8e imm8", 0},
+  {"------", 10, 8, "1000 1111 imm8", "ext8f imm8", 0},
+
+  {"------", 10, 8, "0011 0110 imm8", "rsvd36", 0},
+  {"------", 10, 8, "0011 1000 imm8", "rsvd38", 0},
+  {"------", 10, 8, "0111 1000 imm8", "rsvd78", 0},
+  {"------", 10, 8, "0111 1110 imm8", "rsvd7e", 0},
+
+  {"------", 10, 8, "1001 1101 imm8", "rsvd9d", 0},
+  {"------", 10, 8, "1001 1111 imm8", "rsvd9f", 0},
+
+  {"------", 10, 8, "1011 1001 imm8", "rsvdb9", 0},
+  {"------", 10, 8, "1011 1111 imm8", "rsvdbf", 0},
+
+  {"---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 1000", "ldd @rd,@rs,rr", 0},
+  {"---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 0000", "lddr @rd,@rs,rr", 0},
+  {"---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 0000", "lddrb @rd,@rs,rr", 0},
+  {"---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 0000", "ldir @rd,@rs,rr", 0},
+  {"CZSV--", 11, 16, "1011 1011 ssN0 0000 0000 rrrr dddd cccc", "cpi rd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 16, "1011 1011 ssN0 0100 0000 rrrr dddd cccc", "cpir rd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 16, "1011 1011 ssN0 1100 0000 rrrr dddd cccc", "cpdr rd,@rs,rr,cc", 0},
+  {"---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 1000", "ldi @rd,@rs,rr", 0},
+  {"CZSV--", 11, 16, "1011 1011 ssN0 1000 0000 rrrr dddd cccc", "cpd rd,@rs,rr,cc", 0},
+  {"---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 0000", "ldirb @rd,@rs,rr", 0},
+  {"---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 1000", "lddb @rd,@rs,rr", 0},
+  {"---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 1000", "ldib @rd,@rs,rr", 0},
+  {"CZSV--", 11, 8, "1011 1010 ssN0 1000 0000 rrrr dddd cccc", "cpdb rbd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 8, "1011 1010 ssN0 1100 0000 rrrr dddd cccc", "cpdrb rbd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 8, "1011 1010 ssN0 0000 0000 rrrr dddd cccc", "cpib rbd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 8, "1011 1010 ssN0 0100 0000 rrrr dddd cccc", "cpirb rbd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 16, "1011 1011 ssN0 1010 0000 rrrr ddN0 cccc", "cpsd @rd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 8, "1011 1010 ssN0 1010 0000 rrrr ddN0 cccc", "cpsdb @rd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 16, "1011 1011 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdr @rd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 8, "1011 1010 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdrb @rd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 16, "1011 1011 ssN0 0010 0000 rrrr ddN0 cccc", "cpsi @rd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 8, "1011 1010 ssN0 0010 0000 rrrr ddN0 cccc", "cpsib @rd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 16, "1011 1011 ssN0 0110 0000 rrrr ddN0 cccc", "cpsir @rd,@rs,rr,cc", 0},
+  {"CZSV--", 11, 8, "1011 1010 ssN0 0110 0000 rrrr ddN0 cccc", "cpsirb @rd,@rs,rr,cc", 0},
+
+  {"------", 2, 8, "0011 0110 0000 0000", "bpt", 0},
+  {"CZSV--", 5, 16, "1011 0101 ssss dddd", "adc rd,rs", 0},
+  {"CZSVDH", 5, 8, "1011 0100 ssss dddd", "adcb rbd,rbs", 0},
+  {"CZSV--", 7, 16, "0000 0001 ssN0 dddd", "add rd,@rs", 0},
+  {"CZSV--", 9, 16, "0100 0001 0000 dddd address_src", "add rd,address_src", 0},
+  {"CZSV--", 10, 16, "0100 0001 ssN0 dddd address_src", "add rd,address_src(rs)", 0},
+  {"CZSV--", 7, 16, "0000 0001 0000 dddd imm16", "add rd,imm16", 0},
+  {"CZSV--", 4, 16, "1000 0001 ssss dddd", "add rd,rs", 0},
+  {"CZSVDH", 7, 8, "0000 0000 ssN0 dddd", "addb rbd,@rs", 0},
+  {"CZSVDH", 9, 8, "0100 0000 0000 dddd address_src", "addb rbd,address_src", 0},
+  {"CZSVDH", 10, 8, "0100 0000 ssN0 dddd address_src", "addb rbd,address_src(rs)", 0},
+  {"CZSVDH", 7, 8, "0000 0000 0000 dddd imm8 imm8", "addb rbd,imm8", 0},
+  {"CZSVDH", 4, 8, "1000 0000 ssss dddd", "addb rbd,rbs", 0},
+  {"CZSV--", 14, 32, "0001 0110 ssN0 dddd", "addl rrd,@rs", 0},
+  {"CZSV--", 15, 32, "0101 0110 0000 dddd address_src", "addl rrd,address_src", 0},
+  {"CZSV--", 16, 32, "0101 0110 ssN0 dddd address_src", "addl rrd,address_src(rs)", 0},
+  {"CZSV--", 14, 32, "0001 0110 0000 dddd imm32", "addl rrd,imm32", 0},
+  {"CZSV--", 8, 32, "1001 0110 ssss dddd", "addl rrd,rrs", 0},
+
+  {"-ZS---", 7, 16, "0000 0111 ssN0 dddd", "and rd,@rs", 0},
+  {"-ZS---", 9, 16, "0100 0111 0000 dddd address_src", "and rd,address_src", 0},
+  {"-ZS---", 10, 16, "0100 0111 ssN0 dddd address_src", "and rd,address_src(rs)", 0},
+  {"-ZS---", 7, 16, "0000 0111 0000 dddd imm16", "and rd,imm16", 0},
+  {"-ZS---", 4, 16, "1000 0111 ssss dddd", "and rd,rs", 0},
+  {"-ZSP--", 7, 8, "0000 0110 ssN0 dddd", "andb rbd,@rs", 0},
+  {"-ZSP--", 9, 8, "0100 0110 0000 dddd address_src", "andb rbd,address_src", 0},
+  {"-ZSP--", 10, 8, "0100 0110 ssN0 dddd address_src", "andb rbd,address_src(rs)", 0},
+  {"-ZSP--", 7, 8, "0000 0110 0000 dddd imm8 imm8", "andb rbd,imm8", 0},
+  {"-ZSP--", 4, 8, "1000 0110 ssss dddd", "andb rbd,rbs", 0},
+
+  {"-Z----", 8, 16, "0010 0111 ddN0 imm4", "bit @rd,imm4", 0},
+  {"-Z----", 11, 16, "0110 0111 ddN0 imm4 address_dst", "bit address_dst(rd),imm4", 0},
+  {"-Z----", 10, 16, "0110 0111 0000 imm4 address_dst", "bit address_dst,imm4", 0},
+  {"-Z----", 4, 16, "1010 0111 dddd imm4", "bit rd,imm4", 0},
+  {"-Z----", 10, 16, "0010 0111 0000 ssss 0000 dddd 0000 0000", "bit rd,rs", 0},
+
+  {"-Z----", 8, 8, "0010 0110 ddN0 imm4", "bitb @rd,imm4", 0},
+  {"-Z----", 11, 8, "0110 0110 ddN0 imm4 address_dst", "bitb address_dst(rd),imm4", 0},
+  {"-Z----", 10, 8, "0110 0110 0000 imm4 address_dst", "bitb address_dst,imm4", 0},
+  {"-Z----", 4, 8, "1010 0110 dddd imm4", "bitb rbd,imm4", 0},
+  {"-Z----", 10, 8, "0010 0110 0000 ssss 0000 dddd 0000 0000", "bitb rbd,rs", 0},
+
+  {"------", 10, 32, "0001 1111 ddN0 0000", "call @rd", 0},
+  {"------", 12, 32, "0101 1111 0000 0000 address_dst", "call address_dst", 0},
+  {"------", 13, 32, "0101 1111 ddN0 0000 address_dst", "call address_dst(rd)", 0},
+  {"------", 10, 16, "1101 disp12", "calr disp12", 0},
+
+  {"------", 8, 16, "0000 1101 ddN0 1000", "clr @rd", 0},
+  {"------", 11, 16, "0100 1101 0000 1000 address_dst", "clr address_dst", 0},
+  {"------", 12, 16, "0100 1101 ddN0 1000 address_dst", "clr address_dst(rd)", 0},
+  {"------", 7, 16, "1000 1101 dddd 1000", "clr rd", 0},
+  {"------", 8, 8, "0000 1100 ddN0 1000", "clrb @rd", 0},
+  {"------", 11, 8, "0100 1100 0000 1000 address_dst", "clrb address_dst", 0},
+  {"------", 12, 8, "0100 1100 ddN0 1000 address_dst", "clrb address_dst(rd)", 0},
+  {"------", 7, 8, "1000 1100 dddd 1000", "clrb rbd", 0},
+  {"-ZS---", 12, 16, "0000 1101 ddN0 0000", "com @rd", 0},
+  {"-ZS---", 15, 16, "0100 1101 0000 0000 address_dst", "com address_dst", 0},
+  {"-ZS---", 16, 16, "0100 1101 ddN0 0000 address_dst", "com address_dst(rd)", 0},
+  {"-ZS---", 7, 16, "1000 1101 dddd 0000", "com rd", 0},
+  {"-ZSP--", 12, 8, "0000 1100 ddN0 0000", "comb @rd", 0},
+  {"-ZSP--", 15, 8, "0100 1100 0000 0000 address_dst", "comb address_dst", 0},
+  {"-ZSP--", 16, 8, "0100 1100 ddN0 0000 address_dst", "comb address_dst(rd)", 0},
+  {"-ZSP--", 7, 8, "1000 1100 dddd 0000", "comb rbd", 0},
+  {"CZSP--", 7, 16, "1000 1101 flags 0101", "comflg flags", 0},
+
+  {"CZSV--", 11, 16, "0000 1101 ddN0 0001 imm16", "cp @rd,imm16", 0},
+  {"CZSV--", 15, 16, "0100 1101 ddN0 0001 address_dst imm16", "cp address_dst(rd),imm16", 0},
+  {"CZSV--", 14, 16, "0100 1101 0000 0001 address_dst imm16", "cp address_dst,imm16", 0},
+
+  {"CZSV--", 7, 16, "0000 1011 ssN0 dddd", "cp rd,@rs", 0},
+  {"CZSV--", 9, 16, "0100 1011 0000 dddd address_src", "cp rd,address_src", 0},
+  {"CZSV--", 10, 16, "0100 1011 ssN0 dddd address_src", "cp rd,address_src(rs)", 0},
+  {"CZSV--", 7, 16, "0000 1011 0000 dddd imm16", "cp rd,imm16", 0},
+  {"CZSV--", 4, 16, "1000 1011 ssss dddd", "cp rd,rs", 0},
+
+  {"CZSV--", 11, 8, "0000 1100 ddN0 0001 imm8 imm8", "cpb @rd,imm8", 0},
+  {"CZSV--", 15, 8, "0100 1100 ddN0 0001 address_dst imm8 imm8", "cpb address_dst(rd),imm8", 0},
+  {"CZSV--", 14, 8, "0100 1100 0000 0001 address_dst imm8 imm8", "cpb address_dst,imm8", 0},
+  {"CZSV--", 7, 8, "0000 1010 ssN0 dddd", "cpb rbd,@rs", 0},
+  {"CZSV--", 9, 8, "0100 1010 0000 dddd address_src", "cpb rbd,address_src", 0},
+  {"CZSV--", 10, 8, "0100 1010 ssN0 dddd address_src", "cpb rbd,address_src(rs)", 0},
+  {"CZSV--", 7, 8, "0000 1010 0000 dddd imm8 imm8", "cpb rbd,imm8", 0},
+  {"CZSV--", 4, 8, "1000 1010 ssss dddd", "cpb rbd,rbs", 0},
+
+  {"CZSV--", 14, 32, "0001 0000 ssN0 dddd", "cpl rrd,@rs", 0},
+  {"CZSV--", 15, 32, "0101 0000 0000 dddd address_src", "cpl rrd,address_src", 0},
+  {"CZSV--", 16, 32, "0101 0000 ssN0 dddd address_src", "cpl rrd,address_src(rs)", 0},
+  {"CZSV--", 14, 32, "0001 0000 0000 dddd imm32", "cpl rrd,imm32", 0},
+  {"CZSV--", 8, 32, "1001 0000 ssss dddd", "cpl rrd,rrs", 0},
+
+  {"CZS---", 5, 8, "1011 0000 dddd 0000", "dab rbd", 0},
+  {"------", 11, 16, "1111 dddd 0disp7", "dbjnz rbd,disp7", 0},
+  {"-ZSV--", 11, 16, "0010 1011 ddN0 imm4m1", "dec @rd,imm4m1", 0},
+  {"-ZSV--", 14, 16, "0110 1011 ddN0 imm4m1 address_dst", "dec address_dst(rd),imm4m1", 0},
+  {"-ZSV--", 13, 16, "0110 1011 0000 imm4m1 address_dst", "dec address_dst,imm4m1", 0},
+  {"-ZSV--", 4, 16, "1010 1011 dddd imm4m1", "dec rd,imm4m1", 0},
+  {"-ZSV--", 11, 8, "0010 1010 ddN0 imm4m1", "decb @rd,imm4m1", 0},
+  {"-ZSV--", 14, 8, "0110 1010 ddN0 imm4m1 address_dst", "decb address_dst(rd),imm4m1", 0},
+  {"-ZSV--", 13, 8, "0110 1010 0000 imm4m1 address_dst", "decb address_dst,imm4m1", 0},
+  {"-ZSV--", 4, 8, "1010 1010 dddd imm4m1", "decb rbd,imm4m1", 0},
+
+  {"------", 7, 16, "0111 1100 0000 00ii", "di i2", 0},
+  {"CZSV--", 107, 16, "0001 1011 ssN0 dddd", "div rrd,@rs", 0},
+  {"CZSV--", 107, 16, "0101 1011 0000 dddd address_src", "div rrd,address_src", 0},
+  {"CZSV--", 107, 16, "0101 1011 ssN0 dddd address_src", "div rrd,address_src(rs)", 0},
+  {"CZSV--", 107, 16, "0001 1011 0000 dddd imm16", "div rrd,imm16", 0},
+  {"CZSV--", 107, 16, "1001 1011 ssss dddd", "div rrd,rs", 0},
+  {"CZSV--", 744, 32, "0001 1010 ssN0 dddd", "divl rqd,@rs", 0},
+  {"CZSV--", 745, 32, "0101 1010 0000 dddd address_src", "divl rqd,address_src", 0},
+  {"CZSV--", 746, 32, "0101 1010 ssN0 dddd address_src", "divl rqd,address_src(rs)", 0},
+  {"CZSV--", 744, 32, "0001 1010 0000 dddd imm32", "divl rqd,imm32", 0},
+  {"CZSV--", 744, 32, "1001 1010 ssss dddd", "divl rqd,rrs", 0},
+
+  {"------", 11, 16, "1111 dddd 1disp7", "djnz rd,disp7", 0},
+  {"------", 7, 16, "0111 1100 0000 01ii", "ei i2", 0},
+  {"------", 6, 16, "1010 1101 ssss dddd", "ex rd,rs", 0},
+  {"------", 12, 16, "0010 1101 ssN0 dddd", "ex rd,@rs", 0},
+  {"------", 15, 16, "0110 1101 0000 dddd address_src", "ex rd,address_src", 0},
+  {"------", 16, 16, "0110 1101 ssN0 dddd address_src", "ex rd,address_src(rs)", 0},
+
+  {"------", 12, 8, "0010 1100 ssN0 dddd", "exb rbd,@rs", 0},
+  {"------", 15, 8, "0110 1100 0000 dddd address_src", "exb rbd,address_src", 0},
+  {"------", 16, 8, "0110 1100 ssN0 dddd address_src", "exb rbd,address_src(rs)", 0},
+  {"------", 6, 8, "1010 1100 ssss dddd", "exb rbd,rbs", 0},
+
+  {"------", 11, 16, "1011 0001 dddd 1010", "exts rrd", 0},
+  {"------", 11, 8, "1011 0001 dddd 0000", "extsb rd", 0},
+  {"------", 11, 32, "1011 0001 dddd 0111", "extsl rqd", 0},
+
+  {"------", 8, 16, "0111 1010 0000 0000", "halt", 0},
+  {"------", 10, 16, "0011 1101 ssN0 dddd", "in rd,@rs", 0},
+  {"------", 12, 8, "0011 1100 ssN0 dddd", "inb rbd,@rs", 0},
+  {"------", 12, 16, "0011 1011 dddd 0100 imm16", "in rd,imm16", 0},
+  {"------", 10, 8, "0011 1010 dddd 0100 imm16", "inb rbd,imm16", 0},
+  {"-ZSV--", 11, 16, "0010 1001 ddN0 imm4m1", "inc @rd,imm4m1", 0},
+  {"-ZSV--", 14, 16, "0110 1001 ddN0 imm4m1 address_dst", "inc address_dst(rd),imm4m1", 0},
+  {"-ZSV--", 13, 16, "0110 1001 0000 imm4m1 address_dst", "inc address_dst,imm4m1", 0},
+  {"-ZSV--", 4, 16, "1010 1001 dddd imm4m1", "inc rd,imm4m1", 0},
+  {"-ZSV--", 11, 8, "0010 1000 ddN0 imm4m1", "incb @rd,imm4m1", 0},
+  {"-ZSV--", 14, 8, "0110 1000 ddN0 imm4m1 address_dst", "incb address_dst(rd),imm4m1", 0},
+  {"-ZSV--", 13, 8, "0110 1000 0000 imm4m1 address_dst", "incb address_dst,imm4m1", 0},
+  {"-ZSV--", 4, 8, "1010 1000 dddd imm4m1", "incb rbd,imm4m1", 0},
+  {"---V--", 21, 16, "0011 1011 ssN0 1000 0000 aaaa ddN0 1000", "ind @rd,@rs,ra", 0},
+  {"---V--", 21, 8, "0011 1010 ssN0 1000 0000 aaaa ddN0 1000", "indb @rd,@rs,rba", 0},
+  {"---V--", 21, 8, "0011 1010 ssN0 0000 0000 aaaa ddN0 1000", "inib @rd,@rs,ra", 0},
+  {"---V--", 21, 16, "0011 1010 ssN0 0000 0000 aaaa ddN0 0000", "inibr @rd,@rs,ra", 0},
+  {"CZSVDH", 13, 16, "0111 1011 0000 0000", "iret", 0},
+  {"------", 10, 16, "0001 1110 ddN0 cccc", "jp cc,@rd", 0},
+  {"------", 7, 16, "0101 1110 0000 cccc address_dst", "jp cc,address_dst", 0},
+  {"------", 8, 16, "0101 1110 ddN0 cccc address_dst", "jp cc,address_dst(rd)", 0},
+  {"------", 6, 16, "1110 cccc disp8", "jr cc,disp8", 0},
+
+  {"------", 7, 16, "0000 1101 ddN0 0101 imm16", "ld @rd,imm16", 0},
+  {"------", 8, 16, "0010 1111 ddN0 ssss", "ld @rd,rs", 0},
+  {"------", 15, 16, "0100 1101 ddN0 0101 address_dst imm16", "ld address_dst(rd),imm16", 0},
+  {"------", 12, 16, "0110 1111 ddN0 ssss address_dst", "ld address_dst(rd),rs", 0},
+  {"------", 14, 16, "0100 1101 0000 0101 address_dst imm16", "ld address_dst,imm16", 0},
+  {"------", 11, 16, "0110 1111 0000 ssss address_dst", "ld address_dst,rs", 0},
+  {"------", 14, 16, "0011 0011 ddN0 ssss imm16", "ld rd(imm16),rs", 0},
+  {"------", 14, 16, "0111 0011 ddN0 ssss 0000 xxxx 0000 0000", "ld rd(rx),rs", 0},
+  {"------", 7, 16, "0010 0001 ssN0 dddd", "ld rd,@rs", 0},
+  {"------", 9, 16, "0110 0001 0000 dddd address_src", "ld rd,address_src", 0},
+  {"------", 10, 16, "0110 0001 ssN0 dddd address_src", "ld rd,address_src(rs)", 0},
+  {"------", 7, 16, "0010 0001 0000 dddd imm16", "ld rd,imm16", 0},
+  {"------", 3, 16, "1010 0001 ssss dddd", "ld rd,rs", 0},
+  {"------", 14, 16, "0011 0001 ssN0 dddd imm16", "ld rd,rs(imm16)", 0},
+  {"------", 14, 16, "0111 0001 ssN0 dddd 0000 xxxx 0000 0000", "ld rd,rs(rx)", 0},
+
+  {"------", 7, 8, "0000 1100 ddN0 0101 imm8 imm8", "ldb @rd,imm8", 0},
+  {"------", 8, 8, "0010 1110 ddN0 ssss", "ldb @rd,rbs", 0},
+  {"------", 15, 8, "0100 1100 ddN0 0101 address_dst imm8 imm8", "ldb address_dst(rd),imm8", 0},
+  {"------", 12, 8, "0110 1110 ddN0 ssss address_dst", "ldb address_dst(rd),rbs", 0},
+  {"------", 14, 8, "0100 1100 0000 0101 address_dst imm8 imm8", "ldb address_dst,imm8", 0},
+  {"------", 11, 8, "0110 1110 0000 ssss address_dst", "ldb address_dst,rbs", 0},
+  {"------", 14, 8, "0011 0010 ddN0 ssss imm16", "ldb rd(imm16),rbs", 0},
+  {"------", 14, 8, "0111 0010 ddN0 ssss 0000 xxxx 0000 0000", "ldb rd(rx),rbs", 0},
+  {"------", 7, 8, "0010 0000 ssN0 dddd", "ldb rbd,@rs", 0},
+  {"------", 9, 8, "0110 0000 0000 dddd address_src", "ldb rbd,address_src", 0},
+  {"------", 10, 8, "0110 0000 ssN0 dddd address_src", "ldb rbd,address_src(rs)", 0},
+  {"------", 5, 8, "1100 dddd imm8", "ldb rbd,imm8", 0},
+  {"------", 3, 8, "1010 0000 ssss dddd", "ldb rbd,rbs", 0},
+  {"------", 14, 8, "0011 0000 ssN0 dddd imm16", "ldb rbd,rs(imm16)", 0},
+  {"------", 14, 8, "0111 0000 ssN0 dddd 0000 xxxx 0000 0000", "ldb rbd,rs(rx)", 0},
+
+  {"------", 11, 32, "0001 1101 ddN0 ssss", "ldl @rd,rrs", 0},
+  {"------", 14, 32, "0101 1101 ddN0 ssss address_dst", "ldl address_dst(rd),rrs", 0},
+  {"------", 15, 32, "0101 1101 0000 ssss address_dst", "ldl address_dst,rrs", 0},
+  {"------", 17, 32, "0011 0111 ddN0 ssss imm16", "ldl rd(imm16),rrs", 0},
+  {"------", 17, 32, "0111 0111 ddN0 ssss 0000 xxxx 0000 0000", "ldl rd(rx),rrs", 0},
+  {"------", 11, 32, "0001 0100 ssN0 dddd", "ldl rrd,@rs", 0},
+  {"------", 12, 32, "0101 0100 0000 dddd address_src", "ldl rrd,address_src", 0},
+  {"------", 13, 32, "0101 0100 ssN0 dddd address_src", "ldl rrd,address_src(rs)", 0},
+  {"------", 11, 32, "0001 0100 0000 dddd imm32", "ldl rrd,imm32", 0},
+  {"------", 5, 32, "1001 0100 ssss dddd", "ldl rrd,rrs", 0},
+  {"------", 17, 32, "0011 0101 ssN0 dddd imm16", "ldl rrd,rs(imm16)", 0},
+  {"------", 17, 32, "0111 0101 ssN0 dddd 0000 xxxx 0000 0000", "ldl rrd,rs(rx)", 0},
+
+  {"------", 12, 16, "0111 0110 0000 dddd address_src", "lda prd,address_src", 0},
+  {"------", 13, 16, "0111 0110 ssN0 dddd address_src", "lda prd,address_src(rs)", 0},
+  {"------", 15, 16, "0011 0100 ssN0 dddd imm16", "lda prd,rs(imm16)", 0},
+  {"------", 15, 16, "0111 0100 ssN0 dddd 0000 xxxx 0000 0000", "lda prd,rs(rx)", 0},
+  {"------", 15, 16, "0011 0100 0000 dddd disp16", "ldar prd,disp16", 0},
+  {"------", 7, 32, "0111 1101 ssss 1ccc", "ldctl ctrl,rs", 0},
+  {"------", 7, 32, "0111 1101 dddd 0ccc", "ldctl rd,ctrl", 0},
+
+  {"------", 5, 16, "1011 1101 dddd imm4", "ldk rd,imm4", 0},
+
+  {"------", 11, 16, "0001 1100 ddN0 1001 0000 ssss 0000 imm4m1", "ldm @rd,rs,n", 0},
+  {"------", 15, 16, "0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst(rd),rs,n", 0},
+  {"------", 14, 16, "0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst,rs,n", 0},
+  {"------", 11, 16, "0001 1100 ssN0 0001 0000 dddd 0000 imm4m1", "ldm rd,@rs,n", 0},
+  {"------", 15, 16, "0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src(rs),n", 0},
+  {"------", 14, 16, "0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src,n", 0},
+
+  {"CZSVDH", 12, 16, "0011 1001 ssN0 0000", "ldps @rs", 0},
+  {"CZSVDH", 16, 16, "0111 1001 0000 0000 address_src", "ldps address_src", 0},
+  {"CZSVDH", 17, 16, "0111 1001 ssN0 0000 address_src", "ldps address_src(rs)", 0},
+
+  {"------", 14, 16, "0011 0011 0000 ssss disp16", "ldr disp16,rs", 0},
+  {"------", 14, 16, "0011 0001 0000 dddd disp16", "ldr rd,disp16", 0},
+  {"------", 14, 8, "0011 0010 0000 ssss disp16", "ldrb disp16,rbs", 0},
+  {"------", 14, 8, "0011 0000 0000 dddd disp16", "ldrb rbd,disp16", 0},
+  {"------", 17, 32, "0011 0111 0000 ssss disp16", "ldrl disp16,rrs", 0},
+  {"------", 17, 32, "0011 0101 0000 dddd disp16", "ldrl rrd,disp16", 0},
+
+  {"CZS---", 7, 16, "0111 1011 0000 1010", "mbit", 0},
+  {"-ZS---", 12, 16, "0111 1011 dddd 1101", "mreq rd", 0},
+  {"------", 5, 16, "0111 1011 0000 1001", "mres", 0},
+  {"------", 5, 16, "0111 1011 0000 1000", "mset", 0},
+
+  {"CZSV--", 70, 16, "0001 1001 ssN0 dddd", "mult rrd,@rs", 0},
+  {"CZSV--", 70, 16, "0101 1001 0000 dddd address_src", "mult rrd,address_src", 0},
+  {"CZSV--", 70, 16, "0101 1001 ssN0 dddd address_src", "mult rrd,address_src(rs)", 0},
+  {"CZSV--", 70, 16, "0001 1001 0000 dddd imm16", "mult rrd,imm16", 0},
+  {"CZSV--", 70, 16, "1001 1001 ssss dddd", "mult rrd,rs", 0},
+  {"CZSV--", 282, 32, "0001 1000 ssN0 dddd", "multl rqd,@rs", 0},
+  {"CZSV--", 282, 32, "0101 1000 0000 dddd address_src", "multl rqd,address_src", 0},
+  {"CZSV--", 282, 32, "0101 1000 ssN0 dddd address_src", "multl rqd,address_src(rs)", 0},
+  {"CZSV--", 282, 32, "0001 1000 0000 dddd imm32", "multl rqd,imm32", 0},
+  {"CZSV--", 282, 32, "1001 1000 ssss dddd", "multl rqd,rrs", 0},
+  {"CZSV--", 12, 16, "0000 1101 ddN0 0010", "neg @rd", 0},
+  {"CZSV--", 15, 16, "0100 1101 0000 0010 address_dst", "neg address_dst", 0},
+  {"CZSV--", 16, 16, "0100 1101 ddN0 0010 address_dst", "neg address_dst(rd)", 0},
+  {"CZSV--", 7, 16, "1000 1101 dddd 0010", "neg rd", 0},
+  {"CZSV--", 12, 8, "0000 1100 ddN0 0010", "negb @rd", 0},
+  {"CZSV--", 15, 8, "0100 1100 0000 0010 address_dst", "negb address_dst", 0},
+  {"CZSV--", 16, 8, "0100 1100 ddN0 0010 address_dst", "negb address_dst(rd)", 0},
+  {"CZSV--", 7, 8, "1000 1100 dddd 0010", "negb rbd", 0},
+
+  {"------", 7, 16, "1000 1101 0000 0111", "nop", 0},
+
+  {"CZS---", 7, 16, "0000 0101 ssN0 dddd", "or rd,@rs", 0},
+  {"CZS---", 9, 16, "0100 0101 0000 dddd address_src", "or rd,address_src", 0},
+  {"CZS---", 10, 16, "0100 0101 ssN0 dddd address_src", "or rd,address_src(rs)", 0},
+  {"CZS---", 7, 16, "0000 0101 0000 dddd imm16", "or rd,imm16", 0},
+  {"CZS---", 4, 16, "1000 0101 ssss dddd", "or rd,rs", 0},
+
+  {"CZSP--", 7, 8, "0000 0100 ssN0 dddd", "orb rbd,@rs", 0},
+  {"CZSP--", 9, 8, "0100 0100 0000 dddd address_src", "orb rbd,address_src", 0},
+  {"CZSP--", 10, 8, "0100 0100 ssN0 dddd address_src", "orb rbd,address_src(rs)", 0},
+  {"CZSP--", 7, 8, "0000 0100 0000 dddd imm8 imm8", "orb rbd,imm8", 0},
+  {"CZSP--", 4, 8, "1000 0100 ssss dddd", "orb rbd,rbs", 0},
+
+  {"---V--", 0, 16, "0011 1111 ddN0 ssss", "out @rd,rs", 0},
+  {"---V--", 0, 16, "0011 1011 ssss 0110 imm16", "out imm16,rs", 0},
+  {"---V--", 0, 8, "0011 1110 ddN0 ssss", "outb @rd,rbs", 0},
+  {"---V--", 0, 8, "0011 1010 ssss 0110 imm16", "outb imm16,rbs", 0},
+  {"---V--", 0, 16, "0011 1011 ssN0 1010 0000 aaaa ddN0 1000", "outd @rd,@rs,ra", 0},
+  {"---V--", 0, 16, "0011 1010 ssN0 1010 0000 aaaa ddN0 1000", "outdb @rd,@rs,rba", 0},
+  {"---V--", 0, 16, "0011 1011 ssN0 0010 0000 aaaa ddN0 1000", "outi @rd,@rs,ra", 0},
+  {"---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 1000", "outib @rd,@rs,ra", 0},
+  {"---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 0000", "outibr @rd,@rs,ra", 0},
+
+  {"------", 12, 16, "0001 0111 ssN0 ddN0", "pop @rd,@rs", 0},
+  {"------", 16, 16, "0101 0111 ssN0 ddN0 address_dst", "pop address_dst(rd),@rs", 0},
+  {"------", 16, 16, "0101 0111 ssN0 0000 address_dst", "pop address_dst,@rs", 0},
+  {"------", 8, 16, "1001 0111 ssN0 dddd", "pop rd,@rs", 0},
+
+  {"------", 19, 32, "0001 0101 ssN0 ddN0", "popl @rd,@rs", 0},
+  {"------", 23, 32, "0101 0101 ssN0 ddN0 address_dst", "popl address_dst(rd),@rs", 0},
+  {"------", 23, 32, "0101 0101 ssN0 0000 address_dst", "popl address_dst,@rs", 0},
+  {"------", 12, 32, "1001 0101 ssN0 dddd", "popl rrd,@rs", 0},
+
+  {"------", 13, 16, "0001 0011 ddN0 ssN0", "push @rd,@rs", 0},
+  {"------", 14, 16, "0101 0011 ddN0 0000 address_src", "push @rd,address_src", 0},
+  {"------", 14, 16, "0101 0011 ddN0 ssN0 address_src", "push @rd,address_src(rs)", 0},
+  {"------", 12, 16, "0000 1101 ddN0 1001 imm16", "push @rd,imm16", 0},
+  {"------", 9, 16, "1001 0011 ddN0 ssss", "push @rd,rs", 0},
+
+  {"------", 20, 32, "0001 0001 ddN0 ssN0", "pushl @rd,@rs", 0},
+  {"------", 21, 32, "0101 0001 ddN0 ssN0 address_src", "pushl @rd,address_src(rs)", 0},
+  {"------", 21, 32, "0101 0001 ddN0 0000 address_src", "pushl @rd,address_src", 0},
+  {"------", 12, 32, "1001 0001 ddN0 ssss", "pushl @rd,rrs", 0},
+
+  {"------", 11, 16, "0010 0011 ddN0 imm4", "res @rd,imm4", 0},
+  {"------", 14, 16, "0110 0011 ddN0 imm4 address_dst", "res address_dst(rd),imm4", 0},
+  {"------", 13, 16, "0110 0011 0000 imm4 address_dst", "res address_dst,imm4", 0},
+  {"------", 4, 16, "1010 0011 dddd imm4", "res rd,imm4", 0},
+  {"------", 10, 16, "0010 0011 0000 ssss 0000 dddd 0000 0000", "res rd,rs", 0},
+
+  {"------", 11, 8, "0010 0010 ddN0 imm4", "resb @rd,imm4", 0},
+  {"------", 14, 8, "0110 0010 ddN0 imm4 address_dst", "resb address_dst(rd),imm4", 0},
+  {"------", 13, 8, "0110 0010 0000 imm4 address_dst", "resb address_dst,imm4", 0},
+  {"------", 4, 8, "1010 0010 dddd imm4", "resb rbd,imm4", 0},
+  {"------", 10, 8, "0010 0010 0000 ssss 0000 dddd 0000 0000", "resb rbd,rs", 0},
+
+  {"CZSV--", 7, 16, "1000 1101 flags 0011", "resflg flags", 0},
+  {"------", 10, 16, "1001 1110 0000 cccc", "ret cc", 0},
+
+  {"CZSV--", 6, 16, "1011 0011 dddd 00I0", "rl rd,imm1or2", 0},
+  {"CZSV--", 6, 8, "1011 0010 dddd 00I0", "rlb rbd,imm1or2", 0},
+  {"CZSV--", 6, 16, "1011 0011 dddd 10I0", "rlc rd,imm1or2", 0},
+
+  {"-Z----", 9, 8, "1011 0010 dddd 10I0", "rlcb rbd,imm1or2", 0},
+  {"-Z----", 9, 8, "1011 1110 aaaa bbbb", "rldb rbb,rba", 0},
+
+  {"CZSV--", 6, 16, "1011 0011 dddd 01I0", "rr rd,imm1or2", 0},
+  {"CZSV--", 6, 8, "1011 0010 dddd 01I0", "rrb rbd,imm1or2", 0},
+  {"CZSV--", 6, 16, "1011 0011 dddd 11I0", "rrc rd,imm1or2", 0},
+
+  {"-Z----", 9, 8, "1011 0010 dddd 11I0", "rrcb rbd,imm1or2", 0},
+  {"-Z----", 9, 8, "1011 1100 aaaa bbbb", "rrdb rbb,rba", 0},
+  {"CZSV--", 5, 16, "1011 0111 ssss dddd", "sbc rd,rs", 0},
+  {"CZSVDH", 5, 8, "1011 0110 ssss dddd", "sbcb rbd,rbs", 0},
+
+  {"CZSVDH", 33, 8, "0111 1111 imm8", "sc imm8", 0},
+
+  {"CZSV--", 15, 16, "1011 0011 dddd 1011 0000 ssss 0000 0000", "sda rd,rs", 0},
+  {"CZSV--", 15, 8, "1011 0010 dddd 1011 0000 ssss 0000 0000", "sdab rbd,rs", 0},
+  {"CZSV--", 15, 32, "1011 0011 dddd 1111 0000 ssss 0000 0000", "sdal rrd,rs", 0},
+
+  {"CZS---", 15, 16, "1011 0011 dddd 0011 0000 ssss 0000 0000", "sdl rd,rs", 0},
+  {"CZS---", 15, 8, "1011 0010 dddd 0011 0000 ssss 0000 0000", "sdlb rbd,rs", 0},
+  {"CZS---", 15, 32, "1011 0011 dddd 0111 0000 ssss 0000 0000", "sdll rrd,rs", 0},
+
+  {"------", 11, 16, "0010 0101 ddN0 imm4", "set @rd,imm4", 0},
+  {"------", 14, 16, "0110 0101 ddN0 imm4 address_dst", "set address_dst(rd),imm4", 0},
+  {"------", 13, 16, "0110 0101 0000 imm4 address_dst", "set address_dst,imm4", 0},
+  {"------", 4, 16, "1010 0101 dddd imm4", "set rd,imm4", 0},
+  {"------", 10, 16, "0010 0101 0000 ssss 0000 dddd 0000 0000", "set rd,rs", 0},
+  {"------", 11, 8, "0010 0100 ddN0 imm4", "setb @rd,imm4", 0},
+  {"------", 14, 8, "0110 0100 ddN0 imm4 address_dst", "setb address_dst(rd),imm4", 0},
+  {"------", 13, 8, "0110 0100 0000 imm4 address_dst", "setb address_dst,imm4", 0},
+  {"------", 4, 8, "1010 0100 dddd imm4", "setb rbd,imm4", 0},
+  {"------", 10, 8, "0010 0100 0000 ssss 0000 dddd 0000 0000", "setb rbd,rs", 0},
+
+  {"CZSV--", 7, 16, "1000 1101 flags 0001", "setflg flags", 0},
+
+  {"------", 0, 8, "0011 1010 dddd 0101 imm16", "sinb rbd,imm16", 0},
+  {"------", 0, 8, "0011 1011 dddd 0101 imm16", "sin rd,imm16", 0},
+  {"------", 0, 16, "0011 1011 ssN0 1000 0001 aaaa ddN0 1000", "sind @rd,@rs,ra", 0},
+  {"------", 0, 8, "0011 1010 ssN0 1000 0001 aaaa ddN0 1000", "sindb @rd,@rs,rba", 0},
+  {"------", 0, 8, "0011 1010 ssN0 0001 0000 aaaa ddN0 1000", "sinib @rd,@rs,ra", 0},
+  {"------", 0, 16, "0011 1010 ssN0 0001 0000 aaaa ddN0 0000", "sinibr @rd,@rs,ra", 0},
+
+  {"CZSV--", 13, 16, "1011 0011 dddd 1001 0000 0000 imm8", "sla rd,imm8", 0},
+  {"CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 0000 imm4", "slab rbd,imm4", 0},
+  {"CZSV--", 13, 32, "1011 0011 dddd 1101 0000 0000 imm8", "slal rrd,imm8", 0},
+
+  {"CZS---", 13, 16, "1011 0011 dddd 0001 0000 0000 imm8", "sll rd,imm8", 0},
+  {"CZS---", 13, 8, "1011 0010 dddd 0001 iiii iiii 0000 imm4", "sllb rbd,imm4", 0},
+  {"CZS---", 13, 32, "1011 0011 dddd 0101 0000 0000 imm8", "slll rrd,imm8", 0},
+
+  {"------", 0, 16, "0011 1011 ssss 0111 imm16", "sout imm16,rs", 0},
+  {"------", 0, 8, "0011 1010 ssss 0111 imm16", "soutb imm16,rbs", 0},
+  {"------", 0, 16, "0011 1011 ssN0 1011 0000 aaaa ddN0 1000", "soutd @rd,@rs,ra", 0},
+  {"------", 0, 8, "0011 1010 ssN0 1011 0000 aaaa ddN0 1000", "soutdb @rd,@rs,rba", 0},
+  {"------", 0, 8, "0011 1010 ssN0 0011 0000 aaaa ddN0 1000", "soutib @rd,@rs,ra", 0},
+  {"------", 0, 16, "0011 1010 ssN0 0011 0000 aaaa ddN0 0000", "soutibr @rd,@rs,ra", 0},
+
+  {"CZSV--", 13, 16, "1011 0011 dddd 1001 1111 1111 nim8", "sra rd,imm8", 0},
+  {"CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 1111 nim4", "srab rbd,imm4", 0},
+  {"CZSV--", 13, 32, "1011 0011 dddd 1101 1111 1111 nim8", "sral rrd,imm8", 0},
+
+  {"CZSV--", 13, 16, "1011 0011 dddd 0001 1111 1111 nim8", "srl rd,imm8", 0},
+  {"CZSV--", 13, 8, "1011 0010 dddd 0001 iiii iiii 1111 nim4", "srlb rbd,imm4", 0},
+  {"CZSV--", 13, 32, "1011 0011 dddd 0101 1111 1111 nim8", "srll rrd,imm8", 0},
+
+  {"CZSV--", 7, 16, "0000 0011 ssN0 dddd", "sub rd,@rs", 0},
+  {"CZSV--", 9, 16, "0100 0011 0000 dddd address_src", "sub rd,address_src", 0},
+  {"CZSV--", 10, 16, "0100 0011 ssN0 dddd address_src", "sub rd,address_src(rs)", 0},
+  {"CZSV--", 7, 16, "0000 0011 0000 dddd imm16", "sub rd,imm16", 0},
+  {"CZSV--", 4, 16, "1000 0011 ssss dddd", "sub rd,rs", 0},
+
+  {"CZSVDH", 7, 8, "0000 0010 ssN0 dddd", "subb rbd,@rs", 0},
+  {"CZSVDH", 9, 8, "0100 0010 0000 dddd address_src", "subb rbd,address_src", 0},
+  {"CZSVDH", 10, 8, "0100 0010 ssN0 dddd address_src", "subb rbd,address_src(rs)", 0},
+  {"CZSVDH", 7, 8, "0000 0010 0000 dddd imm8 imm8", "subb rbd,imm8", 0},
+  {"CZSVDH", 4, 8, "1000 0010 ssss dddd", "subb rbd,rbs", 0},
+
+  {"CZSV--", 14, 32, "0001 0010 ssN0 dddd", "subl rrd,@rs", 0},
+  {"CZSV--", 15, 32, "0101 0010 0000 dddd address_src", "subl rrd,address_src", 0},
+  {"CZSV--", 16, 32, "0101 0010 ssN0 dddd address_src", "subl rrd,address_src(rs)", 0},
+  {"CZSV--", 14, 32, "0001 0010 0000 dddd imm32", "subl rrd,imm32", 0},
+  {"CZSV--", 8, 32, "1001 0010 ssss dddd", "subl rrd,rrs", 0},
+
+  {"------", 5, 16, "1010 1111 dddd cccc", "tcc cc,rd", 0},
+  {"------", 5, 8, "1010 1110 dddd cccc", "tccb cc,rbd", 0},
+
+  {"-ZS---", 8, 16, "0000 1101 ddN0 0100", "test @rd", 0},
+  {"------", 11, 16, "0100 1101 0000 0100 address_dst", "test address_dst", 0},
+  {"------", 12, 16, "0100 1101 ddN0 0100 address_dst", "test address_dst(rd)", 0},
+  {"------", 7, 16, "1000 1101 dddd 0100", "test rd", 0},
+
+  {"-ZSP--", 8, 8, "0000 1100 ddN0 0100", "testb @rd", 0},
+  {"-ZSP--", 11, 8, "0100 1100 0000 0100 address_dst", "testb address_dst", 0},
+  {"-ZSP--", 12, 8, "0100 1100 ddN0 0100 address_dst", "testb address_dst(rd)", 0},
+  {"-ZSP--", 7, 8, "1000 1100 dddd 0100", "testb rbd", 0},
+
+  {"-ZS---", 13, 32, "0001 1100 ddN0 1000", "testl @rd", 0},
+  {"-ZS---", 16, 32, "0101 1100 0000 1000 address_dst", "testl address_dst", 0},
+  {"-ZS---", 17, 32, "0101 1100 ddN0 1000 address_dst", "testl address_dst(rd)", 0},
+  {"-ZS---", 13, 32, "1001 1100 dddd 1000", "testl rrd", 0},
+
+  {"-ZSV--", 25, 8, "1011 1000 ddN0 1000 0000 aaaa ssN0 0000", "trdb @rd,@rs,rba", 0},
+  {"-ZSV--", 25, 8, "1011 1000 ddN0 1100 0000 aaaa ssN0 0000", "trdrb @rd,@rs,rba", 0},
+  {"-ZSV--", 25, 8, "1011 1000 ddN0 0000 0000 rrrr ssN0 0000", "trib @rd,@rs,rbr", 0},
+  {"-ZSV--", 25, 8, "1011 1000 ddN0 0100 0000 rrrr ssN0 0000", "trirb @rd,@rs,rbr", 0},
+  {"-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtdb @ra,@rb,rbr", 0},
+  {"-ZSV--", 25, 8, "1011 1000 aaN0 1110 0000 rrrr bbN0 1110", "trtdrb @ra,@rb,rbr", 0},
+  {"-ZSV--", 25, 8, "1011 1000 aaN0 0010 0000 rrrr bbN0 0000", "trtib @ra,@rb,rbr", 0},
+  {"-ZSV--", 25, 8, "1011 1000 aaN0 0110 0000 rrrr bbN0 1110", "trtirb @ra,@rb,rbr", 0},
+  {"-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtrb @ra,@rb,rbr", 0},
+
+  {"--S---", 11, 16, "0000 1101 ddN0 0110", "tset @rd", 0},
+  {"--S---", 14, 16, "0100 1101 0000 0110 address_dst", "tset address_dst", 0},
+  {"--S---", 15, 16, "0100 1101 ddN0 0110 address_dst", "tset address_dst(rd)", 0},
+  {"--S---", 7, 16, "1000 1101 dddd 0110", "tset rd", 0},
+
+  {"--S---", 11, 8, "0000 1100 ddN0 0110", "tsetb @rd", 0},
+  {"--S---", 14, 8, "0100 1100 0000 0110 address_dst", "tsetb address_dst", 0},
+  {"--S---", 15, 8, "0100 1100 ddN0 0110 address_dst", "tsetb address_dst(rd)", 0},
+  {"--S---", 7, 8, "1000 1100 dddd 0110", "tsetb rbd", 0},
+
+  {"-ZS---", 7, 16, "0000 1001 ssN0 dddd", "xor rd,@rs", 0},
+  {"-ZS---", 9, 16, "0100 1001 0000 dddd address_src", "xor rd,address_src", 0},
+  {"-ZS---", 10, 16, "0100 1001 ssN0 dddd address_src", "xor rd,address_src(rs)", 0},
+  {"-ZS---", 7, 16, "0000 1001 0000 dddd imm16", "xor rd,imm16", 0},
+  {"-ZS---", 4, 16, "1000 1001 ssss dddd", "xor rd,rs", 0},
+
+  {"-ZSP--", 7, 8, "0000 1000 ssN0 dddd", "xorb rbd,@rs", 0},
+  {"-ZSP--", 9, 8, "0100 1000 0000 dddd address_src", "xorb rbd,address_src", 0},
+  {"-ZSP--", 10, 8, "0100 1000 ssN0 dddd address_src", "xorb rbd,address_src(rs)", 0},
+  {"-ZSP--", 7, 8, "0000 1000 0000 dddd imm8 imm8", "xorb rbd,imm8", 0},
+  {"-ZSP--", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0},
+
+  {"------", 7, 32, "1000 1100 dddd 0001", "ldctlb rbd,ctrl", 0},
+  {"CZSVDH", 7, 32, "1000 1100 ssss 1001", "ldctlb ctrl,rbs", 0},
+
+  {"*", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0},
+  {"*", 0, 0, 0, 0, 0}
 };
 
 int
@@ -627,86 +628,86 @@ struct tok_struct args[] =
   {"1", "CLASS_IMM+(ARG_IMM_1)",},
   {"2", "CLASS_IMM+(ARG_IMM_2)",},
 
-  0, 0
+  {0, 0}
 };
 
 struct tok_struct toks[] =
 {
-  "0000", "CLASS_BIT+0", 1,
-  "0001", "CLASS_BIT+1", 1,
-  "0010", "CLASS_BIT+2", 1,
-  "0011", "CLASS_BIT+3", 1,
-  "0100", "CLASS_BIT+4", 1,
-  "0101", "CLASS_BIT+5", 1,
-  "0110", "CLASS_BIT+6", 1,
-  "0111", "CLASS_BIT+7", 1,
-  "1000", "CLASS_BIT+8", 1,
-  "1001", "CLASS_BIT+9", 1,
-  "1010", "CLASS_BIT+0xa", 1,
-  "1011", "CLASS_BIT+0xb", 1,
-  "1100", "CLASS_BIT+0xc", 1,
-  "1101", "CLASS_BIT+0xd", 1,
-  "1110", "CLASS_BIT+0xe", 1,
-  "1111", "CLASS_BIT+0xf", 1,
-
-  "00I0", "CLASS_BIT_1OR2+0", 1,
-  "00I0", "CLASS_BIT_1OR2+1", 1,
-  "00I0", "CLASS_BIT_1OR2+2", 1,
-  "00I0", "CLASS_BIT_1OR2+3", 1,
-  "01I0", "CLASS_BIT_1OR2+4", 1,
-  "01I0", "CLASS_BIT_1OR2+5", 1,
-  "01I0", "CLASS_BIT_1OR2+6", 1,
-  "01I0", "CLASS_BIT_1OR2+7", 1,
-  "10I0", "CLASS_BIT_1OR2+8", 1,
-  "10I0", "CLASS_BIT_1OR2+9", 1,
-  "10I0", "CLASS_BIT_1OR2+0xa", 1,
-  "10I0", "CLASS_BIT_1OR2+0xb", 1,
-  "11I0", "CLASS_BIT_1OR2+0xc", 1,
-  "11I0", "CLASS_BIT_1OR2+0xd", 1,
-  "11I0", "CLASS_BIT_1OR2+0xe", 1,
-  "11I0", "CLASS_BIT_1OR2+0xf", 1,
-
-  "ssss", "CLASS_REG+(ARG_RS)", 1,
-  "dddd", "CLASS_REG+(ARG_RD)", 1,
-  "aaaa", "CLASS_REG+(ARG_RA)", 1,
-  "bbbb", "CLASS_REG+(ARG_RB)", 1,
-  "rrrr", "CLASS_REG+(ARG_RR)", 1,
-
-  "ssN0", "CLASS_REGN0+(ARG_RS)", 1,
-  "ddN0", "CLASS_REGN0+(ARG_RD)", 1,
-  "aaN0", "CLASS_REGN0+(ARG_RA)", 1,
-  "bbN0", "CLASS_REGN0+(ARG_RB)", 1,
-  "rrN0", "CLASS_REGN0+(ARG_RR)", 1,
-
-  "cccc", "CLASS_CC", 1,
-  "nnnn", "CLASS_IMM+(ARG_IMMN)", 1,
-  "xxxx", "CLASS_REG+(ARG_RX)", 1,
-  "xxN0", "CLASS_REGN0+(ARG_RX)", 1,
-  "nminus1", "CLASS_IMM+(ARG_IMMNMINUS1)", 1,
-
-  "disp16", "CLASS_DISP+(ARG_DISP16)", 4,
-  "disp12", "CLASS_DISP+(ARG_DISP12)", 3,
-  "flags", "CLASS_FLAGS", 1,
-  "address_dst", "CLASS_ADDRESS+(ARG_DST)", 4,
-  "address_src", "CLASS_ADDRESS+(ARG_SRC)", 4,
-  "imm4m1", "CLASS_IMM+(ARG_IMM4M1)", 1,
-  "imm4", "CLASS_IMM+(ARG_IMM4)", 1,
-
-  "imm8", "CLASS_IMM+(ARG_IMM8)", 2,
-  "imm16", "CLASS_IMM+(ARG_IMM16)", 4,
-  "imm32", "CLASS_IMM+(ARG_IMM32)", 8,
-  "nim4", "CLASS_IMM+(ARG_NIM4)", 2,
-  "nim8", "CLASS_IMM+(ARG_NIM8)", 2,
-  "0ccc", "CLASS_0CCC", 1,
-  "1ccc", "CLASS_1CCC", 1,
-  "disp8", "CLASS_DISP8", 2,
-  "0disp7", "CLASS_0DISP7", 2,
-  "1disp7", "CLASS_1DISP7", 2,
-  "01ii", "CLASS_01II", 1,
-  "00ii", "CLASS_00II", 1,
-
-  "iiii", "CLASS_IGNORE", 1,
-  0, 0
+  {"0000", "CLASS_BIT+0", 1},
+  {"0001", "CLASS_BIT+1", 1},
+  {"0010", "CLASS_BIT+2", 1},
+  {"0011", "CLASS_BIT+3", 1},
+  {"0100", "CLASS_BIT+4", 1},
+  {"0101", "CLASS_BIT+5", 1},
+  {"0110", "CLASS_BIT+6", 1},
+  {"0111", "CLASS_BIT+7", 1},
+  {"1000", "CLASS_BIT+8", 1},
+  {"1001", "CLASS_BIT+9", 1},
+  {"1010", "CLASS_BIT+0xa", 1},
+  {"1011", "CLASS_BIT+0xb", 1},
+  {"1100", "CLASS_BIT+0xc", 1},
+  {"1101", "CLASS_BIT+0xd", 1},
+  {"1110", "CLASS_BIT+0xe", 1},
+  {"1111", "CLASS_BIT+0xf", 1},
+
+  {"00I0", "CLASS_BIT_1OR2+0", 1},
+  {"00I0", "CLASS_BIT_1OR2+1", 1},
+  {"00I0", "CLASS_BIT_1OR2+2", 1},
+  {"00I0", "CLASS_BIT_1OR2+3", 1},
+  {"01I0", "CLASS_BIT_1OR2+4", 1},
+  {"01I0", "CLASS_BIT_1OR2+5", 1},
+  {"01I0", "CLASS_BIT_1OR2+6", 1},
+  {"01I0", "CLASS_BIT_1OR2+7", 1},
+  {"10I0", "CLASS_BIT_1OR2+8", 1},
+  {"10I0", "CLASS_BIT_1OR2+9", 1},
+  {"10I0", "CLASS_BIT_1OR2+0xa", 1},
+  {"10I0", "CLASS_BIT_1OR2+0xb", 1},
+  {"11I0", "CLASS_BIT_1OR2+0xc", 1},
+  {"11I0", "CLASS_BIT_1OR2+0xd", 1},
+  {"11I0", "CLASS_BIT_1OR2+0xe", 1},
+  {"11I0", "CLASS_BIT_1OR2+0xf", 1},
+
+  {"ssss", "CLASS_REG+(ARG_RS)", 1},
+  {"dddd", "CLASS_REG+(ARG_RD)", 1},
+  {"aaaa", "CLASS_REG+(ARG_RA)", 1},
+  {"bbbb", "CLASS_REG+(ARG_RB)", 1},
+  {"rrrr", "CLASS_REG+(ARG_RR)", 1},
+
+  {"ssN0", "CLASS_REGN0+(ARG_RS)", 1},
+  {"ddN0", "CLASS_REGN0+(ARG_RD)", 1},
+  {"aaN0", "CLASS_REGN0+(ARG_RA)", 1},
+  {"bbN0", "CLASS_REGN0+(ARG_RB)", 1},
+  {"rrN0", "CLASS_REGN0+(ARG_RR)", 1},
+
+  {"cccc", "CLASS_CC", 1},
+  {"nnnn", "CLASS_IMM+(ARG_IMMN)", 1},
+  {"xxxx", "CLASS_REG+(ARG_RX)", 1},
+  {"xxN0", "CLASS_REGN0+(ARG_RX)", 1},
+  {"nminus1", "CLASS_IMM+(ARG_IMMNMINUS1)", 1},
+
+  {"disp16", "CLASS_DISP+(ARG_DISP16)", 4},
+  {"disp12", "CLASS_DISP+(ARG_DISP12)", 3},
+  {"flags", "CLASS_FLAGS", 1},
+  {"address_dst", "CLASS_ADDRESS+(ARG_DST)", 4},
+  {"address_src", "CLASS_ADDRESS+(ARG_SRC)", 4},
+  {"imm4m1", "CLASS_IMM+(ARG_IMM4M1)", 1},
+  {"imm4", "CLASS_IMM+(ARG_IMM4)", 1},
+
+  {"imm8", "CLASS_IMM+(ARG_IMM8)", 2},
+  {"imm16", "CLASS_IMM+(ARG_IMM16)", 4},
+  {"imm32", "CLASS_IMM+(ARG_IMM32)", 8},
+  {"nim4", "CLASS_IMM+(ARG_NIM4)", 2},
+  {"nim8", "CLASS_IMM+(ARG_NIM8)", 2},
+  {"0ccc", "CLASS_0CCC", 1},
+  {"1ccc", "CLASS_1CCC", 1},
+  {"disp8", "CLASS_DISP8", 2},
+  {"0disp7", "CLASS_0DISP7", 2},
+  {"1disp7", "CLASS_1DISP7", 2},
+  {"01ii", "CLASS_01II", 1},
+  {"00ii", "CLASS_00II", 1},
+
+  {"iiii", "CLASS_IGNORE", 1},
+  {0, 0}
 };
 
 char *
@@ -772,30 +773,28 @@ chewbits (bits, length)
 static
 int
 chewname (name)
-     char *name;
+     char **name;
 {
   char *n;
   int nargs = 0;
 
-  n = name;
-  printf ("\"");
+  n = *name;
   while (*n && !iswhite (*n))
-    {
-      printf ("%c", *n);
-      n++;
-    }
-  printf ("\",");              /* Scan the operands and make entires for
-                                  them -remember indirect things */
+    n++;
 
-  n = name;
-  printf ("OPC_");
-  while (*n && !iswhite (*n))
+  if (*n)
     {
-      printf ("%c", *n);
-      n++;
+      size_t len = n - *name;
+      char *newname = xmalloc (len + 1);
+      memcpy (newname, *name, len);
+      newname[len] = 0;
+      *name = newname;
     }
-  printf (",0,{");
 
+  printf ("\"%s\",OPC_%s,0,{", *name, *name);
+
+  /* Scan the operands and make entries for them.
+     Remember indirect things.  */
   while (*n)
     {
       int d;
@@ -814,7 +813,7 @@ chewname (name)
   return nargs;
 }
 
-static 
+static
 void
 sub (x, c)
      char *x;
@@ -953,13 +952,13 @@ internal ()
   }
 }
 
-static 
+static
 void
 gas ()
 {
   int c = count ();
   struct op *p = opt;
-  int idx = 0;
+  int idx = -1;
   char *oldname = "";
   struct op *new = (struct op *) xmalloc (sizeof (struct op) * c);
 
@@ -968,7 +967,8 @@ gas ()
   /* sort all names in table alphabetically */
   qsort (new, c, sizeof (struct op), func);
 
-  printf ("                    /* THIS FILE IS AUTOMAGICALLY GENERATED, DON'T EDIT IT */\n");
+  printf ("/* DO NOT EDIT!  -*- buffer-read-only: t -*-\n");
+  printf ("   This file is automatically generated by z8kgen.  */\n\n");
 
   printf ("#define ARG_MASK 0x0f\n");
 
@@ -1222,36 +1222,36 @@ gas ()
   for (i = 0; toks[i].token; i++)
     printf ("#define %s\t0x%x\n", toks[i].token, i * 16);
 #endif
-  printf ("typedef struct {\n");
+  printf ("\ntypedef struct {\n");
 
   printf ("#ifdef NICENAMES\n");
-  printf ("char *nicename;\n");
-  printf ("int type;\n");
-  printf ("int cycles;\n");
-  printf ("int flags;\n");
+  printf ("  const char *nicename;\n");
+  printf ("  int type;\n");
+  printf ("  int cycles;\n");
+  printf ("  int flags;\n");
   printf ("#endif\n");
-  printf ("char *name;\n");
-  printf ("unsigned char opcode;\n");
-  printf ("void (*func) PARAMS ((void));\n");
-  printf ("unsigned int arg_info[4];\n");
-  printf ("unsigned int byte_info[%d];\n", BYTE_INFO_LEN);
-  printf ("int noperands;\n");
-  printf ("int length;\n");
-  printf ("int idx;\n");
-  printf ("} opcode_entry_type;\n");
+  printf ("  const char *name;\n");
+  printf ("  unsigned char opcode;\n");
+  printf ("  void (*func) PARAMS ((void));\n");
+  printf ("  unsigned int arg_info[4];\n");
+  printf ("  unsigned int byte_info[%d];\n", BYTE_INFO_LEN);
+  printf ("  int noperands;\n");
+  printf ("  int length;\n");
+  printf ("  int idx;\n");
+  printf ("} opcode_entry_type;\n\n");
   printf ("#ifdef DEFINE_TABLE\n");
-  printf ("opcode_entry_type z8k_table[] = {\n");
+  printf ("const opcode_entry_type z8k_table[] = {\n");
 
   while (new->flags && new->flags[0])
     {
       int nargs;
       int length;
 
-      printf ("\n\n/* %s *** %s */\n", new->bits, new->name);
+      printf ("\n/* %s *** %s */\n", new->bits, new->name);
       printf ("{\n");
 
       printf ("#ifdef NICENAMES\n");
-      printf ("\"%s\",%d,%d,\n", new->name, new->type, new->cycles);
+      printf ("\"%s\",%d,%d,", new->name, new->type, new->cycles);
       {
        int answer = 0;
        char *p = new->flags;
@@ -1269,7 +1269,7 @@ gas ()
 
       printf ("#endif\n");
 
-      nargs = chewname (new->name);
+      nargs = chewname (&new->name);
 
       printf ("\n\t");
       chewbits (new->bits, &length);
@@ -1277,8 +1277,9 @@ gas ()
       if (length & 1)
        abort();
 
+      if (strcmp (oldname, new->name) != 0)
+       idx++;
       printf (",%d,%d,%d", nargs, length, idx);
-      idx++;
       oldname = new->name;
       printf ("},\n");
       new++;
index 9024bdfdadbf6dd4600e70353b3de4b8d9e1b57d..350defafe1bf8a669f97f33db6d0553da413949d 100644 (file)
@@ -337,3 +337,363 @@ doc/Makefile.in
 
 configure.in
        - changed LIBVERSION to 4.1-beta5
+
+                                3/17/2000
+                                ---------
+[readline-4.1 released]
+
+                                  3/23
+                                  ----
+Makefile.in
+       - remove the `-t' argument to ranlib in the install recipe; some
+         ranlibs don't have it and attempt to create a file named `-t'
+
+                                  3/27
+                                  ----
+support/shlib-install
+       - install shared libraries unwritable by anyone on HP-UX
+       - changed symlinks to relative pathnames on all platforms
+
+shlib/Makefile.in
+       - added missing `includedir' assignment, substituted by configure
+
+Makefile.in
+       - added missing @SET_MAKE@ so configure can set $MAKE appropriately
+
+configure.in
+       - add call to AC_PROG_MAKE_SET
+
+                                  8/30
+                                  ----
+shlib/Makefile.in
+       - change the soname bound into the shared libraries, so it includes
+         only the major version number.  If it includes the minor version,
+         programs depending on it must be rebuilt (which may or may not be
+         a bad thing)
+
+                                   9/6
+                                   ---
+examples/rlfe.c
+       - add -l option to log input and output (-a option appends to logfile)
+       - add -n option to set readline application name
+       - add -v, -h options for version and help information
+       - change a few things because getopt() is now used to parse arguments
+
+                                  9/12
+                                  ----
+support/shlib-install
+       - fix up the libname on HPUX 11
+
+                                  10/18
+                                  -----
+configure.in
+       - changed library version to 4.2-alpha
+
+                                  10/30
+                                  -----
+configure.in
+       - add -fsigned-char to LOCAL_CFLAGS for Linux running on the IBM
+         S/390
+
+Makefile.in
+       - added new file, rltypedefs.h, installed by default with `make install'
+
+                                  11/2
+                                  ----
+compat.c
+       - new file, with backwards-compatibility function definitions
+
+Makefile.in,shlib/Makefile.in
+       - make sure that compat.o/compat.so are built and linked apppropriately
+
+support/shobj-conf
+       - picked up bash version, which means that shared libs built on
+         linux and BSD/OS 4.x will have an soname that does not include
+         the minor version number
+
+                                  11/13
+                                  -----
+examples/rlfe.c
+       - rlfe can perform filename completion for relative pathnames in the
+         inferior process's context if the OS supports /proc/PID/cwd (linux
+         does it OK, Solaris is slightly warped, none of the BSDs have it)
+
+                               11/17/2000
+                               ----------
+[readline-4.2-alpha released]
+
+                                  11/27
+                                  -----
+Makefile.in,shlib/Makefile.in
+       - added dependencies for rltypedefs.h
+
+shlib/Makefile.in
+       - changed dependencies on histlib.h to $(topdir)/histlib.h
+
+                                  1/22
+                                  ----
+configure.in
+       - changed release version to 4.2-beta
+
+                                   2/2
+                                   ---
+examples/Makefile.in
+       - build histexamp as part of the examples
+
+                                   2/5
+                                   ---
+doc/Makefile.in
+       - don't remove the dvi, postscript, html, info, and text `objects'
+         on a `make distclean', only on a `make maintainer-clean'
+
+                                   3/6
+                                   ---
+doc/history.{0,3}, doc/history_3.ps
+       - new manual page for history library
+
+doc/Makefile.in
+       - rules to install and uninstall history.3 in ${man3dir}
+       - rules to build history.0 and history_3.ps
+
+                                   4/2
+                                   ---
+configure.in
+       - changed LIBVERSION to `4.2'
+
+                                   4/5
+                                   ---
+[readline-4.2 frozen]
+
+                                   4/9
+                                   ---
+[readline-4.2 released]
+
+                                   5/2
+                                   ---
+Makefile.in,{doc,examples,shlib}/Makefile.in
+       - added support for DESTDIR installation root prefix, to support
+         building packages
+
+doc/Makefile.in
+       - add an info `dir' file entry for rluserman.info on `make install'
+       - change man1ext to `.1' and man3ext to `.3'
+       - install man pages with a $(man3ext) extension in the target directory
+       - add support for installing html documentation if `htmldir' has a
+         value
+
+Makefile.in
+       - on `make install', install from the `shlib' directory, too
+       - on `make uninstall', uninstall in the `doc' and `shlib'
+         subdirectories, too
+
+support/shlib-install
+       - add `freebsdelf*', `freebsdaout*', Hurd, `sysv4*', `sysv5*', `dgux*'
+         targets for symlink creation
+
+                                   5/7
+                                   ---
+configure.in, config.h.in
+       - check for <limits.h>, define HAVE_LIMITS_H if found
+
+                                   5/8
+                                   ---
+aclocal.m4
+       - pick up change to BASH_CHECK_LIB_TERMCAP that adds check for
+         libtinfo (termcap-specific portion of ncurses-5.2)
+
+                                   5/9
+                                   ---
+configure.in
+       - call AC_C_CONST to find out whether or not the compiler supports
+         `const'
+
+config.h.in
+       - placeholder for `const' define, if any
+
+                                  5/10
+                                  ----
+configure.in
+       - fix AC_CHECK_PROG(ar, ...) test to specify right value for the
+         case where ar is not found; should produce a better error message
+
+                                  5/14
+                                  ----
+configure.in,config.h.in
+       - check for vsnprintf, define HAVE_VSNPRINTF if found
+
+                                  5/21
+                                  ----
+configure.in, config.h.in
+       - add checks for size_t, ssize_t
+
+                                  5/30
+                                  ----
+configure.in
+       - update autoconf to version 2.50, use in AC_PREREQ
+       - changed AC_INIT to new flavor
+       - added AC_CONFIG_SRCDIR
+       - AC_CONFIG_HEADER -> AC_CONFIG_HEADERS
+       - call AC_C_PROTOTYPES
+       - AC_RETSIGTYPE -> AC_TYPE_SIGNAL
+
+                                  8/22
+                                  ----
+configure.in
+       - updated the version number to 4.2a
+
+Makefile.in,shlib/Makefile.in
+       - make sure tilde.o is built -DREADLINE_LIBRARY when being built as
+         part of the standalone library, so it picks up the right include
+         files
+
+                                  8/23
+                                  ----
+support/shlib-install
+       - support for Darwin/MacOS X shared library installation
+
+                                  9/24
+                                  ----
+examples/readlinebuf.h
+       - a new file, a C++ streambuf interface that uses readline for I/O.
+         Donated by Dimitris Vyzovitis <vyzo@media.mit.edu>
+
+                                  10/9
+                                  ----
+configure.in
+        - replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ
+
+[readline-4.2a-beta1 frozen]
+
+                                  10/15
+                                  -----
+configure.in, config.h.in
+       - check for <memory.h>, define HAVE_MEMORY_H if found
+       - check for <strings.h>, define HAVE_STRINGS_H if found
+
+                                  10/18
+                                  -----
+configure.in, config.h.in
+       - check for isascii, define HAVE_ISASCII if found
+
+configure.in
+       - changed the macro names from bash as appropriate:
+               BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE
+               BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS
+               BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T
+
+                                  10/22
+                                  -----
+configure.in
+       - check for isxdigit with AC_CHECK_FUNCS
+
+config.h.in
+       - new define for HAVE_ISXDIGIT
+
+                                  10/29
+                                  -----
+configure.in, config.h.in
+       - check for strpbrk with AC_CHECK_FUNCS, define HAVE_STRPBRK if found
+
+                                   11/1
+                                   ----
+Makefile.in
+       - make sure DESTDIR is passed to install and uninstall makes in
+         subdirectories
+       - when saving old copies of installed libraries, make sure we use
+         DESTDIR for the old installation tree
+
+[readline-4.2a-rc1 frozen]
+
+                                  11/2
+                                  ----
+Makefile.in, shlib/Makefile.in
+       - don't put -I$(includedir) into CFLAGS
+
+                                  11/15
+                                  -----
+[readline-4.2a released]
+
+                                  11/20
+                                  -----
+examples/rlcat.c
+       - new file
+
+examples/Makefile.in
+       - changes for rlcat
+
+                                  11/28
+                                  -----
+configure.in
+       - default TERMCAP_LIB to -lcurses if $prefer_curses == yes (as when
+         --with-curses is supplied)
+
+examples/Makefile.in
+       - substitute @LDFLAGS@ in LDFLAGS assignment
+
+                                  11/29
+                                  -----
+config.h.in
+       - add necessary defines for multibyte include files and functions
+       - add code to define HANDLE_MULTIBYTE if prerequisites are met
+
+configure.in
+       - call BASH_CHECK_MULTIBYTE
+
+                                  12/14
+                                  -----
+config.h.in
+       - add #undef PROTOTYPES, filled in by AC_C_PROTOTYPES
+
+                                  12/17
+                                  -----
+config.h.in
+       - moved HANDLE_MULTIBYTE code to rlmbutil.h
+
+rlmbutil.h, mbutil.c
+       - new files
+
+Makefile.in, shlib/Makefile.in
+       - added rules for mbutil.c
+
+                                  12/20
+                                  -----
+configure.in
+       - added --enable-shared, --enable-static options to configure to
+         say which libraries are built by default (both default to yes)
+       - if SHLIB_STATUS == 'unsupported', turn off default shared library
+         building
+       - substitute new STATIC_TARGET, SHARED_TARGET, STATIC_INSTALL_TARGET,
+         and SHARED_INSTALL_TARGET
+
+Makefile.in
+       - `all' target now depends on (substituted) @STATIC_TARGET@ and
+         @SHARED_TARGET@
+       - `install' target now depends on (substituted) @STATIC_INSTALL_TARGET@
+         and @SHARED_INSTALL_TARGET@
+
+INSTALL, README
+       - updated with new info about --enable-shared and --enable-static
+
+                                1/10/2002
+                                ---------
+configure.in
+       - bumped the library version number to 4.3
+
+                                  1/24
+                                  ----
+Makefile.in,shlib/Makefile.in
+       - changes for new file, text.c, with character and text handling
+         functions from readline.c
+
+                                  2/20
+                                  ----
+{configure.config.h}.in
+       - call AC_C_CHAR_UNSIGNED, define __CHAR_UNSIGNED__ if chars are
+         unsigned by default
+
+                                  5/20
+                                  ----
+doc/Makefile.in
+       - new maybe-clean target that removes the generated documentation if
+         the build directory differs from the source directory
+       - distclean target now depends on maybe-clean
index d2929ab6fd2767bbc1088b4141db5c844655fa78..bc9fe94e9925e1ddcb4aea34c131b92de2fcdbee 100644 (file)
@@ -1,3 +1,314 @@
+This document details the changes between this version, readline-4.3,
+and the previous version, readline-4.2a.
+
+1.  Changes to Readline
+
+a.  Fixed output of comment-begin character when listing variable values.
+
+b.  Added some default key bindings for common escape sequences produced by
+    HOME and END keys.
+
+c.  Fixed the mark handling code to be more emacs-compatible.
+
+d.  A bug was fixed in the code that prints possible completions to keep it
+    from printing empty strings in certain circumstances.
+
+e.  Change the key sequence printing code to print ESC as M\- if ESC is a
+    meta-prefix character -- it's easier for users to understand than \e.
+
+f.  Fixed unstifle_history() to return values that match the documentation.
+
+g.  Fixed the event loop (rl_event_hook) to handle the case where the input
+    file descriptor is invalidated.
+
+h.  Fixed the prompt display code to work better when the application has a
+    custom redisplay function.
+
+i.  Changes to make reading and writing the history file a little faster, and
+    to cope with huge history files without calling abort(3) from xmalloc.
+
+j.  The vi-mode `S' and `s' commands are now undone correctly.
+
+k.  Fixed a problem which caused the display to be messed up when the last
+    line of a multi-line prompt (possibly containing invisible characters)
+    was longer than the screen width.
+
+2.  New Features in Readline
+
+a.  Support for key `subsequences':  allows, e.g., ESC and ESC-a to both
+    be bound to readline functions.  Now the arrow keys may be used in vi
+    insert mode.
+
+b.  When listing completions, and the number of lines displayed is more than
+    the screen length, readline uses an internal pager to display the results.
+    This is controlled by the `page-completions' variable (default on).
+
+c.  New code to handle editing and displaying multibyte characters.
+
+d.  The behavior introduced in bash-2.05a of deciding whether or not to
+    append a slash to a completed name that is a symlink to a directory has
+    been made optional, controlled by the `mark-symlinked-directories'
+    variable (default is the 2.05a behavior).
+
+e.  The `insert-comment' command now acts as a toggle if given a numeric
+    argument:  if the first characters on the line don't specify a
+    comment, insert one; if they do, delete the comment text
+
+f.  New application-settable completion variable:
+    rl_completion_mark_symlink_dirs, allows an application's completion
+    function to temporarily override the user's preference for appending
+    slashes to names which are symlinks to directories.
+
+g.  New function available to application completion functions:
+    rl_completion_mode, to tell how the completion function was invoked
+    and decide which argument to supply to rl_complete_internal (to list
+    completions, etc.).
+
+h.  Readline now has an overwrite mode, toggled by the `overwrite-mode'
+    bindable command, which could be bound to `Insert'.
+
+i.  New application-settable completion variable:
+    rl_completion_suppress_append, inhibits appending of
+    rl_completion_append_character to completed words.
+
+j.  New key bindings when reading an incremental search string:  ^W yanks
+    the currently-matched word out of the current line into the search
+    string; ^Y yanks the rest of the current line into the search string,
+    DEL or ^H deletes characters from the search string.
+
+-------------------------------------------------------------------------------
+This document details the changes between this version, readline-4.2a,
+and the previous version, readline-4.2.
+
+1.  Changes to Readline
+
+a.  More `const' and type casting fixes.
+
+b.  Changed rl_message() to use vsnprintf(3) (if available) to fix buffer
+    overflow problems.
+
+c.  The completion code no longer appends a `/' or ` ' to a match when
+    completing a symbolic link that resolves to a directory name, unless
+    the match does not add anything to the word being completed.  This
+    means that a tab will complete the word up to the full name, but not
+    add anything, and a subsequent tab will add a slash.
+
+d.  Fixed a trivial typo that made the vi-mode `dT' command not work.
+
+e.  Fixed the tty code so that ^S and ^Q can be inserted with rl_quoted_insert.
+
+f.  Fixed the tty code so that ^V works more than once.
+
+g.  Changed the use of __P((...)) for function prototypes to PARAMS((...))
+    because the use of __P in typedefs conflicted g++ and glibc.
+
+h.  The completion code now attempts to do a better job of preserving the
+    case of the word the user typed if ignoring case in completions.
+
+i.  Readline defaults to not echoing the input and lets the terminal
+    initialization code enable echoing if there is a controlling terminal.
+
+j.  The key binding code now processes only two hex digits after a `\x'
+    escape sequence, and the documentation was changed to note that the
+    octal and hex escape sequences result in an eight-bit value rather
+    than strict ASCII.
+
+k.  Fixed a few places where negative array subscripts could have occurred.
+    
+l.  Fixed the vi-mode code to use a better method to determine the bounds of
+    the array used to hold the marks, and to avoid out-of-bounds references.
+    
+m.  Fixed the defines in chardefs.h to work better when chars are signed.
+    
+n.  Fixed configure.in to use the new names for bash autoconf macros.
+    
+o.  Readline no longer attempts to define its own versions of some ctype
+    macros if they are implemented as functions in libc but not as macros in
+    <ctype.h>.
+
+p.  Fixed a problem where rl_backward could possibly set point to before
+    the beginning of the line.
+
+q.  Fixed Makefile to not put -I/usr/include into CFLAGS, since it can cause
+    include file problems.
+
+2.  New Features in Readline
+
+a.  Added extern declaration for rl_get_termcap to readline.h, making it a
+    public function (it was always there, just not in readline.h).
+
+b.  New #defines in readline.h:  RL_READLINE_VERSION, currently 0x0402,
+    RL_VERSION_MAJOR, currently 4, and RL_VERSION_MINOR, currently 2.
+
+c.  New readline variable:  rl_readline_version, mirrors RL_READLINE_VERSION.
+
+d.  New bindable boolean readline variable:  match-hidden-files.  Controls
+    completion of files beginning with a `.' (on Unix).  Enabled by default.
+
+e.  The history expansion code now allows any character to terminate a
+    `:first-' modifier, like csh.
+
+f.  The incremental search code remembers the last search string and uses
+    it if ^R^R is typed without a search string.
+
+h.  New bindable variable `history-preserve-point'.  If set, the history
+    code attempts to place the user at the same location on each history
+    line retrived with previous-history or next-history.
+
+-------------------------------------------------------------------------------
+This document details the changes between this version, readline-4.2,
+and the previous version, readline-4.1.
+
+1.  Changes to Readline
+
+a.  When setting the terminal attributes on systems using `struct termio',
+    readline waits for output to drain before changing the attributes.
+
+b.  A fix was made to the history word tokenization code to avoid attempts to
+    dereference a null pointer.
+
+c.  Readline now defaults rl_terminal_name to $TERM if the calling application
+    has left it unset, and tries to initialize with the resultant value.
+
+d.  Instead of calling (*rl_getc_function)() directly to get input in certain
+    places, readline now calls rl_read_key() consistently.
+
+e.  Fixed a bug in the completion code that allowed a backslash to quote a
+    single quote inside a single-quoted string.
+
+f.  rl_prompt is no longer assigned directly from the argument to readline(),
+    but uses memory allocated by readline.  This allows constant strings to
+    be passed to readline without problems arising when the prompt processing
+    code wants to modify the string.
+
+g.  Fixed a bug that caused non-interactive history searches to return the
+    wrong line when performing multiple searches backward for the same string.
+
+h.  Many variables, function arguments, and function return values are now
+    declared `const' where appropriate, to improve behavior when linking with
+    C++ code.
+
+i.  The control character detection code now works better on systems where
+    `char' is unsigned by default.
+
+j.  The vi-mode numeric argument is now capped at 999999, just like emacs mode.
+
+k.  The Function, CPFunction, CPPFunction, and VFunction typedefs have been
+    replaced with a set of specific prototyped typedefs, though they are
+    still in the readline header files for backwards compatibility.
+
+m.  Nearly all of the (undocumented) internal global variables in the library
+    now have an _rl_ prefix -- there were a number that did not, like
+    screenheight, screenwidth, alphabetic, etc.
+
+n.  The ding() convenience function has been renamed to rl_ding(), though the
+    old function is still defined for backwards compatibility.
+
+o.  The completion convenience functions filename_completion_function,
+    username_completion_function, and completion_matches now have an rl_
+    prefix, though the old names are still defined for backwards compatibility.
+
+p.  The functions shared by readline and bash (linkage is satisfied from bash
+    when compiling with bash, and internally otherwise) now have an sh_ prefix.
+
+q.  Changed the shared library creation procedure on Linux and BSD/OS 4.x so
+    that the `soname' contains only the major version number rather than the
+    major and minor numbers.
+
+r.  Fixed a redisplay bug that occurred when the prompt spanned more than one
+    physical line and contained invisible characters.
+
+s.  Added a missing `includedir' variable to the Makefile.
+
+t.  When installing the shared libraries, make sure symbolic links are relative.
+
+u.  Added configure test so that it can set `${MAKE}' appropriately.
+
+v.  Fixed a bug in rl_forward that could cause the point to be set to before
+    the beginning of the line in vi mode.
+
+w.  Fixed a bug in the callback read-char interface to make it work when a
+    readline function pushes some input onto the input stream with
+    rl_execute_next (like the incremental search functions).
+
+x.  Fixed a file descriptor leak in the history file manipulation code that
+    was tripped when attempting to truncate a non-regular file (like
+    /dev/null).
+
+y.  Changes to make all of the exported readline functions declared in
+    readline.h have an rl_ prefix (rltty_set_default_bindings is now
+    rl_tty_set_default_bindings, crlf is now rl_crlf, etc.)
+
+z.  The formatted documentation included in the base readline distribution
+    is no longer removed on a `make distclean'.
+
+aa. Some changes were made to avoid gcc warnings with -Wall.
+
+bb. rl_get_keymap_by_name now finds keymaps case-insensitively, so
+    `set keymap EMACS' works.
+
+cc. The history file writing and truncation functions now return a useful
+    status on error.
+
+dd. Fixed a bug that could cause applications to dereference a NULL pointer
+    if a NULL second argument was passed to history_expand().
+
+ee. If a hook function assigned to rl_event_hook sets rl_done to a non-zero
+    value, rl_read_key() now immediately returns '\n' (which is assumed to   
+    be bound to accept-line).
+
+2.  New Features in Readline
+
+a.  The blink timeout for paren matching is now settable by applications,
+    via the rl_set_paren_blink_timeout() function.
+
+b.  _rl_executing_macro has been renamed to rl_executing_macro, which means
+    it's now part of the public interface.
+
+c.  Readline has a new variable, rl_readline_state, which is a bitmap that
+    encapsulates the current state of the library; intended for use by
+    callbacks and hook functions.
+
+d.  rlfe has a new -l option to log input and output (-a appends to logfile),
+    a new -n option to set the readline application name, and -v and -h
+    options for version and help information.
+
+e.  rlfe can now perform filename completion for the inferior process if the
+    OS has a /proc/<PID>/cwd that can be read with readlink(2) to get the
+    inferior's current working directory.
+
+f.  A new file, rltypedefs.h, contains the new typedefs for function pointers
+    and is installed by `make install'.
+
+g.  New application-callable function rl_set_prompt(const char *prompt):
+    expands its prompt string argument and sets rl_prompt to the result.
+
+h.  New application-callable function rl_set_screen_size(int rows, int cols):
+    public method for applications to set readline's idea of the screen
+    dimensions.
+
+i.  The history example program (examples/histexamp.c) is now built as one
+    of the examples.
+
+j.  The documentation has been updated to cover nearly all of the public
+    functions and variables declared in readline.h.
+
+k.  New function, rl_get_screen_size (int *rows, int *columns), returns
+    readline's idea of the screen dimensions.
+
+l.  The timeout in rl_gather_tyi (readline keyboard input polling function)
+    is now settable via a function (rl_set_keyboard_input_timeout()).
+
+m.  Renamed the max_input_history variable to history_max_entries; the old
+    variable is maintained for backwards compatibility.
+
+n.  The list of characters that separate words for the history tokenizer is
+    now settable with a variable:  history_word_delimiters.  The default
+    value is as before.
+
+o.  There is a new history.3 manual page documenting the history library.
+
+-------------------------------------------------------------------------------
 This document details the changes between this version, readline-4.1,
 and the previous version, readline-4.0.
 
index 403d870d66ceb71996b5716dda6698a7bde4a313..022d139ecc997f87a049d6c7117791295d9c28b3 100644 (file)
@@ -1,3 +1,42 @@
+2002-12-16  Christopher Faylor  <cgf@redhat.com>
+
+       * configure.in: Remove --enable-shared option.  It shouldn't be used
+       for gdb.
+       * configure: Regenerate.
+
+2002-12-16  Christopher Faylor  <cgf@redhat.com>
+
+       * config/cygwin.cache: Prime mbstate_t.
+
+2002-12-06  Elena Zannoni  <ezannoni@redhat.com>
+
+        Import of readline 4.3:
+
+        * compat.c, mbutil.c, misc.c, rlmbutil.h, rltypedefs.h,
+        text.c, doc/history.0, doc/history.3, support/wcwidth.c,
+        examples/readlinebuf.h, examples/rlcat.c: New files.
+
+        * CHANGELOG, CHANGES, INSTALL,  MANIFEST, Makefile.in, README,
+        aclocal.m4, ansi_stdlib.h, bind.c, callback.c, chardefs.h,
+        complete.c, config.h.in, configure, configure.in, display.c,
+        emacs_keymap.c, funmap.c, histexpand.c, histfile.c, histlib.h,
+        history.c, history.h, histsearch.c, input.c, isearch.c,
+        keymaps.c, keymaps.h, kill.c, macro.c, nls.c, parens.c,
+        posixdir.h, readline.c, readline.h, rlconf.h, rldefs.h,
+        rlprivate.h, rlshell.h, rlstdc.h, rltty.c, savestring.c,
+        search.c, shell.c, signals.c, terminal.c, tilde.c, tilde.h,
+        undo.c, util.c, vi_keymap.c, vi_mode.c, xmalloc.c, xmalloc.h,
+        doc/Makefile.in, doc/hist.texinfo, doc/hstech.texinfo,
+        doc/hsuser.texinfo, doc/manvers.texinfo, doc/readline.3,
+        doc/rlman.texinfo, doc/rltech.texinfo, doc/rluser.texinfo
+        doc/rluserman.texinfo, doc/texi2dvi, doc/texi2html,
+        shlib/Makefile.in, support/install.sh, support/mkdirs,
+        support/mkdist, support/shlib-install, support/shobj-conf,
+        examples/Inputrc, examples/Makefile.in, examples/fileman.c,
+        examples/histexamp.c, examples/manexamp.c, examples/rl.c,
+        examples/rlfe.c, examples/rltest.c, examples/rlversion.c:
+        Modified files.
+
 2002-08-23  Andrew Cagney  <ac131313@redhat.com>
 
        * support/config.guess: Import version 2002-08-23.
index 95d84c820fb8382b4f2d9daa044f626739ba0254..adb27a9f222d08ffe3f95d5d2530dc9fdcf6bff1 100644 (file)
@@ -1,73 +1,81 @@
 Basic Installation
 ==================
 
-   These are generic installation instructions.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
-   If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
-   The file `configure.in' is used to create `configure' by a program
-called `autoconf'.  You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
+These are installation instructions for Readline-4.3.
+
+The simplest way to compile readline is:
+
+  1. `cd' to the directory containing the readline source code and type
+     `./configure' to configure readline for your system.  If you're
      using `csh' on an old version of System V, you might need to type
      `sh ./configure' instead to prevent `csh' from trying to execute
      `configure' itself.
 
-     Running `configure' takes awhile.  While running, it prints some
+     Running `configure' takes some time.  While running, it prints some
      messages telling which features it is checking for.
 
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
+  2. Type `make' to compile readline and build the static readline
+     and history libraries.  If supported, the shared readline and history
+     libraries will be built also.  See below for instructions on compiling
+     the other parts of the distribution.  Typing `make everything' will
+     cause the static and shared libraries (if supported) and the example
+     programs to be built.
 
-  4. Type `make install' to install the programs and any data files and
-     documentation.
+  3. Type `make install' to install the static readline and history
+     libraries, the readline include files, the documentation, and, if
+     supported, the shared readline and history libraries.
 
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
+  4. You can remove the created libraries and object files from the
+     build directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile readline for
      a different kind of computer), type `make distclean'.  There is
      also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
+     for the readline developers, and should be used with care.
+
+The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It
+uses those values to create a `Makefile' in the build directory,
+and Makefiles in the `doc', `shlib', and `examples'
+subdirectories.  It also creates a `config.h' file containing
+system-dependent definitions.  Finally, it creates a shell script
+`config.status' that you can run in the future to recreate the
+current configuration, a file `config.cache' that saves the
+results of its tests to speed up reconfiguring, and a file
+`config.log' containing compiler output (useful mainly for
+debugging `configure'). 
+
+If you need to do unusual things to compile readline, please try
+to figure out how `configure' could check whether to do them, and
+mail diffs or instructions to <bug-readline@gnu.org> so they can
+be considered for the next release.  If at some point
+`config.cache' contains results you don't want to keep, you may
+remove or edit it. 
+
+The file `configure.in' is used to create `configure' by a
+program called `autoconf'.  You only need `configure.in' if you
+want to change it or regenerate `configure' using a newer version
+of `autoconf'.  The readline `configure.in' requires autoconf
+version 2.50 or newer. 
 
 Compilers and Options
 =====================
 
-   Some systems require unusual options for compilation or linking that
+Some systems require unusual options for compilation or linking that
 the `configure' script does not know about.  You can give `configure'
 initial values for variables by setting them in the environment.  Using
 a Bourne-compatible shell, you can do that on the command line like
 this:
+
      CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
 
 Or on systems that have the `env' program, you can do it like this:
+
      env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
 
 Compiling For Multiple Architectures
 ====================================
 
-   You can compile the package for more than one kind of computer at the
+You can compile readline for more than one kind of computer at the
 same time, by placing the object files for each architecture in their
 own directory.  To do this, you must use a version of `make' that
 supports the `VPATH' variable, such as GNU `make'.  `cd' to the
@@ -75,80 +83,59 @@ directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
 source code in the directory that `configure' is in and in `..'.
 
-   If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory.  After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
+If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile readline for one architecture at a
+time in the source code directory.  After you have installed
+readline for one architecture, use `make distclean' before
+reconfiguring for another architecture. 
 
 Installation Names
 ==================
 
-   By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-   Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
+By default, `make install' will install the readline libraries in
+`/usr/local/lib', the include files in
+`/usr/local/include/readline', the man pages in `/usr/local/man',
+and the info files in `/usr/local/info'.  You can specify an
+installation prefix other than `/usr/local' by giving `configure'
+the option `--prefix=PATH' or by supplying a value for the
+DESTDIR variable when running `make install'. 
+
+You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. 
+If you give `configure' the option `--exec-prefix=PATH', the
+readline Makefiles will use PATH as the prefix for installing the
+libraries.  Documentation and other data files will still use the
+regular prefix. 
 
 Specifying the System Type
 ==========================
 
-   There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on.  Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
-     CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
+There may be some features `configure' can not figure out
+automatically, but need to determine by the type of host readline
+will run on.  Usually `configure' can figure that out, but if it
+prints a message saying it can not guess the host type, give it
+the `--host=TYPE' option.  TYPE can either be a short name for
+the system type, such as `sun4', or a canonical name with three
+fields: CPU-COMPANY-SYSTEM (e.g., i386-unknown-freebsd4.2). 
 
-   If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
+See the file `config.sub' for the possible values of each field.
 
 Sharing Defaults
 ================
 
-   If you want to set default values for `configure' scripts to share,
+If you want to set default values for `configure' scripts to share,
 you can create a site shell script called `config.site' that gives
 default values for variables like `CC', `cache_file', and `prefix'.
 `configure' looks for `PREFIX/share/config.site' if it exists, then
 `PREFIX/etc/config.site' if it exists.  Or, you can set the
 `CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
+A warning: the readline `configure' looks for a site script, but not
+all `configure' scripts do.
 
 Operation Controls
 ==================
 
-   `configure' recognizes the following options to control how it
+`configure' recognizes the following options to control how it
 operates.
 
 `--cache-file=FILE'
@@ -174,3 +161,113 @@ operates.
 
 `configure' also accepts some other, not widely useful, options.
 
+Optional Features
+=================
+
+The readline `configure' recognizes a single `--with-PACKAGE' option:
+
+`--with-curses'
+    This tells readline that it can find the termcap library functions
+    (tgetent, et al.) in the curses library, rather than a separate
+    termcap library.  Readline uses the termcap functions, but does not
+    link with the termcap or curses library itself, allowing applications
+    which link with readline the to choose an appropriate library.
+    This option tells readline to link the example programs with the
+    curses library rather than libtermcap.
+
+`configure' also recognizes two `--enable-FEATURE' options:
+
+`--enable-shared'
+    Build the shared libraries by default on supported platforms.  The
+    default is `yes'.
+
+`--enable-static'
+    Build the static libraries by default.  The default is `yes'.
+Shared Libraries
+================
+
+There is support for building shared versions of the readline and
+history libraries.  The configure script creates a Makefile in
+the `shlib' subdirectory, and typing `make shared' will cause
+shared versions of the readline and history libraries to be built
+on supported platforms.
+
+If `configure' is given the `--enable-shared' option, it will attempt
+to build the shared libraries by default on supported platforms.
+
+Configure calls the script support/shobj-conf to test whether or
+not shared library creation is supported and to generate the values
+of variables that are substituted into shlib/Makefile.  If you
+try to build shared libraries on an unsupported platform, `make'
+will display a message asking you to update support/shobj-conf for
+your platform.
+
+If you need to update support/shobj-conf, you will need to create
+a `stanza' for your operating system and compiler.  The script uses
+the value of host_os and ${CC} as determined by configure.  For
+instance, FreeBSD 4.2 with any version of gcc is identified as
+`freebsd4.2-gcc*'.
+
+In the stanza for your operating system-compiler pair, you will need to
+define several variables.  They are:
+
+SHOBJ_CC       The C compiler used to compile source files into shareable
+               object files.  This is normally set to the value of ${CC}
+               by configure, and should not need to be changed.
+
+SHOBJ_CFLAGS   Flags to pass to the C compiler ($SHOBJ_CC) to create
+               position-independent code.  If you are using gcc, this
+               should probably be set to `-fpic'.
+
+SHOBJ_LD       The link editor to be used to create the shared library from
+               the object files created by $SHOBJ_CC.  If you are using
+               gcc, a value of `gcc' will probably work.
+
+SHOBJ_LDFLAGS  Flags to pass to SHOBJ_LD to enable shared object creation.
+               If you are using gcc, `-shared' may be all that is necessary.
+               These should be the flags needed for generic shared object
+               creation.
+
+SHLIB_XLDFLAGS Additional flags to pass to SHOBJ_LD for shared library
+               creation.  Many systems use the -R option to the link
+               editor to embed a path within the library for run-time
+               library searches.  A reasonable value for such systems would
+               be `-R$(libdir)'.
+
+SHLIB_LIBS     Any additional libraries that shared libraries should be
+               linked against when they are created.
+
+SHLIB_LIBSUFF  The suffix to add to `libreadline' and `libhistory' when
+               generating the filename of the shared library.  Many systems
+               use `so'; HP-UX uses `sl'.
+
+SHLIB_LIBVERSION The string to append to the filename to indicate the version
+               of the shared library.  It should begin with $(SHLIB_LIBSUFF),
+               and possibly include version information that allows the
+               run-time loader to load the version of the shared library
+               appropriate for a particular program.  Systems using shared
+               libraries similar to SunOS 4.x use major and minor library
+               version numbers; for those systems a value of
+               `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' is appropriate.
+               Systems based on System V Release 4 don't use minor version
+               numbers; use `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' on those systems.
+               Other Unix versions use different schemes.
+
+SHLIB_STATUS   Set this to `supported' when you have defined the other
+               necessary variables.  Make uses this to determine whether
+               or not shared library creation should be attempted.  If
+               shared libraries are not supported, this will be set to
+               `unsupported'.
+
+You should look at the existing stanzas in support/shobj-conf for ideas.
+
+Once you have updated support/shobj-conf, re-run configure and type
+`make shared' or `make'.  The shared libraries will be created in the
+shlib subdirectory.
+
+If shared libraries are created, `make install' will install them. 
+You may install only the shared libraries by running `make
+install-shared' from the top-level build directory.  Running `make
+install' in the shlib subdirectory will also work.  If you don't want
+to install any created shared libraries, run `make install-static'. 
index a51ca0525a74addadd24865f9b8637ea03f2979e..1507eda6f94711740917d8ec1707b8c8be4bfdf6 100644 (file)
@@ -28,15 +28,19 @@ posixstat.h f
 readline.h     f
 rlconf.h       f
 rldefs.h       f
+rlmbutil.h     f
 rlprivate.h    f
 rlshell.h      f
 rlstdc.h       f
 rltty.h                f
+rltypedefs.h   f
 rlwinsize.h    f
 tcap.h         f
 tilde.h                f
 xmalloc.h      f
 bind.c         f
+callback.c     f
+compat.c       f
 complete.c     f
 display.c      f
 emacs_keymap.c f
@@ -46,6 +50,8 @@ isearch.c     f
 keymaps.c      f
 kill.c         f
 macro.c                f
+mbutil.c       f
+misc.c         f
 nls.c          f
 parens.c       f
 readline.c     f
@@ -55,12 +61,12 @@ search.c    f
 shell.c                f
 signals.c      f
 terminal.c     f
+text.c         f
 tilde.c                f
 undo.c         f
 util.c         f
 vi_keymap.c    f
 vi_mode.c      f
-callback.c     f
 xmalloc.c      f
 history.c      f
 histexpand.c   f
@@ -74,6 +80,7 @@ support/mkdirs                f
 support/mkdist         f
 support/shobj-conf     f
 support/shlib-install  f
+support/wcwidth.c      f
 doc/Makefile.in                f
 doc/texinfo.tex                f
 doc/manvers.texinfo    f
@@ -85,12 +92,15 @@ doc/hist.texinfo    f
 doc/hstech.texinfo     f
 doc/hsuser.texinfo     f
 doc/readline.3         f
+doc/history.3          f
 doc/texi2dvi           f
 doc/texi2html          f
 examples/Makefile.in   f
 examples/excallback.c  f
 examples/fileman.c     f
 examples/manexamp.c    f
+examples/readlinebuf.h f
+examples/rlcat.c       f
 examples/rlfe.c                f
 examples/rltest.c      f
 examples/rl.c          f
@@ -111,3 +121,6 @@ doc/readline.html   f
 doc/history.html       f
 doc/rluserman.html     f
 doc/readline.0         f
+doc/history.0          f
+doc/readline_3.ps      f
+doc/history_3.ps       f
index 3069ff7885e150a42057fdeac8ca92bc48c49d9d..720fb399fa977294a7b52f07d4bd77aa84159630 100644 (file)
@@ -35,6 +35,7 @@ RM = rm -f
 CP = cp
 MV = mv
 
+@SET_MAKE@
 SHELL = @MAKE_SHELL@
 
 prefix = @prefix@
@@ -49,6 +50,9 @@ infodir = @infodir@
 
 man3dir = $(mandir)/man3
 
+# Support an alternate destination root directory for package building
+DESTDIR =
+
 # Programs to make tags files.
 ETAGS = etags -tw
 CTAGS = ctags -tw
@@ -63,9 +67,16 @@ LOCAL_DEFS = @LOCAL_DEFS@
 TERMCAP_LIB = @TERMCAP_LIB@
 
 # For libraries which include headers from other libraries.
-INCLUDES = -I. -I$(srcdir) -I$(includedir)
+INCLUDES = -I. -I$(srcdir)
+
+XCCFLAGS = $(DEFS) $(LOCAL_DEFS) $(CPPFLAGS) $(INCLUDES)
+CCFLAGS = $(XCCFLAGS) $(LOCAL_CFLAGS) $(CFLAGS)
 
-CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(CPPFLAGS) $(INCLUDES) $(LOCAL_CFLAGS) $(CFLAGS)
+# could add -Werror here
+GCC_LINT_FLAGS = -ansi -Wall -Wshadow -Wpointer-arith -Wcast-qual \
+                -Wwrite-strings -Wstrict-prototypes \
+                -Wmissing-prototypes -Wno-implicit -pedantic
+GCC_LINT_CFLAGS = $(XCCFLAGS) $(GCC_LINT_FLAGS) @CFLAGS@ @LOCAL_CFLAGS@
 
 .c.o:
        ${RM} $@
@@ -85,19 +96,22 @@ CSOURCES = $(srcdir)/readline.c $(srcdir)/funmap.c $(srcdir)/keymaps.c \
           $(srcdir)/callback.c $(srcdir)/terminal.c $(srcdir)/xmalloc.c \
           $(srcdir)/history.c $(srcdir)/histsearch.c $(srcdir)/histexpand.c \
           $(srcdir)/histfile.c $(srcdir)/nls.c $(srcdir)/search.c \
-          $(srcdir)/shell.c $(srcdir)/savestring.c $(srcdir)/tilde.c
+          $(srcdir)/shell.c $(srcdir)/savestring.c $(srcdir)/tilde.c \
+          $(srcdir)/text.c $(srcdir)/misc.c $(srcdir)/compat.c \
+          $(srcdir)/mbutil.c
 
 # The header files for this library.
 HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \
           posixstat.h posixdir.h posixjmp.h tilde.h rlconf.h rltty.h \
-          ansi_stdlib.h tcap.h rlstdc.h xmalloc.h rlprivate.h rlshell.h
+          ansi_stdlib.h tcap.h rlstdc.h xmalloc.h rlprivate.h rlshell.h \
+          rltypedefs.h rlmbutil.h
 
-HISTOBJ = history.o histexpand.o histfile.o histsearch.o shell.o 
+HISTOBJ = history.o histexpand.o histfile.o histsearch.o shell.o mbutil.o
 TILDEOBJ = tilde.o
 OBJECTS = readline.o vi_mode.o funmap.o keymaps.o parens.o search.o \
          rltty.o complete.o bind.o isearch.o display.o signals.o \
          util.o kill.o undo.o macro.o input.o callback.o terminal.o \
-         nls.o xmalloc.o $(HISTOBJ) $(TILDEOBJ)
+         text.o nls.o misc.o compat.o xmalloc.o $(HISTOBJ) $(TILDEOBJ)
 
 # The texinfo files which document this library.
 DOCSOURCE = doc/rlman.texinfo doc/rltech.texinfo doc/rluser.texinfo
@@ -111,13 +125,15 @@ CREATED_CONFIGURE = config.status config.h config.cache config.log \
 CREATED_TAGS = TAGS tags
 
 INSTALLED_HEADERS = readline.h chardefs.h keymaps.h history.h tilde.h \
-                   rlstdc.h rlconf.h
+                   rlstdc.h rlconf.h rltypedefs.h
 
 ##########################################################################
+TARGETS = @STATIC_TARGET@ @SHARED_TARGET@
+INSTALL_TARGETS = @STATIC_INSTALL_TARGET@ @SHARED_INSTALL_TARGET@
 
-all: static
+all: $(TARGETS)
 
-everything: static shared examples
+everything: all examples
 
 static: $(STATIC_LIBS)
 
@@ -131,9 +147,18 @@ libhistory.a: $(HISTOBJ) xmalloc.o
        $(AR) $(ARFLAGS) $@ $(HISTOBJ) xmalloc.o
        -test -n "$(RANLIB)" && $(RANLIB) $@
 
+# Since tilde.c is shared between readline and bash, make sure we compile
+# it with the right flags when it's built as part of readline
+tilde.o:       tilde.c
+       rm -f $@
+       $(CC) $(CCFLAGS) -DREADLINE_LIBRARY -c $(srcdir)/tilde.c
+
 readline: $(OBJECTS) readline.h rldefs.h chardefs.h ./libreadline.a
        $(CC) $(CCFLAGS) -o $@ ./examples/rl.c ./libreadline.a ${TERMCAP_LIB}
 
+lint:  force
+       $(MAKE) $(MFLAGS) CCFLAGS='$(GCC_LINT_CFLAGS)' static
+
 Makefile makefile: config.status $(srcdir)/Makefile.in
        CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status
 
@@ -170,11 +195,11 @@ force:
 
 install-headers: installdirs ${INSTALLED_HEADERS}
        for f in ${INSTALLED_HEADERS}; do \
-               $(INSTALL_DATA) $(srcdir)/$$f $(includedir)/readline ; \
+               $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(includedir)/readline ; \
        done
 
 uninstall-headers:
-       -test -n "$(includedir)" && cd $(includedir)/readline && \
+       -test -n "$(includedir)" && cd $(DESTDIR)$(includedir)/readline && \
                ${RM} ${INSTALLED_HEADERS}
 
 maybe-uninstall-headers: uninstall-headers
@@ -189,31 +214,39 @@ maybe-uninstall-headers: uninstall-headers
 
 install:
 
-#install: installdirs $(STATIC_LIBS) install-headers
-#      -$(MV) $(libdir)/libreadline.a $(libdir)/libreadline.old
-#      $(INSTALL_DATA) libreadline.a $(libdir)/libreadline.a
-#      -test -n "$(RANLIB)" && $(RANLIB) -t $(libdir)/libreadline.a
-#      -$(MV) $(libdir)/libhistory.a $(libdir)/libhistory.old
-#      $(INSTALL_DATA) libhistory.a $(libdir)/libhistory.a
-#      -test -n "$(RANLIB)" && $(RANLIB) -t $(libdir)/libhistory.a
-#      -( if test -d doc ; then \
-#              cd doc && \
-#              ${MAKE} ${MFLAGS} infodir=$(infodir) $@; \
-#        fi )
+#install:      $(INSTALL_TARGETS)
+
+install-static: installdirs $(STATIC_LIBS) install-headers
+       -$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old
+       $(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a
+       -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libreadline.a
+       -$(MV) $(DESTDIR)$(libdir)/libhistory.a $(DESTDIR)$(libdir)/libhistory.old
+       $(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a
+       -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a
+       -( if test -d doc ; then \
+               cd doc && \
+               ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \
+         fi )
 
 installdirs: $(srcdir)/support/mkdirs
-       -$(SHELL) $(srcdir)/support/mkdirs $(includedir) \
-               $(includedir)/readline $(libdir) $(infodir) $(man3dir)
+       -$(SHELL) $(srcdir)/support/mkdirs $(DESTDIR)$(includedir) \
+               $(DESTDIR)$(includedir)/readline $(DESTDIR)$(libdir) \
+               $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir)
 
 uninstall: uninstall-headers
-       -test -n "$(libdir)" && cd $(libdir) && \
+       -test -n "$(DESTDIR)$(libdir)" && cd $(DESTDIR)$(libdir) && \
                ${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS)
+       -( if test -d doc ; then \
+               cd doc && \
+               ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} $@; \
+         fi )
+       -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
 
 install-shared: installdirs install-headers shared
-       -( cd shlib ; ${MAKE} ${MFLAGS} install )
+       -( cd shlib ; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install )
 
 uninstall-shared: maybe-uninstall-headers
-       -( cd shlib; ${MAKE} ${MFLAGS} uninstall )
+       -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
 
 TAGS:  force
        $(ETAGS) $(CSOURCES) $(HSOURCES)
@@ -262,90 +295,99 @@ dist:   force
 # Dependencies
 bind.o: ansi_stdlib.h posixstat.h
 bind.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-bind.o: readline.h keymaps.h chardefs.h tilde.h rlstdc.h
+bind.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
 bind.o: history.h
 callback.o: rlconf.h
 callback.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-callback.o: readline.h keymaps.h chardefs.h tilde.h rlstdc.h
+callback.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
+compat.o: rlstdc.h
 complete.o: ansi_stdlib.h posixdir.h posixstat.h
 complete.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-complete.o: readline.h keymaps.h chardefs.h tilde.h rlstdc.h
+complete.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
 display.o: ansi_stdlib.h posixstat.h
 display.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
 display.o: tcap.h
-display.o: readline.h keymaps.h chardefs.h tilde.h
+display.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 display.o: history.h rlstdc.h
-funmap.o: readline.h keymaps.h chardefs.h tilde.h
+funmap.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 funmap.o: rlconf.h ansi_stdlib.h rlstdc.h
 funmap.o: ${BUILD_DIR}/config.h
 histexpand.o: ansi_stdlib.h
-histexpand.o: history.h histlib.h rlstdc.h
+histexpand.o: history.h histlib.h rlstdc.h rltypedefs.h
 histexpand.o: ${BUILD_DIR}/config.h
 histfile.o: ansi_stdlib.h
-histfile.o: history.h histlib.h rlstdc.h
+histfile.o: history.h histlib.h rlstdc.h rltypedefs.h
 histfile.o: ${BUILD_DIR}/config.h
 history.o: ansi_stdlib.h
-history.o: history.h histlib.h rlstdc.h
+history.o: history.h histlib.h rlstdc.h rltypedefs.h
 history.o: ${BUILD_DIR}/config.h
 histsearch.o: ansi_stdlib.h
-histsearch.o: history.h histlib.h rlstdc.h
+histsearch.o: history.h histlib.h rlstdc.h rltypedefs.h
 histsearch.o: ${BUILD_DIR}/config.h
 input.o: ansi_stdlib.h
 input.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-input.o: readline.h keymaps.h chardefs.h tilde.h rlstdc.h
+input.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
 isearch.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-isearch.o: readline.h keymaps.h chardefs.h tilde.h
+isearch.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 isearch.o: ansi_stdlib.h history.h rlstdc.h
 keymaps.o: emacs_keymap.c vi_keymap.c
-keymaps.o: keymaps.h chardefs.h rlconf.h ansi_stdlib.h
-keymaps.o: readline.h keymaps.h chardefs.h tilde.h
+keymaps.o: keymaps.h rltypedefs.h chardefs.h rlconf.h ansi_stdlib.h
+keymaps.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 keymaps.o: ${BUILD_DIR}/config.h rlstdc.h
 kill.o: ansi_stdlib.h
 kill.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-kill.o: readline.h keymaps.h chardefs.h tilde.h
+kill.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 kill.o: history.h rlstdc.h
 macro.o: ansi_stdlib.h
 macro.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-macro.o: readline.h keymaps.h chardefs.h tilde.h
+macro.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 macro.o: history.h rlstdc.h
+mbutil.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
+mbutil.o: readline.h keymaps.h rltypedefs.h chardefs.h rlstdc.h
+misc.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
+misc.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
+misc.o: history.h rlstdc.h ansi_stdlib.h
 nls.o: ansi_stdlib.h
 nls.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-nls.o: readline.h keymaps.h chardefs.h tilde.h  
+nls.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h  
 nls.o: history.h rlstdc.h  
 parens.o: rlconf.h
 parens.o: ${BUILD_DIR}/config.h
-parens.o: readline.h keymaps.h chardefs.h tilde.h rlstdc.h
-readline.o: readline.h keymaps.h chardefs.h tilde.h
+parens.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
+readline.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 readline.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
 readline.o: history.h rlstdc.h
 readline.o: posixstat.h ansi_stdlib.h posixjmp.h
 rltty.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
 rltty.o: rltty.h
-rltty.o: readline.h keymaps.h chardefs.h tilde.h rlstdc.h
+rltty.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
 search.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-search.o: readline.h keymaps.h chardefs.h tilde.h
+search.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 search.o: ansi_stdlib.h history.h rlstdc.h
 shell.o: ${BUILD_DIR}/config.h
 shell.o: ansi_stdlib.h
 signals.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-signals.o: readline.h keymaps.h chardefs.h tilde.h
+signals.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 signals.o: history.h rlstdc.h
 terminal.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
 terminal.o: tcap.h
-terminal.o: readline.h keymaps.h chardefs.h tilde.h
+terminal.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 terminal.o: history.h rlstdc.h
+text.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
+text.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
+text.o: history.h rlstdc.h ansi_stdlib.h
 tilde.o: ansi_stdlib.h
 tilde.o: ${BUILD_DIR}/config.h
 tilde.o: tilde.h
 undo.o: ansi_stdlib.h
 undo.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-undo.o: readline.h keymaps.h chardefs.h tilde.h
+undo.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 undo.o: history.h rlstdc.h
 util.o: posixjmp.h ansi_stdlib.h
 util.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-util.o: readline.h keymaps.h chardefs.h tilde.h rlstdc.h
+util.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
 vi_mode.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-vi_mode.o: readline.h keymaps.h chardefs.h tilde.h
+vi_mode.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
 vi_mode.o: history.h ansi_stdlib.h rlstdc.h
 xmalloc.o: ${BUILD_DIR}/config.h
 xmalloc.o: ansi_stdlib.h
@@ -366,6 +408,8 @@ input.o: rlprivate.h
 isearch.o: rlprivate.h
 kill.o: rlprivate.h
 macro.o: rlprivate.h
+mbutil.o: rlprivate.h
+misc.o: rlprivate.h
 nls.o: rlprivate.h   
 parens.o: rlprivate.h
 readline.o: rlprivate.h
@@ -373,6 +417,7 @@ rltty.o: rlprivate.h
 search.o: rlprivate.h
 signals.o: rlprivate.h
 terminal.o: rlprivate.h
+text.o: rlprivate.h
 undo.o: rlprivate.h
 util.o: rlprivate.h
 vi_mode.o: rlprivate.h
@@ -389,69 +434,96 @@ isearch.o: xmalloc.h
 keymaps.o: xmalloc.h
 kill.o: xmalloc.h
 macro.o: xmalloc.h
+mbutil.o: xmalloc.h
+misc.o: xmalloc.h
 readline.o: xmalloc.h
 savestring.o: xmalloc.h
 search.o: xmalloc.h
 shell.o: xmalloc.h
+terminal.o: xmalloc.h
+text.o: xmalloc.h
 tilde.o: xmalloc.h
-tilde.o: xmalloc.h
+undo.o: xmalloc.h
 util.o: xmalloc.h
 vi_mode.o: xmalloc.h
+xmalloc.o: xmalloc.h
+
+complete.o: rlmbutil.h
+display.o: rlmbutil.h
+histexpand.o: rlmbutil.h
+input.o: rlmbutil.h    
+isearch.o: rlmbutil.h
+mbutil.o: rlmbutil.h
+misc.o: rlmbutil.h
+readline.o: rlmbutil.h
+search.o: rlmbutil.h 
+text.o: rlmbutil.h
+vi_mode.o: rlmbutil.h
 
-readline.o: $(srcdir)/readline.c
-vi_mode.o: $(srcdir)/vi_mode.c
-funmap.o: $(srcdir)/funmap.c
-keymaps.o: $(srcdir)/keymaps.c
-parens.o: $(srcdir)/parens.c
-search.o: $(srcdir)/search.c
-rltty.o: $(srcdir)/rltty.c
-complete.o: $(srcdir)/complete.c
 bind.o: $(srcdir)/bind.c
-isearch.o: $(srcdir)/isearch.c
+callback.o: $(srcdir)/callback.c
+compat.o: $(srcdir)/compat.c
+complete.o: $(srcdir)/complete.c
 display.o: $(srcdir)/display.c
-signals.o: $(srcdir)/signals.c
-util.o: $(srcdir)/util.c
+funmap.o: $(srcdir)/funmap.c
+input.o: $(srcdir)/input.c
+isearch.o: $(srcdir)/isearch.c
+keymaps.o: $(srcdir)/keymaps.c $(srcdir)/emacs_keymap.c $(srcdir)/vi_keymap.c
 kill.o: $(srcdir)/kill.c
-undo.o: $(srcdir)/undo.c
 macro.o: $(srcdir)/macro.c
-input.o: $(srcdir)/input.c
-callback.o: $(srcdir)/callback.c
-terminal.o: $(srcdir)/terminal.c
+mbutil.o: $(srcdir)/mbutil.c
+misc.o: $(srcdir)/misc.c
 nls.o: $(srcdir)/nls.c
+parens.o: $(srcdir)/parens.c
+readline.o: $(srcdir)/readline.c
+rltty.o: $(srcdir)/rltty.c
+savestring.o: $(srcdir)/savestring.c
+search.o: $(srcdir)/search.c
+shell.o: $(srcdir)/shell.c
+signals.o: $(srcdir)/signals.c
+terminal.o: $(srcdir)/terminal.c
+text.o: $(srcdir)/text.c
+tilde.o: $(srcdir)/tilde.c
+undo.o: $(srcdir)/undo.c
+util.o: $(srcdir)/util.c
+vi_mode.o: $(srcdir)/vi_mode.c
 xmalloc.o: $(srcdir)/xmalloc.c
-history.o: $(srcdir)/history.c
+
 histexpand.o: $(srcdir)/histexpand.c
 histfile.o: $(srcdir)/histfile.c
+history.o: $(srcdir)/history.c
 histsearch.o: $(srcdir)/histsearch.c
-savestring.o: $(srcdir)/savestring.c
-shell.o: $(srcdir)/shell.c
-tilde.o: $(srcdir)/tilde.c
 
-readline.o: readline.c
-vi_mode.o: vi_mode.c
-funmap.o: funmap.c
-keymaps.o: keymaps.c
-parens.o: parens.c
-search.o: search.c
-rltty.o: rltty.c
-complete.o: complete.c
 bind.o: bind.c
-isearch.o: isearch.c
+callback.o: callback.c
+compat.o: compat.c
+complete.o: complete.c
 display.o: display.c
-signals.o: signals.c
-util.o: util.c
+funmap.o: funmap.c
+input.o: input.c
+isearch.o: isearch.c
+keymaps.o: keymaps.c emacs_keymap.c vi_keymap.c
 kill.o: kill.c
-undo.o: undo.c
 macro.o: macro.c
-input.o: input.c
-callback.o: callback.c
-terminal.o: terminal.c
+mbutil.o: mbutil.c
+misc.o: misc.c
 nls.o: nls.c
+parens.o: parens.c
+readline.o: readline.c
+rltty.o: rltty.c
+savestring.o: savestring.c
+search.o: search.c
+shell.o: shell.c
+signals.o: signals.c
+terminal.o: terminal.c
+text.o: text.c
+tilde.o: tilde.c
+undo.o: undo.c
+util.o: util.c
+vi_mode.o: vi_mode.c
 xmalloc.o: xmalloc.c
-history.o: history.c
+
 histexpand.o: histexpand.c
 histfile.o: histfile.c
+history.o: history.c
 histsearch.o: histsearch.c
-savestring.o: savestring.c
-shell.o: shell.c
-tilde.o: tilde.c
index 41a5d0c82d61b8c8ed55adbef596e8c8654651fd..7aa939452fbc983a1f777478899066f7a8e8f7aa 100644 (file)
@@ -1,7 +1,7 @@
 Introduction
 ============
 
-This is the Gnu Readline library, version 4.1.
+This is the Gnu Readline library, version 4.3.
 
 The Readline library provides a set of functions for use by applications
 that allow users to edit command lines as they are typed in.  Both
@@ -16,8 +16,8 @@ may be used without Readline in applications which desire its
 capabilities.
 
 The Readline library is free software, distributed under the terms of
-the GNU Public License, version 2.  For more information, see the file
-COPYING.
+the [GNU] General Public License, version 2.  For more information, see
+the file COPYING.
 
 To build the library, try typing `./configure', then `make'.  The
 configuration process is automated, so no further intervention should
@@ -37,6 +37,9 @@ to customize and control the build process.
 The file rlconf.h contains C preprocessor defines that enable and disable
 certain Readline features.
 
+The special make target `everything' will build the static and shared
+libraries (if the target platform supports them) and the examples.
+
 Examples
 ========
 
@@ -54,6 +57,9 @@ a Makefile in the `shlib' subdirectory, and typing `make shared'
 will cause shared versions of the Readline and History libraries
 to be built on supported platforms.
 
+If `configure' is given the `--enable-shared' option, it will attempt
+to build the shared libraries by default on supported platforms.
+
 Configure calls the script support/shobj-conf to test whether or
 not shared library creation is supported and to generate the values
 of variables that are substituted into shlib/Makefile.  If you
@@ -64,8 +70,8 @@ your platform.
 If you need to update support/shobj-conf, you will need to create
 a `stanza' for your operating system and compiler.  The script uses
 the value of host_os and ${CC} as determined by configure.  For
-instance, FreeBSD 2.2.5 with any version of gcc is identified as
-`freebsd2.2.5-gcc*'.
+instance, FreeBSD 4.2 with any version of gcc is identified as
+`freebsd4.2-gcc*'.
 
 In the stanza for your operating system-compiler pair, you will need to
 define several variables.  They are:
@@ -122,18 +128,21 @@ Once you have updated support/shobj-conf, re-run configure and type
 `make shared'.  The shared libraries will be created in the shlib
 subdirectory.
 
-Since shared libraries are not created on all platforms, `make install'
-will not automatically install the shared libraries.  To install them,
-change the current directory to shlib and type `make install'.  Running
-`make install-shared' from the top-level build directory will also work.
+If shared libraries are created, `make install' will install them. 
+You may install only the shared libraries by running `make
+install-shared' from the top-level build directory.  Running `make
+install' in the shlib subdirectory will also work.  If you don't want
+to install any created shared libraries, run `make install-static'. 
 
 Documentation
 =============
 
-The documentation for the Readline and History libraries appears in the
-`doc' subdirectory.  There are two texinfo files and a Unix-style manual
-page describing the programming facilities available in the Readline
-library.  The texinfo files include both user and programmer's manuals.
+The documentation for the Readline and History libraries appears in
+the `doc' subdirectory.  There are three texinfo files and a
+Unix-style manual page describing the facilities available in the
+Readline library.  The texinfo files include both user and
+programmer's manuals.  HTML versions of the manuals appear in the
+`doc' subdirectory as well. 
 
 Reporting Bugs
 ==============
@@ -144,7 +153,7 @@ Bug reports for Readline should be sent to:
 
 When reporting a bug, please include the following information:
 
-        * the version number and release status of Readline (e.g., 4.0-release)
+        * the version number and release status of Readline (e.g., 4.2-release)
         * the machine and OS that it is running on
         * a list of the compilation flags or the contents of `config.h', if
           appropriate
index f8f5b74b72f0f8f04ca14a728d28373b2ce70a64..d1ad025fb0655546d53b41388d0e63f6d3eda212 100644 (file)
@@ -3,153 +3,82 @@ dnl Bash specific tests
 dnl
 dnl Some derived from PDKSH 5.1.3 autoconf tests
 dnl
-dnl
-dnl Check if dup2() does not clear the close on exec flag
-dnl
-AC_DEFUN(BASH_DUP2_CLOEXEC_CHECK,
-[AC_MSG_CHECKING(if dup2 fails to clear the close-on-exec flag)
-AC_CACHE_VAL(bash_cv_dup2_broken,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <fcntl.h>
+
+AC_DEFUN(BASH_C_LONG_LONG,
+[AC_CACHE_CHECK(for long long, ac_cv_c_long_long,
+[if test "$GCC" = yes; then
+  ac_cv_c_long_long=yes
+else
+AC_TRY_RUN([
+int
 main()
 {
-  int fd1, fd2, fl;
-  fd1 = open("/dev/null", 2);
-  if (fcntl(fd1, 2, 1) < 0)
-    exit(1);
-  fd2 = dup2(fd1, 1);
-  if (fd2 < 0)
-    exit(2);
-  fl = fcntl(fd2, 1, 0);
-  /* fl will be 1 if dup2 did not reset the close-on-exec flag. */
-  exit(fl != 1);
+long long foo = 0;
+exit(sizeof(long long) < sizeof(long));
 }
-], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
-    [AC_MSG_WARN(cannot check dup2 if cross compiling -- defaulting to no)
-     bash_cv_dup2_broken=no])
-])
-AC_MSG_RESULT($bash_cv_dup2_broken)
-if test $bash_cv_dup2_broken = yes; then
-AC_DEFINE(DUP2_BROKEN)
-fi
-])
-
-dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
-AC_DEFUN(BASH_SIGNAL_CHECK,
-[AC_REQUIRE([AC_TYPE_SIGNAL])
-AC_MSG_CHECKING(for type of signal functions)
-AC_CACHE_VAL(bash_cv_signal_vintage,
-[
-  AC_TRY_LINK([#include <signal.h>],[
-    sigset_t ss;
-    struct sigaction sa;
-    sigemptyset(&ss); sigsuspend(&ss);
-    sigaction(SIGINT, &sa, (struct sigaction *) 0);
-    sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
-  ], bash_cv_signal_vintage=posix,
-  [
-    AC_TRY_LINK([#include <signal.h>], [
-       int mask = sigmask(SIGINT);
-       sigsetmask(mask); sigblock(mask); sigpause(mask);
-    ], bash_cv_signal_vintage=4.2bsd,
-    [
-      AC_TRY_LINK([
-       #include <signal.h>
-       RETSIGTYPE foo() { }], [
-               int mask = sigmask(SIGINT);
-               sigset(SIGINT, foo); sigrelse(SIGINT);
-               sighold(SIGINT); sigpause(SIGINT);
-        ], bash_cv_signal_vintage=svr3, bash_cv_signal_vintage=v7
-    )]
-  )]
-)
-])
-AC_MSG_RESULT($bash_cv_signal_vintage)
-if test "$bash_cv_signal_vintage" = posix; then
-AC_DEFINE(HAVE_POSIX_SIGNALS)
-elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
-AC_DEFINE(HAVE_BSD_SIGNALS)
-elif test "$bash_cv_signal_vintage" = svr3; then
-AC_DEFINE(HAVE_USG_SIGHOLD)
+], ac_cv_c_long_long=yes, ac_cv_c_long_long=no)
+fi])
+if test $ac_cv_c_long_long = yes; then
+  AC_DEFINE(HAVE_LONG_LONG, 1, [Define if the `long long' type works.])
 fi
 ])
 
-dnl Check if the pgrp of setpgrp() can't be the pid of a zombie process.
-AC_DEFUN(BASH_PGRP_SYNC,
-[AC_REQUIRE([AC_FUNC_GETPGRP])
-AC_MSG_CHECKING(whether pgrps need synchronization)
-AC_CACHE_VAL(bash_cv_pgrp_pipe,
-[AC_TRY_RUN([
-#ifdef HAVE_UNISTD_H
-#  include <unistd.h>
-#endif
+dnl
+dnl This is very similar to AC_C_LONG_DOUBLE, with the fix for IRIX
+dnl (< changed to <=) added.
+dnl
+AC_DEFUN(BASH_C_LONG_DOUBLE,
+[AC_CACHE_CHECK(for long double, ac_cv_c_long_double,
+[if test "$GCC" = yes; then
+  ac_cv_c_long_double=yes
+else
+AC_TRY_RUN([
+int
 main()
 {
-# ifdef GETPGRP_VOID
-#  define getpgID()    getpgrp()
-# else
-#  define getpgID()    getpgrp(0)
-#  define setpgid(x,y) setpgrp(x,y)
-# endif
-       int pid1, pid2, fds[2];
-       int status;
-       char ok;
-
-       switch (pid1 = fork()) {
-         case -1:
-           exit(1);
-         case 0:
-           setpgid(0, getpid());
-           exit(0);
-       }
-       setpgid(pid1, pid1);
-
-       sleep(2);       /* let first child die */
-
-       if (pipe(fds) < 0)
-         exit(2);
-
-       switch (pid2 = fork()) {
-         case -1:
-           exit(3);
-         case 0:
-           setpgid(0, pid1);
-           ok = getpgID() == pid1;
-           write(fds[1], &ok, 1);
-           exit(0);
-       }
-       setpgid(pid2, pid1);
-
-       close(fds[1]);
-       if (read(fds[0], &ok, 1) != 1)
-         exit(4);
-       wait(&status);
-       wait(&status);
-       exit(ok ? 0 : 5);
+  /* The Stardent Vistra knows sizeof(long double), but does not
+     support it. */
+  long double foo = 0.0;
+  /* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
+  /* On IRIX 5.3, the compiler converts long double to double with a warning,
+     but compiles this successfully. */
+  exit(sizeof(long double) <= sizeof(double));
 }
-], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
-   [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no)
-    bash_cv_pgrp_pipe=no])
-])
-AC_MSG_RESULT($bash_cv_pgrp_pipe)
-if test $bash_cv_pgrp_pipe = yes; then
-AC_DEFINE(PGRP_PIPE)
+], ac_cv_c_long_double=yes, ac_cv_c_long_double=no)
+fi])
+if test $ac_cv_c_long_double = yes; then
+  AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if the `long double' type works.])
 fi
 ])
 
+dnl
+dnl Check for <inttypes.h>.  This is separated out so that it can be
+dnl AC_REQUIREd.
+dnl
+dnl BASH_HEADER_INTTYPES
+AC_DEFUN(BASH_HEADER_INTTYPES,
+[
+ AC_CHECK_HEADERS(inttypes.h)
+])
+
 dnl
 dnl check for typedef'd symbols in header files, but allow the caller to
 dnl specify the include files to be checked in addition to the default
 dnl 
 dnl BASH_CHECK_TYPE(TYPE, HEADERS, DEFAULT[, VALUE-IF-FOUND])
 AC_DEFUN(BASH_CHECK_TYPE,
-[AC_REQUIRE([AC_HEADER_STDC])dnl
+[
+AC_REQUIRE([AC_HEADER_STDC])dnl
+AC_REQUIRE([BASH_HEADER_INTTYPES])
 AC_MSG_CHECKING(for $1)
 AC_CACHE_VAL(bash_cv_type_$1,
 [AC_EGREP_CPP($1, [#include <sys/types.h>
 #if STDC_HEADERS
 #include <stdlib.h>
+#include <stddef.h>
+#endif
+#if HAVE_INTTYPES_H
+#include <inttypes.h>
 #endif
 $2
 ], bash_cv_type_$1=yes, bash_cv_type_$1=no)])
@@ -158,43 +87,74 @@ ifelse($#, 4, [if test $bash_cv_type_$1 = yes; then
        AC_DEFINE($4)
        fi])
 if test $bash_cv_type_$1 = no; then
-  AC_DEFINE($1, $3)
+  AC_DEFINE_UNQUOTED($1, $3)
 fi
 ])
 
 dnl
-dnl Type of struct rlimit fields: some systems (OSF/1, NetBSD, RISC/os 5.0)
-dnl have a rlim_t, others (4.4BSD based systems) use quad_t, others use
-dnl long and still others use int (HP-UX 9.01, SunOS 4.1.3).  To simplify
-dnl matters, this just checks for rlim_t, quad_t, or long.
+dnl BASH_CHECK_DECL(FUNC)
 dnl
-AC_DEFUN(BASH_RLIMIT_TYPE,
-[AC_MSG_CHECKING(for size and type of struct rlimit fields)
-AC_CACHE_VAL(bash_cv_type_rlimit,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/resource.h>],
-[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
-AC_TRY_RUN([
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
+dnl Check for a declaration of FUNC in stdlib.h and inttypes.h like
+dnl AC_CHECK_DECL
+dnl
+AC_DEFUN(BASH_CHECK_DECL,
+[
+AC_REQUIRE([AC_HEADER_STDC])
+AC_REQUIRE([BASH_HEADER_INTTYPES])
+AC_CACHE_CHECK([for declaration of $1], bash_cv_decl_$1,
+[AC_TRY_LINK(
+[
+#if STDC_HEADERS
+#  include <stdlib.h>
+#endif
+#if HAVE_INTTYPES_H
+#  include <inttypes.h>
+#endif
+],
+[return !$1;],
+bash_cv_decl_$1=yes, bash_cv_decl_$1=no)])
+bash_tr_func=HAVE_DECL_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+if test $bash_cv_decl_$1 = yes; then
+  AC_DEFINE_UNQUOTED($bash_tr_func, 1)
+else
+  AC_DEFINE_UNQUOTED($bash_tr_func, 0)
+fi
+])
+
+AC_DEFUN(BASH_DECL_PRINTF,
+[AC_MSG_CHECKING(for declaration of printf in <stdio.h>)
+AC_CACHE_VAL(bash_cv_printf_declared,
+[AC_TRY_RUN([
+#include <stdio.h>
+#ifdef __STDC__
+typedef int (*_bashfunc)(const char *, ...);
+#else
+typedef int (*_bashfunc)();
+#endif
 main()
 {
-#ifdef HAVE_QUAD_T
-  struct rlimit rl;
-  if (sizeof(rl.rlim_cur) == sizeof(quad_t))
-    exit(0);
-#endif
-  exit(1);
-}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
-        [AC_MSG_WARN(cannot check quad_t if cross compiling -- defaulting to long)
-         bash_cv_type_rlimit=long])])
+_bashfunc pf;
+pf = (_bashfunc) printf;
+exit(pf == 0);
+}
+], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
+   [AC_MSG_WARN(cannot check printf declaration if cross compiling -- defaulting to yes)
+    bash_cv_printf_declared=yes]
+)])
+AC_MSG_RESULT($bash_cv_printf_declared)
+if test $bash_cv_printf_declared = yes; then
+AC_DEFINE(PRINTF_DECLARED)
+fi
 ])
-AC_MSG_RESULT($bash_cv_type_rlimit)
-if test $bash_cv_type_rlimit = quad_t; then
-AC_DEFINE(RLIMTYPE, quad_t)
-elif test $bash_cv_type_rlimit = rlim_t; then
-AC_DEFINE(RLIMTYPE, rlim_t)
+
+AC_DEFUN(BASH_DECL_SBRK,
+[AC_MSG_CHECKING(for declaration of sbrk in <unistd.h>)
+AC_CACHE_VAL(bash_cv_sbrk_declared,
+[AC_EGREP_HEADER(sbrk, unistd.h,
+ bash_cv_sbrk_declared=yes, bash_cv_sbrk_declared=no)])
+AC_MSG_RESULT($bash_cv_sbrk_declared)
+if test $bash_cv_sbrk_declared = yes; then
+AC_DEFINE(SBRK_DECLARED)
 fi
 ])
 
@@ -272,6 +232,20 @@ AC_DEFINE(HAVE_SYS_SIGLIST)
 fi
 ])
 
+dnl Check for the various permutations of sys_siglist and make sure we
+dnl compile in siglist.o if they're not defined
+AC_DEFUN(BASH_CHECK_SYS_SIGLIST, [
+AC_REQUIRE([BASH_SYS_SIGLIST])
+AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
+AC_REQUIRE([BASH_FUNC_STRSIGNAL])
+if test "$bash_cv_sys_siglist" = no && test "$bash_cv_under_sys_siglist" = no && test "$bash_cv_have_strsignal" = no; then
+  SIGLIST_O=siglist.o
+else
+  SIGLIST_O=
+fi
+AC_SUBST([SIGLIST_O])
+])
+
 dnl Check for sys_errlist[] and sys_nerr, check for declaration
 AC_DEFUN(BASH_SYS_ERRLIST,
 [AC_MSG_CHECKING([for sys_errlist and sys_nerr])
@@ -287,6 +261,51 @@ AC_DEFINE(HAVE_SYS_ERRLIST)
 fi
 ])
 
+dnl
+dnl Check if dup2() does not clear the close on exec flag
+dnl
+AC_DEFUN(BASH_FUNC_DUP2_CLOEXEC_CHECK,
+[AC_MSG_CHECKING(if dup2 fails to clear the close-on-exec flag)
+AC_CACHE_VAL(bash_cv_dup2_broken,
+[AC_TRY_RUN([
+#include <sys/types.h>
+#include <fcntl.h>
+main()
+{
+  int fd1, fd2, fl;
+  fd1 = open("/dev/null", 2);
+  if (fcntl(fd1, 2, 1) < 0)
+    exit(1);
+  fd2 = dup2(fd1, 1);
+  if (fd2 < 0)
+    exit(2);
+  fl = fcntl(fd2, 1, 0);
+  /* fl will be 1 if dup2 did not reset the close-on-exec flag. */
+  exit(fl != 1);
+}
+], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
+    [AC_MSG_WARN(cannot check dup2 if cross compiling -- defaulting to no)
+     bash_cv_dup2_broken=no])
+])
+AC_MSG_RESULT($bash_cv_dup2_broken)
+if test $bash_cv_dup2_broken = yes; then
+AC_DEFINE(DUP2_BROKEN)
+fi
+])
+
+AC_DEFUN(BASH_FUNC_STRSIGNAL,
+[AC_MSG_CHECKING([for the existence of strsignal])
+AC_CACHE_VAL(bash_cv_have_strsignal,
+[AC_TRY_LINK([#include <sys/types.h>
+#include <signal.h>],
+[char *s = (char *)strsignal(2);],
+ bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
+AC_MSG_RESULT($bash_cv_have_strsignal)
+if test $bash_cv_have_strsignal = yes; then
+AC_DEFINE(HAVE_STRSIGNAL)
+fi
+])
+
 dnl Check to see if opendir will open non-directories (not a nice thing)
 AC_DEFUN(BASH_FUNC_OPENDIR_CHECK,
 [AC_REQUIRE([AC_HEADER_DIRENT])dnl
@@ -422,6 +441,8 @@ if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then
   AC_CHECK_TYPE(ptrdiff_t, int)
 elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then
   AC_CHECK_TYPE(ptrdiff_t, long)
+elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then
+  AC_CHECK_TYPE(ptrdiff_t, [long long])
 else
   AC_CHECK_TYPE(ptrdiff_t, int)
 fi
@@ -432,10 +453,12 @@ dnl A signed 64-bit quantity
 dnl
 AC_DEFUN(BASH_TYPE_BITS64_T,
 [
-if test "$ac_sv_sizeof_char_p" = 8; then
+if test "$ac_cv_sizeof_char_p" = 8; then
   AC_CHECK_TYPE(bits64_t, char *)
 elif test "$ac_cv_sizeof_double" = 8; then
   AC_CHECK_TYPE(bits64_t, double)
+elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then
+  AC_CHECK_TYPE(bits64_t, [long long])
 elif test "$ac_cv_sizeof_long" = 8; then
   AC_CHECK_TYPE(bits64_t, long)
 else
@@ -443,16 +466,68 @@ else
 fi
 ])
 
-AC_DEFUN(BASH_FUNC_STRSIGNAL,
-[AC_MSG_CHECKING([for the existence of strsignal])
-AC_CACHE_VAL(bash_cv_have_strsignal,
-[AC_TRY_LINK([#include <sys/types.h>
-#include <signal.h>],
-[char *s = (char *)strsignal(2);],
- bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
-AC_MSG_RESULT($bash_cv_have_strsignal)
-if test $bash_cv_have_strsignal = yes; then
-AC_DEFINE(HAVE_STRSIGNAL)
+AC_DEFUN(BASH_TYPE_LONG_LONG,
+[
+AC_CACHE_CHECK([for long long], bash_cv_type_long_long,
+[AC_TRY_LINK([
+long long ll = 1; int i = 63;],
+[
+long long llm = (long long) -1;
+return ll << i | ll >> i | llm / ll | llm % ll;
+], bash_cv_type_long_long='long long', bash_cv_type_long_long='long')])
+if test "$bash_cv_type_long_long" = 'long long'; then
+  AC_DEFINE(HAVE_LONG_LONG, 1)
+fi
+])
+
+AC_DEFUN(BASH_TYPE_UNSIGNED_LONG_LONG,
+[
+AC_CACHE_CHECK([for unsigned long long], bash_cv_type_unsigned_long_long,
+[AC_TRY_LINK([
+unsigned long long ull = 1; int i = 63;],
+[
+unsigned long long ullmax = (unsigned long long) -1;
+return ull << i | ull >> i | ullmax / ull | ullmax % ull;
+], bash_cv_type_unsigned_long_long='unsigned long long',
+   bash_cv_type_unsigned_long_long='unsigned long')])
+if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then
+  AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1)
+fi
+])
+
+dnl
+dnl Type of struct rlimit fields: some systems (OSF/1, NetBSD, RISC/os 5.0)
+dnl have a rlim_t, others (4.4BSD based systems) use quad_t, others use
+dnl long and still others use int (HP-UX 9.01, SunOS 4.1.3).  To simplify
+dnl matters, this just checks for rlim_t, quad_t, or long.
+dnl
+AC_DEFUN(BASH_TYPE_RLIMIT,
+[AC_MSG_CHECKING(for size and type of struct rlimit fields)
+AC_CACHE_VAL(bash_cv_type_rlimit,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/resource.h>],
+[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
+AC_TRY_RUN([
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+main()
+{
+#ifdef HAVE_QUAD_T
+  struct rlimit rl;
+  if (sizeof(rl.rlim_cur) == sizeof(quad_t))
+    exit(0);
+#endif
+  exit(1);
+}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
+        [AC_MSG_WARN(cannot check quad_t if cross compiling -- defaulting to long)
+         bash_cv_type_rlimit=long])])
+])
+AC_MSG_RESULT($bash_cv_type_rlimit)
+if test $bash_cv_type_rlimit = quad_t; then
+AC_DEFINE(RLIMTYPE, quad_t)
+elif test $bash_cv_type_rlimit = rlim_t; then
+AC_DEFINE(RLIMTYPE, rlim_t)
 fi
 ])
 
@@ -481,30 +556,8 @@ struct in_addr ap;], [ inet_aton("127.0.0.1", &ap); ],
 bash_cv_func_inet_aton=yes, bash_cv_func_inet_aton=no)])
 if test $bash_cv_func_inet_aton = yes; then
   AC_DEFINE(HAVE_INET_ATON)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_TERMIOS_LDISC,
-[AC_MSG_CHECKING([for a c_line member of struct termios])
-AC_CACHE_VAL(bash_cv_termios_ldisc,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <termios.h>],[struct termios t; int i; i = t.c_line;],
-  bash_cv_termios_ldisc=yes, bash_cv_termios_ldisc=no)])dnl
-AC_MSG_RESULT($bash_cv_termios_ldisc)
-if test $bash_cv_termios_ldisc = yes; then
-AC_DEFINE(TERMIOS_LDISC)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_TERMIO_LDISC,
-[AC_MSG_CHECKING([for a c_line member of struct termio])
-AC_CACHE_VAL(bash_cv_termio_ldisc,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <termio.h>],[struct termio t; int i; i = t.c_line;],
-  bash_cv_termio_ldisc=yes, bash_cv_termio_ldisc=no)])dnl
-AC_MSG_RESULT($bash_cv_termio_ldisc)
-if test $bash_cv_termio_ldisc = yes; then
-AC_DEFINE(TERMIO_LDISC)
+else
+  AC_LIBOBJ(inet_aton)
 fi
 ])
 
@@ -552,29 +605,63 @@ AC_DEFINE(CAN_REDEFINE_GETENV)
 fi
 ])
 
-AC_DEFUN(BASH_FUNC_PRINTF,
-[AC_MSG_CHECKING(for declaration of printf in <stdio.h>)
-AC_CACHE_VAL(bash_cv_printf_declared,
-[AC_TRY_RUN([
-#include <stdio.h>
-#ifdef __STDC__
-typedef int (*_bashfunc)(const char *, ...);
+# We should check for putenv before calling this
+AC_DEFUN(BASH_FUNC_STD_PUTENV,
+[
+AC_REQUIRE([AC_HEADER_STDC])
+AC_REQUIRE([AC_C_PROTOTYPES])
+AC_CACHE_CHECK([for standard-conformant putenv declaration], bash_cv_std_putenv,
+[AC_TRY_LINK([
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#ifndef __STDC__
+#  ifndef const
+#    define const
+#  endif
+#endif
+#ifdef PROTOTYPES
+extern int putenv (char *);
 #else
-typedef int (*_bashfunc)();
+extern int putenv ();
 #endif
-main()
-{
-_bashfunc pf;
-pf = (_bashfunc) printf;
-exit(pf == 0);
-}
-], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
-   [AC_MSG_WARN(cannot check printf declaration if cross compiling -- defaulting to yes)
-    bash_cv_printf_declared=yes]
+],
+[return (putenv == 0);],
+bash_cv_std_putenv=yes, bash_cv_std_putenv=no
 )])
-AC_MSG_RESULT($bash_cv_printf_declared)
-if test $bash_cv_printf_declared = yes; then
-AC_DEFINE(PRINTF_DECLARED)
+if test $bash_cv_std_putenv = yes; then
+AC_DEFINE(HAVE_STD_PUTENV)
+fi
+])
+
+# We should check for unsetenv before calling this
+AC_DEFUN(BASH_FUNC_STD_UNSETENV,
+[
+AC_REQUIRE([AC_HEADER_STDC])
+AC_REQUIRE([AC_C_PROTOTYPES])
+AC_CACHE_CHECK([for standard-conformant unsetenv declaration], bash_cv_std_unsetenv,
+[AC_TRY_LINK([
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#ifndef __STDC__
+#  ifndef const
+#    define const
+#  endif
+#endif
+#ifdef PROTOTYPES
+extern int unsetenv (const char *);
+#else
+extern int unsetenv ();
+#endif
+],
+[return (unsetenv == 0);],
+bash_cv_std_unsetenv=yes, bash_cv_std_unsetenv=no
+)])
+if test $bash_cv_std_unsetenv = yes; then
+AC_DEFINE(HAVE_STD_UNSETENV)
 fi
 ])
 
@@ -597,39 +684,6 @@ AC_DEFINE(ULIMIT_MAXFDS)
 fi
 ])
 
-AC_DEFUN(BASH_CHECK_LIB_TERMCAP,
-[
-if test "X$bash_cv_termcap_lib" = "X"; then
-_bash_needmsg=yes
-else
-AC_MSG_CHECKING(which library has the termcap functions)
-_bash_needmsg=
-fi
-AC_CACHE_VAL(bash_cv_termcap_lib,
-[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
-    [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
-       [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
-           bash_cv_termcap_lib=gnutermcap)])])])
-if test "X$_bash_needmsg" = "Xyes"; then
-AC_MSG_CHECKING(which library has the termcap functions)
-fi
-AC_MSG_RESULT(using $bash_cv_termcap_lib)
-if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
-LDFLAGS="$LDFLAGS -L./lib/termcap"
-TERMCAP_LIB="./lib/termcap/libtermcap.a"
-TERMCAP_DEP="./lib/termcap/libtermcap.a"
-elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
-TERMCAP_LIB=-ltermcap
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libncurses; then
-TERMCAP_LIB=-lncurses
-TERMCAP_DEP=
-else
-TERMCAP_LIB=-lcurses
-TERMCAP_DEP=
-fi
-])
-
 AC_DEFUN(BASH_FUNC_GETCWD,
 [AC_MSG_CHECKING([if getcwd() calls popen()])
 AC_CACHE_VAL(bash_cv_getcwd_calls_popen,
@@ -691,97 +745,548 @@ main()
 AC_MSG_RESULT($bash_cv_getcwd_calls_popen)
 if test $bash_cv_getcwd_calls_popen = yes; then
 AC_DEFINE(GETCWD_BROKEN)
+AC_LIBOBJ(getcwd)
 fi
 ])
 
-AC_DEFUN(BASH_STRUCT_DIRENT_D_INO,
-[AC_REQUIRE([AC_HEADER_DIRENT])
-AC_MSG_CHECKING(if struct dirent has a d_ino member)
-AC_CACHE_VAL(bash_cv_dirent_has_dino,
-[AC_TRY_COMPILE([
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-#  include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-#  include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-#  include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-],[
-struct dirent d; int z; z = d.d_ino;
-], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
-AC_MSG_RESULT($bash_cv_dirent_has_dino)
-if test $bash_cv_dirent_has_dino = yes; then
-AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
+dnl
+dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
+dnl system, we can't use AC_PREREQ
+dnl
+AC_DEFUN(BASH_FUNC_GETHOSTBYNAME,
+[if test "X$bash_cv_have_gethostbyname" = "X"; then
+_bash_needmsg=yes
+else
+AC_MSG_CHECKING(for gethostbyname in socket library)
+_bash_needmsg=
+fi
+AC_CACHE_VAL(bash_cv_have_gethostbyname,
+[AC_TRY_LINK([#include <netdb.h>],
+[ struct hostent *hp;
+  hp = gethostbyname("localhost");
+], bash_cv_have_gethostbyname=yes, bash_cv_have_gethostbyname=no)]
+)
+if test "X$_bash_needmsg" = Xyes; then
+    AC_MSG_CHECKING(for gethostbyname in socket library)
+fi
+AC_MSG_RESULT($bash_cv_have_gethostbyname)
+if test "$bash_cv_have_gethostbyname" = yes; then
+AC_DEFINE(HAVE_GETHOSTBYNAME)
 fi
 ])
 
-AC_DEFUN(BASH_STRUCT_DIRENT_D_FILENO,
-[AC_REQUIRE([AC_HEADER_DIRENT])
-AC_MSG_CHECKING(if struct dirent has a d_fileno member)
-AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
-[AC_TRY_COMPILE([
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
+AC_DEFUN(BASH_FUNC_FNMATCH_EXTMATCH,
+[AC_MSG_CHECKING(if fnmatch does extended pattern matching with FNM_EXTMATCH)
+AC_CACHE_VAL(bash_cv_fnm_extmatch,
+[AC_TRY_RUN([
+#include <fnmatch.h>
+
+main()
+{
+#ifdef FNM_EXTMATCH
+  exit (0);
 #else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-#  include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-#  include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-#  include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-],[
-struct dirent d; int z; z = d.d_fileno;
-], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
-AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
-if test $bash_cv_dirent_has_d_fileno = yes; then
-AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO)
+  exit (1);
+#endif
+}
+], bash_cv_fnm_extmatch=yes, bash_cv_fnm_extmatch=no,
+    [AC_MSG_WARN(cannot check FNM_EXTMATCH if cross compiling -- defaulting to no)
+     bash_cv_fnm_extmatch=no])
+])
+AC_MSG_RESULT($bash_cv_fnm_extmatch)
+if test $bash_cv_fnm_extmatch = yes; then
+AC_DEFINE(HAVE_LIBC_FNM_EXTMATCH)
 fi
 ])
 
-AC_DEFUN(BASH_REINSTALL_SIGHANDLERS,
-[AC_REQUIRE([AC_TYPE_SIGNAL])
-AC_REQUIRE([BASH_SIGNAL_CHECK])
-AC_MSG_CHECKING([if signal handlers must be reinstalled when invoked])
-AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
+AC_DEFUN(BASH_FUNC_POSIX_SETJMP,
+[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
+AC_MSG_CHECKING(for presence of POSIX-style sigsetjmp/siglongjmp)
+AC_CACHE_VAL(bash_cv_func_sigsetjmp,
 [AC_TRY_RUN([
-#include <signal.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
+#include <sys/types.h>
+#include <signal.h>
+#include <setjmp.h>
 
-typedef RETSIGTYPE sigfunc();
+main()
+{
+#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
+exit (1);
+#else
 
-int nsigint;
+int code;
+sigset_t set, oset;
+sigjmp_buf xx;
 
-#ifdef HAVE_POSIX_SIGNALS
-sigfunc *
-set_signal_handler(sig, handler)
-     int sig;
-     sigfunc *handler;
-{
-  struct sigaction act, oact;
+/* get the mask */
+sigemptyset(&set);
+sigemptyset(&oset);
+sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
+sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
+
+/* save it */
+code = sigsetjmp(xx, 1);
+if (code)
+  exit(0);     /* could get sigmask and compare to oset here. */
+
+/* change it */
+sigaddset(&set, SIGINT);
+sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
+
+/* and siglongjmp */
+siglongjmp(xx, 10);
+exit(1);
+#endif
+}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
+    [AC_MSG_WARN(cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing)
+     bash_cv_func_sigsetjmp=missing]
+)])
+AC_MSG_RESULT($bash_cv_func_sigsetjmp)
+if test $bash_cv_func_sigsetjmp = present; then
+AC_DEFINE(HAVE_POSIX_SIGSETJMP)
+fi
+])
+
+AC_DEFUN(BASH_FUNC_STRCOLL,
+[
+AC_MSG_CHECKING(whether or not strcoll and strcmp differ)
+AC_CACHE_VAL(bash_cv_func_strcoll_broken,
+[AC_TRY_RUN([
+#include <stdio.h>
+#if defined (HAVE_LOCALE_H)
+#include <locale.h>
+#endif
+
+main(c, v)
+int     c;
+char    *v[];
+{
+        int     r1, r2;
+        char    *deflocale, *defcoll;
+
+#ifdef HAVE_SETLOCALE
+        deflocale = setlocale(LC_ALL, "");
+       defcoll = setlocale(LC_COLLATE, "");
+#endif
+
+#ifdef HAVE_STRCOLL
+       /* These two values are taken from tests/glob-test. */
+        r1 = strcoll("abd", "aXd");
+#else
+       r1 = 0;
+#endif
+        r2 = strcmp("abd", "aXd");
+
+       /* These two should both be greater than 0.  It is permissible for
+          a system to return different values, as long as the sign is the
+          same. */
+
+        /* Exit with 1 (failure) if these two values are both > 0, since
+          this tests whether strcoll(3) is broken with respect to strcmp(3)
+          in the default locale. */
+       exit (r1 > 0 && r2 > 0);
+}
+], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
+   [AC_MSG_WARN(cannot check strcoll if cross compiling -- defaulting to no)
+    bash_cv_func_strcoll_broken=no]
+)])
+AC_MSG_RESULT($bash_cv_func_strcoll_broken)
+if test $bash_cv_func_strcoll_broken = yes; then
+AC_DEFINE(STRCOLL_BROKEN)
+fi
+])
+
+AC_DEFUN(BASH_FUNC_PRINTF_A_FORMAT,
+[AC_MSG_CHECKING([for printf floating point output in hex notation])
+AC_CACHE_VAL(bash_cv_printf_a_format,
+[AC_TRY_RUN([
+#include <stdio.h>
+#include <string.h>
+
+int
+main()
+{
+       double y = 0.0;
+       char abuf[1024];
+
+       sprintf(abuf, "%A", y);
+       exit(strchr(abuf, 'P') == (char *)0);
+}
+], bash_cv_printf_a_format=yes, bash_cv_printf_a_format=no,
+   [AC_MSG_WARN(cannot check printf if cross compiling -- defaulting to no)
+    bash_cv_printf_a_format=no]
+)])
+AC_MSG_RESULT($bash_cv_printf_a_format)
+if test $bash_cv_printf_a_format = yes; then
+AC_DEFINE(HAVE_PRINTF_A_FORMAT)
+fi
+])
+
+AC_DEFUN(BASH_STRUCT_TERMIOS_LDISC,
+[
+AC_CHECK_MEMBER(struct termios.c_line, AC_DEFINE(TERMIOS_LDISC), ,[
+#include <sys/types.h>
+#include <termios.h>
+])
+])
+
+AC_DEFUN(BASH_STRUCT_TERMIO_LDISC,
+[
+AC_CHECK_MEMBER(struct termio.c_line, AC_DEFINE(TERMIO_LDISC), ,[
+#include <sys/types.h>
+#include <termio.h>
+])
+])
+
+dnl
+dnl Like AC_STRUCT_ST_BLOCKS, but doesn't muck with LIBOBJS
+dnl
+dnl sets bash_cv_struct_stat_st_blocks
+dnl
+dnl unused for now; we'll see how AC_CHECK_MEMBERS works
+dnl
+AC_DEFUN(BASH_STRUCT_ST_BLOCKS,
+[
+AC_MSG_CHECKING([for struct stat.st_blocks])
+AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
+[AC_TRY_COMPILE(
+[
+#include <sys/types.h>
+#include <sys/stat.h>
+],
+[
+main()
+{
+static struct stat a;
+if (a.st_blocks) return 0;
+return 0;
+}
+], bash_cv_struct_stat_st_blocks=yes, bash_cv_struct_stat_st_blocks=no)
+])
+AC_MSG_RESULT($bash_cv_struct_stat_st_blocks)
+if test "$bash_cv_struct_stat_st_blocks" = "yes"; then
+AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
+fi
+])
+
+AC_DEFUN(BASH_CHECK_LIB_TERMCAP,
+[
+if test "X$bash_cv_termcap_lib" = "X"; then
+_bash_needmsg=yes
+else
+AC_MSG_CHECKING(which library has the termcap functions)
+_bash_needmsg=
+fi
+AC_CACHE_VAL(bash_cv_termcap_lib,
+[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
+    [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
+        [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
+           [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
+               bash_cv_termcap_lib=gnutermcap)])])])])
+if test "X$_bash_needmsg" = "Xyes"; then
+AC_MSG_CHECKING(which library has the termcap functions)
+fi
+AC_MSG_RESULT(using $bash_cv_termcap_lib)
+if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
+LDFLAGS="$LDFLAGS -L./lib/termcap"
+TERMCAP_LIB="./lib/termcap/libtermcap.a"
+TERMCAP_DEP="./lib/termcap/libtermcap.a"
+elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
+TERMCAP_LIB=-ltermcap
+TERMCAP_DEP=
+elif test $bash_cv_termcap_lib = libtinfo; then
+TERMCAP_LIB=-ltinfo
+TERMCAP_DEP=
+elif test $bash_cv_termcap_lib = libncurses; then
+TERMCAP_LIB=-lncurses
+TERMCAP_DEP=
+else
+TERMCAP_LIB=-lcurses
+TERMCAP_DEP=
+fi
+])
+
+dnl
+dnl Check for the presence of getpeername in libsocket.
+dnl If libsocket is present, check for libnsl and add it to LIBS if
+dnl it's there, since most systems with libsocket require linking
+dnl with libnsl as well.  This should only be called if getpeername
+dnl was not found in libc.
+dnl
+dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
+dnl      AS WELL
+dnl
+AC_DEFUN(BASH_CHECK_LIB_SOCKET,
+[
+if test "X$bash_cv_have_socklib" = "X"; then
+_bash_needmsg=
+else
+AC_MSG_CHECKING(for socket library)
+_bash_needmsg=yes
+fi
+AC_CACHE_VAL(bash_cv_have_socklib,
+[AC_CHECK_LIB(socket, getpeername,
+        bash_cv_have_socklib=yes, bash_cv_have_socklib=no, -lnsl)])
+if test "X$_bash_needmsg" = Xyes; then
+  AC_MSG_RESULT($bash_cv_have_socklib)
+  _bash_needmsg=
+fi
+if test $bash_cv_have_socklib = yes; then
+  # check for libnsl, add it to LIBS if present
+  if test "X$bash_cv_have_libnsl" = "X"; then
+    _bash_needmsg=
+  else
+    AC_MSG_CHECKING(for libnsl)
+    _bash_needmsg=yes
+  fi
+  AC_CACHE_VAL(bash_cv_have_libnsl,
+          [AC_CHECK_LIB(nsl, t_open,
+                bash_cv_have_libnsl=yes, bash_cv_have_libnsl=no)])
+  if test "X$_bash_needmsg" = Xyes; then
+    AC_MSG_RESULT($bash_cv_have_libnsl)
+    _bash_needmsg=
+  fi
+  if test $bash_cv_have_libnsl = yes; then
+    LIBS="-lsocket -lnsl $LIBS"
+  else
+    LIBS="-lsocket $LIBS"
+  fi
+  AC_DEFINE(HAVE_LIBSOCKET)
+  AC_DEFINE(HAVE_GETPEERNAME)
+fi
+])
+
+AC_DEFUN(BASH_STRUCT_DIRENT_D_INO,
+[AC_REQUIRE([AC_HEADER_DIRENT])
+AC_MSG_CHECKING(if struct dirent has a d_ino member)
+AC_CACHE_VAL(bash_cv_dirent_has_dino,
+[AC_TRY_COMPILE([
+#include <stdio.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#if defined(HAVE_DIRENT_H)
+# include <dirent.h>
+#else
+# define dirent direct
+# ifdef HAVE_SYS_NDIR_H
+#  include <sys/ndir.h>
+# endif /* SYSNDIR */
+# ifdef HAVE_SYS_DIR_H
+#  include <sys/dir.h>
+# endif /* SYSDIR */
+# ifdef HAVE_NDIR_H
+#  include <ndir.h>
+# endif
+#endif /* HAVE_DIRENT_H */
+],[
+struct dirent d; int z; z = d.d_ino;
+], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
+AC_MSG_RESULT($bash_cv_dirent_has_dino)
+if test $bash_cv_dirent_has_dino = yes; then
+AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
+fi
+])
+
+AC_DEFUN(BASH_STRUCT_DIRENT_D_FILENO,
+[AC_REQUIRE([AC_HEADER_DIRENT])
+AC_MSG_CHECKING(if struct dirent has a d_fileno member)
+AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
+[AC_TRY_COMPILE([
+#include <stdio.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#if defined(HAVE_DIRENT_H)
+# include <dirent.h>
+#else
+# define dirent direct
+# ifdef HAVE_SYS_NDIR_H
+#  include <sys/ndir.h>
+# endif /* SYSNDIR */
+# ifdef HAVE_SYS_DIR_H
+#  include <sys/dir.h>
+# endif /* SYSDIR */
+# ifdef HAVE_NDIR_H
+#  include <ndir.h>
+# endif
+#endif /* HAVE_DIRENT_H */
+],[
+struct dirent d; int z; z = d.d_fileno;
+], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
+AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
+if test $bash_cv_dirent_has_d_fileno = yes; then
+AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO)
+fi
+])
+
+AC_DEFUN(BASH_STRUCT_TIMEVAL,
+[AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
+AC_CACHE_VAL(bash_cv_struct_timeval,
+[
+AC_EGREP_HEADER(struct timeval, sys/time.h,
+               bash_cv_struct_timeval=yes,
+               AC_EGREP_HEADER(struct timeval, time.h,
+                       bash_cv_struct_timeval=yes,
+                       bash_cv_struct_timeval=no))
+])
+AC_MSG_RESULT($bash_cv_struct_timeval)
+if test $bash_cv_struct_timeval = yes; then
+  AC_DEFINE(HAVE_TIMEVAL)
+fi
+])
+
+AC_DEFUN(BASH_STRUCT_WINSIZE,
+[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h)
+AC_CACHE_VAL(bash_cv_struct_winsize_header,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/ioctl.h>], [struct winsize x;],
+  bash_cv_struct_winsize_header=ioctl_h,
+  [AC_TRY_COMPILE([#include <sys/types.h>
+#include <termios.h>], [struct winsize x;],
+  bash_cv_struct_winsize_header=termios_h, bash_cv_struct_winsize_header=other)
+])])
+if test $bash_cv_struct_winsize_header = ioctl_h; then
+  AC_MSG_RESULT(sys/ioctl.h)
+  AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
+elif test $bash_cv_struct_winsize_header = termios_h; then
+  AC_MSG_RESULT(termios.h)
+  AC_DEFINE(STRUCT_WINSIZE_IN_TERMIOS)
+else
+  AC_MSG_RESULT(not found)
+fi
+])
+
+dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
+AC_DEFUN(BASH_SYS_SIGNAL_VINTAGE,
+[AC_REQUIRE([AC_TYPE_SIGNAL])
+AC_MSG_CHECKING(for type of signal functions)
+AC_CACHE_VAL(bash_cv_signal_vintage,
+[
+  AC_TRY_LINK([#include <signal.h>],[
+    sigset_t ss;
+    struct sigaction sa;
+    sigemptyset(&ss); sigsuspend(&ss);
+    sigaction(SIGINT, &sa, (struct sigaction *) 0);
+    sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
+  ], bash_cv_signal_vintage=posix,
+  [
+    AC_TRY_LINK([#include <signal.h>], [
+       int mask = sigmask(SIGINT);
+       sigsetmask(mask); sigblock(mask); sigpause(mask);
+    ], bash_cv_signal_vintage=4.2bsd,
+    [
+      AC_TRY_LINK([
+       #include <signal.h>
+       RETSIGTYPE foo() { }], [
+               int mask = sigmask(SIGINT);
+               sigset(SIGINT, foo); sigrelse(SIGINT);
+               sighold(SIGINT); sigpause(SIGINT);
+        ], bash_cv_signal_vintage=svr3, bash_cv_signal_vintage=v7
+    )]
+  )]
+)
+])
+AC_MSG_RESULT($bash_cv_signal_vintage)
+if test "$bash_cv_signal_vintage" = posix; then
+AC_DEFINE(HAVE_POSIX_SIGNALS)
+elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
+AC_DEFINE(HAVE_BSD_SIGNALS)
+elif test "$bash_cv_signal_vintage" = svr3; then
+AC_DEFINE(HAVE_USG_SIGHOLD)
+fi
+])
+
+dnl Check if the pgrp of setpgrp() can't be the pid of a zombie process.
+AC_DEFUN(BASH_SYS_PGRP_SYNC,
+[AC_REQUIRE([AC_FUNC_GETPGRP])
+AC_MSG_CHECKING(whether pgrps need synchronization)
+AC_CACHE_VAL(bash_cv_pgrp_pipe,
+[AC_TRY_RUN([
+#ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+#endif
+main()
+{
+# ifdef GETPGRP_VOID
+#  define getpgID()    getpgrp()
+# else
+#  define getpgID()    getpgrp(0)
+#  define setpgid(x,y) setpgrp(x,y)
+# endif
+       int pid1, pid2, fds[2];
+       int status;
+       char ok;
+
+       switch (pid1 = fork()) {
+         case -1:
+           exit(1);
+         case 0:
+           setpgid(0, getpid());
+           exit(0);
+       }
+       setpgid(pid1, pid1);
+
+       sleep(2);       /* let first child die */
+
+       if (pipe(fds) < 0)
+         exit(2);
+
+       switch (pid2 = fork()) {
+         case -1:
+           exit(3);
+         case 0:
+           setpgid(0, pid1);
+           ok = getpgID() == pid1;
+           write(fds[1], &ok, 1);
+           exit(0);
+       }
+       setpgid(pid2, pid1);
+
+       close(fds[1]);
+       if (read(fds[0], &ok, 1) != 1)
+         exit(4);
+       wait(&status);
+       wait(&status);
+       exit(ok ? 0 : 5);
+}
+], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
+   [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no)
+    bash_cv_pgrp_pipe=no])
+])
+AC_MSG_RESULT($bash_cv_pgrp_pipe)
+if test $bash_cv_pgrp_pipe = yes; then
+AC_DEFINE(PGRP_PIPE)
+fi
+])
+
+AC_DEFUN(BASH_SYS_REINSTALL_SIGHANDLERS,
+[AC_REQUIRE([AC_TYPE_SIGNAL])
+AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
+AC_MSG_CHECKING([if signal handlers must be reinstalled when invoked])
+AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
+[AC_TRY_RUN([
+#include <signal.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+typedef RETSIGTYPE sigfunc();
+
+int nsigint;
+
+#ifdef HAVE_POSIX_SIGNALS
+sigfunc *
+set_signal_handler(sig, handler)
+     int sig;
+     sigfunc *handler;
+{
+  struct sigaction act, oact;
   act.sa_handler = handler;
   act.sa_flags = 0;
   sigemptyset (&act.sa_mask);
@@ -818,20 +1323,9 @@ AC_DEFINE(MUST_REINSTALL_SIGHANDLERS)
 fi
 ])
 
-AC_DEFUN(BASH_FUNC_SBRK_DECLARED,
-[AC_MSG_CHECKING(for declaration of sbrk in <unistd.h>)
-AC_CACHE_VAL(bash_cv_sbrk_declared,
-[AC_EGREP_HEADER(sbrk, unistd.h,
- bash_cv_sbrk_declared=yes, bash_cv_sbrk_declared=no)])
-AC_MSG_RESULT($bash_cv_sbrk_declared)
-if test $bash_cv_sbrk_declared = yes; then
-AC_DEFINE(SBRK_DECLARED)
-fi
-])
-
 dnl check that some necessary job control definitions are present
-AC_DEFUN(BASH_JOB_CONTROL_MISSING,
-[AC_REQUIRE([BASH_SIGNAL_CHECK])
+AC_DEFUN(BASH_SYS_JOB_CONTROL_MISSING,
+[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
 AC_MSG_CHECKING(for presence of necessary job control definitions)
 AC_CACHE_VAL(bash_cv_job_control_missing,
 [AC_TRY_RUN([
@@ -939,87 +1433,34 @@ AC_DEFINE(NAMED_PIPES_MISSING)
 fi
 ])
 
-AC_DEFUN(BASH_FUNC_POSIX_SETJMP,
-[AC_REQUIRE([BASH_SIGNAL_CHECK])
-AC_MSG_CHECKING(for presence of POSIX-style sigsetjmp/siglongjmp)
-AC_CACHE_VAL(bash_cv_func_sigsetjmp,
-[AC_TRY_RUN([
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-#include <setjmp.h>
-
-main()
-{
-#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
-exit (1);
-#else
-
-int code;
-sigset_t set, oset;
-sigjmp_buf xx;
-
-/* get the mask */
-sigemptyset(&set);
-sigemptyset(&oset);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
-
-/* save it */
-code = sigsetjmp(xx, 1);
-if (code)
-  exit(0);     /* could get sigmask and compare to oset here. */
-
-/* change it */
-sigaddset(&set, SIGINT);
-sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
-
-/* and siglongjmp */
-siglongjmp(xx, 10);
-exit(1);
-#endif
-}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
-    [AC_MSG_WARN(cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing)
-     bash_cv_func_sigsetjmp=missing]
-)])
-AC_MSG_RESULT($bash_cv_func_sigsetjmp)
-if test $bash_cv_func_sigsetjmp = present; then
-AC_DEFINE(HAVE_POSIX_SIGSETJMP)
-fi
-])
-
-AC_DEFUN(BASH_HAVE_TIOCGWINSZ,
-[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h)
-AC_CACHE_VAL(bash_cv_tiocgwinsz_in_ioctl,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
-  bash_cv_tiocgwinsz_in_ioctl=yes,bash_cv_tiocgwinsz_in_ioctl=no)])
-AC_MSG_RESULT($bash_cv_tiocgwinsz_in_ioctl)
-if test $bash_cv_tiocgwinsz_in_ioctl = yes; then   
-AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
-fi
+AC_DEFUN(BASH_SYS_DEFAULT_MAIL_DIR,
+[AC_MSG_CHECKING(for default mail directory)
+AC_CACHE_VAL(bash_cv_mail_dir,
+[if test -d /var/mail; then
+   bash_cv_mail_dir=/var/mail
+ elif test -d /var/spool/mail; then
+   bash_cv_mail_dir=/var/spool/mail
+ elif test -d /usr/mail; then
+   bash_cv_mail_dir=/usr/mail
+ elif test -d /usr/spool/mail; then
+   bash_cv_mail_dir=/usr/spool/mail
+ else
+   bash_cv_mail_dir=unknown
+ fi
 ])
-
-AC_DEFUN(BASH_STRUCT_WINSIZE,
-[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h)
-AC_CACHE_VAL(bash_cv_struct_winsize_header,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [struct winsize x;],
-  bash_cv_struct_winsize_header=ioctl_h,
-  [AC_TRY_COMPILE([#include <sys/types.h>
-#include <termios.h>], [struct winsize x;],
-  bash_cv_struct_winsize_header=termios_h, bash_cv_struct_winsize_header=other)
-])])
-if test $bash_cv_struct_winsize_header = ioctl_h; then
-  AC_MSG_RESULT(sys/ioctl.h)
-  AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
-elif test $bash_cv_struct_winsize_header = termios_h; then
-  AC_MSG_RESULT(termios.h)
-  AC_DEFINE(STRUCT_WINSIZE_IN_TERMIOS)
-else
-  AC_MSG_RESULT(not found)
+AC_MSG_RESULT($bash_cv_mail_dir)
+AC_DEFINE_UNQUOTED(DEFAULT_MAIL_DIRECTORY, "$bash_cv_mail_dir")
+])
+
+AC_DEFUN(BASH_HAVE_TIOCGWINSZ,
+[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h)
+AC_CACHE_VAL(bash_cv_tiocgwinsz_in_ioctl,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
+  bash_cv_tiocgwinsz_in_ioctl=yes,bash_cv_tiocgwinsz_in_ioctl=no)])
+AC_MSG_RESULT($bash_cv_tiocgwinsz_in_ioctl)
+if test $bash_cv_tiocgwinsz_in_ioctl = yes; then   
+AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
 fi
 ])
 
@@ -1053,7 +1494,7 @@ dnl require a definition of speed_t each time <termcap.h> is included,
 dnl but you can only get speed_t if you include <termios.h> (on some
 dnl versions) or <sys/types.h> (on others).
 dnl
-AC_DEFUN(BASH_MISC_SPEED_T,
+AC_DEFUN(BASH_CHECK_SPEED_T,
 [AC_MSG_CHECKING(for speed_t in sys/types.h)
 AC_CACHE_VAL(bash_cv_speed_t_in_sys_types,
 [AC_TRY_COMPILE([#include <sys/types.h>], [speed_t x;],
@@ -1065,17 +1506,19 @@ fi
 ])
 
 AC_DEFUN(BASH_CHECK_GETPW_FUNCS,
-[AC_MSG_CHECKING(whether programs are able to redeclare getpw functions)
-AC_CACHE_VAL(bash_cv_can_redecl_getpw,
-[AC_TRY_COMPILE([#include <sys/types.h>
+[AC_MSG_CHECKING(whether getpw functions are declared in pwd.h)
+AC_CACHE_VAL(bash_cv_getpw_declared,
+[AC_EGREP_CPP(getpwuid,
+[
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+#endif
 #include <pwd.h>
-extern struct passwd *getpwent();
-extern struct passwd *getpwuid();
-extern struct passwd *getpwnam();],
-[struct passwd *z; z = getpwent(); z = getpwuid(0); z = getpwnam("root");],
-  bash_cv_can_redecl_getpw=yes,bash_cv_can_redecl_getpw=no)])
-AC_MSG_RESULT($bash_cv_can_redecl_getpw)
-if test $bash_cv_can_redecl_getpw = no; then
+],
+bash_cv_getpw_declared=yes,bash_cv_getpw_declared=no)])
+AC_MSG_RESULT($bash_cv_getpw_declared)
+if test $bash_cv_getpw_declared = yes; then
 AC_DEFINE(HAVE_GETPW_DECLS)
 fi
 ])
@@ -1118,115 +1561,10 @@ if test $bash_cv_dev_stdin = "present"; then
 fi
 ])
 
-dnl
-dnl Check for the presence of getpeername in libsocket.
-dnl If libsocket is present, check for libnsl and add it to LIBS if
-dnl it's there, since most systems with libsocket require linking
-dnl with libnsl as well.  This should only be called if getpeername
-dnl was not found in libc.
-dnl
-dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
-dnl      AS WELL
-dnl
-AC_DEFUN(BASH_CHECK_SOCKLIB,
-[
-if test "X$bash_cv_have_socklib" = "X"; then
-_bash_needmsg=
-else
-AC_MSG_CHECKING(for socket library)
-_bash_needmsg=yes
-fi
-AC_CACHE_VAL(bash_cv_have_socklib,
-[AC_CHECK_LIB(socket, getpeername,
-        bash_cv_have_socklib=yes, bash_cv_have_socklib=no, -lnsl)])
-if test "X$_bash_needmsg" = Xyes; then
-  AC_MSG_RESULT($bash_cv_have_socklib)
-  _bash_needmsg=
-fi
-if test $bash_cv_have_socklib = yes; then
-  # check for libnsl, add it to LIBS if present
-  if test "X$bash_cv_have_libnsl" = "X"; then
-    _bash_needmsg=
-  else
-    AC_MSG_CHECKING(for libnsl)
-    _bash_needmsg=yes
-  fi
-  AC_CACHE_VAL(bash_cv_have_libnsl,
-          [AC_CHECK_LIB(nsl, t_open,
-                bash_cv_have_libnsl=yes, bash_cv_have_libnsl=no)])
-  if test "X$_bash_needmsg" = Xyes; then
-    AC_MSG_RESULT($bash_cv_have_libnsl)
-    _bash_needmsg=
-  fi
-  if test $bash_cv_have_libnsl = yes; then
-    LIBS="-lsocket -lnsl $LIBS"
-  else
-    LIBS="-lsocket $LIBS"
-  fi
-  AC_DEFINE(HAVE_LIBSOCKET)
-  AC_DEFINE(HAVE_GETPEERNAME)
-fi
-])
-
-dnl
-dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
-dnl system, we can't use AC_PREREQ
-dnl
-AC_DEFUN(BASH_FUNC_GETHOSTBYNAME,
-[if test "X$bash_cv_have_gethostbyname" = "X"; then
-_bash_needmsg=yes
-else
-AC_MSG_CHECKING(for gethostbyname in socket library)
-_bash_needmsg=
-fi
-AC_CACHE_VAL(bash_cv_have_gethostbyname,
-[AC_TRY_LINK([#include <netdb.h>],
-[ struct hostent *hp;
-  hp = gethostbyname("localhost");
-], bash_cv_have_gethostbyname=yes, bash_cv_have_gethostbyname=no)]
-)
-if test "X$_bash_needmsg" = Xyes; then
-    AC_MSG_CHECKING(for gethostbyname in socket library)
-fi
-AC_MSG_RESULT($bash_cv_have_gethostbyname)
-if test "$bash_cv_have_gethostbyname" = yes; then
-AC_DEFINE(HAVE_GETHOSTBYNAME)
-fi
-])
-
-AC_DEFUN(BASH_DEFAULT_MAIL_DIR,
-[AC_MSG_CHECKING(for default mail directory)
-AC_CACHE_VAL(bash_cv_mail_dir,
-[if test -d /var/mail; then
-   bash_cv_mail_dir=/var/mail
- elif test -d /usr/mail; then
-   bash_cv_mail_dir=/usr/mail
- elif test -d /var/spool/mail; then
-   bash_cv_mail_dir=/var/spool/mail
- elif test -d /usr/spool/mail; then
-   bash_cv_mail_dir=/usr/spool/mail
- else
-   bash_cv_mail_dir=unknown
- fi
-])
-AC_MSG_RESULT($bash_cv_mail_dir)
-if test $bash_cv_mail_dir = "/var/mail"; then
-   AC_DEFINE(DEFAULT_MAIL_DIRECTORY, "/var/mail")
-elif test $bash_cv_mail_dir = "/usr/mail"; then
-   AC_DEFINE(DEFAULT_MAIL_DIRECTORY, "/usr/mail")
-elif test $bash_cv_mail_dir = "/var/spool/mail"; then
-   AC_DEFINE(DEFAULT_MAIL_DIRECTORY, "/var/spool/mail")
-elif test $bash_cv_mail_dir = "/usr/spool/mail"; then
-   AC_DEFINE(DEFAULT_MAIL_DIRECTORY, "/usr/spool/mail")
-else
-   AC_DEFINE(DEFAULT_MAIL_DIRECTORY, "unknown")
-fi
-])
-
 dnl
 dnl Check if HPUX needs _KERNEL defined for RLIMIT_* definitions
 dnl
-AC_DEFUN(BASH_KERNEL_RLIMIT_CHECK,
+AC_DEFUN(BASH_CHECK_KERNEL_RLIMIT,
 [AC_MSG_CHECKING([whether $host_os needs _KERNEL for RLIMIT defines])
 AC_CACHE_VAL(bash_cv_kernel_rlimit,
 [AC_TRY_COMPILE([
@@ -1254,142 +1592,6 @@ AC_DEFINE(RLIMIT_NEEDS_KERNEL)
 fi
 ])
 
-AC_DEFUN(BASH_FUNC_STRCOLL,
-[
-AC_MSG_CHECKING(whether or not strcoll and strcmp differ)
-AC_CACHE_VAL(bash_cv_func_strcoll_broken,
-[AC_TRY_RUN([
-#include <stdio.h>
-#if defined (HAVE_LOCALE_H)
-#include <locale.h>
-#endif
-
-main(c, v)
-int     c;
-char    *v[];
-{
-        int     r1, r2;
-        char    *deflocale, *defcoll;
-
-#ifdef HAVE_SETLOCALE
-        deflocale = setlocale(LC_ALL, "");
-       defcoll = setlocale(LC_COLLATE, "");
-#endif
-
-#ifdef HAVE_STRCOLL
-       /* These two values are taken from tests/glob-test. */
-        r1 = strcoll("abd", "aXd");
-#else
-       r1 = 0;
-#endif
-        r2 = strcmp("abd", "aXd");
-
-       /* These two should both be greater than 0.  It is permissible for
-          a system to return different values, as long as the sign is the
-          same. */
-
-        /* Exit with 1 (failure) if these two values are both > 0, since
-          this tests whether strcoll(3) is broken with respect to strcmp(3)
-          in the default locale. */
-       exit (r1 > 0 && r2 > 0);
-}
-], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
-   [AC_MSG_WARN(cannot check strcoll if cross compiling -- defaulting to no)
-    bash_cv_func_strcoll_broken=no]
-)])
-AC_MSG_RESULT($bash_cv_func_strcoll_broken)
-if test $bash_cv_func_strcoll_broken = yes; then
-AC_DEFINE(STRCOLL_BROKEN)
-fi
-])
-
-dnl
-dnl If available, use support for large files unless the user specified
-dnl one of the CPPFLAGS, LDFLAGS, or LIBS variables (<eggert@twinsun.com>
-dnl via GNU patch 2.5)
-dnl
-AC_DEFUN(BASH_LARGE_FILE_SUPPORT,
-[AC_MSG_CHECKING(whether large file support needs explicit enabling)
-ac_getconfs=''
-ac_result=yes
-ac_set=''
-ac_shellvars='CPPFLAGS LDFLAGS LIBS'
-for ac_shellvar in $ac_shellvars; do
-  case $ac_shellvar in
-  CPPFLAGS) ac_lfsvar=LFS_CFLAGS ac_lfs64var=LFS64_CFLAGS ;;
-  *) ac_lfsvar=LFS_$ac_shellvar ac_lfs64var=LFS64_$ac_shellvar ;;
-  esac
-  eval test '"${'$ac_shellvar'+set}"' = set && ac_set=$ac_shellvar
-  (getconf $ac_lfsvar) >/dev/null 2>&1 || { ac_result=no; break; }
-  ac_getconf=`getconf $ac_lfsvar`
-  ac_getconf64=`getconf $ac_lfs64var`
-  ac_getconfs=$ac_getconfs$ac_getconf\ $ac_getconf64
-  eval ac_test_$ac_shellvar="\$ac_getconf\ \$ac_getconf64"
-done
-case "$ac_result$ac_getconfs" in
-yes) ac_result=no ;;
-esac
-case "$ac_result$ac_set" in
-yes?*) ac_result="yes, but $ac_set is already set, so use its settings"
-esac
-AC_MSG_RESULT($ac_result)
-case $ac_result in
-yes)
-  for ac_shellvar in $ac_shellvars; do
-    eval $ac_shellvar=\$ac_test_$ac_shellvar
-  done ;;
-esac
-])
-
-dnl
-dnl AC_SYS_RESTARTABLE_SYSCALLS tests only for restarted system calls
-dnl after a signal handler has been installed with signal().  Since
-dnl Bash uses sigaction() if it is available, we need to check whether
-dnl or not a signal handler installed with sigaction and SA_RESTART
-dnl causes system calls to be restarted after the signal is caught
-dnl
-AC_DEFUN(BASH_SYS_RESTARTABLE_SYSCALLS,
-[AC_REQUIRE([BASH_SIGNAL_CHECK])
-AC_CACHE_CHECK(for restartable system calls with posix sigaction,
-bash_cv_sys_restartable_syscalls,
-[AC_TRY_RUN(
-[/* Exit 0 (true) if wait returns something other than -1,
-   i.e. the pid of the child, which means that wait was restarted
-   after getting the signal.  */
-#include <sys/types.h>
-#include <signal.h>
-static int caught = 0;
-void ucatch (isig) int isig; { caught = 1; }
-main ()
-{
-#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
-  exit (1);
-#else
-  struct sigaction act, oact;
-  int i, status;
-
-  act.sa_handler = ucatch;
-  /* Might want to add SA_RESTART here, but bash's set_signal_handler
-     does not. */
-  act.sa_flags = 0;
-  sigemptyset(&act.sa_mask);
-  sigemptyset(&oact.sa_mask);
-  i = fork ();
-  /* A possible race condition here, but in practice it never happens. */
-  if (i == 0) { sleep (3); kill (getppid (), SIGINT); sleep (3); exit (0); }
-  sigaction(SIGINT, &act, &oact);
-  status = wait(&i);
-  if (status == -1) wait(&i);
-  exit (status == -1);
-#endif
-}
-], bash_cv_sys_restartable_syscalls=yes, bash_cv_sys_restartable_syscalls=no,
-   AC_MSG_WARN(cannot check restartable syscalls if cross compiling))
-])
-if test $bash_cv_sys_restartable_syscalls = yes; then
-  AC_DEFINE(HAVE_RESTARTABLE_SYSCALLS)
-fi
-])
 dnl
 dnl Check for 64-bit off_t -- used for malloc alignment
 dnl
@@ -1410,18 +1612,181 @@ if test $bash_cv_off_t_64 = yes; then
         AC_DEFINE(HAVE_OFF_T_64)
 fi])
 
-AC_DEFUN(BASH_STRUCT_TIMEVAL,
-[AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
-AC_CACHE_VAL(bash_cv_struct_timeval,
+AC_DEFUN(BASH_CHECK_RTSIGS,
+[AC_MSG_CHECKING(for unusable real-time signals due to large values)
+AC_CACHE_VAL(bash_cv_unusable_rtsigs,
+[AC_TRY_RUN([
+#include <sys/types.h>
+#include <signal.h>
+
+#ifndef NSIG
+#  define NSIG 64
+#endif
+
+main ()
+{
+  int n_sigs = 2 * NSIG;
+#ifdef SIGRTMIN
+  int rtmin = SIGRTMIN;
+#else
+  int rtmin = 0;
+#endif
+
+  exit(rtmin < n_sigs);
+}], bash_cv_unusable_rtsigs=yes, bash_cv_unusable_rtsigs=no,
+    [AC_MSG_WARN(cannot check real-time signals if cross compiling -- defaulting to yes)
+     bash_cv_unusable_rtsigs=yes]
+)])
+AC_MSG_RESULT($bash_cv_unusable_rtsigs)
+if test $bash_cv_unusable_rtsigs = yes; then
+AC_DEFINE(UNUSABLE_RT_SIGNALS)
+fi
+])
+
+dnl
+dnl check for availability of multibyte characters and functions
+dnl
+AC_DEFUN(BASH_CHECK_MULTIBYTE,
 [
-AC_EGREP_HEADER(struct timeval, sys/time.h,
-               bash_cv_struct_timeval=yes,
-               AC_EGREP_HEADER(struct timeval, time.h,
-                       bash_cv_struct_timeval=yes,
-                       bash_cv_struct_timeval=no))
+AC_CHECK_HEADERS(wctype.h)
+AC_CHECK_HEADERS(wchar.h)
+AC_CHECK_HEADERS(langinfo.h)
+
+AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
+AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
+
+AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
+[AC_TRY_RUN([
+#include <wchar.h>
+int
+main ()
+{
+  mbstate_t ps;
+  return 0;
+}], bash_cv_have_mbstate_t=yes,  bash_cv_have_mbstate_t=no)])
+if test $bash_cv_have_mbstate_t = yes; then
+       AC_DEFINE(HAVE_MBSTATE_T)
+fi
+
+AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
+[AC_TRY_LINK(
+[#include <langinfo.h>],
+[char* cs = nl_langinfo(CODESET);],
+bash_cv_langinfo_codeset=yes, bash_cv_langinfo_codeset=no)])
+if test $bash_cv_langinfo_codeset = yes; then
+  AC_DEFINE(HAVE_LANGINFO_CODESET)
+fi
+
 ])
-AC_MSG_RESULT($bash_cv_struct_timeval)
-if test $bash_cv_struct_timeval = yes; then
-  AC_DEFINE(HAVE_TIMEVAL)
+
+dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
+dnl require:
+dnl    AC_PROG_CC
+dnl    BASH_CHECK_LIB_TERMCAP
+
+AC_DEFUN(RL_LIB_READLINE_VERSION,
+[
+AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
+
+AC_MSG_CHECKING([version of installed readline library])
+
+# What a pain in the ass this is.
+
+# save cpp and ld options
+_save_CFLAGS="$CFLAGS"
+_save_LDFLAGS="$LDFLAGS"
+_save_LIBS="$LIBS"
+
+# Don't set ac_cv_rl_prefix if the caller has already assigned a value.  This
+# allows the caller to do something like $_rl_prefix=$withval if the user
+# specifies --with-installed-readline=PREFIX as an argument to configure
+
+if test -z "$ac_cv_rl_prefix"; then
+test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
+fi
+
+eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
+eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
+
+LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
+CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
+LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
+
+AC_TRY_RUN([
+#include <stdio.h>
+#include <readline/readline.h>
+
+main()
+{
+       FILE *fp;
+       fp = fopen("conftest.rlv", "w");
+       if (fp == 0) exit(1);
+       fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
+       fclose(fp);
+       exit(0);
+}
+],
+ac_cv_rl_version=`cat conftest.rlv`,
+ac_cv_rl_version='0.0',
+ac_cv_rl_version='4.2')
+
+CFLAGS="$_save_CFLAGS"
+LDFLAGS="$_save_LDFLAGS"
+LIBS="$_save_LIBS"
+
+RL_MAJOR=0
+RL_MINOR=0
+
+# (
+case "$ac_cv_rl_version" in
+2*|3*|4*|5*|6*|7*|8*|9*)
+       RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
+       RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
+       ;;
+esac
+
+# (((
+case $RL_MAJOR in
+[[0-9][0-9]])  _RL_MAJOR=$RL_MAJOR ;;
+[[0-9]])       _RL_MAJOR=0$RL_MAJOR ;;
+*)             _RL_MAJOR=00 ;;
+esac
+
+# (((
+case $RL_MINOR in
+[[0-9][0-9]])  _RL_MINOR=$RL_MINOR ;;
+[[0-9]])       _RL_MINOR=0$RL_MINOR ;;
+*)             _RL_MINOR=00 ;;
+esac
+
+RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
+
+# Readline versions greater than 4.2 have these defines in readline.h
+
+if test $ac_cv_rl_version = '0.0' ; then
+       AC_MSG_WARN([Could not test version of installed readline library.])
+elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
+       # set these for use by the caller
+       RL_PREFIX=$ac_cv_rl_prefix
+       RL_LIBDIR=$ac_cv_rl_libdir
+       RL_INCLUDEDIR=$ac_cv_rl_includedir
+       AC_MSG_RESULT($ac_cv_rl_version)
+else
+
+AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
+AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
+AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
+
+AC_SUBST(RL_VERSION)
+AC_SUBST(RL_MAJOR)
+AC_SUBST(RL_MINOR)
+
+# set these for use by the caller
+RL_PREFIX=$ac_cv_rl_prefix
+RL_LIBDIR=$ac_cv_rl_libdir
+RL_INCLUDEDIR=$ac_cv_rl_includedir
+
+AC_MSG_RESULT($ac_cv_rl_version)
+
 fi
 ])
index a720cb9bcbcd94f567130146a6009b814c5126df..db13cd234bdf216accbe666718f5e63dab4001cc 100644 (file)
 
 /* String conversion functions. */
 extern int atoi ();
-extern long int atol ();
+
+extern double atof ();
+extern double strtod ();
 
 /* Memory allocation functions. */
-extern char *malloc ();
-extern char *realloc ();
+/* Generic pointer type. */
+#ifndef PTR_T
+
+#if defined (__STDC__)
+#  define PTR_T        void *
+#else
+#  define PTR_T char *
+#endif
+
+#endif /* PTR_T */
+
+extern PTR_T malloc ();
+extern PTR_T realloc ();
 extern void free ();
 
 /* Other miscellaneous functions. */
index 6a6424e9e02d5d89ed1d87d1dd108070495c9465..65ef401e207b34eb2405c52b097e11c9a6f2cc3c 100644 (file)
@@ -68,9 +68,11 @@ extern char *strchr (), *strrchr ();
 /* Variables exported by this file. */
 Keymap rl_binding_keymap;
 
-static int _rl_read_init_file __P((char *, int));
-static int glean_key_from_name __P((char *));
-static int substring_member_of_array __P((char *, char **));
+static char *_rl_read_file PARAMS((char *, size_t *));
+static void _rl_init_file_error PARAMS((const char *));
+static int _rl_read_init_file PARAMS((const char *, int));
+static int glean_key_from_name PARAMS((char *));
+static int substring_member_of_array PARAMS((char *, const char **));
 
 static int currently_reading_init_file;
 
@@ -83,13 +85,13 @@ static int _rl_prefer_visible_bell = 1;
 /*                                                                 */
 /* **************************************************************** */
 
-/* rl_add_defun (char *name, Function *function, int key)
+/* rl_add_defun (char *name, rl_command_func_t *function, int key)
    Add NAME to the list of named functions.  Make FUNCTION be the function
    that gets called.  If KEY is not -1, then bind it. */
 int
 rl_add_defun (name, function, key)
-     char *name;
-     Function *function;
+     const char *name;
+     rl_command_func_t *function;
      int key;
 {
   if (key != -1)
@@ -102,7 +104,7 @@ rl_add_defun (name, function, key)
 int
 rl_bind_key (key, function)
      int key;
-     Function *function;
+     rl_command_func_t *function;
 {
   if (key < 0)
     return (key);
@@ -133,7 +135,7 @@ rl_bind_key (key, function)
 int
 rl_bind_key_in_map (key, function, map)
      int key;
-     Function *function;
+     rl_command_func_t *function;
      Keymap map;
 {
   int result;
@@ -152,7 +154,7 @@ int
 rl_unbind_key (key)
      int key;
 {
-  return (rl_bind_key (key, (Function *)NULL));
+  return (rl_bind_key (key, (rl_command_func_t *)NULL));
 }
 
 /* Make KEY do nothing in MAP.
@@ -162,13 +164,13 @@ rl_unbind_key_in_map (key, map)
      int key;
      Keymap map;
 {
-  return (rl_bind_key_in_map (key, (Function *)NULL, map));
+  return (rl_bind_key_in_map (key, (rl_command_func_t *)NULL, map));
 }
 
 /* Unbind all keys bound to FUNCTION in MAP. */
 int
 rl_unbind_function_in_map (func, map)
-     Function *func;
+     rl_command_func_t *func;
      Keymap map;
 {
   register int i, rval;
@@ -177,7 +179,7 @@ rl_unbind_function_in_map (func, map)
     {
       if (map[i].type == ISFUNC && map[i].function == func)
        {
-         map[i].function = (Function *)NULL;
+         map[i].function = (rl_command_func_t *)NULL;
          rval = 1;
        }
     }
@@ -186,10 +188,10 @@ rl_unbind_function_in_map (func, map)
 
 int
 rl_unbind_command_in_map (command, map)
-     char *command;
+     const char *command;
      Keymap map;
 {
-  Function *func;
+  rl_command_func_t *func;
 
   func = rl_named_function (command);
   if (func == 0)
@@ -202,8 +204,8 @@ rl_unbind_command_in_map (command, map)
    place to do bindings is in MAP. */
 int
 rl_set_key (keyseq, function, map)
-     char *keyseq;
-     Function *function;
+     const char *keyseq;
+     rl_command_func_t *function;
      Keymap map;
 {
   return (rl_generic_bind (ISFUNC, keyseq, (char *)function, map));
@@ -214,7 +216,7 @@ rl_set_key (keyseq, function, map)
    necessary.  The initial place to do bindings is in MAP. */
 int
 rl_macro_bind (keyseq, macro, map)
-     char *keyseq, *macro;
+     const char *keyseq, *macro;
      Keymap map;
 {
   char *macro_keys;
@@ -239,12 +241,16 @@ rl_macro_bind (keyseq, macro, map)
 int
 rl_generic_bind (type, keyseq, data, map)
      int type;
-     char *keyseq, *data;
+     const char *keyseq;
+     char *data;
      Keymap map;
 {
   char *keys;
   int keys_len;
   register int i;
+  KEYMAP_ENTRY k;
+
+  k.function = 0;
 
   /* If no keys to bind to, exit right away. */
   if (!keyseq || !*keyseq)
@@ -254,7 +260,7 @@ rl_generic_bind (type, keyseq, data, map)
       return -1;
     }
 
-  keys = xmalloc (1 + (2 * strlen (keyseq)));
+  keys = (char *)xmalloc (1 + (2 * strlen (keyseq)));
 
   /* Translate the ASCII representation of KEYSEQ into an array of
      characters.  Stuff the characters into KEYS, and the length of
@@ -268,7 +274,12 @@ rl_generic_bind (type, keyseq, data, map)
   /* Bind keys, making new keymaps as necessary. */
   for (i = 0; i < keys_len; i++)
     {
-      int ic = (int) ((unsigned char)keys[i]);
+      unsigned char uc = keys[i];
+      int ic;
+
+      ic = uc;
+      if (ic < 0 || ic >= KEYMAP_SIZE)
+       return -1;
 
       if (_rl_convert_meta_chars_to_ascii && META_CHAR (ic))
        {
@@ -281,18 +292,40 @@ rl_generic_bind (type, keyseq, data, map)
        {
          if (map[ic].type != ISKMAP)
            {
-             if (map[ic].type == ISMACR)
-               free ((char *)map[ic].function);
+             /* We allow subsequences of keys.  If a keymap is being
+                created that will `shadow' an existing function or macro
+                key binding, we save that keybinding into the ANYOTHERKEY
+                index in the new map.  The dispatch code will look there
+                to find the function to execute if the subsequence is not
+                matched.  ANYOTHERKEY was chosen to be greater than
+                UCHAR_MAX. */
+             k = map[ic];
 
              map[ic].type = ISKMAP;
              map[ic].function = KEYMAP_TO_FUNCTION (rl_make_bare_keymap());
            }
          map = FUNCTION_TO_KEYMAP (map, ic);
+         /* The dispatch code will return this function if no matching
+            key sequence is found in the keymap.  This (with a little
+            help from the dispatch code in readline.c) allows `a' to be
+            mapped to something, `abc' to be mapped to something else,
+            and the function bound  to `a' to be executed when the user
+            types `abx', leaving `bx' in the input queue. */
+         if (k.function /* && k.type == ISFUNC */)
+           {
+             map[ANYOTHERKEY] = k;
+             k.function = 0;
+           }
        }
       else
        {
          if (map[ic].type == ISMACR)
            free ((char *)map[ic].function);
+         else if (map[ic].type == ISKMAP)
+           {
+             map = FUNCTION_TO_KEYMAP (map, ic);
+             ic = ANYOTHERKEY;
+           }
 
          map[ic].function = KEYMAP_TO_FUNCTION (data);
          map[ic].type = type;
@@ -309,7 +342,8 @@ rl_generic_bind (type, keyseq, data, map)
    non-zero if there was an error parsing SEQ. */
 int
 rl_translate_keyseq (seq, array, len)
-     char *seq, *array;
+     const char *seq;
+     char *array;
      int *len;
 {
   register int i, c, l, temp;
@@ -329,7 +363,7 @@ rl_translate_keyseq (seq, array, len)
              /* Handle special case of backwards define. */
              if (strncmp (&seq[i], "C-\\M-", 5) == 0)
                {
-                 array[l++] = ESC;
+                 array[l++] = ESC;     /* ESC is meta-prefix */
                  i += 5;
                  array[l++] = CTRL (_rl_to_upper (seq[i]));
                  if (seq[i] == '\0')
@@ -338,7 +372,7 @@ rl_translate_keyseq (seq, array, len)
              else if (c == 'M')
                {
                  i++;
-                 array[l++] = ESC;     /* XXX */
+                 array[l++] = ESC;     /* ESC is meta-prefix */
                }
              else if (c == 'C')
                {
@@ -391,16 +425,16 @@ rl_translate_keyseq (seq, array, len)
              for (temp = 2, c -= '0'; ISOCTAL (seq[i]) && temp--; i++)
                c = (c * 8) + OCTVALUE (seq[i]);
              i--;      /* auto-increment in for loop */
-             array[l++] = c % (largest_char + 1);
+             array[l++] = c & largest_char;
              break;
            case 'x':
              i++;
-             for (temp = 3, c = 0; isxdigit (seq[i]) && temp--; i++)
+             for (temp = 2, c = 0; ISXDIGIT ((unsigned char)seq[i]) && temp--; i++)
                c = (c * 16) + HEXVALUE (seq[i]);
-             if (temp == 3)
+             if (temp == 2)
                c = 'x';
              i--;      /* auto-increment in for loop */
-             array[l++] = c % (largest_char + 1);
+             array[l++] = c & largest_char;
              break;
            default:    /* backslashes before non-special chars just add the char */
              array[l++] = c;
@@ -470,7 +504,7 @@ _rl_untranslate_macro_value (seq)
   char *ret, *r, *s;
   int c;
 
-  r = ret = xmalloc (7 * strlen (seq) + 1);
+  r = ret = (char *)xmalloc (7 * strlen (seq) + 1);
   for (s = seq; *s; s++)
     {
       c = *s;
@@ -513,9 +547,9 @@ _rl_untranslate_macro_value (seq)
 /* Return a pointer to the function that STRING represents.
    If STRING doesn't have a matching function, then a NULL pointer
    is returned. */
-Function *
+rl_command_func_t *
 rl_named_function (string)
-     char *string;
+     const char *string;
 {
   register int i;
 
@@ -524,7 +558,7 @@ rl_named_function (string)
   for (i = 0; funmap[i]; i++)
     if (_rl_stricmp (funmap[i]->name, string) == 0)
       return (funmap[i]->function);
-  return ((Function *)NULL);
+  return ((rl_command_func_t *)NULL);
 }
 
 /* Return the function (or macro) definition which would be invoked via
@@ -532,9 +566,9 @@ rl_named_function (string)
    used.  TYPE, if non-NULL, is a pointer to an int which will receive the
    type of the object pointed to.  One of ISFUNC (function), ISKMAP (keymap),
    or ISMACR (macro). */
-Function *
+rl_command_func_t *
 rl_function_of_keyseq (keyseq, map, type)
-     char *keyseq;
+     const char *keyseq;
      Keymap map;
      int *type;
 {
@@ -545,7 +579,7 @@ rl_function_of_keyseq (keyseq, map, type)
 
   for (i = 0; keyseq && keyseq[i]; i++)
     {
-      int ic = keyseq[i];
+      unsigned char ic = keyseq[i];
 
       if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii)
        {
@@ -585,14 +619,14 @@ rl_function_of_keyseq (keyseq, map, type)
          return (map[ic].function);
        }
     }
-  return ((Function *) NULL);
+  return ((rl_command_func_t *) NULL);
 }
 
 /* The last key bindings file read. */
 static char *last_readline_init_file = (char *)NULL;
 
 /* The file we're currently reading key bindings from. */
-static char *current_readline_init_file;
+static const char *current_readline_init_file;
 static int current_readline_init_include_level;
 static int current_readline_init_lineno;
 
@@ -630,25 +664,15 @@ _rl_read_file (filename, sizep)
   i = read (file, buffer, file_size);
   close (file);
 
-#if 0
-  if (i < file_size)
-#else
   if (i < 0)
-#endif
     {
       free (buffer);
       return ((char *)NULL);
     }
 
-#if 0
-  buffer[file_size] = '\0';
-  if (sizep)
-    *sizep = file_size;
-#else
   buffer[i] = '\0';
   if (sizep)
     *sizep = i;
-#endif
 
   return (buffer);
 }
@@ -659,7 +683,7 @@ rl_re_read_init_file (count, ignore)
      int count, ignore;
 {
   int r;
-  r = rl_read_init_file ((char *)NULL);
+  r = rl_read_init_file ((const char *)NULL);
   rl_set_keymap_from_edit_mode ();
   return r;
 }
@@ -673,14 +697,14 @@ rl_re_read_init_file (count, ignore)
    otherwise errno is returned. */
 int
 rl_read_init_file (filename)
-     char *filename;
+     const char *filename;
 {
   /* Default the filename. */
   if (filename == 0)
     {
       filename = last_readline_init_file;
       if (filename == 0)
-        filename = get_env_value ("INPUTRC");
+        filename = sh_get_env_value ("INPUTRC");
       if (filename == 0)
        filename = DEFAULT_INPUTRC;
     }
@@ -698,7 +722,7 @@ rl_read_init_file (filename)
 
 static int
 _rl_read_init_file (filename, include_level)
-     char *filename;
+     const char *filename;
      int include_level;
 {
   register int i;
@@ -733,7 +757,7 @@ _rl_read_init_file (filename, include_level)
       /* Find the end of this line. */
       for (i = 0; line + i != end && line[i] != '\n'; i++);
 
-#if defined (__CYGWIN32__)
+#if defined (__CYGWIN__)
       /* ``Be liberal in what you accept.'' */
       if (line[i] == '\n' && line[i-1] == '\r')
        line[i - 1] = '\0';
@@ -765,7 +789,7 @@ _rl_read_init_file (filename, include_level)
 
 static void
 _rl_init_file_error (msg)
-     char *msg;
+     const char *msg;
 {
   if (currently_reading_init_file)
     fprintf (stderr, "readline: %s: line %d: %s\n", current_readline_init_file,
@@ -780,10 +804,21 @@ _rl_init_file_error (msg)
 /*                                                                 */
 /* **************************************************************** */
 
+typedef int _rl_parser_func_t PARAMS((char *));
+
+/* Things that mean `Control'. */
+const char *_rl_possible_control_prefixes[] = {
+  "Control-", "C-", "CTRL-", (const char *)NULL
+};
+
+const char *_rl_possible_meta_prefixes[] = {
+  "Meta", "M-", (const char *)NULL
+};
+
 /* Conditionals. */
 
 /* Calling programs set this to have their argv[0]. */
-char *rl_readline_name = "other";
+const char *rl_readline_name = "other";
 
 /* Stack of previous values of parsing_conditionalized_out. */
 static unsigned char *if_stack = (unsigned char *)NULL;
@@ -905,7 +940,8 @@ static int
 parser_include (args)
      char *args;
 {
-  char *old_init_file, *e;
+  const char *old_init_file;
+  char *e;
   int old_line_number, old_include_level, r;
 
   if (_rl_parsing_conditionalized_out)
@@ -918,7 +954,7 @@ parser_include (args)
   e = strchr (args, '\n');
   if (e)
     *e = '\0';
-  r = _rl_read_init_file (args, old_include_level + 1);
+  r = _rl_read_init_file ((const char *)args, old_include_level + 1);
 
   current_readline_init_file = old_init_file;
   current_readline_init_lineno = old_line_number;
@@ -929,14 +965,14 @@ parser_include (args)
   
 /* Associate textual names with actual functions. */
 static struct {
-  char *name;
-  Function *function;
+  const char *name;
+  _rl_parser_func_t *function;
 } parser_directives [] = {
   { "if", parser_if },
   { "endif", parser_endif },
   { "else", parser_else },
   { "include", parser_include },
-  { (char *)0x0, (Function *)0x0 }
+  { (char *)0x0, (_rl_parser_func_t *)0x0 }
 };
 
 /* Handle a parser directive.  STATEMENT is the line of the directive
@@ -1061,7 +1097,7 @@ rl_parse_and_bind (string)
       /* Make VAR point to start of variable name. */
       while (*var && whitespace (*var)) var++;
 
-      /* Make value point to start of value string. */
+      /* Make VALUE point to start of value string. */
       value = var;
       while (*value && !whitespace (*value)) value++;
       if (*value)
@@ -1131,7 +1167,7 @@ rl_parse_and_bind (string)
       char *seq;
       register int j, k, passc;
 
-      seq = xmalloc (1 + strlen (string));
+      seq = (char *)xmalloc (1 + strlen (string));
       for (j = 1, k = passc = 0; string[j]; j++)
        {
          /* Allow backslash to quote characters, but leave them in place.
@@ -1180,16 +1216,16 @@ rl_parse_and_bind (string)
   key = glean_key_from_name (kname);
 
   /* Add in control and meta bits. */
-  if (substring_member_of_array (string, possible_control_prefixes))
+  if (substring_member_of_array (string, _rl_possible_control_prefixes))
     key = CTRL (_rl_to_upper (key));
 
-  if (substring_member_of_array (string, possible_meta_prefixes))
+  if (substring_member_of_array (string, _rl_possible_meta_prefixes))
     key = META (key);
 
   /* Temporary.  Handle old-style keyname with macro-binding. */
   if (*funname == '\'' || *funname == '"')
     {
-      unsigned char useq[2];
+      char useq[2];
       int fl = strlen (funname);
 
       useq[0] = key; useq[1] = '\0';
@@ -1221,22 +1257,27 @@ rl_parse_and_bind (string)
 #define V_SPECIAL      0x1
 
 static struct {
-  char *name;
+  const char *name;
   int *value;
   int flags;
 } boolean_varlist [] = {
   { "blink-matching-paren",    &rl_blink_matching_paren,       V_SPECIAL },
+  { "byte-oriented",           &rl_byte_oriented,              0 },
   { "completion-ignore-case",  &_rl_completion_case_fold,      0 },
   { "convert-meta",            &_rl_convert_meta_chars_to_ascii, 0 },
   { "disable-completion",      &rl_inhibit_completion,         0 },
   { "enable-keypad",           &_rl_enable_keypad,             0 },
   { "expand-tilde",            &rl_complete_with_tilde_expansion, 0 },
+  { "history-preserve-point",  &_rl_history_preserve_point,    0 },
   { "horizontal-scroll-mode",  &_rl_horizontal_scroll_mode,    0 },
   { "input-meta",              &_rl_meta_flag,                 0 },
   { "mark-directories",                &_rl_complete_mark_directories, 0 },
   { "mark-modified-lines",     &_rl_mark_modified_lines,       0 },
+  { "mark-symlinked-directories", &_rl_complete_mark_symlink_dirs, 0 },
+  { "match-hidden-files",      &_rl_match_hidden_files,        0 },
   { "meta-flag",               &_rl_meta_flag,                 0 },
   { "output-meta",             &_rl_output_meta_chars,         0 },
+  { "page-completions",                &_rl_page_completions,          0 },
   { "prefer-visible-bell",     &_rl_prefer_visible_bell,       V_SPECIAL },
   { "print-completions-horizontally", &_rl_print_completions_horizontally, 0 },
   { "show-all-if-ambiguous",   &_rl_complete_show_all,         0 },
@@ -1248,7 +1289,7 @@ static struct {
 
 static int
 find_boolean_var (name)
-     char *name;
+     const char *name;
 {
   register int i;
 
@@ -1265,7 +1306,7 @@ static void
 hack_special_boolean_var (i)
      int i;
 {
-  char *name;
+  const char *name;
 
   name = boolean_varlist[i].name;
 
@@ -1280,6 +1321,8 @@ hack_special_boolean_var (i)
     }
 }
 
+typedef int _rl_sv_func_t PARAMS((const char *));
+
 /* These *must* correspond to the array indices for the appropriate
    string variable.  (Though they're not used right now.) */
 #define V_BELLSTYLE    0
@@ -1292,17 +1335,17 @@ hack_special_boolean_var (i)
 #define V_INT          2
 
 /* Forward declarations */
-static int sv_bell_style __P((char *));
-static int sv_combegin __P((char *));
-static int sv_compquery __P((char *));
-static int sv_editmode __P((char *));
-static int sv_isrchterm __P((char *));
-static int sv_keymap __P((char *));
+static int sv_bell_style PARAMS((const char *));
+static int sv_combegin PARAMS((const char *));
+static int sv_compquery PARAMS((const char *));
+static int sv_editmode PARAMS((const char *));
+static int sv_isrchterm PARAMS((const char *));
+static int sv_keymap PARAMS((const char *));
 
 static struct {
-  char *name;
+  const char *name;
   int flags;
-  Function *set_func;
+  _rl_sv_func_t *set_func;
 } string_varlist[] = {
   { "bell-style",      V_STRING,       sv_bell_style },
   { "comment-begin",   V_STRING,       sv_combegin },
@@ -1315,7 +1358,7 @@ static struct {
 
 static int
 find_string_var (name)
-     char *name;
+     const char *name;
 {
   register int i;
 
@@ -1339,7 +1382,7 @@ bool_to_int (value)
 
 int
 rl_variable_bind (name, value)
-     char *name, *value;
+     const char *name, *value;
 {
   register int i;
   int  v;
@@ -1367,7 +1410,7 @@ rl_variable_bind (name, value)
 
 static int
 sv_editmode (value)
-     char *value;
+     const char *value;
 {
   if (_rl_strnicmp (value, "vi", 2) == 0)
     {
@@ -1388,7 +1431,7 @@ sv_editmode (value)
 
 static int
 sv_combegin (value)
-     char *value;
+     const char *value;
 {
   if (value && *value)
     {
@@ -1401,7 +1444,7 @@ sv_combegin (value)
 
 static int
 sv_compquery (value)
-     char *value;
+     const char *value;
 {
   int nval = 100;
 
@@ -1417,7 +1460,7 @@ sv_compquery (value)
 
 static int
 sv_keymap (value)
-     char *value;
+     const char *value;
 {
   Keymap kmap;
 
@@ -1430,28 +1473,26 @@ sv_keymap (value)
   return 1;
 }
 
-#define _SET_BELL(v)   do { _rl_bell_preference = v; return 0; } while (0)
-
 static int
 sv_bell_style (value)
-     char *value;
+     const char *value;
 {
   if (value == 0 || *value == '\0')
-    _SET_BELL (AUDIBLE_BELL);
+    _rl_bell_preference = AUDIBLE_BELL;
   else if (_rl_stricmp (value, "none") == 0 || _rl_stricmp (value, "off") == 0)
-    _SET_BELL (NO_BELL);
+    _rl_bell_preference = NO_BELL;
   else if (_rl_stricmp (value, "audible") == 0 || _rl_stricmp (value, "on") == 0)
-    _SET_BELL (AUDIBLE_BELL);
+    _rl_bell_preference = AUDIBLE_BELL;
   else if (_rl_stricmp (value, "visible") == 0)
-    _SET_BELL (VISIBLE_BELL);
+    _rl_bell_preference = VISIBLE_BELL;
   else
     return 1;
+  return 0;
 }
-#undef _SET_BELL
 
 static int
 sv_isrchterm (value)
-     char *value;
+     const char *value;
 {
   int beg, end, delim;
   char *v;
@@ -1477,7 +1518,7 @@ sv_isrchterm (value)
   v[end] = '\0';
 
   /* The value starts at v + beg.  Translate it into a character string. */
-  _rl_isearch_terminators = (unsigned char *)xmalloc (2 * strlen (v) + 1);
+  _rl_isearch_terminators = (char *)xmalloc (2 * strlen (v) + 1);
   rl_translate_keyseq (v + beg, _rl_isearch_terminators, &end);
   _rl_isearch_terminators[end] = '\0';
 
@@ -1489,7 +1530,7 @@ sv_isrchterm (value)
    For example, `Space' returns ' '. */
 
 typedef struct {
-  char *name;
+  const char *name;
   int value;
 } assoc_list;
 
@@ -1523,7 +1564,7 @@ glean_key_from_name (name)
 
 /* Auxiliary functions to manage keymaps. */
 static struct {
-  char *name;
+  const char *name;
   Keymap map;
 } keymap_names[] = {
   { "emacs", emacs_standard_keymap },
@@ -1541,12 +1582,12 @@ static struct {
 
 Keymap
 rl_get_keymap_by_name (name)
-     char *name;
+     const char *name;
 {
   register int i;
 
   for (i = 0; keymap_names[i].name; i++)
-    if (strcmp (name, keymap_names[i].name) == 0)
+    if (_rl_stricmp (name, keymap_names[i].name) == 0)
       return (keymap_names[i].map);
   return ((Keymap) NULL);
 }
@@ -1558,7 +1599,7 @@ rl_get_keymap_name (map)
   register int i;
   for (i = 0; keymap_names[i].name; i++)
     if (map == keymap_names[i].map)
-      return (keymap_names[i].name);
+      return ((char *)keymap_names[i].name);
   return ((char *)NULL);
 }
   
@@ -1616,7 +1657,7 @@ void
 rl_list_funmap_names ()
 {
   register int i;
-  char **funmap_names;
+  const char **funmap_names;
 
   funmap_names = rl_funmap_names ();
 
@@ -1643,17 +1684,18 @@ _rl_get_keyname (key)
      pairs for possible inclusion in an inputrc file, we don't want to
      do any special meta processing on KEY. */
 
-#if 0
+#if 1
+  /* XXX - Experimental */
   /* We might want to do this, but the old version of the code did not. */
 
   /* If this is an escape character, we don't want to do any more processing.
      Just add the special ESC key sequence and return. */
   if (c == ESC)
     {
-      keyseq[0] = '\\';
-      keyseq[1] = 'e';
-      keyseq[2] = '\0';
-      return keyseq;
+      keyname[0] = '\\';
+      keyname[1] = 'e';
+      keyname[2] = '\0';
+      return keyname;
     }
 #endif
 
@@ -1706,7 +1748,7 @@ _rl_get_keyname (key)
    sequences that are used to invoke FUNCTION in MAP. */
 char **
 rl_invoking_keyseqs_in_map (function, map)
-     Function *function;
+     rl_command_func_t *function;
      Keymap map;
 {
   register int key;
@@ -1735,7 +1777,7 @@ rl_invoking_keyseqs_in_map (function, map)
              if (result_index + 2 > result_size)
                {
                  result_size += 10;
-                 result = (char **) xrealloc (result, result_size * sizeof (char *));
+                 result = (char **)xrealloc (result, result_size * sizeof (char *));
                }
 
              result[result_index++] = keyname;
@@ -1764,7 +1806,12 @@ rl_invoking_keyseqs_in_map (function, map)
                char *keyname = (char *)xmalloc (6 + strlen (seqs[i]));
 
                if (key == ESC)
+#if 0
                  sprintf (keyname, "\\e");
+#else
+               /* XXX - experimental */
+                 sprintf (keyname, "\\M-");
+#endif
                else if (CTRL_CHAR (key))
                  sprintf (keyname, "\\C-%c", _rl_to_lower (UNCTRL (key)));
                else if (key == RUBOUT)
@@ -1787,7 +1834,7 @@ rl_invoking_keyseqs_in_map (function, map)
                if (result_index + 2 > result_size)
                  {
                    result_size += 10;
-                   result = (char **) xrealloc (result, result_size * sizeof (char *));
+                   result = (char **)xrealloc (result, result_size * sizeof (char *));
                  }
 
                result[result_index++] = keyname;
@@ -1806,7 +1853,7 @@ rl_invoking_keyseqs_in_map (function, map)
    sequences that can be used to invoke FUNCTION using the current keymap. */
 char **
 rl_invoking_keyseqs (function)
-     Function *function;
+     rl_command_func_t *function;
 {
   return (rl_invoking_keyseqs_in_map (function, _rl_keymap));
 }
@@ -1819,8 +1866,8 @@ rl_function_dumper (print_readably)
      int print_readably;
 {
   register int i;
-  char **names;
-  char *name;
+  const char **names;
+  const char *name;
 
   names = rl_funmap_names ();
 
@@ -1828,7 +1875,7 @@ rl_function_dumper (print_readably)
 
   for (i = 0; name = names[i]; i++)
     {
-      Function *function;
+      rl_command_func_t *function;
       char **invokers;
 
       function = rl_named_function (name);
@@ -1911,11 +1958,8 @@ _rl_macro_dumper_internal (print_readably, map, prefix)
        {
        case ISMACR:
          keyname = _rl_get_keyname (key);
-#if 0
-         out = (char *)map[key].function;
-#else
          out = _rl_untranslate_macro_value ((char *)map[key].function);
-#endif
+
          if (print_readably)
            fprintf (rl_outstream, "\"%s%s\": \"%s\"\n", prefix ? prefix : "",
                                                         keyname,
@@ -1925,9 +1969,7 @@ _rl_macro_dumper_internal (print_readably, map, prefix)
                                                        keyname,
                                                        out ? out : "");
          free (keyname);
-#if 1
          free (out);
-#endif
          break;
        case ISFUNC:
          break;
@@ -1935,7 +1977,7 @@ _rl_macro_dumper_internal (print_readably, map, prefix)
          prefix_len = prefix ? strlen (prefix) : 0;
          if (key == ESC)
            {
-             keyname = xmalloc (3 + prefix_len);
+             keyname = (char *)xmalloc (3 + prefix_len);
              if (prefix)
                strcpy (keyname, prefix);
              keyname[prefix_len] = '\\';
@@ -1947,7 +1989,7 @@ _rl_macro_dumper_internal (print_readably, map, prefix)
              keyname = _rl_get_keyname (key);
              if (prefix)
                {
-                 out = xmalloc (strlen (keyname) + prefix_len + 1);
+                 out = (char *)xmalloc (strlen (keyname) + prefix_len + 1);
                  strcpy (out, prefix);
                  strcpy (out + prefix_len, keyname);
                  free (keyname);
@@ -1985,7 +2027,7 @@ rl_variable_dumper (print_readably)
      int print_readably;
 {
   int i;
-  char *kname;
+  const char *kname;
 
   for (i = 0; boolean_varlist[i].name; i++)
     {
@@ -2017,7 +2059,7 @@ rl_variable_dumper (print_readably)
   if (print_readably)
     fprintf (rl_outstream, "set comment-begin %s\n", _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT);
   else
-    fprintf (rl_outstream, "comment-begin is set to `%s'\n", _rl_comment_begin ? _rl_comment_begin : "");
+    fprintf (rl_outstream, "comment-begin is set to `%s'\n", _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT);
 
   /* completion-query-items */
   if (print_readably)
@@ -2031,15 +2073,6 @@ rl_variable_dumper (print_readably)
   else
     fprintf (rl_outstream, "editing-mode is set to `%s'\n", (rl_editing_mode == emacs_mode) ? "emacs" : "vi");
 
-  /* keymap */
-  kname = rl_get_keymap_name (_rl_keymap);
-  if (kname == 0)
-    kname = rl_get_keymap_name_from_edit_mode ();
-  if (print_readably)
-    fprintf (rl_outstream, "set keymap %s\n", kname ? kname : "none");
-  else
-    fprintf (rl_outstream, "keymap is set to `%s'\n", kname ? kname : "none");
-
   /* isearch-terminators */
   if (_rl_isearch_terminators)
     {
@@ -2054,6 +2087,15 @@ rl_variable_dumper (print_readably)
 
       free (disp);
     }
+
+  /* keymap */
+  kname = rl_get_keymap_name (_rl_keymap);
+  if (kname == 0)
+    kname = rl_get_keymap_name_from_edit_mode ();
+  if (print_readably)
+    fprintf (rl_outstream, "set keymap %s\n", kname ? kname : "none");
+  else
+    fprintf (rl_outstream, "keymap is set to `%s'\n", kname ? kname : "none");
 }
 
 /* Print all of the current variables and their values to
@@ -2070,18 +2112,24 @@ rl_dump_variables (count, key)
   return (0);
 }
 
-/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. */
+/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound.  Right
+   now, this is always used to attempt to bind the arrow keys, hence the
+   check for rl_vi_movement_mode. */
 void
 _rl_bind_if_unbound (keyseq, default_func)
-     char *keyseq;
-     Function *default_func;
+     const char *keyseq;
+     rl_command_func_t *default_func;
 {
-  Function *func;
+  rl_command_func_t *func;
 
   if (keyseq)
     {
       func = rl_function_of_keyseq (keyseq, _rl_keymap, (int *)NULL);
+#if defined (VI_MODE)
+      if (!func || func == rl_do_lowercase_version || func == rl_vi_movement_mode)
+#else
       if (!func || func == rl_do_lowercase_version)
+#endif
        rl_set_key (keyseq, default_func, _rl_keymap);
     }
 }
@@ -2089,7 +2137,8 @@ _rl_bind_if_unbound (keyseq, default_func)
 /* Return non-zero if any members of ARRAY are a substring in STRING. */
 static int
 substring_member_of_array (string, array)
-     char *string, **array;
+     char *string;
+     const char **array;
 {
   while (*array)
     {
index 117235697e161627ba60ab81c394bd71cd904a5b..a8f4323c929f467c905b4781e867c641908a1646 100644 (file)
 #if defined (READLINE_CALLBACKS)
 
 #include <sys/types.h>
+
+#ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+#else
+#  include "ansi_stdlib.h"
+#endif
+
 #include <stdio.h>
 
 /* System-specific feature definitions and include files. */
@@ -52,7 +59,7 @@
    text read in at each end of line.  The terminal is kept prepped and
    signals handled all the time, except during calls to the user's function. */
 
-VFunction *rl_linefunc;                /* user callback function */
+rl_vcpfunc_t *rl_linefunc;             /* user callback function */
 static int in_handler;         /* terminal_prepped and signals set? */
 
 /* Make sure the terminal is set up, initialize readline, and prompt. */
@@ -78,11 +85,10 @@ _rl_callback_newline ()
 /* Install a readline handler, set up the terminal, and issue the prompt. */
 void
 rl_callback_handler_install (prompt, linefunc)
-     char *prompt;
-     VFunction *linefunc;
+     const char *prompt;
+     rl_vcpfunc_t *linefunc;
 {
-  rl_prompt = prompt;
-  rl_visible_prompt_length = rl_prompt ? rl_expand_prompt (rl_prompt) : 0;
+  rl_set_prompt (prompt);
   rl_linefunc = linefunc;
   _rl_callback_newline ();
 }
@@ -102,24 +108,33 @@ rl_callback_read_char ()
 
   eof = readline_internal_char ();
 
-  if (rl_done)
+  /* We loop in case some function has pushed input back with rl_execute_next. */
+  for (;;)
     {
-      line = readline_internal_teardown (eof);
+      if (rl_done)
+       {
+         line = readline_internal_teardown (eof);
 
-      (*rl_deprep_term_function) ();
+         (*rl_deprep_term_function) ();
 #if defined (HANDLE_SIGNALS)
-      rl_clear_signals ();
+         rl_clear_signals ();
 #endif
-      in_handler = 0;
-      (*rl_linefunc) (line);
-
-    /* If the user did not clear out the line, do it for him. */
-    if (rl_line_buffer[0])
-      _rl_init_line_state ();
-
-    /* Redisplay the prompt if readline_handler_{install,remove} not called. */
-      if (in_handler == 0 && rl_linefunc)
-       _rl_callback_newline ();
+         in_handler = 0;
+         (*rl_linefunc) (line);
+
+         /* If the user did not clear out the line, do it for him. */
+         if (rl_line_buffer[0])
+           _rl_init_line_state ();
+
+         /* Redisplay the prompt if readline_handler_{install,remove}
+            not called. */
+         if (in_handler == 0 && rl_linefunc)
+           _rl_callback_newline ();
+       }
+      if (rl_pending_input)
+       eof = readline_internal_char ();
+      else
+        break;
     }
 }
 
index 664c1e43368615080188589a33cddd1f4575541b..a537be220b0bcb37ec05a46ebb1399adad23f31a 100644 (file)
 
 #if defined (HAVE_CONFIG_H)
 #  if defined (HAVE_STRING_H)
+#    if ! defined (STDC_HEADERS) && defined (HAVE_MEMORY_H)
+#      include <memory.h>
+#    endif
 #    include <string.h>
-#  else
-#    include <strings.h>
 #  endif /* HAVE_STRING_H */
+#  if defined (HAVE_STRINGS_H)
+#    include <strings.h>
+#  endif /* HAVE_STRINGS_H */
 #else
 #  include <string.h>
 #endif /* !HAVE_CONFIG_H */
 #endif
 
 #ifdef CTRL
-#undef CTRL
+#  undef CTRL
+#endif
+#ifdef UNCTRL
+#  undef UNCTRL
 #endif
 
 /* Some character stuff. */
@@ -51,7 +58,7 @@
 #define meta_character_bit 0x080           /* x0000000, must be on. */
 #define largest_char 255                   /* Largest character value. */
 
-#define CTRL_CHAR(c) ((c) < control_character_threshold && (c) >= 0)
+#define CTRL_CHAR(c) ((c) < control_character_threshold && (((c) & 0x80) == 0))
 #define META_CHAR(c) ((c) > meta_character_threshold && (c) <= largest_char)
 
 #define CTRL(c) ((c) & control_character_mask)
 #define UNMETA(c) ((c) & (~meta_character_bit))
 #define UNCTRL(c) _rl_to_upper(((c)|control_character_bit))
 
-/* Old versions
-#define _rl_lowercase_p(c) (((c) > ('a' - 1) && (c) < ('z' + 1)))
-#define _rl_uppercase_p(c) (((c) > ('A' - 1) && (c) < ('Z' + 1)))
-#define _rl_digit_p(c)  ((c) >= '0' && (c) <= '9')
-*/
+#if defined STDC_HEADERS || (!defined (isascii) && !defined (HAVE_ISASCII))
+#  define IN_CTYPE_DOMAIN(c) 1
+#else
+#  define IN_CTYPE_DOMAIN(c) isascii(c)
+#endif
+
+#if !defined (isxdigit) && !defined (HAVE_ISXDIGIT)
+#  define isxdigit(c)   (isdigit((c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
+#endif
+
+#define NON_NEGATIVE(c)        ((unsigned char)(c) == (c))
+
+/* Some systems define these; we want our definitions. */
+#undef ISPRINT
 
-#define _rl_lowercase_p(c) (islower(c))
-#define _rl_uppercase_p(c) (isupper(c))
-#define _rl_digit_p(x)  (isdigit (x))
+#define ISALNUM(c)     (IN_CTYPE_DOMAIN (c) && isalnum (c))
+#define ISALPHA(c)     (IN_CTYPE_DOMAIN (c) && isalpha (c))
+#define ISDIGIT(c)     (IN_CTYPE_DOMAIN (c) && isdigit (c))
+#define ISLOWER(c)     (IN_CTYPE_DOMAIN (c) && islower (c))
+#define ISPRINT(c)     (IN_CTYPE_DOMAIN (c) && isprint (c))
+#define ISUPPER(c)     (IN_CTYPE_DOMAIN (c) && isupper (c))
+#define ISXDIGIT(c)    (IN_CTYPE_DOMAIN (c) && isxdigit (c))
 
-#define _rl_pure_alphabetic(c) (_rl_lowercase_p(c) || _rl_uppercase_p(c))
-#define ALPHABETIC(c)  (_rl_lowercase_p(c) || _rl_uppercase_p(c) || _rl_digit_p(c))
+#define _rl_lowercase_p(c)     (NON_NEGATIVE(c) && ISLOWER(c))
+#define _rl_uppercase_p(c)     (NON_NEGATIVE(c) && ISUPPER(c))
+#define _rl_digit_p(c)         ((c) >= '0' && (c) <= '9')
 
-/* Old versions
-#  define _rl_to_upper(c) (_rl_lowercase_p(c) ? ((c) - 32) : (c))
-#  define _rl_to_lower(c) (_rl_uppercase_p(c) ? ((c) + 32) : (c))
-*/
+#define _rl_pure_alphabetic(c) (NON_NEGATIVE(c) && ISALPHA(c))
+#define ALPHABETIC(c)          (NON_NEGATIVE(c) && ISALNUM(c))
 
 #ifndef _rl_to_upper
-#  define _rl_to_upper(c) (islower(c) ? toupper(c) : (c))
-#  define _rl_to_lower(c) (isupper(c) ? tolower(c) : (c))
+#  define _rl_to_upper(c) (_rl_lowercase_p(c) ? toupper((unsigned char)c) : (c))
+#  define _rl_to_lower(c) (_rl_uppercase_p(c) ? tolower((unsigned char)c) : (c))
 #endif
 
 #ifndef _rl_digit_value
-#define _rl_digit_value(x) ((x) - '0')
+#  define _rl_digit_value(x) ((x) - '0')
+#endif
+
+#ifndef _rl_isident
+#  define _rl_isident(c) (ISALNUM(c) || (c) == '_')
 #endif
 
+#ifndef ISOCTAL
+#  define ISOCTAL(c)   ((c) >= '0' && (c) <= '7')
+#endif
+#define OCTVALUE(c)    ((c) - '0')
+
+#define HEXVALUE(c) \
+  (((c) >= 'a' && (c) <= 'f') \
+       ? (c)-'a'+10 \
+       : (c) >= 'A' && (c) <= 'F' ? (c)-'A'+10 : (c)-'0')
+
 #ifndef NEWLINE
 #define NEWLINE '\n'
 #endif
 #endif
 #define ESC CTRL('[')
 
-#ifndef ISOCTAL
-#define ISOCTAL(c)      ((c) >= '0' && (c) <= '7')
-#endif
-#define OCTVALUE(c)     ((c) - '0')
-
-#ifndef isxdigit
-#  define isxdigit(c)   (isdigit((c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
-#endif
-
-#define HEXVALUE(c) \
-  (((c) >= 'a' && (c) <= 'f') \
-       ? (c)-'a'+10 \
-       : (c) >= 'A' && (c) <= 'F' ? (c)-'A'+10 : (c)-'0')
-
 #endif  /* _CHARDEFS_H_ */
index fb48712a4e0684be4e59dd9fe3b13a1fcf1de605..21a9d70859b38882b9edb0eb77f49377052e20f1 100644 (file)
@@ -49,24 +49,13 @@ extern int errno;
 #endif /* !errno */
 
 #include <pwd.h>
-#if !defined (HAVE_GETPW_DECLS)
-extern struct passwd *getpwent ();
-#endif /* USG && !HAVE_GETPW_DECLS */
-
-/* ISC systems don't define getpwent() if _POSIX_SOURCE is defined. */
-#if defined (isc386) && defined (_POSIX_SOURCE)
-#  if defined (__STDC__)
-extern struct passwd *getpwent (void);
-#  else
-extern struct passwd *getpwent ();
-#  endif /* !__STDC__ */
-#endif /* isc386 && _POSIX_SOURCE */
 
 #include "posixdir.h"
 #include "posixstat.h"
 
 /* System-specific feature definitions and include files. */
 #include "rldefs.h"
+#include "rlmbutil.h"
 
 /* Some standard library routines. */
 #include "readline.h"
@@ -79,6 +68,21 @@ typedef int QSFUNC (const void *, const void *);
 typedef int QSFUNC ();
 #endif
 
+#ifdef HAVE_LSTAT
+#  define LSTAT lstat
+#else
+#  define LSTAT stat
+#endif
+
+/* Unix version of a hidden file.  Could be different on other systems. */
+#define HIDDEN_FILE(fname)     ((fname)[0] == '.')
+
+/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is
+   defined. */
+#if !defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE)
+extern struct passwd *getpwent PARAMS((void));
+#endif /* !HAVE_GETPW_DECLS || _POSIX_SOURCE */
+
 /* If non-zero, then this is the address of a function to call when
    completing a word would normally display the list of possible matches.
    This function is called instead of actually doing the display.
@@ -86,28 +90,34 @@ typedef int QSFUNC ();
    where MATCHES is the array of strings that matched, NUM_MATCHES is the
    number of strings in that array, and MAX_LENGTH is the length of the
    longest string in that array. */
-VFunction *rl_completion_display_matches_hook = (VFunction *)NULL;
-
-/* Forward declarations for functions defined and used in this file. */
-char *filename_completion_function __P((char *, int));
-char **completion_matches __P((char *, CPFunction *));
+rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)NULL;
 
 #if defined (VISIBLE_STATS)
 #  if !defined (X_OK)
 #    define X_OK 1
 #  endif
-static int stat_char __P((char *));
+static int stat_char PARAMS((char *));
 #endif
 
-static char *rl_quote_filename __P((char *, int, char *));
-static char *rl_strpbrk __P((char *, char *));
+static char *rl_quote_filename PARAMS((char *, int, char *));
+
+static void set_completion_defaults PARAMS((int));
+static int get_y_or_n PARAMS((int));
+static int _rl_internal_pager PARAMS((int));
+static char *printable_part PARAMS((char *));
+static int print_filename PARAMS((char *, char *));
 
-static char **remove_duplicate_matches __P((char **));
-static void insert_match __P((char *, int, int, char *));
-static int append_to_match __P((char *, int, int));
-static void insert_all_matches __P((char **, int, char *));
-static void display_matches __P((char **));
-static int compute_lcd_of_matches __P((char **, int, char *));
+static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));
+
+static char **remove_duplicate_matches PARAMS((char **));
+static void insert_match PARAMS((char *, int, int, char *));
+static int append_to_match PARAMS((char *, int, int, int));
+static void insert_all_matches PARAMS((char **, int, char *));
+static void display_matches PARAMS((char **));
+static int compute_lcd_of_matches PARAMS((char **, int, const char *));
+static int postprocess_matches PARAMS((char ***, int));
+
+static char *make_quoted_replacement PARAMS((char *, int, char *));
 
 /* **************************************************************** */
 /*                                                                 */
@@ -123,6 +133,12 @@ int _rl_complete_show_all = 0;
 /* If non-zero, completed directory names have a slash appended. */
 int _rl_complete_mark_directories = 1;
 
+/* If non-zero, the symlinked directory completion behavior introduced in
+   readline-4.2a is disabled, and symlinks that point to directories have
+   a slash appended (subject to the value of _rl_complete_mark_directories).
+   This is user-settable via the mark-symlinked-directories variable. */
+int _rl_complete_mark_symlink_dirs = 0;
+
 /* If non-zero, completions are printed horizontally in alphabetical order,
    like `ls -x'. */
 int _rl_print_completions_horizontally;
@@ -134,6 +150,10 @@ int _rl_completion_case_fold = 1;
 int _rl_completion_case_fold;
 #endif
 
+/* If non-zero, don't match hidden files (filenames beginning with a `.' on
+   Unix) when doing filename completion. */
+int _rl_match_hidden_files = 1;
+
 /* Global variables available to applications using readline. */
 
 #if defined (VISIBLE_STATS)
@@ -146,15 +166,17 @@ int rl_visible_stats = 0;
 /* If non-zero, then this is the address of a function to call when
    completing on a directory name.  The function is called with
    the address of a string (the current directory name) as an arg. */
-Function *rl_directory_completion_hook = (Function *)NULL;
+rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
+
+rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
 
 /* Non-zero means readline completion functions perform tilde expansion. */
 int rl_complete_with_tilde_expansion = 0;
 
 /* Pointer to the generator function for completion_matches ().
-   NULL means to use filename_completion_function (), the default filename
+   NULL means to use rl_filename_completion_function (), the default filename
    completer. */
-Function *rl_completion_entry_function = (Function *)NULL;
+rl_compentry_func_t *rl_completion_entry_function = (rl_compentry_func_t *)NULL;
 
 /* Pointer to alternative function to create matches.
    Function is called with TEXT, START, and END.
@@ -163,7 +185,7 @@ Function *rl_completion_entry_function = (Function *)NULL;
    If this function exists and returns NULL then call the value of
    rl_completion_entry_function to try to match, otherwise use the
    array of strings returned. */
-CPPFunction *rl_attempted_completion_function = (CPPFunction *)NULL;
+rl_completion_func_t *rl_attempted_completion_function = (rl_completion_func_t *)NULL;
 
 /* Non-zero means to suppress normal filename completion after the
    user-specified completion function has been called. */
@@ -179,32 +201,34 @@ int rl_completion_type = 0;
    she is sure she wants to see them all. */
 int rl_completion_query_items = 100;
 
+int _rl_page_completions = 1;
+
 /* The basic list of characters that signal a break between words for the
    completer routine.  The contents of this variable is what breaks words
    in the shell, i.e. " \t\n\"\\'`@$><=" */
-char *rl_basic_word_break_characters = " \t\n\"\\'`@$><=;|&{(";
+const char *rl_basic_word_break_characters = " \t\n\"\\'`@$><=;|&{("; /* }) */
 
 /* List of basic quoting characters. */
-char *rl_basic_quote_characters = "\"'";
+const char *rl_basic_quote_characters = "\"'";
 
 /* The list of characters that signal a break between words for
    rl_complete_internal.  The default list is the contents of
    rl_basic_word_break_characters.  */
-char *rl_completer_word_break_characters = (char *)NULL;
+const char *rl_completer_word_break_characters = (const char *)NULL;
 
 /* List of characters which can be used to quote a substring of the line.
    Completion occurs on the entire substring, and within the substring
    rl_completer_word_break_characters are treated as any other character,
    unless they also appear within this list. */
-char *rl_completer_quote_characters = (char *)NULL;
+const char *rl_completer_quote_characters = (const char *)NULL;
 
 /* List of characters that should be quoted in filenames by the completer. */
-char *rl_filename_quote_characters = (char *)NULL;
+const char *rl_filename_quote_characters = (const char *)NULL;
 
 /* List of characters that are word break characters, but should be left
    in TEXT when it is passed to the completion function.  The shell uses
    this to help determine what kind of completing to do. */
-char *rl_special_prefixes = (char *)NULL;
+const char *rl_special_prefixes = (const char *)NULL;
 
 /* If non-zero, then disallow duplicates in the matches. */
 int rl_ignore_completion_duplicates = 1;
@@ -230,29 +254,45 @@ int rl_filename_quoting_desired = 1;
    the list of matches as required, but all elements of the array must be
    free()'d if they are deleted. The main intent of this function is
    to implement FIGNORE a la SunOS csh. */
-Function *rl_ignore_some_completions_function = (Function *)NULL;
+rl_compignore_func_t *rl_ignore_some_completions_function = (rl_compignore_func_t *)NULL;
 
 /* Set to a function to quote a filename in an application-specific fashion.
    Called with the text to quote, the type of match found (single or multiple)
    and a pointer to the quoting character to be used, which the function can
    reset if desired. */
-CPFunction *rl_filename_quoting_function = rl_quote_filename;
+rl_quote_func_t *rl_filename_quoting_function = rl_quote_filename;
          
 /* Function to call to remove quoting characters from a filename.  Called
    before completion is attempted, so the embedded quotes do not interfere
    with matching names in the file system.  Readline doesn't do anything
    with this; it's set only by applications. */
-CPFunction *rl_filename_dequoting_function = (CPFunction *)NULL;
+rl_dequote_func_t *rl_filename_dequoting_function = (rl_dequote_func_t *)NULL;
 
 /* Function to call to decide whether or not a word break character is
    quoted.  If a character is quoted, it does not break words for the
    completer. */
-Function *rl_char_is_quoted_p = (Function *)NULL;
+rl_linebuf_func_t *rl_char_is_quoted_p = (rl_linebuf_func_t *)NULL;
+
+/* If non-zero, the completion functions don't append anything except a
+   possible closing quote.  This is set to 0 by rl_complete_internal and
+   may be changed by an application-specific completion function. */
+int rl_completion_suppress_append = 0;
 
 /* Character appended to completed words when at the end of the line.  The
    default is a space. */
 int rl_completion_append_character = ' ';
 
+/* If non-zero, a slash will be appended to completed filenames that are
+   symbolic links to directory names, subject to the value of the
+   mark-directories variable (which is user-settable).  This exists so
+   that application completion functions can override the user's preference
+   (set via the mark-symlinked-directories variable) if appropriate.
+   It's set to the value of _rl_complete_mark_symlink_dirs in
+   rl_complete_internal before any application-specific completion
+   function is called, so without that function doing anything, the user's
+   preferences are honored. */
+int rl_completion_mark_symlink_dirs;
+
 /* If non-zero, inhibit completion (temporarily). */
 int rl_inhibit_completion;
 
@@ -269,13 +309,13 @@ static int completion_changed_buffer;
 
 /* Complete the word at or before point.  You have supplied the function
    that does the initial simple matching selection algorithm (see
-   completion_matches ()).  The default is to do filename completion. */
+   rl_completion_matches ()).  The default is to do filename completion. */
 int
 rl_complete (ignore, invoking_key)
      int ignore, invoking_key;
 {
   if (rl_inhibit_completion)
-    return (rl_insert (ignore, invoking_key));
+    return (_rl_insert_char (ignore, invoking_key));
   else if (rl_last_func == rl_complete && !completion_changed_buffer)
     return (rl_complete_internal ('?'));
   else if (_rl_complete_show_all)
@@ -299,52 +339,90 @@ rl_insert_completions (ignore, invoking_key)
   return (rl_complete_internal ('*'));
 }
 
+/* Return the correct value to pass to rl_complete_internal performing
+   the same tests as rl_complete.  This allows consecutive calls to an
+   application's completion function to list possible completions and for
+   an application-specific completion function to honor the
+   show-all-if-ambiguous readline variable. */
+int
+rl_completion_mode (cfunc)
+     rl_command_func_t *cfunc;
+{
+  if (rl_last_func == cfunc && !completion_changed_buffer)
+    return '?';
+  else if (_rl_complete_show_all)
+    return '!';
+  else
+    return TAB;
+}
+
 /************************************/
 /*                                 */
 /*    Completion utility functions  */
 /*                                 */
 /************************************/
 
-/* Find the first occurrence in STRING1 of any character from STRING2.
-   Return a pointer to the character in STRING1. */
-static char *
-rl_strpbrk (string1, string2)
-     char *string1, *string2;
+/* Set default values for readline word completion.  These are the variables
+   that application completion functions can change or inspect. */
+static void
+set_completion_defaults (what_to_do)
+     int what_to_do;
 {
-  register char *scan;
+  /* Only the completion entry function can change these. */
+  rl_filename_completion_desired = 0;
+  rl_filename_quoting_desired = 1;
+  rl_completion_type = what_to_do;
+  rl_completion_suppress_append = 0;
 
-  for (; *string1; string1++)
-    {
-      for (scan = string2; *scan; scan++)
-       {
-         if (*string1 == *scan)
-           {
-             return (string1);
-           }
-       }
-    }
-  return ((char *)NULL);
+  /* The completion entry function may optionally change this. */
+  rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
 }
 
 /* The user must press "y" or "n". Non-zero return means "y" pressed. */
 static int
-get_y_or_n ()
+get_y_or_n (for_pager)
+     int for_pager;
 {
   int c;
 
   for (;;)
     {
+      RL_SETSTATE(RL_STATE_MOREINPUT);
       c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
       if (c == 'y' || c == 'Y' || c == ' ')
        return (1);
       if (c == 'n' || c == 'N' || c == RUBOUT)
        return (0);
       if (c == ABORT_CHAR)
        _rl_abort_internal ();
-      ding ();
+      if (for_pager && (c == NEWLINE || c == RETURN))
+       return (2);
+      if (for_pager && (c == 'q' || c == 'Q'))
+       return (0);
+      rl_ding ();
     }
 }
 
+static int
+_rl_internal_pager (lines)
+     int lines;
+{
+  int i;
+
+  fprintf (rl_outstream, "--More--");
+  fflush (rl_outstream);
+  i = get_y_or_n (1);
+  _rl_erase_entire_line ();
+  if (i == 0)
+    return -1;
+  else if (i == 2)
+    return (lines - 1);
+  else
+    return 0;
+}
+
 #if defined (VISIBLE_STATS)
 /* Return the character which best describes FILENAME.
      `@' for symbolic links
@@ -405,19 +483,41 @@ stat_char (filename)
 /* Return the portion of PATHNAME that should be output when listing
    possible completions.  If we are hacking filename completion, we
    are only interested in the basename, the portion following the
-   final slash.  Otherwise, we return what we were passed. */
+   final slash.  Otherwise, we return what we were passed.  Since
+   printing empty strings is not very informative, if we're doing
+   filename completion, and the basename is the empty string, we look
+   for the previous slash and return the portion following that.  If
+   there's no previous slash, we just return what we were passed. */
 static char *
 printable_part (pathname)
       char *pathname;
 {
-  char *temp;
+  char *temp, *x;
+
+  if (rl_filename_completion_desired == 0)     /* don't need to do anything */
+    return (pathname);
 
-  temp = rl_filename_completion_desired ? strrchr (pathname, '/') : (char *)NULL;
+  temp = strrchr (pathname, '/');
 #if defined (__MSDOS__)
-  if (rl_filename_completion_desired && temp == 0 && isalpha (pathname[0]) && pathname[1] == ':')
+  if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')
     temp = pathname + 1;
 #endif
-  return (temp ? ++temp : pathname);
+
+  if (temp == 0 || *temp == '\0')
+    return (pathname);
+  /* If the basename is NULL, we might have a pathname like '/usr/src/'.
+     Look for a previous slash and, if one is found, return the portion
+     following that slash.  If there's no previous slash, just return the
+     pathname we were passed. */
+  else if (temp[1] == '\0')
+    {
+      for (x = temp - 1; x > pathname; x--)
+        if (*x == '/')
+          break;
+      return ((*x == '/') ? x + 1 : pathname);
+    }
+  else
+    return ++temp;
 }
 
 /* Output TO_PRINT to rl_outstream.  If VISIBLE_STATS is defined and we
@@ -488,7 +588,7 @@ print_filename (to_print, full_pathname)
 
          slen = strlen (s);
          tlen = strlen (to_print);
-         new_full_pathname = xmalloc (slen + tlen + 2);
+         new_full_pathname = (char *)xmalloc (slen + tlen + 2);
          strcpy (new_full_pathname, s);
          new_full_pathname[slen] = '/';
          strcpy (new_full_pathname + slen + 1, to_print);
@@ -523,7 +623,7 @@ rl_quote_filename (s, rtype, qcp)
 {
   char *r;
 
-  r = xmalloc (strlen (s) + 2);
+  r = (char *)xmalloc (strlen (s) + 2);
   *r = *rl_completer_quote_characters;
   strcpy (r + 1, s);
   if (qcp)
@@ -534,7 +634,7 @@ rl_quote_filename (s, rtype, qcp)
 /* Find the bounds of the current word for completion purposes, and leave
    rl_point set to the end of the word.  This function skips quoted
    substrings (characters between matched pairs of characters in
-   rl_completer_quote_characters.  First we try to find an unclosed
+   rl_completer_quote_characters).  First we try to find an unclosed
    quoted substring on which to do matching.  If one is not found, we use
    the word break characters to find the boundaries of the current word.
    We call an application-specific function to decide whether or not a
@@ -546,8 +646,8 @@ rl_quote_filename (s, rtype, qcp)
    quote, or backslash) anywhere in the string.  DP, if non-null, is set to
    the value of the delimiter character that caused a word break. */
 
-static char
-find_completion_word (fp, dp)
+char
+_rl_find_completion_word (fp, dp)
      int *fp, *dp;
 {
   int scan, end, found_quote, delimiter, pass_next, isbrk;
@@ -571,7 +671,11 @@ find_completion_word (fp, dp)
              continue;
            }
 
-         if (rl_line_buffer[scan] == '\\')
+         /* Shell-like semantics for single quotes -- don't allow backslash
+            to quote anything in single quotes, especially not the closing
+            quote.  If you don't like this, take out the check on the value
+            of quote_char. */
+         if (quote_char != '\'' && rl_line_buffer[scan] == '\\')
            {
              pass_next = 1;
              found_quote |= RL_QF_BACKSLASH;
@@ -598,6 +702,8 @@ find_completion_word (fp, dp)
                found_quote |= RL_QF_SINGLE_QUOTE;
              else if (quote_char == '"')
                found_quote |= RL_QF_DOUBLE_QUOTE;
+             else
+               found_quote |= RL_QF_OTHER_QUOTE;      
            }
        }
     }
@@ -607,7 +713,11 @@ find_completion_word (fp, dp)
       /* We didn't find an unclosed quoted substring upon which to do
          completion, so use the word break characters to find the
          substring on which to complete. */
+#if defined (HANDLE_MULTIBYTE)
+      while (rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_ANY))
+#else
       while (--rl_point)
+#endif
        {
          scan = rl_line_buffer[rl_point];
 
@@ -671,7 +781,7 @@ static char **
 gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
      char *text;
      int start, end;
-     Function *our_func;
+     rl_compentry_func_t *our_func;
      int found_quote, quote_char;
 {
   char **matches, *temp;
@@ -695,7 +805,7 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
      filename dequoting function. */
   temp = (char *)NULL;
 
-  if (found_quote && our_func == (Function *)filename_completion_function &&
+  if (found_quote && our_func == rl_filename_completion_function &&
       rl_filename_dequoting_function)
     {
       /* delete single and double quotes */
@@ -703,7 +813,7 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
       text = temp;     /* not freeing text is not a memory leak */
     }
 
-  matches = completion_matches (text, (CPFunction *)our_func);
+  matches = rl_completion_matches (text, our_func);
   FREE (temp);
   return matches;  
 }
@@ -775,10 +885,15 @@ static int
 compute_lcd_of_matches (match_list, matches, text)
      char **match_list;
      int matches;
-     char *text;
+     const char *text;
 {
   register int i, c1, c2, si;
   int low;             /* Count of max-matched characters. */
+#if defined (HANDLE_MULTIBYTE)
+  int v;
+  mbstate_t ps1, ps2;
+  wchar_t wc1, wc2;
+#endif
 
   /* If only one match, just use that.  Otherwise, compare each
      member of the list with the next, finding out where they
@@ -792,12 +907,33 @@ compute_lcd_of_matches (match_list, matches, text)
 
   for (i = 1, low = 100000; i < matches; i++)
     {
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         memset (&ps1, 0, sizeof (mbstate_t));
+         memset (&ps2, 0, sizeof (mbstate_t));
+       }
+#endif
       if (_rl_completion_case_fold)
        {
          for (si = 0;
               (c1 = _rl_to_lower(match_list[i][si])) &&
               (c2 = _rl_to_lower(match_list[i + 1][si]));
               si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               v = mbrtowc (&wc1, match_list[i]+si, strlen (match_list[i]+si), &ps1);
+               mbrtowc (&wc2, match_list[i+1]+si, strlen (match_list[i+1]+si), &ps2);
+               wc1 = towlower (wc1);
+               wc2 = towlower (wc2);
+               if (wc1 != wc2)
+                 break;
+               else if (v > 1)
+                 si += v - 1;
+             }
+           else
+#endif
            if (c1 != c2)
              break;
        }
@@ -807,6 +943,17 @@ compute_lcd_of_matches (match_list, matches, text)
               (c1 = match_list[i][si]) &&
               (c2 = match_list[i + 1][si]);
               si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               mbstate_t ps_back = ps1;
+               if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
+                 break;
+               else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
+                 si += v - 1;
+             }
+           else
+#endif
            if (c1 != c2)
              break;
        }
@@ -820,13 +967,42 @@ compute_lcd_of_matches (match_list, matches, text)
      value of matches[0]. */
   if (low == 0 && text && *text)
     {
-      match_list[0] = xmalloc (strlen (text) + 1);
+      match_list[0] = (char *)xmalloc (strlen (text) + 1);
       strcpy (match_list[0], text);
     }
   else
     {
-      match_list[0] = xmalloc (low + 1);
-      strncpy (match_list[0], match_list[1], low);
+      match_list[0] = (char *)xmalloc (low + 1);
+
+      /* XXX - this might need changes in the presence of multibyte chars */
+
+      /* If we are ignoring case, try to preserve the case of the string
+        the user typed in the face of multiple matches differing in case. */
+      if (_rl_completion_case_fold)
+       {
+         /* sort the list to get consistent answers. */
+         qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
+
+         si = strlen (text);
+         if (si <= low)
+           {
+             for (i = 1; i <= matches; i++)
+               if (strncmp (match_list[i], text, si) == 0)
+                 {
+                   strncpy (match_list[0], match_list[i], low);
+                   break;
+                 }
+             /* no casematch, use first entry */
+             if (i > matches)
+               strncpy (match_list[0], match_list[1], low);
+           }
+         else
+           /* otherwise, just use the text the user typed. */
+           strncpy (match_list[0], text, low);
+       }
+      else
+        strncpy (match_list[0], match_list[1], low);
+
       match_list[0][low] = '\0';
     }
 
@@ -843,6 +1019,9 @@ postprocess_matches (matchesp, matching_filenames)
 
   matches = *matchesp;
 
+  if (matches == 0)
+    return 0;
+
   /* It seems to me that in all the cases we handle we would like
      to ignore duplicate possiblilities.  Scan for the text to
      insert being identical to the other completions. */
@@ -895,17 +1074,17 @@ rl_display_match_list (matches, len, max)
      char **matches;
      int len, max;
 {
-  int count, limit, printed_len;
+  int count, limit, printed_len, lines;
   int i, j, k, l;
   char *temp;
 
   /* How many items of MAX length can we fit in the screen window? */
   max += 2;
-  limit = screenwidth / max;
-  if (limit != 1 && (limit * max == screenwidth))
+  limit = _rl_screenwidth / max;
+  if (limit != 1 && (limit * max == _rl_screenwidth))
     limit--;
 
-  /* Avoid a possible floating exception.  If max > screenwidth,
+  /* Avoid a possible floating exception.  If max > _rl_screenwidth,
      limit will be 0 and a divide-by-zero fault will result. */
   if (limit == 0)
     limit = 1;
@@ -921,8 +1100,9 @@ rl_display_match_list (matches, len, max)
   if (rl_ignore_completion_duplicates == 0)
     qsort (matches + 1, len, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
 
-  crlf ();
+  rl_crlf ();
 
+  lines = 0;
   if (_rl_print_completions_horizontally == 0)
     {
       /* Print the sorted items, up-and-down alphabetically, like ls. */
@@ -943,7 +1123,14 @@ rl_display_match_list (matches, len, max)
                }
              l += count;
            }
-         crlf ();
+         rl_crlf ();
+         lines++;
+         if (_rl_page_completions && lines >= (_rl_screenheight - 1) && i < count)
+           {
+             lines = _rl_internal_pager (lines);
+             if (lines < 0)
+               return;
+           }
        }
     }
   else
@@ -957,13 +1144,22 @@ rl_display_match_list (matches, len, max)
          if (matches[i+1])
            {
              if (i && (limit > 1) && (i % limit) == 0)
-               crlf ();
+               {
+                 rl_crlf ();
+                 lines++;
+                 if (_rl_page_completions && lines >= _rl_screenheight - 1)
+                   {
+                     lines = _rl_internal_pager (lines);
+                     if (lines < 0)
+                       return;
+                   }
+               }
              else
                for (k = 0; k < max - printed_len; k++)
                  putc (' ', rl_outstream);
            }
        }
-      crlf ();
+      rl_crlf ();
     }
 }
 
@@ -992,9 +1188,9 @@ display_matches (matches)
   if (matches[1] == 0)
     {
       temp = printable_part (matches[0]);
-      crlf ();
+      rl_crlf ();
       print_filename (temp, matches[0]);
-      crlf ();
+      rl_crlf ();
 
       rl_forced_update_display ();
       rl_display_fixed = 1;
@@ -1026,12 +1222,12 @@ display_matches (matches)
      see them all. */
   if (len >= rl_completion_query_items)
     {
-      crlf ();
+      rl_crlf ();
       fprintf (rl_outstream, "Display all %d possibilities? (y or n)", len);
       fflush (rl_outstream);
-      if (get_y_or_n () == 0)
+      if (get_y_or_n (0) == 0)
        {
-         crlf ();
+         rl_crlf ();
 
          rl_forced_update_display ();
          rl_display_fixed = 1;
@@ -1079,7 +1275,7 @@ make_quoted_replacement (match, mtype, qc)
          This also checks whether the common prefix of several
         matches needs to be quoted. */
       should_quote = rl_filename_quote_characters
-                       ? (rl_strpbrk (match, rl_filename_quote_characters) != 0)
+                       ? (_rl_strpbrk (match, rl_filename_quote_characters) != 0)
                        : 0;
 
       do_replace = should_quote ? mtype : NO_MATCH;
@@ -1125,14 +1321,20 @@ insert_match (match, start, mtype, qc)
    just-inserted match.  If the user has specified that directories
    should be marked by a trailing `/', append one of those instead.  The
    default trailing character is a space.  Returns the number of characters
-   appended. */
+   appended.  If NONTRIVIAL_MATCH is set, we test for a symlink (if the OS
+   has them) and don't add a suffix for a symlink to a directory.  A
+   nontrivial match is one that actually adds to the word being completed.
+   The variable rl_completion_mark_symlink_dirs controls this behavior
+   (it's initially set to the what the user has chosen, indicated by the
+   value of _rl_complete_mark_symlink_dirs, but may be modified by an
+   application's completion function). */
 static int
-append_to_match (text, delimiter, quote_char)
+append_to_match (text, delimiter, quote_char, nontrivial_match)
      char *text;
-     int delimiter, quote_char;
+     int delimiter, quote_char, nontrivial_match;
 {
   char temp_string[4], *filename;
-  int temp_string_index;
+  int temp_string_index, s;
   struct stat finfo;
 
   temp_string_index = 0;
@@ -1141,7 +1343,7 @@ append_to_match (text, delimiter, quote_char)
 
   if (delimiter)
     temp_string[temp_string_index++] = delimiter;
-  else if (rl_completion_append_character)
+  else if (rl_completion_suppress_append == 0 && rl_completion_append_character)
     temp_string[temp_string_index++] = rl_completion_append_character;
 
   temp_string[temp_string_index++] = '\0';
@@ -1149,21 +1351,39 @@ append_to_match (text, delimiter, quote_char)
   if (rl_filename_completion_desired)
     {
       filename = tilde_expand (text);
-      if (stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode))
+      s = (nontrivial_match && rl_completion_mark_symlink_dirs == 0)
+               ? LSTAT (filename, &finfo)
+               : stat (filename, &finfo);
+      if (s == 0 && S_ISDIR (finfo.st_mode))
        {
-         if (_rl_complete_mark_directories && rl_line_buffer[rl_point] != '/')
-           rl_insert_text ("/");
+         if (_rl_complete_mark_directories)
+           {
+             /* This is clumsy.  Avoid putting in a double slash if point
+                is at the end of the line and the previous character is a
+                slash. */
+             if (rl_point && rl_line_buffer[rl_point] == '\0' && rl_line_buffer[rl_point - 1] == '/')
+               ;
+             else if (rl_line_buffer[rl_point] != '/')
+               rl_insert_text ("/");
+           }
        }
+#ifdef S_ISLNK
+      /* Don't add anything if the filename is a symlink and resolves to a
+        directory. */
+      else if (s == 0 && S_ISLNK (finfo.st_mode) &&
+              stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode))
+       ;
+#endif
       else
        {
-         if (rl_point == rl_end)
+         if (rl_point == rl_end && temp_string_index)
            rl_insert_text (temp_string);
        }
       free (filename);
     }
   else
     {
-      if (rl_point == rl_end)
+      if (rl_point == rl_end && temp_string_index)
        rl_insert_text (temp_string);
     }
 
@@ -1209,12 +1429,15 @@ insert_all_matches (matches, point, qc)
   rl_end_undo_group ();
 }
 
-static void
-free_match_list (matches)
+void
+_rl_free_match_list (matches)
      char **matches;
 {
   register int i;
 
+  if (matches == 0)
+    return;
+
   for (i = 0; matches[i]; i++)
     free (matches[i]);
   free (matches);
@@ -1232,20 +1455,19 @@ rl_complete_internal (what_to_do)
      int what_to_do;
 {
   char **matches;
-  Function *our_func;
-  int start, end, delimiter, found_quote, i;
+  rl_compentry_func_t *our_func;
+  int start, end, delimiter, found_quote, i, nontrivial_lcd;
   char *text, *saved_line_buffer;
   char quote_char;
 
-  /* Only the completion entry function can change these. */
-  rl_filename_completion_desired = 0;
-  rl_filename_quoting_desired = 1;
-  rl_completion_type = what_to_do;
+  RL_SETSTATE(RL_STATE_COMPLETING);
+
+  set_completion_defaults (what_to_do);
 
   saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
   our_func = rl_completion_entry_function
                ? rl_completion_entry_function
-               : (Function *)filename_completion_function;
+               : rl_filename_completion_function;
 
   /* We now look backwards for the start of a filename/variable word. */
   end = rl_point;
@@ -1255,38 +1477,38 @@ rl_complete_internal (what_to_do)
   if (rl_point)
     /* This (possibly) changes rl_point.  If it returns a non-zero char,
        we know we have an open quote. */
-    quote_char = find_completion_word (&found_quote, &delimiter);
+    quote_char = _rl_find_completion_word (&found_quote, &delimiter);
 
   start = rl_point;
   rl_point = end;
 
   text = rl_copy_text (start, end);
   matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
+  /* nontrivial_lcd is set if the common prefix adds something to the word
+     being completed. */
+  nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
   free (text);
 
   if (matches == 0)
     {
-      ding ();
+      rl_ding ();
       FREE (saved_line_buffer);
+      completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
       return (0);
     }
 
-#if 0
-  /* If we are matching filenames, our_func will have been set to
-     filename_completion_function */
-  i = our_func == (Function *)filename_completion_function;
-#else
   /* If we are matching filenames, the attempted completion function will
      have set rl_filename_completion_desired to a non-zero value.  The basic
-     filename_completion_function does this. */
+     rl_filename_completion_function does this. */
   i = rl_filename_completion_desired;
-#endif
 
   if (postprocess_matches (&matches, i) == 0)
     {
-      ding ();
+      rl_ding ();
       FREE (saved_line_buffer);
       completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
       return (0);
     }
 
@@ -1314,10 +1536,10 @@ rl_complete_internal (what_to_do)
              break;
            }
          else if (rl_editing_mode != vi_mode)
-           ding ();    /* There are other matches remaining. */
+           rl_ding (); /* There are other matches remaining. */
        }
       else
-       append_to_match (matches[0], delimiter, quote_char);
+       append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
 
       break;
 
@@ -1331,12 +1553,13 @@ rl_complete_internal (what_to_do)
 
     default:
       fprintf (stderr, "\r\nreadline: bad value %d for what_to_do in rl_complete\n", what_to_do);
-      ding ();
+      rl_ding ();
       FREE (saved_line_buffer);
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
       return 1;
     }
 
-  free_match_list (matches);
+  _rl_free_match_list (matches);
 
   /* Check to see if the line has changed through all of this manipulation. */
   if (saved_line_buffer)
@@ -1345,6 +1568,7 @@ rl_complete_internal (what_to_do)
       free (saved_line_buffer);
     }
 
+  RL_UNSETSTATE(RL_STATE_COMPLETING);
   return 0;
 }
 
@@ -1367,9 +1591,9 @@ rl_complete_internal (what_to_do)
      when there are no more matches.
  */
 char **
-completion_matches (text, entry_function)
-     char *text;
-     CPFunction *entry_function;
+rl_completion_matches (text, entry_function)
+     const char *text;
+     rl_compentry_func_t *entry_function;
 {
   /* Number of slots in match_list. */
   int match_list_size;
@@ -1414,8 +1638,8 @@ completion_matches (text, entry_function)
    TEXT contains a partial username preceded by a random
    character (usually `~').  */
 char *
-username_completion_function (text, state)
-     char *text;
+rl_username_completion_function (text, state)
+     const char *text;
      int state;
 {
 #if defined (__WIN32__) || defined (__OPENNT)
@@ -1452,7 +1676,7 @@ username_completion_function (text, state)
     }
   else
     {
-      value = xmalloc (2 + strlen (entry->pw_name));
+      value = (char *)xmalloc (2 + strlen (entry->pw_name));
 
       *value = *text;
 
@@ -1471,8 +1695,8 @@ username_completion_function (text, state)
    because of all the pathnames that must be followed when looking up the
    completion for a command. */
 char *
-filename_completion_function (text, state)
-     char *text;
+rl_filename_completion_function (text, state)
+     const char *text;
      int state;
 {
   static DIR *directory = (DIR *)NULL;
@@ -1507,7 +1731,7 @@ filename_completion_function (text, state)
 
 #if defined (__MSDOS__)
       /* special hack for //X/... */
-      if (dirname[0] == '/' && dirname[1] == '/' && isalpha (dirname[2]) && dirname[3] == '/')
+      if (dirname[0] == '/' && dirname[1] == '/' && ISALPHA ((unsigned char)dirname[2]) && dirname[3] == '/')
         temp = strrchr (dirname + 3, '/');
 #endif
 
@@ -1518,7 +1742,7 @@ filename_completion_function (text, state)
        }
 #if defined (__MSDOS__)
       /* searches from current directory on the drive */
-      else if (isalpha (dirname[0]) && dirname[1] == ':')
+      else if (ISALPHA ((unsigned char)dirname[0]) && dirname[1] == ':')
         {
           strcpy (filename, dirname + 2);
           dirname[2] = '\0';
@@ -1542,6 +1766,9 @@ filename_completion_function (text, state)
          dirname = temp;
        }
 
+      if (rl_directory_rewrite_hook)
+       (*rl_directory_rewrite_hook) (&dirname);
+
       if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname))
        {
          free (users_dirname);
@@ -1565,10 +1792,14 @@ filename_completion_function (text, state)
   entry = (struct dirent *)NULL;
   while (directory && (entry = readdir (directory)))
     {
-      /* Special case for no filename.
-        All entries except "." and ".." match. */
+      /* Special case for no filename.  If the user has disabled the
+         `match-hidden-files' variable, skip filenames beginning with `.'.
+        All other entries except "." and ".." match. */
       if (filename_len == 0)
        {
+         if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
+           continue;
+
          if (entry->d_name[0] != '.' ||
               (entry->d_name[1] &&
                 (entry->d_name[1] != '.' || entry->d_name[2])))
@@ -1628,7 +1859,7 @@ filename_completion_function (text, state)
          if (rl_complete_with_tilde_expansion && *users_dirname == '~')
            {
              dirlen = strlen (dirname);
-             temp = xmalloc (2 + dirlen + D_NAMLEN (entry));
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
              strcpy (temp, dirname);
              /* Canonicalization cuts off any final slash present.  We
                 may need to add it back. */
@@ -1641,8 +1872,11 @@ filename_completion_function (text, state)
          else
            {
              dirlen = strlen (users_dirname);
-             temp = xmalloc (1 + dirlen + D_NAMLEN (entry));
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
              strcpy (temp, users_dirname);
+             /* Make sure that temp has a trailing slash here. */
+             if (users_dirname[dirlen - 1] != '/')
+               temp[dirlen++] = '/';
            }
 
          strcpy (temp + dirlen, entry->d_name);
@@ -1667,7 +1901,7 @@ int
 rl_menu_complete (count, ignore)
      int count, ignore;
 {
-  Function *our_func;
+  rl_compentry_func_t *our_func;
   int matching_filenames, found_quote;
 
   static char *orig_text;
@@ -1685,19 +1919,17 @@ rl_menu_complete (count, ignore)
       /* Clean up from previous call, if any. */
       FREE (orig_text);
       if (matches)
-       free_match_list (matches);
+       _rl_free_match_list (matches);
 
       match_list_index = match_list_size = 0;
       matches = (char **)NULL;
 
       /* Only the completion entry function can change these. */
-      rl_filename_completion_desired = 0;
-      rl_filename_quoting_desired = 1;
-      rl_completion_type = '%';
+      set_completion_defaults ('%');
 
       our_func = rl_completion_entry_function
                        ? rl_completion_entry_function
-                       : (Function *)filename_completion_function;
+                       : rl_filename_completion_function;
 
       /* We now look backwards for the start of a filename/variable word. */
       orig_end = rl_point;
@@ -1707,7 +1939,7 @@ rl_menu_complete (count, ignore)
       if (rl_point)
        /* This (possibly) changes rl_point.  If it returns a non-zero char,
           we know we have an open quote. */
-       quote_char = find_completion_word (&found_quote, &delimiter);
+       quote_char = _rl_find_completion_word (&found_quote, &delimiter);
 
       orig_start = rl_point;
       rl_point = orig_end;
@@ -1716,19 +1948,14 @@ rl_menu_complete (count, ignore)
       matches = gen_completion_matches (orig_text, orig_start, orig_end,
                                        our_func, found_quote, quote_char);
 
-#if 0
-      /* If we are matching filenames, our_func will have been set to
-        filename_completion_function */
-      matching_filenames = our_func == (Function *)filename_completion_function;
-#else
       /* If we are matching filenames, the attempted completion function will
         have set rl_filename_completion_desired to a non-zero value.  The basic
-        filename_completion_function does this. */
+        rl_filename_completion_function does this. */
       matching_filenames = rl_filename_completion_desired;
-#endif
+
       if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0)
        {
-         ding ();
+         rl_ding ();
          FREE (matches);
          matches = (char **)0;
          FREE (orig_text);
@@ -1749,7 +1976,7 @@ rl_menu_complete (count, ignore)
 
   if (matches == 0 || match_list_size == 0) 
     {
-      ding ();
+      rl_ding ();
       FREE (matches);
       matches = (char **)0;
       completion_changed_buffer = 0;
@@ -1762,13 +1989,14 @@ rl_menu_complete (count, ignore)
 
   if (match_list_index == 0 && match_list_size > 1)
     {
-      ding ();
+      rl_ding ();
       insert_match (orig_text, orig_start, MULT_MATCH, &quote_char);
     }
   else
     {
       insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
-      append_to_match (matches[match_list_index], delimiter, quote_char);
+      append_to_match (matches[match_list_index], delimiter, quote_char,
+                      strcmp (orig_text, matches[match_list_index]));
     }
 
   completion_changed_buffer = 1;
index 569e53d271abd293feab921ac472bf489037c341..c53c2a109c6d6ef8cce6a9a9f838628d7e10fd37 100644 (file)
@@ -1,63 +1,40 @@
-/* config.h.in.  Generated automatically from configure.in by autoheader.  */
-
-/* Define if you have the strcoll function and it is properly defined.  */
-#undef HAVE_STRCOLL
+/* config.h.in.  Maintained by hand. */
 
 /* Define if on MINIX.  */
 #undef _MINIX
 
-/* Define if the system does not provide POSIX.1 features except
-   with this defined.  */
-#undef _POSIX_1_SOURCE
-
-/* Define if you need to in order for stat and other things to work.  */
-#undef _POSIX_SOURCE
-
 /* Define as the return type of signal handlers (int or void).  */
 #undef RETSIGTYPE
 
-/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly.  */
-#undef STAT_MACROS_BROKEN
-
-/* Definitions pulled in from aclocal.m4. */
-#undef VOID_SIGHANDLER
-
-#undef GWINSZ_IN_SYS_IOCTL
-
-#undef TIOCSTAT_IN_SYS_IOCTL
+/* Characteristics of the compiler. */
+#undef const
 
-#undef HAVE_GETPW_DECLS
+#undef size_t
 
-#undef FIONREAD_IN_SYS_IOCTL
+#undef ssize_t
 
-#undef HAVE_BSD_SIGNALS
+#undef PROTOTYPES
 
-#undef HAVE_LSTAT
+#undef __CHAR_UNSIGNED__
 
-#undef HAVE_POSIX_SIGNALS
-
-#undef HAVE_POSIX_SIGSETJMP
-
-#undef HAVE_USG_SIGHOLD
-
-#undef MUST_REINSTALL_SIGHANDLERS
-
-#undef SPEED_T_IN_SYS_TYPES
-
-#undef STRCOLL_BROKEN
-
-#undef STRUCT_DIRENT_HAS_D_FILENO
+/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly.  */
+#undef STAT_MACROS_BROKEN
 
-#undef STRUCT_DIRENT_HAS_D_INO
+#undef VOID_SIGHANDLER
 
-#undef STRUCT_WINSIZE_IN_SYS_IOCTL
+/* Define if you have the isascii function. */
+#undef HAVE_ISASCII
 
-#undef STRUCT_WINSIZE_IN_TERMIOS
+/* Define if you have the isxdigit function. */
+#undef HAVE_ISXDIGIT
 
-/* Define if you have the lstat function.  */
+/* Define if you have the lstat function. */
 #undef HAVE_LSTAT
 
-/* Define if you have the memmove function.  */
+/* Define if you have the mbsrtowcs function. */
+#undef HAVE_MBSRTOWCS
+
+/* Define if you have the memmove function. */
 #undef HAVE_MEMMOVE
 
 /* Define if you have the putenv function.  */
 /* Define if you have the setenv function.  */
 #undef HAVE_SETENV
 
-/* Define if you have the setlocale function.  */
+/* Define if you have the setlocale function. */
 #undef HAVE_SETLOCALE
 
 /* Define if you have the strcasecmp function.  */
 #undef HAVE_STRCASECMP
 
+/* Define if you have the strcoll function.  */
+#undef HAVE_STRCOLL
+
+#undef STRCOLL_BROKEN
+
+/* Define if you have the strpbrk function.  */
+#undef HAVE_STRPBRK
+
 /* Define if you have the tcgetattr function.  */
 #undef HAVE_TCGETATTR
 
+/* Define if you have the vsnprintf function.  */
+#undef HAVE_VSNPRINTF
+
+/* Define if you have the wcwidth function.  */
+#undef HAVE_WCWIDTH
+
 /* Define if you have the <dirent.h> header file.  */
 #undef HAVE_DIRENT_H
 
+/* Define if you have the <langinfo.h> header file.  */
+#undef HAVE_LANGINFO_H
+
+/* Define if you have the <limits.h> header file.  */
+#undef HAVE_LIMITS_H
+
 /* Define if you have the <locale.h> header file.  */
 #undef HAVE_LOCALE_H
 
+/* Define if you have the <memory.h> header file.  */
+#undef HAVE_MEMORY_H
+
 /* Define if you have the <ndir.h> header file.  */
 #undef HAVE_NDIR_H
 
@@ -96,6 +96,9 @@
 /* Define if you have the <string.h> header file.  */
 #undef HAVE_STRING_H
 
+/* Define if you have the <strings.h> header file.  */
+#undef HAVE_STRINGS_H
+
 /* Define if you have the <sys/dir.h> header file.  */
 #undef HAVE_SYS_DIR_H
 
 
 /* Define if you have the <varargs.h> header file.  */
 #undef HAVE_VARARGS_H
-/* config.h.bot */
+
+/* Define if you have the <wchar.h> header file.  */
+#undef HAVE_WCHAR_H
+
+/* Define if you have the <varargs.h> header file.  */
+#undef HAVE_WCTYPE_H
+
+#undef HAVE_MBSTATE_T
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#undef HAVE_LANGINFO_CODESET
+
+/* Definitions pulled in from aclocal.m4. */
+#undef VOID_SIGHANDLER
+
+#undef GWINSZ_IN_SYS_IOCTL
+
+#undef STRUCT_WINSIZE_IN_SYS_IOCTL
+
+#undef STRUCT_WINSIZE_IN_TERMIOS
+
+#undef TIOCSTAT_IN_SYS_IOCTL
+
+#undef FIONREAD_IN_SYS_IOCTL
+
+#undef SPEED_T_IN_SYS_TYPES
+
+#undef HAVE_GETPW_DECLS
+
+#undef STRUCT_DIRENT_HAS_D_INO
+
+#undef STRUCT_DIRENT_HAS_D_FILENO
+
+#undef HAVE_BSD_SIGNALS
+
+#undef HAVE_POSIX_SIGNALS
+
+#undef HAVE_USG_SIGHOLD
+
+#undef MUST_REINSTALL_SIGHANDLERS
+
+#undef HAVE_POSIX_SIGSETJMP
+
 /* modify settings or make new ones based on what autoconf tells us. */
 
 /* Ultrix botches type-ahead when switching from canonical to
index 8e24e9f9b4058ed506237c1b1880d6e542128dfe..92c76767c906cbd82237bcf094e4f525e0b71249 100755 (executable)
 #! /bin/sh
+# From configure.in for Readline 4.3, version 2.45, from autoconf version 2.52.
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by Autoconf 2.52 for readline 4.3.
+#
+# Report bugs to <bug-readline@gnu.org>.
+#
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
 
-# From configure.in for Readline 4.1, version 2.22, from autoconf version 2.13
-LIBVERSION=4.1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+# 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
 
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
 
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
 
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
 
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
 
+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
 
+as_executable_p="test -f"
 
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
 
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS="  $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export 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
 
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13 
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
+# Initializations.
+#
 ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_help="$ac_help
---with-curses               use the curses library instead of the termcap library"
+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}
+
+ac_unique_file="readline.h"
+# 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"
 
 # 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.
-build=NONE
-cache_file=./config.cache
+cache_file=/dev/null
 exec_prefix=NONE
-host=NONE
 no_create=
-nonopt=NONE
 no_recursion=
 prefix=NONE
 program_prefix=NONE
@@ -134,10 +161,15 @@ program_transform_name=s,x,x,
 silent=
 site=
 srcdir=
-target=NONE
 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'
@@ -151,17 +183,16 @@ oldincludedir='/usr/include'
 infodir='${prefix}/info'
 mandir='${prefix}/man'
 
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
+# Identity of this package.
+PACKAGE_NAME='readline'
+PACKAGE_TARNAME='readline'
+PACKAGE_VERSION='4.3'
+PACKAGE_STRING='readline 4.3'
+PACKAGE_BUGREPORT='bug-readline@gnu.org'
 
 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"
@@ -169,59 +200,59 @@ do
     continue
   fi
 
-  case "$ac_option" in
-  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) ac_optarg= ;;
-  esac
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
-  case "$ac_option" in
+  case $ac_option in
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir="$ac_optarg" ;;
+    bindir=$ac_optarg ;;
 
   -build | --build | --buil | --bui | --bu)
-    ac_prev=build ;;
+    ac_prev=build_alias ;;
   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build="$ac_optarg" ;;
+    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" ;;
+    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" ;;
+    datadir=$ac_optarg ;;
 
   -disable-* | --disable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    eval "enable_${ac_feature}=no" ;;
+    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=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
+    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'" ;;
+    eval "enable_$ac_feature='$ac_optarg'" ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -230,95 +261,47 @@ do
   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
   | --exec=* | --exe=* | --ex=*)
-    exec_prefix="$ac_optarg" ;;
+    exec_prefix=$ac_optarg ;;
 
   -gas | --gas | --ga | --g)
     # Obsolete; use --with-gas.
     with_gas=yes ;;
 
-  -help | --help | --hel | --he)
-    # 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 << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
-  --cache-file=FILE       cache test results in FILE
-  --help                  print this message
-  --no-create             do not create output files
-  --quiet, --silent       do not print \`checking...' messages
-  --version               print the version of autoconf that created configure
-Directory and file names:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [same as prefix]
-  --bindir=DIR            user executables in DIR [EPREFIX/bin]
-  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
-  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
-  --datadir=DIR           read-only architecture-independent data in DIR
-                          [PREFIX/share]
-  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
-                          [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
-  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
-  --includedir=DIR        C header files in DIR [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
-  --infodir=DIR           info documentation in DIR [PREFIX/info]
-  --mandir=DIR            man documentation in DIR [PREFIX/man]
-  --srcdir=DIR            find the sources in DIR [configure dir or ..]
-  --program-prefix=PREFIX prepend PREFIX to installed program names
-  --program-suffix=SUFFIX append SUFFIX to installed program names
-  --program-transform-name=PROGRAM
-                          run sed PROGRAM on installed program names
-EOF
-    cat << EOF
-Host type:
-  --build=BUILD           configure for building on BUILD [BUILD=HOST]
-  --host=HOST             configure for HOST [guessed]
-  --target=TARGET         configure for TARGET [TARGET=HOST]
-Features and packages:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --x-includes=DIR        X include files are in DIR
-  --x-libraries=DIR       X library files are in DIR
-EOF
-    if test -n "$ac_help"; then
-      echo "--enable and --with options recognized:$ac_help"
-    fi
-    exit 0 ;;
+  -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 ;;
+    ac_prev=host_alias ;;
   -host=* | --host=* | --hos=* | --ho=*)
-    host="$ac_optarg" ;;
+    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" ;;
+    includedir=$ac_optarg ;;
 
   -infodir | --infodir | --infodi | --infod | --info | --inf)
     ac_prev=infodir ;;
   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir="$ac_optarg" ;;
+    infodir=$ac_optarg ;;
 
   -libdir | --libdir | --libdi | --libd)
     ac_prev=libdir ;;
   -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir="$ac_optarg" ;;
+    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" ;;
+    libexecdir=$ac_optarg ;;
 
   -localstatedir | --localstatedir | --localstatedi | --localstated \
   | --localstate | --localstat | --localsta | --localst \
@@ -327,12 +310,12 @@ EOF
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
   | --localstate=* | --localstat=* | --localsta=* | --localst=* \
   | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir="$ac_optarg" ;;
+    localstatedir=$ac_optarg ;;
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
     ac_prev=mandir ;;
   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir="$ac_optarg" ;;
+    mandir=$ac_optarg ;;
 
   -nfp | --nfp | --nf)
     # Obsolete; use --without-fp.
@@ -353,26 +336,26 @@ EOF
   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir="$ac_optarg" ;;
+    oldincludedir=$ac_optarg ;;
 
   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
     ac_prev=prefix ;;
   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix="$ac_optarg" ;;
+    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_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_suffix=$ac_optarg ;;
 
   -program-transform-name | --program-transform-name \
   | --program-transform-nam | --program-transform-na \
@@ -389,7 +372,7 @@ EOF
   | --program-transfo=* | --program-transf=* \
   | --program-trans=* | --program-tran=* \
   | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name="$ac_optarg" ;;
+    program_transform_name=$ac_optarg ;;
 
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
@@ -399,7 +382,7 @@ EOF
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
   | --sbi=* | --sb=*)
-    sbindir="$ac_optarg" ;;
+    sbindir=$ac_optarg ;;
 
   -sharedstatedir | --sharedstatedir | --sharedstatedi \
   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
@@ -410,58 +393,57 @@ EOF
   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
   | --sha=* | --sh=*)
-    sharedstatedir="$ac_optarg" ;;
+    sharedstatedir=$ac_optarg ;;
 
   -site | --site | --sit)
     ac_prev=site ;;
   -site=* | --site=* | --sit=*)
-    site="$ac_optarg" ;;
+    site=$ac_optarg ;;
 
   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
     ac_prev=srcdir ;;
   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir="$ac_optarg" ;;
+    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" ;;
+    sysconfdir=$ac_optarg ;;
 
   -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target ;;
+    ac_prev=target_alias ;;
   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target="$ac_optarg" ;;
+    target_alias=$ac_optarg ;;
 
   -v | -verbose | --verbose | --verbos | --verbo | --verb)
     verbose=yes ;;
 
-  -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.13"
-    exit 0 ;;
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
 
   -with-* | --with-*)
-    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
+    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
-      *=*) ;;
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
       *) ac_optarg=yes ;;
     esac
-    eval "with_${ac_package}='$ac_optarg'" ;;
+    eval "with_$ac_package='$ac_optarg'" ;;
 
   -without-* | --without-*)
-    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    eval "with_${ac_package}=no" ;;
+    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.
@@ -472,98 +454,98 @@ EOF
     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_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" ;;
+    x_libraries=$ac_optarg ;;
 
-  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+  -*) { 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 ;;
+
   *)
-    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
-      echo "configure: warning: $ac_option: invalid host type" 1>&2
-    fi
-    if test "x$nonopt" != xNONE; then
-      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
-    fi
-    nonopt="$ac_option"
+    # 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
-  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
-  exec 6>/dev/null
-else
-  exec 6>&1
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
 fi
-exec 5>./config.log
 
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
+# 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 path for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
 
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+              localstatedir libdir includedir oldincludedir infodir mandir
 do
-  case "$ac_arg" in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c) ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
   esac
 done
 
-# NLS nuisances.
-# Only set these to C if already set.  These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: should be removed in autoconf 3.0.
+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
 
-# 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
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
 
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=readline.h
+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_prog=$0
-  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'`
   test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
   srcdir=$ac_confdir
   if test ! -r $srcdir/$ac_unique_file; then
@@ -574,335 +556,1137 @@ else
 fi
 if test ! -r $srcdir/$ac_unique_file; then
   if test "$ac_srcdir_defaulted" = yes; then
-    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
-  else
-    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
-  fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# 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"
+    { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
   else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+    { echo "$as_me: error: cannot find sources in $srcdir" >&2
+   { (exit 1); exit 1; }; }
   fi
 fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    echo "loading site script $ac_site_file"
-    . "$ac_site_file"
-  fi
-done
+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
 
-if test -r "$cache_file"; then
-  echo "loading cache $cache_file"
-  . $cache_file
-else
-  echo "creating cache $cache_file"
-  > $cache_file
-fi
+#
+# 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 <<EOF
+\`configure' configures readline 4.3 to adapt to many kinds of systems.
 
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-    ac_n= ac_c='
-' ac_t='       '
-  else
-    ac_n=-n ac_c= ac_t=
-  fi
-else
-  ac_n= ac_c='\c' ac_t=
-fi
+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 \`..']
 
+EOF
 
+  cat <<EOF
+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]
+EOF
 
+  cat <<\EOF
 
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; 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
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       build programs to run on HOST [BUILD]
+EOF
 fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of readline 4.3:";;
+   esac
+  cat <<\EOF
 
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:661: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
-  case $nonopt in
-  NONE)
-    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-    fi ;;
-  *) host_alias=$nonopt ;;
-  esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-static         build static libraries [default=YES]
 
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-curses           use the curses library instead of the termcap
+                          library
+
+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.
+
+Report bugs to <bug-readline@gnu.org>.
+EOF
+fi
 
-opt_curses=no
-opt_shared=no
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue
+    cd $ac_subdir
+    # A "../" for each directory in /$ac_subdir.
+    ac_dots=`echo $ac_subdir |
+             sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'`
+
+    case $srcdir in
+    .) # No --srcdir option.  We are building in place.
+      ac_sub_srcdir=$srcdir ;;
+    [\\/]* | ?:[\\/]* ) # Absolute path.
+      ac_sub_srcdir=$srcdir/$ac_subdir ;;
+    *) # Relative path.
+      ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;;
+    esac
 
-# Check whether --with-curses or --without-curses was given.
-if test "${with_curses+set}" = set; then
-  withval="$with_curses"
-  opt_curses=$withval
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_sub_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_sub_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_sub_srcdir/configure; then
+      echo
+      $SHELL $ac_sub_srcdir/configure  --help=recursive
+    elif test -f $ac_sub_srcdir/configure.ac ||
+           test -f $ac_sub_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2
+    fi
+    cd $ac_popdir
+  done
 fi
 
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\EOF
+readline configure 4.3
+generated by GNU Autoconf 2.52
 
-if test "$opt_curses" = "yes"; then
-       prefer_curses=yes
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+EOF
+  exit 0
 fi
+exec 5>config.log
+cat >&5 <<EOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
 
-# We want these before the checks, so the checks can modify their values.
-test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
+It was created by readline $as_me 4.3, which was
+generated by GNU Autoconf 2.52.  Invocation command line was
 
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:702: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="gcc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  $ $0 $@
+
+EOF
+{
+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`
+
+PATH = $PATH
+
+_ASUNAME
+} >&5
+
+cat >&5 <<EOF
+## ------------ ##
+## Core tests.  ##
+## ------------ ##
+
+EOF
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell meta-characters.
+ac_configure_args=
+ac_sep=
+for ac_arg
+do
+  case $ac_arg in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
+    ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+    ac_sep=" " ;;
+  *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg"
+     ac_sep=" " ;;
+  esac
+  # Get rid of the leading space.
+done
+
+# 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.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  echo >&5
+  echo "## ----------------- ##" >&5
+  echo "## Cache variables.  ##" >&5
+  echo "## ----------------- ##" >&5
+  echo >&5
+  # 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;
+} >&5
+  sed "/^$/d" confdefs.h >conftest.log
+  if test -s conftest.log; then
+    echo >&5
+    echo "## ------------ ##" >&5
+    echo "## confdefs.h.  ##" >&5
+    echo "## ------------ ##" >&5
+    echo >&5
+    cat conftest.log >&5
+  fi
+  (echo; echo) >&5
+  test "$ac_signal" != 0 &&
+    echo "$as_me: caught signal $ac_signal" >&5
+  echo "$as_me: exit $exit_status" >&5
+  rm -rf conftest* confdefs* core core.* *.core 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
+
+# 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:879: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    cat "$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:890: 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:898: 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:914: 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:918: 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:924: 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:926:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+        { echo "$as_me:928:   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.  It doesn't matter if
+  # we pass some twice (in addition to the command line arguments).
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"`
+      ac_configure_args="$ac_configure_args '$ac_arg'"
+      ;;
+    *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val"
+       ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:947: 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:949: 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
+
+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
+echo "#! $SHELL" >conftest.sh
+echo  "exit 0"   >>conftest.sh
+chmod +x conftest.sh
+if { (echo "$as_me:969: PATH=\".;.\"; conftest.sh") >&5
+  (PATH=".;."; conftest.sh) 2>&5
+  ac_status=$?
+  echo "$as_me:972: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  ac_path_separator=';'
+else
+  ac_path_separator=:
 fi
+PATH_SEPARATOR="$ac_path_separator"
+rm -f conftest.sh
+
+ac_config_headers="$ac_config_headers config.h"
+
+LIBVERSION=4.3
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; 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:1002: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&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.
+
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:1012: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+echo "$as_me:1016: 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:1025: 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:1029: 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:1034: 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:1041: 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:1050: 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:1055: 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/'`
+
+opt_curses=no
+
+# Check whether --with-curses or --without-curses was given.
+if test "${with_curses+set}" = set; then
+  withval="$with_curses"
+  opt_curses=$withval
+fi;
+
+if test "$opt_curses" = "yes"; then
+       prefer_curses=yes
+fi
+
+opt_static_libs=yes
+opt_shared_libs=no
+
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval="$enable_static"
+  opt_static_libs=$enableval
+fi;
+
+echo ""
+echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
+echo ""
+
+# We want these before the checks, so the checks can modify their values.
+test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
+
+echo "$as_me:1095: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.make <<\EOF
+all:
+       @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftest.make
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$as_me:1115: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  SET_MAKE=
+else
+  echo "$as_me:1119: result: no" >&5
+echo "${ECHO_T}no" >&6
+  SET_MAKE="MAKE=${MAKE-make}"
+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:1132: 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_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="${ac_tool_prefix}gcc"
+echo "$as_me:1147: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
-CC="$ac_cv_prog_CC"
+fi
+CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
+  echo "$as_me:1155: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:1158: 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:1167: 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
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="gcc"
+echo "$as_me:1182: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:1190: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:1193: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
 else
-  echo "$ac_t""no" 1>&6
+  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:1206: 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_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="${ac_tool_prefix}cc"
+echo "$as_me:1221: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:1229: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:1232: 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:732: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:1241: 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
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="cc"
+echo "$as_me:1256: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:1264: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:1267: 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:1280: 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
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
   ac_prog_rejected=no
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-        ac_prog_rejected=yes
-       continue
-      fi
-      ac_cv_prog_CC="cc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+  ac_prog_rejected=yes
+  continue
+fi
+ac_cv_prog_CC="cc"
+echo "$as_me:1300: found $ac_dir/$ac_word" >&5
+break
+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 $# -gt 0; then
+  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
-    set dummy "$ac_dir/$ac_word" "$@"
+    set dummy "$ac_dir/$ac_word" ${1+"$@"}
     shift
     ac_cv_prog_CC="$@"
   fi
 fi
 fi
 fi
-CC="$ac_cv_prog_CC"
+CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
+  echo "$as_me:1322: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:1325: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-  if test -z "$CC"; then
-    case "`uname -s`" in
-    *win32* | *WIN32*)
-      # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:783: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+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:1336: 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
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="cl"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+echo "$as_me:1351: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
-CC="$ac_cv_prog_CC"
+CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
+  echo "$as_me:1359: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
 else
-  echo "$ac_t""no" 1>&6
-fi
- ;;
-    esac
-  fi
-  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+  echo "$as_me:1362: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:815: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+    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:1375: 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
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="$ac_prog"
+echo "$as_me:1390: found $ac_dir/$ac_word" >&5
+break
+done
 
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:1398: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:1401: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-cat > conftest.$ac_ext << EOF
+  test -n "$ac_ct_CC" && break
+done
 
-#line 826 "configure"
+  CC=$ac_ct_CC
+fi
+
+fi
+
+test -z "$CC" && { { echo "$as_me:1413: error: no acceptable cc found in \$PATH" >&5
+echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:1418:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:1421: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:1424: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:1426: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:1429: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:1431: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:1434: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 1438 "configure"
 #include "confdefs.h"
 
-main(){return(0);}
-EOF
-if { (eval echo configure:831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  ac_cv_prog_cc_works=yes
-  # If we can't run a trivial program, we are probably using a cross compiler.
-  if (./conftest; exit) 2>/dev/null; then
-    ac_cv_prog_cc_cross=no
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe"
+# 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:1454: checking for C compiler default output" >&5
+echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:1457: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:1460: \$? = $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.
+for ac_file in `ls a.exe conftest.exe 2>/dev/null;
+                ls a.out conftest 2>/dev/null;
+                ls a.* conftest.* 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    a.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 --akim.
+          export ac_cv_exeext
+          break;;
+    * ) break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:1483: error: C compiler cannot create executables" >&5
+echo "$as_me: error: C compiler cannot create executables" >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:1489: 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:1494: 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:1500: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1503: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
   else
-    ac_cv_prog_cc_cross=yes
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { echo "$as_me:1510: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
   fi
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_prog_cc_works=no
 fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:857: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:862: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.c <<EOF
-#ifdef __GNUC__
-  yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:871: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-  ac_cv_prog_gcc=yes
+echo "$as_me:1518: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext
+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:1525: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:1527: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:1530: checking for executable suffix" >&5
+echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+if { (eval echo "$as_me:1532: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:1535: \$? = $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 `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+          export ac_cv_exeext
+          break;;
+    * ) break;;
+  esac
+done
 else
-  ac_cv_prog_gcc=no
-fi
-fi
+  { { echo "$as_me:1551: error: cannot compute EXEEXT: cannot compile and link" >&5
+echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:1557: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:1563: checking for object suffix" >&5
+echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1569 "configure"
+#include "confdefs.h"
 
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+int
+main ()
+{
 
-if test $ac_cv_prog_gcc = yes; then
-  GCC=yes
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:1581: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1584: \$? = $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 ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
 else
-  GCC=
-fi
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:1596: error: cannot compute OBJEXT: cannot compile" >&5
+echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:1603: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:1607: 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
+#line 1613 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
 
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:890: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1628: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1631: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1634: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1637: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_compiler_gnu=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:1649: 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:1655: 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
-  echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1661 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1673: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1676: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1679: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1682: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_prog_cc_g=yes
 else
-  ac_cv_prog_cc_g=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_prog_cc_g=no
 fi
-rm -f conftest*
-
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+echo "$as_me:1692: 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"
+  CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
     CFLAGS="-g -O2"
@@ -916,138 +1700,376 @@ else
     CFLAGS=
   fi
 fi
+# 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:1719: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1722: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1725: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1728: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   '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
+#line 1740 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1753: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1756: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1759: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1762: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+continue
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1772 "configure"
+#include "confdefs.h"
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1784: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1787: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1790: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1793: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f 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
 
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:922: checking how to run the C preprocessor" >&5
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f 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:1825: 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 eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    # This must be in double quotes, not single quotes, because CPP may get
-  # substituted into the Makefile and "${CC-cc}" will confuse make.
-  CPP="${CC-cc} -E"
+      # 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.
   # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp.
-  cat > conftest.$ac_ext <<EOF
-#line 937 "configure"
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1846 "configure"
 #include "confdefs.h"
 #include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:943: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:1851: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:1857: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
   :
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -E -traditional-cpp"
-  cat > conftest.$ac_ext <<EOF
-#line 954 "configure"
+  # 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
+#line 1880 "configure"
 #include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:960: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:1884: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:1890: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_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 "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -nologo -E"
-  cat > conftest.$ac_ext <<EOF
-#line 971 "configure"
+  # 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:1927: 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.
+  # 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
+#line 1937 "configure"
 #include "confdefs.h"
 #include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:977: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:1942: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:1948: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
   :
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP=/lib/cpp
-fi
-rm -f conftest*
+  # Broken: fails on valid input.
+continue
 fi
-rm -f conftest*
+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
+#line 1971 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:1975: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:1981: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
-rm -f conftest*
-  ac_cv_prog_CPP="$CPP"
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Passes both tests.
+ac_preproc_ok=:
+break
 fi
-  CPP="$ac_cv_prog_CPP"
+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
-  ac_cv_prog_CPP="$CPP"
+  { { echo "$as_me:2009: error: C preprocessor \"$CPP\" fails sanity check" >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+   { (exit 1); exit 1; }; }
 fi
-echo "$ac_t""$CPP" 1>&6
 
-ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1003: checking for minix/config.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+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:2020: checking for minix/config.h" >&5
+echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6
+if test "${ac_cv_header_minix_config_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1008 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2026 "configure"
 #include "confdefs.h"
 #include <minix/config.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1013: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+_ACEOF
+if { (eval echo "$as_me:2030: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2036: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_cv_header_minix_config_h=yes
+else
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  ac_cv_header_minix_config_h=no
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_ext
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+echo "$as_me:2055: result: $ac_cv_header_minix_config_h" >&5
+echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6
+if test $ac_cv_header_minix_config_h = yes; then
   MINIX=yes
 else
-  echo "$ac_t""no" 1>&6
-MINIX=
+  MINIX=
 fi
 
 if test "$MINIX" = yes; then
-  cat >> confdefs.h <<\EOF
+
+cat >>confdefs.h <<\EOF
 #define _POSIX_SOURCE 1
 EOF
 
-  cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define _POSIX_1_SOURCE 2
 EOF
 
-  cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define _MINIX 1
 EOF
 
 fi
 
-
 if test "x$cross_compiling" = "xyes"; then
     case "${host}" in
     *-cygwin*)
@@ -1063,14 +2085,13 @@ if test "x$cross_compiling" = "xyes"; then
        ;;
     esac
 fi
+
 if test "x$cross_compiling" = "xyes"; then
   CROSS_COMPILING_FLAG=-DCROSS_COMPILING
 else
   CROSS_COMPILING_FLAG=
 fi
 
 if test -z "$CC_FOR_BUILD"; then
     if test "x$cross_compiling" = "xno"; then
         CC_FOR_BUILD='$(CC)'
@@ -1079,53 +2100,47 @@ if test -z "$CC_FOR_BUILD"; then
     fi
 fi
 
-
 # If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
 test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
 
-if test $ac_cv_prog_gcc = yes; then
-    echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:1090: checking whether ${CC-cc} needs -traditional" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test $ac_cv_c_compiler_gnu = yes; then
+    echo "$as_me:2113: checking whether $CC needs -traditional" >&5
+echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
+if test "${ac_cv_prog_gcc_traditional+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
     ac_pattern="Autoconf.*'x'"
-  cat > conftest.$ac_ext <<EOF
-#line 1096 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2120 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
-EOF
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
-  rm -rf conftest*
   ac_cv_prog_gcc_traditional=yes
 else
-  rm -rf conftest*
   ac_cv_prog_gcc_traditional=no
 fi
 rm -f conftest*
 
-
   if test $ac_cv_prog_gcc_traditional = no; then
-    cat > conftest.$ac_ext <<EOF
-#line 1114 "configure"
+    cat >conftest.$ac_ext <<_ACEOF
+#line 2135 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
-EOF
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
-  rm -rf conftest*
   ac_cv_prog_gcc_traditional=yes
 fi
 rm -f conftest*
 
   fi
 fi
-
-echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
+echo "$as_me:2148: result: $ac_cv_prog_gcc_traditional" >&5
+echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
   if test $ac_cv_prog_gcc_traditional = yes; then
     CC="$CC -traditional"
   fi
@@ -1138,31 +2153,39 @@ fi
 # 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"
 # ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1147: checking for a BSD compatible install" >&5
+echo "$as_me:2167: 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 eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    IFS="${IFS=        }"; ac_save_IFS="$IFS"; IFS=":"
+    ac_save_IFS=$IFS; IFS=$ac_path_separator
   for ac_dir in $PATH; do
+    IFS=$ac_save_IFS
     # Account for people who put trailing slashes in PATH elements.
-    case "$ac_dir/" in
-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    case $ac_dir/ in
+    / | ./ | .// | /cC/* \
+    | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \
+    | /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
-        if test -f $ac_dir/$ac_prog; then
+        if $as_executable_p "$ac_dir/$ac_prog"; then
          if test $ac_prog = install &&
-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+            grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
            :
+         elif test $ac_prog = install &&
+           grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then
+           # program-specific install script used by HP pwplus--don't use.
+           :
          else
            ac_cv_path_install="$ac_dir/$ac_prog -c"
            break 2
@@ -1172,105 +2195,581 @@ else
       ;;
     esac
   done
-  IFS="$ac_save_IFS"
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
-    INSTALL="$ac_cv_path_install"
+    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"
+    INSTALL=$ac_install_sh
   fi
 fi
-echo "$ac_t""$INSTALL" 1>&6
+echo "$as_me:2216: 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_PROGRAM}'
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1202: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2229: 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
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_AR="ar"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_AR=""
+echo "$as_me:2244: found $ac_dir/$ac_word" >&5
+break
+done
+
+  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  echo "$as_me:2253: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+  echo "$as_me:2256: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+test -n "$ARFLAGS" || ARFLAGS="cr"
+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:2264: 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
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+echo "$as_me:2279: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  echo "$as_me:2287: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+  echo "$as_me:2290: 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:2299: 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
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_RANLIB="ranlib"
+echo "$as_me:2314: found $ac_dir/$ac_word" >&5
+break
+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:2323: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+  echo "$as_me:2326: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  RANLIB=$ac_ct_RANLIB
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+MAKE_SHELL=/bin/sh
+
+echo "$as_me:2337: 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
+#line 2345 "configure"
+#include "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;
+}
+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:2394: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2397: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2400: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2403: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f 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:2420: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:2423: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+echo "$as_me:2428: 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
+#line 2434 "configure"
+#include "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:2492: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2495: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2498: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2501: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_const=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_c_const=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:2511: 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 <<\EOF
+#define const
+EOF
+
+fi
+
+echo "$as_me:2521: checking for function prototypes" >&5
+echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6
+if test "$ac_cv_prog_cc_stdc" != no; then
+  echo "$as_me:2524: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\EOF
+#define PROTOTYPES 1
+EOF
+
+else
+  echo "$as_me:2532: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+echo "$as_me:2536: 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
+#line 2542 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+_ACEOF
+if { (eval echo "$as_me:2550: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2556: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_header_stdc=no
+fi
+rm -f conftest.err 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
+#line 2578 "configure"
+#include "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
+#line 2596 "configure"
+#include "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
+#line 2617 "configure"
+#include "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:2643: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:2646: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:2648: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2651: \$? = $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
+cat conftest.$ac_ext >&5
+ac_cv_header_stdc=no
+fi
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:2664: 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 <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+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:2680: 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
+#line 2686 "configure"
+#include "confdefs.h"
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2692: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2695: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2698: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2701: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_Header=no"
 fi
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-AR="$ac_cv_prog_AR"
-if test -n "$AR"; then
-  echo "$ac_t""$AR" 1>&6
-else
-  echo "$ac_t""no" 1>&6
+echo "$as_me:2711: 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 <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
 fi
+done
 
-test -n "$ARFLAGS" || ARFLAGS="cr"
-# Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1232: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2721: checking whether char is unsigned" >&5
+echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6
+if test "${ac_cv_c_char_unsigned+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.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2727 "configure"
+#include "confdefs.h"
+$ac_includes_default
+int
+main ()
+{
+int _array_ [1 - 2 * !(((char) -1) < 0)]
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2739: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2742: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2745: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2748: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_char_unsigned=no
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_c_char_unsigned=yes
 fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
-  echo "$ac_t""$RANLIB" 1>&6
-else
-  echo "$ac_t""no" 1>&6
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
+echo "$as_me:2758: result: $ac_cv_c_char_unsigned" >&5
+echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6
+if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
+  cat >>confdefs.h <<\EOF
+#define __CHAR_UNSIGNED__ 1
+EOF
 
+fi
 
-MAKE_SHELL=/bin/sh
-
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1264: checking return type of signal handlers" >&5
-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2767: checking return type of signal handlers" >&5
+echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+if test "${ac_cv_type_signal+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1269 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2773 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #ifdef signal
-#undef signal
+# undef signal
 #endif
 #ifdef __cplusplus
 extern "C" void (*signal (int, void (*)(int)))(int);
@@ -1278,36 +2777,152 @@ extern "C" void (*signal (int, void (*)(int)))(int);
 void (*signal ()) ();
 #endif
 
-int main() {
+int
+main ()
+{
 int i;
-; return 0; }
-EOF
-if { (eval echo configure:1286: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2795: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2798: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2801: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2804: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_type_signal=void
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_type_signal=int
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_type_signal=int
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
+echo "$as_me:2814: result: $ac_cv_type_signal" >&5
+echo "${ECHO_T}$ac_cv_type_signal" >&6
 
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<EOF
 #define RETSIGTYPE $ac_cv_type_signal
 EOF
 
+echo "$as_me:2821: checking for size_t" >&5
+echo $ECHO_N "checking for size_t... $ECHO_C" >&6
+if test "${ac_cv_type_size_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2827 "configure"
+#include "confdefs.h"
+$ac_includes_default
+int
+main ()
+{
+if ((size_t *) 0)
+  return 0;
+if (sizeof (size_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2842: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2845: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2848: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2851: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_size_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_type_size_t=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:2861: result: $ac_cv_type_size_t" >&5
+echo "${ECHO_T}$ac_cv_type_size_t" >&6
+if test $ac_cv_type_size_t = yes; then
+  :
+else
+
+cat >>confdefs.h <<EOF
+#define size_t unsigned
+EOF
+
+fi
+
+echo "$as_me:2873: checking for ssize_t" >&5
+echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6
+if test "${ac_cv_type_ssize_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2879 "configure"
+#include "confdefs.h"
+$ac_includes_default
+int
+main ()
+{
+if ((ssize_t *) 0)
+  return 0;
+if (sizeof (ssize_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2894: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2897: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2900: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2903: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_ssize_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_type_ssize_t=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:2913: result: $ac_cv_type_ssize_t" >&5
+echo "${ECHO_T}$ac_cv_type_ssize_t" >&6
+if test $ac_cv_type_ssize_t = yes; then
+  :
+else
+
+cat >>confdefs.h <<EOF
+#define ssize_t int
+EOF
 
+fi
 
-echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
-echo "configure:1306: checking whether stat file-mode macros are broken" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2925: checking whether stat file-mode macros are broken" >&5
+echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6
+if test "${ac_cv_header_stat_broken+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1311 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2931 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -1336,409 +2951,516 @@ You lose.
 # endif
 #endif
 
-EOF
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "You lose" >/dev/null 2>&1; then
-  rm -rf conftest*
   ac_cv_header_stat_broken=yes
 else
-  rm -rf conftest*
   ac_cv_header_stat_broken=no
 fi
 rm -f conftest*
 
 fi
-
-echo "$ac_t""$ac_cv_header_stat_broken" 1>&6
+echo "$as_me:2970: result: $ac_cv_header_stat_broken" >&5
+echo "${ECHO_T}$ac_cv_header_stat_broken" >&6
 if test $ac_cv_header_stat_broken = yes; then
-  cat >> confdefs.h <<\EOF
+
+cat >>confdefs.h <<\EOF
 #define STAT_MACROS_BROKEN 1
 EOF
 
 fi
 
 ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:1366: checking for $ac_hdr that defines DIR" >&5
-if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1371 "configure"
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+  as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+echo "$as_me:2983: checking for $ac_hdr that defines DIR" >&5
+echo $ECHO_N "checking for $ac_hdr that defines DIR... $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
+#line 2989 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
-int main() {
-DIR *dirp = 0;
-; return 0; }
-EOF
-if { (eval echo configure:1379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  eval "ac_cv_header_dirent_$ac_safe=yes"
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3004: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:3007: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:3010: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3013: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_dirent_$ac_safe=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_Header=no"
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+echo "$as_me:3023: 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 <<EOF
+#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
 EOF
- ac_header_dirent=$ac_hdr; break
-else
-  echo "$ac_t""no" 1>&6
+
+ac_header_dirent=$ac_hdr; break
 fi
+
 done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
-echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:1404: checking for opendir in -ldir" >&5
-ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  echo "$as_me:3036: checking for opendir in -ldir" >&5
+echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
+if test "${ac_cv_lib_dir_opendir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldir  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1412 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3044 "configure"
 #include "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 opendir();
-
-int main() {
-opendir()
-; return 0; }
-EOF
-if { (eval echo configure:1423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3063: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3066: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3069: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3072: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dir_opendir=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dir_opendir=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+echo "$as_me:3083: result: $ac_cv_lib_dir_opendir" >&5
+echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
+if test $ac_cv_lib_dir_opendir = yes; then
   LIBS="$LIBS -ldir"
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 else
-echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:1445: checking for opendir in -lx" >&5
-ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  echo "$as_me:3090: checking for opendir in -lx" >&5
+echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
+if test "${ac_cv_lib_x_opendir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lx  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1453 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3098 "configure"
 #include "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 opendir();
-
-int main() {
-opendir()
-; return 0; }
-EOF
-if { (eval echo configure:1464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3117: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3120: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3123: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3126: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_x_opendir=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_x_opendir=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+echo "$as_me:3137: result: $ac_cv_lib_x_opendir" >&5
+echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
+if test $ac_cv_lib_x_opendir = yes; then
   LIBS="$LIBS -lx"
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
-
 for ac_func in lstat memmove putenv select setenv setlocale \
-               strcasecmp tcgetattr
+               strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit
 do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1491: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:3149: 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
-  cat > conftest.$ac_ext <<EOF
-#line 1496 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3155 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
+    which can conflict with char $ac_func (); below.  */
 #include <assert.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 $ac_func();
-
-int main() {
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+char (*f) ();
 
+int
+main ()
+{
 /* 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
-$ac_func();
+f = $ac_func;
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:1519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3186: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3189: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3192: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3195: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+echo "$as_me:3205: 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 <<EOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 EOF
-else
-  echo "$ac_t""no" 1>&6
+
 fi
 done
 
-
-echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:1545: checking for working strcoll" >&5
-if eval "test \"`echo '$''{'ac_cv_func_strcoll_works'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3215: checking for working strcoll" >&5
+echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6
+if test "${ac_cv_func_strcoll_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test "$cross_compiling" = yes; then
   ac_cv_func_strcoll_works=no
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1553 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3224 "configure"
 #include "confdefs.h"
-#include <string.h>
+$ac_includes_default
+int
 main ()
 {
-  exit (strcoll ("abc", "def") >= 0 ||
-       strcoll ("ABC", "DEF") >= 0 ||
-       strcoll ("123", "456") >= 0);
+exit (strcoll ("abc", "def") >= 0 ||
+        strcoll ("ABC", "DEF") >= 0 ||
+        strcoll ("123", "456") >= 0)
+  ;
+  return 0;
 }
-EOF
-if { (eval echo configure:1563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:3238: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3241: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:3243: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3246: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_func_strcoll_works=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_func_strcoll_works=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_strcoll_works=no
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
-
 fi
-
-echo "$ac_t""$ac_cv_func_strcoll_works" 1>&6
+echo "$as_me:3258: result: $ac_cv_func_strcoll_works" >&5
+echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6
 if test $ac_cv_func_strcoll_works = yes; then
-  cat >> confdefs.h <<\EOF
+
+cat >>confdefs.h <<\EOF
 #define HAVE_STRCOLL 1
 EOF
 
 fi
 
-
-for ac_hdr in unistd.h stdlib.h varargs.h stdarg.h string.h \
-               sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
-               termcap.h termios.h termio.h sys/file.h locale.h
+for ac_header in unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
+               limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
+               termcap.h termios.h termio.h sys/file.h locale.h memory.h
 do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1592: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1597 "configure"
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:3273: 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
+#line 3279 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1602: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:3283: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:3289: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_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 "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  eval "$as_ac_Header=no"
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_ext
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+echo "$as_me:3308: 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 <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 EOF
-else
-  echo "$ac_t""no" 1>&6
+
 fi
 done
 
-
-
-echo $ac_n "checking for type of signal functions""... $ac_c" 1>&6
-echo "configure:1631: checking for type of signal functions" >&5
-if eval "test \"`echo '$''{'bash_cv_signal_vintage'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3318: checking for type of signal functions" >&5
+echo $ECHO_N "checking for type of signal functions... $ECHO_C" >&6
+if test "${bash_cv_signal_vintage+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  
-  cat > conftest.$ac_ext <<EOF
-#line 1637 "configure"
+
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3325 "configure"
 #include "confdefs.h"
 #include <signal.h>
-int main() {
+int
+main ()
+{
 
     sigset_t ss;
     struct sigaction sa;
     sigemptyset(&ss); sigsuspend(&ss);
     sigaction(SIGINT, &sa, (struct sigaction *) 0);
     sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
-  
-; return 0; }
-EOF
-if { (eval echo configure:1650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3343: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3346: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3349: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3352: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_signal_vintage=posix
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-    cat > conftest.$ac_ext <<EOF
-#line 1659 "configure"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+    cat >conftest.$ac_ext <<_ACEOF
+#line 3360 "configure"
 #include "confdefs.h"
 #include <signal.h>
-int main() {
+int
+main ()
+{
 
        int mask = sigmask(SIGINT);
        sigsetmask(mask); sigblock(mask); sigpause(mask);
-    
-; return 0; }
-EOF
-if { (eval echo configure:1669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3375: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3378: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3381: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3384: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_signal_vintage=4.2bsd
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-      cat > conftest.$ac_ext <<EOF
-#line 1678 "configure"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+      cat >conftest.$ac_ext <<_ACEOF
+#line 3392 "configure"
 #include "confdefs.h"
 
        #include <signal.h>
        RETSIGTYPE foo() { }
-int main() {
+int
+main ()
+{
 
                int mask = sigmask(SIGINT);
                sigset(SIGINT, foo); sigrelse(SIGINT);
                sighold(SIGINT); sigpause(SIGINT);
-        
-; return 0; }
-EOF
-if { (eval echo configure:1691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3410: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3413: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3416: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3419: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_signal_vintage=svr3
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_signal_vintage=v7
-    
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_signal_vintage=v7
+
 fi
-rm -f conftest*
-  
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
 
-echo "$ac_t""$bash_cv_signal_vintage" 1>&6
+echo "$as_me:3438: result: $bash_cv_signal_vintage" >&5
+echo "${ECHO_T}$bash_cv_signal_vintage" >&6
 if test "$bash_cv_signal_vintage" = posix; then
-cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define HAVE_POSIX_SIGNALS 1
 EOF
 
 elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
-cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define HAVE_BSD_SIGNALS 1
 EOF
 
 elif test "$bash_cv_signal_vintage" = svr3; then
-cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define HAVE_USG_SIGHOLD 1
 EOF
 
 fi
 
-
-
-echo $ac_n "checking if signal handlers must be reinstalled when invoked""... $ac_c" 1>&6
-echo "configure:1732: checking if signal handlers must be reinstalled when invoked" >&5
-if eval "test \"`echo '$''{'bash_cv_must_reinstall_sighandlers'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3457: checking if signal handlers must be reinstalled when invoked" >&5
+echo $ECHO_N "checking if signal handlers must be reinstalled when invoked... $ECHO_C" >&6
+if test "${bash_cv_must_reinstall_sighandlers+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test "$cross_compiling" = yes; then
-  echo "configure: warning: cannot check signal handling if cross compiling -- defaulting to no" 1>&2
+  { echo "$as_me:3463: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5
+echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;}
     bash_cv_must_reinstall_sighandlers=no
 
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1742 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3469 "configure"
 #include "confdefs.h"
 
 #include <signal.h>
@@ -1784,43 +3506,51 @@ main()
        exit(nsigint != 2);
 }
 
-EOF
-if { (eval echo configure:1789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:3517: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3520: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:3522: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3525: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_must_reinstall_sighandlers=no
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  bash_cv_must_reinstall_sighandlers=yes
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_must_reinstall_sighandlers=yes
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
-
 fi
 
-echo "$ac_t""$bash_cv_must_reinstall_sighandlers" 1>&6
+echo "$as_me:3538: result: $bash_cv_must_reinstall_sighandlers" >&5
+echo "${ECHO_T}$bash_cv_must_reinstall_sighandlers" >&6
 if test $bash_cv_must_reinstall_sighandlers = yes; then
-cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define MUST_REINSTALL_SIGHANDLERS 1
 EOF
 
 fi
 
-
-
-echo $ac_n "checking for presence of POSIX-style sigsetjmp/siglongjmp""... $ac_c" 1>&6
-echo "configure:1814: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
-if eval "test \"`echo '$''{'bash_cv_func_sigsetjmp'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3547: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
+echo $ECHO_N "checking for presence of POSIX-style sigsetjmp/siglongjmp... $ECHO_C" >&6
+if test "${bash_cv_func_sigsetjmp+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test "$cross_compiling" = yes; then
-  echo "configure: warning: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" 1>&2
+  { echo "$as_me:3553: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5
+echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;}
      bash_cv_func_sigsetjmp=missing
 
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1824 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3559 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_UNISTD_H
@@ -1860,115 +3590,100 @@ siglongjmp(xx, 10);
 exit(1);
 #endif
 }
-EOF
-if { (eval echo configure:1865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:3601: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3604: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:3606: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3609: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_func_sigsetjmp=present
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  bash_cv_func_sigsetjmp=missing
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_func_sigsetjmp=missing
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
-
 fi
 
-echo "$ac_t""$bash_cv_func_sigsetjmp" 1>&6
+echo "$as_me:3622: result: $bash_cv_func_sigsetjmp" >&5
+echo "${ECHO_T}$bash_cv_func_sigsetjmp" >&6
 if test $bash_cv_func_sigsetjmp = present; then
-cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define HAVE_POSIX_SIGSETJMP 1
 EOF
 
 fi
 
-echo $ac_n "checking for lstat""... $ac_c" 1>&6
-echo "configure:1888: checking for lstat" >&5
-if eval "test \"`echo '$''{'bash_cv_func_lstat'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3631: checking for lstat" >&5
+echo $ECHO_N "checking for lstat... $ECHO_C" >&6
+if test "${bash_cv_func_lstat+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1893 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3637 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>
 
-int main() {
- lstat(".",(struct stat *)0); 
-; return 0; }
-EOF
-if { (eval echo configure:1903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+int
+main ()
+{
+ lstat(".",(struct stat *)0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3652: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3655: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3658: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3661: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_func_lstat=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_func_lstat=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_func_lstat=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-
-echo "$ac_t""$bash_cv_func_lstat" 1>&6
+echo "$as_me:3671: result: $bash_cv_func_lstat" >&5
+echo "${ECHO_T}$bash_cv_func_lstat" >&6
 if test $bash_cv_func_lstat = yes; then
-  cat >> confdefs.h <<\EOF
+  cat >>confdefs.h <<\EOF
 #define HAVE_LSTAT 1
 EOF
 
 fi
 
-echo $ac_n "checking whether programs are able to redeclare getpw functions""... $ac_c" 1>&6
-echo "configure:1924: checking whether programs are able to redeclare getpw functions" >&5
-if eval "test \"`echo '$''{'bash_cv_can_redecl_getpw'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1929 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <pwd.h>
-extern struct passwd *getpwent();
-extern struct passwd *getpwuid();
-extern struct passwd *getpwnam();
-int main() {
-struct passwd *z; z = getpwent(); z = getpwuid(0); z = getpwnam("root");
-; return 0; }
-EOF
-if { (eval echo configure:1940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  bash_cv_can_redecl_getpw=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_can_redecl_getpw=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$bash_cv_can_redecl_getpw" 1>&6
-if test $bash_cv_can_redecl_getpw = no; then
-cat >> confdefs.h <<\EOF
-#define HAVE_GETPW_DECLS 1
-EOF
-
-fi
-
-
-echo $ac_n "checking whether or not strcoll and strcmp differ""... $ac_c" 1>&6
-echo "configure:1962: checking whether or not strcoll and strcmp differ" >&5
-if eval "test \"`echo '$''{'bash_cv_func_strcoll_broken'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3680: checking whether or not strcoll and strcmp differ" >&5
+echo $ECHO_N "checking whether or not strcoll and strcmp differ... $ECHO_C" >&6
+if test "${bash_cv_func_strcoll_broken+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test "$cross_compiling" = yes; then
-  echo "configure: warning: cannot check strcoll if cross compiling -- defaulting to no" 1>&2
+  { echo "$as_me:3686: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5
+echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;}
     bash_cv_func_strcoll_broken=no
 
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1972 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3692 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -1994,49 +3709,201 @@ char    *v[];
 #else
        r1 = 0;
 #endif
-        r2 = strcmp("abd", "aXd");
+        r2 = strcmp("abd", "aXd");
+
+       /* These two should both be greater than 0.  It is permissible for
+          a system to return different values, as long as the sign is the
+          same. */
+
+        /* Exit with 1 (failure) if these two values are both > 0, since
+          this tests whether strcoll(3) is broken with respect to strcmp(3)
+          in the default locale. */
+       exit (r1 > 0 && r2 > 0);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:3732: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3735: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:3737: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3740: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  bash_cv_func_strcoll_broken=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_func_strcoll_broken=no
+fi
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+
+echo "$as_me:3753: result: $bash_cv_func_strcoll_broken" >&5
+echo "${ECHO_T}$bash_cv_func_strcoll_broken" >&6
+if test $bash_cv_func_strcoll_broken = yes; then
+cat >>confdefs.h <<\EOF
+#define STRCOLL_BROKEN 1
+EOF
+
+fi
+
+echo "$as_me:3762: checking whether getpw functions are declared in pwd.h" >&5
+echo $ECHO_N "checking whether getpw functions are declared in pwd.h... $ECHO_C" >&6
+if test "${bash_cv_getpw_declared+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3768 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+#endif
+#include <pwd.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "getpwuid" >/dev/null 2>&1; then
+  bash_cv_getpw_declared=yes
+else
+  bash_cv_getpw_declared=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$as_me:3788: result: $bash_cv_getpw_declared" >&5
+echo "${ECHO_T}$bash_cv_getpw_declared" >&6
+if test $bash_cv_getpw_declared = yes; then
+cat >>confdefs.h <<\EOF
+#define HAVE_GETPW_DECLS 1
+EOF
+
+fi
+
+echo "$as_me:3797: checking POSIX termios" >&5
+echo $ECHO_N "checking POSIX termios... $ECHO_C" >&6
+if test "${ac_cv_sys_posix_termios+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3803 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <unistd.h>
+#include <termios.h>
+int
+main ()
+{
+/* SunOS 4.0.3 has termios.h but not the library calls.  */
+   tcgetattr(0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3818: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3821: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3824: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3827: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sys_posix_termios=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_sys_posix_termios=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:3837: result: $ac_cv_sys_posix_termios" >&5
+echo "${ECHO_T}$ac_cv_sys_posix_termios" >&6
+
+if test $ac_cv_sys_posix_termios = yes; then
+  echo "$as_me:3841: checking whether termios.h defines TIOCGWINSZ" >&5
+echo $ECHO_N "checking whether termios.h defines TIOCGWINSZ... $ECHO_C" >&6
+if test "${ac_cv_sys_tiocgwinsz_in_termios_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3847 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <termios.h>
+#ifdef TIOCGWINSZ
+  yes
+#endif
 
-       /* These two should both be greater than 0.  It is permissible for
-          a system to return different values, as long as the sign is the
-          same. */
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  ac_cv_sys_tiocgwinsz_in_termios_h=yes
+else
+  ac_cv_sys_tiocgwinsz_in_termios_h=no
+fi
+rm -f conftest*
 
-        /* Exit with 1 (failure) if these two values are both > 0, since
-          this tests whether strcoll(3) is broken with respect to strcmp(3)
-          in the default locale. */
-       exit (r1 > 0 && r2 > 0);
-}
+fi
+echo "$as_me:3865: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5
+echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_termios_h" >&6
 
-EOF
-if { (eval echo configure:2011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  bash_cv_func_strcoll_broken=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  bash_cv_func_strcoll_broken=no
 fi
-rm -fr conftest*
+if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then
+  echo "$as_me:3870: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5
+echo $ECHO_N "checking whether sys/ioctl.h defines TIOCGWINSZ... $ECHO_C" >&6
+if test "${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3876 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#ifdef TIOCGWINSZ
+  yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes
+else
+  ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no
 fi
+rm -f conftest*
 
 fi
+echo "$as_me:3894: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5
+echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6
 
-echo "$ac_t""$bash_cv_func_strcoll_broken" 1>&6
-if test $bash_cv_func_strcoll_broken = yes; then
-cat >> confdefs.h <<\EOF
-#define STRCOLL_BROKEN 1
+  if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then
+
+cat >>confdefs.h <<\EOF
+#define GWINSZ_IN_SYS_IOCTL 1
 EOF
 
+  fi
 fi
 
-
-echo $ac_n "checking whether signal handlers are of type void""... $ac_c" 1>&6
-echo "configure:2035: checking whether signal handlers are of type void" >&5
-if eval "test \"`echo '$''{'bash_cv_void_sighandler'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3906: checking whether signal handlers are of type void" >&5
+echo $ECHO_N "checking whether signal handlers are of type void... $ECHO_C" >&6
+if test "${bash_cv_void_sighandler+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2040 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3912 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -2047,233 +3914,283 @@ else
 extern "C"
 #endif
 void (*signal ()) ();
-int main() {
+int
+main ()
+{
 int i;
-; return 0; }
-EOF
-if { (eval echo configure:2055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3932: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:3935: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:3938: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3941: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_void_sighandler=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_void_sighandler=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_void_sighandler=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$ac_t""$bash_cv_void_sighandler" 1>&6
+echo "$as_me:3951: result: $bash_cv_void_sighandler" >&5
+echo "${ECHO_T}$bash_cv_void_sighandler" >&6
 if test $bash_cv_void_sighandler = yes; then
-cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define VOID_SIGHANDLER 1
 EOF
 
 fi
 
-echo $ac_n "checking for TIOCGWINSZ in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:2075: checking for TIOCGWINSZ in sys/ioctl.h" >&5
-if eval "test \"`echo '$''{'bash_cv_tiocgwinsz_in_ioctl'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2080 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/ioctl.h>
-int main() {
-int x = TIOCGWINSZ;
-; return 0; }
-EOF
-if { (eval echo configure:2088: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  bash_cv_tiocgwinsz_in_ioctl=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_tiocgwinsz_in_ioctl=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$bash_cv_tiocgwinsz_in_ioctl" 1>&6
-if test $bash_cv_tiocgwinsz_in_ioctl = yes; then   
-cat >> confdefs.h <<\EOF
-#define GWINSZ_IN_SYS_IOCTL 1
-EOF
-
-fi
-
-echo $ac_n "checking for TIOCSTAT in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:2109: checking for TIOCSTAT in sys/ioctl.h" >&5
-if eval "test \"`echo '$''{'bash_cv_tiocstat_in_ioctl'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3960: checking for TIOCSTAT in sys/ioctl.h" >&5
+echo $ECHO_N "checking for TIOCSTAT in sys/ioctl.h... $ECHO_C" >&6
+if test "${bash_cv_tiocstat_in_ioctl+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2114 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3966 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/ioctl.h>
-int main() {
+int
+main ()
+{
 int x = TIOCSTAT;
-; return 0; }
-EOF
-if { (eval echo configure:2122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3979: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:3982: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:3985: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3988: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_tiocstat_in_ioctl=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_tiocstat_in_ioctl=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_tiocstat_in_ioctl=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
-echo "$ac_t""$bash_cv_tiocstat_in_ioctl" 1>&6
-if test $bash_cv_tiocstat_in_ioctl = yes; then   
-cat >> confdefs.h <<\EOF
+echo "$as_me:3999: result: $bash_cv_tiocstat_in_ioctl" >&5
+echo "${ECHO_T}$bash_cv_tiocstat_in_ioctl" >&6
+if test $bash_cv_tiocstat_in_ioctl = yes; then
+cat >>confdefs.h <<\EOF
 #define TIOCSTAT_IN_SYS_IOCTL 1
 EOF
 
 fi
 
-echo $ac_n "checking for FIONREAD in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:2143: checking for FIONREAD in sys/ioctl.h" >&5
-if eval "test \"`echo '$''{'bash_cv_fionread_in_ioctl'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4008: checking for FIONREAD in sys/ioctl.h" >&5
+echo $ECHO_N "checking for FIONREAD in sys/ioctl.h... $ECHO_C" >&6
+if test "${bash_cv_fionread_in_ioctl+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2148 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4014 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/ioctl.h>
-int main() {
+int
+main ()
+{
 int x = FIONREAD;
-; return 0; }
-EOF
-if { (eval echo configure:2156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4027: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4030: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4033: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4036: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_fionread_in_ioctl=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_fionread_in_ioctl=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_fionread_in_ioctl=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
-echo "$ac_t""$bash_cv_fionread_in_ioctl" 1>&6
-if test $bash_cv_fionread_in_ioctl = yes; then   
-cat >> confdefs.h <<\EOF
+echo "$as_me:4047: result: $bash_cv_fionread_in_ioctl" >&5
+echo "${ECHO_T}$bash_cv_fionread_in_ioctl" >&6
+if test $bash_cv_fionread_in_ioctl = yes; then
+cat >>confdefs.h <<\EOF
 #define FIONREAD_IN_SYS_IOCTL 1
 EOF
 
 fi
 
-echo $ac_n "checking for speed_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:2177: checking for speed_t in sys/types.h" >&5
-if eval "test \"`echo '$''{'bash_cv_speed_t_in_sys_types'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4056: checking for speed_t in sys/types.h" >&5
+echo $ECHO_N "checking for speed_t in sys/types.h... $ECHO_C" >&6
+if test "${bash_cv_speed_t_in_sys_types+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2182 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4062 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
-int main() {
+int
+main ()
+{
 speed_t x;
-; return 0; }
-EOF
-if { (eval echo configure:2189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4074: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4077: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4080: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4083: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_speed_t_in_sys_types=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_speed_t_in_sys_types=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_speed_t_in_sys_types=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
-echo "$ac_t""$bash_cv_speed_t_in_sys_types" 1>&6
-if test $bash_cv_speed_t_in_sys_types = yes; then   
-cat >> confdefs.h <<\EOF
+echo "$as_me:4094: result: $bash_cv_speed_t_in_sys_types" >&5
+echo "${ECHO_T}$bash_cv_speed_t_in_sys_types" >&6
+if test $bash_cv_speed_t_in_sys_types = yes; then
+cat >>confdefs.h <<\EOF
 #define SPEED_T_IN_SYS_TYPES 1
 EOF
 
 fi
 
-echo $ac_n "checking for struct winsize in sys/ioctl.h and termios.h""... $ac_c" 1>&6
-echo "configure:2210: checking for struct winsize in sys/ioctl.h and termios.h" >&5
-if eval "test \"`echo '$''{'bash_cv_struct_winsize_header'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4103: checking for struct winsize in sys/ioctl.h and termios.h" >&5
+echo $ECHO_N "checking for struct winsize in sys/ioctl.h and termios.h... $ECHO_C" >&6
+if test "${bash_cv_struct_winsize_header+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2215 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4109 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/ioctl.h>
-int main() {
+int
+main ()
+{
 struct winsize x;
-; return 0; }
-EOF
-if { (eval echo configure:2223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4122: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4125: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4128: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4131: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_struct_winsize_header=ioctl_h
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cat > conftest.$ac_ext <<EOF
-#line 2231 "configure"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cat >conftest.$ac_ext <<_ACEOF
+#line 4138 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <termios.h>
-int main() {
+int
+main ()
+{
 struct winsize x;
-; return 0; }
-EOF
-if { (eval echo configure:2239: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4151: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4154: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4157: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4160: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_struct_winsize_header=termios_h
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_struct_winsize_header=other
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_struct_winsize_header=other
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
 if test $bash_cv_struct_winsize_header = ioctl_h; then
-  echo "$ac_t""sys/ioctl.h" 1>&6
-  cat >> confdefs.h <<\EOF
+  echo "$as_me:4175: result: sys/ioctl.h" >&5
+echo "${ECHO_T}sys/ioctl.h" >&6
+  cat >>confdefs.h <<\EOF
 #define STRUCT_WINSIZE_IN_SYS_IOCTL 1
 EOF
 
 elif test $bash_cv_struct_winsize_header = termios_h; then
-  echo "$ac_t""termios.h" 1>&6
-  cat >> confdefs.h <<\EOF
+  echo "$as_me:4182: result: termios.h" >&5
+echo "${ECHO_T}termios.h" >&6
+  cat >>confdefs.h <<\EOF
 #define STRUCT_WINSIZE_IN_TERMIOS 1
 EOF
 
 else
-  echo "$ac_t""not found" 1>&6
+  echo "$as_me:4189: result: not found" >&5
+echo "${ECHO_T}not found" >&6
 fi
 
-
-echo $ac_n "checking if struct dirent has a d_ino member""... $ac_c" 1>&6
-echo "configure:2272: checking if struct dirent has a d_ino member" >&5
-if eval "test \"`echo '$''{'bash_cv_dirent_has_dino'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4193: checking if struct dirent has a d_ino member" >&5
+echo $ECHO_N "checking if struct dirent has a d_ino member... $ECHO_C" >&6
+if test "${bash_cv_dirent_has_dino+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2277 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4199 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -2296,40 +4213,53 @@ else
 # endif
 #endif /* HAVE_DIRENT_H */
 
-int main() {
+int
+main ()
+{
 
 struct dirent d; int z; z = d.d_ino;
 
-; return 0; }
-EOF
-if { (eval echo configure:2306: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4233: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4236: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4239: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4242: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_dirent_has_dino=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_dirent_has_dino=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_dirent_has_dino=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
-echo "$ac_t""$bash_cv_dirent_has_dino" 1>&6
+echo "$as_me:4253: result: $bash_cv_dirent_has_dino" >&5
+echo "${ECHO_T}$bash_cv_dirent_has_dino" >&6
 if test $bash_cv_dirent_has_dino = yes; then
-cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define STRUCT_DIRENT_HAS_D_INO 1
 EOF
 
 fi
 
-
-echo $ac_n "checking if struct dirent has a d_fileno member""... $ac_c" 1>&6
-echo "configure:2328: checking if struct dirent has a d_fileno member" >&5
-if eval "test \"`echo '$''{'bash_cv_dirent_has_d_fileno'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4262: checking if struct dirent has a d_fileno member" >&5
+echo $ECHO_N "checking if struct dirent has a d_fileno member... $ECHO_C" >&6
+if test "${bash_cv_dirent_has_d_fileno+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2333 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4268 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -2352,33 +4282,46 @@ else
 # endif
 #endif /* HAVE_DIRENT_H */
 
-int main() {
+int
+main ()
+{
 
 struct dirent d; int z; z = d.d_fileno;
 
-; return 0; }
-EOF
-if { (eval echo configure:2362: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4302: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4305: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4308: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4311: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   bash_cv_dirent_has_d_fileno=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  bash_cv_dirent_has_d_fileno=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_dirent_has_d_fileno=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
-echo "$ac_t""$bash_cv_dirent_has_d_fileno" 1>&6
+echo "$as_me:4322: result: $bash_cv_dirent_has_d_fileno" >&5
+echo "${ECHO_T}$bash_cv_dirent_has_d_fileno" >&6
 if test $bash_cv_dirent_has_d_fileno = yes; then
-cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\EOF
 #define STRUCT_DIRENT_HAS_D_FILENO 1
 EOF
 
 fi
 
-
 case "$host_os" in
 aix*)   prefer_curses=yes ;;
 esac
@@ -2386,163 +4329,639 @@ esac
 if test "X$bash_cv_termcap_lib" = "X"; then
 _bash_needmsg=yes
 else
-echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6
-echo "configure:2391: checking which library has the termcap functions" >&5
+echo "$as_me:4338: checking which library has the termcap functions" >&5
+echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6
 _bash_needmsg=
 fi
-if eval "test \"`echo '$''{'bash_cv_termcap_lib'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test "${bash_cv_termcap_lib+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:2398: checking for tgetent in -ltermcap" >&5
-ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  echo "$as_me:4345: checking for tgetent in -ltermcap" >&5
+echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6
+if test "${ac_cv_lib_termcap_tgetent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-ltermcap  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2406 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4353 "configure"
+#include "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 tgetent ();
+int
+main ()
+{
+tgetent ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4372: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4375: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4378: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4381: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_termcap_tgetent=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_termcap_tgetent=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:4392: result: $ac_cv_lib_termcap_tgetent" >&5
+echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6
+if test $ac_cv_lib_termcap_tgetent = yes; then
+  bash_cv_termcap_lib=libtermcap
+else
+  echo "$as_me:4397: checking for tgetent in -ltinfo" >&5
+echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6
+if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ltinfo  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4405 "configure"
+#include "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 tgetent ();
+int
+main ()
+{
+tgetent ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4424: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4427: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4430: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4433: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_tinfo_tgetent=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_tinfo_tgetent=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:4444: result: $ac_cv_lib_tinfo_tgetent" >&5
+echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6
+if test $ac_cv_lib_tinfo_tgetent = yes; then
+  bash_cv_termcap_lib=libtinfo
+else
+  echo "$as_me:4449: checking for tgetent in -lcurses" >&5
+echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6
+if test "${ac_cv_lib_curses_tgetent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcurses  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4457 "configure"
+#include "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 tgetent ();
+int
+main ()
+{
+tgetent ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4476: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4479: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4482: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4485: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_curses_tgetent=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_curses_tgetent=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:4496: result: $ac_cv_lib_curses_tgetent" >&5
+echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6
+if test $ac_cv_lib_curses_tgetent = yes; then
+  bash_cv_termcap_lib=libcurses
+else
+  echo "$as_me:4501: checking for tgetent in -lncurses" >&5
+echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6
+if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lncurses  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4509 "configure"
+#include "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 tgetent ();
+int
+main ()
+{
+tgetent ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4528: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4531: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4534: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4537: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_ncurses_tgetent=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_ncurses_tgetent=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:4548: result: $ac_cv_lib_ncurses_tgetent" >&5
+echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6
+if test $ac_cv_lib_ncurses_tgetent = yes; then
+  bash_cv_termcap_lib=libncurses
+else
+  bash_cv_termcap_lib=gnutermcap
+fi
+
+fi
+
+fi
+
+fi
+
+fi
+
+if test "X$_bash_needmsg" = "Xyes"; then
+echo "$as_me:4565: checking which library has the termcap functions" >&5
+echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6
+fi
+echo "$as_me:4568: result: using $bash_cv_termcap_lib" >&5
+echo "${ECHO_T}using $bash_cv_termcap_lib" >&6
+if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
+LDFLAGS="$LDFLAGS -L./lib/termcap"
+TERMCAP_LIB="./lib/termcap/libtermcap.a"
+TERMCAP_DEP="./lib/termcap/libtermcap.a"
+elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
+TERMCAP_LIB=-ltermcap
+TERMCAP_DEP=
+elif test $bash_cv_termcap_lib = libtinfo; then
+TERMCAP_LIB=-ltinfo
+TERMCAP_DEP=
+elif test $bash_cv_termcap_lib = libncurses; then
+TERMCAP_LIB=-lncurses
+TERMCAP_DEP=
+else
+TERMCAP_LIB=-lcurses
+TERMCAP_DEP=
+fi
+
+if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
+       if test "$prefer_curses" = yes; then
+               TERMCAP_LIB=-lcurses
+       else
+               TERMCAP_LIB=-ltermcap   #default
+       fi
+fi
+
+for ac_header in wctype.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:4599: 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
+#line 4605 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:4609: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:4615: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_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
+  cat conftest.$ac_ext >&5
+  eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
+echo "$as_me:4634: 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 <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+for ac_header in wchar.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:4647: 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
+#line 4653 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:4657: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:4663: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_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
+  cat conftest.$ac_ext >&5
+  eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
+echo "$as_me:4682: 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 <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+for ac_header in langinfo.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:4695: 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
+#line 4701 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:4705: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:4711: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_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
+  cat conftest.$ac_ext >&5
+  eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
+echo "$as_me:4730: 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 <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+echo "$as_me:4740: checking for mbsrtowcs" >&5
+echo $ECHO_N "checking for mbsrtowcs... $ECHO_C" >&6
+if test "${ac_cv_func_mbsrtowcs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4746 "configure"
 #include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char mbsrtowcs (); below.  */
+#include <assert.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 tgetent();
+   builtin and then its argument prototype would still apply.  */
+char mbsrtowcs ();
+char (*f) ();
+
+int
+main ()
+{
+/* 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_mbsrtowcs) || defined (__stub___mbsrtowcs)
+choke me
+#else
+f = mbsrtowcs;
+#endif
 
-int main() {
-tgetent()
-; return 0; }
-EOF
-if { (eval echo configure:2417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4777: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4780: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4783: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4786: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_mbsrtowcs=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_mbsrtowcs=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:4796: result: $ac_cv_func_mbsrtowcs" >&5
+echo "${ECHO_T}$ac_cv_func_mbsrtowcs" >&6
+if test $ac_cv_func_mbsrtowcs = yes; then
+  cat >>confdefs.h <<\EOF
+#define HAVE_MBSRTOWCS 1
+EOF
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  bash_cv_termcap_lib=libtermcap
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:2436: checking for tgetent in -lcurses" >&5
-ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+
+echo "$as_me:4805: checking for wcwidth" >&5
+echo $ECHO_N "checking for wcwidth... $ECHO_C" >&6
+if test "${ac_cv_func_wcwidth+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
-LIBS="-lcurses  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2444 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4811 "configure"
 #include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char wcwidth (); below.  */
+#include <assert.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 tgetent();
+   builtin and then its argument prototype would still apply.  */
+char wcwidth ();
+char (*f) ();
 
-int main() {
-tgetent()
-; return 0; }
-EOF
-if { (eval echo configure:2455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+int
+main ()
+{
+/* 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_wcwidth) || defined (__stub___wcwidth)
+choke me
+#else
+f = wcwidth;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4842: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4845: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4848: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4851: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_wcwidth=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_wcwidth=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:4861: result: $ac_cv_func_wcwidth" >&5
+echo "${ECHO_T}$ac_cv_func_wcwidth" >&6
+if test $ac_cv_func_wcwidth = yes; then
+  cat >>confdefs.h <<\EOF
+#define HAVE_WCWIDTH 1
+EOF
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  bash_cv_termcap_lib=libcurses
+
+echo "$as_me:4870: checking for mbstate_t" >&5
+echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
+if test "${bash_cv_have_mbstate_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:2474: checking for tgetent in -lncurses" >&5
-ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:4876: error: cannot run test program while cross compiling" >&5
+echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+   { (exit 1); exit 1; }; }
 else
-  ac_save_LIBS="$LIBS"
-LIBS="-lncurses  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2482 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4881 "configure"
 #include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char tgetent();
 
-int main() {
-tgetent()
-; return 0; }
-EOF
-if { (eval echo configure:2493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  bash_cv_termcap_lib=libncurses
+#include <wchar.h>
+int
+main ()
+{
+  mbstate_t ps;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:4893: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4896: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:4898: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4901: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  bash_cv_have_mbstate_t=yes
 else
-  echo "$ac_t""no" 1>&6
-bash_cv_termcap_lib=gnutermcap
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_have_mbstate_t=no
 fi
-
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
-
 fi
+echo "$as_me:4913: result: $bash_cv_have_mbstate_t" >&5
+echo "${ECHO_T}$bash_cv_have_mbstate_t" >&6
+if test $bash_cv_have_mbstate_t = yes; then
+       cat >>confdefs.h <<\EOF
+#define HAVE_MBSTATE_T 1
+EOF
 
 fi
 
-if test "X$_bash_needmsg" = "Xyes"; then
-echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6
-echo "configure:2522: checking which library has the termcap functions" >&5
-fi
-echo "$ac_t""using $bash_cv_termcap_lib" 1>&6
-if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
-LDFLAGS="$LDFLAGS -L./lib/termcap"
-TERMCAP_LIB="./lib/termcap/libtermcap.a"
-TERMCAP_DEP="./lib/termcap/libtermcap.a"
-elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
-TERMCAP_LIB=-ltermcap
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libncurses; then
-TERMCAP_LIB=-lncurses
-TERMCAP_DEP=
+echo "$as_me:4922: checking for nl_langinfo and CODESET" >&5
+echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
+if test "${bash_cv_langinfo_codeset+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-TERMCAP_LIB=-lcurses
-TERMCAP_DEP=
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4928 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4940: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4943: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4946: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4949: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  bash_cv_langinfo_codeset=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+bash_cv_langinfo_codeset=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:4959: result: $bash_cv_langinfo_codeset" >&5
+echo "${ECHO_T}$bash_cv_langinfo_codeset" >&6
+if test $bash_cv_langinfo_codeset = yes; then
+  cat >>confdefs.h <<\EOF
+#define HAVE_LANGINFO_CODESET 1
+EOF
 
-if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
-       TERMCAP_LIB=-ltermcap   #default
 fi
 
 case "$host_cpu" in
 *cray*)        LOCAL_CFLAGS=-DCRAY ;;
-*s390*)        LOCAL_CFLAGS=-fsigned-char ;;
+*s390*) LOCAL_CFLAGS=-fsigned-char ;;
 esac
 
 case "$host_os" in
@@ -2555,29 +4974,33 @@ esac
 # ${srcdir}/support/shobj-conf
 #
 if test -f ${srcdir}/support/shobj-conf; then
-        echo $ac_n "checking configuration for building shared libraries""... $ac_c" 1>&6
-echo "configure:2559: checking configuration for building shared libraries" >&5
+        echo "$as_me:4983: checking configuration for building shared libraries" >&5
+echo $ECHO_N "checking configuration for building shared libraries... $ECHO_C" >&6
         eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
-        
-        
-        
-        
-       
-        
-        
-       
-       
-       
-       
-       
-        echo "$ac_t""$SHLIB_STATUS" 1>&6
+
+        echo "$as_me:4987: result: $SHLIB_STATUS" >&5
+echo "${ECHO_T}$SHLIB_STATUS" >&6
+
+       # SHLIB_STATUS is either `supported' or `unsupported'.  If it's
+       # `unsupported', turn off any default shared library building
+       if test "$SHLIB_STATUS" = 'unsupported'; then
+               opt_shared_libs=no
+       fi
 
        # shared library versioning
        # quoted for m4 so I can use character classes
        SHLIB_MAJOR=`expr "$LIBVERSION" : '\([0-9]\)\..*'`
        SHLIB_MINOR=`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'`
-       
-       
+
+fi
+
+if test "$opt_static_libs" = "yes"; then
+       STATIC_TARGET=static
+       STATIC_INSTALL_TARGET=install-static
+fi
+if test "$opt_shared_libs" = "yes"; then
+       SHARED_TARGET=shared
+       SHARED_INSTALL_TARGET=install-shared
 fi
 
 case "$host_os" in
@@ -2585,411 +5008,884 @@ msdosdjgpp*)  BUILD_DIR=`pwd.exe` ;;  # to prevent //d/path/file
 *)             BUILD_DIR=`pwd` ;;
 esac
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
+ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile shlib/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.  It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
+# 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.
 #
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already.  You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
 #
-EOF
+# `ac_cv_env_foo' variables (set or unset) will be overriden 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 \
-      -e "s/'/'\\\\''/g" \
-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-    ;;
-  *)
-    # `set' quotes correctly as required by POSIX, so do not add quotes.
-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-    ;;
-  esac >> confcache
-if cmp -s $cache_file confcache; then
-  :
-else
+{
+  (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 cmp -s $cache_file confcache; then :; else
   if test -w $cache_file; then
-    echo "updating cache $cache_file"
-    cat confcache > $cache_file
+    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
 
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
 test "x$prefix" = xNONE && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
+# 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[        ]*=[^:]*$/d'
+  ac_vpsub='/^[        ]*VPATH[        ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[   ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[     ]*$//;
+}'
 fi
 
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
 DEFS=-DHAVE_CONFIG_H
 
-# Without the "./", some shells look in PATH for config.status.
 : ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:5098: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
 # Generated automatically by configure.
 # Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
 # Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
+# configure, is in config.log if it exists.
 
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
+debug=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+ac_cs_invocation="\$0 \$@"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
+
+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
+
+as_executable_p="test -f"
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS="  $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
+exec 6>&1
+
+_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 <<\EOF
+
+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
+  -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>."
+EOF
+
+cat >>$CONFIG_STATUS <<EOF
+ac_cs_version="\\
+readline config.status 4.3
+configured by $0, generated by GNU Autoconf 2.52,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+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"
+EOF
+
+cat >>$CONFIG_STATUS <<\EOF
+# 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 "\$ac_option" in
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    shift
+    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
+    shift
+    ;;
+  -*);;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_need_defaults=false;;
+  esac
+
+  case $1 in
+  # Handling of the options.
+EOF
+cat >>$CONFIG_STATUS <<EOF
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
-    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.13"
-    exit 0 ;;
-  -help | --help | --hel | --he | --h)
-    echo "\$ac_cs_usage"; exit 0 ;;
-  *) echo "\$ac_cs_usage"; exit 1 ;;
+    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
+    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
+EOF
+cat >>$CONFIG_STATUS <<\EOF
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:5274: 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 )
+    shift
+    CONFIG_FILES="$CONFIG_FILES $1"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    ac_need_defaults=false;;
+
+  # This is an error.
+  -*) { { echo "$as_me:5293: 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_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
+exec 5>>config.log
+cat >&5 << _ACEOF
+
+## ----------------------- ##
+## Running config.status.  ##
+## ----------------------- ##
+
+This file was extended by $as_me (readline 4.3) 2.52, executed with
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  > $ac_cs_invocation
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
 
-trap 'rm -fr `echo "Makefile doc/Makefile examples/Makefile shlib/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+_ACEOF
 EOF
-cat >> $CONFIG_STATUS <<EOF
 
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@CC@%$CC%g
-s%@CPP@%$CPP%g
-s%@CROSS_COMPILING_FLAG@%$CROSS_COMPILING_FLAG%g
-s%@CC_FOR_BUILD@%$CC_FOR_BUILD%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@AR@%$AR%g
-s%@RANLIB@%$RANLIB%g
-s%@MAKE_SHELL@%$MAKE_SHELL%g
-s%@SHOBJ_CC@%$SHOBJ_CC%g
-s%@SHOBJ_CFLAGS@%$SHOBJ_CFLAGS%g
-s%@SHOBJ_LD@%$SHOBJ_LD%g
-s%@SHOBJ_LDFLAGS@%$SHOBJ_LDFLAGS%g
-s%@SHOBJ_XLDFLAGS@%$SHOBJ_XLDFLAGS%g
-s%@SHOBJ_LIBS@%$SHOBJ_LIBS%g
-s%@SHOBJ_STATUS@%$SHOBJ_STATUS%g
-s%@SHLIB_STATUS@%$SHLIB_STATUS%g
-s%@SHLIB_XLDFLAGS@%$SHLIB_XLDFLAGS%g
-s%@SHLIB_LIBSUFF@%$SHLIB_LIBSUFF%g
-s%@SHLIB_LIBVERSION@%$SHLIB_LIBVERSION%g
-s%@SHLIB_LIBS@%$SHLIB_LIBS%g
-s%@SHLIB_MAJOR@%$SHLIB_MAJOR%g
-s%@SHLIB_MINOR@%$SHLIB_MINOR%g
-s%@BUILD_DIR@%$BUILD_DIR%g
-s%@LOCAL_CFLAGS@%$LOCAL_CFLAGS%g
-s%@LOCAL_LDFLAGS@%$LOCAL_LDFLAGS%g
-s%@LOCAL_DEFS@%$LOCAL_DEFS%g
-s%@ARFLAGS@%$ARFLAGS%g
-s%@LIBVERSION@%$LIBVERSION%g
-s%@TERMCAP_LIB@%$TERMCAP_LIB%g
+cat >>$CONFIG_STATUS <<\EOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+  "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
+  "shlib/Makefile" ) CONFIG_FILES="$CONFIG_FILES shlib/Makefile" ;;
+  "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:5334: 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
+
+# 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.
+: ${TMPDIR=/tmp}
+{
+  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=$TMPDIR/cs$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   { (exit 1); exit 1; }
+}
 
-CEOF
 EOF
 
-cat >> $CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<EOF
 
-# 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_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # 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" conftest.subs > conftest.s$ac_file
-  else
-    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-  fi
-  if test ! -s conftest.s$ac_file; then
-    ac_more_lines=false
-    rm -f conftest.s$ac_file
-  else
-    if test -z "$ac_sed_cmds"; then
-      ac_sed_cmds="sed -f conftest.s$ac_file"
+#
+# 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,@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,@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,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@DEFS@,$DEFS,;t t
+s,@LIBS@,$LIBS,;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,@SET_MAKE@,$SET_MAKE,;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,@CROSS_COMPILING_FLAG@,$CROSS_COMPILING_FLAG,;t t
+s,@CC_FOR_BUILD@,$CC_FOR_BUILD,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@AR@,$AR,;t t
+s,@RANLIB@,$RANLIB,;t t
+s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s,@MAKE_SHELL@,$MAKE_SHELL,;t t
+s,@SHOBJ_CC@,$SHOBJ_CC,;t t
+s,@SHOBJ_CFLAGS@,$SHOBJ_CFLAGS,;t t
+s,@SHOBJ_LD@,$SHOBJ_LD,;t t
+s,@SHOBJ_LDFLAGS@,$SHOBJ_LDFLAGS,;t t
+s,@SHOBJ_XLDFLAGS@,$SHOBJ_XLDFLAGS,;t t
+s,@SHOBJ_LIBS@,$SHOBJ_LIBS,;t t
+s,@SHOBJ_STATUS@,$SHOBJ_STATUS,;t t
+s,@SHLIB_STATUS@,$SHLIB_STATUS,;t t
+s,@SHLIB_XLDFLAGS@,$SHLIB_XLDFLAGS,;t t
+s,@SHLIB_LIBSUFF@,$SHLIB_LIBSUFF,;t t
+s,@SHLIB_LIBVERSION@,$SHLIB_LIBVERSION,;t t
+s,@SHLIB_LIBS@,$SHLIB_LIBS,;t t
+s,@SHLIB_MAJOR@,$SHLIB_MAJOR,;t t
+s,@SHLIB_MINOR@,$SHLIB_MINOR,;t t
+s,@STATIC_TARGET@,$STATIC_TARGET,;t t
+s,@SHARED_TARGET@,$SHARED_TARGET,;t t
+s,@STATIC_INSTALL_TARGET@,$STATIC_INSTALL_TARGET,;t t
+s,@SHARED_INSTALL_TARGET@,$SHARED_INSTALL_TARGET,;t t
+s,@BUILD_DIR@,$BUILD_DIR,;t t
+s,@LOCAL_CFLAGS@,$LOCAL_CFLAGS,;t t
+s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t
+s,@LOCAL_DEFS@,$LOCAL_DEFS,;t t
+s,@ARFLAGS@,$ARFLAGS,;t t
+s,@LIBVERSION@,$LIBVERSION,;t t
+s,@TERMCAP_LIB@,$TERMCAP_LIB,;t t
+CEOF
+
+EOF
+
+  cat >>$CONFIG_STATUS <<\EOF
+  # 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
-      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+      # 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
-    ac_file=`expr $ac_file + 1`
-    ac_beg=$ac_end
-    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
   fi
-done
-if test -z "$ac_sed_cmds"; then
-  ac_sed_cmds=cat
-fi
-EOF
+fi # test -n "$CONFIG_FILES"
 
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile doc/Makefile examples/Makefile shlib/Makefile"}
 EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+cat >>$CONFIG_STATUS <<\EOF
+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
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.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
 
-  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
-  # Remove last slash and all that follows it.  Not all systems have dirname.
-  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`$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 test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-    # The file is in a subdirectory.
-    test ! -d "$ac_dir" && mkdir "$ac_dir"
-    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" || mkdir "$as_incr_dir"
+    ;;
+  esac
+done; }
+
+    ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`"
     # A "../" for each directory in $ac_dir_suffix.
-    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+    ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
   else
     ac_dir_suffix= ac_dots=
   fi
 
-  case "$ac_given_srcdir" in
-  .)  srcdir=.
-      if test -z "$ac_dots"; then top_srcdir=.
-      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  case $srcdir in
+  .)  ac_srcdir=.
+      if test -z "$ac_dots"; then
+         ac_top_srcdir=.
+      else
+         ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'`
+      fi ;;
+  [\\/]* | ?:[\\/]* )
+      ac_srcdir=$srcdir$ac_dir_suffix;
+      ac_top_srcdir=$srcdir ;;
   *) # Relative path.
-    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+    ac_srcdir=$ac_dots$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_dots$srcdir ;;
   esac
 
-  case "$ac_given_INSTALL" in
-  [/$]*) INSTALL="$ac_given_INSTALL" ;;
-  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_dots$INSTALL ;;
   esac
 
-  echo creating "$ac_file"
-  rm -f "$ac_file"
-  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
-  case "$ac_file" in
-  *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
-  *) ac_comsub= ;;
-  esac
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:5581: 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 automatically by config.status.  */
+  configure_input="Generated automatically 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:5599: 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:5612: 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; }
+EOF
+cat >>$CONFIG_STATUS <<EOF
+  sed "$ac_vpsub
+$extrasub
+EOF
+cat >>$CONFIG_STATUS <<\EOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;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
+EOF
+cat >>$CONFIG_STATUS <<\EOF
 
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
+#
+# 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='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_uB='\([     ]\)%\1#\2define\3'
+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='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
+ac_uD=',;t'
 
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
-  CONFIG_HEADERS="config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+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
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.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
 
-  echo creating $ac_file
-
-  rm -f conftest.frag conftest.in conftest.out
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  cat $ac_file_inputs > conftest.in
+  test x"$ac_file" != x- && { echo "$as_me:5673: 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:5684: 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:5697: 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
 
 EOF
 
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h.  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.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
+# 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 <<\EOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[   ]*#[    ]*define[       ][      ]*\(\([^        (][^    (]*\)([^)]*)\)[         ]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp
+t end
+s,^[   ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
 EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
+# 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.vals <<\EOF
-s%^[   ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+cat >>conftest.undefs <<\EOF
+s,^[   ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
 EOF
 
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
+# 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 egrep "^[   ]*#[    ]*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 # egrep' >>$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 :
+while grep . conftest.undefs >/dev/null
 do
-  ac_lines=`grep -c . conftest.vals`
-  # grep -c gives empty output for an empty file on some AIX systems.
-  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
-  # Write a limited-size here document to conftest.frag.
-  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  # 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 conftest.frag conftest.in > conftest.out
-  rm -f conftest.in
-  mv conftest.out conftest.in
-' >> $CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
-  rm -f conftest.vals
-  mv conftest.tail conftest.vals
+  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.vals
-
-cat >> $CONFIG_STATUS <<\EOF
-  rm -f conftest.frag conftest.h
-  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
-  cat conftest.in >> conftest.h
-  rm -f conftest.in
-  if cmp -s $ac_file conftest.h 2>/dev/null; then
-    echo "$ac_file is unchanged"
-    rm -f conftest.h
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\EOF
+  # 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 automatically by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated automatically by configure.  */" >$tmp/config.h
   else
-    # Remove last slash and all that follows it.  Not all systems have dirname.
-      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+    echo "/* $ac_file.  Generated automatically by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+      { echo "$as_me:5814: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`$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 test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-      # The file is in a subdirectory.
-      test ! -d "$ac_dir" && mkdir "$ac_dir"
+        { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" || mkdir "$as_incr_dir"
+    ;;
+  esac
+done; }
+
+      fi
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
     fi
-    rm -f $ac_file
-    mv conftest.h $ac_file
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
   fi
-fi; done
-
+done
 EOF
-cat >> $CONFIG_STATUS <<EOF
+cat >>$CONFIG_STATUS <<\EOF
 
-EOF
-cat >> $CONFIG_STATUS <<\EOF
+#
+# 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,[^:]*:,,'`
 
+  case $ac_dest in
+    default )
 # Makefile uses this timestamp file to record whether config.h is up to date.
 echo > stamp-h
+ ;;
+  esac
+done
+EOF
 
-exit 0
+cat >>$CONFIG_STATUS <<\EOF
+
+{ (exit 0); exit 0; }
 EOF
 chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+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=:
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS || 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
 
index 1ed154e9cf6d98694a53a18ecac4c6b319820515..406e172c3d0d9daa941d31372f7930d3276eb378 100644 (file)
@@ -4,33 +4,46 @@ dnl
 dnl report bugs to chet@po.cwru.edu
 dnl
 dnl Process this file with autoconf to produce a configure script.
-AC_REVISION([for Readline 4.1, version 2.22, from autoconf version] AC_ACVERSION)
-LIBVERSION=4.1
+AC_REVISION([for Readline 4.3, version 2.45, from autoconf version] AC_ACVERSION)
 
-AC_INIT(readline.h)
-AC_CONFIG_HEADER(config.h)
+AC_INIT(readline, 4.3, bug-readline@gnu.org)
 
 dnl make sure we are using a recent autoconf version
-AC_PREREQ(2.10)
+AC_PREREQ(2.50)
 
+AC_CONFIG_SRCDIR(readline.h)
 dnl AC_CONFIG_AUX_DIR(./support)
+AC_CONFIG_HEADERS(config.h)
+
+dnl update the value of RL_READLINE_VERSION in readline.h when this changes
+LIBVERSION=4.3
 
 AC_CANONICAL_HOST
 
 dnl configure defaults
 opt_curses=no
-opt_shared=no
 
 dnl arguments to configure
-AC_ARG_WITH(curses, --with-curses               use the curses library instead of the termcap library,opt_curses=$withval)
+AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
 
 if test "$opt_curses" = "yes"; then
        prefer_curses=yes
 fi
 
+dnl option parsing for optional features
+opt_static_libs=yes
+opt_shared_libs=no
+
+AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval)
+
+echo ""
+echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
+echo ""
+
 # We want these before the checks, so the checks can modify their values.
 test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
 
+AC_PROG_MAKE_SET
 AC_PROG_CC
 dnl AC_AIX
 AC_MINIX
@@ -78,7 +91,7 @@ test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
 
 AC_PROG_GCC_TRADITIONAL
 AC_PROG_INSTALL
-AC_CHECK_PROG(AR, ar, ar)
+AC_CHECK_PROG(AR, ar, ar)
 dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
 dnl This allows people to set it when running configure or make
 test -n "$ARFLAGS" || ARFLAGS="cr"
@@ -87,33 +100,42 @@ AC_PROG_RANLIB
 MAKE_SHELL=/bin/sh
 AC_SUBST(MAKE_SHELL)
 
-AC_RETSIGTYPE
+AC_C_CONST
+AC_C_PROTOTYPES
+AC_C_CHAR_UNSIGNED
+
+AC_TYPE_SIGNAL
+
+AC_TYPE_SIZE_T
+AC_CHECK_TYPE(ssize_t, int)
 
 AC_HEADER_STAT
 AC_HEADER_DIRENT
 
 AC_CHECK_FUNCS(lstat memmove putenv select setenv setlocale \
-               strcasecmp tcgetattr)
+               strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit)
 
 AC_FUNC_STRCOLL
 
-AC_CHECK_HEADERS(unistd.h stdlib.h varargs.h stdarg.h string.h \
-               sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
-               termcap.h termios.h termio.h sys/file.h locale.h)
+AC_CHECK_HEADERS(unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
+               limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
+               termcap.h termios.h termio.h sys/file.h locale.h memory.h )
 
-BASH_SIGNAL_CHECK
-BASH_REINSTALL_SIGHANDLERS
+BASH_SYS_SIGNAL_VINTAGE
+BASH_SYS_REINSTALL_SIGHANDLERS
 
 BASH_FUNC_POSIX_SETJMP
 BASH_FUNC_LSTAT
-BASH_CHECK_GETPW_FUNCS
 BASH_FUNC_STRCOLL
 
+BASH_CHECK_GETPW_FUNCS
+
+AC_HEADER_TIOCGWINSZ
+
 BASH_TYPE_SIGHANDLER
-BASH_HAVE_TIOCGWINSZ
 BASH_HAVE_TIOCSTAT
 BASH_HAVE_FIONREAD
-BASH_MISC_SPEED_T
+BASH_CHECK_SPEED_T
 BASH_STRUCT_WINSIZE
 BASH_STRUCT_DIRENT_D_INO
 BASH_STRUCT_DIRENT_D_FILENO
@@ -124,12 +146,18 @@ aix*)   prefer_curses=yes ;;
 esac
 BASH_CHECK_LIB_TERMCAP
 if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
-       TERMCAP_LIB=-ltermcap   #default
+       if test "$prefer_curses" = yes; then
+               TERMCAP_LIB=-lcurses
+       else
+               TERMCAP_LIB=-ltermcap   #default
+       fi
 fi
 
+BASH_CHECK_MULTIBYTE
+
 case "$host_cpu" in
 *cray*)        LOCAL_CFLAGS=-DCRAY ;;
-*s390*)        LOCAL_CFLAGS=-fsigned-char ;;
+*s390*) LOCAL_CFLAGS=-fsigned-char ;;
 esac
 
 case "$host_os" in
@@ -158,6 +186,12 @@ if test -f ${srcdir}/support/shobj-conf; then
        AC_SUBST(SHLIB_LIBS)
         AC_MSG_RESULT($SHLIB_STATUS)
 
+       # SHLIB_STATUS is either `supported' or `unsupported'.  If it's
+       # `unsupported', turn off any default shared library building
+       if test "$SHLIB_STATUS" = 'unsupported'; then
+               opt_shared_libs=no
+       fi
+
        # shared library versioning
        # quoted for m4 so I can use character classes
        SHLIB_MAJOR=[`expr "$LIBVERSION" : '\([0-9]\)\..*'`]
@@ -166,6 +200,20 @@ if test -f ${srcdir}/support/shobj-conf; then
        AC_SUBST(SHLIB_MINOR)
 fi
 
+if test "$opt_static_libs" = "yes"; then
+       STATIC_TARGET=static
+       STATIC_INSTALL_TARGET=install-static
+fi
+if test "$opt_shared_libs" = "yes"; then
+       SHARED_TARGET=shared
+       SHARED_INSTALL_TARGET=install-shared
+fi
+
+AC_SUBST(STATIC_TARGET)
+AC_SUBST(SHARED_TARGET)
+AC_SUBST(STATIC_INSTALL_TARGET)
+AC_SUBST(SHARED_INSTALL_TARGET)
+
 case "$host_os" in
 msdosdjgpp*)   BUILD_DIR=`pwd.exe` ;;  # to prevent //d/path/file
 *)             BUILD_DIR=`pwd` ;;
index 2fb07596a2c82621455387d53bc19f857c0b66bc..b0bb49a83760377e208e430e49b42d911b02fa64 100644 (file)
@@ -32,6 +32,7 @@ bash_cv_sys_named_pipes=${bash_cv_sys_named_pipes='missing'}
 bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp='present'}
 bash_cv_mail_dir=${bash_cv_mail_dir='unknown'}
 bash_cv_func_strcoll_broken=${bash_cv_func_strcoll_broken='no'}
+bash_cv_have_mbstate_t=${bash_cv_have_mbstate_t='yes'}
 
 bash_cv_type_int32_t=${bash_cv_type_int32_t='int'}
 bash_cv_type_u_int32_t=${bash_cv_type_u_int32_t='int'}
index 9fff8cc2acb61b09dd59365a07a033c9adda9508..dec0de3e0d78dc874ff01ad58b9293d64047c666 100644 (file)
@@ -47,6 +47,7 @@
 
 /* System-specific feature definitions and include files. */
 #include "rldefs.h"
+#include "rlmbutil.h"
 
 /* Termcap library stuff. */
 #include "tcap.h"
@@ -63,14 +64,21 @@ extern char *strchr (), *strrchr ();
 #endif /* !strchr && !__STDC__ */
 
 #if defined (HACK_TERMCAP_MOTION)
-extern char *term_forward_char;
+extern char *_rl_term_forward_char;
 #endif
 
-static void update_line __P((char *, char *, int, int, int, int));
-static void space_to_eol __P((int));
-static void delete_chars __P((int));
-static void insert_some_chars __P((char *, int));
-static void cr __P((void));
+static void update_line PARAMS((char *, char *, int, int, int, int));
+static void space_to_eol PARAMS((int));
+static void delete_chars PARAMS((int));
+static void insert_some_chars PARAMS((char *, int, int));
+static void cr PARAMS((void));
+
+#if defined (HANDLE_MULTIBYTE)
+static int _rl_col_width PARAMS((char *, int, int));
+static int *_rl_wrapped_line;
+#else
+#  define _rl_col_width(l, s, e)       (((e) <= (s)) ? 0 : (e) - (s))
+#endif
 
 static int *inv_lbreaks, *vis_lbreaks;
 static int inv_lbsize, vis_lbsize;
@@ -107,7 +115,7 @@ static int inv_lbsize, vis_lbsize;
    RL_DISPLAY_FIXED variable.  This is good for efficiency. */
 
 /* Application-specific redisplay function. */
-VFunction *rl_redisplay_function = rl_redisplay;
+rl_voidfunc_t *rl_redisplay_function = rl_redisplay;
 
 /* Global variables declared here. */
 /* What YOU turn on when you have handled all redisplay yourself. */
@@ -146,27 +154,40 @@ static int forced_display;
 /* Default and initial buffer size.  Can grow. */
 static int line_size = 1024;
 
+/* Variables to keep track of the expanded prompt string, which may
+   include invisible characters. */
+
 static char *local_prompt, *local_prompt_prefix;
-static int visible_length, prefix_length;
+static int prompt_visible_length, prompt_prefix_length;
 
 /* The number of invisible characters in the line currently being
    displayed on the screen. */
 static int visible_wrap_offset;
 
-/* static so it can be shared between rl_redisplay and update_line */
+/* The number of invisible characters in the prompt string.  Static so it
+   can be shared between rl_redisplay and update_line */
 static int wrap_offset;
 
-/* The index of the last invisible_character in the prompt string. */
-static int last_invisible;
+/* The index of the last invisible character in the prompt string. */
+static int prompt_last_invisible;
 
 /* The length (buffer offset) of the first line of the last (possibly
    multi-line) buffer displayed on the screen. */
 static int visible_first_line_len;
 
+/* Number of invisible characters on the first physical line of the prompt.
+   Only valid when the number of physical characters in the prompt exceeds
+   (or is equal to) _rl_screenwidth. */
+static int prompt_invis_chars_first_line;
+
+static int prompt_last_screen_line;
+
 /* Expand the prompt string S and return the number of visible
    characters in *LP, if LP is not null.  This is currently more-or-less
    a placeholder for expansion.  LIP, if non-null is a place to store the
-   index of the last invisible character in the returned string. */
+   index of the last invisible character in the returned string. NIFLP,
+   if non-zero, is a place to store the number of invisible characters in
+   the first prompt line. */
 
 /* Current implementation:
        \001 (^A) start non-visible characters
@@ -176,12 +197,12 @@ static int visible_first_line_len;
    \002 are assumed to be `visible'. */        
 
 static char *
-expand_prompt (pmt, lp, lip)
+expand_prompt (pmt, lp, lip, niflp)
      char *pmt;
-     int *lp, *lip;
+     int *lp, *lip, *niflp;
 {
   char *r, *ret, *p;
-  int l, rl, last, ignoring;
+  int l, rl, last, ignoring, ninvis, invfl;
 
   /* Short-circuit if we can. */
   if (strchr (pmt, RL_PROMPT_START_IGNORE) == 0)
@@ -193,9 +214,11 @@ expand_prompt (pmt, lp, lip)
     }
 
   l = strlen (pmt);
-  r = ret = xmalloc (l + 1);
-  
-  for (rl = ignoring = last = 0, p = pmt; p && *p; p++)
+  r = ret = (char *)xmalloc (l + 1);
+
+  invfl = 0;   /* invisible chars in first line of prompt */
+
+  for (rl = ignoring = last = ninvis = 0, p = pmt; p && *p; p++)
     {
       /* This code strips the invisible character string markers
         RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE */
@@ -215,14 +238,23 @@ expand_prompt (pmt, lp, lip)
          *r++ = *p;
          if (!ignoring)
            rl++;
+         else
+           ninvis++;
+         if (rl == _rl_screenwidth)
+           invfl = ninvis;
        }
     }
 
+  if (rl < _rl_screenwidth)
+    invfl = ninvis;
+
   *r = '\0';
   if (lp)
     *lp = rl;
   if (lip)
     *lip = last;
+  if (niflp)
+    *niflp = invfl;
   return ret;
 }
 
@@ -234,7 +266,7 @@ _rl_strip_prompt (pmt)
 {
   char *ret;
 
-  ret = expand_prompt (pmt, (int *)NULL, (int *)NULL);
+  ret = expand_prompt (pmt, (int *)NULL, (int *)NULL, (int *)NULL);
   return ret;
 }
 
@@ -246,8 +278,8 @@ _rl_strip_prompt (pmt)
  *               (portion after the final newline)
  * local_prompt_prefix = portion before last newline of rl_display_prompt,
  *                      expanded via expand_prompt
- * visible_length = number of visible characters in local_prompt
- * prefix_length = number of visible characters in local_prompt_prefix
+ * prompt_visible_length = number of visible characters in local_prompt
+ * prompt_prefix_length = number of visible characters in local_prompt_prefix
  *
  * This function is called once per call to readline().  It may also be
  * called arbitrarily to expand the primary prompt.
@@ -263,12 +295,11 @@ rl_expand_prompt (prompt)
   int c;
 
   /* Clear out any saved values. */
-  if (local_prompt)
-    free (local_prompt);
-  if (local_prompt_prefix)
-    free (local_prompt_prefix);
+  FREE (local_prompt);
+  FREE (local_prompt_prefix);
+
   local_prompt = local_prompt_prefix = (char *)0;
-  last_invisible = visible_length = 0;
+  prompt_last_invisible = prompt_visible_length = 0;
 
   if (prompt == 0 || *prompt == 0)
     return (0);
@@ -276,22 +307,28 @@ rl_expand_prompt (prompt)
   p = strrchr (prompt, '\n');
   if (!p)
     {
-      /* The prompt is only one line. */
-      local_prompt = expand_prompt (prompt, &visible_length, &last_invisible);
+      /* The prompt is only one logical line, though it might wrap. */
+      local_prompt = expand_prompt (prompt, &prompt_visible_length,
+                                           &prompt_last_invisible,
+                                           &prompt_invis_chars_first_line);
       local_prompt_prefix = (char *)0;
-      return (visible_length);
+      return (prompt_visible_length);
     }
   else
     {
       /* The prompt spans multiple lines. */
       t = ++p;
-      local_prompt = expand_prompt (p, &visible_length, &last_invisible);
+      local_prompt = expand_prompt (p, &prompt_visible_length,
+                                      &prompt_last_invisible,
+                                      &prompt_invis_chars_first_line);
       c = *t; *t = '\0';
       /* The portion of the prompt string up to and including the
         final newline is now null-terminated. */
-      local_prompt_prefix = expand_prompt (prompt, &prefix_length, (int *)NULL);
+      local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+                                                  (int *)NULL,
+                                                  &prompt_invis_chars_first_line);
       *t = c;
-      return (prefix_length);
+      return (prompt_prefix_length);
     }
 }
 
@@ -310,16 +347,16 @@ init_line_structures (minsize)
     {
       if (line_size < minsize)
        line_size = minsize;
-      visible_line = xmalloc (line_size);
-      invisible_line = xmalloc (line_size);
+      visible_line = (char *)xmalloc (line_size);
+      invisible_line = (char *)xmalloc (line_size);
     }
   else if (line_size < minsize)        /* ensure it can hold MINSIZE chars */
     {
       line_size *= 2;
       if (line_size < minsize)
        line_size = minsize;
-      visible_line = xrealloc (visible_line, line_size);
-      invisible_line = xrealloc (invisible_line, line_size);
+      visible_line = (char *)xrealloc (visible_line, line_size);
+      invisible_line = (char *)xrealloc (invisible_line, line_size);
     }
 
   for (n = minsize; n < line_size; n++)
@@ -334,6 +371,9 @@ init_line_structures (minsize)
       inv_lbsize = vis_lbsize = 256;
       inv_lbreaks = (int *)xmalloc (inv_lbsize * sizeof (int));
       vis_lbreaks = (int *)xmalloc (vis_lbsize * sizeof (int));
+#if defined (HANDLE_MULTIBYTE)
+      _rl_wrapped_line = (int *)xmalloc (vis_lbsize * sizeof (int));
+#endif
       inv_lbreaks[0] = vis_lbreaks[0] = 0;
     }
 }
@@ -347,6 +387,13 @@ rl_redisplay ()
   int c_pos, inv_botlin, lb_botlin, lb_linenum;
   int newlines, lpos, temp;
   char *prompt_this_line;
+#if defined (HANDLE_MULTIBYTE)
+  wchar_t wc;
+  size_t wc_bytes;
+  int wc_width;
+  mbstate_t ps;
+  int _rl_wrapped_multicolumn = 0;
+#endif
 
   if (!readline_echoing_p)
     return;
@@ -396,14 +443,14 @@ rl_redisplay ()
          if (temp >= line_size)
            {
              line_size = (temp + 1024) - (temp % 1024);
-             visible_line = xrealloc (visible_line, line_size);
-             line = invisible_line = xrealloc (invisible_line, line_size);
+             visible_line = (char *)xrealloc (visible_line, line_size);
+             line = invisible_line = (char *)xrealloc (invisible_line, line_size);
            }
          strncpy (line + out, local_prompt, local_len);
          out += local_len;
        }
       line[out] = '\0';
-      wrap_offset = local_len - visible_length;
+      wrap_offset = local_len - prompt_visible_length;
     }
   else
     {
@@ -430,13 +477,13 @@ rl_redisplay ()
       if (temp >= line_size)
        {
          line_size = (temp + 1024) - (temp % 1024);
-         visible_line = xrealloc (visible_line, line_size);
-         line = invisible_line = xrealloc (invisible_line, line_size);
+         visible_line = (char *)xrealloc (visible_line, line_size);
+         line = invisible_line = (char *)xrealloc (invisible_line, line_size);
        }
       strncpy (line + out,  prompt_this_line, pmtlen);
       out += pmtlen;
       line[out] = '\0';
-      wrap_offset = 0;
+      wrap_offset = prompt_invis_chars_first_line = 0;
     }
 
 #define CHECK_INV_LBREAKS() \
@@ -447,51 +494,126 @@ rl_redisplay ()
            inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
          } \
       } while (0)
-         
+
+#if defined (HANDLE_MULTIBYTE)   
 #define CHECK_LPOS() \
       do { \
        lpos++; \
-       if (lpos >= screenwidth) \
+       if (lpos >= _rl_screenwidth) \
          { \
            if (newlines >= (inv_lbsize - 2)) \
              { \
                inv_lbsize *= 2; \
                inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
+               _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
              } \
            inv_lbreaks[++newlines] = out; \
+           _rl_wrapped_line[newlines] = _rl_wrapped_multicolumn; \
            lpos = 0; \
          } \
       } while (0)
+#else
+#define CHECK_LPOS() \
+      do { \
+       lpos++; \
+       if (lpos >= _rl_screenwidth) \
+         { \
+           if (newlines >= (inv_lbsize - 2)) \
+             { \
+               inv_lbsize *= 2; \
+               inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
+             } \
+           inv_lbreaks[++newlines] = out; \
+           lpos = 0; \
+         } \
+      } while (0)
+#endif
 
   /* inv_lbreaks[i] is where line i starts in the buffer. */
   inv_lbreaks[newlines = 0] = 0;
   lpos = out - wrap_offset;
+#if defined (HANDLE_MULTIBYTE)
+  memset (_rl_wrapped_line, 0, vis_lbsize);
+#endif
+
+  /* prompt_invis_chars_first_line is the number of invisible characters in
+     the first physical line of the prompt.
+     wrap_offset - prompt_invis_chars_first_line is the number of invis
+     chars on the second line. */
 
-  /* XXX - what if lpos is already >= screenwidth before we start drawing the
+  /* what if lpos is already >= _rl_screenwidth before we start drawing the
      contents of the command line? */
-  while (lpos >= screenwidth)
+  while (lpos >= _rl_screenwidth)
     {
-      /* XXX - possible fix from Darin Johnson <darin@acuson.com> for prompt
-        string with invisible characters that is longer than the screen
-        width.  XXX - this doesn't work right if invisible characters have
-        to be put on the second screen line -- it adds too much (the number
-        of invisible chars after the screenwidth). */
-      temp = ((newlines + 1) * screenwidth) + ((newlines == 0) ? wrap_offset : 0);
+      /* fix from Darin Johnson <darin@acuson.com> for prompt string with
+         invisible characters that is longer than the screen width.  The
+         prompt_invis_chars_first_line variable could be made into an array
+         saying how many invisible characters there are per line, but that's
+         probably too much work for the benefit gained.  How many people have
+         prompts that exceed two physical lines? */
+      temp = ((newlines + 1) * _rl_screenwidth) +
+#if 0
+             ((newlines == 0) ? prompt_invis_chars_first_line : 0) +
+#else
+             ((newlines == 0 && local_prompt_prefix == 0) ? prompt_invis_chars_first_line : 0) +
+#endif
+             ((newlines == 1) ? wrap_offset : 0);
 
       inv_lbreaks[++newlines] = temp;
-      lpos -= screenwidth;
+      lpos -= _rl_screenwidth;
     }
 
+  prompt_last_screen_line = newlines;
+
+  /* Draw the rest of the line (after the prompt) into invisible_line, keeping
+     track of where the cursor is (c_pos), the number of the line containing
+     the cursor (lb_linenum), the last line number (lb_botlin and inv_botlin).
+     It maintains an array of line breaks for display (inv_lbreaks).
+     This handles expanding tabs for display and displaying meta characters. */
   lb_linenum = 0;
+#if defined (HANDLE_MULTIBYTE)
+  in = 0;
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    {
+      memset (&ps, 0, sizeof (mbstate_t));
+      wc_bytes = mbrtowc (&wc, rl_line_buffer, rl_end, &ps);
+    }
+  else
+    wc_bytes = 1;
+  while (in < rl_end)
+#else
   for (in = 0; in < rl_end; in++)
+#endif
     {
       c = (unsigned char)rl_line_buffer[in];
 
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         if (wc_bytes == (size_t)-1 || wc_bytes == (size_t)-2)
+           {
+             /* Byte sequence is invalid or shortened.  Assume that the
+                first byte represents a character. */
+             wc_bytes = 1;
+             /* Assume that a character occupies a single column. */
+             wc_width = 1;
+             memset (&ps, 0, sizeof (mbstate_t));
+           }
+         else if (wc_bytes == (size_t)0)
+           break;                      /* Found '\0' */
+         else
+           {
+             temp = wcwidth (wc);
+             wc_width = (temp < 0) ? 1 : temp;
+           }
+       }
+#endif
+
       if (out + 8 >= line_size)                /* XXX - 8 for \t */
        {
          line_size *= 2;
-         visible_line = xrealloc (visible_line, line_size);
-         invisible_line = xrealloc (invisible_line, line_size);
+         visible_line = (char *)xrealloc (visible_line, line_size);
+         invisible_line = (char *)xrealloc (invisible_line, line_size);
          line = invisible_line;
        }
 
@@ -501,15 +623,19 @@ rl_redisplay ()
          lb_linenum = newlines;
        }
 
+#if defined (HANDLE_MULTIBYTE)
+      if (META_CHAR (c) && _rl_output_meta_chars == 0) /* XXX - clean up */
+#else
       if (META_CHAR (c))
+#endif
        {
          if (_rl_output_meta_chars == 0)
            {
              sprintf (line + out, "\\%o", c);
 
-             if (lpos + 4 >= screenwidth)
+             if (lpos + 4 >= _rl_screenwidth)
                {
-                 temp = screenwidth - lpos;
+                 temp = _rl_screenwidth - lpos;
                  CHECK_INV_LBREAKS ();
                  inv_lbreaks[++newlines] = out + temp;
                  lpos = 4 - temp;
@@ -528,7 +654,7 @@ rl_redisplay ()
 #if defined (DISPLAY_TABS)
       else if (c == '\t')
        {
-         register int temp, newout;
+         register int newout;
 
 #if 0
          newout = (out | (int)7) + 1;
@@ -536,10 +662,10 @@ rl_redisplay ()
          newout = out + 8 - lpos % 8;
 #endif
          temp = newout - out;
-         if (lpos + temp >= screenwidth)
+         if (lpos + temp >= _rl_screenwidth)
            {
              register int temp2;
-             temp2 = screenwidth - lpos;
+             temp2 = _rl_screenwidth - lpos;
              CHECK_INV_LBREAKS ();
              inv_lbreaks[++newlines] = out + temp2;
              lpos = temp - temp2;
@@ -554,7 +680,7 @@ rl_redisplay ()
            }
        }
 #endif
-      else if (c == '\n' && _rl_horizontal_scroll_mode == 0 && term_up && *term_up)
+      else if (c == '\n' && _rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
        {
          line[out++] = '\0';   /* XXX - sentinel */
          CHECK_INV_LBREAKS ();
@@ -570,9 +696,52 @@ rl_redisplay ()
        }
       else
        {
+#if defined (HANDLE_MULTIBYTE)
+         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+           {
+             register int i;
+
+             _rl_wrapped_multicolumn = 0;
+
+             if (_rl_screenwidth < lpos + wc_width)
+               for (i = lpos; i < _rl_screenwidth; i++)
+                 {
+                   /* The space will be removed in update_line() */
+                   line[out++] = ' ';
+                   _rl_wrapped_multicolumn++;
+                   CHECK_LPOS();
+                 }
+             if (in == rl_point)
+               {
+                 c_pos = out;
+                 lb_linenum = newlines;
+               }
+             for (i = in; i < in+wc_bytes; i++)
+               line[out++] = rl_line_buffer[i];
+             for (i = 0; i < wc_width; i++)
+               CHECK_LPOS();
+           }
+         else
+           {
+             line[out++] = c;
+             CHECK_LPOS();
+           }
+#else
          line[out++] = c;
          CHECK_LPOS();
+#endif
        }
+
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         in += wc_bytes;
+         wc_bytes = mbrtowc (&wc, rl_line_buffer + in, rl_end - in, &ps);
+       }
+      else
+        in++;
+#endif
+
     }
   line[out] = '\0';
   if (c_pos < 0)
@@ -586,7 +755,8 @@ rl_redisplay ()
   inv_lbreaks[newlines+1] = out;
   cursor_linenum = lb_linenum;
 
-  /* C_POS == position in buffer where cursor should be placed. */
+  /* C_POS == position in buffer where cursor should be placed.
+     CURSOR_LINENUM == line number where the cursor should be placed. */
 
   /* PWP: now is when things get a bit hairy.  The visible and invisible
      line buffers are really multiple lines, which would wrap every
@@ -597,7 +767,7 @@ rl_redisplay ()
      otherwise, let long lines display in a single terminal line, and
      horizontally scroll it. */
 
-  if (_rl_horizontal_scroll_mode == 0 && term_up && *term_up)
+  if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
     {
       int nleft, pos, changed_screen_line;
 
@@ -608,8 +778,13 @@ rl_redisplay ()
          /* If we have more than a screenful of material to display, then
             only display a screenful.  We should display the last screen,
             not the first.  */
-         if (out >= screenchars)
-           out = screenchars - 1;
+         if (out >= _rl_screenchars)
+           {
+             if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+               out = _rl_find_prev_mbchar (line, _rl_screenchars, MB_FIND_ANY);
+             else
+               out = _rl_screenchars - 1;
+           }
 
          /* The first line is at character position 0 in the buffer.  The
             second and subsequent lines start at inv_lbreaks[N], offset by
@@ -639,7 +814,7 @@ rl_redisplay ()
                  (wrap_offset > visible_wrap_offset) &&
                  (_rl_last_c_pos < visible_first_line_len))
                {
-                 nleft = screenwidth + wrap_offset - _rl_last_c_pos;
+                 nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos;
                  if (nleft)
                    _rl_clear_to_eol (nleft);
                }
@@ -660,7 +835,7 @@ rl_redisplay ()
                  _rl_move_vert (linenum);
                  _rl_move_cursor_relative (0, tt);
                  _rl_clear_to_eol
-                   ((linenum == _rl_vis_botlin) ? strlen (tt) : screenwidth);
+                   ((linenum == _rl_vis_botlin) ? strlen (tt) : _rl_screenwidth);
                }
            }
          _rl_vis_botlin = inv_botlin;
@@ -671,7 +846,7 @@ rl_redisplay ()
          if (changed_screen_line)
            {
              _rl_move_vert (cursor_linenum);
-             /* If we moved up to the line with the prompt using term_up,
+             /* If we moved up to the line with the prompt using _rl_term_up,
                 the physical cursor position on the screen stays the same,
                 but the buffer position needs to be adjusted to account
                 for invisible characters. */
@@ -684,18 +859,21 @@ rl_redisplay ()
             the characters from the current cursor position.  But we
             only need to reprint it if the cursor is before the last
             invisible character in the prompt string. */
-         nleft = visible_length + wrap_offset;
+         nleft = prompt_visible_length + wrap_offset;
          if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 &&
-             _rl_last_c_pos <= last_invisible && local_prompt)
+             _rl_last_c_pos <= prompt_last_invisible && local_prompt)
            {
 #if defined (__MSDOS__)
              putc ('\r', rl_outstream);
 #else
-             if (term_cr)
-               tputs (term_cr, 1, _rl_output_character_function);
+             if (_rl_term_cr)
+               tputs (_rl_term_cr, 1, _rl_output_character_function);
 #endif
              _rl_output_some_chars (local_prompt, nleft);
-             _rl_last_c_pos = nleft;
+             if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+               _rl_last_c_pos = _rl_col_width(local_prompt, 0, nleft);
+             else
+               _rl_last_c_pos = nleft;
            }
 
          /* Where on that line?  And where does that line start
@@ -711,10 +889,15 @@ rl_redisplay ()
          if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos)
            {
              _rl_backspace (_rl_last_c_pos - nleft);
-             _rl_last_c_pos = nleft;
+             if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+               _rl_last_c_pos = _rl_col_width (&visible_line[pos], 0, nleft);
+             else
+               _rl_last_c_pos = nleft;
            }
 
-         if (nleft != _rl_last_c_pos)
+         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+           _rl_move_cursor_relative (nleft, &invisible_line[pos]);
+         else if (nleft != _rl_last_c_pos)
            _rl_move_cursor_relative (nleft, &invisible_line[pos]);
        }
     }
@@ -731,11 +914,11 @@ rl_redisplay ()
 
       /* The number of characters that will be displayed before the cursor. */
       ndisp = c_pos - wrap_offset;
-      nleft  = visible_length + wrap_offset;
+      nleft  = prompt_visible_length + wrap_offset;
       /* Where the new cursor position will be on the screen.  This can be
         longer than SCREENWIDTH; if it is, lmargin will be adjusted. */
       phys_c_pos = c_pos - (last_lmargin ? last_lmargin : wrap_offset);
-      t = screenwidth / 3;
+      t = _rl_screenwidth / 3;
 
       /* If the number of characters had already exceeded the screenwidth,
         last_lmargin will be > 0. */
@@ -743,7 +926,7 @@ rl_redisplay ()
       /* If the number of characters to be displayed is more than the screen
         width, compute the starting offset so that the cursor is about
         two-thirds of the way across the screen. */
-      if (phys_c_pos > screenwidth - 2)
+      if (phys_c_pos > _rl_screenwidth - 2)
        {
          lmargin = c_pos - (2 * t);
          if (lmargin < 0)
@@ -753,7 +936,7 @@ rl_redisplay ()
          if (wrap_offset && lmargin > 0 && lmargin < nleft)
            lmargin = nleft;
        }
-      else if (ndisp < screenwidth - 2)                /* XXX - was -1 */
+      else if (ndisp < _rl_screenwidth - 2)            /* XXX - was -1 */
        lmargin = 0;
       else if (phys_c_pos < 1)
        {
@@ -775,7 +958,7 @@ rl_redisplay ()
         the whole line, indicate that with a special character at the
         right edge of the screen.  If LMARGIN is 0, we need to take the
         wrap offset into account. */
-      t = lmargin + M_OFFSET (lmargin, wrap_offset) + screenwidth;
+      t = lmargin + M_OFFSET (lmargin, wrap_offset) + _rl_screenwidth;
       if (t < out)
        line[t - 1] = '>';
 
@@ -785,8 +968,8 @@ rl_redisplay ()
          update_line (&visible_line[last_lmargin],
                       &invisible_line[lmargin],
                       0,
-                      screenwidth + visible_wrap_offset,
-                      screenwidth + (lmargin ? 0 : wrap_offset),
+                      _rl_screenwidth + visible_wrap_offset,
+                      _rl_screenwidth + (lmargin ? 0 : wrap_offset),
                       0);
 
          /* If the visible new line is shorter than the old, but the number
@@ -797,12 +980,12 @@ rl_redisplay ()
              (_rl_last_c_pos == out) &&
              t < visible_first_line_len)
            {
-             nleft = screenwidth - t;
+             nleft = _rl_screenwidth - t;
              _rl_clear_to_eol (nleft);
            }
          visible_first_line_len = out - lmargin - M_OFFSET (lmargin, wrap_offset);
-         if (visible_first_line_len > screenwidth)
-           visible_first_line_len = screenwidth;
+         if (visible_first_line_len > _rl_screenwidth)
+           visible_first_line_len = _rl_screenwidth;
 
          _rl_move_cursor_relative (c_pos - lmargin, &invisible_line[lmargin]);
          last_lmargin = lmargin;
@@ -812,11 +995,11 @@ rl_redisplay ()
 
   /* Swap visible and non-visible lines. */
   {
-    char *temp = visible_line;
+    char *vtemp = visible_line;
     int *itemp = vis_lbreaks, ntemp = vis_lbsize;
 
     visible_line = invisible_line;
-    invisible_line = temp;
+    invisible_line = vtemp;
 
     vis_lbreaks = inv_lbreaks;
     inv_lbreaks = itemp;
@@ -859,6 +1042,11 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
   register char *ofd, *ols, *oe, *nfd, *nls, *ne;
   int temp, lendiff, wsatend, od, nd;
   int current_invis_chars;
+  int col_lendiff, col_temp;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps_new, ps_old;
+  int new_offset, old_offset, tmp;
+#endif
 
   /* If we're at the right edge of a terminal that supports xn, we're
      ready to wrap around, so do so.  This fixes problems with knowing
@@ -866,20 +1054,98 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
      emulators.  In this calculation, TEMP is the physical screen
      position of the cursor. */
   temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
-  if (temp == screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
-      && _rl_last_v_pos == current_line - 1)
+  if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
+       && _rl_last_v_pos == current_line - 1)
     {
-      if (new[0])
-       putc (new[0], rl_outstream);
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         wchar_t wc;
+         mbstate_t ps;
+         int tempwidth, bytes;
+         size_t ret;
+
+         /* This fixes only double-column characters, but if the wrapped
+            character comsumes more than three columns, spaces will be
+            inserted in the string buffer. */
+         if (_rl_wrapped_line[current_line] > 0)
+           _rl_clear_to_eol (_rl_wrapped_line[current_line]);
+
+         memset (&ps, 0, sizeof (mbstate_t));
+         ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps);
+         if (ret == (size_t)-1 || ret == (size_t)-2)
+           {
+             tempwidth = 1;
+             ret = 1;
+           }
+         else if (ret == 0)
+           tempwidth = 0;
+         else
+           tempwidth = wcwidth (wc);
+
+         if (tempwidth > 0)
+           {
+             int count;
+             bytes = ret;
+             for (count = 0; count < bytes; count++)
+               putc (new[count], rl_outstream);
+             _rl_last_c_pos = tempwidth;
+             _rl_last_v_pos++;
+             memset (&ps, 0, sizeof (mbstate_t));
+             ret = mbrtowc (&wc, old, MB_CUR_MAX, &ps);
+             if (ret != 0 && bytes != 0)
+               {
+                 if (ret == (size_t)-1 || ret == (size_t)-2)
+                   memmove (old+bytes, old+1, strlen (old+1));
+                 else
+                   memmove (old+bytes, old+ret, strlen (old+ret));
+                 memcpy (old, new, bytes);
+               }
+           }
+         else
+           {
+             putc (' ', rl_outstream);
+             _rl_last_c_pos = 1;
+             _rl_last_v_pos++;
+             if (old[0] && new[0])
+               old[0] = new[0];
+           }
+       }
       else
-       putc (' ', rl_outstream);
-      _rl_last_c_pos = 1;              /* XXX */
-      _rl_last_v_pos++;
-      if (old[0] && new[0])
-       old[0] = new[0];
+#endif
+       {
+         if (new[0])
+           putc (new[0], rl_outstream);
+         else
+           putc (' ', rl_outstream);
+         _rl_last_c_pos = 1;           /* XXX */
+         _rl_last_v_pos++;
+         if (old[0] && new[0])
+           old[0] = new[0];
+       }
     }
+
       
   /* Find first difference. */
+#if defined (HANDLE_MULTIBYTE)
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    {
+      memset (&ps_new, 0, sizeof(mbstate_t));
+      memset (&ps_old, 0, sizeof(mbstate_t));
+
+      new_offset = old_offset = 0;
+      for (ofd = old, nfd = new;
+          (ofd - old < omax) && *ofd &&
+            _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new); )
+       {
+         old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY);
+         new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY);
+         ofd = old + old_offset;
+         nfd = new + new_offset;
+       }
+    }
+  else
+#endif
   for (ofd = old, nfd = new;
        (ofd - old < omax) && *ofd && (*ofd == *nfd);
        ofd++, nfd++)
@@ -896,6 +1162,33 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
     return;
 
   wsatend = 1;                 /* flag for trailing whitespace */
+
+#if defined (HANDLE_MULTIBYTE)
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    {
+      ols = old + _rl_find_prev_mbchar (old, oe - old, MB_FIND_ANY);
+      nls = new + _rl_find_prev_mbchar (new, ne - new, MB_FIND_ANY);
+      while ((ols > ofd) && (nls > nfd))
+       {
+         memset (&ps_old, 0, sizeof (mbstate_t));
+         memset (&ps_new, 0, sizeof (mbstate_t));
+
+         _rl_adjust_point (old, ols - old, &ps_old);
+         _rl_adjust_point (new, nls - new, &ps_new);
+
+         if (_rl_compare_chars (old, ols - old, &ps_old, new, nls - new, &ps_new) == 0)
+           break;
+
+         if (*ols == ' ')
+           wsatend = 0;
+
+         ols = old + _rl_find_prev_mbchar (old, ols - old, MB_FIND_ANY);
+         nls = new + _rl_find_prev_mbchar (new, nls - new, MB_FIND_ANY);
+       }
+    }
+  else
+    {
+#endif /* HANDLE_MULTIBYTE */
   ols = oe - 1;                        /* find last same */
   nls = ne - 1;
   while ((ols > ofd) && (nls > nfd) && (*ols == *nls))
@@ -905,18 +1198,38 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
       ols--;
       nls--;
     }
+#if defined (HANDLE_MULTIBYTE)
+    }
+#endif
 
   if (wsatend)
     {
       ols = oe;
       nls = ne;
     }
+#if defined (HANDLE_MULTIBYTE)
+  /* This may not work for stateful encoding, but who cares?  To handle
+     stateful encoding properly, we have to scan each string from the
+     beginning and compare. */
+  else if (_rl_compare_chars (ols, 0, NULL, nls, 0, NULL) == 0)
+#else
   else if (*ols != *nls)
+#endif
     {
       if (*ols)                        /* don't step past the NUL */
-       ols++;
+       {
+         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+           ols = old + _rl_find_next_mbchar (old, ols - old, 1, MB_FIND_ANY);
+         else
+           ols++;
+       }
       if (*nls)
-       nls++;
+       {
+         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+           nls = new + _rl_find_next_mbchar (new, nls - new, 1, MB_FIND_ANY);
+         else
+           nls++;
+       }
     }
 
   /* count of invisible characters in the current invisible line. */
@@ -943,33 +1256,59 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
   lendiff = local_prompt ? strlen (local_prompt) : 0;
   od = ofd - old;      /* index of first difference in visible line */
   if (current_line == 0 && !_rl_horizontal_scroll_mode &&
-      term_cr && lendiff > visible_length && _rl_last_c_pos > 0 &&
-      od > lendiff && _rl_last_c_pos < last_invisible)
+      _rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 &&
+      od >= lendiff && _rl_last_c_pos <= prompt_last_invisible)
     {
 #if defined (__MSDOS__)
       putc ('\r', rl_outstream);
 #else
-      tputs (term_cr, 1, _rl_output_character_function);
+      tputs (_rl_term_cr, 1, _rl_output_character_function);
 #endif
       _rl_output_some_chars (local_prompt, lendiff);
-      _rl_last_c_pos = lendiff;
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff);
+      else
+       _rl_last_c_pos = lendiff;
     }
 
   _rl_move_cursor_relative (od, old);
 
-  /* if (len (new) > len (old)) */
+  /* if (len (new) > len (old))
+     lendiff == difference in buffer
+     col_lendiff == difference on screen
+     When not using multibyte characters, these are equal */
   lendiff = (nls - nfd) - (ols - ofd);
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    col_lendiff = _rl_col_width (new, nfd - new, nls - new) - _rl_col_width (old, ofd - old, ols - old);
+  else
+    col_lendiff = lendiff;
 
   /* If we are changing the number of invisible characters in a line, and
      the spot of first difference is before the end of the invisible chars,
      lendiff needs to be adjusted. */
   if (current_line == 0 && !_rl_horizontal_scroll_mode &&
       current_invis_chars != visible_wrap_offset)
-    lendiff += visible_wrap_offset - current_invis_chars;
+    {
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         lendiff += visible_wrap_offset - current_invis_chars;
+         col_lendiff += visible_wrap_offset - current_invis_chars;
+       }
+      else
+       {
+         lendiff += visible_wrap_offset - current_invis_chars;
+         col_lendiff = lendiff;
+       }
+    }
 
   /* Insert (diff (len (old), len (new)) ch. */
   temp = ne - nfd;
-  if (lendiff > 0)
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    col_temp = _rl_col_width (new, nfd - new, ne - new);
+  else
+    col_temp = temp;
+
+  if (col_lendiff > 0) /* XXX - was lendiff */
     {
       /* Non-zero if we're increasing the number of lines. */
       int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
@@ -977,17 +1316,17 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
         use the terminal's capabilities.  If we're growing the number
         of lines, make sure we actually cause the new line to wrap
         around on auto-wrapping terminals. */
-      if (terminal_can_insert && ((2 * temp) >= lendiff || term_IC) && (!_rl_term_autowrap || !gl))
+      if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
        {
-         /* If lendiff > visible_length and _rl_last_c_pos == 0 and
+         /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
             _rl_horizontal_scroll_mode == 1, inserting the characters with
-            term_IC or term_ic will screw up the screen because of the
+            _rl_term_IC or _rl_term_ic will screw up the screen because of the
             invisible characters.  We need to just draw them. */
          if (*ols && (!_rl_horizontal_scroll_mode || _rl_last_c_pos > 0 ||
-                       lendiff <= visible_length || !current_invis_chars))
+                       lendiff <= prompt_visible_length || !current_invis_chars))
            {
-             insert_some_chars (nfd, lendiff);
-             _rl_last_c_pos += lendiff;
+             insert_some_chars (nfd, lendiff, col_lendiff);
+             _rl_last_c_pos += col_lendiff;
            }
          else if (*ols == 0)
            {
@@ -996,7 +1335,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
              /* However, this screws up the rest of this block, which
                 assumes you've done the insert because you can. */
              _rl_output_some_chars (nfd, lendiff);
-             _rl_last_c_pos += lendiff;
+             _rl_last_c_pos += col_lendiff;
            }
          else
            {
@@ -1004,7 +1343,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
                 the end.  We have invisible characters in this line.  This
                 is a dumb update. */
              _rl_output_some_chars (nfd, temp);
-             _rl_last_c_pos += temp;
+             _rl_last_c_pos += col_temp;
              return;
            }
          /* Copy (new) chars to screen from first diff to last match. */
@@ -1012,37 +1351,41 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
          if ((temp - lendiff) > 0)
            {
              _rl_output_some_chars (nfd + lendiff, temp - lendiff);
-             _rl_last_c_pos += temp - lendiff;
+#if 0
+             _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff) - col_lendiff;
+#else
+             _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
+#endif
            }
        }
       else
        {
          /* cannot insert chars, write to EOL */
          _rl_output_some_chars (nfd, temp);
-         _rl_last_c_pos += temp;
+         _rl_last_c_pos += col_temp;
        }
     }
   else                         /* Delete characters from line. */
     {
       /* If possible and inexpensive to use terminal deletion, then do so. */
-      if (term_dc && (2 * temp) >= -lendiff)
+      if (_rl_term_dc && (2 * col_temp) >= -col_lendiff)
        {
          /* If all we're doing is erasing the invisible characters in the
             prompt string, don't bother.  It screws up the assumptions
             about what's on the screen. */
          if (_rl_horizontal_scroll_mode && _rl_last_c_pos == 0 &&
              -lendiff == visible_wrap_offset)
-           lendiff = 0;
+           col_lendiff = 0;
 
-         if (lendiff)
-           delete_chars (-lendiff); /* delete (diff) characters */
+         if (col_lendiff)
+           delete_chars (-col_lendiff); /* delete (diff) characters */
 
          /* Copy (new) chars to screen from first diff to last match */
          temp = nls - nfd;
          if (temp > 0)
            {
              _rl_output_some_chars (nfd, temp);
-             _rl_last_c_pos += temp;
+             _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
            }
        }
       /* Otherwise, print over the existing material. */
@@ -1051,15 +1394,20 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
          if (temp > 0)
            {
              _rl_output_some_chars (nfd, temp);
-             _rl_last_c_pos += temp;
+             _rl_last_c_pos += col_temp;
            }
          lendiff = (oe - old) - (ne - new);
-         if (lendiff)
+         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+           col_lendiff = _rl_col_width (old, 0, oe - old) - _rl_col_width (new, 0, ne - new);
+         else
+           col_lendiff = lendiff;
+
+         if (col_lendiff)
            {     
              if (_rl_term_autowrap && current_line < inv_botlin)
-               space_to_eol (lendiff);
+               space_to_eol (col_lendiff);
              else
-               _rl_clear_to_eol (lendiff);
+               _rl_clear_to_eol (col_lendiff);
            }
        }
     }
@@ -1105,12 +1453,15 @@ rl_on_new_line_with_prompt ()
     prompt_last_line = rl_prompt;
 
   l = strlen (prompt_last_line);
-  _rl_last_c_pos = l;
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    _rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l);
+  else
+    _rl_last_c_pos = l;
 
   /* Dissect prompt_last_line into screen lines. Note that here we have
      to use the real screenwidth. Readline's notion of screenwidth might be
      one less, see terminal.c. */
-  real_screenwidth = screenwidth + (_rl_term_autowrap ? 0 : 1);
+  real_screenwidth = _rl_screenwidth + (_rl_term_autowrap ? 0 : 1);
   _rl_last_v_pos = l / real_screenwidth;
   /* If the prompt length is a multiple of real_screenwidth, we don't know
      whether the cursor is at the end of the last line, or already at the
@@ -1155,24 +1506,31 @@ rl_forced_update_display ()
 void
 _rl_move_cursor_relative (new, data)
      int new;
-     char *data;
+     const char *data;
 {
   register int i;
 
   /* If we don't have to do anything, then return. */
+#if defined (HANDLE_MULTIBYTE)
+  /* If we have multibyte characters, NEW is indexed by the buffer point in
+     a multibyte string, but _rl_last_c_pos is the display position.  In
+     this case, NEW's display position is not obvious. */
+  if ((MB_CUR_MAX == 1 || rl_byte_oriented ) && _rl_last_c_pos == new) return;
+#else
   if (_rl_last_c_pos == new) return;
+#endif
 
   /* It may be faster to output a CR, and then move forwards instead
      of moving backwards. */
   /* i == current physical cursor position. */
   i = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
   if (new == 0 || CR_FASTER (new, _rl_last_c_pos) ||
-      (_rl_term_autowrap && i == screenwidth))
+      (_rl_term_autowrap && i == _rl_screenwidth))
     {
 #if defined (__MSDOS__)
       putc ('\r', rl_outstream);
 #else
-      tputs (term_cr, 1, _rl_output_character_function);
+      tputs (_rl_term_cr, 1, _rl_output_character_function);
 #endif /* !__MSDOS__ */
       _rl_last_c_pos = 0;
     }
@@ -1189,20 +1547,70 @@ _rl_move_cursor_relative (new, data)
         That kind of control is for people who don't know what the
         data is underneath the cursor. */
 #if defined (HACK_TERMCAP_MOTION)
-      if (term_forward_char)
+      if (_rl_term_forward_char)
+       {
+         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+           {
+             int width;
+             width = _rl_col_width (data, _rl_last_c_pos, new);
+             for (i = 0; i < width; i++)
+               tputs (_rl_term_forward_char, 1, _rl_output_character_function);
+           }
+         else
+           {
+             for (i = _rl_last_c_pos; i < new; i++)
+               tputs (_rl_term_forward_char, 1, _rl_output_character_function);
+           }
+       }
+      else if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         tputs (_rl_term_cr, 1, _rl_output_character_function);
+         for (i = 0; i < new; i++)
+           putc (data[i], rl_outstream);
+       }
+      else
        for (i = _rl_last_c_pos; i < new; i++)
-         tputs (term_forward_char, 1, _rl_output_character_function);
+         putc (data[i], rl_outstream);
+
+#else /* !HACK_TERMCAP_MOTION */
+
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         tputs (_rl_term_cr, 1, _rl_output_character_function);
+         for (i = 0; i < new; i++)
+           putc (data[i], rl_outstream);
+       }
       else
        for (i = _rl_last_c_pos; i < new; i++)
          putc (data[i], rl_outstream);
-#else
-      for (i = _rl_last_c_pos; i < new; i++)
-       putc (data[i], rl_outstream);
-#endif /* HACK_TERMCAP_MOTION */
+
+#endif /* !HACK_TERMCAP_MOTION */
+
     }
+#if defined (HANDLE_MULTIBYTE)
+  /* NEW points to the buffer point, but _rl_last_c_pos is the display point.
+     The byte length of the string is probably bigger than the column width
+     of the string, which means that if NEW == _rl_last_c_pos, then NEW's
+     display point is less than _rl_last_c_pos. */
+  else if (_rl_last_c_pos >= new)
+#else
   else if (_rl_last_c_pos > new)
-    _rl_backspace (_rl_last_c_pos - new);
-  _rl_last_c_pos = new;
+#endif
+    {
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         tputs (_rl_term_cr, 1, _rl_output_character_function);
+         for (i = 0; i < new; i++)
+           putc (data[i], rl_outstream);
+       }
+      else
+       _rl_backspace (_rl_last_c_pos - new);
+    }
+
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    _rl_last_c_pos =  _rl_col_width (data, 0, new);
+  else
+    _rl_last_c_pos = new;
 }
 
 /* PWP: move the cursor up or down. */
@@ -1212,7 +1620,7 @@ _rl_move_vert (to)
 {
   register int delta, i;
 
-  if (_rl_last_v_pos == to || to > screenheight)
+  if (_rl_last_v_pos == to || to > _rl_screenheight)
     return;
 
   if ((delta = to - _rl_last_v_pos) > 0)
@@ -1222,7 +1630,7 @@ _rl_move_vert (to)
 #if defined (__MSDOS__)
       putc ('\r', rl_outstream);
 #else
-      tputs (term_cr, 1, _rl_output_character_function);
+      tputs (_rl_term_cr, 1, _rl_output_character_function);
 #endif
       _rl_last_c_pos = 0;
     }
@@ -1231,14 +1639,14 @@ _rl_move_vert (to)
 #ifdef __MSDOS__
       int row, col;
 
-      i = fflush (rl_outstream); /* make sure the cursor pos is current! */
+      l = fflush (rl_outstream); /* make sure the cursor pos is current! */
       ScreenGetCursor (&row, &col);
       ScreenSetCursor ((row + to - _rl_last_v_pos), col);
       delta = i;
 #else /* !__MSDOS__ */
-      if (term_up && *term_up)
+      if (_rl_term_up && *_rl_term_up)
        for (i = 0; i < -delta; i++)
-         tputs (term_up, 1, _rl_output_character_function);
+         tputs (_rl_term_up, 1, _rl_output_character_function);
 #endif /* !__MSDOS__ */
     }
 
@@ -1298,7 +1706,7 @@ rl_character_len (c, pos)
   if (CTRL_CHAR (c) || c == RUBOUT)
     return (2);
 
-  return ((isprint (uc)) ? 1 : 2);
+  return ((ISPRINT (uc)) ? 1 : 2);
 }
 
 /* How to print things in the "echo-area".  The prompt is treated as a
@@ -1325,7 +1733,12 @@ rl_message (va_alist)
   format = va_arg (args, char *);
 #endif
 
+#if defined (HAVE_VSNPRINTF)
+  vsnprintf (msg_buf, sizeof (msg_buf) - 1, format, args);
+#else
   vsprintf (msg_buf, format, args);
+  msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
+#endif
   va_end (args);
 
   rl_display_prompt = msg_buf;
@@ -1338,6 +1751,7 @@ rl_message (format, arg1, arg2)
      char *format;
 {
   sprintf (msg_buf, format, arg1, arg2);
+  msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
   rl_display_prompt = msg_buf;
   (*rl_redisplay_function) ();
   return 0;
@@ -1373,25 +1787,23 @@ rl_save_prompt ()
 {
   saved_local_prompt = local_prompt;
   saved_local_prefix = local_prompt_prefix;
-  saved_last_invisible = last_invisible;
-  saved_visible_length = visible_length;
+  saved_last_invisible = prompt_last_invisible;
+  saved_visible_length = prompt_visible_length;
 
   local_prompt = local_prompt_prefix = (char *)0;
-  last_invisible = visible_length = 0;
+  prompt_last_invisible = prompt_visible_length = 0;
 }
 
 void
 rl_restore_prompt ()
 {
-  if (local_prompt)
-    free (local_prompt);
-  if (local_prompt_prefix)
-    free (local_prompt_prefix);
+  FREE (local_prompt);
+  FREE (local_prompt_prefix);
 
   local_prompt = saved_local_prompt;
   local_prompt_prefix = saved_local_prefix;
-  last_invisible = saved_last_invisible;
-  visible_length = saved_visible_length;
+  prompt_last_invisible = saved_last_invisible;
+  prompt_visible_length = saved_visible_length;
 }
 
 char *
@@ -1406,7 +1818,7 @@ _rl_make_prompt_for_search (pchar)
   if (saved_local_prompt == 0)
     {
       len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
-      pmt = xmalloc (len + 2);
+      pmt = (char *)xmalloc (len + 2);
       if (len)
        strcpy (pmt, rl_prompt);
       pmt[len] = pchar;
@@ -1415,14 +1827,14 @@ _rl_make_prompt_for_search (pchar)
   else
     {
       len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
-      pmt = xmalloc (len + 2);
+      pmt = (char *)xmalloc (len + 2);
       if (len)
        strcpy (pmt, saved_local_prompt);
       pmt[len] = pchar;
       pmt[len+1] = '\0';
       local_prompt = savestring (pmt);
-      last_invisible = saved_last_invisible;
-      visible_length = saved_visible_length + 1;
+      prompt_last_invisible = saved_last_invisible;
+      prompt_visible_length = saved_visible_length + 1;
     }
   return pmt;
 }
@@ -1450,8 +1862,8 @@ _rl_clear_to_eol (count)
      int count;
 {
 #ifndef __MSDOS__
-  if (term_clreol)
-    tputs (term_clreol, 1, _rl_output_character_function);
+  if (_rl_term_clreol)
+    tputs (_rl_term_clreol, 1, _rl_output_character_function);
   else
 #endif
   if (count)
@@ -1479,27 +1891,33 @@ _rl_clear_screen ()
   ScreenClear ();      /* FIXME: only works in text modes */
   ScreenSetCursor (0, 0);  /* term_clrpag is "cl" which homes the cursor */
 #else
-  if (term_clrpag)
-    tputs (term_clrpag, 1, _rl_output_character_function);
+  if (_rl_term_clrpag)
+    tputs (_rl_term_clrpag, 1, _rl_output_character_function);
   else
-    crlf ();
+    rl_crlf ();
 #endif
 }
 
-/* Insert COUNT characters from STRING to the output stream. */
+/* Insert COUNT characters from STRING to the output stream at column COL. */
 static void
-insert_some_chars (string, count)
+insert_some_chars (string, count, col)
      char *string;
-     int count;
+     int count, col;
 {
 #ifdef __MSDOS__
   _rl_output_some_chars (string, count);
 #else  /* !__MSDOS__ */
+  /* DEBUGGING */
+  if (MB_CUR_MAX == 1 || rl_byte_oriented)
+    if (count != col)
+      fprintf(stderr, "readline: debug: insert_some_chars: count (%d) != col (%d)\n", count, col);
+
   /* If IC is defined, then we do not have to "enter" insert mode. */
-  if (term_IC)
+  if (_rl_term_IC)
     {
       char *buffer;
-      buffer = tgoto (term_IC, 0, count);
+
+      buffer = tgoto (_rl_term_IC, 0, col);
       tputs (buffer, 1, _rl_output_character_function);
       _rl_output_some_chars (string, count);
     }
@@ -1508,15 +1926,15 @@ insert_some_chars (string, count)
       register int i;
 
       /* If we have to turn on insert-mode, then do so. */
-      if (term_im && *term_im)
-       tputs (term_im, 1, _rl_output_character_function);
+      if (_rl_term_im && *_rl_term_im)
+       tputs (_rl_term_im, 1, _rl_output_character_function);
 
       /* If there is a special command for inserting characters, then
         use that first to open up the space. */
-      if (term_ic && *term_ic)
+      if (_rl_term_ic && *_rl_term_ic)
        {
-         for (i = count; i--; )
-           tputs (term_ic, 1, _rl_output_character_function);
+         for (i = col; i--; )
+           tputs (_rl_term_ic, 1, _rl_output_character_function);
        }
 
       /* Print the text. */
@@ -1524,8 +1942,8 @@ insert_some_chars (string, count)
 
       /* If there is a string to turn off insert mode, we had best use
         it now. */
-      if (term_ei && *term_ei)
-       tputs (term_ei, 1, _rl_output_character_function);
+      if (_rl_term_ei && *_rl_term_ei)
+       tputs (_rl_term_ei, 1, _rl_output_character_function);
     }
 #endif /* !__MSDOS__ */
 }
@@ -1535,21 +1953,21 @@ static void
 delete_chars (count)
      int count;
 {
-  if (count > screenwidth)     /* XXX */
+  if (count > _rl_screenwidth) /* XXX */
     return;
 
 #ifndef __MSDOS__
-  if (term_DC && *term_DC)
+  if (_rl_term_DC && *_rl_term_DC)
     {
       char *buffer;
-      buffer = tgoto (term_DC, count, count);
+      buffer = tgoto (_rl_term_DC, count, count);
       tputs (buffer, count, _rl_output_character_function);
     }
   else
     {
-      if (term_dc && *term_dc)
+      if (_rl_term_dc && *_rl_term_dc)
        while (count--)
-         tputs (term_dc, 1, _rl_output_character_function);
+         tputs (_rl_term_dc, 1, _rl_output_character_function);
     }
 #endif /* !__MSDOS__ */
 }
@@ -1570,20 +1988,17 @@ _rl_update_final ()
     }
   _rl_move_vert (_rl_vis_botlin);
   /* If we've wrapped lines, remove the final xterm line-wrap flag. */
-  if (full_lines && _rl_term_autowrap && (VIS_LLEN(_rl_vis_botlin) == screenwidth))
+  if (full_lines && _rl_term_autowrap && (VIS_LLEN(_rl_vis_botlin) == _rl_screenwidth))
     {
       char *last_line;
-#if 0
-      last_line = &visible_line[inv_lbreaks[_rl_vis_botlin]];
-#else
+
       last_line = &visible_line[vis_lbreaks[_rl_vis_botlin]];
-#endif
-      _rl_move_cursor_relative (screenwidth - 1, last_line);
+      _rl_move_cursor_relative (_rl_screenwidth - 1, last_line);
       _rl_clear_to_eol (0);
-      putc (last_line[screenwidth - 1], rl_outstream);
+      putc (last_line[_rl_screenwidth - 1], rl_outstream);
     }
   _rl_vis_botlin = 0;
-  crlf ();
+  rl_crlf ();
   fflush (rl_outstream);
   rl_display_fixed++;
 }
@@ -1592,12 +2007,12 @@ _rl_update_final ()
 static void
 cr ()
 {
-  if (term_cr)
+  if (_rl_term_cr)
     {
 #if defined (__MSDOS__)
       putc ('\r', rl_outstream);
 #else
-      tputs (term_cr, 1, _rl_output_character_function);
+      tputs (_rl_term_cr, 1, _rl_output_character_function);
 #endif
       _rl_last_c_pos = 0;
     }
@@ -1611,27 +2026,31 @@ redraw_prompt (t)
      char *t;
 {
   char *oldp, *oldl, *oldlprefix;
-  int oldlen, oldlast, oldplen;
+  int oldlen, oldlast, oldplen, oldninvis;
 
   /* Geez, I should make this a struct. */
   oldp = rl_display_prompt;
   oldl = local_prompt;
   oldlprefix = local_prompt_prefix;
-  oldlen = visible_length;
-  oldplen = prefix_length;
-  oldlast = last_invisible;
+  oldlen = prompt_visible_length;
+  oldplen = prompt_prefix_length;
+  oldlast = prompt_last_invisible;
+  oldninvis = prompt_invis_chars_first_line;
 
   rl_display_prompt = t;
-  local_prompt = expand_prompt (t, &visible_length, &last_invisible);
+  local_prompt = expand_prompt (t, &prompt_visible_length,
+                                  &prompt_last_invisible,
+                                  &prompt_invis_chars_first_line);
   local_prompt_prefix = (char *)NULL;
   rl_forced_update_display ();
 
   rl_display_prompt = oldp;
   local_prompt = oldl;
   local_prompt_prefix = oldlprefix;
-  visible_length = oldlen;
-  prefix_length = oldplen;
-  last_invisible = oldlast;
+  prompt_visible_length = oldlen;
+  prompt_prefix_length = oldplen;
+  prompt_last_invisible = oldlast;
+  prompt_invis_chars_first_line = oldninvis;
 }
       
 /* Redisplay the current line after a SIGWINCH is received. */
@@ -1642,31 +2061,31 @@ _rl_redisplay_after_sigwinch ()
 
   /* Clear the current line and put the cursor at column 0.  Make sure
      the right thing happens if we have wrapped to a new screen line. */
-  if (term_cr)
+  if (_rl_term_cr)
     {
 #if defined (__MSDOS__)
       putc ('\r', rl_outstream);
 #else
-      tputs (term_cr, 1, _rl_output_character_function);
+      tputs (_rl_term_cr, 1, _rl_output_character_function);
 #endif
       _rl_last_c_pos = 0;
 #if defined (__MSDOS__)
-      space_to_eol (screenwidth);
+      space_to_eol (_rl_screenwidth);
       putc ('\r', rl_outstream);
 #else
-      if (term_clreol)
-       tputs (term_clreol, 1, _rl_output_character_function);
+      if (_rl_term_clreol)
+       tputs (_rl_term_clreol, 1, _rl_output_character_function);
       else
        {
-         space_to_eol (screenwidth);
-         tputs (term_cr, 1, _rl_output_character_function);
+         space_to_eol (_rl_screenwidth);
+         tputs (_rl_term_cr, 1, _rl_output_character_function);
        }
 #endif
       if (_rl_last_v_pos > 0)
        _rl_move_vert (0);
     }
   else
-    crlf ();
+    rl_crlf ();
 
   /* Redraw only the last line of a multi-line prompt. */
   t = strrchr (rl_display_prompt, '\n');
@@ -1707,14 +2126,98 @@ _rl_current_display_line ()
   /* Find out whether or not there might be invisible characters in the
      editing buffer. */
   if (rl_display_prompt == rl_prompt)
-    nleft = _rl_last_c_pos - screenwidth - rl_visible_prompt_length;
+    nleft = _rl_last_c_pos - _rl_screenwidth - rl_visible_prompt_length;
   else
-    nleft = _rl_last_c_pos - screenwidth;
+    nleft = _rl_last_c_pos - _rl_screenwidth;
 
   if (nleft > 0)
-    ret = 1 + nleft / screenwidth;
+    ret = 1 + nleft / _rl_screenwidth;
   else
     ret = 0;
 
   return ret;
 }
+
+#if defined (HANDLE_MULTIBYTE)
+/* Calculate the number of screen columns occupied by STR from START to END.
+   In the case of multibyte characters with stateful encoding, we have to
+   scan from the beginning of the string to take the state into account. */
+static int
+_rl_col_width (str, start, end)
+     char *str;
+     int start, end;
+{
+  wchar_t wc;
+  mbstate_t ps = {0};
+  int tmp, point, width, max;
+
+  if (end <= start)
+    return 0;
+
+  point = 0;
+  max = end;
+
+  while (point < start)
+    {
+      tmp = mbrlen (str + point, max, &ps);
+      if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2)
+       {
+         /* In this case, the bytes are invalid or too short to compose a
+            multibyte character, so we assume that the first byte represents
+            a single character. */
+         point++;
+         max--;
+
+         /* Clear the state of the byte sequence, because in this case the
+            effect of mbstate is undefined. */
+         memset (&ps, 0, sizeof (mbstate_t));
+       }
+      else if (tmp == 0)
+        break;         /* Found '\0' */
+      else
+       {
+         point += tmp;
+         max -= tmp;
+       }
+    }
+
+  /* If START is not a byte that starts a character, then POINT will be
+     greater than START.  In this case, assume that (POINT - START) gives
+     a byte count that is the number of columns of difference. */
+  width = point - start;
+
+  while (point < end)
+    {
+      tmp = mbrtowc (&wc, str + point, max, &ps);
+      if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2)
+       {
+         /* In this case, the bytes are invalid or too short to compose a
+            multibyte character, so we assume that the first byte represents
+            a single character. */
+         point++;
+         max--;
+
+         /* and assume that the byte occupies a single column. */
+         width++;
+
+         /* Clear the state of the byte sequence, because in this case the
+            effect of mbstate is undefined. */
+         memset (&ps, 0, sizeof (mbstate_t));
+       }
+      else if (tmp == 0)
+        break;                 /* Found '\0' */
+      else
+       {
+         point += tmp;
+         max -= tmp;
+         tmp = wcwidth(wc);
+         width += (tmp >= 0) ? tmp : 1;
+       }
+    }
+
+  width += point - end;
+
+  return width;
+}
+#endif /* HANDLE_MULTIBYTE */
+         
index 4a38563e46e696e2035f4337043d8db74010cff3..8a85ae17c8b9853f4b4ba588307e2751c84664ca 100644 (file)
@@ -27,10 +27,16 @@ infodir = @infodir@
 mandir = @mandir@
 manpfx = man
 
-man1ext = 1
-man1dir = $(mandir)/$(manpfx)$(man1ext)
-man3ext = 3
-man3dir = $(mandir)/$(manpfx)$(man3ext)
+man1ext = .1
+man1dir = $(mandir)/$(manpfx)1
+man3ext = .3
+man3dir = $(mandir)/$(manpfx)3
+
+# set this to a value to have the HTML documentation installed
+htmldir =
+
+# Support an alternate destination root directory for package building
+DESTDIR =
 
 SHELL = @MAKE_SHELL@
 RM = rm -f
@@ -63,13 +69,13 @@ GROFF       = groff
 
 DVIOBJ = readline.dvi history.dvi rluserman.dvi
 INFOOBJ = readline.info history.info rluserman.info
-PSOBJ = readline.ps history.ps rluserman.ps
+PSOBJ = readline.ps history.ps rluserman.ps readline_3.ps history_3.ps
 HTMLOBJ = readline.html history.html rluserman.html
-TEXTOBJ = readline.0
+TEXTOBJ = readline.0 history.0
 
 INTERMEDIATE_OBJ = rlman.dvi hist.dvi rluserman.dvi
 
-CREATED_DOCS = $(DVIOBJ) $(INFOOBJ) $(PSOBJ) $(HTMLOBJ) $(TEXTOBJ)
+DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ) $(INFOOBJ) $(TEXTOBJ)
 
 .SUFFIXES:      .0 .3 .ps .txt .dvi
 
@@ -112,10 +118,12 @@ history.ps:       history.dvi
        $(RM) $@
        $(DVIPS) history.dvi
 
+#
+# This leaves readline.html and rlman.html -- rlman.html is for www.gnu.org
+#
 readline.html: ${RLSRC}
        $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rlman.texinfo
        sed -e 's:rlman.html:readline.html:g' rlman.html > readline.html
-       $(RM) rlman.html
 
 rluserman.html:        ${RLSRC}
        $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rluserman.texinfo
@@ -133,49 +141,94 @@ text:     $(TEXTOBJ)
 
 readline.0: readline.3
 
+readline_3.ps: readline.3
+       ${RM} $@
+       ${GROFF} -man < $(srcdir)/readline.3 > $@ 
+
+history.0: history.3
+
+history_3.ps: history.3
+       ${RM} $@
+       ${GROFF} -man < $(srcdir)/history.3 > $@ 
+
 clean:
        $(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \
-             *.fns *.kys *.tps *.vrs *.bt *.bts *.o core
+             *.fns *.kys *.tps *.vrs *.bt *.bts *.o core *.core
+
+mostlyclean: clean
 
-distclean: clean
-       $(RM) $(CREATED_DOCS)
+distclean: clean maybe-clean
        $(RM) $(INTERMEDIATE_OBJ)
        $(RM) Makefile
 
-mostlyclean: clean
+maybe-clean:
+       -if test "X$(topdir)" != "X$(BUILD_DIR)"; then \
+               $(RM) $(DIST_DOCS); \
+       fi
 
 maintainer-clean: clean
-       $(RM) $(CREATED_DOCS)
+       $(RM) $(DIST_DOCS)
        $(RM) $(INTERMEDIATE_OBJ)
        $(RM) Makefile
 
 installdirs:   $(topdir)/support/mkdirs
-       -$(SHELL) $(topdir)/support/mkdirs $(infodir) $(man3dir)
+       -$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir)
+       -if test -n "${htmldir}" ; then \
+               $(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(htmldir) ; \
+       fi
 
 install:       installdirs
        if test -f readline.info; then \
-               ${INSTALL_DATA} readline.info $(infodir)/readline.info; \
+               ${INSTALL_DATA} readline.info $(DESTDIR)$(infodir)/readline.info; \
        else \
-               ${INSTALL_DATA} $(srcdir)/readline.info $(infodir)/readline.info; \
+               ${INSTALL_DATA} $(srcdir)/readline.info $(DESTDIR)$(infodir)/readline.info; \
        fi
        if test -f rluserman.info; then \
-               ${INSTALL_DATA} rluserman.info $(infodir)/rluserman.info; \
+               ${INSTALL_DATA} rluserman.info $(DESTDIR)$(infodir)/rluserman.info; \
        else \
-               ${INSTALL_DATA} $(srcdir)/rluserman.info $(infodir)/rluserman.info; \
+               ${INSTALL_DATA} $(srcdir)/rluserman.info $(DESTDIR)$(infodir)/rluserman.info; \
        fi
        if test -f history.info; then \
-               ${INSTALL_DATA} history.info $(infodir)/history.info; \
+               ${INSTALL_DATA} history.info $(DESTDIR)$(infodir)/history.info; \
        else \
-               ${INSTALL_DATA} $(srcdir)/history.info $(infodir)/history.info; \
+               ${INSTALL_DATA} $(srcdir)/history.info $(DESTDIR)$(infodir)/history.info; \
        fi
        -if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
-               install-info --dir-file=$(infodir)/dir $(infodir)/readline.info ; \
-               install-info --dir-file=$(infodir)/dir $(infodir)/history.info ; \
+               install-info --dir-file=$(DESTDIR)$(infodir)/dir \
+                       $(DESTDIR)$(infodir)/readline.info ; \
+               install-info --dir-file=$(DESTDIR)$(infodir)/dir \
+                       $(DESTDIR)$(infodir)/history.info ; \
+               install-info --dir-file=$(DESTDIR)$(infodir)/dir \
+                       $(DESTDIR)$(infodir)/rluserman.info ; \
        else true; fi
-       -${INSTALL_DATA} $(srcdir)/readline.3 $(man3dir)/readline.3
+       -${INSTALL_DATA} $(srcdir)/readline.3 $(DESTDIR)$(man3dir)/readline$(man3ext)
+       -${INSTALL_DATA} $(srcdir)/history.3 $(DESTDIR)$(man3dir)/history$(man3ext)
+       -if test -n "${htmldir}" ; then \
+               if test -f readline.html; then \
+                       ${INSTALL_DATA} readline.html $(DESTDIR)$(htmldir)/readline.html; \
+               else \
+                       ${INSTALL_DATA} $(srcdir)/readline.html $(DESTDIR)$(htmldir)/readline.html; \
+               fi ; \
+               if test -f history.html; then \
+                       ${INSTALL_DATA} history.html $(DESTDIR)$(htmldir)/history.html; \
+               else \
+                       ${INSTALL_DATA} $(srcdir)/history.html $(DESTDIR)$(htmldir)/history.html; \
+               fi ; \
+               if test -f rluserman.html; then \
+                       ${INSTALL_DATA} rluserman.html $(DESTDIR)$(htmldir)/rluserman.html; \
+               else \
+                       ${INSTALL_DATA} $(srcdir)/rluserman.html $(DESTDIR)$(htmldir)/rluserman.html; \
+               fi ; \
+       fi
 
 uninstall:
-       $(RM) $(infodir)/readline.info
-       $(RM) $(infodir)/rluserman.info
-       $(RM) $(infodir)/history.info
-       $(RM) $(man3dir)/readline.3
+       $(RM) $(DESTDIR)$(infodir)/readline.info
+       $(RM) $(DESTDIR)$(infodir)/rluserman.info
+       $(RM) $(DESTDIR)$(infodir)/history.info
+       $(RM) $(DESTDIR)$(man3dir)/readline$(man3ext)
+       $(RM) $(DESTDIR)$(man3dir)/history$(man3ext)
+       -if test -n "${htmldir}" ; then \
+               $(RM) $(DESTDIR)$(htmldir)/readline.html ; \
+               $(RM) $(DESTDIR)$(htmldir)/rluserman.html ; \
+               $(RM) $(DESTDIR)$(htmldir)/history.html ; \
+       fi
index 8a9c9413bc9fe0a0febd3e59d46b31a9c32801ee..63ceb16e6079dd565bae6761f27d94ce39a80ca7 100644 (file)
@@ -18,7 +18,7 @@ This document describes the GNU History library, a programming tool that
 provides a consistent user interface for recalling lines of previously
 typed input.
 
-Copyright (C) 1988-1999 Free Software Foundation, Inc.
+Copyright (C) 1988-2002 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -73,7 +73,7 @@ except that this permission notice may be stated in a translation approved
 by the Free Software Foundation.
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1988-1999 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
 @end titlepage
 
 @ifinfo
index 12fff2c9a75d7de97071a430ad71e3091c571573..949444668fcf870c9a1831e5e96f49cfa1eb8167 100644 (file)
@@ -1,7 +1,7 @@
 @ignore
 This file documents the user interface to the GNU History library.
 
-Copyright (C) 1988, 1991, 1994, 1996 Free Software Foundation, Inc.
+Copyright (C) 1988-2002 Free Software Foundation, Inc.
 Authored by Brian Fox and Chet Ramey.
 
 Permission is granted to make and distribute verbatim copies of this manual
@@ -27,9 +27,9 @@ into another language, under the above conditions for modified versions.
 @chapter Programming with GNU History
 
 This chapter describes how to interface programs that you write
-with the GNU History Library.
+with the @sc{gnu} History Library.
 It should be considered a technical guide.
-For information on the interactive use of GNU History, @pxref{Using
+For information on the interactive use of @sc{gnu} History, @pxref{Using
 History Interactively}.
 
 @menu
@@ -43,10 +43,10 @@ History Interactively}.
 @node Introduction to History
 @section Introduction to History
 
-Many programs read input from the user a line at a time.  The GNU History
-library is able to keep track of those lines, associate arbitrary data with
-each line, and utilize information from previous lines in composing new
-ones.
+Many programs read input from the user a line at a time.  The @sc{gnu}
+History library is able to keep track of those lines, associate arbitrary
+data with each line, and utilize information from previous lines in
+composing new ones. 
 
 The programmer using the History library has available functions
 for remembering lines on a history list, associating arbitrary data
@@ -80,9 +80,11 @@ The history list is an array of history entries.  A history entry is
 declared as follows:
 
 @example
+typedef void *histdata_t;
+
 typedef struct _hist_entry @{
   char *line;
-  char *data;
+  histdata_t data;
 @} HIST_ENTRY;
 @end example
 
@@ -95,12 +97,14 @@ HIST_ENTRY **the_history_list;
 The state of the History library is encapsulated into a single structure:
 
 @example
-/* A structure used to pass the current state of the history stuff around. */
+/*
+ * A structure used to pass around the current state of the history.
+ */
 typedef struct _hist_state @{
-  HIST_ENTRY **entries;         /* Pointer to the entries themselves. */
-  int offset;                   /* The location pointer within this array. */
-  int length;                   /* Number of elements within this array. */
-  int size;                     /* Number of slots allocated to this array. */
+  HIST_ENTRY **entries; /* Pointer to the entries themselves. */
+  int offset;           /* The location pointer within this array. */
+  int length;           /* Number of elements within this array. */
+  int size;             /* Number of slots allocated to this array. */
   int flags;
 @} HISTORY_STATE;
 @end example
@@ -112,7 +116,7 @@ stifled.
 @section History Functions
 
 This section describes the calling sequence for the various functions
-present in GNU History.
+exported by the @sc{gnu} History library.
 
 @menu
 * Initializing History and State Management::  Functions to call when you
@@ -139,12 +143,12 @@ This section describes functions used to initialize and manage
 the state of the History library when you want to use the history
 functions in your program.
 
-@deftypefun void using_history ()
+@deftypefun void using_history (void)
 Begin a session in which the history functions might be used.  This
 initializes the interactive variables.
 @end deftypefun
 
-@deftypefun {HISTORY_STATE *} history_get_history_state ()
+@deftypefun {HISTORY_STATE *} history_get_history_state (void)
 Return a structure describing the current state of the input history.
 @end deftypefun
 
@@ -158,7 +162,7 @@ Set the state of the history list according to @var{state}.
 These functions manage individual entries on the history list, or set
 parameters managing the list itself.
 
-@deftypefun void add_history (char *string)
+@deftypefun void add_history (const char *string)
 Place @var{string} at the end of the history list.  The associated data
 field (if any) is set to @code{NULL}.
 @end deftypefun
@@ -169,13 +173,13 @@ removed element is returned so you can free the line, data,
 and containing structure.
 @end deftypefun
 
-@deftypefun {HIST_ENTRY *} replace_history_entry (int which, char *line, char *data)
+@deftypefun {HIST_ENTRY *} replace_history_entry (int which, const char *line, histdata_t data)
 Make the history entry at offset @var{which} have @var{line} and @var{data}.
 This returns the old entry so you can dispose of the data.  In the case
 of an invalid @var{which}, a @code{NULL} pointer is returned.
 @end deftypefun
 
-@deftypefun void clear_history ()
+@deftypefun void clear_history (void)
 Clear the history list by deleting all the entries.
 @end deftypefun
 
@@ -183,13 +187,14 @@ Clear the history list by deleting all the entries.
 Stifle the history list, remembering only the last @var{max} entries.
 @end deftypefun
 
-@deftypefun int unstifle_history ()
-Stop stifling the history.  This returns the previous amount the
-history was stifled.  The value is positive if the history was
+@deftypefun int unstifle_history (void)
+Stop stifling the history.  This returns the previously-set
+maximum number of history entries (as set by @code{stifle_history()}).
+The value is positive if the history was
 stifled, negative if it wasn't.
 @end deftypefun
 
-@deftypefun int history_is_stifled ()
+@deftypefun int history_is_stifled (void)
 Returns non-zero if the history is stifled, zero if it is not.
 @end deftypefun
 
@@ -199,29 +204,30 @@ Returns non-zero if the history is stifled, zero if it is not.
 These functions return information about the entire history list or
 individual list entries.
 
-@deftypefun {HIST_ENTRY **} history_list ()
-Return a @code{NULL} terminated array of @code{HIST_ENTRY} which is the
+@deftypefun {HIST_ENTRY **} history_list (void)
+Return a @code{NULL} terminated array of @code{HIST_ENTRY *} which is the
 current input history.  Element 0 of this list is the beginning of time.
 If there is no history, return @code{NULL}.
 @end deftypefun
 
-@deftypefun int where_history ()
+@deftypefun int where_history (void)
 Returns the offset of the current history element.
 @end deftypefun
 
-@deftypefun {HIST_ENTRY *} current_history ()
+@deftypefun {HIST_ENTRY *} current_history (void)
 Return the history entry at the current position, as determined by
-@code{where_history ()}.  If there is no entry there, return a @code{NULL}
+@code{where_history()}.  If there is no entry there, return a @code{NULL}
 pointer.
 @end deftypefun
 
 @deftypefun {HIST_ENTRY *} history_get (int offset)
 Return the history entry at position @var{offset}, starting from
-@code{history_base}.  If there is no entry there, or if @var{offset}
+@code{history_base} (@pxref{History Variables}).
+If there is no entry there, or if @var{offset}
 is greater than the history length, return a @code{NULL} pointer.
 @end deftypefun
 
-@deftypefun int history_total_bytes ()
+@deftypefun int history_total_bytes (void)
 Return the number of bytes that the primary history entries are using.
 This function returns the sum of the lengths of all the lines in the
 history.
@@ -234,17 +240,19 @@ These functions allow the current index into the history list to be
 set or changed.
 
 @deftypefun int history_set_pos (int pos)
-Set the position in the history list to @var{pos}, an absolute index
+Set the current history offset to @var{pos}, an absolute index
 into the list.
+Returns 1 on success, 0 if @var{pos} is less than zero or greater
+than the number of history entries.
 @end deftypefun
 
-@deftypefun {HIST_ENTRY *} previous_history ()
+@deftypefun {HIST_ENTRY *} previous_history (void)
 Back up the current history offset to the previous history entry, and
 return a pointer to that entry.  If there is no previous entry, return
 a @code{NULL} pointer.
 @end deftypefun
 
-@deftypefun {HIST_ENTRY *} next_history ()
+@deftypefun {HIST_ENTRY *} next_history (void)
 Move the current history offset forward to the next history entry, and
 return the a pointer to that entry.  If there is no next entry, return
 a @code{NULL} pointer.
@@ -260,26 +268,28 @@ from the current history position.  The search may be @dfn{anchored},
 meaning that the string must match at the beginning of the history entry.
 @cindex anchored search
 
-@deftypefun int history_search (char *string, int direction)
-Search the history for @var{string}, starting at the current history
-offset.  If @var{direction} < 0, then the search is through previous entries,
-else through subsequent.  If @var{string} is found, then
+@deftypefun int history_search (const char *string, int direction)
+Search the history for @var{string}, starting at the current history offset.
+If @var{direction} is less than 0, then the search is through
+previous entries, otherwise through subsequent entries.
+If @var{string} is found, then
 the current history index is set to that history entry, and the value
 returned is the offset in the line of the entry where
 @var{string} was found.  Otherwise, nothing is changed, and a -1 is
 returned.
 @end deftypefun
 
-@deftypefun int history_search_prefix (char *string, int direction)
+@deftypefun int history_search_prefix (const char *string, int direction)
 Search the history for @var{string}, starting at the current history
 offset.  The search is anchored: matching lines must begin with
-@var{string}.  If @var{direction} < 0, then the search is through previous
-entries, else through subsequent.  If @var{string} is found, then the
+@var{string}.  If @var{direction} is less than 0, then the search is
+through previous entries, otherwise through subsequent entries.
+If @var{string} is found, then the
 current history index is set to that entry, and the return value is 0. 
 Otherwise, nothing is changed, and a -1 is returned. 
 @end deftypefun
 
-@deftypefun int history_search_pos (char *string, int direction, int pos)
+@deftypefun int history_search_pos (const char *string, int direction, int pos)
 Search for @var{string} in the history list, starting at @var{pos}, an
 absolute index into the list.  If @var{direction} is negative, the search
 proceeds backward from @var{pos}, otherwise forward.  Returns the absolute
@@ -292,41 +302,46 @@ index of the history element where @var{string} was found, or -1 otherwise.
 The History library can read the history from and write it to a file.
 This section documents the functions for managing a history file.
 
-@deftypefun int read_history (char *filename)
-Add the contents of @var{filename} to the history list, a line at a
-time.  If @var{filename} is @code{NULL}, then read from
-@file{~/.history}.  Returns 0 if successful, or errno if not.
+@deftypefun int read_history (const char *filename)
+Add the contents of @var{filename} to the history list, a line at a time.
+If @var{filename} is @code{NULL}, then read from @file{~/.history}.
+Returns 0 if successful, or @code{errno} if not.
 @end deftypefun
 
-@deftypefun int read_history_range (char *filename, int from, int to)
+@deftypefun int read_history_range (const char *filename, int from, int to)
 Read a range of lines from @var{filename}, adding them to the history list.
-Start reading at line @var{from} and end at @var{to}.  If
-@var{from} is zero, start at the beginning.  If @var{to} is less than
+Start reading at line @var{from} and end at @var{to}.
+If @var{from} is zero, start at the beginning.  If @var{to} is less than
 @var{from}, then read until the end of the file.  If @var{filename} is
 @code{NULL}, then read from @file{~/.history}.  Returns 0 if successful,
 or @code{errno} if not.
 @end deftypefun
 
-@deftypefun int write_history (char *filename)
+@deftypefun int write_history (const char *filename)
 Write the current history to @var{filename}, overwriting @var{filename}
-if necessary.  If @var{filename} is
-@code{NULL}, then write the history list to @file{~/.history}.  Values
-returned are as in @code{read_history ()}.
+if necessary.
+If @var{filename} is @code{NULL}, then write the history list to
+@file{~/.history}.
+Returns 0 on success, or @code{errno} on a read or write error.
 @end deftypefun
 
-@deftypefun int append_history (int nelements, char *filename)
+@deftypefun int append_history (int nelements, const char *filename)
 Append the last @var{nelements} of the history list to @var{filename}.
+If @var{filename} is @code{NULL}, then append to @file{~/.history}.
+Returns 0 on success, or @code{errno} on a read or write error.
 @end deftypefun
 
-@deftypefun int history_truncate_file (char *filename, int nlines)
+@deftypefun int history_truncate_file (const char *filename, int nlines)
 Truncate the history file @var{filename}, leaving only the last
 @var{nlines} lines.
+If @var{filename} is @code{NULL}, then @file{~/.history} is truncated.
+Returns 0 on success, or @code{errno} on failure.
 @end deftypefun
 
 @node History Expansion
 @subsection History Expansion
 
-These functions implement @code{csh}-like history expansion.
+These functions implement history expansion.
 
 @deftypefun int history_expand (char *string, char **output)
 Expand @var{string}, placing the result into @var{output}, a pointer
@@ -334,7 +349,7 @@ to a string (@pxref{History Interaction}).  Returns:
 @table @code
 @item 0
 If no expansions took place (or, if the only change in
-the text was the de-slashifying of the history expansion
+the text was the removal of escape characters preceding the history expansion
 character);
 @item 1
 if expansions did take place;
@@ -349,12 +364,7 @@ If an error ocurred in expansion, then @var{output} contains a descriptive
 error message.
 @end deftypefun
 
-@deftypefun {char *} history_arg_extract (int first, int last, char *string)
-Extract a string segment consisting of the @var{first} through @var{last}
-arguments present in @var{string}.  Arguments are broken up as in Bash.
-@end deftypefun
-
-@deftypefun {char *} get_history_event (char *string, int *cindex, int qchar)
+@deftypefun {char *} get_history_event (const char *string, int *cindex, int qchar)
 Returns the text of the history event beginning at @var{string} +
 @var{*cindex}.  @var{*cindex} is modified to point to after the event
 specifier.  At function entry, @var{cindex} points to the index into
@@ -363,18 +373,24 @@ is a character that is allowed to end the event specification in addition
 to the ``normal'' terminating characters.
 @end deftypefun
 
-@deftypefun {char **} history_tokenize (char *string)
+@deftypefun {char **} history_tokenize (const char *string)
 Return an array of tokens parsed out of @var{string}, much as the
-shell might.  The tokens are split on white space and on the
-characters @code{()<>;&|$}, and shell quoting conventions are
-obeyed.
+shell might.  The tokens are split on the characters in the
+@var{history_word_delimiters} variable,
+and shell quoting conventions are obeyed.
+@end deftypefun
+
+@deftypefun {char *} history_arg_extract (int first, int last, const char *string)
+Extract a string segment consisting of the @var{first} through @var{last}
+arguments present in @var{string}.  Arguments are split using
+@code{history_tokenize}.
 @end deftypefun
 
 @node History Variables
 @section History Variables
 
-This section describes the externally visible variables exported by
-the GNU History Library.
+This section describes the externally-visible variables exported by
+the @sc{gnu} History Library.
 
 @deftypevar int history_base
 The logical offset of the first entry in the history list.
@@ -384,13 +400,14 @@ The logical offset of the first entry in the history list.
 The number of entries currently stored in the history list.
 @end deftypevar
 
-@deftypevar int max_input_history
+@deftypevar int history_max_entries
 The maximum number of history entries.  This must be changed using
-@code{stifle_history ()}.
+@code{stifle_history()}.
 @end deftypevar
 
 @deftypevar char history_expansion_char
-The character that starts a history event.  The default is @samp{!}.
+The character that introduces a history event.  The default is @samp{!}.
+Setting this to 0 inhibits history expansion.
 @end deftypevar
 
 @deftypevar char history_subst_char
@@ -405,15 +422,20 @@ ignored, suppressing history expansion for the remainder of the line.
 This is disabled by default.
 @end deftypevar
 
+@deftypevar {char *} history_word_delimiters
+The characters that separate tokens for @code{history_tokenize()}.
+The default value is @code{" \t\n()<>;&|"}.
+@end deftypevar
+
 @deftypevar {char *} history_no_expand_chars
 The list of characters which inhibit history expansion if found immediately
-following @var{history_expansion_char}.  The default is whitespace and
-@samp{=}.
+following @var{history_expansion_char}.  The default is space, tab, newline,
+carriage return, and @samp{=}.
 @end deftypevar
 
 @deftypevar {char *} history_search_delimiter_chars
 The list of additional characters which can delimit a history search
-string, in addition to whitespace, @samp{:} and @samp{?} in the case of
+string, in addition to space, TAB, @samp{:} and @samp{?} in the case of
 a substring search.  The default is empty.
 @end deftypevar
 
@@ -422,24 +444,30 @@ If non-zero, single-quoted words are not scanned for the history expansion
 character.  The default value is 0.
 @end deftypevar
 
-@deftypevar {Function *} history_inhibit_expansion_function
+@deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function
 This should be set to the address of a function that takes two arguments:
-a @code{char *} (@var{string}) and an integer index into that string (@var{i}).
+a @code{char *} (@var{string})
+and an @code{int} index into that string (@var{i}).
 It should return a non-zero value if the history expansion starting at
 @var{string[i]} should not be performed; zero if the expansion should
 be done.
 It is intended for use by applications like Bash that use the history
 expansion character for additional purposes.
-By default, this variable is set to NULL.
+By default, this variable is set to @code{NULL}.
 @end deftypevar
 
 @node History Programming Example
 @section History Programming Example
 
-The following program demonstrates simple use of the GNU History Library.
+The following program demonstrates simple use of the @sc{gnu} History Library.
 
 @smallexample
-main ()
+#include <stdio.h>
+#include <readline/history.h>
+
+main (argc, argv)
+     int argc;
+     char **argv;
 @{
   char line[1024], *t;
   int len, done = 0;
index 5f75f5df490438294710cd52e5938c906413c52f..418bfa8eff65d8f4ba2921bcf403a78e16602246 100644 (file)
@@ -1,7 +1,7 @@
 @ignore
 This file documents the user interface to the GNU History library.
 
-Copyright (C) 1988-1999 Free Software Foundation, Inc.
+Copyright (C) 1988-2002 Free Software Foundation, Inc.
 Authored by Brian Fox and Chet Ramey.
 
 Permission is granted to make and distribute verbatim copies of this manual
@@ -38,9 +38,9 @@ For information on using the @sc{gnu} History Library in other programs,
 see the @sc{gnu} Readline Library Manual.
 @end ifset
 @ifclear BashFeatures
-This chapter describes how to use the GNU History Library interactively,
+This chapter describes how to use the @sc{gnu} History Library interactively,
 from a user's standpoint.  It should be considered a user's guide.  For
-information on using the GNU History Library in your own programs,
+information on using the @sc{gnu} History Library in your own programs,
 @pxref{Programming with GNU History}.
 @end ifclear
 
@@ -65,36 +65,36 @@ information on using the GNU History Library in your own programs,
 @cindex command history
 @cindex history list
 
-When the @samp{-o history} option to the @code{set} builtin
+When the @option{-o history} option to the @code{set} builtin
 is enabled (@pxref{The Set Builtin}),
-the shell provides access to the @var{command history},
+the shell provides access to the @dfn{command history},
 the list of commands previously typed.
-The value of the @code{HISTSIZE} shell variable is used as the
+The value of the @env{HISTSIZE} shell variable is used as the
 number of commands to save in a history list.
-The text of the last @code{$HISTSIZE}
+The text of the last @env{$HISTSIZE}
 commands (default 500) is saved.
 The shell stores each command in the history list prior to
 parameter and variable expansion
 but after history expansion is performed, subject to the
 values of the shell variables
-@code{HISTIGNORE} and @code{HISTCONTROL}.
+@env{HISTIGNORE} and @env{HISTCONTROL}.
 
 When the shell starts up, the history is initialized from the
-file named by the @code{HISTFILE} variable (default @file{~/.bash_history}).
-The file named by the value of @code{HISTFILE} is truncated, if
+file named by the @env{HISTFILE} variable (default @file{~/.bash_history}).
+The file named by the value of @env{HISTFILE} is truncated, if
 necessary, to contain no more than the number of lines specified by
-the value of the @code{HISTFILESIZE} variable.
+the value of the @env{HISTFILESIZE} variable.
 When an interactive shell exits, the last
-@code{$HISTSIZE} lines are copied from the history list to the file
-named by @code{$HISTFILE}.
+@env{$HISTSIZE} lines are copied from the history list to the file
+named by @env{$HISTFILE}.
 If the @code{histappend} shell option is set (@pxref{Bash Builtins}),
 the lines are appended to the history file,
 otherwise the history file is overwritten.
-If @code{HISTFILE}
+If @env{HISTFILE}
 is unset, or if the history file is unwritable, the history is
 not saved.  After saving the history, the history file is truncated
-to contain no more than @code{$HISTFILESIZE}
-lines.  If @code{HISTFILESIZE} is not set, no truncation is performed.
+to contain no more than @env{$HISTFILESIZE}
+lines.  If @env{HISTFILESIZE} is not set, no truncation is performed.
 
 The builtin command @code{fc} may be used to list or edit and re-execute
 a portion of the history list.
@@ -105,7 +105,7 @@ are available in each editing mode that provide access to the
 history list (@pxref{Commands For History}).
 
 The shell allows control over which commands are saved on the history
-list.  The @code{HISTCONTROL} and @code{HISTIGNORE}
+list.  The @env{HISTCONTROL} and @env{HISTIGNORE}
 variables may be set to cause the shell to save only a subset of the
 commands entered.
 The @code{cmdhist}
@@ -141,15 +141,15 @@ command beginning with that string) or as a number (an index into the
 history list, where a negative number is used as an offset from the
 current command number).  If @var{last} is not specified it is set to
 @var{first}.  If @var{first} is not specified it is set to the previous
-command for editing and @minus{}16 for listing.  If the @samp{-l} flag is
-given, the commands are listed on standard output.  The @samp{-n} flag
-suppresses the command numbers when listing.  The @samp{-r} flag
+command for editing and @minus{}16 for listing.  If the @option{-l} flag is
+given, the commands are listed on standard output.  The @option{-n} flag
+suppresses the command numbers when listing.  The @option{-r} flag
 reverses the order of the listing.  Otherwise, the editor given by
 @var{ename} is invoked on a file containing those commands.  If
 @var{ename} is not given, the value of the following variable expansion
 is used: @code{$@{FCEDIT:-$@{EDITOR:-vi@}@}}.  This says to use the
-value of the @code{FCEDIT} variable if set, or the value of the
-@code{EDITOR} variable if that is set, or @code{vi} if neither is set.
+value of the @env{FCEDIT} variable if set, or the value of the
+@env{EDITOR} variable if that is set, or @code{vi} if neither is set.
 When editing is complete, the edited commands are echoed and executed.
 
 In the second form, @var{command} is re-executed after each instance
@@ -170,7 +170,7 @@ history -ps @var{arg}
 @end example
 
 With no options, display the history list with line numbers.
-Lines prefixed with with a @samp{*} have been modified.
+Lines prefixed with a @samp{*} have been modified.
 An argument of @var{n} lists only the last @var{n} lines.
 Options, if supplied, have the following meanings:
 
@@ -211,10 +211,10 @@ the history list as a single entry.
 
 @end table
 
-When any of the @samp{-w}, @samp{-r}, @samp{-a}, or @samp{-n} options is
+When any of the @option{-w}, @option{-r}, @option{-a}, or @option{-n} options is
 used, if @var{filename}
 is given, then it is used as the history file.  If not, then
-the value of the @code{HISTFILE} variable is used.
+the value of the @env{HISTFILE} variable is used.
 
 @end table
 @end ifset
@@ -260,9 +260,9 @@ editing buffer for further modification.
 If Readline is being used, and the @code{histreedit}
 shell option is enabled, a failed history expansion will be
 reloaded into the Readline editing buffer for correction.
-The @samp{-p} option to the @code{history} builtin command
+The @option{-p} option to the @code{history} builtin command
 may be used to see what a history expansion will do before using it.
-The @samp{-s} option to the @code{history} builtin may be used to
+The @option{-s} option to the @code{history} builtin may be used to
 add commands to the end of the history list without actually executing
 them, so that they are available for subsequent recall.
 This is most useful in conjunction with Readline.
index 3122b6c6fad87946c0bc65d18d31da6197d88133..1206cf0f235d05cf1b0a32f555b44fc871cc8b70 100644 (file)
@@ -1,6 +1,10 @@
-@set EDITION 4.1
-@set VERSION 4.1
-@set UPDATED 2000 January 19
-@set UPDATE-MONTH January 2000
+@ignore
+Copyright (C) 1988-2002 Free Software Foundation, Inc. 
+@end ignore
 
-@set LASTCHANGE Wed Jan 19 12:16:30 EST 2000
+@set EDITION 4.3
+@set VERSION 4.3
+@set UPDATED 2002 March 4
+@set UPDATE-MONTH March 2002
+
+@set LASTCHANGE Mon Mar  4 12:00:16 EST 2002
index c1ed9cf7da501714a7339893988f180c7e6f9b49..afd6ba293623ba90e5878d38d42b8b0ff5ac5f83 100644 (file)
@@ -6,9 +6,9 @@
 .\"    Case Western Reserve University
 .\"    chet@ins.CWRU.Edu
 .\"
-.\"    Last Change: Tue Jun  1 13:28:03 EDT 1999
+.\"    Last Change: Tue Jan 22 09:18:25 EST 2002
 .\"
-.TH READLINE 3 "1999 Jun 1" GNU
+.TH READLINE 3 "2002 January 22" "GNU Readline 4.3"
 .\"
 .\" File Name macro.  This used to be `.PN', for Path Name,
 .\" but Sun doesn't seem to like that very much.
@@ -23,20 +23,19 @@ readline \- get a line from a user with editing
 .nf
 .ft B
 #include <stdio.h>
-#include <readline.h>
-#include <history.h>
+#include <readline/readline.h>
+#include <readline/history.h>
 .ft
 .fi
 .LP
 .nf
-.ft B
-char *readline (prompt)
-char *prompt;
-.ft
+\fIchar *\fP
+.br
+\fBreadline\fP (\fIconst char *prompt\fP);
 .fi
 .SH COPYRIGHT
-.if n Readline is Copyright (C) 1989, 1991, 1993, 1995, 1996 by the Free Software Foundation, Inc.
-.if t Readline is Copyright \(co 1989, 1991, 1993, 1995, 1996 by the Free Software Foundation, Inc.
+.if n Readline is Copyright (C) 1989\-2002 by the Free Software Foundation, Inc.
+.if t Readline is Copyright \(co 1989\-2002 by the Free Software Foundation, Inc.
 .SH DESCRIPTION
 .LP
 .B readline
@@ -45,9 +44,10 @@ and return it, using
 .B prompt
 as a prompt.  If 
 .B prompt
-is null, no prompt is issued.  The line returned is allocated with
-.IR malloc (3),
-so the caller must free it when finished.  The line returned
+is \fBNULL\fP or the empty string, no prompt is issued.
+The line returned is allocated with
+.IR malloc (3);
+the caller must free it when finished.  The line returned
 has the final newline removed, so only the text of the line
 remains.
 .LP
@@ -57,6 +57,11 @@ line.
 By default, the line editing commands
 are similar to those of emacs.
 A vi\-style line editing interface is also available.
+.LP
+This manual page describes only the most basic use of \fBreadline\fP.
+Much more functionality is available; see
+\fIThe GNU Readline Library\fP and \fIThe GNU History Library\fP
+for additional information.
 .SH RETURN VALUE
 .LP
 .B readline
@@ -130,6 +135,7 @@ or
 .RS
 C\-Meta\-u: universal\-argument
 .RE
+.sp
 into the 
 .I inputrc
 would make M\-C\-u execute the readline command
@@ -137,15 +143,16 @@ would make M\-C\-u execute the readline command
 .PP
 The following symbolic character names are recognized while
 processing key bindings:
-.IR RUBOUT ,
 .IR DEL ,
 .IR ESC ,
+.IR ESCAPE ,
 .IR LFD ,
 .IR NEWLINE ,
 .IR RET ,
 .IR RETURN ,
-.IR SPC ,
+.IR RUBOUT ,
 .IR SPACE ,
+.IR SPC ,
 and
 .IR TAB .
 .PP
@@ -161,6 +168,7 @@ command or the text of a macro and a key sequence to which
 it should be bound. The name may be specified in one of two ways:
 as a symbolic key name, possibly with \fIMeta\-\fP or \fIControl\-\fP
 prefixes, or as a key sequence.
+.PP
 When using the form \fBkeyname\fP:\^\fIfunction-name\fP or \fImacro\fP,
 .I keyname
 is the name of a key spelled out in English.  For example:
@@ -170,7 +178,7 @@ Control\-u: universal\-argument
 .br
 Meta\-Rubout: backward\-kill\-word
 .br
-Control\-o: ">&output"
+Control\-o: "> output"
 .RE
 .LP
 In the above example,
@@ -184,7 +192,8 @@ and
 .I C\-o
 is bound to run the macro
 expressed on the right hand side (that is, to insert the text
-.I >&output
+.if t \f(CW> output\fP
+.if n ``> output''
 into the line).
 .PP
 In the second form, \fB"keyseq"\fP:\^\fIfunction\-name\fP or \fImacro\fP,
@@ -194,7 +203,8 @@ differs from
 above in that strings denoting
 an entire key sequence may be specified by placing the sequence
 within double quotes.  Some GNU Emacs style key escapes can be
-used, as in the following example.
+used, as in the following example, but the symbolic character names
+are not recognized.
 .sp
 .RS
 "\eC\-u": universal\-argument
@@ -214,8 +224,11 @@ is bound to the function
 and 
 .I "ESC [ 1 1 ~"
 is bound to insert the text
-.BR "Function Key 1" .
-The full set of GNU Emacs style escape sequences is
+.if t \f(CWFunction Key 1\fP.
+.if n ``Function Key 1''.
+.PP
+The full set of GNU Emacs style escape sequences available when specifying
+key sequences is
 .RS
 .PD 0
 .TP
@@ -232,10 +245,10 @@ an escape character
 backslash
 .TP
 .B \e"
-literal "
+literal ", a double quote
 .TP
 .B \e'
-literal '
+literal ', a single quote
 .RE
 .PD
 .PP
@@ -269,12 +282,12 @@ horizontal tab
 vertical tab
 .TP
 .B \e\fInnn\fP
-the character whose ASCII code is the octal value \fInnn\fP
+the eight-bit character whose value is the octal value \fInnn\fP
 (one to three digits)
 .TP
-.B \ex\fInnn\fP
-the character whose ASCII code is the hexadecimal value \fInnn\fP
-(one to three digits)
+.B \ex\fIHH\fP
+the eight-bit character whose value is the hexadecimal value \fIHH\fP
+(one or two hex digits)
 .RE
 .PD
 .PP
@@ -313,7 +326,8 @@ file with a statement of the form
 Except where noted, readline variables can take the values
 .B On
 or
-.BR Off .
+.B Off
+(without regard to case).
 The variables and their default values are:
 .PP
 .PD 0
@@ -351,7 +365,7 @@ on the terminal.
 .B convert\-meta (On)
 If set to \fBOn\fP, readline will convert characters with the
 eighth bit set to an ASCII key sequence
-by stripping the eighth bit and prepending an
+by stripping the eighth bit and prefixing it with an
 escape character (in effect, using escape as the \fImeta prefix\fP).
 .TP
 .B disable\-completion (Off)
@@ -361,7 +375,7 @@ mapped to \fBself-insert\fP.
 .TP
 .B editing\-mode (emacs)
 Controls whether readline begins with a set of key bindings similar
-to \fIemacs\fP or \fIvi\fP.
+to emacs or vi.
 .B editing\-mode
 can be set to either
 .B emacs
@@ -377,6 +391,11 @@ arrow keys.
 If set to \fBon\fP, tilde expansion is performed when readline
 attempts word completion.
 .TP
+.B history-preserve-point     
+If set to \fBon\fP, the history code attempts to place point at the 
+same location on each history line retrived with \fBprevious-history\fP 
+or \fBnext-history\fP.
+.TP
 .B horizontal\-scroll\-mode (Off)
 When set to \fBOn\fP, makes readline use a single line for display,
 scrolling the input horizontally on a single screen line when it
@@ -384,12 +403,12 @@ becomes longer than the screen width rather than wrapping to a new line.
 .TP
 .B input\-meta (Off)
 If set to \fBOn\fP, readline will enable eight-bit input (that is,
-it will not strip the high bit from the characters it reads),
+it will not clear the eighth bit in the characters it reads),
 regardless of what the terminal claims it can support.  The name
 .B meta\-flag
 is a synonym for this variable.
 .TP
-.B isearch\-terminators (``C\-[C\-J'')
+.B isearch\-terminators (``C\-[ C\-J'')
 The string of characters that should terminate an incremental
 search without subsequently executing the character as a command.
 If this variable has not been given a value, the characters
@@ -402,24 +421,39 @@ vi-command\fP, and
 .IR vi-insert .
 \fIvi\fP is equivalent to \fIvi-command\fP; \fIemacs\fP is
 equivalent to \fIemacs-standard\fP.  The default value is
-.IR emacs ;
-the value of
+.IR emacs .
+The value of
 .B editing\-mode
 also affects the default keymap.
 .TP
 .B mark\-directories (On)
-If set to \fBOn\fP, complete<d directory names have a slash
+If set to \fBOn\fP, completed directory names have a slash
 appended.
 .TP
 .B mark\-modified\-lines (Off)
 If set to \fBOn\fP, history lines that have been modified are displayed
 with a preceding asterisk (\fB*\fP).
 .TP
+.B mark\-symlinked\-directories (Off)
+If set to \fBOn\fP, completed names which are symbolic links to directories
+have a slash appended (subject to the value of
+\fBmark\-directories\fP).
+.TP
+.B match\-hidden\-files (On)
+This variable, when set to \fBOn\fP, causes readline to match files whose 
+names begin with a `.' (hidden files) when performing filename     
+completion, unless the leading `.' is     
+supplied by the user in the filename to be completed.
+.TP
 .B output\-meta (Off)
 If set to \fBOn\fP, readline will display characters with the
 eighth bit set directly rather than as a meta-prefixed escape
 sequence.
 .TP
+.B page\-completions (On)
+If set to \fBOn\fP, readline uses an internal \fImore\fP-like pager
+to display a screenful of possible completions at a time.
+.TP
 .B print\-completions\-horizontally (Off)
 If set to \fBOn\fP, readline will display completions with matches
 sorted horizontally in alphabetical order, rather than down the screen.
@@ -433,7 +467,7 @@ matches to be listed immediately instead of ringing the bell.
 .TP
 .B visible\-stats (Off)
 If set to \fBOn\fP, a character denoting a file's type as reported  
-by \fBstat\fP(2) is appended to the filename when listing possible
+by \fIstat\fP(2) is appended to the filename when listing possible
 completions.
 .PD
 .SS Conditional Constructs
@@ -481,7 +515,7 @@ key sequence that quotes the current or previous word in Bash:
 .sp 1
 .RS
 .nf
-\fB$if\fP bash
+\fB$if\fP Bash
 # Quote the current or previous word
 "\eC-xq": "\eeb\e"\eef\e""
 \fB$endif\fP
@@ -519,22 +553,27 @@ As each character of the search string is typed, readline displays
 the next entry from the history matching the string typed so far.
 An incremental search requires only as many characters as needed to
 find the desired history entry.
-The characters present in the value of the \fIisearch-terminators\fP
+To search backward in the history for a particular string, type
+\fBC\-r\fP.  Typing \fBC\-s\fP searches forward through the history.
+The characters present in the value of the \fBisearch-terminators\fP
 variable are used to terminate an incremental search.
-If that variable has not been assigned a value the Escape and
-Control-J characters will terminate an incremental search.
-Control-G will abort an incremental search and restore the original
+If that variable has not been assigned a value the \fIEscape\fP and
+\fBC\-J\fP characters will terminate an incremental search.
+\fBC\-G\fP will abort an incremental search and restore the original
 line.
 When the search is terminated, the history entry containing the
 search string becomes the current line.
-To find other matching entries in the history list, type Control-S or
-Control-R as appropriate.
+.PP
+To find other matching entries in the history list, type \fBC\-s\fP or
+\fBC\-r\fP as appropriate.
 This will search backward or forward in the history for the next
 line matching the search string typed so far.
 Any other key sequence bound to a readline command will terminate
 the search and execute that command.
-For instance, a \fInewline\fP will terminate the search and accept
+For instance, a newline will terminate the search and accept
 the line, thereby executing the command from the history list.
+A movement command will terminate the search, make the last line found
+the current line, and begin editing.
 .PP
 Non-incremental searches read the entire search string before starting
 to search for matching history lines.  The search string may be
@@ -544,6 +583,11 @@ typed by the user or be part of the contents of the current line.
 The following is a list of the names of the commands and the default
 key sequences to which they are bound.
 Command names without an accompanying key sequence are unbound by default.
+.PP
+In the following descriptions, \fIpoint\fP refers to the current cursor
+position, and \fImark\fP refers to a cursor position saved by the
+\fBset\-mark\fP command.
+The text between the point and mark is referred to as the \fIregion\fP.
 .SS Commands for Moving
 .PP
 .PD 0
@@ -581,9 +625,11 @@ Refresh the current line.
 .PD 0
 .TP
 .B accept\-line (Newline, Return)
-Accept the line regardless of where the cursor is.  If this line is
-non-empty, add it to the history list. If the line is a modified
-history line, then restore the history line to its original state.
+Accept the line regardless of where the cursor is.
+If this line is
+non-empty, it may be added to the history list for future recall with
+\fBadd_history()\fP.
+If the line is a modified history line, the history line is restored to its original state.
 .TP
 .B previous\-history (C\-p)
 Fetch the previous command from the history list, moving back in
@@ -629,8 +675,8 @@ This is a non-incremental search.
 .TP
 .B yank\-nth\-arg (M\-C\-y)
 Insert the first argument to the previous command (usually
-the second word on the previous line) at point (the current
-cursor position).  With an argument
+the second word on the previous line) at point.
+With an argument
 .IR n ,
 insert the \fIn\fPth word from the previous command (the words
 in the previous command begin with word 0).  A negative argument
@@ -649,9 +695,9 @@ list, inserting the last argument of each line in turn.
 .PD 0
 .TP
 .B delete\-char (C\-d)
-Delete the character under the cursor.  If point is at the
+Delete the character at point.  If point is at the
 beginning of the line, there are no characters in the line, and
-the last character typed was not bound to \fBBdelete\-char\fP, then return
+the last character typed was not bound to \fBdelete\-char\fP, then return
 .SM
 .BR EOF .
 .TP
@@ -662,7 +708,7 @@ save the deleted text on the kill ring.
 .B forward\-backward\-delete\-char   
 Delete the character under the cursor, unless the cursor is at the
 end of the line, in which case the character behind the cursor is
-deleted.  By default, this is not bound to a key.
+deleted.
 .TP
 .B quoted\-insert (C\-q, C\-v)
 Add the next character that you type to the line verbatim.  This is
@@ -675,13 +721,17 @@ Insert a tab character.
 Insert the character typed.
 .TP
 .B transpose\-chars (C\-t)
-Drag the character before point forward over the character at point.
-Point moves forward as well.  If point is at the end of the line, then
-transpose the two characters before point.  Negative arguments don't work.
+Drag the character before point forward over the character at point,
+moving point forward as well.
+If point is at the end of the line, then this transposes
+the two characters before point.
+Negative arguments have no effect.
 .TP
 .B transpose\-words (M\-t)
-Drag the word behind the cursor past the word in front of the cursor
-moving the cursor over that word as well.
+Drag the word before point past the word after point,
+moving point over that word as well.
+If point is at the end of the line, this transposes
+the last two words on the line.
 .TP
 .B upcase\-word (M\-u)
 Uppercase the current (or following) word.  With a negative argument,
@@ -694,13 +744,24 @@ lowercase the previous word, but do not move point.
 .B capitalize\-word (M\-c)
 Capitalize the current (or following) word.  With a negative argument,
 capitalize the previous word, but do not move point.
+.TP
+.B overwrite\-mode
+Toggle overwrite mode.  With an explicit positive numeric argument,
+switches to overwrite mode.  With an explicit non-positive numeric
+argument, switches to insert mode.  This command affects only
+\fBemacs\fP mode; \fBvi\fP mode does overwrite differently.
+Each call to \fIreadline()\fP starts in insert mode.
+In overwrite mode, characters bound to \fBself\-insert\fP replace   
+the text at point rather than pushing the text to the right.
+Characters bound to \fBbackward\-delete\-char\fP replace the character
+before point with a space.  By default, this command is unbound.
 .PD
 .SS Killing and Yanking
 .PP
 .PD 0
 .TP
 .B kill\-line (C\-k)
-Kill the text from the current cursor position to the end of the line.
+Kill the text from point to the end of the line.
 .TP
 .B backward\-kill\-line (C\-x Rubout)
 Kill backward to the beginning of the line.
@@ -711,22 +772,20 @@ The killed text is saved on the kill-ring.
 .\" There is no real difference between this and backward-kill-line
 .TP
 .B kill\-whole\-line
-Kill all characters on the current line, no matter where the
-cursor is.
+Kill all characters on the current line, no matter where point is.
 .TP
 .B kill\-word  (M\-d)
-Kill from the cursor to the end of the current word, or if between
+Kill from point the end of the current word, or if between
 words, to the end of the next word.  Word boundaries are the same as
 those used by \fBforward\-word\fP.
 .TP
 .B backward\-kill\-word (M\-Rubout)
-Kill the word behind the cursor.  Word boundaries are the same as
-those used by \fBbackward\-word\fP.
+Kill the word behind point.
+Word boundaries are the same as those used by \fBbackward\-word\fP.
 .TP
 .B unix\-word\-rubout (C\-w)
-Kill the word behind the cursor, using white space as a word boundary.
-The word boundaries are different from
-.BR backward\-kill\-word .
+Kill the word behind point, using white space as a word boundary.
+The killed text is saved on the kill-ring.
 .TP
 .B delete\-horizontal\-space (M\-\e)
 Delete all spaces and tabs around point.
@@ -747,7 +806,7 @@ Copy the word following point to the kill buffer.
 The word boundaries are the same as \fBforward\-word\fP.
 .TP
 .B yank (C\-y)
-Yank the top of the kill ring into the buffer at the cursor.
+Yank the top of the kill ring into the buffer at point.
 .TP
 .B yank\-pop (M\-y)
 Rotate the kill ring, and yank the new top.  Only works following
@@ -808,8 +867,9 @@ Similar to \fBcomplete\fP, but replaces the word to be completed
 with a single match from the list of possible completions.
 Repeated execution of \fBmenu\-complete\fP steps through the list
 of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung and the
-original text is restored.
+At the end of the list of completions, the bell is rung
+(subject to the setting of \Bbell\-style\fP)
+and the original text is restored.
 An argument of \fIn\fP moves \fIn\fP positions forward in the list
 of matches; a negative argument may be used to move backward 
 through the list.
@@ -821,7 +881,6 @@ Deletes the character under the cursor if not at the beginning or
 end of the line (like \fBdelete-char\fP).
 If at the end of the line, behaves identically to
 \fBpossible-completions\fP.
-This command is unbound by default.
 .PD
 .SS Keyboard Macros
 .PP
@@ -874,8 +933,8 @@ command enough times to return the line to its initial state.
 .B tilde\-expand (M\-&)
 Perform tilde expansion on the current word.
 .TP
-.B set\-mark (C\-@, M-<space>)
-Set the mark to the current point.  If a
+.B set\-mark (C\-@, M\-<space>)
+Set the mark to the point.  If a
 numeric argument is supplied, the mark is set to that position.
 .TP
 .B exchange\-point\-and\-mark (C\-x C\-x)
@@ -891,11 +950,20 @@ A character is read and point is moved to the previous occurrence of that
 character.  A negative count searches for subsequent occurrences.
 .TP
 .B insert\-comment (M\-#)
-The value of the readline
+Without a numeric argument, the value of the readline
+.B comment\-begin
+variable is inserted at the beginning of the current line.
+If a numeric argument is supplied, this command acts as a toggle:  if
+the characters at the beginning of the line do not match the value   
+of \fBcomment\-begin\fP, the value is inserted, otherwise             
+the characters in \fBcomment-begin\fP are deleted from the beginning of
+the line.
+In either case, the line is accepted as if a newline had been typed.
+The default value of
 .B comment\-begin
-variable is inserted at the beginning of the current line, and the line
-is accepted as if a newline had been typed.  This makes the current line
-a shell comment.
+makes the current line a shell comment.
+If a numeric argument causes the comment character to be removed, the line
+will be executed by the shell.
 .TP
 .B dump\-functions
 Print all of the functions and their key bindings to the
@@ -918,7 +986,7 @@ of an \fIinputrc\fP file.
 .B emacs\-editing\-mode (C\-e)
 When in
 .B vi
-editing mode, this causes a switch to
+command mode, this causes a switch to
 .B emacs
 editing mode.
 .TP
@@ -932,25 +1000,23 @@ editing mode.
 .SH DEFAULT KEY BINDINGS
 .LP
 The following is a list of the default emacs and vi bindings.
-Characters with the 8th bit set are written as M\-<character>, and
+Characters with the eighth bit set are written as M\-<character>, and
 are referred to as
 .I metafied
 characters.
 The printable ASCII characters not mentioned in the list of emacs
 standard bindings are bound to the
-.I self\-insert
+.B self\-insert
 function, which just inserts the given character into the input line.
 In vi insertion mode, all characters not specifically mentioned are
 bound to
-.IR self\-insert .
+.BR self\-insert .
 Characters assigned to signal generation by
 .IR stty (1)
 or the terminal driver, such as C-Z or C-C,
 retain that function.
-Upper and lower case
-.I metafied
-characters are bound to the same function in the emacs mode
-meta keymap.
+Upper and lower case metafied characters are bound to the same function in
+the emacs mode meta keymap.
 The remaining characters are unbound, which causes readline
 to ring the bell (subject to the setting of the
 .B bell\-style
@@ -1036,7 +1102,7 @@ Emacs Meta bindings
 "M-Y"  yank-pop
 "M-\e"  delete-horizontal-space
 "M-~"  tilde-expand
-"M-C-?"  backward-delete-word
+"M-C-?"  backward-kill-word
 "M-_"  yank-last-arg
 .PP
 Emacs Control-X bindings
@@ -1096,6 +1162,7 @@ VI Command Mode functions
 "C-V"  quoted-insert
 "C-W"  unix-word-rubout
 "C-Y"  yank
+"C-_"  vi-undo
 "\^ "  forward-char
 "#"  insert-comment
 "$"  end-of-line
@@ -1150,7 +1217,7 @@ VI Command Mode functions
 "r"  vi-change-char
 "s"  vi-subst
 "t"  vi-char-search
-"u"  undo
+"u"  vi-undo
 "w"  vi-next-word
 "x"  vi-delete
 "y"  vi-yank-to
index 759f0eb3d40aac283bf244352a69614011c9a0c2..1ffebad08a73e5f7c646ff584870987613b43db6 100644 (file)
@@ -18,7 +18,7 @@ This document describes the GNU Readline Library, a utility which aids
 in the consistency of user interface across discrete programs that need
 to provide a command line interface.
 
-Copyright (C) 1988-1999 Free Software Foundation, Inc.
+Copyright (C) 1988-2002 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -73,7 +73,7 @@ except that this permission notice may be stated in a translation approved
 by the Free Software Foundation.
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1988-1999 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
 @end titlepage
 
 @ifinfo
index 51c340a99a2163bbeaf036661e408ba5e64fbc75..037e824e28aef27ace0b0f6edaaa31a55be22a64 100644 (file)
@@ -8,7 +8,7 @@ This document describes the GNU Readline Library, a utility for aiding
 in the consitency of user interface across discrete programs that need
 to provide a command line interface.
 
-Copyright (C) 1988, 1994, 1996, 1998, 1999 Free Software Foundation, Inc.
+Copyright (C) 1988-2002 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -35,9 +35,9 @@ by the Foundation.
 @node Programming with GNU Readline
 @chapter Programming with GNU Readline
 
-This chapter describes the interface between the GNU Readline Library and
+This chapter describes the interface between the @sc{gnu} Readline Library and
 other programs.  If you are a programmer, and you wish to include the
-features found in GNU Readline
+features found in @sc{gnu} Readline
 such as completion, line editing, and interactive history manipulation
 in your own programs, this section is for you.
 
@@ -61,18 +61,20 @@ Many programs provide a command line interface, such as @code{mail},
 @code{ftp}, and @code{sh}.  For such programs, the default behaviour of
 Readline is sufficient.  This section describes how to use Readline in
 the simplest way possible, perhaps to replace calls in your code to
-@code{gets()} or @code{fgets ()}.
+@code{gets()} or @code{fgets()}.
 
 @findex readline
 @cindex readline, function
-The function @code{readline ()} prints a prompt and then reads and returns
-a single line of text from the user.  The line @code{readline}
-returns is allocated with @code{malloc ()}; you should @code{free ()}
-the line when you are done with it.  The declaration for @code{readline}
-in ANSI C is
+
+The function @code{readline()} prints a prompt @var{prompt}
+and then reads and returns a single line of text from the user.
+If @var{prompt} is @code{NULL} or the empty string, no prompt is displayed.
+The line @code{readline} returns is allocated with @code{malloc()};
+the caller should @code{free()} the line when it has finished with it.
+The declaration for @code{readline} in ANSI C is
 
 @example
-@code{char *readline (char *@var{prompt});}
+@code{char *readline (const char *@var{prompt});}
 @end example
 
 @noindent
@@ -90,7 +92,7 @@ line is empty at that point, then @code{(char *)NULL} is returned.
 Otherwise, the line is ended just as if a newline had been typed.
 
 If you want the user to be able to get at the line later, (with
-@key{C-p} for example), you must call @code{add_history ()} to save the
+@key{C-p} for example), you must call @code{add_history()} to save the
 line away in a @dfn{history} list of such lines.
 
 @example
@@ -102,19 +104,20 @@ For full details on the GNU History Library, see the associated manual.
 
 It is preferable to avoid saving empty lines on the history list, since
 users rarely have a burning need to reuse a blank line.  Here is
-a function which usefully replaces the standard @code{gets ()} library
+a function which usefully replaces the standard @code{gets()} library
 function, and has the advantage of no static buffer to overflow:
 
 @example
 /* A static variable for holding the line. */
 static char *line_read = (char *)NULL;
 
-/* Read a string, and return a pointer to it.  Returns NULL on EOF. */
+/* Read a string, and return a pointer to it.
+   Returns NULL on EOF. */
 char *
 rl_gets ()
 @{
-  /* If the buffer has already been allocated, return the memory
-     to the free pool. */
+  /* If the buffer has already been allocated,
+     return the memory to the free pool. */
   if (line_read)
     @{
       free (line_read);
@@ -124,7 +127,8 @@ rl_gets ()
   /* Get a line from the user. */
   line_read = readline ("");
 
-  /* If the line has any text in it, save it on the history. */
+  /* If the line has any text in it,
+     save it on the history. */
   if (line_read && *line_read)
     add_history (line_read);
 
@@ -135,17 +139,17 @@ rl_gets ()
 This function gives the user the default behaviour of @key{TAB}
 completion: completion on file names.  If you do not want Readline to
 complete on filenames, you can change the binding of the @key{TAB} key
-with @code{rl_bind_key ()}.
+with @code{rl_bind_key()}.
 
 @example
-@code{int rl_bind_key (int @var{key}, int (*@var{function})());}
+@code{int rl_bind_key (int @var{key}, rl_command_func_t *@var{function});}
 @end example
 
-@code{rl_bind_key ()} takes two arguments: @var{key} is the character that
+@code{rl_bind_key()} takes two arguments: @var{key} is the character that
 you want to bind, and @var{function} is the address of the function to
-call when @var{key} is pressed.  Binding @key{TAB} to @code{rl_insert ()}
+call when @var{key} is pressed.  Binding @key{TAB} to @code{rl_insert()}
 makes @key{TAB} insert itself.
-@code{rl_bind_key ()} returns non-zero if @var{key} is not a valid
+@code{rl_bind_key()} returns non-zero if @var{key} is not a valid
 ASCII character code (between 0 and 255).
 
 Thus, to disable the default @key{TAB} behavior, the following suffices:
@@ -154,7 +158,7 @@ Thus, to disable the default @key{TAB} behavior, the following suffices:
 @end example
 
 This code should be executed once at the start of your program; you
-might write a function called @code{initialize_readline ()} which
+might write a function called @code{initialize_readline()} which
 performs this and other desired initializations, such as installing
 custom completers (@pxref{Custom Completers}).
 
@@ -174,45 +178,82 @@ in any file that uses Readline's features.  Since some of the definitions
 in @code{readline.h} use the @code{stdio} library, the file
 @code{<stdio.h>} should be included before @code{readline.h}.
 
+@code{readline.h} defines a C preprocessor variable that should
+be treated as an integer, @code{RL_READLINE_VERSION}, which may
+be used to conditionally compile application code depending on
+the installed Readline version.  The value is a hexadecimal
+encoding of the major and minor version numbers of the library,
+of the form 0x@var{MMmm}.  @var{MM} is the two-digit major
+version number; @var{mm} is the two-digit minor version number. 
+For Readline 4.2, for example, the value of
+@code{RL_READLINE_VERSION} would be @code{0x0402}. 
+
 @menu
-* The Function Type::  C declarations to make code readable.
+* Readline Typedefs::  C declarations to make code readable.
 * Function Writing::   Variables and calling conventions.
 @end menu
 
-@node The Function Type
-@subsection The Function Type
+@node Readline Typedefs
+@subsection Readline Typedefs
 
-For readabilty, we declare a new type of object, called
-@dfn{Function}.  A @code{Function} is a C function which
-returns an @code{int}.  The type declaration for @code{Function} is:
+For readabilty, we declare a number of new object types, all pointers
+to functions.
 
-@noindent
-@code{typedef int Function ();}
+The reason for declaring these new types is to make it easier to write
+code describing pointers to C functions with appropriately prototyped
+arguments and return values.
 
-The reason for declaring this new type is to make it easier to write
-code describing pointers to C functions.  Let us say we had a variable
-called @var{func} which was a pointer to a function.  Instead of the
-classic C declaration
+For instance, say we want to declare a variable @var{func} as a pointer
+to a function which takes two @code{int} arguments and returns an
+@code{int} (this is the type of all of the Readline bindable functions).
+Instead of the classic C declaration
 
-@code{int (*)()func;}
+@code{int (*func)();}
 
 @noindent
-we may write
+or the ANSI-C style declaration
 
-@code{Function *func;}
+@code{int (*func)(int, int);}
 
 @noindent
-Similarly, there are
+we may write
 
-@example
-typedef void VFunction ();
-typedef char *CPFunction (); @r{and}
-typedef char **CPPFunction ();
-@end example
+@code{rl_command_func_t *func;}
 
-@noindent
-for functions returning no value, @code{pointer to char}, and
-@code{pointer to pointer to char}, respectively.
+The full list of function pointer types available is
+
+@table @code
+@item typedef int rl_command_func_t (int, int);
+
+@item typedef char *rl_compentry_func_t (const char *, int);
+
+@item typedef char **rl_completion_func_t (const char *, int, int);
+
+@item typedef char *rl_quote_func_t (char *, int, char *);
+
+@item typedef char *rl_dequote_func_t (char *, int);
+
+@item typedef int rl_compignore_func_t (char **);
+
+@item typedef void rl_compdisp_func_t (char **, int, int);
+
+@item typedef int rl_hook_func_t (void);
+
+@item typedef int rl_getc_func_t (FILE *);
+
+@item typedef int rl_linebuf_func_t (char *, int);
+
+@item typedef int rl_intfunc_t (int);
+@item #define rl_ivoidfunc_t rl_hook_func_t
+@item typedef int rl_icpfunc_t (char *);
+@item typedef int rl_icppfunc_t (char **);
+
+@item typedef void rl_voidfunc_t (void);
+@item typedef void rl_vintfunc_t (int);
+@item typedef void rl_vcpfunc_t (char *);
+@item typedef void rl_vcppfunc_t (char **);
+
+@end table
 
 @node Function Writing
 @subsection Writing a New Function
@@ -224,7 +265,7 @@ variables that describe the current state of the line read so far.
 The calling sequence for a command @code{foo} looks like
 
 @example
-@code{foo (int count, int key)}
+@code{int foo (int count, int key)}
 @end example
 
 @noindent
@@ -241,6 +282,9 @@ to do something useful with both negative and positive arguments.
 At the very least, it should be aware that it can be passed a
 negative argument.
 
+A command function should return 0 if its action completes successfully,
+and a non-zero value if some error occurs.
+
 @node Readline Variables
 @section Readline Variables
 
@@ -265,7 +309,7 @@ The number of characters present in @code{rl_line_buffer}.  When
 @end deftypevar
 
 @deftypevar int rl_mark
-The mark (saved position) in the current line.  If set, the mark
+The @var{mark} (saved position) in the current line.  If set, the mark
 and point define a @emph{region}.
 @end deftypevar
 
@@ -274,11 +318,23 @@ Setting this to a non-zero value causes Readline to return the current
 line immediately.
 @end deftypevar
 
+@deftypevar int rl_num_chars_to_read
+Setting this to a positive value before calling @code{readline()} causes
+Readline to return after accepting that many characters, rather
+than reading up to a character bound to @code{accept-line}.
+@end deftypevar
+
 @deftypevar int rl_pending_input
 Setting this to a value makes it the next keystroke read.  This is a
 way to stuff a single character into the input stream.
 @end deftypevar
 
+@deftypevar int rl_dispatching
+Set to a non-zero value if a function is being called from a key binding;
+zero otherwise.  Application functions can test this to discover whether
+they were called directly or by Readline's dispatching mechanism.
+@end deftypevar
+
 @deftypevar int rl_erase_empty_line
 Setting this to a non-zero value causes Readline to completely erase
 the current line, including any prompt, any time a newline is typed as
@@ -288,7 +344,9 @@ the beginning of the newly-blank line.
 
 @deftypevar {char *} rl_prompt
 The prompt Readline uses.  This is set from the argument to
-@code{readline ()}, and should not be assigned to directly.
+@code{readline()}, and should not be assigned to directly.
+The @code{rl_set_prompt()} function (@pxref{Redisplay}) may
+be used to modify the prompt string after calling @code{readline()}.
 @end deftypevar
 
 @deftypevar int rl_already_prompted
@@ -301,15 +359,30 @@ The calling application is responsible for managing the value; Readline
 never sets it.
 @end deftypevar
 
-@deftypevar {char *} rl_library_version
+@deftypevar {const char *} rl_library_version
 The version number of this revision of the library.
 @end deftypevar
 
-@deftypevar {char *} rl_terminal_name
-The terminal type, used for initialization.
+@deftypevar int rl_readline_version
+An integer encoding the current version of the library.  The encoding is
+of the form 0x@var{MMmm}, where @var{MM} is the two-digit major version
+number, and @var{mm} is the two-digit minor version number.
+For example, for Readline-4.2, @code{rl_readline_version} would have the
+value 0x0402.
+@end deftypevar
+
+@deftypevar {int} rl_gnu_readline_p
+Always set to 1, denoting that this is @sc{gnu} readline rather than some
+emulation.
+@end deftypevar
+
+@deftypevar {const char *} rl_terminal_name
+The terminal type, used for initialization.  If not set by the application,
+Readline sets this to the value of the @env{TERM} environment variable
+the first time it is called.
 @end deftypevar
 
-@deftypevar {char *} rl_readline_name
+@deftypevar {const char *} rl_readline_name
 This variable is set to a unique name by each application using Readline.
 The value allows conditional parsing of the inputrc file
 (@pxref{Conditional Init Constructs}).
@@ -317,42 +390,68 @@ The value allows conditional parsing of the inputrc file
 
 @deftypevar {FILE *} rl_instream
 The stdio stream from which Readline reads input.
+If @code{NULL}, Readline defaults to @var{stdin}.
 @end deftypevar
 
 @deftypevar {FILE *} rl_outstream
 The stdio stream to which Readline performs output.
+If @code{NULL}, Readline defaults to @var{stdout}.
+@end deftypevar
+
+@deftypevar {rl_command_func_t *} rl_last_func
+The address of the last command function Readline executed.  May be used to
+test whether or not a function is being executed twice in succession, for
+example.
 @end deftypevar
 
-@deftypevar {Function *} rl_startup_hook
+@deftypevar {rl_hook_func_t *} rl_startup_hook
 If non-zero, this is the address of a function to call just
 before @code{readline} prints the first prompt.
 @end deftypevar
 
-@deftypevar {Function *} rl_pre_input_hook
+@deftypevar {rl_hook_func_t *} rl_pre_input_hook
 If non-zero, this is the address of a function to call after
 the first prompt has been printed and just before @code{readline}
 starts reading input characters.
 @end deftypevar
 
-@deftypevar {Function *} rl_event_hook
+@deftypevar {rl_hook_func_t *} rl_event_hook
 If non-zero, this is the address of a function to call periodically
-when readline is waiting for terminal input.
+when Readline is waiting for terminal input.
+By default, this will be called at most ten times a second if there
+is no keyboard input.
 @end deftypevar
 
-@deftypevar {Function *} rl_getc_function
-If non-zero, @code{readline} will call indirectly through this pointer
+@deftypevar {rl_getc_func_t *} rl_getc_function
+If non-zero, Readline will call indirectly through this pointer
 to get a character from the input stream.  By default, it is set to
-@code{rl_getc}, the default @code{readline} character input function
-(@pxref{Utility Functions}).
+@code{rl_getc}, the default Readline character input function
+(@pxref{Character Input}).
 @end deftypevar
 
-@deftypevar {VFunction *} rl_redisplay_function
-If non-zero, @code{readline} will call indirectly through this pointer
+@deftypevar {rl_voidfunc_t *} rl_redisplay_function
+If non-zero, Readline will call indirectly through this pointer
 to update the display with the current contents of the editing buffer.
-By default, it is set to @code{rl_redisplay}, the default @code{readline}
+By default, it is set to @code{rl_redisplay}, the default Readline
 redisplay function (@pxref{Redisplay}).
 @end deftypevar
 
+@deftypevar {rl_vintfunc_t *} rl_prep_term_function
+If non-zero, Readline will call indirectly through this pointer
+to initialize the terminal.  The function takes a single argument, an
+@code{int} flag that says whether or not to use eight-bit characters.
+By default, this is set to @code{rl_prep_terminal}
+(@pxref{Terminal Management}).
+@end deftypevar
+
+@deftypevar {rl_voidfunc_t *} rl_deprep_term_function
+If non-zero, Readline will call indirectly through this pointer
+to reset the terminal.  This function should undo the effects of
+@code{rl_prep_term_function}.
+By default, this is set to @code{rl_deprep_terminal}
+(@pxref{Terminal Management}).
+@end deftypevar
+
 @deftypevar {Keymap} rl_executing_keymap
 This variable is set to the keymap (@pxref{Keymaps}) in which the
 currently executing readline function was found.
@@ -363,6 +462,79 @@ This variable is set to the keymap (@pxref{Keymaps}) in which the
 last key binding occurred.
 @end deftypevar 
 
+@deftypevar {char *} rl_executing_macro
+This variable is set to the text of any currently-executing macro.
+@end deftypevar
+
+@deftypevar {int} rl_readline_state
+A variable with bit values that encapsulate the current Readline state.
+A bit is set with the @code{RL_SETSTATE} macro, and unset with the
+@code{RL_UNSETSTATE} macro.  Use the @code{RL_ISSTATE} macro to test
+whether a particular state bit is set.  Current state bits include:
+
+@table @code
+@item RL_STATE_NONE
+Readline has not yet been called, nor has it begun to intialize.
+@item RL_STATE_INITIALIZING
+Readline is initializing its internal data structures.
+@item RL_STATE_INITIALIZED
+Readline has completed its initialization.
+@item RL_STATE_TERMPREPPED
+Readline has modified the terminal modes to do its own input and redisplay.
+@item RL_STATE_READCMD
+Readline is reading a command from the keyboard.
+@item RL_STATE_METANEXT
+Readline is reading more input after reading the meta-prefix character.
+@item RL_STATE_DISPATCHING
+Readline is dispatching to a command.
+@item RL_STATE_MOREINPUT
+Readline is reading more input while executing an editing command.
+@item RL_STATE_ISEARCH
+Readline is performing an incremental history search.
+@item RL_STATE_NSEARCH
+Readline is performing a non-incremental history search.
+@item RL_STATE_SEARCH
+Readline is searching backward or forward through the history for a string.
+@item RL_STATE_NUMERICARG
+Readline is reading a numeric argument.
+@item RL_STATE_MACROINPUT
+Readline is currently getting its input from a previously-defined keyboard
+macro.
+@item RL_STATE_MACRODEF
+Readline is currently reading characters defining a keyboard macro.
+@item RL_STATE_OVERWRITE
+Readline is in overwrite mode.
+@item RL_STATE_COMPLETING
+Readline is performing word completion.
+@item RL_STATE_SIGHANDLER
+Readline is currently executing the readline signal handler.
+@item RL_STATE_UNDOING
+Readline is performing an undo.
+@item RL_STATE_DONE
+Readline has read a key sequence bound to @code{accept-line}
+and is about to return the line to the caller.
+@end table
+
+@end deftypevar
+
+@deftypevar {int} rl_explicit_arg
+Set to a non-zero value if an explicit numeric argument was specified by
+the user.  Only valid in a bindable command function.
+@end deftypevar
+
+@deftypevar {int} rl_numeric_arg
+Set to the value of any numeric argument explicitly specified by the user
+before executing the current Readline function.  Only valid in a bindable
+command function.
+@end deftypevar
+
+@deftypevar {int} rl_editing_mode
+Set to a value denoting Readline's current editing mode.  A value of
+@var{1} means Readline is currently in emacs mode; @var{0}
+means that vi mode is active.
+@end deftypevar
+
+
 @node Readline Convenience Functions
 @section Readline Convenience Functions
 
@@ -375,8 +547,12 @@ last key binding occurred.
 * Allowing Undoing::   How to make your functions undoable.
 * Redisplay::          Functions to control line display.
 * Modifying Text::     Functions to modify @code{rl_line_buffer}.
+* Character Input::    Functions to read keyboard input.
+* Terminal Management::        Functions to manage terminal settings.
 * Utility Functions::  Generally useful functions and hooks.
+* Miscellaneous Functions::    Functions that don't fall into any category.
 * Alternate Interface::        Using Readline in a `callback' fashion.
+* A Readline Example::         An example Readline function.
 @end menu
 
 @node Function Naming
@@ -396,10 +572,10 @@ This binds the keystroke @key{Meta-Rubout} to the function
 programmer, should bind the functions you write to descriptive names as
 well.  Readline provides a function for doing that:
 
-@deftypefun int rl_add_defun (char *name, Function *function, int key)
+@deftypefun int rl_add_defun (const char *name, rl_command_func_t *function, int key)
 Add @var{name} to the list of named functions.  Make @var{function} be
 the function that gets called.  If @var{key} is not -1, then bind it to
-@var{function} using @code{rl_bind_key ()}.
+@var{function} using @code{rl_bind_key()}.
 @end deftypefun
 
 Using this function alone is sufficient for most applications.  It is
@@ -416,16 +592,17 @@ association between the keys that the user types and the functions that
 get run.  You can make your own keymaps, copy existing keymaps, and tell
 Readline which keymap to use.
 
-@deftypefun Keymap rl_make_bare_keymap ()
+@deftypefun Keymap rl_make_bare_keymap (void)
 Returns a new, empty keymap.  The space for the keymap is allocated with
-@code{malloc ()}; you should @code{free ()} it when you are done.
+@code{malloc()}; the caller should free it by calling
+@code{rl_discard_keymap()} when done.
 @end deftypefun
 
 @deftypefun Keymap rl_copy_keymap (Keymap map)
 Return a new keymap which is a copy of @var{map}.
 @end deftypefun
 
-@deftypefun Keymap rl_make_keymap ()
+@deftypefun Keymap rl_make_keymap (void)
 Return a new keymap with the printing characters bound to rl_insert,
 the lowercase Meta characters bound to run their equivalents, and
 the Meta digits bound to produce numeric arguments.
@@ -438,7 +615,7 @@ Free the storage associated with @var{keymap}.
 Readline has several internal keymaps.  These functions allow you to
 change which keymap is active.
 
-@deftypefun Keymap rl_get_keymap ()
+@deftypefun Keymap rl_get_keymap (void)
 Returns the currently active keymap.
 @end deftypefun
 
@@ -446,7 +623,7 @@ Returns the currently active keymap.
 Makes @var{keymap} the currently active keymap.
 @end deftypefun
 
-@deftypefun Keymap rl_get_keymap_by_name (char *name)
+@deftypefun Keymap rl_get_keymap_by_name (const char *name)
 Return the keymap matching @var{name}.  @var{name} is one which would
 be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
 @end deftypefun
@@ -459,28 +636,28 @@ be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
 @node Binding Keys
 @subsection Binding Keys
 
-You associate keys with functions through the keymap.  Readline has
-several internal keymaps: @code{emacs_standard_keymap},
+Key sequences are associate with functions through the keymap.
+Readline has several internal keymaps: @code{emacs_standard_keymap},
 @code{emacs_meta_keymap}, @code{emacs_ctlx_keymap},
 @code{vi_movement_keymap}, and @code{vi_insertion_keymap}.
 @code{emacs_standard_keymap} is the default, and the examples in
 this manual assume that.
 
-Since @code{readline} installs a set of default key bindings the first
+Since @code{readline()} installs a set of default key bindings the first
 time it is called, there is always the danger that a custom binding
-installed before the first call to @code{readline} will be overridden.
+installed before the first call to @code{readline()} will be overridden.
 An alternate mechanism is to install custom key bindings in an
 initialization function assigned to the @code{rl_startup_hook} variable
 (@pxref{Readline Variables}).
 
 These functions manage key bindings.
 
-@deftypefun int rl_bind_key (int key, Function *function)
+@deftypefun int rl_bind_key (int key, rl_command_func_t *function)
 Binds @var{key} to @var{function} in the currently active keymap.
 Returns non-zero in the case of an invalid @var{key}.
 @end deftypefun
 
-@deftypefun int rl_bind_key_in_map (int key, Function *function, Keymap map)
+@deftypefun int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map)
 Bind @var{key} to @var{function} in @var{map}.  Returns non-zero in the case
 of an invalid @var{key}.
 @end deftypefun
@@ -495,15 +672,21 @@ Bind @var{key} to the null function in @var{map}.
 Returns non-zero in case of error.
 @end deftypefun
 
-@deftypefun int rl_unbind_function_in_map (Function *function, Keymap map)
+@deftypefun int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map)
 Unbind all keys that execute @var{function} in @var{map}.
 @end deftypefun
 
-@deftypefun int rl_unbind_command_in_map (char *command, Keymap map)
+@deftypefun int rl_unbind_command_in_map (const char *command, Keymap map)
 Unbind all keys that are bound to @var{command} in @var{map}.
 @end deftypefun
 
-@deftypefun int rl_generic_bind (int type, char *keyseq, char *data, Keymap map)
+@deftypefun int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map)
+Bind the key sequence represented by the string @var{keyseq} to the function
+@var{function}.  This makes new keymaps as
+necessary.  The initial keymap in which to do bindings is @var{map}.
+@end deftypefun
+
+@deftypefun int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
 Bind the key sequence represented by the string @var{keyseq} to the arbitrary
 pointer @var{data}.  @var{type} says what kind of data is pointed to by
 @var{data}; this can be a function (@code{ISFUNC}), a macro
@@ -517,7 +700,7 @@ perform any key bindings and variable assignments found
 (@pxref{Readline Init File}).
 @end deftypefun
 
-@deftypefun int rl_read_init_file (char *filename)
+@deftypefun int rl_read_init_file (const char *filename)
 Read keybindings and variable assignments from @var{filename}
 (@pxref{Readline Init File}).
 @end deftypefun
@@ -526,25 +709,26 @@ Read keybindings and variable assignments from @var{filename}
 @subsection Associating Function Names and Bindings
 
 These functions allow you to find out what keys invoke named functions
-and the functions invoked by a particular key sequence.
+and the functions invoked by a particular key sequence.  You may also
+associate a new function name with an arbitrary function.
 
-@deftypefun {Function *} rl_named_function (char *name)
+@deftypefun {rl_command_func_t *} rl_named_function (const char *name)
 Return the function with name @var{name}.
 @end deftypefun
 
-@deftypefun {Function *} rl_function_of_keyseq (char *keyseq, Keymap map, int *type)
+@deftypefun {rl_command_func_t *} rl_function_of_keyseq (const char *keyseq, Keymap map, int *type)
 Return the function invoked by @var{keyseq} in keymap @var{map}.
-If @var{map} is NULL, the current keymap is used.  If @var{type} is
-not NULL, the type of the object is returned in it (one of @code{ISFUNC},
-@code{ISKMAP}, or @code{ISMACR}).
+If @var{map} is @code{NULL}, the current keymap is used.  If @var{type} is
+not @code{NULL}, the type of the object is returned in the @code{int} variable
+it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}).
 @end deftypefun
 
-@deftypefun {char **} rl_invoking_keyseqs (Function *function)
+@deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function)
 Return an array of strings representing the key sequences used to
 invoke @var{function} in the current keymap.
 @end deftypefun
 
-@deftypefun {char **} rl_invoking_keyseqs_in_map (Function *function, Keymap map)
+@deftypefun {char **} rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map)
 Return an array of strings representing the key sequences used to
 invoke @var{function} in the keymap @var{map}.
 @end deftypefun
@@ -556,14 +740,19 @@ the list is formatted in such a way that it can be made part of an
 @code{inputrc} file and re-read.
 @end deftypefun
 
-@deftypefun void rl_list_funmap_names ()
+@deftypefun void rl_list_funmap_names (void)
 Print the names of all bindable Readline functions to @code{rl_outstream}.
 @end deftypefun
 
-@deftypefun {char **} rl_funmap_names ()
+@deftypefun {const char **} rl_funmap_names (void)
 Return a NULL terminated array of known function names.  The array is
 sorted.  The array itself is allocated, but not the strings inside.  You
-should free () the array when you done, but not the pointrs.
+should @code{free()} the array when you are done, but not the pointers.
+@end deftypefun
+
+@deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function)
+Add @var{name} to the list of bindable Readline command names, and make
+@var{function} the function to be called when @var{name} is invoked.
 @end deftypefun
 
 @node Allowing Undoing
@@ -571,41 +760,40 @@ should free () the array when you done, but not the pointrs.
 
 Supporting the undo command is a painless thing, and makes your
 functions much more useful.  It is certainly easy to try
-something if you know you can undo it.  I could use an undo function for
-the stock market.
+something if you know you can undo it.
 
 If your function simply inserts text once, or deletes text once, and
-uses @code{rl_insert_text ()} or @code{rl_delete_text ()} to do it, then
+uses @code{rl_insert_text()} or @code{rl_delete_text()} to do it, then
 undoing is already done for you automatically.
 
 If you do multiple insertions or multiple deletions, or any combination
 of these operations, you should group them together into one operation.
-This is done with @code{rl_begin_undo_group ()} and
-@code{rl_end_undo_group ()}.
+This is done with @code{rl_begin_undo_group()} and
+@code{rl_end_undo_group()}.
 
 The types of events that can be undone are:
 
-@example
+@smallexample
 enum undo_code @{ UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END @}; 
-@end example
+@end smallexample
 
 Notice that @code{UNDO_DELETE} means to insert some text, and
 @code{UNDO_INSERT} means to delete some text.  That is, the undo code
-tells undo what to undo, not how to undo it.  @code{UNDO_BEGIN} and
-@code{UNDO_END} are tags added by @code{rl_begin_undo_group ()} and
-@code{rl_end_undo_group ()}.
+tells what to undo, not how to undo it.  @code{UNDO_BEGIN} and
+@code{UNDO_END} are tags added by @code{rl_begin_undo_group()} and
+@code{rl_end_undo_group()}.
 
-@deftypefun int rl_begin_undo_group ()
+@deftypefun int rl_begin_undo_group (void)
 Begins saving undo information in a group construct.  The undo
-information usually comes from calls to @code{rl_insert_text ()} and
-@code{rl_delete_text ()}, but could be the result of calls to
-@code{rl_add_undo ()}.
+information usually comes from calls to @code{rl_insert_text()} and
+@code{rl_delete_text()}, but could be the result of calls to
+@code{rl_add_undo()}.
 @end deftypefun
 
-@deftypefun int rl_end_undo_group ()
+@deftypefun int rl_end_undo_group (void)
 Closes the current undo group started with @code{rl_begin_undo_group
-()}.  There should be one call to @code{rl_end_undo_group ()}
-for each call to @code{rl_begin_undo_group ()}.
+()}.  There should be one call to @code{rl_end_undo_group()}
+for each call to @code{rl_begin_undo_group()}.
 @end deftypefun
 
 @deftypefun void rl_add_undo (enum undo_code what, int start, int end, char *text)
@@ -613,17 +801,17 @@ Remember how to undo an event (according to @var{what}).  The affected
 text runs from @var{start} to @var{end}, and encompasses @var{text}.
 @end deftypefun
 
-@deftypefun void free_undo_list ()
+@deftypefun void rl_free_undo_list (void)
 Free the existing undo list.
 @end deftypefun
 
-@deftypefun int rl_do_undo ()
+@deftypefun int rl_do_undo (void)
 Undo the first thing on the undo list.  Returns @code{0} if there was
 nothing to undo, non-zero if something was undone.
 @end deftypefun
 
 Finally, if you neither insert nor delete text, but directly modify the
-existing text (e.g., change its case), call @code{rl_modifying ()}
+existing text (e.g., change its case), call @code{rl_modifying()}
 once, just before you modify the text.  You must supply the indices of
 the text range that you are going to modify.
 
@@ -636,22 +824,22 @@ that text.
 @node Redisplay
 @subsection Redisplay
 
-@deftypefun void rl_redisplay ()
+@deftypefun void rl_redisplay (void)
 Change what's displayed on the screen to reflect the current contents
 of @code{rl_line_buffer}.
 @end deftypefun
 
-@deftypefun int rl_forced_update_display ()
+@deftypefun int rl_forced_update_display (void)
 Force the line to be updated and redisplayed, whether or not
 Readline thinks the screen display is correct.
 @end deftypefun
 
-@deftypefun int rl_on_new_line ()
+@deftypefun int rl_on_new_line (void)
 Tell the update functions that we have moved onto a new (empty) line,
 usually after ouputting a newline.
 @end deftypefun
 
-@deftypefun int rl_on_new_line_with_prompt ()
+@deftypefun int rl_on_new_line_with_prompt (void)
 Tell the update functions that we have moved onto a new line, with
 @var{rl_prompt} already displayed.
 This could be used by applications that want to output the prompt string
@@ -660,40 +848,72 @@ redisplay.
 It should be used after setting @var{rl_already_prompted}.
 @end deftypefun
 
-@deftypefun int rl_reset_line_state ()
+@deftypefun int rl_reset_line_state (void)
 Reset the display state to a clean state and redisplay the current line
 starting on a new line.
 @end deftypefun
 
-@deftypefun int rl_message (va_alist)
-The arguments are a string as would be supplied to @code{printf}.  The
-resulting string is displayed in the @dfn{echo area}.  The echo area
+@deftypefun int rl_crlf (void)
+Move the cursor to the start of the next screen line.
+@end deftypefun
+
+@deftypefun int rl_show_char (int c)
+Display character @var{c} on @code{rl_outstream}.
+If Readline has not been set to display meta characters directly, this
+will convert meta characters to a meta-prefixed key sequence.
+This is intended for use by applications which wish to do their own
+redisplay.
+@end deftypefun
+
+@deftypefun int rl_message (const char *, @dots{})
+The arguments are a format string as would be supplied to @code{printf},
+possibly containing conversion specifications such as @samp{%d}, and
+any additional arguments necessary to satisfy the conversion specifications.
+The resulting string is displayed in the @dfn{echo area}.  The echo area
 is also used to display numeric arguments and search strings.
 @end deftypefun
 
-@deftypefun int rl_clear_message ()
+@deftypefun int rl_clear_message (void)
 Clear the message in the echo area.
 @end deftypefun
 
-@deftypefun void rl_save_prompt ()
+@deftypefun void rl_save_prompt (void)
 Save the local Readline prompt display state in preparation for
-displaying a new message in the message area with @code{rl_message}.
+displaying a new message in the message area with @code{rl_message()}.
 @end deftypefun
 
-@deftypefun void rl_restore_prompt ()
+@deftypefun void rl_restore_prompt (void)
 Restore the local Readline prompt display state saved by the most
 recent call to @code{rl_save_prompt}.
 @end deftypefun
 
+@deftypefun int rl_expand_prompt (char *prompt)
+Expand any special character sequences in @var{prompt} and set up the
+local Readline prompt redisplay variables.
+This function is called by @code{readline()}.  It may also be called to
+expand the primary prompt if the @code{rl_on_new_line_with_prompt()}
+function or @code{rl_already_prompted} variable is used.
+It returns the number of visible characters on the last line of the
+(possibly multi-line) prompt.
+@end deftypefun
+
+@deftypefun int rl_set_prompt (const char *prompt)
+Make Readline use @var{prompt} for subsequent redisplay.  This calls
+@code{rl_expand_prompt()} to expand the prompt and sets @code{rl_prompt}
+to the result.
+@end deftypefun
+
 @node Modifying Text
 @subsection Modifying Text
 
-@deftypefun int rl_insert_text (char *text)
+@deftypefun int rl_insert_text (const char *text)
 Insert @var{text} into the line at the current cursor position.
+Returns the number of characters inserted.
 @end deftypefun
 
 @deftypefun int rl_delete_text (int start, int end)
 Delete the text between @var{start} and @var{end} in the current line.
+Returns the number of characters deleted.
 @end deftypefun
 
 @deftypefun {char *} rl_copy_text (int start, int end)
@@ -710,53 +930,113 @@ the text is appended, otherwise prepended.  If the last command was
 not a kill, a new kill ring slot is used.
 @end deftypefun
 
-@node Utility Functions
-@subsection Utility Functions
+@deftypefun int rl_push_macro_input (char *macro)
+Cause @var{macro} to be inserted into the line, as if it had been invoked
+by a key bound to a macro.  Not especially useful; use
+@code{rl_insert_text()} instead.
+@end deftypefun
 
-@deftypefun int rl_read_key ()
-Return the next character available.  This handles input inserted into
-the input stream via @var{pending input} (@pxref{Readline Variables})
-and @code{rl_stuff_char ()}, macros, and characters read from the keyboard.
+@node Character Input
+@subsection Character Input
+
+@deftypefun int rl_read_key (void)
+Return the next character available from Readline's current input stream.
+This handles input inserted into
+the input stream via @var{rl_pending_input} (@pxref{Readline Variables})
+and @code{rl_stuff_char()}, macros, and characters read from the keyboard.
+While waiting for input, this function will call any function assigned to
+the @code{rl_event_hook} variable.
 @end deftypefun
 
-@deftypefun int rl_getc (FILE *)
-Return the next character available from the keyboard.
+@deftypefun int rl_getc (FILE *stream)
+Return the next character available from @var{stream}, which is assumed to
+be the keyboard.
 @end deftypefun
 
 @deftypefun int rl_stuff_char (int c)
 Insert @var{c} into the Readline input stream.  It will be "read"
 before Readline attempts to read characters from the terminal with
-@code{rl_read_key ()}.
+@code{rl_read_key()}.  Up to 512 characters may be pushed back.
+@code{rl_stuff_char} returns 1 if the character was successfully inserted;
+0 otherwise.
 @end deftypefun
 
-@deftypefun int rl_extend_line_buffer (int len)
-Ensure that @code{rl_line_buffer} has enough space to hold @var{len}
-characters, possibly reallocating it if necessary.
+@deftypefun int rl_execute_next (int c)
+Make @var{c} be the next command to be executed when @code{rl_read_key()}
+is called.  This sets @var{rl_pending_input}.
 @end deftypefun
 
-@deftypefun int rl_initialize ()
-Initialize or re-initialize Readline's internal state.
+@deftypefun int rl_clear_pending_input (void)
+Unset @var{rl_pending_input}, effectively negating the effect of any
+previous call to @code{rl_execute_next()}.  This works only if the
+pending input has not already been read with @code{rl_read_key()}.
+@end deftypefun
+
+@deftypefun int rl_set_keyboard_input_timeout (int u)
+While waiting for keyboard input in @code{rl_read_key()}, Readline will
+wait for @var{u} microseconds for input before calling any function
+assigned to @code{rl_event_hook}.  The default waiting period is
+one-tenth of a second.  Returns the old timeout value.
+@end deftypefun
+
+@node Terminal Management
+@subsection Terminal Management
+
+@deftypefun void rl_prep_terminal (int meta_flag)
+Modify the terminal settings for Readline's use, so @code{readline()}
+can read a single character at a time from the keyboard.
+The @var{meta_flag} argument should be non-zero if Readline should
+read eight-bit input.
+@end deftypefun
+
+@deftypefun void rl_deprep_terminal (void)
+Undo the effects of @code{rl_prep_terminal()}, leaving the terminal in
+the state in which it was before the most recent call to
+@code{rl_prep_terminal()}.
+@end deftypefun
+
+@deftypefun void rl_tty_set_default_bindings (Keymap kmap)
+Read the operating system's terminal editing characters (as would be displayed
+by @code{stty}) to their Readline equivalents.  The bindings are performed
+in @var{kmap}.
 @end deftypefun
 
-@deftypefun int rl_reset_terminal (char *terminal_name)
+@deftypefun int rl_reset_terminal (const char *terminal_name)
 Reinitialize Readline's idea of the terminal settings using
 @var{terminal_name} as the terminal type (e.g., @code{vt100}).
-If @var{terminal_name} is NULL, the value of the @code{TERM}
+If @var{terminal_name} is @code{NULL}, the value of the @code{TERM}
 environment variable is used.
 @end deftypefun
 
-@deftypefun int alphabetic (int c)
-Return 1 if @var{c} is an alphabetic character.
+@node Utility Functions
+@subsection Utility Functions
+
+@deftypefun void rl_replace_line (const char *text, int clear_undo)
+Replace the contents of @code{rl_line_buffer} with @var{text}.
+The point and mark are preserved, if possible.
+If @var{clear_undo} is non-zero, the undo list associated with the
+current line is cleared.
 @end deftypefun
 
-@deftypefun int numeric (int c)
-Return 1 if @var{c} is a numeric character.
+@deftypefun int rl_extend_line_buffer (int len)
+Ensure that @code{rl_line_buffer} has enough space to hold @var{len}
+characters, possibly reallocating it if necessary.
 @end deftypefun
 
-@deftypefun int ding ()
+@deftypefun int rl_initialize (void)
+Initialize or re-initialize Readline's internal state.
+It's not strictly necessary to call this; @code{readline()} calls it before
+reading any input.
+@end deftypefun
+
+@deftypefun int rl_ding (void)
 Ring the terminal bell, obeying the setting of @code{bell-style}.
 @end deftypefun
 
+@deftypefun int rl_alphabetic (int c)
+Return 1 if @var{c} is an alphabetic character.
+@end deftypefun
+
 @deftypefun void rl_display_match_list (char **matches, int len, int max)
 A convenience function for displaying a list of strings in
 columnar format on Readline's output stream.  @code{matches} is the list
@@ -767,34 +1047,80 @@ the setting of @code{print-completions-horizontally} to select how the
 matches are displayed (@pxref{Readline Init File Syntax}).
 @end deftypefun
 
-The following are implemented as macros, defined in @code{chartypes.h}.
+The following are implemented as macros, defined in @code{chardefs.h}.
+Applications should refrain from using them.
 
-@deftypefun int uppercase_p (int c)
+@deftypefun int _rl_uppercase_p (int c)
 Return 1 if @var{c} is an uppercase alphabetic character.
 @end deftypefun
 
-@deftypefun int lowercase_p (int c)
+@deftypefun int _rl_lowercase_p (int c)
 Return 1 if @var{c} is a lowercase alphabetic character.
 @end deftypefun
 
-@deftypefun int digit_p (int c)
+@deftypefun int _rl_digit_p (int c)
 Return 1 if @var{c} is a numeric character.
 @end deftypefun
 
-@deftypefun int to_upper (int c)
+@deftypefun int _rl_to_upper (int c)
 If @var{c} is a lowercase alphabetic character, return the corresponding
 uppercase character.
 @end deftypefun
 
-@deftypefun int to_lower (int c)
+@deftypefun int _rl_to_lower (int c)
 If @var{c} is an uppercase alphabetic character, return the corresponding
 lowercase character.
 @end deftypefun
 
-@deftypefun int digit_value (int c)
+@deftypefun int _rl_digit_value (int c)
 If @var{c} is a number, return the value it represents.
 @end deftypefun
 
+@node Miscellaneous Functions
+@subsection Miscellaneous Functions
+
+@deftypefun int rl_macro_bind (const char *keyseq, const char *macro, Keymap map)
+Bind the key sequence @var{keyseq} to invoke the macro @var{macro}.
+The binding is performed in @var{map}.  When @var{keyseq} is invoked, the
+@var{macro} will be inserted into the line.  This function is deprecated;
+use @code{rl_generic_bind()} instead.
+@end deftypefun
+
+@deftypefun void rl_macro_dumper (int readable)
+Print the key sequences bound to macros and their values, using
+the current keymap, to @code{rl_outstream}.
+If @var{readable} is non-zero, the list is formatted in such a way
+that it can be made part of an @code{inputrc} file and re-read.
+@end deftypefun
+
+@deftypefun int rl_variable_bind (const char *variable, const char *value)
+Make the Readline variable @var{variable} have @var{value}.
+This behaves as if the readline command
+@samp{set @var{variable} @var{value}} had been executed in an @code{inputrc}
+file (@pxref{Readline Init File Syntax}).
+@end deftypefun
+
+@deftypefun void rl_variable_dumper (int readable)
+Print the readline variable names and their current values
+to @code{rl_outstream}.
+If @var{readable} is non-zero, the list is formatted in such a way
+that it can be made part of an @code{inputrc} file and re-read.
+@end deftypefun
+
+@deftypefun int rl_set_paren_blink_timeout (int u)
+Set the time interval (in microseconds) that Readline waits when showing
+a balancing character when @code{blink-matching-paren} has been enabled.
+@end deftypefun
+
+@deftypefun {char *} rl_get_termcap (const char *cap)
+Retrieve the string value of the termcap capability @var{cap}.
+Readline fetches the termcap entry for the current terminal name and
+uses those capabilities to move around the screen line and perform other
+terminal-specific operations, like erasing a line.  Readline does not
+use all of a terminal's capabilities, and this function will return
+values for only those capabilities Readline uses.
+@end deftypefun
+
 @node Alternate Interface
 @subsection Alternate Interface
 
@@ -805,28 +1131,40 @@ on various file descriptors.  To accomodate this need, readline can
 also be invoked as a `callback' function from an event loop.  There
 are functions available to make this easy.
 
-@deftypefun void rl_callback_handler_install (char *prompt, Vfunction *lhandler)
+@deftypefun void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler)
 Set up the terminal for readline I/O and display the initial
 expanded value of @var{prompt}.  Save the value of @var{lhandler} to
-use as a callback when a complete line of input has been entered.
+use as a function to call when a complete line of input has been entered.
+The function takes the text of the line as an argument.
 @end deftypefun
 
-@deftypefun void rl_callback_read_char ()
+@deftypefun void rl_callback_read_char (void)
 Whenever an application determines that keyboard input is available, it
 should call @code{rl_callback_read_char()}, which will read the next
-character from the current input source.  If that character completes the
-line, @code{rl_callback_read_char} will invoke the @var{lhandler}
-function saved by @code{rl_callback_handler_install} to process the
-line.  @code{EOF} is  indicated by calling @var{lhandler} with a
+character from the current input source.
+If that character completes the line, @code{rl_callback_read_char} will
+invoke the @var{lhandler} function saved by @code{rl_callback_handler_install}
+to process the line.
+Before calling the @var{lhandler} function, the terminal settings are
+reset to the values they had before calling
+@code{rl_callback_handler_install}.
+If the @var{lhandler} function returns,
+the terminal settings are modified for Readline's use again.
+@code{EOF} is  indicated by calling @var{lhandler} with a
 @code{NULL} line.
 @end deftypefun
 
-@deftypefun void rl_callback_handler_remove ()
+@deftypefun void rl_callback_handler_remove (void)
 Restore the terminal to its initial state and remove the line handler.
 This may be called from within a callback as well as independently.
+If the @var{lhandler} installed by @code{rl_callback_handler_install}
+does not exit the program, either this function or the function referred
+to by the value of @code{rl_deprep_term_function} should be called before
+the program exits to reset the terminal settings.
 @end deftypefun
 
-@subsection An Example
+@node A Readline Example
+@subsection A Readline Example
 
 Here is a function which changes lowercase characters to their uppercase
 equivalents, and uppercase characters to lowercase.  If
@@ -875,16 +1213,16 @@ invert_case_line (count, key)
       end = temp;
     @}
 
-  /* Tell readline that we are modifying the line, so it will save
-     the undo information. */
+  /* Tell readline that we are modifying the line,
+     so it will save the undo information. */
   rl_modifying (start, end);
 
   for (i = start; i != end; i++)
     @{
-      if (uppercase_p (rl_line_buffer[i]))
-        rl_line_buffer[i] = to_lower (rl_line_buffer[i]);
-      else if (lowercase_p (rl_line_buffer[i]))
-        rl_line_buffer[i] = to_upper (rl_line_buffer[i]);
+      if (_rl_uppercase_p (rl_line_buffer[i]))
+        rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
+      else if (_rl_lowercase_p (rl_line_buffer[i]))
+        rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
     @}
   /* Move point to on top of the last character changed. */
   rl_point = (direction == 1) ? end - 1 : start;
@@ -897,44 +1235,44 @@ invert_case_line (count, key)
 
 Signals are asynchronous events sent to a process by the Unix kernel,
 sometimes on behalf of another process.  They are intended to indicate
-exceptional events, like a user pressing the interrupt key on his
-terminal, or a network connection being broken.  There is a class of
-signals that can be sent to the process currently reading input from
-the keyboard.  Since Readline changes the terminal attributes when it
-is called, it needs to perform special processing when a signal is
-received to restore the terminal to a sane state, or provide application
-writers with functions to do so manually.
+exceptional events, like a user pressing the interrupt key on his terminal,
+or a network connection being broken.  There is a class of signals that can
+be sent to the process currently reading input from the keyboard.  Since
+Readline changes the terminal attributes when it is called, it needs to
+perform special processing when such a signal is received in order to
+restore the terminal to a sane state, or provide application writers with
+functions to do so manually. 
 
 Readline contains an internal signal handler that is installed for a
 number of signals (@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM},
 @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}).
 When one of these signals is received, the signal handler
 will reset the terminal attributes to those that were in effect before
-@code{readline ()} was called, reset the signal handling to what it was
-before @code{readline ()} was called, and resend the signal to the calling
+@code{readline()} was called, reset the signal handling to what it was
+before @code{readline()} was called, and resend the signal to the calling
 application.
 If and when the calling application's signal handler returns, Readline
 will reinitialize the terminal and continue to accept input.
 When a @code{SIGINT} is received, the Readline signal handler performs
 some additional work, which will cause any partially-entered line to be
-aborted (see the description of @code{rl_free_line_state ()}).
+aborted (see the description of @code{rl_free_line_state()} below).
 
 There is an additional Readline signal handler, for @code{SIGWINCH}, which
 the kernel sends to a process whenever the terminal's size changes (for
 example, if a user resizes an @code{xterm}).  The Readline @code{SIGWINCH}
-handler updates Readline's internal screen size state, and then calls any
-@code{SIGWINCH} signal handler the calling application has installed. 
+handler updates Readline's internal screen size information, and then calls
+any @code{SIGWINCH} signal handler the calling application has installed. 
 Readline calls the application's @code{SIGWINCH} signal handler without
 resetting the terminal to its original state.  If the application's signal
 handler does more than update its idea of the terminal size and return (for
 example, a @code{longjmp} back to a main processing loop), it @emph{must}
-call @code{rl_cleanup_after_signal ()} (described below), to restore the
+call @code{rl_cleanup_after_signal()} (described below), to restore the
 terminal state. 
 
 Readline provides two variables that allow application writers to
 control whether or not it will catch certain signals and act on them
 when they are received.  It is important that applications change the
-values of these variables only when calling @code{readline ()}, not in
+values of these variables only when calling @code{readline()}, not in
 a signal handler, so Readline's internal signal state is not corrupted.
 
 @deftypevar int rl_catch_signals
@@ -960,7 +1298,7 @@ and internal state cleanup upon receipt of a signal.
 
 @deftypefun void rl_cleanup_after_signal (void)
 This function will reset the state of the terminal to what it was before
-@code{readline ()} was called, and remove the Readline signal handlers for
+@code{readline()} was called, and remove the Readline signal handlers for
 all signals, depending on the values of @code{rl_catch_signals} and
 @code{rl_catch_sigwinch}.
 @end deftypefun
@@ -969,7 +1307,7 @@ all signals, depending on the values of @code{rl_catch_signals} and
 This will free any partial state associated with the current input line
 (undo information, any partial history entry, any partially-entered
 keyboard macro, and any partially-entered numeric argument).  This
-should be called before @code{rl_cleanup_after_signal ()}.  The
+should be called before @code{rl_cleanup_after_signal()}.  The
 Readline signal handler for @code{SIGINT} calls this to abort the
 current input line.
 @end deftypefun
@@ -981,11 +1319,26 @@ handlers, depending on the values of @code{rl_catch_signals} and
 @end deftypefun
 
 If an application does not wish Readline to catch @code{SIGWINCH}, it may
-call @code{rl_resize_terminal ()} to force Readline to update its idea of
-the terminal size when a @code{SIGWINCH} is received.
+call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force
+Readline to update its idea of the terminal size when a @code{SIGWINCH}
+is received.
 
 @deftypefun void rl_resize_terminal (void)
-Update Readline's internal screen size.
+Update Readline's internal screen size by reading values from the kernel.
+@end deftypefun
+
+@deftypefun void rl_set_screen_size (int rows, int cols)
+Set Readline's idea of the terminal size to @var{rows} rows and
+@var{cols} columns.
+@end deftypefun
+
+If an application does not want to install a @code{SIGWINCH} handler, but
+is still interested in the screen dimensions, Readline's idea of the screen
+size may be queried.
+
+@deftypefun void rl_get_screen_size (int *rows, int *cols)
+Return Readline's idea of the terminal's size in the
+variables pointed to by the arguments.
 @end deftypefun
 
 The following functions install and remove Readline's signal handlers.
@@ -999,7 +1352,7 @@ Install Readline's signal handler for @code{SIGINT}, @code{SIGQUIT},
 
 @deftypefun int rl_clear_signals (void)
 Remove all of the Readline signal handlers installed by
-@code{rl_set_signals ()}.
+@code{rl_set_signals()}.
 @end deftypefun
 
 @node Custom Completers
@@ -1034,30 +1387,31 @@ There are three major functions used to perform completion:
 
 @enumerate
 @item
-The user-interface function @code{rl_complete ()}.  This function is
-called with the same arguments as other Readline
-functions intended for interactive use:  @var{count} and
-@var{invoking_key}.  It isolates the word to be completed and calls
-@code{completion_matches ()} to generate a list of possible completions.
+The user-interface function @code{rl_complete()}.  This function is
+called with the same arguments as other bindable Readline functions:
+@var{count} and @var{invoking_key}.
+It isolates the word to be completed and calls
+@code{rl_completion_matches()} to generate a list of possible completions.
 It then either lists the possible completions, inserts the possible
 completions, or actually performs the
 completion, depending on which behavior is desired.
 
 @item
-The internal function @code{completion_matches ()} uses your
-@dfn{generator} function to generate the list of possible matches, and
-then returns the array of these matches.  You should place the address
-of your generator function in @code{rl_completion_entry_function}.
+The internal function @code{rl_completion_matches()} uses an
+application-supplied @dfn{generator} function to generate the list of
+possible matches, and then returns the array of these matches.
+The caller should place the address of its generator function in
+@code{rl_completion_entry_function}.
 
 @item
 The generator function is called repeatedly from
-@code{completion_matches ()}, returning a string each time.  The
+@code{rl_completion_matches()}, returning a string each time.  The
 arguments to the generator function are @var{text} and @var{state}.
 @var{text} is the partial word to be completed.  @var{state} is zero the
 first time the function is called, allowing the generator to perform
 any necessary initialization, and a positive non-zero integer for
-each subsequent call.  When the generator function returns
-@code{(char *)NULL} this signals @code{completion_matches ()} that there are
+each subsequent call.  The generator function returns
+@code{(char *)NULL} to inform @code{rl_completion_matches()} that there are
 no more possibilities left.  Usually the generator function computes the
 list of possible completions when @var{state} is zero, and returns them
 one at a time on subsequent calls.  Each string the generator function
@@ -1069,14 +1423,15 @@ frees the strings when it has finished with them.
 @deftypefun int rl_complete (int ignore, int invoking_key)
 Complete the word at or before point.  You have supplied the function
 that does the initial simple matching selection algorithm (see
-@code{completion_matches ()}).  The default is to do filename completion.
+@code{rl_completion_matches()}).  The default is to do filename completion.
 @end deftypefun
 
-@deftypevar {Function *} rl_completion_entry_function
-This is a pointer to the generator function for @code{completion_matches
-()}.  If the value of @code{rl_completion_entry_function} is
-@code{(Function *)NULL} then the default filename generator function,
-@code{filename_completion_function ()}, is used.
+@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
+This is a pointer to the generator function for
+@code{rl_completion_matches()}.
+If the value of @code{rl_completion_entry_function} is
+@code{NULL} then the default filename generator
+function, @code{rl_filename_completion_function()}, is used.
 @end deftypevar
 
 @node Completion Functions
@@ -1097,47 +1452,55 @@ performing partial completion.
 @deftypefun int rl_complete (int ignore, int invoking_key)
 Complete the word at or before point.  You have supplied the function
 that does the initial simple matching selection algorithm (see
-@code{completion_matches ()} and @code{rl_completion_entry_function}).
+@code{rl_completion_matches()} and @code{rl_completion_entry_function}).
 The default is to do filename
-completion.  This calls @code{rl_complete_internal ()} with an
+completion.  This calls @code{rl_complete_internal()} with an
 argument depending on @var{invoking_key}.
 @end deftypefun
 
-@deftypefun int rl_possible_completions (int count, int invoking_key))
+@deftypefun int rl_possible_completions (int count, int invoking_key)
 List the possible completions.  See description of @code{rl_complete
-()}.  This calls @code{rl_complete_internal ()} with an argument of
+()}.  This calls @code{rl_complete_internal()} with an argument of
 @samp{?}.
 @end deftypefun
 
-@deftypefun int rl_insert_completions (int count, int invoking_key))
+@deftypefun int rl_insert_completions (int count, int invoking_key)
 Insert the list of possible completions into the line, deleting the
-partially-completed word.  See description of @code{rl_complete ()}.
-This calls @code{rl_complete_internal ()} with an argument of @samp{*}.
+partially-completed word.  See description of @code{rl_complete()}.
+This calls @code{rl_complete_internal()} with an argument of @samp{*}.
+@end deftypefun
+
+@deftypefun int rl_completion_mode (rl_command_func_t *cfunc)
+Returns the apppriate value to pass to @code{rl_complete_internal()}
+depending on whether @var{cfunc} was called twice in succession and
+the value of the @code{show-all-if-ambiguous} variable.
+Application-specific completion functions may use this function to present
+the same interface as @code{rl_complete()}.
 @end deftypefun
 
-@deftypefun {char **} completion_matches (char *text, CPFunction *entry_func)
-Returns an array of @code{(char *)} which is a list of completions for
-@var{text}.  If there are no completions, returns @code{(char **)NULL}.
+@deftypefun {char **} rl_completion_matches (const char *text, rl_compentry_func_t *entry_func)
+Returns an array of strings which is a list of completions for
+@var{text}.  If there are no completions, returns @code{NULL}.
 The first entry in the returned array is the substitution for @var{text}.
 The remaining entries are the possible completions.  The array is
 terminated with a @code{NULL} pointer.
 
 @var{entry_func} is a function of two args, and returns a
-@code{(char *)}.  The first argument is @var{text}.  The second is a
+@code{char *}.  The first argument is @var{text}.  The second is a
 state argument; it is zero on the first call, and non-zero on subsequent
 calls.  @var{entry_func} returns a @code{NULL}  pointer to the caller
 when there are no more matches.
 @end deftypefun
 
-@deftypefun {char *} filename_completion_function (char *text, int state)
-A generator function for filename completion in the general case.  Note
-that completion in Bash is a little different because of all
-the pathnames that must be followed when looking up completions for a
-command.  The Bash source is a useful reference for writing custom
-completion functions.
+@deftypefun {char *} rl_filename_completion_function (const char *text, int state)
+A generator function for filename completion in the general case.
+@var{text} is a partial filename.
+The Bash source is a useful reference for writing custom
+completion functions (the Bash completion functions call this and other
+Readline functions).
 @end deftypefun
 
-@deftypefun {char *} username_completion_function (char *text, int state)
+@deftypefun {char *} rl_username_completion_function (const char *text, int state)
 A completion generator for usernames.  @var{text} contains a partial
 username preceded by a random character (usually @samp{~}).  As with all
 completion generators, @var{state} is zero on the first call and non-zero
@@ -1147,26 +1510,29 @@ for subsequent calls.
 @node Completion Variables
 @subsection Completion Variables
 
-@deftypevar {Function *} rl_completion_entry_function
-A pointer to the generator function for @code{completion_matches ()}.
-@code{NULL} means to use @code{filename_completion_function ()}, the default
+@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
+A pointer to the generator function for @code{rl_completion_matches()}.
+@code{NULL} means to use @code{rl_filename_completion_function()}, the default
 filename completer.
 @end deftypevar
 
-@deftypevar {CPPFunction *} rl_attempted_completion_function
+@deftypevar {rl_completion_func_t *} rl_attempted_completion_function
 A pointer to an alternative function to create matches.
 The function is called with @var{text}, @var{start}, and @var{end}.
-@var{start} and @var{end} are indices in @code{rl_line_buffer} saying
-what the boundaries of @var{text} are.  If this function exists and
-returns @code{NULL}, or if this variable is set to @code{NULL}, then
-@code{rl_complete ()} will call the value of
+@var{start} and @var{end} are indices in @code{rl_line_buffer} defining
+the boundaries of @var{text}, which is a character string.
+If this function exists and returns @code{NULL}, or if this variable is
+set to @code{NULL}, then @code{rl_complete()} will call the value of
 @code{rl_completion_entry_function} to generate matches, otherwise the
 array of strings returned will be used.
+If this function sets the @code{rl_attempted_completion_over}
+variable to a non-zero value, Readline will not perform its default
+completion even if this function returns no matches.
 @end deftypevar
 
-@deftypevar {CPFunction *} rl_filename_quoting_function
-A pointer to a function that will quote a filename in an application-
-specific fashion.  This is called if filename completion is being
+@deftypevar {rl_quote_func_t *} rl_filename_quoting_function
+A pointer to a function that will quote a filename in an
+application-specific fashion.  This is called if filename completion is being
 attempted and one of the characters in @code{rl_filename_quote_characters}
 appears in a completed filename.  The function is called with
 @var{text}, @var{match_type}, and @var{quote_pointer}.  The @var{text}
@@ -1178,7 +1544,7 @@ to any opening quote character the user typed.  Some functions choose
 to reset this character.
 @end deftypevar
 
-@deftypevar {CPFunction *} rl_filename_dequoting_function
+@deftypevar {rl_dequote_func_t *} rl_filename_dequoting_function
 A pointer to a function that will remove application-specific quoting
 characters from a filename before completion is attempted, so those
 characters do not interfere with matching the text against names in
@@ -1188,52 +1554,83 @@ that delimits the filename (usually @samp{'} or @samp{"}).  If
 @var{quote_char} is zero, the filename was not in an embedded string.
 @end deftypevar
 
-@deftypevar {Function *} rl_char_is_quoted_p
+@deftypevar {rl_linebuf_func_t *} rl_char_is_quoted_p
 A pointer to a function to call that determines whether or not a specific
 character in the line buffer is quoted, according to whatever quoting
-mechanism the program calling readline uses.  The function is called with
+mechanism the program calling Readline uses.  The function is called with
 two arguments: @var{text}, the text of the line, and @var{index}, the
 index of the character in the line.  It is used to decide whether a
 character found in @code{rl_completer_word_break_characters} should be
 used to break words for the completer.
 @end deftypevar
 
-@deftypevar int rl_completion_query_items
-Up to this many items will be displayed in response to a
-possible-completions call.  After that, we ask the user if she is sure
-she wants to see them all.  The default value is 100.
+@deftypevar {rl_compignore_func_t *} rl_ignore_some_completions_function
+This function, if defined, is called by the completer when real filename
+completion is done, after all the matching names have been generated.
+It is passed a @code{NULL} terminated array of matches.
+The first element (@code{matches[0]}) is the
+maximal substring common to all matches. This function can
+re-arrange the list of matches as required, but each element deleted
+from the array must be freed.
+@end deftypevar
+
+@deftypevar {rl_icppfunc_t *} rl_directory_completion_hook
+This function, if defined, is allowed to modify the directory portion
+of filenames Readline completes.  It is called with the address of a
+string (the current directory name) as an argument, and may modify that string.
+If the string is replaced with a new string, the old value should be freed.
+Any modified directory name should have a trailing slash.
+The modified value will be displayed as part of the completion, replacing
+the directory portion of the pathname the user typed.
+It returns an integer that should be non-zero if the function modifies
+its directory argument.
+It could be used to expand symbolic links or shell variables in pathnames.
+@end deftypevar
+
+@deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook
+If non-zero, then this is the address of a function to call when
+completing a word would normally display the list of possible matches.
+This function is called in lieu of Readline displaying the list.
+It takes three arguments:
+(@code{char **}@var{matches}, @code{int} @var{num_matches}, @code{int} @var{max_length})
+where @var{matches} is the array of matching strings,
+@var{num_matches} is the number of strings in that array, and
+@var{max_length} is the length of the longest string in that array.
+Readline provides a convenience function, @code{rl_display_match_list},
+that takes care of doing the display to Readline's output stream.  That
+function may be called from this hook.
 @end deftypevar
 
-@deftypevar {char *} rl_basic_word_break_characters
+@deftypevar {const char *} rl_basic_word_break_characters
 The basic list of characters that signal a break between words for the
 completer routine.  The default value of this variable is the characters
-which break words for completion in Bash, i.e.,
+which break words for completion in Bash:
 @code{" \t\n\"\\'`@@$><=;|&@{("}.
 @end deftypevar
 
-@deftypevar {char *} rl_basic_quote_characters
-List of quote characters which can cause a word break.
+@deftypevar {const char *} rl_basic_quote_characters
+A list of quote characters which can cause a word break.
 @end deftypevar
 
-@deftypevar {char *} rl_completer_word_break_characters
+@deftypevar {const char *} rl_completer_word_break_characters
 The list of characters that signal a break between words for
-@code{rl_complete_internal ()}.  The default list is the value of
+@code{rl_complete_internal()}.  The default list is the value of
 @code{rl_basic_word_break_characters}.
 @end deftypevar
 
-@deftypevar {char *} rl_completer_quote_characters
-List of characters which can be used to quote a substring of the line.
+@deftypevar {const char *} rl_completer_quote_characters
+A list of characters which can be used to quote a substring of the line.
 Completion occurs on the entire substring, and within the substring
 @code{rl_completer_word_break_characters} are treated as any other character,
 unless they also appear within this list.
 @end deftypevar
 
-@deftypevar {char *} rl_filename_quote_characters
+@deftypevar {const char *} rl_filename_quote_characters
 A list of characters that cause a filename to be quoted by the completer
 when they appear in a completed filename.  The default is the null string.
 @end deftypevar
 
-@deftypevar {char *} rl_special_prefixes
+@deftypevar {const char *} rl_special_prefixes
 The list of characters that are word break characters, but should be
 left in @var{text} when it is passed to the completion function.
 Programs can use this to help determine what kind of completing to do.
@@ -1241,6 +1638,12 @@ For instance, Bash sets this variable to "$@@" so that it can complete
 shell variables and hostnames.
 @end deftypevar
 
+@deftypevar int rl_completion_query_items
+Up to this many items will be displayed in response to a
+possible-completions call.  After that, we ask the user if she is sure
+she wants to see them all.  The default value is 100.
+@end deftypevar
+
 @deftypevar {int} rl_completion_append_character
 When a single completion alternative matches at the end of the command
 line, this character is appended to the inserted completion text.  The
@@ -1251,8 +1654,27 @@ provide the ``most sensible word separator character'' according to
 an application-specific command line syntax specification.
 @end deftypevar
 
+@deftypevar int rl_completion_suppress_append
+If non-zero, @var{rl_completion_append_character} is not appended to
+matches at the end of the command line, as described above.  It is
+set to 0 before any application-specific completion function is called.
+@end deftypevar
+
+@deftypevar int rl_completion_mark_symlink_dirs
+If non-zero, a slash will be appended to completed filenames that are
+symbolic links to directory names, subject to the value of the
+user-settable @var{mark-directories} variable.
+This variable exists so that application completion functions can
+override the user's global preference (set via the
+@var{mark-symlinked-directories} Readline variable) if appropriate.
+This variable is set to the user's preference before any
+application completion function is called, so unless that function
+modifies the value, the user's preferences are honored.
+@end deftypevar
+
 @deftypevar int rl_ignore_completion_duplicates
-If non-zero, then disallow duplicates in the matches.  Default is 1.
+If non-zero, then duplicates in the matches are removed.
+The default is 1.
 @end deftypevar
 
 @deftypevar int rl_filename_completion_desired
@@ -1260,8 +1682,9 @@ Non-zero means that the results of the matches are to be treated as
 filenames.  This is @emph{always} zero on entry, and can only be changed
 within a completion entry generator function.  If it is set to a non-zero
 value, directory names have a slash appended and Readline attempts to
-quote completed filenames if they contain any embedded word break
-characters.
+quote completed filenames if they contain any characters in
+@code{rl_filename_quote_characters} and @code{rl_filename_quoting_desired}
+is set to a non-zero value.
 @end deftypevar
 
 @deftypevar int rl_filename_quoting_desired
@@ -1274,40 +1697,23 @@ function.  The quoting is effected via a call to the function pointed to
 by @code{rl_filename_quoting_function}.
 @end deftypevar
 
-@deftypevar int rl_inhibit_completion
-If this variable is non-zero, completion is inhibit<ed.  The completion
-character will be inserted as any other bound to @code{self-insert}.
+@deftypevar int rl_attempted_completion_over
+If an application-specific completion function assigned to
+@code{rl_attempted_completion_function} sets this variable to a non-zero
+value, Readline will not perform its default filename completion even
+if the application's completion function returns no matches.
+It should be set only by an application's completion function.
 @end deftypevar
 
-@deftypevar {Function *} rl_ignore_some_completions_function
-This function, if defined, is called by the completer when real filename
-completion is done, after all the matching names have been generated.
-It is passed a @code{NULL} terminated array of matches.
-The first element (@code{matches[0]}) is the
-maximal substring common to all matches. This function can
-re-arrange the list of matches as required, but each element deleted
-from the array must be freed.
+@deftypevar int rl_completion_type
+Set to a character describing the type of completion Readline is currently
+attempting; see the description of @code{rl_complete_internal()}
+(@pxref{Completion Functions}) for the list of characters.
 @end deftypevar
 
-@deftypevar {Function *} rl_directory_completion_hook
-This function, if defined, is allowed to modify the directory portion
-of filenames Readline completes.  It is called with the address of a
-string (the current directory name) as an argument.  It could be used
-to expand symbolic links or shell variables in pathnames.
-@end deftypevar
-
-@deftypevar {VFunction *} rl_completion_display_matches_hook
-If non-zero, then this is the address of a function to call when
-completing a word would normally display the list of possible matches.
-This function is called in lieu of Readline displaying the list.
-It takes three arguments:
-(@code{char **}@var{matches}, @code{int} @var{num_matches}, @code{int} @var{max_length})
-where @var{matches} is the array of matching strings,
-@var{num_matches} is the number of strings in that array, and
-@var{max_length} is the length of the longest string in that array.
-Readline provides a convenience function, @code{rl_display_match_list},
-that takes care of doing the display to Readline's output stream.  That
-function may be called from this hook.
+@deftypevar int rl_inhibit_completion
+If this variable is non-zero, completion is inhibited.  The completion
+character will be inserted as any other bound to @code{self-insert}.
 @end deftypevar
 
 @node A Short Completion Example
@@ -1334,19 +1740,25 @@ history list.
 #include <readline/readline.h>
 #include <readline/history.h>
 
-extern char *getwd ();
 extern char *xmalloc ();
 
 /* The names of functions that actually do the manipulation. */
-int com_list (), com_view (), com_rename (), com_stat (), com_pwd ();
-int com_delete (), com_help (), com_cd (), com_quit ();
+int com_list __P((char *));
+int com_view __P((char *));
+int com_rename __P((char *));
+int com_stat __P((char *));
+int com_pwd __P((char *));
+int com_delete __P((char *));
+int com_help __P((char *));
+int com_cd __P((char *));
+int com_quit __P((char *));
 
 /* A structure which contains information on the commands this program
    can understand. */
 
 typedef struct @{
   char *name;                  /* User printable name of the function. */
-  Function *func;              /* Function to call to do the job. */
+  rl_icpfunc_t *func;          /* Function to call to do the job. */
   char *doc;                   /* Documentation for this function.  */
 @} COMMAND;
 
@@ -1362,7 +1774,7 @@ COMMAND commands[] = @{
   @{ "rename", com_rename, "Rename FILE to NEWNAME" @},
   @{ "stat", com_stat, "Print out statistics on FILE" @},
   @{ "view", com_view, "View the contents of FILE" @},
-  @{ (char *)NULL, (Function *)NULL, (char *)NULL @}
+  @{ (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL @}
 @};
 
 /* Forward declarations. */
@@ -1372,7 +1784,7 @@ COMMAND *find_command ();
 /* The name of this program, as taken from argv[0]. */
 char *progname;
 
-/* When non-zero, this global means the user is done using this program. */
+/* When non-zero, this means the user is done using this program. */
 int done;
 
 char *
@@ -1502,29 +1914,29 @@ stripwhite (string)
 /*                                                                  */
 /* **************************************************************** */
 
-char *command_generator ();
-char **fileman_completion ();
+char *command_generator __P((const char *, int));
+char **fileman_completion __P((const char *, int, int));
 
-/* Tell the GNU Readline library how to complete.  We want to try to complete
-   on command names if this is the first word in the line, or on filenames
-   if not. */
+/* Tell the GNU Readline library how to complete.  We want to try to
+   complete on command names if this is the first word in the line, or
+   on filenames if not. */
 initialize_readline ()
 @{
   /* Allow conditional parsing of the ~/.inputrc file. */
   rl_readline_name = "FileMan";
 
   /* Tell the completer that we want a crack first. */
-  rl_attempted_completion_function = (CPPFunction *)fileman_completion;
+  rl_attempted_completion_function = fileman_completion;
 @}
 
-/* Attempt to complete on the contents of TEXT.  START and END bound the
-   region of rl_line_buffer that contains the word to complete.  TEXT is
-   the word to complete.  We can use the entire contents of rl_line_buffer
-   in case we want to do some simple parsing.  Return the array of matches,
-   or NULL if there aren't any. */
+/* Attempt to complete on the contents of TEXT.  START and END
+   bound the region of rl_line_buffer that contains the word to
+   complete.  TEXT is the word to complete.  We can use the entire
+   contents of rl_line_buffer in case we want to do some simple
+   parsing.  Returnthe array of matches, or NULL if there aren't any. */
 char **
 fileman_completion (text, start, end)
-     char *text;
+     const char *text;
      int start, end;
 @{
   char **matches;
@@ -1535,32 +1947,33 @@ fileman_completion (text, start, end)
      to complete.  Otherwise it is the name of a file in the current
      directory. */
   if (start == 0)
-    matches = completion_matches (text, command_generator);
+    matches = rl_completion_matches (text, command_generator);
 
   return (matches);
 @}
 
-/* Generator function for command completion.  STATE lets us know whether
-   to start from scratch; without any state (i.e. STATE == 0), then we
-   start at the top of the list. */
+/* Generator function for command completion.  STATE lets us
+   know whether to start from scratch; without any state
+   (i.e. STATE == 0), then we start at the top of the list. */
 char *
 command_generator (text, state)
-     char *text;
+     const char *text;
      int state;
 @{
   static int list_index, len;
   char *name;
 
-  /* If this is a new word to complete, initialize now.  This includes
-     saving the length of TEXT for efficiency, and initializing the index
-     variable to 0. */
+  /* If this is a new word to complete, initialize now.  This
+     includes saving the length of TEXT for efficiency, and
+     initializing the index variable to 0. */
   if (!state)
     @{
       list_index = 0;
       len = strlen (text);
     @}
 
-  /* Return the next name which partially matches from the command list. */
+  /* Return the next name which partially matches from the
+     command list. */
   while (name = commands[list_index].name)
     @{
       list_index++;
@@ -1705,7 +2118,7 @@ com_pwd (ignore)
 @{
   char dir[1024], *s;
 
-  s = getwd (dir);
+  s = getcwd (dir, sizeof(dir) - 1);
   if (s == 0)
     @{
       printf ("Error getting pwd: %s\n", dir);
@@ -1716,7 +2129,8 @@ com_pwd (ignore)
   return 0;
 @}
 
-/* The user wishes to quit using this program.  Just set DONE non-zero. */
+/* The user wishes to quit using this program.  Just set DONE
+   non-zero. */
 com_quit (arg)
      char *arg;
 @{
@@ -1729,12 +2143,13 @@ too_dangerous (caller)
      char *caller;
 @{
   fprintf (stderr,
-           "%s: Too dangerous for me to distribute.  Write it yourself.\n",
+           "%s: Too dangerous for me to distribute.\n"
            caller);
+  fprintf (stderr, "Write it yourself.\n");
 @}
 
-/* Return non-zero if ARG is a valid argument for CALLER, else print
-   an error message and return zero. */
+/* Return non-zero if ARG is a valid argument for CALLER,
+   else print an error message and return zero. */
 int
 valid_argument (caller, arg)
      char *caller, *arg;
index 6990b5c7c821be69f40b6e07cba48ee73922b0b0..94f851e67f29837dde62a8e17f8d33360e75eab2 100644 (file)
@@ -10,7 +10,7 @@ use these features.  There is a document entitled "readline.texinfo"
 which contains both end-user and programmer documentation for the
 GNU Readline Library.
 
-Copyright (C) 1988-1999 Free Software Foundation, Inc.
+Copyright (C) 1988-2002 Free Software Foundation, Inc.
 
 Authored by Brian Fox and Chet Ramey.
 
@@ -72,11 +72,11 @@ used by several different programs, including Bash.
 The following paragraphs describe the notation used to represent
 keystrokes.
 
-The text @key{C-k} is read as `Control-K' and describes the character
+The text @kbd{C-k} is read as `Control-K' and describes the character
 produced when the @key{k} key is pressed while the Control key
 is depressed.
 
-The text @key{M-k} is read as `Meta-K' and describes the character
+The text @kbd{M-k} is read as `Meta-K' and describes the character
 produced when the Meta key (if you have one) is depressed, and the @key{k}
 key is pressed.
 The Meta key is labeled @key{ALT} on many keyboards.
@@ -89,11 +89,11 @@ Compose key for typing accented characters.
 
 If you do not have a Meta or @key{ALT} key, or another key working as
 a Meta key, the identical keystroke can be generated by typing @key{ESC}
-@i{first}, and then typing @key{k}.
+@emph{first}, and then typing @key{k}.
 Either process is known as @dfn{metafying} the @key{k} key.
 
-The text @key{M-C-k} is read as `Meta-Control-k' and describes the
-character produced by @dfn{metafying} @key{C-k}.
+The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the
+character produced by @dfn{metafying} @kbd{C-k}.
 
 In addition, several keys have their own names.  Specifically,
 @key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all
@@ -115,8 +115,8 @@ as you type it in, allowing you to just fix your typo, and not forcing
 you to retype the majority of the line.  Using these editing commands,
 you move the cursor to the place that needs correction, and delete or
 insert the text of the corrections.  Then, when you are satisfied with
-the line, you simply press @key{RETURN}.  You do not have to be at the
-end of the line to press @key{RETURN}; the entire line is accepted
+the line, you simply press @key{RET}.  You do not have to be at the
+end of the line to press @key{RET}; the entire line is accepted
 regardless of the location of the cursor within the line.
 
 @menu
@@ -140,9 +140,9 @@ erase character to back up and delete the mistyped character.
 
 Sometimes you may mistype a character, and
 not notice the error until you have typed several other characters.  In
-that case, you can type @key{C-b} to move the cursor to the left, and then
+that case, you can type @kbd{C-b} to move the cursor to the left, and then
 correct your mistake.  Afterwards, you can move the cursor to the right
-with @key{C-f}.
+with @kbd{C-f}.
 
 When you add text in the middle of a line, you will notice that characters
 to the right of the cursor are `pushed over' to make room for the text
@@ -152,17 +152,17 @@ blank space created by the removal of the text.  A list of the bare
 essentials for editing the text of an input line follows.
 
 @table @asis
-@item @key{C-b}
+@item @kbd{C-b}
 Move back one character.
-@item @key{C-f}
+@item @kbd{C-f}
 Move forward one character.
 @item @key{DEL} or @key{Backspace}
 Delete the character to the left of the cursor.
-@item @key{C-d}
+@item @kbd{C-d}
 Delete the character underneath the cursor.
 @item @w{Printing characters}
 Insert the character into the line at the cursor.
-@item @key{C-_} or @key{C-x C-u}
+@item @kbd{C-_} or @kbd{C-x C-u}
 Undo the last editing command.  You can undo all the way back to an
 empty line.
 @end table
@@ -170,7 +170,7 @@ empty line.
 @noindent
 (Depending on your configuration, the @key{Backspace} key be set to
 delete the character to the left of the cursor and the @key{DEL} key set
-to delete the character underneath the cursor, like @key{C-d}, rather
+to delete the character underneath the cursor, like @kbd{C-d}, rather
 than the character to the left of the cursor.)
 
 @node Readline Movement Commands
@@ -179,11 +179,11 @@ than the character to the left of the cursor.)
 
 The above table describes the most basic keystrokes that you need
 in order to do editing of the input line.  For your convenience, many
-other commands have been added in addition to @key{C-b}, @key{C-f},
-@key{C-d}, and @key{DEL}.  Here are some commands for moving more rapidly
+other commands have been added in addition to @kbd{C-b}, @kbd{C-f},
+@kbd{C-d}, and @key{DEL}.  Here are some commands for moving more rapidly
 about the line.
 
-@table @key
+@table @kbd
 @item C-a
 Move to the start of the line.
 @item C-e
@@ -196,7 +196,7 @@ Move backward a word.
 Clear the screen, reprinting the current line at the top.
 @end table
 
-Notice how @key{C-f} moves forward a character, while @key{M-f} moves
+Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves
 forward a word.  It is a loose convention that control keystrokes
 operate on characters while meta keystrokes operate on words.
 
@@ -225,36 +225,36 @@ another line.
 
 Here is the list of commands for killing text.
 
-@table @key
+@table @kbd
 @item C-k
 Kill the text from the current cursor position to the end of the line.
 
 @item M-d
 Kill from the cursor to the end of the current word, or, if between
 words, to the end of the next word.
-Word boundaries are the same as those used by @key{M-f}.
+Word boundaries are the same as those used by @kbd{M-f}.
 
-@item M-DEL
-Kill from the cursor the start of the previous word, or, if between
+@item M-@key{DEL}
+Kill from the cursor the start of the current word, or, if between
 words, to the start of the previous word.
-Word boundaries are the same as those used by @key{M-b}.
+Word boundaries are the same as those used by @kbd{M-b}.
 
 @item C-w
 Kill from the cursor to the previous whitespace.  This is different than
-@key{M-DEL} because the word boundaries differ.
+@kbd{M-@key{DEL}} because the word boundaries differ.
 
 @end table
 
 Here is how to @dfn{yank} the text back into the line.  Yanking
 means to copy the most-recently-killed text from the kill buffer.
 
-@table @key
+@table @kbd
 @item C-y
 Yank the most recently killed text back into the buffer at the cursor.
 
 @item M-y
 Rotate the kill-ring, and yank the new top.  You can only do this if
-the prior command is @key{C-y} or @key{M-y}.
+the prior command is @kbd{C-y} or @kbd{M-y}.
 @end table
 
 @node Readline Arguments
@@ -272,7 +272,8 @@ digits before the command.  If the first `digit' typed is a minus
 sign (@samp{-}), then the sign of the argument will be negative.  Once
 you have typed one meta digit to get the argument started, you can type
 the remainder of the digits, and then the command.  For example, to give
-the @key{C-d} command an argument of 10, you could type @samp{M-1 0 C-d}.
+the @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d},
+which will delete the next ten characters on the input line.
 
 @node Searching
 @subsection Searching for Commands in the History
@@ -282,7 +283,7 @@ Readline provides commands for searching through the command history
 (@pxref{Bash History Facilities})
 @end ifset
 for lines containing a specified string.
-There are two search modes:  @var{incremental} and @var{non-incremental}.
+There are two search modes:  @dfn{incremental} and @dfn{non-incremental}.
 
 Incremental searches begin before the user has finished typing the
 search string.
@@ -291,23 +292,29 @@ the next entry from the history matching the string typed so far.
 An incremental search requires only as many characters as needed to
 find the desired history entry.
 To search backward in the history for a particular string, type
-@key{C-r}.  Typing @key{C-s} searches forward through the history.
+@kbd{C-r}.  Typing @kbd{C-s} searches forward through the history.
 The characters present in the value of the @code{isearch-terminators} variable
 are used to terminate an incremental search.
 If that variable has not been assigned a value, the @key{ESC} and
-@key{C-J} characters will terminate an incremental search.
-@key{C-g} will abort an incremental search and restore the original line.
+@kbd{C-J} characters will terminate an incremental search.
+@kbd{C-g} will abort an incremental search and restore the original line.
 When the search is terminated, the history entry containing the
 search string becomes the current line.
 
-To find other matching entries in the history list, type @key{C-r} or
-@key{C-s} as appropriate.
+To find other matching entries in the history list, type @kbd{C-r} or
+@kbd{C-s} as appropriate.
 This will search backward or forward in the history for the next
 entry matching the search string typed so far.
 Any other key sequence bound to a Readline command will terminate
 the search and execute that command.
 For instance, a @key{RET} will terminate the search and accept
 the line, thereby executing the command from the history list.
+A movement command will terminate the search, make the last line found
+the current line, and begin editing.
+
+Readline remembers the last incremental search string.  If two
+@kbd{C-r}s are typed without any intervening characters defining a new
+search string, any remembered search string is used.
 
 Non-incremental searches read the entire search string before starting
 to search for matching history lines.  The search string may be
@@ -324,10 +331,10 @@ Any user can customize programs that use Readline by putting
 commands in an @dfn{inputrc} file, conventionally in his home directory.
 The name of this
 @ifset BashFeatures
-file is taken from the value of the shell variable @code{INPUTRC}.  If
+file is taken from the value of the shell variable @env{INPUTRC}.  If
 @end ifset
 @ifclear BashFeatures
-file is taken from the value of the environment variable @code{INPUTRC}.  If
+file is taken from the value of the environment variable @env{INPUTRC}.  If
 @end ifclear
 that variable is unset, the default is @file{~/.inputrc}.
 
@@ -359,7 +366,15 @@ denote variable settings and key bindings.
 @item Variable Settings
 You can modify the run-time behavior of Readline by
 altering the values of variables in Readline
-using the @code{set} command within the init file.  Here is how to
+using the @code{set} command within the init file.
+The syntax is simple:
+
+@example
+set @var{variable} @var{value}
+@end example
+
+@noindent
+Here, for example, is how to
 change from the default Emacs-like key binding to use
 @code{vi} line editing commands:
 
@@ -367,6 +382,9 @@ change from the default Emacs-like key binding to use
 set editing-mode vi
 @end example
 
+Variable names and values, where appropriate, are recognized without regard
+to case. 
+
 @ifset BashFeatures
 The @w{@code{bind -V}} command lists the current Readline variable names
 and values.  @xref{Bash Builtins}.
@@ -375,6 +393,7 @@ and values.  @xref{Bash Builtins}.
 A great deal of run-time behavior is changeable with the following
 variables.
 
+@cindex variables, readline
 @table @code
 
 @item bell-style
@@ -402,13 +421,14 @@ The number of possible completions that determines when the user is
 asked whether he wants to see the list of possibilities.  If the
 number of possible completions is greater than this value,
 Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.  The default limit is
-@code{100}.
+them; otherwise, they are simply listed.
+This variable must be set to an integer value greater than or equal to 0.
+The default limit is @code{100}.
 
 @item convert-meta
 @vindex convert-meta
 If set to @samp{on}, Readline will convert characters with the
-eighth bit set to an ASCII key sequence by stripping the eighth
+eighth bit set to an @sc{ascii} key sequence by stripping the eighth
 bit and prefixing an @key{ESC} character, converting them to a
 meta-prefixed key sequence.  The default value is @samp{on}.
 
@@ -436,6 +456,11 @@ arrow keys.  The default is @samp{off}.
 If set to @samp{on}, tilde expansion is performed when Readline
 attempts word completion.  The default is @samp{off}.
 
+@vindex history-preserve-point
+If set to @samp{on}, the history code attempts to place point at the
+same location on each history line retrived with @code{previous-history}
+or @code{next-history}.
+
 @item horizontal-scroll-mode
 @vindex horizontal-scroll-mode
 This variable can be set to either @samp{on} or @samp{off}.  Setting it
@@ -448,7 +473,7 @@ this variable is set to @samp{off}.
 @vindex input-meta
 @vindex meta-flag
 If set to @samp{on}, Readline will enable eight-bit input (it
-will not strip the eighth bit from the characters it reads),
+will not clear the eighth bit in the characters it reads),
 regardless of what the terminal claims it can support.  The
 default value is @samp{off}.  The name @code{meta-flag} is a
 synonym for this variable.
@@ -458,7 +483,7 @@ synonym for this variable.
 The string of characters that should terminate an incremental search without
 subsequently executing the character as a command (@pxref{Searching}).
 If this variable has not been given a value, the characters @key{ESC} and
-@key{C-J} will terminate an incremental search.
+@kbd{C-J} will terminate an incremental search.
 
 @item keymap
 @vindex keymap
@@ -469,6 +494,7 @@ Acceptable @code{keymap} names are
 @code{emacs-meta},
 @code{emacs-ctlx},
 @code{vi},
+@code{vi-move},
 @code{vi-command}, and
 @code{vi-insert}.
 @code{vi} is equivalent to @code{vi-command}; @code{emacs} is
@@ -486,12 +512,33 @@ This variable, when set to @samp{on}, causes Readline to display an
 asterisk (@samp{*}) at the start of history lines which have been modified.
 This variable is @samp{off} by default.
 
+@item mark-symlinked-directories
+@vindex mark-symlinked-directories
+If set to @samp{on}, completed names which are symbolic links
+to directories have a slash appended (subject to the value of
+@code{mark-directories}).
+The default is @samp{off}.
+
+@item match-hidden-files
+@vindex match-hidden-files
+This variable, when set to @samp{on}, causes Readline to match files whose
+names begin with a @samp{.} (hidden files) when performing filename
+completion, unless the leading @samp{.} is
+supplied by the user in the filename to be completed.
+This variable is @samp{on} by default.
+
 @item output-meta
 @vindex output-meta
 If set to @samp{on}, Readline will display characters with the
 eighth bit set directly rather than as a meta-prefixed escape
 sequence.  The default is @samp{off}.
 
+@item page-completions
+@vindex page-completions
+If set to @samp{on}, Readline uses an internal @code{more}-like pager
+to display a screenful of possible completions at a time.
+This variable is @samp{on} by default.
+
 @item print-completions-horizontally
 If set to @samp{on}, Readline will display completions with matches
 sorted horizontally in alphabetical order, rather than down the screen.
@@ -520,11 +567,15 @@ want to change.  The following sections contain tables of the command
 name, the default keybinding, if any, and a short description of what
 the command does.
 
-Once you know the name of the command, simply place the name of the key
+Once you know the name of the command, simply place on a line
+in the init file the name of the key
 you wish to bind the command to, a colon, and then the name of the
-command on a line in the init file.  The name of the key
-can be expressed in different ways, depending on which is most
-comfortable for you.
+command.  The name of the key
+can be expressed in different ways, depending on what you find most
+comfortable.
+
+In addition to command names, readline allows keys to be bound
+to a string that is inserted when the key is pressed (a @var{macro}).
 
 @ifset BashFeatures
 The @w{@code{bind -p}} command displays Readline function names and
@@ -541,11 +592,28 @@ Meta-Rubout: backward-kill-word
 Control-o: "> output"
 @end example
 
-In the above example, @key{C-u} is bound to the function
-@code{universal-argument}, and @key{C-o} is bound to run the macro
+In the above example, @kbd{C-u} is bound to the function
+@code{universal-argument},
+@kbd{M-DEL} is bound to the function @code{backward-kill-word}, and
+@kbd{C-o} is bound to run the macro
 expressed on the right hand side (that is, to insert the text
 @samp{> output} into the line).
 
+A number of symbolic character names are recognized while
+processing this key binding syntax:
+@var{DEL},
+@var{ESC},
+@var{ESCAPE},
+@var{LFD},
+@var{NEWLINE},
+@var{RET},
+@var{RETURN},
+@var{RUBOUT},
+@var{SPACE},
+@var{SPC},
+and
+@var{TAB}.
+
 @item @w{"@var{keyseq}": @var{function-name} or @var{macro}}
 @var{keyseq} differs from @var{keyname} above in that strings
 denoting an entire key sequence can be specified, by placing
@@ -559,9 +627,9 @@ special character names are not recognized.
 "\e[11~": "Function Key 1"
 @end example
 
-In the above example, @key{C-u} is bound to the function
+In the above example, @kbd{C-u} is again bound to the function
 @code{universal-argument} (just as it was in the first example),
-@samp{@key{C-x} @key{C-r}} is bound to the function @code{re-read-init-file},
+@samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file},
 and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert
 the text @samp{Function Key 1}.
 
@@ -606,11 +674,11 @@ horizontal tab
 @item \v
 vertical tab
 @item \@var{nnn}
-the character whose @code{ASCII} code is the octal value @var{nnn}
-(one to three digits)
-@item \x@var{nnn}
-the character whose @code{ASCII} code is the hexadecimal value @var{nnn}
+the eight-bit character whose value is the octal value @var{nnn}
 (one to three digits)
+@item \x@var{HH}
+the eight-bit character whose value is the hexadecimal value @var{HH}
+(one or two hex digits)
 @end table
 
 When entering the text of a macro, single or double quotes must
@@ -619,7 +687,7 @@ Unquoted text is assumed to be a function name.
 In the macro body, the backslash escapes described above are expanded.
 Backslash will quote any other character in the macro text,
 including @samp{"} and @samp{'}.
-For example, the following binding will make @samp{C-x \}
+For example, the following binding will make @samp{@kbd{C-x} \}
 insert a single @samp{\} into the line:
 @example
 "\C-x\\": "\\"
@@ -663,7 +731,8 @@ for instance.
 @item application
 The @var{application} construct is used to include
 application-specific settings.  Each program using the Readline
-library sets the @var{application name}, and you can test for it. 
+library sets the @var{application name}, and you can test for
+a particular value. 
 This could be used to bind key sequences to functions useful for
 a specific program.  For instance, the following command adds a
 key sequence that quotes the current or previous word in Bash:
@@ -686,6 +755,7 @@ the test fails.
 @item $include
 This directive takes a single filename as an argument and reads commands
 and bindings from that file.
+For example, the following directive reads from @file{/etc/inputrc}:
 @example
 $include /etc/inputrc
 @end example
@@ -694,20 +764,20 @@ $include /etc/inputrc
 @node Sample Init File
 @subsection Sample Init File
 
-Here is an example of an inputrc file.  This illustrates key
+Here is an example of an @var{inputrc} file.  This illustrates key
 binding, variable assignment, and conditional syntax.
 
 @example
 @page
 # This file controls the behaviour of line input editing for
-# programs that use the Gnu Readline library.  Existing programs
-# include FTP, Bash, and Gdb.
+# programs that use the GNU Readline library.  Existing
+# programs include FTP, Bash, and GDB.
 #
 # You can re-read the inputrc file with C-x C-r.
 # Lines beginning with '#' are comments.
 #
-# First, include any systemwide bindings and variable assignments from
-# /etc/Inputrc
+# First, include any systemwide bindings and variable
+# assignments from /etc/Inputrc
 $include /etc/Inputrc
 
 #
@@ -759,11 +829,12 @@ TAB: complete
 $if Bash
 # edit the path
 "\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word -- insert open and close
-# double quotes and move to just after the open quote
+# prepare to type a quoted word --
+# insert open and close double quotes
+# and move to just after the open quote
 "\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes in sequences
-# and macros)
+# insert a backslash (testing backslash escapes
+# in sequences and macros)
 "\C-x\\": "\\"
 # Quote the current or previous word
 "\C-xq": "\eb\"\ef\""
@@ -779,16 +850,16 @@ set bell-style visible
 # don't strip characters to 7 bits when reading
 set input-meta on
 
-# allow iso-latin1 characters to be inserted rather than converted to
-# prefix-meta sequences
+# allow iso-latin1 characters to be inserted rather
+# than converted to prefix-meta sequences
 set convert-meta off
 
-# display characters with the eighth bit set directly rather than
-# as meta-prefixed characters
+# display characters with the eighth bit set directly
+# rather than as meta-prefixed characters
 set output-meta on
 
-# if there are more than 150 possible completions for a word, ask the
-# user if he wants to see all of them
+# if there are more than 150 possible completions for
+# a word, ask the user if he wants to see all of them
 set completion-query-items 150
 
 # For FTP
@@ -820,12 +891,12 @@ You can list your key bindings by executing
 @w{@code{bind -P}} or, for a more terse format, suitable for an
 @var{inputrc} file, @w{@code{bind -p}}.  (@xref{Bash Builtins}.)
 @end ifset
-
 Command names without an accompanying key sequence are unbound by default.
-In the following descriptions, @var{point} refers to the current cursor
-position, and @var{mark} refers to a cursor position saved by the
+
+In the following descriptions, @dfn{point} refers to the current cursor
+position, and @dfn{mark} refers to a cursor position saved by the
 @code{set-mark} command.
-The text between the point and mark is referred to as the @var{region}.
+The text between the point and mark is referred to as the @dfn{region}.
 
 @node Commands For Moving
 @subsection Commands For Moving
@@ -863,25 +934,29 @@ Refresh the current line.  By default, this is unbound.
 @subsection Commands For Manipulating The History
 
 @ftable @code
-@item accept-line (Newline, Return)
+@item accept-line (Newline or Return)
 @ifset BashFeatures
-Accept the line regardless of where the cursor is.  If this line is
+Accept the line regardless of where the cursor is.
+If this line is
 non-empty, add it to the history list according to the setting of
-the @code{HISTCONTROL} and @code{HISTIGNORE} variables.
-If this line was a history line, then restore the history line to its
-original state.
+the @env{HISTCONTROL} and @env{HISTIGNORE} variables.
+If this line is a modified history line, then restore the history line
+to its original state.
 @end ifset
 @ifclear BashFeatures
-Accept the line regardless of where the cursor is.  If this line is
-non-empty, add it to the history list.  If this line was a history
-line, then restore the history line to its original state.
+Accept the line regardless of where the cursor is.
+If this line is
+non-empty, it may be added to the history list for future recall with
+@code{add_history()}.
+If this line is a modified history line, the history line is restored
+to its original state.
 @end ifclear
 
 @item previous-history (C-p)
-Move `up' through the history list.
+Move `back' through the history list, fetching the previous command.
 
 @item next-history (C-n)
-Move `down' through the history list.
+Move `forward' through the history list, fetching the next command.
 
 @item beginning-of-history (M-<)
 Move to the first line in the history.
@@ -921,12 +996,13 @@ is a non-incremental search.  By default, this command is unbound.
 
 @item yank-nth-arg (M-C-y)
 Insert the first argument to the previous command (usually
-the second word on the previous line).  With an argument @var{n},
+the second word on the previous line) at point.
+With an argument @var{n},
 insert the @var{n}th word from the previous command (the words
 in the previous command begin with word 0).  A negative argument
 inserts the @var{n}th word from the end of the previous command.
 
-@item yank-last-arg (M-., M-_)
+@item yank-last-arg (M-. or M-_)
 Insert last argument to the previous command (the last word of the
 previous history entry).  With an
 argument, behave exactly like @code{yank-nth-arg}.
@@ -940,10 +1016,10 @@ list, inserting the last argument of each line in turn.
 
 @ftable @code
 @item delete-char (C-d)
-Delete the character under the cursor.  If the cursor is at the
+Delete the character at point.  If point is at the
 beginning of the line, there are no characters in the line, and
 the last character typed was not bound to @code{delete-char}, then
-return @code{EOF}.
+return @sc{eof}.
 
 @item backward-delete-char (Rubout)
 Delete the character behind the cursor.  A numeric argument means
@@ -954,16 +1030,16 @@ Delete the character under the cursor, unless the cursor is at the
 end of the line, in which case the character behind the cursor is
 deleted.  By default, this is not bound to a key.
 
-@item quoted-insert (C-q, C-v)
+@item quoted-insert (C-q or C-v)
 Add the next character typed to the line verbatim.  This is
-how to insert key sequences like @key{C-q}, for example.
+how to insert key sequences like @kbd{C-q}, for example.
 
 @ifclear BashFeatures
-@item tab-insert (M-TAB)
+@item tab-insert (M-@key{TAB})
 Insert a tab character.
 @end ifclear
 
-@item self-insert (a, b, A, 1, !, ...)
+@item self-insert (a, b, A, 1, !, @dots{})
 Insert yourself.
 
 @item transpose-chars (C-t)
@@ -977,6 +1053,8 @@ Negative arguments have no effect.
 @item transpose-words (M-t)
 Drag the word before point past the word after point,
 moving point past that word as well.
+If the insertion point is at the end of the line, this transposes
+the last two words on the line.
 
 @item upcase-word (M-u)
 Uppercase the current (or following) word.  With a negative argument,
@@ -990,6 +1068,20 @@ lowercase the previous word, but do not move the cursor.
 Capitalize the current (or following) word.  With a negative argument,
 capitalize the previous word, but do not move the cursor.
 
+@item overwrite-mode ()
+Toggle overwrite mode.  With an explicit positive numeric argument,
+switches to overwrite mode.  With an explicit non-positive numeric
+argument, switches to insert mode.  This command affects only
+@code{emacs} mode; @code{vi} mode does overwrite differently.
+Each call to @code{readline()} starts in insert mode.
+
+In overwrite mode, characters bound to @code{self-insert} replace
+the text at point rather than pushing the text to the right.
+Characters bound to @code{backward-delete-char} replace the character
+before point with a space.
+
+By default, this command is unbound.
+
 @end ftable
 
 @node Commands For Killing
@@ -1007,7 +1099,7 @@ Kill backward to the beginning of the line.
 Kill backward from the cursor to the beginning of the current line.
 
 @item kill-whole-line ()
-Kill all characters on the current line, no matter point is.
+Kill all characters on the current line, no matter where point is.
 By default, this is unbound.
 
 @item kill-word (M-d)
@@ -1015,7 +1107,7 @@ Kill from point to the end of the current word, or if between
 words, to the end of the next word.
 Word boundaries are the same as @code{forward-word}.
 
-@item backward-kill-word (M-DEL)
+@item backward-kill-word (M-@key{DEL})
 Kill the word behind point.
 Word boundaries are the same as @code{backward-word}.
 
@@ -1045,21 +1137,20 @@ The word boundaries are the same as @code{forward-word}.
 By default, this command is unbound.
 
 @item yank (C-y)
-Yank the top of the kill ring into the buffer at the current
-cursor position.
+Yank the top of the kill ring into the buffer at point.
 
 @item yank-pop (M-y)
 Rotate the kill-ring, and yank the new top.  You can only do this if
-the prior command is yank or yank-pop.
+the prior command is @code{yank} or @code{yank-pop}.
 @end ftable
 
 @node Numeric Arguments
 @subsection Specifying Numeric Arguments
 @ftable @code
 
-@item digit-argument (M-0, M-1, ... M--)
+@item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--})
 Add this digit to the argument already accumulating, or start a new
-argument.  @key{M--} starts a negative argument.
+argument.  @kbd{M--} starts a negative argument.
 
 @item universal-argument ()
 This is another way to specify an argument.
@@ -1080,13 +1171,9 @@ By default, this is not bound to a key.
 @subsection Letting Readline Type For You
 
 @ftable @code
-@item complete (TAB)
-Attempt to do completion on the text before the cursor.  This is
-application-specific.  Generally, if you are typing a filename
-argument, you can do filename completion; if you are typing a command,
-you can do command completion; if you are typing in a symbol to GDB, you
-can do symbol name completion; if you are typing in a variable to Bash,
-you can do variable name completion, and so on.
+@item complete (@key{TAB})
+Attempt to perform completion on the text before point.
+The actual completion performed is application-specific.
 @ifset BashFeatures
 Bash attempts completion treating the text as a variable (if the
 text begins with @samp{$}), username (if the text begins with
@@ -1094,9 +1181,12 @@ text begins with @samp{$}), username (if the text begins with
 command (including aliases and functions) in turn.  If none 
 of these produces a match, filename completion is attempted.
 @end ifset
+@ifclear BashFeatures
+The default is filename completion.
+@end ifclear
 
 @item possible-completions (M-?)
-List the possible completions of the text before the cursor.
+List the possible completions of the text before point.
 
 @item insert-completions (M-*)
 Insert all completions of the text before point that would have
@@ -1107,12 +1197,13 @@ Similar to @code{complete}, but replaces the word to be completed
 with a single match from the list of possible completions.
 Repeated execution of @code{menu-complete} steps through the list
 of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung and the
-original text is restored.
+At the end of the list of completions, the bell is rung
+(subject to the setting of @code{bell-style})
+and the original text is restored.
 An argument of @var{n} moves @var{n} positions forward in the list
 of matches; a negative argument may be used to move backward
 through the list.
-This command is intended to be bound to @code{TAB}, but is unbound
+This command is intended to be bound to @key{TAB}, but is unbound
 by default.
 
 @item delete-char-or-list ()
@@ -1165,7 +1256,7 @@ in that order.
 List the possible completions of the text before point,
 treating it as a command name.
 
-@item dynamic-complete-history (M-TAB)
+@item dynamic-complete-history (M-@key{TAB})
 Attempt completion on the text before point, comparing
 the text against lines from the history list for possible
 completion matches.
@@ -1212,12 +1303,12 @@ ring the terminal's bell (subject to the setting of
 If the metafied character @var{x} is lowercase, run the command
 that is bound to the corresponding uppercase character.
 
-@item prefix-meta (ESC)
-Make the next character typed be metafied.  This is for keyboards
-without a meta key.  Typing @samp{ESC f} is equivalent to typing
-@samp{M-f}.
+@item prefix-meta (@key{ESC})
+Metafy the next character typed.  This is for keyboards
+without a meta key.  Typing @samp{@key{ESC} f} is equivalent to typing
+@kbd{M-f}.
 
-@item undo (C-_, C-x C-u)
+@item undo (C-_ or C-x C-u)
 Incremental undo, separately remembered for each line.
 
 @item revert-line (M-r)
@@ -1233,7 +1324,7 @@ command enough times to get back to the beginning.
 Perform tilde expansion on the current word.
 
 @item set-mark (C-@@)
-Set the mark to the current point.  If a
+Set the mark to the point.  If a
 numeric argument is supplied, the mark is set to that position.
 
 @item exchange-point-and-mark (C-x C-x)
@@ -1250,12 +1341,19 @@ of that character.  A negative count searches for subsequent
 occurrences.
 
 @item insert-comment (M-#)
-The value of the @code{comment-begin}
-variable is inserted at the beginning of the current line,
-and the line is accepted as if a newline had been typed.
+Without a numeric argument, the value of the @code{comment-begin}
+variable is inserted at the beginning of the current line.
+If a numeric argument is supplied, this command acts as a toggle:  if
+the characters at the beginning of the line do not match the value
+of @code{comment-begin}, the value is inserted, otherwise
+the characters in @code{comment-begin} are deleted from the beginning of
+the line.
+In either case, the line is accepted as if a newline had been typed.
 @ifset BashFeatures
 The default value of @code{comment-begin} causes this command
 to make the current line a shell comment.
+If a numeric argument causes the comment character to be removed, the line
+will be executed by the shell.
 @end ifset
 
 @item dump-functions ()
@@ -1272,18 +1370,27 @@ of an @var{inputrc} file.  This command is unbound by default.
 
 @item dump-macros ()
 Print all of the Readline key sequences bound to macros and the
-strings they ouput.  If a numeric argument is supplied,
+strings they output.  If a numeric argument is supplied,
 the output is formatted in such a way that it can be made part
 of an @var{inputrc} file.  This command is unbound by default.
 
 @ifset BashFeatures
+@item glob-complete-word (M-g)
+The word before point is treated as a pattern for pathname expansion,
+with an asterisk implicitly appended.  This pattern is used to
+generate a list of matching file names for possible completions.
+
 @item glob-expand-word (C-x *)
 The word before point is treated as a pattern for pathname expansion,
 and the list of matching file names is inserted, replacing the word.
+If a numeric argument is supplied, a @samp{*} is appended before
+pathname expansion.
 
 @item glob-list-expansions (C-x g)
 The list of expansions that would have been generated by
 @code{glob-expand-word} is displayed, and the line is redrawn.
+If a numeric argument is supplied, a @samp{*} is appended before
+pathname expansion.
 
 @item display-shell-version (C-x C-v)
 Display version information about the current instance of Bash.
@@ -1306,7 +1413,7 @@ Perform alias expansion on the current line (@pxref{Aliases}).
 @item history-and-alias-expand-line ()
 Perform history and alias expansion on the current line.
 
-@item insert-last-argument (M-., M-_)
+@item insert-last-argument (M-. or M-_)
 A synonym for @code{yank-last-arg}.
 
 @item operate-and-get-next (C-o)
@@ -1314,13 +1421,26 @@ Accept the current line for execution and fetch the next line
 relative to the current line from the history for editing.  Any
 argument is ignored.
 
-@item emacs-editing-mode (C-e)
-When in @code{vi} editing mode, this causes a switch back to
-@code{emacs} editing mode, as if the command @samp{set -o emacs} had
-been executed.
+@item edit-and-execute-command (C-xC-e)
+Invoke an editor on the current command line, and execute the result as shell
+commands.
+Bash attempts to invoke
+@code{$FCEDIT}, @code{$EDITOR}, and @code{emacs}
+as the editor, in that order.
 
 @end ifset
 
+@ifclear BashFeatures
+@item emacs-editing-mode (C-e)
+When in @code{vi} command mode, this causes a switch to @code{emacs}
+editing mode.
+
+@item vi-editing-mode (M-C-j)
+When in @code{emacs} editing mode, this causes a switch to @code{vi}
+editing mode.
+
+@end ifclear
+
 @end ftable
 
 @node Readline vi Mode
@@ -1329,7 +1449,7 @@ been executed.
 While the Readline library does not have a full set of @code{vi}
 editing functions, it does contain enough to allow simple editing
 of the line.  The Readline @code{vi} mode behaves as specified in
-the @sc{POSIX} 1003.2 standard.
+the @sc{posix} 1003.2 standard.
 
 @ifset BashFeatures
 In order to switch interactively between @code{emacs} and @code{vi}
@@ -1338,7 +1458,8 @@ commands (@pxref{The Set Builtin}).
 @end ifset
 @ifclear BashFeatures
 In order to switch interactively between @code{emacs} and @code{vi}
-editing modes, use the command M-C-j (toggle-editing-mode).
+editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode
+when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode).
 @end ifclear
 The Readline default is @code{emacs} mode.
 
@@ -1375,20 +1496,20 @@ described above (@pxref{Commands For Completion}) is performed.
 First, the actions specified by the compspec are used.
 Only matches which are prefixed by the word being completed are
 returned.
-When the @samp{-f} or @samp{-d} option is used for filename or
-directory name completion, the shell variable @code{FIGNORE} is
+When the @option{-f} or @option{-d} option is used for filename or
+directory name completion, the shell variable @env{FIGNORE} is
 used to filter the matches.
-@xref{Bash Variables}, for a description of @code{FIGNORE}.
+@xref{Bash Variables}, for a description of @env{FIGNORE}.
 
 Any completions specified by a filename expansion pattern to the
-@samp{-G} option are generated next.
+@option{-G} option are generated next.
 The words generated by the pattern need not match the word being completed.
-The @code{GLOBIGNORE} shell variable is not used to filter the matches,
-but the @code{FIGNORE} shell variable is used.
+The @env{GLOBIGNORE} shell variable is not used to filter the matches,
+but the @env{FIGNORE} shell variable is used.
 
-Next, the string specified as the argument to the @samp{-W} option
+Next, the string specified as the argument to the @option{-W} option
 is considered.
-The string is first split using the characters in the @code{IFS}
+The string is first split using the characters in the @env{IFS}
 special variable as delimiters.
 Shell quoting is honored.
 Each word is then expanded using
@@ -1401,12 +1522,12 @@ The results of the expansion are prefix-matched against the word being
 completed, and the matching words become the possible completions.
 
 After these matches have been generated, any shell function or command
-specified with the @samp{-F} and @samp{-C} options is invoked.
-When the command or function is invoked, the @code{COMP_LINE} and
-@code{COMP_POINT} variables are assigned values as described above
+specified with the @option{-F} and @option{-C} options is invoked.
+When the command or function is invoked, the @env{COMP_LINE} and
+@env{COMP_POINT} variables are assigned values as described above
 (@pxref{Bash Variables}).
-If a shell function is being invoked, the @code{COMP_WORDS} and
-@code{COMP_CWORD} variables are also set.
+If a shell function is being invoked, the @env{COMP_WORDS} and
+@env{COMP_CWORD} variables are also set.
 When the function or command is invoked, the first argument is the
 name of the command whose arguments are being completed, the
 second argument is the word being completed, and the third argument
@@ -1415,21 +1536,21 @@ No filtering of the generated completions against the word being completed
 is performed; the function or command has complete freedom in generating
 the matches.
 
-Any function specified with @samp{-F} is invoked first.
+Any function specified with @option{-F} is invoked first.
 The function may use any of the shell facilities, including the
 @code{compgen} builtin described below
 (@pxref{Programmable Completion Builtins}), to generate the matches.
-It must put the possible completions in the @code{COMPREPLY} array
+It must put the possible completions in the @env{COMPREPLY} array
 variable.
 
-Next, any command specified with the @samp{-C} option is invoked
+Next, any command specified with the @option{-C} option is invoked
 in an environment equivalent to command substitution.
 It should print a list of completions, one per line, to
 the standard output.
 Backslash may be used to escape a newline, if necessary.
 
 After all of the possible completions are generated, any filter
-specified with the @samp{-X} option is applied to the list.
+specified with the @option{-X} option is applied to the list.
 The filter is a pattern as used for pathname expansion; a @samp{&}
 in the pattern is replaced with the text of the word being completed.
 A literal @samp{&} may be escaped with a backslash; the backslash
@@ -1438,15 +1559,28 @@ Any completion that matches the pattern will be removed from the list.
 A leading @samp{!} negates the pattern; in this case any completion
 not matching the pattern will be removed.
 
-Finally, any prefix and suffix specified with the @samp{-P} and @samp{-S}
+Finally, any prefix and suffix specified with the @option{-P} and @option{-S}
 options are added to each member of the completion list, and the result is
 returned to the Readline completion code as the list of possible
 completions.
 
-If a compspec is found, whatever it generates is returned to the completion
-code as the full set of possible completions.
-The default Bash completions are not attempted, and the Readline
-default of filename completion is disabled.
+If the previously-applied actions do not generate any matches, and the
+@option{-o dirnames} option was supplied to @code{complete} when the
+compspec was defined, directory name completion is attempted. 
+
+By default, if a compspec is found, whatever it generates is returned to
+the completion code as the full set of possible completions.
+The default Bash completions are not attempted, and the Readline default
+of filename completion is disabled.
+If the @option{-o default} option was supplied to @code{complete} when the
+compspec was defined, Readline's default completion will be performed
+if the compspec generates no matches.
+
+When a compspec indicates that directory name completion is desired,
+the programmable completion functions force Readline to append a slash
+to completed names which are symbolic links to directories, subject to
+the value of the @var{mark-directories} Readline variable, regardless
+of the setting of the @var{mark-symlinked-directories} Readline variable.
 
 @node Programmable Completion Builtins
 @section Programmable Completion Builtins
@@ -1465,9 +1599,9 @@ facilities.
 Generate possible completion matches for @var{word} according to
 the @var{option}s, which may be any option accepted by the
 @code{complete}
-builtin with the exception of @samp{-p} and @samp{-r}, and write
+builtin with the exception of @option{-p} and @option{-r}, and write
 the matches to the standard output.
-When using the @samp{-F} or @samp{-C} options, the various shell variables
+When using the @option{-F} or @option{-C} options, the various shell variables
 set by the programmable completion facilities, while available, will not
 have useful values.
 
@@ -1483,17 +1617,17 @@ matches were generated.
 @item complete
 @btindex complete
 @example
-@code{complete [-abcdefjkvu] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
+@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
 [-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}]
 [-C @var{command}] @var{name} [@var{name} @dots{}]}
 @code{complete -pr [@var{name} @dots{}]}
 @end example
 
 Specify how arguments to each @var{name} should be completed.
-If the @samp{-p} option is supplied, or if no options are supplied, existing
+If the @option{-p} option is supplied, or if no options are supplied, existing
 completion specifications are printed in a way that allows them to be
 reused as input.
-The @samp{-r} option removes a completion specification for
+The @option{-r} option removes a completion specification for
 each @var{name}, or, if no @var{name}s are supplied, all
 completion specifications.
 
@@ -1501,19 +1635,45 @@ The process of applying these completion specifications when word completion
 is attempted is described above (@pxref{Programmable Completion}).
 
 Other options, if specified, have the following meanings.
-The arguments to the @samp{-G}, @samp{-W}, and @samp{-X} options
-(and, if necessary, the @samp{-P} and @samp{-S} options)
+The arguments to the @option{-G}, @option{-W}, and @option{-X} options
+(and, if necessary, the @option{-P} and @option{-S} options)
 should be quoted to protect them from expansion before the
 @code{complete} builtin is invoked.
 
+
+@table @code
+@item -o @var{comp-option}
+The @var{comp-option} controls several aspects of the compspec's behavior
+beyond the simple generation of completions.
+@var{comp-option} may be one of: 
+
 @table @code
+
+@item default
+Use Readline's default filename completion if the compspec generates
+no matches.
+
+@item dirnames
+Perform directory name completion if the compspec generates no matches.
+
+@item filenames
+Tell Readline that the compspec generates filenames, so it can perform any
+filename\-specific processing (like adding a slash to directory names or
+suppressing trailing spaces).  This option is intended to be used with
+shell functions specified with @option{-F}.
+
+@item nospace
+Tell Readline not to append a space (the default) to words completed at
+the end of the line.
+@end table
+
 @item -A @var{action}
 The @var{action} may be one of the following to generate a list of possible
 completions:
 
 @table @code
 @item alias
-Alias names.  May also be specified as @samp{-a}.
+Alias names.  May also be specified as @option{-a}.
 
 @item arrayvar
 Array variable names.
@@ -1522,13 +1682,13 @@ Array variable names.
 Readline key binding names (@pxref{Bindable Readline Commands}).
 
 @item builtin
-Names of shell builtin commands.  May also be specified as @samp{-b}.
+Names of shell builtin commands.  May also be specified as @option{-b}.
 
 @item command
-Command names.  May also be specified as @samp{-c}.
+Command names.  May also be specified as @option{-c}.
 
 @item directory
-Directory names.  May also be specified as @samp{-d}.
+Directory names.  May also be specified as @option{-d}.
 
 @item disabled
 Names of disabled shell builtins.
@@ -1537,32 +1697,38 @@ Names of disabled shell builtins.
 Names of enabled shell builtins.
 
 @item export
-Names of exported shell variables.  May also be specified as @samp{-e}.
+Names of exported shell variables.  May also be specified as @option{-e}.
 
 @item file
-File names.  May also be specified as @samp{-f}.
+File names.  May also be specified as @option{-f}.
 
 @item function
 Names of shell functions.
 
+@item group
+Group names.  May also be specified as @option{-g}.
+
 @item helptopic
 Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}).
 
 @item hostname
 Hostnames, as taken from the file specified by the
-@code{HOSTFILE} shell variable (@pxref{Bash Variables}).
+@env{HOSTFILE} shell variable (@pxref{Bash Variables}).
 
 @item job
-Job names, if job control is active.  May also be specified as @samp{-j}.
+Job names, if job control is active.  May also be specified as @option{-j}.
 
 @item keyword
-Shell reserved words.  May also be specified as @samp{-k}.
+Shell reserved words.  May also be specified as @option{-k}.
 
 @item running
 Names of running jobs, if job control is active.
 
+@item service
+Service names.  May also be specified as @option{-s}.
+
 @item setopt
-Valid arguments for the @samp{-o} option to the @code{set} builtin
+Valid arguments for the @option{-o} option to the @code{set} builtin
 (@pxref{The Set Builtin}).
 
 @item shopt
@@ -1576,10 +1742,10 @@ Signal names.
 Names of stopped jobs, if job control is active.
 
 @item user
-User names.  May also be specified as @samp{-u}.
+User names.  May also be specified as @option{-u}.
 
 @item variable
-Names of all shell variables.  May also be specified as @samp{-v}.
+Names of all shell variables.  May also be specified as @option{-v}.
 @end table
 
 @item -G @var{globpat}
@@ -1588,7 +1754,7 @@ the possible completions.
 
 @item -W @var{wordlist}
 The @var{wordlist} is split using the characters in the
-@code{IFS} special variable as delimiters, and each resultant word
+@env{IFS} special variable as delimiters, and each resultant word
 is expanded.
 The possible completions are the members of the resultant list which
 match the word being completed.
@@ -1601,7 +1767,7 @@ used as the possible completions.
 The shell function @var{function} is executed in the current shell
 environment.
 When it finishes, the possible completions are retrieved from the value
-of the @code{COMPREPLY} array variable.
+of the @env{COMPREPLY} array variable.
 
 @item -X @var{filterpat}
 @var{filterpat} is a pattern as used for filename expansion.
@@ -1621,7 +1787,7 @@ after all other options have been applied.
 @end table
 
 The return value is true unless an invalid option is supplied, an option
-other than @samp{-p} or @samp{-r} is supplied without a @var{name}
+other than @option{-p} or @option{-r} is supplied without a @var{name}
 argument, an attempt is made to remove a completion specification for
 a @var{name} for which no specification exists, or
 an error occurs adding a completion specification.
index e6a3dcde2a9424deff1490c682155c0457ec887d..89abe31aeb5a73713a3c542695fa420c4beb0d21 100644 (file)
 @ifinfo
 @dircategory Libraries
 @direntry
-* Readline: (readline).       The GNU readline library API
+* RLuserman: (rluserman).       The GNU readline library User's Manual.
 @end direntry
 
 This document describes the end user interface of the GNU Readline Library,
 a utility which aids in the consistency of user interface across discrete
 programs that need to provide a command line interface.
 
-Copyright (C) 1988-1999 Free Software Foundation, Inc.
+Copyright (C) 1988-2002 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -72,7 +72,7 @@ except that this permission notice may be stated in a translation approved
 by the Free Software Foundation.
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1988-1999 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
 @end titlepage
 
 @ifinfo
index 3d7134d6d92818bab98de932016c106dd2009013..c186848d9b91915bb52973e9829e0dfddffcfd73 100755 (executable)
@@ -1,8 +1,8 @@
 #! /bin/sh
-# texi2dvi --- smartly produce DVI files from texinfo sources
+# texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources.
 # $Id$
 #
-# Copyright (C) 1992, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+# Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 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
 # program's maintainer or write to: The Free Software Foundation,
 # Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
 #
-# Commentary:
-#
-# Author: Noah Friedman <friedman@gnu.org>
+# Original author: Noah Friedman <friedman@gnu.org>.
 #
 # Please send bug reports, etc. to bug-texinfo@gnu.org.
 # If possible, please send a copy of the output of the script called with
 # the `--debug' option when making a bug report.
-#
-# In the interest of general portability, some common bourne shell
-# constructs were avoided because they weren't guaranteed to be available
-# in some earlier implementations.  I've tried to make this program as
-# portable as possible.  Welcome to unix, where the lowest common
-# denominator is rapidly diminishing.
-#
-# Among the more interesting lossages I noticed among Bourne shells:
-#     * No shell functions.
-#     * No `unset' builtin.
-#     * `shift' cannot take a numeric argument, and signals an error if
-#       there are no arguments to shift.
-#
-# Code:
-
-# Name by which this script was invoked.
-progname=`echo "$0" | sed -e 's/[^\/]*\///g'`
 
 # This string is expanded by rcs automatically when this file is checked out.
 rcs_revision='$Revision$'
-version=`set - $rcs_revision; echo $2`
-
-# To prevent hairy quoting and escaping later.
-bq='`'
-eq="'"
+rcs_version=`set - $rcs_revision; echo $2`
+program=`echo $0 | sed -e 's!.*/!!'`
+version="texi2dvi (GNU Texinfo 4.0) $rcs_version
 
-usage="Usage: $0 [OPTION]... FILE...
-Run a Texinfo document through TeX.
+Copyright (C) 1999 Free Software Foundation, Inc.
+There is NO warranty.  You may redistribute this software
+under the terms of the GNU General Public License.
+For more information about these matters, see the files named COPYING."
 
-Options:
--b, --batch          No interaction (\nonstopmode in TeX).
--c, --clean          Remove all auxiliary files.
--D, --debug          Turn on shell debugging ($bq${bq}set -x$eq$eq).
--t, --texinfo CMD    Insert CMD after @setfilename before running TeX.
---verbose            Report on what is done.
--h, --help           Display this help and exit.
--v, --version        Display version information and exit.
+usage="Usage: $program [OPTION]... FILE...
 
-The values of the TEX, TEXINDEX, and MAKEINFO environment variables are
-used to run those commands, if they are set.
+Run each Texinfo or LaTeX FILE through TeX in turn until all
+cross-references are resolved, building all indices.  The directory
+containing each FILE is searched for included files.  The suffix of FILE
+is used to determine its language (LaTeX or Texinfo).
 
-Email bug reports to bug-texinfo@gnu.org."
+Makeinfo is used to perform Texinfo macro expansion before running TeX
+when needed.
 
-# Initialize variables.
+Options:
+  -@                   Use @input instead of \input; for preloaded Texinfo.
+  -b, --batch          No interaction.
+  -c, --clean          Remove all auxiliary files.
+  -D, --debug          Turn on shell debugging (set -x).
+  -e, --expand         Force macro expansion using makeinfo.
+  -I DIR               Search DIR for Texinfo files.
+  -h, --help           Display this help and exit successfully.
+  -l, --language=LANG  Specify the LANG of FILE: LaTeX or Texinfo.
+  -p, --pdf            Use pdftex or pdflatex for processing.
+  -q, --quiet          No output unless errors (implies --batch).
+  -s, --silent         Same as --quiet.
+  -t, --texinfo=CMD    Insert CMD after @setfilename in copy of input file.
+                       Multiple values accumulate.
+  -v, --version        Display version information and exit successfully.
+  -V, --verbose        Report on what is done.
+
+The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO,
+TEX (or PDFTEX), and TEXINDEX environment variables are used to run
+those commands, if they are set.
+
+Email bug reports to <bug-texinfo@gnu.org>,
+general questions and discussion to <help-texinfo@gnu.org>."
+
+# Initialize variables for option overriding and otherwise.
 # Don't use `unset' since old bourne shells don't have this command.
 # Instead, assign them an empty value.
-# Some of these, like TEX and TEXINDEX, may be inherited from the environment.
-backup_extension=.bak # these files get deleted if all goes well.
-batch=
+escape='\'
+batch=false     # eval for batch mode
 clean=
 debug=
-orig_pwd="`pwd`"
+expand=         # t for expansion via makeinfo
+oformat=dvi
+set_language=
+miincludes=     # makeinfo include path
 textra=
-verbose=false
-makeinfo="${MAKEINFO-makeinfo}"
-texindex="${TEXINDEX-texindex}"
-tex="${TEX-tex}"
+tmpdir=${TMPDIR:-/tmp}/t2d$$  # avoid collisions on 8.3 filesystems.
+txincludes=     # TEXINPUTS extensions
+txiprereq=19990129 # minimum texinfo.tex version to have macro expansion
+quiet=          # by default let the tools' message be displayed
+verbose=false   # echo for verbose mode
+
+orig_pwd=`pwd`
+
+# Systems which define $COMSPEC or $ComSpec use semicolons to separate
+# directories in TEXINPUTS.
+if test -n "$COMSPEC$ComSpec"; then
+  path_sep=";"
+else
+  path_sep=":"
+fi
 
 # Save this so we can construct a new TEXINPUTS path for each file.
 TEXINPUTS_orig="$TEXINPUTS"
-export TEXINPUTS
-
+# Unfortunately makeindex does not read TEXINPUTS.
+INDEXSTYLE_orig="$INDEXSTYLE"
+export TEXINPUTS INDEXSTYLE
+
+# Push a token among the arguments that will be used to notice when we
+# ended options/arguments parsing.
+# Use "set dummy ...; shift" rather than 'set - ..." because on
+# Solaris set - turns off set -x (but keeps set -e).
+# Use ${1+"$@"} rather than "$@" because Digital Unix and Ultrix 4.3
+# still expand "$@" to a single argument (the empty string) rather
+# than nothing at all.
+arg_sep="$$--$$"
+set dummy ${1+"$@"} "$arg_sep"; shift
+
+# \f
 # Parse command line arguments.
-# Make sure that all wildcarded options are long enough to be unambiguous.
-# It's a good idea to document the full long option name in each case.
-# Long options which take arguments will need a `*' appended to the
-# canonical name to match the value appended after the `=' character.
-while :; do
-  test $# -eq 0 && break
-  
+while test x"$1" != x"$arg_sep"; do
+
+  # Handle --option=value by splitting apart and putting back on argv.
   case "$1" in
-    -b | --batch | --b* ) batch=t; shift ;;
-    -c | --clean | --c* ) clean=t; shift ;;
-    -D | --debug | --d* ) debug=t; shift ;;
-    -h | --help | --h* )   echo "$usage"; exit 0 ;;
-    # OK, we should do real option parsing here, but be lazy for now.
-    -t | --texinfo | --t*) shift; textra="$textra $1"; shift ;; 
-    -v | --vers* )
-      echo "$progname (GNU Texinfo 3.12) $version"
-      echo "Copyright (C) 1998 Free Software Foundation, Inc.
-There is NO warranty.  You may redistribute this software
-under the terms of the GNU General Public License.
-For more information about these matters, see the files named COPYING."
-      exit 0 ;;
-    --verb* )            verbose=echo; shift ;;
-    -- )     # Stop option processing
+    --*=*)
+      opt=`echo "$1" | sed -e 's/=.*//'`
+      val=`echo "$1" | sed -e 's/[^=]*=//'`
+      shift
+      set dummy "$opt" "$val" ${1+"$@"}; shift
+      ;;
+  esac
+
+  # This recognizes --quark as --quiet.  So what.
+  case "$1" in
+    -@ ) escape=@;;
+    # Silently and without documentation accept -b and --b[atch] as synonyms.
+    -b | --b*) batch=eval;;
+    -q | -s | --q* | --s*) quiet=t; batch=eval;;
+    -c | --c*) clean=t;;
+    -D | --d*) debug=t;;
+    -e | --e*) expand=t;;
+    -h | --h*) echo "$usage"; exit 0;;
+    -I | --I*)
+      shift
+      miincludes="$miincludes -I $1"
+      txincludes="$txincludes$path_sep$1"
+      ;;
+    -l | --l*) shift; set_language=$1;;
+    -p | --p*) oformat=pdf;;
+    -t | --t*) shift; textra="$textra\\
+$1";;
+    -v | --vers*) echo "$version"; exit 0;;
+    -V | --verb*) verbose=echo;;
+    --) # What remains are not options.
       shift
-      break ;;
-    -* )
-      case "$1" in
-        --*=* ) arg=`echo "$1" | sed -e 's/=.*//'` ;;
-        * )     arg="$1" ;;
-      esac
-      exec 1>&2
-      echo "$progname: Unknown or ambiguous option $bq$arg$eq."
-      echo "$progname: Try $bq--help$eq for more information."
-      exit 1 ;;
-    * ) break ;;
+      while test x"$1" != x"$arg_sep"; do
+        set dummy ${1+"$@"} "$1"; shift
+        shift
+      done
+      break;;
+    -*)
+      echo "$0: Unknown or ambiguous option \`$1'." >&2
+      echo "$0: Try \`--help' for more information." >&2
+      exit 1;;
+    *) set dummy ${1+"$@"} "$1"; shift;;
    esac
+   shift
 done
+# Pop the token
+shift
 
-# See if there are any command line args left (which will be interpreted as
-# filename arguments).
-if test $# -eq 0; then
-  exec 1>&2
-  echo "$progname: At least one file name is required as an argument."
-  echo "$progname: Try $bq--help$eq for more information."
+# Interpret remaining command line args as filenames.
+if test $# = 0; then
+  echo "$0: Missing file arguments." >&2
+  echo "$0: Try \`--help' for more information." >&2
   exit 2
 fi
 
+# Prepare the temporary directory.  Remove it at exit, unless debugging.
+if test -z "$debug"; then
+  trap "cd / && rm -rf $tmpdir" 0 1 2 15
+fi
+
+# Create the temporary directory with strict rights
+(umask 077 && mkdir $tmpdir) || exit 1
+
+# Prepare the tools we might need.  This may be extra work in some
+# cases, but improves the readibility of the script.
+utildir=$tmpdir/utils
+mkdir $utildir || exit 1
+
+# A sed script that preprocesses Texinfo sources in order to keep the
+# iftex sections only.  We want to remove non TeX sections, and
+# comment (with `@c texi2dvi') TeX sections so that makeinfo does not
+# try to parse them.  Nevertheless, while commenting TeX sections,
+# don't comment @macro/@end macro so that makeinfo does propagate
+# them.  Unfortunately makeinfo --iftex --no-ifhtml --no-ifinfo
+# doesn't work well enough (yet) to use that, so work around with sed.
+comment_iftex_sed=$utildir/comment.sed
+cat <<EOF >$comment_iftex_sed
+/^@tex/,/^@end tex/{
+  s/^/@c texi2dvi/
+}
+/^@iftex/,/^@end iftex/{
+  s/^/@c texi2dvi/
+  /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{
+    s/^@c texi2dvi//
+  }
+}
+/^@html/,/^@end html/d
+/^@ifhtml/,/^@end ifhtml/d
+/^@ifnottex/,/^@end ifnottex/d
+/^@ifinfo/,/^@end ifinfo/{
+  /^@node/p
+  /^@menu/,/^@end menu/p
+  d
+}
+EOF
+# Uncommenting is simple: Remove any leading `@c texi2dvi'.
+uncomment_iftex_sed=$utildir/uncomment.sed
+cat <<EOF >$uncomment_iftex_sed
+s/^@c texi2dvi//
+EOF
+
+# A shell script that computes the list of xref files.
+# Takes the filename (without extension) of which we look for xref
+# files as argument.  The index files must be reported last.
+get_xref_files=$utildir/get_xref.sh
+cat <<\EOF >$get_xref_files
+#! /bin/sh
+
+# Get list of xref files (indexes, tables and lists).
+# Find all files having root filename with a two-letter extension,
+# saves the ones that are really Texinfo-related files.  .?o? catches
+# LaTeX tables and lists.
+for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do
+  # If file is empty, skip it.
+  test -s "$this_file" || continue
+  # If the file is not suitable to be an index or xref file, don't
+  # process it.  The file can't be if its first character is not a
+  # backslash or single quote.
+  first_character=`sed -n '1s/^\(.\).*$/\1/p;q' $this_file`
+  if test "x$first_character" = "x\\" \
+     || test "x$first_character" = "x'"; then
+    xref_files="$xref_files ./$this_file"
+  fi
+done
+echo "$xref_files"
+EOF
+chmod 500 $get_xref_files
+
+# File descriptor usage:
+# 0 standard input
+# 1 standard output (--verbose messages)
+# 2 standard error
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 5 tools output (turned off by --quiet)
+
+# Tools' output.  If quiet, discard, else redirect to the message flow.
+if test "$quiet" = t; then
+  exec 5>/dev/null
+else
+  exec 5>&1
+fi
+
+# Enable tracing
 test "$debug" = t && set -x
 
-# Texify files
+# \f
+# TeXify files.
+
 for command_line_filename in ${1+"$@"}; do
   $verbose "Processing $command_line_filename ..."
 
-  # See if file exists.  If it doesn't we're in trouble since, even
+  # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex),
+  # prepend `./' in order to avoid that the tools take it as an option.
+  echo "$command_line_filename" | egrep '^(/|[A-z]:/)' >/dev/null \
+  || command_line_filename="./$command_line_filename"
+
+  # See if the file exists.  If it doesn't we're in trouble since, even
   # though the user may be able to reenter a valid filename at the tex
   # prompt (assuming they're attending the terminal), this script won't
-  # be able to find the right index files and so forth.
-  if test ! -r "${command_line_filename}"; then
-    echo "$0: Could not read ${command_line_filename}." >&2
+  # be able to find the right xref files and so forth.
+  if test ! -r "$command_line_filename"; then
+    echo "$0: Could not read $command_line_filename, skipping." >&2
     continue
   fi
 
-  # Roughly equivalent to `dirname ...`, but more portable
-  directory="`echo ${command_line_filename} | sed 's/\/[^\/]*$//'`"
-  filename_texi="`basename ${command_line_filename}`"
-  # Strip off the last extension part (probably .texinfo or .texi)
-  filename_noext="`echo ${filename_texi} | sed 's/\.[^.]*$//'`"
-
-  # Use same basename since we want to generate aux files with the same
-  # basename as the manual.  Use extension .texi for the temp file so
-  # that TeX will ignore it.  Thus, we must use a subdirectory.
-  #
-  # Output the macro-expanded file to here.  The vastly abbreviated
-  # temporary directory name is so we don't have collisions on 8.3 or
-  # 14-character filesystems.
-  tmp_dir=${TMPDIR-/tmp}/txi2d.$$
-  filename_tmp=$tmp_dir/$filename_noext.texi
-  # Output the file with the user's extra commands to here.
-  tmp_dir2=${tmp_dir}.2
-  filename_tmp2=$tmp_dir2/$filename_noext.texi
-  mkdir $tmp_dir $tmp_dir2
-  # Always remove the temporary directories.
-  trap "rm -rf $tmp_dir $tmp_dir2" 1 2 15
-
-  # If directory and file are the same, then it's probably because there's
-  # no pathname component.  Set dirname to `.', the current directory.
-  if test "z${directory}" = "z${command_line_filename}"; then
-    directory=.
-  fi
+  # Get the name of the current directory.  We want the full path
+  # because in clean mode we are in tmp, in which case a relative
+  # path has no meaning.
+  filename_dir=`echo $command_line_filename | sed 's!/[^/]*$!!;s!^$!.!'`
+  filename_dir=`cd "$filename_dir" >/dev/null && pwd`
+
+  # Strip directory part but leave extension.
+  filename_ext=`basename "$command_line_filename"`
+  # Strip extension.
+  filename_noext=`echo "$filename_ext" | sed 's/\.[^.]*$//'`
+  ext=`echo "$filename_ext" | sed 's/^.*\.//'`
+
+  # _src.  Use same basename since we want to generate aux files with
+  # the same basename as the manual.  If --expand, then output the
+  # macro-expanded file to here, else copy the original file.
+  tmpdir_src=$tmpdir/src
+  filename_src=$tmpdir_src/$filename_noext.$ext
+
+  # _xtr.  The file with the user's extra commands.
+  tmpdir_xtr=$tmpdir/xtr
+  filename_xtr=$tmpdir_xtr/$filename_noext.$ext
+
+  # _bak.  Copies of the previous xref files (another round is run if
+  # they differ from the new one).
+  tmpdir_bak=$tmpdir/bak
+
+  # Make all those directories and give up if we can't succeed.
+  mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1
 
-  # Source file might @include additional texinfo sources.  Put `.' and
+  # Source file might include additional sources.  Put `.' and
   # directory where source file(s) reside in TEXINPUTS before anything
-  # else.  `.' goes first to ensure that any old .aux, .cps, etc. files in
-  # ${directory} don't get used in preference to fresher files in `.'.
-  TEXINPUTS=".:${directory}:${TEXINPUTS_orig}"
+  # else.  `.' goes first to ensure that any old .aux, .cps,
+  # etc. files in ${directory} don't get used in preference to fresher
+  # files in `.'.  Include orig_pwd in case we are in clean mode, where
+  # we've cd'd to a temp directory.
+  common=".$path_sep$orig_pwd$path_sep$filename_dir$path_sep$txincludes$path_sep"
+   TEXINPUTS="$common$TEXINPUTS_orig"
+  INDEXSTYLE="$common$INDEXSTYLE_orig"
+
+  # If the user explicitly specified the language, use that.
+  # Otherwise, if the first line is \input texinfo, assume it's texinfo.
+  # Otherwise, guess from the file extension.
+  if test -n "$set_language"; then
+    language=$set_language
+  elif sed 1q "$command_line_filename" | fgrep 'input texinfo' >/dev/null; then
+    language=texinfo
+  else
+    language=
+  fi
+
+  # Get the type of the file (latex or texinfo) from the given language
+  # we just guessed, or from the file extension if not set yet.
+  case ${language:-$filename_ext} in
+    [lL]a[tT]e[xX] | *.ltx | *.tex)
+      # Assume a LaTeX file.  LaTeX needs bibtex and uses latex for
+      # compilation.  No makeinfo.
+      bibtex=${BIBTEX:-bibtex}
+      makeinfo= # no point in running makeinfo on latex source.
+      texindex=${MAKEINDEX:-makeindex}
+      if test $oformat = dvi; then
+        tex=${LATEX:-latex}
+      else
+        tex=${PDFLATEX:-pdflatex}
+      fi
+      ;;
+
+    *)
+      # Assume a Texinfo file.  Texinfo files need makeinfo, texindex and tex.
+      bibtex=
+      texindex=${TEXINDEX:-texindex}
+      if test $oformat = dvi; then
+        tex=${TEX:-tex}
+      else
+        tex=${PDFTEX:-pdftex}
+      fi
+      # Unless required by the user, makeinfo expansion is wanted only
+      # if texinfo.tex is too old.
+      if test "$expand" = t; then
+        makeinfo=${MAKEINFO:-makeinfo}
+      else
+        # Check if texinfo.tex performs macro expansion by looking for
+        # its version.  The version is a date of the form YEAR-MO-DA.
+        # We don't need to use [0-9] to match the digits since anyway
+        # the comparison with $txiprereq, a number, will fail with non
+        # digits.
+        txiversion_tex=txiversion.tex
+        echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex
+        # Run in the tmpdir to avoid leaving files.
+        eval `cd $tmpdir >/dev/null \
+                    && $tex $txiversion_tex 2>/dev/null \
+| sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'`
+        $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..."
+        if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then
+          makeinfo=
+        else
+          makeinfo=${MAKEINFO:-makeinfo}
+        fi
+        # As long as we had to run TeX, offer the user this convenience
+        if test "$txiformat" = Texinfo; then
+          escape=@
+        fi
+      fi
+      ;;
+  esac
 
-  # Expand macro commands in the original source file using Makeinfo;
-  #   the macro syntax bfox implemented is impossible to implement in TeX.
+  # Expand macro commands in the original source file using Makeinfo.
   # Always use `end' footnote style, since the `separate' style
   #   generates different output (arguably this is a bug in -E).
   # Discard main info output, the user asked to run TeX, not makeinfo.
-  # Redirect output to /dev/null to throw away `Making info file...' msg.
-  $verbose "Macro-expanding $command_line_filename to $filename_tmp ..."
-  $makeinfo --footnote-style=end -E $filename_tmp -o /dev/null \
-    $command_line_filename >/dev/null
-
-  # But if there were no macros, or makeinfo failed for some reason,
-  # just use the original file.  (It shouldn't make any difference, but
-  # let's be safe.)
-  if test $? -ne 0 || cmp -s $filename_tmp $command_line_filename; then
+  if test -n "$makeinfo"; then
+    $verbose "Macro-expanding $command_line_filename to $filename_src ..."
+    sed -f $comment_iftex_sed "$command_line_filename" \
+      | $makeinfo --footnote-style=end -I "$filename_dir" $miincludes \
+        -o /dev/null --macro-expand=- \
+      | sed -f $uncomment_iftex_sed >"$filename_src"
+    filename_input=$filename_src
+  fi
+
+  # If makeinfo failed (or was not even run), use the original file as input.
+  if test $? -ne 0 \
+     || test ! -r "$filename_src"; then
     $verbose "Reverting to $command_line_filename ..."
-    cp -p $command_line_filename $filename_tmp
+    filename_input=$filename_dir/$filename_ext
   fi
-  filename_input=$filename_tmp
-  dirname_input=$tmp_dir
 
   # Used most commonly for @finalout, @smallbook, etc.
   if test -n "$textra"; then
-    $verbose "Inserting extra commands: $textra."
+    $verbose "Inserting extra commands: $textra"
     sed '/^@setfilename/a\
-'"$textra" $filename_input >$filename_tmp2
-   filename_input=$filename_tmp2
-   dirname_input=$tmp_dir2
+'"$textra" "$filename_input" >$filename_xtr
+    filename_input=$filename_xtr
   fi
 
   # If clean mode was specified, then move to the temporary directory.
   if test "$clean" = t; then
-    $verbose "cd $dirname_input"
-    cd $dirname_input || exit 1
-    filename_input=`basename $filename_input`
+    $verbose "cd $tmpdir_src"
+    cd "$tmpdir_src" || exit 1
   fi
 
-  while true; do # will break out of loop below
-    # "Unset" variables that might have values from previous iterations and
-    # which won't be completely reset later.
-    definite_index_files=
-
-    # Find all files having root filename with a two-letter extension,
-    # determine whether they're really index files, and save them.  Foo.aux
-    # is actually the cross-references file, but we need to keep track of
-    # that too.
-    possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`"
-    for this_file in ${possible_index_files}; do
-      # If file is empty, forget it.
-      test -s "${this_file}" || continue
-
-      # Examine first character of file.  If it's not suitable to be an
-      # index or xref file, don't process it.
-      first_character="`sed -n '1s/^\(.\).*$/\1/p;q' ${this_file}`"
-      if test "x${first_character}" = "x\\" \
-         || test "x${first_character}" = "x'"; then
-        definite_index_files="${definite_index_files} ${this_file}"
+  while :; do # will break out of loop below
+    orig_xref_files=`$get_xref_files "$filename_noext"`
+
+    # Save copies of originals for later comparison.
+    if test -n "$orig_xref_files"; then
+      $verbose "Backing up xref files: `echo $orig_xref_files | sed 's|\./||g'`"
+      cp $orig_xref_files $tmpdir_bak
+    fi
+
+    # Run bibtex on current file.
+    # - If its input (AUX) exists.
+    # - If AUX contains both `\bibdata' and `\bibstyle'.
+    # - If some citations are missing (LOG contains `Citation').
+    #   or the LOG complains of a missing .bbl
+    #
+    # We run bibtex first, because I can see reasons for the indexes
+    # to change after bibtex is run, but I see no reason for the
+    # converse.
+    #
+    # Don't try to be too smart.  Running bibtex only if the bbl file
+    # exists and is older than the LaTeX file is wrong, since the
+    # document might include files that have changed.  Because there
+    # can be several AUX (if there are \include's), but a single LOG,
+    # looking for missing citations in LOG is easier, though we take
+    # the risk to match false messages.
+    if test -n "$bibtex" \
+       && test -r "$filename_noext.aux" \
+       && test -r "$filename_noext.log" \
+       && (grep '^\\bibdata[{]'  "$filename_noext.aux" \
+           && grep '^\\bibstyle[{]' "$filename_noext.aux" \
+           && (grep 'Warning:.*Citation.*undefined' "$filename_noext.log" \
+               || grep 'No file .*\.bbl\.' "$filename_noext.log")) \
+          >/dev/null 2>&1; \
+    then
+      $verbose "Running $bibtex $filename_noext ..."
+      if $bibtex "$filename_noext" >&5; then :; else
+        echo "$0: $bibtex exited with bad status, quitting." >&2
+        exit 1
+      fi
+    fi
+
+    # What we'll run texindex on -- exclude non-index files.
+    # Since we know index files are last, it is correct to remove everything
+    # before .aux and .?o?.
+    index_files=`echo "$orig_xref_files" \
+                 | sed "s!.*\.aux!!g;
+                        s!./$filename_noext\..o.!!g;
+                        s/^[ ]*//;s/[ ]*$//"`
+    # Run texindex (or makeindex) on current index files.  If they
+    # already exist, and after running TeX a first time the index
+    # files don't change, then there's no reason to run TeX again.
+    # But we won't know that if the index files are out of date or
+    # nonexistent.
+    if test -n "$texindex" && test -n "$index_files"; then
+      $verbose "Running $texindex $index_files ..."
+      if $texindex $index_files 2>&5 1>&2; then :; else
+         echo "$0: $texindex exited with bad status, quitting." >&2
+         exit 1
       fi
-    done
-    orig_index_files="${definite_index_files}"
-    orig_index_files_sans_aux="`echo ${definite_index_files} \
-                                 | sed 's/'${filename_noext}'\.aux//;
-                                        s/^[ ]*//;s/[ ]*$//;'`"
-
-    # Now save copies of original index files so we have some means of
-    # comparison later.
-    $verbose "Backing up current index files: $orig_index_files ..."  
-    for index_file_to_save in ${orig_index_files}; do
-      cp "${index_file_to_save}" "${index_file_to_save}${backup_extension}"
-    done
-
-    # Run texindex on current index files.  If they already exist, and
-    # after running TeX a first time the index files don't change, then
-    # there's no reason to run TeX again.  But we won't know that if the
-    # index files are out of date or nonexistent.
-    if test -n "${orig_index_files_sans_aux}"; then
-      $verbose "Running $texindex $orig_index_files_sans_aux ..."
-      ${texindex} ${orig_index_files_sans_aux}
     fi
 
     # Finally, run TeX.
-    if test "$batch" = t; then
-      tex_mode='\nonstopmode'
-    else
-      tex_mode=
+    # Prevent $ESCAPE from being interpreted by the shell if it happens
+    # to be `/'.
+    $batch tex_args="\\${escape}nonstopmode\ \\${escape}input"
+    $verbose "Running $cmd ..."
+    cmd="$tex $tex_args $filename_input"
+    if $cmd >&5; then :; else
+      echo "$0: $tex exited with bad status, quitting." >&2
+      echo "$0: see $filename_noext.log for errors." >&2
+      test "$clean" = t \
+        && cp "$filename_noext.log" "$orig_pwd"
+      exit 1
     fi
-    $verbose "Running $tex $filename_input ..."
-    cmd="$tex $tex_mode \\input $filename_input"
-    $cmd
-
-    # Check if index files changed.
-    # 
-    definite_index_files=
-    # Get list of new index files.
-    possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`"
-    for this_file in ${possible_index_files}; do
-       # If file is empty, forget it.
-       test -s "${this_file}" || continue
-
-       # Examine first character of file.  If it's not a backslash or
-       # single quote, then it's definitely not an index or xref file.
-       # (Will have to check for @ when we switch to Texinfo syntax in
-       # all these files...)
-       first_character="`sed -n '1s/^\(.\).*$/\1/p;q' ${this_file}`"
-       if test "x${first_character}" = "x\\" \
-          || test "x${first_character}" = "x'"; then
-         definite_index_files="${definite_index_files} ${this_file}"
-       fi
-    done
-    new_index_files="${definite_index_files}"
-    new_index_files_sans_aux="`echo ${definite_index_files} \
-                               | sed 's/'${filename_noext}'\.aux//;
-                                      s/^[ ]*//;s/[ ]*$//;'`"
-
-    # If old and new list don't at least have the same file list, then one
-    # file or another has definitely changed.
-    $verbose "Original index files =$orig_index_files"
-    $verbose "New index files =$new_index_files"
-    if test "z${orig_index_files}" != "z${new_index_files}"; then
-      index_files_changed_p=t
-    else
-      # File list is the same.  We must compare each file until we find a
-      # difference.
-      index_files_changed_p=
-      for this_file in ${new_index_files}; do
-        $verbose "Comparing index file $this_file ..."
-        # cmp -s will return nonzero exit status if files differ.
-        cmp -s "${this_file}" "${this_file}${backup_extension}"
-        if test $? -ne 0; then
-          # We only need to keep comparing until we find *one* that
-          # differs, because we'll have to run texindex & tex no
-          # matter what.
-          index_files_changed_p=t
-          $verbose "Index file $this_file differed:"
-          test $verbose = echo \
-          && diff -c "${this_file}${backup_extension}" "${this_file}"
+
+
+    # Decide if looping again is needed.
+    finished=t
+
+    # LaTeX (and the package changebar) report in the LOG file if it
+    # should be rerun.  This is needed for files included from
+    # subdirs, since texi2dvi does not try to compare xref files in
+    # subdirs.  Performing xref files test is still good since LaTeX
+    # does not report changes in xref files.
+    if fgrep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then
+      finished=
+    fi
+
+    # Check if xref files changed.
+    new_xref_files=`$get_xref_files "$filename_noext"`
+    $verbose "Original xref files = `echo $orig_xref_files | sed 's|\./||g'`"
+    $verbose "New xref files      = `echo $new_xref_files | sed 's|\./||g'`"
+
+    # If old and new lists don't at least have the same file list,
+    # then one file or another has definitely changed.
+    test "x$orig_xref_files" != "x$new_xref_files" && finished=
+
+    # File list is the same.  We must compare each file until we find
+    # a difference.
+    if test -n "$finished"; then
+      for this_file in $new_xref_files; do
+        $verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..."
+        # cmp -s returns nonzero exit status if files differ.
+        if cmp -s "$this_file" "$tmpdir_bak/$this_file"; then :; else
+          # We only need to keep comparing until we find one that
+          # differs, because we'll have to run texindex & tex again no
+          # matter how many more there might be.
+          finished=
+          $verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..."
+          test "$debug" = t && diff -c "$tmpdir_bak/$this_file" "$this_file"
           break
         fi
       done
     fi
 
-    # If index files have changed since TeX has been run, or if the aux
-    # file wasn't present originally, run texindex and TeX again.
-    if test "${index_files_changed_p}"; then :; else
-      # Nothing changed.  We're done with TeX.
-      break
-    fi
+    # If finished, exit the loop, else rerun the loop.
+    test -n "$finished" && break
   done
 
   # If we were in clean mode, compilation was in a tmp directory.
-  # Copy the DVI file into the directory where the compilation
+  # Copy the DVI (or PDF) file into the directory where the compilation
   # has been done.  (The temp dir is about to get removed anyway.)
   # We also return to the original directory so that
   # - the next file is processed in correct conditions
   # - the temporary file can be removed
   if test -n "$clean"; then
-    $verbose "Copying DVI file from `pwd` to $orig_pwd"
-    cp -p $filename_noext.dvi $orig_pwd
+    $verbose "Copying $oformat file from `pwd` to $orig_pwd"
+    cp -p "./$filename_noext.$oformat" "$orig_pwd"
+    cd / # in case $orig_pwd is on a different drive (for DOS)
     cd $orig_pwd || exit 1
   fi
 
-  # Generate list of files to delete, then call rm once with the entire
-  # list.  This is significantly faster than multiple executions of rm.
-  file_list=
-  for file in ${orig_index_files}; do
-    file_list="${file_list} ${file}${backup_extension}"
-  done
-  if test -n "${file_list}"; then
-    $verbose "Removing $file_list $tmp_dir $tmp_dir2 ..."
-    rm -f ${file_list}
-    rm -rf $tmp_dir $tmp_dir2
+  # Remove temporary files.
+  if test "x$debug" = "x"; then
+    $verbose "Removing $tmpdir_src $tmpdir_xtr $tmpdir_bak ..."
+    cd /
+    rm -rf $tmpdir_src $tmpdir_xtr $tmpdir_bak
   fi
 done
 
 $verbose "$0 done."
-true # exit successfully.
+exit 0 # exit successfully, not however we ended the loop.
index 4beec01b341f0898f1e97725dd1cbd02c83da1a4..7bb8493fdd89701cea46acdcb7794a0cc94f60ca 100755 (executable)
-#!/usr/local/bin/perl
+#! /usr/bin/perl
 'di ';
 'ig 00 ';
 #+##############################################################################
-#                                                                              #
-# File: texi2html                                                              #
-#                                                                              #
-# Description: Program to transform most Texinfo documents to HTML             #
-#                                                                              #
+#
+# texi2html: Program to transform Texinfo documents to HTML
+#
+#    Copyright (C) 1999, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# 
 #-##############################################################################
 
-# @(#)texi2html        1.52 01/05/98   Written (mainly) by Lionel Cons, Lionel.Cons@cern.ch
+# This requires perl version 5 or higher
+require 5.0;
+
+#++##############################################################################
+#
+# NOTE FOR DEBUGGING THIS SCRIPT:
+# You can run 'perl texi2html.pl' directly, provided you have
+# the environment variable T2H_HOME set to the directory containing
+# the texi2html.init file
+#
+#--##############################################################################
+
+# CVS version:
+# $Id$
+
+# Homepage:
+$T2H_HOMEPAGE = <<EOT;
+http://www.mathematik.uni-kl.de/~obachman/Texi2html
+EOT
+
+# Authors:  
+$T2H_AUTHORS = <<EOT;
+Written by: Lionel Cons <Lionel.Cons\@cern.ch> (original author)
+            Karl Berry  <karl\@freefriends.org>
+            Olaf Bachmann <obachman\@mathematik.uni-kl.de>
+            and many others.
+Maintained by: Olaf Bachmann <obachman\@mathematik.uni-kl.de>
+Send bugs and suggestions to <texi2html\@mathematik.uni-kl.de>
+EOT
 
+# Version: set in configure.in
+$THISVERSION = '1.64';
+$THISPROG = "texi2html $THISVERSION";  # program name and version
+  
 # The man page for this program is included at the end of this file and can be
 # viewed using the command 'nroff -man texi2html'.
-# Please read the copyright at the end of the man page.
+
+# Identity:
+
+$T2H_TODAY = &pretty_date;             # like "20 September 1993"
+# the eval prevents this from breaking on system which do not have
+# a proper getpwuid implemented
+eval { ($T2H_USER = (getpwuid ($<))[6]) =~ s/,.*//;}; # Who am i
+
+#+++############################################################################
+#                                                                              #
+# Initialization                                                               #
+# Pasted content of File $(srcdir)/texi2html.init: Default initializations     # 
+#                                                                              #
+#---############################################################################
+
+# leave this within comments, and keep the require statement
+# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init
+# exists.
+
+# 
+# -*-perl-*-
+######################################################################
+# File: texi2html.init
+#
+# Sets default values for command-line arguments and for various customizable
+# procedures
+#
+# A copy of this file is pasted into the beginning of texi2html by
+# 'make texi2html'
+#
+# Copy this file and make changes to it, if you like.
+# Afterwards, either, load it with command-line option -init_file <your_init_file>
+#
+# $Id$
+
+######################################################################
+# stuff which can also be set by command-line options
+#
+#
+# Note: values set here, overwrite values set by the command-line
+# options before -init_file and might still be overwritten by
+# command-line arguments following the -init_file option
+#
+
+# T2H_OPTIONS is a hash whose keys are the (long) names of valid
+# command-line options and whose values are a hash with the following keys:
+# type    ==> one of !|=i|:i|=s|:s (see GetOpt::Long for more info)
+# linkage ==> ref to scalar, array, or subroutine (see GetOpt::Long for more info)
+# verbose ==> short description of option (displayed by -h)
+# noHelp  ==> if 1 -> for "not so important options": only print description on -h 1
+#                2 -> for obsolete options: only print description on -h 2
+
+$T2H_DEBUG = 0;
+$T2H_OPTIONS -> {debug} =
+{
+ type => '=i',
+ linkage => \$main::T2H_DEBUG,
+ verbose => 'output HTML with debuging information',
+};
+
+$T2H_DOCTYPE = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'; 
+$T2H_OPTIONS -> {doctype} = 
+{
+ type => '=s',
+ linkage => \$main::T2H_DOCTYPE,
+ verbose => 'document type which is output in header of HTML files',
+ noHelp => 1
+};
+
+$T2H_CHECK = 0;
+$T2H_OPTIONS -> {check} =
+{
+ type => '!',
+ linkage => \$main::T2H_CHECK,
+ verbose => 'if set, only check files and output all things that may be Texinfo commands',
+ noHelp => 1
+};
+
+# -expand
+# if set to "tex" (or, "info") expand @iftex and @tex (or, @ifinfo) sections
+# else, neither expand @iftex, @tex, nor @ifinfo sections
+$T2H_EXPAND = "info";
+$T2H_OPTIONS -> {expand} = 
+{
+ type => '=s',
+ linkage => \$T2H_EXPAND,
+ verbose => 'Expand info|tex|none section of texinfo source',
+};
+
+# - glossary
+#if set, uses section named `Footnotes' for glossary
+$T2H_USE_GLOSSARY = 0;
+T2H_OPTIONS -> {glossary} =
+{
+ type => '!',
+ linkage => \$T2H_USE_GLOSSARY,
+ verbose => "if set, uses section named `Footnotes' for glossary",
+ noHelp  => 1,
+};
+
+
+# -invisible
+# $T2H_INVISIBLE_MARK is the text used to create invisible destination
+# anchors for index links (you can for instance use the invisible.xbm
+# file shipped with this program). This is a workaround for a known
+# bug of many WWW browsers, including netscape.
+# For me, it works fine without it -- on the contrary: if there, it
+# inserts space between headers and start of text (obachman 3/99)
+$T2H_INVISIBLE_MARK = '';
+# $T2H_INVISIBLE_MARK = '&#160;';
+$T2H_OPTIONS -> {invisible} =
+{
+ type => '=s',
+ linkage => \$T2H_INVISIBLE_MARK,
+ verbose => 'use text in invisble anchot',
+ noHelp  => 1,
+};
+
+# -iso
+# if set, ISO8879 characters are used for special symbols (like copyright, etc)
+$T2H_USE_ISO = 0;
+$T2H_OPTIONS -> {iso} =
+{
+ type => 'iso',
+ linkage => \$T2H_USE_ISO,
+ verbose => 'if set, ISO8879 characters are used for special symbols (like copyright, etc)',
+ noHelp => 1,
+};
+
+# -I
+# list directories where @include files are searched for (besides the
+# directory of the doc file) additional '-I' args add to this list
+@T2H_INCLUDE_DIRS = (".");
+$T2H_OPTIONS -> {I} =
+{
+ type => '=s',
+ linkage => \@T2H_INCLUDE_DIRS,
+ verbose => 'append $s to the @include search path',
+};
+
+# -top_file
+# uses file of this name for top-level file
+# extension is manipulated appropriately, if necessary.
+# If empty, <basename of document>.html is used
+# Typically, you would set this to "index.html".
+$T2H_TOP_FILE = '';
+$T2H_OPTIONS -> {top_file} =
+{
+ type => '=s',
+ linkage => \$T2H_TOP_FILE,
+ verbose => 'use $s as top file, instead of <docname>.html',
+};
+
+
+# -toc_file
+# uses file of this name for table of contents file
+# extension is manipulated appropriately, if necessary.
+# If empty, <basename of document>_toc.html is used
+$T2H_TOC_FILE = '';
+$T2H_OPTIONS -> {toc_file} =
+{
+ type => '=s',
+ linkage => \$T2H_TOC_FILE,
+ verbose => 'use $s as ToC file, instead of <docname>_toc.html',
+};
+
+# -frames
+# if set, output two additional files which use HTML 4.0 "frames".
+$T2H_FRAMES = 0;
+$T2H_OPTIONS -> {frames} =
+{
+ type => '!',
+ linkage => \$T2H_FRAMES,
+ verbose => 'output files which use HTML 4.0 frames (experimental)',
+ noHelp => 1,
+};
+
+
+# -menu | -nomenu
+# if set, show the Texinfo menus
+$T2H_SHOW_MENU = 1;
+$T2H_OPTIONS -> {menu} =
+{
+ type => '!',
+ linkage => \$T2H_SHOW_MENU,
+ verbose => 'ouput Texinfo menus',
+};
+
+# -number | -nonumber
+# if set, number sections and show section names and numbers in references 
+# and menus
+$T2H_NUMBER_SECTIONS = 1;
+$T2H_OPTIONS -> {number} =
+{
+ type => '!',
+ linkage => \$T2H_NUMBER_SECTIONS,
+ verbose => 'use numbered sections'
+};
+
+# if set, and T2H_NUMBER_SECTIONS is set, then use node names in menu
+# entries, instead of section names
+$T2H_NODE_NAME_IN_MENU = 0;
+
+# if set and menu entry equals menu descr, then do not print menu descr.
+# Likewise, if node name equals entry name, do not print entry name.
+$T2H_AVOID_MENU_REDUNDANCY = 1;
+
+# -split section|chapter|none 
+# if set to 'section' (resp. 'chapter') create one html file per (sub)section
+# (resp. chapter) and separate pages for Top, ToC, Overview, Index,
+# Glossary, About.
+# otherwise, create monolithic html file which contains whole document
+#$T2H_SPLIT = 'section';
+$T2H_SPLIT = '';
+$T2H_OPTIONS -> {split} =
+{
+ type => '=s',
+ linkage => \$T2H_SPLIT,
+ verbose => 'split document on section|chapter else no splitting',
+};
+
+# -section_navigation|-no-section_navigation
+# if set, then navigation panels are printed at the beginning of each section
+# and, possibly at the end (depending on whether or not there were more than 
+# $T2H_WORDS_IN_PAGE  words on page
+# This is most useful if you do not want to have section navigation 
+# on -split chapter
+$T2H_SECTION_NAVIGATION = 1;
+$T2H_OPTIONS -> {sec_nav} =
+{
+ type => '!',
+ linkage => \$T2H_SECTION_NAVIGATION,
+ verbose => 'output navigation panels for each section',
+};
+
+# -subdir
+# if set put result files in this directory
+# if not set result files are put into current directory
+#$T2H_SUBDIR = 'html';
+$T2H_SUBDIR = '';
+$T2H_OPTIONS -> {subdir} =
+{
+ type => '=s',
+ linkage => \$T2H_SUBDIR,
+ verbose => 'put HTML files in directory $s, instead of $cwd',
+};
+
+# -short_extn
+# If this is set all HTML file will have extension ".htm" instead of
+# ".html". This is helpful when shipping the document to PC systems.
+$T2H_SHORTEXTN = 0;
+$T2H_OPTIONS -> {short_ext} =
+{
+ type => '!',
+ linkage => \$T2H_SHORTEXTN,
+ verbose => 'use "htm" extension for output HTML files',
+};
+
+
+# -prefix
+# Set the output file prefix, prepended to all .html, .gif and .pl files.
+# By default, this is the basename of the document
+$T2H_PREFIX = '';
+$T2H_OPTIONS -> {prefix} =
+{
+ type => '=s',
+ linkage => \$T2H_PREFIX,
+ verbose => 'use as prefix for output files, instead of <docname>',
+};
+
+# -o filename
+# If set, generate monolithic document output html into $filename
+$T2H_OUT = '';
+$T2H_OPTIONS -> {out_file} =
+{
+ type => '=s',
+ linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';},
+ verbose => 'if set, all HTML output goes into file $s',
+};
+
+# -short_ref
+#if set cross-references are given without section numbers
+$T2H_SHORT_REF = '';
+$T2H_OPTIONS -> {short_ref} =
+{
+ type => '!',
+ linkage => \$T2H_SHORT_REF,
+ verbose => 'if set, references are without section numbers',
+};
+
+# -idx_sum
+# if value is set, then for each @prinindex $what
+# $docu_name_$what.idx is created which contains lines of the form
+# $key\t$ref sorted alphabetically (case matters)
+$T2H_IDX_SUMMARY = 0;
+$T2H_OPTIONS -> {idx_sum} =
+{
+ type => '!',
+ linkage => \$T2H_IDX_SUMMARY,
+ verbose => 'if set, also output index summary',
+ noHelp  => 1,
+};
+
+# -verbose
+# if set, chatter about what we are doing
+$T2H_VERBOSE = '';
+$T2H_OPTIONS -> {Verbose} =
+{
+ type => '!',
+ linkage => \$T2H_VERBOSE,
+ verbose => 'print progress info to stdout',
+};
+
+# -lang
+# For page titles use $T2H_WORDS->{$T2H_LANG}->{...} as title.
+# To add a new language, supply list of titles (see $T2H_WORDS below).
+# and use ISO 639 language codes (see e.g. perl module Locale-Codes-1.02 
+# for  definitions)
+# Default's to 'en' if not set or no @documentlanguage is specified
+$T2H_LANG = '';
+$T2H_OPTIONS -> {lang} =
+{
+ type => '=s',
+ linkage => sub {SetDocumentLanguage($_[1])},
+ verbose => 'use $s as document language (ISO 639 encoding)',
+};
+
+# -l2h
+# if set, uses latex2html for generation of math content 
+$T2H_L2H = '';
+$T2H_OPTIONS -> {l2h} =
+{
+ type => '!',
+ linkage => \$T2H_L2H,
+ verbose => 'if set, uses latex2html for @math and @tex',
+};
+
+######################
+# The following options are only relevant if $T2H_L2H is set
+#
+# -l2h_l2h
+# name/location of latex2html progam
+$T2H_L2H_L2H = "latex2html";
+$T2H_OPTIONS -> {l2h_l2h} =
+{
+ type => '=s',
+ linkage => \$T2H_L2H_L2H,
+ verbose => 'program to use for latex2html translation',
+ noHelp => 1,
+};
+
+# -l2h_skip
+# if set, skips actual call to latex2html tries to reuse previously generated 
+# content, instead
+$T2H_L2H_SKIP = '';
+$T2H_OPTIONS -> {l2h_skip} =
+{
+ type => '!',
+ linkage => \$T2H_L2H_SKIP,
+ verbose => 'if set, tries to reuse previously latex2html output',
+ noHelp => 1,
+};
+
+# -l2h_tmp
+# if set, l2h uses this directory for temporarary files. The path
+# leading to this directory may not contain a dot (i.e., a "."),
+# otherwise, l2h will fail
+$T2H_L2H_TMP = '';
+$T2H_OPTIONS -> {l2h_tmp} =
+{
+ type => '=s',
+ linkage => \$T2H_L2H_TMP,
+ verbose => 'if set, uses $s as temporary latex2html directory',
+ noHelp => 1,
+};
+
+# if set, cleans intermediate files (they all have the prefix $doc_l2h_) 
+# of l2h 
+$T2H_L2H_CLEAN = 1;
+$T2H_OPTIONS -> {l2h_clean} =
+{
+ type => '!',
+ linkage => \$T2H_L2H_CLEAN,
+ verbose => 'if set, do not keep intermediate latex2html files for later reuse',
+ noHelp => 1,
+};
+
+$T2H_OPTIONS -> {D} =
+{
+ type => '=s',
+ linkage => sub {$main::value{@_[1]} = 1;},
+ verbose => 'equivalent to Texinfo "@set $s 1"',
+ noHelp => 1,
+};
+
+$T2H_OPTIONS -> {init_file} =
+{
+ type => '=s',
+ linkage => \&LoadInitFile,
+ verbose => 'load init file $s'
+};
+
+
+##############################################################################
+#
+# The following can only be set in the init file
+#
+##############################################################################
+
+# if set, center @image by default
+# otherwise, do not center by default
+$T2H_CENTER_IMAGE = 1;
+
+# used as identation for block enclosing command @example, etc
+# If not empty, must be enclosed in <td></td>
+$T2H_EXAMPLE_INDENT_CELL = '<td>&nbsp;</td>';
+# same as above, only for @small
+$T2H_SMALL_EXAMPLE_INDENT_CELL = '<td>&nbsp;</td>';
+# font size for @small
+$T2H_SMALL_FONT_SIZE = '-1';
+
+# if non-empty, and no @..heading appeared in Top node, then
+# use this as header for top node/section, otherwise use value of 
+# @settitle or @shorttitle (in that order)
+$T2H_TOP_HEADING = '';
+
+# if set, use this chapter for 'Index' button, else
+# use first chapter whose name matches 'index' (case insensitive)
+$T2H_INDEX_CHAPTER = '';
+
+# if set and $T2H_SPLIT is set, then split index pages at the next letter
+# after they have more than that many entries
+$T2H_SPLIT_INDEX = 100;
+
+# if set (e.g., to index.html) replace hrefs to this file 
+# (i.e., to index.html) by ./
+$T2H_HREF_DIR_INSTEAD_FILE = '';
+
+########################################################################
+# Language dependencies: 
+# To add a new language extend T2H_WORDS hash and create $T2H_<...>_WORDS hash
+# To redefine one word, simply do:
+# $T2H_WORDS->{<language>}->{<word>} = 'whatever' in your personal init file.
+#
+$T2H_WORDS_EN =
+{
+ # titles  of pages
+ 'ToC_Title' => 'Table of Contents',
+ 'Overview_Title' => 'Short Table of Contents',
+ 'Index_Title' => 'Index',
+ 'About_Title' => 'About this document',
+ 'Footnotes_Title' => 'Footnotes',
+ 'See' => 'See',
+ 'see' => 'see',
+ 'section' => 'section',
+# If necessary, we could extend this as follows: 
+#  # text for buttons
+#  'Top_Button' => 'Top',
+#  'ToC_Button' => 'Contents',
+#  'Overview_Button' => 'Overview',
+#  'Index_button' => 'Index',
+#  'Back_Button' => 'Back',
+#  'FastBack_Button' => 'FastBack',
+#  'Prev_Button' => 'Prev',
+#  'Up_Button' => 'Up',
+#  'Next_Button' => 'Next',
+#  'Forward_Button' =>'Forward',
+#  'FastWorward_Button' => 'FastForward',
+#  'First_Button' => 'First',
+#  'Last_Button' => 'Last',
+#  'About_Button' => 'About'
+};
+
+$T2H_WORD_DE =
+{
+ 'ToC_Title' => 'Inhaltsverzeichniss',
+ 'Overview_Title' => 'Kurzes Inhaltsverzeichniss',
+ 'Index_Title' => 'Index',
+ 'About_Title' => '&Uuml;ber dieses Dokument',
+ 'Footnotes_Title' => 'Fu&szlig;noten',
+ 'See' => 'Siehe',
+ 'see' => 'siehe',
+ 'section' => 'Abschnitt',
+};
+
+$T2H_WORD_NL =
+{
+ 'ToC_Title' => 'Inhoudsopgave',
+ 'Overview_Title' => 'Korte inhoudsopgave',
+ 'Index_Title' => 'Index', #Not sure ;-)
+ 'About_Title' => 'No translation available!', #No translation available!
+ 'Footnotes_Title' => 'No translation available!', #No translation available!
+ 'See' => 'Zie',
+ 'see' => 'zie',
+ 'section' => 'sectie',
+};
+
+$T2H_WORD_ES =
+{
+ 'ToC_Title' => '&iacute;ndice General',
+ 'Overview_Title' => 'Resumen del Contenido',
+ 'Index_Title' => 'Index', #Not sure ;-)
+ 'About_Title' => 'No translation available!', #No translation available!
+ 'Footnotes_Title' => 'Fu&szlig;noten',
+ 'See' => 'V&eacute;ase',
+ 'see' => 'v&eacute;ase',
+ 'section' => 'secci&oacute;n',
+};
+
+$T2H_WORD_NO =
+{
+ 'ToC_Title' => 'Innholdsfortegnelse',
+ 'Overview_Title' => 'Kort innholdsfortegnelse',
+ 'Index_Title' => 'Indeks', #Not sure ;-)
+ 'About_Title' => 'No translation available!', #No translation available!
+ 'Footnotes_Title' => 'No translation available!',
+ 'See' => 'Se',
+ 'see' => 'se',
+ 'section' => 'avsnitt',
+};
+
+$T2H_WORD_PT =
+{
+ 'ToC_Title' => 'Sum&aacute;rio',
+ 'Overview_Title' => 'Breve Sum&aacute;rio',
+ 'Index_Title' => '&Iacute;ndice', #Not sure ;-)
+ 'About_Title' => 'No translation available!', #No translation available!
+ 'Footnotes_Title' => 'No translation available!',
+ 'See' => 'Veja',
+ 'see' => 'veja',
+ 'section' => 'Se&ccedil;&atilde;o',
+};
+
+$T2H_WORDS =
+{
+ 'en' => $T2H_WORDS_EN,
+ 'de' => $T2H_WORDS_DE,
+ 'nl' => $T2H_WORDS_NL,
+ 'es' => $T2H_WORDS_ES,
+ 'no' => $T2H_WORDS_NO,
+ 'pt' => $T2H_WORDS_PT
+};
+
+@MONTH_NAMES_EN =
+(
+ 'January', 'February', 'March', 'April', 'May',
+ 'June', 'July', 'August', 'September', 'October',
+ 'November', 'December'
+);
+
+@MONTH_NAMES_DE =
+(
+ 'Januar', 'Februar', 'M&auml;rz', 'April', 'Mai',
+ 'Juni', 'Juli', 'August', 'September', 'Oktober',
+ 'November', 'Dezember'
+);
+
+@MONTH_NAMES_NL =
+(
+ 'Januari', 'Februari', 'Maart', 'April', 'Mei',
+ 'Juni', 'Juli', 'Augustus', 'September', 'Oktober',
+ 'November', 'December'
+);
+
+@MONTH_NAMES_ES =
+(
+ 'enero', 'febrero', 'marzo', 'abril', 'mayo',
+ 'junio', 'julio', 'agosto', 'septiembre', 'octubre',
+ 'noviembre', 'diciembre'
+);
+
+@MONTH_NAMES_NO =
+(
+
+ 'januar', 'februar', 'mars', 'april', 'mai',
+ 'juni', 'juli', 'august', 'september', 'oktober',
+ 'november', 'desember'
+);
+
+@MONTH_NAMES_PT =
+(
+ 'Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio',
+ 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro',
+ 'Novembro', 'Dezembro'
+);
+
+
+$MONTH_NAMES =
+{
+    'en' => \@MONTH_NAMES_EN,
+    'de' => \@MONTH_NAMES_DE,
+    'es' => \@MONTH_NAMES_ES,
+    'nl' => \@MONTH_NAMES_NL,
+    'no' => \@MONTH_NAMES_NO,
+    'pt' => \@MONTH_NAMES_PT
+};
+########################################################################
+# Control of Page layout:
+# You can make changes of the Page layout at two levels:
+# 1.) For small changes, it is often enough to change the value of
+#     some global string/hash/array variables
+# 2.) For larger changes, reimplement one of the T2H_DEFAULT_<fnc>* routines,
+#     give them another name, and assign them to the respective
+#     $T2H_<fnc> variable.
+
+# As a general interface, the hashes T2H_HREF, T2H_NAME, T2H_NODE hold 
+# href, html-name, node-name of
+# This     -- current section (resp. html page)
+# Top      -- top page ($T2H_TOP_FILE)
+# Contents -- Table of contents
+# Overview -- Short table of contents
+# Index    -- Index page
+# About    -- page which explain "navigation buttons"
+# First    -- first node 
+# Last     -- last node
+#
+# Whether or not the following hash values are set, depends on the context 
+# (all values are w.r.t. 'This' section)
+# Next        -- next node of texinfo
+# Prev        -- previous node of texinfo
+# Up          -- up node of texinfo
+# Forward     -- next node in reading order
+# Back        -- previous node in reading order
+# FastForward -- if leave node, up and next, else next node
+# FastBackward-- if leave node, up and prev, else prev node
+#
+# Furthermore, the following global variabels are set:
+# $T2H_THISDOC{title}     -- title as set by @setttile
+# $T2H_THISDOC{fulltitle} -- full title as set by @title...
+# $T2H_THISDOC{subtitle}  -- subtitle as set by @subtitle
+# $T2H_THISDOC{author}    -- author as set by @author
+# 
+# and pointer to arrays of lines which need to be printed by t2h_print_lines 
+# $T2H_OVERVIEW      -- lines of short table of contents
+# $T2H_TOC           -- lines of table of contents
+# $T2H_TOP           -- lines of Top texinfo node 
+# $T2H_THIS_SECTION  -- lines of 'This' section
+
+#
+# There are the following subs which control the layout:
+#
+$T2H_print_section            = \&T2H_DEFAULT_print_section;
+$T2H_print_Top_header         = \&T2H_DEFAULT_print_Top_header;       
+$T2H_print_Top_footer        = \&T2H_DEFAULT_print_Top_footer;       
+$T2H_print_Top               = \&T2H_DEFAULT_print_Top;              
+$T2H_print_Toc               = \&T2H_DEFAULT_print_Toc;              
+$T2H_print_Overview          = \&T2H_DEFAULT_print_Overview;         
+$T2H_print_Footnotes         = \&T2H_DEFAULT_print_Footnotes;        
+$T2H_print_About             = \&T2H_DEFAULT_print_About;            
+$T2H_print_misc_header       = \&T2H_DEFAULT_print_misc_header;      
+$T2H_print_misc_footer       = \&T2H_DEFAULT_print_misc_footer;      
+$T2H_print_misc                      = \&T2H_DEFAULT_print_misc;
+$T2H_print_chapter_header     = \&T2H_DEFAULT_print_chapter_header;      
+$T2H_print_chapter_footer     = \&T2H_DEFAULT_print_chapter_footer;      
+$T2H_print_page_head         = \&T2H_DEFAULT_print_page_head;        
+$T2H_print_page_foot         = \&T2H_DEFAULT_print_page_foot;        
+$T2H_print_head_navigation    = \&T2H_DEFAULT_print_head_navigation;  
+$T2H_print_foot_navigation    = \&T2H_DEFAULT_print_foot_navigation;  
+$T2H_button_icon_img         = \&T2H_DEFAULT_button_icon_img;        
+$T2H_print_navigation        = \&T2H_DEFAULT_print_navigation;       
+$T2H_about_body                      = \&T2H_DEFAULT_about_body;            
+$T2H_print_frame              = \&T2H_DEFAULT_print_frame;
+$T2H_print_toc_frame          = \&T2H_DEFAULT_print_toc_frame;
+
+########################################################################
+# Layout for html for every sections
+#
+sub T2H_DEFAULT_print_section
+{
+  my $fh = shift;
+  local $T2H_BUTTONS = \@T2H_SECTION_BUTTONS;
+  &$T2H_print_head_navigation($fh) if $T2H_SECTION_NAVIGATION;
+  my $nw = t2h_print_lines($fh);
+  if ($T2H_SPLIT eq 'section' && $T2H_SECTION_NAVIGATION)
+  {
+    &$T2H_print_foot_navigation($fh, $nw);
+  }
+  else
+  {
+    print $fh '<HR SIZE="6">' . "\n";
+  }
+}
+
+###################################################################
+# Layout of top-page I recommend that you use @ifnothtml, @ifhtml,
+# @html within the Top texinfo node to specify content of top-level
+# page. 
+#
+# If you enclose everything in @ifnothtml, then title, subtitle,
+# author and overview is printed
+# T2H_HREF of Next, Prev, Up, Forward, Back are not defined
+# if $T2H_SPLIT then Top page is in its own html file
+sub T2H_DEFAULT_print_Top_header
+{
+  &$T2H_print_page_head(@_) if $T2H_SPLIT;
+  t2h_print_label(@_); # this needs to be called, otherwise no label set
+  &$T2H_print_head_navigation(@_);
+}
+sub T2H_DEFAULT_print_Top_footer
+{
+  &$T2H_print_foot_navigation(@_);
+  &$T2H_print_page_foot(@_) if $T2H_SPLIT; 
+}
+sub T2H_DEFAULT_print_Top
+{
+  my $fh = shift;
+
+  # for redefining navigation buttons use:
+  # local $T2H_BUTTONS = [...];
+  # as it is, 'Top', 'Contents', 'Index', 'About' are printed
+  local $T2H_BUTTONS = \@T2H_MISC_BUTTONS;
+  &$T2H_print_Top_header($fh);
+  if ($T2H_THIS_SECTION)
+  {
+    # if top-level node has content, then print it with extra header
+    print $fh "<H1>$T2H_NAME{Top}</H1>"
+      unless ($T2H_HAS_TOP_HEADING);
+    t2h_print_lines($fh, $T2H_THIS_SECTION)
+  }
+  else
+  {
+    # top-level node is fully enclosed in @ifnothtml
+    # print fulltitle, subtitle, author, Overview
+    print $fh 
+      "<CENTER>\n<H1>" .
+      join("</H1>\n<H1>", split(/\n/,  $T2H_THISDOC{fulltitle})) .
+      "</H1>\n";
+    print $fh "<H2>$T2H_THISDOC{subtitle}</H2>\n" if $T2H_THISDOC{subtitle};
+    print $fh "$T2H_THISDOC{author}\n" if $T2H_THISDOC{author};
+    print $fh <<EOT;
+</CENTER>
+<HR>
+<P></P>  
+<H2> Overview: </H2>
+<BLOCKQUOTE>  
+EOT
+    t2h_print_lines($fh, $T2H_OVERVIEW);
+    print $fh "</BLOCKQUOTE>\n";
+  }
+  &$T2H_print_Top_footer($fh);
+}
+
+###################################################################
+# Layout of Toc, Overview, and Footnotes pages
+# By default, we use "normal" layout 
+# T2H_HREF of Next, Prev, Up, Forward, Back, etc are not defined
+# use: local $T2H_BUTTONS = [...] to redefine navigation buttons
+sub T2H_DEFAULT_print_Toc
+{
+  return &$T2H_print_misc(@_);
+}
+sub T2H_DEFAULT_print_Overview
+{
+  return &$T2H_print_misc(@_);
+}
+sub T2H_DEFAULT_print_Footnotes
+{
+  return &$T2H_print_misc(@_);
+}
+sub T2H_DEFAULT_print_About
+{
+  return &$T2H_print_misc(@_);
+}
+
+sub T2H_DEFAULT_print_misc_header
+{
+  &$T2H_print_page_head(@_) if $T2H_SPLIT;
+  # this needs to be called, otherwise, no labels are set
+  t2h_print_label(@_); 
+  &$T2H_print_head_navigation(@_);
+}
+sub T2H_DEFAULT_print_misc_footer
+{
+  &$T2H_print_foot_navigation(@_);
+  &$T2H_print_page_foot(@_) if $T2H_SPLIT; 
+}
+sub T2H_DEFAULT_print_misc
+{
+  my $fh = shift;
+  local $T2H_BUTTONS = \@T2H_MISC_BUTTONS;
+  &$T2H_print_misc_header($fh);
+  print $fh "<H1>$T2H_NAME{This}</H1>\n";
+  t2h_print_lines($fh);
+  &$T2H_print_misc_footer($fh);
+}
+
+###################################################################
+# chapter_header and chapter_footer are only called if
+# T2H_SPLIT eq 'chapter'
+# chapter_header: after print_page_header, before print_section
+# chapter_footer: after print_section of last section, before print_page_footer
+# 
+# If you want to get rid of navigation stuff after each section,
+# redefine print_section such that it does not call print_navigation,
+# and put print_navigation into print_chapter_header
+@T2H_CHAPTER_BUTTONS =
+  (
+   'FastBack', 'FastForward', ' ', 
+   ' ', ' ', ' ', ' ',
+   'Top', 'Contents', 'Index', 'About', 
+  );
+
+sub T2H_DEFAULT_print_chapter_header
+{
+  # nothing to do there, by default
+  if (! $T2H_SECTION_NAVIGATION)
+  {
+    my $fh = shift;
+    local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS;
+    &$T2H_print_navigation($fh);
+    print $fh "\n<HR SIZE=2>\n";
+  }
+}
+
+sub T2H_DEFAULT_print_chapter_footer
+{
+  local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS;
+  &$T2H_print_navigation(@_);
+}
+###################################################################
+$T2H_TODAY = &pretty_date;             # like "20 September 1993"
+
+sub pretty_date {
+    local($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
+
+    ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
+    $year += ($year < 70) ? 2000 : 1900;
+    # obachman: Let's do it as the Americans do
+    return($MONTH_NAMES->{$T2H_LANG}[$mon] . ", " . $mday . " " . $year);
+}
+
+
+###################################################################
+# Layout of standard header and footer
+#
+
+# Set the default body text, inserted between <BODY ... > 
+###$T2H_BODYTEXT = 'LANG="EN" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"';
+$T2H_BODYTEXT = 'LANG="' . $T2H_LANG . '" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"';
+# text inserted after <BODY ...>
+$T2H_AFTER_BODY_OPEN = '';
+#text inserted before </BODY>
+$T2H_PRE_BODY_CLOSE = '';
+# this is used in footer
+$T2H_ADDRESS = "by <I>$T2H_USER</I> " if $T2H_USER;
+$T2H_ADDRESS .= "on <I>$T2H_TODAY</I>";
+# this is added inside <HEAD></HEAD> after <TITLE> and some META NAME stuff
+# can be used for <style> <script>, <meta> tags
+$T2H_EXTRA_HEAD = '';
+
+sub T2H_DEFAULT_print_page_head
+{
+  my $fh = shift; 
+  my $longtitle = "$T2H_THISDOC{title}: $T2H_NAME{This}";
+  print $fh <<EOT;
+<HTML>
+$T2H_DOCTYPE
+<!-- Created on $T2H_TODAY by $THISPROG -->
+<!-- 
+$T2H_AUTHORS 
+-->
+<HEAD>
+<TITLE>$longtitle</TITLE>
+
+<META NAME="description" CONTENT="$longtitle">
+<META NAME="keywords" CONTENT="$longtitle">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<META NAME="Generator" CONTENT="$THISPROG">
+$T2H_EXTRA_HEAD
+</HEAD>
+
+<BODY $T2H_BODYTEXT>
+$T2H_AFTER_BODY_OPEN
+EOT
+}
+
+sub T2H_DEFAULT_print_page_foot
+{
+  my $fh = shift;
+  print $fh <<EOT;
+<BR>  
+<FONT SIZE="-1">
+This document was generated
+$T2H_ADDRESS
+using <A HREF="$T2H_HOMEPAGE"><I>texi2html</I></A>
+$T2H_PRE_BODY_CLOSE
+</BODY>
+</HTML>
+EOT
+}
+
+###################################################################
+# Layout of navigation panel
+
+# if this is set, then a vertical navigation panel is used
+$T2H_VERTICAL_HEAD_NAVIGATION = 0;
+sub T2H_DEFAULT_print_head_navigation
+{
+  my $fh = shift;
+  if ($T2H_VERTICAL_HEAD_NAVIGATION)
+  {
+    print $fh <<EOT;
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
+<TR VALIGN="TOP">
+<TD ALIGN="LEFT">
+EOT
+  }
+  &$T2H_print_navigation($fh, $T2H_VERTICAL_HEAD_NAVIGATION);
+  if ($T2H_VERTICAL_HEAD_NAVIGATION)
+  {
+    print $fh <<EOT;
+</TD>
+<TD ALIGN="LEFT">
+EOT
+  }
+  elsif ($T2H_SPLIT eq 'section')
+  {
+    print $fh "<HR SIZE=1>\n";
+  }
+}
+
+# Specifies the minimum page length required before a navigation panel
+# is placed at the bottom of a page (the default is that of latex2html)
+# T2H_THIS_WORDS_IN_PAGE holds number of words of current page
+$T2H_WORDS_IN_PAGE = 300;
+sub T2H_DEFAULT_print_foot_navigation
+{
+  my $fh = shift;
+  my $nwords = shift;
+  if ($T2H_VERTICAL_HEAD_NAVIGATION)
+  {
+    print $fh <<EOT;
+</TD>
+</TR>
+</TABLE>
+EOT
+  }
+  print $fh "<HR SIZE=1>\n";
+  &$T2H_print_navigation($fh) if ($nwords >= $T2H_WORDS_IN_PAGE)
+}
+
+######################################################################
+# navigation panel
+#
+# specify in this array which "buttons" should appear in which order
+# in the navigation panel for sections; use ' ' for empty buttons (space)
+@T2H_SECTION_BUTTONS =
+  (
+   'Back', 'Forward', ' ', 'FastBack', 'Up', 'FastForward',  
+   ' ', ' ', ' ', ' ',
+   'Top', 'Contents', 'Index', 'About', 
+  );
+
+# buttons for misc stuff
+@T2H_MISC_BUTTONS = ('Top', 'Contents', 'Index', 'About');
+
+# insert here name of icon images for buttons 
+# Icons are used, if $T2H_ICONS and resp. value are set
+%T2H_ACTIVE_ICONS =
+  (
+   'Top',      '',
+   'Contents', '',
+   'Overview', '',
+   'Index',    '',
+   'Back',     '',
+   'FastBack', '',
+   'Prev',     '',
+   'Up',       '',
+   'Next',     '',
+   'Forward',  '',
+   'FastForward', '',
+   'About' ,    '',
+   'First',    '',
+   'Last',     '',
+   ' ',        ''
+  );
+
+# insert here name of icon images for these, if button is inactive
+%T2H_PASSIVE_ICONS =
+  (
+   'Top',      '',
+   'Contents', '',
+   'Overview', '',
+   'Index',    '',
+   'Back',     '',
+   'FastBack', '',
+   'Prev',     '',
+   'Up',       '',
+   'Next',     '',
+   'Forward',  '',
+   'FastForward', '',
+   'About',     '',
+   'First',    '',
+   'Last',     '',
+  );
+
+# how to create IMG tag
+sub T2H_DEFAULT_button_icon_img
+{
+  my $button = shift;
+  my $icon = shift;
+  my $name = shift;
+  return qq{<IMG SRC="$icon" BORDER="0" ALT="$button: $name" ALIGN="MIDDLE">};
+}
+
+# Names of text as alternative for icons
+%T2H_NAVIGATION_TEXT =
+  (
+   'Top',      'Top',
+   'Contents', 'Contents',
+   'Overview', 'Overview',
+   'Index',    'Index',
+   ' ',        ' &nbsp; ',
+   'Back',     ' &lt; ',
+   'FastBack', ' &lt;&lt; ',
+   'Prev',     'Prev',
+   'Up',       ' Up ',
+   'Next',     'Next',
+   'Forward',  ' &gt; ',
+   'FastForward',  ' &gt;&gt; ',
+   'About',     ' ? ',
+   'First',    ' |&lt; ',
+   'Last',     ' &gt;| '
+  );
+
+sub T2H_DEFAULT_print_navigation
+{
+  my $fh = shift;
+  my $vertical = shift;
+  my $spacing = 1;
+  print $fh "<TABLE CELLPADDING=$spacing CELLSPACING=$spacing BORDER=0>\n";
+
+  print $fh "<TR>" unless $vertical;
+  for $button (@$T2H_BUTTONS)
+  {
+    print $fh qq{<TR VALIGN="TOP" ALIGN="LEFT">\n} if $vertical;
+    print $fh qq{<TD VALIGN="MIDDLE" ALIGN="LEFT">};
+
+    if (ref($button) eq 'CODE')
+    {
+      &$button($fh, $vertical);
+    }
+    elsif ($button eq ' ')
+    { # handle space button
+      print $fh 
+       $T2H_ICONS && $T2H_ACTIVE_ICONS{' '} ? 
+        &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{' '}) :
+        $T2H_NAVIGATION_TEXT{' '};
+      next;
+    }
+    elsif ($T2H_HREF{$button})
+    { # button is active
+      print $fh   
+        $T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ? # use icon ? 
+          t2h_anchor('', $T2H_HREF{$button},  # yes
+                   &$T2H_button_icon_img($button,
+                                       $T2H_ACTIVE_ICONS{$button},
+                                       $T2H_NAME{$button})) 
+        : # use text
+        "[" . 
+        t2h_anchor('', $T2H_HREF{$button}, $T2H_NAVIGATION_TEXT{$button}) .
+        "]";  
+    }
+    else
+    { # button is passive 
+      print $fh 
+       $T2H_ICONS && $T2H_PASSIVE_ICONS{$button} ?
+        &$T2H_button_icon_img($button,
+                              $T2H_PASSIVE_ICONS{$button},
+                              $T2H_NAME{$button}) :
+        
+        "[" . $T2H_NAVIGATION_TEXT{$button} . "]";
+    }
+    print $fh "</TD>\n";
+    print $fh "</TR>\n" if $vertical;
+  }
+  print $fh "</TR>" unless $vertical;
+  print $fh "</TABLE>\n";
+}
+
+######################################################################
+# Frames: this is from "Richard Y. Kim" <ryk@coho.net>
+# Should be improved to be more conforming to other _print* functions
+
+sub T2H_DEFAULT_print_frame
+{
+  my $fh = shift;
+  print $fh <<EOT;
+<HTML>
+<HEAD><TITLE>$T2H_THISDOC{title}</TITLE></HEAD>
+<FRAMESET cols="140,*"> 
+  <FRAME name=toc  src="$docu_toc_frame_file">
+  <FRAME name=main src="$docu_doc">
+</FRAMESET> 
+</HTML>
+EOT
+}
+
+sub T2H_DEFAULT_print_toc_frame
+{
+  my $fh = shift;
+  &$T2H_print_page_head($fh);
+  print $fh <<EOT;
+<H2>Content</H2>
+EOT
+  print $fh map {s/HREF=/target=\"main\" HREF=/; $_;} @stoc_lines;
+  print $fh "</BODY></HTML>\n";
+}
+
+######################################################################
+# About page
+#
+
+# T2H_PRE_ABOUT might be a function
+$T2H_PRE_ABOUT = <<EOT;
+This document was generated $T2H_ADDRESS
+using <A HREF="$T2H_HOMEPAGE"><I>texi2html</I></A>
+<P></P>  
+EOT
+$T2H_AFTER_ABOUT = '';
+
+sub T2H_DEFAULT_about_body
+{
+  my $about;
+  if (ref($T2H_PRE_ABOUT) eq 'CODE')
+  {
+    $about = &$T2H_PRE_ABOUT();
+  }
+  else
+  {
+    $about = $T2H_PRE_ABOUT;
+  }
+  $about .= <<EOT;
+The buttons in the navigation panels have the following meaning:
+<P></P>
+<table border = "1">
+<TR>
+<TH> Button </TH>
+<TH> Name </TH>
+<TH> Go to </TH>
+<TH> From 1.2.3 go to</TH>
+</TR>
+EOT
+  
+  for $button (@T2H_SECTION_BUTTONS)
+  {
+    next if $button eq ' ' || ref($button) eq 'CODE';
+    $about .= <<EOT;
+<TR>
+<TD ALIGN="CENTER">
+EOT
+    $about .=  
+      ($T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ?
+       &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{$button}) :
+       " [" . $T2H_NAVIGATION_TEXT{$button} . "] ");
+    $about .= <<EOT;
+</TD>
+<TD ALIGN="CENTER">
+$button
+</TD>
+<TD>
+$T2H_BUTTONS_GOTO{$button}
+</TD>
+<TD>
+$T2H_BUTTONS_EXAMPLE{$button}
+</TD>
+</TR>
+EOT
+  }
+
+  $about .= <<EOT;
+</TABLE>
+<P></P>
+where the <STRONG> Example </STRONG> assumes that the current position 
+is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of 
+the following structure:
+<UL>
+<LI> 1. Section One  </LI>
+<UL>
+<LI>1.1 Subsection One-One</LI>
+<UL>
+<LI> ... </LI>
+</UL>
+<LI>1.2 Subsection One-Two</LI>
+<UL>
+<LI>1.2.1 Subsubsection One-Two-One
+</LI><LI>1.2.2 Subsubsection One-Two-Two
+</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
+&lt;== Current Position </STRONG>
+</LI><LI>1.2.4 Subsubsection One-Two-Four
+</LI></UL>
+<LI>1.3 Subsection One-Three</LI>
+<UL>
+<LI> ... </LI>
+</UL>
+<LI>1.4 Subsection One-Four</LI>
+</UL>
+</UL>
+$T2H_AFTER_ABOUT
+EOT
+  return $about;  
+}
+
+  
+%T2H_BUTTONS_GOTO =
+  (
+   'Top',      'cover (top) of document',
+   'Contents', 'table of contents',
+   'Overview', 'short table of contents',
+   'Index',    'concept index',
+   'Back',     'previous section in reading order',
+   'FastBack', 'previous or up-and-previous section ',
+   'Prev',     'previous section same level',
+   'Up',       'up section',
+   'Next',     'next section same level',
+   'Forward',  'next section in reading order',
+   'FastForward', 'next or up-and-next section',
+   'About' ,    'this page',
+   'First',    'first section in reading order',
+   'Last',     'last section in reading order',
+  );
+
+%T2H_BUTTONS_EXAMPLE = 
+(
+   'Top',      ' &nbsp; ',
+   'Contents', ' &nbsp; ',
+   'Overview', ' &nbsp; ',
+   'Index',    ' &nbsp; ',
+   'Back',     '1.2.2',
+   'FastBack', '1.1',
+   'Prev',     '1.2.2',
+   'Up',       '1.2',
+   'Next',     '1.2.4',
+   'Forward',  '1.2.4',
+   'FastForward', '1.3',
+   'About',     ' &nbsp; ',
+   'First',    '1.',
+   'Last',     '1.2.4',
+);
+
+
+######################################################################
+# from here on, its l2h init stuff 
+#
+
+## initialization for latex2html as for Singular manual generation
+## obachman 3/99
+
+#
+# Options controlling Titles, File-Names, Tracing and Sectioning
+#
+$TITLE = '';
+
+$SHORTEXTN = 0;
+
+$LONG_TITLES = 0;
+
+$DESTDIR = ''; # should be overwritten by cmd-line argument
+
+$NO_SUBDIR = 0;# should be overwritten by cmd-line argument
+
+$PREFIX = '';  # should be overwritten by cmd-line argument
+
+$AUTO_PREFIX = 0; # this is needed, so that prefix settings are used
+
+$AUTO_LINK = 0; 
+
+$SPLIT = 0;
+
+$MAX_LINK_DEPTH = 0;
+
+$TMP = ''; # should be overwritten by cmd-line argument
+
+$DEBUG = 0;
+
+$VERBOSE = 1;
+
+#
+# Options controlling Extensions and Special Features 
+#
+$HTML_VERSION = "3.2";
+
+$TEXDEFS = 1; # we absolutely need that
+
+$EXTERNAL_FILE = '';
+
+$SCALABLE_FONTS = 1;
+
+$NO_SIMPLE_MATH = 1;
+
+$LOCAL_ICONS = 1;
+
+$SHORT_INDEX = 0;
+
+$NO_FOOTNODE = 1;
+
+$ADDRESS = '';
+
+$INFO = '';
+
+#
+# Switches controlling Image Generation 
+#
+$ASCII_MODE = 0;
+
+$NOLATEX = 0;
+
+$EXTERNAL_IMAGES = 0;
+
+$PS_IMAGES = 0;
+
+$NO_IMAGES = 0;
+
+$IMAGES_ONLY = 0;
+
+$REUSE = 2;
+
+$ANTI_ALIAS = 1;
+
+$ANTI_ALIAS_TEXT = 1;
+
+#
+#Switches controlling Navigation Panels
+#
+$NO_NAVIGATION = 1;
+$ADDRESS = '';
+$INFO = 0;              # 0 = do not make a "About this document..." section 
+
+#
+#Switches for Linking to other documents 
+#
+# actuall -- we don't care
+
+$MAX_SPLIT_DEPTH = 0;  # Stop making separate files at this depth
+
+$MAX_LINK_DEPTH = 0;    # Stop showing child nodes at this depth   
+
+$NOLATEX = 0;           # 1 = do not pass unknown environments to Latex
+
+$EXTERNAL_IMAGES = 0;   # 1 = leave the images outside the document 
+
+$ASCII_MODE = 0;        # 1 = do not use any icons or internal images
+
+# 1 =  use links to external postscript images rather than inlined bitmap
+# images.
+$PS_IMAGES = 0;
+$SHOW_SECTION_NUMBERS = 0;
+
+### Other global variables ###############################################
+$CHILDLINE = "";
+
+# This is the line width measured in pixels and it is used to right justify
+# equations and equation arrays; 
+$LINE_WIDTH = 500;             
+
+# Used in conjunction with AUTO_NAVIGATION
+$WORDS_IN_PAGE = 300;  
+
+# Affects ONLY the way accents are processed 
+$default_language = 'english'; 
+
+# The value of this variable determines how many words to use in each 
+# title that is added to the navigation panel (see below)
+# 
+$WORDS_IN_NAVIGATION_PANEL_TITLES = 0;
+
+# This number will determine the size of the equations, special characters,
+# and anything which will be converted into an inlined image
+# *except* "image generating environments" such as "figure", "table" 
+# or "minipage".
+# Effective values are those greater than 0.
+# Sensible values are between 0.1 - 4.
+$MATH_SCALE_FACTOR = 1.5;
+
+# This number will determine the size of 
+# image generating environments such as "figure", "table" or "minipage".
+# Effective values are those greater than 0.
+# Sensible values are between 0.1 - 4.
+$FIGURE_SCALE_FACTOR = 1.6;
+
+
+#  If both of the following two variables are set then the "Up" button
+#  of the navigation panel in the first node/page of a converted document
+#  will point to $EXTERNAL_UP_LINK. $EXTERNAL_UP_TITLE should be set
+#  to some text which describes this external link.
+$EXTERNAL_UP_LINK = "";
+$EXTERNAL_UP_TITLE = "";
+
+# If this is set then the resulting HTML will look marginally better if viewed 
+# with Netscape.
+$NETSCAPE_HTML = 1;
+
+# Valid paper sizes are "letter", "legal", "a4","a3","a2" and "a0"
+# Paper sizes has no effect other than in the time it takes to create inlined
+# images and in whether large images can be created at all ie
+#  - larger paper sizes *MAY* help with large image problems 
+#  - smaller paper sizes are quicker to handle
+$PAPERSIZE = "a4";
+
+# Replace "english" with another language in order to tell LaTeX2HTML that you 
+# want some generated section titles (eg "Table of Contents" or "References")
+# to appear in a different language. Currently only "english" and "french"
+# is supported but it is very easy to add your own. See the example in the
+# file "latex2html.config" 
+$TITLES_LANGUAGE = "english";
+
+1;     # This must be the last non-comment line
+
+# End File texi2html.init
+######################################################################
+
+
+require "$ENV{T2H_HOME}/texi2html.init" 
+  if ($0 =~ /\.pl$/ &&
+      -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init");
+
+#+++############################################################################
+#                                                                              #
+# Initialization                                                               #
+# Pasted content of File $(srcdir)/MySimple.pm: Command-line processing        #
+#                                                                              #
+#---############################################################################
+
+# leave this within comments, and keep the require statement
+# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init
+# exists.
+
+# 
+package Getopt::MySimple;
+
+# Name:
+#      Getopt::MySimple.
+#
+# Documentation:
+#      POD-style (incomplete) documentation is in file MySimple.pod
+#
+# Tabs:
+#      4 spaces || die.
+#
+# Author:
+#      Ron Savage      rpsavage@ozemail.com.au.
+#      1.00    19-Aug-97       Initial version.
+#      1.10    13-Oct-97       Add arrays of switches (eg '=s@').
+#      1.20     3-Dec-97       Add 'Help' on a per-switch basis.
+#      1.30    11-Dec-97       Change 'Help' to 'verbose'. Make all hash keys lowercase.
+#      1.40    10-Nov-98       Change width of help report. Restructure tests.
+#               1-Jul-00        Modifications for Texi2html
+
+# --------------------------------------------------------------------------
+# Locally modified by obachman (Display type instead of env, order by cmp)
+# $Id$
+
+# use strict;
+# no strict 'refs';
+
+use vars qw(@EXPORT @EXPORT_OK @ISA);
+use vars qw($fieldWidth $opt $VERSION);
+
+use Exporter();
+use Getopt::Long;
+
+@ISA           = qw(Exporter);
+@EXPORT                = qw();
+@EXPORT_OK     = qw($opt);     # An alias for $self -> {'opt'}.
+
+# --------------------------------------------------------------------------
+
+$fieldWidth    = 20;
+$VERSION       = '1.41';
+
+# --------------------------------------------------------------------------
+
+sub byOrder
+{
+       my($self) = @_;
+       
+       return uc($a) cmp (uc($b));
+}
+
+# --------------------------------------------------------------------------
+
+sub dumpOptions
+{
+       my($self) = @_;
+
+       print 'Option', ' ' x ($fieldWidth - length('Option') ), "Value\n";
+
+       for (sort byOrder keys(%{$self -> {'opt'} }) )
+       {
+         print "-$_", ' ' x ($fieldWidth - (1 + length) ), "${$self->{'opt'} }{$_}\n";
+       }
+
+       print "\n";
+
+}      # End of dumpOptions.
+
+# --------------------------------------------------------------------------
+# Return:
+#      0 -> Error.
+#      1 -> Ok.
+
+sub getOptions
+{
+       push(@_, 0) if ($#_ == 2);      # Default for $ignoreCase is 0.
+       push(@_, 1) if ($#_ == 3);      # Default for $helpThenExit is 1.
+
+       my($self, $default, $helpText, $versionText, 
+          $helpThenExit, $versionThenExit, $ignoreCase) = @_;
+       
+       $helpThenExit = 1 unless (defined($helpThenExit));
+       $versionThenExit = 1 unless (defined($versionThenExit));
+       $ignoreCase = 0 unless (defined($ignoreCase));
+
+       $self -> {'default'}            = $default;
+       $self -> {'helpText'}           = $helpText;
+       $self -> {'versionText'}        = $versionText;
+       $Getopt::Long::ignorecase       = $ignoreCase;
+
+       unless (defined($self -> {'default'}{'help'}))
+       {
+         $self -> {'default'}{'help'} = 
+         { 
+          type => ':i', 
+          default => '',
+          linkage => sub {$self->helpOptions($_[1]); exit (0) if $helpThenExit;},
+          verbose => "print help and exit"
+         };
+       }
+
+       unless (defined($self -> {'default'}{'version'}))
+       {
+         $self -> {'default'}{'version'} = 
+         { 
+          type => '', 
+          default => '',
+          linkage => sub {print $self->{'versionText'};  exit (0) if versionTheExit;},
+          verbose => "print version and exit"
+         };
+       }
+
+       for (keys(%{$self -> {'default'} }) )
+       {
+         my $type = ${$self -> {'default'} }{$_}{'type'};
+         push(@{$self -> {'type'} }, "$_$type");
+         $self->{'opt'}->{$_} =  ${$self -> {'default'} }{$_}{'linkage'}
+            if ${$self -> {'default'} }{$_}{'linkage'};
+       }
+
+       my($result) = &GetOptions($self -> {'opt'}, @{$self -> {'type'} });
+
+        return $result unless $result;
+
+       for (keys(%{$self -> {'default'} }) )
+       {
+          if (! defined(${$self -> {'opt'} }{$_})) #{
+            {
+            ${$self -> {'opt'} }{$_} = ${$self -> {'default'} }{$_}{'default'};
+            }
+       }
+
+       $result;
+}      # End of getOptions.
+
+# --------------------------------------------------------------------------
+
+sub helpOptions
+{
+       my($self) = shift;
+       my($noHelp) = shift;
+       $noHelp = 0 unless $noHelp;
+       my($optwidth, $typewidth, $defaultwidth, $maxlinewidth, $valind, $valwidth) 
+         = (10, 5, 9, 78, 4, 11);
+
+       print "$self->{'helpText'}" if ($self -> {'helpText'});
+
+       print ' Option', ' ' x ($optwidth - length('Option') -1 ),
+               'Type', ' ' x ($typewidth - length('Type') + 1),
+               'Default', ' ' x ($defaultwidth - length('Default') ),
+               "Description\n";
+
+       for (sort byOrder keys(%{$self -> {'default'} }) )
+       {
+         my($line, $help, $option, $val);
+         $option = $_;
+         next if ${$self->{'default'} }{$_}{'noHelp'} && ${$self->{'default'} }{$_}{'noHelp'} > $noHelp;
+               $line = " -$_ " . ' ' x ($optwidth - (2 + length) ) .
+                       "${$self->{'default'} }{$_}{'type'} ".
+                       ' ' x ($typewidth - (1+length(${$self -> {'default'} }{$_}{'type'}) ));
+
+                 $val = ${$self->{'default'} }{$_}{'linkage'};
+                if ($val)
+                {
+                  if (ref($val) eq 'SCALAR')
+                 {
+                   $val = $$val; 
+                 }
+                 else
+                 {
+                   $val = '';
+                 }
+                }
+               else
+               {
+                 $val = ${$self->{'default'} }{$_}{'default'};
+               }
+               $line .= "$val  ";
+               $line .= ' ' x ($optwidth + $typewidth + $defaultwidth + 1 - length($line));
+               
+               if (defined(${$self -> {'default'} }{$_}{'verbose'}) &&
+                 ${$self -> {'default'} }{$_}{'verbose'} ne '')
+             {
+               $help = "${$self->{'default'} }{$_}{'verbose'}";
+             }
+             else
+             {
+               $help = ' ';
+             }
+             if ((length("$line") + length($help)) < $maxlinewidth)
+             {
+               print $line , $help, "\n";
+             }
+             else
+             {
+               print $line, "\n", ' ' x $valind, $help, "\n";
+             }
+             for $val (sort byOrder keys(%{${$self->{'default'}}{$option}{'values'}}))
+             {
+               print ' ' x ($valind + 2);
+               print $val, '  ', ' ' x ($valwidth - length($val) - 2);
+               print ${$self->{'default'}}{$option}{'values'}{$val}, "\n";
+             }
+       }
+
+       print <<EOT;
+Note: 'Options' may be abbreviated. 'Type' specifications mean:
+ <none>| !    no argument: variable is set to 1 on -foo (or, to 0 on -nofoo)
+    =s | :s   mandatory (or, optional)  string argument
+    =i | :i   mandatory (or, optional)  integer argument
+EOT
+}      # End of helpOptions.
+
+#-------------------------------------------------------------------
+
+sub new
+{
+       my($class)                              = @_;
+       my($self)                               = {};
+       $self -> {'default'}    = {};
+       $self -> {'helpText'}   = '';
+       $self -> {'opt'}                = {};
+       $opt                                    = $self -> {'opt'};      # An alias for $self -> {'opt'}.
+       $self -> {'type'}               = ();
+
+       return bless $self, $class;
+
+}      # End of new.
+
+# --------------------------------------------------------------------------
+
+1;
+
+# End MySimple.pm
+
+require "$ENV{T2H_HOME}/MySimple.pm" 
+  if ($0 =~ /\.pl$/ &&
+      -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init");
+
+package main;
 
 #+++############################################################################
 #                                                                              #
@@ -28,36 +1742,41 @@ $DEBUG_GLOSS =  8;
 $DEBUG_DEF   = 16;
 $DEBUG_HTML  = 32;
 $DEBUG_USER  = 64;
+$DEBUG_L2H   = 128;
+
 
 $BIBRE = '\[[\w\/-]+\]';               # RE for a bibliography reference
 $FILERE = '[\/\w.+-]+';                        # RE for a file name
 $VARRE = '[^\s\{\}]+';                 # RE for a variable name
-$NODERE = '[^@{}:\'`",]+';             # RE for a node name
-$NODESRE = '[^@{}:\'`"]+';             # RE for a list of node names
-$XREFRE = '[^@{}]+';                   # RE for a xref (should use NODERE)
-
-$ERROR = "***";                                # prefix for errors and warnings
-$THISPROG = "texi2html 1.52";                  # program name and version
-$HOMEPAGE = "http://wwwinfo.cern.ch/dis/texi2html/"; # program home page
-$TODAY = &pretty_date;                 # like "20 September 1993"
-$SPLITTAG = "<!-- SPLIT HERE -->\n";   # tag to know where to split
+$NODERE = '[^,:]+';                    # RE for a node name
+$NODESRE = '[^:]+';                    # RE for a list of node names
+
+$ERROR = "***";                                # prefix for errors 
+$WARN  = "**";                          # prefix for warnings
+  
+                                        # program home page
 $PROTECTTAG = "_ThisIsProtected_";     # tag to recognize protected sections
-$html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//EN">';
 
-#
-# language dependent constants
-#
-#$LDC_SEE = 'see';
-#$LDC_SECTION = 'section';
-#$LDC_IN = 'in';
-#$LDC_TOC = 'Table of Contents';
-#$LDC_GOTO = 'Go to the';
-#$LDC_FOOT = 'Footnotes';
-# TODO: @def* shortcuts
+$CHAPTEREND = "<!-- End chapter -->\n"; # to know where a chpater ends
+$SECTIONEND = "<!-- End section -->\n"; # to know where section ends
+$TOPEND     = "<!-- End top     -->\n"; # to know where top ends
+
+  
 
 #
 # pre-defined indices
 #
+$index_properties =
+{
+ 'c' => { name => 'cp'},
+ 'f' => { name => 'fn', code => 1},
+ 'v' => { name => 'vr', code => 1},
+ 'k' => { name => 'ky', code => 1},
+ 'p' => { name => 'pg', code => 1},
+ 't' => { name => 'tp', code => 1}
+};
+
+
 %predefined_index = (
                    'cp', 'c',
                    'fn', 'f',
@@ -122,8 +1841,11 @@ $html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//E
               # cf. makeinfo.c
               "*", "<BR>",             # HTML+
               " ", " ",
+              "\t", " ",
+              "-", "&#173;",   # soft hyphen
               "\n", "\n",
               "|", "",
+              'tab', '<\/TD><TD>',
               # spacing commands
               ":", "",
               "!", "!",
@@ -140,7 +1862,8 @@ $html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//E
               'br', '<P>',             # paragraph break
               'bullet', '*',
               'copyright', '(C)',
-              'dots', '...',
+              'dots', '<small>...<\/small>',
+              'enddots', '<small>....<\/small>',
               'equiv', '==',
               'error', 'error-->',
               'expansion', '==>',
@@ -148,27 +1871,45 @@ $html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//E
               'point', '-!-',
               'print', '-|',
               'result', '=>',
-              'today', $TODAY,
+              'today', $T2H_TODAY,
+              'aa', '&aring;',
+              'AA', '&Aring;',
+              'ae', '&aelig;',
+              'oe', '&#156;',
+              'AE', '&AElig;',
+              'OE', '&#140;',
+              'o',  '&oslash;',
+              'O',  '&Oslash;',
+              'ss', '&szlig;',
+              'l', '\/l',
+              'L', '\/L',
+              'exclamdown', '&iexcl;',
+              'questiondown', '&iquest;',
+              'pounds', '&pound;'
               );
 
 #
 # texinfo styles (@foo{bar}) to HTML ones
 #
 %style_map = (
+             'acronym', '&do_acronym',
              'asis', '',
              'b', 'B',
              'cite', 'CITE',
              'code', 'CODE',
+             'command', 'CODE',
              'ctrl', '&do_ctrl',       # special case
              'dfn', 'EM',              # DFN tag is illegal in the standard
              'dmn', '',                # useless
              'email', '&do_email',     # insert a clickable email address
              'emph', 'EM',
+             'env', 'CODE',
              'file', '"TT',            # will put quotes, cf. &apply_style
              'i', 'I',
              'kbd', 'KBD',
              'key', 'KBD',
-             'math', 'EM',
+             'math', '&do_math',
+             'option', '"SAMP',        # will put quotes, cf. &apply_style
              'r', '',                  # unsupported
              'samp', '"SAMP',          # will put quotes, cf. &apply_style
              'sc', '&do_sc',           # special case
@@ -179,19 +1920,23 @@ $html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//E
              'url', '&do_url',         # insert a clickable URL
              'var', 'VAR',
              'w', '',                  # unsupported
+             'H', '&do_accent',
+             'dotaccent', '&do_accent',
+             'ringaccent','&do_accent',
+             'tieaccent', '&do_accent',
+             'u','&do_accent',
+             'ubaraccent','&do_accent',
+             'udotaccent','&do_accent',
+             'v', '&do_accent',
+             ',', '&do_accent',
+             'dotless', '&do_accent'
              );
 
 #
 # texinfo format (@foo/@end foo) to HTML ones
 #
 %format_map = (
-              'display', 'PRE',
-              'example', 'PRE',
-              'format', 'PRE',
-              'lisp', 'PRE',
               'quotation', 'BLOCKQUOTE',
-              'smallexample', 'PRE',
-              'smalllisp', 'PRE',
               # lists
               'itemize', 'UL',
               'enumerate', 'OL',
@@ -200,6 +1945,38 @@ $html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//E
               'flushright', 'PRE',
               );
 
+#
+# an eval of these $complex_format_map->{what}->[0] yields beginning
+# an eval of these $complex_format_map->{what}->[1] yieleds end
+$complex_format_map =
+{
+ example => 
+ [
+  q{"<TABLE><tr>$T2H_EXAMPLE_INDENT_CELL<td class=example><pre>"},
+  q{'</pre></td></tr></table>'}
+ ],
+ smallexample => 
+ [
+  q{"<TABLE><tr>$T2H_SMALL_EXAMPLE_INDENT_CELL<td class=smallexample><FONT SIZE=$T2H_SMALL_FONT_SIZE><pre>"},
+  q{'</FONT></pre></td></tr></table>'}
+ ],
+ display =>
+ [
+  q{"<TABLE><tr>$T2H_EXAMPLE_INDENT_CELL<td class=display><pre " . 'style="font-family: serif">'},
+  q{'</pre></td></tr></table>'}
+ ],
+ smalldisplay =>
+ [
+  q{"<TABLE><tr>$T2H_SMALL_EXAMPLE_INDENT_CELL<td class=smalldisplay><FONT SIZE=$T2H_SMALL_FONT_SIZE><pre " . 'style="font-family: serif">'},
+  q{'</pre></FONT></td></tr></table>'}
+ ]
+};
+
+$complex_format_map->{lisp} = $complex_format_map->{example};
+$complex_format_map->{smalllisp} = $complex_format_map->{smallexample};
+$complex_format_map->{format} = $complex_format_map->{display};
+$complex_format_map->{smallformat} = $complex_format_map->{smalldisplay};
+
 #
 # texinfo definition shortcuts to real ones
 #
@@ -229,7 +2006,9 @@ $html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//E
            'deftypefun', 'deftypefn Function',
            'deftypevar', 'deftypevr Variable',
            'defivar', 'defcv {Instance Variable}',
+           'deftypeivar', 'defcv {Instance Variable}', # NEW: FIXME
            'defmethod', 'defop Method',
+           'deftypemethod', 'defop Method', # NEW:FIXME
            # x shortcuts
            'defunx', 'deffnx Function',
            'defmacx', 'deffnx Macro',
@@ -249,7 +2028,15 @@ $html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//E
            # comments
            'c', 1,
            'comment', 1,
+            'ifnotinfo', 1,
+            'ifnottex', 1,
+           'ifhtml', 1,
+           'end ifhtml', 1,
+            'end ifnotinfo', 1,
+            'end ifnottex', 1,
            # useless
+           'detailmenu', 1,
+            'direntry', 1,
            'contents', 1,
            'shortcontents', 1,
            'summarycontents', 1,
@@ -263,6 +2050,7 @@ $html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//E
            'cropmarks', 1,
            'finalout', 1,
            'headings', 1,
+            'sp', 1,
            'need', 1,
            'page', 1,
            'setchapternewpage', 1,
@@ -289,88 +2077,221 @@ $html2_doctype = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//E
 #                                                                              #
 #---############################################################################
 
-%value = ();                           # hold texinfo variables, see also -D
+#
+# flush stdout and stderr after every write
+#
+select(STDERR);
+$| = 1;
+select(STDOUT);
+$| = 1;
+
 
+%value = ();                           # hold texinfo variables, see also -D
 $use_bibliography = 1;
-$use_acc = 0;
-$debug = 0;
-$doctype = '';
-$check = 0;
-$expandinfo = 0;
-$use_glossary = 0;
-$invisible_mark = '';
-$use_iso = 0;
-@include_dirs = ();
-$show_menu = 0;
-$number_sections = 0;
-$split_node = 0;
-$split_chapter = 0;
-$monolithic = 0;
-$verbose = 0;
-$usage = <<EOT;
-This is $THISPROG
-To convert a Texinfo file to HMTL: $0 [options] file
-  where options can be:
-    -expandinfo    : use \@ifinfo sections, not \@iftex
-    -glossary      : handle a glossary
-    -invisible name: use 'name' as an invisible anchor
-    -Dname         : define name like with \@set
-    -I dir         : search also for files in 'dir'
-    -menu          : handle menus
-    -monolithic    : output only one file including ToC
-    -number        : number sections
-    -split_chapter : split on main sections
-    -split_node    : split on nodes
-    -usage         : print usage instructions
-    -verbose       : verbose output
-To check converted files: $0 -check [-verbose] files
-EOT
+$use_acc = 1;
 
-while (@ARGV && $ARGV[0] =~ /^-/) {
-    $_ = shift(@ARGV);
-    if (/^-acc$/)            { $use_acc = 1; next; }
-    if (/^-d(ebug)?(\d+)?$/) { $debug = $2 || shift(@ARGV); next; }
-    if (/^-doctype$/)        { $doctype = shift(@ARGV); next; }
-    if (/^-c(heck)?$/)       { $check = 1; next; }
-    if (/^-e(xpandinfo)?$/)  { $expandinfo = 1; next; }
-    if (/^-g(lossary)?$/)    { $use_glossary = 1; next; }
-    if (/^-i(nvisible)?$/)   { $invisible_mark = shift(@ARGV); next; }
-    if (/^-iso$/)            { $use_iso = 1; next; }
-    if (/^-D(.+)?$/)         { $value{$1 || shift(@ARGV)} = 1; next; }
-    if (/^-I(.+)?$/)         { push(@include_dirs, $1 || shift(@ARGV)); next; }
-    if (/^-m(enu)?$/)        { $show_menu = 1; next; }
-    if (/^-mono(lithic)?$/)  { $monolithic = 1; next; }
-    if (/^-n(umber)?$/)      { $number_sections = 1; next; }
-    if (/^-s(plit)?_?(n(ode)?|c(hapter)?)?$/) {
-       if ($2 =~ /^n/) {
-           $split_node = 1;
-       } else {
-           $split_chapter = 1;
-       }
-       next;
+#
+# called on -init-file
+sub LoadInitFile
+{
+  my $init_file = shift;
+  # second argument is value of options
+  $init_file = shift;
+  if (-f $init_file)
+  {
+    print "# reading initialization file from $init_file\n" 
+      if ($T2H_VERBOSE);
+    require($init_file);
+  }
+  else
+  {
+    print "$ERROR Error: can't read init file $int_file\n";
+    $init_file = '';
+  }
+}
+
+#
+# called on -lang
+sub SetDocumentLanguage
+{
+  my $lang = shift;
+  if (! exists($T2H_WORDS->{$lang}))
+  {
+    warn "$ERROR: Language specs for '$lang' do not exists. Reverting to '" . 
+      ($T2H_LANG ? T2H_LANG : "en") . "'\n";
+  }
+  else
+  {
+    print "# using '$lang' as document language\n" if ($T2H_VERBOSE);
+    $T2H_LANG = $lang;
+  }
+}
+
+##
+## obsolete cmd line options
+##
+$T2H_OBSOLETE_OPTIONS -> {'no-section_navigation'} =
+{
+ type => '!',
+ linkage => sub {$main::T2H_SECTION_NAVIGATION = 0;},
+ verbose => 'obsolete, use -nosec_nav',
+ noHelp => 2,
+};
+$T2H_OBSOLETE_OPTIONS -> {use_acc} =
+{
+ type => '!',
+ linkage => \$use_acc,
+ verbose => 'obsolete',
+ noHelp => 2
+};
+$T2H_OBSOLETE_OPTIONS -> {expandinfo} =
+{
+ type => '!',
+ linkage => sub {$main::T2H_EXPAND = 'info';},
+ verbose => 'obsolete, use "-expand info" instead',
+ noHelp => 2,
+};
+$T2H_OBSOLETE_OPTIONS -> {expandtex} =
+{
+ type => '!',
+ linkage => sub {$main::T2H_EXPAND = 'tex';},
+ verbose => 'obsolete, use "-expand tex" instead',
+ noHelp => 2,
+};
+$T2H_OBSOLETE_OPTIONS -> {monolithic} =
+{
+ type => '!',
+ linkage => sub {$main::T2H_SPLIT = '';},
+ verbose => 'obsolete, use "-split no" instead',
+ noHelp => 2
+};
+$T2H_OBSOLETE_OPTIONS -> {split_node} =
+{
+ type => '!',
+ linkage => sub{$main::T2H_SPLIT = 'section';},
+ verbose => 'obsolete, use "-split section" instead',
+ noHelp => 2,
+};
+$T2H_OBSOLETE_OPTIONS -> {split_chapter} =
+{
+ type => '!',
+ linkage => sub{$main::T2H_SPLIT = 'chapter';},
+ verbose => 'obsolete, use "-split chapter" instead',
+ noHelp => 2,
+};
+$T2H_OBSOLETE_OPTIONS -> {no_verbose} =
+{
+ type => '!',
+ linkage => sub {$main::T2H_VERBOSE = 0;},
+ verbose => 'obsolete, use -noverbose instead',
+ noHelp => 2,
+};
+$T2H_OBSOLETE_OPTIONS -> {output_file} =
+{
+ type => '=s',
+ linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';},
+ verbose => 'obsolete, use -out_file instead',
+ noHelp => 2
+};
+
+$T2H_OBSOLETE_OPTIONS -> {section_navigation} =
+{
+ type => '!',
+ linkage => \$T2H_SECTION_NAVIGATION,
+ verbose => 'obsolete, use -sec_nav instead',
+ noHelp => 2,
+};
+
+$T2H_OBSOLETE_OPTIONS -> {verbose} =
+{
+ type => '!',
+ linkage => \$T2H_VERBOSE,
+ verbose => 'obsolete, use -Verbose instead',
+ noHelp => 2
+};
+
+# read initialzation from $sysconfdir/texi2htmlrc or $HOME/.texi2htmlrc
+my $home = $ENV{HOME};
+defined($home) or $home = '';
+foreach $i ('/usr/local/etc/texi2htmlrc', "$home/.texi2htmlrc") {
+    if (-f $i) {
+       print "# reading initialization file from $i\n" 
+           if ($T2H_VERBOSE);
+       require($i);
     }
-    if (/^-v(erbose)?$/)     { $verbose = 1; next; }
-    die $usage;
 }
-if ($check) {
-    die $usage unless @ARGV > 0;
+
+
+#+++############################################################################
+#                                                                              #
+# parse command-line options
+#                                                                              #
+#---############################################################################
+$T2H_USAGE_TEXT = <<EOT;
+Usage: texi2html  [OPTIONS] TEXINFO-FILE
+Translates Texinfo source documentation to HTML.
+EOT
+$T2H_FAILURE_TEXT = <<EOT;
+Try 'texi2html -help' for usage instructions.
+EOT
+$options = new Getopt::MySimple;
+
+# some older version of GetOpt::Long don't have 
+# Getopt::Long::Configure("pass_through")
+eval {Getopt::Long::Configure("pass_through");};
+$Configure_failed = $@ && <<EOT;
+**WARNING: Parsing of obsolete command-line options could have failed. 
+           Consider to use only documented command-line options (run
+           'texi2html -help 2' for a complete list) or upgrade to perl 
+           version 5.005 or higher.
+EOT
+
+if (! $options->getOptions($T2H_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n"))
+{
+  print $Configure_failed if $Configure_failed;
+  die $T2H_FAILURE_TEXT;
+}
+
+if (@ARGV > 1)
+{
+  eval {Getopt::Long::Configure("no_pass_through");};
+  if (! $options->getOptions($T2H_OBSOLETE_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n"))
+  {
+    print $Configure_failed if $Configure_failed;
+    die $T2H_FAILURE_TEXT;
+  }
+}
+
+if ($T2H_CHECK) {
+    die "Need file to check\n$T2H_FAILURE_TEXT" unless @ARGV > 0;
     &check;
     exit;
 }
 
-if (($split_node || $split_chapter) && $monolithic) {
-    warn "Can't use -monolithic with -split, -monolithic ignored.\n";
-    $monolithic = 0;
-}
-if ($expandinfo) {
-    $to_skip{'ifinfo'}++;
-    $to_skip{'end ifinfo'}++;
-} else {
-    $to_skip{'iftex'}++;
-    $to_skip{'end iftex'}++;
+#+++############################################################################
+#                                                                              #
+# evaluation of cmd line options
+#                                                                              #
+#---############################################################################
+
+if ($T2H_EXPAND eq 'info') 
+{
+  $to_skip{'ifinfo'} = 1;
+  $to_skip{'end ifinfo'} = 1;
+} 
+elsif ($T2H_EXPAND eq 'tex')
+{
+  $to_skip{'iftex'} = 1;
+  $to_skip{'end iftex'} = 1;
+  
 }
-$invisible_mark = '<IMG SRC="invisible.xbm">' if $invisible_mark eq 'xbm';
-die $usage unless @ARGV == 1;
+
+$T2H_INVISIBLE_MARK = '<IMG SRC="invisible.xbm">' if $T2H_INVISIBLE_MARK eq 'xbm';
+
+#
+# file name buisness
+#
+die "Need exactly one file to translate\n$T2H_FAILURE_TEXT" unless @ARGV == 1;
 $docu = shift(@ARGV);
 if ($docu =~ /.*\//) {
     chop($docu_dir = $&);
@@ -379,29 +2300,123 @@ if ($docu =~ /.*\//) {
     $docu_dir = '.';
     $docu_name = $docu;
 }
-unshift(@include_dirs, $docu_dir);
+unshift(@T2H_INCLUDE_DIRS, $docu_dir);
 $docu_name =~ s/\.te?x(i|info)?$//;    # basename of the document
+$docu_name = $T2H_PREFIX if ($T2H_PREFIX);
 
-$docu_doc = "$docu_name.html";         # document's contents
-if ($monolithic) {
-    $docu_toc = $docu_foot = $docu_doc;
-} else {
-    $docu_toc  = "${docu_name}_toc.html";  # document's table of contents
-    $docu_foot = "${docu_name}_foot.html"; # document's footnotes
+# subdir
+if ($T2H_SUBDIR && ! $T2H_OUT)
+{
+  $T2H_SUBDIR =~ s|/*$||;
+  unless (-d "$T2H_SUBDIR" && -w "$T2H_SUBDIR")
+  {
+    if ( mkdir($T2H_SUBDIR, oct(755)))
+    {
+      print "# created directory $T2H_SUBDIR\n" if ($T2H_VERBOSE);
+    }
+    else
+    {
+      warn "$ERROR can't create directory $T2H_SUBDIR. Put results into current directory\n";
+      $T2H_SUBDIR = '';
+    }
+  }
+}
+
+if ($T2H_SUBDIR && ! $T2H_OUT)
+{
+  $docu_rdir = "$T2H_SUBDIR/";
+  print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE);
+}
+else
+{
+  if ($T2H_OUT && $T2H_OUT =~ m|(.*)/|)
+  {
+    $docu_rdir = "$1/";
+    print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE);
+  }
+  else
+  {
+    print "# putting result files into current directory \n" if ($T2H_VERBOSE);
+    $docu_rdir = '';
+  }
+}
+
+# extension
+if ($T2H_SHORTEXTN)
+{
+  $docu_ext = "htm";
+}
+else
+{
+  $docu_ext = "html";
+}
+if ($T2H_TOP_FILE =~ /\..*$/)
+{
+  $T2H_TOP_FILE = $`.".$docu_ext";
+}
+
+# result files
+if (! $T2H_OUT && ($T2H_SPLIT =~ /section/i || $T2H_SPLIT =~ /node/i))
+{
+  $T2H_SPLIT = 'section';
+}
+elsif (! $T2H_OUT && $T2H_SPLIT =~ /chapter/i)
+{
+  $T2H_SPLIT = 'chapter'
+}
+else
+{
+  undef $T2H_SPLIT;
+}
+
+$docu_doc = "$docu_name.$docu_ext";            # document's contents
+$docu_doc_file = "$docu_rdir$docu_doc";
+if ($T2H_SPLIT) 
+{
+  $docu_toc  = $T2H_TOC_FILE || "${docu_name}_toc.$docu_ext"; # document's table of contents
+  $docu_stoc = "${docu_name}_ovr.$docu_ext"; # document's short toc
+  $docu_foot = "${docu_name}_fot.$docu_ext"; # document's footnotes
+  $docu_about = "${docu_name}_abt.$docu_ext"; # about this document
+  $docu_top  = $T2H_TOP_FILE || $docu_doc;
+}
+else
+{
+  if ($T2H_OUT)
+  {
+    $docu_doc = $T2H_OUT;
+    $docu_doc =~ s|.*/||;
+  }
+  $docu_toc = $docu_foot = $docu_stoc = $docu_about = $docu_top = $docu_doc;
 }
 
+$docu_toc_file  = "$docu_rdir$docu_toc";
+$docu_stoc_file = "$docu_rdir$docu_stoc";
+$docu_foot_file = "$docu_rdir$docu_foot";
+$docu_about_file = "$docu_rdir$docu_about";
+$docu_top_file  = "$docu_rdir$docu_top";
+
+$docu_frame_file =     "$docu_rdir${docu_name}_frame.$docu_ext";
+$docu_toc_frame_file = "$docu_rdir${docu_name}_toc_frame.$docu_ext";
+
 #
 # variables
 #
 $value{'html'} = 1;                    # predefine html (the output format)
-$value{'texi2html'} = '1.52';          # predefine texi2html (the translator)
+$value{'texi2html'} = $THISVERSION;    # predefine texi2html (the translator)
 # _foo: internal to track @foo
 foreach ('_author', '_title', '_subtitle',
-        '_settitle', '_setfilename') {
+        '_settitle', '_setfilename', '_shorttitle') {
     $value{$_} = '';                   # prevent -w warnings
 }
 %node2sec = ();                                # node to section name
+%sec2node = ();                                # section to node name
+%sec2number = ();                       # section to number
+%number2sec = ();                       # number to section 
+%idx2node = ();                         # index keys to node
 %node2href = ();                       # node to HREF
+%node2next = ();                       # node to next
+%node2prev = ();                       # node to prev
+%node2up   = ();                       # node to up
 %bib2href = ();                                # bibliography reference to HREF
 %gloss2href = ();                      # glossary term to HREF
 @sections = ();                                # list of sections
@@ -421,7 +2436,7 @@ $html_num = 0;
 #
 # can I use ISO8879 characters? (HTML+)
 #
-if ($use_iso) {
+if ($T2H_USE_ISO) {
     $things_map{'bullet'} = "&bull;";
     $things_map{'copyright'} = "&copy;";
     $things_map{'dots'} = "&hellip;";
@@ -436,19 +2451,487 @@ if ($use_iso) {
 #
 $extensions = 'texi2html.ext'; # extensions in working directory
 if (-f $extensions) {
-    print "# reading extensions from $extensions\n" if $verbose;
+    print "# reading extensions from $extensions\n" if $T2H_VERBOSE;
     require($extensions);
 }
 ($progdir = $0) =~ s/[^\/]+$//;
 if ($progdir && ($progdir ne './')) {
     $extensions = "${progdir}texi2html.ext"; # extensions in texi2html directory
     if (-f $extensions) {
-       print "# reading extensions from $extensions\n" if $verbose;
+       print "# reading extensions from $extensions\n" if $T2H_VERBOSE;
        require($extensions);
     }
 }
 
-print "# reading from $docu\n" if $verbose;
+
+print "# reading from $docu\n" if $T2H_VERBOSE;
+
+#########################################################################
+#
+# latex2html stuff
+# 
+# latex2html conversions consist of three stages:
+# 1) ToLatex: Put "latex" code into a latex file
+# 2) ToHtml: Use latex2html to generate corresponding html code and images
+# 3) FromHtml: Extract generated code and images from latex2html run
+#
+
+##########################
+# default settings
+#
+
+# defaults for files and names
+
+sub l2h_Init 
+{
+  local($root) = @_;
+  
+  return 0 unless ($root);
+  
+  $l2h_name =  "${root}_l2h";
+  
+  $l2h_latex_file = "$docu_rdir${l2h_name}.tex";
+  $l2h_cache_file = "${docu_rdir}l2h_cache.pm";
+  $T2H_L2H_L2H = "latex2html" unless ($T2H_L2H_L2H);
+  
+  # destination dir -- generated images are put there, should be the same
+  # as dir of enclosing html document -- 
+  $l2h_html_file = "$docu_rdir${l2h_name}.html";
+  $l2h_prefix = "${l2h_name}_";
+  return 1;
+}
+
+
+##########################
+# 
+# First stage: Generation of Latex file
+# Initialize with: l2h_InitToLatex
+# Add content with: l2h_ToLatex($text) --> HTML placeholder comment
+# Finish with: l2h_FinishToLatex
+# 
+
+$l2h_latex_preample = <<EOT;
+% This document was automatically generated by the l2h extenstion of texi2html
+% DO NOT EDIT !!!
+\\documentclass{article}
+\\usepackage{html}
+\\begin{document}
+EOT
+
+$l2h_latex_closing = <<EOT;
+\\end{document}
+EOT
+
+# return used latex 1, if l2h could be initalized properly, 0 otherwise
+sub l2h_InitToLatex
+{
+  %l2h_to_latex = ();
+  unless ($T2H_L2H_SKIP)
+  {
+    unless (open(L2H_LATEX, ">$l2h_latex_file"))
+    {
+      warn "$ERROR Error l2h: Can't open latex file '$latex_file' for writing\n";
+      return 0;
+    }  
+    print "# l2h: use ${l2h_latex_file} as latex file\n" if ($T2H_VERBOSE);
+    print L2H_LATEX $l2h_latex_preample;
+  }
+  # open database for caching
+  l2h_InitCache();
+  $l2h_latex_count = 0;
+  $l2h_to_latex_count = 0;
+  $l2h_cached_count = 0;
+  return  1;
+}
+
+# print text (1st arg) into latex file (if not already there), return
+# HTML commentary which can be later on replaced by the latex2html
+# generated text
+sub l2h_ToLatex
+{
+  my($text) = @_;
+  my($count);
+  
+  $l2h_to_latex_count++;
+  $text =~ s/(\s*)$//;
+  
+  # try whether we can cache it
+  my $cached_text = l2h_FromCache($text);
+  if ($cached_text)
+  {
+    $l2h_cached_count++;
+    return $cached_text;
+  }
+  
+  # try whether we have text already on things to do
+  unless ($count = $l2h_to_latex{$text})
+  {
+    $count = $l2h_latex_count;
+    $l2h_latex_count++;
+    $l2h_to_latex{$text} = $count;
+    $l2h_to_latex[$count] = $text;
+    unless ($T2H_L2H_SKIP)
+    {
+      print L2H_LATEX "\\begin{rawhtml}\n";
+      print L2H_LATEX "<!-- l2h_begin ${l2h_name} ${count} -->\n";
+      print L2H_LATEX "\\end{rawhtml}\n";
+      
+      print L2H_LATEX "$text\n";
+      
+      print L2H_LATEX "\\begin{rawhtml}\n";
+      print L2H_LATEX "<!-- l2h_end ${l2h_name} ${count} -->\n";
+      print L2H_LATEX "\\end{rawhtml}\n";
+    }
+  }
+  return "<!-- l2h_replace ${l2h_name} ${count} -->"; 
+}
+
+# print closing into latex file and close it
+sub l2h_FinishToLatex
+{
+  local ($reused);
+  
+  $reused = $l2h_to_latex_count - $l2h_latex_count - $l2h_cached_count;
+  unless ($T2H_L2H_SKIP)
+  {
+    print L2H_LATEX $l2h_latex_closing;
+    close(L2H_LATEX);
+  }
+  print "# l2h: finished to latex ($l2h_cached_count cached, $reused reused, $l2h_latex_count contents)\n" if ($T2H_VERBOSE);
+  unless ($l2h_latex_count)
+  {
+    l2h_Finish();
+    return 0;
+  }
+  return 1;
+}
+
+###################################
+# Second stage: Use latex2html to generate corresponding html code and images
+#
+# l2h_ToHtml([$l2h_latex_file, [$l2h_html_dir]]):
+#   Call latex2html on $l2h_latex_file
+#   Put images (prefixed with $l2h_name."_") and html file(s) in $l2h_html_dir
+#   Return 1, on success
+#          0, otherwise
+#
+sub l2h_ToHtml
+{
+  local($call, $ext, $root, $dotbug);
+  
+  if ($T2H_L2H_SKIP)
+  {
+    print "# l2h: skipping latex2html run\n" if ($T2H_VERBOSE);
+    return 1;
+  }
+  
+  # Check for dot in directory where dvips will work
+  if ($T2H_L2H_TMP)
+  {
+    if ($T2H_L2H_TMP =~ /\./)
+    {
+      warn "$ERROR Warning l2h: l2h_tmp dir contains a dot. Use /tmp, instead\n";
+      $dotbug = 1;
+    }
+  }
+  else
+  {
+    if (&getcwd =~ /\./)
+    {
+     warn "$ERROR Warning l2h: current dir contains a dot. Use /tmp as l2h_tmp dir \n";
+     $dotbug = 1;
+   }
+  }
+  # fix it, if necessary and hope that it works 
+  $T2H_L2H_TMP = "/tmp" if ($dotbug);
+    
+  $call = $T2H_L2H_L2H;
+  # use init file, if specified
+  $call = $call . " -init_file " . $init_file if ($init_file && -f $init_file);
+  # set output dir
+  $call .=  ($docu_rdir ? " -dir $docu_rdir" : " -no_subdir");
+  # use l2h_tmp, if specified
+  $call = $call . " -tmp $T2H_L2H_TMP" if ($T2H_L2H_TMP);
+  # options we want to be sure of
+  $call = $call ." -address 0 -info 0 -split 0 -no_navigation -no_auto_link";
+  $call = $call ." -prefix ${l2h_prefix} $l2h_latex_file"; 
+
+  print "# l2h: executing '$call'\n" if ($T2H_VERBOSE);
+  if (system($call))
+  {
+    warn "l2h ***Error: '${call}' did not succeed\n";
+    return 0;
+  }
+  else
+  {
+    print "# l2h: latex2html finished successfully\n" if ($T2H_VERBOSE);
+    return 1;
+  }
+}
+
+# this is directly pasted over from latex2html
+sub getcwd {
+    local($_) = `pwd`;
+
+    die "'pwd' failed (out of memory?)\n"
+       unless length;
+    chop;
+    $_;
+}
+
+
+##########################
+# Third stage: Extract generated contents from latex2html run
+# Initialize with: l2h_InitFromHtml
+#   open $l2h_html_file for reading
+#   reads in contents into array indexed by numbers
+#   return 1,  on success -- 0, otherwise
+# Extract Html code with: l2h_FromHtml($text)
+#   replaces in $text all previosuly inserted comments by generated html code
+#   returns (possibly changed) $text
+# Finish with: l2h_FinishFromHtml
+#   closes $l2h_html_dir/$l2h_name.".$docu_ext" 
+
+sub l2h_InitFromHtml
+{
+  local($h_line, $h_content, $count, %l2h_img);
+
+  if (! open(L2H_HTML, "<${l2h_html_file}"))
+  {
+    print "$ERROR Error l2h: Can't open ${l2h_html_file} for reading\n";
+    return 0;
+  }
+  print "# l2h: use ${l2h_html_file} as html file\n" if ($T2H_VERBOSE);
+
+  $l2h_html_count = 0;
+  
+  while ($h_line = <L2H_HTML>)
+  {
+    if ($h_line =~ /^<!-- l2h_begin $l2h_name ([0-9]+) -->/)
+    {
+      $count = $1;
+      $h_content = "";
+      while ($h_line = <L2H_HTML>)
+      {
+       if ($h_line =~ /^<!-- l2h_end $l2h_name $count -->/)
+       {
+         chomp $h_content;
+         chomp $h_content;
+         $l2h_html_count++;
+         $h_content = l2h_ToCache($count, $h_content);
+         $l2h_from_html[$count] = $h_content;
+         $h_content = '';
+         last;
+       }
+       $h_content = $h_content.$h_line;
+      }
+      if ($hcontent)
+      {
+       print "$ERROR Warning l2h: l2h_end $l2h_name $count not found\n" 
+         if ($T2H_VERBOSE);
+       close(L2H_HTML);
+       return 0;
+      }
+    }
+  }
+  print "# l2h: Got $l2h_html_count of $l2h_latex_count html contents\n"
+    if ($T2H_VERBOSE);
+
+  close(L2H_HTML);
+  return 1;
+}
+
+sub l2h_FromHtml
+{
+  local($text) = @_;
+  local($done, $to_do, $count);
+  
+  $to_do = $text;
+  
+  while ($to_do =~ /([^\000]*)<!-- l2h_replace $l2h_name ([0-9]+) -->([^\000]*)/)
+  {
+    $to_do = $1;
+    $count = $2;
+    $done = $3.$done;
+    
+    $done = "<!-- l2h_end $l2h_name $count -->".$done
+      if ($T2H_DEBUG & $DEBUG_L2H);
+
+    $done = &l2h_ExtractFromHtml($count) . $done;
+
+    $done = "<!-- l2h_begin $l2h_name $count -->".$done
+      if ($T2H_DEBUG & $DEBUG_L2H);
+  }
+  return $to_do.$done;
+}
+
+
+sub l2h_ExtractFromHtml
+{
+  local($count) = @_;
+  
+  return $l2h_from_html[$count] if ($l2h_from_html[$count]);
+  
+  if ($count >= 0 && $count < $l2h_latex_count)
+  {
+    # now we are in trouble
+    local($l_l2h, $_);
+
+    $l2h_extract_error++;
+    print "$ERROR l2h: can't extract content $count from html\n" 
+      if ($T2H_VERBOSE);
+    # try simple (ordinary) substition (without l2h)
+    $l_l2h = $T2H_L2H;
+    $T2H_L2H = 0;
+    $_ = $l2h_to_latex{$count};
+    $_ = &substitute_style($_); 
+    &unprotect_texi;
+    $_ = "<!-- l2h: ". __LINE__ . " use texi2html -->" . $_
+      if ($T2H_DEBUG & $DEBUG_L2H);
+    $T2H_L2H = $l_l2h;
+    return $_;
+  }
+  else
+  {
+    # now we have been incorrectly called
+    $l2h_range_error++;
+    print "$ERROR l2h: Request of $count content which is out of valide range [0,$l2h_latex_count)\n";
+    return "<!-- l2h: ". __LINE__ . " out of range count $count -->"
+      if ($T2H_DEBUG & $DEBUG_L2H);
+    return "<!-- l2h: out of range count $count -->";
+  }
+}
+    
+sub l2h_FinishFromHtml
+{
+  if ($T2H_VERBOSE)
+  {
+    if ($l2h_extract_error + $l2h_range_error)
+    {
+      print "# l2h: finished from html ($l2h_extract_error extract and $l2h_range_error errors)\n";
+    }
+    else
+    {
+      print "# l2h: finished from html (no errors)\n";
+    }
+  }
+}
+
+sub l2h_Finish
+{
+  l2h_StoreCache();
+  if ($T2H_L2H_CLEAN)
+  {
+    print "# l2h: removing temporary files generated by l2h extension\n"
+      if $T2H_VERBOSE;
+    while (<"$docu_rdir$l2h_name"*>)
+    {
+      unlink $_;
+    }
+  }
+  print "# l2h: Finished\n" if $T2H_VERBOSE;
+  return 1;
+}
+
+##############################
+# stuff for l2h caching
+#
+
+# I tried doing this with a dbm data base, but it did not store all
+# keys/values. Hence, I did as latex2html does it
+sub l2h_InitCache
+{
+  if (-r "$l2h_cache_file")
+  {
+    my $rdo = do "$l2h_cache_file";
+    warn("$ERROR l2h Error: could not load $docu_rdir$l2h_cache_file: $@\n")
+      unless ($rdo);
+  }
+}
+
+sub l2h_StoreCache
+{
+  return unless $l2h_latex_count;
+  
+  my ($key, $value);
+  open(FH, ">$l2h_cache_file") || return warn"$ERROR l2h Error: could not open $docu_rdir$l2h_cache_file for writing: $!\n";
+
+  
+  while (($key, $value) = each %l2h_cache)
+  {
+    # escape stuff
+    $key =~ s|/|\\/|g;
+    $key =~ s|\\\\/|\\/|g;
+    # weird, a \ at the end of the key results in an error
+    # maybe this also broke the dbm database stuff
+    $key =~ s|\\$|\\\\|;
+    $value =~ s/\|/\\\|/g; 
+    $value =~ s/\\\\\|/\\\|/g; 
+    $value =~ s|\\\\|\\\\\\\\|g;
+    print FH "\n\$l2h_cache_key = q/$key/;\n";
+    print FH "\$l2h_cache{\$l2h_cache_key} = q|$value|;\n";
+  }
+  print FH "1;";
+  close(FH);
+}
+
+# return cached html, if it exists for text, and if all pictures
+# are there, as well
+sub l2h_FromCache
+{
+  my $text = shift;
+  my $cached = $l2h_cache{$text};
+  if ($cached)
+  {
+    while ($cached =~ m/SRC="(.*?)"/g)
+    {
+      unless (-e "$docu_rdir$1")
+      {
+       return undef;
+      }
+    }
+    return $cached;
+  }
+  return undef;
+}
+
+# insert generated html into cache, move away images, 
+# return transformed html
+$maximage = 1;
+sub l2h_ToCache
+{
+  my $count = shift;
+  my $content = shift;
+  my @images = ($content =~ /SRC="(.*?)"/g);
+  my ($src, $dest);
+
+  for $src (@images)
+  {
+    $dest = $l2h_img{$src};
+    unless ($dest)
+    {
+      my $ext;
+      if ($src =~ /.*\.(.*)$/ && $1 ne $docu_ext)
+      {
+       $ext = $1;
+      }
+      else
+      {
+       warn "$ERROR: L2h image $src has invalid extension\n";
+       next;
+      }
+      while (-e "$docu_rdir${docu_name}_$maximage.$ext") { $maximage++;}
+      $dest = "${docu_name}_$maximage.$ext";
+      system("cp -f $docu_rdir$src $docu_rdir$dest");
+      $l2h_img{$src} = $dest;
+      unlink "$docu_rdir$src" unless ($DEBUG & DEBUG_L2H);
+    }
+    $content =~ s/$src/$dest/g;
+  }
+  $l2h_cache{$l2h_to_latex[$count]} = $content;
+  return $content;
+}
+
 
 #+++############################################################################
 #                                                                              #
@@ -458,25 +2941,34 @@ print "# reading from $docu\n" if $verbose;
 
 @lines = ();                           # whole document
 @toc_lines = ();                       # table of contents
-$toplevel = 0;                         # top level seen in hierarchy
+@stoc_lines = ();                      # table of contents
 $curlevel = 0;                         # current level in TOC
 $node = '';                            # current node name
+$node_next = '';                        # current node next name               
+$node_prev = '';                        # current node prev name
+$node_up = '';                          # current node up name
 $in_table = 0;                         # am I inside a table
 $table_type = '';                      # type of table ('', 'f', 'v', 'multi')
 @tables = ();                          # nested table support
 $in_bibliography = 0;                  # am I inside a bibliography
 $in_glossary = 0;                      # am I inside a glossary
 $in_top = 0;                           # am I inside the top node
+$has_top = 0;                          # did I see a top node?
+$has_top_command = 0;                  # did I see @top for automatic pointers?
 $in_pre = 0;                           # am I inside a preformatted section
 $in_list = 0;                          # am I inside a list
 $in_html = 0;                          # am I inside an HTML section
 $first_line = 1;                       # is it the first line
 $dont_html = 0;                                # don't protect HTML on this line
-$split_num = 0;                                # split index
 $deferred_ref = '';                    # deferred reference for indexes
 @html_stack = ();                      # HTML elements stack
 $html_element = '';                    # current HTML element
 &html_reset;
+%macros = ();                           # macros
+
+# init l2h
+$T2H_L2H = &l2h_Init($docu_name) if ($T2H_L2H);
+$T2H_L2H = &l2h_InitToLatex      if ($T2H_L2H);    
 
 # build code for simple substitutions
 # the maps used (%simple_map and %things_map) MUST be aware of this
@@ -499,13 +2991,13 @@ if ($use_acc) {
        } else {
            $subst_code .= "s/\\\@\\$_";
        }
-       $subst_code .= "([aeiou])/&\${1}$accent_map{$_};/gi;\n";
+       $subst_code .= "([a-z])/&\${1}$accent_map{$_};/gi;\n";
     }
 }
 eval("sub simple_substitutions { $subst_code }");
 
 &init_input;
-while ($_ = &next_line) {
+INPUT_LINE: while ($_ = &next_line) {
     #
     # remove \input on the first lines only
     #
@@ -513,56 +3005,123 @@ while ($_ = &next_line) {
        next if /^\\input/;
        $first_line = 0;
     }
+    # non-@ substitutions cf. texinfmt.el
     #
     # parse texinfo tags
     #
     $tag = '';
     $end_tag = '';
-    if (/^\@end\s+(\w+)\b/) {
+    if (/^\s*\@end\s+(\w+)\b/) {
        $end_tag = $1;
-    } elsif (/^\@(\w+)\b/) {
+    } elsif (/^\s*\@(\w+)\b/) {
        $tag = $1;
     }
     #
-    # handle @ifhtml / @end ifhtml
+    # handle @html / @end html
     #
     if ($in_html) {
-       if ($end_tag eq 'ifhtml') {
+       if ($end_tag eq 'html') {
            $in_html = 0;
        } else {
            $tag2pro{$in_html} .= $_;
        }
        next;
-    } elsif ($tag eq 'ifhtml') {
+    } elsif ($tag eq 'html') {
        $in_html = $PROTECTTAG . ++$html_num;
        push(@lines, $in_html);
        next;
     }
+
+    #
+    # try to remove inlined comments
+    # syntax from tex-mode.el comment-start-skip
+    #
+    s/((^|[^\@])(\@\@)*)\@c(omment | |\{|$).*/$1/;
+
+# Sometimes I use @c right at the end of  a line ( to suppress the line feed )
+#    s/((^|[^\@])(\@\@)*)\@c(omment)?$/$1/;
+#     s/((^|[^\@])(\@\@)*)\@c(omment)? .*/$1/;
+#     s/(.*)\@c{.*?}(.*)/$1$2/;
+#     s/(.*)\@comment{.*?}(.*)/$1$2/;
+#     s/^(.*)\@c /$1/;
+#     s/^(.*)\@comment /$1/;
+
+    #############################################################
+    # value substitution before macro expansion, so that
+    # it works in macro arguments                          
+    s/\@value{($VARRE)}/$value{$1}/eg;
+                           
+    #############################################################
+    # macro substitution
+    while (/\@(\w+)/g)
+    {
+      if (exists($macros->{$1}))    
+      {
+       my $before = $`;
+       my $name = $1;
+       my $after = $';
+       my @args;
+       my $args;
+       if ($after =~ /^\s*{(.*?[^\\])}(.*)/)  
+       {
+         $args = $1;
+         $after = $2;
+       }
+       elsif (@{$macros->{$name}->{Args}} == 1)
+       {
+         $args = $after;
+         $args =~ s/^\s*//;
+         $args =~ s/\s*$//;
+         $after = '';
+       }
+       $args =~ s|\\\\|\\|g;
+       $args =~ s|\\{|{|g;
+        $args =~ s|\\}|}|g;
+       if (@{$macros->{$name}->{Args}} > 1)
+       {
+         $args =~ s/(^|[^\\]),/$1$;/g ;
+         $args =~ s|\\,|,|g;
+         @args = split(/$;\s*/, $args) if (@{$macros->{$name}->{Args}} > 1);
+       }
+       else
+       {
+         $args =~ s|\\,|,|g;
+         @args = ($args);
+       }
+       my $macrobody = $macros->{$name}->{Body};
+       for ($i=0; $i<=$#args; $i++)
+       {
+         $macrobody =~ s|\\$macros->{$name}->{Args}->[$i]\\|$args[$i]|g;
+       }
+       $macrobody =~ s|\\\\|\\|g;
+       $_ = $before . $macrobody . $after;
+       unshift @input_spool, map {$_ = $_."\n"} split(/\n/, $_);
+       next INPUT_LINE;
+      }
+    }                          #
+                           
+    
     #
     # try to skip the line
     #
     if ($end_tag) {
+        $in_titlepage = 0 if $end_tag eq 'titlepage';
        next if $to_skip{"end $end_tag"};
     } elsif ($tag) {
-       next if $to_skip{$tag};
-       last if $tag eq 'bye';
+      $in_titlepage = 1 if $tag eq 'titlepage';
+      next if $to_skip{$tag};
+      last if $tag eq 'bye';
     }
     if ($in_top) {
        # parsing the top node
-       if ($tag eq 'node' || $tag eq 'include' || $sec2level{$tag}) {
+       if ($tag eq 'node' || 
+           ($sec2level{$tag} && $tag !~ /unnumbered/ && $tag !~ /heading/))
+       {
            # no more in top
            $in_top = 0;
-       } else {
-           # skip it
-           next;
+           push(@lines, $TOPEND);
        }
     }
-    #
-    # try to remove inlined comments
-    # syntax from tex-mode.el comment-start-skip
-    #
-    s/((^|[^\@])(\@\@)*)\@c(omment)? .*/$1/;
-    # non-@ substitutions cf. texinfmt.el
     unless ($in_pre) {
        s/``/\"/g;
        s/''/\"/g;
@@ -574,12 +3133,33 @@ while ($_ = &next_line) {
     if ($tag) {
        # skip lines
        &skip_until($tag), next if $tag eq 'ignore';
-       if ($expandinfo) {
-           &skip_until($tag), next if $tag eq 'iftex';
-       } else {
-           &skip_until($tag), next if $tag eq 'ifinfo';
+       &skip_until($tag), next if $tag eq 'ifnothtml';
+       if ($tag eq 'ifinfo')
+       {
+         &skip_until($tag), next unless $T2H_EXPAND eq 'info';
+       }
+       if ($tag eq 'iftex')
+       {
+         &skip_until($tag), next unless $T2H_EXPAND eq 'tex';
+       } 
+       if ($tag eq 'tex')
+       {
+         # add to latex2html file
+         if ($T2H_EXPAND eq 'tex' && $T2H_L2H && ! $in_pre)
+         {
+           # add space to the end -- tex(i2dvi) does this, as well 
+           push(@lines, &l2h_ToLatex(&string_until($tag) . " "));
+         }
+         else
+         {
+           &skip_until($tag);
+         }
+         next;
+       }
+       if ($tag eq 'titlepage')
+       {
+         next;
        }
-       &skip_until($tag), next if $tag eq 'tex';
        # handle special tables
        if ($tag =~ /^(|f|v|multi)table$/) {
            $table_type = $1;
@@ -588,35 +3168,37 @@ while ($_ = &next_line) {
        # special cases
        if ($tag eq 'top' || ($tag eq 'node' && /^\@node\s+top\s*,/i)) {
            $in_top = 1;
+           $has_top = 1;
+           $has_top_command = 1 if $tag eq 'top';
            @lines = (); # ignore all lines before top (title page garbage)
            next;
        } elsif ($tag eq 'node') {
+         if ($in_top)
+         {
            $in_top = 0;
-           warn "$ERROR Bad node line: $_" unless $_ =~ /^\@node\s$NODESRE$/o;
-           $_ = &protect_html($_); # if node contains '&' for instance
-           s/^\@node\s+//;
-           ($node) = split(/,/);
-           &normalise_node($node);
-           if ($split_node) {
-               &next_doc;
-               push(@lines, $SPLITTAG) if $split_num++;
-               push(@sections, $node);
-           }
-           next;
+           push(@lines, $TOPEND);
+         }
+         warn "$ERROR Bad node line: $_" unless $_ =~ /^\@node\s$NODESRE$/o;
+         # request of "Richard Y. Kim" <ryk@ap.com>
+         s/^\@node\s+//;
+         $_ = &protect_html($_); # if node contains '&' for instance
+         ($node, $node_next, $node_prev, $node_up) = split(/,/);
+         &normalise_node($node);
+         &normalise_node($node_next);
+         &normalise_node($node_prev);
+         &normalise_node($node_up);
+         $node =~ /\"/ ?
+           push @lines, &html_debug("<A NAME='$node'></A>\n", __LINE__) :
+           push @lines, &html_debug("<A NAME=\"$node\"></A>\n", __LINE__);
+         next;
        } elsif ($tag eq 'include') {
            if (/^\@include\s+($FILERE)\s*$/o) {
-               $file = $1;
-               unless (-e $file) {
-                   foreach $dir (@include_dirs) {
-                       $file = "$dir/$1";
-                       last if -e $file;
-                   }
-               }
-               if (-e $file) {
+               $file = LocateIncludeFile($1);
+               if ($file && -e $file) {
                    &open($file);
-                   print "# including $file\n" if $verbose;
+                   print "# including $file\n" if $T2H_VERBOSE;
                } else {
-                   warn "$ERROR Can't find $file, skipping";
+                   warn "$ERROR Can't find $1, skipping";
                }
            } else {
                warn "$ERROR Bad include line: $_";
@@ -639,45 +3221,110 @@ while ($_ = &next_line) {
            }
            next;
        } elsif ($tag eq 'menu') {
-           unless ($show_menu) {
+           unless ($T2H_SHOW_MENU) {
                &skip_until($tag);
                next;
            }
            &html_push_if($tag);
-           push(@lines, &html_debug("\n", __LINE__));
+           push(@lines, &html_debug('', __LINE__));
        } elsif ($format_map{$tag}) {
            $in_pre = 1 if $format_map{$tag} eq 'PRE';
            &html_push_if($format_map{$tag});
-           push(@lines, &html_debug("\n", __LINE__));
+           push(@lines, &html_debug('', __LINE__));
            $in_list++ if $format_map{$tag} eq 'UL' || $format_map{$tag} eq 'OL' ;
-           push(@lines, &debug("<$format_map{$tag}>\n", __LINE__));
+#          push(@lines, &debug("<BLOCKQUOTE>\n", __LINE__))
+#            if $tag =~ /example/i;
+           # sunshine@sunshineco.com: <PRE>bla</PRE> looks better than
+           # <PRE>\nbla</PRE> (at least on NeXTstep browser
+           push(@lines, &debug("<$format_map{$tag}>" . 
+                               ($in_pre ? '' : "\n"), __LINE__));
            next;
+       }
+       elsif (exists $complex_format_map->{$tag})
+       {
+         my $start = eval $complex_format_map->{$tag}->[0];
+         if ($@)
+         {
+           print "$ERROR: eval of complex_format_map->{$tag}->[0] $complex_format_map->{$tag}->[0]: $@";
+           $start = '<pre>'
+         }
+         $in_pre = 1 if $start =~ /<pre/;
+         push(@lines, html_debug($start. ($in_pre ? '' : "\n"), __LINE__));
+         next;
        } elsif ($tag eq 'table') {
-           if (/^\@(|f|v|multi)table\s+\@(\w+)/) {
+         # anorland@hem2.passagen.se
+         # if (/^\s*\@(|f|v|multi)table\s+\@(\w+)/) {
+            if (/^\s*\@(|f|v|multi)table\s+\@(\w+)|(\{[^\}]*\})/) {
                $in_table = $2;
                unshift(@tables, join($;, $table_type, $in_table));
                if ($table_type eq "multi") {
-                   push(@lines, &debug("<TABLE BORDER>\n", __LINE__));
+                   # don't use borders -- gets confused by empty cells
+                   push(@lines, &debug("<TABLE>\n", __LINE__));
                    &html_push_if('TABLE');
                } else {
                    push(@lines, &debug("<DL COMPACT>\n", __LINE__));
                    &html_push_if('DL');
                }
-               push(@lines, &html_debug("\n", __LINE__));
+               push(@lines, &html_debug('', __LINE__));
            } else {
                warn "$ERROR Bad table line: $_";
            }
            next;
-       } elsif ($tag eq 'synindex' || $tag eq 'syncodeindex') {
-           if (/^\@$tag\s+(\w)\w\s+(\w)\w\s*$/) {
-               eval("*${1}index = *${2}index");
-           } else {
-               warn "$ERROR Bad syn*index line: $_";
+       } 
+       elsif ($tag eq 'synindex' || $tag eq 'syncodeindex') 
+       {
+         if (/^\@$tag\s+(\w+)\s+(\w+)\s*$/) 
+         {
+           my $from = $1;
+           my $to = $2;
+           my $prefix_from = IndexName2Prefix($from);
+           my $prefix_to = IndexName2Prefix($to);
+
+           warn("$ERROR unknown from index name $from ind syn*index line: $_"), next
+             unless $prefix_from;
+           warn("$ERROR unknown to index name $to ind syn*index line: $_"), next
+             unless $prefix_to;
+
+           if ($tag eq 'syncodeindex')
+           {
+             $index_properties->{$prefix_to}->{'from_code'}->{$prefix_from} = 1;
            }
-           next;
-       } elsif ($tag eq 'sp') {
+           else
+           {
+              $index_properties->{$prefix_to}->{'from'}->{$prefix_from} = 1;
+           }
+         } 
+         else 
+         {
+           warn "$ERROR Bad syn*index line: $_";
+         }
+         next;
+       } 
+       elsif ($tag eq 'defindex' || $tag eq 'defcodeindex') 
+       {
+         if (/^\@$tag\s+(\w+)\s*$/) 
+         {
+           my $name = $1;
+           $index_properties->{$name}->{name} = $name;
+           $index_properties->{$name}->{code} = 1 if $tag eq 'defcodeindex';
+         } 
+         else 
+         {
+           warn "$ERROR Bad defindex line: $_";
+         }
+         next;
+       }
+       elsif (/^\@printindex/)
+       {
+         push (@lines, "<!--::${section}::-->$_");
+         next;
+       }
+       elsif ($tag eq 'sp') {
            push(@lines, &debug("<P>\n", __LINE__));
            next;
+       } elsif ($tag eq 'center') {
+           push(@lines, &debug("<center>\n", __LINE__));
+           s/\@center//;
        } elsif ($tag eq 'setref') {
            &protect_html; # if setref contains '&' for instance
            if (/^\@$tag\s*{($NODERE)}\s*$/) {
@@ -685,19 +3332,60 @@ while ($_ = &next_line) {
                $setref =~ s/\s+/ /g; # normalize
                $setref =~ s/ $//;
                $node2sec{$setref} = $name;
+               $sec2node{$name} = $setref;
                $node2href{$setref} = "$docu_doc#$docid";
            } else {
                warn "$ERROR Bad setref line: $_";
            }
            next;
-       } elsif ($tag eq 'defindex' || $tag eq 'defcodeindex') {
-           if (/^\@$tag\s+(\w\w)\s*$/) {
-               $valid_index{$1} = 1;
-           } else {
-               warn "$ERROR Bad defindex line: $_";
+       } elsif ($tag eq 'lowersections') {
+           local ($sec, $level);
+           while (($sec, $level) = each %sec2level) {
+               $sec2level{$sec} = $level + 1;
            }
            next;
-       } elsif (defined($def_map{$tag})) {
+       } elsif ($tag eq 'raisesections') {
+           local ($sec, $level);
+           while (($sec, $level) = each %sec2level) {
+               $sec2level{$sec} = $level - 1;
+           }
+           next;
+       }
+       elsif ($tag eq 'macro' || $tag eq 'rmacro')
+       {
+         if (/^\@$tag\s*(\w+)\s*(.*)/)
+         {
+           my $name = $1;
+           my @args;
+           @args = split(/\s*,\s*/ , $1)
+             if ($2 =~ /^\s*{(.*)}\s*/);
+           
+           $macros->{$name}->{Args} = \@args;
+           $macros->{$name}->{Body} = '';
+           while (($_ = &next_line) && $_ !~ /\@end $tag/)
+           {
+             $macros->{$name}->{Body} .= $_;
+           }
+           die "ERROR: No closing '\@end $tag' found for macro definition of '$name'\n"
+             unless (/\@end $tag/);
+           chomp $macros->{$name}->{Body};
+         }
+         else
+         {
+           warn "$ERROR: Bad macro defintion $_"
+         }
+         next;
+       }
+       elsif ($tag eq 'unmacro')
+       {
+         delete $macros->{$1} if (/^\@unmacro\s*(\w+)/);
+         next;
+       }
+       elsif ($tag eq 'documentlanguage')
+       {
+         SetDocumentLanguage($1) if (!$T2H_LANG && /documentlanguage\s*(\w+)/);
+       }
+       elsif (defined($def_map{$tag})) {
            if ($def_map{$tag}) {
                s/^\@$tag\s+//;
                $tag = $def_map{$tag};
@@ -707,7 +3395,7 @@ while ($_ = &next_line) {
        } elsif (defined($user_sub{$tag})) {
            s/^\@$tag\s+//;
            $sub = $user_sub{$tag};
-           print "# user $tag = $sub, arg: $_" if $debug & $DEBUG_USER;
+           print "# user $tag = $sub, arg: $_" if $T2H_DEBUG & $DEBUG_USER;
            if (defined(&$sub)) {
                chop($_);
                &$sub($_);
@@ -715,7 +3403,7 @@ while ($_ = &next_line) {
                warn "$ERROR Bad user sub for $tag: $sub\n";
            }
            next;
-       }
+         } 
        if (defined($def_map{$tag})) {
            s/^\@$tag\s+//;
            if ($tag =~ /x$/) {
@@ -742,9 +3430,9 @@ while ($_ = &next_line) {
            $type = shift(@args);
            $type =~ s/^\{(.*)\}$/$1/;
            print "# def ($tag): {$type} ", join(', ', @args), "\n"
-               if $debug & $DEBUG_DEF;
+               if $T2H_DEBUG & $DEBUG_DEF;
            $type .= ':'; # it's nicer like this
-           $name = shift(@args);
+           my $name = shift(@args);
            $name =~ s/^\{(.*)\}$/$1/;
            if ($is_extra) {
                $_ = &debug("<DT>", __LINE__);
@@ -769,13 +3457,17 @@ while ($_ = &next_line) {
            $_ .= &debug("\n<DD>", __LINE__);
            $name = &unprotect_html($name);
            if ($tag eq 'deffn' || $tag eq 'deftypefn') {
-               unshift(@input_spool, "\@findex $name\n");
+             EnterIndexEntry('f', $name, $docu_doc, $section, \@lines);
+#              unshift(@input_spool, "\@findex $name\n");
            } elsif ($tag eq 'defop') {
-               unshift(@input_spool, "\@findex $name on $ftype\n");
+             EnterIndexEntry('f', "$name on $ftype", $docu_doc, $section, \@lines);
+#              unshift(@input_spool, "\@findex $name on $ftype\n");
            } elsif ($tag eq 'defvr' || $tag eq 'deftypevr' || $tag eq 'defcv') {
-               unshift(@input_spool, "\@vindex $name\n");
+             EnterIndexEntry('v', $name, $docu_doc, $section, \@lines);
+#              unshift(@input_spool, "\@vindex $name\n");
            } else {
-               unshift(@input_spool, "\@tindex $name\n");
+             EnterIndexEntry('t', $name, $docu_doc, $section, \@lines);
+#              unshift(@input_spool, "\@tindex $name\n");
            }
            $dont_html = 1;
        }
@@ -783,15 +3475,28 @@ while ($_ = &next_line) {
        if ($format_map{$end_tag}) {
            $in_pre = 0 if $format_map{$end_tag} eq 'PRE';
            $in_list-- if $format_map{$end_tag} eq 'UL' || $format_map{$end_tag} eq 'OL' ;
-           &html_pop_if('LI', 'P');
+           &html_pop_if('P');
+           &html_pop_if('LI');
            &html_pop_if();
            push(@lines, &debug("</$format_map{$end_tag}>\n", __LINE__));
-           push(@lines, &html_debug("\n", __LINE__));
+           push(@lines, &html_debug('', __LINE__));
+       }
+       elsif (exists $complex_format_map->{$end_tag})
+       {
+         my $end = eval $complex_format_map->{$end_tag}->[1];
+         if ($@)
+         {
+           print "$ERROR: eval of complex_format_map->{$end_tag}->[1] $complex_format_map->{$end_tag}->[0]: $@";
+           $end = '</pre>'
+         }
+         $in_pre = 0 if $end =~ m|</pre>|;
+         push(@lines, html_debug($end, __LINE__));
        } elsif ($end_tag =~ /^(|f|v|multi)table$/) {
            unless (@tables) {
                warn "$ERROR \@end $end_tag without \@*table\n";
                next;
            }
+           &html_pop_if('P');
            ($table_type, $in_table) = split($;, shift(@tables));
            unless ($1 eq $table_type) {
                warn "$ERROR \@end $end_tag without matching \@$end_tag\n";
@@ -815,103 +3520,154 @@ while ($_ = &next_line) {
        } elsif ($end_tag eq 'menu') {
            &html_pop_if();
            push(@lines, $_); # must keep it for pass 2
-       }
+       } 
        next;
     }
-    #
-    # misc things
+    #############################################################
+    # anchor insertion
+    while (/\@anchor\s*\{(.*?)\}/)
+    {
+      $_ = $`.$';
+      my $anchor = $1;
+      $anchor = &normalise_node($anchor);
+      push @lines, &html_debug("<A NAME=\"$anchor\"></A>\n");
+      $node2href{$anchor} = "$docu_doc#$anchor";
+      next INPUT_LINE if $_ =~ /^\s*$/;
+    }
+
+    #############################################################
+    # index entry generation, after value substitutions
+    if (/^\@(\w+?)index\s+/)
+    {
+      EnterIndexEntry($1, $', $docu_doc, $section, \@lines);
+      next;
+    }
     #
     # protect texi and HTML things
     &protect_texi;
     $_ = &protect_html($_) unless $dont_html;
     $dont_html = 0;
     # substitution (unsupported things)
-    s/^\@center\s+//g;
     s/^\@exdent\s+//g;
     s/\@noindent\s+//g;
     s/\@refill\s+//g;
     # other substitutions
     &simple_substitutions;
-    s/\@value{($VARRE)}/$value{$1}/eg;
     s/\@footnote\{/\@footnote$docu_doc\{/g; # mark footnotes, cf. pass 4
     #
     # analyze the tag again
     #
     if ($tag) {
-       if (defined($sec2level{$tag}) && $sec2level{$tag} > 0) {
+      if (defined($sec2level{$tag}) && $sec2level{$tag} > 0) {
            if (/^\@$tag\s+(.+)$/) {
                $name = $1;
-               $name =~ s/\s+$//;
+               $name = &normalise_node($name);
                $level = $sec2level{$tag};
-               $name = &update_sec_num($tag, $level) . "  $name"
-                   if $number_sections && $tag !~ /^unnumbered/;
-               if ($tag =~ /heading$/) {
-                   push(@lines, &html_debug("\n", __LINE__));
-                   if ($html_element ne 'body') {
-                       # We are in a nice pickle here. We are trying to get a H? heading
-                       # even though we are not in the body level. So, we convert it to a
-                       # nice, bold, line by itself.
-                       $_ = &debug("\n\n<P><STRONG>$name</STRONG></P>\n\n", __LINE__);
-                   } else {
-                       $_ = &debug("<H$level>$name</H$level>\n", __LINE__);
-                       &html_push_if('body');
+               # check for index
+               $first_index_chapter = $name
+                 if ($level == 1 && !$first_index_chapter && 
+                     $name =~ /index/i);
+               if ($in_top && /heading/){
+                   $T2H_HAS_TOP_HEADING = 1;
+                    $_ = &debug("<H$level>$name</H$level>\n", __LINE__);
+                   &html_push_if('body');
+                   print "# top heading, section $name, level $level\n"
+                       if $T2H_DEBUG & $DEBUG_TOC;
+               }
+               else
+               {
+                 unless (/^\@\w*heading/)
+                 {
+                   unless (/^\@unnumbered/)
+                   {
+                     my $number = &update_sec_num($tag, $level);
+                     $name = $number. ' ' . $name if $T2H_NUMBER_SECTIONS;
+                     $sec2number{$name} = $number;
+                     $number2sec{$number} = $name;
                    }
-                   print "# heading, section $name, level $level\n"
-                       if $debug & $DEBUG_TOC;
-               } else {
-                   if ($split_chapter) {
-                       unless ($toplevel) {
-                           # first time we see a "section"
-                           unless ($level == 1) {
-                               warn "$ERROR The first section found is not of level 1: $_";
-                               warn "$ERROR I'll split on sections of level $level...\n";
-                           }
-                           $toplevel = $level;
-                       }
-                       if ($level == $toplevel) {
-                           &next_doc;
-                           push(@lines, $SPLITTAG) if $split_num++;
-                           push(@sections, $name);
-                       }
+                   if (defined($toplevel))
+                   {
+                     push @lines, ($level==$toplevel ? $CHAPTEREND : $SECTIONEND);
                    }
-                   $sec_num++;
-                   $docid = "SEC$sec_num";
-                   $tocid = "TOC$sec_num";
-                   # check biblio and glossary
-                   $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i);
-                   $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i);
-                   # check node
-                   if ($node) {
-                       if ($node2sec{$node}) {
-                           warn "$ERROR Duplicate node found: $node\n";
-                       } else {
-                           $node2sec{$node} = $name;
-                           $node2href{$node} = "$docu_doc#$docid";
-                           print "# node $node, section $name, level $level\n"
-                               if $debug & $DEBUG_TOC;
-                       }
-                       $node = '';
-                   } else {
-                       print "# no node, section $name, level $level\n"
-                           if $debug & $DEBUG_TOC;
+                   else
+                   {
+                     # first time we see a "section"
+                     unless ($level == 1) 
+                     {
+                       warn "$WARN The first section found is not of level 1: $_";
+                     }
+                     $toplevel = $level;
                    }
+                   push(@sections, $name);
+                   next_doc() if ($T2H_SPLIT eq 'section' ||
+                                  $T2H_SPLIT && $level == $toplevel);
+                 }
+                 $sec_num++;
+                 $docid = "SEC$sec_num";
+                 $tocid = (/^\@\w*heading/ ? undef : "TOC$sec_num");
+                 # check biblio and glossary
+                 $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i);
+                 $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i);
+                 # check node
+                 if ($node)
+                 {
+                   warn "$ERROR Duplicate node found: $node\n"
+                     if ($node2sec{$node});
+                 }
+                 else
+                 {
+                   $name .= ' ' while ($node2sec{$name});
+                   $node = $name;
+                 }
+                 $name .= ' ' while ($sec2node{$name});
+                 $section = $name; 
+                 $node2sec{$node} = $name;
+                 $sec2node{$name} = $node;
+                 $node2href{$node} = "$docu_doc#$docid";
+                 $node2next{$node} = $node_next;
+                 $node2prev{$node} = $node_prev;
+                 $node2up{$node} = $node_up;
+                 print "# node $node, section $name, level $level\n"
+                   if $T2H_DEBUG & $DEBUG_TOC;
+
+                 $node = '';
+                 $node_next = '';
+                 $node_prev = '';
+                 $node_next = '';
+                 if ($tocid)
+                 {
                    # update TOC
                    while ($level > $curlevel) {
-                       $curlevel++;
-                       push(@toc_lines, "<UL>\n");
+                     $curlevel++;
+                     push(@toc_lines, "<UL>\n");
                    }
                    while ($level < $curlevel) {
-                       $curlevel--;
-                       push(@toc_lines, "</UL>\n");
+                     $curlevel--;
+                     push(@toc_lines, "</UL>\n");
                    }
-                   $_ = "<LI>" . &anchor($tocid, "$docu_doc#$docid", $name, 1);
-                   push(@toc_lines, &substitute_style($_));
-                   # update DOC
-                   push(@lines, &html_debug("\n", __LINE__));
-                   &html_reset;
-                   $_ =  "<H$level>".&anchor($docid, "$docu_toc#$tocid", $name)."</H$level>\n";
-                   $_ = &debug($_, __LINE__);
-                   push(@lines, &html_debug("\n", __LINE__));
+                   $_ = &t2h_anchor($tocid, "$docu_doc#$docid", $name, 1);
+                   $_ = &substitute_style($_);
+                   push(@stoc_lines, "$_<BR>\n") if ($level == 1);
+                   if ($T2H_NUMBER_SECTIONS)
+                   {
+                     push(@toc_lines, $_ . "<BR>\n")
+                   }
+                   else
+                   {
+                     push(@toc_lines, "<LI>" . $_ ."</LI>");
+                   }
+                 }
+                 else
+                 {
+                   push(@lines, &html_debug("<A NAME=\"$docid\"></A>\n", 
+                                          __LINE__));
+                 }
+                 # update DOC
+                 push(@lines, &html_debug('', __LINE__));
+                 &html_reset;
+                 $_ =  "<H$level> $name </H$level>\n<!--docid::${docid}::-->\n";
+                 $_ = &debug($_, __LINE__);
+                 push(@lines, &html_debug('', __LINE__));
                }
                # update DOC
                foreach $line (split(/\n+/, $_)) {
@@ -923,59 +3679,18 @@ while ($_ = &next_line) {
            }
        } else {
            # track variables
-           $value{$1} = $2, next if /^\@set\s+($VARRE)\s+(.*)$/o;
+           $value{$1} = Unprotect_texi($2), next if /^\@set\s+($VARRE)\s+(.*)$/o;
            delete $value{$1}, next if /^\@clear\s+($VARRE)\s*$/o;
            # store things
-           $value{'_setfilename'}   = $1, next if /^\@setfilename\s+(.*)$/;
-           $value{'_settitle'}      = $1, next if /^\@settitle\s+(.*)$/;
-           $value{'_author'}   .= "$1\n", next if /^\@author\s+(.*)$/;
-           $value{'_subtitle'} .= "$1\n", next if /^\@subtitle\s+(.*)$/;
-           $value{'_title'}    .= "$1\n", next if /^\@title\s+(.*)$/;
-           # index
-           if (/^\@(..?)index\s+/) {
-               unless ($valid_index{$1}) {
-                   warn "$ERROR Undefined index command: $_";
-                   next;
-               }
-               $id = 'IDX' . ++$idx_num;
-               $index = $1 . 'index';
-               $what = &substitute_style($');
-               $what =~ s/\s+$//;
-               print "# found $index for '$what' id $id\n"
-                   if $debug & $DEBUG_INDEX;
-               eval(<<EOC);
-               if (defined(\$$index\{\$what\})) {
-                   \$$index\{\$what\} .= "$;$docu_doc#$id";
-               } else {
-                   \$$index\{\$what\} = "$docu_doc#$id";
-               }
-EOC
-               #
-               # dirty hack to see if I can put an invisible anchor...
-               #
-               if ($html_element eq 'P' ||
-                   $html_element eq 'LI' ||
-                   $html_element eq 'DT' ||
-                   $html_element eq 'DD' ||
-                   $html_element eq 'ADDRESS' ||
-                   $html_element eq 'B' ||
-                   $html_element eq 'BLOCKQUOTE' ||
-                   $html_element eq 'PRE' ||
-                   $html_element eq 'SAMP') {
-                    push(@lines, &anchor($id, '', $invisible_mark, !$in_pre));
-                } elsif ($html_element eq 'body') {
-                   push(@lines, &debug("<P>\n", __LINE__));
-                    push(@lines, &anchor($id, '', $invisible_mark, !$in_pre));
-                   &html_push('P');
-               } elsif ($html_element eq 'DL' ||
-                        $html_element eq 'UL' ||
-                        $html_element eq 'OL' ) {
-                   $deferred_ref .= &anchor($id, '', $invisible_mark, !$in_pre) . " ";
-               }
-               next;
-           }
+           $value{'_shorttitle'} = Unprotect_texi($1), next if /^\@shorttitle\s+(.*)$/;
+           $value{'_setfilename'}   = Unprotect_texi($1), next if /^\@setfilename\s+(.*)$/;
+           $value{'_settitle'}      = Unprotect_texi($1), next if /^\@settitle\s+(.*)$/;
+           $value{'_author'}   .= Unprotect_texi($1)."\n", next if /^\@author\s+(.*)$/;
+           $value{'_subtitle'} .= Unprotect_texi($1)."\n", next if /^\@subtitle\s+(.*)$/;
+           $value{'_title'}    .= Unprotect_texi($1)."\n", next if /^\@title\s+(.*)$/;
+
            # list item
-           if (/^\@itemx?\s+/) {
+           if (/^\s*\@itemx?\s+/) {
                $what = $';
                $what =~ s/\s+$//;
                if ($in_bibliography && $use_bibliography) {
@@ -983,17 +3698,21 @@ EOC
                        $id = 'BIB' . ++$bib_num;
                        $bib2href{$what} = "$docu_doc#$id";
                        print "# found bibliography for '$what' id $id\n"
-                           if $debug & $DEBUG_BIB;
-                       $what = &anchor($id, '', $what);
+                           if $T2H_DEBUG & $DEBUG_BIB;
+                       $what = &t2h_anchor($id, '', $what);
                    }
-               } elsif ($in_glossary && $use_glossary) {
+               } elsif ($in_glossary && $T2H_USE_GLOSSARY) {
                    $id = 'GLOSS' . ++$gloss_num;
                    $entry = $what;
                    $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/;
                    $gloss2href{$entry} = "$docu_doc#$id";
                    print "# found glossary for '$entry' id $id\n"
-                       if $debug & $DEBUG_GLOSS;
-                   $what = &anchor($id, '', $what);
+                       if $T2H_DEBUG & $DEBUG_GLOSS;
+                   $what = &t2h_anchor($id, '', $what);
+               }
+               elsif ($in_table && ($table_type eq 'f' || $table_type eq 'v'))
+               {
+                 EnterIndexEntry($table_type, $what, $docu_doc, $section, \@lines);
                }
                &html_pop_if('P');
                if ($html_element eq 'DL' || $html_element eq 'DD') {
@@ -1018,7 +3737,7 @@ EOC
                    push(@lines, &debug("<LI>$what\n", __LINE__));
                    &html_push('LI') unless $html_element eq 'LI';
                }
-               push(@lines, &html_debug("\n", __LINE__));
+               push(@lines, &html_debug('', __LINE__));
                if ($deferred_ref) {
                    push(@lines, &debug("$deferred_ref\n", __LINE__));
                    $deferred_ref = '';
@@ -1031,20 +3750,25 @@ EOC
        }
     }
     # paragraph separator
-    if ($_ eq "\n") {
+    if ($_ eq "\n" && ! $in_pre) {
        next if $#lines >= 0 && $lines[$#lines] eq "\n";
        if ($html_element eq 'P') {
-           push(@lines, "\n");
-           $_ = &debug("</P>\n", __LINE__);
-           &html_pop;
+           push (@lines, &debug("</P><P>\n", __LINE__));
        }
-    } elsif ($html_element eq 'body' || $html_element eq 'BLOCKQUOTE') {
-       push(@lines, "<P>\n");
-       &html_push('P');
-       $_ = &debug($_, __LINE__);
-    }
+#      else
+#      {
+#        push(@lines, "<P></P>\n");
+#        $_ = &debug("<P></P>\n", __LINE__);
+#      }
+        elsif ($html_element eq 'body' || $html_element eq 'BLOCKQUOTE' || $html_element eq 'DD' || $html_element eq 'LI') 
+       {
+         &html_push('P');
+         push(@lines, &debug("<P>\n", __LINE__));
+       }
+      }
     # otherwise
-    push(@lines, $_);
+    push(@lines, $_) unless $in_titlepage;
+    push(@lines, &debug("</center>\n", __LINE__))  if ($tag eq 'center');
 }
 
 # finish TOC
@@ -1054,7 +3778,327 @@ while ($level < $curlevel) {
     push(@toc_lines, "</UL>\n");
 }
 
-print "# end of pass 1\n" if $verbose;
+print "# end of pass 1\n" if $T2H_VERBOSE;
+
+SetDocumentLanguage('en') unless ($T2H_LANG);
+#+++############################################################################
+#                                                                              #
+# Stuff related to Index generation                                            #
+#                                                                              #
+#---############################################################################
+
+sub EnterIndexEntry
+{
+  my $prefix = shift;
+  my $key = shift;
+  my $docu_doc = shift;
+  my $section = shift;
+  my $lines = shift;
+  local $_;
+
+  warn "$ERROR Undefined index command: $_", next
+    unless (exists ($index_properties->{$prefix}));
+  $key =~ s/\s+$//;
+  $_ = $key;
+  &protect_texi;
+  $key = $_;
+  $_ = &protect_html($_);
+  my $html_key = substitute_style($_);
+  my $id;
+  $key = remove_style($key);
+  $key = remove_things($key);
+  $_ = $key;
+  &unprotect_texi;
+  $key = $_;
+  while (exists $index->{$prefix}->{$key}) {$key .= ' '};
+  if ($lines->[$#lines] =~ /^<!--docid::(.+)::-->$/)
+  {
+    $id = $1;
+  }
+  else
+  {
+    $id = 'IDX' . ++$idx_num;
+    push(@$lines, &t2h_anchor($id, '', $T2H_INVISIBLE_MARK, !$in_pre));
+  }
+  $index->{$prefix}->{$key}->{html_key} = $html_key;
+  $index->{$prefix}->{$key}->{section} = $section;
+  $index->{$prefix}->{$key}->{href} = "$docu_doc#$id";
+  print "# found ${prefix}index  for '$key' with id $id\n"
+    if $T2H_DEBUG & $DEBUG_INDEX;
+}
+
+sub IndexName2Prefix
+{
+  my $name = shift;
+  my $prefix;
+
+  for $prefix (keys %$index_properties)
+  {
+    return $prefix if ($index_properties->{$prefix}->{name} eq $name);
+  }
+  return undef;
+}
+
+sub GetIndexEntries
+{
+  my $normal = shift;
+  my $code = shift;
+  my ($entries, $prefix, $key) = ({});
+  
+  for $prefix (keys %$normal)
+  {
+    for $key (keys %{$index->{$prefix}})
+    {
+      $entries->{$key} = {%{$index->{$prefix}->{$key}}};
+    }
+  }
+
+  if (defined($code))
+  {
+    for $prefix (keys %$code)
+    {
+      unless (exists $normal->{$keys})
+      {
+       for $key (keys %{$index->{$prefix}})
+       {
+         $entries->{$key} = {%{$index->{$prefix}->{$key}}};
+         $entries->{$key}->{html_key} = "<CODE>$entries->{$key}->{html_key}</CODE>";
+       }
+      }
+    }
+  }
+  return $entries;
+}
+
+sub byAlpha
+{
+  if ($a =~ /^[A-Za-z]/)
+  {
+    if ($b =~ /^[A-Za-z]/)
+    {
+      return lc($a) cmp lc($b);
+    }
+    else
+    {
+      return 1;
+    }
+  }
+  elsif ($b =~ /^[A-Za-z]/)
+  {
+    return -1;
+  }
+  else
+  {
+    return lc($a) cmp lc($b);
+  } 
+}
+
+sub GetIndexPages
+{
+  my $entries = shift;
+  my (@Letters, $key);
+  my ($EntriesByLetter, $Pages, $page) = ({}, [], {});
+  my @keys = sort byAlpha keys %$entries;
+
+  for $key (@keys)
+  {
+    push @{$EntriesByLetter->{uc(substr($key,0, 1))}} , $entries->{$key};
+  }
+  @Letters = sort byAlpha keys %$EntriesByLetter;
+  
+  $T2H_SPLIT_INDEX = 0 unless ($T2H_SPLIT);
+
+  unless ($T2H_SPLIT_INDEX)
+  {
+    $page->{First} = $Letters[0];
+    $page->{Last} = $Letters[$#Letters];
+    $page->{Letters} = \@Letters;
+    $page->{EntriesByLetter} = $EntriesByLetter;
+    push @$Pages, $page;
+    return $Pages;
+  }
+
+  if ($T2H_SPLIT_INDEX =~ /^\d+$/)
+  {
+    my $i = 0;
+    my ($prev_letter, $letter);
+    $page->{First} = $Letters[0];
+    for $letter (@Letters)
+    {
+      if ($i > $T2H_SPLIT_INDEX)
+      {
+       $page->{Last} = $prev_letter;
+       push @$Pages, {%$page};
+       $page->{Letters} = [];
+       $page->{EntriesByLetter} = {};
+       $page->{First} = $letter;
+       $i=0;
+      }
+      push @{$page->{Letters}}, $letter;
+      $page->{EntriesByLetter}->{$letter} = [@{$EntriesByLetter->{$letter}}];
+      $i += scalar(@{$EntriesByLetter->{$letter}});
+      $prev_letter = $letter;
+    }
+    $page->{Last} = $Letters[$#Letters];
+    push @$Pages, {%$page};
+  }
+  return $Pages;
+}
+
+sub GetIndexSummary
+{
+  my $first_page = shift;
+  my $Pages = shift;
+  my $name = shift;
+  my ($page, $letter, $summary, $i, $l1, $l2, $l);
+
+  $i = 0;
+  $summary = '<table><tr><th valign=top>Jump to: &nbsp; </th><td>';
+  
+  for $page ($first_page, @$Pages)
+  {
+    for $letter (@{$page->{Letters}})
+    {
+      $l = t2h_anchor('', "$page->{href}#${name}_$letter", "<b>$letter</b>", 
+                     0, 'style="text-decoration:none"') . "\n &nbsp; \n";
+      
+      if ($letter =~ /^[A-Za-z]/)
+      {
+       $l2 .= $l;
+      }
+      else
+      {
+       $l1 .= $l;
+      }
+    }
+  }
+  $summary .= $l1 . "<BR>\n" if ($l1);
+  $summary .= $l2 . '</td></tr></table><br>';
+  return $summary;
+}
+
+sub PrintIndexPage
+{
+  my $lines = shift;
+  my $summary = shift;
+  my $page = shift;
+  my $name = shift;
+
+  push @$lines, $summary;
+
+  push @$lines , <<EOT;
+<P></P>
+<TABLE border=0>
+<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+EOT
+
+  for $letter (@{$page->{Letters}})
+  {
+    push @$lines, "<TR><TH><A NAME=\"${name}_$letter\"></A>$letter</TH><TD></TD><TD></TD></TR>\n";
+    for $entry (@{$page->{EntriesByLetter}->{$letter}})
+    {
+      push @$lines, 
+      "<TR><TD></TD><TD valign=top>" . 
+       t2h_anchor('', $entry->{href}, $entry->{html_key}) .
+         "</TD><TD valign=top>" . 
+           t2h_anchor('', sec_href($entry->{section}), clean_name($entry->{section})) .
+             "</TD></TR>\n";
+    }
+    push @$lines, "<TR><TD COLSPAN=3> <HR></TD></TR>\n";
+  }
+  push @$lines, "</TABLE><P></P>";
+  push @$lines, $summary;
+}
+
+sub PrintIndex
+{
+  my $lines = shift;
+  my $name = shift;
+  my $section = shift;
+  $section = 'Top' unless $section;
+  my $prefix = IndexName2Prefix($name);
+
+  warn ("$ERROR printindex: bad index name: $name"), return 
+    unless $prefix;
+
+  if ($index_properties->{$prefix}->{code})
+  {
+    $index_properties->{$prefix}->{from_code}->{$prefix} = 1;
+  }
+  else
+  {
+    $index_properties->{$prefix}->{from}->{$prefix}= 1;
+  }
+
+  my $Entries = GetIndexEntries($index_properties->{$prefix}->{from}, 
+                               $index_properties->{$prefix}->{from_code});
+  return unless %$Entries;
+
+  if ($T2H_IDX_SUMMARY)
+  {
+    my $key;
+    open(FHIDX, ">$docu_rdir$docu_name" . "_$name.idx")
+      || die "Can't open > $docu_rdir$docu_name" . "_$name.idx for writing: $!\n";
+    print "# writing $name index summary in $docu_rdir$docu_name" . "_$name.idx...\n" if $T2H_VERBOSE;
+
+    for $key (sort keys %$Entries)
+    {
+      print FHIDX "$key\t$Entries->{$key}->{href}\n";
+    }
+  }
+
+  my $Pages = GetIndexPages($Entries);
+  my $page;
+  my $first_page = shift @$Pages;
+  my $sec_name = $section;
+  # remove section number
+  $sec_name =~ s/.*? // if $sec_name =~ /^([A-Z]|\d+)\./;
+
+  ($first_page->{href} = sec_href($section)) =~ s/\#.*$//;
+  # Update tree structure of document
+  if (@$Pages)
+  {
+    my $sec;
+    my @after;
+
+    while (@sections && $sections[$#sections] ne $section)
+    {
+      unshift @after, pop @sections;
+    }
+
+    for $page (@$Pages)
+    {
+      my $node = ($page->{First} ne $page->{Last} ? 
+                 "$sec_name: $page->{First} -- $page->{Last}" :
+                 "$sec_name: $page->{First}");
+      push @sections, $node;
+      $node2sec{$node} = $node;
+      $sec2node{$node} = $node;
+      $node2up{$node} = $section;
+      $page->{href} = next_doc();
+      $page->{name} = $node;
+      $node2href{$node} = $page->{href};
+      if ($prev_node)
+      {
+       $node2next{$prev_node} = $node;
+       $node2prev{$node} = $prev_node;
+      }
+      $prev_node = $node;
+    }
+    push @sections, @after;
+  }
+
+  my $summary = GetIndexSummary($first_page, $Pages, $name);
+  PrintIndexPage($lines, $summary, $first_page, $name);
+  for $page (@$Pages)
+  {
+    push @$lines, ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND);
+    push @$lines, "<H2 ALIGN=\"Left\">$page->{name}</H2>\n";
+    PrintIndexPage($lines, $summary, $page, $name);
+  }
+}
+
 
 #+++############################################################################
 #                                                                              #
@@ -1078,86 +4122,86 @@ while (@lines) {
     #
     # menu
     #
-    $in_menu = 1, push(@lines2, &debug("<UL>\n", __LINE__)), next if /^\@menu\b/;
-    $in_menu = 0, push(@lines2, &debug("</UL>\n", __LINE__)), next if /^\@end\s+menu\b/;
-    if ($in_menu) {
-       if (/^\*\s+($NODERE)::/o) {
-           $descr = $';
-           chop($descr);
-           &menu_entry($1, $1, $descr);
-       } elsif (/^\*\s+(.+):\s+([^\t,\.\n]+)[\t,\.\n]/) {
-           $descr = $';
-           chop($descr);
-           &menu_entry($1, $2, $descr);
-       } elsif (/^\*/) {
-           warn "$ERROR Bad menu line: $_";
-       } else { # description continued?
-           push(@lines2, $_);
-       }
-       next;
+    if (/^\@menu\b/)
+    {
+      $in_menu = 1;
+      $in_menu_listing = 1;
+      push(@lines2, &debug("<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> \n", __LINE__));
+      next;
     }
-    #
-    # printindex
-    #
-    if (/^\@printindex\s+(\w\w)\b/) {
-       local($index, *ary, @keys, $key, $letter, $last_letter, @refs);
-       if ($predefined_index{$1}) {
-           $index = $predefined_index{$1} . 'index';
-       } else {
-           $index = $1 . 'index';
-       }
-       eval("*ary = *$index");
-       @keys = keys(%ary);
-       foreach $key (@keys) {
-           $_ = $key;
-           1 while s/<(\w+)>\`(.*)\'<\/\1>/$2/; # remove HTML tags with quotes
-           1 while s/<(\w+)>(.*)<\/\1>/$2/;     # remove HTML tags
-           $_ = &unprotect_html($_);
-           &unprotect_texi;
-           tr/A-Z/a-z/; # lowercase
-           $key2alpha{$key} = $_;
-           print "# index $key sorted as $_\n"
-               if $key ne $_ && $debug & $DEBUG_INDEX;
+    if (/^\@end\s+menu\b/)
+    {
+      if ($in_menu_listing)
+      {
+       push(@lines2, &debug("</TABLE></BLOCKQUOTE>\n", __LINE__));
+      }
+      else
+      {
+       push(@lines2, &debug("</BLOCKQUOTE>\n", __LINE__));
+      }
+      $in_menu = 0;
+      $in_menu_listing = 0;
+      next;
+    }
+    if ($in_menu) 
+    {
+      my ($node, $name, $descr);
+      if (/^\*\s+($NODERE)::/o)
+      {
+       $node = $1;
+       $descr = $';
+      }
+      elsif (/^\*\s+(.+):\s+([^\t,\.\n]+)[\t,\.\n]/)
+      {
+       $name = $1;
+       $node = $2;
+       $descr = $';
+      }
+      elsif (/^\*/) 
+      {
+       warn "$ERROR Bad menu line: $_";
+      }
+      else
+      {
+       if ($in_menu_listing)
+       {
+         $in_menu_listing = 0;
+         push(@lines2, &debug("</TABLE>\n", __LINE__));
        }
-       push(@lines2, "Jump to:\n");
-       $last_letter = undef;
-       foreach $key (sort byalpha @keys) {
-           $letter = substr($key2alpha{$key}, 0, 1);
-           $letter = substr($key2alpha{$key}, 0, 2) if $letter eq $;;
-           if (!defined($last_letter) || $letter ne $last_letter) {
-               push(@lines2, "-\n") if defined($last_letter);
-               push(@lines2, "<A HREF=\"#$index\_$letter\">" . &protect_html($letter) . "</A>\n");
-               $last_letter = $letter;
-           }
+       # should be like verbatim -- preseve spaces, etc
+       s/ /\&nbsp;/g;
+       $_ .= "<br>\n";
+       push(@lines2, $_);
+      }
+      if ($node)
+      {
+       if (! $in_menu_listing)
+       {
+         $in_menu_listing = 1;
+         push(@lines2, &debug("<TABLE BORDER=0 CELLSPACING=0>\n", __LINE__));
        }
-       push(@lines2, "<P>\n");
-       $last_letter = undef;
-       foreach $key (sort byalpha @keys) {
-           $letter = substr($key2alpha{$key}, 0, 1);
-           $letter = substr($key2alpha{$key}, 0, 2) if $letter eq $;;
-           if (!defined($last_letter) || $letter ne $last_letter) {
-               push(@lines2, "</DIR>\n") if defined($last_letter);
-               push(@lines2, "<H2><A NAME=\"$index\_$letter\">" . &protect_html($letter) . "</A></H2>\n");
-               push(@lines2, "<DIR>\n");
-               $last_letter = $letter;
-           }
-           @refs = ();
-           foreach (split(/$;/, $ary{$key})) {
-               push(@refs, &anchor('', $_, $key, 0));
-           }
-           push(@lines2, "<LI>" . join(", ", @refs) . "\n");
+       # look for continuation
+       while ($lines[0] =~ /^\s+\w+/)
+       {
+         $descr .= shift(@lines);
        }
-       push(@lines2, "</DIR>\n") if defined($last_letter);
-       next;
+       &menu_entry($node, $name, $descr);
+      } 
+      next;
     }
     #
+    # printindex
+    #
+    PrintIndex(\@lines2, $2, $1), next
+      if (/^<!--::(.*)::-->\@printindex\s+(\w+)/);
+    #
     # simple style substitutions
     #
     $_ = &substitute_style($_);
     #
     # xref
     #
-    while (/\@(x|px|info|)ref{($XREFRE)(}?)/o) {
+    while (/\@(x|px|info|)ref{([^{}]+)(}?)/) {
        # note: Texinfo may accept other characters
        ($type, $nodes, $full) = ($1, $2, $3);
        ($before, $after) = ($`, $');
@@ -1167,11 +4211,11 @@ while (@lines) {
            next; # while xref
        }
        if ($type eq 'x') {
-           $type = 'See ';
+           $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} ";
        } elsif ($type eq 'px') {
-           $type = 'see ';
+           $type = "$T2H_WORDS->{$T2H_LANG}->{'see'} ";
        } elsif ($type eq 'info') {
-           $type = 'See Info';
+           $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} Info";
        } else {
            $type = '';
        }
@@ -1201,24 +4245,50 @@ while (@lines) {
        $nodes =~ s/\s+/ /g; # remove useless spaces
        @args = split(/\s*,\s*/, $nodes);
        $node = $args[0]; # the node is always the first arg
-       &normalise_node($node);
-       $sec = $node2sec{$node};
+       $node = &normalise_node($node);
+       $sec = $args[2] || $args[1] || $node2sec{$node};
+       $href = $node2href{$node};
        if (@args == 5) { # reference to another manual
            $sec = $args[2] || $node;
            $man = $args[4] || $args[3];
-           $_ = "${before}${type}section `$sec' in \@cite{$man}$after";
+           $_ = "${before}${type}$T2H_WORDS->{$T2H_LANG}->{'section'} `$sec' in \@cite{$man}$after";
        } elsif ($type =~ /Info/) { # inforef
            warn "$ERROR Wrong number of arguments: $_" unless @args == 3;
            ($nn, $_, $in) = @args;
            $_ = "${before}${type} file `$in', node `$nn'$after";
-       } elsif ($sec) {
-           $href = $node2href{$node};
-           $_ = "${before}${type}section " . &anchor('', $href, $sec) . $after;
-       } else {
+       } elsif ($sec && $href && ! $T2H_SHORT_REF) {
+           $_  = "${before}${type}";
+           $_ .= "$T2H_WORDS->{$T2H_LANG}->{'section'} " if ${type};
+           $_ .= &t2h_anchor('', $href, $sec) . $after;
+       } 
+       elsif ($href)
+       {
+         $_ = "${before}${type} " . 
+           &t2h_anchor('', $href, $args[2] || $args[1] || $node) . 
+             $after;
+       }
+       else {
            warn "$ERROR Undefined node ($node): $_";
            $_ = "$before$;0xref{$nodes}$after";
        }
     }
+
+    # replace images
+    s[\@image\s*{(.+?)}]
+    {
+     my @args = split (/\s*,\s*/, $1);
+     my $base = $args[0];
+     my $image = 
+       LocateIncludeFile("$base.png") || 
+       LocateIncludeFile("$base.jpg") ||
+       LocateIncludeFile("$base.gif");
+     warn "$ERROR no image file for $base: $_" unless ($image && -e $image);
+     "<IMG SRC=\"$image\" ALT=\"$base\">";
+     ($T2H_CENTER_IMAGE ?
+      "<CENTER><IMG SRC=\"$image\" ALT=\"$base\"></CENTER>" :
+      "<IMG SRC=\"$image\" ALT=\"$base\">");
+    }eg;
+
     #
     # try to guess bibliography references or glossary terms
     #
@@ -1229,7 +4299,7 @@ while (@lines) {
                ($pre, $what, $post) = ($`, $&, $');
                $href = $bib2href{$what};
                if (defined($href) && $post !~ /^[^<]*<\/A>/) {
-                   $done .= $pre . &anchor('', $href, $what);
+                   $done .= $pre . &t2h_anchor('', $href, $what);
                } else {
                    $done .= "$pre$what";
                }
@@ -1237,7 +4307,7 @@ while (@lines) {
            }
            $_ = $done . $_;
        }
-       if ($use_glossary) {
+       if ($T2H_USE_GLOSSARY) {
            $done = '';
            while (/\b\w+\b/) {
                ($pre, $what, $post) = ($`, $&, $');
@@ -1245,7 +4315,7 @@ while (@lines) {
                $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/;
                $href = $gloss2href{$entry};
                if (defined($href) && $post !~ /^[^<]*<\/A>/) {
-                   $done .= $pre . &anchor('', $href, $what);
+                   $done .= $pre . &t2h_anchor('', $href, $what);
                } else {
                    $done .= "$pre$what";
                }
@@ -1257,7 +4327,7 @@ while (@lines) {
     # otherwise
     push(@lines2, $_);
 }
-print "# end of pass 2\n" if $verbose;
+print "# end of pass 2\n" if $T2H_VERBOSE;
 
 #
 # split style substitutions
@@ -1307,8 +4377,8 @@ while (@lines2) {
     # otherwise
     push(@lines3, $_);
 }
-print "# end of pass 3\n" if $verbose;
-
+print "# end of pass 3\n" if $T2H_VERBOSE;
+       
 #+++############################################################################
 #                                                                              #
 # Pass 4: foot notes, final cleanup                                            #
@@ -1318,7 +4388,7 @@ print "# end of pass 3\n" if $verbose;
 @foot_lines = ();                      # footnotes
 @doc_lines = ();                       # final document
 $end_of_para = 0;                      # true if last line is <P>
-
+       
 while (@lines3) {
     $_ = shift(@lines3);
     #
@@ -1356,10 +4426,10 @@ while (@lines3) {
            $docid  = "DOCF$foot_num";
            $footid = "FOOT$foot_num";
            $foot = "($foot_num)";
-           push(@foot_lines, "<H3>" . &anchor($footid, "$d#$docid", $foot) . "</H3>\n");
+           push(@foot_lines, "<H3>" . &t2h_anchor($footid, "$d#$docid", $foot) . "</H3>\n");
            $text = "<P>$text" unless $text =~ /^\s*<P>/;
            push(@foot_lines, "$text\n");
-           $_ = $before . &anchor($docid, "$docu_foot#$footid", $foot) . $after;
+           $_ = $before . &t2h_anchor($docid, "$docu_foot#$footid", $foot) . $after;
        }
     }
     #
@@ -1373,7 +4443,8 @@ while (@lines3) {
     # otherwise
     push(@doc_lines, $_);
 }
-print "# end of pass 4\n" if $verbose;
+       
+print "# end of pass 4\n" if $T2H_VERBOSE;
 
 #+++############################################################################
 #                                                                              #
@@ -1381,126 +4452,377 @@ print "# end of pass 4\n" if $verbose;
 #                                                                              #
 #---############################################################################
 
-$header = <<EOT;
-<!-- This HTML file has been created by $THISPROG
-     from $docu on $TODAY -->
-EOT
+$T2H_L2H = &l2h_FinishToLatex if ($T2H_L2H);
+$T2H_L2H = &l2h_ToHtml        if ($T2H_L2H);
+$T2H_L2H = &l2h_InitFromHtml  if ($T2H_L2H);
+
+# fix node2up, node2prev, node2next, if desired
+if ($has_top_command)
+{
+  for $section (keys %sec2number)
+  {
+    $node = $sec2node{$section};
+    $node2up{$node} = Sec2UpNode($section) unless $node2up{$node};
+    $node2prev{$node} = Sec2PrevNode($section) unless $node2prev{$node};
+    $node2next{$node} = Sec2NextNode($section) unless $node2next{$node};
+  }
+}
+
+# prepare %T2H_THISDOC
+$T2H_THISDOC{fulltitle} = $value{'_title'} || $value{'_settitle'} || "Untitled Document";
+$T2H_THISDOC{title} = $value{'_settitle'} || $T2H_THISDOC{fulltitle};
+$T2H_THISDOC{author} = $value{'_author'};
+$T2H_THISDOC{subtitle} = $value{'_subtitle'};
+$T2H_THISDOC{shorttitle} = $value{'_shorttitle'};
+for $key (keys %T2H_THISDOC)
+{
+  $_ = &substitute_style($T2H_THISDOC{$key});
+  &unprotect_texi;
+  s/\s*$//;
+  $T2H_THISDOC{$key} = $_;
+}
 
-$full_title = $value{'_title'} || $value{'_settitle'} || "Untitled Document";
-$title = $value{'_settitle'} || $full_title;
-$_ = &substitute_style($full_title);
-&unprotect_texi;
-s/\n$//; # rmv last \n (if any)
-$full_title = "<H1>" . join("</H1>\n<H1>", split(/\n/, $_)) . "</H1>\n";
+# if no sections, then simply print document as is
+unless (@sections)
+{
+  print "# Writing content into $docu_top_file \n" if $T2H_VERBOSE;
+  open(FILE, "> $docu_top_file") 
+    || die "$ERROR: Can't open $docu_top_file for writing: $!\n";
 
+  &$T2H_print_page_head(\*FILE);
+  $T2H_THIS_SECTION = \@doc_lines;
+  t2h_print_lines(\*FILE);
+  &$T2H_print_foot_navigation(\*FILE);
+  &$T2H_print_page_foot(\*FILE);
+  close(FILE);
+  goto Finish;
+}
+
+# initialize $T2H_HREF, $T2H_NAME
+%T2H_HREF = 
+  (
+   'First' ,   sec_href($sections[0]),
+   'Last',     sec_href($sections[$#sections]),
+   'About',     $docu_about. '#SEC_About',
+  );
+
+# prepare TOC, OVERVIEW, TOP
+$T2H_TOC = \@toc_lines;
+$T2H_OVERVIEW = \@stoc_lines;
+if ($has_top)
+{
+  while (1)
+  {
+    $_ = shift @doc_lines;
+    last if /$TOPEND/;
+    push @$T2H_TOP, $_;
+  }
+  $T2H_HREF{'Top'} = $docu_top . '#SEC_Top';
+}
+else
+{
+  $T2H_HREF{'Top'} = $T2H_HREF{First};
+}
+
+$node2href{Top} = $T2H_HREF{Top};
+$T2H_HREF{Contents} = $docu_toc.'#SEC_Contents' if @toc_lines;
+$T2H_HREF{Overview} = $docu_stoc.'#SEC_OVERVIEW' if @stoc_lines;
+
+# settle on index
+if ($T2H_INDEX_CHAPTER)
+{
+  $T2H_HREF{Index} = $node2href{normalise_node($T2H_INDEX_CHAPTER)};
+  warn "$ERROR T2H_INDEX_CHAPTER '$T2H_INDEX_CHAPTER' not found\n"
+    unless $T2H_HREF{Index};
+}
+if (! $T2H_HREF{Index} && $first_index_chapter)
+{
+  $T2H_INDEX_CHAPTER = $first_index_chapter;
+  $T2H_HREF{Index} = $node2href{$T2H_INDEX_CHAPTER};
+}
+
+print "# Using '" . clean_name($T2H_INDEX_CHAPTER) . "' as index page\n"
+  if ($T2H_VERBOSE && $T2H_HREF{Index});
+
+%T2H_NAME =
+  (
+   'First',   clean_name($sec2node{$sections[0]}),
+   'Last',    clean_name($sec2node{$sections[$#sections]}),
+   'About',    $T2H_WORDS->{$T2H_LANG}->{'About_Title'},
+   'Contents', $T2H_WORDS->{$T2H_LANG}->{'ToC_Title'},
+   'Overview', $T2H_WORDS->{$T2H_LANG}->{'Overview_Title'},
+   'Index' ,   clean_name($T2H_INDEX_CHAPTER),
+   'Top',      clean_name($T2H_TOP_HEADING || $T2H_THISDOC{'title'} || $T2H_THISDOC{'shorttitle'}),
+  );
+
+#############################################################################
+# print frame and frame toc file
 #
-# print ToC
-#
-if (!$monolithic && @toc_lines) {
-    if (open(FILE, "> $docu_toc")) {
-       print "# creating $docu_toc...\n" if $verbose;
-       &print_toplevel_header("$title - Table of Contents");
-       &print_ruler;
-       &print(*toc_lines, FILE);
-       &print_toplevel_footer;
-       close(FILE);
-    } else {
-       warn "$ERROR Can't write to $docu_toc: $!\n";
-    }
+if ( $T2H_FRAMES )
+{
+  open(FILE, "> $docu_frame_file") 
+    || die "$ERROR: Can't open $docu_frame_file for writing: $!\n";
+  print "# Creating frame in $docu_frame_file ...\n" if $T2H_VERBOSE;
+  &$T2H_print_frame(\*FILE);
+  close(FILE);
+
+  open(FILE, "> $docu_toc_frame_file") 
+    || die "$ERROR: Can't open $docu_toc_frame_file for writing: $!\n";
+  print "# Creating toc frame in $docu_frame_file ...\n" if $T2H_VERBOSE;
+   &$T2H_print_toc_frame(\*FILE);
+  close(FILE);
 }
 
+
+#############################################################################
+# print Top
 #
-# print footnotes
+open(FILE, "> $docu_top_file") 
+  || die "$ERROR: Can't open $docu_top_file for writing: $!\n";
+&$T2H_print_page_head(\*FILE) unless ($T2H_SPLIT);
+
+if ($has_top)
+{
+  print "# Creating Top in $docu_top_file ...\n" if $T2H_VERBOSE;
+  $T2H_THIS_SECTION = $T2H_TOP;
+  $T2H_HREF{This} = $T2H_HREF{Top};
+  $T2H_NAME{This} = $T2H_NAME{Top};
+  &$T2H_print_Top(\*FILE);
+}
+  
+close(FILE) if $T2H_SPLIT;
+
+#############################################################################
+# Print sections
 #
-if (!$monolithic && @foot_lines) {
-    if (open(FILE, "> $docu_foot")) {
-       print "# creating $docu_foot...\n" if $verbose;
-       &print_toplevel_header("$title - Footnotes");
-       &print_ruler;
-        &print(*foot_lines, FILE);
-       &print_toplevel_footer;
-       close(FILE);
-    } else {
-       warn "$ERROR Can't write to $docu_foot: $!\n";
-    }
-}
-
-#
-# print document
-#
-if ($split_chapter || $split_node) { # split
-    $doc_num = 0;
-    $last_num = scalar(@sections);
-    $first_doc = &doc_name(1);
-    $last_doc = &doc_name($last_num);
-    while (@sections) {
-       $section = shift(@sections);
-       &next_doc;
-       if (open(FILE, "> $docu_doc")) {
-           print "# creating $docu_doc...\n" if $verbose;
-           &print_header("$title - $section");
-           $prev_doc = ($doc_num == 1 ? undef : &doc_name($doc_num - 1));
-           $next_doc = ($doc_num == $last_num ? undef : &doc_name($doc_num + 1));
-           $navigation = "Go to the ";
-           $navigation .= ($prev_doc ? &anchor('', $first_doc, "first") : "first");
-           $navigation .= ", ";
-           $navigation .= ($prev_doc ? &anchor('', $prev_doc, "previous") : "previous");
-           $navigation .= ", ";
-           $navigation .= ($next_doc ? &anchor('', $next_doc, "next") : "next");
-           $navigation .= ", ";
-           $navigation .= ($next_doc ? &anchor('', $last_doc, "last") : "last");
-           $navigation .= " section, " . &anchor('', $docu_toc, "table of contents") . ".\n";
-           print FILE $navigation;
-           &print_ruler;
-           # find corresponding lines
-            @tmp_lines = ();
-            while (@doc_lines) {
-               $_ = shift(@doc_lines);
-               last if ($_ eq $SPLITTAG);
-               push(@tmp_lines, $_);
-           }
-            &print(*tmp_lines, FILE);
-           &print_ruler;
-           print FILE $navigation;
-           &print_footer;
-           close(FILE);
-       } else {
-           warn "$ERROR Can't write to $docu_doc: $!\n";
-       }
+$T2H_NODE{Forward} = $sec2node{$sections[0]};
+$T2H_NAME{Forward} = &clean_name($sec2node{$sections[0]});
+$T2H_HREF{Forward} = sec_href($sections[0]);
+$T2H_NODE{This} = 'Top';
+$T2H_NAME{This} = $T2H_NAME{Top};
+$T2H_HREF{This} = $T2H_HREF{Top};
+if ($T2H_SPLIT)
+{
+  print "# writing " . scalar(@sections) . 
+    " sections in $docu_rdir$docu_name"."_[1..$doc_num]"
+         if $T2H_VERBOSE;
+  $previous = ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND);
+  undef $FH;
+  $doc_num = 0;
+}
+else
+{
+  print "# writing " . scalar(@sections) . " sections in $docu_top_file ..." 
+    if $T2H_VERBOSE;
+  $FH = \*FILE;
+  $previous = '';
+}
+
+$counter = 0;
+# loop through sections
+while ($section = shift(@sections)) 
+{
+  if ($T2H_SPLIT && ($T2H_SPLIT eq 'section' || $previous eq $CHAPTEREND))
+  { 
+    if ($FH)
+    {
+      #close previous page
+      &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter';
+      &$T2H_print_page_foot($FH);
+      close($FH);
+      undef $FH;
     }
-} else { # not split
-    if (open(FILE, "> $docu_doc")) {
-       print "# creating $docu_doc...\n" if $verbose;
-       if ($monolithic || !@toc_lines) {
-           &print_toplevel_header($title);
-       } else {
-           &print_header($title);
-           print FILE $full_title;
-       }
-       if ($monolithic && @toc_lines) {
-           &print_ruler;
-           print FILE "<H1>Table of Contents</H1>\n";
-           &print(*toc_lines, FILE);
-       }
-       &print_ruler;
-        &print(*doc_lines, FILE);
-       if ($monolithic && @foot_lines) {
-           &print_ruler;
-           print FILE "<H1>Footnotes</H1>\n";
-           &print(*foot_lines, FILE);
-       }
-       if ($monolithic || !@toc_lines) {
-           &print_toplevel_footer;
-       } else {
-           &print_footer;
-       }
-       close(FILE);
-    } else {
-       warn "$ERROR Can't write to $docu_doc: $!\n";
+  }
+  $T2H_NAME{Back} = $T2H_NAME{This};
+  $T2H_HREF{Back} = $T2H_HREF{This};
+  $T2H_NODE{Back} = $T2H_NODE{This};
+  $T2H_NAME{This} = $T2H_NAME{Forward};
+  $T2H_HREF{This} = $T2H_HREF{Forward};
+  $T2H_NODE{This} = $T2H_NODE{Forward};
+  if ($sections[0])
+  {
+    $T2H_NODE{Forward} = $sec2node{$sections[0]};
+    $T2H_NAME{Forward} = &clean_name($T2H_NODE{Forward});
+    $T2H_HREF{Forward} = sec_href($sections[0]);
+  }
+  else
+  {
+    undef $T2H_HREF{Forward}, $T2H_NODE{Forward}, $T2H_NAME{Forward};
+  }
+
+  $node = $node2up{$T2H_NODE{This}};
+  $T2H_HREF{Up} = $node2href{$node};
+  if ($T2H_HREF{Up} eq $T2H_HREF{This} || ! $T2H_HREF{Up})
+  {
+    $T2H_NAME{Up} = $T2H_NAME{Top};
+    $T2H_HREF{Up} = $T2H_HREF{Top};
+    $T2H_NODE{Up} = 'Up';
+  }
+  else
+  {
+    $T2H_NAME{Up} = &clean_name($node);
+    $T2H_NODE{Up} = $node;
+  }
+
+  $node = $T2H_NODE{This};
+  $node = $node2prev{$node};
+  $T2H_NAME{Prev} = &clean_name($node);
+  $T2H_HREF{Prev} = $node2href{$node};
+  $T2H_NODE{Prev} = $node;
+
+  $node = $T2H_NODE{This};
+  if ($node2up{$node} && $node2up{$node} ne 'Top'&&
+      ($node2prev{$node} eq $T2H_NODE{Back} || ! $node2prev{$node}))
+  {
+    $node = $node2up{$node};
+    while ($node && $node ne $node2up{$node} && ! $node2prev{$node})
+    {
+      $node = $node2up{$node};
     }
+    $node = $node2prev{$node} 
+      unless $node2up{$node} eq 'Top' || ! $node2up{$node};
+  }
+  else
+  {
+    $node = $node2prev{$node};
+  }
+  $T2H_NAME{FastBack} = &clean_name($node);
+  $T2H_HREF{FastBack} = $node2href{$node};
+  $T2H_NODE{FastBack} = $node;
+  
+  $node = $T2H_NODE{This};
+  $node = $node2next{$node};
+  $T2H_NAME{Next} = &clean_name($node);
+  $T2H_HREF{Next} = $node2href{$node};
+  $T2H_NODE{Next} = $node;
+
+  $node = $T2H_NODE{This};
+  if ($node2up{$node} && $node2up{$node} ne 'Top'&& 
+      ($node2next{$node} eq $T2H_NODE{Forward} || ! $node2next{$node}))
+  {
+    $node = $node2up{$node};
+    while ($node && $node ne $node2up{$node} && ! $node2next{$node})
+    {
+      $node = $node2up{$node};
+    }
+  }
+  $node = $node2next{$node};
+  $T2H_NAME{FastForward} = &clean_name($node);
+  $T2H_HREF{FastForward} = $node2href{$node};
+  $T2H_NODE{FastForward} = $node;
+
+  if (! defined($FH))
+  {
+    my $file = $T2H_HREF{This};
+    $file =~ s/\#.*$//;
+    open(FILE, "> $docu_rdir$file") || 
+      die "$ERROR: Can't open $docu_rdir$file for writing: $!\n";
+    $FH = \*FILE;
+    &$T2H_print_page_head($FH);
+    t2h_print_label($FH);
+    &$T2H_print_chapter_header($FH) if $T2H_SPLIT eq 'chapter';
+  }
+  else
+  {
+    t2h_print_label($FH);
+  }
+
+  $T2H_THIS_SECTION = [];
+  while (@doc_lines) {
+    $_ = shift(@doc_lines);
+    last if ($_ eq $SECTIONEND || $_ eq $CHAPTEREND);
+    push(@$T2H_THIS_SECTION, $_);
+  }
+  $previous = $_;
+  &$T2H_print_section($FH);
+
+  if ($T2H_VERBOSE)
+  {
+    $counter++;
+    print "." if $counter =~ /00$/;
+  }
+}
+if ($T2H_SPLIT)
+{
+  &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter';
+  &$T2H_print_page_foot($FH);
+  close($FH);
+}
+print "\n" if $T2H_VERBOSE;
+
+#############################################################################
+# Print ToC, Overview, Footnotes
+#
+undef $T2H_HREF{Prev};
+undef $T2H_HREF{Next};
+undef $T2H_HREF{Back};
+undef $T2H_HREF{Forward};
+undef $T2H_HREF{Up};
+
+if (@foot_lines)
+{
+  print "# writing Footnotes in $docu_foot_file...\n" if $T2H_VERBOSE;
+  open (FILE, "> $docu_foot_file") || die "$ERROR: Can't open $docu_foot_file for writing: $!\n"
+      if $T2H_SPLIT;
+  $T2H_HREF{This} = $docu_foot;
+  $T2H_NAME{This} = $T2H_WORDS->{$T2H_LANG}->{'Footnotes_Title'};
+  $T2H_THIS_SECTION = \@foot_lines;
+  &$T2H_print_Footnotes(\*FILE);
+  close(FILE) if $T2H_SPLIT;
+}
+
+if (@toc_lines)
+{
+  print "# writing Toc in $docu_toc_file...\n" if $T2H_VERBOSE;
+  open (FILE, "> $docu_toc_file") || die "$ERROR: Can't open $docu_toc_file for writing: $!\n"
+      if $T2H_SPLIT;
+  $T2H_HREF{This} = $T2H_HREF{Contents};
+  $T2H_NAME{This} = $T2H_NAME{Contents};
+  $T2H_THIS_SECTION = \@toc_lines;
+  &$T2H_print_Toc(\*FILE);
+  close(FILE) if $T2H_SPLIT;
+}
+
+if (@stoc_lines)
+{
+  print "# writing Overview in $docu_stoc_file...\n" if $T2H_VERBOSE;
+  open (FILE, "> $docu_stoc_file") || die "$ERROR: Can't open $docu_stoc_file for writing: $!\n"
+      if $T2H_SPLIT;
+  
+  $T2H_HREF{This} = $T2H_HREF{Overview};
+  $T2H_NAME{This} = $T2H_NAME{Overview};
+  $T2H_THIS_SECTION = \@stoc_lines;
+  unshift @$T2H_THIS_SECTION, "<BLOCKQUOTE>\n";
+  push @$T2H_THIS_SECTION, "\n</BLOCKQUOTE>\n";
+  &$T2H_print_Overview(\*FILE);
+  close(FILE) if $T2H_SPLIT;
+}
+
+if ($about_body = &$T2H_about_body())
+{
+  print "# writing About in $docu_about_file...\n" if $T2H_VERBOSE;
+  open (FILE, "> $docu_about_file") || die "$ERROR: Can't open $docu_about_file for writing: $!\n"
+      if $T2H_SPLIT;
+  
+  $T2H_HREF{This} = $T2H_HREF{About};
+  $T2H_NAME{This} = $T2H_NAME{About};
+  $T2H_THIS_SECTION = [$about_body];
+  &$T2H_print_About(\*FILE);
+  close(FILE) if $T2H_SPLIT;
 }
 
-print "# that's all folks\n" if $verbose;
+unless ($T2H_SPLIT)
+{
+  &$T2H_print_page_foot(\*FILE);
+  close (FILE);
+}
+  
+Finish:
+&l2h_FinishFromHtml if ($T2H_L2H);
+&l2h_Finish if($T2H_L2H);
+print "# that's all folks\n" if $T2H_VERBOSE;
+
+exit(0);
 
 #+++############################################################################
 #                                                                              #
@@ -1508,27 +4830,55 @@ print "# that's all folks\n" if $verbose;
 #                                                                              #
 #---############################################################################
 
+sub LocateIncludeFile
+{
+  my $file = shift;
+  my $dir;
+
+  return $file if (-e $file && -r $file);
+  foreach $dir (@T2H_INCLUDE_DIRS)
+  {
+    return "$dir/$file" if (-e "$dir/$file" && -r "$dir/$file");
+  }
+  return undef;
+}
+
+sub clean_name 
+{
+  local ($_);
+  $_ = &remove_style($_[0]);
+  &unprotect_texi;
+  return $_;
+}
+
 sub update_sec_num {
     local($name, $level) = @_;
+    my $ret;
 
     $level--; # here we start at 0
-    if ($name =~ /^appendix/) {
+    if ($name =~ /^appendix/ || defined(@appendix_sec_num)) {
        # appendix style
        if (defined(@appendix_sec_num)) {
            &incr_sec_num($level, @appendix_sec_num);
        } else {
            @appendix_sec_num = ('A', 0, 0, 0);
        }
-       return(join('.', @appendix_sec_num[0..$level]));
+       $ret = join('.', @appendix_sec_num[0..$level]);
     } else {
        # normal style
-       if (defined(@normal_sec_num)) {
-           &incr_sec_num($level, @normal_sec_num);
-       } else {
-           @normal_sec_num = (1, 0, 0, 0);
+       if (defined(@normal_sec_num)) 
+       {
+         &incr_sec_num($level, @normal_sec_num);
+       } 
+       else 
+       {
+         @normal_sec_num = (1, 0, 0, 0);
        }
-       return(join('.', @normal_sec_num[0..$level]));
+       $ret = join('.', @normal_sec_num[0..$level]);
     }
+    
+    $ret .= "." if $level == 0;
+    return $ret;
 }
 
 sub incr_sec_num {
@@ -1540,13 +4890,78 @@ sub incr_sec_num {
     }
 }
 
+sub Sec2UpNode
+{
+  my $sec = shift;
+  my $num = $sec2number{$sec};
+
+  return '' unless $num;
+  return 'Top' unless $num =~ /\.\d+/;
+  $num =~ s/\.[^\.]*$//;
+  $num = $num . '.' unless $num =~ /\./;
+  return $sec2node{$number2sec{$num}};
+}
+
+sub Sec2PrevNode
+{
+  my $sec = shift;
+  my $num = $sec2number{$sec};
+  my ($i, $post);
+  
+  if ($num =~ /(\w+)(\.$|$)/)
+  {
+    $num = $`;
+    $i = $1;
+    $post = $2;
+    if ($i eq 'A')
+    {
+      $i = $normal_sec_num[0];
+    }
+    elsif ($i ne '1')
+    {
+      # unfortunately, -- operator is not magical
+      $i = chr(ord($i) + 1);
+    }
+    else
+    {
+      return '';
+    }
+    return $sec2node{$number2sec{$num . $i . $post}}
+  }
+  return '';
+}
+
+sub Sec2NextNode
+{
+  my $sec = shift;
+  my $num = $sec2number{$sec};
+  my $i;
+
+  if ($num =~ /(\w+)(\.$|$)/)
+  {
+    $num = $`;
+    $i = $1;
+    $post = $2;
+    if ($post eq '.' && $i eq $normal_sec_num[0])
+    {
+      $i = 'A';
+    }
+    else
+    {
+      $i++;
+    }
+    return $sec2node{$number2sec{$num . $i . $post}}
+  }
+  return '';
+}
+
 sub check {
     local($_, %seen, %context, $before, $match, $after);
 
     while (<>) {
        if (/\@(\*|\.|\:|\@|\{|\})/) {
            $seen{$&}++;
-           $context{$&} .= "> $_" if $verbose;
+           $context{$&} .= "> $_" if $T2H_VERBOSE;
            $_ = "$`XX$'";
            redo;
        }
@@ -1554,10 +4969,10 @@ sub check {
            ($before, $match, $after) = ($`, $&, $');
            if ($before =~ /\b[\w-]+$/ && $after =~ /^[\w-.]*\b/) { # e-mail address
                $seen{'e-mail address'}++;
-               $context{'e-mail address'} .= "> $_" if $verbose;
+               $context{'e-mail address'} .= "> $_" if $T2H_VERBOSE;
            } else {
                $seen{$match}++;
-               $context{$match} .= "> $_" if $verbose;
+               $context{$match} .= "> $_" if $T2H_VERBOSE;
            }
            $match =~ s/^\@/X/;
            $_ = "$before$match$after";
@@ -1566,7 +4981,7 @@ sub check {
     }
     
     foreach (sort(keys(%seen))) {
-       if ($verbose) {
+       if ($T2H_VERBOSE) {
            print "$_\n";
            print $context{$_};
        } else {
@@ -1621,6 +5036,19 @@ sub skip_until {
     die "* Failed to find '$tag' after: " . $lines[$#lines];
 }
 
+# used in pass 1 for l2h use &next_line
+sub string_until {
+    local($tag) = @_;
+    local($_, $string);
+
+    while ($_ = &next_line) {
+       return $string if /^\@end\s+$tag\s*$/;
+#      $_ =~ s/hbox/mbox/g;
+       $string = $string.$_;
+    }
+    die "* Failed to find '$tag' after: " . $lines[$#lines];
+}
+
 #
 # HTML stacking to have a better HTML output
 #
@@ -1664,8 +5092,11 @@ sub html_pop_if {
 
 sub html_debug {
     local($what, $line) = @_;
-    return("<!-- $line @html_stack, $html_element -->$what")
-       if $debug & $DEBUG_HTML;
+    if ($T2H_DEBUG & $DEBUG_HTML)
+    {
+     $what = "\n" unless $what;
+     return("<!-- $line @html_stack, $html_element -->$what")
+    }  
     return($what);
 }
 
@@ -1673,29 +5104,80 @@ sub html_debug {
 sub debug {
     local($what, $line) = @_;
     return("<!-- $line -->$what")
-       if $debug & $DEBUG_HTML;
+       if $T2H_DEBUG & $DEBUG_HTML;
     return($what);
 }
 
+sub SimpleTexi2Html
+{
+  local $_ = $_[0];
+  &protect_texi;
+  &protect_html;
+  $_ = substitute_style($_);
+  $_[0]  = $_;
+}
+
 sub normalise_node {
-    $_[0] =~ s/\s+/ /g;
-    $_[0] =~ s/ $//;
-    $_[0] =~ s/^ //;
+  local $_ = $_[0];
+  s/\s+/ /g;
+  s/ $//;
+  s/^ //;
+  &protect_texi;
+  &protect_html;
+  $_ = substitute_style($_);
+  $_[0]  = $_;
 }
 
-sub menu_entry {
-    local($entry, $node, $descr) = @_;
-    local($href);
+sub menu_entry 
+{
+  my ($node, $name, $descr) = @_;
+  my ($href, $entry);
+  
+  &normalise_node($node);
+  $href = $node2href{$node};
+  if ($href) 
+  {
+    $descr =~ s/^\s+//;
+    $descr =~ s/\s*$//;
+    $descr = SimpleTexi2Html($descr);
+    if ($T2H_NUMBER_SECTIONS && !$T2H_NODE_NAME_IN_MENU && $node2sec{$node})
+    {
+      $entry = $node2sec{$node};
+      $name = '';
+    }
+    else
+    {
+      &normalise_node($name);
+      $entry = ($name && ($name ne $node || ! $T2H_AVOID_MENU_REDUNDANCY) 
+               ? "$name : $node" : $node);
+    }
 
-    &normalise_node($node);
-    $href = $node2href{$node};
-    if ($href) {
-       $descr =~ s/^\s+//;
-       $descr = ": $descr" if $descr;
-       push(@lines2, "<LI>" . &anchor('', $href, $entry) . "$descr\n");
-    } else {
-       warn "$ERROR Undefined node ($node): $_";
+    if ($T2H_AVOID_MENU_REDUNDANCY && $descr)
+    {
+      my $clean_entry = $entry;
+      $clean_entry =~ s/^.*? // if ($clean_entry =~ /^([A-Z]|\d+)\.[\d\.]* /);
+      $clean_entry =~ s/[^\w]//g;
+      my $clean_descr = $descr;
+      $clean_descr =~ s/[^\w]//g;
+      $descr = '' if ($clean_entry eq $clean_descr)
     }
+    push(@lines2,&debug('<TR><TD ALIGN="left" VALIGN="TOP">' . 
+                       &t2h_anchor('', $href, $entry) . 
+                       '</TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">' . 
+                       $descr . 
+                       "</TD></TR>\n", __LINE__));
+  }
+  elsif ($node =~ /^\(.*\)\w+/)
+  {
+    push(@lines2,&debug('<TR><TD ALIGN="left" VALIGN="TOP">' . 
+                       $entry . 
+                       '</TD><TD ALIGN="left" VALIGN="TOP">' . $descr . 
+                       "</TD></TR>\n", __LINE__))
+  }
+  else
+  {
+    warn "$ERROR Undefined node of menu_entry ($node): $_";
+  }
 }
 
 sub do_ctrl { "^$_[0]" }
@@ -1704,19 +5186,51 @@ sub do_email {
     local($addr, $text) = split(/,\s*/, $_[0]);
 
     $text = $addr unless $text;
-    &anchor('', "mailto:$addr", $text);
+    &t2h_anchor('', "mailto:$addr", $text);
+}
+
+sub do_sc 
+{ 
+  # l2h does this much better
+  return &l2h_ToLatex("{\\sc ".&unprotect_html($_[0])."}") if ($T2H_L2H);
+  return "\U$_[0]\E";
 }
 
-sub do_sc { "\U$_[0]\E" }
+sub do_math
+{
+  return &l2h_ToLatex("\$".&unprotect_html($_[0])."\$") if ($T2H_L2H);
+  return "<EM>".$text."</EM>";
+}
 
 sub do_uref {
-    local($url, $text) = split(/,\s*/, $_[0]);
+    local($url, $text, $only_text) = split(/,\s*/, $_[0]);
 
+    $text = $only_text if $only_text;
     $text = $url unless $text;
-    &anchor('', $url, $text);
+    &t2h_anchor('', $url, $text);
+}
+
+sub do_url { &t2h_anchor('', $_[0], $_[0]) }
+
+sub do_acronym
+{
+  return '<FONT SIZE="-1">' . $_[0] . '</FONT>';
 }
 
-sub do_url { &anchor('', $_[0], $_[0]) }
+sub do_accent
+{
+  return "&$_[0]acute;" if $_[1] eq 'H';
+  return "$_[0]." if $_[1] eq 'dotaccent';
+  return "$_[0]*" if $_[1] eq 'ringaccent';
+  return "$_[0]".'[' if $_[1] eq 'tieaccent';
+  return "$_[0]".'(' if $_[1] eq 'u';
+  return "$_[0]_" if $_[1] eq 'ubaraccent';
+  return ".$_[0]" if $_[1] eq 'udotaccent';
+  return "$_[0]&lt;" if $_[1] eq 'v';
+  return "&$_[0]cedil;" if $_[1] eq ',';
+  return "$_[0]" if $_[1] eq 'dotless';
+  return undef;
+}
 
 sub apply_style {
     local($texi_style, $text) = @_;
@@ -1730,7 +5244,7 @@ sub apply_style {
        }
        if ($style =~ /^\&/) { # custom
            $style = $';
-           $text = &$style($text);
+           $text = &$style($text, $texi_style);
        } elsif ($style) { # good style
            $text = "<$style>$text</$style>";
        } else { # no style
@@ -1744,19 +5258,27 @@ sub apply_style {
 # remove Texinfo styles
 sub remove_style {
     local($_) = @_;
-    s/\@\w+{([^\{\}]+)}/$1/g;
+    1 while(s/\@\w+{([^\{\}]+)}/$1/g);
     return($_);
 }
 
+sub remove_things
+{
+  local ($_) = @_;
+  s|\@(\w+)\{\}|$1|g;
+  return $_;
+}
+
 sub substitute_style {
     local($_) = @_;
     local($changed, $done, $style, $text);
 
+    &simple_substitutions;
     $changed = 1;
     while ($changed) {
        $changed = 0;
        $done = '';
-       while (/\@(\w+){([^\{\}]+)}/) {
+       while (/\@(\w+){([^\{\}]+)}/ || /\@(,){([^\{\}]+)}/) {
            $text = &apply_style($1, $2);
            if ($text) {
                $_ = "$`$text$'";
@@ -1771,13 +5293,19 @@ sub substitute_style {
     return($_);
 }
 
-sub anchor {
-    local($name, $href, $text, $newline) = @_;
+sub t2h_anchor {
+    local($name, $href, $text, $newline, $extra_attribs) = @_;
     local($result);
 
     $result = "<A";
     $result .= " NAME=\"$name\"" if $name;
-    $result .= " HREF=\"$href\"" if $href;
+    if ($href)
+    {
+      $href =~ s|^$T2H_HREF_DIR_INSTEAD_FILE|./| 
+       if ($T2H_HREF_DIR_INSTEAD_FILE);
+      $result .= ($href =~ /\"/ ? " HREF='$href'"  : " HREF=\"$href\"");
+    }
+    $result .= " $extra_attribs" if $extra_attribs;
     $result .= ">$text</A>";
     $result .= "\n" if $newline;
     return($result);
@@ -1786,104 +5314,46 @@ sub anchor {
 sub pretty_date {
     local(@MoY, $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
 
-    @MoY = ('January', 'Febuary', 'March', 'April', 'May', 'June',
+    @MoY = ('January', 'February', 'March', 'April', 'May', 'June',
            'July', 'August', 'September', 'October', 'November', 'December');
     ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
     $year += ($year < 70) ? 2000 : 1900;
-    return("$mday $MoY[$mon] $year");
+    # obachman: Let's do it as the Americans do
+    return("$MoY[$mon], $mday  $year");
 }
 
-sub doc_name {
+sub doc_href {
     local($num) = @_;
 
-    return("${docu_name}_$num.html");
+    return("${docu_name}_$num.$docu_ext");
+}
+
+sub sec_href
+{
+  return $node2href{$sec2node{$_[0]}};
 }
 
 sub next_doc {
-    $docu_doc = &doc_name(++$doc_num);
+    $docu_doc = &doc_href(++$doc_num);
 }
 
-sub print {
-    local(*lines, $fh) = @_;
+sub t2h_print_lines {
+    my ($fh, $lines) = @_;
     local($_);
-
-    while (@lines) {
-       $_ = shift(@lines);
+    $lines = $T2H_THIS_SECTION unless $lines;
+    my $cnt = 0;
+    for (@$lines) 
+    {
+       $_ = l2h_FromHtml($_) if ($T2H_L2H);
        if (/^$PROTECTTAG/o) {
            $_ = $tag2pro{$_};
        } else {
            &unprotect_texi;
        }
        print $fh $_;
+       $cnt += split(/\W*\s+\W*/);
     }
-}
-
-sub print_ruler {
-    print FILE "<P><HR><P>\n";
-}
-
-sub print_header {
-    local($_);
-
-    # clean the title
-    $_ = &remove_style($_[0]);
-    &unprotect_texi;
-    # print the header
-    if ($doctype eq 'html2') {
-       print FILE $html2_doctype;
-    } elsif ($doctype) {
-       print FILE $doctype;
-    }
-    print FILE <<EOT;
-<HTML>
-<HEAD>
-$header
-<TITLE>$_</TITLE>
-</HEAD>
-<BODY>
-EOT
-}
-
-sub print_toplevel_header {
-    local($_);
-
-    &print_header; # pass given arg...
-    print FILE $full_title;
-    if ($value{'_subtitle'}) {
-       $value{'_subtitle'} =~ s/\n+$//;
-       foreach (split(/\n/, $value{'_subtitle'})) {
-           $_ = &substitute_style($_);
-           &unprotect_texi;
-           print FILE "<H2>$_</H2>\n";
-       }
-    }
-    if ($value{'_author'}) {
-       $value{'_author'} =~ s/\n+$//;
-       foreach (split(/\n/, $value{'_author'})) {
-           $_ = &substitute_style($_);
-           &unprotect_texi;
-           s/[\w.-]+\@[\w.-]+/<A HREF="mailto:$&">$&<\/A>/g;
-           print FILE "<ADDRESS>$_</ADDRESS>\n";
-       }
-    }
-    print FILE "<P>\n";
-}
-
-sub print_footer {
-    print FILE <<EOT;
-</BODY>
-</HTML>
-EOT
-}
-
-sub print_toplevel_footer {
-    &print_ruler;
-    print FILE <<EOT;
-This document was generated on $TODAY using the
-<A HREF=\"$HOMEPAGE\">texi2html</A>
-translator version 1.52.</P>
-EOT
-    &print_footer;
+    return $cnt;
 }
 
 sub protect_texi {
@@ -1901,6 +5371,13 @@ sub protect_html {
     $what =~ s/\&/\&\#38;/g;
     $what =~ s/\</\&\#60;/g;
     $what =~ s/\>/\&\#62;/g;
+    # restore anything in quotes
+    # this fixes my problem where I had:
+    # < IMG SRC="leftarrow.gif" ALT="<--" >  but what if I wanted &#60; in my ALT text ??
+    # maybe byte stuffing or some other technique should be used.
+    $what =~ s/\"([^\&]+)\&\#60;(.*)\"/"$1<$2"/g;
+    $what =~ s/\"([^\&]+)\&\#62;(.*)\"/"$1>$2"/g;
+    $what =~ s/\"([^\&]+)\&\#38;(.*)\"/"$1&$2"/g;
     # but recognize some HTML things
     $what =~ s/\&\#60;\/A\&\#62;/<\/A>/g;            # </A>
     $what =~ s/\&\#60;A ([^\&]+)\&\#62;/<A $1>/g;     # <A [^&]+>
@@ -1916,6 +5393,13 @@ sub unprotect_texi {
     s/$;4/\'/go;
 }
 
+sub Unprotect_texi 
+{
+  local $_ = shift;
+  &unprotect_texi;
+  return($_);
+}
+
 sub unprotect_html {
     local($what) = @_;
     $what =~ s/\&\#38;/\&/g;
@@ -1924,8 +5408,12 @@ sub unprotect_html {
     return($what);
 }
 
-sub byalpha {
-    $key2alpha{$a} cmp $key2alpha{$b};
+sub t2h_print_label
+{
+    my $fh = shift;
+    my $href = shift || $T2H_HREF{This};
+    $href =~ s/.*#(.*)$/$1/;
+    print $fh qq{<A NAME="$href"></A>\n};
 }
 
 ##############################################################################
@@ -1938,144 +5426,4 @@ sub byalpha {
 .nr nl 0-1             \" fake up transition to first page again
 .nr % 0                        \" start at page 1
 '; __END__ ############# From here on it's a standard manual page ############
-.TH TEXI2HTML 1 "01/05/98"
-.AT 3
-.SH NAME
-texi2html \- a Texinfo to HTML converter
-.SH SYNOPSIS
-.B texi2html [options] file
-.PP
-.B texi2html -check [-verbose] files
-.SH DESCRIPTION
-.I Texi2html
-converts the given Texinfo file to a set of HTML files. It tries to handle
-most of the Texinfo commands. It creates hypertext links for cross-references,
-footnotes...
-.PP
-It also tries to add links from a reference to its corresponding entry in the
-bibliography (if any). It may also handle a glossary (see the
-.B \-glossary
-option).
-.PP
-.I Texi2html
-creates several files depending on the contents of the Texinfo file and on
-the chosen options (see FILES).
-.PP
-The HTML files created by
-.I texi2html
-are closer to TeX than to Info, that's why
-.I texi2html
-converts @iftex sections and not @ifinfo ones by default. You can reverse
-this with the \-expandinfo option.
-.SH OPTIONS
-.TP 12
-.B \-check
-Check the given file and give the list of all things that may be Texinfo commands.
-This may be used to check the output of
-.I texi2html
-to find the Texinfo commands that have been left in the HTML file.
-.TP
-.B \-expandinfo
-Expand @ifinfo sections, not @iftex ones.
-.TP
-.B \-glossary
-Use the section named 'Glossary' to build a list of terms and put links in the HTML
-document from each term toward its definition.
-.TP
-.B \-invisible \fIname\fP
-Use \fIname\fP to create invisible destination anchors for index links
-(you can for instance use the invisible.xbm file shipped with this program).
-This is a workaround for a known bug of many WWW browsers, including netscape.
-.TP
-.B \-I \fIdir\fP
-Look also in \fIdir\fP to find included files.
-.TP
-.B \-menu
-Show the Texinfo menus; by default they are ignored.
-.TP
-.B \-monolithic
-Output only one file, including the table of contents and footnotes.
-.TP
-.B \-number
-Number the sections.
-.TP
-.B \-split_chapter
-Split the output into several HTML files (one per main section:
-chapter, appendix...).
-.TP
-.B \-split_node
-Split the output into several HTML files (one per node).
-.TP
-.B \-usage
-Print usage instructions, listing the current available command-line options.
-.TP
-.B \-verbose
-Give a verbose output. Can be used with the
-.B \-check
-option.
-.PP
-.SH FILES
-By default
-.I texi2html
-creates the following files (foo being the name of the Texinfo file):
-.TP 16
-.B foo_toc.html
-The table of contents.
-.TP
-.B foo.html
-The document's contents.
-.TP
-.B foo_foot.html
-The footnotes (if any).
-.PP
-When used with the
-.B \-split
-option, it creates several files (one per chapter or node), named
-.B foo_n.html
-(n being the indice of the chapter or node), instead of the single
-.B foo.html
-file.
-.PP
-When used with the
-.B \-monolithic
-option, it creates only one file:
-.B foo.html
-.SH VARIABLES
-.I texi2html
-predefines the following variables: \fBhtml\fP, \fBtexi2html\fP.
-.SH ADDITIONAL COMMANDS
-.I texi2html
-implements the following non-Texinfo commands (maybe they are in Texinfo now...):
-.TP 16
-.B @ifhtml
-This indicates the start of an HTML section, this section will passed through
-without any modification.
-.TP
-.B @end ifhtml
-This indicates the end of an HTML section.
-.SH VERSION
-This is \fItexi2html\fP version 1.52, 01/05/98.
-.PP
-The latest version of \fItexi2html\fP can be found in WWW, cf. URL
-http://wwwinfo.cern.ch/dis/texi2html/
-.SH AUTHOR
-The main author is Lionel Cons, CERN IT/DIS/OSE, Lionel.Cons@cern.ch.
-Many other people around the net contributed to this program.
-.SH COPYRIGHT
-This program is the intellectual property of the European
-Laboratory for Particle Physics (known as CERN). No guarantee whatsoever is
-provided by CERN. No liability whatsoever is accepted for any loss or damage
-of any kind resulting from any defect or inaccuracy in this information or
-code.
-.PP
-CERN, 1211 Geneva 23, Switzerland
-.SH "SEE ALSO"
-GNU Texinfo Documentation Format,
-HyperText Markup Language (HTML),
-World Wide Web (WWW).
-.SH BUGS
-This program does not understand all Texinfo commands (yet).
-.PP
-TeX specific commands (normally enclosed in @iftex) will be
-passed unmodified.
-.ex
+.so /usr/local/man/man1/texi2html.1
index daba213ba0792477cff3bcfd3f8b281eed7c19b9..ca9d1343b655ca2eae3a04d6bc99c87e1be69854 100644 (file)
 KEYMAP_ENTRY_ARRAY emacs_standard_keymap = {
 
   /* Control keys. */
-  { ISFUNC, rl_set_mark },             /* Control-@ */
-  { ISFUNC, rl_beg_of_line },          /* Control-a */
-  { ISFUNC, rl_backward },             /* Control-b */
-  { ISFUNC, (Function *)0x0 },         /* Control-c */
-  { ISFUNC, rl_delete },               /* Control-d */
-  { ISFUNC, rl_end_of_line },          /* Control-e */
-  { ISFUNC, rl_forward },              /* Control-f */
-  { ISFUNC, rl_abort },                        /* Control-g */
-  { ISFUNC, rl_rubout },               /* Control-h */
-  { ISFUNC, rl_complete },             /* Control-i */
-  { ISFUNC, rl_newline },              /* Control-j */
-  { ISFUNC, rl_kill_line },            /* Control-k */
-  { ISFUNC, rl_clear_screen },         /* Control-l */
-  { ISFUNC, rl_newline },              /* Control-m */
-  { ISFUNC, rl_get_next_history },     /* Control-n */
-  { ISFUNC, (Function *)0x0 },         /* Control-o */
-  { ISFUNC, rl_get_previous_history }, /* Control-p */
-  { ISFUNC, rl_quoted_insert },                /* Control-q */
-  { ISFUNC, rl_reverse_search_history }, /* Control-r */
-  { ISFUNC, rl_forward_search_history }, /* Control-s */
-  { ISFUNC, rl_transpose_chars },      /* Control-t */
-  { ISFUNC, rl_unix_line_discard },    /* Control-u */
-  { ISFUNC, rl_quoted_insert },                /* Control-v */
-  { ISFUNC, rl_unix_word_rubout },     /* Control-w */
-  { ISKMAP, (Function *)emacs_ctlx_keymap },   /* Control-x */
-  { ISFUNC, rl_yank },                 /* Control-y */
-  { ISFUNC, (Function *)0x0 },         /* Control-z */
-  { ISKMAP, (Function *)emacs_meta_keymap }, /* Control-[ */
-  { ISFUNC, (Function *)0x0 },         /* Control-\ */
-  { ISFUNC, rl_char_search },          /* Control-] */
-  { ISFUNC, (Function *)0x0 },         /* Control-^ */
-  { ISFUNC, rl_undo_command },         /* Control-_ */
+  { ISFUNC, rl_set_mark },                     /* Control-@ */
+  { ISFUNC, rl_beg_of_line },                  /* Control-a */
+  { ISFUNC, rl_backward_char },                        /* Control-b */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-c */
+  { ISFUNC, rl_delete },                       /* Control-d */
+  { ISFUNC, rl_end_of_line },                  /* Control-e */
+  { ISFUNC, rl_forward_char },                 /* Control-f */
+  { ISFUNC, rl_abort },                                /* Control-g */
+  { ISFUNC, rl_rubout },                       /* Control-h */
+  { ISFUNC, rl_complete },                     /* Control-i */
+  { ISFUNC, rl_newline },                      /* Control-j */
+  { ISFUNC, rl_kill_line },                    /* Control-k */
+  { ISFUNC, rl_clear_screen },                 /* Control-l */
+  { ISFUNC, rl_newline },                      /* Control-m */
+  { ISFUNC, rl_get_next_history },             /* Control-n */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-o */
+  { ISFUNC, rl_get_previous_history },         /* Control-p */
+  { ISFUNC, rl_quoted_insert },                        /* Control-q */
+  { ISFUNC, rl_reverse_search_history },       /* Control-r */
+  { ISFUNC, rl_forward_search_history },       /* Control-s */
+  { ISFUNC, rl_transpose_chars },              /* Control-t */
+  { ISFUNC, rl_unix_line_discard },            /* Control-u */
+  { ISFUNC, rl_quoted_insert },                        /* Control-v */
+  { ISFUNC, rl_unix_word_rubout },             /* Control-w */
+  { ISKMAP, (rl_command_func_t *)emacs_ctlx_keymap },  /* Control-x */
+  { ISFUNC, rl_yank },                         /* Control-y */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-z */
+  { ISKMAP, (rl_command_func_t *)emacs_meta_keymap }, /* Control-[ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-\ */
+  { ISFUNC, rl_char_search },                  /* Control-] */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-^ */
+  { ISFUNC, rl_undo_command },                 /* Control-_ */
 
   /* The start of printing characters. */
-  { ISFUNC, rl_insert },       /* SPACE */
-  { ISFUNC, rl_insert },       /* ! */
-  { ISFUNC, rl_insert },       /* " */
-  { ISFUNC, rl_insert },       /* # */
-  { ISFUNC, rl_insert },       /* $ */
-  { ISFUNC, rl_insert },       /* % */
-  { ISFUNC, rl_insert },       /* & */
-  { ISFUNC, rl_insert },       /* ' */
-  { ISFUNC, rl_insert },       /* ( */
-  { ISFUNC, rl_insert },       /* ) */
-  { ISFUNC, rl_insert },       /* * */
-  { ISFUNC, rl_insert },       /* + */
-  { ISFUNC, rl_insert },       /* , */
-  { ISFUNC, rl_insert },       /* - */
-  { ISFUNC, rl_insert },       /* . */
-  { ISFUNC, rl_insert },       /* / */
-
-  /* Regular digits. */
-  { ISFUNC, rl_insert },       /* 0 */
-  { ISFUNC, rl_insert },       /* 1 */
-  { ISFUNC, rl_insert },       /* 2 */
-  { ISFUNC, rl_insert },       /* 3 */
-  { ISFUNC, rl_insert },       /* 4 */
-  { ISFUNC, rl_insert },       /* 5 */
-  { ISFUNC, rl_insert },       /* 6 */
-  { ISFUNC, rl_insert },       /* 7 */
-  { ISFUNC, rl_insert },       /* 8 */
-  { ISFUNC, rl_insert },       /* 9 */
+  { ISFUNC, rl_insert },               /* SPACE */
+  { ISFUNC, rl_insert },               /* ! */
+  { ISFUNC, rl_insert },               /* " */
+  { ISFUNC, rl_insert },               /* # */
+  { ISFUNC, rl_insert },               /* $ */
+  { ISFUNC, rl_insert },               /* % */
+  { ISFUNC, rl_insert },               /* & */
+  { ISFUNC, rl_insert },               /* ' */
+  { ISFUNC, rl_insert },               /* ( */
+  { ISFUNC, rl_insert },               /* ) */
+  { ISFUNC, rl_insert },               /* * */
+  { ISFUNC, rl_insert },               /* + */
+  { ISFUNC, rl_insert },               /* , */
+  { ISFUNC, rl_insert },               /* - */
+  { ISFUNC, rl_insert },               /* . */
+  { ISFUNC, rl_insert },               /* / */
+       
+         /* Regular digits. */
+  { ISFUNC, rl_insert },               /* 0 */
+  { ISFUNC, rl_insert },               /* 1 */
+  { ISFUNC, rl_insert },               /* 2 */
+  { ISFUNC, rl_insert },               /* 3 */
+  { ISFUNC, rl_insert },               /* 4 */
+  { ISFUNC, rl_insert },               /* 5 */
+  { ISFUNC, rl_insert },               /* 6 */
+  { ISFUNC, rl_insert },               /* 7 */
+  { ISFUNC, rl_insert },               /* 8 */
+  { ISFUNC, rl_insert },               /* 9 */
 
   /* A little more punctuation. */
-  { ISFUNC, rl_insert },       /* : */
-  { ISFUNC, rl_insert },       /* ; */
-  { ISFUNC, rl_insert },       /* < */
-  { ISFUNC, rl_insert },       /* = */
-  { ISFUNC, rl_insert },       /* > */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* @ */
+  { ISFUNC, rl_insert },               /* : */
+  { ISFUNC, rl_insert },               /* ; */
+  { ISFUNC, rl_insert },               /* < */
+  { ISFUNC, rl_insert },               /* = */
+  { ISFUNC, rl_insert },               /* > */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* @ */
 
   /* Uppercase alphabet. */
-  { ISFUNC, rl_insert },       /* A */
-  { ISFUNC, rl_insert },       /* B */
-  { ISFUNC, rl_insert },       /* C */
-  { ISFUNC, rl_insert },       /* D */
-  { ISFUNC, rl_insert },       /* E */
-  { ISFUNC, rl_insert },       /* F */
-  { ISFUNC, rl_insert },       /* G */
-  { ISFUNC, rl_insert },       /* H */
-  { ISFUNC, rl_insert },       /* I */
-  { ISFUNC, rl_insert },       /* J */
-  { ISFUNC, rl_insert },       /* K */
-  { ISFUNC, rl_insert },       /* L */
-  { ISFUNC, rl_insert },       /* M */
-  { ISFUNC, rl_insert },       /* N */
-  { ISFUNC, rl_insert },       /* O */
-  { ISFUNC, rl_insert },       /* P */
-  { ISFUNC, rl_insert },       /* Q */
-  { ISFUNC, rl_insert },       /* R */
-  { ISFUNC, rl_insert },       /* S */
-  { ISFUNC, rl_insert },       /* T */
-  { ISFUNC, rl_insert },       /* U */
-  { ISFUNC, rl_insert },       /* V */
-  { ISFUNC, rl_insert },       /* W */
-  { ISFUNC, rl_insert },       /* X */
-  { ISFUNC, rl_insert },       /* Y */
-  { ISFUNC, rl_insert },       /* Z */
+  { ISFUNC, rl_insert },               /* A */
+  { ISFUNC, rl_insert },               /* B */
+  { ISFUNC, rl_insert },               /* C */
+  { ISFUNC, rl_insert },               /* D */
+  { ISFUNC, rl_insert },               /* E */
+  { ISFUNC, rl_insert },               /* F */
+  { ISFUNC, rl_insert },               /* G */
+  { ISFUNC, rl_insert },               /* H */
+  { ISFUNC, rl_insert },               /* I */
+  { ISFUNC, rl_insert },               /* J */
+  { ISFUNC, rl_insert },               /* K */
+  { ISFUNC, rl_insert },               /* L */
+  { ISFUNC, rl_insert },               /* M */
+  { ISFUNC, rl_insert },               /* N */
+  { ISFUNC, rl_insert },               /* O */
+  { ISFUNC, rl_insert },               /* P */
+  { ISFUNC, rl_insert },               /* Q */
+  { ISFUNC, rl_insert },               /* R */
+  { ISFUNC, rl_insert },               /* S */
+  { ISFUNC, rl_insert },               /* T */
+  { ISFUNC, rl_insert },               /* U */
+  { ISFUNC, rl_insert },               /* V */
+  { ISFUNC, rl_insert },               /* W */
+  { ISFUNC, rl_insert },               /* X */
+  { ISFUNC, rl_insert },               /* Y */
+  { ISFUNC, rl_insert },               /* Z */
 
   /* Some more punctuation. */
-  { ISFUNC, rl_insert },       /* [ */
-  { ISFUNC, rl_insert },       /* \ */
-  { ISFUNC, rl_insert },       /* ] */
-  { ISFUNC, rl_insert },       /* ^ */
-  { ISFUNC, rl_insert },       /* _ */
-  { ISFUNC, rl_insert },       /* ` */
+  { ISFUNC, rl_insert },               /* [ */
+  { ISFUNC, rl_insert },               /* \ */
+  { ISFUNC, rl_insert },               /* ] */
+  { ISFUNC, rl_insert },               /* ^ */
+  { ISFUNC, rl_insert },               /* _ */
+  { ISFUNC, rl_insert },               /* ` */
 
   /* Lowercase alphabet. */
-  { ISFUNC, rl_insert },       /* a */
-  { ISFUNC, rl_insert },       /* b */
-  { ISFUNC, rl_insert },       /* c */
-  { ISFUNC, rl_insert },       /* d */
-  { ISFUNC, rl_insert },       /* e */
-  { ISFUNC, rl_insert },       /* f */
-  { ISFUNC, rl_insert },       /* g */
-  { ISFUNC, rl_insert },       /* h */
-  { ISFUNC, rl_insert },       /* i */
-  { ISFUNC, rl_insert },       /* j */
-  { ISFUNC, rl_insert },       /* k */
-  { ISFUNC, rl_insert },       /* l */
-  { ISFUNC, rl_insert },       /* m */
-  { ISFUNC, rl_insert },       /* n */
-  { ISFUNC, rl_insert },       /* o */
-  { ISFUNC, rl_insert },       /* p */
-  { ISFUNC, rl_insert },       /* q */
-  { ISFUNC, rl_insert },       /* r */
-  { ISFUNC, rl_insert },       /* s */
-  { ISFUNC, rl_insert },       /* t */
-  { ISFUNC, rl_insert },       /* u */
-  { ISFUNC, rl_insert },       /* v */
-  { ISFUNC, rl_insert },       /* w */
-  { ISFUNC, rl_insert },       /* x */
-  { ISFUNC, rl_insert },       /* y */
-  { ISFUNC, rl_insert },       /* z */
+  { ISFUNC, rl_insert },               /* a */
+  { ISFUNC, rl_insert },               /* b */
+  { ISFUNC, rl_insert },               /* c */
+  { ISFUNC, rl_insert },               /* d */
+  { ISFUNC, rl_insert },               /* e */
+  { ISFUNC, rl_insert },               /* f */
+  { ISFUNC, rl_insert },               /* g */
+  { ISFUNC, rl_insert },               /* h */
+  { ISFUNC, rl_insert },               /* i */
+  { ISFUNC, rl_insert },               /* j */
+  { ISFUNC, rl_insert },               /* k */
+  { ISFUNC, rl_insert },               /* l */
+  { ISFUNC, rl_insert },               /* m */
+  { ISFUNC, rl_insert },               /* n */
+  { ISFUNC, rl_insert },               /* o */
+  { ISFUNC, rl_insert },               /* p */
+  { ISFUNC, rl_insert },               /* q */
+  { ISFUNC, rl_insert },               /* r */
+  { ISFUNC, rl_insert },               /* s */
+  { ISFUNC, rl_insert },               /* t */
+  { ISFUNC, rl_insert },               /* u */
+  { ISFUNC, rl_insert },               /* v */
+  { ISFUNC, rl_insert },               /* w */
+  { ISFUNC, rl_insert },               /* x */
+  { ISFUNC, rl_insert },               /* y */
+  { ISFUNC, rl_insert },               /* z */
 
   /* Final punctuation. */
-  { ISFUNC, rl_insert },       /* { */
-  { ISFUNC, rl_insert },       /* | */
-  { ISFUNC, rl_insert },       /* } */
-  { ISFUNC, rl_insert },       /* ~ */
-  { ISFUNC, rl_rubout },       /* RUBOUT */
+  { ISFUNC, rl_insert },               /* { */
+  { ISFUNC, rl_insert },               /* | */
+  { ISFUNC, rl_insert },               /* } */
+  { ISFUNC, rl_insert },               /* ~ */
+  { ISFUNC, rl_rubout },               /* RUBOUT */
 
 #if KEYMAP_SIZE > 128
   /* Pure 8-bit characters (128 - 159).
      These might be used in some
      character sets. */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
-  { ISFUNC, rl_insert },       /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
+  { ISFUNC, rl_insert },               /* ? */
 
   /* ISO Latin-1 characters (160 - 255) */
   { ISFUNC, rl_insert },       /* No-break space */
@@ -316,78 +316,78 @@ KEYMAP_ENTRY_ARRAY emacs_standard_keymap = {
 KEYMAP_ENTRY_ARRAY emacs_meta_keymap = {
 
   /* Meta keys.  Just like above, but the high bit is set. */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-@ */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-a */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-b */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-c */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-d */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-e */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-f */
-  { ISFUNC, rl_abort },                /* Meta-Control-g */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-@ */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-a */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-b */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-c */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-d */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-e */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-f */
+  { ISFUNC, rl_abort },                        /* Meta-Control-g */
   { ISFUNC, rl_backward_kill_word },   /* Meta-Control-h */
-  { ISFUNC, rl_tab_insert },   /* Meta-Control-i */
-  { ISFUNC, rl_vi_editing_mode }, /* Meta-Control-j */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-k */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-l */
-  { ISFUNC, rl_vi_editing_mode }, /* Meta-Control-m */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-n */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-o */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-p */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-q */
-  { ISFUNC, rl_revert_line },  /* Meta-Control-r */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-s */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-t */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-u */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-v */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-w */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-x */
-  { ISFUNC, rl_yank_nth_arg }, /* Meta-Control-y */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-z */
-
-  { ISFUNC, rl_complete },     /* Meta-Control-[ */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-\ */
+  { ISFUNC, rl_tab_insert },           /* Meta-Control-i */
+  { ISFUNC, rl_vi_editing_mode },      /* Meta-Control-j */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-k */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-l */
+  { ISFUNC, rl_vi_editing_mode },      /* Meta-Control-m */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-n */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-o */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-p */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-q */
+  { ISFUNC, rl_revert_line },          /* Meta-Control-r */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-s */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-t */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-u */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-v */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-w */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-x */
+  { ISFUNC, rl_yank_nth_arg },         /* Meta-Control-y */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-z */
+
+  { ISFUNC, rl_complete },             /* Meta-Control-[ */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-\ */
   { ISFUNC, rl_backward_char_search }, /* Meta-Control-] */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-^ */
-  { ISFUNC, (Function *)0x0 }, /* Meta-Control-_ */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-^ */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-Control-_ */
 
   /* The start of printing characters. */
-  { ISFUNC, rl_set_mark },     /* Meta-SPACE */
-  { ISFUNC, (Function *)0x0 }, /* Meta-! */
-  { ISFUNC, (Function *)0x0 }, /* Meta-" */
-  { ISFUNC, rl_insert_comment },/* Meta-# */
-  { ISFUNC, (Function *)0x0 }, /* Meta-$ */
-  { ISFUNC, (Function *)0x0 }, /* Meta-% */
-  { ISFUNC, rl_tilde_expand }, /* Meta-& */
-  { ISFUNC, (Function *)0x0 }, /* Meta-' */
-  { ISFUNC, (Function *)0x0 }, /* Meta-( */
-  { ISFUNC, (Function *)0x0 }, /* Meta-) */
+  { ISFUNC, rl_set_mark },             /* Meta-SPACE */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-! */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-" */
+  { ISFUNC, rl_insert_comment },       /* Meta-# */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-$ */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-% */
+  { ISFUNC, rl_tilde_expand },         /* Meta-& */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-' */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-( */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-) */
   { ISFUNC, rl_insert_completions },   /* Meta-* */
-  { ISFUNC, (Function *)0x0 }, /* Meta-+ */
-  { ISFUNC, (Function *)0x0 }, /* Meta-, */
-  { ISFUNC, rl_digit_argument }, /* Meta-- */
-  { ISFUNC, rl_yank_last_arg}, /* Meta-. */
-  { ISFUNC, (Function *)0x0 }, /* Meta-/ */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-+ */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-, */
+  { ISFUNC, rl_digit_argument },       /* Meta-- */
+  { ISFUNC, rl_yank_last_arg},         /* Meta-. */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-/ */
 
   /* Regular digits. */
-  { ISFUNC, rl_digit_argument }, /* Meta-0 */
-  { ISFUNC, rl_digit_argument }, /* Meta-1 */
-  { ISFUNC, rl_digit_argument }, /* Meta-2 */
-  { ISFUNC, rl_digit_argument }, /* Meta-3 */
-  { ISFUNC, rl_digit_argument }, /* Meta-4 */
-  { ISFUNC, rl_digit_argument }, /* Meta-5 */
-  { ISFUNC, rl_digit_argument }, /* Meta-6 */
-  { ISFUNC, rl_digit_argument }, /* Meta-7 */
-  { ISFUNC, rl_digit_argument }, /* Meta-8 */
-  { ISFUNC, rl_digit_argument }, /* Meta-9 */
+  { ISFUNC, rl_digit_argument },       /* Meta-0 */
+  { ISFUNC, rl_digit_argument },       /* Meta-1 */
+  { ISFUNC, rl_digit_argument },       /* Meta-2 */
+  { ISFUNC, rl_digit_argument },       /* Meta-3 */
+  { ISFUNC, rl_digit_argument },       /* Meta-4 */
+  { ISFUNC, rl_digit_argument },       /* Meta-5 */
+  { ISFUNC, rl_digit_argument },       /* Meta-6 */
+  { ISFUNC, rl_digit_argument },       /* Meta-7 */
+  { ISFUNC, rl_digit_argument },       /* Meta-8 */
+  { ISFUNC, rl_digit_argument },       /* Meta-9 */
 
   /* A little more punctuation. */
-  { ISFUNC, (Function *)0x0 },         /* Meta-: */
-  { ISFUNC, (Function *)0x0 },         /* Meta-; */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-: */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-; */
   { ISFUNC, rl_beginning_of_history }, /* Meta-< */
   { ISFUNC, rl_possible_completions }, /* Meta-= */
   { ISFUNC, rl_end_of_history },       /* Meta-> */
   { ISFUNC, rl_possible_completions }, /* Meta-? */
-  { ISFUNC, (Function *)0x0 },         /* Meta-@ */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-@ */
 
   /* Uppercase alphabet. */
   { ISFUNC, rl_do_lowercase_version }, /* Meta-A */
@@ -418,456 +418,456 @@ KEYMAP_ENTRY_ARRAY emacs_meta_keymap = {
   { ISFUNC, rl_do_lowercase_version }, /* Meta-Z */
 
   /* Some more punctuation. */
-  { ISFUNC, (Function *)0x0 },         /* Meta-[ */    /* was rl_arrow_keys */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Meta-[ */    /* was rl_arrow_keys */
   { ISFUNC, rl_delete_horizontal_space },      /* Meta-\ */
-  { ISFUNC, (Function *)0x0 },         /* Meta-] */
-  { ISFUNC, (Function *)0x0 },         /* Meta-^ */
-  { ISFUNC, rl_yank_last_arg },                /* Meta-_ */
-  { ISFUNC, (Function *)0x0 },         /* Meta-` */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Meta-] */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Meta-^ */
+  { ISFUNC, rl_yank_last_arg },                        /* Meta-_ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Meta-` */
 
   /* Lowercase alphabet. */
-  { ISFUNC, (Function *)0x0 }, /* Meta-a */
-  { ISFUNC, rl_backward_word },        /* Meta-b */
-  { ISFUNC, rl_capitalize_word }, /* Meta-c */
-  { ISFUNC, rl_kill_word },    /* Meta-d */
-  { ISFUNC, (Function *)0x0 }, /* Meta-e */
-  { ISFUNC, rl_forward_word }, /* Meta-f */
-  { ISFUNC, (Function *)0x0 }, /* Meta-g */
-  { ISFUNC, (Function *)0x0 }, /* Meta-h */
-  { ISFUNC, (Function *)0x0 }, /* Meta-i */
-  { ISFUNC, (Function *)0x0 }, /* Meta-j */
-  { ISFUNC, (Function *)0x0 }, /* Meta-k */
-  { ISFUNC, rl_downcase_word },        /* Meta-l */
-  { ISFUNC, (Function *)0x0 }, /* Meta-m */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-a */
+  { ISFUNC, rl_backward_word },                /* Meta-b */
+  { ISFUNC, rl_capitalize_word },      /* Meta-c */
+  { ISFUNC, rl_kill_word },            /* Meta-d */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-e */
+  { ISFUNC, rl_forward_word },         /* Meta-f */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-g */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-h */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-i */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-j */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-k */
+  { ISFUNC, rl_downcase_word },                /* Meta-l */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-m */
   { ISFUNC, rl_noninc_forward_search },        /* Meta-n */
-  { ISFUNC, (Function *)0x0 }, /* Meta-o */    /* was rl_arrow_keys */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-o */    /* was rl_arrow_keys */
   { ISFUNC, rl_noninc_reverse_search },        /* Meta-p */
-  { ISFUNC, (Function *)0x0 }, /* Meta-q */
-  { ISFUNC, rl_revert_line },  /* Meta-r */
-  { ISFUNC, (Function *)0x0 }, /* Meta-s */
-  { ISFUNC, rl_transpose_words }, /* Meta-t */
-  { ISFUNC, rl_upcase_word },  /* Meta-u */
-  { ISFUNC, (Function *)0x0 }, /* Meta-v */
-  { ISFUNC, (Function *)0x0 }, /* Meta-w */
-  { ISFUNC, (Function *)0x0 }, /* Meta-x */
-  { ISFUNC, rl_yank_pop },     /* Meta-y */
-  { ISFUNC, (Function *)0x0 }, /* Meta-z */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-q */
+  { ISFUNC, rl_revert_line },          /* Meta-r */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-s */
+  { ISFUNC, rl_transpose_words },      /* Meta-t */
+  { ISFUNC, rl_upcase_word },          /* Meta-u */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-v */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-w */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-x */
+  { ISFUNC, rl_yank_pop },             /* Meta-y */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-z */
 
   /* Final punctuation. */
-  { ISFUNC, (Function *)0x0 }, /* Meta-{ */
-  { ISFUNC, (Function *)0x0 }, /* Meta-| */
-  { ISFUNC, (Function *)0x0 }, /* Meta-} */
-  { ISFUNC, rl_tilde_expand }, /* Meta-~ */
-  { ISFUNC, rl_backward_kill_word }, /* Meta-rubout */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-{ */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-| */
+  { ISFUNC, (rl_command_func_t *)0x0 },        /* Meta-} */
+  { ISFUNC, rl_tilde_expand },         /* Meta-~ */
+  { ISFUNC, rl_backward_kill_word },   /* Meta-rubout */
 
 #if KEYMAP_SIZE > 128
   /* Undefined keys. */
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 }
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 }
 #endif /* KEYMAP_SIZE > 128 */
 };
 
 KEYMAP_ENTRY_ARRAY emacs_ctlx_keymap = {
 
   /* Control keys. */
-  { ISFUNC, (Function *)0x0 },         /* Control-@ */
-  { ISFUNC, (Function *)0x0 },         /* Control-a */
-  { ISFUNC, (Function *)0x0 },         /* Control-b */
-  { ISFUNC, (Function *)0x0 },         /* Control-c */
-  { ISFUNC, (Function *)0x0 },         /* Control-d */
-  { ISFUNC, (Function *)0x0 },         /* Control-e */
-  { ISFUNC, (Function *)0x0 },         /* Control-f */
-  { ISFUNC, rl_abort },                        /* Control-g */
-  { ISFUNC, (Function *)0x0 },         /* Control-h */
-  { ISFUNC, (Function *)0x0 },         /* Control-i */
-  { ISFUNC, (Function *)0x0 },         /* Control-j */
-  { ISFUNC, (Function *)0x0 },         /* Control-k */
-  { ISFUNC, (Function *)0x0 },         /* Control-l */
-  { ISFUNC, (Function *)0x0 },         /* Control-m */
-  { ISFUNC, (Function *)0x0 },         /* Control-n */
-  { ISFUNC, (Function *)0x0 },         /* Control-o */
-  { ISFUNC, (Function *)0x0 },         /* Control-p */
-  { ISFUNC, (Function *)0x0 },         /* Control-q */
-  { ISFUNC, rl_re_read_init_file },    /* Control-r */
-  { ISFUNC, (Function *)0x0 },         /* Control-s */
-  { ISFUNC, (Function *)0x0 },         /* Control-t */
-  { ISFUNC, rl_undo_command },         /* Control-u */
-  { ISFUNC, (Function *)0x0 },         /* Control-v */
-  { ISFUNC, (Function *)0x0 },         /* Control-w */
-  { ISFUNC, rl_exchange_point_and_mark },/* Control-x */
-  { ISFUNC, (Function *)0x0 },         /* Control-y */
-  { ISFUNC, (Function *)0x0 },         /* Control-z */
-  { ISFUNC, (Function *)0x0 },         /* Control-[ */
-  { ISFUNC, (Function *)0x0 },         /* Control-\ */
-  { ISFUNC, (Function *)0x0 },         /* Control-] */
-  { ISFUNC, (Function *)0x0 },         /* Control-^ */
-  { ISFUNC, (Function *)0x0 },         /* Control-_ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-@ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-a */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-b */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-c */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-d */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-e */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-f */
+  { ISFUNC, rl_abort },                                /* Control-g */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-h */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-i */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-j */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-k */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-l */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-m */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-n */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-o */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-p */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-q */
+  { ISFUNC, rl_re_read_init_file },            /* Control-r */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-s */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-t */
+  { ISFUNC, rl_undo_command },                 /* Control-u */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-v */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-w */
+  { ISFUNC, rl_exchange_point_and_mark },      /* Control-x */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-y */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-z */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-[ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-\ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-] */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-^ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-_ */
 
   /* The start of printing characters. */
-  { ISFUNC, (Function *)0x0 },         /* SPACE */
-  { ISFUNC, (Function *)0x0 },         /* ! */
-  { ISFUNC, (Function *)0x0 },         /* " */
-  { ISFUNC, (Function *)0x0 },         /* # */
-  { ISFUNC, (Function *)0x0 },         /* $ */
-  { ISFUNC, (Function *)0x0 },         /* % */
-  { ISFUNC, (Function *)0x0 },         /* & */
-  { ISFUNC, (Function *)0x0 },         /* ' */
-  { ISFUNC, rl_start_kbd_macro },      /* ( */
-  { ISFUNC, rl_end_kbd_macro  },       /* ) */
-  { ISFUNC, (Function *)0x0 },         /* * */
-  { ISFUNC, (Function *)0x0 },         /* + */
-  { ISFUNC, (Function *)0x0 },         /* , */
-  { ISFUNC, (Function *)0x0 },         /* - */
-  { ISFUNC, (Function *)0x0 },         /* . */
-  { ISFUNC, (Function *)0x0 },         /* / */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* SPACE */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ! */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* " */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* # */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* $ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* % */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* & */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ' */
+  { ISFUNC, rl_start_kbd_macro },              /* ( */
+  { ISFUNC, rl_end_kbd_macro  },               /* ) */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* * */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* + */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* , */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* - */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* . */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* / */
 
   /* Regular digits. */
-  { ISFUNC, (Function *)0x0 },         /* 0 */
-  { ISFUNC, (Function *)0x0 },         /* 1 */
-  { ISFUNC, (Function *)0x0 },         /* 2 */
-  { ISFUNC, (Function *)0x0 },         /* 3 */
-  { ISFUNC, (Function *)0x0 },         /* 4 */
-  { ISFUNC, (Function *)0x0 },         /* 5 */
-  { ISFUNC, (Function *)0x0 },         /* 6 */
-  { ISFUNC, (Function *)0x0 },         /* 7 */
-  { ISFUNC, (Function *)0x0 },         /* 8 */
-  { ISFUNC, (Function *)0x0 },         /* 9 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 0 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 1 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 2 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 3 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 4 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 5 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 6 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 7 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 8 */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* 9 */
 
   /* A little more punctuation. */
-  { ISFUNC, (Function *)0x0 }, /* : */
-  { ISFUNC, (Function *)0x0 }, /* ; */
-  { ISFUNC, (Function *)0x0 }, /* < */
-  { ISFUNC, (Function *)0x0 }, /* = */
-  { ISFUNC, (Function *)0x0 }, /* > */
-  { ISFUNC, (Function *)0x0 }, /* ? */
-  { ISFUNC, (Function *)0x0 }, /* @ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* : */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ; */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* < */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* = */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* > */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ? */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* @ */
 
   /* Uppercase alphabet. */
-  { ISFUNC, rl_do_lowercase_version }, /* A */
-  { ISFUNC, rl_do_lowercase_version }, /* B */
-  { ISFUNC, rl_do_lowercase_version }, /* C */
-  { ISFUNC, rl_do_lowercase_version }, /* D */
-  { ISFUNC, rl_do_lowercase_version }, /* E */
-  { ISFUNC, rl_do_lowercase_version }, /* F */
-  { ISFUNC, rl_do_lowercase_version }, /* G */
-  { ISFUNC, rl_do_lowercase_version }, /* H */
-  { ISFUNC, rl_do_lowercase_version }, /* I */
-  { ISFUNC, rl_do_lowercase_version }, /* J */
-  { ISFUNC, rl_do_lowercase_version }, /* K */
-  { ISFUNC, rl_do_lowercase_version }, /* L */
-  { ISFUNC, rl_do_lowercase_version }, /* M */
-  { ISFUNC, rl_do_lowercase_version }, /* N */
-  { ISFUNC, rl_do_lowercase_version }, /* O */
-  { ISFUNC, rl_do_lowercase_version }, /* P */
-  { ISFUNC, rl_do_lowercase_version }, /* Q */
-  { ISFUNC, rl_do_lowercase_version }, /* R */
-  { ISFUNC, rl_do_lowercase_version }, /* S */
-  { ISFUNC, rl_do_lowercase_version }, /* T */
-  { ISFUNC, rl_do_lowercase_version }, /* U */
-  { ISFUNC, rl_do_lowercase_version }, /* V */
-  { ISFUNC, rl_do_lowercase_version }, /* W */
-  { ISFUNC, rl_do_lowercase_version }, /* X */
-  { ISFUNC, rl_do_lowercase_version }, /* Y */
-  { ISFUNC, rl_do_lowercase_version }, /* Z */
+  { ISFUNC, rl_do_lowercase_version },         /* A */
+  { ISFUNC, rl_do_lowercase_version },         /* B */
+  { ISFUNC, rl_do_lowercase_version },         /* C */
+  { ISFUNC, rl_do_lowercase_version },         /* D */
+  { ISFUNC, rl_do_lowercase_version },         /* E */
+  { ISFUNC, rl_do_lowercase_version },         /* F */
+  { ISFUNC, rl_do_lowercase_version },         /* G */
+  { ISFUNC, rl_do_lowercase_version },         /* H */
+  { ISFUNC, rl_do_lowercase_version },         /* I */
+  { ISFUNC, rl_do_lowercase_version },         /* J */
+  { ISFUNC, rl_do_lowercase_version },         /* K */
+  { ISFUNC, rl_do_lowercase_version },         /* L */
+  { ISFUNC, rl_do_lowercase_version },         /* M */
+  { ISFUNC, rl_do_lowercase_version },         /* N */
+  { ISFUNC, rl_do_lowercase_version },         /* O */
+  { ISFUNC, rl_do_lowercase_version },         /* P */
+  { ISFUNC, rl_do_lowercase_version },         /* Q */
+  { ISFUNC, rl_do_lowercase_version },         /* R */
+  { ISFUNC, rl_do_lowercase_version },         /* S */
+  { ISFUNC, rl_do_lowercase_version },         /* T */
+  { ISFUNC, rl_do_lowercase_version },         /* U */
+  { ISFUNC, rl_do_lowercase_version },         /* V */
+  { ISFUNC, rl_do_lowercase_version },         /* W */
+  { ISFUNC, rl_do_lowercase_version },         /* X */
+  { ISFUNC, rl_do_lowercase_version },         /* Y */
+  { ISFUNC, rl_do_lowercase_version },         /* Z */
 
   /* Some more punctuation. */
-  { ISFUNC, (Function *)0x0 },         /* [ */
-  { ISFUNC, (Function *)0x0 },         /* \ */
-  { ISFUNC, (Function *)0x0 },         /* ] */
-  { ISFUNC, (Function *)0x0 },         /* ^ */
-  { ISFUNC, (Function *)0x0 },         /* _ */
-  { ISFUNC, (Function *)0x0 },         /* ` */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* [ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* \ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ] */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ^ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* _ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ` */
 
   /* Lowercase alphabet. */
-  { ISFUNC, (Function *)0x0 },         /* a */
-  { ISFUNC, (Function *)0x0 },         /* b */
-  { ISFUNC, (Function *)0x0 },         /* c */
-  { ISFUNC, (Function *)0x0 },         /* d */
-  { ISFUNC, rl_call_last_kbd_macro },  /* e */
-  { ISFUNC, (Function *)0x0 },         /* f */
-  { ISFUNC, (Function *)0x0 },         /* g */
-  { ISFUNC, (Function *)0x0 },         /* h */
-  { ISFUNC, (Function *)0x0 },         /* i */
-  { ISFUNC, (Function *)0x0 },         /* j */
-  { ISFUNC, (Function *)0x0 },         /* k */
-  { ISFUNC, (Function *)0x0 },         /* l */
-  { ISFUNC, (Function *)0x0 },         /* m */
-  { ISFUNC, (Function *)0x0 },         /* n */
-  { ISFUNC, (Function *)0x0 },         /* o */
-  { ISFUNC, (Function *)0x0 },         /* p */
-  { ISFUNC, (Function *)0x0 },         /* q */
-  { ISFUNC, (Function *)0x0 },         /* r */
-  { ISFUNC, (Function *)0x0 },         /* s */
-  { ISFUNC, (Function *)0x0 },         /* t */
-  { ISFUNC, (Function *)0x0 },         /* u */
-  { ISFUNC, (Function *)0x0 },         /* v */
-  { ISFUNC, (Function *)0x0 },         /* w */
-  { ISFUNC, (Function *)0x0 },         /* x */
-  { ISFUNC, (Function *)0x0 },         /* y */
-  { ISFUNC, (Function *)0x0 },         /* z */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* a */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* b */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* c */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* d */
+  { ISFUNC, rl_call_last_kbd_macro },          /* e */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* f */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* g */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* h */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* i */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* j */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* k */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* l */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* m */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* n */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* o */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* p */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* q */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* r */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* s */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* t */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* u */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* v */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* w */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* x */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* y */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* z */
 
   /* Final punctuation. */
-  { ISFUNC, (Function *)0x0 },         /* { */
-  { ISFUNC, (Function *)0x0 },         /* | */
-  { ISFUNC, (Function *)0x0 },         /* } */
-  { ISFUNC, (Function *)0x0 },         /* ~ */
-  { ISFUNC, rl_backward_kill_line },   /* RUBOUT */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* { */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* | */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* } */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ~ */
+  { ISFUNC, rl_backward_kill_line },           /* RUBOUT */
 
 #if KEYMAP_SIZE > 128
   /* Undefined keys. */
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 }
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 }
 #endif /* KEYMAP_SIZE > 128 */
 };
index 5b71bd701c4e373b8cd6e0e73b9494f303962331..d7fdb42efaae44612c512201ebe97021d2f627ae 100644 (file)
@@ -4,6 +4,22 @@
 # on which program is running, or what terminal is active.
 #
 
+# Copyright (C) 1989-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, 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 USA.
+
 # In all programs, all terminals, make sure this is bound.
 "\C-x\C-r": re-read-init-file
 
index 7246e75f8ce6347170c1d26ad55c02e18bb0ae1f..72c9904ff0fd473b3b8707893ad514a98f9613f4 100644 (file)
@@ -16,6 +16,7 @@
 # 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 USA.
+RL_LIBRARY_VERSION = @LIBVERSION@
 
 SHELL = @MAKE_SHELL@
 RM = rm -f
@@ -25,16 +26,19 @@ VPATH = .:@srcdir@
 top_srcdir = @top_srcdir@
 BUILD_DIR = .
 
+# Support an alternate destination root directory for package building
+DESTDIR =
+
 DEFS = @DEFS@
 CC = @CC@
 CFLAGS = @CFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DREADLINE_LIBRARY
+LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DREADLINE_LIBRARY -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
 CPPFLAGS = @CPPFLAGS@
 
 INCLUDES = -I$(srcdir) -I$(top_srcdir) -I..
 
 CCFLAGS  = $(DEFS) $(LOCAL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(CFLAGS)
-LDFLAGS = -g -L..
+LDFLAGS = -g -L.. @LDFLAGS@
 
 READLINE_LIB = ../libreadline.a
 HISTORY_LIB = ../libhistory.a
@@ -45,26 +49,34 @@ TERMCAP_LIB = @TERMCAP_LIB@
        ${RM} $@
        $(CC) $(CCFLAGS) -c $<
 
-EXECUTABLES = fileman rltest rl rlversion
-OBJECTS = fileman.o rltest.o rl.o rlversion.o
+EXECUTABLES = fileman rltest rl rlcat rlversion histexamp 
+OBJECTS = fileman.o rltest.o rl.o rlversion.o histexamp.o
 
 all: $(EXECUTABLES)
+everything: all rlfe
 
-rl: rl.o
+rl: rl.o $(READLINE_LIB)
        $(CC) $(LDFLAGS) -o $@ rl.o -lreadline $(TERMCAP_LIB)
 
-fileman: fileman.o
+rlcat: rlcat.o $(READLINE_LIB)
+       $(CC) $(LDFLAGS) -o $@ rlcat.o -lreadline $(TERMCAP_LIB)
+
+fileman: fileman.o $(READLINE_LIB)
        $(CC) $(LDFLAGS) -o $@ fileman.o -lreadline $(TERMCAP_LIB)
 
-rltest: rltest.o
+rltest: rltest.o $(READLINE_LIB)
        $(CC) $(LDFLAGS) -o $@ rltest.o -lreadline $(TERMCAP_LIB)
 
 rlversion: rlversion.o $(READLINE_LIB)
        $(CC) $(LDFLAGS) -o $@ rlversion.o -lreadline $(TERMCAP_LIB)
 
+histexamp: histexamp.o $(HISTORY_LIB)
+       $(CC) $(LDFLAGS) -o $@ histexamp.o -lhistory $(TERMCAP_LIB)
+
 clean mostlyclean:
        $(RM) $(OBJECTS)
        $(RM) $(EXECUTABLES) *.exe
+       $(RM) rlfe.o rlfe
 
 distclean maintainer-clean: clean
        $(RM) Makefile
@@ -73,6 +85,13 @@ fileman.o: fileman.c
 rltest.o: rltest.c
 rl.o: rl.c
 rlversion.o: rlversion.c
+histexamp.o: histexamp.c
+
+fileman.o: $(top_srcdir)/readline.h
+rltest.o: $(top_srcdir)/readline.h
+rl.o: $(top_srcdir)/readline.h
+rlversion.o: $(top_srcdir)/readline.h
+histexamp.o: $(top_srcdir)/history.h
 
 # Stuff for Per Bothner's `rlfe' program
  
index dc29a40104f7b6cf91c79b35bd3bd254520a2962..340eee739f602c99e4738ebc093930c9bb5d9ba8 100644 (file)
@@ -1,3 +1,23 @@
+/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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.
+
+   The GNU Readline 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.
+
+   The GNU General Public License is often shipped with GNU software, and
+   is generally kept in a file called COPYING or LICENSE.  If you do not
+   have a copy of the license, write to the Free Software Foundation,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
 /* fileman.c -- A tiny application which demonstrates how to use the
    GNU Readline library.  This application interactively allows users
    to manipulate files and their modes. */
 extern char *xmalloc ();
 
 /* The names of functions that actually do the manipulation. */
-int com_list (), com_view (), com_rename (), com_stat (), com_pwd ();
-int com_delete (), com_help (), com_cd (), com_quit ();
+int com_list PARAMS((char *));
+int com_view PARAMS((char *));
+int com_rename PARAMS((char *));
+int com_stat PARAMS((char *));
+int com_pwd PARAMS((char *));
+int com_delete PARAMS((char *));
+int com_help PARAMS((char *));
+int com_cd PARAMS((char *));
+int com_quit PARAMS((char *));
 
 /* A structure which contains information on the commands this program
    can understand. */
 
 typedef struct {
   char *name;                  /* User printable name of the function. */
-  Function *func;              /* Function to call to do the job. */
+  rl_icpfunc_t *func;          /* Function to call to do the job. */
   char *doc;                   /* Documentation for this function.  */
 } COMMAND;
 
@@ -65,7 +92,7 @@ COMMAND commands[] = {
   { "rename", com_rename, "Rename FILE to NEWNAME" },
   { "stat", com_stat, "Print out statistics on FILE" },
   { "view", com_view, "View the contents of FILE" },
-  { (char *)NULL, (Function *)NULL, (char *)NULL }
+  { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
 };
 
 /* Forward declarations. */
@@ -205,8 +232,8 @@ stripwhite (string)
 /*                                                                  */
 /* **************************************************************** */
 
-char *command_generator ();
-char **fileman_completion ();
+char *command_generator PARAMS((const char *, int));
+char **fileman_completion PARAMS((const char *, int, int));
 
 /* Tell the GNU Readline library how to complete.  We want to try to complete
    on command names if this is the first word in the line, or on filenames
@@ -217,7 +244,7 @@ initialize_readline ()
   rl_readline_name = "FileMan";
 
   /* Tell the completer that we want a crack first. */
-  rl_attempted_completion_function = (CPPFunction *)fileman_completion;
+  rl_attempted_completion_function = fileman_completion;
 }
 
 /* Attempt to complete on the contents of TEXT.  START and END bound the
@@ -227,7 +254,7 @@ initialize_readline ()
    or NULL if there aren't any. */
 char **
 fileman_completion (text, start, end)
-     char *text;
+     const char *text;
      int start, end;
 {
   char **matches;
@@ -238,7 +265,7 @@ fileman_completion (text, start, end)
      to complete.  Otherwise it is the name of a file in the current
      directory. */
   if (start == 0)
-    matches = completion_matches (text, command_generator);
+    matches = rl_completion_matches (text, command_generator);
 
   return (matches);
 }
@@ -248,7 +275,7 @@ fileman_completion (text, start, end)
    start at the top of the list. */
 char *
 command_generator (text, state)
-     char *text;
+     const char *text;
      int state;
 {
   static int list_index, len;
index eceb66df19e1c41b25007b2c00358543444c34e0..45651dfb13792b71ec2e61c4b47d0309cece4bd2 100644 (file)
@@ -1,4 +1,34 @@
-main ()
+/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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.
+
+   The GNU Readline 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.
+
+   The GNU General Public License is often shipped with GNU software, and
+   is generally kept in a file called COPYING or LICENSE.  If you do not
+   have a copy of the license, write to the Free Software Foundation,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#include <stdio.h>
+
+#ifdef READLINE_LIBRARY
+#  include "history.h"
+#else
+#  include <readline/history.h>
+#endif
+
+main (argc, argv)
+     int argc;
+     char **argv;
 {
   char line[1024], *t;
   int len, done = 0;
index 3496efa00e7612bb24d31f66697cef176f4c15a5..9c6cf2c76c6133df1b7755f2066fafb5a9f841b4 100644 (file)
@@ -1,12 +1,31 @@
 /* manexamp.c -- The examples which appear in the documentation are here. */
 
+/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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.
+
+   The GNU Readline 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.
+
+   The GNU General Public License is often shipped with GNU software, and
+   is generally kept in a file called COPYING or LICENSE.  If you do not
+   have a copy of the license, write to the Free Software Foundation,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
 #include <stdio.h>
 #include <readline/readline.h>
 
-
 /* **************************************************************** */
 /*                                                                  */
-                     How to Emulate gets ()                      */
+/*                     How to Emulate gets ()                      */
 /*                                                                  */
 /* **************************************************************** */
 
@@ -82,13 +101,12 @@ invert_case_line (count, key)
 
   for (; start != end; start += direction)
     {
-      if (uppercase_p (rl_line_buffer[start]))
-       rl_line_buffer[start] = to_lower (rl_line_buffer[start]);
-      else if (lowercase_p (rl_line_buffer[start]))
-       rl_line_buffer[start] = to_upper (rl_line_buffer[start]);
+      if (_rl_uppercase_p (rl_line_buffer[start]))
+       rl_line_buffer[start] = _rl_to_lower (rl_line_buffer[start]);
+      else if (_rl_lowercase_p (rl_line_buffer[start]))
+       rl_line_buffer[start] = _rl_to_upper (rl_line_buffer[start]);
     }
 
   /* Move point to on top of the last character changed. */
   rl_point = end - direction;
 }
-
index 2d1d17e600d7b658bfbfda6d3c45d7e1d696d456..d2604895e52fc0cb5467517ae9a27b95e08e362b 100644 (file)
@@ -5,6 +5,26 @@
  * usage: rl [-p prompt] [-u unit] [-d default] [-n nchars]
  */
 
+/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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.
+
+   The GNU Readline 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.
+
+   The GNU General Public License is often shipped with GNU software, and
+   is generally kept in a file called COPYING or LICENSE.  If you do not
+   have a copy of the license, write to the Free Software Foundation,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
 #if defined (HAVE_CONFIG_H)
 #  include <config.h>
 #endif
@@ -38,7 +58,7 @@ set_deftext ()
     {
       rl_insert_text (deftext);
       deftext = (char *)NULL;
-      rl_startup_hook = (Function *)NULL;
+      rl_startup_hook = (rl_hook_func_t *)NULL;
     }
   return 0;
 }
@@ -126,6 +146,6 @@ main (argc, argv)
   if (temp == 0)
     exit (1);
 
-  puts (temp);
+  printf ("%s\n", temp);
   exit (0);
 }
index 5c3c8fde45b39637394368d3846616c267fc0c26..d634d7ce878b5b3016b3cd12911e7e742d4d3d91 100644 (file)
@@ -64,6 +64,8 @@
 #include <unistd.h>
 #include <sys/ioctl.h>
 #include <termios.h>
+#include <limits.h>
+#include <dirent.h>
 
 #ifdef READLINE_LIBRARY
 #  include "readline.h"
@@ -81,6 +83,7 @@
 #endif
 
 #ifndef HAVE_MEMMOVE
+#ifndef memmove
 #  if __GNUC__ > 1
 #    define memmove(d, s, n)   __builtin_memcpy(d, s, n)
 #  else
 #else
 #  define memmove(d, s, n)     memcpy(d, s, n)
 #endif
+#endif
+
+#define APPLICATION_NAME "Rlfe"
+
+#ifndef errno
+extern int errno;
+#endif
 
-#define APPLICATION_NAME "Fep"
+extern int optind;
+extern char *optarg;
+
+static char *progname;
+static char *progversion;
 
 static int in_from_inferior_fd;
 static int out_to_inferior_fd;
@@ -110,13 +124,15 @@ char echo_suppress_buffer[ECHO_SUPPRESS_MAX];
 int echo_suppress_start = 0;
 int echo_suppress_limit = 0;
 
-#define DEBUG
+/* #define DEBUG */
+
+static FILE *logfile = NULL;
 
 #ifdef DEBUG
-FILE *logfile = NULL;
-#define DPRINT0(FMT) (fprintf(logfile, FMT), fflush(logfile))
-#define DPRINT1(FMT, V1) (fprintf(logfile, FMT, V1), fflush(logfile))
-#define DPRINT2(FMT, V1, V2) (fprintf(logfile, FMT, V1, V2), fflush(logfile))
+FILE *debugfile = NULL;
+#define DPRINT0(FMT) (fprintf(debugfile, FMT), fflush(debugfile))
+#define DPRINT1(FMT, V1) (fprintf(debugfile, FMT, V1), fflush(debugfile))
+#define DPRINT2(FMT, V1, V2) (fprintf(debugfile, FMT, V1, V2), fflush(debugfile))
 #else
 #define DPRINT0(FMT) /* Do nothing */
 #define DPRINT1(FMT, V1) /* Do nothing */
@@ -125,6 +141,10 @@ FILE *logfile = NULL;
 
 struct termios orig_term;
 
+static int rlfe_directory_completion_hook __P((char **));
+static int rlfe_directory_rewrite_hook __P((char **));
+static char *rlfe_filename_completion_function __P((const char *, int));
+
 /* Pid of child process. */
 static pid_t child = -1;
 
@@ -370,13 +390,20 @@ my_rl_getc (FILE *dummy)
   return ch;
 }
 
+static void
+usage()
+{
+  fprintf (stderr, "%s: usage: %s [-l filename] [-a] [-n appname] [-hv] [command [arguments...]]\n",
+                  progname, progname);
+}
+
 int
 main(int argc, char** argv)
 {
   char *path;
-  int i;
+  int i, append;
   int master;
-  char *name;
+  char *name, *logfname, *appname;
   int in_from_tty_fd;
   struct sigaction act;
   struct winsize ws;
@@ -387,12 +414,58 @@ main(int argc, char** argv)
   char *prompt = empty_string;
   int ioctl_err = 0;
 
+  if ((progname = strrchr (argv[0], '/')) == 0)
+    progname = argv[0];
+  else
+    progname++;
+  progversion = RL_LIBRARY_VERSION;
+
+  append = 0;
+  appname = APPLICATION_NAME;
+  logfname = (char *)NULL;
+
+  while ((i = getopt (argc, argv, "ahl:n:v")) != EOF)
+    {
+      switch (i)
+       {
+       case 'l':
+         logfname = optarg;
+         break;
+       case 'n':
+         appname = optarg;
+         break;
+       case 'a':
+         append = 1;
+         break;
+       case 'h':
+         usage ();
+         exit (0);
+       case 'v':
+         fprintf (stderr, "%s version %s\n", progname, progversion);
+         exit (0);
+       default:
+         usage ();
+         exit (2);
+       }
+    }
+
+  argc -= optind;
+  argv += optind;
+
+  if (logfname)
+    {
+      logfile = fopen (logfname, append ? "a" : "w");
+      if (logfile == 0)
+       fprintf (stderr, "%s: warning: could not open log file %s: %s\n",
+                        progname, logfname, strerror (errno));
+    }
+    
+  rl_readline_name = appname;
+  
 #ifdef DEBUG
-  logfile = fopen("LOG", "w");
+  debugfile = fopen("LOG", "w");
 #endif
 
-  rl_readline_name = APPLICATION_NAME;
-  
   if ((master = get_master_pty(&name)) < 0)
     {
       perror("ptypair: could not open master pty");
@@ -486,10 +559,10 @@ main(int argc, char** argv)
       /* now start the shell */
       {
        static char* command_args[] = { COMMAND_ARGS, NULL };
-       if (argc <= 1)
+       if (argc < 1)
          execvp(COMMAND, command_args);
        else
-         execvp(argv[1], &argv[1]);
+         execvp(argv[0], &argv[0]);
       }
 
       /* should never be reached */
@@ -535,6 +608,13 @@ main(int argc, char** argv)
   rl_deprep_term_function = null_deprep_terminal; 
   rl_callback_handler_install (prompt, line_handler);
 
+#if 1
+  rl_directory_completion_hook = rlfe_directory_completion_hook;
+  rl_completion_entry_function = rlfe_filename_completion_function;
+#else
+  rl_directory_rewrite_hook = rlfe_directory_rewrite_hook;
+#endif
+
   in_from_tty_fd = STDIN_FILENO;
   FD_ZERO (&in_set);
   maxfd = in_from_inferior_fd > in_from_tty_fd ? in_from_inferior_fd
@@ -644,6 +724,47 @@ main(int argc, char** argv)
            }
          old_count = buf_count;
 
+         /* Do some minimal carriage return translation and backspace
+            processing before logging the input line. */
+         if (logfile)
+           {
+#ifndef __GNUC__
+             char *b;
+#else
+             char b[count + 1];
+#endif
+             int i, j;
+
+#ifndef __GNUC__
+             b = malloc (count + 1);
+             if (b) {
+#endif
+             for (i = 0; i < count; i++)
+               b[i] = buf[buf_count + i];
+             b[i] = '\0';
+             for (i = j = 0; i <= count; i++)
+               {
+                 if (b[i] == '\r')
+                   {
+                     if (b[i+1] != '\n')
+                       b[j++] = '\n';
+                   }
+                 else if (b[i] == '\b')
+                   {
+                     if (i)
+                       j--;
+                   }
+                 else
+                   b[j++] = b[i];
+               }
+             fprintf (logfile, "%s", b);
+
+#ifndef __GNUC__
+             free (b);
+             }
+#endif
+           }
+
           /* Look for any pending echo that we need to suppress. */
          while (echo_suppress_start < echo_suppress_limit
                 && count > 0
@@ -683,3 +804,239 @@ main(int argc, char** argv)
        }
     }
 }
+
+/*
+ *
+ * FILENAME COMPLETION FOR RLFE
+ *
+ */
+
+#ifndef PATH_MAX
+#  define PATH_MAX 1024
+#endif
+
+#define DIRSEP         '/'
+#define ISDIRSEP(x)    ((x) == '/')
+#define PATHSEP(x)     (ISDIRSEP(x) || (x) == 0)
+
+#define DOT_OR_DOTDOT(x) \
+       ((x)[0] == '.' && (PATHSEP((x)[1]) || \
+                         ((x)[1] == '.' && PATHSEP((x)[2]))))
+
+#define FREE(x)                if (x) free(x)
+
+#define STRDUP(s, x)   do { \
+                         s = strdup (x);\
+                         if (s == 0) \
+                           return ((char *)NULL); \
+                       } while (0)
+
+static int
+get_inferior_cwd (path, psize)
+     char *path;
+     size_t psize;
+{
+  int n;
+  static char procfsbuf[PATH_MAX] = { '\0' };
+
+  if (procfsbuf[0] == '\0')
+    sprintf (procfsbuf, "/proc/%d/cwd", (int)child);
+  n = readlink (procfsbuf, path, psize);
+  if (n < 0)
+    return n;
+  if (n > psize)
+    return -1;
+  path[n] = '\0';
+  return n;
+}
+
+static int
+rlfe_directory_rewrite_hook (dirnamep)
+     char **dirnamep;
+{
+  char *ldirname, cwd[PATH_MAX], *retdir, *ld;
+  int n, ldlen;
+
+  ldirname = *dirnamep;
+
+  if (*ldirname == '/')
+    return 0;
+
+  n = get_inferior_cwd (cwd, sizeof(cwd) - 1);
+  if (n < 0)
+    return 0;
+  if (n == 0)  /* current directory */
+    {
+      cwd[0] = '.';
+      cwd[1] = '\0';
+      n = 1;
+    }
+
+  /* Minimally canonicalize ldirname by removing leading `./' */
+  for (ld = ldirname; *ld; )
+    {
+      if (ISDIRSEP (ld[0]))
+       ld++;
+      else if (ld[0] == '.' && PATHSEP(ld[1]))
+       ld++;
+      else
+       break;
+    }
+  ldlen = (ld && *ld) ? strlen (ld) : 0;
+
+  retdir = (char *)malloc (n + ldlen + 3);
+  if (retdir == 0)
+    return 0;
+  if (ldlen)
+    sprintf (retdir, "%s/%s", cwd, ld);
+  else
+    strcpy (retdir, cwd);
+  free (ldirname);
+
+  *dirnamep = retdir;
+
+  DPRINT1("rl_directory_rewrite_hook returns %s\n", retdir);
+  return 1;
+}
+
+/* Translate *DIRNAMEP to be relative to the inferior's CWD.  Leave a trailing
+   slash on the result. */
+static int
+rlfe_directory_completion_hook (dirnamep)
+     char **dirnamep;
+{
+  char *ldirname, *retdir;
+  int n, ldlen;
+
+  ldirname = *dirnamep;
+
+  if (*ldirname == '/')
+    return 0;
+
+  n = rlfe_directory_rewrite_hook (dirnamep);
+  if (n == 0)
+    return 0;
+
+  ldirname = *dirnamep;
+  ldlen = (ldirname && *ldirname) ? strlen (ldirname) : 0;
+
+  if (ldlen == 0 || ldirname[ldlen - 1] != '/')
+    {
+      retdir = (char *)malloc (ldlen + 3);
+      if (retdir == 0)
+       return 0;
+      if (ldlen)
+       strcpy (retdir, ldirname);
+      else
+       retdir[ldlen++] = '.';
+      retdir[ldlen] = '/';
+      retdir[ldlen+1] = '\0';
+      free (ldirname);
+
+      *dirnamep = retdir;
+    }
+
+  DPRINT1("rl_directory_completion_hook returns %s\n", retdir);
+  return 1;
+}
+
+static char *
+rlfe_filename_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static DIR *directory;
+  static char *filename = (char *)NULL;
+  static char *dirname = (char *)NULL, *ud = (char *)NULL;
+  static int flen, udlen;
+  char *temp;
+  struct dirent *dentry;
+
+  if (state == 0)
+    {
+      if (directory)
+       {
+         closedir (directory);
+         directory = 0;
+       }
+      FREE (dirname);
+      FREE (filename);
+      FREE (ud);
+
+      if (text && *text)
+        STRDUP (filename, text);
+      else
+       {
+         filename = malloc(1); 
+         if (filename == 0)
+           return ((char *)NULL);
+         filename[0] = '\0';
+       }
+      dirname = (text && *text) ? strdup (text) : strdup (".");
+      if (dirname == 0)
+        return ((char *)NULL);
+
+      temp = strrchr (dirname, '/');
+      if (temp)
+       {
+         strcpy (filename, ++temp);
+         *temp = '\0';
+       }
+      else
+       {
+         dirname[0] = '.';
+         dirname[1] = '\0';
+       }
+
+      STRDUP (ud, dirname);
+      udlen = strlen (ud);
+
+      rlfe_directory_completion_hook (&dirname);
+
+      directory = opendir (dirname);
+      flen = strlen (filename);
+
+      rl_filename_completion_desired = 1;
+    }
+
+  dentry = 0;
+  while (directory && (dentry = readdir (directory)))
+    {
+      if (flen == 0)
+       {
+          if (DOT_OR_DOTDOT(dentry->d_name) == 0)
+            break;
+       }
+      else
+       {
+         if ((dentry->d_name[0] == filename[0]) &&
+             (strlen (dentry->d_name) >= flen) &&
+             (strncmp (filename, dentry->d_name, flen) == 0))
+           break;
+       }
+    }
+
+  if (dentry == 0)
+    {
+      if (directory)
+       {
+         closedir (directory);
+         directory = 0;
+       }
+      FREE (dirname);
+      FREE (filename);
+      FREE (ud);
+      dirname = filename = ud = 0;
+      return ((char *)NULL);
+    }
+
+  if (ud == 0 || (ud[0] == '.' && ud[1] == '\0'))
+    temp = strdup (dentry->d_name);
+  else
+    {
+      temp = malloc (1 + udlen + strlen (dentry->d_name));
+      strcpy (temp, ud);
+      strcpy (temp + udlen, dentry->d_name);
+    }
+  return (temp);
+}
index 6250f900d42d0237420667ecf7b31cddc3dc380c..99f083b2b9c73d34090b5c58baf88568167c3aad 100644 (file)
@@ -4,6 +4,26 @@
 /*                                                                 */
 /* **************************************************************** */
 
+/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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.
+
+   The GNU Readline 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.
+
+   The GNU General Public License is often shipped with GNU software, and
+   is generally kept in a file called COPYING or LICENSE.  If you do not
+   have a copy of the license, write to the Free Software Foundation,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
 #if defined (HAVE_CONFIG_H)
 #include <config.h>
 #endif
index 652d37ccb88446daed24c1e6f74699a11957a2e3..53949d1e3b73ee7674c30e939a4c58a2d281de08 100644 (file)
@@ -2,6 +2,26 @@
  * rlversion -- print out readline's version number
  */
 
+/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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.
+
+   The GNU Readline 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.
+
+   The GNU General Public License is often shipped with GNU software, and
+   is generally kept in a file called COPYING or LICENSE.  If you do not
+   have a copy of the license, write to the Free Software Foundation,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
 #if defined (HAVE_CONFIG_H)
 #  include <config.h>
 #endif
index 1f7ba87129ddd79bb837954bbefd616522e6f100..fe9a1da43d7ee73fc05fe0b9be89c52164fbd257 100644 (file)
@@ -46,7 +46,7 @@ typedef int QSFUNC (const void *, const void *);
 typedef int QSFUNC ();
 #endif
 
-extern int _rl_qsort_string_compare ();
+extern int _rl_qsort_string_compare PARAMS((char **, char **));
 
 FUNMAP **funmap;
 static int funmap_size;
@@ -60,7 +60,8 @@ static FUNMAP default_funmap[] = {
   { "abort", rl_abort },
   { "accept-line", rl_newline },
   { "arrow-key-prefix", rl_arrow_keys },
-  { "backward-char", rl_backward },
+  { "backward-byte", rl_backward_byte },
+  { "backward-char", rl_backward_char },
   { "backward-delete-char", rl_rubout },
   { "backward-kill-line", rl_backward_kill_line },
   { "backward-kill-word", rl_backward_kill_word },
@@ -91,7 +92,8 @@ static FUNMAP default_funmap[] = {
   { "end-of-line", rl_end_of_line },
   { "exchange-point-and-mark", rl_exchange_point_and_mark },
   { "forward-backward-delete-char", rl_rubout_or_delete },
-  { "forward-char", rl_forward },
+  { "forward-byte", rl_forward_byte },
+  { "forward-char", rl_forward_char },
   { "forward-search-history", rl_forward_search_history },
   { "forward-word", rl_forward_word },
   { "history-search-backward", rl_history_search_backward },
@@ -108,7 +110,8 @@ static FUNMAP default_funmap[] = {
   { "non-incremental-reverse-search-history", rl_noninc_reverse_search },
   { "non-incremental-forward-search-history-again", rl_noninc_forward_search_again },
   { "non-incremental-reverse-search-history-again", rl_noninc_reverse_search_again },
-#ifdef __CYGWIN32__
+  { "overwrite-mode", rl_overwrite_mode },
+#ifdef __CYGWIN__
   { "paste-from-clipboard", rl_paste_from_clipboard },
 #endif
   { "possible-completions", rl_possible_completions },
@@ -142,7 +145,6 @@ static FUNMAP default_funmap[] = {
   { "vi-arg-digit", rl_vi_arg_digit },
   { "vi-back-to-indent", rl_vi_back_to_indent },
   { "vi-bWord", rl_vi_bWord },
-  { "vi-bracktype", rl_vi_bracktype },
   { "vi-bword", rl_vi_bword },
   { "vi-change-case", rl_vi_change_case },
   { "vi-change-char", rl_vi_change_char },
@@ -182,13 +184,13 @@ static FUNMAP default_funmap[] = {
   { "vi-yank-to", rl_vi_yank_to },
 #endif /* VI_MODE */
 
- {(char *)NULL, (Function *)NULL }
+ {(char *)NULL, (rl_command_func_t *)NULL }
 };
 
 int
 rl_add_funmap_entry (name, function)
-     char *name;
-     Function *function;
+     const char *name;
+     rl_command_func_t *function;
 {
   if (funmap_entry + 2 >= funmap_size)
     {
@@ -225,21 +227,21 @@ rl_initialize_funmap ()
 /* Produce a NULL terminated array of known function names.  The array
    is sorted.  The array itself is allocated, but not the strings inside.
    You should free () the array when you done, but not the pointrs. */
-char **
+const char **
 rl_funmap_names ()
 {
-  char **result;
+  const char **result;
   int result_size, result_index;
 
   /* Make sure that the function map has been initialized. */
   rl_initialize_funmap ();
 
-  for (result_index = result_size = 0, result = (char **)NULL; funmap[result_index]; result_index++)
+  for (result_index = result_size = 0, result = (const char **)NULL; funmap[result_index]; result_index++)
     {
       if (result_index + 2 > result_size)
        {
          result_size += 20;
-         result = (char **)xrealloc (result, result_size * sizeof (char *));
+         result = (const char **)xrealloc (result, result_size * sizeof (char *));
        }
 
       result[result_index] = funmap[result_index]->name;
@@ -249,12 +251,3 @@ rl_funmap_names ()
   qsort (result, result_index, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
   return (result);
 }
-
-/* Things that mean `Control'. */
-char *possible_control_prefixes[] = {
-  "Control-", "C-", "CTRL-", (char *)NULL
-};
-
-char *possible_meta_prefixes[] = {
-  "Meta", "M-", (char *)NULL
-};
index 78da3e585a651983535fe672b05eadcaee09cfe1..6c81196161d86df3e707b59eb7453a72523aaf95 100644 (file)
 #  include <unistd.h>
 #endif
 
-#if defined (HAVE_STRING_H)
-#  include <string.h>
-#else
-#  include <strings.h>
-#endif /* !HAVE_STRING_H */
+#include "rlmbutil.h"
 
 #include "history.h"
 #include "histlib.h"
 #define HISTORY_WORD_DELIMITERS                " \t\n;&()|<>"
 #define HISTORY_QUOTE_CHARACTERS       "\"'`"
 
+typedef int _hist_search_func_t PARAMS((const char *, int));
+
+extern int rl_byte_oriented;   /* declared in mbutil.c */
+
 static char error_pointer;
 
 static char *subst_lhs;
@@ -63,10 +63,10 @@ static char *subst_rhs;
 static int subst_lhs_len;
 static int subst_rhs_len;
 
-static char *get_history_word_specifier __P((char *, char *, int *));
-static char *history_find_word __P((char *, int));
+static char *get_history_word_specifier PARAMS((char *, char *, int *));
+static char *history_find_word PARAMS((char *, int));
 
-static char *quote_breaks __P((char *));
+static char *quote_breaks PARAMS((char *));
 
 /* Variables exported by this file. */
 /* The character that represents the start of a history expansion
@@ -91,9 +91,12 @@ char *history_no_expand_chars = " \t\n\r=";
    The default is 0. */
 int history_quotes_inhibit_expansion = 0;
 
+/* Used to split words by history_tokenize_internal. */
+char *history_word_delimiters = HISTORY_WORD_DELIMITERS;
+
 /* If set, this points to a function that is called to verify that a
    particular history expansion should be performed. */
-Function *history_inhibit_expansion_function;
+rl_linebuf_func_t *history_inhibit_expansion_function;
 
 /* **************************************************************** */
 /*                                                                 */
@@ -122,7 +125,7 @@ static char *search_match;
    line = get_history_event ("!echo:p", &index, 0);  */
 char *
 get_history_event (string, caller_index, delimiting_quote)
-     char *string;
+     const char *string;
      int *caller_index;
      int delimiting_quote;
 {
@@ -130,7 +133,7 @@ get_history_event (string, caller_index, delimiting_quote)
   register char c;
   HIST_ENTRY *entry;
   int which, sign, local_index, substring_okay;
-  Function *search_func;
+  _hist_search_func_t *search_func;
   char *temp;
 
   /* The event can be specified in a number of ways.
@@ -199,15 +202,33 @@ get_history_event (string, caller_index, delimiting_quote)
 
   /* Only a closing `?' or a newline delimit a substring search string. */
   for (local_index = i; c = string[i]; i++)
-    if ((!substring_okay && (whitespace (c) || c == ':' ||
-       (history_search_delimiter_chars && member (c, history_search_delimiter_chars)) ||
-       string[i] == delimiting_quote)) ||
-       string[i] == '\n' ||
-       (substring_okay && string[i] == '?'))
-      break;
+#if defined (HANDLE_MULTIBYTE)
+    if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+      {
+       int v;
+       mbstate_t ps;
+
+       memset (&ps, 0, sizeof (mbstate_t));
+       /* These produce warnings because we're passing a const string to a
+          function that takes a non-const string. */
+       _rl_adjust_point (string, i, &ps);
+       if ((v = _rl_get_char_len (string + i, &ps)) > 1)
+         {
+           i += v - 1;
+           continue;
+         }
+      }
+    else
+#endif /* HANDLE_MULTIBYTE */
+      if ((!substring_okay && (whitespace (c) || c == ':' ||
+         (history_search_delimiter_chars && member (c, history_search_delimiter_chars)) ||
+         string[i] == delimiting_quote)) ||
+         string[i] == '\n' ||
+         (substring_okay && string[i] == '?'))
+       break;
 
   which = i - local_index;
-  temp = xmalloc (1 + which);
+  temp = (char *)xmalloc (1 + which);
   if (which)
     strncpy (temp, string + local_index, which);
   temp[which] = '\0';
@@ -309,7 +330,7 @@ quote_breaks (s)
        len += 2;
     }
 
-  r = ret = xmalloc (len);
+  r = ret = (char *)xmalloc (len);
   *r++ = '\'';
   for (p = s; p && *p; )
     {
@@ -340,7 +361,8 @@ hist_error(s, start, current, errtype)
       char *s;
       int start, current, errtype;
 {
-  char *temp, *emsg;
+  char *temp;
+  const char *emsg;
   int ll, elen;
 
   ll = current - start;
@@ -373,7 +395,7 @@ hist_error(s, start, current, errtype)
       break;
     }
 
-  temp = xmalloc (ll + elen + 3);
+  temp = (char *)xmalloc (ll + elen + 3);
   strncpy (temp, s + start, ll);
   temp[ll] = ':';
   temp[ll + 1] = ' ';
@@ -399,17 +421,37 @@ get_subst_pattern (str, iptr, delimiter, is_rhs, lenptr)
      int *iptr, delimiter, is_rhs, *lenptr;
 {
   register int si, i, j, k;
-  char *s = (char *) NULL;
+  char *s;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+#endif
 
+  s = (char *)NULL;
   i = *iptr;
 
+#if defined (HANDLE_MULTIBYTE)
+  memset (&ps, 0, sizeof (mbstate_t));
+  _rl_adjust_point (str, i, &ps);
+#endif
+
   for (si = i; str[si] && str[si] != delimiter; si++)
-    if (str[si] == '\\' && str[si + 1] == delimiter)
-      si++;
+#if defined (HANDLE_MULTIBYTE)
+    if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+      {
+       int v;
+       if ((v = _rl_get_char_len (str + si, &ps)) > 1)
+         si += v - 1;
+       else if (str[si] == '\\' && str[si + 1] == delimiter)
+         si++;
+      }
+    else
+#endif /* HANDLE_MULTIBYTE */
+      if (str[si] == '\\' && str[si + 1] == delimiter)
+       si++;
 
   if (si > i || is_rhs)
     {
-      s = xmalloc (si - i + 1);
+      s = (char *)xmalloc (si - i + 1);
       for (j = 0, k = i; k < si; j++, k++)
        {
          /* Remove a backslash quoting the search string delimiter. */
@@ -436,13 +478,13 @@ postproc_subst_rhs ()
   char *new;
   int i, j, new_size;
 
-  new = xmalloc (new_size = subst_rhs_len + subst_lhs_len);
+  new = (char *)xmalloc (new_size = subst_rhs_len + subst_lhs_len);
   for (i = j = 0; i < subst_rhs_len; i++)
     {
       if (subst_rhs[i] == '&')
        {
          if (j + subst_lhs_len >= new_size)
-           new = xrealloc (new, (new_size = new_size * 2 + subst_lhs_len));
+           new = (char *)xrealloc (new, (new_size = new_size * 2 + subst_lhs_len));
          strcpy (new + j, subst_lhs);
          j += subst_lhs_len;
        }
@@ -452,7 +494,7 @@ postproc_subst_rhs ()
          if (subst_rhs[i] == '\\' && subst_rhs[i + 1] == '&')
            i++;
          if (j >= new_size)
-           new = xrealloc (new, new_size *= 2);
+           new = (char *)xrealloc (new, new_size *= 2);
          new[j++] = subst_rhs[i];
        }
     }
@@ -478,8 +520,13 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
   int substitute_globally, want_quotes, print_only;
   char *event, *temp, *result, *tstr, *t, c, *word_spec;
   int result_len;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
 
-  result = xmalloc (result_len = 128);
+  result = (char *)xmalloc (result_len = 128);
 
   i = start;
 
@@ -508,8 +555,21 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
         quote, then this expansion takes place inside of the
         quoted string.  If we have to search for some text ("!foo"),
         allow the delimiter to end the search string. */
-      if (i && (string[i - 1] == '\'' || string[i - 1] == '"'))
-       quoted_search_delimiter = string[i - 1];
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         int c, l;
+         l = _rl_find_prev_mbchar (string, i, MB_FIND_ANY);
+         c = string[l];
+         /* XXX - original patch had i - 1 ???  If i == 0 it would fail. */
+         if (i && (c == '\'' || c == '"'))
+           quoted_search_delimiter = c;
+       }
+      else
+#endif /* HANDLE_MULTIBYTE */    
+       if (i && (string[i - 1] == '\'' || string[i - 1] == '"'))
+         quoted_search_delimiter = string[i - 1];
+
       event = get_history_event (string, &i, quoted_search_delimiter);
     }
          
@@ -622,13 +682,26 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
        case '&':
        case 's':
          {
-           char *new_event, *t;
+           char *new_event;
            int delimiter, failed, si, l_temp;
 
            if (c == 's')
              {
                if (i + 2 < (int)strlen (string))
-                 delimiter = string[i + 2];
+                 {
+#if defined (HANDLE_MULTIBYTE)
+                   if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+                     {
+                       _rl_adjust_point (string, i + 2, &ps);
+                       if (_rl_get_char_len (string + i + 2, &ps) > 1)
+                         delimiter = 0;
+                       else
+                         delimiter = string[i + 2];
+                     }
+                   else
+#endif /* HANDLE_MULTIBYTE */
+                     delimiter = string[i + 2];
+                 }
                else
                  break;        /* no search delimiter */
 
@@ -692,7 +765,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
              if (STREQN (temp+si, subst_lhs, subst_lhs_len))
                {
                  int len = subst_rhs_len - subst_lhs_len + l_temp;
-                 new_event = xmalloc (1 + len);
+                 new_event = (char *)xmalloc (1 + len);
                  strncpy (new_event, temp, si);
                  strncpy (new_event + si, subst_rhs, subst_rhs_len);
                  strncpy (new_event + si + subst_rhs_len,
@@ -741,7 +814,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
       char *x;
 
       if (want_quotes == 'q')
-       x = single_quote (temp);
+       x = sh_single_quote (temp);
       else if (want_quotes == 'x')
        x = quote_breaks (temp);
       else
@@ -753,7 +826,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
 
   n = strlen (temp);
   if (n >= result_len)
-    result = xrealloc (result, n + 2);
+    result = (char *)xrealloc (result, n + 2);
   strcpy (result, temp);
   free (temp);
 
@@ -784,7 +857,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
              { \
                while (j >= result_len) \
                  result_len += 128; \
-               result = xrealloc (result, result_len); \
+               result = (char *)xrealloc (result, result_len); \
              } \
            strcpy (result + j - sl, s); \
          } \
@@ -794,7 +867,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
        do \
          { \
            if (j >= result_len - 1) \
-             result = xrealloc (result, result_len += 64); \
+             result = (char *)xrealloc (result, result_len += 64); \
            result[j++] = c; \
            result[j] = '\0'; \
          } \
@@ -813,9 +886,17 @@ history_expand (hstring, output)
   int result_len;
   char *result;
 
+#if defined (HANDLE_MULTIBYTE)
+  char mb[MB_LEN_MAX];
+  mbstate_t ps;
+#endif
+
   /* Used when adding the string. */
   char *temp;
 
+  if (output == 0)
+    return 0;
+
   /* Setting the history expansion character to 0 inhibits all
      history expansion. */
   if (history_expansion_char == 0)
@@ -825,7 +906,7 @@ history_expand (hstring, output)
     }
     
   /* Prepare the buffer for printing error messages. */
-  result = xmalloc (result_len = 256);
+  result = (char *)xmalloc (result_len = 256);
   result[0] = '\0';
 
   only_printing = modified = 0;
@@ -842,7 +923,7 @@ history_expand (hstring, output)
      that is the substitution that we do. */
   if (hstring[0] == history_subst_char)
     {
-      string = xmalloc (l + 5);
+      string = (char *)xmalloc (l + 5);
 
       string[0] = string[1] = history_expansion_char;
       string[2] = ':';
@@ -852,6 +933,10 @@ history_expand (hstring, output)
     }
   else
     {
+#if defined (HANDLE_MULTIBYTE)
+      memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
       string = hstring;
       /* If not quick substitution, still maybe have to do expansion. */
 
@@ -859,13 +944,26 @@ history_expand (hstring, output)
         is NOT an expansion. */
       for (i = 0; string[i]; i++)
        {
+#if defined (HANDLE_MULTIBYTE)
+         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+           {
+             int v;
+             v = _rl_get_char_len (string + i, &ps);
+             if (v > 1)
+               {
+                 i += v - 1;
+                 continue;
+               }
+           }
+#endif /* HANDLE_MULTIBYTE */
+
          cc = string[i + 1];
-         /* The history_comment_char, if set, appearing that the beginning
+         /* The history_comment_char, if set, appearing at the beginning
             of a word signifies that the rest of the line should not have
             history expansion performed on it.
             Skip the rest of the line and break out of the loop. */
          if (history_comment_char && string[i] == history_comment_char &&
-             (i == 0 || member (string[i - 1], HISTORY_WORD_DELIMITERS)))
+             (i == 0 || member (string[i - 1], history_word_delimiters)))
            {
              while (string[i])
                i++;
@@ -923,6 +1021,30 @@ history_expand (hstring, output)
          continue;
        }
 
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         int k, c;
+
+         c = tchar;
+         memset (mb, 0, sizeof (mb));
+         for (k = 0; k < MB_LEN_MAX; k++)
+           {
+             mb[k] = (char)c;
+             memset (&ps, 0, sizeof (mbstate_t));
+             if (_rl_get_char_len (mb, &ps) == -2)
+               c = string[++i];
+             else
+               break;
+           }
+         if (strlen (mb) > 1)
+           {
+             ADD_STRING (mb);
+             break;
+           }
+       }
+#endif /* HANDLE_MULTIBYTE */
+
       if (tchar == history_expansion_char)
        tchar = -3;
       else if (tchar == history_comment_char)
@@ -951,7 +1073,7 @@ history_expand (hstring, output)
                hist_string_extract_single_quoted (string, &i);
 
                slen = i - quote + 2;
-               temp = xmalloc (slen);
+               temp = (char *)xmalloc (slen);
                strncpy (temp, string + quote, slen);
                temp[slen - 1] = '\0';
                ADD_STRING (temp);
@@ -963,9 +1085,9 @@ history_expand (hstring, output)
          }
 
        case -2:                /* history_comment_char */
-         if (i == 0 || member (string[i - 1], HISTORY_WORD_DELIMITERS))
+         if (i == 0 || member (string[i - 1], history_word_delimiters))
            {
-             temp = xmalloc (l - i + 1);
+             temp = (char *)xmalloc (l - i + 1);
              strcpy (temp, string + i);
              ADD_STRING (temp);
              free (temp);
@@ -997,7 +1119,7 @@ history_expand (hstring, output)
            {
              if (result)
                {
-                 temp = xmalloc (1 + strlen (result));
+                 temp = (char *)xmalloc (1 + strlen (result));
                  strcpy (temp, result);
                  ADD_STRING (temp);
                  free (temp);
@@ -1131,7 +1253,14 @@ get_history_word_specifier (spec, from, caller_index)
          i++;
          last = '$';
        }
-      else if (!spec[i] || spec[i] == ':')  /* could be modifier separator */
+#if 0
+      else if (!spec[i] || spec[i] == ':')
+       /* check against `:' because there could be a modifier separator */
+#else
+      else
+       /* csh seems to allow anything to terminate the word spec here,
+          leaving it as an abbreviation. */
+#endif
        last = -1;              /* x- abbreviates x-$ omitting word `$' */
     }
 
@@ -1151,7 +1280,7 @@ get_history_word_specifier (spec, from, caller_index)
 char *
 history_arg_extract (first, last, string)
      int first, last;
-     char *string;
+     const char *string;
 {
   register int i, len;
   char *result;
@@ -1187,7 +1316,7 @@ history_arg_extract (first, last, string)
     {
       for (size = 0, i = first; i < last; i++)
        size += strlen (list[i]) + 1;
-      result = xmalloc (size + 1);
+      result = (char *)xmalloc (size + 1);
       result[0] = '\0';
 
       for (i = first, offset = 0; i < last; i++)
@@ -1217,13 +1346,18 @@ history_arg_extract (first, last, string)
    *INDP. */
 static char **
 history_tokenize_internal (string, wind, indp)
-     char *string;
+     const char *string;
      int wind, *indp;
 {
   char **result;
   register int i, start, result_index, size;
   int len, delimiter;
 
+  /* If we're searching for a string that's not part of a word (e.g., " "),
+     make sure we set *INDP to a reasonable value. */
+  if (indp && wind != -1)
+    *indp = -1;
+
   /* Get a token, and stuff it into RESULT.  The tokens are split
      exactly where the shell would split them. */
   for (i = result_index = size = 0, result = (char **)NULL; string[i]; )
@@ -1298,7 +1432,7 @@ history_tokenize_internal (string, wind, indp)
              continue;
            }
 
-         if (!delimiter && (member (string[i], HISTORY_WORD_DELIMITERS)))
+         if (!delimiter && (member (string[i], history_word_delimiters)))
            break;
 
          if (!delimiter && member (string[i], HISTORY_QUOTE_CHARACTERS))
@@ -1315,7 +1449,7 @@ history_tokenize_internal (string, wind, indp)
       len = i - start;
       if (result_index + 2 >= size)
        result = (char **)xrealloc (result, ((size += 10) * sizeof (char *)));
-      result[result_index] = xmalloc (1 + len);
+      result[result_index] = (char *)xmalloc (1 + len);
       strncpy (result[result_index], string + start, len);
       result[result_index][len] = '\0';
       result[++result_index] = (char *)NULL;
@@ -1328,7 +1462,7 @@ history_tokenize_internal (string, wind, indp)
    parsed out of STRING. */
 char **
 history_tokenize (string)
-     char *string;
+     const char *string;
 {
   return (history_tokenize_internal (string, -1, (int *)NULL));
 }
@@ -1345,7 +1479,7 @@ history_find_word (line, ind)
   int i, wind;
 
   words = history_tokenize_internal (line, ind, &wind);
-  if (wind == -1)
+  if (wind == -1 || words == 0)
     return ((char *)NULL);
   s = words[wind];
   for (i = 0; i < wind; i++)
index b908e2261f8ba3d39c4fe8f41f3e7b3371acada5..60a91251b7aec1a754ce02ca0623e7bde4c6b8fb 100644 (file)
 #  include <unistd.h>
 #endif
 
-#if defined (HAVE_STRING_H)
-#  include <string.h>
-#else
-#  include <strings.h>
-#endif /* !HAVE_STRING_H */
+#if defined (__EMX__) || defined (__CYGWIN__)
+#  undef HAVE_MMAP
+#endif
+
+#ifdef HAVE_MMAP
+#  include <sys/mman.h>
+
+#  ifdef MAP_FILE
+#    define MAP_RFLAGS (MAP_FILE|MAP_PRIVATE)
+#    define MAP_WFLAGS (MAP_FILE|MAP_SHARED)
+#  else
+#    define MAP_RFLAGS MAP_PRIVATE
+#    define MAP_WFLAGS MAP_SHARED
+#  endif
+
+#  ifndef MAP_FAILED
+#    define MAP_FAILED ((void *)-1)
+#  endif
 
+#endif /* HAVE_MMAP */
 
 /* If we're compiling for __EMX__ (OS/2) or __CYGWIN__ (cygwin32 environment
    on win 95/98/nt), we want to open files with O_BINARY mode so that there
@@ -84,9 +98,10 @@ extern int errno;
    filename to read_history (), or write_history (). */
 static char *
 history_filename (filename)
-     char *filename;
+     const char *filename;
 {
-  char *return_val, *home;
+  char *return_val;
+  const char *home;
   int home_len;
 
   return_val = filename ? savestring (filename) : (char *)NULL;
@@ -94,7 +109,7 @@ history_filename (filename)
   if (return_val)
     return (return_val);
   
-  home = get_env_value ("HOME");
+  home = sh_get_env_value ("HOME");
 
   if (home == 0)
     {
@@ -104,7 +119,7 @@ history_filename (filename)
   else
     home_len = strlen (home);
 
-  return_val = xmalloc (2 + home_len + 8); /* strlen(".history") == 8 */
+  return_val = (char *)xmalloc (2 + home_len + 8); /* strlen(".history") == 8 */
   strcpy (return_val, home);
   return_val[home_len] = '/';
 #if defined (__MSDOS__)
@@ -121,7 +136,7 @@ history_filename (filename)
    successful, or errno if not. */
 int
 read_history (filename)
-     char *filename;
+     const char *filename;
 {
   return (read_history_range (filename, 0, -1));
 }
@@ -133,11 +148,11 @@ read_history (filename)
    ~/.history.  Returns 0 if successful, or errno if not. */
 int
 read_history_range (filename, from, to)
-     char *filename;
+     const char *filename;
      int from, to;
 {
-  register int line_start, line_end;
-  char *input, *buffer;
+  register char *line_start, *line_end;
+  char *input, *buffer, *bufend;
   int file, current_line, chars_read;
   struct stat finfo;
   size_t file_size;
@@ -156,23 +171,39 @@ read_history_range (filename, from, to)
     {
 #if defined (EFBIG)
       errno = EFBIG;
+#elif defined (EOVERFLOW)
+      errno = EOVERFLOW;
 #endif
       goto error_and_exit;
     }
 
-  buffer = xmalloc (file_size + 1);
+#ifdef HAVE_MMAP
+  /* We map read/write and private so we can change newlines to NULs without
+     affecting the underlying object. */
+  buffer = (char *)mmap (0, file_size, PROT_READ|PROT_WRITE, MAP_RFLAGS, file, 0);
+  if ((void *)buffer == MAP_FAILED)
+    goto error_and_exit;
+  chars_read = file_size;
+#else
+  buffer = (char *)malloc (file_size + 1);
+  if (buffer == 0)
+    goto error_and_exit;
 
   chars_read = read (file, buffer, file_size);
+#endif
   if (chars_read < 0)
     {
   error_and_exit:
+      chars_read = errno;
       if (file >= 0)
        close (file);
 
       FREE (input);
+#ifndef HAVE_MMAP
       FREE (buffer);
+#endif
 
-      return (errno);
+      return (chars_read);
     }
 
   close (file);
@@ -182,29 +213,25 @@ read_history_range (filename, from, to)
     to = chars_read;
 
   /* Start at beginning of file, work to end. */
-  line_start = line_end = current_line = 0;
+  bufend = buffer + chars_read;
+  current_line = 0;
 
   /* Skip lines until we are at FROM. */
-  while (line_start < chars_read && current_line < from)
-    {
-      for (line_end = line_start; line_end < chars_read; line_end++)
-       if (buffer[line_end] == '\n')
-         {
-           current_line++;
-           line_start = line_end + 1;
-           if (current_line == from)
-             break;
-         }
-    }
+  for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
+    if (*line_end == '\n')
+      {
+       current_line++;
+       line_start = line_end + 1;
+      }
 
   /* If there are lines left to gobble, then gobble them now. */
-  for (line_end = line_start; line_end < chars_read; line_end++)
-    if (buffer[line_end] == '\n')
+  for (line_end = line_start; line_end < bufend; line_end++)
+    if (*line_end == '\n')
       {
-       buffer[line_end] = '\0';
+       *line_end = '\0';
 
-       if (buffer[line_start])
-         add_history (buffer + line_start);
+       if (*line_start)
+         add_history (line_start);
 
        current_line++;
 
@@ -215,34 +242,52 @@ read_history_range (filename, from, to)
       }
 
   FREE (input);
+#ifndef HAVE_MMAP
   FREE (buffer);
+#else
+  munmap (buffer, file_size);
+#endif
 
   return (0);
 }
 
 /* Truncate the history file FNAME, leaving only LINES trailing lines.
-   If FNAME is NULL, then use ~/.history. */
+   If FNAME is NULL, then use ~/.history.  Returns 0 on success, errno
+   on failure. */
 int
 history_truncate_file (fname, lines)
-     char *fname;
+     const char *fname;
      int lines;
 {
-  register int i;
-  int file, chars_read;
-  char *buffer, *filename;
+  char *buffer, *filename, *bp;
+  int file, chars_read, rv;
   struct stat finfo;
   size_t file_size;
 
   buffer = (char *)NULL;
   filename = history_filename (fname);
   file = open (filename, O_RDONLY|O_BINARY, 0666);
+  rv = 0;
 
+  /* Don't try to truncate non-regular files. */
   if (file == -1 || fstat (file, &finfo) == -1)
-    goto truncate_exit;
+    {
+      rv = errno;
+      if (file != -1)
+       close (file);
+      goto truncate_exit;
+    }
 
-  /* Don't try to truncate non-regular files. */
-  if (S_ISREG(finfo.st_mode) == 0)
-    goto truncate_exit;
+  if (S_ISREG (finfo.st_mode) == 0)
+    {
+      close (file);
+#ifdef EFTYPE
+      rv = EFTYPE;
+#else
+      rv = EINVAL;
+#endif
+      goto truncate_exit;
+    }
 
   file_size = (size_t)finfo.st_size;
 
@@ -251,23 +296,36 @@ history_truncate_file (fname, lines)
     {
       close (file);
 #if defined (EFBIG)
-      errno = EFBIG;
+      rv = errno = EFBIG;
+#elif defined (EOVERFLOW)
+      rv = errno = EOVERFLOW;
+#else
+      rv = errno = EINVAL;
 #endif
       goto truncate_exit;
     }
 
-  buffer = xmalloc (file_size + 1);
+  buffer = (char *)malloc (file_size + 1);
+  if (buffer == 0)
+    {
+      close (file);
+      goto truncate_exit;
+    }
+
   chars_read = read (file, buffer, file_size);
   close (file);
 
   if (chars_read <= 0)
-    goto truncate_exit;
+    {
+      rv = (chars_read < 0) ? errno : 0;
+      goto truncate_exit;
+    }
 
   /* Count backwards from the end of buffer until we have passed
      LINES lines. */
-  for (i = chars_read - 1; lines && i; i--)
+  for (bp = buffer + chars_read - 1; lines && bp > buffer; bp--)
     {
-      if (buffer[i] == '\n')
+      if (*bp == '\n')
        lines--;
     }
 
@@ -276,22 +334,22 @@ history_truncate_file (fname, lines)
      anything.  It's the first line if we don't find a newline between
      the current value of i and 0.  Otherwise, write from the start of
      this line until the end of the buffer. */
-  for ( ; i; i--)
-    if (buffer[i] == '\n')
+  for ( ; bp > buffer; bp--)
+    if (*bp == '\n')
       {
-       i++;
+       bp++;
        break;
       }
 
   /* Write only if there are more lines in the file than we want to
      truncate to. */
-  if (i && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
+  if (bp > buffer && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
     {
-      write (file, buffer + i, chars_read - i);
+      write (file, bp, chars_read - (bp - buffer));
 
 #if defined (__BEOS__)
       /* BeOS ignores O_TRUNC. */
-      ftruncate (file, chars_read - i);
+      ftruncate (file, chars_read - (bp - buffer));
 #endif
 
       close (file);
@@ -302,7 +360,7 @@ history_truncate_file (fname, lines)
   FREE (buffer);
 
   free (filename);
-  return 0;
+  return rv;
 }
 
 /* Workhorse function for writing history.  Writes NELEMENT entries
@@ -310,15 +368,21 @@ history_truncate_file (fname, lines)
    wish to replace FILENAME with the entries. */
 static int
 history_do_write (filename, nelements, overwrite)
-     char *filename;
+     const char *filename;
      int nelements, overwrite;
 {
   register int i;
   char *output;
-  int file, mode;
+  int file, mode, rv;
+  size_t cursize;
 
+#ifdef HAVE_MMAP
+  mode = overwrite ? O_RDWR|O_CREAT|O_TRUNC|O_BINARY : O_RDWR|O_APPEND|O_BINARY;
+#else
   mode = overwrite ? O_WRONLY|O_CREAT|O_TRUNC|O_BINARY : O_WRONLY|O_APPEND|O_BINARY;
+#endif
   output = history_filename (filename);
+  rv = 0;
 
   if ((file = open (output, mode, 0600)) == -1)
     {
@@ -326,6 +390,10 @@ history_do_write (filename, nelements, overwrite)
       return (errno);
     }
 
+#ifdef HAVE_MMAP
+  cursize = overwrite ? 0 : lseek (file, 0, SEEK_END);
+#endif
+
   if (nelements > history_length)
     nelements = history_length;
 
@@ -343,7 +411,28 @@ history_do_write (filename, nelements, overwrite)
       buffer_size += 1 + strlen (the_history[i]->line);
 
     /* Allocate the buffer, and fill it. */
-    buffer = xmalloc (buffer_size);
+#ifdef HAVE_MMAP
+    if (ftruncate (file, buffer_size+cursize) == -1)
+      goto mmap_error;
+    buffer = (char *)mmap (0, buffer_size, PROT_READ|PROT_WRITE, MAP_WFLAGS, file, cursize);
+    if ((void *)buffer == MAP_FAILED)
+      {
+mmap_error:
+       rv = errno;
+       FREE (output);
+       close (file);
+       return rv;
+      }
+#else    
+    buffer = (char *)malloc (buffer_size);
+    if (buffer == 0)
+      {
+       rv = errno;
+       FREE (output);
+       close (file);
+       return rv;
+      }
+#endif
 
     for (j = 0, i = history_length - nelements; i < history_length; i++)
       {
@@ -352,15 +441,21 @@ history_do_write (filename, nelements, overwrite)
        buffer[j++] = '\n';
       }
 
-    write (file, buffer, buffer_size);
+#ifdef HAVE_MMAP
+    if (msync (buffer, buffer_size, 0) != 0 || munmap (buffer, buffer_size) != 0)
+      rv = errno;
+#else
+    if (write (file, buffer, buffer_size) < 0)
+      rv = errno;
     free (buffer);
+#endif
   }
 
   close (file);
 
   FREE (output);
 
-  return (0);
+  return (rv);
 }
 
 /* Append NELEMENT entries to FILENAME.  The entries appended are from
@@ -368,7 +463,7 @@ history_do_write (filename, nelements, overwrite)
 int
 append_history (nelements, filename)
      int nelements;
-     char *filename;
+     const char *filename;
 {
   return (history_do_write (filename, nelements, HISTORY_APPEND));
 }
@@ -378,7 +473,7 @@ append_history (nelements, filename)
    are as in read_history ().*/
 int
 write_history (filename)
-     char *filename;
+     const char *filename;
 {
   return (history_do_write (filename, history_length, HISTORY_OVERWRITE));
 }
index 88a34d10f1d57e22d6a6783a255b11af61d95ce5..c39af71814c81d5c7b73fe43497fc2e77ba7d333 100644 (file)
 #if !defined (_HISTLIB_H_)
 #define _HISTLIB_H_
 
-/* Function pointers can be declared as (Function *)foo. */
-#if !defined (_FUNCTION_DEF)
-#  define _FUNCTION_DEF
-typedef int Function ();
-typedef void VFunction ();
-typedef char *CPFunction ();
-typedef char **CPPFunction ();
-#endif /* _FUNCTION_DEF */
+#if defined (HAVE_STRING_H)
+#  include <string.h>
+#else
+#  include <strings.h>
+#endif /* !HAVE_STRING_H */
 
 #if !defined (STREQ)
 #define STREQ(a, b)    (((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0))
@@ -38,9 +35,6 @@ typedef char **CPPFunction ();
 #endif
 
 #ifndef savestring
-#  ifndef strcpy
-extern char *strcpy ();
-#  endif
 #define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
 #endif
 
index 400f18bc6027050758612c850627e4c02bb4251a..4242f33efe19e05dd120ec0aa9c2bc8946f49943 100644 (file)
 #  include <unistd.h>
 #endif
 
-#if defined (HAVE_STRING_H)
-#  include <string.h>
-#else
-#  include <strings.h>
-#endif /* !HAVE_STRING_H */
-
 #include "history.h"
 #include "histlib.h"
 
@@ -71,9 +65,13 @@ static HIST_ENTRY **the_history = (HIST_ENTRY **)NULL;
    history that we save. */
 static int history_stifled;
 
+/* The current number of slots allocated to the input_history. */
+static int history_size;
+
 /* If HISTORY_STIFLED is non-zero, then this is the maximum number of
    entries to remember. */
-int max_input_history;
+int history_max_entries;
+int max_input_history; /* backwards compatibility */
 
 /* The current location of the interactive history pointer.  Just makes
    life easier for outside callers. */
@@ -82,9 +80,6 @@ int history_offset;
 /* The number of strings currently stored in the history list. */
 int history_length;
 
-/* The current number of slots allocated to the input_history. */
-static int history_size;
-
 /* The logical `base' of the history array.  It defaults to 1. */
 int history_base = 1;
 
@@ -134,9 +129,7 @@ history_total_bytes ()
 {
   register int i, result;
 
-  result = 0;
-
-  for (i = 0; the_history && the_history[i]; i++)
+  for (i = result = 0; the_history && the_history[i]; i++)
     result += strlen (the_history[i]->line);
 
   return (result);
@@ -217,16 +210,16 @@ history_get (offset)
    is  set to NULL. */
 void
 add_history (string)
-     char *string;
+     const char *string;
 {
   HIST_ENTRY *temp;
 
-  if (history_stifled && (history_length == max_input_history))
+  if (history_stifled && (history_length == history_max_entries))
     {
       register int i;
 
       /* If the history is stifled, and history_length is zero,
-        and it equals max_input_history, we don't save items. */
+        and it equals history_max_entries, we don't save items. */
       if (history_length == 0)
        return;
 
@@ -277,15 +270,15 @@ add_history (string)
 HIST_ENTRY *
 replace_history_entry (which, line, data)
      int which;
-     char *line;
+     const char *line;
      histdata_t data;
 {
-  HIST_ENTRY *temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
-  HIST_ENTRY *old_value;
+  HIST_ENTRY *temp, *old_value;
 
   if (which >= history_length)
     return ((HIST_ENTRY *)NULL);
 
+  temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
   old_value = the_history[which];
 
   temp->line = savestring (line);
@@ -303,12 +296,12 @@ remove_history (which)
      int which;
 {
   HIST_ENTRY *return_value;
+  register int i;
 
   if (which >= history_length || !history_length)
     return_value = (HIST_ENTRY *)NULL;
   else
     {
-      register int i;
       return_value = the_history[which];
 
       for (i = which; i < history_length; i++)
@@ -325,13 +318,13 @@ void
 stifle_history (max)
      int max;
 {
+  register int i, j;
+
   if (max < 0)
     max = 0;
 
   if (history_length > max)
     {
-      register int i, j;
-
       /* This loses because we cannot free the data. */
       for (i = 0, j = history_length - max; i < j; i++)
        {
@@ -347,22 +340,22 @@ stifle_history (max)
     }
 
   history_stifled = 1;
-  max_input_history = max;
+  max_input_history = history_max_entries = max;
 }
 
-/* Stop stifling the history.  This returns the previous amount the 
-   history was stifled by.  The value is positive if the history was
-   stifled,  negative if it wasn't. */
+/* Stop stifling the history.  This returns the previous maximum
+   number of history entries.  The value is positive if the history
+   was stifled,  negative if it wasn't. */
 int
 unstifle_history ()
 {
   if (history_stifled)
     {
       history_stifled = 0;
-      return (-max_input_history);
+      return (history_max_entries);
     }
-
-  return (max_input_history);
+  else
+    return (-history_max_entries);
 }
 
 int
index 5210deb39a44ee73683034538b35732cabc68b32..58b5de4655fb7a90b2b5f33fa4d28b75dd8bd61d 100644 (file)
@@ -28,16 +28,10 @@ extern "C" {
 
 #if defined READLINE_LIBRARY
 #  include "rlstdc.h"
+#  include "rltypedefs.h"
 #else
 #  include <readline/rlstdc.h>
-#endif
-
-#if !defined (_FUNCTION_DEF)
-#  define _FUNCTION_DEF
-typedef int Function ();
-typedef void VFunction ();
-typedef char *CPFunction ();
-typedef char **CPPFunction ();
+#  include <readline/rltypedefs.h>
 #endif
 
 #ifdef __STDC__
@@ -68,81 +62,81 @@ typedef struct _hist_state {
 
 /* Begin a session in which the history functions might be used.  This
    just initializes the interactive variables. */
-extern void using_history __P((void));
+extern void using_history PARAMS((void));
 
 /* Return the current HISTORY_STATE of the history. */
-extern HISTORY_STATE *history_get_history_state __P((void));
+extern HISTORY_STATE *history_get_history_state PARAMS((void));
 
 /* Set the state of the current history array to STATE. */
-extern void history_set_history_state __P((HISTORY_STATE *));
+extern void history_set_history_state PARAMS((HISTORY_STATE *));
 
 /* Manage the history list. */
 
 /* Place STRING at the end of the history list.
    The associated data field (if any) is set to NULL. */
-extern void add_history __P((char *));
+extern void add_history PARAMS((const char *));
 
 /* A reasonably useless function, only here for completeness.  WHICH
    is the magic number that tells us which element to delete.  The
    elements are numbered from 0. */
-extern HIST_ENTRY *remove_history __P((int));
+extern HIST_ENTRY *remove_history PARAMS((int));
 
 /* Make the history entry at WHICH have LINE and DATA.  This returns
    the old entry so you can dispose of the data.  In the case of an
    invalid WHICH, a NULL pointer is returned. */
-extern HIST_ENTRY *replace_history_entry __P((int, char *, histdata_t));
+extern HIST_ENTRY *replace_history_entry PARAMS((int, const char *, histdata_t));
 
 /* Clear the history list and start over. */
-extern void clear_history __P((void));
+extern void clear_history PARAMS((void));
 
 /* Stifle the history list, remembering only MAX number of entries. */
-extern void stifle_history __P((int));
+extern void stifle_history PARAMS((int));
 
 /* Stop stifling the history.  This returns the previous amount the
    history was stifled by.  The value is positive if the history was
    stifled, negative if it wasn't. */
-extern int unstifle_history __P((void));
+extern int unstifle_history PARAMS((void));
 
 /* Return 1 if the history is stifled, 0 if it is not. */
-extern int history_is_stifled __P((void));
+extern int history_is_stifled PARAMS((void));
 
 /* Information about the history list. */
 
 /* Return a NULL terminated array of HIST_ENTRY which is the current input
    history.  Element 0 of this list is the beginning of time.  If there
    is no history, return NULL. */
-extern HIST_ENTRY **history_list __P((void));
+extern HIST_ENTRY **history_list PARAMS((void));
 
 /* Returns the number which says what history element we are now
    looking at.  */
-extern int where_history __P((void));
+extern int where_history PARAMS((void));
   
 /* Return the history entry at the current position, as determined by
    history_offset.  If there is no entry there, return a NULL pointer. */
-extern HIST_ENTRY *current_history __P((void));
+extern HIST_ENTRY *current_history PARAMS((void));
 
 /* Return the history entry which is logically at OFFSET in the history
    array.  OFFSET is relative to history_base. */
-extern HIST_ENTRY *history_get __P((int));
+extern HIST_ENTRY *history_get PARAMS((int));
 
 /* Return the number of bytes that the primary history entries are using.
    This just adds up the lengths of the_history->lines. */
-extern int history_total_bytes __P((void));
+extern int history_total_bytes PARAMS((void));
 
 /* Moving around the history list. */
 
 /* Set the position in the history list to POS. */
-extern int history_set_pos __P((int));
+extern int history_set_pos PARAMS((int));
 
 /* Back up history_offset to the previous history entry, and return
    a pointer to that entry.  If there is no previous entry, return
    a NULL pointer. */
-extern HIST_ENTRY *previous_history __P((void));
+extern HIST_ENTRY *previous_history PARAMS((void));
 
 /* Move history_offset forward to the next item in the input_history,
    and return the a pointer to that entry.  If there is no next entry,
    return a NULL pointer. */
-extern HIST_ENTRY *next_history __P((void));
+extern HIST_ENTRY *next_history PARAMS((void));
 
 /* Searching the history list. */
 
@@ -152,45 +146,45 @@ extern HIST_ENTRY *next_history __P((void));
    current_history () is the history entry, and the value of this function
    is the offset in the line of that history entry that the string was
    found in.  Otherwise, nothing is changed, and a -1 is returned. */
-extern int history_search __P((char *, int));
+extern int history_search PARAMS((const char *, int));
 
 /* Search the history for STRING, starting at history_offset.
    The search is anchored: matching lines must begin with string.
    DIRECTION is as in history_search(). */
-extern int history_search_prefix __P((char *, int));
+extern int history_search_prefix PARAMS((const char *, int));
 
 /* Search for STRING in the history list, starting at POS, an
    absolute index into the list.  DIR, if negative, says to search
    backwards from POS, else forwards.
    Returns the absolute index of the history element where STRING
    was found, or -1 otherwise. */
-extern int history_search_pos __P((char *, int, int));
+extern int history_search_pos PARAMS((const char *, int, int));
 
 /* Managing the history file. */
 
 /* Add the contents of FILENAME to the history list, a line at a time.
    If FILENAME is NULL, then read from ~/.history.  Returns 0 if
    successful, or errno if not. */
-extern int read_history __P((char *));
+extern int read_history PARAMS((const char *));
 
 /* Read a range of lines from FILENAME, adding them to the history list.
    Start reading at the FROM'th line and end at the TO'th.  If FROM
    is zero, start at the beginning.  If TO is less than FROM, read
    until the end of the file.  If FILENAME is NULL, then read from
    ~/.history.  Returns 0 if successful, or errno if not. */
-extern int read_history_range __P((char *, int, int));
+extern int read_history_range PARAMS((const char *, int, int));
 
 /* Write the current history to FILENAME.  If FILENAME is NULL,
    then write the history list to ~/.history.  Values returned
    are as in read_history ().  */
-extern int write_history __P((char *));
+extern int write_history PARAMS((const char *));
 
 /* Append NELEMENT entries to FILENAME.  The entries appended are from
    the end of the list minus NELEMENTs up to the end of the list. */
-extern int append_history __P((int, char *));
+extern int append_history PARAMS((int, const char *));
 
 /* Truncate the history file, leaving only the last NLINES lines. */
-extern int history_truncate_file __P((char *, int));
+extern int history_truncate_file PARAMS((const char *, int));
 
 /* History expansion. */
 
@@ -206,12 +200,12 @@ extern int history_truncate_file __P((char *, int));
 
   If an error ocurred in expansion, then OUTPUT contains a descriptive
   error message. */
-extern int history_expand __P((char *, char **));
+extern int history_expand PARAMS((char *, char **));
 
 /* Extract a string segment consisting of the FIRST through LAST
    arguments present in STRING.  Arguments are broken up as in
    the shell. */
-extern char *history_arg_extract __P((int, int, char *));
+extern char *history_arg_extract PARAMS((int, int, const char *));
 
 /* Return the text of the history event beginning at the current
    offset into STRING.  Pass STRING with *INDEX equal to the
@@ -219,27 +213,31 @@ extern char *history_arg_extract __P((int, int, char *));
    DELIMITING_QUOTE is a character that is allowed to end the string
    specification for what to search for in addition to the normal
    characters `:', ` ', `\t', `\n', and sometimes `?'. */
-extern char *get_history_event __P((char *, int *, int));
+extern char *get_history_event PARAMS((const char *, int *, int));
 
 /* Return an array of tokens, much as the shell might.  The tokens are
    parsed out of STRING. */
-extern char **history_tokenize __P((char *));
+extern char **history_tokenize PARAMS((const char *));
 
 /* Exported history variables. */
 extern int history_base;
 extern int history_length;
-extern int max_input_history;
+extern int history_max_entries;
 extern char history_expansion_char;
 extern char history_subst_char;
+extern char *history_word_delimiters;
 extern char history_comment_char;
 extern char *history_no_expand_chars;
 extern char *history_search_delimiter_chars;
 extern int history_quotes_inhibit_expansion;
 
+/* Backwards compatibility */
+extern int max_input_history;
+
 /* If set, this function is called to decide whether or not a particular
    history expansion should be treated as a special case for the calling
    application and not expanded. */
-extern Function *history_inhibit_expansion_function;
+extern rl_linebuf_func_t *history_inhibit_expansion_function;
 
 #ifdef __cplusplus
 }
index 8d153b63edd53ac237db0edb52f9f7e2b48bbc69..d94fd6cd9c656b1acdf8af91ae59e3529b201f97 100644 (file)
 #else
 #  include "ansi_stdlib.h"
 #endif /* HAVE_STDLIB_H */
+
 #if defined (HAVE_UNISTD_H)
 #  ifdef _MINIX
 #    include <sys/types.h>
 #  endif
 #  include <unistd.h>
 #endif
-#if defined (HAVE_STRING_H)
-#  include <string.h>
-#else
-#  include <strings.h>
-#endif /* !HAVE_STRING_H */
 
 #include "history.h"
 #include "histlib.h"
@@ -51,6 +47,8 @@
    string. */
 char *history_search_delimiter_chars = (char *)NULL;
 
+static int history_search_internal PARAMS((const char *, int, int));
+
 /* Search the history for STRING, starting at history_offset.
    If DIRECTION < 0, then the search is through previous entries, else
    through subsequent.  If ANCHORED is non-zero, the string must
@@ -63,7 +61,7 @@ char *history_search_delimiter_chars = (char *)NULL;
 
 static int
 history_search_internal (string, direction, anchored)
-     char *string;
+     const char *string;
      int direction, anchored;
 {
   register int i, reverse;
@@ -159,7 +157,7 @@ history_search_internal (string, direction, anchored)
 /* Do a non-anchored search for STRING through the history in DIRECTION. */
 int
 history_search (string, direction)
-     char *string;
+     const char *string;
      int direction;
 {
   return (history_search_internal (string, direction, NON_ANCHORED_SEARCH));
@@ -168,7 +166,7 @@ history_search (string, direction)
 /* Do an anchored search for string through the history in DIRECTION. */
 int
 history_search_prefix (string, direction)
-     char *string;
+     const char *string;
      int direction;
 {
   return (history_search_internal (string, direction, ANCHORED_SEARCH));
@@ -179,7 +177,7 @@ history_search_prefix (string, direction)
    which point to begin searching. */
 int
 history_search_pos (string, dir, pos)
-     char *string;
+     const char *string;
      int dir, pos;
 {
   int ret, old;
index 64a55c6f90d4af4d5775eb7a397976a9a56a1a61..841f05d1af9ccf55a7cae4cc59beee899c6f0e3a 100644 (file)
@@ -63,6 +63,7 @@ extern int errno;
 
 /* System-specific feature definitions and include files. */
 #include "rldefs.h"
+#include "rlmbutil.h"
 
 /* Some standard library routines. */
 #include "readline.h"
@@ -78,9 +79,15 @@ extern int errno;
 
 /* Non-null means it is a pointer to a function to run while waiting for
    character input. */
-Function *rl_event_hook = (Function *)NULL;
+rl_hook_func_t *rl_event_hook = (rl_hook_func_t *)NULL;
 
-Function *rl_getc_function = rl_getc;
+rl_getc_func_t *rl_getc_function = rl_getc;
+
+static int _keyboard_input_timeout = 100000;           /* 0.1 seconds; it's in usec */
+
+static int ibuffer_space PARAMS((void));
+static int rl_get_char PARAMS((int *));
+static int rl_gather_tyi PARAMS((void));
 
 /* **************************************************************** */
 /*                                                                 */
@@ -132,8 +139,8 @@ rl_get_char (key)
 /* Stuff KEY into the *front* of the input buffer.
    Returns non-zero if successful, zero if there is
    no space left in the buffer. */
-static int
-rl_unget_char (key)
+int
+_rl_unget_char (key)
      int key;
 {
   if (ibuffer_space ())
@@ -147,9 +154,10 @@ rl_unget_char (key)
   return (0);
 }
 
-/* If a character is available to be read, then read it
-   and stuff it into IBUFFER.  Otherwise, just return. */
-static void
+/* If a character is available to be read, then read it and stuff it into
+   IBUFFER.  Otherwise, just return.  Returns number of characters read
+   (0 if none available) and -1 on error (EIO). */
+static int
 rl_gather_tyi ()
 {
   int tty;
@@ -169,14 +177,18 @@ rl_gather_tyi ()
   FD_SET (tty, &readfds);
   FD_SET (tty, &exceptfds);
   timeout.tv_sec = 0;
-  timeout.tv_usec = 100000;    /* 0.1 seconds */
-  if (select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout) <= 0)
-    return;    /* Nothing to read. */
+  timeout.tv_usec = _keyboard_input_timeout;
+  result = select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout);
+  if (result <= 0)
+    return 0;  /* Nothing to read. */
 #endif
 
   result = -1;
 #if defined (FIONREAD)
+  errno = 0;
   result = ioctl (tty, FIONREAD, &chars_avail);
+  if (result == -1 && errno == EIO)
+    return -1;
 #endif
 
 #if defined (O_NDELAY)
@@ -189,14 +201,14 @@ rl_gather_tyi ()
 
       fcntl (tty, F_SETFL, tem);
       if (chars_avail == -1 && errno == EAGAIN)
-       return;
+       return 0;
     }
 #endif /* O_NDELAY */
 
   /* If there's nothing available, don't waste time trying to read
      something. */
   if (chars_avail <= 0)
-    return;
+    return 0;
 
   tem = ibuffer_space ();
 
@@ -220,10 +232,28 @@ rl_gather_tyi ()
       if (chars_avail)
        rl_stuff_char (input);
     }
+
+  return 1;
+}
+
+int
+rl_set_keyboard_input_timeout (u)
+     int u;
+{
+  int o;
+
+  o = _keyboard_input_timeout;
+  if (u > 0)
+    _keyboard_input_timeout = u;
+  return (o);
 }
 
 /* Is there input available to be read on the readline input file
-   descriptor?  Only works if the system has select(2) or FIONREAD. */
+   descriptor?  Only works if the system has select(2) or FIONREAD.
+   Uses the value of _keyboard_input_timeout as the timeout; if another
+   readline function wants to specify a timeout and not leave it up to
+   the user, it should use _rl_input_queued(timeout_value_in_microseconds)
+   instead. */
 int
 _rl_input_available ()
 {
@@ -231,7 +261,7 @@ _rl_input_available ()
   fd_set readfds, exceptfds;
   struct timeval timeout;
 #endif
-#if defined(FIONREAD)
+#if !defined (HAVE_SELECT) && defined(FIONREAD)
   int chars_avail;
 #endif
   int tty;
@@ -244,18 +274,32 @@ _rl_input_available ()
   FD_SET (tty, &readfds);
   FD_SET (tty, &exceptfds);
   timeout.tv_sec = 0;
-  timeout.tv_usec = 100000;    /* 0.1 seconds */
+  timeout.tv_usec = _keyboard_input_timeout;
   return (select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout) > 0);
-#endif
+#else
 
 #if defined (FIONREAD)
   if (ioctl (tty, FIONREAD, &chars_avail) == 0)
     return (chars_avail);
+#endif
+
 #endif
 
   return 0;
 }
 
+int
+_rl_input_queued (t)
+     int t;
+{
+  int old_timeout, r;
+
+  old_timeout = rl_set_keyboard_input_timeout (t);
+  r = _rl_input_available ();
+  rl_set_keyboard_input_timeout (old_timeout);
+  return r;
+}
+
 void
 _rl_insert_typein (c)
      int c;     
@@ -264,7 +308,7 @@ _rl_insert_typein (c)
   char *string;
 
   i = key = 0;
-  string = xmalloc (ibuffer_len + 1);
+  string = (char *)xmalloc (ibuffer_len + 1);
   string[i++] = (char) c;
 
   while ((t = rl_get_char (&key)) &&
@@ -273,7 +317,7 @@ _rl_insert_typein (c)
     string[i++] = key;
 
   if (t)
-    rl_unget_char (key);
+    _rl_unget_char (key);
 
   string[i] = '\0';
   rl_insert_text (string);
@@ -293,6 +337,7 @@ rl_stuff_char (key)
     {
       key = NEWLINE;
       rl_pending_input = EOF;
+      RL_SETSTATE (RL_STATE_INPUTPENDING);
     }
   ibuffer[push_index++] = key;
   if (push_index >= ibuffer_len)
@@ -307,6 +352,16 @@ rl_execute_next (c)
      int c;
 {
   rl_pending_input = c;
+  RL_SETSTATE (RL_STATE_INPUTPENDING);
+  return 0;
+}
+
+/* Clear any pending input pushed with rl_execute_next() */
+int
+rl_clear_pending_input ()
+{
+  rl_pending_input = 0;
+  RL_UNSETSTATE (RL_STATE_INPUTPENDING);
   return 0;
 }
 
@@ -327,7 +382,7 @@ rl_read_key ()
   if (rl_pending_input)
     {
       c = rl_pending_input;
-      rl_pending_input = 0;
+      rl_clear_pending_input ();
     }
   else
     {
@@ -341,7 +396,13 @@ rl_read_key ()
          while (rl_event_hook && rl_get_char (&c) == 0)
            {
              (*rl_event_hook) ();
-             rl_gather_tyi ();
+             if (rl_done)              /* XXX - experimental */
+               return ('\n');
+             if (rl_gather_tyi () < 0) /* XXX - EIO */
+               {
+                 rl_done = 1;
+                 return ('\n');
+               }
            }
        }
       else
@@ -392,7 +453,7 @@ rl_getc (stream)
 
       if (errno == X_EWOULDBLOCK || errno == X_EAGAIN)
        {
-         if (unset_nodelay_mode (fileno (stream)) < 0)
+         if (sh_unset_nodelay_mode (fileno (stream)) < 0)
            return (EOF);
          continue;
        }
@@ -407,3 +468,73 @@ rl_getc (stream)
        return (EOF);
     }
 }
+
+#if defined (HANDLE_MULTIBYTE)
+/* read multibyte char */
+int
+_rl_read_mbchar (mbchar, size)
+     char *mbchar;
+     int size;
+{
+  int mb_len = 0;
+  size_t mbchar_bytes_length;
+  wchar_t wc;
+  mbstate_t ps, ps_back;
+
+  memset(&ps, 0, sizeof (mbstate_t));
+  memset(&ps_back, 0, sizeof (mbstate_t));
+  
+  while (mb_len < size)
+    {
+      RL_SETSTATE(RL_STATE_MOREINPUT);
+      mbchar[mb_len++] = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+      mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+      if (mbchar_bytes_length == (size_t)(-1))
+       break;          /* invalid byte sequence for the current locale */
+      else if (mbchar_bytes_length == (size_t)(-2))
+       {
+         /* shorted bytes */
+         ps = ps_back;
+         continue;
+       } 
+      else if (mbchar_bytes_length > (size_t)(0))
+       break;
+    }
+
+  return mb_len;
+}
+
+/* Read a multibyte-character string whose first character is FIRST into
+   the buffer MB of length MBLEN.  Returns the last character read, which
+   may be FIRST.  Used by the search functions, among others.  Very similar
+   to _rl_read_mbchar. */
+int
+_rl_read_mbstring (first, mb, mblen)
+     int first;
+     char *mb;
+     int mblen;
+{
+  int i, c;
+  mbstate_t ps;
+
+  c = first;
+  memset (mb, 0, mblen);
+  for (i = 0; i < mblen; i++)
+    {
+      mb[i] = (char)c;
+      memset (&ps, 0, sizeof (mbstate_t));
+      if (_rl_get_char_len (mb, &ps) == -2)
+       {
+         /* Read more for multibyte character */
+         RL_SETSTATE (RL_STATE_MOREINPUT);
+         c = rl_read_key ();
+         RL_UNSETSTATE (RL_STATE_MOREINPUT);
+       }
+      else
+       break;
+    }
+  return c;
+}
+#endif /* HANDLE_MULTIBYTE */
index 952c10ddf8eab91c65649f8200d5d4d0c8b7104b..c1ea5b30852eddbaae4e35a254bec0e9339e78b7 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                 */
 /* **************************************************************** */
 
-/* Copyright (C) 1987,1989 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
 
    This file contains the Readline Library (the Library), a set of
    routines for providing Emacs style line input to programs that ask
@@ -45,6 +45,8 @@
 #endif
 
 #include "rldefs.h"
+#include "rlmbutil.h"
+
 #include "readline.h"
 #include "history.h"
 
 #include "xmalloc.h"
 
 /* Variables exported to other files in the readline library. */
-unsigned char *_rl_isearch_terminators = (unsigned char *)NULL;
+char *_rl_isearch_terminators = (char *)NULL;
 
 /* Variables imported from other files in the readline library. */
-extern HIST_ENTRY *saved_line_for_history;
+extern HIST_ENTRY *_rl_saved_line_for_history;
 
 /* Forward declarations */
-static int rl_search_history __P((int, int));
+static int rl_search_history PARAMS((int, int));
 
 /* Last line found by the current incremental search, so we don't `find'
    identical lines many times in a row. */
 static char *prev_line_found;
 
+/* Last search string and its length. */
+static char *last_isearch_string;
+static int last_isearch_string_len;
+
+static char *default_isearch_terminators = "\033\012";
+
 /* Search backwards through the history looking for a string which is typed
    interactively.  Start with the current line. */
 int
@@ -97,7 +105,7 @@ rl_display_search (search_string, reverse_p, where)
 
   searchlen = (search_string && *search_string) ? strlen (search_string) : 0;
 
-  message = xmalloc (searchlen + 33);
+  message = (char *)xmalloc (searchlen + 33);
   msglen = 0;
 
 #if defined (NOTDEF)
@@ -127,7 +135,7 @@ rl_display_search (search_string, reverse_p, where)
 
   strcpy (message + msglen, "': ");
 
-  rl_message ("%s", message, 0);
+  rl_message ("%s", message);
   free (message);
   (*rl_redisplay_function) ();
 }
@@ -159,8 +167,12 @@ rl_search_history (direction, invoking_key)
   HIST_ENTRY **hlist;
 
   register int i;
-  int orig_point, orig_line, last_found_line;
+  int orig_point, orig_mark, orig_line, last_found_line;
   int c, found, failed, sline_len;
+  int n, wstart, wlen;
+#if defined (HANDLE_MULTIBYTE)
+  char mb[MB_LEN_MAX];
+#endif
 
   /* The line currently being searched. */
   char *sline;
@@ -174,19 +186,21 @@ rl_search_history (direction, invoking_key)
   /* The list of characters which terminate the search, but are not
      subsequently executed.  If the variable isearch-terminators has
      been set, we use that value, otherwise we use ESC and C-J. */
-  unsigned char *isearch_terminators;
+  char *isearch_terminators;
 
+  RL_SETSTATE(RL_STATE_ISEARCH);
   orig_point = rl_point;
+  orig_mark = rl_mark;
   last_found_line = orig_line = where_history ();
   reverse = direction < 0;
   hlist = history_list ();
   allocated_line = (char *)NULL;
 
   isearch_terminators = _rl_isearch_terminators ? _rl_isearch_terminators
-                                               : (unsigned char *)"\033\012";
+                                               : default_isearch_terminators;
 
   /* Create an arrary of pointers to the lines that we want to search. */
-  maybe_replace_line ();
+  rl_maybe_replace_line ();
   i = 0;
   if (hlist)
     for (i = 0; hlist[i]; i++);
@@ -197,12 +211,12 @@ rl_search_history (direction, invoking_key)
   for (i = 0; i < hlen; i++)
     lines[i] = hlist[i]->line;
 
-  if (saved_line_for_history)
-    lines[i] = saved_line_for_history->line;
+  if (_rl_saved_line_for_history)
+    lines[i] = _rl_saved_line_for_history->line;
   else
     {
       /* Keep track of this so we can free it. */
-      allocated_line = xmalloc (1 + strlen (rl_line_buffer));
+      allocated_line = (char *)xmalloc (1 + strlen (rl_line_buffer));
       strcpy (allocated_line, &rl_line_buffer[0]);
       lines[i] = allocated_line;
     }
@@ -215,7 +229,7 @@ rl_search_history (direction, invoking_key)
   rl_save_prompt ();
 
   /* Initialize search parameters. */
-  search_string = xmalloc (search_string_size = 128);
+  search_string = (char *)xmalloc (search_string_size = 128);
   *search_string = '\0';
   search_string_index = 0;
   prev_line_found = (char *)0;         /* XXX */
@@ -232,12 +246,20 @@ rl_search_history (direction, invoking_key)
   found = failed = 0;
   for (;;)
     {
-      Function *f = (Function *)NULL;
+      rl_command_func_t *f = (rl_command_func_t *)NULL;
 
       /* Read a key and decide how to proceed. */
+      RL_SETSTATE(RL_STATE_MOREINPUT);
       c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
 
-      if (_rl_keymap[c].type == ISFUNC)
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       c = _rl_read_mbstring (c, mb, MB_LEN_MAX);
+#endif
+
+      /* Translate the keys we do something with to opcodes. */
+      if (c >= 0 && _rl_keymap[c].type == ISFUNC)
        {
          f = _rl_keymap[c].function;
 
@@ -245,34 +267,56 @@ rl_search_history (direction, invoking_key)
            c = reverse ? -1 : -2;
          else if (f == rl_forward_search_history)
            c =  !reverse ? -1 : -2;
+         else if (f == rl_rubout)
+           c = -3;
+         else if (c == CTRL ('G'))
+           c = -4;
+         else if (c == CTRL ('W'))     /* XXX */
+           c = -5;
+         else if (c == CTRL ('Y'))     /* XXX */
+           c = -6;
        }
 
-#if 0
-      /* Let NEWLINE (^J) terminate the search for people who don't like
-        using ESC.  ^M can still be used to terminate the search and
-        immediately execute the command. */
-      if (c == ESC || c == NEWLINE)
-#else
       /* The characters in isearch_terminators (set from the user-settable
         variable isearch-terminators) are used to terminate the search but
         not subsequently execute the character as a command.  The default
         value is "\033\012" (ESC and C-J). */
       if (strchr (isearch_terminators, c))
-#endif
        {
          /* ESC still terminates the search, but if there is pending
             input or if input arrives within 0.1 seconds (on systems
             with select(2)) it is used as a prefix character
             with rl_execute_next.  WATCH OUT FOR THIS!  This is intended
             to allow the arrow keys to be used like ^F and ^B are used
-            to terminate the search and execute the movement command. */
-         if (c == ESC && _rl_input_available ())       /* XXX */
+            to terminate the search and execute the movement command.
+            XXX - since _rl_input_available depends on the application-
+            settable keyboard timeout value, this could alternatively
+            use _rl_input_queued(100000) */
+         if (c == ESC && _rl_input_available ())
            rl_execute_next (ESC);
          break;
        }
 
-      if (c >= 0 && (CTRL_CHAR (c) || META_CHAR (c) || c == RUBOUT) && c != CTRL ('G'))
+#define ENDSRCH_CHAR(c) \
+  ((CTRL_CHAR (c) || META_CHAR (c) || (c) == RUBOUT) && ((c) != CTRL ('G')))
+
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         if (c >= 0 && strlen (mb) == 1 && ENDSRCH_CHAR (c))
+           {
+             /* This sets rl_pending_input to c; it will be picked up the next
+                time rl_read_key is called. */
+             rl_execute_next (c);
+             break;
+           }
+       }
+      else
+#endif
+      if (c >= 0 && ENDSRCH_CHAR (c))
        {
+         /* This sets rl_pending_input to c; it will be picked up the next
+            time rl_read_key is called. */
          rl_execute_next (c);
          break;
        }
@@ -281,13 +325,24 @@ rl_search_history (direction, invoking_key)
        {
        case -1:
          if (search_string_index == 0)
-           continue;
+           {
+             if (last_isearch_string)
+               {
+                 search_string_size = 64 + last_isearch_string_len;
+                 search_string = (char *)xrealloc (search_string, search_string_size);
+                 strcpy (search_string, last_isearch_string);
+                 search_string_index = last_isearch_string_len;
+                 rl_display_search (search_string, reverse, -1);
+                 break;
+               }
+             continue;
+           }
          else if (reverse)
            --line_index;
          else if (line_index != sline_len)
            ++line_index;
          else
-           ding ();
+           rl_ding ();
          break;
 
          /* switch directions */
@@ -296,40 +351,96 @@ rl_search_history (direction, invoking_key)
          reverse = direction < 0;
          break;
 
-       case CTRL ('G'):
-         strcpy (rl_line_buffer, lines[orig_line]);
+       /* delete character from search string. */
+       case -3:        /* C-H, DEL */
+         /* This is tricky.  To do this right, we need to keep a
+            stack of search positions for the current search, with
+            sentinels marking the beginning and end.  But this will
+            do until we have a real isearch-undo. */
+         if (search_string_index == 0)
+           rl_ding ();
+         else
+           search_string[--search_string_index] = '\0';
+
+         break;
+
+       case -4:        /* C-G */
+         rl_replace_line (lines[orig_line], 0);
          rl_point = orig_point;
-         rl_end = strlen (rl_line_buffer);
+         rl_mark = orig_mark;
          rl_restore_prompt();
          rl_clear_message ();
          if (allocated_line)
            free (allocated_line);
          free (lines);
+         RL_UNSETSTATE(RL_STATE_ISEARCH);
          return 0;
 
-#if 0
-       /* delete character from search string. */
-       case -3:
-         if (search_string_index == 0)
-           ding ();
-         else
+       case -5:        /* C-W */
+         /* skip over portion of line we already matched */
+         wstart = rl_point + search_string_index;
+         if (wstart >= rl_end)
+           {
+             rl_ding ();
+             break;
+           }
+
+         /* if not in a word, move to one. */
+         if (rl_alphabetic(rl_line_buffer[wstart]) == 0)
            {
-             search_string[--search_string_index] = '\0';
-             /* This is tricky.  To do this right, we need to keep a
-                stack of search positions for the current search, with
-                sentinels marking the beginning and end. */
+             rl_ding ();
+             break;
            }
+         n = wstart;
+         while (n < rl_end && rl_alphabetic(rl_line_buffer[n]))
+           n++;
+         wlen = n - wstart + 1;
+         if (search_string_index + wlen + 1 >= search_string_size)
+           {
+             search_string_size += wlen + 1;
+             search_string = (char *)xrealloc (search_string, search_string_size);
+           }
+         for (; wstart < n; wstart++)
+           search_string[search_string_index++] = rl_line_buffer[wstart];
+         search_string[search_string_index] = '\0';
+         break;
+
+       case -6:        /* C-Y */
+         /* skip over portion of line we already matched */
+         wstart = rl_point + search_string_index;
+         if (wstart >= rl_end)
+           {
+             rl_ding ();
+             break;
+           }
+         n = rl_end - wstart + 1;
+         if (search_string_index + n + 1 >= search_string_size)
+           {
+             search_string_size += n + 1;
+             search_string = (char *)xrealloc (search_string, search_string_size);
+           }
+         for (n = wstart; n < rl_end; n++)
+           search_string[search_string_index++] = rl_line_buffer[n];
+         search_string[search_string_index] = '\0';
          break;
-#endif
 
        default:
          /* Add character to search string and continue search. */
          if (search_string_index + 2 >= search_string_size)
            {
              search_string_size += 128;
-             search_string = xrealloc (search_string, search_string_size);
+             search_string = (char *)xrealloc (search_string, search_string_size);
+           }
+#if defined (HANDLE_MULTIBYTE)
+         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+           {
+             int j, l;
+             for (j = 0, l = strlen (mb); j < l; )
+               search_string[search_string_index++] = mb[j++];
            }
-         search_string[search_string_index++] = c;
+         else
+#endif
+           search_string[search_string_index++] = c;
          search_string[search_string_index] = '\0';
          break;
        }
@@ -384,7 +495,7 @@ rl_search_history (direction, invoking_key)
       if (failed)
        {
          /* We cannot find the search string.  Ding the bell. */
-         ding ();
+         rl_ding ();
          i = last_found_line;
          continue;             /* XXX - was break */
        }
@@ -394,17 +505,9 @@ rl_search_history (direction, invoking_key)
         the location. */
       if (found)
        {
-         int line_len;
-
          prev_line_found = lines[i];
-         line_len = strlen (lines[i]);
-
-         if (line_len >= rl_line_buffer_len)
-           rl_extend_line_buffer (line_len);
-
-         strcpy (rl_line_buffer, lines[i]);
+         rl_replace_line (lines[i], 0);
          rl_point = line_index;
-         rl_end = line_len;
          last_found_line = i;
          rl_display_search (search_string, reverse, (i == orig_line) ? -1 : i);
        }
@@ -420,23 +523,38 @@ rl_search_history (direction, invoking_key)
 
   rl_restore_prompt ();
 
-  /* Free the search string. */
-  free (search_string);
+  /* Save the search string for possible later use. */
+  FREE (last_isearch_string);
+  last_isearch_string = search_string;
+  last_isearch_string_len = search_string_index;
 
   if (last_found_line < orig_line)
     rl_get_previous_history (orig_line - last_found_line, 0);
   else
     rl_get_next_history (last_found_line - orig_line, 0);
 
-  /* If the string was not found, put point at the end of the line. */
+  /* If the string was not found, put point at the end of the last matching
+     line.  If last_found_line == orig_line, we didn't find any matching
+     history lines at all, so put point back in its original position. */
   if (line_index < 0)
-    line_index = strlen (rl_line_buffer);
+    {
+      if (last_found_line == orig_line)
+       line_index = orig_point;
+      else
+       line_index = strlen (rl_line_buffer);
+      rl_mark = orig_mark;
+    }
+
   rl_point = line_index;
+  /* Don't worry about where to put the mark here; rl_get_previous_history
+     and rl_get_next_history take care of it. */
+
   rl_clear_message ();
 
-  if (allocated_line)
-    free (allocated_line);
+  FREE (allocated_line);
   free (lines);
 
+  RL_UNSETSTATE(RL_STATE_ISEARCH);
+
   return 0;
 }
index 8fb7de3bc1f9707fffd98dd02b000fe52529b1a9..12506d3aab2e87f5233d16219e087b514b2535cb 100644 (file)
@@ -61,7 +61,7 @@ rl_make_bare_keymap ()
   for (i = 0; i < KEYMAP_SIZE; i++)
     {
       keymap[i].type = ISFUNC;
-      keymap[i].function = (Function *)NULL;
+      keymap[i].function = (rl_command_func_t *)NULL;
     }
 
   for (i = 'A'; i < ('Z' + 1); i++)
index 3a504fb014fb37cd5194ed40afee95018f29815c..66fa2a5ec14a07650b6a195dc4402be63066ecf2 100644 (file)
@@ -30,17 +30,11 @@ extern "C" {
 #if defined (READLINE_LIBRARY)
 #  include "rlstdc.h"
 #  include "chardefs.h"
+#  include "rltypedefs.h"
 #else
 #  include <readline/rlstdc.h>
 #  include <readline/chardefs.h>
-#endif
-
-#if !defined (_FUNCTION_DEF)
-#  define _FUNCTION_DEF
-typedef int Function ();
-typedef void VFunction ();
-typedef char *CPFunction ();
-typedef char **CPPFunction ();
+#  include <readline/rltypedefs.h>
 #endif
 
 /* A keymap contains one entry for each key in the ASCII set.
@@ -50,16 +44,17 @@ typedef char **CPPFunction ();
    TYPE says which kind of thing FUNCTION is. */
 typedef struct _keymap_entry {
   char type;
-  Function *function;
+  rl_command_func_t *function;
 } KEYMAP_ENTRY;
 
 /* This must be large enough to hold bindings for all of the characters
    in a desired character set (e.g, 128 for ASCII, 256 for ISO Latin-x,
-   and so on). */
-#define KEYMAP_SIZE 256
+   and so on) plus one for subsequence matching. */
+#define KEYMAP_SIZE 257
+#define ANYOTHERKEY KEYMAP_SIZE-1
 
 /* I wanted to make the above structure contain a union of:
-   union { Function *function; struct _keymap_entry *keymap; } value;
+   union { rl_command_func_t *function; struct _keymap_entry *keymap; } value;
    but this made it impossible for me to create a static array.
    Maybe I need C lessons. */
 
@@ -76,30 +71,30 @@ extern KEYMAP_ENTRY_ARRAY vi_insertion_keymap, vi_movement_keymap;
 
 /* Return a new, empty keymap.
    Free it with free() when you are done. */
-extern Keymap rl_make_bare_keymap __P((void));
+extern Keymap rl_make_bare_keymap PARAMS((void));
 
 /* Return a new keymap which is a copy of MAP. */
-extern Keymap rl_copy_keymap __P((Keymap));
+extern Keymap rl_copy_keymap PARAMS((Keymap));
 
 /* Return a new keymap with the printing characters bound to rl_insert,
    the lowercase Meta characters bound to run their equivalents, and
    the Meta digits bound to produce numeric arguments. */
-extern Keymap rl_make_keymap __P((void));
+extern Keymap rl_make_keymap PARAMS((void));
 
 /* Free the storage associated with a keymap. */
-extern void rl_discard_keymap __P((Keymap));
+extern void rl_discard_keymap PARAMS((Keymap));
 
 /* These functions actually appear in bind.c */
 
 /* Return the keymap corresponding to a given name.  Names look like
    `emacs' or `emacs-meta' or `vi-insert'.  */
-extern Keymap rl_get_keymap_by_name __P((char *));
+extern Keymap rl_get_keymap_by_name PARAMS((const char *));
 
 /* Return the current keymap. */
-extern Keymap rl_get_keymap __P((void));
+extern Keymap rl_get_keymap PARAMS((void));
 
 /* Set the current keymap to MAP. */
-extern void rl_set_keymap __P((Keymap));
+extern void rl_set_keymap PARAMS((Keymap));
 
 #ifdef __cplusplus
 }
index c3241bdadd00c5807e4837ab7bd4e91248fad2a9..a616b920d903b592411bb3e4e61bfbef5919df7b 100644 (file)
@@ -70,6 +70,11 @@ static int rl_kill_index;
 /* How many slots we have in the kill ring. */
 static int rl_kill_ring_length;
 
+static int _rl_copy_to_kill_ring PARAMS((char *, int));
+static int region_kill_internal PARAMS((int));
+static int _rl_copy_word_as_kill PARAMS((int, int));
+static int rl_yank_nth_arg_internal PARAMS((int, int, int));
+
 /* How to say that you only want to save a certain amount
    of kill material. */
 int
@@ -129,7 +134,7 @@ _rl_copy_to_kill_ring (text, append)
   if (_rl_last_command_was_kill && rl_editing_mode != vi_mode)
     {
       old = rl_kill_ring[slot];
-      new = xmalloc (1 + strlen (old) + strlen (text));
+      new = (char *)xmalloc (1 + strlen (old) + strlen (text));
 
       if (append)
        {
@@ -196,18 +201,21 @@ int
 rl_kill_word (count, key)
      int count, key;
 {
-  int orig_point = rl_point;
+  int orig_point;
 
   if (count < 0)
     return (rl_backward_kill_word (-count, key));
   else
     {
+      orig_point = rl_point;
       rl_forward_word (count, key);
 
       if (rl_point != orig_point)
        rl_kill_text (orig_point, rl_point);
 
       rl_point = orig_point;
+      if (rl_editing_mode == emacs_mode)
+       rl_mark = rl_point;
     }
   return 0;
 }
@@ -217,16 +225,20 @@ int
 rl_backward_kill_word (count, ignore)
      int count, ignore;
 {
-  int orig_point = rl_point;
+  int orig_point;
 
   if (count < 0)
     return (rl_kill_word (-count, ignore));
   else
     {
+      orig_point = rl_point;
       rl_backward_word (count, ignore);
 
       if (rl_point != orig_point)
        rl_kill_text (orig_point, rl_point);
+
+      if (rl_editing_mode == emacs_mode)
+       rl_mark = rl_point;
     }
   return 0;
 }
@@ -237,16 +249,19 @@ int
 rl_kill_line (direction, ignore)
      int direction, ignore;
 {
-  int orig_point = rl_point;
+  int orig_point;
 
   if (direction < 0)
     return (rl_backward_kill_line (1, ignore));
   else
     {
+      orig_point = rl_point;
       rl_end_of_line (1, ignore);
       if (orig_point != rl_point)
        rl_kill_text (orig_point, rl_point);
       rl_point = orig_point;
+      if (rl_editing_mode == emacs_mode)
+       rl_mark = rl_point;
     }
   return 0;
 }
@@ -257,18 +272,22 @@ int
 rl_backward_kill_line (direction, ignore)
      int direction, ignore;
 {
-  int orig_point = rl_point;
+  int orig_point;
 
   if (direction < 0)
     return (rl_kill_line (1, ignore));
   else
     {
       if (!rl_point)
-       ding ();
+       rl_ding ();
       else
        {
+         orig_point = rl_point;
          rl_beg_of_line (1, ignore);
-         rl_kill_text (orig_point, rl_point);
+         if (rl_point != orig_point)
+           rl_kill_text (orig_point, rl_point);
+         if (rl_editing_mode == emacs_mode)
+           rl_mark = rl_point;
        }
     }
   return 0;
@@ -282,6 +301,7 @@ rl_kill_full_line (count, ignore)
   rl_begin_undo_group ();
   rl_point = 0;
   rl_kill_text (rl_point, rl_end);
+  rl_mark = 0;
   rl_end_undo_group ();
   return 0;
 }
@@ -299,7 +319,7 @@ rl_unix_word_rubout (count, key)
   int orig_point;
 
   if (rl_point == 0)
-    ding ();
+    rl_ding ();
   else
     {
       orig_point = rl_point;
@@ -316,6 +336,8 @@ rl_unix_word_rubout (count, key)
        }
 
       rl_kill_text (orig_point, rl_point);
+      if (rl_editing_mode == emacs_mode)
+       rl_mark = rl_point;
     }
   return 0;
 }
@@ -331,11 +353,13 @@ rl_unix_line_discard (count, key)
      int count, key;
 {
   if (rl_point == 0)
-    ding ();
+    rl_ding ();
   else
     {
       rl_kill_text (rl_point, 0);
       rl_point = 0;
+      if (rl_editing_mode == emacs_mode)
+       rl_mark = rl_point;
     }
   return 0;
 }
@@ -348,17 +372,14 @@ region_kill_internal (delete)
 {
   char *text;
 
-  if (rl_mark == rl_point)
+  if (rl_mark != rl_point)
     {
-      _rl_last_command_was_kill++;
-      return 0;
+      text = rl_copy_text (rl_point, rl_mark);
+      if (delete)
+       rl_delete_text (rl_point, rl_mark);
+      _rl_copy_to_kill_ring (text, rl_point < rl_mark);
     }
 
-  text = rl_copy_text (rl_point, rl_mark);
-  if (delete)
-    rl_delete_text (rl_point, rl_mark);
-  _rl_copy_to_kill_ring (text, rl_point < rl_mark);
-
   _rl_last_command_was_kill++;
   return 0;
 }
@@ -512,19 +533,21 @@ rl_yank_nth_arg_internal (count, ignore, history_skip)
 
   if (entry == 0)
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
 
   arg = history_arg_extract (count, count, entry->line);
   if (!arg || !*arg)
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
 
   rl_begin_undo_group ();
 
+  _rl_set_mark_at_pos (rl_point);
+
 #if defined (VI_MODE)
   /* Vi mode always inserts a space before yanking the argument, and it
      inserts it right *after* rl_point. */
@@ -592,7 +615,7 @@ rl_yank_last_arg (count, key)
 }
 
 /* A special paste command for users of Cygnus's cygwin32. */
-#if defined (__CYGWIN32__)
+#if defined (__CYGWIN__)
 #include <windows.h>
 
 int
@@ -612,12 +635,13 @@ rl_paste_from_clipboard (count, key)
       if (ptr)
        {
          len = ptr - data;
-         ptr = xmalloc (len + 1);
+         ptr = (char *)xmalloc (len + 1);
          ptr[len] = '\0';
          strncpy (ptr, data, len);
        }
       else
         ptr = data;
+      _rl_set_mark_at_pos (rl_point);
       rl_insert_text (ptr);
       if (ptr != data)
        free (ptr);
@@ -625,4 +649,4 @@ rl_paste_from_clipboard (count, key)
     }
   return (0);
 }
-#endif /* __CYGWIN32__ */
+#endif /* __CYGWIN__ */
index 5a44852f46ced9691b27999a06321d966b0b7d89..b73c3af9aa47304b02200df7edfbf717f6388dc5 100644 (file)
 #include "rlprivate.h"
 #include "xmalloc.h"
 
-#define SWAP(s, e)  do { int t; t = s; s = e; e = t; } while (0)
-
 /* **************************************************************** */
 /*                                                                 */
 /*                     Hacking Keyboard Macros                     */
 /*                                                                 */
 /* **************************************************************** */
 
-/* Non-zero means to save keys that we dispatch on in a kbd macro. */
-int _rl_defining_kbd_macro = 0;
-
 /* The currently executing macro string.  If this is non-zero,
    then it is a malloc ()'ed string where input is coming from. */
-char *_rl_executing_macro = (char *)NULL;
+char *rl_executing_macro = (char *)NULL;
 
 /* The offset in the above string to the next character to be read. */
 static int executing_macro_index;
@@ -95,8 +90,9 @@ _rl_with_macro_input (string)
      char *string;
 {
   _rl_push_executing_macro ();
-  _rl_executing_macro = string;
+  rl_executing_macro = string;
   executing_macro_index = 0;
+  RL_SETSTATE(RL_STATE_MACROINPUT);
 }
 
 /* Return the next character available from a macro, or 0 if
@@ -104,16 +100,16 @@ _rl_with_macro_input (string)
 int
 _rl_next_macro_key ()
 {
-  if (_rl_executing_macro == 0)
+  if (rl_executing_macro == 0)
     return (0);
 
-  if (_rl_executing_macro[executing_macro_index] == 0)
+  if (rl_executing_macro[executing_macro_index] == 0)
     {
       _rl_pop_executing_macro ();
       return (_rl_next_macro_key ());
     }
 
-  return (_rl_executing_macro[executing_macro_index++]);
+  return (rl_executing_macro[executing_macro_index++]);
 }
 
 /* Save the currently executing macro on a stack of saved macros. */
@@ -125,7 +121,7 @@ _rl_push_executing_macro ()
   saver = (struct saved_macro *)xmalloc (sizeof (struct saved_macro));
   saver->next = macro_list;
   saver->sindex = executing_macro_index;
-  saver->string = _rl_executing_macro;
+  saver->string = rl_executing_macro;
 
   macro_list = saver;
 }
@@ -137,20 +133,21 @@ _rl_pop_executing_macro ()
 {
   struct saved_macro *macro;
 
-  if (_rl_executing_macro)
-    free (_rl_executing_macro);
-
-  _rl_executing_macro = (char *)NULL;
+  FREE (rl_executing_macro);
+  rl_executing_macro = (char *)NULL;
   executing_macro_index = 0;
 
   if (macro_list)
     {
       macro = macro_list;
-      _rl_executing_macro = macro_list->string;
+      rl_executing_macro = macro_list->string;
       executing_macro_index = macro_list->sindex;
       macro_list = macro_list->next;
       free (macro);
     }
+
+  if (rl_executing_macro == 0)
+    RL_UNSETSTATE(RL_STATE_MACROINPUT);
 }
 
 /* Add a character to the macro being built. */
@@ -161,9 +158,9 @@ _rl_add_macro_char (c)
   if (current_macro_index + 1 >= current_macro_size)
     {
       if (current_macro == 0)
-       current_macro = xmalloc (current_macro_size = 25);
+       current_macro = (char *)xmalloc (current_macro_size = 25);
       else
-       current_macro = xrealloc (current_macro, current_macro_size += 25);
+       current_macro = (char *)xrealloc (current_macro, current_macro_size += 25);
     }
 
   current_macro[current_macro_index++] = c;
@@ -180,14 +177,11 @@ _rl_kill_kbd_macro ()
     }
   current_macro_size = current_macro_index = 0;
 
-  if (_rl_executing_macro)
-    {
-      free (_rl_executing_macro);
-      _rl_executing_macro = (char *) NULL;
-    }
+  FREE (rl_executing_macro);
+  rl_executing_macro = (char *) NULL;
   executing_macro_index = 0;
 
-  _rl_defining_kbd_macro = 0;
+  RL_UNSETSTATE(RL_STATE_MACRODEF);
 }
 
 /* Begin defining a keyboard macro.
@@ -200,7 +194,7 @@ int
 rl_start_kbd_macro (ignore1, ignore2)
      int ignore1, ignore2;
 {
-  if (_rl_defining_kbd_macro)
+  if (RL_ISSTATE (RL_STATE_MACRODEF))
     {
       _rl_abort_internal ();
       return -1;
@@ -214,7 +208,7 @@ rl_start_kbd_macro (ignore1, ignore2)
   else
     current_macro_index = 0;
 
-  _rl_defining_kbd_macro = 1;
+  RL_SETSTATE(RL_STATE_MACRODEF);
   return 0;
 }
 
@@ -225,7 +219,7 @@ int
 rl_end_kbd_macro (count, ignore)
      int count, ignore;
 {
-  if (_rl_defining_kbd_macro == 0)
+  if (RL_ISSTATE (RL_STATE_MACRODEF) == 0)
     {
       _rl_abort_internal ();
       return -1;
@@ -234,7 +228,7 @@ rl_end_kbd_macro (count, ignore)
   current_macro_index -= rl_key_sequence_length - 1;
   current_macro[current_macro_index] = '\0';
 
-  _rl_defining_kbd_macro = 0;
+  RL_UNSETSTATE(RL_STATE_MACRODEF);
 
   return (rl_call_last_kbd_macro (--count, 0));
 }
@@ -248,9 +242,9 @@ rl_call_last_kbd_macro (count, ignore)
   if (current_macro == 0)
     _rl_abort_internal ();
 
-  if (_rl_defining_kbd_macro)
+  if (RL_ISSTATE (RL_STATE_MACRODEF))
     {
-      ding ();         /* no recursive macros */
+      rl_ding ();              /* no recursive macros */
       current_macro[--current_macro_index] = '\0';     /* erase this char */
       return 0;
     }
index 67bed8a6fa4a93fa3607d84ea17bbe3c88cd4c27..706c8195c1047bde36d26ff34622a133fb7cc980 100644 (file)
@@ -71,8 +71,8 @@ static char *legal_lang_values[] =
   0
 };
 
-static char *normalize_codeset __P((char *));
-static char *find_codeset __P((char *, size_t *));
+static char *normalize_codeset PARAMS((char *));
+static char *find_codeset PARAMS((char *, size_t *));
 #endif /* !HAVE_SETLOCALE */
 
 /* Check for LC_ALL, LC_CTYPE, and LANG and use the first with a value
@@ -105,9 +105,9 @@ _rl_init_eightbit ()
   /* We don't have setlocale.  Finesse it.  Check the environment for the
      appropriate variables and set eight-bit mode if they have the right
      values. */
-  lspec = get_env_value ("LC_ALL");
-  if (lspec == 0) lspec = get_env_value ("LC_CTYPE");
-  if (lspec == 0) lspec = get_env_value ("LANG");
+  lspec = sh_get_env_value ("LC_ALL");
+  if (lspec == 0) lspec = sh_get_env_value ("LC_CTYPE");
+  if (lspec == 0) lspec = sh_get_env_value ("LANG");
   if (lspec == 0 || (t = normalize_codeset (lspec)) == 0)
     return (0);
   for (i = 0; t && legal_lang_values[i]; i++)
@@ -141,10 +141,10 @@ normalize_codeset (codeset)
   all_digits = 1;
   for (len = 0, i = 0; i < namelen; i++)
     {
-      if (isalnum (codeset[i]))
+      if (ISALNUM ((unsigned char)codeset[i]))
        {
          len++;
-         all_digits &= isdigit (codeset[i]);
+         all_digits &= _rl_digit_p (codeset[i]);
        }
     }
 
@@ -162,9 +162,9 @@ normalize_codeset (codeset)
     }
 
   for (i = 0; i < namelen; i++)
-    if (isalpha (codeset[i]))
-      *wp++ = (isupper (codeset[i])) ? tolower (codeset[i]) : codeset[i];
-    else if (isdigit (codeset[i]))
+    if (ISALPHA ((unsigned char)codeset[i]))
+      *wp++ = _rl_to_lower (codeset[i]);
+    else if (_rl_digit_p (codeset[i]))
       *wp++ = codeset[i];
   *wp = '\0';
 
index b6de529f1a000611783b33c7ed465ed989e74a88..54ef1f3695faf8ff4545139fe46357949134f42d 100644 (file)
 #include <stdio.h>
 #include <sys/types.h>
 
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
 #if defined (FD_SET) && !defined (HAVE_SELECT)
 #  define HAVE_SELECT
 #endif
@@ -54,7 +58,7 @@ extern char *strchr (), *strrchr ();
 #include "readline.h"
 #include "rlprivate.h"
 
-static int find_matching_open __P((char *, int, int));
+static int find_matching_open PARAMS((char *, int, int));
 
 /* Non-zero means try to blink the matching open parenthesis when the
    close parenthesis is inserted. */
@@ -64,6 +68,8 @@ int rl_blink_matching_paren = 1;
 int rl_blink_matching_paren = 0;
 #endif /* !HAVE_SELECT */
 
+static int _paren_blink_usec = 500000;
+
 /* Change emacs_standard_keymap to have bindings for paren matching when
    ON_OR_OFF is 1, change them back to self_insert when ON_OR_OFF == 0. */
 void
@@ -84,12 +90,24 @@ _rl_enable_paren_matching (on_or_off)
     }
 }
 
+int
+rl_set_paren_blink_timeout (u)
+     int u;
+{
+  int o;
+
+  o = _paren_blink_usec;
+  if (u > 0)
+    _paren_blink_usec = u;
+  return (o);
+}
+
 int
 rl_insert_close (count, invoking_key)
      int count, invoking_key;
 {
   if (rl_explicit_arg || !rl_blink_matching_paren)
-    rl_insert (count, invoking_key);
+    _rl_insert_char (count, invoking_key);
   else
     {
 #if defined (HAVE_SELECT)
@@ -97,7 +115,7 @@ rl_insert_close (count, invoking_key)
       struct timeval timer;
       fd_set readfds;
 
-      rl_insert (1, invoking_key);
+      _rl_insert_char (1, invoking_key);
       (*rl_redisplay_function) ();
       match_point =
        find_matching_open (rl_line_buffer, rl_point - 2, invoking_key);
@@ -109,7 +127,7 @@ rl_insert_close (count, invoking_key)
       FD_ZERO (&readfds);
       FD_SET (fileno (rl_instream), &readfds);
       timer.tv_sec = 0;
-      timer.tv_usec = 500000;
+      timer.tv_usec = _paren_blink_usec;
 
       orig_point = rl_point;
       rl_point = match_point;
@@ -117,7 +135,7 @@ rl_insert_close (count, invoking_key)
       ready = select (1, &readfds, (fd_set *)NULL, (fd_set *)NULL, &timer);
       rl_point = orig_point;
 #else /* !HAVE_SELECT */
-      rl_insert (count, invoking_key);
+      _rl_insert_char (count, invoking_key);
 #endif /* !HAVE_SELECT */
     }
   return 0;
index 98ced75b346b2654b9b3356b77823d26e66757ea..505e27954f1683671ed12b7e1a140fb9ae9e7ba4 100644 (file)
 #  define d_fileno d_ino
 #endif
 
+#if defined (_POSIX_SOURCE) && (!defined (STRUCT_DIRENT_HAS_D_INO) || defined (BROKEN_DIRENT_D_INO))
+/* Posix does not require that the d_ino field be present, and some
+   systems do not provide it. */
+#  define REAL_DIR_ENTRY(dp) 1
+#else
+#  define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
+#endif /* _POSIX_SOURCE */
+
 #endif /* !_POSIXDIR_H_ */
index 2c6aef68f48ff7e74a97c581568a4a81bc3bd17b..28801f19dfc1ea1036258440ee690a1b1438ffd7 100644 (file)
@@ -1,7 +1,7 @@
 /* readline.c -- a general facility for reading lines of input
    with emacs style editing and completion. */
 
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
 
    This file is part of the GNU Readline Library, a library for
    reading lines of text with interactive input and history editing.
@@ -52,6 +52,7 @@
 
 /* System-specific feature definitions and include files. */
 #include "rldefs.h"
+#include "rlmbutil.h"
 
 #if defined (__EMX__)
 #  define INCL_DOSPROCESS
 #include "xmalloc.h"
 
 #ifndef RL_LIBRARY_VERSION
-#  define RL_LIBRARY_VERSION "4.1"
+#  define RL_LIBRARY_VERSION "4.3"
 #endif
 
-/* Evaluates its arguments multiple times. */
-#define SWAP(s, e)  do { int t; t = s; s = e; e = t; } while (0)
+#ifndef RL_READLINE_VERSION
+#  define RL_READLINE_VERSION  0x0403
+#endif
+
+extern void _rl_free_history_entry PARAMS((HIST_ENTRY *));
 
 /* Forward declarations used in this file. */
-void _rl_free_history_entry __P((HIST_ENTRY *));
+static char *readline_internal PARAMS((void));
+static void readline_initialize_everything PARAMS((void));
 
-static char *readline_internal __P((void));
-static void readline_initialize_everything __P((void));
-static void start_using_history __P((void));
-static void bind_arrow_keys __P((void));
-static int rl_change_case __P((int, int));
+static void bind_arrow_keys_internal PARAMS((Keymap));
+static void bind_arrow_keys PARAMS((void));
 
-static void readline_default_bindings __P((void));
+static void readline_default_bindings PARAMS((void));
 
 /* **************************************************************** */
 /*                                                                 */
@@ -90,8 +92,11 @@ static void readline_default_bindings __P((void));
 /*                                                                 */
 /* **************************************************************** */
 
-char *rl_library_version = RL_LIBRARY_VERSION;
+const char *rl_library_version = RL_LIBRARY_VERSION;
 
+int rl_readline_version = RL_READLINE_VERSION;
+
+/* True if this is `real' readline as opposed to some stub substitute. */
 int rl_gnu_readline_p = 1;
 
 /* A pointer to the keymap that is currently in use.
@@ -101,6 +106,9 @@ Keymap _rl_keymap = emacs_standard_keymap;
 /* The current style of editing. */
 int rl_editing_mode = emacs_mode;
 
+/* The current insert mode:  input (the default) or overwrite */
+int rl_insert_mode = RL_IM_DEFAULT;
+
 /* Non-zero if we called this function from _rl_dispatch().  It's present
    so functions can find out whether they were called from a key binding
    or directly from an application. */
@@ -121,8 +129,13 @@ int rl_arg_sign = 1;
 /* Non-zero means we have been called at least once before. */
 static int rl_initialized;
 
+#if 0
 /* If non-zero, this program is running in an EMACS buffer. */
 static int running_in_emacs;
+#endif
+
+/* Flags word encapsulating the current readline state. */
+int rl_readline_state = RL_STATE_NONE;
 
 /* The current offset in the current input line. */
 int rl_point;
@@ -137,7 +150,7 @@ int rl_end;
 int rl_done;
 
 /* The last function executed by readline. */
-Function *rl_last_func = (Function *)NULL;
+rl_command_func_t *rl_last_func = (rl_command_func_t *)NULL;
 
 /* Top level environment for readline_internal (). */
 procenv_t readline_top_level;
@@ -149,11 +162,14 @@ FILE *_rl_in_stream, *_rl_out_stream;
 FILE *rl_instream = (FILE *)NULL;
 FILE *rl_outstream = (FILE *)NULL;
 
-/* Non-zero means echo characters as they are read. */
-int readline_echoing_p = 1;
+/* Non-zero means echo characters as they are read.  Defaults to no echo;
+   set to 1 if there is a controlling terminal, we can get its attributes,
+   and the attributes include `echo'.  Look at rltty.c:prepare_terminal_settings
+   for the code that sets it. */
+int readline_echoing_p = 0;
 
 /* Current prompt. */
-char *rl_prompt;
+char *rl_prompt = (char *)NULL;
 int rl_visible_prompt_length = 0;
 
 /* Set to non-zero by calling application if it has already printed rl_prompt
@@ -165,12 +181,12 @@ int rl_key_sequence_length = 0;
 
 /* If non-zero, then this is the address of a function to call just
    before readline_internal_setup () prints the first prompt. */
-Function *rl_startup_hook = (Function *)NULL;
+rl_hook_func_t *rl_startup_hook = (rl_hook_func_t *)NULL;
 
 /* If non-zero, this is the address of a function to call just before
    readline_internal_setup () returns and readline_internal starts
    reading input characters. */
-Function *rl_pre_input_hook = (Function *)NULL;
+rl_hook_func_t *rl_pre_input_hook = (rl_hook_func_t *)NULL;
 
 /* What we use internally.  You should always refer to RL_LINE_BUFFER. */
 static char *the_line;
@@ -183,7 +199,7 @@ int _rl_eof_char = CTRL ('D');
 int rl_pending_input = 0;
 
 /* Pointer to a useful terminal name. */
-char *rl_terminal_name = (char *)NULL;
+const char *rl_terminal_name = (const char *)NULL;
 
 /* Non-zero means to always use horizontal scrolling in line display. */
 int _rl_horizontal_scroll_mode = 0;
@@ -213,7 +229,7 @@ int rl_num_chars_to_read;
 char *rl_line_buffer = (char *)NULL;
 int rl_line_buffer_len = 0;
 
-/* Forward declarations used by the display and termcap code. */
+/* Forward declarations used by the display, termcap, and history code. */
 
 /* **************************************************************** */
 /*                                                                 */
@@ -243,24 +259,35 @@ int _rl_output_meta_chars = 0;
 /* Non-zero means treat 0200 bit in terminal input as Meta bit. */
 int _rl_meta_flag = 0; /* Forward declaration */
 
+/* Set up the prompt and expand it.  Called from readline() and
+   rl_callback_handler_install (). */
+int
+rl_set_prompt (prompt)
+     const char *prompt;
+{
+  FREE (rl_prompt);
+  rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
+
+  rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
+  return 0;
+}
+  
 /* Read a line of input.  Prompt with PROMPT.  An empty PROMPT means
    none.  A return value of NULL means that EOF was encountered. */
 char *
 readline (prompt)
-     char *prompt;
+     const char *prompt;
 {
   char *value;
 
-  rl_prompt = prompt;
-
   /* If we are at EOF return a NULL string. */
   if (rl_pending_input == EOF)
     {
-      rl_pending_input = 0;
+      rl_clear_pending_input ();
       return ((char *)NULL);
     }
 
-  rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
+  rl_set_prompt (prompt);
 
   rl_initialize ();
   (*rl_prep_term_function) (_rl_meta_flag);
@@ -296,7 +323,10 @@ readline_internal_setup ()
   if (rl_startup_hook)
     (*rl_startup_hook) ();
 
-  if (readline_echoing_p == 0)
+  /* If we're not echoing, we still want to at least print a prompt, because
+     rl_redisplay will not do it for us.  If the calling application has a
+     custom redisplay function, though, let that function handle it. */
+  if (readline_echoing_p == 0 && rl_redisplay_function == rl_redisplay)
     {
       if (rl_prompt && rl_already_prompted == 0)
        {
@@ -313,11 +343,12 @@ readline_internal_setup ()
       else
        rl_on_new_line ();
       (*rl_redisplay_function) ();
+    }
+
 #if defined (VI_MODE)
-      if (rl_editing_mode == vi_mode)
-       rl_vi_insertion_mode (1, 0);
+  if (rl_editing_mode == vi_mode)
+    rl_vi_insertion_mode (1, 0);
 #endif /* VI_MODE */
-    }
 
   if (rl_pre_input_hook)
     (*rl_pre_input_hook) ();
@@ -348,7 +379,10 @@ readline_internal_teardown (eof)
   /* At any rate, it is highly likely that this line has an undo list.  Get
      rid of it now. */
   if (rl_undo_list)
-    free_undo_list ();
+    rl_free_undo_list ();
+
+  /* Restore normal cursor, if available. */
+  _rl_set_insert_mode (RL_IM_INSERT, 0);
 
   return (eof ? (char *)NULL : savestring (the_line));
 }
@@ -384,7 +418,9 @@ readline_internal_charloop ()
          rl_key_sequence_length = 0;
        }
 
+      RL_SETSTATE(RL_STATE_READCMD);
       c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_READCMD);
 
       /* EOF typed to a non-blank line is a <NL>. */
       if (c == EOF && rl_end)
@@ -395,6 +431,7 @@ readline_internal_charloop ()
       if (((c == _rl_eof_char && lastc != c) || c == EOF) && !rl_end)
        {
 #if defined (READLINE_CALLBACKS)
+         RL_SETSTATE(RL_STATE_DONE);
          return (rl_done = 1);
 #else
          eof_found = 1;
@@ -470,7 +507,7 @@ readline_internal ()
 void
 _rl_init_line_state ()
 {
-  rl_point = rl_end = 0;
+  rl_point = rl_end = rl_mark = 0;
   the_line = rl_line_buffer;
   the_line[0] = 0;
 }
@@ -488,16 +525,25 @@ int
 _rl_dispatch (key, map)
      register int key;
      Keymap map;
+{
+  return _rl_dispatch_subseq (key, map, 0);
+}
+
+int
+_rl_dispatch_subseq (key, map, got_subseq)
+     register int key;
+     Keymap map;
+     int got_subseq;
 {
   int r, newkey;
   char *macro;
-  Function *func;
+  rl_command_func_t *func;
 
   if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii)
     {
       if (map[ESC].type == ISKMAP)
        {
-         if (_rl_defining_kbd_macro)
+         if (RL_ISSTATE (RL_STATE_MACRODEF))
            _rl_add_macro_char (ESC);
          map = FUNCTION_TO_KEYMAP (map, ESC);
          key = UNMETA (key);
@@ -505,11 +551,11 @@ _rl_dispatch (key, map)
          return (_rl_dispatch (key, map));
        }
       else
-       ding ();
+       rl_ding ();
       return 0;
     }
 
-  if (_rl_defining_kbd_macro)
+  if (RL_ISSTATE (RL_STATE_MACRODEF))
     _rl_add_macro_char (key);
 
   r = 0;
@@ -517,7 +563,7 @@ _rl_dispatch (key, map)
     {
     case ISFUNC:
       func = map[key].function;
-      if (func != (Function *)NULL)
+      if (func)
        {
          /* Special case rl_do_lowercase_version (). */
          if (func == rl_do_lowercase_version)
@@ -530,15 +576,34 @@ _rl_dispatch (key, map)
 #endif
 
          rl_dispatching = 1;
+         RL_SETSTATE(RL_STATE_DISPATCHING);
          r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
+         RL_UNSETSTATE(RL_STATE_DISPATCHING);
          rl_dispatching = 0;
 
          /* If we have input pending, then the last command was a prefix
             command.  Don't change the state of rl_last_func.  Otherwise,
             remember the last command executed in this variable. */
-         if (!rl_pending_input && map[key].function != rl_digit_argument)
+         if (rl_pending_input == 0 && map[key].function != rl_digit_argument)
            rl_last_func = map[key].function;
        }
+      else if (map[ANYOTHERKEY].function)
+       {
+         /* OK, there's no function bound in this map, but there is a
+            shadow function that was overridden when the current keymap
+            was created.  Return -2 to note  that. */
+         _rl_unget_char  (key);
+         return -2;
+       }
+      else if (got_subseq)
+       {
+         /* Return -1 to note that we're in a subsequence, but  we don't
+            have a matching key, nor was one overridden.  This means
+            we need to back up the recursion chain and find the last
+            subsequence that is bound to a function. */
+         _rl_unget_char (key);
+         return -1;
+       }
       else
        {
          _rl_abort_internal ();
@@ -547,11 +612,59 @@ _rl_dispatch (key, map)
       break;
 
     case ISKMAP:
-      if (map[key].function != (Function *)NULL)
+      if (map[key].function != 0)
        {
+#if defined (VI_MODE)
+         /* The only way this test will be true is if a subsequence has been
+            bound starting with ESC, generally the arrow keys.  What we do is
+            check whether there's input in the queue, which there generally
+            will be if an arrow key has been pressed, and, if there's not,
+            just dispatch to (what we assume is) rl_vi_movement_mode right
+            away.  This is essentially an input test with a zero timeout. */
+         if (rl_editing_mode == vi_mode && key == ESC && map == vi_insertion_keymap
+             && _rl_input_queued (0) == 0)
+           return (_rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key)));
+#endif
+
          rl_key_sequence_length++;
+
+         if (key == ESC)
+           RL_SETSTATE(RL_STATE_METANEXT);
+         RL_SETSTATE(RL_STATE_MOREINPUT);
          newkey = rl_read_key ();
-         r = _rl_dispatch (newkey, FUNCTION_TO_KEYMAP (map, key));
+         RL_UNSETSTATE(RL_STATE_MOREINPUT);
+         if (key == ESC)
+           RL_UNSETSTATE(RL_STATE_METANEXT);
+
+         if (newkey < 0)
+           {
+             _rl_abort_internal ();
+             return -1;
+           }
+
+         r = _rl_dispatch_subseq (newkey, FUNCTION_TO_KEYMAP (map, key), got_subseq || map[ANYOTHERKEY].function);
+
+         if (r == -2)
+           /* We didn't match anything, and the keymap we're indexed into
+              shadowed a function previously bound to that prefix.  Call
+              the function.  The recursive call to _rl_dispatch_subseq has
+              already taken care of pushing any necessary input back onto
+              the input queue with _rl_unget_char. */
+           r = _rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key));
+         else if (r && map[ANYOTHERKEY].function)
+           {
+             /* We didn't match (r is probably -1), so return something to
+                tell the caller that it should try ANYOTHERKEY for an
+                overridden function. */
+             _rl_unget_char (key);
+             return -2;
+           }
+         else if (r && got_subseq)
+           {
+             /* OK, back up the chain. */
+             _rl_unget_char (key);
+             return -1;
+           }
        }
       else
        {
@@ -561,7 +674,7 @@ _rl_dispatch (key, map)
       break;
 
     case ISMACR:
-      if (map[key].function != (Function *)NULL)
+      if (map[key].function != 0)
        {
          macro = savestring ((char *)map[key].function);
          _rl_with_macro_input (macro);
@@ -591,8 +704,11 @@ rl_initialize ()
      terminal and data structures. */
   if (!rl_initialized)
     {
+      RL_SETSTATE(RL_STATE_INITIALIZING);
       readline_initialize_everything ();
+      RL_UNSETSTATE(RL_STATE_INITIALIZING);
       rl_initialized++;
+      RL_SETSTATE(RL_STATE_INITIALIZED);
     }
 
   /* Initalize the current line information. */
@@ -600,15 +716,16 @@ rl_initialize ()
 
   /* We aren't done yet.  We haven't even gotten started yet! */
   rl_done = 0;
+  RL_UNSETSTATE(RL_STATE_DONE);
 
   /* Tell the history routines what is going on. */
-  start_using_history ();
+  _rl_start_using_history ();
 
   /* Make the display buffer match the state of the line. */
   rl_reset_line_state ();
 
   /* No such function typed yet. */
-  rl_last_func = (Function *)NULL;
+  rl_last_func = (rl_command_func_t *)NULL;
 
   /* Parsing of key-bindings begins in an enabled state. */
   _rl_parsing_conditionalized_out = 0;
@@ -618,6 +735,9 @@ rl_initialize ()
     _rl_vi_initialize_line ();
 #endif
 
+  /* Each line starts in insert mode (the default). */
+  _rl_set_insert_mode (RL_IM_DEFAULT, 1);
+
   return 0;
 }
 
@@ -658,8 +778,10 @@ readline_initialize_everything ()
 #endif
 #endif
 
-  /* Find out if we are running in Emacs. */
-  running_in_emacs = get_env_value ("EMACS") != (char *)0;
+#if 0
+  /* Find out if we are running in Emacs -- UNUSED. */
+  running_in_emacs = sh_get_env_value ("EMACS") != (char *)0;
+#endif
 
   /* Set up input and output if they are not already set up. */
   if (!rl_instream)
@@ -676,10 +798,12 @@ readline_initialize_everything ()
 
   /* Allocate data structures. */
   if (rl_line_buffer == 0)
-    rl_line_buffer = xmalloc (rl_line_buffer_len = DEFAULT_BUFFER_SIZE);
+    rl_line_buffer = (char *)xmalloc (rl_line_buffer_len = DEFAULT_BUFFER_SIZE);
 
   /* Initialize the terminal interface. */
-  _rl_init_terminal_io ((char *)NULL);
+  if (rl_terminal_name == 0)
+    rl_terminal_name = sh_get_env_value ("TERM");
+  _rl_init_terminal_io (rl_terminal_name);
 
   /* Bind tty characters to readline functions. */
   readline_default_bindings ();
@@ -696,8 +820,8 @@ readline_initialize_everything ()
   /* XXX */
   if (_rl_horizontal_scroll_mode && _rl_term_autowrap)
     {
-      screenwidth--;
-      screenchars -= screenheight;
+      _rl_screenwidth--;
+      _rl_screenchars -= _rl_screenheight;
     }
 
   /* Override the effect of any `set keymap' assignments in the
@@ -723,1367 +847,127 @@ readline_initialize_everything ()
 static void
 readline_default_bindings ()
 {
-  rltty_set_default_bindings (_rl_keymap);
+  rl_tty_set_default_bindings (_rl_keymap);
 }
 
+/* Bind some common arrow key sequences in MAP. */
 static void
-bind_arrow_keys_internal ()
+bind_arrow_keys_internal (map)
+     Keymap map;
 {
-  Function *f;
+  Keymap xkeymap;
+
+  xkeymap = _rl_keymap;
+  _rl_keymap = map;
 
 #if defined (__MSDOS__)
-  f = rl_function_of_keyseq ("\033[0A", _rl_keymap, (int *)NULL);
-  if (!f || f == rl_do_lowercase_version)
-    {
-       _rl_bind_if_unbound ("\033[0A", rl_get_previous_history);
-       _rl_bind_if_unbound ("\033[0B", rl_backward);
-       _rl_bind_if_unbound ("\033[0C", rl_forward);
-       _rl_bind_if_unbound ("\033[0D", rl_get_next_history);
-    }
+   _rl_bind_if_unbound ("\033[0A", rl_get_previous_history);
+   _rl_bind_if_unbound ("\033[0B", rl_backward_char);
+   _rl_bind_if_unbound ("\033[0C", rl_forward_char);
+   _rl_bind_if_unbound ("\033[0D", rl_get_next_history);
 #endif
-       
-  f = rl_function_of_keyseq ("\033[A", _rl_keymap, (int *)NULL);
-  if (!f || f == rl_do_lowercase_version)
-    {
-      _rl_bind_if_unbound ("\033[A", rl_get_previous_history);
-      _rl_bind_if_unbound ("\033[B", rl_get_next_history);
-      _rl_bind_if_unbound ("\033[C", rl_forward);
-      _rl_bind_if_unbound ("\033[D", rl_backward);
-    }
 
-  f = rl_function_of_keyseq ("\033OA", _rl_keymap, (int *)NULL);
-  if (!f || f == rl_do_lowercase_version)
-    {
-      _rl_bind_if_unbound ("\033OA", rl_get_previous_history);
-      _rl_bind_if_unbound ("\033OB", rl_get_next_history);
-      _rl_bind_if_unbound ("\033OC", rl_forward);
-      _rl_bind_if_unbound ("\033OD", rl_backward);
-    }
+  _rl_bind_if_unbound ("\033[A", rl_get_previous_history);
+  _rl_bind_if_unbound ("\033[B", rl_get_next_history);
+  _rl_bind_if_unbound ("\033[C", rl_forward_char);
+  _rl_bind_if_unbound ("\033[D", rl_backward_char);
+  _rl_bind_if_unbound ("\033[H", rl_beg_of_line);
+  _rl_bind_if_unbound ("\033[F", rl_end_of_line);
+
+  _rl_bind_if_unbound ("\033OA", rl_get_previous_history);
+  _rl_bind_if_unbound ("\033OB", rl_get_next_history);
+  _rl_bind_if_unbound ("\033OC", rl_forward_char);
+  _rl_bind_if_unbound ("\033OD", rl_backward_char);
+  _rl_bind_if_unbound ("\033OH", rl_beg_of_line);
+  _rl_bind_if_unbound ("\033OF", rl_end_of_line);
+
+  _rl_keymap = xkeymap;
 }
 
-/* Try and bind the common arrow key prefix after giving termcap and
+/* Try and bind the common arrow key prefixes after giving termcap and
    the inputrc file a chance to bind them and create `real' keymaps
    for the arrow key prefix. */
 static void
 bind_arrow_keys ()
 {
-  Keymap xkeymap;
-
-  xkeymap = _rl_keymap;
-
-  _rl_keymap = emacs_standard_keymap;
-  bind_arrow_keys_internal ();
+  bind_arrow_keys_internal (emacs_standard_keymap);
 
 #if defined (VI_MODE)
-  _rl_keymap = vi_movement_keymap;
-  bind_arrow_keys_internal ();
+  bind_arrow_keys_internal (vi_movement_keymap);
+  bind_arrow_keys_internal (vi_insertion_keymap);
 #endif
-
-  _rl_keymap = xkeymap;
-}
-
-\f
-/* **************************************************************** */
-/*                                                                 */
-/*                     Numeric Arguments                           */
-/*                                                                 */
-/* **************************************************************** */
-
-/* Handle C-u style numeric args, as well as M--, and M-digits. */
-static int
-rl_digit_loop ()
-{
-  int key, c, sawminus, sawdigits;
-
-  rl_save_prompt ();
-
-  sawminus = sawdigits = 0;
-  while (1)
-    {
-      if (rl_numeric_arg > 1000000)
-       {
-         sawdigits = rl_explicit_arg = rl_numeric_arg = 0;
-         ding ();
-         rl_restore_prompt ();
-         rl_clear_message ();
-         return 1;
-       }
-      rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg);
-      key = c = rl_read_key ();
-
-      /* If we see a key bound to `universal-argument' after seeing digits,
-        it ends the argument but is otherwise ignored. */
-      if (_rl_keymap[c].type == ISFUNC &&
-         _rl_keymap[c].function == rl_universal_argument)
-       {
-         if (sawdigits == 0)
-           {
-             rl_numeric_arg *= 4;
-             continue;
-           }
-         else
-           {
-             key = rl_read_key ();
-             rl_restore_prompt ();
-             rl_clear_message ();
-             return (_rl_dispatch (key, _rl_keymap));
-           }
-       }
-
-      c = UNMETA (c);
-
-      if (_rl_digit_p (c))
-       {
-         rl_numeric_arg = rl_explicit_arg ? (rl_numeric_arg * 10) + c - '0' : c - '0';
-         sawdigits = rl_explicit_arg = 1;
-       }
-      else if (c == '-' && rl_explicit_arg == 0)
-       {
-         rl_numeric_arg = sawminus = 1;
-         rl_arg_sign = -1;
-       }
-      else
-       {
-         /* Make M-- command equivalent to M--1 command. */
-         if (sawminus && rl_numeric_arg == 1 && rl_explicit_arg == 0)
-           rl_explicit_arg = 1;
-         rl_restore_prompt ();
-         rl_clear_message ();
-         return (_rl_dispatch (key, _rl_keymap));
-       }
-    }
-
-  return 0;
-}
-
-/* Add the current digit to the argument in progress. */
-int
-rl_digit_argument (ignore, key)
-     int ignore, key;
-{
-  rl_pending_input = key;
-  return (rl_digit_loop ());
-}
-
-/* What to do when you abort reading an argument. */
-int
-rl_discard_argument ()
-{
-  ding ();
-  rl_clear_message ();
-  _rl_init_argument ();
-  return 0;
-}
-
-/* Create a default argument. */
-int
-_rl_init_argument ()
-{
-  rl_numeric_arg = rl_arg_sign = 1;
-  rl_explicit_arg = 0;
-  return 0;
-}
-
-/* C-u, universal argument.  Multiply the current argument by 4.
-   Read a key.  If the key has nothing to do with arguments, then
-   dispatch on it.  If the key is the abort character then abort. */
-int
-rl_universal_argument (count, key)
-     int count, key;
-{
-  rl_numeric_arg *= 4;
-  return (rl_digit_loop ());
-}
-
-/* **************************************************************** */
-/*                                                                 */
-/*                     Insert and Delete                           */
-/*                                                                 */
-/* **************************************************************** */
-
-/* Insert a string of text into the line at point.  This is the only
-   way that you should do insertion.  rl_insert () calls this
-   function. */
-int
-rl_insert_text (string)
-     char *string;
-{
-  register int i, l = strlen (string);
-
-  if (rl_end + l >= rl_line_buffer_len)
-    rl_extend_line_buffer (rl_end + l);
-
-  for (i = rl_end; i >= rl_point; i--)
-    the_line[i + l] = the_line[i];
-  strncpy (the_line + rl_point, string, l);
-
-  /* Remember how to undo this if we aren't undoing something. */
-  if (!_rl_doing_an_undo)
-    {
-      /* If possible and desirable, concatenate the undos. */
-      if ((l == 1) &&
-         rl_undo_list &&
-         (rl_undo_list->what == UNDO_INSERT) &&
-         (rl_undo_list->end == rl_point) &&
-         (rl_undo_list->end - rl_undo_list->start < 20))
-       rl_undo_list->end++;
-      else
-       rl_add_undo (UNDO_INSERT, rl_point, rl_point + l, (char *)NULL);
-    }
-  rl_point += l;
-  rl_end += l;
-  the_line[rl_end] = '\0';
-  return l;
-}
-
-/* Delete the string between FROM and TO.  FROM is
-   inclusive, TO is not. */
-int
-rl_delete_text (from, to)
-     int from, to;
-{
-  register char *text;
-  register int diff, i;
-
-  /* Fix it if the caller is confused. */
-  if (from > to)
-    SWAP (from, to);
-
-  /* fix boundaries */
-  if (to > rl_end)
-    {
-      to = rl_end;
-      if (from > to)
-        from = to;
-    }
-
-  text = rl_copy_text (from, to);
-
-  /* Some versions of strncpy() can't handle overlapping arguments. */
-  diff = to - from;
-  for (i = from; i < rl_end - diff; i++)
-    the_line[i] = the_line[i + diff];
-
-  /* Remember how to undo this delete. */
-  if (_rl_doing_an_undo == 0)
-    rl_add_undo (UNDO_DELETE, from, to, text);
-  else
-    free (text);
-
-  rl_end -= diff;
-  the_line[rl_end] = '\0';
-  return (diff);
-}
-
-/* Fix up point so that it is within the line boundaries after killing
-   text.  If FIX_MARK_TOO is non-zero, the mark is forced within line
-   boundaries also. */
-
-#define _RL_FIX_POINT(x) \
-       do { \
-       if (x > rl_end) \
-         x = rl_end; \
-       else if (x < 0) \
-         x = 0; \
-       } while (0)
-
-void
-_rl_fix_point (fix_mark_too)
-     int fix_mark_too;
-{
-  _RL_FIX_POINT (rl_point);
-  if (fix_mark_too)
-    _RL_FIX_POINT (rl_mark);
-}
-#undef _RL_FIX_POINT
-
-void
-_rl_replace_text (text, start, end)
-     char *text;
-     int start, end;
-{
-  rl_begin_undo_group ();
-  rl_delete_text (start, end + 1);
-  rl_point = start;
-  rl_insert_text (text);
-  rl_end_undo_group ();
 }
 
 /* **************************************************************** */
 /*                                                                 */
-/*                     Readline character functions                */
-/*                                                                 */
-/* **************************************************************** */
-
-/* This is not a gap editor, just a stupid line input routine.  No hair
-   is involved in writing any of the functions, and none should be. */
-
-/* Note that:
-
-   rl_end is the place in the string that we would place '\0';
-   i.e., it is always safe to place '\0' there.
-
-   rl_point is the place in the string where the cursor is.  Sometimes
-   this is the same as rl_end.
-
-   Any command that is called interactively receives two arguments.
-   The first is a count: the numeric arg pased to this command.
-   The second is the key which invoked this command.
-*/
-
-/* **************************************************************** */
-/*                                                                 */
-/*                     Movement Commands                           */
+/*             Saving and Restoring Readline's state               */
 /*                                                                 */
 /* **************************************************************** */
 
-/* Note that if you `optimize' the display for these functions, you cannot
-   use said functions in other functions which do not do optimizing display.
-   I.e., you will have to update the data base for rl_redisplay, and you
-   might as well let rl_redisplay do that job. */
-
-/* Move forward COUNT characters. */
-int
-rl_forward (count, key)
-     int count, key;
-{
-  if (count < 0)
-    rl_backward (-count, key);
-  else if (count > 0)
-    {
-      int end = rl_point + count;
-#if defined (VI_MODE)
-      int lend = rl_end - (rl_editing_mode == vi_mode);
-#else
-      int lend = rl_end;
-#endif
-
-      if (end > lend)
-       {
-         rl_point = lend;
-         ding ();
-       }
-      else
-       rl_point = end;
-    }
-
-  if (rl_end < 0)
-    rl_end = 0;
-
-  return 0;
-}
-
-/* Move backward COUNT characters. */
-int
-rl_backward (count, key)
-     int count, key;
-{
-  if (count < 0)
-    rl_forward (-count, key);
-  else if (count > 0)
-    {
-      if (rl_point < count)
-       {
-         rl_point = 0;
-         ding ();
-       }
-      else
-        rl_point -= count;
-    }
-  return 0;
-}
-
-/* Move to the beginning of the line. */
 int
-rl_beg_of_line (count, key)
-     int count, key;
+rl_save_state (sp)
+     struct readline_state *sp;
 {
-  rl_point = 0;
-  return 0;
-}
-
-/* Move to the end of the line. */
-int
-rl_end_of_line (count, key)
-     int count, key;
-{
-  rl_point = rl_end;
-  return 0;
-}
-
-/* Move forward a word.  We do what Emacs does. */
-int
-rl_forward_word (count, key)
-     int count, key;
-{
-  int c;
-
-  if (count < 0)
-    {
-      rl_backward_word (-count, key);
-      return 0;
-    }
-
-  while (count)
-    {
-      if (rl_point == rl_end)
-       return 0;
-
-      /* If we are not in a word, move forward until we are in one.
-        Then, move forward until we hit a non-alphabetic character. */
-      c = the_line[rl_point];
-      if (alphabetic (c) == 0)
-       {
-         while (++rl_point < rl_end)
-           {
-             c = the_line[rl_point];
-             if (alphabetic (c))
-               break;
-           }
-       }
-      if (rl_point == rl_end)
-       return 0;
-      while (++rl_point < rl_end)
-       {
-         c = the_line[rl_point];
-         if (alphabetic (c) == 0)
-           break;
-       }
-      --count;
-    }
-  return 0;
-}
-
-/* Move backward a word.  We do what Emacs does. */
-int
-rl_backward_word (count, key)
-     int count, key;
-{
-  int c;
-
-  if (count < 0)
-    {
-      rl_forward_word (-count, key);
-      return 0;
-    }
-
-  while (count)
-    {
-      if (!rl_point)
-       return 0;
-
-      /* Like rl_forward_word (), except that we look at the characters
-        just before point. */
-
-      c = the_line[rl_point - 1];
-      if (alphabetic (c) == 0)
-       {
-         while (--rl_point)
-           {
-             c = the_line[rl_point - 1];
-             if (alphabetic (c))
-               break;
-           }
-       }
-
-      while (rl_point)
-       {
-         c = the_line[rl_point - 1];
-         if (alphabetic (c) == 0)
-           break;
-         else
-           --rl_point;
-       }
-      --count;
-    }
-  return 0;
-}
-
-/* Clear the current line.  Numeric argument to C-l does this. */
-int
-rl_refresh_line (ignore1, ignore2)
-     int ignore1, ignore2;
-{
-  int curr_line;
-
-  curr_line = _rl_current_display_line ();
-
-  _rl_move_vert (curr_line);
-  _rl_move_cursor_relative (0, the_line);   /* XXX is this right */
-
-  _rl_clear_to_eol (0);                /* arg of 0 means to not use spaces */
+  if (sp == 0)
+    return -1;
 
-  rl_forced_update_display ();
-  rl_display_fixed = 1;
+  sp->point = rl_point;
+  sp->end = rl_end;
+  sp->mark = rl_mark;
+  sp->buffer = rl_line_buffer;
+  sp->buflen = rl_line_buffer_len;
+  sp->ul = rl_undo_list;
+  sp->prompt = rl_prompt;
+
+  sp->rlstate = rl_readline_state;
+  sp->done = rl_done;
+  sp->kmap = _rl_keymap;
+
+  sp->lastfunc = rl_last_func;
+  sp->insmode = rl_insert_mode;
+  sp->edmode = rl_editing_mode;
+  sp->kseqlen = rl_key_sequence_length;
+  sp->inf = rl_instream;
+  sp->outf = rl_outstream;
+  sp->pendingin = rl_pending_input;
+  sp->macro = rl_executing_macro;
+
+  sp->catchsigs = rl_catch_signals;
+  sp->catchsigwinch = rl_catch_sigwinch;
 
-  return 0;
+  return (0);
 }
 
-/* C-l typed to a line without quoting clears the screen, and then reprints
-   the prompt and the current input line.  Given a numeric arg, redraw only
-   the current line. */
 int
-rl_clear_screen (count, key)
-     int count, key;
+rl_restore_state (sp)
+     struct readline_state *sp;
 {
-  if (rl_explicit_arg)
-    {
-      rl_refresh_line (count, key);
-      return 0;
-    }
+  if (sp == 0)
+    return -1;
 
-  _rl_clear_screen ();         /* calls termcap function to clear screen */
-  rl_forced_update_display ();
-  rl_display_fixed = 1;
+  rl_point = sp->point;
+  rl_end = sp->end;
+  rl_mark = sp->mark;
+  the_line = rl_line_buffer = sp->buffer;
+  rl_line_buffer_len = sp->buflen;
+  rl_undo_list = sp->ul;
+  rl_prompt = sp->prompt;
+
+  rl_readline_state = sp->rlstate;
+  rl_done = sp->done;
+  _rl_keymap = sp->kmap;
+
+  rl_last_func = sp->lastfunc;
+  rl_insert_mode = sp->insmode;
+  rl_editing_mode = sp->edmode;
+  rl_key_sequence_length = sp->kseqlen;
+  rl_instream = sp->inf;
+  rl_outstream = sp->outf;
+  rl_pending_input = sp->pendingin;
+  rl_executing_macro = sp->macro;
+
+  rl_catch_signals = sp->catchsigs;
+  rl_catch_sigwinch = sp->catchsigwinch;
 
-  return 0;
-}
-
-int
-rl_arrow_keys (count, c)
-     int count, c;
-{
-  int ch;
-
-  ch = rl_read_key ();
-
-  switch (_rl_to_upper (ch))
-    {
-    case 'A':
-      rl_get_previous_history (count, ch);
-      break;
-
-    case 'B':
-      rl_get_next_history (count, ch);
-      break;
-
-    case 'C':
-      rl_forward (count, ch);
-      break;
-
-    case 'D':
-      rl_backward (count, ch);
-      break;
-
-    default:
-      ding ();
-    }
-  return 0;
-}
-
-\f
-/* **************************************************************** */
-/*                                                                 */
-/*                     Text commands                               */
-/*                                                                 */
-/* **************************************************************** */
-
-/* Insert the character C at the current location, moving point forward. */
-int
-rl_insert (count, c)
-     int count, c;
-{
-  register int i;
-  char *string;
-
-  if (count <= 0)
-    return 0;
-
-  /* If we can optimize, then do it.  But don't let people crash
-     readline because of extra large arguments. */
-  if (count > 1 && count <= 1024)
-    {
-      string = xmalloc (1 + count);
-
-      for (i = 0; i < count; i++)
-       string[i] = c;
-
-      string[i] = '\0';
-      rl_insert_text (string);
-      free (string);
-
-      return 0;
-    }
-
-  if (count > 1024)
-    {
-      int decreaser;
-      char str[1024+1];
-
-      for (i = 0; i < 1024; i++)
-       str[i] = c;
-
-      while (count)
-       {
-         decreaser = (count > 1024 ? 1024 : count);
-         str[decreaser] = '\0';
-         rl_insert_text (str);
-         count -= decreaser;
-       }
-
-      return 0;
-    }
-
-  /* We are inserting a single character.
-     If there is pending input, then make a string of all of the
-     pending characters that are bound to rl_insert, and insert
-     them all. */
-  if (_rl_any_typein ())
-    _rl_insert_typein (c);
-  else
-    {
-      /* Inserting a single character. */
-      char str[2];
-
-      str[1] = '\0';
-      str[0] = c;
-      rl_insert_text (str);
-    }
-  return 0;
-}
-
-/* Insert the next typed character verbatim. */
-int
-rl_quoted_insert (count, key)
-     int count, key;
-{
-  int c;
-
-#if defined (HANDLE_SIGNALS)
-  _rl_disable_tty_signals ();
-#endif
-  c = rl_read_key ();
-#if defined (HANDLE_SIGNALS)
-  _rl_restore_tty_signals ();
-#endif
-
-  return (rl_insert (count, c));  
-}
-
-/* Insert a tab character. */
-int
-rl_tab_insert (count, key)
-     int count, key;
-{
-  return (rl_insert (count, '\t'));
-}
-
-/* What to do when a NEWLINE is pressed.  We accept the whole line.
-   KEY is the key that invoked this command.  I guess it could have
-   meaning in the future. */
-int
-rl_newline (count, key)
-     int count, key;
-{
-  rl_done = 1;
-
-#if defined (VI_MODE)
-  if (rl_editing_mode == vi_mode)
-    {
-      _rl_vi_done_inserting ();
-      _rl_vi_reset_last ();
-    }
-#endif /* VI_MODE */
-
-  /* If we've been asked to erase empty lines, suppress the final update,
-     since _rl_update_final calls crlf(). */
-  if (rl_erase_empty_line && rl_point == 0 && rl_end == 0)
-    return 0;
-
-  if (readline_echoing_p)
-    _rl_update_final ();
-  return 0;
-}
-
-/* What to do for some uppercase characters, like meta characters,
-   and some characters appearing in emacs_ctlx_keymap.  This function
-   is just a stub, you bind keys to it and the code in _rl_dispatch ()
-   is special cased. */
-int
-rl_do_lowercase_version (ignore1, ignore2)
-     int ignore1, ignore2;
-{
-  return 0;
-}
-
-/* Rubout the character behind point. */
-int
-rl_rubout (count, key)
-     int count, key;
-{
-  if (count < 0)
-    {
-      rl_delete (-count, key);
-      return 0;
-    }
-
-  if (!rl_point)
-    {
-      ding ();
-      return -1;
-    }
-
-  if (count > 1 || rl_explicit_arg)
-    {
-      int orig_point = rl_point;
-      rl_backward (count, key);
-      rl_kill_text (orig_point, rl_point);
-    }
-  else
-    {
-      int c = the_line[--rl_point];
-      rl_delete_text (rl_point, rl_point + 1);
-
-      if (rl_point == rl_end && isprint (c) && _rl_last_c_pos)
-       {
-         int l;
-         l = rl_character_len (c, rl_point);
-         _rl_erase_at_end_of_line (l);
-       }
-    }
-  return 0;
-}
-
-/* Delete the character under the cursor.  Given a numeric argument,
-   kill that many characters instead. */
-int
-rl_delete (count, key)
-     int count, key;
-{
-  if (count < 0)
-    return (rl_rubout (-count, key));
-
-  if (rl_point == rl_end)
-    {
-      ding ();
-      return -1;
-    }
-
-  if (count > 1 || rl_explicit_arg)
-    {
-      int orig_point = rl_point;
-      rl_forward (count, key);
-      rl_kill_text (orig_point, rl_point);
-      rl_point = orig_point;
-      return 0;
-    }
-  else
-    return (rl_delete_text (rl_point, rl_point + 1));
-}
-
-/* Delete the character under the cursor, unless the insertion
-   point is at the end of the line, in which case the character
-   behind the cursor is deleted.  COUNT is obeyed and may be used
-   to delete forward or backward that many characters. */      
-int
-rl_rubout_or_delete (count, key)
-     int count, key;
-{
-  if (rl_end != 0 && rl_point == rl_end)
-    return (rl_rubout (count, key));
-  else
-    return (rl_delete (count, key));
-}  
-
-/* Delete all spaces and tabs around point. */
-int
-rl_delete_horizontal_space (count, ignore)
-     int count, ignore;
-{
-  int start = rl_point;
-
-  while (rl_point && whitespace (the_line[rl_point - 1]))
-    rl_point--;
-
-  start = rl_point;
-
-  while (rl_point < rl_end && whitespace (the_line[rl_point]))
-    rl_point++;
-
-  if (start != rl_point)
-    {
-      rl_delete_text (start, rl_point);
-      rl_point = start;
-    }
-  return 0;
-}
-
-/* Like the tcsh editing function delete-char-or-list.  The eof character
-   is caught before this is invoked, so this really does the same thing as
-   delete-char-or-list-or-eof, as long as it's bound to the eof character. */
-int
-rl_delete_or_show_completions (count, key)
-     int count, key;
-{
-  if (rl_end != 0 && rl_point == rl_end)
-    return (rl_possible_completions (count, key));
-  else
-    return (rl_delete (count, key));
-}
-
-#ifndef RL_COMMENT_BEGIN_DEFAULT
-#define RL_COMMENT_BEGIN_DEFAULT "#"
-#endif
-
-/* Turn the current line into a comment in shell history.
-   A K*rn shell style function. */
-int
-rl_insert_comment (count, key)
-     int count, key;
-{
-  rl_beg_of_line (1, key);
-  rl_insert_text (_rl_comment_begin ? _rl_comment_begin
-                                   : RL_COMMENT_BEGIN_DEFAULT);
-  (*rl_redisplay_function) ();
-  rl_newline (1, '\n');
-  return (0);
-}
-
-/* **************************************************************** */
-/*                                                                 */
-/*                     Changing Case                               */
-/*                                                                 */
-/* **************************************************************** */
-
-/* The three kinds of things that we know how to do. */
-#define UpCase 1
-#define DownCase 2
-#define CapCase 3
-
-/* Uppercase the word at point. */
-int
-rl_upcase_word (count, key)
-     int count, key;
-{
-  return (rl_change_case (count, UpCase));
-}
-
-/* Lowercase the word at point. */
-int
-rl_downcase_word (count, key)
-     int count, key;
-{
-  return (rl_change_case (count, DownCase));
-}
-
-/* Upcase the first letter, downcase the rest. */
-int
-rl_capitalize_word (count, key)
-     int count, key;
-{
- return (rl_change_case (count, CapCase));
-}
-
-/* The meaty function.
-   Change the case of COUNT words, performing OP on them.
-   OP is one of UpCase, DownCase, or CapCase.
-   If a negative argument is given, leave point where it started,
-   otherwise, leave it where it moves to. */
-static int
-rl_change_case (count, op)
-     int count, op;
-{
-  register int start, end;
-  int inword, c;
-
-  start = rl_point;
-  rl_forward_word (count, 0);
-  end = rl_point;
-
-  if (count < 0)
-    SWAP (start, end);
-
-  /* We are going to modify some text, so let's prepare to undo it. */
-  rl_modifying (start, end);
-
-  for (inword = 0; start < end; start++)
-    {
-      c = the_line[start];
-      switch (op)
-       {
-       case UpCase:
-         the_line[start] = _rl_to_upper (c);
-         break;
-
-       case DownCase:
-         the_line[start] = _rl_to_lower (c);
-         break;
-
-       case CapCase:
-         the_line[start] = (inword == 0) ? _rl_to_upper (c) : _rl_to_lower (c);
-         inword = alphabetic (the_line[start]);
-         break;
-
-       default:
-         ding ();
-         return -1;
-       }
-    }
-  rl_point = end;
-  return 0;
-}
-
-/* **************************************************************** */
-/*                                                                 */
-/*                     Transposition                               */
-/*                                                                 */
-/* **************************************************************** */
-
-/* Transpose the words at point. */
-int
-rl_transpose_words (count, key)
-     int count, key;
-{
-  char *word1, *word2;
-  int w1_beg, w1_end, w2_beg, w2_end;
-  int orig_point = rl_point;
-
-  if (!count)
-    return 0;
-
-  /* Find the two words. */
-  rl_forward_word (count, key);
-  w2_end = rl_point;
-  rl_backward_word (1, key);
-  w2_beg = rl_point;
-  rl_backward_word (count, key);
-  w1_beg = rl_point;
-  rl_forward_word (1, key);
-  w1_end = rl_point;
-
-  /* Do some check to make sure that there really are two words. */
-  if ((w1_beg == w2_beg) || (w2_beg < w1_end))
-    {
-      ding ();
-      rl_point = orig_point;
-      return -1;
-    }
-
-  /* Get the text of the words. */
-  word1 = rl_copy_text (w1_beg, w1_end);
-  word2 = rl_copy_text (w2_beg, w2_end);
-
-  /* We are about to do many insertions and deletions.  Remember them
-     as one operation. */
-  rl_begin_undo_group ();
-
-  /* Do the stuff at word2 first, so that we don't have to worry
-     about word1 moving. */
-  rl_point = w2_beg;
-  rl_delete_text (w2_beg, w2_end);
-  rl_insert_text (word1);
-
-  rl_point = w1_beg;
-  rl_delete_text (w1_beg, w1_end);
-  rl_insert_text (word2);
-
-  /* This is exactly correct since the text before this point has not
-     changed in length. */
-  rl_point = w2_end;
-
-  /* I think that does it. */
-  rl_end_undo_group ();
-  free (word1);
-  free (word2);
-
-  return 0;
-}
-
-/* Transpose the characters at point.  If point is at the end of the line,
-   then transpose the characters before point. */
-int
-rl_transpose_chars (count, key)
-     int count, key;
-{
-  char dummy[2];
-
-  if (!count)
-    return 0;
-
-  if (!rl_point || rl_end < 2)
-    {
-      ding ();
-      return -1;
-    }
-
-  rl_begin_undo_group ();
-
-  if (rl_point == rl_end)
-    {
-      --rl_point;
-      count = 1;
-    }
-  rl_point--;
-
-  dummy[0] = the_line[rl_point];
-  dummy[1] = '\0';
-
-  rl_delete_text (rl_point, rl_point + 1);
-
-  rl_point += count;
-  _rl_fix_point (0);
-  rl_insert_text (dummy);
-
-  rl_end_undo_group ();
-  return 0;
-}
-
-/* **************************************************************** */
-/*                                                                 */
-/*                     Character Searching                         */
-/*                                                                 */
-/* **************************************************************** */
-
-int
-_rl_char_search_internal (count, dir, schar)
-     int count, dir, schar;
-{
-  int pos, inc;
-
-  pos = rl_point;
-  inc = (dir < 0) ? -1 : 1;
-  while (count)
-    {
-      if ((dir < 0 && pos <= 0) || (dir > 0 && pos >= rl_end))
-       {
-         ding ();
-         return -1;
-       }
-
-      pos += inc;
-      do
-       {
-         if (rl_line_buffer[pos] == schar)
-           {
-             count--;
-             if (dir < 0)
-               rl_point = (dir == BTO) ? pos + 1 : pos;
-             else
-               rl_point = (dir == FTO) ? pos - 1 : pos;
-             break;
-           }
-       }
-      while ((dir < 0) ? pos-- : ++pos < rl_end);
-    }
   return (0);
 }
-
-/* Search COUNT times for a character read from the current input stream.
-   FDIR is the direction to search if COUNT is non-negative; otherwise
-   the search goes in BDIR. */
-static int
-_rl_char_search (count, fdir, bdir)
-     int count, fdir, bdir;
-{
-  int c;
-
-  c = rl_read_key ();
-  if (count < 0)
-    return (_rl_char_search_internal (-count, bdir, c));
-  else
-    return (_rl_char_search_internal (count, fdir, c));
-}
-
-int
-rl_char_search (count, key)
-     int count, key;
-{
-  return (_rl_char_search (count, FFIND, BFIND));
-}
-
-int
-rl_backward_char_search (count, key)
-     int count, key;
-{
-  return (_rl_char_search (count, BFIND, FFIND));
-}
-
-/* **************************************************************** */
-/*                                                                 */
-/*                     History Utilities                           */
-/*                                                                 */
-/* **************************************************************** */
-
-/* We already have a history library, and that is what we use to control
-   the history features of readline.  This is our local interface to
-   the history mechanism. */
-
-/* While we are editing the history, this is the saved
-   version of the original line. */
-HIST_ENTRY *saved_line_for_history = (HIST_ENTRY *)NULL;
-
-/* Set the history pointer back to the last entry in the history. */
-static void
-start_using_history ()
-{
-  using_history ();
-  if (saved_line_for_history)
-    _rl_free_history_entry (saved_line_for_history);
-
-  saved_line_for_history = (HIST_ENTRY *)NULL;
-}
-
-/* Free the contents (and containing structure) of a HIST_ENTRY. */
-void
-_rl_free_history_entry (entry)
-     HIST_ENTRY *entry;
-{
-  if (entry == 0)
-    return;
-  if (entry->line)
-    free (entry->line);
-  free (entry);
-}
-
-/* Perhaps put back the current line if it has changed. */
-int
-maybe_replace_line ()
-{
-  HIST_ENTRY *temp;
-
-  temp = current_history ();
-  /* If the current line has changed, save the changes. */
-  if (temp && ((UNDO_LIST *)(temp->data) != rl_undo_list))
-    {
-      temp = replace_history_entry (where_history (), the_line, (histdata_t)rl_undo_list);
-      free (temp->line);
-      free (temp);
-    }
-  return 0;
-}
-
-/* Put back the saved_line_for_history if there is one. */
-int
-maybe_unsave_line ()
-{
-  int line_len;
-
-  if (saved_line_for_history)
-    {
-      line_len = strlen (saved_line_for_history->line);
-
-      if (line_len >= rl_line_buffer_len)
-       rl_extend_line_buffer (line_len);
-
-      strcpy (the_line, saved_line_for_history->line);
-      rl_undo_list = (UNDO_LIST *)saved_line_for_history->data;
-      _rl_free_history_entry (saved_line_for_history);
-      saved_line_for_history = (HIST_ENTRY *)NULL;
-      rl_end = rl_point = strlen (the_line);
-    }
-  else
-    ding ();
-  return 0;
-}
-
-/* Save the current line in saved_line_for_history. */
-int
-maybe_save_line ()
-{
-  if (saved_line_for_history == 0)
-    {
-      saved_line_for_history = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
-      saved_line_for_history->line = savestring (the_line);
-      saved_line_for_history->data = (char *)rl_undo_list;
-    }
-  return 0;
-}
-
-/* **************************************************************** */
-/*                                                                 */
-/*                     History Commands                            */
-/*                                                                 */
-/* **************************************************************** */
-
-/* Meta-< goes to the start of the history. */
-int
-rl_beginning_of_history (count, key)
-     int count, key;
-{
-  return (rl_get_previous_history (1 + where_history (), key));
-}
-
-/* Meta-> goes to the end of the history.  (The current line). */
-int
-rl_end_of_history (count, key)
-     int count, key;
-{
-  maybe_replace_line ();
-  using_history ();
-  maybe_unsave_line ();
-  return 0;
-}
-
-/* Move down to the next history line. */
-int
-rl_get_next_history (count, key)
-     int count, key;
-{
-  HIST_ENTRY *temp;
-  int line_len;
-
-  if (count < 0)
-    return (rl_get_previous_history (-count, key));
-
-  if (count == 0)
-    return 0;
-
-  maybe_replace_line ();
-
-  temp = (HIST_ENTRY *)NULL;
-  while (count)
-    {
-      temp = next_history ();
-      if (!temp)
-       break;
-      --count;
-    }
-
-  if (temp == 0)
-    maybe_unsave_line ();
-  else
-    {
-      line_len = strlen (temp->line);
-
-      if (line_len >= rl_line_buffer_len)
-       rl_extend_line_buffer (line_len);
-
-      strcpy (the_line, temp->line);
-      rl_undo_list = (UNDO_LIST *)temp->data;
-      rl_end = rl_point = strlen (the_line);
-#if defined (VI_MODE)
-      if (rl_editing_mode == vi_mode)
-       rl_point = 0;
-#endif /* VI_MODE */
-    }
-  return 0;
-}
-
-/* Get the previous item out of our interactive history, making it the current
-   line.  If there is no previous history, just ding. */
-int
-rl_get_previous_history (count, key)
-     int count, key;
-{
-  HIST_ENTRY *old_temp, *temp;
-  int line_len;
-
-  if (count < 0)
-    return (rl_get_next_history (-count, key));
-
-  if (count == 0)
-    return 0;
-
-  /* If we don't have a line saved, then save this one. */
-  maybe_save_line ();
-
-  /* If the current line has changed, save the changes. */
-  maybe_replace_line ();
-
-  temp = old_temp = (HIST_ENTRY *)NULL;
-  while (count)
-    {
-      temp = previous_history ();
-      if (temp == 0)
-       break;
-
-      old_temp = temp;
-      --count;
-    }
-
-  /* If there was a large argument, and we moved back to the start of the
-     history, that is not an error.  So use the last value found. */
-  if (!temp && old_temp)
-    temp = old_temp;
-
-  if (temp == 0)
-    ding ();
-  else
-    {
-      line_len = strlen (temp->line);
-
-      if (line_len >= rl_line_buffer_len)
-       rl_extend_line_buffer (line_len);
-
-      strcpy (the_line, temp->line);
-      rl_undo_list = (UNDO_LIST *)temp->data;
-      rl_end = rl_point = line_len;
-
-#if defined (VI_MODE)
-      if (rl_editing_mode == vi_mode)
-       rl_point = 0;
-#endif /* VI_MODE */
-    }
-  return 0;
-}
-
-/* **************************************************************** */
-/*                                                                 */
-/*                The Mark and the Region.                         */
-/*                                                                 */
-/* **************************************************************** */
-
-/* Set the mark at POSITION. */
-int
-_rl_set_mark_at_pos (position)
-     int position;
-{
-  if (position > rl_end)
-    return -1;
-
-  rl_mark = position;
-  return 0;
-}
-
-/* A bindable command to set the mark. */
-int
-rl_set_mark (count, key)
-     int count, key;
-{
-  return (_rl_set_mark_at_pos (rl_explicit_arg ? count : rl_point));
-}
-
-/* Exchange the position of mark and point. */
-int
-rl_exchange_point_and_mark (count, key)
-     int count, key;
-{
-  if (rl_mark > rl_end)
-    rl_mark = -1;
-
-  if (rl_mark == -1)
-    {
-      ding ();
-      return -1;
-    }
-  else
-    SWAP (rl_point, rl_mark);
-
-  return 0;
-}
-
-/* **************************************************************** */
-/*                                                                 */
-/*                         Editing Modes                           */
-/*                                                                 */
-/* **************************************************************** */
-/* How to toggle back and forth between editing modes. */
-int
-rl_vi_editing_mode (count, key)
-     int count, key;
-{
-#if defined (VI_MODE)
-  rl_editing_mode = vi_mode;
-  rl_vi_insertion_mode (1, key);
-#endif /* VI_MODE */
-  return 0;
-}
-
-int
-rl_emacs_editing_mode (count, key)
-     int count, key;
-{
-  rl_editing_mode = emacs_mode;
-  _rl_keymap = emacs_standard_keymap;
-  return 0;
-}
index fc28d6ececc39cc1612e960d0515006447dc9d87..f11b3d0357c89cb440274cd2f4a040a0b91824cb 100644 (file)
@@ -29,14 +29,21 @@ extern "C" {
 
 #if defined (READLINE_LIBRARY)
 #  include "rlstdc.h"
+#  include "rltypedefs.h"
 #  include "keymaps.h"
 #  include "tilde.h"
 #else
 #  include <readline/rlstdc.h>
+#  include <readline/rltypedefs.h>
 #  include <readline/keymaps.h>
 #  include <readline/tilde.h>
 #endif
 
+/* Hex-encoded Readline version number. */
+#define RL_READLINE_VERSION    0x0403          /* Readline 4.3 */
+#define RL_VERSION_MAJOR       4
+#define RL_VERSION_MINOR       3
+
 /* Readline data structures. */
 
 /* Maintaining the state of undo.  We remember individual deletes and inserts
@@ -60,8 +67,8 @@ extern UNDO_LIST *rl_undo_list;
 
 /* The data structure for mapping textual names to code addresses. */
 typedef struct _funmap {
-  char *name;
-  Function *function;
+  const char *name;
+  rl_command_func_t *function;
 } FUNMAP;
 
 extern FUNMAP **funmap;
@@ -73,184 +80,191 @@ extern FUNMAP **funmap;
 /* **************************************************************** */
 
 /* Bindable commands for numeric arguments. */
-extern int rl_digit_argument __P((int, int));
-extern int rl_universal_argument __P((int, int));
+extern int rl_digit_argument PARAMS((int, int));
+extern int rl_universal_argument PARAMS((int, int));
 
 /* Bindable commands for moving the cursor. */
-extern int rl_forward __P((int, int));
-extern int rl_backward __P((int, int));
-extern int rl_beg_of_line __P((int, int));
-extern int rl_end_of_line __P((int, int));
-extern int rl_forward_word __P((int, int));
-extern int rl_backward_word __P((int, int));
-extern int rl_refresh_line __P((int, int));
-extern int rl_clear_screen __P((int, int));
-extern int rl_arrow_keys __P((int, int));
+extern int rl_forward_byte PARAMS((int, int));
+extern int rl_forward_char PARAMS((int, int));
+extern int rl_forward PARAMS((int, int));
+extern int rl_backward_byte PARAMS((int, int));
+extern int rl_backward_char PARAMS((int, int));
+extern int rl_backward PARAMS((int, int));
+extern int rl_beg_of_line PARAMS((int, int));
+extern int rl_end_of_line PARAMS((int, int));
+extern int rl_forward_word PARAMS((int, int));
+extern int rl_backward_word PARAMS((int, int));
+extern int rl_refresh_line PARAMS((int, int));
+extern int rl_clear_screen PARAMS((int, int));
+extern int rl_arrow_keys PARAMS((int, int));
 
 /* Bindable commands for inserting and deleting text. */
-extern int rl_insert __P((int, int));
-extern int rl_quoted_insert __P((int, int));
-extern int rl_tab_insert __P((int, int));
-extern int rl_newline __P((int, int));
-extern int rl_do_lowercase_version __P((int, int));
-extern int rl_rubout __P((int, int));
-extern int rl_delete __P((int, int));
-extern int rl_rubout_or_delete __P((int, int));
-extern int rl_delete_horizontal_space __P((int, int));
-extern int rl_delete_or_show_completions __P((int, int));
-extern int rl_insert_comment __P((int, int));
+extern int rl_insert PARAMS((int, int));
+extern int rl_quoted_insert PARAMS((int, int));
+extern int rl_tab_insert PARAMS((int, int));
+extern int rl_newline PARAMS((int, int));
+extern int rl_do_lowercase_version PARAMS((int, int));
+extern int rl_rubout PARAMS((int, int));
+extern int rl_delete PARAMS((int, int));
+extern int rl_rubout_or_delete PARAMS((int, int));
+extern int rl_delete_horizontal_space PARAMS((int, int));
+extern int rl_delete_or_show_completions PARAMS((int, int));
+extern int rl_insert_comment PARAMS((int, int));
 
 /* Bindable commands for changing case. */
-extern int rl_upcase_word __P((int, int));
-extern int rl_downcase_word __P((int, int));
-extern int rl_capitalize_word __P((int, int));
+extern int rl_upcase_word PARAMS((int, int));
+extern int rl_downcase_word PARAMS((int, int));
+extern int rl_capitalize_word PARAMS((int, int));
 
 /* Bindable commands for transposing characters and words. */
-extern int rl_transpose_words __P((int, int));
-extern int rl_transpose_chars __P((int, int));
+extern int rl_transpose_words PARAMS((int, int));
+extern int rl_transpose_chars PARAMS((int, int));
 
 /* Bindable commands for searching within a line. */
-extern int rl_char_search __P((int, int));
-extern int rl_backward_char_search __P((int, int));
+extern int rl_char_search PARAMS((int, int));
+extern int rl_backward_char_search PARAMS((int, int));
 
 /* Bindable commands for readline's interface to the command history. */
-extern int rl_beginning_of_history __P((int, int));
-extern int rl_end_of_history __P((int, int));
-extern int rl_get_next_history __P((int, int));
-extern int rl_get_previous_history __P((int, int));
+extern int rl_beginning_of_history PARAMS((int, int));
+extern int rl_end_of_history PARAMS((int, int));
+extern int rl_get_next_history PARAMS((int, int));
+extern int rl_get_previous_history PARAMS((int, int));
 
 /* Bindable commands for managing the mark and region. */
-extern int rl_set_mark __P((int, int));
-extern int rl_exchange_point_and_mark __P((int, int));
+extern int rl_set_mark PARAMS((int, int));
+extern int rl_exchange_point_and_mark PARAMS((int, int));
 
 /* Bindable commands to set the editing mode (emacs or vi). */
-extern int rl_vi_editing_mode __P((int, int));
-extern int rl_emacs_editing_mode __P((int, int));
+extern int rl_vi_editing_mode PARAMS((int, int));
+extern int rl_emacs_editing_mode PARAMS((int, int));
+
+/* Bindable commands to change the insert mode (insert or overwrite) */
+extern int rl_overwrite_mode PARAMS((int, int));
 
 /* Bindable commands for managing key bindings. */
-extern int rl_re_read_init_file __P((int, int));
-extern int rl_dump_functions __P((int, int));
-extern int rl_dump_macros __P((int, int));
-extern int rl_dump_variables __P((int, int));
+extern int rl_re_read_init_file PARAMS((int, int));
+extern int rl_dump_functions PARAMS((int, int));
+extern int rl_dump_macros PARAMS((int, int));
+extern int rl_dump_variables PARAMS((int, int));
 
 /* Bindable commands for word completion. */
-extern int rl_complete __P((int, int));
-extern int rl_possible_completions __P((int, int));
-extern int rl_insert_completions __P((int, int));
-extern int rl_menu_complete __P((int, int));
+extern int rl_complete PARAMS((int, int));
+extern int rl_possible_completions PARAMS((int, int));
+extern int rl_insert_completions PARAMS((int, int));
+extern int rl_menu_complete PARAMS((int, int));
 
 /* Bindable commands for killing and yanking text, and managing the kill ring. */
-extern int rl_kill_word __P((int, int));
-extern int rl_backward_kill_word __P((int, int));
-extern int rl_kill_line __P((int, int));
-extern int rl_backward_kill_line __P((int, int));
-extern int rl_kill_full_line __P((int, int));
-extern int rl_unix_word_rubout __P((int, int));
-extern int rl_unix_line_discard __P((int, int));
-extern int rl_copy_region_to_kill __P((int, int));
-extern int rl_kill_region __P((int, int));
-extern int rl_copy_forward_word __P((int, int));
-extern int rl_copy_backward_word __P((int, int));
-extern int rl_yank __P((int, int));
-extern int rl_yank_pop __P((int, int));
-extern int rl_yank_nth_arg __P((int, int));
-extern int rl_yank_last_arg __P((int, int));
-/* Not available unless __CYGWIN32__ is defined. */
-#ifdef __CYGWIN32__
-extern int rl_paste_from_clipboard __P((int, int));
+extern int rl_kill_word PARAMS((int, int));
+extern int rl_backward_kill_word PARAMS((int, int));
+extern int rl_kill_line PARAMS((int, int));
+extern int rl_backward_kill_line PARAMS((int, int));
+extern int rl_kill_full_line PARAMS((int, int));
+extern int rl_unix_word_rubout PARAMS((int, int));
+extern int rl_unix_line_discard PARAMS((int, int));
+extern int rl_copy_region_to_kill PARAMS((int, int));
+extern int rl_kill_region PARAMS((int, int));
+extern int rl_copy_forward_word PARAMS((int, int));
+extern int rl_copy_backward_word PARAMS((int, int));
+extern int rl_yank PARAMS((int, int));
+extern int rl_yank_pop PARAMS((int, int));
+extern int rl_yank_nth_arg PARAMS((int, int));
+extern int rl_yank_last_arg PARAMS((int, int));
+/* Not available unless __CYGWIN__ is defined. */
+#ifdef __CYGWIN__
+extern int rl_paste_from_clipboard PARAMS((int, int));
 #endif
 
 /* Bindable commands for incremental searching. */
-extern int rl_reverse_search_history __P((int, int));
-extern int rl_forward_search_history __P((int, int));
+extern int rl_reverse_search_history PARAMS((int, int));
+extern int rl_forward_search_history PARAMS((int, int));
 
 /* Bindable keyboard macro commands. */
-extern int rl_start_kbd_macro __P((int, int));
-extern int rl_end_kbd_macro __P((int, int));
-extern int rl_call_last_kbd_macro __P((int, int));
+extern int rl_start_kbd_macro PARAMS((int, int));
+extern int rl_end_kbd_macro PARAMS((int, int));
+extern int rl_call_last_kbd_macro PARAMS((int, int));
 
 /* Bindable undo commands. */
-extern int rl_revert_line __P((int, int));
-extern int rl_undo_command __P((int, int));
+extern int rl_revert_line PARAMS((int, int));
+extern int rl_undo_command PARAMS((int, int));
 
 /* Bindable tilde expansion commands. */
-extern int rl_tilde_expand __P((int, int));
+extern int rl_tilde_expand PARAMS((int, int));
 
 /* Bindable terminal control commands. */
-extern int rl_restart_output __P((int, int));
-extern int rl_stop_output __P((int, int));
+extern int rl_restart_output PARAMS((int, int));
+extern int rl_stop_output PARAMS((int, int));
 
 /* Miscellaneous bindable commands. */
-extern int rl_abort __P((int, int));
-extern int rl_tty_status __P((int, int));
+extern int rl_abort PARAMS((int, int));
+extern int rl_tty_status PARAMS((int, int));
 
 /* Bindable commands for incremental and non-incremental history searching. */
-extern int rl_history_search_forward __P((int, int));
-extern int rl_history_search_backward __P((int, int));
-extern int rl_noninc_forward_search __P((int, int));
-extern int rl_noninc_reverse_search __P((int, int));
-extern int rl_noninc_forward_search_again __P((int, int));
-extern int rl_noninc_reverse_search_again __P((int, int));
+extern int rl_history_search_forward PARAMS((int, int));
+extern int rl_history_search_backward PARAMS((int, int));
+extern int rl_noninc_forward_search PARAMS((int, int));
+extern int rl_noninc_reverse_search PARAMS((int, int));
+extern int rl_noninc_forward_search_again PARAMS((int, int));
+extern int rl_noninc_reverse_search_again PARAMS((int, int));
 
 /* Bindable command used when inserting a matching close character. */
-extern int rl_insert_close __P((int, int));
+extern int rl_insert_close PARAMS((int, int));
 
 /* Not available unless READLINE_CALLBACKS is defined. */
-extern void rl_callback_handler_install __P((char *, VFunction *));
-extern void rl_callback_read_char __P((void));
-extern void rl_callback_handler_remove __P((void));
+extern void rl_callback_handler_install PARAMS((const char *, rl_vcpfunc_t *));
+extern void rl_callback_read_char PARAMS((void));
+extern void rl_callback_handler_remove PARAMS((void));
 
 /* Things for vi mode. Not available unless readline is compiled -DVI_MODE. */
 /* VI-mode bindable commands. */
-extern int rl_vi_redo __P((int, int));
-extern int rl_vi_undo __P((int, int));
-extern int rl_vi_yank_arg __P((int, int));
-extern int rl_vi_fetch_history __P((int, int));
-extern int rl_vi_search_again __P((int, int));
-extern int rl_vi_search __P((int, int));
-extern int rl_vi_complete __P((int, int));
-extern int rl_vi_tilde_expand __P((int, int));
-extern int rl_vi_prev_word __P((int, int));
-extern int rl_vi_next_word __P((int, int));
-extern int rl_vi_end_word __P((int, int));
-extern int rl_vi_insert_beg __P((int, int));
-extern int rl_vi_append_mode __P((int, int));
-extern int rl_vi_append_eol __P((int, int));
-extern int rl_vi_eof_maybe __P((int, int));
-extern int rl_vi_insertion_mode __P((int, int));
-extern int rl_vi_movement_mode __P((int, int));
-extern int rl_vi_arg_digit __P((int, int));
-extern int rl_vi_change_case __P((int, int));
-extern int rl_vi_put __P((int, int));
-extern int rl_vi_column __P((int, int));
-extern int rl_vi_delete_to __P((int, int));
-extern int rl_vi_change_to __P((int, int));
-extern int rl_vi_yank_to __P((int, int));
-extern int rl_vi_delete __P((int, int));
-extern int rl_vi_back_to_indent __P((int, int));
-extern int rl_vi_first_print __P((int, int));
-extern int rl_vi_char_search __P((int, int));
-extern int rl_vi_match __P((int, int));
-extern int rl_vi_change_char __P((int, int));
-extern int rl_vi_subst __P((int, int));
-extern int rl_vi_overstrike __P((int, int));
-extern int rl_vi_overstrike_delete __P((int, int));
-extern int rl_vi_replace __P((int, int));
-extern int rl_vi_set_mark __P((int, int));
-extern int rl_vi_goto_mark __P((int, int));
+extern int rl_vi_redo PARAMS((int, int));
+extern int rl_vi_undo PARAMS((int, int));
+extern int rl_vi_yank_arg PARAMS((int, int));
+extern int rl_vi_fetch_history PARAMS((int, int));
+extern int rl_vi_search_again PARAMS((int, int));
+extern int rl_vi_search PARAMS((int, int));
+extern int rl_vi_complete PARAMS((int, int));
+extern int rl_vi_tilde_expand PARAMS((int, int));
+extern int rl_vi_prev_word PARAMS((int, int));
+extern int rl_vi_next_word PARAMS((int, int));
+extern int rl_vi_end_word PARAMS((int, int));
+extern int rl_vi_insert_beg PARAMS((int, int));
+extern int rl_vi_append_mode PARAMS((int, int));
+extern int rl_vi_append_eol PARAMS((int, int));
+extern int rl_vi_eof_maybe PARAMS((int, int));
+extern int rl_vi_insertion_mode PARAMS((int, int));
+extern int rl_vi_movement_mode PARAMS((int, int));
+extern int rl_vi_arg_digit PARAMS((int, int));
+extern int rl_vi_change_case PARAMS((int, int));
+extern int rl_vi_put PARAMS((int, int));
+extern int rl_vi_column PARAMS((int, int));
+extern int rl_vi_delete_to PARAMS((int, int));
+extern int rl_vi_change_to PARAMS((int, int));
+extern int rl_vi_yank_to PARAMS((int, int));
+extern int rl_vi_delete PARAMS((int, int));
+extern int rl_vi_back_to_indent PARAMS((int, int));
+extern int rl_vi_first_print PARAMS((int, int));
+extern int rl_vi_char_search PARAMS((int, int));
+extern int rl_vi_match PARAMS((int, int));
+extern int rl_vi_change_char PARAMS((int, int));
+extern int rl_vi_subst PARAMS((int, int));
+extern int rl_vi_overstrike PARAMS((int, int));
+extern int rl_vi_overstrike_delete PARAMS((int, int));
+extern int rl_vi_replace PARAMS((int, int));
+extern int rl_vi_set_mark PARAMS((int, int));
+extern int rl_vi_goto_mark PARAMS((int, int));
 
 /* VI-mode utility functions. */
-extern int rl_vi_check __P((void));
-extern int rl_vi_domove __P((int, int *));
-extern int rl_vi_bracktype __P((int));
+extern int rl_vi_check PARAMS((void));
+extern int rl_vi_domove PARAMS((int, int *));
+extern int rl_vi_bracktype PARAMS((int));
 
 /* VI-mode pseudo-bindable commands, used as utility functions. */
-extern int rl_vi_fWord __P((int, int));
-extern int rl_vi_bWord __P((int, int));
-extern int rl_vi_eWord __P((int, int));
-extern int rl_vi_fword __P((int, int));
-extern int rl_vi_bword __P((int, int));
-extern int rl_vi_eword __P((int, int));
+extern int rl_vi_fWord PARAMS((int, int));
+extern int rl_vi_bWord PARAMS((int, int));
+extern int rl_vi_eWord PARAMS((int, int));
+extern int rl_vi_fword PARAMS((int, int));
+extern int rl_vi_bword PARAMS((int, int));
+extern int rl_vi_eword PARAMS((int, int));
 
 /* **************************************************************** */
 /*                                                                 */
@@ -260,142 +274,176 @@ extern int rl_vi_eword __P((int, int));
 
 /* Readline functions. */
 /* Read a line of input.  Prompt with PROMPT.  A NULL PROMPT means none. */
-extern char *readline __P((char *));
+extern char *readline PARAMS((const char *));
 
-extern int rl_initialize __P((void));
+extern int rl_set_prompt PARAMS((const char *));
+extern int rl_expand_prompt PARAMS((char *));
 
-extern int rl_discard_argument __P((void));
+extern int rl_initialize PARAMS((void));
+
+/* Undocumented; unused by readline */
+extern int rl_discard_argument PARAMS((void));
 
 /* Utility functions to bind keys to readline commands. */
-extern int rl_add_defun __P((char *, Function *, int));
-extern int rl_bind_key __P((int, Function *));
-extern int rl_bind_key_in_map __P((int, Function *, Keymap));
-extern int rl_unbind_key __P((int));
-extern int rl_unbind_key_in_map __P((int, Keymap));
-extern int rl_unbind_function_in_map __P((Function *, Keymap));
-extern int rl_unbind_command_in_map __P((char *, Keymap));
-extern int rl_set_key __P((char *, Function *, Keymap));
-extern int rl_generic_bind __P((int, char *, char *, Keymap));
-extern int rl_variable_bind __P((char *, char *));
+extern int rl_add_defun PARAMS((const char *, rl_command_func_t *, int));
+extern int rl_bind_key PARAMS((int, rl_command_func_t *));
+extern int rl_bind_key_in_map PARAMS((int, rl_command_func_t *, Keymap));
+extern int rl_unbind_key PARAMS((int));
+extern int rl_unbind_key_in_map PARAMS((int, Keymap));
+extern int rl_unbind_function_in_map PARAMS((rl_command_func_t *, Keymap));
+extern int rl_unbind_command_in_map PARAMS((const char *, Keymap));
+extern int rl_set_key PARAMS((const char *, rl_command_func_t *, Keymap));
+extern int rl_generic_bind PARAMS((int, const char *, char *, Keymap));
+extern int rl_variable_bind PARAMS((const char *, const char *));
 
 /* Backwards compatibility, use rl_generic_bind instead. */
-extern int rl_macro_bind __P((char *, char *, Keymap));
+extern int rl_macro_bind PARAMS((const char *, const char *, Keymap));
 
 /* Undocumented in the texinfo manual; not really useful to programs. */
-extern int rl_translate_keyseq __P((char *, char *, int *));
-extern char *rl_untranslate_keyseq __P((int));
+extern int rl_translate_keyseq PARAMS((const char *, char *, int *));
+extern char *rl_untranslate_keyseq PARAMS((int));
 
-extern Function *rl_named_function __P((char *));
-extern Function *rl_function_of_keyseq __P((char *, Keymap, int *));
+extern rl_command_func_t *rl_named_function PARAMS((const char *));
+extern rl_command_func_t *rl_function_of_keyseq PARAMS((const char *, Keymap, int *));
 
-extern void rl_list_funmap_names __P((void));
-extern char **rl_invoking_keyseqs_in_map __P((Function *, Keymap));
-extern char **rl_invoking_keyseqs __P((Function *));
+extern void rl_list_funmap_names PARAMS((void));
+extern char **rl_invoking_keyseqs_in_map PARAMS((rl_command_func_t *, Keymap));
+extern char **rl_invoking_keyseqs PARAMS((rl_command_func_t *));
  
-extern void rl_function_dumper __P((int));
-extern void rl_macro_dumper __P((int));
-extern void rl_variable_dumper __P((int));
+extern void rl_function_dumper PARAMS((int));
+extern void rl_macro_dumper PARAMS((int));
+extern void rl_variable_dumper PARAMS((int));
 
-extern int rl_read_init_file __P((char *));
-extern int rl_parse_and_bind __P((char *));
+extern int rl_read_init_file PARAMS((const char *));
+extern int rl_parse_and_bind PARAMS((char *));
 
 /* Functions for manipulating keymaps. */
-extern Keymap rl_make_bare_keymap __P((void));
-extern Keymap rl_copy_keymap __P((Keymap));
-extern Keymap rl_make_keymap __P((void));
-extern void rl_discard_keymap __P((Keymap));
-
-extern Keymap rl_get_keymap_by_name __P((char *));
-extern char *rl_get_keymap_name __P((Keymap));
-extern void rl_set_keymap __P((Keymap));
-extern Keymap rl_get_keymap __P((void));
-extern void rl_set_keymap_from_edit_mode __P((void));
-extern char *rl_get_keymap_name_from_edit_mode __P((void));
+extern Keymap rl_make_bare_keymap PARAMS((void));
+extern Keymap rl_copy_keymap PARAMS((Keymap));
+extern Keymap rl_make_keymap PARAMS((void));
+extern void rl_discard_keymap PARAMS((Keymap));
+
+extern Keymap rl_get_keymap_by_name PARAMS((const char *));
+extern char *rl_get_keymap_name PARAMS((Keymap));
+extern void rl_set_keymap PARAMS((Keymap));
+extern Keymap rl_get_keymap PARAMS((void));
+/* Undocumented; used internally only. */
+extern void rl_set_keymap_from_edit_mode PARAMS((void));
+extern char *rl_get_keymap_name_from_edit_mode PARAMS((void));
 
 /* Functions for manipulating the funmap, which maps command names to functions. */
-extern int rl_add_funmap_entry __P((char *, Function *));
-extern void rl_initialize_funmap __P((void));
-extern char **rl_funmap_names __P((void));
+extern int rl_add_funmap_entry PARAMS((const char *, rl_command_func_t *));
+extern const char **rl_funmap_names PARAMS((void));
+/* Undocumented, only used internally -- there is only one funmap, and this
+   function may be called only once. */
+extern void rl_initialize_funmap PARAMS((void));
 
 /* Utility functions for managing keyboard macros. */
-extern void rl_push_macro_input __P((char *));
+extern void rl_push_macro_input PARAMS((char *));
 
 /* Functions for undoing, from undo.c */
-extern void rl_add_undo __P((enum undo_code, int, int, char *));
-extern void free_undo_list __P((void));
-extern int rl_do_undo __P((void));
-extern int rl_begin_undo_group __P((void));
-extern int rl_end_undo_group __P((void));
-extern int rl_modifying __P((int, int));
+extern void rl_add_undo PARAMS((enum undo_code, int, int, char *));
+extern void rl_free_undo_list PARAMS((void));
+extern int rl_do_undo PARAMS((void));
+extern int rl_begin_undo_group PARAMS((void));
+extern int rl_end_undo_group PARAMS((void));
+extern int rl_modifying PARAMS((int, int));
 
 /* Functions for redisplay. */
-extern void rl_redisplay __P((void));
-extern int rl_on_new_line __P((void));
-extern int rl_on_new_line_with_prompt __P((void));
-extern int rl_forced_update_display __P((void));
-extern int rl_clear_message __P((void));
-extern int rl_reset_line_state __P((void));
+extern void rl_redisplay PARAMS((void));
+extern int rl_on_new_line PARAMS((void));
+extern int rl_on_new_line_with_prompt PARAMS((void));
+extern int rl_forced_update_display PARAMS((void));
+extern int rl_clear_message PARAMS((void));
+extern int rl_reset_line_state PARAMS((void));
+extern int rl_crlf PARAMS((void));
 
 #if (defined (__STDC__) || defined (__cplusplus)) && defined (USE_VARARGS) && defined (PREFER_STDARG)
-extern int rl_message (const char *, ...);
+extern int rl_message (const char *, ...)  __attribute__((__format__ (printf, 1, 2)));
 #else
 extern int rl_message ();
 #endif
 
+extern int rl_show_char PARAMS((int));
+
 /* Undocumented in texinfo manual. */
-extern int rl_show_char __P((int));
-extern int rl_character_len __P((int, int));
-extern int crlf __P((void));
+extern int rl_character_len PARAMS((int, int));
 
 /* Save and restore internal prompt redisplay information. */
-extern void rl_save_prompt __P((void));
-extern void rl_restore_prompt __P((void));
+extern void rl_save_prompt PARAMS((void));
+extern void rl_restore_prompt PARAMS((void));
 
 /* Modifying text. */
-extern int rl_insert_text __P((char *));
-extern int rl_delete_text __P((int, int));
-extern int rl_kill_text __P((int, int));
-extern char *rl_copy_text __P((int, int));
+extern void rl_replace_line PARAMS((const char *, int));
+extern int rl_insert_text PARAMS((const char *));
+extern int rl_delete_text PARAMS((int, int));
+extern int rl_kill_text PARAMS((int, int));
+extern char *rl_copy_text PARAMS((int, int));
 
 /* Terminal and tty mode management. */
-extern void rl_prep_terminal __P((int));
-extern void rl_deprep_terminal __P((void));
-extern void rltty_set_default_bindings __P((Keymap));
+extern void rl_prep_terminal PARAMS((int));
+extern void rl_deprep_terminal PARAMS((void));
+extern void rl_tty_set_default_bindings PARAMS((Keymap));
 
-extern int rl_reset_terminal __P((char *));
-extern void rl_resize_terminal __P((void));
+extern int rl_reset_terminal PARAMS((const char *));
+extern void rl_resize_terminal PARAMS((void));
+extern void rl_set_screen_size PARAMS((int, int));
+extern void rl_get_screen_size PARAMS((int *, int *));
 
-/* `Public' utility functions . */
-extern void rl_extend_line_buffer __P((int));
-extern int ding __P((void));
+extern char *rl_get_termcap PARAMS((const char *));
 
 /* Functions for character input. */
-extern int rl_stuff_char __P((int));
-extern int rl_execute_next __P((int));
-extern int rl_read_key __P((void));
-extern int rl_getc __P((FILE *));
+extern int rl_stuff_char PARAMS((int));
+extern int rl_execute_next PARAMS((int));
+extern int rl_clear_pending_input PARAMS((void));
+extern int rl_read_key PARAMS((void));
+extern int rl_getc PARAMS((FILE *));
+extern int rl_set_keyboard_input_timeout PARAMS((int));
+
+/* `Public' utility functions . */
+extern void rl_extend_line_buffer PARAMS((int));
+extern int rl_ding PARAMS((void));
+extern int rl_alphabetic PARAMS((int));
 
 /* Readline signal handling, from signals.c */
-extern int rl_set_signals __P((void));
-extern int rl_clear_signals __P((void));
-extern void rl_cleanup_after_signal __P((void));
-extern void rl_reset_after_signal __P((void));
-extern void rl_free_line_state __P((void));
+extern int rl_set_signals PARAMS((void));
+extern int rl_clear_signals PARAMS((void));
+extern void rl_cleanup_after_signal PARAMS((void));
+extern void rl_reset_after_signal PARAMS((void));
+extern void rl_free_line_state PARAMS((void));
  
-/* Undocumented. */
-extern int rl_expand_prompt __P((char *));
+extern int rl_set_paren_blink_timeout PARAMS((int));
 
-extern int maybe_save_line __P((void));
-extern int maybe_unsave_line __P((void));
-extern int maybe_replace_line __P((void));
+/* Undocumented. */
+extern int rl_maybe_save_line PARAMS((void));
+extern int rl_maybe_unsave_line PARAMS((void));
+extern int rl_maybe_replace_line PARAMS((void));
 
 /* Completion functions. */
-extern int rl_complete_internal __P((int));
-extern void rl_display_match_list __P((char **, int, int));
+extern int rl_complete_internal PARAMS((int));
+extern void rl_display_match_list PARAMS((char **, int, int));
+
+extern char **rl_completion_matches PARAMS((const char *, rl_compentry_func_t *));
+extern char *rl_username_completion_function PARAMS((const char *, int));
+extern char *rl_filename_completion_function PARAMS((const char *, int));
 
-extern char **completion_matches __P((char *, CPFunction *));
-extern char *username_completion_function __P((char *, int));
-extern char *filename_completion_function __P((char *, int));
+extern int rl_completion_mode PARAMS((rl_command_func_t *));
+
+#if 0
+/* Backwards compatibility (compat.c).  These will go away sometime. */
+extern void free_undo_list PARAMS((void));
+extern int maybe_save_line PARAMS((void));
+extern int maybe_unsave_line PARAMS((void));
+extern int maybe_replace_line PARAMS((void));
+
+extern int ding PARAMS((void));
+extern int alphabetic PARAMS((int));
+extern int crlf PARAMS((void));
+
+extern char **completion_matches PARAMS((char *, rl_compentry_func_t *));
+extern char *username_completion_function PARAMS((const char *, int));
+extern char *filename_completion_function PARAMS((const char *, int));
+#endif
 
 /* **************************************************************** */
 /*                                                                 */
@@ -404,14 +452,26 @@ extern char *filename_completion_function __P((char *, int));
 /* **************************************************************** */
 
 /* The version of this incarnation of the readline library. */
-extern char *rl_library_version;
+extern const char *rl_library_version;         /* e.g., "4.2" */
+extern int rl_readline_version;                        /* e.g., 0x0402 */
 
 /* True if this is real GNU readline. */
 extern int rl_gnu_readline_p;
 
+/* Flags word encapsulating the current readline state. */
+extern int rl_readline_state;
+
+/* Says which editing mode readline is currently using.  1 means emacs mode;
+   0 means vi mode. */
+extern int rl_editing_mode;
+
+/* Insert or overwrite mode for emacs mode.  1 means insert mode; 0 means
+   overwrite mode.  Reset to insert mode on each input line. */
+extern int rl_insert_mode;
+
 /* The name of the calling program.  You should initialize this to
    whatever was in argv[0].  It is used when parsing conditionals. */
-extern char *rl_readline_name;
+extern const char *rl_readline_name;
 
 /* The prompt readline uses.  This is set from the argument to
    readline (), and should not be assigned to directly. */
@@ -421,7 +481,8 @@ extern char *rl_prompt;
 extern char *rl_line_buffer;
 
 /* The location of point, and end. */
-extern int rl_point, rl_end;
+extern int rl_point;
+extern int rl_end;
 
 /* The mark, or saved cursor position. */
 extern int rl_mark;
@@ -438,29 +499,44 @@ extern int rl_pending_input;
    or directly from an application. */
 extern int rl_dispatching;
 
+/* Non-zero if the user typed a numeric argument before executing the
+   current function. */
+extern int rl_explicit_arg;
+
+/* The current value of the numeric argument specified by the user. */
+extern int rl_numeric_arg;
+
+/* The address of the last command function Readline executed. */
+extern rl_command_func_t *rl_last_func;
+
 /* The name of the terminal to use. */
-extern char *rl_terminal_name;
+extern const char *rl_terminal_name;
 
 /* The input and output streams. */
-extern FILE *rl_instream, *rl_outstream;
+extern FILE *rl_instream;
+extern FILE *rl_outstream;
 
 /* If non-zero, then this is the address of a function to call just
    before readline_internal () prints the first prompt. */
-extern Function *rl_startup_hook;
+extern rl_hook_func_t *rl_startup_hook;
 
 /* If non-zero, this is the address of a function to call just before
    readline_internal_setup () returns and readline_internal starts
    reading input characters. */
-extern Function *rl_pre_input_hook;
+extern rl_hook_func_t *rl_pre_input_hook;
       
 /* The address of a function to call periodically while Readline is
    awaiting character input, or NULL, for no event handling. */
-extern Function *rl_event_hook;
+extern rl_hook_func_t *rl_event_hook;
 
-extern Function *rl_getc_function;
-extern VFunction *rl_redisplay_function;
-extern VFunction *rl_prep_term_function;
-extern VFunction *rl_deprep_term_function;
+/* The address of the function to call to fetch a character from the current
+   Readline input stream */
+extern rl_getc_func_t *rl_getc_function;
+
+extern rl_voidfunc_t *rl_redisplay_function;
+
+extern rl_vintfunc_t *rl_prep_term_function;
+extern rl_voidfunc_t *rl_deprep_term_function;
 
 /* Dispatch variables. */
 extern Keymap rl_executing_keymap;
@@ -481,6 +557,9 @@ extern int rl_already_prompted;
    up to a character bound to accept-line. */
 extern int rl_num_chars_to_read;
 
+/* The text of a currently-executing keyboard macro. */
+extern char *rl_executing_macro;
+
 /* Variables to control readline signal handling. */
 /* If non-zero, readline will install its own signal handlers for
    SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU. */
@@ -495,9 +574,9 @@ extern int rl_catch_sigwinch;
 
 /* Completion variables. */
 /* Pointer to the generator function for completion_matches ().
-   NULL means to use filename_entry_function (), the default filename
-   completer. */
-extern Function *rl_completion_entry_function;
+   NULL means to use rl_filename_completion_function (), the default
+   filename completer. */
+extern rl_compentry_func_t *rl_completion_entry_function;
 
 /* If rl_ignore_some_completions_function is non-NULL it is the address
    of a function to call after all of the possible matches have been
@@ -505,7 +584,7 @@ extern Function *rl_completion_entry_function;
    The function is called with one argument; a NULL terminated array
    of (char *).  If your function removes any of the elements, they
    must be free()'ed. */
-extern Function *rl_ignore_some_completions_function;
+extern rl_compignore_func_t *rl_ignore_some_completions_function;
 
 /* Pointer to alternative function to create matches.
    Function is called with TEXT, START, and END.
@@ -514,39 +593,50 @@ extern Function *rl_ignore_some_completions_function;
    If this function exists and returns NULL then call the value of
    rl_completion_entry_function to try to match, otherwise use the
    array of strings returned. */
-extern CPPFunction *rl_attempted_completion_function;
+extern rl_completion_func_t *rl_attempted_completion_function;
 
 /* The basic list of characters that signal a break between words for the
    completer routine.  The initial contents of this variable is what
    breaks words in the shell, i.e. "n\"\\'`@$>". */
-extern char *rl_basic_word_break_characters;
+extern const char *rl_basic_word_break_characters;
 
 /* The list of characters that signal a break between words for
    rl_complete_internal.  The default list is the contents of
    rl_basic_word_break_characters.  */
-extern char *rl_completer_word_break_characters;
+extern const char *rl_completer_word_break_characters;
 
 /* List of characters which can be used to quote a substring of the line.
    Completion occurs on the entire substring, and within the substring   
    rl_completer_word_break_characters are treated as any other character,
    unless they also appear within this list. */
-extern char *rl_completer_quote_characters;
+extern const char *rl_completer_quote_characters;
 
 /* List of quote characters which cause a word break. */
-extern char *rl_basic_quote_characters;
+extern const char *rl_basic_quote_characters;
 
 /* List of characters that need to be quoted in filenames by the completer. */
-extern char *rl_filename_quote_characters;
+extern const char *rl_filename_quote_characters;
 
 /* List of characters that are word break characters, but should be left
    in TEXT when it is passed to the completion function.  The shell uses
    this to help determine what kind of completing to do. */
-extern char *rl_special_prefixes;
+extern const char *rl_special_prefixes;
 
 /* If non-zero, then this is the address of a function to call when
    completing on a directory name.  The function is called with
-   the address of a string (the current directory name) as an arg. */
-extern Function *rl_directory_completion_hook;
+   the address of a string (the current directory name) as an arg.  It
+   changes what is displayed when the possible completions are printed
+   or inserted. */
+extern rl_icppfunc_t *rl_directory_completion_hook;
+
+/* If non-zero, this is the address of a function to call when completing
+   a directory name.  This function takes the address of the directory name
+   to be modified as an argument.  Unlike rl_directory_completion_hook, it
+   only modifies the directory name used in opendir(2), not what is displayed
+   when the possible completions are printed or inserted.  It is called
+   before rl_directory_completion_hook.  I'm not happy with how this works
+   yet, so it's undocumented. */
+extern rl_icppfunc_t *rl_directory_rewrite_hook;
 
 /* Backwards compatibility with previous versions of readline. */
 #define rl_symbolic_link_hook rl_directory_completion_hook
@@ -558,7 +648,7 @@ extern Function *rl_directory_completion_hook;
    where MATCHES is the array of strings that matched, NUM_MATCHES is the
    number of strings in that array, and MAX_LENGTH is the length of the
    longest string in that array. */
-extern VFunction *rl_completion_display_matches_hook;
+extern rl_compdisp_func_t *rl_completion_display_matches_hook;
 
 /* Non-zero means that the results of the matches are to be treated
    as filenames.  This is ALWAYS zero on entry, and can only be changed
@@ -576,17 +666,17 @@ extern int rl_filename_quoting_desired;
    Called with the text to quote, the type of match found (single or multiple)
    and a pointer to the quoting character to be used, which the function can
    reset if desired. */
-extern CPFunction *rl_filename_quoting_function;
+extern rl_quote_func_t *rl_filename_quoting_function;
 
 /* Function to call to remove quoting characters from a filename.  Called
    before completion is attempted, so the embedded quotes do not interfere
    with matching names in the file system. */
-extern CPFunction *rl_filename_dequoting_function;
+extern rl_dequote_func_t *rl_filename_dequoting_function;
 
 /* Function to call to decide whether or not a word break character is
    quoted.  If a character is quoted, it does not break words for the
    completer. */
-extern Function *rl_char_is_quoted_p;
+extern rl_linebuf_func_t *rl_char_is_quoted_p;
 
 /* Non-zero means to suppress normal filename completion after the
    user-specified completion function has been called. */
@@ -601,18 +691,33 @@ extern int rl_completion_type;
    default is a space.  Nothing is added if this is '\0'. */
 extern int rl_completion_append_character;
 
+/* If set to non-zero by an application completion function,
+   rl_completion_append_character will not be appended. */
+extern int rl_completion_suppress_append;
+
 /* Up to this many items will be displayed in response to a
    possible-completions call.  After that, we ask the user if she
    is sure she wants to see them all.  The default value is 100. */
 extern int rl_completion_query_items;
 
+/* If non-zero, a slash will be appended to completed filenames that are
+   symbolic links to directory names, subject to the value of the
+   mark-directories variable (which is user-settable).  This exists so
+   that application completion functions can override the user's preference
+   (set via the mark-symlinked-directories variable) if appropriate.
+   It's set to the value of _rl_complete_mark_symlink_dirs in
+   rl_complete_internal before any application-specific completion
+   function is called, so without that function doing anything, the user's
+   preferences are honored. */
+extern int rl_completion_mark_symlink_dirs;
+
 /* If non-zero, then disallow duplicates in the matches. */
 extern int rl_ignore_completion_duplicates;
 
 /* If this is non-zero, completion is (temporarily) inhibited, and the
    completion character will be inserted as any other. */
 extern int rl_inhibit_completion;
-   
+
 /* Definitions available for use by readline clients. */
 #define RL_PROMPT_START_IGNORE '\001'
 #define RL_PROMPT_END_IGNORE   '\002'
@@ -623,11 +728,69 @@ extern int rl_inhibit_completion;
 #define SINGLE_MATCH    1
 #define MULT_MATCH      2
 
-#if 0
-#if !defined (savestring)
-extern char *savestring __P((char *)); /* XXX backwards compatibility */
-#endif
-#endif
+/* Possible state values for rl_readline_state */
+#define RL_STATE_NONE          0x00000         /* no state; before first call */
+
+#define RL_STATE_INITIALIZING  0x00001         /* initializing */
+#define RL_STATE_INITIALIZED   0x00002         /* initialization done */
+#define RL_STATE_TERMPREPPED   0x00004         /* terminal is prepped */
+#define RL_STATE_READCMD       0x00008         /* reading a command key */
+#define RL_STATE_METANEXT      0x00010         /* reading input after ESC */
+#define RL_STATE_DISPATCHING   0x00020         /* dispatching to a command */
+#define RL_STATE_MOREINPUT     0x00040         /* reading more input in a command function */
+#define RL_STATE_ISEARCH       0x00080         /* doing incremental search */
+#define RL_STATE_NSEARCH       0x00100         /* doing non-inc search */
+#define RL_STATE_SEARCH                0x00200         /* doing a history search */
+#define RL_STATE_NUMERICARG    0x00400         /* reading numeric argument */
+#define RL_STATE_MACROINPUT    0x00800         /* getting input from a macro */
+#define RL_STATE_MACRODEF      0x01000         /* defining keyboard macro */
+#define RL_STATE_OVERWRITE     0x02000         /* overwrite mode */
+#define RL_STATE_COMPLETING    0x04000         /* doing completion */
+#define RL_STATE_SIGHANDLER    0x08000         /* in readline sighandler */
+#define RL_STATE_UNDOING       0x10000         /* doing an undo */
+#define RL_STATE_INPUTPENDING  0x20000         /* rl_execute_next called */
+
+#define RL_STATE_DONE          0x80000         /* done; accepted line */
+
+#define RL_SETSTATE(x)         (rl_readline_state |= (x))
+#define RL_UNSETSTATE(x)       (rl_readline_state &= ~(x))
+#define RL_ISSTATE(x)          (rl_readline_state & (x))
+
+struct readline_state {
+  /* line state */
+  int point;
+  int end;
+  int mark;
+  char *buffer;
+  int buflen;
+  UNDO_LIST *ul;
+  char *prompt;
+
+  /* global state */
+  int rlstate;
+  int done;
+  Keymap kmap;
+
+  /* input state */
+  rl_command_func_t *lastfunc;
+  int insmode;
+  int edmode;
+  int kseqlen;
+  FILE *inf;
+  FILE *outf;
+  int pendingin;
+  char *macro;
+
+  /* signal state */
+  int catchsigs;
+  int catchsigwinch;
+
+  /* reserved for future expansion, so the struct size doesn't change */
+  char reserved[64];
+};
+
+extern int rl_save_state PARAMS((struct readline_state *));
+extern int rl_restore_state PARAMS((struct readline_state *));
 
 #ifdef __cplusplus
 }
index d2ab70401250b691d3870bd77caf82fc6e127dd6..c651fd8b41f66ad39807ee1e18e714fcb8dae961 100644 (file)
@@ -54,4 +54,7 @@
    X `callback' style. */
 #define READLINE_CALLBACKS
 
+/* Define this if you want the cursor to indicate insert or overwrite mode. */
+/* #define CURSOR_MODE */
+
 #endif /* _RLCONF_H_ */
index e504d9b1c301d8368f689e006dcf9d92b1574e64..4a28bd1e49c2d14571a8b599ed17c70be7e649bb 100644 (file)
@@ -30,6 +30,8 @@
 #  include "config.h"
 #endif
 
+#include "rlstdc.h"
+
 #if defined (_POSIX_VERSION) && !defined (TERMIOS_MISSING)
 #  define TERMIOS_TTY_DRIVER
 #else
@@ -71,7 +73,14 @@ extern char *strchr (), *strrchr ();
 #define _rl_stricmp strcasecmp
 #define _rl_strnicmp strncasecmp
 #else
-extern int _rl_stricmp (), _rl_strnicmp ();
+extern int _rl_stricmp PARAMS((char *, char *));
+extern int _rl_strnicmp PARAMS((char *, char *, int));
+#endif
+
+#if defined (HAVE_STRPBRK)
+#  define _rl_strpbrk(a,b)     strpbrk((a),(b))
+#else
+extern char *_rl_strpbrk PARAMS((const char *, const char *));
 #endif
 
 #if !defined (emacs_mode)
@@ -80,6 +89,13 @@ extern int _rl_stricmp (), _rl_strnicmp ();
 #  define emacs_mode 1
 #endif
 
+#if !defined (RL_IM_INSERT)
+#  define RL_IM_INSERT         1
+#  define RL_IM_OVERWRITE      0
+#
+#  define RL_IM_DEFAULT                RL_IM_INSERT
+#endif
+
 /* If you cast map[key].function to type (Keymap) on a Cray,
    the compiler takes the value of map[key].function and
    divides it by 4 to convert between pointer types (pointers
@@ -87,15 +103,14 @@ extern int _rl_stricmp (), _rl_strnicmp ();
    This is not what is wanted. */
 #if defined (CRAY)
 #  define FUNCTION_TO_KEYMAP(map, key) (Keymap)((int)map[key].function)
-#  define KEYMAP_TO_FUNCTION(data)     (Function *)((int)(data))
+#  define KEYMAP_TO_FUNCTION(data)     (rl_command_func_t *)((int)(data))
 #else
 #  define FUNCTION_TO_KEYMAP(map, key) (Keymap)(map[key].function)
-#  define KEYMAP_TO_FUNCTION(data)     (Function *)(data)
+#  define KEYMAP_TO_FUNCTION(data)     (rl_command_func_t *)(data)
 #endif
 
 #ifndef savestring
-extern char *xmalloc ();
-#define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
+#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
 #endif
 
 /* Possible values for _rl_bell_preference. */
@@ -113,9 +128,10 @@ extern char *xmalloc ();
 /* Possible values for the found_quote flags word used by the completion
    functions.  It says what kind of (shell-like) quoting we found anywhere
    in the line. */
-#define RL_QF_SINGLE_QUOTE     0x1
-#define RL_QF_DOUBLE_QUOTE     0x2
-#define RL_QF_BACKSLASH                0x4
+#define RL_QF_SINGLE_QUOTE     0x01
+#define RL_QF_DOUBLE_QUOTE     0x02
+#define RL_QF_BACKSLASH                0x04
+#define RL_QF_OTHER_QUOTE      0x08
 
 /* Default readline line buffer length. */
 #define DEFAULT_BUFFER_SIZE 256
@@ -130,6 +146,10 @@ extern char *xmalloc ();
 #  define FREE(x)      if (x) free (x)
 #endif
 
+#if !defined (SWAP)
+#  define SWAP(s, e)  do { int t; t = s; s = e; e = t; } while (0)
+#endif
+
 /* CONFIGURATION SECTION */
 #include "rlconf.h"
 
index c05230e3325ddf391f88e27786ed88354ce08848..ccb914469e7507e5ea4305ba505b2f76bade3ed5 100644 (file)
@@ -26,7 +26,7 @@
 
 #include "rlconf.h"    /* for VISIBLE_STATS */
 #include "rlstdc.h"
-#include "posixjmp.h" /* defines procenv_t */
+#include "posixjmp.h"  /* defines procenv_t */
 
 /*************************************************************************
  *                                                                      *
@@ -34,9 +34,6 @@
  *                                                                      *
  *************************************************************************/
 
-/* terminal.c */
-extern char *rl_get_termcap __P((char *));
-
 /*************************************************************************
  *                                                                      *
  * Global variables undocumented in texinfo manual and not in readline.h *
@@ -51,14 +48,11 @@ extern int rl_visible_stats;
 
 /* readline.c */
 extern int rl_line_buffer_len;
-extern int rl_numeric_arg;
 extern int rl_arg_sign;
-extern int rl_explicit_arg;
-extern int rl_editing_mode;
 extern int rl_visible_prompt_length;
-extern Function *rl_last_func;
 extern int readline_echoing_p;
 extern int rl_key_sequence_length;
+extern int rl_byte_oriented;
 
 /* display.c */
 extern int rl_display_fixed;
@@ -72,26 +66,17 @@ extern int rl_blink_matching_paren;
  *                                                                      *
  *************************************************************************/
 
-/* bind.c */
-extern char *rl_untranslate_keyseq __P((int));
-
 /* kill.c */
-extern int rl_set_retained_kills __P((int));
-
-/* readline.c */
-extern int rl_discard_argument __P((void));
-
-/* rltty.c */
-extern int rl_stop_output __P((int, int));
+extern int rl_set_retained_kills PARAMS((int));
 
 /* terminal.c */
-extern void _rl_set_screen_size __P((int, int));
+extern void _rl_set_screen_size PARAMS((int, int));
 
 /* undo.c */
-extern int _rl_fix_last_undo_of_type __P((int, int, int));
+extern int _rl_fix_last_undo_of_type PARAMS((int, int, int));
 
 /* util.c */
-extern char *_rl_savestring __P((char *));
+extern char *_rl_savestring PARAMS((const char *));
 
 /*************************************************************************
  *                                                                      *
@@ -111,106 +96,135 @@ extern char *_rl_savestring __P((char *));
 #if defined(READLINE_CALLBACKS)
 
 /* readline.c */
-extern void readline_internal_setup __P((void));
-extern char *readline_internal_teardown __P((int));
-extern int readline_internal_char __P((void));
+extern void readline_internal_setup PARAMS((void));
+extern char *readline_internal_teardown PARAMS((int));
+extern int readline_internal_char PARAMS((void));
 
 #endif /* READLINE_CALLBACKS */
 
 /* bind.c */
-extern void _rl_bind_if_unbound __P((char *, Function *));
+extern void _rl_bind_if_unbound PARAMS((const char *, rl_command_func_t *));
+
+/* complete.c */
+extern char _rl_find_completion_word PARAMS((int *, int *));
+extern void _rl_free_match_list PARAMS((char **));
 
 /* display.c */
-extern char *_rl_strip_prompt __P((char *));
-extern void _rl_move_cursor_relative __P((int, char *));
-extern void _rl_move_vert __P((int));
-extern void _rl_save_prompt __P((void));
-extern void _rl_restore_prompt __P((void));
-extern char *_rl_make_prompt_for_search __P((int));
-extern void _rl_erase_at_end_of_line __P((int));
-extern void _rl_clear_to_eol __P((int));
-extern void _rl_clear_screen __P((void));
-extern void _rl_update_final __P((void));
-extern void _rl_redisplay_after_sigwinch __P((void));
-extern void _rl_clean_up_for_exit __P((void));
-extern void _rl_erase_entire_line __P((void));
-extern int _rl_currentb_display_line __P((void));
+extern char *_rl_strip_prompt PARAMS((char *));
+extern void _rl_move_cursor_relative PARAMS((int, const char *));
+extern void _rl_move_vert PARAMS((int));
+extern void _rl_save_prompt PARAMS((void));
+extern void _rl_restore_prompt PARAMS((void));
+extern char *_rl_make_prompt_for_search PARAMS((int));
+extern void _rl_erase_at_end_of_line PARAMS((int));
+extern void _rl_clear_to_eol PARAMS((int));
+extern void _rl_clear_screen PARAMS((void));
+extern void _rl_update_final PARAMS((void));
+extern void _rl_redisplay_after_sigwinch PARAMS((void));
+extern void _rl_clean_up_for_exit PARAMS((void));
+extern void _rl_erase_entire_line PARAMS((void));
+extern int _rl_current_display_line PARAMS((void));
 
 /* input.c */
-extern int _rl_any_typein __P((void));
-extern int _rl_input_available __P((void));
-extern void _rl_insert_typein __P((int));
+extern int _rl_any_typein PARAMS((void));
+extern int _rl_input_available PARAMS((void));
+extern int _rl_input_queued PARAMS((int));
+extern void _rl_insert_typein PARAMS((int));
+extern int _rl_unget_char PARAMS((int));
 
 /* macro.c */
-extern void _rl_with_macro_input __P((char *));
-extern int _rl_next_macro_key __P((void));
-extern void _rl_push_executing_macro __P((void));
-extern void _rl_pop_executing_macro __P((void));
-extern void _rl_add_macro_char __P((int));
-extern void _rl_kill_kbd_macro __P((void));
+extern void _rl_with_macro_input PARAMS((char *));
+extern int _rl_next_macro_key PARAMS((void));
+extern void _rl_push_executing_macro PARAMS((void));
+extern void _rl_pop_executing_macro PARAMS((void));
+extern void _rl_add_macro_char PARAMS((int));
+extern void _rl_kill_kbd_macro PARAMS((void));
+
+/* misc.c */
+extern int _rl_init_argument PARAMS((void));
+extern void _rl_start_using_history PARAMS((void));
+extern int _rl_free_saved_history_line PARAMS((void));
+extern void _rl_set_insert_mode PARAMS((int, int));
 
 /* nls.c */
-extern int _rl_init_eightbit __P((void));
+extern int _rl_init_eightbit PARAMS((void));
 
 /* parens.c */
-extern void _rl_enable_paren_matching __P((int));
+extern void _rl_enable_paren_matching PARAMS((int));
 
 /* readline.c */
-extern void _rl_init_line_state __P((void));
-extern void _rl_set_the_line __P((void));
-extern int _rl_dispatch __P((int, Keymap));
-extern int _rl_init_argument __P((void));
-extern void _rl_fix_point __P((int));
-extern void _rl_replace_text __P((char *, int, int));
-extern int _rl_char_search_internal __P((int, int, int));
-extern int _rl_set_mark_at_pos __P((int));
+extern void _rl_init_line_state PARAMS((void));
+extern void _rl_set_the_line PARAMS((void));
+extern int _rl_dispatch PARAMS((int, Keymap));
+extern int _rl_dispatch_subseq PARAMS((int, Keymap, int));
 
 /* rltty.c */
-extern int _rl_disable_tty_signals __P((void));
-extern int _rl_restore_tty_signals __P((void));
+extern int _rl_disable_tty_signals PARAMS((void));
+extern int _rl_restore_tty_signals PARAMS((void));
 
 /* terminal.c */
-extern void _rl_get_screen_size __P((int, int));
-extern int _rl_init_terminal_io __P((char *));
+extern void _rl_get_screen_size PARAMS((int, int));
+extern int _rl_init_terminal_io PARAMS((const char *));
 #ifdef _MINIX
-extern void _rl_output_character_function __P((int));
+extern void _rl_output_character_function PARAMS((int));
+#else
+extern int _rl_output_character_function PARAMS((int));
+#endif
+extern void _rl_output_some_chars PARAMS((const char *, int));
+extern int _rl_backspace PARAMS((int));
+extern void _rl_enable_meta_key PARAMS((void));
+extern void _rl_control_keypad PARAMS((int));
+extern void _rl_set_cursor PARAMS((int, int));
+
+/* text.c */
+extern void _rl_fix_point PARAMS((int));
+extern int _rl_replace_text PARAMS((const char *, int, int));
+extern int _rl_insert_char PARAMS((int, int));
+extern int _rl_overwrite_char PARAMS((int, int));
+extern int _rl_overwrite_rubout PARAMS((int, int));
+extern int _rl_rubout_char PARAMS((int, int));
+#if defined (HANDLE_MULTIBYTE)
+extern int _rl_char_search_internal PARAMS((int, int, char *, int));
 #else
-extern int _rl_output_character_function __P((int));
+extern int _rl_char_search_internal PARAMS((int, int, int));
 #endif
-extern void _rl_output_some_chars __P((char *, int));
-extern int _rl_backspace __P((int));
-extern void _rl_enable_meta_key __P((void));
-extern void _rl_control_keypad __P((int));
+extern int _rl_set_mark_at_pos PARAMS((int));
 
 /* util.c */
-extern int alphabetic __P((int));
-extern int _rl_abort_internal __P((void));
-extern char *_rl_strindex __P((char *, char *));
-extern int _rl_qsort_string_compare __P((char **, char **));
-extern int (_rl_uppercase_p) __P((int));
-extern int (_rl_lowercase_p) __P((int));
-extern int (_rl_pure_alphabetic) __P((int));
-extern int (_rl_digit_p) __P((int));
-extern int (_rl_to_lower) __P((int));
-extern int (_rl_to_upper) __P((int));
-extern int (_rl_digit_value) __P((int));
+extern int _rl_abort_internal PARAMS((void));
+extern char *_rl_strindex PARAMS((const char *, const char *));
+extern int _rl_qsort_string_compare PARAMS((char **, char **));
+extern int (_rl_uppercase_p) PARAMS((int));
+extern int (_rl_lowercase_p) PARAMS((int));
+extern int (_rl_pure_alphabetic) PARAMS((int));
+extern int (_rl_digit_p) PARAMS((int));
+extern int (_rl_to_lower) PARAMS((int));
+extern int (_rl_to_upper) PARAMS((int));
+extern int (_rl_digit_value) PARAMS((int));
 
 /* vi_mode.c */
-extern void _rl_vi_initialize_line __P((void));
-extern void _rl_vi_reset_last __P((void));
-extern void _rl_vi_set_last __P((int, int, int));
-extern int _rl_vi_textmod_command __P((int));
-extern void _rl_vi_done_inserting __P((void));
+extern void _rl_vi_initialize_line PARAMS((void));
+extern void _rl_vi_reset_last PARAMS((void));
+extern void _rl_vi_set_last PARAMS((int, int, int));
+extern int _rl_vi_textmod_command PARAMS((int));
+extern void _rl_vi_done_inserting PARAMS((void));
 
 /*************************************************************************
  * Undocumented private variables                                       *
  *************************************************************************/
 
+/* bind.c */
+extern const char *_rl_possible_control_prefixes[];
+extern const char *_rl_possible_meta_prefixes[];
+
 /* complete.c */
 extern int _rl_complete_show_all;
 extern int _rl_complete_mark_directories;
+extern int _rl_complete_mark_symlink_dirs;
 extern int _rl_print_completions_horizontally;
 extern int _rl_completion_case_fold;
+extern int _rl_match_hidden_files;
+extern int _rl_page_completions;
 
 /* display.c */
 extern int _rl_vis_botlin;
@@ -218,17 +232,16 @@ extern int _rl_last_c_pos;
 extern int _rl_suppress_redisplay;
 extern char *rl_display_prompt;
 
-/* funmap.c */
-extern char *possible_control_prefixes[];
-extern char *possible_meta_prefixes[];
-
 /* isearch.c */
-extern unsigned char *_rl_isearch_terminators;
+extern char *_rl_isearch_terminators;
 
 /* macro.c */
-extern int _rl_defining_kbd_macro;
 extern char *_rl_executing_macro;
 
+/* misc.c */
+extern int _rl_history_preserve_point;
+extern int _rl_history_saved_point;
+
 /* readline.c */
 extern int _rl_horizontal_scroll_mode;
 extern int _rl_mark_modified_lines;
@@ -248,20 +261,20 @@ extern procenv_t readline_top_level;
 /* terminal.c */
 extern int _rl_enable_keypad;
 extern int _rl_enable_meta;
-extern char *term_clreol;
-extern char *term_clrpag;
-extern char *term_im;
-extern char *term_ic;
-extern char *term_ei;
-extern char *term_DC;
-extern char *term_up;
-extern char *term_dc;
-extern char *term_cr;
-extern char *term_IC;
-extern int screenheight;
-extern int screenwidth;
-extern int screenchars;
-extern int terminal_can_insert;
+extern char *_rl_term_clreol;
+extern char *_rl_term_clrpag;
+extern char *_rl_term_im;
+extern char *_rl_term_ic;
+extern char *_rl_term_ei;
+extern char *_rl_term_DC;
+extern char *_rl_term_up;
+extern char *_rl_term_dc;
+extern char *_rl_term_cr;
+extern char *_rl_term_IC;
+extern int _rl_screenheight;
+extern int _rl_screenwidth;
+extern int _rl_screenchars;
+extern int _rl_terminal_can_insert;
 extern int _rl_term_autowrap;
 
 /* undo.c */
index 7a4e69963167095224d9505f87db04f9a6155ee3..3c03fbad5765e8e8ebabf64c7f88bdaca86c64b4 100644 (file)
 
 #include "rlstdc.h"
 
-extern char *single_quote __P((char *));
-extern void set_lines_and_columns __P((int, int));
-extern char *get_env_value __P((char *));
-extern char *get_home_dir __P((void));
-extern int unset_nodelay_mode __P((int));
+extern char *sh_single_quote PARAMS((char *));
+extern void sh_set_lines_and_columns PARAMS((int, int));
+extern char *sh_get_env_value PARAMS((const char *));
+extern char *sh_get_home_dir PARAMS((void));
+extern int sh_unset_nodelay_mode PARAMS((int));
 
 #endif /* _RL_SHELL_H_ */
index dac8e986e10a81b0893f39a1ce8186291be3d5f2..d6a22b3742c0af87f23f061b1ffef41f93d76664 100644 (file)
 
 /* A function can be defined using prototypes and compile on both ANSI C
    and traditional C compilers with something like this:
-       extern char *func __P((char *, char *, int)); */
+       extern char *func PARAMS((char *, char *, int)); */
 
-#if !defined (__P)
+#if !defined (PARAMS)
 #  if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
-#    define __P(protos) protos
+#    define PARAMS(protos) protos
 #  else
-#    define __P(protos) ()
+#    define PARAMS(protos) ()
+#  endif
+#endif
+
+#ifndef __attribute__
+#  if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
+#    define __attribute__(x)
 #  endif
 #endif
 
index 1d943639f1acadd87af66224dc035928e589c10a..ad179043472c1e51881c2e71f6b53b51b4cc8791 100644 (file)
 extern int errno;
 #endif /* !errno */
 
-VFunction *rl_prep_term_function = rl_prep_terminal;
-VFunction *rl_deprep_term_function = rl_deprep_terminal;
+rl_vintfunc_t *rl_prep_term_function = rl_prep_terminal;
+rl_voidfunc_t *rl_deprep_term_function = rl_deprep_terminal;
+
+static void block_sigint PARAMS((void));
+static void release_sigint PARAMS((void));
+
+static void set_winsize PARAMS((int));
 
 /* **************************************************************** */
 /*                                                                 */
@@ -173,6 +178,14 @@ struct bsdtty {
 
 static TIOTYPE otio;
 
+static void save_tty_chars PARAMS((TIOTYPE *));
+static int _get_tty_settings PARAMS((int, TIOTYPE *));
+static int get_tty_settings PARAMS((int, TIOTYPE *));
+static int _set_tty_settings PARAMS((int, TIOTYPE *));
+static int set_tty_settings PARAMS((int, TIOTYPE *));
+
+static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
+
 static void
 save_tty_chars (tiop)
      TIOTYPE *tiop;
@@ -220,22 +233,23 @@ get_tty_settings (tty, tiop)
 
   tiop->flags = tiop->lflag = 0;
 
-  ioctl (tty, TIOCGETP, &(tiop->sgttyb));
+  if (ioctl (tty, TIOCGETP, &(tiop->sgttyb)) < 0)
+    return -1;
   tiop->flags |= SGTTY_SET;
 
 #if defined (TIOCLGET)
-  ioctl (tty, TIOCLGET, &(tiop->lflag));
-  tiop->flags |= LFLAG_SET;
+  if (ioctl (tty, TIOCLGET, &(tiop->lflag)) == 0)
+    tiop->flags |= LFLAG_SET;
 #endif
 
 #if defined (TIOCGETC)
-  ioctl (tty, TIOCGETC, &(tiop->tchars));
-  tiop->flags |= TCHARS_SET;
+  if (ioctl (tty, TIOCGETC, &(tiop->tchars)) == 0)
+    tiop->flags |= TCHARS_SET;
 #endif
 
 #if defined (TIOCGLTC)
-  ioctl (tty, TIOCGLTC, &(tiop->ltchars));
-  tiop->flags |= LTCHARS_SET;
+  if (ioctl (tty, TIOCGLTC, &(tiop->ltchars)) == 0)
+    tiop->flags |= LTCHARS_SET;
 #endif
 
   return 0;
@@ -281,23 +295,23 @@ set_tty_settings (tty, tiop)
 }
 
 static void
-prepare_terminal_settings (meta_flag, otio, tiop)
+prepare_terminal_settings (meta_flag, oldtio, tiop)
      int meta_flag;
-     TIOTYPE otio, *tiop;
+     TIOTYPE oldtio, *tiop;
 {
-  readline_echoing_p = (otio.sgttyb.sg_flags & ECHO);
+  readline_echoing_p = (oldtio.sgttyb.sg_flags & ECHO);
 
   /* Copy the original settings to the structure we're going to use for
      our settings. */
-  tiop->sgttyb = otio.sgttyb;
-  tiop->lflag = otio.lflag;
+  tiop->sgttyb = oldtio.sgttyb;
+  tiop->lflag = oldtio.lflag;
 #if defined (TIOCGETC)
-  tiop->tchars = otio.tchars;
+  tiop->tchars = oldtio.tchars;
 #endif
 #if defined (TIOCGLTC)
-  tiop->ltchars = otio.ltchars;
+  tiop->ltchars = oldtio.ltchars;
 #endif
-  tiop->flags = otio.flags;
+  tiop->flags = oldtio.flags;
 
   /* First, the basic settings to put us into character-at-a-time, no-echo
      input mode. */
@@ -310,8 +324,8 @@ prepare_terminal_settings (meta_flag, otio, tiop)
 #if !defined (ANYP)
 #  define ANYP (EVENP | ODDP)
 #endif
-  if (((otio.sgttyb.sg_flags & ANYP) == ANYP) ||
-      ((otio.sgttyb.sg_flags & ANYP) == 0))
+  if (((oldtio.sgttyb.sg_flags & ANYP) == ANYP) ||
+      ((oldtio.sgttyb.sg_flags & ANYP) == 0))
     {
       tiop->sgttyb.sg_flags |= ANYP;
 
@@ -330,13 +344,13 @@ prepare_terminal_settings (meta_flag, otio, tiop)
   tiop->tchars.t_startc = -1; /* C-q */
 
   /* If there is an XON character, bind it to restart the output. */
-  if (otio.tchars.t_startc != -1)
-    rl_bind_key (otio.tchars.t_startc, rl_restart_output);
+  if (oldtio.tchars.t_startc != -1)
+    rl_bind_key (oldtio.tchars.t_startc, rl_restart_output);
 #  endif /* USE_XON_XOFF */
 
   /* If there is an EOF char, bind _rl_eof_char to it. */
-  if (otio.tchars.t_eofc != -1)
-    _rl_eof_char = otio.tchars.t_eofc;
+  if (oldtio.tchars.t_eofc != -1)
+    _rl_eof_char = oldtio.tchars.t_eofc;
 
 #  if defined (NO_KILL_INTR)
   /* Get rid of terminal-generated SIGQUIT and SIGINT. */
@@ -375,11 +389,19 @@ prepare_terminal_settings (meta_flag, otio, tiop)
 #  define TIOTYPE struct termio
 #  define DRAIN_OUTPUT(fd)
 #  define GETATTR(tty, tiop)   (ioctl (tty, TCGETA, tiop))
-#  define SETATTR(tty, tiop)   (ioctl (tty, TCSETA, tiop))
+#  define SETATTR(tty, tiop)   (ioctl (tty, TCSETAW, tiop))
 #endif /* !TERMIOS_TTY_DRIVER */
 
 static TIOTYPE otio;
 
+static void save_tty_chars PARAMS((TIOTYPE *));
+static int _get_tty_settings PARAMS((int, TIOTYPE *));
+static int get_tty_settings PARAMS((int, TIOTYPE *));
+static int _set_tty_settings PARAMS((int, TIOTYPE *));
+static int set_tty_settings PARAMS((int, TIOTYPE *));
+
+static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
+
 #if defined (FLUSHO)
 #  define OUTPUT_BEING_FLUSHED(tp)  (tp->c_lflag & FLUSHO)
 #else
@@ -549,16 +571,16 @@ set_tty_settings (tty, tiop)
 }
 
 static void
-prepare_terminal_settings (meta_flag, otio, tiop)
+prepare_terminal_settings (meta_flag, oldtio, tiop)
      int meta_flag;
-     TIOTYPE otio, *tiop;
+     TIOTYPE oldtio, *tiop;
 {
-  readline_echoing_p = (otio.c_lflag & ECHO);
+  readline_echoing_p = (oldtio.c_lflag & ECHO);
 
   tiop->c_lflag &= ~(ICANON | ECHO);
 
-  if ((unsigned char) otio.c_cc[VEOF] != (unsigned char) _POSIX_VDISABLE)
-    _rl_eof_char = otio.c_cc[VEOF];
+  if ((unsigned char) oldtio.c_cc[VEOF] != (unsigned char) _POSIX_VDISABLE)
+    _rl_eof_char = oldtio.c_cc[VEOF];
 
 #if defined (USE_XON_XOFF)
 #if defined (IXANY)
@@ -589,7 +611,7 @@ prepare_terminal_settings (meta_flag, otio, tiop)
   if (OUTPUT_BEING_FLUSHED (tiop))
     {
       tiop->c_lflag &= ~FLUSHO;
-      otio.c_lflag &= ~FLUSHO;
+      oldtio.c_lflag &= ~FLUSHO;
     }
 #endif
 
@@ -649,6 +671,7 @@ rl_prep_terminal (meta_flag)
 
   fflush (rl_outstream);
   terminal_prepped = 1;
+  RL_SETSTATE(RL_STATE_TERMPREPPED);
 
   release_sigint ();
 }
@@ -679,6 +702,7 @@ rl_deprep_terminal ()
     }
 
   terminal_prepped = 0;
+  RL_UNSETSTATE(RL_STATE_TERMPREPPED);
 
   release_sigint ();
 }
@@ -755,6 +779,9 @@ rl_stop_output (count, key)
 /*                     Default Key Bindings                        */
 /*                                                                 */
 /* **************************************************************** */
+
+/* Set the system's default editing characters to their readline equivalents
+   in KMAP.  Should be static, now that we have rl_tty_set_default_bindings. */
 void
 rltty_set_default_bindings (kmap)
      Keymap kmap;
@@ -769,8 +796,8 @@ rltty_set_default_bindings (kmap)
     { \
       int ic; \
       ic = sc; \
-      if (ic != -1 && kmap[ic].type == ISFUNC) \
-       kmap[ic].function = func; \
+      if (ic != -1 && kmap[(unsigned char)ic].type == ISFUNC) \
+       kmap[(unsigned char)ic].function = func; \
     } \
   while (0)
 
@@ -819,6 +846,15 @@ rltty_set_default_bindings (kmap)
 #endif /* !NEW_TTY_DRIVER */
 }
 
+/* New public way to set the system default editing chars to their readline
+   equivalents. */
+void
+rl_tty_set_default_bindings (kmap)
+     Keymap kmap;
+{
+  rltty_set_default_bindings (kmap);
+}
+
 #if defined (HANDLE_SIGNALS)
 
 #if defined (NEW_TTY_DRIVER)
@@ -850,6 +886,7 @@ _rl_disable_tty_signals ()
   nosigstty = sigstty;
 
   nosigstty.c_lflag &= ~ISIG;
+  nosigstty.c_iflag &= ~IXON;
 
   if (_set_tty_settings (fileno (rl_instream), &nosigstty) < 0)
     return (_set_tty_settings (fileno (rl_instream), &sigstty));
@@ -861,10 +898,17 @@ _rl_disable_tty_signals ()
 int
 _rl_restore_tty_signals ()
 {
+  int r;
+
   if (tty_sigs_disabled == 0)
     return 0;
 
-  return (_set_tty_settings (fileno (rl_instream), &sigstty));
+  r = _set_tty_settings (fileno (rl_instream), &sigstty);
+
+  if (r == 0)
+    tty_sigs_disabled = 0;
+
+  return r;
 }
 #endif /* !NEW_TTY_DRIVER */
 
index 485890ea57cd6e524412a4b0a8f01d8aba5d5bfb..c7ebeb1e55275e282da885fd43cf33d75c9028ac 100644 (file)
    have a copy of the license, write to the Free Software Foundation,
    59 Temple Place, Suite 330, Boston, MA 02111 USA. */
 
-extern char *strcpy ();
-extern char *xmalloc ();
+#include <config.h>
+#ifdef HAVE_STRING_H
+#  include <string.h>
+#endif
+#include "xmalloc.h"
 
 /* Backwards compatibility, now that savestring has been removed from
    all `public' readline header files. */
 char *
 savestring (s)
-     char *s;
+     const char *s;
 {
-  return ((char *)strcpy (xmalloc (1 + (int)strlen (s)), (s)));
+  return ((char *)strcpy ((char *)xmalloc (1 + strlen (s)), (s)));
 }
index 112f8072866e1669ccab106a433739cb3384521d..7e0d60b5eb46903aac8aa0e4c688796f4a4cdf3d 100644 (file)
@@ -40,6 +40,8 @@
 #endif
 
 #include "rldefs.h"
+#include "rlmbutil.h"
+
 #include "readline.h"
 #include "history.h"
 
 #endif
 #define abs(x)         (((x) >= 0) ? (x) : -(x))
 
-extern HIST_ENTRY *saved_line_for_history;
+extern HIST_ENTRY *_rl_saved_line_for_history;
 
 /* Functions imported from the rest of the library. */
-extern int _rl_free_history_entry __P((HIST_ENTRY *));
+extern int _rl_free_history_entry PARAMS((HIST_ENTRY *));
 
 static char *noninc_search_string = (char *) NULL;
 static int noninc_history_pos;
@@ -66,6 +68,13 @@ static int rl_history_search_pos;
 static char *history_search_string;
 static int history_string_size;
 
+static void make_history_line_current PARAMS((HIST_ENTRY *));
+static int noninc_search_from_pos PARAMS((char *, int, int));
+static void noninc_dosearch PARAMS((char *, int));
+static void noninc_search PARAMS((int, int));
+static int rl_history_search_internal PARAMS((int, int));
+static void rl_history_search_reinit PARAMS((void));
+
 /* Make the data from the history entry ENTRY be the contents of the
    current line.  This doesn't do anything with rl_point; the caller
    must set it. */
@@ -73,19 +82,12 @@ static void
 make_history_line_current (entry)
      HIST_ENTRY *entry;
 {
-  int line_len;
-
-  line_len = strlen (entry->line);
-  if (line_len >= rl_line_buffer_len)
-    rl_extend_line_buffer (line_len);
-  strcpy (rl_line_buffer, entry->line);
-
+  rl_replace_line (entry->line, 0);
   rl_undo_list = (UNDO_LIST *)entry->data;
-  rl_end = line_len;
 
-  if (saved_line_for_history)
-    _rl_free_history_entry (saved_line_for_history);
-  saved_line_for_history = (HIST_ENTRY *)NULL;
+  if (_rl_saved_line_for_history)
+    _rl_free_history_entry (_rl_saved_line_for_history);
+  _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
 }
 
 /* Search the history list for STRING starting at absolute history position
@@ -100,13 +102,19 @@ noninc_search_from_pos (string, pos, dir)
 {
   int ret, old;
 
+  if (pos < 0)
+    return -1;
+
   old = where_history ();
-  history_set_pos (pos);
+  if (history_set_pos (pos) == 0)
+    return -1;
 
+  RL_SETSTATE(RL_STATE_SEARCH);
   if (*string == '^')
     ret = history_search_prefix (string + 1, dir);
   else
     ret = history_search (string, dir);
+  RL_UNSETSTATE(RL_STATE_SEARCH);
 
   if (ret != -1)
     ret = where_history ();
@@ -128,7 +136,7 @@ noninc_dosearch (string, dir)
 
   if (string == 0 || *string == '\0' || noninc_history_pos < 0)
     {
-      ding ();
+      rl_ding ();
       return;
     }
 
@@ -136,10 +144,10 @@ noninc_dosearch (string, dir)
   if (pos == -1)
     {
       /* Search failed, current history position unchanged. */
-      maybe_unsave_line ();
+      rl_maybe_unsave_line ();
       rl_clear_message ();
       rl_point = 0;
-      ding ();
+      rl_ding ();
       return;
     }
 
@@ -156,6 +164,8 @@ noninc_dosearch (string, dir)
   make_history_line_current (entry);
 
   rl_point = 0;
+  rl_mark = rl_end;
+
   rl_clear_message ();
 }
 
@@ -169,11 +179,15 @@ noninc_search (dir, pchar)
      int dir;
      int pchar;
 {
-  int saved_point, c;
+  int saved_point, saved_mark, c;
   char *p;
+#if defined (HANDLE_MULTIBYTE)
+  char mb[MB_LEN_MAX];
+#endif
 
-  maybe_save_line ();
+  rl_maybe_save_line ();
   saved_point = rl_point;
+  saved_mark = rl_mark;
 
   /* Use the line buffer to read the search string. */
   rl_line_buffer[0] = 0;
@@ -183,23 +197,37 @@ noninc_search (dir, pchar)
   rl_message (p, 0, 0);
   free (p);
 
-#define SEARCH_RETURN rl_restore_prompt (); return
+#define SEARCH_RETURN rl_restore_prompt (); RL_UNSETSTATE(RL_STATE_NSEARCH); return
 
+  RL_SETSTATE(RL_STATE_NSEARCH);
   /* Read the search string. */
-  while (c = rl_read_key ())
+  while (1)
     {
+      RL_SETSTATE(RL_STATE_MOREINPUT);
+      c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       c = _rl_read_mbstring (c, mb, MB_LEN_MAX);
+#endif
+
+      if (c == 0)
+       break;
+
       switch (c)
        {
        case CTRL('H'):
        case RUBOUT:
          if (rl_point == 0)
            {
-             maybe_unsave_line ();
+             rl_maybe_unsave_line ();
              rl_clear_message ();
              rl_point = saved_point;
+             rl_mark = saved_mark;
              SEARCH_RETURN;
            }
-         rl_rubout (1, c);
+         _rl_rubout_char (1, c);
          break;
 
        case CTRL('W'):
@@ -218,20 +246,28 @@ noninc_search (dir, pchar)
 
        case CTRL('C'):
        case CTRL('G'):
-         maybe_unsave_line ();
+         rl_maybe_unsave_line ();
          rl_clear_message ();
          rl_point = saved_point;
-         ding ();
+         rl_mark = saved_mark;
+         rl_ding ();
          SEARCH_RETURN;
 
        default:
-         rl_insert (1, c);
+#if defined (HANDLE_MULTIBYTE)
+         if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+           rl_insert_text (mb);
+         else
+#endif
+           _rl_insert_char (1, c);
          break;
        }
       (*rl_redisplay_function) ();
     }
 
  dosearch:
+  rl_mark = saved_mark;
+
   /* If rl_point == 0, we want to re-use the previous search string and
      start from the saved history position.  If there's no previous search
      string, punt. */
@@ -239,7 +275,7 @@ noninc_search (dir, pchar)
     {
       if (!noninc_search_string)
        {
-         ding ();
+         rl_ding ();
          SEARCH_RETURN;
        }
     }
@@ -253,6 +289,7 @@ noninc_search (dir, pchar)
 
   rl_restore_prompt ();
   noninc_dosearch (noninc_search_string, dir);
+  RL_UNSETSTATE(RL_STATE_NSEARCH);
 }
 
 /* Search forward through the history list for a string.  If the vi-mode
@@ -283,7 +320,7 @@ rl_noninc_forward_search_again (count, key)
 {
   if (!noninc_search_string)
     {
-      ding ();
+      rl_ding ();
       return (-1);
     }
   noninc_dosearch (noninc_search_string, 1);
@@ -298,7 +335,7 @@ rl_noninc_reverse_search_again (count, key)
 {
   if (!noninc_search_string)
     {
-      ding ();
+      rl_ding ();
       return (-1);
     }
   noninc_dosearch (noninc_search_string, -1);
@@ -312,7 +349,7 @@ rl_history_search_internal (count, dir)
   HIST_ENTRY *temp;
   int ret, oldpos;
 
-  maybe_save_line ();
+  rl_maybe_save_line ();
   temp = (HIST_ENTRY *)NULL;
 
   /* Search COUNT times through the history for a line whose prefix
@@ -341,8 +378,8 @@ rl_history_search_internal (count, dir)
   /* If we didn't find anything at all, return. */
   if (temp == 0)
     {
-      maybe_unsave_line ();
-      ding ();
+      rl_maybe_unsave_line ();
+      rl_ding ();
       /* If you don't want the saved history line (last match) to show up
          in the line buffer after the search fails, change the #if 0 to
          #if 1 */
@@ -351,9 +388,11 @@ rl_history_search_internal (count, dir)
         {
           rl_point = rl_end = rl_history_search_len;
           rl_line_buffer[rl_end] = '\0';
+          rl_mark = 0;
         }
 #else
-      rl_point = rl_history_search_len;        /* maybe_unsave_line changes it */
+      rl_point = rl_history_search_len;        /* rl_maybe_unsave_line changes it */
+      rl_mark = rl_end;
 #endif
       return 1;
     }
@@ -362,6 +401,8 @@ rl_history_search_internal (count, dir)
   make_history_line_current (temp);
 
   rl_point = rl_history_search_len;
+  rl_mark = rl_end;
+
   return 0;
 }
 
@@ -376,12 +417,13 @@ rl_history_search_reinit ()
       if (rl_history_search_len >= history_string_size - 2)
        {
          history_string_size = rl_history_search_len + 2;
-         history_search_string = xrealloc (history_search_string, history_string_size);
+         history_search_string = (char *)xrealloc (history_search_string, history_string_size);
        }
       history_search_string[0] = '^';
       strncpy (history_search_string + 1, rl_line_buffer, rl_point);
       history_search_string[rl_point + 1] = '\0';
     }
+  _rl_free_saved_history_line ();
 }
 
 /* Search forward in the history for the string of characters
index b32726c690a206ed2e56d88f33c7404f6d525df2..f1bdc67c4bbf474879d141fa8aac84463be74f90 100644 (file)
 #  include <strings.h>
 #endif /* !HAVE_STRING_H */
 
+#if defined (HAVE_LIMITS_H)
+#  include <limits.h>
+#endif
+
 #include <fcntl.h>
 #include <pwd.h>
 
 #include <stdio.h>
 
+#include "rlstdc.h"
 #include "rlshell.h"
 #include "xmalloc.h"
 
 #if !defined (HAVE_GETPW_DECLS)
-extern struct passwd *getpwuid ();
+extern struct passwd *getpwuid PARAMS((uid_t));
 #endif /* !HAVE_GETPW_DECLS */
 
 #ifndef NULL
 #  define NULL 0
 #endif
 
+#ifndef CHAR_BIT
+#  define CHAR_BIT 8
+#endif
+
+/* Nonzero if the integer type T is signed.  */
+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+
+/* Bound on length of the string representing an integer value of type T.
+   Subtract one for the sign bit if T is signed;
+   302 / 1000 is log10 (2) rounded up;
+   add one for integer division truncation;
+   add one more for a minus sign if t is signed.  */
+#define INT_STRLEN_BOUND(t) \
+  ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 \
+   + 1 + TYPE_SIGNED (t))
+
 /* All of these functions are resolved from bash if we are linking readline
    as part of bash. */
 
 /* Does shell-like quoting using single quotes. */
 char *
-single_quote (string)
+sh_single_quote (string)
      char *string;
 {
   register int c;
@@ -97,24 +118,24 @@ single_quote (string)
 /* Set the environment variables LINES and COLUMNS to lines and cols,
    respectively. */
 void
-set_lines_and_columns (lines, cols)
+sh_set_lines_and_columns (lines, cols)
      int lines, cols;
 {
   char *b;
 
 #if defined (HAVE_PUTENV)
-  b = xmalloc (24);
+  b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1);
   sprintf (b, "LINES=%d", lines);
   putenv (b);
-  b = xmalloc (24);
+  b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("COLUMNS=") + 1);
   sprintf (b, "COLUMNS=%d", cols);
   putenv (b);
 #else /* !HAVE_PUTENV */
 #  if defined (HAVE_SETENV)
-  b = xmalloc (8);
+  b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
   sprintf (b, "%d", lines);
   setenv ("LINES", b, 1);
-  b = xmalloc (8);
+  b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
   sprintf (b, "%d", cols);
   setenv ("COLUMNS", b, 1);
 #  endif /* HAVE_SETENV */
@@ -122,14 +143,14 @@ set_lines_and_columns (lines, cols)
 }
 
 char *
-get_env_value (varname)
-     char *varname;
+sh_get_env_value (varname)
+     const char *varname;
 {
   return ((char *)getenv (varname));
 }
 
 char *
-get_home_dir ()
+sh_get_home_dir ()
 {
   char *home_dir;
   struct passwd *entry;
@@ -148,7 +169,7 @@ get_home_dir ()
 #endif
 
 int
-unset_nodelay_mode (fd)
+sh_unset_nodelay_mode (fd)
      int fd;
 {
   int flags, bflags;
index b1f70dee09ae982e0b633f935ecd014a36c8880e..0cba57e4b68761135d513959e957e07176d2dac7 100644 (file)
@@ -36,6 +36,7 @@ ARFLAGS = @ARFLAGS@
 RM = rm -f
 CP = cp
 MV = mv
+LN = ln
 
 SHELL = @MAKE_SHELL@
 
@@ -43,8 +44,12 @@ host_os = @host_os@
 
 prefix = @prefix@
 exec_prefix = @exec_prefix@
+includedir = @includedir@
 libdir = @libdir@
 
+# Support an alternate destination root directory for package building
+DESTDIR =
+
 CFLAGS = @CFLAGS@
 LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
 CPPFLAGS = @CPPFLAGS@
@@ -81,7 +86,7 @@ SHLIB_MAJOR=          @SHLIB_MAJOR@
 SHLIB_MINOR=           .@SHLIB_MINOR@
 
 # For libraries which include headers from other libraries.
-INCLUDES = -I. -I.. -I$(topdir) -I$(includedir)
+INCLUDES = -I. -I.. -I$(topdir)
 
 CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(CPPFLAGS) $(INCLUDES) $(LOCAL_CFLAGS) $(CFLAGS)
 
@@ -108,19 +113,23 @@ CSOURCES = $(topdir)/readline.c $(topdir)/funmap.c $(topdir)/keymaps.c \
           $(topdir)/callback.c $(topdir)/terminal.c $(topdir)/xmalloc.c \
           $(topdir)/history.c $(topdir)/histsearch.c $(topdir)/histexpand.c \
           $(topdir)/histfile.c $(topdir)/nls.c $(topdir)/search.c \
-          $(topdir)/shell.c $(topdir)/savestring.c $(topdir)/tilde.c
+          $(topdir)/shell.c $(topdir)/savestring.c $(topdir)/tilde.c \
+          $(topdir)/text.c $(topdir)/misc.c $(topdir)/compat.c \
+          $(topdir)/mbutil.c
 
 # The header files for this library.
 HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \
           posixstat.h posixdir.h posixjmp.h tilde.h rlconf.h rltty.h \
-          ansi_stdlib.h tcap.h xmalloc.h rlprivate.h rlshell.h
+          ansi_stdlib.h tcap.h xmalloc.h rlprivate.h rlshell.h rlmbutil.h
 
-SHARED_HISTOBJ = history.so histexpand.so histfile.so histsearch.so shell.so
+SHARED_HISTOBJ = history.so histexpand.so histfile.so histsearch.so shell.so \
+                mbutil.so
 SHARED_TILDEOBJ = tilde.so
 SHARED_OBJ = readline.so vi_mode.so funmap.so keymaps.so parens.so search.so \
          rltty.so complete.so bind.so isearch.so display.so signals.so \
          util.so kill.so undo.so macro.so input.so callback.so terminal.so \
-         nls.so xmalloc.so $(SHARED_HISTOBJ) $(SHARED_TILDEOBJ)
+         text.so nls.so misc.so xmalloc.so $(SHARED_HISTOBJ) $(SHARED_TILDEOBJ) \
+         compat.so
 
 ##########################################################################
 
@@ -144,17 +153,24 @@ $(SHARED_HISTORY):        $(SHARED_HISTOBJ) xmalloc.so
        $(RM) $@
        $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so $(SHLIB_LIBS)
 
+# Since tilde.c is shared between readline and bash, make sure we compile 
+# it with the right flags when it's built as part of readline
+tilde.so:        tilde.c
+       ${RM} $@
+       $(SHOBJ_CC) -c $(CCFLAGS) $(SHOBJ_CFLAGS) -DREADLINE_LIBRARY -c -o tilde.o $(topdir)/tilde.c
+       $(MV) tilde.o $@
+
 installdirs: $(topdir)/support/mkdirs
-       -$(SHELL) $(topdir)/support/mkdirs $(libdir)
+       -$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(libdir)
 
 install: installdirs $(SHLIB_STATUS)
-       $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(libdir) -i "$(INSTALL_DATA)" $(SHARED_HISTORY)
-       $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(libdir) -i "$(INSTALL_DATA)" $(SHARED_READLINE)
+       $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -i "$(INSTALL_DATA)" $(SHARED_HISTORY)
+       $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -i "$(INSTALL_DATA)" $(SHARED_READLINE)
        @echo install: you may need to run ldconfig
 
 uninstall:
-       $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(libdir) -U $(SHARED_HISTORY)
-       $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(libdir) -U $(SHARED_READLINE)
+       $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -U $(SHARED_HISTORY)
+       $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -U $(SHARED_READLINE)
        @echo uninstall: you may need to run ldconfig
 
 clean mostlyclean:     force
@@ -173,90 +189,114 @@ force:
 bind.so: $(topdir)/ansi_stdlib.h $(topdir)/posixstat.h
 bind.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 bind.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+bind.so: $(topdir)/rltypedefs.h
 bind.so: $(topdir)/tilde.h $(topdir)/history.h
+compat.so: $(topdir)/rlstdc.h
 callback.so: $(topdir)/rlconf.h
 callback.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h
 callback.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+callback.so: $(topdir)/rltypedefs.h
 callback.so: $(topdir)/tilde.h
 complete.so: $(topdir)/ansi_stdlib.h posixdir.h $(topdir)/posixstat.h
 complete.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 complete.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+complete.so: $(topdir)/rltypedefs.h
 complete.so: $(topdir)/tilde.h
 display.so: $(topdir)/ansi_stdlib.h $(topdir)/posixstat.h
 display.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 display.so: $(topdir)/tcap.h
 display.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+display.so: $(topdir)/rltypedefs.h
 display.so: $(topdir)/tilde.h $(topdir)/history.h
 funmap.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+funmap.so: $(topdir)/rltypedefs.h
 funmap.so: $(topdir)/rlconf.h $(topdir)/ansi_stdlib.h
 funmap.so: ${BUILD_DIR}/config.h $(topdir)/tilde.h
 histexpand.so: $(topdir)/ansi_stdlib.h
-histexpand.so: $(topdir)/history.h histlib.h
+histexpand.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
 histexpand.so: ${BUILD_DIR}/config.h
 histfile.so: $(topdir)/ansi_stdlib.h
-histfile.so: $(topdir)/history.h histlib.h
+histfile.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
 histfile.so: ${BUILD_DIR}/config.h
 history.so: $(topdir)/ansi_stdlib.h
-history.so: $(topdir)/history.h histlib.h
+history.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
 history.so: ${BUILD_DIR}/config.h
 histsearch.so: $(topdir)/ansi_stdlib.h
-histsearch.so: $(topdir)/history.h histlib.h
+histsearch.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
 histsearch.so: ${BUILD_DIR}/config.h
 input.so: $(topdir)/ansi_stdlib.h
 input.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 input.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+input.so: $(topdir)/rltypedefs.h
 input.so: $(topdir)/tilde.h
 isearch.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 isearch.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+isearch.so: $(topdir)/rltypedefs.h
 isearch.so: $(topdir)/ansi_stdlib.h $(topdir)/history.h $(topdir)/tilde.h
 keymaps.so: emacs_keymap.c vi_keymap.c
 keymaps.so: $(topdir)/keymaps.h $(topdir)/chardefs.h $(topdir)/rlconf.h
 keymaps.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+keymaps.so: $(topdir)/rltypedefs.h
 keymaps.so: ${BUILD_DIR}/config.h $(topdir)/ansi_stdlib.h $(topdir)/tilde.h
 kill.so: $(topdir)/ansi_stdlib.h
 kill.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 kill.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-kill.so: $(topdir)/tilde.h $(topdir)/history.h
+kill.so: $(topdir)/tilde.h $(topdir)/history.h  $(topdir)/rltypedefs.h
 macro.so: $(topdir)/ansi_stdlib.h
 macro.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 macro.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-macro.so: $(topdir)/tilde.h $(topdir)/history.h
+macro.so: $(topdir)/tilde.h $(topdir)/history.h $(topdir)/rltypedefs.h
+mbutil.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
+mbutil.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/rltypedefs.h
+mbutil.so: $(topdir)/chardefs.h $(topdir)/rlstdc.h
+misc.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+misc.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
+misc.so: $(topdir)/rltypedefs.h
+misc.so: $(topdir)/history.h $(topdir)/tilde.h $(topdir)/ansi_stdlib.h
 nls.so: $(topdir)/ansi_stdlib.h
 nls.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 nls.o: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+nls.o: $(topdir)/rltypedefs.h
 nls.o: $(topdir)/tilde.h $(topdir)/history.h $(topdir)/rlstdc.h  
 parens.so: $(topdir)/rlconf.h ${BUILD_DIR}/config.h
 parens.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+parens.so: $(topdir)/rltypedefs.h
 parens.so: $(topdir)/tilde.h
-readline.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-readline.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-readline.so: $(topdir)/history.h $(topdir)/tilde.h
-readline.so: $(topdir)/posixstat.h $(topdir)/ansi_stdlib.h $(topdir)/posixjmp.h
 rltty.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 rltty.so: $(topdir)/rltty.h $(topdir)/tilde.h
 rltty.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+rltty.so: $(topdir)/rltypedefs.h
 search.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 search.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
 search.so: $(topdir)/ansi_stdlib.h $(topdir)/history.h $(topdir)/tilde.h
+search.so: $(topdir)/rltypedefs.h
 signals.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 signals.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
 signals.so: $(topdir)/history.h $(topdir)/tilde.h
+signals.so: $(topdir)/rltypedefs.h
 terminal.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 terminal.so: $(topdir)/tcap.h
 terminal.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
 terminal.so: $(topdir)/tilde.h $(topdir)/history.h
+terminal.so: $(topdir)/rltypedefs.h
+text.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+text.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
+text.so: $(topdir)/rltypedefs.h
+text.so: $(topdir)/history.h $(topdir)/tilde.h $(topdir)/ansi_stdlib.h
 tilde.so: $(topdir)/ansi_stdlib.h ${BUILD_DIR}/config.h $(topdir)/tilde.h
 undo.so: $(topdir)/ansi_stdlib.h
 undo.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 undo.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
+undo.so: $(topdir)/rltypedefs.h
 undo.so: $(topdir)/tilde.h $(topdir)/history.h
 util.so: $(topdir)/posixjmp.h $(topdir)/ansi_stdlib.h
 util.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 util.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-util.so: $(topdir)/tilde.h
+util.so: $(topdir)/rltypedefs.h $(topdir)/tilde.h
 vi_mode.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
 vi_mode.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
 vi_mode.so: $(topdir)/history.h $(topdir)/ansi_stdlib.h $(topdir)/tilde.h
+vi_mode.so: $(topdir)/rltypedefs.h
 xmalloc.so: ${BUILD_DIR}/config.h
 xmalloc.so: $(topdir)/ansi_stdlib.h
 
@@ -276,6 +316,8 @@ input.so: $(topdir)/rlprivate.h
 isearch.so: $(topdir)/rlprivate.h
 kill.so: $(topdir)/rlprivate.h
 macro.so: $(topdir)/rlprivate.h
+mbutil.so: $(topdir)/rlprivate.h
+misc.so: $(topdir)/rlprivate.h
 nls.so: $(topdir)/rlprivate.h   
 parens.so: $(topdir)/rlprivate.h
 readline.so: $(topdir)/rlprivate.h
@@ -283,6 +325,7 @@ rltty.so: $(topdir)/rlprivate.h
 search.so: $(topdir)/rlprivate.h
 signals.so: $(topdir)/rlprivate.h
 terminal.so: $(topdir)/rlprivate.h
+text.so: $(topdir)/rlprivate.h
 undo.so: $(topdir)/rlprivate.h
 util.so: $(topdir)/rlprivate.h
 vi_mode.so: $(topdir)/rlprivate.h
@@ -299,69 +342,96 @@ isearch.so: $(topdir)/xmalloc.h
 keymaps.so: $(topdir)/xmalloc.h
 kill.so: $(topdir)/xmalloc.h
 macro.so: $(topdir)/xmalloc.h
+mbutil.so: $(topdir)/xmalloc.h
+misc.so: $(topdir)/xmalloc.h
 readline.so: $(topdir)/xmalloc.h
 savestring.so: $(topdir)/xmalloc.h
 search.so: $(topdir)/xmalloc.h
 shell.so: $(topdir)/xmalloc.h
+terminal.so: $(topdir)/xmalloc.h
+text.so: $(topdir)/xmalloc.h
 tilde.so: $(topdir)/xmalloc.h
-tilde.so: $(topdir)/xmalloc.h
+undo.so: $(topdir)/xmalloc.h
 util.so: $(topdir)/xmalloc.h
 vi_mode.so: $(topdir)/xmalloc.h
+xmalloc.so: $(topdir)/xmalloc.h
+
+complete.o: $(topdir)/rlmbutil.h
+display.o: $(topdir)/rlmbutil.h
+histexpand.o: $(topdir)/rlmbutil.h
+input.o: $(topdir)/rlmbutil.h
+isearch.o: $(topdir)/rlmbutil.h
+mbutil.o: $(topdir)/rlmbutil.h
+misc.o: $(topdir)/rlmbutil.h
+readline.o: $(topdir)/rlmbutil.h
+search.o: $(topdir)/rlmbutil.h
+text.o: $(topdir)/rlmbutil.h
+vi_mode.o: $(topdir)/rlmbutil.h
 
-readline.so: $(topdir)/readline.c
-vi_mode.so: $(topdir)/vi_mode.c
-funmap.so: $(topdir)/funmap.c
-keymaps.so: $(topdir)/keymaps.c
-parens.so: $(topdir)/parens.c
-search.so: $(topdir)/search.c
-rltty.so: $(topdir)/rltty.c
-complete.so: $(topdir)/complete.c
 bind.so: $(topdir)/bind.c
-isearch.so: $(topdir)/isearch.c
+callback.so: $(topdir)/callback.c
+compat.so: $(topdir)/compat.c
+complete.so: $(topdir)/complete.c
 display.so: $(topdir)/display.c
-signals.so: $(topdir)/signals.c
-util.so: $(topdir)/util.c
+funmap.so: $(topdir)/funmap.c
+input.so: $(topdir)/input.c
+isearch.so: $(topdir)/isearch.c
+keymaps.so: $(topdir)/keymaps.c $(topdir)/emacs_keymap.c $(topdir)/vi_keymap.c
 kill.so: $(topdir)/kill.c
-undo.so: $(topdir)/undo.c
 macro.so: $(topdir)/macro.c
-input.so: $(topdir)/input.c
-callback.so: $(topdir)/callback.c
-terminal.so: $(topdir)/terminal.c
+mbutil.so: $(topdir)/mbutil.c
+misc.so: $(topdir)/mbutil.c
 nls.so: $(topdir)/nls.c
+parens.so: $(topdir)/parens.c
+readline.so: $(topdir)/readline.c
+rltty.so: $(topdir)/rltty.c
+savestring.so: $(topdir)/savestring.c
+search.so: $(topdir)/search.c
+shell.so: $(topdir)/shell.c
+signals.so: $(topdir)/signals.c
+terminal.so: $(topdir)/terminal.c
+text.so: $(topdir)/terminal.c
+tilde.so: $(topdir)/tilde.c
+undo.so: $(topdir)/undo.c
+util.so: $(topdir)/util.c
+vi_mode.so: $(topdir)/vi_mode.c
 xmalloc.so: $(topdir)/xmalloc.c
-history.so: $(topdir)/history.c
+
 histexpand.so: $(topdir)/histexpand.c
 histfile.so: $(topdir)/histfile.c
+history.so: $(topdir)/history.c
 histsearch.so: $(topdir)/histsearch.c
-savestring.so: $(topdir)/savestring.c
-shell.so: $(topdir)/shell.c
-tilde.so: $(topdir)/tilde.c
 
-readline.so: readline.c
-vi_mode.so: vi_mode.c
-funmap.so: funmap.c
-keymaps.so: keymaps.c
-parens.so: parens.c
-search.so: search.c
-rltty.so: rltty.c
-complete.so: complete.c
 bind.so: bind.c
-isearch.so: isearch.c
+callback.so: callback.c
+comapt.so: compat.c
+complete.so: complete.c
 display.so: display.c
-signals.so: signals.c
-util.so: util.c
+funmap.so: funmap.c
+input.so: input.c
+isearch.so: isearch.c
+keymaps.so: keymaps.c emacs_keymap.c vi_keymap.c
 kill.so: kill.c
-undo.so: undo.c
 macro.so: macro.c
-input.so: input.c
-callback.so: callback.c
-terminal.so: terminal.c
+mbutil.so: mbutil.c
+misc.so: misc.c
 nls.so: nls.c
+parens.so: parens.c
+readline.so: readline.c
+rltty.so: rltty.c
+savestring.so: savestring.c
+search.so: search.c
+signals.so: signals.c
+shell.so: shell.c
+terminal.so: terminal.c
+text.so: terminal.c
+tilde.so: tilde.c
+undo.so: undo.c
+util.so: util.c
+vi_mode.so: vi_mode.c
 xmalloc.so: xmalloc.c
-history.so: history.c
+
 histexpand.so: histexpand.c
 histfile.so: histfile.c
+history.so: history.c
 histsearch.so: histsearch.c
-savestring.so: savestring.c
-shell.so: shell.c
-tilde.so: tilde.c
index 283a115906c72173e2fefeb3785065b94fec1ffc..9deb07664226b5bd900b7f3e8b58051022cbf3f3 100644 (file)
@@ -61,7 +61,7 @@
 #  define SIGHANDLER_RETURN return (0)
 #endif
 
-/* This typedef is equivalant to the one for Function; it allows us
+/* This typedef is equivalent to the one for Function; it allows us
    to say SigHandler *foo = signal (SIGKILL, SIG_IGN); */
 typedef RETSIGTYPE SigHandler ();
 
@@ -73,7 +73,8 @@ typedef struct { SigHandler *sa_handler; int sa_mask, sa_flags; } sighandler_cxt
 #  define sigemptyset(m)
 #endif /* !HAVE_POSIX_SIGNALS */
 
-static SigHandler *rl_set_sighandler __P((int, SigHandler *, sighandler_cxt *));
+static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
+static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
 
 /* Exported variables for use by applications. */
 
@@ -121,6 +122,8 @@ rl_signal_handler (sig)
 #  endif /* !HAVE_BSD_SIGNALS */
 #endif /* !HAVE_POSIX_SIGNALS */
 
+  RL_SETSTATE(RL_STATE_SIGHANDLER);
+
 #if !defined (HAVE_BSD_SIGNALS) && !defined (HAVE_POSIX_SIGNALS)
   /* Since the signal will not be blocked while we are in the signal
      handler, ignore it until rl_clear_signals resets the catcher. */
@@ -171,6 +174,7 @@ rl_signal_handler (sig)
       rl_reset_after_signal ();
     }
 
+  RL_UNSETSTATE(RL_STATE_SIGHANDLER);
   SIGHANDLER_RETURN;
 }
 
@@ -191,6 +195,7 @@ rl_sigwinch_handler (sig)
   rl_set_sighandler (SIGWINCH, rl_sigwinch_handler, &dummy_winch);
 #endif
 
+  RL_SETSTATE(RL_STATE_SIGHANDLER);
   rl_resize_terminal ();
 
   /* If another sigwinch handler has been installed, call it. */
@@ -198,6 +203,7 @@ rl_sigwinch_handler (sig)
   if (oh &&  oh != (SigHandler *)SIG_IGN && oh != (SigHandler *)SIG_DFL)
     (*oh) (sig);
 
+  RL_UNSETSTATE(RL_STATE_SIGHANDLER);
   SIGHANDLER_RETURN;
 }
 #endif  /* SIGWINCH */
@@ -229,7 +235,7 @@ rl_set_sighandler (sig, handler, ohandler)
   struct sigaction act;
 
   act.sa_handler = handler;
-  act.sa_flags = 0;
+  act.sa_flags = 0;    /* XXX - should we set SA_RESTART for SIGWINCH? */
   sigemptyset (&act.sa_mask);
   sigemptyset (&ohandler->sa_mask);
   sigaction (sig, &act, &old_handler);
@@ -360,7 +366,7 @@ rl_cleanup_after_signal ()
   _rl_clean_up_for_exit ();
   (*rl_deprep_term_function) ();
   rl_clear_signals ();
-  rl_pending_input = 0;
+  rl_clear_pending_input ();
 }
 
 /* Reset the terminal and readline state after a signal handler returns. */
@@ -380,7 +386,7 @@ rl_free_line_state ()
 {
   register HIST_ENTRY *entry;
 
-  free_undo_list ();
+  rl_free_undo_list ();
 
   entry = current_history ();
   if (entry)
index ea88212bb50be7a7edf3447582af0ce18296e181..0cac004e6dce38456fc54e6e7dac614caa662e12 100755 (executable)
@@ -5,6 +5,18 @@
 #
 # $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
 #
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
 # This script is compatible with the BSD install script, but was written
 # from scratch.
 #
index b79d9716f464b54db8828aee413878154382d0bd..ce4fb235db79fb980a0a477881fa60e2f97a9a04 100755 (executable)
@@ -5,6 +5,22 @@
 # Chet Ramey
 # chet@po.cwru.edu
 
+# Copyright (C) 1996-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, 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 USA.
+
 for dir
 do
 
index a1e4eb16fed2ce147de8a9bd216b0475ef665f23..06e6155f559f74d64111bb5e33e88e534bd77dd0 100755 (executable)
@@ -7,6 +7,24 @@
 # SRCDIR defaults to src
 # MANIFEST defaults to $SRCDIR/MANIFEST
 #
+# Chet Ramey
+# chet@po.cwru.edu
+
+# Copyright (C) 1996-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, 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 USA.
 
 SRCDIR=src
 ROOTNAME=bash
@@ -68,6 +86,8 @@ do
        case "$type" in
        d)      mkdir $newdir/$fname ;;
        f)      cp -p $SRCDIR/$fname $newdir/$fname ;;
+       s)      ln -s $mode $newdir/$fname ; mode= ;;           # symlink
+       l)      ln $mode $newdir/$fname ; mode= ;;              # hard link
        *)      echo "unknown file type $type" 1>&2 ;;
        esac
 
index 471fec78b527e6907f0759933ddaf3dbc65ac158..654cfa9dd53ecf86b13637d53ec7a1760cab4a67 100755 (executable)
@@ -63,10 +63,11 @@ fi
 
 # post-install/uninstall
 
-# HP-UX requires that a shared library have execute permission
+# HP-UX and Darwin/MacOS X require that a shared library have execute permission
 case "$host_os" in
-hpux*) if [ -z "$uninstall" ]; then
-               chmod 755 ${INSTALLDIR}/${LIBNAME}
+hpux*|darwin*|macosx*)
+       if [ -z "$uninstall" ]; then
+               chmod 555 ${INSTALLDIR}/${LIBNAME}
        fi ;;
 *)     ;;
 esac
@@ -82,54 +83,60 @@ case "$LIBNAME" in
 *.[0-9])               # libname.M
        LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]:\1:'`               # libname
        ;;
+*.[0-9].[0-9].dylib)   # libname.M.N.dylib
+       LINK2=`echo $LIBNAME | sed 's:\(.*\.[0-9]\)\.[0-9]:\1:'`        # libname.M.dylib
+       LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]\.[0-9]:\1:'`        # libname.dylib
 esac
 
+INSTALL_LINK1='cd $INSTALLDIR ; ln -s $LIBNAME $LINK1'
+INSTALL_LINK2='cd $INSTALLDIR ; ln -s $LIBNAME $LINK2'
+
 #
 # Create symlinks to the installed library.  This section is incomplete.
 #
 case "$host_os" in
-*linux*|bsdi4*)
+*linux*|bsdi4*|*gnu*|darwin*|macosx*)
        # libname.so.M -> libname.so.M.N
        ${echo} ${RM} ${INSTALLDIR}/$LINK2
        if [ -z "$uninstall" ]; then
-               ${echo} ln -s $INSTALLDIR/$LIBNAME ${INSTALLDIR}/$LINK2
+               ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
        fi
 
        # libname.so -> libname.so.M.N
        ${echo} ${RM} ${INSTALLDIR}/$LINK1
        if [ -z "$uninstall" ]; then
-               ${echo} ln -s $INSTALLDIR/$LIBNAME ${INSTALLDIR}/$LINK1
+               ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
        fi
        ;;
 
-solaris2*|aix4.[2-9]*|osf*|irix[56]*)
+solaris2*|aix4.[2-9]*|osf*|irix[56]*|sysv[45]*|dgux*)
        # libname.so -> libname.so.M
        ${echo} ${RM} ${INSTALLDIR}/$LINK1
        if [ -z "$uninstall" ]; then
-               ${echo} ln -s $INSTALLDIR/$LIBNAME ${INSTALLDIR}/$LINK1
+               ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
        fi
        ;;
 
 
-# FreeBSD 3.x can have either a.out or ELF shared libraries
-freebsd3*)
+# FreeBSD 3.x and above can have either a.out or ELF shared libraries
+freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
        if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
                # libname.so -> libname.so.M
                ${echo} ${RM} ${INSTALLDIR}/$LINK1
                if [ -z "$uninstall" ]; then
-                       ${echo} ln -s $INSTALLDIR/$LIBNAME ${INSTALLDIR}/$LINK1
+                       ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
                fi
        else
                # libname.so.M -> libname.so.M.N
                ${echo} ${RM} ${INSTALLDIR}/$LINK2
                if [ -z "$uninstall" ]; then
-                       ${echo} ln -s $INSTALLDIR/$LIBNAME ${INSTALLDIR}/$LINK2
+                       ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
                fi
 
                # libname.so -> libname.so.M.N
                ${echo} ${RM} ${INSTALLDIR}/$LINK1
                if [ -z "$uninstall" ]; then
-                       ${echo} ln -s $INSTALLDIR/$LIBNAME ${INSTALLDIR}/$LINK1
+                       ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
                fi
        fi
        ;;
@@ -138,7 +145,8 @@ hpux1*)
        # libname.sl -> libname.M
        ${echo} ${RM} ${INSTALLDIR}/$LINK1.sl
        if [ -z "$uninstall" ]; then
-               ${echo} ln -s $INSTALLDIR/$LIBNAME ${INSTALLDIR}/${LINK1}.sl
+#              ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}.sl
+               ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}
        fi
        ;;
 
index 6649c700588f8863ddeeb0a17a60bc8f5dbfe46b..6bd7fb120cac0fea75d2d15f44a55b7f29b43515 100755 (executable)
 # Chet Ramey
 # chet@po.cwru.edu
 
+# Copyright (C) 1996-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, 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 USA.
+
 #
 # defaults
 #
@@ -43,7 +59,7 @@ while [ $# -gt 0 ]; do
 done
 
 case "${host_os}-${SHOBJ_CC}" in
-sunos4*-gcc*)
+sunos4*-*gcc*)
        SHOBJ_CFLAGS=-fpic
        SHOBJ_LD=/usr/bin/ld
        SHOBJ_LDFLAGS='-assert pure-text'
@@ -59,10 +75,13 @@ sunos4*)
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
        ;;
 
-sunos5*-gcc*|solaris2*-gcc*)
+sunos5*-*gcc*|solaris2*-*gcc*)
        SHOBJ_CFLAGS=-fpic
        SHOBJ_LD='${CC}'
+       # This line works for the Solaris linker in /usr/ccs/bin/ld
        SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
+       # This line works for the GNU ld
+#      SHOBJ_LDFLAGS='-shared -Wl,-h,$@'
 
 #      SHLIB_XLDFLAGS='-R $(libdir)'
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
@@ -77,7 +96,17 @@ sunos5*|solaris2*)
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
        ;;
 
-freebsd2* | netbsd* | openbsd*)
+# All versions of Linux or the semi-mythical GNU Hurd.
+linux*|gnu*)
+       SHOBJ_CFLAGS=-fPIC
+       SHOBJ_LD='${CC}'
+       SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
+
+       SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
+       SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
+       ;;
+
+freebsd2* | netbsd*)
        SHOBJ_CFLAGS=-fpic
        SHOBJ_LD=ld
        SHOBJ_LDFLAGS='-x -Bshareable'
@@ -86,18 +115,8 @@ freebsd2* | netbsd* | openbsd*)
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
        ;;
 
-# FreeBSD-3.x can have either a.out or ELF object files
-#freebsd3*)
-#      SHOBJ_CFLAGS=-fpic
-#      SHOBJ_LD='${CC}'
-#      SHOBJ_LDFLAGS='-shared'
-#
-#      SHLIB_XLDFLAGS='-R$(libdir)'
-#      SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
-#      ;;
-
 # FreeBSD-3.x ELF
-freebsd3*)
+freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
        SHOBJ_CFLAGS=-fpic
        SHOBJ_LD='${CC}'
 
@@ -114,12 +133,30 @@ freebsd3*)
        fi
        ;;
 
-linux*)
+# Darwin/MacOS X
+darwin*|macosx*)
+       SHOBJ_STATUS=unsupported
+       SHLIB_STATUS=supported
+
+       SHOBJ_CFLAGS='-dynamic -fno-common'
+
+       SHOBJ_LD=/usr/bin/libtool
+
+       SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
+       SHLIB_LIBSUFF='dylib'
+
+       SHOBJ_LDFLAGS='-dynamic'
+       SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+
+       SHLIB_LIBS='-lSystem'
+       ;;
+
+openbsd*)
        SHOBJ_CFLAGS=-fPIC
        SHOBJ_LD='${CC}'
-       SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
+       SHOBJ_LDFLAGS='-shared'
 
-       SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
+       SHLIB_XLDFLAGS='-R$(libdir)'
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
        ;;
 
@@ -158,10 +195,11 @@ bsdi4*)
        SHOBJ_LD='${CC}'
        SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
 
+       SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
        ;;
 
-osf*-gcc*)
+osf*-*gcc*)
        # Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
        SHOBJ_LD='${CC}'
        SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
@@ -178,7 +216,7 @@ osf*)
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
        ;;
 
-aix4.[2-9]*-gcc*)              # lightly tested by jik@cisco.com
+aix4.[2-9]*-*gcc*)             # lightly tested by jik@cisco.com
        SHOBJ_CFLAGS=-fpic
        SHOBJ_LD='ld'
        SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
@@ -203,7 +241,7 @@ aix4.[2-9]*)
 #
 # THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
 #
-irix[56]*-gcc*)
+irix[56]*-*gcc*)
        SHOBJ_CFLAGS='-fpic'
        SHOBJ_LD='${CC}'
        SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
@@ -216,14 +254,15 @@ irix[56]*)
        SHOBJ_CFLAGS='-K PIC'
        SHOBJ_LD=ld
 #      SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
-#      Change from David Kaelbling <drk@sgi.com>
+#      Change from David Kaelbling <drk@sgi.com>.  If you have problems,
+#      remove the `-no_unresolved'
        SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
 
        SHLIB_XLDFLAGS='-rpath $(libdir)'
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
        ;;
 
-hpux9*-gcc*)
+hpux9*-*gcc*)
        # must use gcc; the bundled cc cannot compile PIC code
        SHOBJ_CFLAGS='-fpic'
        SHOBJ_LD='${CC}'
@@ -237,9 +276,23 @@ hpux9*-gcc*)
 hpux9*)
        SHOBJ_STATUS=unsupported
        SHLIB_STATUS=unsupported
+
+       # If you are using the HP ANSI C compiler, you can uncomment and use
+       # this code (I have not tested it)
+#      SHOBJ_STATUS=supported
+#      SHLIB_STATUS=supported
+#
+#      SHOBJ_CFLAGS='+z'
+#      SHOBJ_LD='ld'
+#      SHOBJ_LDFLAGS='-b +s'
+#
+#      SHLIB_XLDFLAGS='+b $(libdir)'
+#      SHLIB_LIBSUFF='sl'
+#      SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'      
+
        ;;
 
-hpux10*-gcc*)
+hpux10*-*gcc*)
        # must use gcc; the bundled cc cannot compile PIC code
        SHOBJ_CFLAGS='-fpic'
        SHOBJ_LD='${CC}'
@@ -253,14 +306,28 @@ hpux10*-gcc*)
 hpux10*)
        SHOBJ_STATUS=unsupported
        SHLIB_STATUS=unsupported
+
+       # If you are using the HP ANSI C compiler, you can uncomment and use
+       # this code (I have not tested it)
+#      SHOBJ_STATUS=supported
+#      SHLIB_STATUS=supported
+#
+#      SHOBJ_CFLAGS='+z'
+#      SHOBJ_LD='ld'
+#      SHOBJ_LDFLAGS='-b +s +h $@'
+#
+#      SHLIB_XLDFLAGS='+b $(libdir)'
+#      SHLIB_LIBSUFF='sl'
+#      SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'      
+
        ;;
 
-hpux11*-gcc*)
+hpux11*-*gcc*)
        # must use gcc; the bundled cc cannot compile PIC code
        SHOBJ_CFLAGS='-fpic'
        SHOBJ_LD='${CC}'
 #      SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
-       SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s -Wl,+h,$@'
+       SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@'
 
        SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
        SHLIB_LIBSUFF='sl'
@@ -270,9 +337,23 @@ hpux11*-gcc*)
 hpux11*)
        SHOBJ_STATUS=unsupported
        SHLIB_STATUS=unsupported
+
+       # If you are using the HP ANSI C compiler, you can uncomment and use
+       # this code (I have not tested it)
+#      SHOBJ_STATUS=supported
+#      SHLIB_STATUS=supported
+#
+#      SHOBJ_CFLAGS='+z'
+#      SHOBJ_LD='ld'
+#      SHOBJ_LDFLAGS='-b +s +h $@'
+#
+#      SHLIB_XLDFLAGS='+b $(libdir)'
+#      SHLIB_LIBSUFF='sl'
+#      SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'      
+
        ;;
 
-sysv4*-gcc*)
+sysv4*-*gcc*)
        SHOBJ_CFLAGS=-shared
        SHOBJ_LDFLAGS='-shared -h $@'
        SHOBJ_LD='${CC}'
@@ -288,7 +369,7 @@ sysv4*)
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
        ;;
 
-sco3.2v5*-gcc*)
+sco3.2v5*-*gcc*)
        SHOBJ_CFLAGS='-fpic'            # DEFAULTS TO ELF
        SHOBJ_LD='${CC}'
        SHOBJ_LDFLAGS='-shared'
@@ -304,7 +385,7 @@ sco3.2v5*)
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
        ;;
 
-sysv5uw7*-gcc*)
+sysv5uw7*-*gcc*)
        SHOBJ_CFLAGS='-fpic'
        SHOBJ_LD='${CC}'
        SHOBJ_LDFLAGS='-shared'
@@ -320,7 +401,7 @@ sysv5uw7*)
        SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
        ;;
        
-dgux*-gcc*)
+dgux*-*gcc*)
        SHOBJ_CFLAGS=-fpic
        SHOBJ_LD='${CC}'
        SHOBJ_LDFLAGS='-shared'
@@ -344,7 +425,7 @@ msdos*)
 #
 # Rely on correct gcc configuration for everything else
 #
-*-gcc*)
+*-*gcc*)
        SHOBJ_CFLAGS=-fpic
        SHOBJ_LD='${CC}'
        SHOBJ_LDFLAGS='-shared'
index 02757fee9429fe2f6e335a49218af9bc10836d00..ea3270e9683e02bfc54caa34b7922fc9f4c25eb6 100644 (file)
 
 #include "rlprivate.h"
 #include "rlshell.h"
+#include "xmalloc.h"
+
+#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay)
+#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc)
 
 /* **************************************************************** */
 /*                                                                 */
@@ -93,27 +97,36 @@ char PC, *BC, *UP;
 #endif /* __linux__ */
 
 /* Some strings to control terminal actions.  These are output by tputs (). */
-char *term_goto, *term_clreol, *term_cr, *term_clrpag, *term_backspace;
-char *term_pc;
+char *_rl_term_clreol;
+char *_rl_term_clrpag;
+char *_rl_term_cr;
+char *_rl_term_backspace;
+char *_rl_term_goto;
+char *_rl_term_pc;
 
 /* Non-zero if we determine that the terminal can do character insertion. */
-int terminal_can_insert = 0;
+int _rl_terminal_can_insert = 0;
 
 /* How to insert characters. */
-char *term_im, *term_ei, *term_ic, *term_ip, *term_IC;
+char *_rl_term_im;
+char *_rl_term_ei;
+char *_rl_term_ic;
+char *_rl_term_ip;
+char *_rl_term_IC;
 
 /* How to delete characters. */
-char *term_dc, *term_DC;
+char *_rl_term_dc;
+char *_rl_term_DC;
 
 #if defined (HACK_TERMCAP_MOTION)
-char *term_forward_char;
+char *_rl_term_forward_char;
 #endif  /* HACK_TERMCAP_MOTION */
 
 /* How to go up a line. */
-char *term_up;
+char *_rl_term_up;
 
-/* A visible bell, if the terminal can be made to flash the screen. */
-static char *visible_bell;
+/* A visible bell; char if the terminal can be made to flash the screen. */
+static char *_rl_visible_bell;
 
 /* Non-zero means the terminal can auto-wrap lines. */
 int _rl_term_autowrap;
@@ -122,20 +135,36 @@ int _rl_term_autowrap;
 static int term_has_meta;
 
 /* The sequences to write to turn on and off the meta key, if this
-   terminal    has one. */
-static char *term_mm, *term_mo;
+   terminal has one. */
+static char *_rl_term_mm;
+static char *_rl_term_mo;
 
 /* The key sequences output by the arrow keys, if this terminal has any. */
-static char *term_ku, *term_kd, *term_kr, *term_kl;
+static char *_rl_term_ku;
+static char *_rl_term_kd;
+static char *_rl_term_kr;
+static char *_rl_term_kl;
 
 /* How to initialize and reset the arrow keys, if this terminal has any. */
-static char *term_ks, *term_ke;
+static char *_rl_term_ks;
+static char *_rl_term_ke;
 
 /* The key sequences sent by the Home and End keys, if any. */
-static char *term_kh, *term_kH;
+static char *_rl_term_kh;
+static char *_rl_term_kH;
+static char *_rl_term_at7;     /* @7 */
+
+/* Insert key */
+static char *_rl_term_kI;
+
+/* Cursor control */
+static char *_rl_term_vs;      /* very visible */
+static char *_rl_term_ve;      /* normal */
+
+static void bind_termcap_arrow_keys PARAMS((Keymap));
 
 /* Variables that hold the screen dimensions, used by the display code. */
-int screenwidth, screenheight, screenchars;
+int _rl_screenwidth, _rl_screenheight, _rl_screenchars;
 
 /* Non-zero means the user wants to enable the keypad. */
 int _rl_enable_keypad;
@@ -175,90 +204,107 @@ _rl_get_screen_size (tty, ignore_env)
 #if defined (TIOCGWINSZ)
   if (ioctl (tty, TIOCGWINSZ, &window_size) == 0)
     {
-      screenwidth = (int) window_size.ws_col;
-      screenheight = (int) window_size.ws_row;
+      _rl_screenwidth = (int) window_size.ws_col;
+      _rl_screenheight = (int) window_size.ws_row;
     }
 #endif /* TIOCGWINSZ */
 
 #if defined (__EMX__)
-  _emx_get_screensize (&screenwidth, &screenheight);
+  _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight);
 #endif
 
   /* Environment variable COLUMNS overrides setting of "co" if IGNORE_ENV
      is unset. */
-  if (screenwidth <= 0)
+  if (_rl_screenwidth <= 0)
     {
-      if (ignore_env == 0 && (ss = get_env_value ("COLUMNS")))
-       screenwidth = atoi (ss);
+      if (ignore_env == 0 && (ss = sh_get_env_value ("COLUMNS")))
+       _rl_screenwidth = atoi (ss);
 
-#if defined (__DJGPP__)
-      if (screenwidth <= 0)
-       screenwidth = ScreenCols ();
-#else
-      if (screenwidth <= 0 && term_string_buffer)
-       screenwidth = tgetnum ("co");
+#if !defined (__DJGPP__)
+      if (_rl_screenwidth <= 0 && term_string_buffer)
+       _rl_screenwidth = tgetnum ("co");
 #endif
     }
 
   /* Environment variable LINES overrides setting of "li" if IGNORE_ENV
      is unset. */
-  if (screenheight <= 0)
+  if (_rl_screenheight <= 0)
     {
-      if (ignore_env == 0 && (ss = get_env_value ("LINES")))
-       screenheight = atoi (ss);
+      if (ignore_env == 0 && (ss = sh_get_env_value ("LINES")))
+       _rl_screenheight = atoi (ss);
 
-#if defined (__DJGPP__)
-      if (screenheight <= 0)
-       screenheight = ScreenRows ();
-#else
-      if (screenheight <= 0 && term_string_buffer)
-       screenheight = tgetnum ("li");
+#if !defined (__DJGPP__)
+      if (_rl_screenheight <= 0 && term_string_buffer)
+       _rl_screenheight = tgetnum ("li");
 #endif
     }
 
   /* If all else fails, default to 80x24 terminal. */
-  if (screenwidth <= 1)
-    screenwidth = 80;
+  if (_rl_screenwidth <= 1)
+    _rl_screenwidth = 80;
 
-  if (screenheight <= 0)
-    screenheight = 24;
+  if (_rl_screenheight <= 0)
+    _rl_screenheight = 24;
 
   /* If we're being compiled as part of bash, set the environment
      variables $LINES and $COLUMNS to new values.  Otherwise, just
      do a pair of putenv () or setenv () calls. */
-  set_lines_and_columns (screenheight, screenwidth);
+  sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth);
 
   if (_rl_term_autowrap == 0)
-    screenwidth--;
+    _rl_screenwidth--;
 
-  screenchars = screenwidth * screenheight;
+  _rl_screenchars = _rl_screenwidth * _rl_screenheight;
 }
 
 void
 _rl_set_screen_size (rows, cols)
      int rows, cols;
 {
-  screenheight = rows;
-  screenwidth = cols;
+  if (rows == 0 || cols == 0)
+    return;
+
+  _rl_screenheight = rows;
+  _rl_screenwidth = cols;
 
   if (_rl_term_autowrap == 0)
-    screenwidth--;
+    _rl_screenwidth--;
 
-  screenchars = screenwidth * screenheight;
+  _rl_screenchars = _rl_screenwidth * _rl_screenheight;
 }
 
+void
+rl_set_screen_size (rows, cols)
+     int rows, cols;
+{
+  _rl_set_screen_size (rows, cols);
+}
+
+void
+rl_get_screen_size (rows, cols)
+     int *rows, *cols;
+{
+  if (rows)
+    *rows = _rl_screenheight;
+  if (cols)
+    *cols = _rl_screenwidth;
+}
+     
 void
 rl_resize_terminal ()
 {
   if (readline_echoing_p)
     {
       _rl_get_screen_size (fileno (rl_instream), 1);
-      _rl_redisplay_after_sigwinch ();
+      if (CUSTOM_REDISPLAY_FUNC ())
+       rl_forced_update_display ();
+      else
+       _rl_redisplay_after_sigwinch ();
     }
 }
 
 struct _tc_string {
-     char *tc_var;
+     const char *tc_var;
      char **tc_value;
 };
 
@@ -266,32 +312,36 @@ struct _tc_string {
    search algorithm to something smarter. */
 static struct _tc_string tc_strings[] =
 {
-  { "DC", &term_DC },
-  { "IC", &term_IC },
-  { "ce", &term_clreol },
-  { "cl", &term_clrpag },
-  { "cr", &term_cr },
-  { "dc", &term_dc },
-  { "ei", &term_ei },
-  { "ic", &term_ic },
-  { "im", &term_im },
-  { "kd", &term_kd },
-  { "kh", &term_kh },  /* home */
-  { "kH", &term_kH },  /* end */
-  { "kl", &term_kl },
-  { "kr", &term_kr },
-  { "ku", &term_ku },
-  { "ks", &term_ks },
-  { "ke", &term_ke },
-  { "le", &term_backspace },
-  { "mm", &term_mm },
-  { "mo", &term_mo },
+  { "@7", &_rl_term_at7 },
+  { "DC", &_rl_term_DC },
+  { "IC", &_rl_term_IC },
+  { "ce", &_rl_term_clreol },
+  { "cl", &_rl_term_clrpag },
+  { "cr", &_rl_term_cr },
+  { "dc", &_rl_term_dc },
+  { "ei", &_rl_term_ei },
+  { "ic", &_rl_term_ic },
+  { "im", &_rl_term_im },
+  { "kH", &_rl_term_kH },      /* home down ?? */
+  { "kI", &_rl_term_kI },      /* insert */
+  { "kd", &_rl_term_kd },
+  { "ke", &_rl_term_ke },      /* end keypad mode */
+  { "kh", &_rl_term_kh },      /* home */
+  { "kl", &_rl_term_kl },
+  { "kr", &_rl_term_kr },
+  { "ks", &_rl_term_ks },      /* start keypad mode */
+  { "ku", &_rl_term_ku },
+  { "le", &_rl_term_backspace },
+  { "mm", &_rl_term_mm },
+  { "mo", &_rl_term_mo },
 #if defined (HACK_TERMCAP_MOTION)
-  { "nd", &term_forward_char },
+  { "nd", &_rl_term_forward_char },
 #endif
-  { "pc", &term_pc },
-  { "up", &term_up },
-  { "vb", &visible_bell },
+  { "pc", &_rl_term_pc },
+  { "up", &_rl_term_up },
+  { "vb", &_rl_visible_bell },
+  { "vs", &_rl_term_vs },
+  { "ve", &_rl_term_ve },
 };
 
 #define NUM_TC_STRINGS (sizeof (tc_strings) / sizeof (struct _tc_string))
@@ -306,26 +356,27 @@ get_term_capabilities (bp)
   register int i;
 
   for (i = 0; i < NUM_TC_STRINGS; i++)
+#  ifdef __LCC__
+    *(tc_strings[i].tc_value) = tgetstr ((char *)tc_strings[i].tc_var, bp);
+#  else
     *(tc_strings[i].tc_value) = tgetstr (tc_strings[i].tc_var, bp);
+#  endif
 #endif
   tcap_initialized = 1;
 }
 
-#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay)
-#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc)
-
 int
 _rl_init_terminal_io (terminal_name)
-     char *terminal_name;
+     const char *terminal_name;
 {
-  char *term, *buffer;
+  const char *term;
+  char *buffer;
   int tty, tgetent_ret;
-  Keymap xkeymap;
 
-  term = terminal_name ? terminal_name : get_env_value ("TERM");
-  term_clrpag = term_cr = term_clreol = (char *)NULL;
+  term = terminal_name ? terminal_name : sh_get_env_value ("TERM");
+  _rl_term_clrpag = _rl_term_cr = _rl_term_clreol = (char *)NULL;
   tty = rl_instream ? fileno (rl_instream) : 0;
-  screenwidth = screenheight = 0;
+  _rl_screenwidth = _rl_screenheight = 0;
 
   if (term == 0)
     term = "dumb";
@@ -350,10 +401,10 @@ _rl_init_terminal_io (terminal_name)
   else
     {
       if (term_string_buffer == 0)
-       term_string_buffer = xmalloc(2032);
+       term_string_buffer = (char *)xmalloc(2032);
 
       if (term_buffer == 0)
-       term_buffer = xmalloc(4080);
+       term_buffer = (char *)xmalloc(4080);
 
       buffer = term_string_buffer;
 
@@ -366,41 +417,43 @@ _rl_init_terminal_io (terminal_name)
       FREE (term_buffer);
       buffer = term_buffer = term_string_buffer = (char *)NULL;
 
-      dumb_term = 1;
       _rl_term_autowrap = 0;   /* used by _rl_get_screen_size */
 
 #if defined (__EMX__)
-      _emx_get_screensize (&screenwidth, &screenheight);
-      screenwidth--;
+      _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight);
+      _rl_screenwidth--;
 #else /* !__EMX__ */
       _rl_get_screen_size (tty, 0);
 #endif /* !__EMX__ */
 
       /* Defaults. */
-      if (screenwidth <= 0 || screenheight <= 0)
+      if (_rl_screenwidth <= 0 || _rl_screenheight <= 0)
         {
-         screenwidth = 79;
-         screenheight = 24;
+         _rl_screenwidth = 79;
+         _rl_screenheight = 24;
         }
 
       /* Everything below here is used by the redisplay code (tputs). */
-      screenchars = screenwidth * screenheight;
-      term_cr = "\r";
-      term_im = term_ei = term_ic = term_IC = (char *)NULL;
-      term_up = term_dc = term_DC = visible_bell = (char *)NULL;
-      term_ku = term_kd = term_kl = term_kr = (char *)NULL;
-      term_mm = term_mo = (char *)NULL;
+      _rl_screenchars = _rl_screenwidth * _rl_screenheight;
+      _rl_term_cr = "\r";
+      _rl_term_im = _rl_term_ei = _rl_term_ic = _rl_term_IC = (char *)NULL;
+      _rl_term_up = _rl_term_dc = _rl_term_DC = _rl_visible_bell = (char *)NULL;
+      _rl_term_ku = _rl_term_kd = _rl_term_kl = _rl_term_kr = (char *)NULL;
+      _rl_term_kh = _rl_term_kH = _rl_term_kI = (char *)NULL;
+      _rl_term_ks = _rl_term_ke = _rl_term_at7 = (char *)NULL;
+      _rl_term_mm = _rl_term_mo = (char *)NULL;
+      _rl_term_ve = _rl_term_vs = (char *)NULL;
 #if defined (HACK_TERMCAP_MOTION)
       term_forward_char = (char *)NULL;
 #endif
-      terminal_can_insert = term_has_meta = 0;
+      _rl_terminal_can_insert = term_has_meta = 0;
 
       /* Reasonable defaults for tgoto().  Readline currently only uses
-         tgoto if term_IC or term_DC is defined, but just in case we
+         tgoto if _rl_term_IC or _rl_term_DC is defined, but just in case we
          change that later... */
       PC = '\0';
-      BC = term_backspace = "\b";
-      UP = term_up;
+      BC = _rl_term_backspace = "\b";
+      UP = _rl_term_up;
 
       return 0;
     }
@@ -409,12 +462,12 @@ _rl_init_terminal_io (terminal_name)
 
   /* Set up the variables that the termcap library expects the application
      to provide. */
-  PC = term_pc ? *term_pc : 0;
-  BC = term_backspace;
-  UP = term_up;
+  PC = _rl_term_pc ? *_rl_term_pc : 0;
+  BC = _rl_term_backspace;
+  UP = _rl_term_up;
 
-  if (!term_cr)
-    term_cr = "\r";
+  if (!_rl_term_cr)
+    _rl_term_cr = "\r";
 
   _rl_term_autowrap = tgetflag ("am") && tgetflag ("xn");
 
@@ -424,48 +477,53 @@ _rl_init_terminal_io (terminal_name)
       character insertion if *any one of* the capabilities `IC',
       `im', `ic' or `ip' is provided."  But we can't do anything if
       only `ip' is provided, so... */
-  terminal_can_insert = (term_IC || term_im || term_ic);
+  _rl_terminal_can_insert = (_rl_term_IC || _rl_term_im || _rl_term_ic);
 
   /* Check to see if this terminal has a meta key and clear the capability
      variables if there is none. */
   term_has_meta = (tgetflag ("km") || tgetflag ("MT"));
   if (!term_has_meta)
-    term_mm = term_mo = (char *)NULL;
+    _rl_term_mm = _rl_term_mo = (char *)NULL;
 
 #endif /* !__MSDOS__ */
 
   /* Attempt to find and bind the arrow keys.  Do not override already
      bound keys in an overzealous attempt, however. */
-  xkeymap = _rl_keymap;
-
-  _rl_keymap = emacs_standard_keymap;
-  _rl_bind_if_unbound (term_ku, rl_get_previous_history);
-  _rl_bind_if_unbound (term_kd, rl_get_next_history);
-  _rl_bind_if_unbound (term_kr, rl_forward);
-  _rl_bind_if_unbound (term_kl, rl_backward);
 
-  _rl_bind_if_unbound (term_kh, rl_beg_of_line);       /* Home */
-  _rl_bind_if_unbound (term_kH, rl_end_of_line);       /* End */
+  bind_termcap_arrow_keys (emacs_standard_keymap);
 
 #if defined (VI_MODE)
-  _rl_keymap = vi_movement_keymap;
-  _rl_bind_if_unbound (term_ku, rl_get_previous_history);
-  _rl_bind_if_unbound (term_kd, rl_get_next_history);
-  _rl_bind_if_unbound (term_kr, rl_forward);
-  _rl_bind_if_unbound (term_kl, rl_backward);
-
-  _rl_bind_if_unbound (term_kh, rl_beg_of_line);       /* Home */
-  _rl_bind_if_unbound (term_kH, rl_end_of_line);       /* End */
+  bind_termcap_arrow_keys (vi_movement_keymap);
+  bind_termcap_arrow_keys (vi_insertion_keymap);
 #endif /* VI_MODE */
 
-  _rl_keymap = xkeymap;
-
   return 0;
 }
 
+/* Bind the arrow key sequences from the termcap description in MAP. */
+static void
+bind_termcap_arrow_keys (map)
+     Keymap map;
+{
+  Keymap xkeymap;
+
+  xkeymap = _rl_keymap;
+  _rl_keymap = map;
+
+  _rl_bind_if_unbound (_rl_term_ku, rl_get_previous_history);
+  _rl_bind_if_unbound (_rl_term_kd, rl_get_next_history);
+  _rl_bind_if_unbound (_rl_term_kr, rl_forward);
+  _rl_bind_if_unbound (_rl_term_kl, rl_backward);
+
+  _rl_bind_if_unbound (_rl_term_kh, rl_beg_of_line);   /* Home */
+  _rl_bind_if_unbound (_rl_term_at7, rl_end_of_line);  /* End */
+
+  _rl_keymap = xkeymap;
+}
+
 char *
 rl_get_termcap (cap)
-     char *cap;
+     const char *cap;
 {
   register int i;
 
@@ -483,7 +541,7 @@ rl_get_termcap (cap)
    has changed. */
 int
 rl_reset_terminal (terminal_name)
-     char *terminal_name;
+     const char *terminal_name;
 {
   _rl_init_terminal_io (terminal_name);
   return 0;
@@ -509,7 +567,7 @@ _rl_output_character_function (c)
 /* Write COUNT characters from STRING to the output stream. */
 void
 _rl_output_some_chars (string, count)
-     char *string;
+     const char *string;
      int count;
 {
   fwrite (string, 1, count, _rl_out_stream);
@@ -523,9 +581,9 @@ _rl_backspace (count)
   register int i;
 
 #ifndef __MSDOS__
-  if (term_backspace)
+  if (_rl_term_backspace)
     for (i = 0; i < count; i++)
-      tputs (term_backspace, 1, _rl_output_character_function);
+      tputs (_rl_term_backspace, 1, _rl_output_character_function);
   else
 #endif
     for (i = 0; i < count; i++)
@@ -535,11 +593,11 @@ _rl_backspace (count)
 
 /* Move to the start of the next line. */
 int
-crlf ()
+rl_crlf ()
 {
 #if defined (NEW_TTY_DRIVER)
-  if (term_cr)
-    tputs (term_cr, 1, _rl_output_character_function);
+  if (_rl_term_cr)
+    tputs (_rl_term_cr, 1, _rl_output_character_function);
 #endif /* NEW_TTY_DRIVER */
   putc ('\n', _rl_out_stream);
   return 0;
@@ -547,7 +605,7 @@ crlf ()
 
 /* Ring the terminal bell. */
 int
-ding ()
+rl_ding ()
 {
   if (readline_echoing_p)
     {
@@ -561,9 +619,9 @@ ding ()
          ScreenVisualBell ();
          break;
 #else
-         if (visible_bell)
+         if (_rl_visible_bell)
            {
-             tputs (visible_bell, 1, _rl_output_character_function);
+             tputs (_rl_visible_bell, 1, _rl_output_character_function);
              break;
            }
 #endif
@@ -588,8 +646,8 @@ void
 _rl_enable_meta_key ()
 {
 #if !defined (__DJGPP__)
-  if (term_has_meta && term_mm)
-    tputs (term_mm, 1, _rl_output_character_function);
+  if (term_has_meta && _rl_term_mm)
+    tputs (_rl_term_mm, 1, _rl_output_character_function);
 #endif
 }
 
@@ -598,9 +656,35 @@ _rl_control_keypad (on)
      int on;
 {
 #if !defined (__DJGPP__)
-  if (on && term_ks)
-    tputs (term_ks, 1, _rl_output_character_function);
-  else if (!on && term_ke)
-    tputs (term_ke, 1, _rl_output_character_function);
+  if (on && _rl_term_ks)
+    tputs (_rl_term_ks, 1, _rl_output_character_function);
+  else if (!on && _rl_term_ke)
+    tputs (_rl_term_ke, 1, _rl_output_character_function);
 #endif
 }
+
+/* **************************************************************** */
+/*                                                                 */
+/*                     Controlling the Cursor                      */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Set the cursor appropriately depending on IM, which is one of the
+   insert modes (insert or overwrite).  Insert mode gets the normal
+   cursor.  Overwrite mode gets a very visible cursor.  Only does
+   anything if we have both capabilities. */
+void
+_rl_set_cursor (im, force)
+     int im, force;
+{
+  if (_rl_term_ve && _rl_term_vs)
+    {
+      if (force || im != rl_insert_mode)
+       {
+         if (im == RL_IM_OVERWRITE)
+           tputs (_rl_term_vs, 1, _rl_output_character_function);
+         else
+           tputs (_rl_term_ve, 1, _rl_output_character_function);
+       }
+    }
+}
index 777b6559223798df6b1c1a5073d5f5f495614afa..154f7f8108d075569576990c9ee5c23be93b2950 100644 (file)
 #include "tilde.h"
 
 #if defined (TEST) || defined (STATIC_MALLOC)
-static char *xmalloc (), *xrealloc ();
+static void *xmalloc (), *xrealloc ();
 #else
-#  if defined __STDC__
-extern char *xmalloc (int);
-extern char *xrealloc (void *, int);
-#  else
-extern char *xmalloc (), *xrealloc ();
-#  endif /* !__STDC__ */
+#  include "xmalloc.h"
 #endif /* TEST || STATIC_MALLOC */
 
 #if !defined (HAVE_GETPW_DECLS)
-extern struct passwd *getpwuid (), *getpwnam ();
+extern struct passwd *getpwuid PARAMS((uid_t));
+extern struct passwd *getpwnam PARAMS((const char *));
 #endif /* !HAVE_GETPW_DECLS */
 
 #if !defined (savestring)
-#  ifndef strcpy
-extern char *strcpy ();
-#  endif
-#define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
+#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
 #endif /* !savestring */
 
 #if !defined (NULL)
@@ -80,49 +73,54 @@ extern char *strcpy ();
 /* If being compiled as part of bash, these will be satisfied from
    variables.o.  If being compiled as part of readline, they will
    be satisfied from shell.o. */
-extern char *get_home_dir __P((void));
-extern char *get_env_value __P((char *));
+extern char *sh_get_home_dir PARAMS((void));
+extern char *sh_get_env_value PARAMS((const char *));
 
 /* The default value of tilde_additional_prefixes.  This is set to
    whitespace preceding a tilde so that simple programs which do not
    perform any word separation get desired behaviour. */
-static char *default_prefixes[] =
-  { " ~", "\t~", (char *)NULL };
+static const char *default_prefixes[] =
+  { " ~", "\t~", (const char *)NULL };
 
 /* The default value of tilde_additional_suffixes.  This is set to
    whitespace or newline so that simple programs which do not
    perform any word separation get desired behaviour. */
-static char *default_suffixes[] =
-  { " ", "\n", (char *)NULL };
+static const char *default_suffixes[] =
+  { " ", "\n", (const char *)NULL };
 
 /* If non-null, this contains the address of a function that the application
    wants called before trying the standard tilde expansions.  The function
    is called with the text sans tilde, and returns a malloc()'ed string
    which is the expansion, or a NULL pointer if the expansion fails. */
-CPFunction *tilde_expansion_preexpansion_hook = (CPFunction *)NULL;
+tilde_hook_func_t *tilde_expansion_preexpansion_hook = (tilde_hook_func_t *)NULL;
 
 /* If non-null, this contains the address of a function to call if the
    standard meaning for expanding a tilde fails.  The function is called
    with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
    which is the expansion, or a NULL pointer if there is no expansion. */
-CPFunction *tilde_expansion_failure_hook = (CPFunction *)NULL;
+tilde_hook_func_t *tilde_expansion_failure_hook = (tilde_hook_func_t *)NULL;
 
 /* When non-null, this is a NULL terminated array of strings which
    are duplicates for a tilde prefix.  Bash uses this to expand
    `=~' and `:~'. */
-char **tilde_additional_prefixes = default_prefixes;
+char **tilde_additional_prefixes = (char **)default_prefixes;
 
 /* When non-null, this is a NULL terminated array of strings which match
    the end of a username, instead of just "/".  Bash sets this to
    `:' and `=~'. */
-char **tilde_additional_suffixes = default_suffixes;
+char **tilde_additional_suffixes = (char **)default_suffixes;
+
+static int tilde_find_prefix PARAMS((const char *, int *));
+static int tilde_find_suffix PARAMS((const char *));
+static char *isolate_tilde_prefix PARAMS((const char *, int *));
+static char *glue_prefix_and_suffix PARAMS((char *, const char *, int));
 
 /* Find the start of a tilde expansion in STRING, and return the index of
    the tilde which starts the expansion.  Place the length of the text
    which identified this tilde starter in LEN, excluding the tilde itself. */
 static int
 tilde_find_prefix (string, len)
-     char *string;
+     const char *string;
      int *len;
 {
   register int i, j, string_len;
@@ -157,7 +155,7 @@ tilde_find_prefix (string, len)
    the character which ends the tilde definition.  */
 static int
 tilde_find_suffix (string)
-     char *string;
+     const char *string;
 {
   register int i, j, string_len;
   register char **suffixes;
@@ -186,16 +184,16 @@ tilde_find_suffix (string)
 /* Return a new string which is the result of tilde expanding STRING. */
 char *
 tilde_expand (string)
-     char *string;
+     const char *string;
 {
   char *result;
   int result_size, result_index;
 
   result_index = result_size = 0;
   if (result = strchr (string, '~'))
-    result = xmalloc (result_size = (strlen (string) + 16));
+    result = (char *)xmalloc (result_size = (strlen (string) + 16));
   else
-    result = xmalloc (result_size = (strlen (string) + 1));
+    result = (char *)xmalloc (result_size = (strlen (string) + 1));
 
   /* Scan through STRING expanding tildes as we come to them. */
   while (1)
@@ -209,7 +207,7 @@ tilde_expand (string)
 
       /* Copy the skipped text into the result. */
       if ((result_index + start + 1) > result_size)
-       result = xrealloc (result, 1 + (result_size += (start + 20)));
+       result = (char *)xrealloc (result, 1 + (result_size += (start + 20)));
 
       strncpy (result + result_index, string, start);
       result_index += start;
@@ -226,7 +224,7 @@ tilde_expand (string)
        break;
 
       /* Expand the entire tilde word, and copy it into RESULT. */
-      tilde_word = xmalloc (1 + end);
+      tilde_word = (char *)xmalloc (1 + end);
       strncpy (tilde_word, string, end);
       tilde_word[end] = '\0';
       string += end;
@@ -235,14 +233,14 @@ tilde_expand (string)
       free (tilde_word);
 
       len = strlen (expansion);
-#ifdef __CYGWIN32__
+#ifdef __CYGWIN__
       /* Fix for Cygwin to prevent ~user/xxx from expanding to //xxx when
-         $HOME for `user' is /.  On cygwin, // denotes a network drive. */
+        $HOME for `user' is /.  On cygwin, // denotes a network drive. */
       if (len > 1 || *expansion != '/' || *string != '/')
 #endif
        {
          if ((result_index + len + 1) > result_size)
-           result = xrealloc (result, 1 + (result_size += (len + 20)));
+           result = (char *)xrealloc (result, 1 + (result_size += (len + 20)));
 
          strcpy (result + result_index, expansion);
          result_index += len;
@@ -260,13 +258,13 @@ tilde_expand (string)
    the location it points to. */
 static char *
 isolate_tilde_prefix (fname, lenp)
-     char *fname;
+     const char *fname;
      int *lenp;
 {
   char *ret;
   int i;
 
-  ret = xmalloc (strlen (fname));
+  ret = (char *)xmalloc (strlen (fname));
 #if defined (__MSDOS__)
   for (i = 1; fname[i] && fname[i] != '/' && fname[i] != '\\'; i++)
 #else
@@ -283,7 +281,8 @@ isolate_tilde_prefix (fname, lenp)
    SUFFIND. */
 static char *
 glue_prefix_and_suffix (prefix, suffix, suffind)
-     char *prefix, *suffix;
+     char *prefix;
+     const char *suffix;
      int suffind;
 {
   char *ret;
@@ -291,7 +290,7 @@ glue_prefix_and_suffix (prefix, suffix, suffind)
 
   plen = (prefix && *prefix) ? strlen (prefix) : 0;
   slen = strlen (suffix + suffind);
-  ret = xmalloc (plen + slen + 1);
+  ret = (char *)xmalloc (plen + slen + 1);
   if (plen)
     strcpy (ret, prefix);
   strcpy (ret + plen, suffix + suffind);
@@ -303,7 +302,7 @@ glue_prefix_and_suffix (prefix, suffix, suffind)
    This always returns a newly-allocated string, never static storage. */
 char *
 tilde_expand_word (filename)
-     char *filename;
+     const char *filename;
 {
   char *dirname, *expansion, *username;
   int user_len;
@@ -321,12 +320,12 @@ tilde_expand_word (filename)
   if (filename[1] == '\0' || filename[1] == '/')
     {
       /* Prefix $HOME to the rest of the string. */
-      expansion = get_env_value ("HOME");
+      expansion = sh_get_env_value ("HOME");
 
       /* If there is no HOME variable, look up the directory in
         the password database. */
       if (expansion == 0)
-       expansion = get_home_dir ();
+       expansion = sh_get_home_dir ();
 
       return (glue_prefix_and_suffix (expansion, filename, 1));
     }
@@ -415,28 +414,28 @@ main (argc, argv)
 
 static void memory_error_and_abort ();
 
-static char *
+static void *
 xmalloc (bytes)
-     int bytes;
+     size_t bytes;
 {
-  char *temp = (char *)malloc (bytes);
+  void *temp = (char *)malloc (bytes);
 
   if (!temp)
     memory_error_and_abort ();
   return (temp);
 }
 
-static char *
+static void *
 xrealloc (pointer, bytes)
-     char *pointer;
+     void *pointer;
      int bytes;
 {
-  char *temp;
+  void *temp;
 
   if (!pointer)
-    temp = (char *)malloc (bytes);
+    temp = malloc (bytes);
   else
-    temp = (char *)realloc (pointer, bytes);
+    temp = realloc (pointer, bytes);
 
   if (!temp)
     memory_error_and_abort ();
index 7783fd6101a1d291900860a4c76cf9db114245c2..f8182c999d9b43c2b88cceb0f4142eb607b95154 100644 (file)
@@ -30,36 +30,29 @@ extern "C" {
 
 /* A function can be defined using prototypes and compile on both ANSI C
    and traditional C compilers with something like this:
-       extern char *func __P((char *, char *, int)); */
+       extern char *func PARAMS((char *, char *, int)); */
 
-#if !defined (__P)
+#if !defined (PARAMS)
 #  if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
-#    define __P(protos) protos
+#    define PARAMS(protos) protos
 #  else
-#    define __P(protos) ()
+#    define PARAMS(protos) ()
 #  endif
 #endif
 
-/* Function pointers can be declared as (Function *)foo. */
-#if !defined (_FUNCTION_DEF)
-#  define _FUNCTION_DEF
-typedef int Function ();
-typedef void VFunction ();
-typedef char *CPFunction ();
-typedef char **CPPFunction ();
-#endif /* _FUNCTION_DEF */
+typedef char *tilde_hook_func_t PARAMS((char *));
 
 /* If non-null, this contains the address of a function that the application
    wants called before trying the standard tilde expansions.  The function
    is called with the text sans tilde, and returns a malloc()'ed string
    which is the expansion, or a NULL pointer if the expansion fails. */
-extern CPFunction *tilde_expansion_preexpansion_hook;
+extern tilde_hook_func_t *tilde_expansion_preexpansion_hook;
 
 /* If non-null, this contains the address of a function to call if the
    standard meaning for expanding a tilde fails.  The function is called
    with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
    which is the expansion, or a NULL pointer if there is no expansion. */
-extern CPFunction *tilde_expansion_failure_hook;
+extern tilde_hook_func_t *tilde_expansion_failure_hook;
 
 /* When non-null, this is a NULL terminated array of strings which
    are duplicates for a tilde prefix.  Bash uses this to expand
@@ -72,11 +65,11 @@ extern char **tilde_additional_prefixes;
 extern char **tilde_additional_suffixes;
 
 /* Return a new string which is the result of tilde expanding STRING. */
-extern char *tilde_expand __P((char *));
+extern char *tilde_expand PARAMS((const char *));
 
 /* Do the work of tilde expansion on FILENAME.  FILENAME starts with a
    tilde.  If there is no expansion, call tilde_expansion_failure_hook. */
-extern char *tilde_expand_word __P((char *));
+extern char *tilde_expand_word PARAMS((const char *));
 
 #ifdef __cplusplus
 }
index f7f30d17d9d8dc48d99e7c4e50069d04e647933d..25c287b5a2df3df04c7d9fd98f1978949c6d7016 100644 (file)
@@ -48,8 +48,7 @@
 #include "history.h"
 
 #include "rlprivate.h"
-
-#define SWAP(s, e)  do { int t; t = s; s = e; e = t; } while (0)
+#include "xmalloc.h"
 
 /* Non-zero tells rl_delete_text and rl_insert_text to not add to
    the undo list. */
@@ -86,7 +85,7 @@ rl_add_undo (what, start, end, text)
 
 /* Free the existing undo list. */
 void
-free_undo_list ()
+rl_free_undo_list ()
 {
   while (rl_undo_list)
     {
@@ -107,17 +106,18 @@ int
 rl_do_undo ()
 {
   UNDO_LIST *release;
-  int waiting_for_begin = 0;
-  int start, end;
+  int waiting_for_begin, start, end;
 
 #define TRANS(i) ((i) == -1 ? rl_point : ((i) == -2 ? rl_end : (i)))
 
+  start = end = waiting_for_begin = 0;
   do
     {
       if (!rl_undo_list)
        return (0);
 
       _rl_doing_an_undo = 1;
+      RL_SETSTATE(RL_STATE_UNDOING);
 
       /* To better support vi-mode, a start or end value of -1 means
         rl_point, and a value of -2 means rl_end. */
@@ -152,11 +152,12 @@ rl_do_undo ()
          if (waiting_for_begin)
            waiting_for_begin--;
          else
-           ding ();
+           rl_ding ();
          break;
        }
 
       _rl_doing_an_undo = 0;
+      RL_UNSETSTATE(RL_STATE_UNDOING);
 
       release = rl_undo_list;
       rl_undo_list = rl_undo_list->next;
@@ -231,7 +232,7 @@ rl_revert_line (count, key)
      int count, key;
 {
   if (!rl_undo_list)
-    ding ();
+    rl_ding ();
   else
     {
       while (rl_undo_list)
@@ -254,7 +255,7 @@ rl_undo_command (count, key)
        count--;
       else
        {
-         ding ();
+         rl_ding ();
          break;
        }
     }
index be9e0a9869ac701d6c1c2523dbc4a26e2ec336d3..c7bd360e43cd3940922d163265ed8c0795d2a166 100644 (file)
@@ -55,8 +55,6 @@
 #include "rlprivate.h"
 #include "xmalloc.h"
 
-#define SWAP(s, e)  do { int t; t = s; s = e; e = t; } while (0)
-
 /* **************************************************************** */
 /*                                                                 */
 /*                     Utility Functions                           */
    in words, or 1 if it is. */
 
 int _rl_allow_pathname_alphabetic_chars = 0;
-static char *pathname_alphabetic_chars = "/-_=~.#$";
+static const char *pathname_alphabetic_chars = "/-_=~.#$";
 
 int
-alphabetic (c)
+rl_alphabetic (c)
      int c;
 {
   if (ALPHABETIC (c))
@@ -84,16 +82,16 @@ alphabetic (c)
 int
 _rl_abort_internal ()
 {
-  ding ();
+  rl_ding ();
   rl_clear_message ();
   _rl_init_argument ();
-  rl_pending_input = 0;
+  rl_clear_pending_input ();
 
-  _rl_defining_kbd_macro = 0;
-  while (_rl_executing_macro)
+  RL_UNSETSTATE (RL_STATE_MACRODEF);
+  while (rl_executing_macro)
     _rl_pop_executing_macro ();
 
-  rl_last_func = (Function *)NULL;
+  rl_last_func = (rl_command_func_t *)NULL;
   longjmp (readline_top_level, 1);
   return (0);
 }
@@ -113,7 +111,7 @@ rl_tty_status (count, key)
   ioctl (1, TIOCSTAT, (char *)0);
   rl_refresh_line (count, key);
 #else
-  ding ();
+  rl_ding ();
 #endif
   return 0;
 }
@@ -132,7 +130,7 @@ rl_copy_text (from, to)
     SWAP (from, to);
 
   length = to - from;
-  copy = xmalloc (1 + length);
+  copy = (char *)xmalloc (1 + length);
   strncpy (copy, rl_line_buffer + from, length);
   copy[length] = '\0';
   return (copy);
@@ -147,7 +145,7 @@ rl_extend_line_buffer (len)
   while (len >= rl_line_buffer_len)
     {
       rl_line_buffer_len += DEFAULT_BUFFER_SIZE;
-      rl_line_buffer = xrealloc (rl_line_buffer, rl_line_buffer_len);
+      rl_line_buffer = (char *)xrealloc (rl_line_buffer, rl_line_buffer_len);
     }
 
   _rl_set_the_line ();
@@ -193,7 +191,7 @@ rl_tilde_expand (ignore, key)
   if (rl_line_buffer[start] == '~')
     {
       len = end - start + 1;
-      temp = xmalloc (len + 1);
+      temp = (char *)xmalloc (len + 1);
       strncpy (temp, rl_line_buffer + start, len);
       temp[len] = '\0';
       homedir = tilde_expand (temp);
@@ -215,16 +213,51 @@ rl_tilde_expand (ignore, key)
    match in s1.  The compare is case insensitive. */
 char *
 _rl_strindex (s1, s2)
-     register char *s1, *s2;
+     register const char *s1, *s2;
 {
   register int i, l, len;
 
   for (i = 0, l = strlen (s2), len = strlen (s1); (len - i) >= l; i++)
     if (_rl_strnicmp (s1 + i, s2, l) == 0)
-      return (s1 + i);
+      return ((char *) (s1 + i));
   return ((char *)NULL);
 }
 
+#ifndef HAVE_STRPBRK
+/* Find the first occurrence in STRING1 of any character from STRING2.
+   Return a pointer to the character in STRING1. */
+char *
+_rl_strpbrk (string1, string2)
+     const char *string1, *string2;
+{
+  register const char *scan;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+  register int i, v;
+
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+  for (; *string1; string1++)
+    {
+      for (scan = string2; *scan; scan++)
+       {
+         if (*string1 == *scan)
+           return ((char *)string1);
+       }
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         v = _rl_get_char_len (string1, &ps);
+         if (v > 1)
+           string += v - 1;    /* -1 to account for auto-increment in loop */
+       }
+#endif
+    }
+  return ((char *)NULL);
+}
+#endif
+
 #if !defined (HAVE_STRCASECMP)
 /* Compare at most COUNT characters from string1 to string2.  Case
    doesn't matter. */
@@ -283,69 +316,23 @@ _rl_qsort_string_compare (s1, s2)
 #endif
 }
 
-/* Function equivalents for the macros defined in chartypes.h. */
-#undef _rl_uppercase_p
-int
-_rl_uppercase_p (c)
-     int c;
-{
-  return (isupper (c));
-}
-
-#undef _rl_lowercase_p
-int
-_rl_lowercase_p (c)
-     int c;
-{
-  return (islower (c));
-}
-
-#undef _rl_pure_alphabetic
-int
-_rl_pure_alphabetic (c)
-     int c;
-{
-  return (isupper (c) || islower (c));
-}
-
-#undef _rl_digit_p
-int
-_rl_digit_p (c)
-     int c;
-{
-  return (isdigit (c));
-}
+/* Function equivalents for the macros defined in chardefs.h. */
+#define FUNCTION_FOR_MACRO(f)  int (f) (c) int c; { return f (c); }
 
-#undef _rl_to_lower
-int
-_rl_to_lower (c)
-     int c;
-{
-  return (isupper (c) ? tolower (c) : c);
-}
-
-#undef _rl_to_upper
-int
-_rl_to_upper (c)
-     int c;
-{
-  return (islower (c) ? toupper (c) : c);
-}
-
-#undef _rl_digit_value
-int
-_rl_digit_value (c)
-     int c;
-{
-  return (isdigit (c) ? c - '0' : c);
-}
+FUNCTION_FOR_MACRO (_rl_digit_p)
+FUNCTION_FOR_MACRO (_rl_digit_value)
+FUNCTION_FOR_MACRO (_rl_lowercase_p)
+FUNCTION_FOR_MACRO (_rl_pure_alphabetic)
+FUNCTION_FOR_MACRO (_rl_to_lower)
+FUNCTION_FOR_MACRO (_rl_to_upper)
+FUNCTION_FOR_MACRO (_rl_uppercase_p)
 
 /* Backwards compatibility, now that savestring has been removed from
    all `public' readline header files. */
 #undef _rl_savestring
 char *
 _rl_savestring (s)
-     char *s;
+     const char *s;
 {
-  return ((char *)strcpy (xmalloc (1 + (int)strlen (s)), (s)));
+  return (strcpy ((char *)xmalloc (1 + (int)strlen (s)), (s)));
 }
index cf6724cef134b37b1621314839d546f01cf95579..53a67c674ce0c1fa90e3cc28d593d0b036a833cb 100644 (file)
@@ -33,429 +33,429 @@ extern KEYMAP_ENTRY_ARRAY vi_escape_keymap;
 /* The keymap arrays for handling vi mode. */
 KEYMAP_ENTRY_ARRAY vi_movement_keymap = {
   /* The regular control keys come first. */
-  { ISFUNC, (Function *)0x0 },         /* Control-@ */
-  { ISFUNC, (Function *)0x0 },         /* Control-a */
-  { ISFUNC, (Function *)0x0 },         /* Control-b */
-  { ISFUNC, (Function *)0x0 },         /* Control-c */
-  { ISFUNC, rl_vi_eof_maybe },         /* Control-d */
-  { ISFUNC, rl_emacs_editing_mode },   /* Control-e */
-  { ISFUNC, (Function *)0x0 },         /* Control-f */
-  { ISFUNC, rl_abort },                        /* Control-g */
-  { ISFUNC, rl_backward },             /* Control-h */
-  { ISFUNC, (Function *)0x0 },         /* Control-i */
-  { ISFUNC, rl_newline },              /* Control-j */
-  { ISFUNC, rl_kill_line },            /* Control-k */
-  { ISFUNC, rl_clear_screen },         /* Control-l */
-  { ISFUNC, rl_newline },              /* Control-m */
-  { ISFUNC, rl_get_next_history },     /* Control-n */
-  { ISFUNC, (Function *)0x0 },         /* Control-o */
-  { ISFUNC, rl_get_previous_history }, /* Control-p */
-  { ISFUNC, rl_quoted_insert },                /* Control-q */
-  { ISFUNC, rl_reverse_search_history }, /* Control-r */
-  { ISFUNC, rl_forward_search_history }, /* Control-s */
-  { ISFUNC, rl_transpose_chars },      /* Control-t */
-  { ISFUNC, rl_unix_line_discard },    /* Control-u */
-  { ISFUNC, rl_quoted_insert },                /* Control-v */
-  { ISFUNC, rl_unix_word_rubout },     /* Control-w */
-  { ISFUNC, (Function *)0x0 },         /* Control-x */
-  { ISFUNC, rl_yank },                 /* Control-y */
-  { ISFUNC, (Function *)0x0 },         /* Control-z */
-
-  { ISFUNC, (Function *)0x0 },         /* Control-[ */ /* vi_escape_keymap */
-  { ISFUNC, (Function *)0x0 },         /* Control-\ */
-  { ISFUNC, (Function *)0x0 },         /* Control-] */
-  { ISFUNC, (Function *)0x0 },         /* Control-^ */
-  { ISFUNC, rl_vi_undo },              /* Control-_ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-@ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-a */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-b */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-c */
+  { ISFUNC, rl_vi_eof_maybe },                 /* Control-d */
+  { ISFUNC, rl_emacs_editing_mode },           /* Control-e */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-f */
+  { ISFUNC, rl_abort },                                /* Control-g */
+  { ISFUNC, rl_backward_char },                        /* Control-h */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-i */
+  { ISFUNC, rl_newline },                      /* Control-j */
+  { ISFUNC, rl_kill_line },                    /* Control-k */
+  { ISFUNC, rl_clear_screen },                 /* Control-l */
+  { ISFUNC, rl_newline },                      /* Control-m */
+  { ISFUNC, rl_get_next_history },             /* Control-n */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-o */
+  { ISFUNC, rl_get_previous_history },         /* Control-p */
+  { ISFUNC, rl_quoted_insert },                        /* Control-q */
+  { ISFUNC, rl_reverse_search_history },       /* Control-r */
+  { ISFUNC, rl_forward_search_history },       /* Control-s */
+  { ISFUNC, rl_transpose_chars },              /* Control-t */
+  { ISFUNC, rl_unix_line_discard },            /* Control-u */
+  { ISFUNC, rl_quoted_insert },                        /* Control-v */
+  { ISFUNC, rl_unix_word_rubout },             /* Control-w */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-x */
+  { ISFUNC, rl_yank },                         /* Control-y */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-z */
+
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-[ */ /* vi_escape_keymap */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-\ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-] */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-^ */
+  { ISFUNC, rl_vi_undo },                      /* Control-_ */
 
   /* The start of printing characters. */
-  { ISFUNC, rl_forward },              /* SPACE */
-  { ISFUNC, (Function *)0x0 },         /* ! */
-  { ISFUNC, (Function *)0x0 },         /* " */
-  { ISFUNC, rl_insert_comment },       /* # */
-  { ISFUNC, rl_end_of_line },          /* $ */
-  { ISFUNC, rl_vi_match },             /* % */
-  { ISFUNC, rl_vi_tilde_expand },      /* & */
-  { ISFUNC, (Function *)0x0 },         /* ' */
-  { ISFUNC, (Function *)0x0 },         /* ( */
-  { ISFUNC, (Function *)0x0 },         /* ) */
-  { ISFUNC, rl_vi_complete },          /* * */
-  { ISFUNC, rl_get_next_history},      /* + */
-  { ISFUNC, rl_vi_char_search },       /* , */
-  { ISFUNC, rl_get_previous_history }, /* - */
-  { ISFUNC, rl_vi_redo },              /* . */
-  { ISFUNC, rl_vi_search },            /* / */
+  { ISFUNC, rl_forward_char },                 /* SPACE */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ! */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* " */
+  { ISFUNC, rl_insert_comment },               /* # */
+  { ISFUNC, rl_end_of_line },                  /* $ */
+  { ISFUNC, rl_vi_match },                     /* % */
+  { ISFUNC, rl_vi_tilde_expand },              /* & */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ' */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ( */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ) */
+  { ISFUNC, rl_vi_complete },                  /* * */
+  { ISFUNC, rl_get_next_history},              /* + */
+  { ISFUNC, rl_vi_char_search },               /* , */
+  { ISFUNC, rl_get_previous_history },         /* - */
+  { ISFUNC, rl_vi_redo },                      /* . */
+  { ISFUNC, rl_vi_search },                    /* / */
 
   /* Regular digits. */
-  { ISFUNC, rl_beg_of_line },          /* 0 */
-  { ISFUNC, rl_vi_arg_digit },         /* 1 */
-  { ISFUNC, rl_vi_arg_digit },         /* 2 */
-  { ISFUNC, rl_vi_arg_digit },         /* 3 */
-  { ISFUNC, rl_vi_arg_digit },         /* 4 */
-  { ISFUNC, rl_vi_arg_digit },         /* 5 */
-  { ISFUNC, rl_vi_arg_digit },         /* 6 */
-  { ISFUNC, rl_vi_arg_digit },         /* 7 */
-  { ISFUNC, rl_vi_arg_digit },         /* 8 */
-  { ISFUNC, rl_vi_arg_digit },         /* 9 */
+  { ISFUNC, rl_beg_of_line },                  /* 0 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 1 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 2 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 3 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 4 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 5 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 6 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 7 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 8 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 9 */
 
   /* A little more punctuation. */
-  { ISFUNC, (Function *)0x0 },         /* : */
-  { ISFUNC, rl_vi_char_search },       /* ; */
-  { ISFUNC, (Function *)0x0 },         /* < */
-  { ISFUNC, rl_vi_complete },          /* = */
-  { ISFUNC, (Function *)0x0 },         /* > */
-  { ISFUNC, rl_vi_search },            /* ? */
-  { ISFUNC, (Function *)0x0 },         /* @ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* : */
+  { ISFUNC, rl_vi_char_search },               /* ; */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* < */
+  { ISFUNC, rl_vi_complete },                  /* = */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* > */
+  { ISFUNC, rl_vi_search },                    /* ? */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* @ */
 
   /* Uppercase alphabet. */
-  { ISFUNC, rl_vi_append_eol },                /* A */
-  { ISFUNC, rl_vi_prev_word},          /* B */
-  { ISFUNC, rl_vi_change_to },         /* C */
-  { ISFUNC, rl_vi_delete_to },         /* D */
-  { ISFUNC, rl_vi_end_word },          /* E */
-  { ISFUNC, rl_vi_char_search },       /* F */
-  { ISFUNC, rl_vi_fetch_history },     /* G */
-  { ISFUNC, (Function *)0x0 },         /* H */
-  { ISFUNC, rl_vi_insert_beg },                /* I */
-  { ISFUNC, (Function *)0x0 },         /* J */
-  { ISFUNC, (Function *)0x0 },         /* K */
-  { ISFUNC, (Function *)0x0 },         /* L */
-  { ISFUNC, (Function *)0x0 },         /* M */
-  { ISFUNC, rl_vi_search_again },      /* N */
-  { ISFUNC, (Function *)0x0 },         /* O */
-  { ISFUNC, rl_vi_put },               /* P */
-  { ISFUNC, (Function *)0x0 },         /* Q */
-  { ISFUNC, rl_vi_replace },           /* R */
-  { ISFUNC, rl_vi_subst },             /* S */
-  { ISFUNC, rl_vi_char_search },       /* T */
-  { ISFUNC, rl_revert_line },          /* U */
-  { ISFUNC, (Function *)0x0 },         /* V */
-  { ISFUNC, rl_vi_next_word },         /* W */
-  { ISFUNC, rl_rubout },               /* X */
-  { ISFUNC, rl_vi_yank_to },           /* Y */
-  { ISFUNC, (Function *)0x0 },         /* Z */
+  { ISFUNC, rl_vi_append_eol },                        /* A */
+  { ISFUNC, rl_vi_prev_word},                  /* B */
+  { ISFUNC, rl_vi_change_to },                 /* C */
+  { ISFUNC, rl_vi_delete_to },                 /* D */
+  { ISFUNC, rl_vi_end_word },                  /* E */
+  { ISFUNC, rl_vi_char_search },               /* F */
+  { ISFUNC, rl_vi_fetch_history },             /* G */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* H */
+  { ISFUNC, rl_vi_insert_beg },                        /* I */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* J */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* K */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* L */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* M */
+  { ISFUNC, rl_vi_search_again },              /* N */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* O */
+  { ISFUNC, rl_vi_put },                       /* P */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Q */
+  { ISFUNC, rl_vi_replace },                   /* R */
+  { ISFUNC, rl_vi_subst },                     /* S */
+  { ISFUNC, rl_vi_char_search },               /* T */
+  { ISFUNC, rl_revert_line },                  /* U */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* V */
+  { ISFUNC, rl_vi_next_word },                 /* W */
+  { ISFUNC, rl_rubout },                       /* X */
+  { ISFUNC, rl_vi_yank_to },                   /* Y */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Z */
 
   /* Some more punctuation. */
-  { ISFUNC, (Function *)0x0 },         /* [ */
-  { ISFUNC, rl_vi_complete },          /* \ */
-  { ISFUNC, (Function *)0x0 },         /* ] */
-  { ISFUNC, rl_vi_first_print },       /* ^ */
-  { ISFUNC, rl_vi_yank_arg },          /* _ */
-  { ISFUNC, rl_vi_goto_mark },         /* ` */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* [ */
+  { ISFUNC, rl_vi_complete },                  /* \ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ] */
+  { ISFUNC, rl_vi_first_print },               /* ^ */
+  { ISFUNC, rl_vi_yank_arg },                  /* _ */
+  { ISFUNC, rl_vi_goto_mark },                 /* ` */
 
   /* Lowercase alphabet. */
-  { ISFUNC, rl_vi_append_mode },       /* a */
-  { ISFUNC, rl_vi_prev_word },         /* b */
-  { ISFUNC, rl_vi_change_to },         /* c */
-  { ISFUNC, rl_vi_delete_to },         /* d */
-  { ISFUNC, rl_vi_end_word },          /* e */
-  { ISFUNC, rl_vi_char_search },       /* f */
-  { ISFUNC, (Function *)0x0 },         /* g */
-  { ISFUNC, rl_backward },             /* h */
-  { ISFUNC, rl_vi_insertion_mode },    /* i */
-  { ISFUNC, rl_get_next_history },     /* j */
-  { ISFUNC, rl_get_previous_history }, /* k */
-  { ISFUNC, rl_forward },              /* l */
-  { ISFUNC, rl_vi_set_mark },          /* m */
-  { ISFUNC, rl_vi_search_again },      /* n */
-  { ISFUNC, (Function *)0x0 },         /* o */
-  { ISFUNC, rl_vi_put },               /* p */
-  { ISFUNC, (Function *)0x0 },         /* q */
-  { ISFUNC, rl_vi_change_char },       /* r */
-  { ISFUNC, rl_vi_subst },             /* s */
-  { ISFUNC, rl_vi_char_search },       /* t */
-  { ISFUNC, rl_vi_undo },              /* u */
-  { ISFUNC, (Function *)0x0 },         /* v */
-  { ISFUNC, rl_vi_next_word },         /* w */
-  { ISFUNC, rl_vi_delete },            /* x */
-  { ISFUNC, rl_vi_yank_to },           /* y */
-  { ISFUNC, (Function *)0x0 },         /* z */
+  { ISFUNC, rl_vi_append_mode },               /* a */
+  { ISFUNC, rl_vi_prev_word },                 /* b */
+  { ISFUNC, rl_vi_change_to },                 /* c */
+  { ISFUNC, rl_vi_delete_to },                 /* d */
+  { ISFUNC, rl_vi_end_word },                  /* e */
+  { ISFUNC, rl_vi_char_search },               /* f */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* g */
+  { ISFUNC, rl_backward_char },                        /* h */
+  { ISFUNC, rl_vi_insertion_mode },            /* i */
+  { ISFUNC, rl_get_next_history },             /* j */
+  { ISFUNC, rl_get_previous_history },         /* k */
+  { ISFUNC, rl_forward_char },                 /* l */
+  { ISFUNC, rl_vi_set_mark },                  /* m */
+  { ISFUNC, rl_vi_search_again },              /* n */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* o */
+  { ISFUNC, rl_vi_put },                       /* p */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* q */
+  { ISFUNC, rl_vi_change_char },               /* r */
+  { ISFUNC, rl_vi_subst },                     /* s */
+  { ISFUNC, rl_vi_char_search },               /* t */
+  { ISFUNC, rl_vi_undo },                      /* u */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* v */
+  { ISFUNC, rl_vi_next_word },                 /* w */
+  { ISFUNC, rl_vi_delete },                    /* x */
+  { ISFUNC, rl_vi_yank_to },                   /* y */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* z */
 
   /* Final punctuation. */
-  { ISFUNC, (Function *)0x0 },         /* { */
-  { ISFUNC, rl_vi_column },            /* | */
-  { ISFUNC, (Function *)0x0 },         /* } */
-  { ISFUNC, rl_vi_change_case },       /* ~ */
-  { ISFUNC, (Function *)0x0 },         /* RUBOUT */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* { */
+  { ISFUNC, rl_vi_column },                    /* | */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* } */
+  { ISFUNC, rl_vi_change_case },               /* ~ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* RUBOUT */
 
 #if KEYMAP_SIZE > 128
   /* Undefined keys. */
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 }
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 }
 #endif /* KEYMAP_SIZE > 128 */
 };
 
 
 KEYMAP_ENTRY_ARRAY vi_insertion_keymap = {
   /* The regular control keys come first. */
-  { ISFUNC, (Function *)0x0 },         /* Control-@ */
-  { ISFUNC, rl_insert },               /* Control-a */
-  { ISFUNC, rl_insert },               /* Control-b */
-  { ISFUNC, rl_insert },               /* Control-c */
-  { ISFUNC, rl_vi_eof_maybe },         /* Control-d */
-  { ISFUNC, rl_insert },               /* Control-e */
-  { ISFUNC, rl_insert },               /* Control-f */
-  { ISFUNC, rl_insert },               /* Control-g */
-  { ISFUNC, rl_rubout },               /* Control-h */
-  { ISFUNC, rl_complete },             /* Control-i */
-  { ISFUNC, rl_newline },              /* Control-j */
-  { ISFUNC, rl_insert },               /* Control-k */
-  { ISFUNC, rl_insert },               /* Control-l */
-  { ISFUNC, rl_newline },              /* Control-m */
-  { ISFUNC, rl_insert },               /* Control-n */
-  { ISFUNC, rl_insert },               /* Control-o */
-  { ISFUNC, rl_insert },               /* Control-p */
-  { ISFUNC, rl_insert },               /* Control-q */
-  { ISFUNC, rl_reverse_search_history }, /* Control-r */
-  { ISFUNC, rl_forward_search_history }, /* Control-s */
-  { ISFUNC, rl_transpose_chars },      /* Control-t */
-  { ISFUNC, rl_unix_line_discard },    /* Control-u */
-  { ISFUNC, rl_quoted_insert },                /* Control-v */
-  { ISFUNC, rl_unix_word_rubout },     /* Control-w */
-  { ISFUNC, rl_insert },               /* Control-x */
-  { ISFUNC, rl_yank },                 /* Control-y */
-  { ISFUNC, rl_insert },               /* Control-z */
-
-  { ISFUNC, rl_vi_movement_mode },     /* Control-[ */
-  { ISFUNC, rl_insert },               /* Control-\ */
-  { ISFUNC, rl_insert },               /* Control-] */
-  { ISFUNC, rl_insert },               /* Control-^ */
-  { ISFUNC, rl_vi_undo },              /* Control-_ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-@ */
+  { ISFUNC, rl_insert },                       /* Control-a */
+  { ISFUNC, rl_insert },                       /* Control-b */
+  { ISFUNC, rl_insert },                       /* Control-c */
+  { ISFUNC, rl_vi_eof_maybe },                 /* Control-d */
+  { ISFUNC, rl_insert },                       /* Control-e */
+  { ISFUNC, rl_insert },                       /* Control-f */
+  { ISFUNC, rl_insert },                       /* Control-g */
+  { ISFUNC, rl_rubout },                       /* Control-h */
+  { ISFUNC, rl_complete },                     /* Control-i */
+  { ISFUNC, rl_newline },                      /* Control-j */
+  { ISFUNC, rl_insert },                       /* Control-k */
+  { ISFUNC, rl_insert },                       /* Control-l */
+  { ISFUNC, rl_newline },                      /* Control-m */
+  { ISFUNC, rl_insert },                       /* Control-n */
+  { ISFUNC, rl_insert },                       /* Control-o */
+  { ISFUNC, rl_insert },                       /* Control-p */
+  { ISFUNC, rl_insert },                       /* Control-q */
+  { ISFUNC, rl_reverse_search_history },       /* Control-r */
+  { ISFUNC, rl_forward_search_history },       /* Control-s */
+  { ISFUNC, rl_transpose_chars },              /* Control-t */
+  { ISFUNC, rl_unix_line_discard },            /* Control-u */
+  { ISFUNC, rl_quoted_insert },                        /* Control-v */
+  { ISFUNC, rl_unix_word_rubout },             /* Control-w */
+  { ISFUNC, rl_insert },                       /* Control-x */
+  { ISFUNC, rl_yank },                         /* Control-y */
+  { ISFUNC, rl_insert },                       /* Control-z */
+
+  { ISFUNC, rl_vi_movement_mode },             /* Control-[ */
+  { ISFUNC, rl_insert },                       /* Control-\ */
+  { ISFUNC, rl_insert },                       /* Control-] */
+  { ISFUNC, rl_insert },                       /* Control-^ */
+  { ISFUNC, rl_vi_undo },                      /* Control-_ */
 
   /* The start of printing characters. */
-  { ISFUNC, rl_insert },               /* SPACE */
-  { ISFUNC, rl_insert },               /* ! */
-  { ISFUNC, rl_insert },               /* " */
-  { ISFUNC, rl_insert },               /* # */
-  { ISFUNC, rl_insert },               /* $ */
-  { ISFUNC, rl_insert },               /* % */
-  { ISFUNC, rl_insert },               /* & */
-  { ISFUNC, rl_insert },               /* ' */
-  { ISFUNC, rl_insert },               /* ( */
-  { ISFUNC, rl_insert },               /* ) */
-  { ISFUNC, rl_insert },               /* * */
-  { ISFUNC, rl_insert },               /* + */
-  { ISFUNC, rl_insert },               /* , */
-  { ISFUNC, rl_insert },               /* - */
-  { ISFUNC, rl_insert },               /* . */
-  { ISFUNC, rl_insert },               /* / */
+  { ISFUNC, rl_insert },                       /* SPACE */
+  { ISFUNC, rl_insert },                       /* ! */
+  { ISFUNC, rl_insert },                       /* " */
+  { ISFUNC, rl_insert },                       /* # */
+  { ISFUNC, rl_insert },                       /* $ */
+  { ISFUNC, rl_insert },                       /* % */
+  { ISFUNC, rl_insert },                       /* & */
+  { ISFUNC, rl_insert },                       /* ' */
+  { ISFUNC, rl_insert },                       /* ( */
+  { ISFUNC, rl_insert },                       /* ) */
+  { ISFUNC, rl_insert },                       /* * */
+  { ISFUNC, rl_insert },                       /* + */
+  { ISFUNC, rl_insert },                       /* , */
+  { ISFUNC, rl_insert },                       /* - */
+  { ISFUNC, rl_insert },                       /* . */
+  { ISFUNC, rl_insert },                       /* / */
 
   /* Regular digits. */
-  { ISFUNC, rl_insert },               /* 0 */
-  { ISFUNC, rl_insert },               /* 1 */
-  { ISFUNC, rl_insert },               /* 2 */
-  { ISFUNC, rl_insert },               /* 3 */
-  { ISFUNC, rl_insert },               /* 4 */
-  { ISFUNC, rl_insert },               /* 5 */
-  { ISFUNC, rl_insert },               /* 6 */
-  { ISFUNC, rl_insert },               /* 7 */
-  { ISFUNC, rl_insert },               /* 8 */
-  { ISFUNC, rl_insert },               /* 9 */
+  { ISFUNC, rl_insert },                       /* 0 */
+  { ISFUNC, rl_insert },                       /* 1 */
+  { ISFUNC, rl_insert },                       /* 2 */
+  { ISFUNC, rl_insert },                       /* 3 */
+  { ISFUNC, rl_insert },                       /* 4 */
+  { ISFUNC, rl_insert },                       /* 5 */
+  { ISFUNC, rl_insert },                       /* 6 */
+  { ISFUNC, rl_insert },                       /* 7 */
+  { ISFUNC, rl_insert },                       /* 8 */
+  { ISFUNC, rl_insert },                       /* 9 */
 
   /* A little more punctuation. */
-  { ISFUNC, rl_insert },               /* : */
-  { ISFUNC, rl_insert },               /* ; */
-  { ISFUNC, rl_insert },               /* < */
-  { ISFUNC, rl_insert },               /* = */
-  { ISFUNC, rl_insert },               /* > */
-  { ISFUNC, rl_insert },               /* ? */
-  { ISFUNC, rl_insert },               /* @ */
+  { ISFUNC, rl_insert },                       /* : */
+  { ISFUNC, rl_insert },                       /* ; */
+  { ISFUNC, rl_insert },                       /* < */
+  { ISFUNC, rl_insert },                       /* = */
+  { ISFUNC, rl_insert },                       /* > */
+  { ISFUNC, rl_insert },                       /* ? */
+  { ISFUNC, rl_insert },                       /* @ */
 
   /* Uppercase alphabet. */
-  { ISFUNC, rl_insert },               /* A */
-  { ISFUNC, rl_insert },               /* B */
-  { ISFUNC, rl_insert },               /* C */
-  { ISFUNC, rl_insert },               /* D */
-  { ISFUNC, rl_insert },               /* E */
-  { ISFUNC, rl_insert },               /* F */
-  { ISFUNC, rl_insert },               /* G */
-  { ISFUNC, rl_insert },               /* H */
-  { ISFUNC, rl_insert },               /* I */
-  { ISFUNC, rl_insert },               /* J */
-  { ISFUNC, rl_insert },               /* K */
-  { ISFUNC, rl_insert },               /* L */
-  { ISFUNC, rl_insert },               /* M */
-  { ISFUNC, rl_insert },               /* N */
-  { ISFUNC, rl_insert },               /* O */
-  { ISFUNC, rl_insert },               /* P */
-  { ISFUNC, rl_insert },               /* Q */
-  { ISFUNC, rl_insert },               /* R */
-  { ISFUNC, rl_insert },               /* S */
-  { ISFUNC, rl_insert },               /* T */
-  { ISFUNC, rl_insert },               /* U */
-  { ISFUNC, rl_insert },               /* V */
-  { ISFUNC, rl_insert },               /* W */
-  { ISFUNC, rl_insert },               /* X */
-  { ISFUNC, rl_insert },               /* Y */
-  { ISFUNC, rl_insert },               /* Z */
+  { ISFUNC, rl_insert },                       /* A */
+  { ISFUNC, rl_insert },                       /* B */
+  { ISFUNC, rl_insert },                       /* C */
+  { ISFUNC, rl_insert },                       /* D */
+  { ISFUNC, rl_insert },                       /* E */
+  { ISFUNC, rl_insert },                       /* F */
+  { ISFUNC, rl_insert },                       /* G */
+  { ISFUNC, rl_insert },                       /* H */
+  { ISFUNC, rl_insert },                       /* I */
+  { ISFUNC, rl_insert },                       /* J */
+  { ISFUNC, rl_insert },                       /* K */
+  { ISFUNC, rl_insert },                       /* L */
+  { ISFUNC, rl_insert },                       /* M */
+  { ISFUNC, rl_insert },                       /* N */
+  { ISFUNC, rl_insert },                       /* O */
+  { ISFUNC, rl_insert },                       /* P */
+  { ISFUNC, rl_insert },                       /* Q */
+  { ISFUNC, rl_insert },                       /* R */
+  { ISFUNC, rl_insert },                       /* S */
+  { ISFUNC, rl_insert },                       /* T */
+  { ISFUNC, rl_insert },                       /* U */
+  { ISFUNC, rl_insert },                       /* V */
+  { ISFUNC, rl_insert },                       /* W */
+  { ISFUNC, rl_insert },                       /* X */
+  { ISFUNC, rl_insert },                       /* Y */
+  { ISFUNC, rl_insert },                       /* Z */
 
   /* Some more punctuation. */
-  { ISFUNC, rl_insert },               /* [ */
-  { ISFUNC, rl_insert },               /* \ */
-  { ISFUNC, rl_insert },               /* ] */
-  { ISFUNC, rl_insert },               /* ^ */
-  { ISFUNC, rl_insert },               /* _ */
-  { ISFUNC, rl_insert },               /* ` */
+  { ISFUNC, rl_insert },                       /* [ */
+  { ISFUNC, rl_insert },                       /* \ */
+  { ISFUNC, rl_insert },                       /* ] */
+  { ISFUNC, rl_insert },                       /* ^ */
+  { ISFUNC, rl_insert },                       /* _ */
+  { ISFUNC, rl_insert },                       /* ` */
 
   /* Lowercase alphabet. */
-  { ISFUNC, rl_insert },               /* a */
-  { ISFUNC, rl_insert },               /* b */
-  { ISFUNC, rl_insert },               /* c */
-  { ISFUNC, rl_insert },               /* d */
-  { ISFUNC, rl_insert },               /* e */
-  { ISFUNC, rl_insert },               /* f */
-  { ISFUNC, rl_insert },               /* g */
-  { ISFUNC, rl_insert },               /* h */
-  { ISFUNC, rl_insert },               /* i */
-  { ISFUNC, rl_insert },               /* j */
-  { ISFUNC, rl_insert },               /* k */
-  { ISFUNC, rl_insert },               /* l */
-  { ISFUNC, rl_insert },               /* m */
-  { ISFUNC, rl_insert },               /* n */
-  { ISFUNC, rl_insert },               /* o */
-  { ISFUNC, rl_insert },               /* p */
-  { ISFUNC, rl_insert },               /* q */
-  { ISFUNC, rl_insert },               /* r */
-  { ISFUNC, rl_insert },               /* s */
-  { ISFUNC, rl_insert },               /* t */
-  { ISFUNC, rl_insert },               /* u */
-  { ISFUNC, rl_insert },               /* v */
-  { ISFUNC, rl_insert },               /* w */
-  { ISFUNC, rl_insert },               /* x */
-  { ISFUNC, rl_insert },               /* y */
-  { ISFUNC, rl_insert },               /* z */
+  { ISFUNC, rl_insert },                       /* a */
+  { ISFUNC, rl_insert },                       /* b */
+  { ISFUNC, rl_insert },                       /* c */
+  { ISFUNC, rl_insert },                       /* d */
+  { ISFUNC, rl_insert },                       /* e */
+  { ISFUNC, rl_insert },                       /* f */
+  { ISFUNC, rl_insert },                       /* g */
+  { ISFUNC, rl_insert },                       /* h */
+  { ISFUNC, rl_insert },                       /* i */
+  { ISFUNC, rl_insert },                       /* j */
+  { ISFUNC, rl_insert },                       /* k */
+  { ISFUNC, rl_insert },                       /* l */
+  { ISFUNC, rl_insert },                       /* m */
+  { ISFUNC, rl_insert },                       /* n */
+  { ISFUNC, rl_insert },                       /* o */
+  { ISFUNC, rl_insert },                       /* p */
+  { ISFUNC, rl_insert },                       /* q */
+  { ISFUNC, rl_insert },                       /* r */
+  { ISFUNC, rl_insert },                       /* s */
+  { ISFUNC, rl_insert },                       /* t */
+  { ISFUNC, rl_insert },                       /* u */
+  { ISFUNC, rl_insert },                       /* v */
+  { ISFUNC, rl_insert },                       /* w */
+  { ISFUNC, rl_insert },                       /* x */
+  { ISFUNC, rl_insert },                       /* y */
+  { ISFUNC, rl_insert },                       /* z */
 
   /* Final punctuation. */
-  { ISFUNC, rl_insert },               /* { */
-  { ISFUNC, rl_insert },               /* | */
-  { ISFUNC, rl_insert },               /* } */
-  { ISFUNC, rl_insert },               /* ~ */
-  { ISFUNC, rl_rubout },               /* RUBOUT */
+  { ISFUNC, rl_insert },                       /* { */
+  { ISFUNC, rl_insert },                       /* | */
+  { ISFUNC, rl_insert },                       /* } */
+  { ISFUNC, rl_insert },                       /* ~ */
+  { ISFUNC, rl_rubout },                       /* RUBOUT */
 
 #if KEYMAP_SIZE > 128
   /* Pure 8-bit characters (128 - 159).
@@ -598,280 +598,280 @@ KEYMAP_ENTRY_ARRAY vi_insertion_keymap = {
 #if 0
 KEYMAP_ENTRY_ARRAY vi_escape_keymap = {
   /* The regular control keys come first. */
-  { ISFUNC, (Function *)0x0 },         /* Control-@ */
-  { ISFUNC, (Function *)0x0 },         /* Control-a */
-  { ISFUNC, (Function *)0x0 },         /* Control-b */
-  { ISFUNC, (Function *)0x0 },         /* Control-c */
-  { ISFUNC, (Function *)0x0 },         /* Control-d */
-  { ISFUNC, (Function *)0x0 },         /* Control-e */
-  { ISFUNC, (Function *)0x0 },         /* Control-f */
-  { ISFUNC, (Function *)0x0 },         /* Control-g */
-  { ISFUNC, (Function *)0x0 },         /* Control-h */
-  { ISFUNC, rl_tab_insert},            /* Control-i */
-  { ISFUNC, rl_emacs_editing_mode},    /* Control-j */
-  { ISFUNC, rl_kill_line },            /* Control-k */
-  { ISFUNC, (Function *)0x0 },         /* Control-l */
-  { ISFUNC, rl_emacs_editing_mode},    /* Control-m */
-  { ISFUNC, (Function *)0x0 },         /* Control-n */
-  { ISFUNC, (Function *)0x0 },         /* Control-o */
-  { ISFUNC, (Function *)0x0 },         /* Control-p */
-  { ISFUNC, (Function *)0x0 },         /* Control-q */
-  { ISFUNC, (Function *)0x0 },         /* Control-r */
-  { ISFUNC, (Function *)0x0 },         /* Control-s */
-  { ISFUNC, (Function *)0x0 },         /* Control-t */
-  { ISFUNC, (Function *)0x0 },         /* Control-u */
-  { ISFUNC, (Function *)0x0 },         /* Control-v */
-  { ISFUNC, (Function *)0x0 },         /* Control-w */
-  { ISFUNC, (Function *)0x0 },         /* Control-x */
-  { ISFUNC, (Function *)0x0 },         /* Control-y */
-  { ISFUNC, (Function *)0x0 },         /* Control-z */
-
-  { ISFUNC, rl_vi_movement_mode },     /* Control-[ */
-  { ISFUNC, (Function *)0x0 },         /* Control-\ */
-  { ISFUNC, (Function *)0x0 },         /* Control-] */
-  { ISFUNC, (Function *)0x0 },         /* Control-^ */
-  { ISFUNC, rl_vi_undo },              /* Control-_ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-@ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-a */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-b */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-c */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-d */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-e */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-f */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-g */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-h */
+  { ISFUNC, rl_tab_insert},                    /* Control-i */
+  { ISFUNC, rl_emacs_editing_mode},            /* Control-j */
+  { ISFUNC, rl_kill_line },                    /* Control-k */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-l */
+  { ISFUNC, rl_emacs_editing_mode},            /* Control-m */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-n */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-o */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-p */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-q */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-r */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-s */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-t */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-u */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-v */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-w */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-x */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-y */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-z */
+
+  { ISFUNC, rl_vi_movement_mode },             /* Control-[ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-\ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-] */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* Control-^ */
+  { ISFUNC, rl_vi_undo },                      /* Control-_ */
 
   /* The start of printing characters. */
-  { ISFUNC, (Function *)0x0 },         /* SPACE */
-  { ISFUNC, (Function *)0x0 },         /* ! */
-  { ISFUNC, (Function *)0x0 },         /* " */
-  { ISFUNC, (Function *)0x0 },         /* # */
-  { ISFUNC, (Function *)0x0 },         /* $ */
-  { ISFUNC, (Function *)0x0 },         /* % */
-  { ISFUNC, (Function *)0x0 },         /* & */
-  { ISFUNC, (Function *)0x0 },         /* ' */
-  { ISFUNC, (Function *)0x0 },         /* ( */
-  { ISFUNC, (Function *)0x0 },         /* ) */
-  { ISFUNC, (Function *)0x0 },         /* * */
-  { ISFUNC, (Function *)0x0 },         /* + */
-  { ISFUNC, (Function *)0x0 },         /* , */
-  { ISFUNC, (Function *)0x0 },         /* - */
-  { ISFUNC, (Function *)0x0 },         /* . */
-  { ISFUNC, (Function *)0x0 },         /* / */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* SPACE */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ! */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* " */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* # */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* $ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* % */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* & */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ' */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ( */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ) */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* * */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* + */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* , */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* - */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* . */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* / */
 
   /* Regular digits. */
-  { ISFUNC, rl_vi_arg_digit },         /* 0 */
-  { ISFUNC, rl_vi_arg_digit },         /* 1 */
-  { ISFUNC, rl_vi_arg_digit },         /* 2 */
-  { ISFUNC, rl_vi_arg_digit },         /* 3 */
-  { ISFUNC, rl_vi_arg_digit },         /* 4 */
-  { ISFUNC, rl_vi_arg_digit },         /* 5 */
-  { ISFUNC, rl_vi_arg_digit },         /* 6 */
-  { ISFUNC, rl_vi_arg_digit },         /* 7 */
-  { ISFUNC, rl_vi_arg_digit },         /* 8 */
-  { ISFUNC, rl_vi_arg_digit },         /* 9 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 0 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 1 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 2 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 3 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 4 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 5 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 6 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 7 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 8 */
+  { ISFUNC, rl_vi_arg_digit },                 /* 9 */
 
   /* A little more punctuation. */
-  { ISFUNC, (Function *)0x0 },         /* : */
-  { ISFUNC, (Function *)0x0 },         /* ; */
-  { ISFUNC, (Function *)0x0 },         /* < */
-  { ISFUNC, (Function *)0x0 },         /* = */
-  { ISFUNC, (Function *)0x0 },         /* > */
-  { ISFUNC, (Function *)0x0 },         /* ? */
-  { ISFUNC, (Function *)0x0 },         /* @ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* : */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ; */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* < */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* = */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* > */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ? */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* @ */
 
   /* Uppercase alphabet. */
-  { ISFUNC, rl_do_lowercase_version }, /* A */
-  { ISFUNC, rl_do_lowercase_version }, /* B */
-  { ISFUNC, rl_do_lowercase_version }, /* C */
-  { ISFUNC, rl_do_lowercase_version }, /* D */
-  { ISFUNC, rl_do_lowercase_version }, /* E */
-  { ISFUNC, rl_do_lowercase_version }, /* F */
-  { ISFUNC, rl_do_lowercase_version }, /* G */
-  { ISFUNC, rl_do_lowercase_version }, /* H */
-  { ISFUNC, rl_do_lowercase_version }, /* I */
-  { ISFUNC, rl_do_lowercase_version }, /* J */
-  { ISFUNC, rl_do_lowercase_version }, /* K */
-  { ISFUNC, rl_do_lowercase_version }, /* L */
-  { ISFUNC, rl_do_lowercase_version }, /* M */
-  { ISFUNC, rl_do_lowercase_version }, /* N */
-  { ISFUNC, rl_do_lowercase_version }, /* O */
-  { ISFUNC, rl_do_lowercase_version }, /* P */
-  { ISFUNC, rl_do_lowercase_version }, /* Q */
-  { ISFUNC, rl_do_lowercase_version }, /* R */
-  { ISFUNC, rl_do_lowercase_version }, /* S */
-  { ISFUNC, rl_do_lowercase_version }, /* T */
-  { ISFUNC, rl_do_lowercase_version }, /* U */
-  { ISFUNC, rl_do_lowercase_version }, /* V */
-  { ISFUNC, rl_do_lowercase_version }, /* W */
-  { ISFUNC, rl_do_lowercase_version }, /* X */
-  { ISFUNC, rl_do_lowercase_version }, /* Y */
-  { ISFUNC, rl_do_lowercase_version }, /* Z */
+  { ISFUNC, rl_do_lowercase_version },         /* A */
+  { ISFUNC, rl_do_lowercase_version },         /* B */
+  { ISFUNC, rl_do_lowercase_version },         /* C */
+  { ISFUNC, rl_do_lowercase_version },         /* D */
+  { ISFUNC, rl_do_lowercase_version },         /* E */
+  { ISFUNC, rl_do_lowercase_version },         /* F */
+  { ISFUNC, rl_do_lowercase_version },         /* G */
+  { ISFUNC, rl_do_lowercase_version },         /* H */
+  { ISFUNC, rl_do_lowercase_version },         /* I */
+  { ISFUNC, rl_do_lowercase_version },         /* J */
+  { ISFUNC, rl_do_lowercase_version },         /* K */
+  { ISFUNC, rl_do_lowercase_version },         /* L */
+  { ISFUNC, rl_do_lowercase_version },         /* M */
+  { ISFUNC, rl_do_lowercase_version },         /* N */
+  { ISFUNC, rl_do_lowercase_version },         /* O */
+  { ISFUNC, rl_do_lowercase_version },         /* P */
+  { ISFUNC, rl_do_lowercase_version },         /* Q */
+  { ISFUNC, rl_do_lowercase_version },         /* R */
+  { ISFUNC, rl_do_lowercase_version },         /* S */
+  { ISFUNC, rl_do_lowercase_version },         /* T */
+  { ISFUNC, rl_do_lowercase_version },         /* U */
+  { ISFUNC, rl_do_lowercase_version },         /* V */
+  { ISFUNC, rl_do_lowercase_version },         /* W */
+  { ISFUNC, rl_do_lowercase_version },         /* X */
+  { ISFUNC, rl_do_lowercase_version },         /* Y */
+  { ISFUNC, rl_do_lowercase_version },         /* Z */
 
   /* Some more punctuation. */
-  { ISFUNC, rl_arrow_keys },           /* [ */
-  { ISFUNC, (Function *)0x0 },         /* \ */
-  { ISFUNC, (Function *)0x0 },         /* ] */
-  { ISFUNC, (Function *)0x0 },         /* ^ */
-  { ISFUNC, (Function *)0x0 },         /* _ */
-  { ISFUNC, (Function *)0x0 },         /* ` */
+  { ISFUNC, rl_arrow_keys },                   /* [ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* \ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ] */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ^ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* _ */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ` */
 
   /* Lowercase alphabet. */
-  { ISFUNC, (Function *)0x0 },         /* a */
-  { ISFUNC, (Function *)0x0 },         /* b */
-  { ISFUNC, (Function *)0x0 },         /* c */
-  { ISFUNC, (Function *)0x0 },         /* d */
-  { ISFUNC, (Function *)0x0 },         /* e */
-  { ISFUNC, (Function *)0x0 },         /* f */
-  { ISFUNC, (Function *)0x0 },         /* g */
-  { ISFUNC, (Function *)0x0 },         /* h */
-  { ISFUNC, (Function *)0x0 },         /* i */
-  { ISFUNC, (Function *)0x0 },         /* j */
-  { ISFUNC, (Function *)0x0 },         /* k */
-  { ISFUNC, (Function *)0x0 },         /* l */
-  { ISFUNC, (Function *)0x0 },         /* m */
-  { ISFUNC, (Function *)0x0 },         /* n */
-  { ISFUNC, rl_arrow_keys },           /* o */
-  { ISFUNC, (Function *)0x0 },         /* p */
-  { ISFUNC, (Function *)0x0 },         /* q */
-  { ISFUNC, (Function *)0x0 },         /* r */
-  { ISFUNC, (Function *)0x0 },         /* s */
-  { ISFUNC, (Function *)0x0 },         /* t */
-  { ISFUNC, (Function *)0x0 },         /* u */
-  { ISFUNC, (Function *)0x0 },         /* v */
-  { ISFUNC, (Function *)0x0 },         /* w */
-  { ISFUNC, (Function *)0x0 },         /* x */
-  { ISFUNC, (Function *)0x0 },         /* y */
-  { ISFUNC, (Function *)0x0 },         /* z */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* a */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* b */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* c */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* d */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* e */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* f */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* g */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* h */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* i */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* j */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* k */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* l */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* m */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* n */
+  { ISFUNC, rl_arrow_keys },                   /* o */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* p */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* q */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* r */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* s */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* t */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* u */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* v */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* w */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* x */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* y */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* z */
 
   /* Final punctuation. */
-  { ISFUNC, (Function *)0x0 },         /* { */
-  { ISFUNC, (Function *)0x0 },         /* | */
-  { ISFUNC, (Function *)0x0 },         /* } */
-  { ISFUNC, (Function *)0x0 },         /* ~ */
-  { ISFUNC, rl_backward_kill_word },   /* RUBOUT */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* { */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* | */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* } */
+  { ISFUNC, (rl_command_func_t *)0x0 },                /* ~ */
+  { ISFUNC, rl_backward_kill_word },           /* RUBOUT */
 
 #if KEYMAP_SIZE > 128
   /* Undefined keys. */
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 },
-  { ISFUNC, (Function *)0x0 }
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 },
+  { ISFUNC, (rl_command_func_t *)0x0 }
 #endif /* KEYMAP_SIZE > 128 */
 };
 #endif
index be7f949643427318fd8afd7a4de5778728da8981..5d146b3f705604d4668f85c722a2387d31a0b7ac 100644 (file)
 
 /* Some standard library routines. */
 #include "rldefs.h"
+#include "rlmbutil.h"
+
 #include "readline.h"
 #include "history.h"
 
 #include "rlprivate.h"
 #include "xmalloc.h"
 
-#ifndef _rl_digit_p
-#define _rl_digit_p(c)  ((c) >= '0' && (c) <= '9')
-#endif
-
-#ifndef _rl_digit_value
-#define _rl_digit_value(c) ((c) - '0')
-#endif
-
 #ifndef member
 #define member(c, s) ((c) ? (char *)strchr ((s), (c)) != (char *)NULL : 0)
 #endif
 
-#ifndef isident
-#define isident(c) ((_rl_pure_alphabetic (c) || _rl_digit_p (c) || c == '_'))
-#endif
-
-#ifndef exchange
-#define exchange(x, y) do {int temp = x; x = y; y = temp;} while (0)
-#endif
-
 /* Non-zero means enter insertion mode. */
 static int _rl_vi_doing_insert;
 
 /* Command keys which do movement for xxx_to commands. */
-static char *vi_motion = " hl^$0ftFt;,%wbeWBE|";
+static const char *vi_motion = " hl^$0ftFT;,%wbeWBE|";
 
 /* Keymap used for vi replace characters.  Created dynamically since
    rarely used. */
@@ -101,7 +87,11 @@ static int _rl_vi_last_command = 'i';       /* default `.' puts you in insert mode */
 static int _rl_vi_last_repeat = 1;
 static int _rl_vi_last_arg_sign = 1;
 static int _rl_vi_last_motion;
+#if defined (HANDLE_MULTIBYTE)
+static char _rl_vi_last_search_mbchar[MB_LEN_MAX];
+#else
 static int _rl_vi_last_search_char;
+#endif
 static int _rl_vi_last_replacement;
 
 static int _rl_vi_last_key_before_insert;
@@ -109,12 +99,14 @@ static int _rl_vi_last_key_before_insert;
 static int vi_redoing;
 
 /* Text modification commands.  These are the `redoable' commands. */
-static char *vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~";
+static const char *vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~";
 
 /* Arrays for the saved marks. */
-static int vi_mark_chars[27];
+static int vi_mark_chars['z' - 'a' + 1];
 
-static int rl_digit_loop1 __P((void));
+static void _rl_vi_stuff_insert PARAMS((int));
+static void _rl_vi_save_insert PARAMS((UNDO_LIST *));
+static int rl_digit_loop1 PARAMS((void));
 
 void
 _rl_vi_initialize_line ()
@@ -168,12 +160,15 @@ int
 rl_vi_redo (count, c)
      int count, c;
 {
+  int r;
+
   if (!rl_explicit_arg)
     {
       rl_numeric_arg = _rl_vi_last_repeat;
       rl_arg_sign = _rl_vi_last_arg_sign;
     }
 
+  r = 0;
   vi_redoing = 1;
   /* If we're redoing an insert with `i', stuff in the inserted text
      and do not go into insertion mode. */
@@ -185,10 +180,10 @@ rl_vi_redo (count, c)
        rl_point--;
     }
   else
-    _rl_dispatch (_rl_vi_last_command, _rl_keymap);
+    r = _rl_dispatch (_rl_vi_last_command, _rl_keymap);
   vi_redoing = 0;
 
-  return (0);
+  return (r);
 }
 
 /* A placeholder for further expansion. */
@@ -274,7 +269,7 @@ rl_vi_search (count, key)
       break;
 
     default:
-      ding ();
+      rl_ding ();
       break;
     }
   return (0);
@@ -330,7 +325,7 @@ rl_vi_prev_word (count, key)
 
   if (rl_point == 0)
     {
-      ding ();
+      rl_ding ();
       return (0);
     }
 
@@ -352,7 +347,7 @@ rl_vi_next_word (count, key)
 
   if (rl_point >= (rl_end - 1))
     {
-      ding ();
+      rl_ding ();
       return (0);
     }
 
@@ -370,7 +365,7 @@ rl_vi_end_word (count, key)
 {
   if (count < 0)
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
 
@@ -460,14 +455,14 @@ rl_vi_fword (count, ignore)
   while (count-- && rl_point < (rl_end - 1))
     {
       /* Move to white space (really non-identifer). */
-      if (isident (rl_line_buffer[rl_point]))
+      if (_rl_isident (rl_line_buffer[rl_point]))
        {
-         while (isident (rl_line_buffer[rl_point]) && rl_point < rl_end)
+         while (_rl_isident (rl_line_buffer[rl_point]) && rl_point < rl_end)
            rl_point++;
        }
       else /* if (!whitespace (rl_line_buffer[rl_point])) */
        {
-         while (!isident (rl_line_buffer[rl_point]) &&
+         while (!_rl_isident (rl_line_buffer[rl_point]) &&
                 !whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
            rl_point++;
        }
@@ -497,9 +492,9 @@ rl_vi_bword (count, ignore)
         back so we don't get messed up by the rl_point++ down there in
         the while loop.  Without this code, words like `l;' screw up the
         function. */
-      last_is_ident = isident (rl_line_buffer[rl_point - 1]);
-      if ((isident (rl_line_buffer[rl_point]) && !last_is_ident) ||
-         (!isident (rl_line_buffer[rl_point]) && last_is_ident))
+      last_is_ident = _rl_isident (rl_line_buffer[rl_point - 1]);
+      if ((_rl_isident (rl_line_buffer[rl_point]) && !last_is_ident) ||
+         (!_rl_isident (rl_line_buffer[rl_point]) && last_is_ident))
        rl_point--;
 
       while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
@@ -507,10 +502,10 @@ rl_vi_bword (count, ignore)
 
       if (rl_point > 0)
        {
-         if (isident (rl_line_buffer[rl_point]))
-           while (--rl_point >= 0 && isident (rl_line_buffer[rl_point]));
+         if (_rl_isident (rl_line_buffer[rl_point]))
+           while (--rl_point >= 0 && _rl_isident (rl_line_buffer[rl_point]));
          else
-           while (--rl_point >= 0 && !isident (rl_line_buffer[rl_point]) &&
+           while (--rl_point >= 0 && !_rl_isident (rl_line_buffer[rl_point]) &&
                   !whitespace (rl_line_buffer[rl_point]));
          rl_point++;
        }
@@ -532,10 +527,10 @@ rl_vi_eword (count, ignore)
 
       if (rl_point < rl_end)
        {
-         if (isident (rl_line_buffer[rl_point]))
-           while (++rl_point < rl_end && isident (rl_line_buffer[rl_point]));
+         if (_rl_isident (rl_line_buffer[rl_point]))
+           while (++rl_point < rl_end && _rl_isident (rl_line_buffer[rl_point]));
          else
-           while (++rl_point < rl_end && !isident (rl_line_buffer[rl_point])
+           while (++rl_point < rl_end && !_rl_isident (rl_line_buffer[rl_point])
                   && !whitespace (rl_line_buffer[rl_point]));
        }
       rl_point--;
@@ -557,7 +552,17 @@ rl_vi_append_mode (count, key)
      int count, key;
 {
   if (rl_point < rl_end)
-    rl_point++;
+    {
+      if (MB_CUR_MAX == 1 || rl_byte_oriented)
+       rl_point++;
+      else
+        {
+          int point = rl_point;
+          rl_forward_char (1, key);
+          if (point == rl_point)
+            rl_point = rl_end;
+        }
+    }
   rl_vi_insertion_mode (1, key);
   return (0);
 }
@@ -611,7 +616,7 @@ _rl_vi_save_insert (up)
   if (len >= vi_insert_buffer_size)
     {
       vi_insert_buffer_size += (len + 32) - (len % 32);
-      vi_insert_buffer = xrealloc (vi_insert_buffer, vi_insert_buffer_size);
+      vi_insert_buffer = (char *)xrealloc (vi_insert_buffer, vi_insert_buffer_size);
     }
   strncpy (vi_insert_buffer, rl_line_buffer + start, len - 1);
   vi_insert_buffer[len-1] = '\0';
@@ -622,6 +627,7 @@ _rl_vi_done_inserting ()
 {
   if (_rl_vi_doing_insert)
     {
+      /* The `C', `s', and `S' commands set this. */
       rl_end_undo_group ();
       /* Now, the text between rl_undo_list->next->start and
         rl_undo_list->next->end is what was inserted while in insert
@@ -650,7 +656,7 @@ rl_vi_movement_mode (count, key)
      int count, key;
 {
   if (rl_point > 0)
-    rl_backward (1, key);
+    rl_backward_char (1, key);
 
   _rl_keymap = vi_movement_keymap;
   _rl_vi_done_inserting ();
@@ -667,6 +673,51 @@ rl_vi_arg_digit (count, c)
     return (rl_digit_argument (count, c));
 }
 
+/* Change the case of the next COUNT characters. */
+#if defined (HANDLE_MULTIBYTE)
+static int
+_rl_vi_change_mbchar_case (count)
+     int count;
+{
+  wchar_t wc;
+  char mb[MB_LEN_MAX];
+  mbstate_t ps;
+
+  memset (&ps, 0, sizeof (mbstate_t));
+  if (_rl_adjust_point (rl_line_buffer, rl_point, &ps) > 0)
+    count--;
+  while (count-- && rl_point < rl_end)
+    {
+      mbrtowc (&wc, rl_line_buffer + rl_point, rl_end - rl_point, &ps);
+      if (iswupper (wc))
+       wc = towlower (wc);
+      else if (iswlower (wc))
+       wc = towupper (wc);
+      else
+       {
+         /* Just skip over chars neither upper nor lower case */
+         rl_forward_char (1, 0);
+         continue;
+       }
+
+      /* Vi is kind of strange here. */
+      if (wc)
+       {
+         wctomb (mb, wc);
+         rl_begin_undo_group ();
+         rl_delete (1, 0);
+         rl_insert_text (mb);
+         rl_end_undo_group ();
+         rl_vi_check ();
+       }
+      else
+        rl_forward_char (1, 0);
+    }
+
+  return 0;
+}
+#endif
+
 int
 rl_vi_change_case (count, ignore)
      int count, ignore;
@@ -677,6 +728,11 @@ rl_vi_change_case (count, ignore)
   if (rl_point >= rl_end)
     return (0);
 
+#if defined (HANDLE_MULTIBYTE)
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    return (_rl_vi_change_mbchar_case (count));
+#endif
+
   while (count-- && rl_point < rl_end)
     {
       if (_rl_uppercase_p (rl_line_buffer[rl_point]))
@@ -686,7 +742,7 @@ rl_vi_change_case (count, ignore)
       else
        {
          /* Just skip over characters neither upper nor lower case. */
-         rl_forward (1, c);
+         rl_forward_char (1, c);
          continue;
        }
 
@@ -695,12 +751,12 @@ rl_vi_change_case (count, ignore)
        {
          rl_begin_undo_group ();
          rl_delete (1, c);
-         rl_insert (1, c);
+         _rl_insert_char (1, c);
          rl_end_undo_group ();
          rl_vi_check ();
         }
       else
-       rl_forward (1, c);
+       rl_forward_char (1, c);
     }
   return (0);
 }
@@ -710,10 +766,10 @@ rl_vi_put (count, key)
      int count, key;
 {
   if (!_rl_uppercase_p (key) && (rl_point + 1 <= rl_end))
-    rl_point++;
+    rl_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
 
   rl_yank (1, key);
-  rl_backward (1, key);
+  rl_backward_char (1, key);
   return (0);
 }
 
@@ -721,7 +777,12 @@ int
 rl_vi_check ()
 {
   if (rl_point && rl_point == rl_end)
-    rl_point--;
+    {
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
+      else
+        rl_point--;
+    }
   return (0);
 }
 
@@ -744,7 +805,9 @@ rl_vi_domove (key, nextkey)
   int old_end;
 
   rl_mark = rl_point;
+  RL_SETSTATE(RL_STATE_MOREINPUT);
   c = rl_read_key ();
+  RL_UNSETSTATE(RL_STATE_MOREINPUT);
   *nextkey = c;
 
   if (!member (c, vi_motion))
@@ -755,7 +818,9 @@ rl_vi_domove (key, nextkey)
          rl_numeric_arg = _rl_digit_value (c);
          rl_digit_loop1 ();
          rl_numeric_arg *= save;
+         RL_SETSTATE(RL_STATE_MOREINPUT);
          c = rl_read_key ();   /* real command */
+         RL_UNSETSTATE(RL_STATE_MOREINPUT);
          *nextkey = c;
        }
       else if (key == c && (key == 'd' || key == 'y' || key == 'c'))
@@ -819,24 +884,36 @@ rl_vi_domove (key, nextkey)
     }
 
   if (rl_mark < rl_point)
-    exchange (rl_point, rl_mark);
+    SWAP (rl_point, rl_mark);
 
   return (0);
 }
 
 /* A simplified loop for vi. Don't dispatch key at end.
-   Don't recognize minus sign? */
+   Don't recognize minus sign?
+   Should this do rl_save_prompt/rl_restore_prompt? */
 static int
 rl_digit_loop1 ()
 {
   int key, c;
 
+  RL_SETSTATE(RL_STATE_NUMERICARG);
   while (1)
     {
-      rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg, 0);
+      if (rl_numeric_arg > 1000000)
+       {
+         rl_explicit_arg = rl_numeric_arg = 0;
+         rl_ding ();
+         rl_clear_message ();
+         RL_UNSETSTATE(RL_STATE_NUMERICARG);
+         return 1;
+       }
+      rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg);
+      RL_SETSTATE(RL_STATE_MOREINPUT);
       key = c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
 
-      if (_rl_keymap[c].type == ISFUNC &&
+      if (c >= 0 && _rl_keymap[c].type == ISFUNC &&
          _rl_keymap[c].function == rl_universal_argument)
        {
          rl_numeric_arg *= 4;
@@ -859,6 +936,8 @@ rl_digit_loop1 ()
          break;
        }
     }
+
+  RL_UNSETSTATE(RL_STATE_NUMERICARG);
   return (0);
 }
 
@@ -875,7 +954,7 @@ rl_vi_delete_to (count, key)
 
   if (rl_vi_domove (key, &c))
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
 
@@ -903,7 +982,7 @@ rl_vi_change_to (count, key)
 
   if (rl_vi_domove (key, &c))
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
 
@@ -953,7 +1032,7 @@ rl_vi_yank_to (count, key)
 
   if (rl_vi_domove (key, &c))
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
 
@@ -979,11 +1058,14 @@ rl_vi_delete (count, key)
 
   if (rl_end == 0)
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
 
-  end = rl_point + count;
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    end = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO);
+  else
+    end = rl_point + count;
 
   if (end >= rl_end)
     end = rl_end;
@@ -991,7 +1073,7 @@ rl_vi_delete (count, key)
   rl_kill_text (rl_point, end);
   
   if (rl_point > 0 && rl_point == rl_end)
-    rl_backward (1, key);
+    rl_backward_char (1, key);
   return (0);
 }
 
@@ -1016,7 +1098,12 @@ int
 rl_vi_char_search (count, key)
      int count, key;
 {
+#if defined (HANDLE_MULTIBYTE)
+  static char *target;
+  static int mb_len;
+#else
   static char target;
+#endif
   static int orig_dir, dir;
 
   if (key == ';' || key == ',')
@@ -1024,9 +1111,22 @@ rl_vi_char_search (count, key)
   else
     {
       if (vi_redoing)
+#if defined (HANDLE_MULTIBYTE)
+       target = _rl_vi_last_search_mbchar;
+#else
        target = _rl_vi_last_search_char;
+#endif
       else
-       _rl_vi_last_search_char = target = (*rl_getc_function) (rl_instream);
+       {
+#if defined (HANDLE_MULTIBYTE)
+         mb_len = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+         target = _rl_vi_last_search_mbchar;
+#else
+         RL_SETSTATE(RL_STATE_MOREINPUT);
+         _rl_vi_last_search_char = target = rl_read_key ();
+         RL_UNSETSTATE(RL_STATE_MOREINPUT);
+#endif
+       }
 
       switch (key)
         {
@@ -1048,7 +1148,11 @@ rl_vi_char_search (count, key)
         }
     }
 
+#if defined (HANDLE_MULTIBYTE)
+   return (_rl_char_search_internal (count, dir, target, mb_len));
+#else
   return (_rl_char_search_internal (count, dir, target));
+#endif
 }
 
 /* Match brackets */
@@ -1056,19 +1160,30 @@ int
 rl_vi_match (ignore, key)
      int ignore, key;
 {
-  int count = 1, brack, pos;
+  int count = 1, brack, pos, tmp, pre;
 
   pos = rl_point;
   if ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0)
     {
-      while ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0 &&
-            rl_point < rl_end - 1)
-       rl_forward (1, key);
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         while ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0)
+           {
+             pre = rl_point;
+             rl_forward_char (1, key);
+             if (pre == rl_point)
+               break;
+           }
+       }
+      else
+       while ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0 &&
+               rl_point < rl_end - 1)
+         rl_forward_char (1, key);
 
       if (brack <= 0)
        {
          rl_point = pos;
-         ding ();
+         rl_ding ();
          return -1;
        }
     }
@@ -1079,7 +1194,16 @@ rl_vi_match (ignore, key)
     {
       while (count)
        {
-         if (--pos >= 0)
+         tmp = pos;
+         if (MB_CUR_MAX == 1 || rl_byte_oriented)
+           pos--;
+         else
+           {
+             pos = _rl_find_prev_mbchar (rl_line_buffer, pos, MB_FIND_ANY);
+             if (tmp == pos)
+               pos--;
+           }
+         if (pos >= 0)
            {
              int b = rl_vi_bracktype (rl_line_buffer[pos]);
              if (b == -brack)
@@ -1089,7 +1213,7 @@ rl_vi_match (ignore, key)
            }
          else
            {
-             ding ();
+             rl_ding ();
              return -1;
            }
        }
@@ -1098,7 +1222,12 @@ rl_vi_match (ignore, key)
     {                  /* brack > 0 */
       while (count)
        {
-         if (++pos < rl_end)
+         if (MB_CUR_MAX == 1 || rl_byte_oriented)
+           pos++;
+         else
+           pos = _rl_find_next_mbchar (rl_line_buffer, pos, 1, MB_FIND_ANY);
+
+         if (pos < rl_end)
            {
              int b = rl_vi_bracktype (rl_line_buffer[pos]);
              if (b == -brack)
@@ -1108,7 +1237,7 @@ rl_vi_match (ignore, key)
            }
          else
            {
-             ding ();
+             rl_ding ();
              return -1;
            }
        }
@@ -1133,6 +1262,11 @@ rl_vi_bracktype (c)
     }
 }
 
+/* XXX - think about reading an entire mbchar with _rl_read_mbchar and
+   inserting it in one bunch instead of the loop below (like in
+   rl_vi_char_search or _rl_vi_change_mbchar_case.  Set c to mbchar[0]
+   for test against 033 or ^C.  Make sure that _rl_read_mbchar does
+   this right. */
 int
 rl_vi_change_char (count, key)
      int count, key;
@@ -1142,7 +1276,11 @@ rl_vi_change_char (count, key)
   if (vi_redoing)
     c = _rl_vi_last_replacement;
   else
-    _rl_vi_last_replacement = c = (*rl_getc_function) (rl_instream);
+    {
+      RL_SETSTATE(RL_STATE_MOREINPUT);
+      _rl_vi_last_replacement = c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
+    }
 
   if (c == '\033' || c == CTRL ('C'))
     return -1;
@@ -1152,9 +1290,19 @@ rl_vi_change_char (count, key)
       rl_begin_undo_group ();
 
       rl_delete (1, c);
-      rl_insert (1, c);
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       while (_rl_insert_char (1, c))
+         {
+           RL_SETSTATE (RL_STATE_MOREINPUT);
+           c = rl_read_key ();
+           RL_UNSETSTATE (RL_STATE_MOREINPUT);
+         }
+      else
+#endif
+       _rl_insert_char (1, c);
       if (count == 0)
-       rl_backward (1, c);
+       rl_backward_char (1, c);
 
       rl_end_undo_group ();
     }
@@ -1165,66 +1313,29 @@ int
 rl_vi_subst (count, key)
      int count, key;
 {
-  rl_begin_undo_group ();
-
-  if (_rl_uppercase_p (key))
-    {
-      rl_beg_of_line (1, key);
-      rl_kill_line (1, key);
-    }
-  else
-    rl_delete_text (rl_point, rl_point+count);
-
-  rl_end_undo_group ();
-
-  _rl_vi_set_last (key, count, rl_arg_sign);
-
-  if (vi_redoing)
-    {
-      int o = _rl_doing_an_undo;
+  /* If we are redoing, rl_vi_change_to will stuff the last motion char */
+  if (vi_redoing == 0)
+    rl_stuff_char ((key == 'S') ? 'c' : ' ');  /* `S' == `cc', `s' == `c ' */
 
-      _rl_doing_an_undo = 1;
-      if (vi_insert_buffer && *vi_insert_buffer)
-       rl_insert_text (vi_insert_buffer);
-      _rl_doing_an_undo = o;
-    }
-  else
-    {
-      rl_begin_undo_group ();
-      _rl_vi_doing_insert = 1;
-      rl_vi_insertion_mode (1, key);
-    }
-
-  return (0);
+  return (rl_vi_change_to (count, 'c'));
 }
 
 int
 rl_vi_overstrike (count, key)
      int count, key;
 {
-  int i;
-
   if (_rl_vi_doing_insert == 0)
     {
       _rl_vi_doing_insert = 1;
       rl_begin_undo_group ();
     }
 
-  for (i = 0; i < count; i++)
+  if (count > 0)
     {
-      vi_replace_count++;
-      rl_begin_undo_group ();
-
-      if (rl_point < rl_end)
-       {
-         rl_delete (1, key);
-         rl_insert (1, key);
-       }
-      else
-       rl_insert (1, key);
-
-      rl_end_undo_group ();
+      _rl_overwrite_char (count, key);
+      vi_replace_count += count;
     }
+
   return (0);
 }
 
@@ -1238,7 +1349,7 @@ rl_vi_overstrike_delete (count, key)
     {
       if (vi_replace_count == 0)
        {
-         ding ();
+         rl_ding ();
          break;
        }
       s = rl_point;
@@ -1247,7 +1358,7 @@ rl_vi_overstrike_delete (count, key)
        vi_replace_count--;
 
       if (rl_point == s)
-       rl_backward (1, key);
+       rl_backward_char (1, key);
     }
 
   if (vi_replace_count == 0 && _rl_vi_doing_insert)
@@ -1308,7 +1419,7 @@ rl_vi_possible_completions()
     }
   else if (rl_line_buffer[rl_point - 1] == ';')
     {
-      ding ();
+      rl_ding ();
       return (0);
     }
 
@@ -1326,10 +1437,13 @@ rl_vi_set_mark (count, key)
 {
   int ch;
 
+  RL_SETSTATE(RL_STATE_MOREINPUT);
   ch = rl_read_key ();
-  if (_rl_lowercase_p (ch) == 0)
+  RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+  if (ch < 'a' || ch > 'z')
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
   ch -= 'a';
@@ -1343,22 +1457,25 @@ rl_vi_goto_mark (count, key)
 {
   int ch;
 
+  RL_SETSTATE(RL_STATE_MOREINPUT);
   ch = rl_read_key ();
+  RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
   if (ch == '`')
     {
       rl_point = rl_mark;
       return 0;
     }
-  else if (_rl_lowercase_p (ch) == 0)
+  else if (ch < 'a' || ch > 'z')
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
 
   ch -= 'a';
   if (vi_mark_chars[ch] == -1)
     {
-      ding ();
+      rl_ding ();
       return -1;
     }
   rl_point = vi_mark_chars[ch];
index c0d06403a3c44467c5ead6ef5983dffae02b024f..8985d340d398cd28f5278c8c275cad0faed4a592 100644 (file)
@@ -51,26 +51,26 @@ memory_error_and_abort (fname)
 /* Return a pointer to free()able block of memory large enough
    to hold BYTES number of bytes.  If the memory cannot be allocated,
    print an error message and abort. */
-char *
+PTR_T
 xmalloc (bytes)
-     int bytes;
+     size_t bytes;
 {
-  char *temp;
+  PTR_T temp;
 
-  temp = (char *)malloc (bytes);
+  temp = malloc (bytes);
   if (temp == 0)
     memory_error_and_abort ("xmalloc");
   return (temp);
 }
 
-char *
+PTR_T
 xrealloc (pointer, bytes)
      PTR_T pointer;
-     int bytes;
+     size_t bytes;
 {
-  char *temp;
+  PTR_T temp;
 
-  temp = pointer ? (char *)realloc (pointer, bytes) : (char *)malloc (bytes);
+  temp = pointer ? realloc (pointer, bytes) : malloc (bytes);
 
   if (temp == 0)
     memory_error_and_abort ("xrealloc");
index bdf251b070a391f9a8c8f76507de16d708509183..9cb08ba21f111caabc5849683438eb529ad14ef3 100644 (file)
@@ -39,8 +39,8 @@
 
 #endif /* !PTR_T */
 
-extern char *xmalloc __P((int));
-extern char *xrealloc __P((void *, int));
-extern void xfree __P((void *));
+extern PTR_T xmalloc PARAMS((size_t));
+extern PTR_T xrealloc PARAMS((void *, size_t));
+extern void xfree PARAMS((void *));
 
 #endif /* _XMALLOC_H_ */
index 1e495767be6edc7d85496f6a2486a3894bf8a70c..37ded334d89990610f65e4b7db479e5f1b0fee8e 100644 (file)
@@ -1,3 +1,20 @@
+2002-11-27  Richard Sandiford  <rsandifo@redhat.com>
+
+       * sim-fpu.c (sim_fpu_inv): Use sim_fpu_div.
+
+2002-11-22  Andrew Cagney  <ac131313@redhat.com>
+
+       * dv-core.c: Update copyright.  sim/common contributed to the FSF.
+       * dv-glue.c, dv-pal.c, hw-base.c, hw-base.h, hw-device.c: Ditto.
+       * hw-device.h, hw-handles.c, hw-handles.h: Ditto.
+       * hw-instances.c, hw-instances.h, hw-properties.c: Ditto.
+       * hw-properties.h, hw-tree.c, hw-tree.h, sim-alu.h: Ditto.
+       * sim-basics.h, sim-bits.c, sim-bits.h, sim-config.c: Ditto.
+       * sim-config.h, sim-core.c, sim-core.h, sim-endian.c: Ditto.
+       * sim-endian.h, sim-events.c, sim-events.h, sim-inline.c: Ditto.
+       * sim-inline.h, sim-io.c, sim-io.h, sim-n-bits.h: Ditto.
+       * sim-n-core.h, sim-n-endian.h, sim-types.h: Ditto.
+
 2002-11-13  Andrew Cagney  <cagney@redhat.com>
 
        * run.c (main): Remove SIM_HAVE_ENVIRONMENT from #endif.
index 0a0c4a9acbda7219b5e965f26fd1262bb54dae1e..94e4a21d681d8d50f65ad785b90f7d708fc090c5 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-    
-    Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>
-    
-    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.
-    
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #include "sim-main.h"
index a235531ae841c52da87ed8c1b61a821f403dd141..560fd7051eae235b1f014ecc2e659c47e77d8dc0 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-    
-    Copyright (C) 1994-1996,1998 Andrew Cagney <cagney@highland.com.au>
-    
-    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.
-    
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #include "hw-main.h"
index 421bde7e2168e5deb9ffe864931bf8c527c60c1a..90147ba65cc4c1a82c5f6f4b6bc7f85a89a0ec52 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-    
-    Copyright (C) 1994-1996,1998, Andrew Cagney <cagney@highland.com.au>
-    
-    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.
-    
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #include "hw-main.h"
index 9c05da81159854297ad54352cb25bd9f973450d0..7fbe61ef1736df10cdd06cd35671f130e25164ad 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1996, 1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #include "hw-main.h"
index 57601034a7c719c69be4f0d09ddd470d9c38c509..9276256540d25e5cdb56113afd3329314cb66d0a 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef HW_BASE
index c7f50e30953f4e739d41bf1d4dd6254212b29e94..138df257c069f662e6e4e1417bf7d0d60237157a 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The common simulator framework for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney and Red Hat.
 
-    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 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.  */
 
 
 #include "hw-main.h"
index bb1568d6c45802bcc47957ddc41699f2e62a335d..d8dcce760dbb87369fbc85bcbe4062da1ab9ff4a 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef HW_DEVICE_H
index 9400ca82e92b4f29e06cc8358c956c01d9c4b21a..c97b167bd3cb747c2de177b4232ba3fafb4efb35 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1995,1997-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #include "hw-main.h"
index 087c9d02e75d5d669fec8d6ab1ef38101038ca7a..394eea3c17e5f73824dcd2891b314118af1beb0d 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1995,1997-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef HW_HANDLES_H
index 22c1cd9e9a90341eb378d5ad9da8df166d279d01..b0cdb54465bbe2c457d97278ccf6195528274011 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #include "hw-main.h"
index 6d27b1148732de4b9b183e462c4aec817a827606..0966d814eb2a7e4c3f62721d7ad3c9f00452ff94 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef HW_INSTANCES_H
index 5a4d76dbf1de78069f8ba5f37b984008d010c49e..6e0d4bb75e21714a1a2227662a9d10e27b194376 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 #include "hw-main.h"
 #include "hw-base.h"
index 198878fb06b7470a7004734b636f38680342214a..ba59b2599076545652cc2b95c93bce86aeb3381a 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef HW_PROPERTIES_H
index f867bee263d31f6fc80d190cb7e19d44c147eac1..993035645422e7f49c49fbd8dbf3ac173277eaeb 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
+
 
 #include "hw-main.h"
 #include "hw-base.h"
index bfa5681e70763436b740048d9a5882ebb78c7302..5428baee766913c5e16e1d28a04ddb7938a88cfb 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef HW_TREE
index 925fdb81e8e311429a85c32f1a41564640bd3fd3..2bfe3997ee424c29c3d7c61a48f6d456c81de676 100644 (file)
@@ -1,23 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>
-    Copyright (C) 1997, 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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef _SIM_ALU_H_
index a7d7a1ed47289cc41865952ec08e607a35f8d3bd..be6cb9e90acbd59d2f5cc3b5c43b2d4426fdade7 100644 (file)
@@ -1,23 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-    Copyright (C) 1997, 1998, 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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef _SIM_BASICS_H_
index 4ba0f79055c158c4093cf9ee255481a20729524d..da07ff7f95b4ea560cff035c1e78fd65f598668b 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The common simulator framework for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney and Red Hat.
 
-    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 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_BITS_C_
index caebf0a902b6c699dc77079d918fad8723478a8c..735fc0f3a61063b2bea7ca1d6359772df8ee525c 100644 (file)
@@ -1,23 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>
-    Copyright (C) 1997, 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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef _SIM_BITS_H_
index 10a19aaa2051ae518f3da268b2c105a4388f3fc5..6fe7b16429d768a854e996c3e786b4818ec46144 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the GNU simulators.
-
-    Copyright (C) 1994-1995,1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #include "sim-main.h"
index 97207120ac26eec5d36d42e2db367b7bc3402153..f874b886de84d1e3c5b6f48018b9223312be4b78 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef SIM_CONFIG_H
index 8e5ef38ab958702bf1ce3565cbd147084aaedaa3..586c25e4fa769abf01d80bdfc61d7d50e983c78f 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef SIM_CORE_C
index 771e8a1b54bec357532909fa0b3749c7b148bb26..14725fb0ab980a7113993acbb1ec16a980260bb6 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef SIM_CORE_H
index 36820284ffda2ba4c11649e46cdbd30a5669832b..05450a4b5be4aebf08f43850599e7e9079f8db27 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef _SIM_ENDIAN_C_
index 8239aa0ff0ebecf7d3be3ac3aff298f11c46a05b..3a52f0f5702d0c599ded9d84939a2af13c72e74b 100644 (file)
@@ -1,23 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
-    Copyright (C) 1997, 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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef _SIM_ENDIAN_H_
index 6cd75eaf5095263e35508581daaad22bb7a755bd..aea8ea8f0878d30f554ebb134d3bc90f42572490 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef _SIM_EVENTS_C_
index 7a0da7b8ca8831b6c17daa95cdc3ef2645271900..d910d05f0934f52f8cf9b16725f4989d6cdb20a0 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef SIM_EVENTS_H
index 28d61a565fedbf06423d0f1bcd92e926fa72df9d..14505f64c4b9cfe1d005dca9233679b350e0eaf6 100644 (file)
@@ -1754,33 +1754,7 @@ INLINE_SIM_FPU (int)
 sim_fpu_inv (sim_fpu *f,
             const sim_fpu *r)
 {
-  if (sim_fpu_is_snan (r))
-    {
-      *f = *r;
-      f->class = sim_fpu_class_qnan;
-      return sim_fpu_status_invalid_snan;
-    }
-  if (sim_fpu_is_qnan (r))
-    {
-      *f = *r;
-      f->class = sim_fpu_class_qnan;
-      return 0;
-    }
-  if (sim_fpu_is_infinity (r))
-    {
-      *f = sim_fpu_zero;
-      f->sign = r->sign;
-      return 0;
-    }
-  if (sim_fpu_is_zero (r))
-    {
-      f->class = sim_fpu_class_infinity;
-      f->sign = r->sign;
-      return sim_fpu_status_invalid_div0;
-    }
-  *f = *r;
-  f->normal_exp = - r->normal_exp;
-  return 0;
+  return sim_fpu_div (f, &sim_fpu_one, r);
 }
 
 
index 770c65eb840e228064c91203ebd3f88576eeb7b1..f22640537e7cfb3f4012ffde60d0d864c4ef7121 100644 (file)
@@ -1,23 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-    Copyright (C) 1997, 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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef SIM_INLINE_C
index 300658d374e2dfb21a1a2f181c9524e33994c1ce..4e3fdb6892cacc669f7b6372c1348ca896eb597d 100644 (file)
@@ -1,23 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-    Copyright (C) 1997, 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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef SIM_INLINE_H
index 26f44451a30fb606a0e94740098ef6a044cb84f2..d1aab44fb76bdaa065689bdff7cd9226bbaf0aab 100644 (file)
@@ -1,23 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-    Copyright (C) 1998, 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 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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #include "sim-main.h"
index 995b6231e051af3df2e8dca1ac408f2950d62776..18305df6937bc47ba41e566283a48806f85c4e94 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef SIM_IO_H
index 83157fff05a503a43dfaa13f631dc3cf093d7e84..7c77c83100c2791203355603634973897faf17ff 100644 (file)
@@ -1,23 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>
-    Copyright (C) 1997, 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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef N
index 7a04a9fb4bc1d65ef66b16f82da80f40c44eff60..032569a99dfe4478aae2950d1a10dadb53119379 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef N
index c53e05a9a1749f9f13c3f5b102c7f53ba17fa849..4c2f7b4c672d685b406d0db1d891fa2dadadb3e3 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef N
index afd008faaa43e7c1f670ea7436b3f0d9fda084dc..5e97f0775043acbe7376de70f4f4456378f86b2f 100644 (file)
@@ -1,24 +1,25 @@
-/* This file is part of psim (model of the PowerPC(tm) architecture)
-
-   Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-   This 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.
-   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
-   Library General Public License for more details.
-   You should have received a copy of the GNU Library General Public
-   License along with this library; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   --
-
-   PowerPC is a trademark of International Business Machines Corporation. */
+/* The common simulator framework for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney and 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.  */
 
 
 #ifndef SIM_TYPES_H
index 4e4b3a4a90d5b938e454b1538aaddfe555cbfea0..b36e4f00445f42860cc94fbb1ce53e51fb010952 100644 (file)
@@ -1,3 +1,33 @@
+2002-11-22  Andrew Cagney  <cagney@redhat.com>
+
+       * gen.c (name_cmp): Rename format_name_cmp.
+       (insn_list_insert): When a merge, compare the format name and
+       instruction name.  Add trace messages.
+
+2002-11-21  Andrew Cagney  <ac131313@redhat.com>
+
+       * filter.c: Re-indent.
+       * filter.h, filter_host.h, gen-engine.c, gen-engine.h: Ditto.
+       * gen-icache.c, gen-icache.h, gen-idecode.c: Ditto.
+       * gen-idecode.h, gen-itable.c, gen-itable.h: Ditto.
+       * gen-model.c, gen-model.h, gen-semantics.c: Ditto.
+       * gen-semantics.h, gen-support.c, gen-support.h: Ditto.
+       * gen.c, gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
+       * ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
+       * lf.h, misc.c, misc.h, table.c, table.h: Ditto.
+       
+2002-11-21  Andrew Cagney  <ac131313@redhat.com>
+
+       * Makefile.in: Update copyright.  IGEN contributed to the FSF.
+       * filter.c, filter.h, filter_host.c, filter_host.h: Ditto.
+       * gen-engine.c, gen-engine.h, gen-icache.c, gen-icache.h: Ditto.
+       * gen-idecode.c, gen-idecode.h, gen-itable.c: Ditto.
+       * gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c: Ditto.
+       * gen-semantics.h, gen-support.c, gen-support.h, gen.c: Ditto.
+       * gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
+       * ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
+       * lf.h, misc.c, misc.h, table.c, table.h: Ditto.
+
 2002-11-06  Richard Sandiford  <rsandifo@redhat.com>
 
        * gen-engine.c (print_engine_issue_prefix_hook): Don't add the
index 2c14aa55cb8a2f5da9c6c9819599baf667bc3607..653a11a503d0d39b47be2916fd0e64bd21e54594 100644 (file)
@@ -1,22 +1,24 @@
+# The IGEN simulator generator for GDB, the GNU Debugger.
 #
-#   This file is part of the program psim.
+# Copyright 2002 Free Software Foundation, Inc.
 #
-#   Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
+# Contributed by Andrew Cagney.
 #
-#   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 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.
 
 default: all
 
index afc518897240947b3889aa7ab4f13e45202979c8..ef74fc01b0e1ff24fb01401d3282c9b01da26e82 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 #include <stdio.h>
 #include "lf.h"
 #include "filter.h"
 
-struct _filter {
+struct _filter
+{
   char *member;
   filter *next;
 };
 
 
 void
-filter_parse (filter **filters,
-             const char *filt)
+filter_parse (filter **filters, const char *filt)
 {
   while (strlen (filt) > 0)
     {
@@ -51,7 +54,7 @@ filter_parse (filter **filters,
       filter **last;
       /* break out a member of the filter list */
       const char *flag = filt;
-      unsigned /*size_t*/ len;
+      unsigned /*size_t */ len;
       filt = strchr (filt, ',');
       if (filt == NULL)
        {
@@ -65,13 +68,12 @@ filter_parse (filter **filters,
        }
       /* find an insertion point - sorted order */
       last = filters;
-      while (*last != NULL
-            && strncmp (flag, (*last)->member, len) > 0)
+      while (*last != NULL && strncmp (flag, (*last)->member, len) > 0)
        last = &(*last)->next;
       if (*last != NULL
          && strncmp (flag, (*last)->member, len) == 0
          && strlen ((*last)->member) == len)
-       continue; /* duplicate */
+       continue;               /* duplicate */
       /* create an entry for that member */
       new_filter = ZALLOC (filter);
       new_filter->member = NZALLOC (char, len + 1);
@@ -84,14 +86,13 @@ filter_parse (filter **filters,
 
 
 void
-filter_add (filter **set,
-           filter *add)
+filter_add (filter **set, filter *add)
 {
   while (add != NULL)
     {
       int cmp;
       if (*set == NULL)
-       cmp = 1; /* set->member > add->member */
+       cmp = 1;                /* set->member > add->member */
       else
        cmp = strcmp ((*set)->member, add->member);
       if (cmp > 0)
@@ -109,7 +110,7 @@ filter_add (filter **set,
          /* already in set */
          add = add->next;
        }
-      else /* cmp < 0 */
+      else                     /* cmp < 0 */
        {
          /* not reached insertion point */
          set = &(*set)->next;
@@ -119,8 +120,7 @@ filter_add (filter **set,
 
 
 int
-filter_is_subset (filter *superset,
-                 filter *subset)
+filter_is_subset (filter *superset, filter *subset)
 {
   while (1)
     {
@@ -128,21 +128,20 @@ filter_is_subset (filter *superset,
       if (subset == NULL)
        return 1;
       if (superset == NULL)
-       return 0; /* subset isn't finished */
+       return 0;               /* subset isn't finished */
       cmp = strcmp (subset->member, superset->member);
       if (cmp < 0)
-       return 0; /* not found */
+       return 0;               /* not found */
       else if (cmp == 0)
-       subset = subset->next; /* found */
+       subset = subset->next;  /* found */
       else if (cmp > 0)
-       superset = superset->next; /* later in list? */
+       superset = superset->next;      /* later in list? */
     }
 }
 
 
 int
-filter_is_common (filter *l,
-                 filter *r)
+filter_is_common (filter *l, filter *r)
 {
   while (1)
     {
@@ -155,7 +154,7 @@ filter_is_common (filter *l,
       if (cmp < 0)
        l = l->next;
       else if (cmp == 0)
-       return 1; /* common member */
+       return 1;               /* common member */
       else if (cmp > 0)
        r = r->next;
     }
@@ -163,8 +162,7 @@ filter_is_common (filter *l,
 
 
 int
-filter_is_member (filter *filt,
-                 const char *flag)
+filter_is_member (filter *filt, const char *flag)
 {
   int index = 1;
   while (filt != NULL)
@@ -179,68 +177,72 @@ filter_is_member (filter *filt,
 
 
 int
-is_filtered_out (filter *filters,
-                const char *flags)
+is_filtered_out (filter *filters, const char *flags)
 {
-  while (strlen(flags) > 0) {
-    int present;
-    filter *filt = filters;
-    /* break the string up */
-    char *end = strchr(flags, ',');
-    char *next;
-    unsigned /*size_t*/ len;
-    if (end == NULL) {
-      end = strchr(flags, '\0');
-      next = end;
-    }
-    else {
-      next = end + 1;
-    }
-    len = end - flags;
-    /* check that it is present */
-    present = 0;
-    filt = filters;
-    while (filt != NULL) {
-      if (strncmp(flags, filt->member, len) == 0
-         && strlen(filt->member) == len) {
-       present = 1;
-       break;
-      }
-      filt = filt->next;
+  while (strlen (flags) > 0)
+    {
+      int present;
+      filter *filt = filters;
+      /* break the string up */
+      char *end = strchr (flags, ',');
+      char *next;
+      unsigned /*size_t */ len;
+      if (end == NULL)
+       {
+         end = strchr (flags, '\0');
+         next = end;
+       }
+      else
+       {
+         next = end + 1;
+       }
+      len = end - flags;
+      /* check that it is present */
+      present = 0;
+      filt = filters;
+      while (filt != NULL)
+       {
+         if (strncmp (flags, filt->member, len) == 0
+             && strlen (filt->member) == len)
+           {
+             present = 1;
+             break;
+           }
+         filt = filt->next;
+       }
+      if (!present)
+       return 1;
+      flags = next;
     }
-    if (!present)
-      return 1;
-    flags = next;
-  }
   return 0;
 }
 
 
 #if 0
 int
-it_is (const char *flag,
-       const char *flags)
+it_is (const char *flag, const char *flags)
 {
-  int flag_len = strlen(flag);
-  while (*flags != '\0') {
-    if (!strncmp(flags, flag, flag_len)
-       && (flags[flag_len] == ',' || flags[flag_len] == '\0'))
-      return 1;
-    while (*flags != ',') {
-      if (*flags == '\0')
-       return 0;
+  int flag_len = strlen (flag);
+  while (*flags != '\0')
+    {
+      if (!strncmp (flags, flag, flag_len)
+         && (flags[flag_len] == ',' || flags[flag_len] == '\0'))
+       return 1;
+      while (*flags != ',')
+       {
+         if (*flags == '\0')
+           return 0;
+         flags++;
+       }
       flags++;
     }
-    flags++;
-  }
   return 0;
 }
 #endif
 
 
 char *
-filter_next (filter *set,
-            char *member)
+filter_next (filter *set, char *member)
 {
   while (set != NULL)
     {
@@ -253,10 +255,7 @@ filter_next (filter *set,
 
 
 void
-dump_filter (lf *file,
-            char *prefix, 
-            filter *set,
-            char *suffix)
+dump_filter (lf *file, char *prefix, filter *set, char *suffix)
 {
   char *member;
   lf_printf (file, "%s", prefix);
@@ -278,20 +277,21 @@ dump_filter (lf *file,
 
 #ifdef MAIN
 int
-main(int argc, char **argv)
+main (int argc, char **argv)
 {
   filter *subset = NULL;
   filter *superset = NULL;
   lf *l;
   int i;
-  if (argc < 2) {
-    printf("Usage: filter <subset> <filter> ...\n");
-    exit (1);
-  }
+  if (argc < 2)
+    {
+      printf ("Usage: filter <subset> <filter> ...\n");
+      exit (1);
+    }
 
   /* load the filter up */
   filter_parse (&subset, argv[1]);
-  for (i = 2; i < argc; i++) 
+  for (i = 2; i < argc; i++)
     filter_parse (&superset, argv[i]);
 
   /* dump various info */
@@ -349,7 +349,7 @@ main(int argc, char **argv)
     dump_filter (l, "{", superset, " }");
     lf_printf (l, "\n");
   }
-      
+
   return 0;
 }
 #endif
index c85b8039bc943ef94574936c884b8c2902fde07e..6cef90956d49578b3fb91f6cef8e5d5918f4f7b9 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 /* NB, an empty filter is NULL */
@@ -25,62 +28,44 @@ typedef struct _filter filter;
 
 /* parse the list merging any flags into the filter */
 
-extern void filter_parse
-(filter **filters,
- const char *filt);
+extern void filter_parse (filter **filters, const char *filt);
 
 
 /* add the second filter to the first */
 
-extern void filter_add
-(filter **filters,
- filter *add);
+extern void filter_add (filter **filters, filter *add);
 
 
 
 /* returns true if SUB is a strict subset of SUPER.  For an empty set
    is a member of any set */
 
-extern int filter_is_subset
-(filter *superset,
- filter *subset);
+extern int filter_is_subset (filter *superset, filter *subset);
 
 
 /* return true if there is at least one member common to the two
    filters */
 
-extern int filter_is_common
-(filter *l,
- filter *r);
+extern int filter_is_common (filter *l, filter *r);
 
 
 /* returns the index (pos + 1) if the name is in the filter.  */
 
-extern int filter_is_member
-(filter *set,
- const char *flag);
+extern int filter_is_member (filter *set, const char *flag);
 
 
 /* returns true if one of the flags is not present in the filter.
    === !filter_is_subset (filter_parse (NULL, flags), filters) */
-int is_filtered_out
-(filter *filters,
- const char *flags);
+int is_filtered_out (filter *filters, const char *flags);
 
 
 /* returns the next member of the filter set that follows MEMBER.
    Member does not need to be an elememt of the filter set.  Next of
    "" is the first non-empty member */
-char *filter_next
-(filter *set,
- char *member);
+char *filter_next (filter *set, char *member);
 
 
 
 /* for debugging */
 
-extern void dump_filter
-(lf *file,
- char *prefix,
- filter *filt,
- char *suffix);
+extern void dump_filter (lf *file, char *prefix, filter *filt, char *suffix);
index de8c93fe439bfcaa0ea4e1e76c76a55044c6fdca..969a25202489b8dc0bd80f7dbe74e4839a1d546d 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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.  */
 
 #include "config.h"
 #include "filter_host.h"
index fdfa6bc03e17dca6f8fed37473506b7b55b0b69f..7c6739d079a4a38646b134a25db4ef6dbb7e34c3 100644 (file)
@@ -1,27 +1,29 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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 _FILTER_HOST_H
 #define _FILTER_HOST_H
 
 /* Remove directory part from filename */
-extern const char *
-filter_filename(const char *filename);
+extern const char *filter_filename (const char *filename);
 #endif
index 1de477d8387373654caab9298e999bb062110337..d0f5c30ce71a5ba6821691e6ffaaad666921271b 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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.  */
 
 #include "misc.h"
 #include "lf.h"
@@ -62,25 +65,25 @@ print_engine_issue_postfix_hook (lf *file)
 
 
 static void
-print_run_body (lf *file,
-               gen_entry *table)
+print_run_body (lf *file, gen_entry *table)
 {
   /* Output the function to execute real code:
-     
+
      Unfortunatly, there are multiple cases to consider vis:
-     
+
      <icache> X <smp>
-     
+
      Consequently this function is written in multiple different ways */
-  
+
   lf_printf (file, "{\n");
   lf_indent (file, +2);
   if (!options.gen.smp)
     {
-      lf_printf (file, "%sinstruction_address cia;\n", options.module.global.prefix.l);
+      lf_printf (file, "%sinstruction_address cia;\n",
+                options.module.global.prefix.l);
     }
   lf_printf (file, "int current_cpu = next_cpu_nr;\n");
-  
+
   if (options.gen.icache)
     {
       lf_printf (file, "/* flush the icache of a possible break insn */\n");
@@ -90,10 +93,10 @@ print_run_body (lf *file,
       lf_printf (file, "    cpu_flush_icache (STATE_CPU (sd, cpu_nr));\n");
       lf_printf (file, "}\n");
     }
-  
+
   if (!options.gen.smp)
     {
-      
+
       lf_putstr (file, "\
 /* CASE 1: NO SMP (with or with out instruction cache).\n\
 \n\
@@ -121,16 +124,16 @@ cache. */\n\
       lf_putstr (file, "while (1)\n");
       lf_putstr (file, "  {\n");
       lf_indent (file, +4);
-      
+
       lf_printf (file, "%sinstruction_address nia;\n",
                 options.module.global.prefix.l);
 
       lf_printf (file, "\n");
       if (!options.gen.icache)
        {
-         lf_printf (file, "%sinstruction_word instruction_0 = IMEM%d (cia);\n",
-                    options.module.global.prefix.l,
-                    options.insn_bit_size);
+         lf_printf (file,
+                    "%sinstruction_word instruction_0 = IMEM%d (cia);\n",
+                    options.module.global.prefix.l, options.insn_bit_size);
          print_engine_issue_prefix_hook (file);
          print_idecode_body (file, table, "nia = ");
          print_engine_issue_postfix_hook (file);
@@ -143,7 +146,8 @@ cache. */\n\
          lf_putstr (file, "  {\n");
          lf_indent (file, -4);
          lf_putstr (file, "/* cache hit */\n");
-         lf_putstr (file, "idecode_semantic *const semantic = cache_entry->semantic;\n");
+         lf_putstr (file,
+                    "idecode_semantic *const semantic = cache_entry->semantic;\n");
          lf_putstr (file, "cia = semantic (cpu, cache_entry, cia);\n");
          /* tail */
          lf_indent (file, -4);
@@ -159,7 +163,8 @@ cache. */\n\
          lf_printf (file, "instruction_word instruction = IMEM%d (cia);\n",
                     options.insn_bit_size);
          lf_putstr (file, "if (WITH_MON != 0)\n");
-         lf_putstr (file, "  mon_event (mon_event_icache_miss, cpu, cia);\n");
+         lf_putstr (file,
+                    "  mon_event (mon_event_icache_miss, cpu, cia);\n");
          if (options.gen.semantic_icache)
            {
              lf_putstr (file, "{\n");
@@ -180,7 +185,7 @@ cache. */\n\
          lf_indent (file, -4);
          lf_putstr (file, "  }\n");
        }
-      
+
       /* update the cpu if necessary */
       switch (options.gen.nia)
        {
@@ -207,10 +212,10 @@ cache. */\n\
       lf_indent (file, -4);
       lf_printf (file, "  }\n");
     }
-  
+
   if (options.gen.smp)
     {
-      
+
       lf_putstr (file, "\
 /* CASE 2: SMP (With or without ICACHE)\n\
 \n\
@@ -220,9 +225,10 @@ cpu1 will normally be the next cpu that is run.  Cpu0 being restarted\n\
 after all the other CPU's and the event queue have been processed */\n\
 \n\
 ");
-      
+
       lf_putstr (file, "\n");
-      lf_printf (file, "/* have ensured that the event queue is NOT next */\n");
+      lf_printf (file,
+                "/* have ensured that the event queue is NOT next */\n");
       lf_printf (file, "SIM_ASSERT (current_cpu >= 0);\n");
       lf_printf (file, "SIM_ASSERT (current_cpu <= nr_cpus - 1);\n");
       lf_printf (file, "SIM_ASSERT (nr_cpus <= MAX_NR_PROCESSORS);\n");
@@ -244,7 +250,7 @@ after all the other CPU's and the event queue have been processed */\n\
          lf_putstr (file, "CIA_SET (cpu, cia);\n");
          print_engine_issue_postfix_hook (file);
        }
-      
+
       if (options.gen.icache)
        {
          lf_putstr (file, "engine_cache *cache_entry =\n");
@@ -255,8 +261,10 @@ after all the other CPU's and the event queue have been processed */\n\
            lf_indent (file, +2);
            lf_putstr (file, "\n");
            lf_putstr (file, "/* cache hit */\n");
-           lf_putstr (file, "engine_semantic *semantic = cache_entry->semantic;\n");
-           lf_putstr (file, "cia = semantic(processor, cache_entry, cia);\n");
+           lf_putstr (file,
+                      "engine_semantic *semantic = cache_entry->semantic;\n");
+           lf_putstr (file,
+                      "cia = semantic(processor, cache_entry, cia);\n");
            /* tail */
            lf_putstr (file, "cpu_set_program_counter(processor, cia);\n");
            lf_putstr (file, "\n");
@@ -275,13 +283,14 @@ after all the other CPU's and the event queue have been processed */\n\
            lf_printf (file, "instruction_word instruction = IMEM%d (cia);\n",
                       options.insn_bit_size);
            lf_putstr (file, "if (WITH_MON != 0)\n");
-           lf_putstr (file, "  mon_event(mon_event_icache_miss, processors[current_cpu], cia);\n");
+           lf_putstr (file,
+                      "  mon_event(mon_event_icache_miss, processors[current_cpu], cia);\n");
            if (options.gen.semantic_icache)
              {
                lf_putstr (file, "{\n");
                lf_indent (file, +2);
                print_engine_issue_prefix_hook (file);
-               print_idecode_body(file, table, "cia =");
+               print_idecode_body (file, table, "cia =");
                print_engine_issue_postfix_hook (file);
                lf_indent (file, -2);
                lf_putstr (file, "}\n");
@@ -289,8 +298,9 @@ after all the other CPU's and the event queue have been processed */\n\
            else
              {
                print_engine_issue_prefix_hook (file);
-               print_idecode_body(file, table, "semantic = ");
-               lf_putstr (file, "cia = semantic(processor, cache_entry, cia);\n");
+               print_idecode_body (file, table, "semantic = ");
+               lf_putstr (file,
+                          "cia = semantic(processor, cache_entry, cia);\n");
                print_engine_issue_postfix_hook (file);
              }
            /* tail */
@@ -300,7 +310,7 @@ after all the other CPU's and the event queue have been processed */\n\
          }
          lf_putstr (file, "}\n");
        }
-      
+
       lf_putstr (file, "\n");
       lf_putstr (file, "current_cpu += 1;\n");
       lf_putstr (file, "if (current_cpu == nr_cpus)\n");
@@ -311,13 +321,13 @@ after all the other CPU's and the event queue have been processed */\n\
       lf_putstr (file, "      }\n");
       lf_putstr (file, "    current_cpu = 0;\n");
       lf_putstr (file, "  }\n");
-      
+
       /* tail */
       lf_indent (file, -4);
       lf_putstr (file, "  }\n");
     }
-  
-  
+
+
   lf_indent (file, -2);
   lf_putstr (file, "}\n");
 }
@@ -327,8 +337,7 @@ after all the other CPU's and the event queue have been processed */\n\
 
 #if 0
 static void
-print_jump (lf *file,
-           int is_tail)
+print_jump (lf *file, int is_tail)
 {
   if (!options.gen.smp)
     {
@@ -339,7 +348,7 @@ print_jump (lf *file,
       lf_putstr (file, "  }\n");
       lf_putstr (file, "}\n");
     }
-  
+
   if (options.gen.smp)
     {
       if (is_tail)
@@ -356,7 +365,7 @@ print_jump (lf *file,
       lf_putstr (file, "processor = processors[current_cpu];\n");
       lf_putstr (file, "nia = cpu_get_program_counter(processor);\n");
     }
-  
+
   if (options.gen.icache)
     {
       lf_putstr (file, "cache_entry = cpu_icache_entry(processor, nia);\n");
@@ -364,16 +373,17 @@ print_jump (lf *file,
       lf_putstr (file, "  /* cache hit */\n");
       lf_putstr (file, "  goto *cache_entry->semantic;\n");
       lf_putstr (file, "}\n");
-      if (is_tail) {
-       lf_putstr (file, "goto cache_miss;\n");
-      }
+      if (is_tail)
+       {
+         lf_putstr (file, "goto cache_miss;\n");
+       }
     }
-  
+
   if (!options.gen.icache && is_tail)
     {
       lf_printf (file, "goto engine;\n");
     }
-  
+
 }
 #endif
 
@@ -381,10 +391,9 @@ print_jump (lf *file,
 #if 0
 static void
 print_jump_insn (lf *file,
-                insn_entry *instruction,
+                insn_entry * instruction,
                 opcode_bits *expanded_bits,
-                opcode_field *opcodes,
-                cache_entry *cache_rules)
+                opcode_field *opcodes, cache_entry *cache_rules)
 {
   insn_opcodes opcode_path;
 
@@ -395,9 +404,8 @@ print_jump_insn (lf *file,
   lf_printf (file, "\n");
   print_my_defines (file,
                    instruction->name,
-                   instruction->format_name,
-                   expanded_bits);
-  
+                   instruction->format_name, expanded_bits);
+
   /* output the icache entry */
   if (options.gen.icache)
     {
@@ -406,24 +414,18 @@ print_jump_insn (lf *file,
       print_function_name (file,
                           instruction->name,
                           instruction->format_name,
-                          NULL,
-                          expanded_bits,
-                          function_name_prefix_icache);
+                          NULL, expanded_bits, function_name_prefix_icache);
       lf_printf (file, ":\n");
       lf_indent (file, +1);
       lf_printf (file, "{\n");
       lf_indent (file, +2);
       lf_putstr (file, "const unsigned_word cia = nia;\n");
-      print_itrace (file, instruction, 1/*putting-value-in-cache*/);
+      print_itrace (file, instruction, 1 /*putting-value-in-cache */ );
       print_idecode_validate (file, instruction, &opcode_path);
       lf_printf (file, "\n");
       lf_printf (file, "{\n");
       lf_indent (file, +2);
-      print_icache_body (file,
-                        instruction,
-                        expanded_bits,
-                        cache_rules,
-                        0, /*use_defines*/
+      print_icache_body (file, instruction, expanded_bits, cache_rules, 0,     /*use_defines */
                         put_values_in_icache);
       lf_printf (file, "cache_entry->address = nia;\n");
       lf_printf (file, "cache_entry->semantic = &&");
@@ -431,16 +433,13 @@ print_jump_insn (lf *file,
                           instruction->name,
                           instruction->format_name,
                           NULL,
-                          expanded_bits,
-                          function_name_prefix_semantics);
+                          expanded_bits, function_name_prefix_semantics);
       lf_printf (file, ";\n");
       if (options.gen.semantic_icache)
        {
          print_semantic_body (file,
-                              instruction,
-                              expanded_bits,
-                              &opcode_path);
-         print_jump(file, 1/*is-tail*/);
+                              instruction, expanded_bits, &opcode_path);
+         print_jump (file, 1 /*is-tail */ );
        }
       else
        {
@@ -449,8 +448,7 @@ print_jump_insn (lf *file,
                               instruction->name,
                               instruction->format_name,
                               NULL,
-                              expanded_bits,
-                              function_name_prefix_semantics);
+                              expanded_bits, function_name_prefix_semantics);
          lf_printf (file, "; */\n");
        }
       lf_indent (file, -2);
@@ -458,16 +456,14 @@ print_jump_insn (lf *file,
       lf_indent (file, -2);
       lf_printf (file, "}\n");
     }
-  
+
   /* print the semantics */
   lf_printf (file, "\n");
   lf_indent (file, -1);
   print_function_name (file,
                       instruction->name,
                       instruction->format_name,
-                      NULL,
-                      expanded_bits,
-                      function_name_prefix_semantics);
+                      NULL, expanded_bits, function_name_prefix_semantics);
   lf_printf (file, ":\n");
   lf_indent (file, +1);
   lf_printf (file, "{\n");
@@ -481,12 +477,8 @@ print_jump_insn (lf *file,
                      ? define_variables
                      : declare_variables),
                     (options.gen.icache
-                     ? get_values_from_icache
-                     : do_not_use_icache));
-  print_semantic_body (file,
-                      instruction,
-                      expanded_bits,
-                      &opcode_path);
+                     ? get_values_from_icache : do_not_use_icache));
+  print_semantic_body (file, instruction, expanded_bits, &opcode_path);
   if (options.gen.direct_access)
     print_icache_body (file,
                       instruction,
@@ -494,9 +486,8 @@ print_jump_insn (lf *file,
                       cache_rules,
                       undef_variables,
                       (options.gen.icache
-                       ? get_values_from_icache
-                       : do_not_use_icache));
-  print_jump(file, 1/*is tail*/);
+                       ? get_values_from_icache : do_not_use_icache));
+  print_jump (file, 1 /*is tail */ );
   lf_indent (file, -2);
   lf_printf (file, "}\n");
 }
@@ -505,18 +496,14 @@ print_jump_insn (lf *file,
 
 #if 0
 static void
-print_jump_definition (lf *file,
-                      gen_entry *entry,
-                      int depth,
-                      void *data)
+print_jump_definition (lf *file, gen_entry *entry, int depth, void *data)
 {
-  cache_entry *cache_rules = (cache_entry*)data;
+  cache_entry *cache_rules = (cache_entry *) data;
   if (entry->opcode_rule->with_duplicates)
     {
       ASSERT (entry->nr_insns == 1
              && entry->opcode == NULL
-             && entry->parent != NULL
-             && entry->parent->opcode != NULL);
+             && entry->parent != NULL && entry->parent->opcode != NULL);
       ASSERT (entry->nr_insns == 1
              && entry->opcode == NULL
              && entry->parent != NULL
@@ -524,17 +511,11 @@ print_jump_definition (lf *file,
              && entry->parent->opcode_rule != NULL);
       print_jump_insn (file,
                       entry->insns->insn,
-                      entry->expanded_bits,
-                      entry->opcode,
-                      cache_rules);
+                      entry->expanded_bits, entry->opcode, cache_rules);
     }
-  else 
+  else
     {
-      print_jump_insn (file,
-                      entry->insns->insn,
-                      NULL,
-                      NULL,
-                      cache_rules);
+      print_jump_insn (file, entry->insns->insn, NULL, NULL, cache_rules);
     }
 }
 #endif
@@ -542,9 +523,7 @@ print_jump_definition (lf *file,
 
 #if 0
 static void
-print_jump_internal_function (lf *file,
-                             function_entry *function,
-                             void *data)
+print_jump_internal_function (lf *file, function_entry * function, void *data)
 {
   if (function->is_internal)
     {
@@ -577,9 +556,7 @@ print_jump_internal_function (lf *file,
 #if 0
 static void
 print_jump_body (lf *file,
-                gen_entry *entry,
-                insn_table *isa,
-                cache_entry *cache_rules)
+                gen_entry *entry, insn_table *isa, cache_entry *cache_rules)
 {
   lf_printf (file, "{\n");
   lf_indent (file, +2);
@@ -596,10 +573,10 @@ print_jump_body (lf *file,
     {
       lf_putstr (file, "int current_cpu = -1;\n");
     }
-  
+
   /* all the switches and tables - they know about jumping */
   print_idecode_lookups (file, entry, cache_rules);
-  
+
   /* start the simulation up */
   if (options.gen.icache)
     {
@@ -610,17 +587,17 @@ print_jump_body (lf *file,
       lf_putstr (file, "    cpu_flush_icache(processors[cpu_nr]);\n");
       lf_putstr (file, "}\n");
     }
-  
+
   lf_putstr (file, "\n");
   lf_putstr (file, "psim_set_halt_and_restart(system, &halt, &restart);\n");
-  
+
   lf_putstr (file, "\n");
   lf_putstr (file, "if (setjmp(halt))\n");
   lf_putstr (file, "  return;\n");
-  
+
   lf_putstr (file, "\n");
   lf_putstr (file, "setjmp(restart);\n");
-  
+
   lf_putstr (file, "\n");
   if (!options.gen.smp)
     {
@@ -631,7 +608,7 @@ print_jump_body (lf *file,
     {
       lf_putstr (file, "current_cpu = psim_last_cpu(system);\n");
     }
-  
+
   if (!options.gen.icache)
     {
       lf_printf (file, "\n");
@@ -639,36 +616,34 @@ print_jump_body (lf *file,
       lf_printf (file, "engine:\n");
       lf_indent (file, +1);
     }
-  
-  print_jump(file, 0/*is_tail*/);
-  
+
+  print_jump (file, 0 /*is_tail */ );
+
   if (options.gen.icache)
     {
       lf_indent (file, -1);
       lf_printf (file, "cache_miss:\n");
       lf_indent (file, +1);
     }
-  
-         print_engine_issue_prefix_hook (file);
+
+  print_engine_issue_prefix_hook (file);
   lf_putstr (file, "instruction\n");
-  lf_putstr (file, "  = vm_instruction_map_read(cpu_instruction_map(processor),\n");
+  lf_putstr (file,
+            "  = vm_instruction_map_read(cpu_instruction_map(processor),\n");
   lf_putstr (file, "                            processor, nia);\n");
   print_engine_issue_prefix_hook (file);
   print_idecode_body (file, entry, "/*IGORE*/");
   print_engine_issue_postfix_hook (file);
-  
+
   /* print out a table of all the internals functions */
   function_entry_traverse (file, isa->functions,
-                          print_jump_internal_function,
-                          NULL);
-  
+                          print_jump_internal_function, NULL);
+
   /* print out a table of all the instructions */
   ERROR ("Use the list of semantic functions, not travere_tree");
-  gen_entry_traverse_tree (file, entry,
-                          1,
-                          NULL, /* start */
-                          print_jump_definition, /* leaf */
-                          NULL, /* end */
+  gen_entry_traverse_tree (file, entry, 1, NULL,       /* start */
+                          print_jump_definition,       /* leaf */
+                          NULL,        /* end */
                           cache_rules);
   lf_indent (file, -2);
   lf_printf (file, "}\n");
@@ -698,11 +673,8 @@ print_engine_run_function_header (lf *file,
       lf_printf (file, "void (*");
       break;
     }
-  indent = print_function_name (file,
-                               "run",
-                               NULL, /* format name */
-                               processor,
-                               NULL, /* expanded bits */
+  indent = print_function_name (file, "run", NULL,     /* format name */
+                               processor, NULL,        /* expanded bits */
                                function_name_prefix_engine);
   switch (decl_type)
     {
@@ -739,9 +711,7 @@ print_engine_run_function_header (lf *file,
 
 void
 gen_engine_h (lf *file,
-             gen_table *gen,
-             insn_table *isa,
-             cache_entry *cache_rules)
+             gen_table *gen, insn_table *isa, cache_entry *cache_rules)
 {
   gen_list *entry;
   for (entry = gen->tables; entry != NULL; entry = entry->next)
@@ -749,17 +719,14 @@ gen_engine_h (lf *file,
       print_engine_run_function_header (file,
                                        (options.gen.multi_sim
                                         ? entry->model->name
-                                        : NULL),
-                                       is_function_declaration);
+                                        : NULL), is_function_declaration);
     }
 }
 
 
 void
-gen_engine_c(lf *file,
-            gen_table *gen,
-            insn_table *isa,
-            cache_entry *cache_rules)
+gen_engine_c (lf *file,
+             gen_table *gen, insn_table *isa, cache_entry *cache_rules)
 {
   gen_list *entry;
   /* the intro */
@@ -778,24 +745,22 @@ gen_engine_c(lf *file,
        {
        case generate_calls:
          print_idecode_lookups (file, entry->table, cache_rules);
-         
+
          /* output the main engine routine */
          print_engine_run_function_header (file,
                                            (options.gen.multi_sim
                                             ? entry->model->name
-                                            : NULL),
-                                           is_function_definition);
+                                            : NULL), is_function_definition);
          print_run_body (file, entry->table);
          break;
-         
+
        case generate_jumps:
          ERROR ("Jumps currently unimplemented");
 #if 0
          print_engine_run_function_header (file,
                                            entry->processor,
                                            is_function_definition);
-         print_jump_body (file, entry->table,
-                          isa, cache_rules);
+         print_jump_body (file, entry->table, isa, cache_rules);
 #endif
          break;
        }
index 9dbd87abbd5dfe6afef49389470bc2bbd638625f..8f6c030375577f7ce12616ce5d104e753fcd0149 100644 (file)
@@ -1,37 +1,31 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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.  */
 
 extern void gen_engine_h
-(lf *file,
- gen_table *gen,
- insn_table *isa,
- cache_entry *cache_rules);
+  (lf *file, gen_table *gen, insn_table *isa, cache_entry *cache_rules);
 
 extern void gen_engine_c
-(lf *file,
- gen_table *gen,
- insn_table *isa,
- cache_entry *cache_rules);
+  (lf *file, gen_table *gen, insn_table *isa, cache_entry *cache_rules);
 
 extern void print_engine_run_function_header
-(lf *file,
- char *processor,
- function_decl_type decl_type);
-
+  (lf *file, char *processor, function_decl_type decl_type);
index 5ec1e73bad730d2734f36eabf625bbb4dbb083b7..693a646e08c8817d2e741a7a779dc6e1d7897d34 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 #include "misc.h"
@@ -44,13 +47,12 @@ print_icache_function_header (lf *file,
                              int is_function_definition,
                              int nr_prefetched_words)
 {
-  lf_printf(file, "\n");
+  lf_printf (file, "\n");
   lf_print__function_type_function (file, print_icache_function_type,
                                    "EXTERN_ICACHE", " ");
   print_function_name (file,
                       basename, format_name, NULL,
-                      expanded_bits,
-                      function_name_prefix_icache);
+                      expanded_bits, function_name_prefix_icache);
   lf_printf (file, "\n(");
   print_icache_function_formal (file, nr_prefetched_words);
   lf_printf (file, ")");
@@ -62,16 +64,15 @@ print_icache_function_header (lf *file,
 
 void
 print_icache_declaration (lf *file,
-                         insn_entry *insn,
+                         insn_entry * insn,
                          opcode_bits *expanded_bits,
-                         insn_opcodes *opcodes,
-                         int nr_prefetched_words)
+                         insn_opcodes *opcodes, int nr_prefetched_words)
 {
   print_icache_function_header (file,
                                insn->name,
                                insn->format_name,
                                expanded_bits,
-                               0/* is not function definition */,
+                               0 /* is not function definition */ ,
                                nr_prefetched_words);
 }
 
@@ -96,7 +97,7 @@ print_icache_extraction (lf *file,
   char *reason;
   ASSERT (format_name != NULL);
   ASSERT (entry_name != NULL);
-  
+
   /* figure out exactly what should be going on here */
   switch (cache_type)
     {
@@ -126,30 +127,27 @@ print_icache_extraction (lf *file,
        {
          reason = "cache";
          what_to_declare = ((what_to_do & put_values_in_icache)
-                            ? declare_variables
-                            : what_to_declare);
+                            ? declare_variables : what_to_declare);
        }
       else
        return;
       break;
     default:
-      abort (); /* Bad switch.  */
+      abort ();                        /* Bad switch.  */
     }
-  
+
   /* For the type, default to a simple unsigned */
   if (entry_type == NULL || strlen (entry_type) == 0)
     entry_type = "unsigned";
-  
+
   /* look through the set of expanded sub fields to see if this field
      has been given a constant value */
-  for (bits = expanded_bits;
-       bits != NULL;
-       bits = bits->next)
+  for (bits = expanded_bits; bits != NULL; bits = bits->next)
     {
       if (bits->field == cur_field)
        break;
     }
-  
+
   /* Define a storage area for the cache element */
   switch (what_to_declare)
     {
@@ -177,8 +175,8 @@ print_icache_extraction (lf *file,
       lf_printf (file, "%s const %s UNUSED = ", entry_type, entry_name);
       break;
     }
-  
-  
+
+
   /* define a value for that storage area as determined by what is in
      the cache */
   if (bits != NULL
@@ -190,11 +188,11 @@ print_icache_extraction (lf *file,
     {
       /* The cache rule is specifying what to do with a simple
          instruction field.
-        
-        Because of instruction expansion, the field is either a
-        constant value or equal to the specified constant (boolean
-        comparison). (The latter indicated by bits->value == 0).
-        
+
+         Because of instruction expansion, the field is either a
+         constant value or equal to the specified constant (boolean
+         comparison). (The latter indicated by bits->value == 0).
+
          The case of a field not being equal to the specified boolean
          value is handled later. */
       expression = "constant field";
@@ -223,52 +221,55 @@ print_icache_extraction (lf *file,
                       "_is_",
                       strlen ("_is_")) == 0
           && ((bits->opcode->is_boolean
-               && ((unsigned) atol (entry_name + strlen (single_insn_field) + strlen ("_is_"))
-                   == bits->opcode->boolean_constant))
+               && ((unsigned)
+                   atol (entry_name + strlen (single_insn_field) +
+                         strlen ("_is_")) == bits->opcode->boolean_constant))
               || (!bits->opcode->is_boolean)))
     {
       /* The cache rule defines an entry for the comparison between a
-        single instruction field and a constant.  The value of the
-        comparison in someway matches that of the opcode field that
-        was made constant through expansion. */
+         single instruction field and a constant.  The value of the
+         comparison in someway matches that of the opcode field that
+         was made constant through expansion. */
       expression = "constant compare";
       if (bits->opcode->is_boolean)
        {
          lf_printf (file, "%d /* %s == %d */",
                     bits->value == 0,
-                    single_insn_field,
-                    bits->opcode->boolean_constant);
+                    single_insn_field, bits->opcode->boolean_constant);
        }
       else if (bits->opcode->last < bits->field->last)
        {
          lf_printf (file, "%d /* %s == %d */",
-                    (atol (entry_name + strlen (single_insn_field) + strlen ("_is_"))
-                     == (bits->value << (bits->field->last - bits->opcode->last))),
+                    (atol
+                     (entry_name + strlen (single_insn_field) +
+                      strlen ("_is_")) ==
+                     (bits->
+                      value << (bits->field->last - bits->opcode->last))),
                     single_insn_field,
-                    (bits->value << (bits->field->last - bits->opcode->last)));
+                    (bits->
+                     value << (bits->field->last - bits->opcode->last)));
        }
       else
        {
          lf_printf (file, "%d /* %s == %d */",
-                    (atol (entry_name + strlen (single_insn_field) + strlen ("_is_"))
-                     == bits->value),
-                    single_insn_field,
+                    (atol
+                     (entry_name + strlen (single_insn_field) +
+                      strlen ("_is_")) == bits->value), single_insn_field,
                     bits->value);
        }
     }
   else
     {
       /* put the field in the local variable, possibly also enter it
-        into the cache */
+         into the cache */
       expression = "extraction";
       /* handle the cache */
       if ((what_to_do & get_values_from_icache)
          || (what_to_do & put_values_in_icache))
        {
          lf_printf (file, "cache_entry->crack.%s.%s",
-                    format_name,
-                    entry_name);
-         if (what_to_do & put_values_in_icache) /* also put it in the cache? */
+                    format_name, entry_name);
+         if (what_to_do & put_values_in_icache)        /* also put it in the cache? */
            {
              lf_printf (file, " = ");
            }
@@ -279,10 +280,11 @@ print_icache_extraction (lf *file,
          if (cur_field != NULL)
            {
              if (entry_expression != NULL && strlen (entry_expression) > 0)
-               error (line, "Instruction field entry with nonempty expression\n");
-             if (cur_field->first == 0 && cur_field->last == options.insn_bit_size - 1)
-               lf_printf (file, "(instruction_%d)",
-                          cur_field->word_nr);
+               error (line,
+                      "Instruction field entry with nonempty expression\n");
+             if (cur_field->first == 0
+                 && cur_field->last == options.insn_bit_size - 1)
+               lf_printf (file, "(instruction_%d)", cur_field->word_nr);
              else if (cur_field->last == options.insn_bit_size - 1)
                lf_printf (file, "MASKED%d (instruction_%d, %d, %d)",
                           options.insn_bit_size,
@@ -302,7 +304,7 @@ print_icache_extraction (lf *file,
            }
        }
     }
-  
+
   switch (what_to_declare)
     {
     case define_variables:
@@ -322,12 +324,11 @@ print_icache_extraction (lf *file,
 
 void
 print_icache_body (lf *file,
-                  insn_entry *instruction,
+                  insn_entry * instruction,
                   opcode_bits *expanded_bits,
                   cache_entry *cache_rules,
                   icache_decl_type what_to_declare,
-                  icache_body_type what_to_do,
-                  int nr_prefetched_words)
+                  icache_body_type what_to_do, int nr_prefetched_words)
 {
   /* extract instruction fields */
   lf_printf (file, "/* Extraction: %s\n", instruction->name);
@@ -362,8 +363,8 @@ print_icache_body (lf *file,
     }
   lf_printf (file, "\n     ");
   print_insn_words (file, instruction);
-  lf_printf(file, " */\n");
-  
+  lf_printf (file, " */\n");
+
   /* pass zero - fetch from memory any missing instructions.
 
      Some of the instructions will have already been fetched (in the
@@ -384,13 +385,12 @@ print_icache_body (lf *file,
          case define_variables:
          case declare_variables:
            for (word_nr = nr_prefetched_words;
-                word_nr < instruction->nr_words;
-                word_nr++)
+                word_nr < instruction->nr_words; word_nr++)
              {
                /* FIXME - should be using print_icache_extraction? */
-               lf_printf (file, "%sinstruction_word instruction_%d UNUSED = ",
-                          options.module.global.prefix.l,
-                          word_nr);
+               lf_printf (file,
+                          "%sinstruction_word instruction_%d UNUSED = ",
+                          options.module.global.prefix.l, word_nr);
                lf_printf (file, "IMEM%d_IMMED (cia, %d)",
                           options.insn_bit_size, word_nr);
                lf_printf (file, ";\n");
@@ -401,21 +401,17 @@ print_icache_body (lf *file,
 
   /* if putting the instruction words in the cache, define references
      for them */
-  if (options.gen.insn_in_icache) {
-    /* FIXME: is the instruction_word type correct? */
-    print_icache_extraction (file,
-                            instruction->format_name,
-                            cache_value,
-                            "insn", /* name */
-                            "instruction_word", /* type */
-                            "instruction", /* expression */
-                            NULL, /* origin */
-                            NULL, /* line */
-                            NULL, NULL,
-                            what_to_declare,
-                            what_to_do);
-  }
-  lf_printf(file, "\n");
+  if (options.gen.insn_in_icache)
+    {
+      /* FIXME: is the instruction_word type correct? */
+      print_icache_extraction (file, instruction->format_name, cache_value, "insn",    /* name */
+                              "instruction_word",      /* type */
+                              "instruction",   /* expression */
+                              NULL,    /* origin */
+                              NULL,    /* line */
+                              NULL, NULL, what_to_declare, what_to_do);
+    }
+  lf_printf (file, "\n");
 
   /* pass one - process instruction fields.
 
@@ -423,9 +419,7 @@ print_icache_body (lf *file,
      the cache */
   {
     insn_word_entry *word;
-    for (word = instruction->words;
-        word != NULL;
-        word = word->next)
+    for (word = instruction->words; word != NULL; word = word->next)
       {
        insn_field_entry *cur_field;
        for (cur_field = word->first;
@@ -441,12 +435,12 @@ print_icache_body (lf *file,
                   overriding the default cache action for an
                   instruction field */
                for (cache_rule = cache_rules;
-                    cache_rule != NULL;
-                    cache_rule = cache_rule->next)
+                    cache_rule != NULL; cache_rule = cache_rule->next)
                  {
                    if (filter_is_subset (instruction->field_names,
                                          cache_rule->original_fields)
-                       && strcmp (cache_rule->name, cur_field->val_string) == 0)
+                       && strcmp (cache_rule->name,
+                                  cur_field->val_string) == 0)
                      {
                        value_type = cache_rule->entry_type;
                        value_line = cache_rule->line;
@@ -460,19 +454,15 @@ print_icache_body (lf *file,
                      }
                  }
                /* Define an entry for the field within the
-                   instruction */
-               print_icache_extraction (file,
-                                        instruction->format_name,
-                                        value_type,
-                                        cur_field->val_string, /* name */
-                                        NULL, /* type */
-                                        NULL, /* expression */
-                                        cur_field->val_string, /* insn field */
+                  instruction */
+               print_icache_extraction (file, instruction->format_name, value_type, cur_field->val_string,     /* name */
+                                        NULL,  /* type */
+                                        NULL,  /* expression */
+                                        cur_field->val_string, /* insn field */
                                         value_line,
                                         cur_field,
                                         expanded_bits,
-                                        what_to_declare,
-                                        what_to_do);
+                                        what_to_declare, what_to_do);
              }
          }
       }
@@ -482,29 +472,20 @@ print_icache_body (lf *file,
   {
     cache_entry *cache_rule;
     for (cache_rule = cache_rules;
-        cache_rule != NULL;
-        cache_rule = cache_rule->next)
+        cache_rule != NULL; cache_rule = cache_rule->next)
       {
        if (filter_is_subset (instruction->field_names,
                              cache_rule->original_fields)
-           && !filter_is_member (instruction->field_names,
-                                 cache_rule->name))
+           && !filter_is_member (instruction->field_names, cache_rule->name))
          {
-           char *single_field = filter_next (cache_rule->original_fields, "");
-           if (filter_next (cache_rule->original_fields, single_field) != NULL)
+           char *single_field =
+             filter_next (cache_rule->original_fields, "");
+           if (filter_next (cache_rule->original_fields, single_field) !=
+               NULL)
              single_field = NULL;
-           print_icache_extraction (file,
-                                    instruction->format_name,
-                                    cache_rule->entry_type,
-                                    cache_rule->name,
-                                    cache_rule->type,
-                                    cache_rule->expression,
-                                    single_field,
-                                    cache_rule->line,
-                                    NULL, /* cur_field */
+           print_icache_extraction (file, instruction->format_name, cache_rule->entry_type, cache_rule->name, cache_rule->type, cache_rule->expression, single_field, cache_rule->line, NULL,  /* cur_field */
                                     expanded_bits,
-                                    what_to_declare,
-                                    what_to_do);
+                                    what_to_declare, what_to_do);
          }
       }
   }
@@ -515,7 +496,8 @@ print_icache_body (lf *file,
 
 
 typedef struct _form_fields form_fields;
-struct _form_fields {
+struct _form_fields
+{
   char *name;
   filter *fields;
   form_fields *next;
@@ -526,134 +508,131 @@ insn_table_cache_fields (insn_table *isa)
 {
   form_fields *forms = NULL;
   insn_entry *insn;
-  for (insn = isa->insns;
-       insn != NULL;
-       insn = insn->next) {
-    form_fields **form = &forms;
-    while (1)
-      {
-       if (*form == NULL)
-         {
-           /* new format name, add it */
-           form_fields *new_form = ZALLOC (form_fields);
-           new_form->name = insn->format_name;
-           filter_add (&new_form->fields, insn->field_names);
-           *form = new_form;
-           break;
-         }
-       else if (strcmp ((*form)->name, insn->format_name) == 0)
-         {
-           /* already present, add field names to the existing list */
-           filter_add (&(*form)->fields, insn->field_names);
-           break;
-         }
-       form = &(*form)->next;
-      }
-  }
+  for (insn = isa->insns; insn != NULL; insn = insn->next)
+    {
+      form_fields **form = &forms;
+      while (1)
+       {
+         if (*form == NULL)
+           {
+             /* new format name, add it */
+             form_fields *new_form = ZALLOC (form_fields);
+             new_form->name = insn->format_name;
+             filter_add (&new_form->fields, insn->field_names);
+             *form = new_form;
+             break;
+           }
+         else if (strcmp ((*form)->name, insn->format_name) == 0)
+           {
+             /* already present, add field names to the existing list */
+             filter_add (&(*form)->fields, insn->field_names);
+             break;
+           }
+         form = &(*form)->next;
+       }
+    }
   return forms;
 }
 
 
 
 extern void
-print_icache_struct (lf *file,
-                    insn_table *isa,
-                    cache_entry *cache_rules)
+print_icache_struct (lf *file, insn_table *isa, cache_entry *cache_rules)
 {
   /* Create a list of all the different instruction formats with their
      corresponding field names. */
   form_fields *formats = insn_table_cache_fields (isa);
-  
+
   lf_printf (file, "\n");
   lf_printf (file, "#define WITH_%sIDECODE_CACHE_SIZE %d\n",
             options.module.global.prefix.u,
             (options.gen.icache ? options.gen.icache_size : 0));
   lf_printf (file, "\n");
-  
+
   /* create an instruction cache if being used */
-  if (options.gen.icache) {
-    lf_printf (file, "typedef struct _%sidecode_cache {\n",
-              options.module.global.prefix.l);
-    lf_indent (file, +2);
+  if (options.gen.icache)
     {
-      form_fields *format;
-      lf_printf (file, "unsigned_word address;\n");
-      lf_printf (file, "void *semantic;\n");
-      lf_printf (file, "union {\n");
+      lf_printf (file, "typedef struct _%sidecode_cache {\n",
+                options.module.global.prefix.l);
       lf_indent (file, +2);
-      for (format = formats;
-          format != NULL;
-          format = format->next)
-       {
-         lf_printf (file, "struct {\n");
-         lf_indent (file, +2);
+      {
+       form_fields *format;
+       lf_printf (file, "unsigned_word address;\n");
+       lf_printf (file, "void *semantic;\n");
+       lf_printf (file, "union {\n");
+       lf_indent (file, +2);
+       for (format = formats; format != NULL; format = format->next)
          {
-           cache_entry *cache_rule;
-           char *field;
-           /* space for any instruction words */
-           if (options.gen.insn_in_icache)
-             lf_printf (file, "instruction_word insn[%d];\n", isa->max_nr_words);
-           /* define an entry for any applicable cache rules */
-           for (cache_rule = cache_rules;
-                cache_rule != NULL;
-                cache_rule = cache_rule->next)
-             {
-               /* nb - sort of correct - should really check against
-                   individual instructions */
-               if (filter_is_subset (format->fields, cache_rule->original_fields))
-                 {
-                   char *memb;
-                   lf_printf (file, "%s %s;",
-                              (cache_rule->type == NULL
-                               ? "unsigned" 
-                               : cache_rule->type),
-                              cache_rule->name);
-                   lf_printf (file, " /*");
-                   for (memb = filter_next (cache_rule->original_fields, "");
-                        memb != NULL;
-                        memb = filter_next (cache_rule->original_fields, memb))
-                     {
-                       lf_printf (file, " %s", memb);
-                     }
-                   lf_printf (file, " */\n");
-                 }
-             }
-           /* define an entry for any fields not covered by a cache rule */
-           for (field = filter_next (format->fields, "");
-                field != NULL;
-                field = filter_next (format->fields, field))
-             {
-               cache_entry *cache_rule;
-               int found_rule = 0;
-               for (cache_rule = cache_rules;
-                    cache_rule != NULL;
-                    cache_rule = cache_rule->next)
-                 {
-                   if (strcmp (cache_rule->name, field) == 0)
-                     {
-                       found_rule = 1;
-                       break;
-                     }
-                 }
-               if (!found_rule)
-                 lf_printf (file, "unsigned %s; /* default */\n", field);
-             }
+           lf_printf (file, "struct {\n");
+           lf_indent (file, +2);
+           {
+             cache_entry *cache_rule;
+             char *field;
+             /* space for any instruction words */
+             if (options.gen.insn_in_icache)
+               lf_printf (file, "instruction_word insn[%d];\n",
+                          isa->max_nr_words);
+             /* define an entry for any applicable cache rules */
+             for (cache_rule = cache_rules;
+                  cache_rule != NULL; cache_rule = cache_rule->next)
+               {
+                 /* nb - sort of correct - should really check against
+                    individual instructions */
+                 if (filter_is_subset
+                     (format->fields, cache_rule->original_fields))
+                   {
+                     char *memb;
+                     lf_printf (file, "%s %s;",
+                                (cache_rule->type == NULL
+                                 ? "unsigned"
+                                 : cache_rule->type), cache_rule->name);
+                     lf_printf (file, " /*");
+                     for (memb =
+                          filter_next (cache_rule->original_fields, "");
+                          memb != NULL;
+                          memb =
+                          filter_next (cache_rule->original_fields, memb))
+                       {
+                         lf_printf (file, " %s", memb);
+                       }
+                     lf_printf (file, " */\n");
+                   }
+               }
+             /* define an entry for any fields not covered by a cache rule */
+             for (field = filter_next (format->fields, "");
+                  field != NULL; field = filter_next (format->fields, field))
+               {
+                 cache_entry *cache_rule;
+                 int found_rule = 0;
+                 for (cache_rule = cache_rules;
+                      cache_rule != NULL; cache_rule = cache_rule->next)
+                   {
+                     if (strcmp (cache_rule->name, field) == 0)
+                       {
+                         found_rule = 1;
+                         break;
+                       }
+                   }
+                 if (!found_rule)
+                   lf_printf (file, "unsigned %s; /* default */\n", field);
+               }
+           }
+           lf_indent (file, -2);
+           lf_printf (file, "} %s;\n", format->name);
          }
-         lf_indent (file, -2);
-         lf_printf (file, "} %s;\n", format->name);
-       }
+       lf_indent (file, -2);
+       lf_printf (file, "} crack;\n");
+      }
       lf_indent (file, -2);
-      lf_printf (file, "} crack;\n");
+      lf_printf (file, "} %sidecode_cache;\n",
+                options.module.global.prefix.l);
     }
-    lf_indent (file, -2);
-    lf_printf (file, "} %sidecode_cache;\n", options.module.global.prefix.l);
-  }
   else
     {
       /* alernativly, since no cache, emit a dummy definition for
-        idecode_cache so that code refering to the type can still compile */
-      lf_printf(file, "typedef void %sidecode_cache;\n",
-               options.module.global.prefix.l);
+         idecode_cache so that code refering to the type can still compile */
+      lf_printf (file, "typedef void %sidecode_cache;\n",
+                options.module.global.prefix.l);
     }
   lf_printf (file, "\n");
 }
@@ -662,43 +641,40 @@ print_icache_struct (lf *file,
 
 static void
 print_icache_function (lf *file,
-                      insn_entry *instruction,
+                      insn_entry * instruction,
                       opcode_bits *expanded_bits,
                       insn_opcodes *opcodes,
-                      cache_entry *cache_rules,
-                      int nr_prefetched_words)
+                      cache_entry *cache_rules, int nr_prefetched_words)
 {
   int indent;
 
   /* generate code to enter decoded instruction into the icache */
-  lf_printf(file, "\n");
+  lf_printf (file, "\n");
   lf_print__function_type_function (file, print_icache_function_type,
                                    "EXTERN_ICACHE", "\n");
   indent = print_function_name (file,
                                instruction->name,
                                instruction->format_name,
                                NULL,
-                               expanded_bits,
-                               function_name_prefix_icache);
+                               expanded_bits, function_name_prefix_icache);
   indent += lf_printf (file, " ");
   lf_indent (file, +indent);
   lf_printf (file, "(");
   print_icache_function_formal (file, nr_prefetched_words);
   lf_printf (file, ")\n");
   lf_indent (file, -indent);
-  
+
   /* function header */
   lf_printf (file, "{\n");
   lf_indent (file, +2);
-  
+
   print_my_defines (file,
                    instruction->name,
-                   instruction->format_name,
-                   expanded_bits);
-  print_itrace (file, instruction, 1/*putting-value-in-cache*/);
-  
+                   instruction->format_name, expanded_bits);
+  print_itrace (file, instruction, 1 /*putting-value-in-cache */ );
+
   print_idecode_validate (file, instruction, opcodes);
-  
+
   lf_printf (file, "\n");
   lf_printf (file, "{\n");
   lf_indent (file, +2);
@@ -713,30 +689,25 @@ print_icache_function (lf *file,
                      : declare_variables),
                     (options.gen.semantic_icache
                      ? both_values_and_icache
-                     : put_values_in_icache),
-                    nr_prefetched_words);
-  
+                     : put_values_in_icache), nr_prefetched_words);
+
   lf_printf (file, "\n");
   lf_printf (file, "cache_entry->address = cia;\n");
   lf_printf (file, "cache_entry->semantic = ");
   print_function_name (file,
                       instruction->name,
                       instruction->format_name,
-                      NULL,
-                      expanded_bits,
-                      function_name_prefix_semantics);
+                      NULL, expanded_bits, function_name_prefix_semantics);
   lf_printf (file, ";\n");
   lf_printf (file, "\n");
 
-  if (options.gen.semantic_icache) {
-    lf_printf (file, "/* semantic routine */\n");
-    print_semantic_body (file,
-                        instruction,
-                        expanded_bits,
-                        opcodes);
-    lf_printf (file, "return nia;\n");
-  }
-  
+  if (options.gen.semantic_icache)
+    {
+      lf_printf (file, "/* semantic routine */\n");
+      print_semantic_body (file, instruction, expanded_bits, opcodes);
+      lf_printf (file, "return nia;\n");
+    }
+
   if (!options.gen.semantic_icache)
     {
       lf_printf (file, "/* return the function proper */\n");
@@ -745,11 +716,10 @@ print_icache_function (lf *file,
                           instruction->name,
                           instruction->format_name,
                           NULL,
-                          expanded_bits,
-                          function_name_prefix_semantics);
+                          expanded_bits, function_name_prefix_semantics);
       lf_printf (file, ";\n");
     }
-  
+
   if (options.gen.direct_access)
     {
       print_icache_body (file,
@@ -759,10 +729,9 @@ print_icache_function (lf *file,
                         undef_variables,
                         (options.gen.semantic_icache
                          ? both_values_and_icache
-                         : put_values_in_icache),
-                        nr_prefetched_words);
+                         : put_values_in_icache), nr_prefetched_words);
     }
-  
+
   lf_indent (file, -2);
   lf_printf (file, "}\n");
   lf_indent (file, -2);
@@ -772,25 +741,22 @@ print_icache_function (lf *file,
 
 void
 print_icache_definition (lf *file,
-                        insn_entry *insn,
+                        insn_entry * insn,
                         opcode_bits *expanded_bits,
                         insn_opcodes *opcodes,
-                        cache_entry *cache_rules,
-                        int nr_prefetched_words)
+                        cache_entry *cache_rules, int nr_prefetched_words)
 {
   print_icache_function (file,
                         insn,
                         expanded_bits,
-                        opcodes,
-                        cache_rules,
-                        nr_prefetched_words);
+                        opcodes, cache_rules, nr_prefetched_words);
 }
 
 
 
 void
 print_icache_internal_function_declaration (lf *file,
-                                           function_entry *function,
+                                           function_entry * function,
                                            void *data)
 {
   ASSERT (options.gen.icache);
@@ -801,10 +767,7 @@ print_icache_internal_function_declaration (lf *file,
                                        "INLINE_ICACHE", "\n");
       print_function_name (file,
                           function->name,
-                          NULL,
-                          NULL,
-                          NULL,
-                          function_name_prefix_icache);
+                          NULL, NULL, NULL, function_name_prefix_icache);
       lf_printf (file, "\n(");
       print_icache_function_formal (file, 0);
       lf_printf (file, ");\n");
@@ -814,7 +777,7 @@ print_icache_internal_function_declaration (lf *file,
 
 void
 print_icache_internal_function_definition (lf *file,
-                                          function_entry *function,
+                                          function_entry * function,
                                           void *data)
 {
   ASSERT (options.gen.icache);
@@ -825,10 +788,7 @@ print_icache_internal_function_definition (lf *file,
                                        "INLINE_ICACHE", "\n");
       print_function_name (file,
                           function->name,
-                          NULL,
-                          NULL,
-                          NULL,
-                          function_name_prefix_icache);
+                          NULL, NULL, NULL, function_name_prefix_icache);
       lf_printf (file, "\n(");
       print_icache_function_formal (file, 0);
       lf_printf (file, ")\n");
@@ -839,7 +799,8 @@ print_icache_internal_function_definition (lf *file,
        {
          lf_print__line_ref (file, function->code->line);
          table_print_code (file, function->code);
-         lf_printf (file, "error (\"Internal function must longjump\\n\");\n");
+         lf_printf (file,
+                    "error (\"Internal function must longjump\\n\");\n");
          lf_printf (file, "return 0;\n");
        }
       else
@@ -848,12 +809,10 @@ print_icache_internal_function_definition (lf *file,
          print_function_name (file,
                               function->name,
                               NULL,
-                              NULL,
-                              NULL,
-                              function_name_prefix_semantics);
+                              NULL, NULL, function_name_prefix_semantics);
          lf_printf (file, ";\n");
        }
-      
+
       lf_print__internal_ref (file);
       lf_indent (file, -2);
       lf_printf (file, "}\n");
index 34c73f622763d951f60ec5ed05d8a71c7f0e1cd0..e2eec4395788692a21da604f57904225c24d8867 100644 (file)
@@ -1,67 +1,69 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 /* Output code to manipulate the instruction cache: either create it
    or reference it */
 
-typedef enum {
+typedef enum
+{
   declare_variables,
   define_variables,
   undef_variables,
-} icache_decl_type;
+}
+icache_decl_type;
 
-typedef enum {
+typedef enum
+{
   do_not_use_icache = 0,
   get_values_from_icache = 0x1,
   put_values_in_icache = 0x2,
   both_values_and_icache = 0x3,
-} icache_body_type;
+}
+icache_body_type;
 
 extern void print_icache_body
-(lf *file,
- insn_entry *instruction,
- opcode_bits *expanded_bits,
- cache_entry *cache_rules,
- icache_decl_type what_to_declare,
- icache_body_type what_to_do,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * instruction,
+   opcode_bits *expanded_bits,
+   cache_entry *cache_rules,
+   icache_decl_type what_to_declare,
+   icache_body_type what_to_do, int nr_prefetched_words);
 
 
 /* Output an instruction cache decode function */
 
 extern void print_icache_declaration
-(lf *file,
- insn_entry *insn,
- opcode_bits *expanded_bits,
- insn_opcodes *opcodes,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * insn,
+   opcode_bits *expanded_bits,
+   insn_opcodes *opcodes, int nr_prefetched_words);
+
 extern void print_icache_definition
-(lf *file,
- insn_entry *insn,
- opcode_bits *expanded_bits,
- insn_opcodes *opcodes,
- cache_entry *cache_rules,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * insn,
+   opcode_bits *expanded_bits,
+   insn_opcodes *opcodes, cache_entry *cache_rules, int nr_prefetched_words);
 
 
 /* Output an instruction cache support function */
@@ -73,9 +75,7 @@ extern function_entry_handler print_icache_internal_function_definition;
 /* Output the instruction cache table data structure */
 
 extern void print_icache_struct
-(lf *file,
- insn_table *instructions,
- cache_entry *cache_rules);
+  (lf *file, insn_table *instructions, cache_entry *cache_rules);
 
 
 /* Output a single instructions decoder */
index a670e3d289bd571e77b95d587b1b09454d85e8f2..639b5631dddf2512ddc8b57941e74eb06347c749 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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.  */
+
 
 #include "misc.h"
 #include "lf.h"
 
 
 static void
-lf_print_opcodes (lf *file,
-                 gen_entry *table)
+lf_print_opcodes (lf *file, gen_entry *table)
 {
-  if (table != NULL)
+  if (table !=NULL)
     {
       while (1)
        {
          ASSERT (table->opcode != NULL);
          lf_printf (file, "_%d_%d",
-                    table->opcode->first,
-                    table->opcode->last);
-         if (table->parent == NULL) break;
+                    table->opcode->first, table->opcode->last);
+         if (table->parent == NULL)
+           break;
          lf_printf (file, "__%d", table->opcode_nr);
          table = table->parent;
        }
@@ -64,12 +67,12 @@ print_idecode_ifetch (lf *file,
 {
   int word_nr;
   for (word_nr = previous_nr_prefetched_words;
-       word_nr < current_nr_prefetched_words;
-       word_nr ++)
+       word_nr < current_nr_prefetched_words; word_nr++)
     {
-      lf_printf (file, "instruction_word instruction_%d = IMEM%d_IMMED (cia, %d);\n",
+      lf_printf (file,
+                "instruction_word instruction_%d = IMEM%d_IMMED (cia, %d);\n",
                 word_nr, options.insn_bit_size, word_nr);
-      
+
     }
 }
 
@@ -79,8 +82,7 @@ print_idecode_ifetch (lf *file,
 
 
 static void
-lf_print_table_name (lf *file,
-                    gen_entry *table)
+lf_print_table_name (lf *file, gen_entry *table)
 {
   lf_printf (file, "idecode_table");
   lf_print_opcodes (file, table);
@@ -89,9 +91,7 @@ lf_print_table_name (lf *file,
 
 
 static void
-print_idecode_table (lf *file,
-                    gen_entry *entry,
-                    const char *result)
+print_idecode_table (lf *file, gen_entry *entry, const char *result)
 {
   lf_printf (file, "/* prime the search */\n");
   lf_printf (file, "idecode_table_entry *table = ");
@@ -102,7 +102,7 @@ print_idecode_table (lf *file,
             i2target (options.hi_bit_nr, entry->opcode->first),
             i2target (options.hi_bit_nr, entry->opcode->last));
   lf_printf (file, "idecode_table_entry *table_entry = table + opcode;\n");
-  
+
   lf_printf (file, "\n");
   lf_printf (file, "/* iterate until a leaf */\n");
   lf_printf (file, "while (1) {\n");
@@ -125,7 +125,7 @@ print_idecode_table (lf *file,
   lf_printf (file, "    table_entry = table + opcode;\n");
   lf_printf (file, "  }\n");
   lf_printf (file, "}\n");
-  
+
   lf_printf (file, "\n");
   lf_printf (file, "/* call the leaf code */\n");
   if (options.gen.code == generate_jumps)
@@ -137,14 +137,16 @@ print_idecode_table (lf *file,
       lf_printf (file, "%s ", result);
       if (options.gen.icache)
        {
-         lf_printf (file, "(((idecode_icache*)table_entry->function_or_table)\n");
+         lf_printf (file,
+                    "(((idecode_icache*)table_entry->function_or_table)\n");
          lf_printf (file, "  (");
          print_icache_function_actual (file, 1);
          lf_printf (file, "));\n");
        }
       else
        {
-         lf_printf (file, "((idecode_semantic*)table_entry->function_or_table)\n");
+         lf_printf (file,
+                    "((idecode_semantic*)table_entry->function_or_table)\n");
          lf_printf (file, "  (");
          print_semantic_function_actual (file, 1);
          lf_printf (file, ");\n");
@@ -154,10 +156,7 @@ print_idecode_table (lf *file,
 
 
 static void
-print_idecode_table_start (lf *file,
-                          gen_entry *table,
-                          int depth,
-                          void *data)
+print_idecode_table_start (lf *file, gen_entry *table, int depth, void *data)
 {
   ASSERT (depth == 0);
   /* start of the table */
@@ -171,10 +170,7 @@ print_idecode_table_start (lf *file,
 }
 
 static void
-print_idecode_table_leaf (lf *file,
-                         gen_entry *entry,
-                         int depth,
-                         void *data)
+print_idecode_table_leaf (lf *file, gen_entry *entry, int depth, void *data)
 {
   gen_entry *master_entry;
   ASSERT (entry->parent != NULL);
@@ -234,9 +230,9 @@ print_idecode_table_leaf (lf *file,
       else
        {
          /* table `calling' another table */
-         lf_printf (file, "%d, ", options.insn_bit_size - entry->opcode->last - 1);
-         lf_printf (file, "MASK%d(%d,%d), ",
-                    options.insn_bit_size,
+         lf_printf (file, "%d, ",
+                    options.insn_bit_size - entry->opcode->last - 1);
+         lf_printf (file, "MASK%d(%d,%d), ", options.insn_bit_size,
                     i2target (options.hi_bit_nr, entry->opcode->first),
                     i2target (options.hi_bit_nr, entry->opcode->last));
          lf_printf (file, "0, ");
@@ -247,23 +243,20 @@ print_idecode_table_leaf (lf *file,
 }
 
 static void
-print_idecode_table_end (lf *file,
-                        gen_entry *table,
-                        int depth,
-                        void *data)
+print_idecode_table_end (lf *file, gen_entry *table, int depth, void *data)
 {
   ASSERT (depth == 0);
-  if (table->opcode_rule->gen == array_gen) {
-    lf_printf (file, "};\n");
-  }
+  if (table->opcode_rule->gen == array_gen)
+    {
+      lf_printf (file, "};\n");
+    }
 }
 
 /****************************************************************/
 
 
 static void
-print_goto_switch_name (lf *file,
-                       gen_entry *entry)
+print_goto_switch_name (lf *file, gen_entry *entry)
 {
   lf_printf (file, "case_");
   if (entry->opcode == NULL)
@@ -279,21 +272,19 @@ print_goto_switch_name (lf *file,
     }
   else
     {
-      lf_print_table_name(file, entry);
+      lf_print_table_name (file, entry);
     }
 }
 
 static void
 print_goto_switch_table_leaf (lf *file,
-                             gen_entry *entry,
-                             int depth,
-                             void *data)
+                             gen_entry *entry, int depth, void *data)
 {
   ASSERT (entry->parent != NULL);
   ASSERT (depth == 0);
   ASSERT (entry->parent->opcode_rule->gen == goto_switch_gen);
   ASSERT (entry->parent->opcode);
-  
+
   lf_printf (file, "/* %d */ &&", entry->opcode_nr);
   if (entry->combined_parent != NULL)
     print_goto_switch_name (file, entry->combined_parent);
@@ -303,8 +294,7 @@ print_goto_switch_table_leaf (lf *file,
 }
 
 static void
-print_goto_switch_break (lf *file,
-                        gen_entry *entry)
+print_goto_switch_break (lf *file, gen_entry *entry)
 {
   lf_printf (file, "goto break_");
   lf_print_table_name (file, entry->parent);
@@ -313,41 +303,31 @@ print_goto_switch_break (lf *file,
 
 
 static void
-print_goto_switch_table (lf *file,
-                        gen_entry *table)
+print_goto_switch_table (lf *file, gen_entry *table)
 {
   lf_printf (file, "const static void *");
   lf_print_table_name (file, table);
   lf_printf (file, "[] = {\n");
   lf_indent (file, +2);
-  gen_entry_traverse_tree (file, table,
-                          0,
-                          NULL/*start*/,
-                          print_goto_switch_table_leaf,
-                          NULL/*end*/,
-                          NULL/*data*/);
+  gen_entry_traverse_tree (file, table, 0, NULL /*start */ ,
+                          print_goto_switch_table_leaf, NULL /*end */ ,
+                          NULL /*data */ );
   lf_indent (file, -2);
   lf_printf (file, "};\n");
 }
 
 
-void print_idecode_switch
-(lf *file, 
- gen_entry *table,
- const char *result);
+void print_idecode_switch (lf *file, gen_entry *table, const char *result);
 
 static void
-print_idecode_switch_start (lf *file,
-                           gen_entry *table,
-                           int depth,
-                           void *data)
+print_idecode_switch_start (lf *file, gen_entry *table, int depth, void *data)
 {
   /* const char *result = data; */
   ASSERT (depth == 0);
   ASSERT (table->opcode_rule->gen == switch_gen
          || table->opcode_rule->gen == goto_switch_gen
          || table->opcode_rule->gen == padded_switch_gen);
-  
+
   if (table->opcode->is_boolean
       || table->opcode_rule->gen == switch_gen
       || table->opcode_rule->gen == padded_switch_gen)
@@ -389,16 +369,13 @@ print_idecode_switch_start (lf *file,
     }
   else
     {
-      ASSERT("bad switch" == NULL);
+      ASSERT ("bad switch" == NULL);
     }
 }
 
 
 static void
-print_idecode_switch_leaf (lf *file,
-                          gen_entry *entry,
-                          int depth,
-                          void *data)
+print_idecode_switch_leaf (lf *file, gen_entry *entry, int depth, void *data)
 {
   const char *result = data;
   ASSERT (entry->parent != NULL);
@@ -407,19 +384,17 @@ print_idecode_switch_leaf (lf *file,
          || entry->parent->opcode_rule->gen == goto_switch_gen
          || entry->parent->opcode_rule->gen == padded_switch_gen);
   ASSERT (entry->parent->opcode);
-  
+
   /* skip over any instructions combined into another entry */
   if (entry->combined_parent != NULL)
     return;
 
-  if (entry->parent->opcode->is_boolean
-          && entry->opcode_nr == 0)
+  if (entry->parent->opcode->is_boolean && entry->opcode_nr == 0)
     {
       /* case: boolean false target */
       lf_printf (file, "case %d:\n", entry->parent->opcode->boolean_constant);
     }
-  else if (entry->parent->opcode->is_boolean
-          && entry->opcode_nr != 0)
+  else if (entry->parent->opcode->is_boolean && entry->opcode_nr != 0)
     {
       /* case: boolean true case */
       lf_printf (file, "default:\n");
@@ -471,7 +446,9 @@ print_idecode_switch_leaf (lf *file,
        if (options.gen.code == generate_calls)
          {
            lf_printf (file, " (");
-           print_semantic_function_actual (file, entry->insns->semantic->nr_prefetched_words);
+           print_semantic_function_actual (file,
+                                           entry->insns->semantic->
+                                           nr_prefetched_words);
            lf_printf (file, ")");
          }
        lf_printf (file, ";\n");
@@ -508,7 +485,7 @@ print_idecode_switch_leaf (lf *file,
       }
     else if (entry->parent->opcode_rule->gen == goto_switch_gen)
       {
-       print_goto_switch_break(file, entry);
+       print_goto_switch_break (file, entry);
       }
     else
       {
@@ -521,8 +498,7 @@ print_idecode_switch_leaf (lf *file,
 
 
 static void
-print_idecode_switch_illegal (lf *file,
-                             const char *result)
+print_idecode_switch_illegal (lf *file, const char *result)
 {
   lf_indent (file, +2);
   print_idecode_invalid (file, result, invalid_illegal);
@@ -531,10 +507,7 @@ print_idecode_switch_illegal (lf *file,
 }
 
 static void
-print_idecode_switch_end (lf *file,
-                         gen_entry *table,
-                         int depth,
-                         void *data)
+print_idecode_switch_end (lf *file, gen_entry *table, int depth, void *data)
 {
   const char *result = data;
   ASSERT (depth == 0);
@@ -542,7 +515,7 @@ print_idecode_switch_end (lf *file,
          || table->opcode_rule->gen == goto_switch_gen
          || table->opcode_rule->gen == padded_switch_gen);
   ASSERT (table->opcode);
-  
+
   if (table->opcode->is_boolean)
     {
       lf_printf (file, "}\n");
@@ -555,7 +528,8 @@ print_idecode_switch_end (lf *file,
       lf_indent (file, +2);
       if (table->nr_entries == table->opcode->nr_opcodes)
        {
-         print_sim_engine_abort (file, "Internal error - bad switch generated");
+         print_sim_engine_abort (file,
+                                 "Internal error - bad switch generated");
          lf_printf (file, "%sNULL_CIA;\n", result);
          lf_printf (file, "break;\n");
        }
@@ -574,7 +548,7 @@ print_idecode_switch_end (lf *file,
       lf_printf (file, ":\n");
       print_idecode_invalid (file, result, invalid_illegal);
       lf_printf (file, "break_");
-      lf_print_table_name(file, table);
+      lf_print_table_name (file, table);
       lf_printf (file, ":;\n");
       if (table->parent != NULL
          && (table->parent->opcode_rule->gen == switch_gen
@@ -593,16 +567,13 @@ print_idecode_switch_end (lf *file,
 
 
 void
-print_idecode_switch (lf *file, 
-                     gen_entry *table,
-                     const char *result)
+print_idecode_switch (lf *file, gen_entry *table, const char *result)
 {
   gen_entry_traverse_tree (file, table,
                           0,
                           print_idecode_switch_start,
                           print_idecode_switch_leaf,
-                          print_idecode_switch_end,
-                          (void*)result);
+                          print_idecode_switch_end, (void *) result);
 }
 
 
@@ -653,47 +624,35 @@ print_idecode_switch_function_header (lf *file,
 
 
 static void
-idecode_declare_if_switch (lf *file,
-                          gen_entry *table,
-                          int depth,
-                          void *data)
+idecode_declare_if_switch (lf *file, gen_entry *table, int depth, void *data)
 {
-  if ((table->opcode_rule->gen == switch_gen
-       || table->opcode_rule->gen == goto_switch_gen
-       || table->opcode_rule->gen == padded_switch_gen)
-      && table->parent != NULL /* don't declare the top one yet */
+  if ((table->opcode_rule->gen == switch_gen || table->opcode_rule->gen == goto_switch_gen || table->opcode_rule->gen == padded_switch_gen) &&table->parent != NULL    /* don't declare the top one yet */
       && table->parent->opcode_rule->gen == array_gen)
     {
       print_idecode_switch_function_header (file,
                                            table,
-                                           0/*isnt function definition*/,
+                                           0 /*isnt function definition */ ,
                                            0);
     }
 }
 
 
 static void
-idecode_expand_if_switch (lf *file,
-                         gen_entry *table,
-                         int depth,
-                         void *data)
+idecode_expand_if_switch (lf *file, gen_entry *table, int depth, void *data)
 {
-  if ((table->opcode_rule->gen == switch_gen
-       || table->opcode_rule->gen == goto_switch_gen
-       || table->opcode_rule->gen == padded_switch_gen)
-      && table->parent != NULL /* don't expand the top one yet */
+  if ((table->opcode_rule->gen == switch_gen || table->opcode_rule->gen == goto_switch_gen || table->opcode_rule->gen == padded_switch_gen) &&table->parent != NULL    /* don't expand the top one yet */
       && table->parent->opcode_rule->gen == array_gen)
     {
-      print_idecode_switch_function_header(file,
-                                          table,
-                                          1/*is function definition*/,
-                                          0);
+      print_idecode_switch_function_header (file,
+                                           table,
+                                           1 /*is function definition */ ,
+                                           0);
       if (options.gen.code == generate_calls)
        {
          lf_printf (file, "{\n");
          lf_indent (file, +2);
        }
-      print_idecode_switch(file, table, "return");
+      print_idecode_switch (file, table, "return");
       if (options.gen.code == generate_calls)
        {
          lf_indent (file, -2);
@@ -707,45 +666,32 @@ idecode_expand_if_switch (lf *file,
 
 
 void
-print_idecode_lookups (lf *file,
-                      gen_entry *table,
-                      cache_entry *cache_rules)
+print_idecode_lookups (lf *file, gen_entry *table, cache_entry *cache_rules)
 {
   int depth;
-  
+
   /* output switch function declarations where needed by tables */
-  gen_entry_traverse_tree (file, table,
-                          1,
-                          idecode_declare_if_switch, /* START */
-                          NULL, NULL,
-                          NULL);
-  
+  gen_entry_traverse_tree (file, table, 1, idecode_declare_if_switch,  /* START */
+                          NULL, NULL, NULL);
+
   /* output tables where needed */
-  for (depth = gen_entry_depth (table);
-       depth > 0;
-       depth--)
+  for (depth = gen_entry_depth (table); depth > 0; depth--)
     {
       gen_entry_traverse_tree (file, table,
-                              1-depth,
+                              1 - depth,
                               print_idecode_table_start,
                               print_idecode_table_leaf,
-                              print_idecode_table_end,
-                              NULL);
+                              print_idecode_table_end, NULL);
     }
-  
+
   /* output switch functions where needed */
-  gen_entry_traverse_tree (file, table,
-                           1,
-                           idecode_expand_if_switch, /* START */
-                           NULL, NULL,
-                           NULL);
+  gen_entry_traverse_tree (file, table, 1, idecode_expand_if_switch,   /* START */
+                          NULL, NULL, NULL);
 }
 
 
 void
-print_idecode_body (lf *file,
-                   gen_entry *table,
-                   const char *result)
+print_idecode_body (lf *file, gen_entry *table, const char *result)
 {
   if (table->opcode_rule->gen == switch_gen
       || table->opcode_rule->gen == goto_switch_gen
@@ -764,15 +710,14 @@ print_idecode_body (lf *file,
 
 #if 0
 static void
-print_jump (lf *file,
-           int is_tail)
+print_jump (lf *file, int is_tail)
 {
   if (is_tail)
     {
       lf_putstr (file, "if (keep_running != NULL && !*keep_running)\n");
       lf_putstr (file, "  cpu_halt(cpu, nia, was_continuing, 0/*na*/);\n");
     }
-  
+
   if (!options.generate_smp)
     {
       lf_putstr (file, "if (WITH_EVENTS) {\n");
@@ -783,7 +728,7 @@ print_jump (lf *file,
       lf_putstr (file, "  }\n");
       lf_putstr (file, "}\n");
     }
-  
+
   if (options.generate_smp)
     {
       if (is_tail)
@@ -805,7 +750,7 @@ print_jump (lf *file,
       lf_putstr (file, "cpu = cpus[current_cpu];\n");
       lf_putstr (file, "nia = cpu_get_program_counter(cpu);\n");
     }
-  
+
   if (options.gen.icache)
     {
       lf_putstr (file, "cache_entry = cpu_icache_entry(cpu, nia);\n");
@@ -823,7 +768,7 @@ print_jump (lf *file,
     {
       lf_printf (file, "goto idecode;\n");
     }
-  
+
 }
 #endif
 
@@ -832,16 +777,15 @@ print_jump (lf *file,
 #if 0
 static void
 print_jump_insn (lf *file,
-                insn_entry *instruction,
-                insn_bits *expanded_bits,
-                opcode_field *opcodes,
-                cache_entry *cache_rules)
+                insn_entry * instruction,
+                insn_bits * expanded_bits,
+                opcode_field *opcodes, cache_entry *cache_rules)
 {
-  
+
   /* what we are for the moment */
   lf_printf (file, "\n");
   print_my_defines (file, expanded_bits, instruction->name);
-  
+
   /* output the icache entry */
   if (options.gen.icache)
     {
@@ -849,46 +793,36 @@ print_jump_insn (lf *file,
       lf_indent (file, -1);
       print_function_name (file,
                           instruction->name,
-                          expanded_bits,
-                          function_name_prefix_icache);
+                          expanded_bits, function_name_prefix_icache);
       lf_printf (file, ":\n");
       lf_indent (file, +1);
       lf_printf (file, "{\n");
       lf_indent (file, +2);
       lf_putstr (file, "const unsigned_word cia = nia;\n");
-      print_itrace (file, instruction, 1/*putting-value-in-cache*/);
+      print_itrace (file, instruction, 1 /*putting-value-in-cache */ );
       print_idecode_validate (file, instruction, opcodes);
       lf_printf (file, "\n");
       lf_printf (file, "{\n");
       lf_indent (file, +2);
-      print_icache_body (file,
-                        instruction,
-                        expanded_bits,
-                        cache_rules,
-                        0, /*use_defines*/
+      print_icache_body (file, instruction, expanded_bits, cache_rules, 0,     /*use_defines */
                         put_values_in_icache);
       lf_printf (file, "cache_entry->address = nia;\n");
       lf_printf (file, "cache_entry->semantic = &&");
       print_function_name (file,
                           instruction->name,
-                          expanded_bits,
-                          function_name_prefix_semantics);
+                          expanded_bits, function_name_prefix_semantics);
       lf_printf (file, ";\n");
       if (options.gen.semantic_icache)
        {
-         print_semantic_body (file,
-                              instruction,
-                              expanded_bits,
-                              opcodes);
-         print_jump (file, 1/*is-tail*/);
+         print_semantic_body (file, instruction, expanded_bits, opcodes);
+         print_jump (file, 1 /*is-tail */ );
        }
       else
        {
          lf_printf (file, "/* goto ");
          print_function_name (file,
                               instruction->name,
-                              expanded_bits,
-                              function_name_prefix_semantics);
+                              expanded_bits, function_name_prefix_semantics);
          lf_printf (file, "; */\n");
        }
       lf_indent (file, -2);
@@ -896,14 +830,13 @@ print_jump_insn (lf *file,
       lf_indent (file, -2);
       lf_printf (file, "}\n");
     }
-  
+
   /* print the semantics */
   lf_printf (file, "\n");
   lf_indent (file, -1);
   print_function_name (file,
                       instruction->name,
-                      expanded_bits,
-                      function_name_prefix_semantics);
+                      expanded_bits, function_name_prefix_semantics);
   lf_printf (file, ":\n");
   lf_indent (file, +1);
   lf_printf (file, "{\n");
@@ -917,12 +850,8 @@ print_jump_insn (lf *file,
                      ? define_variables
                      : declare_variables),
                     (options.gen.icache
-                     ? get_values_from_icache
-                     : do_not_use_icache));
-  print_semantic_body (file,
-                      instruction,
-                      expanded_bits,
-                      opcodes);
+                     ? get_values_from_icache : do_not_use_icache));
+  print_semantic_body (file, instruction, expanded_bits, opcodes);
   if (options.gen.direct_access)
     print_icache_body (file,
                       instruction,
@@ -930,9 +859,8 @@ print_jump_insn (lf *file,
                       cache_rules,
                       undef_variables,
                       (options.gen.icache
-                       ? get_values_from_icache
-                       : do_not_use_icache));
-  print_jump (file, 1/*is tail*/);
+                       ? get_values_from_icache : do_not_use_icache));
+  print_jump (file, 1 /*is tail */ );
   lf_indent (file, -2);
   lf_printf (file, "}\n");
 }
@@ -943,17 +871,14 @@ print_jump_insn (lf *file,
 static void
 print_jump_definition (lf *file,
                       gen_entry *entry,
-                      insn_entry *insn,
-                      int depth,
-                      void *data)
+                      insn_entry * insn, int depth, void *data)
 {
-  cache_entry *cache_rules = (cache_entry*)data;
+  cache_entry *cache_rules = (cache_entry *) data;
   if (options.generate_expanded_instructions)
     {
       ASSERT (entry->nr_insns == 1
              && entry->opcode == NULL
-             && entry->parent != NULL
-             && entry->parent->opcode != NULL);
+             && entry->parent != NULL && entry->parent->opcode != NULL);
       ASSERT (entry->nr_insns == 1
              && entry->opcode == NULL
              && entry->parent != NULL
@@ -961,17 +886,12 @@ print_jump_definition (lf *file,
              && entry->parent->opcode_rule != NULL);
       print_jump_insn (file,
                       entry->insns->words[0]->insn,
-                      entry->expanded_bits,
-                      entry->opcode,
-                      cache_rules);
+                      entry->expanded_bits, entry->opcode, cache_rules);
     }
   else
     {
       print_jump_insn (file,
-                      instruction->words[0]->insn,
-                      NULL,
-                      NULL,
-                      cache_rules);
+                      instruction->words[0]->insn, NULL, NULL, cache_rules);
     }
 }
 #endif
@@ -980,8 +900,7 @@ print_jump_definition (lf *file,
 static void
 print_jump_internal_function (lf *file,
                              gen_entry *table,
-                             function_entry *function,
-                             void *data)
+                             function_entry * function, void *data)
 {
   if (function->is_internal)
     {
@@ -1012,9 +931,8 @@ print_jump_internal_function (lf *file,
 
 #if 0
 static void
-print_jump_until_stop_body(lf *file,
-                          insn_table *table,
-                          cache_table *cache_rules)
+print_jump_until_stop_body (lf *file,
+                           insn_table *table, cache_table * cache_rules)
 {
   lf_printf (file, "{\n");
   lf_indent (file, +2);
@@ -1023,25 +941,28 @@ print_jump_until_stop_body(lf *file,
   lf_putstr (file, "sim_cpu *cpu = NULL;\n");
   lf_putstr (file, "unsigned_word nia = -1;\n");
   lf_putstr (file, "instruction_word instruction = 0;\n");
-  if ((code & generate_with_icache)) {
-    lf_putstr (file, "idecode_cache *cache_entry = NULL;\n");
-  }
-  if (generate_smp) {
-    lf_putstr (file, "int current_cpu = -1;\n");
-  }
+  if ((code & generate_with_icache))
+    {
+      lf_putstr (file, "idecode_cache *cache_entry = NULL;\n");
+    }
+  if (generate_smp)
+    {
+      lf_putstr (file, "int current_cpu = -1;\n");
+    }
 
   /* all the switches and tables - they know about jumping */
-  print_idecode_lookups(file, table, cache_rules);
+  print_idecode_lookups (file, table, cache_rules);
+
   /* start the simulation up */
-  if ((code & generate_with_icache)) {
-    lf_putstr (file, "\n");
-    lf_putstr (file, "{\n");
-    lf_putstr (file, "  int cpu_nr;\n");
-    lf_putstr (file, "  for (cpu_nr = 0; cpu_nr < nr_cpus; cpu_nr++)\n");
-    lf_putstr (file, "    cpu_flush_icache(cpus[cpu_nr]);\n");
-    lf_putstr (file, "}\n");
-  }
+  if ((code & generate_with_icache))
+    {
+      lf_putstr (file, "\n");
+      lf_putstr (file, "{\n");
+      lf_putstr (file, "  int cpu_nr;\n");
+      lf_putstr (file, "  for (cpu_nr = 0; cpu_nr < nr_cpus; cpu_nr++)\n");
+      lf_putstr (file, "    cpu_flush_icache(cpus[cpu_nr]);\n");
+      lf_putstr (file, "}\n");
+    }
 
   lf_putstr (file, "\n");
   lf_putstr (file, "psim_set_halt_and_restart(system, &halt, &restart);\n");
@@ -1054,52 +975,51 @@ print_jump_until_stop_body(lf *file,
   lf_putstr (file, "setjmp(restart);\n");
 
   lf_putstr (file, "\n");
-  if (!generate_smp) {
-    lf_putstr (file, "cpu = cpus[0];\n");
-    lf_putstr (file, "nia = cpu_get_program_counter(cpu);\n");
-  }
-  else {
-    lf_putstr (file, "current_cpu = psim_last_cpu(system);\n");
-  }
+  if (!generate_smp)
+    {
+      lf_putstr (file, "cpu = cpus[0];\n");
+      lf_putstr (file, "nia = cpu_get_program_counter(cpu);\n");
+    }
+  else
+    {
+      lf_putstr (file, "current_cpu = psim_last_cpu(system);\n");
+    }
 
-  if (!(code & generate_with_icache)) {
-    lf_printf (file, "\n");
-    lf_indent (file, -1);
-    lf_printf (file, "idecode:\n");
-    lf_indent (file, +1);
-  }
+  if (!(code & generate_with_icache))
+    {
+      lf_printf (file, "\n");
+      lf_indent (file, -1);
+      lf_printf (file, "idecode:\n");
+      lf_indent (file, +1);
+    }
 
-  print_jump(file, 0/*is_tail*/);
+  print_jump (file, 0 /*is_tail */ );
 
-  if ((code & generate_with_icache)) {
-    lf_indent (file, -1);
-    lf_printf (file, "cache_miss:\n");
-    lf_indent (file, +1);
-  }
+  if ((code & generate_with_icache))
+    {
+      lf_indent (file, -1);
+      lf_printf (file, "cache_miss:\n");
+      lf_indent (file, +1);
+    }
 
   lf_putstr (file, "instruction\n");
   lf_putstr (file, "  = vm_instruction_map_read(cpu_instruction_map(cpu),\n");
   lf_putstr (file, "                            cpu, nia);\n");
-  print_idecode_body(file, table, "/*IGORE*/");
+  print_idecode_body (file, table, "/*IGORE*/");
 
   /* print out a table of all the internals functions */
-  insn_table_traverse_function(table,
-                              file, NULL,
-                              print_jump_internal_function);
+  insn_table_traverse_function (table,
+                               file, NULL, print_jump_internal_function);
 
- /* print out a table of all the instructions */
 /* print out a table of all the instructions */
   if (generate_expanded_instructions)
-    insn_table_traverse_tree(table,
-                            file, cache_rules,
-                            1,
-                            NULL, /* start */
-                            print_jump_definition, /* leaf */
-                            NULL, /* end */
-                            NULL); /* padding */
+    insn_table_traverse_tree (table, file, cache_rules, 1, NULL,       /* start */
+                             print_jump_definition,    /* leaf */
+                             NULL,     /* end */
+                             NULL);    /* padding */
   else
-    insn_table_traverse_insn(table,
-                            file, cache_rules,
-                            print_jump_definition);
+    insn_table_traverse_insn (table,
+                             file, cache_rules, print_jump_definition);
   lf_indent (file, -2);
   lf_printf (file, "}\n");
 }
@@ -1116,8 +1036,7 @@ print_jump_until_stop_body(lf *file,
 
 void
 print_idecode_validate (lf *file,
-                       insn_entry *instruction,
-                       insn_opcodes *opcode_paths)
+                       insn_entry * instruction, insn_opcodes *opcode_paths)
 {
   /* Validate: unchecked instruction fields
 
@@ -1150,27 +1069,24 @@ print_idecode_validate (lf *file,
            /* Make space for the next bit */
            check_mask <<= 1;
            check_val <<= 1;
-           
+
            /* Only need to validate constant (and reserved)
-               bits. Skip any others */
+              bits. Skip any others */
            if (field->type != insn_field_int
                && field->type != insn_field_reserved)
              continue;
 
            /* Look through the list of opcode paths that lead to this
-               instruction.  See if any have failed to check the
-               relevant bit */
+              instruction.  See if any have failed to check the
+              relevant bit */
            if (opcode_paths != NULL)
              {
                insn_opcodes *entry;
-               for (entry = opcode_paths;
-                    entry != NULL;
-                    entry = entry->next)
+               for (entry = opcode_paths; entry != NULL; entry = entry->next)
                  {
                    opcode_field *opcode;
                    for (opcode = entry->opcode;
-                        opcode != NULL;
-                        opcode = opcode->parent)
+                        opcode != NULL; opcode = opcode->parent)
                      {
                        if (opcode->word_nr == word_nr
                            && opcode->first <= bit_nr
@@ -1184,14 +1100,14 @@ print_idecode_validate (lf *file,
                  }
                if (entry == NULL)
                  /* all the opcode paths decoded on BIT_NR, no need
-                     to check it */
+                    to check it */
                  continue;
              }
-           
+
            check_mask |= 1;
            check_val |= bit->value;
          }
-       
+
        /* if any bits not checked by opcode tables, output code to check them */
        if (check_mask)
          {
@@ -1201,23 +1117,23 @@ print_idecode_validate (lf *file,
                lf_printf (file, "  {\n");
                lf_indent (file, +4);
              }
-           nr_checks ++;
+           nr_checks++;
            if (options.insn_bit_size > 32)
              {
-               lf_printf (file, "if ((instruction_%d\n", word_nr); 
+               lf_printf (file, "if ((instruction_%d\n", word_nr);
                lf_printf (file, "     & UNSIGNED64 (0x%08lx%08lx))\n",
-                          (unsigned long)(check_mask >> 32),
-                          (unsigned long)(check_mask));
+                          (unsigned long) (check_mask >> 32),
+                          (unsigned long) (check_mask));
                lf_printf (file, "    != UNSIGNED64 (0x%08lx%08lx))\n",
-                          (unsigned long)(check_val >> 32),
-                          (unsigned long)(check_val));
+                          (unsigned long) (check_val >> 32),
+                          (unsigned long) (check_val));
              }
            else
              {
-               lf_printf (file, "if ((instruction_%d & 0x%08lx) != 0x%08lx)\n",
-                          word_nr,
-                          (unsigned long)(check_mask),
-                          (unsigned long)(check_val));
+               lf_printf (file,
+                          "if ((instruction_%d & 0x%08lx) != 0x%08lx)\n",
+                          word_nr, (unsigned long) (check_mask),
+                          (unsigned long) (check_val));
              }
            lf_indent (file, +2);
            print_idecode_invalid (file, "return", invalid_illegal);
@@ -1229,12 +1145,12 @@ print_idecode_validate (lf *file,
        lf_indent (file, -4);
        lf_printf (file, "  }\n");
       }
-    lf_indent_suppress(file);
+    lf_indent_suppress (file);
     lf_printf (file, "#endif\n");
   }
 
   /* Validate: Floating Point hardware
-     
+
      If the simulator is being built with out floating point hardware
      (different to it being disabled in the MSR) then floating point
      instructions are invalid */
@@ -1245,7 +1161,8 @@ print_idecode_validate (lf *file,
        lf_indent_suppress (file);
        lf_printf (file, "#if defined(CURRENT_FLOATING_POINT)\n");
        lf_printf (file, "/* Validate: FP hardware exists */\n");
-       lf_printf (file, "if (CURRENT_FLOATING_POINT != HARD_FLOATING_POINT) {\n");
+       lf_printf (file,
+                  "if (CURRENT_FLOATING_POINT != HARD_FLOATING_POINT) {\n");
        lf_indent (file, +2);
        print_idecode_invalid (file, "return", invalid_illegal);
        lf_indent (file, -2);
@@ -1273,14 +1190,14 @@ print_idecode_validate (lf *file,
        lf_printf (file, "/* Validate: FP available according to cpu */\n");
        lf_printf (file, "if (!IS_FP_AVAILABLE) {\n");
        lf_indent (file, +2);
-       print_idecode_invalid (file, "return",  invalid_fp_unavailable);
+       print_idecode_invalid (file, "return", invalid_fp_unavailable);
        lf_indent (file, -2);
        lf_printf (file, "}\n");
        lf_indent_suppress (file);
        lf_printf (file, "#endif\n");
       }
   }
-  
+
   /* Validate: Validate Instruction in correct slot
 
      Some architectures place restrictions on the slot that an
@@ -1293,7 +1210,8 @@ print_idecode_validate (lf *file,
        lf_printf (file, "\n");
        lf_indent_suppress (file);
        lf_printf (file, "#if defined(IS_WRONG_SLOT)\n");
-       lf_printf (file, "/* Validate: Instruction issued in correct slot */\n");
+       lf_printf (file,
+                  "/* Validate: Instruction issued in correct slot */\n");
        lf_printf (file, "if (IS_WRONG_SLOT) {\n");
        lf_indent (file, +2);
        print_idecode_invalid (file, "return", invalid_wrong_slot);
@@ -1303,7 +1221,7 @@ print_idecode_validate (lf *file,
        lf_printf (file, "#endif\n");
       }
   }
-  
+
 }
 
 
@@ -1322,13 +1240,11 @@ print_idecode_issue_function_header (lf *file,
     {
     case is_function_declaration:
       lf_print__function_type_function (file, print_semantic_function_type,
-                                       "INLINE_IDECODE",
-                                       " ");
+                                       "INLINE_IDECODE", " ");
       break;
     case is_function_definition:
       lf_print__function_type_function (file, print_semantic_function_type,
-                                       "INLINE_IDECODE",
-                                       "\n");
+                                       "INLINE_IDECODE", "\n");
       break;
     case is_function_variable:
       print_semantic_function_type (file);
@@ -1339,8 +1255,7 @@ print_idecode_issue_function_header (lf *file,
                                "issue",
                                NULL,
                                processor,
-                               NULL,
-                               function_name_prefix_idecode);
+                               NULL, function_name_prefix_idecode);
   switch (decl_type)
     {
     case is_function_definition:
index c660904602d6d87ed2234847f43977b753c940a5..18682e4d6d4df702c78aac404bdccbdef1a3b427 100644 (file)
@@ -1,41 +1,38 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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.  */
+
 
 void print_idecode_issue_function_header
-(lf *file,
- const char *processor,
- function_decl_type decl_type,
- int nr_prefetched_words);
+  (lf *file,
+   const char *processor,
+   function_decl_type decl_type, int nr_prefetched_words);
 
-void print_idecode_globals
-(lf *file);
+void print_idecode_globals (lf *file);
 
 void print_idecode_lookups
-(lf *file,
- gen_entry *table,
- cache_entry *cache_rules);
+  (lf *file, gen_entry *table, cache_entry *cache_rules);
 
-void print_idecode_body
-(lf *file,
- gen_entry *table,
- const char *result);
+void print_idecode_body (lf *file, gen_entry *table, const char *result);
 
 
 
@@ -45,6 +42,4 @@ void print_idecode_body
    hardware isn't disabled */
 
 extern void print_idecode_validate
-(lf *file,
- insn_entry *instruction,
- insn_opcodes *opcode_paths);
+  (lf *file, insn_entry * instruction, insn_opcodes *opcode_paths);
index c3e90535683527178f3714f32017c1fcf4549848..7b94d37449bb5da7c97858d5a86ae74006ee2e52 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 
 
 
 
-typedef struct _itable_info {
+typedef struct _itable_info
+{
   int sizeof_form;
   int sizeof_name;
   int sizeof_file;
-} itable_info;
+}
+itable_info;
 
 
 static void
 itable_h_insn (lf *file,
-              insn_table *entry,
-              insn_entry *instruction,
-              void *data)
+              insn_table *entry, insn_entry * instruction, void *data)
 {
   int len;
   itable_info *info = data;
@@ -59,9 +62,7 @@ itable_h_insn (lf *file,
   print_function_name (file,
                       instruction->name,
                       instruction->format_name,
-                      NULL,
-                      NULL,
-                      function_name_prefix_itable);
+                      NULL, NULL, function_name_prefix_itable);
   lf_printf (file, ",\n");
   /* update summary info */
   len = strlen (instruction->format_name);
@@ -79,16 +80,13 @@ itable_h_insn (lf *file,
 /* print the list of all the different options */
 
 static void
-itable_print_enum (lf *file,
-                  filter *set,
-                  char *name)
+itable_print_enum (lf *file, filter *set, char *name)
 {
   char *elem;
   lf_printf (file, "typedef enum {\n");
   lf_indent (file, +2);
   for (elem = filter_next (set, "");
-       elem != NULL;
-       elem = filter_next (set, elem))
+       elem != NULL; elem = filter_next (set, elem))
     {
       lf_printf (file, "%sitable_%s_%s,\n",
                 options.module.itable.prefix.l, name, elem);
@@ -99,8 +97,9 @@ itable_print_enum (lf *file,
                     name, elem, options.module.itable.prefix.l, name, elem);
        }
     }
-  lf_printf (file, "nr_%sitable_%ss,\n", options.module.itable.prefix.l, name);
-  
+  lf_printf (file, "nr_%sitable_%ss,\n", options.module.itable.prefix.l,
+            name);
+
   lf_indent (file, -2);
   lf_printf (file, "} %sitable_%ss;\n", options.module.itable.prefix.l, name);
   if (strlen (options.module.itable.prefix.l) > 0)
@@ -117,9 +116,7 @@ itable_print_enum (lf *file,
 /* print an array of the option names as strings */
 
 static void
-itable_print_names (lf *file,
-                   filter *set,
-                   char *name)
+itable_print_names (lf *file, filter *set, char *name)
 {
   char *elem;
   lf_printf (file, "const char *%sitable_%s_names[nr_%sitable_%ss + 1] = {\n",
@@ -127,8 +124,7 @@ itable_print_names (lf *file,
             options.module.itable.prefix.l, name);
   lf_indent (file, +2);
   for (elem = filter_next (set, "");
-       elem != NULL;
-       elem = filter_next (set, elem))
+       elem != NULL; elem = filter_next (set, elem))
     {
       lf_printf (file, "\"%s\",\n", elem);
     }
@@ -137,16 +133,16 @@ itable_print_names (lf *file,
   lf_printf (file, "};\n");
 }
 
-extern void 
-gen_itable_h (lf *file,
-             insn_table *isa)
+extern void
+gen_itable_h (lf *file, insn_table *isa)
 {
   itable_info *info = ZALLOC (itable_info);
 
   /* output an enumerated type for each instruction */
   lf_printf (file, "typedef enum {\n");
   insn_table_traverse_insn (file, isa, itable_h_insn, info);
-  lf_printf (file, "  nr_%sitable_entries,\n", options.module.itable.prefix.l);
+  lf_printf (file, "  nr_%sitable_entries,\n",
+            options.module.itable.prefix.l);
   lf_printf (file, "} %sitable_index;\n", options.module.itable.prefix.l);
   lf_printf (file, "\n");
 
@@ -155,7 +151,7 @@ gen_itable_h (lf *file,
   lf_printf (file, "extern const char *%sitable_flag_names[];\n",
             options.module.itable.prefix.l);
   lf_printf (file, "\n");
-    
+
   /* output an enumeration of all the possible options */
   itable_print_enum (file, isa->options, "option");
   lf_printf (file, "extern const char *%sitable_option_names[];\n",
@@ -217,9 +213,7 @@ gen_itable_h (lf *file,
 /****************************************************************/
 
 static void
-itable_print_set (lf *file,
-                 filter *set,
-                 filter *members)
+itable_print_set (lf *file, filter *set, filter *members)
 {
   char *elem;
   lf_printf (file, "\"");
@@ -237,10 +231,9 @@ itable_print_set (lf *file,
     }
   lf_printf (file, "\",\n");
 
-  lf_printf(file, "{");
+  lf_printf (file, "{");
   for (elem = filter_next (set, "");
-       elem != NULL;
-       elem = filter_next (set, elem))
+       elem != NULL; elem = filter_next (set, elem))
     {
       if (filter_is_member (members, elem))
        {
@@ -250,27 +243,23 @@ itable_print_set (lf *file,
        {
          lf_printf (file, " 0,");
        }
-      
+
     }
   /* always print a dummy element, to avoid empty initializers. */
-  lf_printf(file, " 99 },\n");
+  lf_printf (file, " 99 },\n");
 }
 
 
 static void
 itable_c_insn (lf *file,
-              insn_table *isa,
-              insn_entry *instruction,
-              void *data)
+              insn_table *isa, insn_entry * instruction, void *data)
 {
   lf_printf (file, "{ ");
   lf_indent (file, +2);
   print_function_name (file,
                       instruction->name,
                       instruction->format_name,
-                      NULL,
-                      NULL,
-                      function_name_prefix_itable);
+                      NULL, NULL, function_name_prefix_itable);
   lf_printf (file, ",\n");
   lf_printf (file, "\"");
   print_insn_words (file, instruction);
@@ -281,22 +270,22 @@ itable_c_insn (lf *file,
   itable_print_set (file, isa->options, instruction->options);
   itable_print_set (file, isa->model->processors, instruction->processors);
 
-  lf_printf(file, "\"%s\",\n", instruction->name);
-  lf_printf(file, "\"%s\",\n",
-           filter_filename (instruction->line->file_name));
-  lf_printf(file, "%d,\n", instruction->line->line_nr);
-  lf_printf(file, "},\n");
+  lf_printf (file, "\"%s\",\n", instruction->name);
+  lf_printf (file, "\"%s\",\n",
+            filter_filename (instruction->line->file_name));
+  lf_printf (file, "%d,\n", instruction->line->line_nr);
+  lf_printf (file, "},\n");
   lf_indent (file, -2);
 }
 
 
-extern void 
-gen_itable_c (lf *file,
-             insn_table *isa)
+extern void
+gen_itable_c (lf *file, insn_table *isa)
 {
   /* leader */
-  lf_printf(file, "#include \"%sitable.h\"\n", options.module.itable.prefix.l);
-  lf_printf(file, "\n");
+  lf_printf (file, "#include \"%sitable.h\"\n",
+            options.module.itable.prefix.l);
+  lf_printf (file, "\n");
 
   /* FIXME - output model data??? */
   /* FIXME - output assembler data??? */
@@ -309,9 +298,8 @@ gen_itable_c (lf *file,
   /* output the table that contains the actual instruction info */
   lf_printf (file, "%sitable_info %sitable[nr_%sitable_entries] = {\n",
             options.module.itable.prefix.l,
-            options.module.itable.prefix.l,
-            options.module.itable.prefix.l);
+            options.module.itable.prefix.l, options.module.itable.prefix.l);
   insn_table_traverse_insn (file, isa, itable_c_insn, NULL);
 
-  lf_printf(file, "};\n");
+  lf_printf (file, "};\n");
 }
index 36c8659c7b8fd683892e04caed67db026c44c7fc..3cc69fba1163a6c4468299cdfa159b641a289945 100644 (file)
@@ -1,30 +1,30 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
+
+   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 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.
-    */
 
 
 /* Output a table of all the instructions */
 
-extern void gen_itable_h
-(lf *file,
- insn_table *table);
+extern void gen_itable_h (lf *file, insn_table *table);
 
-extern void gen_itable_c
-(lf *file,
- insn_table *table);
+extern void gen_itable_c (lf *file, insn_table *table);
index dcb300a59ef49c1818279ab9d811ba65da026da8..8f35f0f1d0c814b36168f2da9a5ec8f32f50ce96 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 #include "misc.h"
 
 #if 0
 static void
-model_c_or_h_data(insn_table *table,
-                 lf *file,
-                 table_entry *data)
+model_c_or_h_data (insn_table *table, lf *file, table_entry *data)
 {
-  if (data->annex) {
-    table_entry_print_cpp_line_nr(file, data->annex_line);
-    lf_print__c_code(file, data->annex);
-    lf_print__internal_reference(file);
-    lf_printf(file, "\n");
-  }
+  if (data->annex)
+    {
+      table_entry_print_cpp_line_nr (file, data->annex_line);
+      lf_print__c_code (file, data->annex);
+      lf_print__internal_reference (file);
+      lf_printf (file, "\n");
+    }
 }
 
 static void
-model_c_or_h_function(insn_table *entry,
-                     lf *file,
-                     table_entry *function,
-                     char *prefix)
+model_c_or_h_function (insn_table *entry,
+                      lf *file, table_entry *function, char *prefix)
 {
   if (function->fields[function_type] == NULL
-      || function->fields[function_type][0] == '\0') {
-    error("Model function type not specified for %s", function->fields[function_name]);
-  }
-  lf_printf(file, "\n");
-  lf_print_function_type(file, function->fields[function_type], prefix, " ");
-  lf_printf(file, "%s\n(%s);\n",
-           function->fields[function_name],
-           function->fields[function_param]);
-  lf_printf(file, "\n");
+      || function->fields[function_type][0] == '\0')
+    {
+      error ("Model function type not specified for %s",
+            function->fields[function_name]);
+    }
+  lf_printf (file, "\n");
+  lf_print_function_type (file, function->fields[function_type], prefix, " ");
+  lf_printf (file, "%s\n(%s);\n",
+            function->fields[function_name],
+            function->fields[function_param]);
+  lf_printf (file, "\n");
 }
 
-void 
-gen_model_h(insn_table *table, lf *file)
+void
+gen_model_h (insn_table *table, lf *file)
 {
   insn *insn_ptr;
   model *model_ptr;
@@ -80,161 +82,171 @@ gen_model_h(insn_table *table, lf *file)
   int model_mon_info_p = 0;
   int model_mon_info_free_p = 0;
 
-  for(macro = model_macros; macro; macro = macro->next) {
-    model_c_or_h_data(table, file, macro->file_entry);
-  }
-
-  lf_printf(file, "typedef enum _model_enum {\n");
-  lf_printf(file, "  MODEL_NONE,\n");
-  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-    lf_printf(file, "  MODEL_%s,\n", model_ptr->name);
-  }
-  lf_printf(file, "  nr_models\n");
-  lf_printf(file, "} model_enum;\n");
-  lf_printf(file, "\n");
-
-  lf_printf(file, "#define DEFAULT_MODEL MODEL_%s\n", (models) ? models->name : "NONE");
-  lf_printf(file, "\n");
-
-  lf_printf(file, "typedef struct _model_data model_data;\n");
-  lf_printf(file, "typedef struct _model_time model_time;\n");
-  lf_printf(file, "\n");
-
-  lf_printf(file, "extern model_enum current_model;\n");
-  lf_printf(file, "extern const char *model_name[ (int)nr_models ];\n");
-  lf_printf(file, "extern const char *const *const model_func_unit_name[ (int)nr_models ];\n");
-  lf_printf(file, "extern const model_time *const model_time_mapping[ (int)nr_models ];\n");
-  lf_printf(file, "\n");
-
-  for(insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_or_h_function(table, file, insn_ptr->file_entry, "INLINE_MODEL");
-    name = insn_ptr->file_entry->fields[function_name];
-    if (strcmp (name, "model_create") == 0)
-      model_create_p = 1;
-    else if (strcmp (name, "model_init") == 0)
-      model_init_p = 1;
-    else if (strcmp (name, "model_halt") == 0)
-      model_halt_p = 1;
-    else if (strcmp (name, "model_mon_info") == 0)
-      model_mon_info_p = 1;
-    else if (strcmp (name, "model_mon_info_free") == 0)
-      model_mon_info_free_p = 1;
-  }
-
-  if (!model_create_p) {
-    lf_print_function_type(file, "model_data *", "INLINE_MODEL", " ");
-    lf_printf(file, "model_create\n");
-    lf_printf(file, "(sim_cpu *cpu);\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_init_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", " ");
-    lf_printf(file, "model_init\n");
-    lf_printf(file, "(model_data *model_ptr);\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_halt_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", " ");
-    lf_printf(file, "model_halt\n");
-    lf_printf(file, "(model_data *model_ptr);\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_mon_info_p) {
-    lf_print_function_type(file, "model_print *", "INLINE_MODEL", " ");
-    lf_printf(file, "model_mon_info\n");
-    lf_printf(file, "(model_data *model_ptr);\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_mon_info_free_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", " ");
-    lf_printf(file, "model_mon_info_free\n");
-    lf_printf(file, "(model_data *model_ptr,\n");
-    lf_printf(file, " model_print *info_ptr);\n");
-    lf_printf(file, "\n");
-  }
-
-  lf_print_function_type(file, "void", "INLINE_MODEL", " ");
-  lf_printf(file, "model_set\n");
-  lf_printf(file, "(const char *name);\n");
+  for (macro = model_macros; macro; macro = macro->next)
+    {
+      model_c_or_h_data (table, file, macro->file_entry);
+    }
+
+  lf_printf (file, "typedef enum _model_enum {\n");
+  lf_printf (file, "  MODEL_NONE,\n");
+  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+    {
+      lf_printf (file, "  MODEL_%s,\n", model_ptr->name);
+    }
+  lf_printf (file, "  nr_models\n");
+  lf_printf (file, "} model_enum;\n");
+  lf_printf (file, "\n");
+
+  lf_printf (file, "#define DEFAULT_MODEL MODEL_%s\n",
+            (models) ? models->name : "NONE");
+  lf_printf (file, "\n");
+
+  lf_printf (file, "typedef struct _model_data model_data;\n");
+  lf_printf (file, "typedef struct _model_time model_time;\n");
+  lf_printf (file, "\n");
+
+  lf_printf (file, "extern model_enum current_model;\n");
+  lf_printf (file, "extern const char *model_name[ (int)nr_models ];\n");
+  lf_printf (file,
+            "extern const char *const *const model_func_unit_name[ (int)nr_models ];\n");
+  lf_printf (file,
+            "extern const model_time *const model_time_mapping[ (int)nr_models ];\n");
+  lf_printf (file, "\n");
+
+  for (insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_or_h_function (table, file, insn_ptr->file_entry,
+                            "INLINE_MODEL");
+      name = insn_ptr->file_entry->fields[function_name];
+      if (strcmp (name, "model_create") == 0)
+       model_create_p = 1;
+      else if (strcmp (name, "model_init") == 0)
+       model_init_p = 1;
+      else if (strcmp (name, "model_halt") == 0)
+       model_halt_p = 1;
+      else if (strcmp (name, "model_mon_info") == 0)
+       model_mon_info_p = 1;
+      else if (strcmp (name, "model_mon_info_free") == 0)
+       model_mon_info_free_p = 1;
+    }
+
+  if (!model_create_p)
+    {
+      lf_print_function_type (file, "model_data *", "INLINE_MODEL", " ");
+      lf_printf (file, "model_create\n");
+      lf_printf (file, "(sim_cpu *cpu);\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_init_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", " ");
+      lf_printf (file, "model_init\n");
+      lf_printf (file, "(model_data *model_ptr);\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_halt_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", " ");
+      lf_printf (file, "model_halt\n");
+      lf_printf (file, "(model_data *model_ptr);\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_mon_info_p)
+    {
+      lf_print_function_type (file, "model_print *", "INLINE_MODEL", " ");
+      lf_printf (file, "model_mon_info\n");
+      lf_printf (file, "(model_data *model_ptr);\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_mon_info_free_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", " ");
+      lf_printf (file, "model_mon_info_free\n");
+      lf_printf (file, "(model_data *model_ptr,\n");
+      lf_printf (file, " model_print *info_ptr);\n");
+      lf_printf (file, "\n");
+    }
+
+  lf_print_function_type (file, "void", "INLINE_MODEL", " ");
+  lf_printf (file, "model_set\n");
+  lf_printf (file, "(const char *name);\n");
 }
 
 /****************************************************************/
 
 typedef struct _model_c_passed_data model_c_passed_data;
-struct _model_c_passed_data {
+struct _model_c_passed_data
+{
   lf *file;
   model *model_ptr;
 };
 
 static void
-model_c_insn(insn_table *entry,
-            lf *phony_file,
-            void *data,
-            insn *instruction,
-            int depth)
+model_c_insn (insn_table *entry,
+             lf *phony_file, void *data, insn * instruction, int depth)
 {
-  model_c_passed_data *data_ptr = (model_c_passed_data *)data;
+  model_c_passed_data *data_ptr = (model_c_passed_data *) data;
   lf *file = data_ptr->file;
   char *current_name = data_ptr->model_ptr->printable_name;
   table_model_entry *model_ptr = instruction->file_entry->model_first;
 
-  while (model_ptr) {
-    if (model_ptr->fields[insn_model_name] == current_name) {
-      lf_printf(file, "  { %-*s },  /* %s */\n",
-               max_model_fields_len,
-               model_ptr->fields[insn_model_fields],
-               instruction->file_entry->fields[insn_name]);
-      return;
+  while (model_ptr)
+    {
+      if (model_ptr->fields[insn_model_name] == current_name)
+       {
+         lf_printf (file, "  { %-*s },  /* %s */\n",
+                    max_model_fields_len,
+                    model_ptr->fields[insn_model_fields],
+                    instruction->file_entry->fields[insn_name]);
+         return;
+       }
+
+      model_ptr = model_ptr->next;
     }
 
-    model_ptr = model_ptr->next;
-  }
-
-  lf_printf(file, "  { %-*s },  /* %s */\n",
-           max_model_fields_len,
-           data_ptr->model_ptr->insn_default,
-           instruction->file_entry->fields[insn_name]);
+  lf_printf (file, "  { %-*s },  /* %s */\n",
+            max_model_fields_len,
+            data_ptr->model_ptr->insn_default,
+            instruction->file_entry->fields[insn_name]);
 }
 
 static void
-model_c_function(insn_table *table,
-                lf *file,
-                table_entry *function,
-                const char *prefix)
+model_c_function (insn_table *table,
+                 lf *file, table_entry *function, const char *prefix)
 {
   if (function->fields[function_type] == NULL
       || function->fields[function_type][0] == '\0')
     {
-      error("Model function return type not specified for %s",
-           function->fields[function_name]);
+      error ("Model function return type not specified for %s",
+            function->fields[function_name]);
     }
   else
     {
-      lf_printf(file, "\n");
-      lf_print_function_type(file, function->fields[function_type], prefix, "\n");
-      lf_printf(file, "%s(%s)\n",
-               function->fields[function_name],
-               function->fields[function_param]);
+      lf_printf (file, "\n");
+      lf_print_function_type (file, function->fields[function_type], prefix,
+                             "\n");
+      lf_printf (file, "%s(%s)\n", function->fields[function_name],
+                function->fields[function_param]);
     }
-  lf_printf(file, "{\n");
+  lf_printf (file, "{\n");
   if (function->annex)
     {
-      lf_indent(file, +2);
-      table_entry_print_cpp_line_nr(file, function->annex_line);
-      lf_print__c_code(file, function->annex);
-      lf_indent(file, -2);
+      lf_indent (file, +2);
+      table_entry_print_cpp_line_nr (file, function->annex_line);
+      lf_print__c_code (file, function->annex);
+      lf_indent (file, -2);
     }
-  lf_printf(file, "}\n");
-  lf_print__internal_reference(file);
-  lf_printf(file, "\n");
+  lf_printf (file, "}\n");
+  lf_print__internal_reference (file);
+  lf_printf (file, "\n");
 }
 
-void 
-gen_model_c(insn_table *table, lf *file)
+void
+gen_model_c (insn_table *table, lf *file)
 {
   insn *insn_ptr;
   model *model_ptr;
@@ -245,155 +257,179 @@ gen_model_c(insn_table *table, lf *file)
   int model_mon_info_p = 0;
   int model_mon_info_free_p = 0;
 
-  lf_printf(file, "\n");
-  lf_printf(file, "#include \"cpu.h\"\n");
-  lf_printf(file, "#include \"mon.h\"\n");
-  lf_printf(file, "\n");
-  lf_printf(file, "#ifdef HAVE_STDLIB_H\n");
-  lf_printf(file, "#include <stdlib.h>\n");
-  lf_printf(file, "#endif\n");
-  lf_printf(file, "\n");
-
-  for(insn_ptr = model_data; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_or_h_data(table, file, insn_ptr->file_entry);
-  }
-
-  for(insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_or_h_function(table, file, insn_ptr->file_entry, "/*h*/STATIC");
-  }
-
-  for(insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_or_h_function(table, file, insn_ptr->file_entry, "STATIC_INLINE_MODEL");
-  }
-
-  for(insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_function(table, file, insn_ptr->file_entry, "/*c*/STATIC");
-  }
-
-  for(insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_function(table, file, insn_ptr->file_entry, "STATIC_INLINE_MODEL");
-  }
-
-  for(insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_function(table, file, insn_ptr->file_entry, "INLINE_MODEL");
-    name = insn_ptr->file_entry->fields[function_name];
-    if (strcmp (name, "model_create") == 0)
-      model_create_p = 1;
-    else if (strcmp (name, "model_init") == 0)
-      model_init_p = 1;
-    else if (strcmp (name, "model_halt") == 0)
-      model_halt_p = 1;
-    else if (strcmp (name, "model_mon_info") == 0)
-      model_mon_info_p = 1;
-    else if (strcmp (name, "model_mon_info_free") == 0)
-      model_mon_info_free_p = 1;
-  }
-
-  if (!model_create_p) {
-    lf_print_function_type(file, "model_data *", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_create(sim_cpu *cpu)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "  return (model_data *)0;\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_init_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_init(model_data *model_ptr)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_halt_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_halt(model_data *model_ptr)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_mon_info_p) {
-    lf_print_function_type(file, "model_print *", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_mon_info(model_data *model_ptr)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "  return (model_print *)0;\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_mon_info_free_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_mon_info_free(model_data *model_ptr,\n");
-    lf_printf(file, "                    model_print *info_ptr)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  lf_printf(file, "/* Insn functional unit info */\n");
-  for(model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-    model_c_passed_data data;
-
-    lf_printf(file, "static const model_time model_time_%s[] = {\n", model_ptr->name);
-    data.file = file;
-    data.model_ptr = model_ptr;
-    insn_table_traverse_insn(table,
-                            NULL, (void *)&data,
-                            model_c_insn);
-
-    lf_printf(file, "};\n");
-    lf_printf(file, "\n");
-    lf_printf(file, "\f\n");
-  }
-
-  lf_printf(file, "#ifndef _INLINE_C_\n");
-  lf_printf(file, "const model_time *const model_time_mapping[ (int)nr_models ] = {\n");
-  lf_printf(file, "  (const model_time *const)0,\n");
-  for(model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-    lf_printf(file, "  model_time_%s,\n", model_ptr->name);
-  }
-  lf_printf(file, "};\n");
-  lf_printf(file, "#endif\n");
-  lf_printf(file, "\n");
-
-  lf_printf(file, "\f\n");
-  lf_printf(file, "/* map model enumeration into printable string */\n");
-  lf_printf(file, "#ifndef _INLINE_C_\n");
-  lf_printf(file, "const char *model_name[ (int)nr_models ] = {\n");
-  lf_printf(file, "  \"NONE\",\n");
-  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-    lf_printf(file, "  \"%s\",\n", model_ptr->printable_name);
-  }
-  lf_printf(file, "};\n");
-  lf_printf(file, "#endif\n");
-  lf_printf(file, "\n");
-
-  lf_print_function_type(file, "void", "INLINE_MODEL", "\n");
-  lf_printf(file, "model_set(const char *name)\n");
-  lf_printf(file, "{\n");
-  if (models) {
-    lf_printf(file, "  model_enum model;\n");
-    lf_printf(file, "  for(model = MODEL_%s; model < nr_models; model++) {\n", models->name);
-    lf_printf(file, "    if(strcmp(name, model_name[model]) == 0) {\n");
-    lf_printf(file, "      current_model = model;\n");
-    lf_printf(file, "      return;\n");
-    lf_printf(file, "    }\n");
-    lf_printf(file, "  }\n");
-    lf_printf(file, "\n");
-    lf_printf(file, "  error(\"Unknown model '%%s', Models which are known are:%%s\n\",\n");
-    lf_printf(file, "        name,\n");
-    lf_printf(file, "        \"");
-    for(model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-      lf_printf(file, "\\n\\t%s", model_ptr->printable_name);
+  lf_printf (file, "\n");
+  lf_printf (file, "#include \"cpu.h\"\n");
+  lf_printf (file, "#include \"mon.h\"\n");
+  lf_printf (file, "\n");
+  lf_printf (file, "#ifdef HAVE_STDLIB_H\n");
+  lf_printf (file, "#include <stdlib.h>\n");
+  lf_printf (file, "#endif\n");
+  lf_printf (file, "\n");
+
+  for (insn_ptr = model_data; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_or_h_data (table, file, insn_ptr->file_entry);
+    }
+
+  for (insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_or_h_function (table, file, insn_ptr->file_entry,
+                            "/*h*/STATIC");
+    }
+
+  for (insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_or_h_function (table, file, insn_ptr->file_entry,
+                            "STATIC_INLINE_MODEL");
+    }
+
+  for (insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_function (table, file, insn_ptr->file_entry, "/*c*/STATIC");
+    }
+
+  for (insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_function (table, file, insn_ptr->file_entry,
+                       "STATIC_INLINE_MODEL");
+    }
+
+  for (insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_function (table, file, insn_ptr->file_entry, "INLINE_MODEL");
+      name = insn_ptr->file_entry->fields[function_name];
+      if (strcmp (name, "model_create") == 0)
+       model_create_p = 1;
+      else if (strcmp (name, "model_init") == 0)
+       model_init_p = 1;
+      else if (strcmp (name, "model_halt") == 0)
+       model_halt_p = 1;
+      else if (strcmp (name, "model_mon_info") == 0)
+       model_mon_info_p = 1;
+      else if (strcmp (name, "model_mon_info_free") == 0)
+       model_mon_info_free_p = 1;
+    }
+
+  if (!model_create_p)
+    {
+      lf_print_function_type (file, "model_data *", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_create(sim_cpu *cpu)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "  return (model_data *)0;\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_init_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_init(model_data *model_ptr)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_halt_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_halt(model_data *model_ptr)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_mon_info_p)
+    {
+      lf_print_function_type (file, "model_print *", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_mon_info(model_data *model_ptr)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "  return (model_print *)0;\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_mon_info_free_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_mon_info_free(model_data *model_ptr,\n");
+      lf_printf (file, "                    model_print *info_ptr)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  lf_printf (file, "/* Insn functional unit info */\n");
+  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+    {
+      model_c_passed_data data;
+
+      lf_printf (file, "static const model_time model_time_%s[] = {\n",
+                model_ptr->name);
+      data.file = file;
+      data.model_ptr = model_ptr;
+      insn_table_traverse_insn (table, NULL, (void *) &data, model_c_insn);
+
+      lf_printf (file, "};\n");
+      lf_printf (file, "\n");
+      lf_printf (file, "\f\n");
+    }
+
+  lf_printf (file, "#ifndef _INLINE_C_\n");
+  lf_printf (file,
+            "const model_time *const model_time_mapping[ (int)nr_models ] = {\n");
+  lf_printf (file, "  (const model_time *const)0,\n");
+  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+    {
+      lf_printf (file, "  model_time_%s,\n", model_ptr->name);
+    }
+  lf_printf (file, "};\n");
+  lf_printf (file, "#endif\n");
+  lf_printf (file, "\n");
+
+  lf_printf (file, "\f\n");
+  lf_printf (file, "/* map model enumeration into printable string */\n");
+  lf_printf (file, "#ifndef _INLINE_C_\n");
+  lf_printf (file, "const char *model_name[ (int)nr_models ] = {\n");
+  lf_printf (file, "  \"NONE\",\n");
+  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+    {
+      lf_printf (file, "  \"%s\",\n", model_ptr->printable_name);
+    }
+  lf_printf (file, "};\n");
+  lf_printf (file, "#endif\n");
+  lf_printf (file, "\n");
+
+  lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
+  lf_printf (file, "model_set(const char *name)\n");
+  lf_printf (file, "{\n");
+  if (models)
+    {
+      lf_printf (file, "  model_enum model;\n");
+      lf_printf (file,
+                "  for(model = MODEL_%s; model < nr_models; model++) {\n",
+                models->name);
+      lf_printf (file, "    if(strcmp(name, model_name[model]) == 0) {\n");
+      lf_printf (file, "      current_model = model;\n");
+      lf_printf (file, "      return;\n");
+      lf_printf (file, "    }\n");
+      lf_printf (file, "  }\n");
+      lf_printf (file, "\n");
+      lf_printf (file,
+                "  error(\"Unknown model '%%s', Models which are known are:%%s\n\",\n");
+      lf_printf (file, "        name,\n");
+      lf_printf (file, "        \"");
+      for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+       {
+         lf_printf (file, "\\n\\t%s", model_ptr->printable_name);
+       }
+      lf_printf (file, "\");\n");
+    }
+  else
+    {
+      lf_printf (file, "  error(\"No models are currently known about\");\n");
     }
-    lf_printf(file, "\");\n");
-  } else {
-    lf_printf(file, "  error(\"No models are currently known about\");\n");
-  }
 
-  lf_printf(file, "}\n");
+  lf_printf (file, "}\n");
 }
 
 #endif
@@ -401,16 +437,14 @@ gen_model_c(insn_table *table, lf *file)
 
 
 void
-gen_model_h (lf *file,
-            insn_table *table)
+gen_model_h (lf *file, insn_table *table)
 {
   lf_print__this_file_is_empty (file, "suffering bit rot");
 }
 
 
 void
-gen_model_c (lf *file,
-            insn_table *table)
+gen_model_c (lf *file, insn_table *table)
 {
   lf_print__this_file_is_empty (file, "suffering bit rot");
 }
index 4188e1b2225058f175cf19d5a146bf7aa486254b..8dd987228b5d587d44f08053d15fa0e50a052998 100644 (file)
@@ -1,29 +1,28 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.
 
-extern void gen_model_h
-(lf *file,
- insn_table *isa);
+   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.  */
 
-extern void gen_model_c
-(lf *file,
- insn_table *isa);
+
+
+extern void gen_model_h (lf *file, insn_table *isa);
+
+extern void gen_model_c (lf *file, insn_table *isa);
index 2994f828472b0b87b33bf8c0fd43edc989c51b1f..44a3c5249e5aabd52a8a2668e5b1cfaedda01020 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 
@@ -45,7 +48,7 @@ print_semantic_function_header (lf *file,
                                int nr_prefetched_words)
 {
   int indent;
-  lf_printf(file, "\n");
+  lf_printf (file, "\n");
   lf_print__function_type_function (file, print_semantic_function_type,
                                    "EXTERN_SEMANTICS",
                                    (is_function_definition ? "\n" : " "));
@@ -82,52 +85,58 @@ print_semantic_function_header (lf *file,
 
 void
 print_semantic_declaration (lf *file,
-                           insn_entry *insn,
+                           insn_entry * insn,
                            opcode_bits *expanded_bits,
-                           insn_opcodes *opcodes,
-                           int nr_prefetched_words)
+                           insn_opcodes *opcodes, int nr_prefetched_words)
 {
   print_semantic_function_header (file,
                                  insn->name,
                                  insn->format_name,
                                  expanded_bits,
-                                 0/* is not function definition*/,
+                                 0 /* is not function definition */ ,
                                  nr_prefetched_words);
 }
+\f
 
 
-\f
 /* generate the semantics.c file */
 
 
 void
-print_idecode_invalid (lf *file,
-                      const char *result,
-                      invalid_type type)
+print_idecode_invalid (lf *file, const char *result, invalid_type type)
 {
   const char *name;
   switch (type)
     {
-    default: name = "unknown"; break;
-    case invalid_illegal: name = "illegal"; break;
-    case invalid_fp_unavailable: name = "fp_unavailable"; break;
-    case invalid_wrong_slot: name = "wrong_slot"; break;
+    default:
+      name = "unknown";
+      break;
+    case invalid_illegal:
+      name = "illegal";
+      break;
+    case invalid_fp_unavailable:
+      name = "fp_unavailable";
+      break;
+    case invalid_wrong_slot:
+      name = "wrong_slot";
+      break;
     }
   if (options.gen.code == generate_jumps)
     {
       lf_printf (file, "goto %s_%s;\n",
-                (options.gen.icache ? "icache" : "semantic"),
-                name);
+                (options.gen.icache ? "icache" : "semantic"), name);
     }
   else if (options.gen.icache)
     {
-      lf_printf (file, "%s %sicache_%s (", result, options.module.global.prefix.l, name);
+      lf_printf (file, "%s %sicache_%s (", result,
+                options.module.global.prefix.l, name);
       print_icache_function_actual (file, 0);
       lf_printf (file, ");\n");
     }
   else
     {
-      lf_printf (file, "%s %ssemantic_%s (", result, options.module.global.prefix.l, name);
+      lf_printf (file, "%s %ssemantic_%s (", result,
+                options.module.global.prefix.l, name);
       print_semantic_function_actual (file, 0);
       lf_printf (file, ");\n");
     }
@@ -136,18 +145,17 @@ print_idecode_invalid (lf *file,
 
 void
 print_semantic_body (lf *file,
-                    insn_entry *instruction,
-                    opcode_bits *expanded_bits,
-                    insn_opcodes *opcodes)
+                    insn_entry * instruction,
+                    opcode_bits *expanded_bits, insn_opcodes *opcodes)
 {
   /* validate the instruction, if a cache this has already been done */
   if (!options.gen.icache)
     {
       print_idecode_validate (file, instruction, opcodes);
     }
-  
-  print_itrace (file, instruction, 0/*put_value_in_cache*/);
-  
+
+  print_itrace (file, instruction, 0 /*put_value_in_cache */ );
+
   /* generate the instruction profile call - this is delayed until
      after the instruction has been verified.  The count macro
      generated is prefixed by ITABLE_PREFIX */
@@ -174,22 +182,20 @@ print_semantic_body (lf *file,
     print_function_name (file,
                         instruction->name,
                         instruction->format_name,
-                        NULL,
-                        NULL,
-                        function_name_prefix_itable);
+                        NULL, NULL, function_name_prefix_itable);
     lf_printf (file, ", cpu, cia);\n");
     lf_indent_suppress (file);
     lf_printf (file, "#endif\n");
     lf_printf (file, "\n");
   }
-  
+
   /* determine the new instruction address */
   {
-    lf_printf(file, "/* keep the next instruction address handy */\n");
+    lf_printf (file, "/* keep the next instruction address handy */\n");
     if (options.gen.nia == nia_is_invalid)
       {
-       lf_printf(file, "nia = %sINVALID_INSTRUCTION_ADDRESS;\n",
-                 options.module.global.prefix.u);
+       lf_printf (file, "nia = %sINVALID_INSTRUCTION_ADDRESS;\n",
+                  options.module.global.prefix.u);
       }
     else
       {
@@ -215,7 +221,7 @@ print_semantic_body (lf *file,
                lf_printf (file, "nia = cia + %d * (%d + 1); %s\n",
                           options.insn_bit_size / 8, nr_immeds,
                           "/* skip immeds as well */");
-               
+
              }
            else
              {
@@ -225,7 +231,7 @@ print_semantic_body (lf *file,
          }
       }
   }
-  
+
   /* if conditional, generate code to verify that the instruction
      should be issued */
   if (filter_is_member (instruction->options, "c")
@@ -238,7 +244,7 @@ print_semantic_body (lf *file,
       lf_indent (file, +4);
       /* FIXME - need to log a conditional failure */
     }
-  
+
   /* Architecture expects a REG to be zero.  Instead of having to
      check every read to see if it is refering to that REG just zap it
      at the start of every instruction */
@@ -248,7 +254,7 @@ print_semantic_body (lf *file,
       lf_printf (file, "/* Architecture expects REG to be zero */\n");
       lf_printf (file, "GPR_CLEAR(%d);\n", options.gen.zero_reg_nr);
     }
-  
+
   /* generate the code (or at least something */
   lf_printf (file, "\n");
   lf_printf (file, "/* semantics: */\n");
@@ -284,32 +290,30 @@ print_semantic_body (lf *file,
       lf_indent (file, -indent);
       lf_print__internal_ref (file);
     }
-  
+
   /* Close off the conditional execution */
   if (filter_is_member (instruction->options, "c")
       || options.gen.conditional_issue)
     {
       lf_indent (file, -4);
       lf_printf (file, "  }\n");
-    }  
+    }
 }
 
 static void
 print_c_semantic (lf *file,
-                 insn_entry *instruction,
+                 insn_entry * instruction,
                  opcode_bits *expanded_bits,
                  insn_opcodes *opcodes,
-                 cache_entry *cache_rules,
-                 int nr_prefetched_words)
+                 cache_entry *cache_rules, int nr_prefetched_words)
 {
-  
+
   lf_printf (file, "{\n");
   lf_indent (file, +2);
-  
+
   print_my_defines (file,
                    instruction->name,
-                   instruction->format_name,
-                   expanded_bits);
+                   instruction->format_name, expanded_bits);
   lf_printf (file, "\n");
   print_icache_body (file,
                     instruction,
@@ -320,16 +324,13 @@ print_c_semantic (lf *file,
                      : declare_variables),
                     (options.gen.icache
                      ? get_values_from_icache
-                     : do_not_use_icache),
-                    nr_prefetched_words);
-  
-  lf_printf (file, "%sinstruction_address nia;\n", options.module.global.prefix.l);
-  print_semantic_body (file,
-                      instruction,
-                      expanded_bits,
-                      opcodes);
+                     : do_not_use_icache), nr_prefetched_words);
+
+  lf_printf (file, "%sinstruction_address nia;\n",
+            options.module.global.prefix.l);
+  print_semantic_body (file, instruction, expanded_bits, opcodes);
   lf_printf (file, "return nia;\n");
-  
+
   /* generate something to clean up any #defines created for the cache */
   if (options.gen.direct_access)
     {
@@ -340,51 +341,41 @@ print_c_semantic (lf *file,
                         undef_variables,
                         (options.gen.icache
                          ? get_values_from_icache
-                         : do_not_use_icache),
-                        nr_prefetched_words);
+                         : do_not_use_icache), nr_prefetched_words);
     }
-  
+
   lf_indent (file, -2);
   lf_printf (file, "}\n");
 }
 
 static void
 print_c_semantic_function (lf *file,
-                          insn_entry *instruction,
+                          insn_entry * instruction,
                           opcode_bits *expanded_bits,
                           insn_opcodes *opcodes,
-                          cache_entry *cache_rules,
-                          int nr_prefetched_words)
+                          cache_entry *cache_rules, int nr_prefetched_words)
 {
   /* build the semantic routine to execute the instruction */
   print_semantic_function_header (file,
                                  instruction->name,
                                  instruction->format_name,
                                  expanded_bits,
-                                 1/*is-function-definition*/,
+                                 1 /*is-function-definition */ ,
                                  nr_prefetched_words);
   print_c_semantic (file,
                    instruction,
-                   expanded_bits,
-                   opcodes,
-                   cache_rules,
-                   nr_prefetched_words);
+                   expanded_bits, opcodes, cache_rules, nr_prefetched_words);
 }
 
 void
 print_semantic_definition (lf *file,
-                          insn_entry *insn,
+                          insn_entry * insn,
                           opcode_bits *expanded_bits,
                           insn_opcodes *opcodes,
-                          cache_entry *cache_rules,
-                          int nr_prefetched_words)
+                          cache_entry *cache_rules, int nr_prefetched_words)
 {
   print_c_semantic_function (file,
                             insn,
                             expanded_bits,
-                            opcodes,
-                            cache_rules,
-                            nr_prefetched_words);
+                            opcodes, cache_rules, nr_prefetched_words);
 }
-
-
index 869d1eddde41d9138f8c345e4caca6388d1320db..9afc5cf7ffe07c61f6cde0e880911b96e097b3a9 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 /* Creates the files semantics.[hc].
 
 
 extern void print_semantic_declaration
-(lf *file,
- insn_entry *insn,
- opcode_bits *bits,
- insn_opcodes *opcodes,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * insn,
+   opcode_bits *bits, insn_opcodes *opcodes, int nr_prefetched_words);
 
 extern void print_semantic_definition
-(lf *file,
- insn_entry *insn,
- opcode_bits *bits,
- insn_opcodes *opcodes,
- cache_entry *cache_rules,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * insn,
+   opcode_bits *bits,
+   insn_opcodes *opcodes, cache_entry *cache_rules, int nr_prefetched_words);
 
 
-typedef enum {
+typedef enum
+{
   invalid_illegal,
   invalid_fp_unavailable,
   invalid_wrong_slot,
-} invalid_type;
+}
+invalid_type;
 
 extern void print_idecode_invalid
-(lf *file,
- const char *result,
- invalid_type type);
+  (lf *file, const char *result, invalid_type type);
 
 extern void print_semantic_body
-(lf *file,
- insn_entry *instruction,
- opcode_bits *expanded_bits,
- insn_opcodes *opcodes);
-
+  (lf *file,
+   insn_entry * instruction,
+   opcode_bits *expanded_bits, insn_opcodes *opcodes);
index e2663ac5fc66957e24ca58168f73f4c9ffa4cc0c..d246845b99f003e4092f88725490c60fb5ce223b 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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.  */
+
 
 #include "misc.h"
 #include "lf.h"
 
 static void
 print_support_function_name (lf *file,
-                            function_entry *function,
+                            function_entry * function,
                             int is_function_definition)
 {
   if (function->is_internal)
     {
       lf_print__function_type_function (file, print_semantic_function_type,
                                        "INLINE_SUPPORT",
-                                       (is_function_definition ? "\n" : " "));
-      print_function_name (file,
-                          function->name,
-                          NULL,
-                          NULL,
-                          NULL,
+                                       (is_function_definition ? "\n" :
+                                        " "));
+      print_function_name (file, function->name, NULL, NULL, NULL,
                           function_name_prefix_semantics);
       lf_printf (file, "\n(");
       lf_indent (file, +1);
@@ -67,16 +68,14 @@ print_support_function_name (lf *file,
          lf_indent_suppress (file);
          lf_printf (file, "#define %s %s%s\n",
                     function->name,
-                    options.module.support.prefix.l,
-                    function->name);
+                    options.module.support.prefix.l, function->name);
        }
       lf_print__function_type (file,
                               function->type,
                               "INLINE_SUPPORT",
                               (is_function_definition ? "\n" : " "));
       lf_printf (file, "%s%s\n(",
-                options.module.support.prefix.l,
-                function->name);
+                options.module.support.prefix.l, function->name);
       if (options.gen.smp)
        lf_printf (file,
                   "sim_cpu *cpu, %sinstruction_address cia, int MY_INDEX",
@@ -85,8 +84,7 @@ print_support_function_name (lf *file,
        lf_printf (file,
                   "SIM_DESC sd, %sinstruction_address cia, int MY_INDEX",
                   options.module.support.prefix.l);
-      if (function->param != NULL
-         && strlen (function->param) > 0)
+      if (function->param != NULL && strlen (function->param) > 0)
        lf_printf (file, ", %s", function->param);
       lf_printf (file, ")%s", (is_function_definition ? "\n" : ";\n"));
     }
@@ -94,58 +92,54 @@ print_support_function_name (lf *file,
 
 
 static void
-support_h_function (lf *file,
-                   function_entry *function,
-                   void *data)
+support_h_function (lf *file, function_entry * function, void *data)
 {
   ASSERT (function->type != NULL);
-  print_support_function_name (file,
-                              function,
-                              0/*!is_definition*/);
-  lf_printf(file, "\n");
+  print_support_function_name (file, function, 0 /*!is_definition */ );
+  lf_printf (file, "\n");
 }
 
 
 extern void
-gen_support_h (lf *file,
-              insn_table *table)
+gen_support_h (lf *file, insn_table *table)
 {
-  /* output the definition of `SD_'*/
-  if (options.gen.smp) 
+  /* output the definition of `SD_' */
+  if (options.gen.smp)
     {
-      lf_printf(file, "#define SD CPU_STATE (cpu)\n");
-      lf_printf(file, "#define CPU cpu\n");
-      lf_printf(file, "#define CPU_ cpu\n");
+      lf_printf (file, "#define SD CPU_STATE (cpu)\n");
+      lf_printf (file, "#define CPU cpu\n");
+      lf_printf (file, "#define CPU_ cpu\n");
     }
   else
     {
-      lf_printf(file, "#define SD sd\n");
-      lf_printf(file, "#define CPU (STATE_CPU (sd, 0))\n");
-      lf_printf(file, "#define CPU_ sd\n");
+      lf_printf (file, "#define SD sd\n");
+      lf_printf (file, "#define CPU (STATE_CPU (sd, 0))\n");
+      lf_printf (file, "#define CPU_ sd\n");
     }
 
-  lf_printf(file, "#define CIA_ cia\n");
+  lf_printf (file, "#define CIA_ cia\n");
   if (options.gen.delayed_branch)
     {
-      lf_printf(file, "#define CIA cia.ip\n");
-      lf_printf(file, "/* #define NIA nia.dp -- do not define, ambigious */\n");
+      lf_printf (file, "#define CIA cia.ip\n");
+      lf_printf (file,
+                "/* #define NIA nia.dp -- do not define, ambigious */\n");
     }
   else
     {
-      lf_printf(file, "#define CIA cia\n");
-      lf_printf(file, "#define NIA nia\n");
+      lf_printf (file, "#define CIA cia\n");
+      lf_printf (file, "#define NIA nia\n");
     }
-  lf_printf(file, "\n");
+  lf_printf (file, "\n");
 
-  lf_printf(file, "#define SD_ CPU_, CIA_, MY_INDEX\n");
-  lf_printf(file, "#define _SD SD_ /* deprecated */\n");
-  lf_printf(file, "\n");
+  lf_printf (file, "#define SD_ CPU_, CIA_, MY_INDEX\n");
+  lf_printf (file, "#define _SD SD_ /* deprecated */\n");
+  lf_printf (file, "\n");
 
   /* Map <PREFIX>_xxxx onto the shorter xxxx for the following names:
 
-       instruction_word
-       idecode_issue
-       semantic_illegal
+     instruction_word
+     idecode_issue
+     semantic_illegal
 
      Map defined here as name space problems are created when the name is
      defined in idecode.h  */
@@ -154,55 +148,47 @@ gen_support_h (lf *file,
       lf_indent_suppress (file);
       lf_printf (file, "#define %s %s%s\n",
                 "instruction_word",
-                options.module.idecode.prefix.l,
-                "instruction_word");
+                options.module.idecode.prefix.l, "instruction_word");
       lf_printf (file, "\n");
       lf_indent_suppress (file);
       lf_printf (file, "#define %s %s%s\n",
                 "idecode_issue",
-                options.module.idecode.prefix.l,
-                "idecode_issue");
+                options.module.idecode.prefix.l, "idecode_issue");
       lf_printf (file, "\n");
       lf_indent_suppress (file);
       lf_printf (file, "#define %s %s%s\n",
                 "semantic_illegal",
-                options.module.idecode.prefix.l,
-                "semantic_illegal");
+                options.module.idecode.prefix.l, "semantic_illegal");
       lf_printf (file, "\n");
     }
 
   /* output a declaration for all functions */
-  function_entry_traverse (file, table->functions,
-                          support_h_function,
-                          NULL);
-  lf_printf(file, "\n");
-  lf_printf(file, "#if defined(SUPPORT_INLINE)\n");
-  lf_printf(file, "# if ((SUPPORT_INLINE & INCLUDE_MODULE)\\\n");
-  lf_printf(file, "      && (SUPPORT_INLINE & INCLUDED_BY_MODULE))\n");
-  lf_printf(file, "#  include \"%ssupport.c\"\n", options.module.support.prefix.l);
-  lf_printf(file, "# endif\n");
-  lf_printf(file, "#endif\n");
+  function_entry_traverse (file, table->functions, support_h_function, NULL);
+  lf_printf (file, "\n");
+  lf_printf (file, "#if defined(SUPPORT_INLINE)\n");
+  lf_printf (file, "# if ((SUPPORT_INLINE & INCLUDE_MODULE)\\\n");
+  lf_printf (file, "      && (SUPPORT_INLINE & INCLUDED_BY_MODULE))\n");
+  lf_printf (file, "#  include \"%ssupport.c\"\n",
+            options.module.support.prefix.l);
+  lf_printf (file, "# endif\n");
+  lf_printf (file, "#endif\n");
 }
 
 static void
-support_c_function (lf *file,
-                   function_entry *function,
-                   void *data)
+support_c_function (lf *file, function_entry * function, void *data)
 {
   ASSERT (function->type != NULL);
-  print_support_function_name (file,
-                              function,
-                              1/*!is_definition*/);
+  print_support_function_name (file, function, 1 /*!is_definition */ );
   lf_printf (file, "{\n");
   lf_indent (file, +2);
   if (function->code == NULL)
-    error (function->line,
-          "Function without body (or null statement)");
+    error (function->line, "Function without body (or null statement)");
   lf_print__line_ref (file, function->code->line);
   table_print_code (file, function->code);
   if (function->is_internal)
     {
-      lf_printf (file, "sim_engine_abort (SD, CPU, cia, \"Internal function must longjump\\n\");\n");
+      lf_printf (file,
+                "sim_engine_abort (SD, CPU, cia, \"Internal function must longjump\\n\");\n");
       lf_printf (file, "return cia;\n");
     }
   lf_indent (file, -2);
@@ -213,17 +199,17 @@ support_c_function (lf *file,
 
 
 void
-gen_support_c (lf *file,
-              insn_table *table)
+gen_support_c (lf *file, insn_table *table)
 {
-  lf_printf(file, "#include \"sim-main.h\"\n");
-  lf_printf(file, "#include \"%sidecode.h\"\n", options.module.idecode.prefix.l);
-  lf_printf(file, "#include \"%sitable.h\"\n", options.module.itable.prefix.l);
-  lf_printf(file, "#include \"%ssupport.h\"\n", options.module.support.prefix.l);
-  lf_printf(file, "\n");
+  lf_printf (file, "#include \"sim-main.h\"\n");
+  lf_printf (file, "#include \"%sidecode.h\"\n",
+            options.module.idecode.prefix.l);
+  lf_printf (file, "#include \"%sitable.h\"\n",
+            options.module.itable.prefix.l);
+  lf_printf (file, "#include \"%ssupport.h\"\n",
+            options.module.support.prefix.l);
+  lf_printf (file, "\n");
 
   /* output a definition (c-code) for all functions */
-  function_entry_traverse (file, table->functions,
-                          support_c_function,
-                          NULL);
+  function_entry_traverse (file, table->functions, support_c_function, NULL);
 }
index 301f1ae0d1c9c79b379db4202c2ad69f936c8922..4d716c90ef67a7483b54e3a7f1f5659af9d7439a 100644 (file)
@@ -1,29 +1,27 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.
 
-extern void gen_support_h
-(lf *file,
- insn_table *table);
+   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.
 
-extern void gen_support_c
-(lf *file,
- insn_table *table);
+   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.  */
 
+
+extern void gen_support_h (lf *file, insn_table *table);
+
+extern void gen_support_c (lf *file, insn_table *table);
index 156c929a0521edda68cfe1bc57a7be4f08cdb80d..76bf00d04084ced84206c848eb03c4462049db5e 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 #include "misc.h"
 #include "gen.h"
 
 static insn_uint
-sub_val (insn_uint val,
-        int val_last_pos,
-        int first_pos,
-        int last_pos)
+sub_val (insn_uint val, int val_last_pos, int first_pos, int last_pos)
 {
   return ((val >> (val_last_pos - last_pos))
-         & (((insn_uint)1 << (last_pos - first_pos + 1)) - 1));
+         & (((insn_uint) 1 << (last_pos - first_pos + 1)) - 1));
 }
 
 static void
-update_depth (lf *file,
-             gen_entry *entry,
-             int depth,
-             void *data)
+update_depth (lf *file, gen_entry *entry, int depth, void *data)
 {
-  int *max_depth = (int*)data;
+  int *max_depth = (int *) data;
   if (*max_depth < depth)
     *max_depth = depth;
 }
@@ -55,21 +52,15 @@ int
 gen_entry_depth (gen_entry *table)
 {
   int depth = 0;
-  gen_entry_traverse_tree (NULL,
-                          table,
-                          1,
-                          NULL, /*start*/
-                          update_depth,
-                          NULL, /*end*/
-                          &depth); /* data */
+  gen_entry_traverse_tree (NULL, table, 1, NULL,       /*start */
+                          update_depth, NULL,  /*end */
+                          &depth);     /* data */
   return depth;
 }
 
 
 static void
-print_gen_entry_path (line_ref *line,
-                     gen_entry *table,
-                     error_func *print)
+print_gen_entry_path (line_ref *line, gen_entry *table, error_func *print)
 {
   if (table->parent == NULL)
     {
@@ -88,8 +79,7 @@ print_gen_entry_path (line_ref *line,
 static void
 print_gen_entry_insns (gen_entry *table,
                       error_func *print,
-                      char *first_message,
-                      char *next_message)
+                      char *first_message, char *next_message)
 {
   insn_list *i;
   char *message;
@@ -98,10 +88,7 @@ print_gen_entry_insns (gen_entry *table,
     {
       insn_entry *insn = i->insn;
       print_gen_entry_path (insn->line, table, print);
-      print (NULL, ": %s.%s %s\n",
-            insn->format_name,
-            insn->name,
-            message);
+      print (NULL, ": %s.%s %s\n", insn->format_name, insn->name, message);
       if (next_message != NULL)
        message = next_message;
     }
@@ -115,14 +102,12 @@ insn_field_cmp (insn_word_entry *l, insn_word_entry *r)
     {
       int bit_nr;
       if (l == NULL && r == NULL)
-       return 0; /* all previous fields the same */
+       return 0;               /* all previous fields the same */
       if (l == NULL)
-       return -1; /* left shorter than right */
+       return -1;              /* left shorter than right */
       if (r == NULL)
-       return +1; /* left longer than right */
-      for (bit_nr = 0;
-          bit_nr < options.insn_bit_size;
-          bit_nr++)
+       return +1;              /* left longer than right */
+      for (bit_nr = 0; bit_nr < options.insn_bit_size; bit_nr++)
        {
          if (l->bit[bit_nr]->field->type != insn_field_string)
            continue;
@@ -135,38 +120,46 @@ insn_field_cmp (insn_word_entry *l, insn_word_entry *r)
          if (0)
            printf ("%s%s%s VS %s%s%s\n",
                    l->bit[bit_nr]->field->val_string,
-                   l->bit[bit_nr]->field->conditions->test == insn_field_cond_eq ? "=" : "!",
-                   l->bit[bit_nr]->field->conditions->string,  
+                   l->bit[bit_nr]->field->conditions->test ==
+                   insn_field_cond_eq ? "=" : "!",
+                   l->bit[bit_nr]->field->conditions->string,
                    r->bit[bit_nr]->field->val_string,
-                   r->bit[bit_nr]->field->conditions->test == insn_field_cond_eq ? "=" : "!",
+                   r->bit[bit_nr]->field->conditions->test ==
+                   insn_field_cond_eq ? "=" : "!",
                    r->bit[bit_nr]->field->conditions->string);
          if (l->bit[bit_nr]->field->conditions->test == insn_field_cond_eq
-             && r->bit[bit_nr]->field->conditions->test == insn_field_cond_eq)
+             && r->bit[bit_nr]->field->conditions->test ==
+             insn_field_cond_eq)
            {
-             if (l->bit[bit_nr]->field->conditions->type == insn_field_cond_field
-                 && r->bit[bit_nr]->field->conditions->type == insn_field_cond_field)
+             if (l->bit[bit_nr]->field->conditions->type ==
+                 insn_field_cond_field
+                 && r->bit[bit_nr]->field->conditions->type ==
+                 insn_field_cond_field)
                /* somewhat arbitrary */
                {
                  int cmp = strcmp (l->bit[bit_nr]->field->conditions->string,
-                                   r->bit[bit_nr]->field->conditions->string);
+                                   r->bit[bit_nr]->field->conditions->
+                                   string);
                  if (cmp != 0)
                    return cmp;
                  else
                    continue;
                }
-             if (l->bit[bit_nr]->field->conditions->type == insn_field_cond_field)
+             if (l->bit[bit_nr]->field->conditions->type ==
+                 insn_field_cond_field)
                return +1;
-             if (r->bit[bit_nr]->field->conditions->type == insn_field_cond_field)
+             if (r->bit[bit_nr]->field->conditions->type ==
+                 insn_field_cond_field)
                return -1;
              /* The case of both fields having constant values should have
-                already have been handled because such fields are converted
-                into normal constant fields. */
+                already have been handled because such fields are converted
+                into normal constant fields. */
              continue;
            }
          if (l->bit[bit_nr]->field->conditions->test == insn_field_cond_eq)
-           return +1; /* left = only */
+           return +1;          /* left = only */
          if (r->bit[bit_nr]->field->conditions->test == insn_field_cond_eq)
-           return -1; /* right = only */
+           return -1;          /* right = only */
          /* FIXME: Need to some what arbitrarily order conditional lists */
          continue;
        }
@@ -183,14 +176,12 @@ insn_word_cmp (insn_word_entry *l, insn_word_entry *r)
     {
       int bit_nr;
       if (l == NULL && r == NULL)
-       return 0; /* all previous fields the same */
+       return 0;               /* all previous fields the same */
       if (l == NULL)
-       return -1; /* left shorter than right */
+       return -1;              /* left shorter than right */
       if (r == NULL)
-       return +1; /* left longer than right */
-      for (bit_nr = 0;
-          bit_nr < options.insn_bit_size;
-          bit_nr++)
+       return +1;              /* left longer than right */
+      for (bit_nr = 0; bit_nr < options.insn_bit_size; bit_nr++)
        {
          if (l->bit[bit_nr]->mask < r->bit[bit_nr]->mask)
            return -1;
@@ -208,30 +199,29 @@ insn_word_cmp (insn_word_entry *l, insn_word_entry *r)
 
 /* same as strcmp */
 static int
-opcode_bit_cmp (opcode_bits *l,
-               opcode_bits *r)
+opcode_bit_cmp (opcode_bits *l, opcode_bits *r)
 {
   if (l == NULL && r == NULL)
-    return 0; /* all previous bits the same */
+    return 0;                  /* all previous bits the same */
   if (l == NULL)
-    return -1; /* left shorter than right */
+    return -1;                 /* left shorter than right */
   if (r == NULL)
-    return +1; /* left longer than right */
+    return +1;                 /* left longer than right */
   /* most significant word */
   if (l->field->word_nr < r->field->word_nr)
-    return +1; /* left has more significant word */
+    return +1;                 /* left has more significant word */
   if (l->field->word_nr > r->field->word_nr)
-    return -1; /* right has more significant word */
+    return -1;                 /* right has more significant word */
   /* most significant bit? */
   if (l->first < r->first)
-    return +1; /* left as more significant bit */
+    return +1;                 /* left as more significant bit */
   if (l->first > r->first)
-    return -1; /* right as more significant bit */
+    return -1;                 /* right as more significant bit */
   /* nr bits? */
   if (l->last < r->last)
-    return +1; /* left as less bits */
+    return +1;                 /* left as less bits */
   if (l->last > r->last)
-    return -1; /* right as less bits */
+    return -1;                 /* right as less bits */
   /* value? */
   if (l->value < r->value)
     return -1;
@@ -243,14 +233,13 @@ opcode_bit_cmp (opcode_bits *l,
 
 /* same as strcmp */
 static int
-opcode_bits_cmp (opcode_bits *l,
-                opcode_bits *r)
+opcode_bits_cmp (opcode_bits *l, opcode_bits *r)
 {
   while (1)
     {
       int cmp;
       if (l == NULL && r == NULL)
-       return 0; /* all previous bits the same */
+       return 0;               /* all previous bits the same */
       cmp = opcode_bit_cmp (l, r);
       if (cmp != 0)
        return cmp;
@@ -264,9 +253,7 @@ static opcode_bits *
 new_opcode_bits (opcode_bits *old_bits,
                 int value,
                 int first,
-                int last,
-                insn_field_entry *field,
-                opcode_field *opcode)
+                int last, insn_field_entry *field, opcode_field *opcode)
 {
   opcode_bits *new_bits = ZALLOC (opcode_bits);
   new_bits->field = field;
@@ -274,7 +261,7 @@ new_opcode_bits (opcode_bits *old_bits,
   new_bits->first = first;
   new_bits->last = last;
   new_bits->opcode = opcode;
-  
+
   if (old_bits != NULL)
     {
       opcode_bits *new_list;
@@ -283,12 +270,11 @@ new_opcode_bits (opcode_bits *old_bits,
                                  old_bits->value,
                                  old_bits->first,
                                  old_bits->last,
-                                 old_bits->field,
-                                 old_bits->opcode);
+                                 old_bits->field, old_bits->opcode);
       while (*last != NULL)
        {
          int cmp = opcode_bit_cmp (new_bits, *last);
-         if (cmp < 0) /* new < new_list */
+         if (cmp < 0)          /* new < new_list */
            {
              break;
            }
@@ -310,7 +296,7 @@ new_opcode_bits (opcode_bits *old_bits,
 
 /* Same as strcmp().  */
 static int
-format_name_cmp (const char *l, const char *r)
+name_cmp (const char *l, const char *r)
 {
   if (l == NULL && r == NULL)
     return 0;
@@ -322,15 +308,17 @@ format_name_cmp (const char *l, const char *r)
 }
 
 
-typedef enum {
+typedef enum
+{
   merge_duplicate_insns,
   report_duplicate_insns,
-} duplicate_insn_actions;
+}
+duplicate_insn_actions;
 
 static insn_list *
 insn_list_insert (insn_list **cur_insn_ptr,
                  int *nr_insns,
-                 insn_entry *insn,
+                 insn_entry * insn,
                  opcode_bits *expanded_bits,
                  opcode_field *opcodes,
                  int nr_prefetched_words,
@@ -362,17 +350,35 @@ insn_list_insert (insn_list **cur_insn_ptr,
       else if (cmp > 0)
        continue;
 
-      /* key#4 sort according to the format-name.  If two apparently
-        identical instructions have unique format-names, then the
-        instructions are different.  This is because the
-        format-name's use is overloaded, it not only indicates the
-        format name but also provides a unique semantic name for the
-        function.  */
-      cmp = format_name_cmp (insn->format_name, (*cur_insn_ptr)->insn->format_name);
-      if (cmp < 0)
-       break;
-      else if (cmp > 0)
-       continue;
+      if (duplicate_action == merge_duplicate_insns)
+       {
+         /* key#4: If we're going to merge duplicates, also sort
+            according to the format_name.  Two instructions with
+            identical decode patterns, but different names, are
+            considered different when merging.  Duplicates are only
+            important when creating a decode table (implied by
+            report_duplicate_insns) as such a table only has the
+            instruction's bit code as a way of differentiating
+            between instructions.  */
+         int cmp = name_cmp (insn->format_name,
+                             (*cur_insn_ptr)->insn->format_name);
+         if (cmp < 0)
+           break;
+         else if (cmp > 0)
+           continue;
+       }
+
+      if (duplicate_action == merge_duplicate_insns)
+       {
+         /* key#5: If we're going to merge duplicates, also sort
+            according to the name.  See comment above for
+            format_name.  */
+         int cmp = name_cmp (insn->name, (*cur_insn_ptr)->insn->name);
+         if (cmp < 0)
+           break;
+         else if (cmp > 0)
+           continue;
+       }
 
       /* duplicate keys, report problem */
       switch (duplicate_action)
@@ -389,6 +395,15 @@ insn_list_insert (insn_list **cur_insn_ptr,
                 "Location of duplicate instruction\n");
        case merge_duplicate_insns:
          /* Add the opcode path to the instructions list */
+         if (options.trace.insn_insertion)
+           {
+             notify ((*cur_insn_ptr)->insn->line,
+                     "%s.%s: insert merge %s.%s\n",
+                     (*cur_insn_ptr)->insn->format_name,
+                     (*cur_insn_ptr)->insn->name,
+                     insn->format_name,
+                     insn->name);
+           }
          if (opcodes != NULL)
            {
              insn_opcodes **last = &(*cur_insn_ptr)->opcodes;
@@ -406,10 +421,17 @@ insn_list_insert (insn_list **cur_insn_ptr,
        }
 
     }
-  
+
   /* create a new list entry and insert it */
   {
     insn_list *new_insn = ZALLOC (insn_list);
+    if (options.trace.insn_insertion)
+      {
+       notify (insn->line,
+               "%s.%s: insert new\n",
+               insn->format_name,
+               insn->name);
+      }
     new_insn->insn = insn;
     new_insn->expanded_bits = expanded_bits;
     new_insn->next = (*cur_insn_ptr);
@@ -421,7 +443,7 @@ insn_list_insert (insn_list **cur_insn_ptr,
       }
     (*cur_insn_ptr) = new_insn;
   }
-  
+
   *nr_insns += 1;
 
   return (*cur_insn_ptr);
@@ -432,27 +454,24 @@ extern void
 gen_entry_traverse_tree (lf *file,
                         gen_entry *table,
                         int depth,
-                        gen_entry_handler *start,
-                        gen_entry_handler *leaf,
-                        gen_entry_handler *end,
-                        void *data)
+                        gen_entry_handler * start,
+                        gen_entry_handler * leaf,
+                        gen_entry_handler * end, void *data)
 {
   gen_entry *entry;
-  
-  ASSERT (table != NULL);
+
+  ASSERT (table !=NULL);
   ASSERT (table->opcode != NULL);
   ASSERT (table->nr_entries > 0);
   ASSERT (table->entries != 0);
-  
+
   /* prefix */
   if (start != NULL && depth >= 0)
     {
       start (file, table, depth, data);
     }
   /* infix leaves */
-  for (entry = table->entries;
-       entry != NULL;
-       entry = entry->sibling)
+  for (entry = table->entries; entry != NULL; entry = entry->sibling)
     {
       if (entry->entries != NULL && depth != 0)
        {
@@ -479,9 +498,7 @@ gen_entry_traverse_tree (lf *file,
 /* create a list element containing a single gen_table entry */
 
 static gen_list *
-make_table (insn_table *isa,
-           decode_table *rules,
-           model_entry *model)
+make_table (insn_table *isa, decode_table *rules, model_entry *model)
 {
   insn_entry *insn;
   gen_list *entry = ZALLOC (gen_list);
@@ -495,12 +512,9 @@ make_table (insn_table *isa,
          || insn->processors == NULL
          || filter_is_member (insn->processors, model->name))
        {
-         insn_list_insert (&entry->table->insns,
-                           &entry->table->nr_insns,
-                           insn,
-                           NULL, /* expanded_bits - none yet */
-                           NULL, /* opcodes - none yet */
-                           0, /* nr_prefetched_words - none yet */
+         insn_list_insert (&entry->table->insns, &entry->table->nr_insns, insn, NULL,  /* expanded_bits - none yet */
+                           NULL,       /* opcodes - none yet */
+                           0,  /* nr_prefetched_words - none yet */
                            report_duplicate_insns);
        }
     }
@@ -510,8 +524,7 @@ make_table (insn_table *isa,
 
 
 gen_table *
-make_gen_tables (insn_table *isa,
-                decode_table *rules)
+make_gen_tables (insn_table *isa, decode_table *rules)
 {
   gen_table *gen = ZALLOC (gen_table);
   gen->isa = isa;
@@ -525,9 +538,7 @@ make_gen_tables (insn_table *isa,
        processors = options.model_filter;
       else
        processors = isa->model->processors;
-      for (model = isa->model->models;
-          model != NULL;
-          model = model->next)
+      for (model = isa->model->models; model != NULL; model = model->next)
        {
          if (filter_is_member (processors, model->name))
            {
@@ -542,21 +553,22 @@ make_gen_tables (insn_table *isa,
     }
   return gen;
 }
-  
-  
+
+
 /****************************************************************/
 
 #if 0
-typedef enum {
+typedef enum
+{
   field_is_not_constant = 0,
   field_constant_int = 1,
   field_constant_reserved = 2,
   field_constant_string = 3
-} constant_field_types;
+}
+constant_field_types;
 
 static constant_field_types
-insn_field_is_constant (insn_field *field,
-                       decode_table *rule)
+insn_field_is_constant (insn_field * field, decode_table *rule)
 {
   switch (field->type)
     {
@@ -570,7 +582,7 @@ insn_field_is_constant (insn_field *field,
       else
        return field_is_not_constant;
     case insn_field_wild:
-      return field_is_not_constant; /* never constant */
+      return field_is_not_constant;    /* never constant */
     case insn_field_string:
       /* field, though variable, is on the list of forced constants */
       if (filter_is_member (rule->constant_field_names, field->val_string))
@@ -590,13 +602,11 @@ insn_field_is_constant (insn_field *field,
 /* Is the bit, according to the decode rule, identical across all the
    instructions? */
 static int
-insns_bit_useless (insn_list *insns,
-                  decode_table *rule,
-                  int bit_nr)
+insns_bit_useless (insn_list *insns, decode_table *rule, int bit_nr)
 {
   insn_list *entry;
   int value = -1;
-  int is_useless = 1; /* cleared if something actually found */
+  int is_useless = 1;          /* cleared if something actually found */
 
   /* check the instructions for some constant value in at least one of
      the bit fields */
@@ -622,9 +632,9 @@ insns_bit_useless (insn_list *insns,
            case decode_find_constants:
            case decode_find_mixed:
              /* an integer is useful if its value isn't the same
-                 between all instructions.  The first time through the
-                 value is saved, the second time through (if the
-                 values differ) it is marked as useful. */
+                between all instructions.  The first time through the
+                value is saved, the second time through (if the
+                values differ) it is marked as useful. */
              if (value < 0)
                value = bit->value;
              else if (value != bit->value)
@@ -681,14 +691,13 @@ insns_bit_useless (insn_list *insns,
                  break;
                case decode_find_mixed:
                  /* string field with conditions.  If this condition
-                     eliminates the value then the compare is useful */
+                    eliminates the value then the compare is useful */
                  if (bit->field->conditions != NULL)
                    {
                      insn_field_cond *condition;
                      int shift = bit->field->last - bit_nr;
                      for (condition = bit->field->conditions;
-                          condition != NULL;
-                          condition = condition->next)
+                          condition != NULL; condition = condition->next)
                        {
                          switch (condition->type)
                            {
@@ -699,14 +708,14 @@ insns_bit_useless (insn_list *insns,
                                  if (((condition->value >> shift) & 1)
                                      == (unsigned) value)
                                    /* conditional field excludes the
-                                       current value */
+                                      current value */
                                    is_useless = 0;
                                  break;
                                case insn_field_cond_eq:
                                  if (((condition->value >> shift) & 1)
                                      != (unsigned) value)
                                    /* conditional field requires the
-                                       current value */
+                                      current value */
                                    is_useless = 0;
                                  break;
                                }
@@ -731,8 +740,7 @@ insns_bit_useless (insn_list *insns,
 
 static opcode_field *
 gen_entry_find_opcode_field (insn_list *insns,
-                            decode_table *rule,
-                            int string_only)
+                            decode_table *rule, int string_only)
 {
   opcode_field curr_opcode;
   ASSERT (rule != NULL);
@@ -748,14 +756,14 @@ gen_entry_find_opcode_field (insn_list *insns,
   while (curr_opcode.first <= rule->last)
     {
       if (insns_bit_useless (insns, rule, curr_opcode.first))
-       curr_opcode.first ++;
+       curr_opcode.first++;
       else
        break;
     }
   while (curr_opcode.last >= rule->first)
     {
       if (insns_bit_useless (insns, rule, curr_opcode.last))
-       curr_opcode.last --;
+       curr_opcode.last--;
       else
        break;
     }
@@ -766,62 +774,66 @@ gen_entry_find_opcode_field (insn_list *insns,
     {
       insn_word_entry *fields = entry->insn->word[rule->word_nr];
       opcode_field new_opcode;
-      
+
       ASSERT (fields != NULL);
-      
+
       /* find a start point for the opcode field */
       new_opcode.first = rule->first;
       while (new_opcode.first <= rule->last
             && (!string_only
-                || (insn_field_is_constant(fields->bit[new_opcode.first], rule)
-                    != field_constant_string))
-            && (string_only
-                || (insn_field_is_constant(fields->bit[new_opcode.first], rule)
-                    == field_is_not_constant)))
+                ||
+                (insn_field_is_constant (fields->bit[new_opcode.first], rule)
+                 != field_constant_string)) && (string_only
+                                                ||
+                                                (insn_field_is_constant
+                                                 (fields->
+                                                  bit[new_opcode.first],
+                                                  rule) ==
+                                                 field_is_not_constant)))
        {
          int new_first = fields->bit[new_opcode.first]->last + 1;
          ASSERT (new_first > new_opcode.first);
          new_opcode.first = new_first;
        }
-      ASSERT(new_opcode.first > rule->last
-            || (string_only
-                && insn_field_is_constant(fields->bit[new_opcode.first],
-                                          rule) == field_constant_string)
-            || (!string_only
-                && insn_field_is_constant(fields->bit[new_opcode.first],
-                                          rule)));
-      
+      ASSERT (new_opcode.first > rule->last
+             || (string_only
+                 && insn_field_is_constant (fields->bit[new_opcode.first],
+                                            rule) == field_constant_string)
+             || (!string_only
+                 && insn_field_is_constant (fields->bit[new_opcode.first],
+                                            rule)));
+
       /* find the end point for the opcode field */
       new_opcode.last = rule->last;
       while (new_opcode.last >= rule->first
             && (!string_only
-                || insn_field_is_constant(fields->bit[new_opcode.last],
-                                          rule) != field_constant_string)
+                || insn_field_is_constant (fields->bit[new_opcode.last],
+                                           rule) != field_constant_string)
             && (string_only
-                || !insn_field_is_constant(fields->bit[new_opcode.last],
-                                           rule)))
+                || !insn_field_is_constant (fields->bit[new_opcode.last],
+                                            rule)))
        {
          int new_last = fields->bit[new_opcode.last]->first - 1;
          ASSERT (new_last < new_opcode.last);
          new_opcode.last = new_last;
        }
-      ASSERT(new_opcode.last < rule->first
-            || (string_only
-                && insn_field_is_constant(fields->bit[new_opcode.last],
-                                          rule) == field_constant_string)
-            || (!string_only
-                && insn_field_is_constant(fields->bit[new_opcode.last],
-                                          rule)));
-      
+      ASSERT (new_opcode.last < rule->first
+             || (string_only
+                 && insn_field_is_constant (fields->bit[new_opcode.last],
+                                            rule) == field_constant_string)
+             || (!string_only
+                 && insn_field_is_constant (fields->bit[new_opcode.last],
+                                            rule)));
+
       /* now see if our current opcode needs expanding to include the
-        interesting fields within this instruction */
+         interesting fields within this instruction */
       if (new_opcode.first <= rule->last
          && curr_opcode.first > new_opcode.first)
        curr_opcode.first = new_opcode.first;
       if (new_opcode.last >= rule->first
          && curr_opcode.last < new_opcode.last)
        curr_opcode.last = new_opcode.last;
-      
+
     }
 #endif
 
@@ -836,21 +848,18 @@ gen_entry_find_opcode_field (insn_list *insns,
 
   /* Ensure that, for the non string only case, the opcode includes
      the range forced_first .. forced_last */
-  if (!string_only
-      && curr_opcode.first > rule->force_first)
+  if (!string_only && curr_opcode.first > rule->force_first)
     {
       curr_opcode.first = rule->force_first;
     }
-  if (!string_only
-      && curr_opcode.last < rule->force_last)
+  if (!string_only && curr_opcode.last < rule->force_last)
     {
       curr_opcode.last = rule->force_last;
     }
 
   /* For the string only case, force just the lower bound (so that the
      shift can be eliminated) */
-  if (string_only
-      && rule->force_last == options.insn_bit_size - 1)
+  if (string_only && rule->force_last == options.insn_bit_size - 1)
     {
       curr_opcode.last = options.insn_bit_size - 1;
     }
@@ -880,20 +889,19 @@ gen_entry_find_opcode_field (insn_list *insns,
 
 static void
 gen_entry_insert_insn (gen_entry *table,
-                      insn_entry *old_insn,
+                      insn_entry * old_insn,
                       int new_word_nr,
                       int new_nr_prefetched_words,
-                      int new_opcode_nr,
-                      opcode_bits *new_bits)
+                      int new_opcode_nr, opcode_bits *new_bits)
 {
   gen_entry **entry = &table->entries;
-  
+
   /* find the new table for this entry */
   while ((*entry) != NULL && (*entry)->opcode_nr < new_opcode_nr)
     {
       entry = &(*entry)->sibling;
     }
-  
+
   if ((*entry) == NULL || (*entry)->opcode_nr != new_opcode_nr)
     {
       /* insert the missing entry */
@@ -912,22 +920,17 @@ gen_entry_insert_insn (gen_entry *table,
     }
   /* ASSERT new_bits == cur_entry bits */
   ASSERT ((*entry) != NULL && (*entry)->opcode_nr == new_opcode_nr);
-  insn_list_insert (&(*entry)->insns,
-                   &(*entry)->nr_insns,
-                   old_insn,
-                   NULL, /* expanded_bits - only in final list */
-                   NULL, /* opcodes - only in final list */
-                   new_nr_prefetched_words, /* for this table */
+  insn_list_insert (&(*entry)->insns, &(*entry)->nr_insns, old_insn, NULL,     /* expanded_bits - only in final list */
+                   NULL,       /* opcodes - only in final list */
+                   new_nr_prefetched_words,    /* for this table */
                    report_duplicate_insns);
 }
 
 
 static void
 gen_entry_expand_opcode (gen_entry *table,
-                        insn_entry *instruction,
-                        int bit_nr,
-                        int opcode_nr,
-                        opcode_bits *bits)
+                        insn_entry * instruction,
+                        int bit_nr, int opcode_nr, opcode_bits *bits)
 {
   if (bit_nr > table->opcode->last)
     {
@@ -940,21 +943,20 @@ gen_entry_expand_opcode (gen_entry *table,
                  opcode_nr,
                  instruction->format_name,
                  instruction->name,
-                 (table->opcode_rule->with_duplicates ? " (duplicated)" : ""));
+                 (table->opcode_rule->
+                  with_duplicates ? " (duplicated)" : ""));
        }
       if (table->opcode_rule->with_duplicates)
        {
          gen_entry_insert_insn (table, instruction,
                                 table->opcode->word_nr,
-                                table->nr_prefetched_words,
-                                opcode_nr, bits);
+                                table->nr_prefetched_words, opcode_nr, bits);
        }
       else
        {
          gen_entry_insert_insn (table, instruction,
                                 table->opcode->word_nr,
-                                table->nr_prefetched_words,
-                                opcode_nr, NULL);
+                                table->nr_prefetched_words, opcode_nr, NULL);
        }
     }
   else
@@ -962,23 +964,19 @@ gen_entry_expand_opcode (gen_entry *table,
       insn_word_entry *word = instruction->word[table->opcode->word_nr];
       insn_field_entry *field = word->bit[bit_nr]->field;
       int last_pos = ((field->last < table->opcode->last)
-                     ? field->last
-                     : table->opcode->last);
+                     ? field->last : table->opcode->last);
       int first_pos = ((field->first > table->opcode->first)
-                      ? field->first
-                      : table->opcode->first);
+                      ? field->first : table->opcode->first);
       int width = last_pos - first_pos + 1;
       switch (field->type)
        {
        case insn_field_int:
          {
            int val;
-           val = sub_val (field->val_int, field->last,
-                          first_pos, last_pos);
+           val = sub_val (field->val_int, field->last, first_pos, last_pos);
            gen_entry_expand_opcode (table, instruction,
                                     last_pos + 1,
-                                    ((opcode_nr << width) | val),
-                                    bits);
+                                    ((opcode_nr << width) | val), bits);
            break;
          }
        default:
@@ -986,18 +984,15 @@ gen_entry_expand_opcode (gen_entry *table,
            if (field->type == insn_field_reserved)
              gen_entry_expand_opcode (table, instruction,
                                       last_pos + 1,
-                                      ((opcode_nr << width)),
-                                      bits);
+                                      ((opcode_nr << width)), bits);
            else
              {
                int val;
-               int last_val = (table->opcode->is_boolean
-                               ? 2
-                               : (1 << width));
+               int last_val = (table->opcode->is_boolean ? 2 : (1 << width));
                for (val = 0; val < last_val; val++)
                  {
                    /* check to see if the value has been precluded
-                       (by a conditional) in some way */
+                      (by a conditional) in some way */
                    int is_precluded;
                    insn_field_cond *condition;
                    for (condition = field->conditions, is_precluded = 0;
@@ -1008,8 +1003,9 @@ gen_entry_expand_opcode (gen_entry *table,
                          {
                          case insn_field_cond_value:
                            {
-                             int value = sub_val (condition->value, field->last,
-                                                  first_pos, last_pos);
+                             int value =
+                               sub_val (condition->value, field->last,
+                                        first_pos, last_pos);
                              switch (condition->test)
                                {
                                case insn_field_cond_ne:
@@ -1029,51 +1025,62 @@ gen_entry_expand_opcode (gen_entry *table,
                              opcode_bits *bit;
                              gen_entry *t = NULL;
                              /* Try to find a value for the
-                                 conditional by looking back through
-                                 the previously defined bits for one
-                                 that covers the designated
-                                 conditional field */
-                             for (bit = bits;
-                                  bit != NULL;
-                                  bit = bit->next)
+                                conditional by looking back through
+                                the previously defined bits for one
+                                that covers the designated
+                                conditional field */
+                             for (bit = bits; bit != NULL; bit = bit->next)
                                {
-                                 if (bit->field->word_nr == condition->field->word_nr
+                                 if (bit->field->word_nr ==
+                                     condition->field->word_nr
                                      && bit->first <= condition->field->first
                                      && bit->last >= condition->field->last)
                                    {
                                      /* the bit field fully specified
-                                        the conditional field's value */
+                                        the conditional field's value */
                                      value = sub_val (bit->value, bit->last,
-                                                      condition->field->first,
-                                                      condition->field->last);
+                                                      condition->field->
+                                                      first,
+                                                      condition->field->
+                                                      last);
                                    }
                                }
                              /* Try to find a value by looking
-                                 through this and previous tables */
+                                through this and previous tables */
                              if (bit == NULL)
                                {
                                  for (t = table;
-                                      t->parent != NULL;
-                                      t = t->parent)
+                                      t->parent != NULL; t = t->parent)
                                    {
-                                     if (t->parent->opcode->word_nr == condition->field->word_nr
-                                         && t->parent->opcode->first <= condition->field->first
-                                         && t->parent->opcode->last >= condition->field->last)
+                                     if (t->parent->opcode->word_nr ==
+                                         condition->field->word_nr
+                                         && t->parent->opcode->first <=
+                                         condition->field->first
+                                         && t->parent->opcode->last >=
+                                         condition->field->last)
                                        {
                                          /* the table entry fully
-                                             specified the condition
-                                             field's value */
+                                            specified the condition
+                                            field's value */
                                          /* extract the field's value
-                                             from the opcode */
-                                         value = sub_val (t->opcode_nr, t->parent->opcode->last,
-                                                          condition->field->first, condition->field->last);
+                                            from the opcode */
+                                         value =
+                                           sub_val (t->opcode_nr,
+                                                    t->parent->opcode->last,
+                                                    condition->field->first,
+                                                    condition->field->last);
                                          /* this is a requirement of
-                                             a conditonal field
-                                             refering to another field */
-                                         ASSERT ((condition->field->first - condition->field->last)
-                                                 == (first_pos - last_pos));
-printf ("value=%d, opcode_nr=%d, last=%d, [%d..%d]\n",
-       value, t->opcode_nr, t->parent->opcode->last, condition->field->first, condition->field->last);
+                                            a conditonal field
+                                            refering to another field */
+                                         ASSERT ((condition->field->first -
+                                                  condition->field->last) ==
+                                                 (first_pos - last_pos));
+                                         printf
+                                           ("value=%d, opcode_nr=%d, last=%d, [%d..%d]\n",
+                                            value, t->opcode_nr,
+                                            t->parent->opcode->last,
+                                            condition->field->first,
+                                            condition->field->last);
                                        }
                                    }
                                }
@@ -1099,25 +1106,26 @@ printf ("value=%d, opcode_nr=%d, last=%d, [%d..%d]\n",
                    if (!is_precluded)
                      {
                        /* Only add additional hardwired bit
-                           information if the entry is not going to
-                           later be combined */
+                          information if the entry is not going to
+                          later be combined */
                        if (table->opcode_rule->with_combine)
                          {
                            gen_entry_expand_opcode (table, instruction,
                                                     last_pos + 1,
-                                                    ((opcode_nr << width) | val),
-                                                    bits);
+                                                    ((opcode_nr << width) |
+                                                     val), bits);
                          }
                        else
                          {
-                           opcode_bits *new_bits = new_opcode_bits (bits, val,
-                                                                    first_pos, last_pos,
-                                                                    field,
-                                                                    table->opcode);
+                           opcode_bits *new_bits =
+                             new_opcode_bits (bits, val,
+                                              first_pos, last_pos,
+                                              field,
+                                              table->opcode);
                            gen_entry_expand_opcode (table, instruction,
                                                     last_pos + 1,
-                                                    ((opcode_nr << width) | val),
-                                                    new_bits);
+                                                    ((opcode_nr << width) |
+                                                     val), new_bits);
                          }
                      }
                  }
@@ -1128,28 +1136,24 @@ printf ("value=%d, opcode_nr=%d, last=%d, [%d..%d]\n",
 }
 
 static void
-gen_entry_insert_expanding (gen_entry *table,
-                           insn_entry *instruction)
+gen_entry_insert_expanding (gen_entry *table, insn_entry * instruction)
 {
   gen_entry_expand_opcode (table,
                           instruction,
-                          table->opcode->first,
-                          0,
-                          table->expanded_bits);
+                          table->opcode->first, 0, table->expanded_bits);
 }
 
 
 static int
-insns_match_format_names (insn_list *insns,
-                         filter *format_names)
+insns_match_format_names (insn_list *insns, filter *format_names)
 {
   if (format_names != NULL)
     {
       insn_list *i;
       for (i = insns; i != NULL; i = i->next)
        {
-         if ( i->insn->format_name != NULL
-              && !filter_is_member (format_names, i->insn->format_name))
+         if (i->insn->format_name != NULL
+             && !filter_is_member (format_names, i->insn->format_name))
            return 0;
        }
     }
@@ -1157,8 +1161,7 @@ insns_match_format_names (insn_list *insns,
 }
 
 static int
-table_matches_path (gen_entry *table,
-                   decode_path_list *paths)
+table_matches_path (gen_entry *table, decode_path_list *paths)
 {
   if (paths == NULL)
     return 1;
@@ -1184,8 +1187,7 @@ table_matches_path (gen_entry *table,
 
 
 static int
-insns_match_conditions (insn_list *insns,
-                       decode_cond *conditions)
+insns_match_conditions (insn_list *insns, decode_cond *conditions)
 {
   if (conditions != NULL)
     {
@@ -1205,8 +1207,7 @@ insns_match_conditions (insn_list *insns,
                  if (!i->insn->word[cond->word_nr]->bit[bit_nr]->mask)
                    return 0;
                  if ((i->insn->word[cond->word_nr]->bit[bit_nr]->value
-                      == cond->value[bit_nr])
-                     == !cond->is_equal)
+                      == cond->value[bit_nr]) == !cond->is_equal)
                    return 0;
                }
            }
@@ -1216,8 +1217,7 @@ insns_match_conditions (insn_list *insns,
 }
 
 static int
-insns_match_nr_words (insn_list *insns,
-                     int nr_words)
+insns_match_nr_words (insn_list *insns, int nr_words)
 {
   insn_list *i;
   for (i = insns; i != NULL; i = i->next)
@@ -1229,8 +1229,7 @@ insns_match_nr_words (insn_list *insns,
 }
 
 static int
-insn_list_cmp (insn_list *l,
-              insn_list *r)
+insn_list_cmp (insn_list *l, insn_list *r)
 {
   while (1)
     {
@@ -1242,7 +1241,7 @@ insn_list_cmp (insn_list *l,
       if (r == NULL)
        return 1;
       if (l->insn != r->insn)
-       return -1; /* somewhat arbitrary at present */
+       return -1;              /* somewhat arbitrary at present */
       /* skip this insn */
       insn = l->insn;
       while (l != NULL && l->insn == insn)
@@ -1259,12 +1258,11 @@ gen_entry_expand_insns (gen_entry *table)
 {
   decode_table *opcode_rule;
 
-  ASSERT(table->nr_insns >= 1);
-  
+  ASSERT (table->nr_insns >= 1);
+
   /* determine a valid opcode */
   for (opcode_rule = table->opcode_rule;
-       opcode_rule != NULL;
-       opcode_rule = opcode_rule->next)
+       opcode_rule != NULL; opcode_rule = opcode_rule->next)
     {
       char *discard_reason;
       if (table->top->model != NULL
@@ -1278,17 +1276,19 @@ gen_entry_expand_insns (gen_entry *table)
       else if (table->nr_insns == 1 && opcode_rule->conditions == NULL)
        {
          /* for safety, require a pre-codition when attempting to
-             apply a rule to a single instruction */
+            apply a rule to a single instruction */
          discard_reason = "need pre-condition when nr-insn == 1";
        }
       else if (table->nr_insns == 1 && !opcode_rule->with_duplicates)
        {
          /* Little point in expanding a single instruction when we're
-             not duplicating the semantic functions that this table
-             calls */
+            not duplicating the semantic functions that this table
+            calls */
          discard_reason = "need duplication with nr-insns == 1";
        }
-      else if (!insns_match_format_names (table->insns, opcode_rule->format_names))
+      else
+       if (!insns_match_format_names
+           (table->insns, opcode_rule->format_names))
        {
          discard_reason = "wrong format name";
        }
@@ -1300,18 +1300,18 @@ gen_entry_expand_insns (gen_entry *table)
        {
          discard_reason = "path failed";
        }
-      else if (!insns_match_conditions (table->insns, opcode_rule->conditions))
+      else
+       if (!insns_match_conditions (table->insns, opcode_rule->conditions))
        {
          discard_reason = "condition failed";
        }
       else
        {
          discard_reason = "no opcode field";
-         table->opcode =
-           gen_entry_find_opcode_field (table->insns,
-                                        opcode_rule,
-                                        table->nr_insns == 1/*string-only*/
-                                        );
+         table->opcode = gen_entry_find_opcode_field (table->insns,
+                                                      opcode_rule,
+                                                      table->nr_insns == 1     /*string-only */
+           );
          if (table->opcode != NULL)
            {
              table->opcode_rule = opcode_rule;
@@ -1325,7 +1325,7 @@ gen_entry_expand_insns (gen_entry *table)
          notify (NULL, ": rule discarded - %s\n", discard_reason);
        }
     }
-  
+
   /* did we find anything */
   if (opcode_rule == NULL)
     {
@@ -1345,7 +1345,8 @@ gen_entry_expand_insns (gen_entry *table)
      this table to function */
   if (table->parent == NULL)
     table->nr_prefetched_words = table->opcode_rule->word_nr + 1;
-  else if (table->opcode_rule->word_nr + 1 > table->parent->nr_prefetched_words)
+  else if (table->opcode_rule->word_nr + 1 >
+          table->parent->nr_prefetched_words)
     table->nr_prefetched_words = table->opcode_rule->word_nr + 1;
   else
     table->nr_prefetched_words = table->parent->nr_prefetched_words;
@@ -1353,7 +1354,7 @@ gen_entry_expand_insns (gen_entry *table)
   /* back link what we found to its parent */
   if (table->parent != NULL)
     {
-      ASSERT(table->parent->opcode != NULL);
+      ASSERT (table->parent->opcode != NULL);
       table->opcode->parent = table->parent->opcode;
     }
 
@@ -1368,8 +1369,7 @@ gen_entry_expand_insns (gen_entry *table)
              i2target (options.hi_bit_nr, table->opcode->last),
              i2target (options.hi_bit_nr, table->opcode_rule->first),
              i2target (options.hi_bit_nr, table->opcode_rule->last),
-             table->opcode->nr_opcodes,
-             table->nr_entries);
+             table->opcode->nr_opcodes, table->nr_entries);
     }
 
   /* expand the raw instructions according to the opcode */
@@ -1381,8 +1381,7 @@ gen_entry_expand_insns (gen_entry *table)
          {
            print_gen_entry_path (table->opcode_rule->line, table, notify);
            notify (NULL, ": expand - %s.%s\n",
-                   entry->insn->format_name,
-                   entry->insn->name);
+                   entry->insn->format_name, entry->insn->name);
          }
        gen_entry_insert_expanding (table, entry->insn);
       }
@@ -1397,14 +1396,13 @@ gen_entry_expand_insns (gen_entry *table)
          insn_list *l;
          print_gen_entry_path (table->opcode_rule->line, entry, notify);
          notify (NULL, ": %d - entries %d -",
-                 entry->opcode_nr,
-                 entry->nr_insns);
+                 entry->opcode_nr, entry->nr_insns);
          for (l = entry->insns; l != NULL; l = l->next)
            notify (NULL, " %s.%s", l->insn->format_name, l->insn->name);
          notify (NULL, "\n");
        }
     }
-       
+
   /* perform a combine pass if needed */
   if (table->opcode_rule->with_combine)
     {
@@ -1438,9 +1436,9 @@ gen_entry_expand_insns (gen_entry *table)
                  insn_list *l;
                  gen_entry *duplicate;
                  nr_unique++;
-                 print_gen_entry_path (table->opcode_rule->line, entry, notify);
-                 for (duplicate = entry->combined_next;
-                      duplicate != NULL;
+                 print_gen_entry_path (table->opcode_rule->line, entry,
+                                       notify);
+                 for (duplicate = entry->combined_next; duplicate != NULL;
                       duplicate = duplicate->combined_next)
                    {
                      notify (NULL, "+%d", duplicate->opcode_nr);
@@ -1449,42 +1447,42 @@ gen_entry_expand_insns (gen_entry *table)
                  for (l = entry->insns; l != NULL; l = l->next)
                    {
                      notify (NULL, " %s.%s",
-                             l->insn->format_name,
-                             l->insn->name);
+                             l->insn->format_name, l->insn->name);
                    }
                  notify (NULL, "\n");
                }
            }
          print_gen_entry_path (table->opcode_rule->line, table, notify);
-         notify (NULL, ": combine - word %d, bits [%d..%d] in [%d..%d], opcodes %d, entries %d, unique %d\n",
-                 table->opcode->word_nr,
-                 i2target (options.hi_bit_nr, table->opcode->first),
+         notify (NULL,
+                 ": combine - word %d, bits [%d..%d] in [%d..%d], opcodes %d, entries %d, unique %d\n",
+                 table->opcode->word_nr, i2target (options.hi_bit_nr,
+                                                   table->opcode->first),
                  i2target (options.hi_bit_nr, table->opcode->last),
                  i2target (options.hi_bit_nr, table->opcode_rule->first),
                  i2target (options.hi_bit_nr, table->opcode_rule->last),
-                 table->opcode->nr_opcodes,
-                 table->nr_entries,
-                 nr_unique);
+                 table->opcode->nr_opcodes, table->nr_entries, nr_unique);
        }
     }
-       
+
   /* Check that the rule did more than re-arange the order of the
      instructions */
   {
-      gen_entry *entry;
-      for (entry = table->entries; entry != NULL; entry = entry->sibling)
-       {
-         if (entry->combined_parent == NULL)
-           {
-             if (insn_list_cmp (table->insns, entry->insns) == 0)
-               {
-                 print_gen_entry_path (table->opcode_rule->line, table, warning);
-                 warning (NULL, ": Applying rule just copied all instructions\n");
-                 print_gen_entry_insns (entry, warning, "Copied", NULL);
-                 error (NULL, "");
-               }
-           }
-       }    
+    gen_entry *entry;
+    for (entry = table->entries; entry != NULL; entry = entry->sibling)
+      {
+       if (entry->combined_parent == NULL)
+         {
+           if (insn_list_cmp (table->insns, entry->insns) == 0)
+             {
+               print_gen_entry_path (table->opcode_rule->line, table,
+                                     warning);
+               warning (NULL,
+                        ": Applying rule just copied all instructions\n");
+               print_gen_entry_insns (entry, warning, "Copied", NULL);
+               error (NULL, "");
+             }
+         }
+      }
   }
 
   /* if some form of expanded table, fill in the missing dots */
@@ -1504,10 +1502,7 @@ gen_entry_expand_insns (gen_entry *table)
              if ((*entry) == NULL || (*entry)->opcode_nr != opcode_nr)
                {
                  /* missing - insert it under our feet at *entry */
-                 gen_entry_insert_insn (table,
-                                        table->top->isa->illegal_insn,
-                                        table->opcode->word_nr,
-                                        0, /* nr_prefetched_words == 0 for invalid */
+                 gen_entry_insert_insn (table, table->top->isa->illegal_insn, table->opcode->word_nr, 0,       /* nr_prefetched_words == 0 for invalid */
                                         opcode_nr, NULL);
                  ASSERT ((*entry) != NULL);
                  ASSERT ((*entry)->opcode_nr == opcode_nr);
@@ -1519,7 +1514,7 @@ gen_entry_expand_insns (gen_entry *table)
              opcode_nr++;
            }
          /* oops, will have pointed the first illegal insn back to
-             its self.  Fix this */
+            its self.  Fix this */
          if (illegals != NULL)
            illegals->combined_parent = NULL;
        }
@@ -1534,7 +1529,7 @@ gen_entry_expand_insns (gen_entry *table)
      expand entries that haven't been combined. */
   {
     gen_entry *entry;
-    for (entry = table->entries; entry != NULL; entry =  entry->sibling)
+    for (entry = table->entries; entry != NULL; entry = entry->sibling)
       {
        if (entry->combined_parent == NULL)
          {
@@ -1560,12 +1555,9 @@ gen_tables_expand_insns (gen_table *gen)
    worked. */
 
 static void
-make_gen_semantics_list (lf *file,
-                        gen_entry *entry,
-                        int depth,
-                        void *data)
+make_gen_semantics_list (lf *file, gen_entry *entry, int depth, void *data)
 {
-  gen_table *gen = (gen_table*) data;
+  gen_table *gen = (gen_table *) data;
   insn_list *insn;
   /* Not interested in an entrie that have been combined into some
      other entry at the same level */
@@ -1595,14 +1587,12 @@ gen_tables_expand_semantics (gen_table *gen)
   gen_list *entry;
   for (entry = gen->tables; entry != NULL; entry = entry->next)
     {
-      gen_entry_traverse_tree (NULL,
-                              entry->table,
-                              1, /* depth */
-                              NULL, /* start-handler */
-                              make_gen_semantics_list, /* leaf-handler */
-                              NULL, /* end-handler */
-                              gen); /* data */
-  }
+      gen_entry_traverse_tree (NULL, entry->table, 1,  /* depth */
+                              NULL,    /* start-handler */
+                              make_gen_semantics_list, /* leaf-handler */
+                              NULL,    /* end-handler */
+                              gen);    /* data */
+    }
 }
 
 
@@ -1613,34 +1603,30 @@ gen_tables_expand_semantics (gen_table *gen)
 static void
 dump_opcode_field (lf *file,
                   char *prefix,
-                  opcode_field *field,
-                  char *suffix,
-                  int levels)
+                  opcode_field *field, char *suffix, int levels)
 {
   lf_printf (file, "%s(opcode_field *) 0x%lx", prefix, (long) field);
-  if (levels && field != NULL) {
-    lf_indent (file, +1);
-    lf_printf (file, "\n(first %d)", field->first);
-    lf_printf (file, "\n(last %d)", field->last);
-    lf_printf (file, "\n(nr_opcodes %d)", field->nr_opcodes);
-    lf_printf (file, "\n(is_boolean %d)", field->is_boolean);
-    lf_printf (file, "\n(boolean_constant %d)", field->boolean_constant);
-    dump_opcode_field(file, "\n(parent ", field->parent, ")", levels - 1);
-    lf_indent (file, -1);
-  }
+  if (levels && field != NULL)
+    {
+      lf_indent (file, +1);
+      lf_printf (file, "\n(first %d)", field->first);
+      lf_printf (file, "\n(last %d)", field->last);
+      lf_printf (file, "\n(nr_opcodes %d)", field->nr_opcodes);
+      lf_printf (file, "\n(is_boolean %d)", field->is_boolean);
+      lf_printf (file, "\n(boolean_constant %d)", field->boolean_constant);
+      dump_opcode_field (file, "\n(parent ", field->parent, ")", levels - 1);
+      lf_indent (file, -1);
+    }
   lf_printf (file, "%s", suffix);
 }
 
 
 static void
 dump_opcode_bits (lf *file,
-                 char *prefix,
-                 opcode_bits *bits,
-                 char *suffix,
-                 int levels)
+                 char *prefix, opcode_bits *bits, char *suffix, int levels)
 {
   lf_printf (file, "%s(opcode_bits *) 0x%lx", prefix, (long) bits);
-  
+
   if (levels && bits != NULL)
     {
       lf_indent (file, +1);
@@ -1656,28 +1642,25 @@ dump_opcode_bits (lf *file,
 
 
 static void
-dump_insn_list (lf *file,
-               char *prefix,
-               insn_list *entry,
-               char *suffix)
+dump_insn_list (lf *file, char *prefix, insn_list *entry, char *suffix)
 {
   lf_printf (file, "%s(insn_list *) 0x%lx", prefix, (long) entry);
 
-  if (entry != NULL) {
-    lf_indent (file, +1);
-    dump_insn_entry (file, "\n(insn ", entry->insn, ")");
-    lf_printf (file, "\n(next 0x%lx)", (long) entry->next);
-    lf_indent (file, -1);
-  }
+  if (entry != NULL)
+    {
+      lf_indent (file, +1);
+      dump_insn_entry (file, "\n(insn ", entry->insn, ")");
+      lf_printf (file, "\n(next 0x%lx)", (long) entry->next);
+      lf_indent (file, -1);
+    }
   lf_printf (file, "%s", suffix);
 }
 
 
 static void
 dump_insn_word_entry_list_entries (lf *file,
-                              char *prefix,
-                              insn_list *entry,
-                              char *suffix)
+                                  char *prefix,
+                                  insn_list *entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (entry != NULL)
@@ -1691,39 +1674,37 @@ dump_insn_word_entry_list_entries (lf *file,
 
 static void
 dump_gen_entry (lf *file,
-               char *prefix,
-               gen_entry *table,
-               char *suffix,
-               int levels)
+               char *prefix, gen_entry *table, char *suffix, int levels)
 {
 
   lf_printf (file, "%s(gen_entry *) 0x%lx", prefix, (long) table);
 
-  if (levels && table != NULL) {
-
-    lf_indent (file, +1);
-    lf_printf (file, "\n(opcode_nr %d)", table->opcode_nr);
-    lf_printf (file, "\n(word_nr %d)", table->word_nr);
-    dump_opcode_bits (file, "\n(expanded_bits ", table->expanded_bits, ")", -1);
-    lf_printf (file, "\n(nr_insns %d)", table->nr_insns);
-    dump_insn_word_entry_list_entries (file, "\n(insns ", table->insns, ")");
-    dump_decode_rule (file, "\n(opcode_rule ", table->opcode_rule, ")");
-    dump_opcode_field (file, "\n(opcode ", table->opcode, ")", 0);
-    lf_printf (file, "\n(nr_entries %d)", table->nr_entries);
-    dump_gen_entry (file, "\n(entries ", table->entries, ")", table->nr_entries);
-    dump_gen_entry (file, "\n(sibling ", table->sibling, ")", levels - 1);
-    dump_gen_entry (file, "\n(parent ", table->parent, ")", 0);
-    lf_indent (file, -1);
-  }
+  if (levels && table !=NULL)
+    {
+
+      lf_indent (file, +1);
+      lf_printf (file, "\n(opcode_nr %d)", table->opcode_nr);
+      lf_printf (file, "\n(word_nr %d)", table->word_nr);
+      dump_opcode_bits (file, "\n(expanded_bits ", table->expanded_bits, ")",
+                       -1);
+      lf_printf (file, "\n(nr_insns %d)", table->nr_insns);
+      dump_insn_word_entry_list_entries (file, "\n(insns ", table->insns,
+                                        ")");
+      dump_decode_rule (file, "\n(opcode_rule ", table->opcode_rule, ")");
+      dump_opcode_field (file, "\n(opcode ", table->opcode, ")", 0);
+      lf_printf (file, "\n(nr_entries %d)", table->nr_entries);
+      dump_gen_entry (file, "\n(entries ", table->entries, ")",
+                     table->nr_entries);
+      dump_gen_entry (file, "\n(sibling ", table->sibling, ")", levels - 1);
+      dump_gen_entry (file, "\n(parent ", table->parent, ")", 0);
+      lf_indent (file, -1);
+    }
   lf_printf (file, "%s", suffix);
 }
 
 static void
 dump_gen_list (lf *file,
-              char *prefix,
-              gen_list *entry,
-              char *suffix,
-              int levels)
+              char *prefix, gen_list *entry, char *suffix, int levels)
 {
   while (entry != NULL)
     {
@@ -1737,10 +1718,7 @@ dump_gen_list (lf *file,
 
 static void
 dump_gen_table (lf *file,
-               char *prefix,
-               gen_table *gen,
-               char *suffix,
-               int levels)
+               char *prefix, gen_table *gen, char *suffix, int levels)
 {
   lf_printf (file, "%s(gen_table *) 0x%lx", prefix, (long) gen);
   lf_printf (file, "\n(isa (insn_table *) 0x%lx)", (long) gen->isa);
@@ -1753,8 +1731,7 @@ dump_gen_table (lf *file,
 igen_options options;
 
 int
-main (int argc,
-      char **argv)
+main (int argc, char **argv)
 {
   decode_table *decode_rules;
   insn_table *instructions;
@@ -1762,16 +1739,17 @@ main (int argc,
   lf *l;
 
   if (argc != 7)
-    error (NULL, "Usage: insn <filter-in> <hi-bit-nr> <insn-bit-size> <widths> <decode-table> <insn-table>\n");
+    error (NULL,
+          "Usage: insn <filter-in> <hi-bit-nr> <insn-bit-size> <widths> <decode-table> <insn-table>\n");
 
   INIT_OPTIONS (options);
 
   filter_parse (&options.flags_filter, argv[1]);
 
-  options.hi_bit_nr = a2i(argv[2]);
-  options.insn_bit_size = a2i(argv[3]);
-  options.insn_specifying_widths = a2i(argv[4]);
-  ASSERT(options.hi_bit_nr < options.insn_bit_size);
+  options.hi_bit_nr = a2i (argv[2]);
+  options.insn_bit_size = a2i (argv[3]);
+  options.insn_specifying_widths = a2i (argv[4]);
+  ASSERT (options.hi_bit_nr < options.insn_bit_size);
 
   instructions = load_insn_table (argv[6], NULL);
   decode_rules = load_decode_table (argv[5]);
index 884e27711e4316bd8c6732178bbbbe0f2694b390..073a831d87b3427b87eefc971f43139660fc94b6 100644 (file)
@@ -1,26 +1,30 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994,1995,1996, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 typedef struct _opcode_field opcode_field;
-struct _opcode_field {
+struct _opcode_field
+{
   int word_nr;
   int first;
   int last;
@@ -31,7 +35,8 @@ struct _opcode_field {
 };
 
 typedef struct _opcode_bits opcode_bits;
-struct _opcode_bits {
+struct _opcode_bits
+{
   int value;
   int first;
   int last;
@@ -41,13 +46,15 @@ struct _opcode_bits {
 };
 
 typedef struct _insn_opcodes insn_opcodes;
-struct _insn_opcodes {
+struct _insn_opcodes
+{
   opcode_field *opcode;
   insn_opcodes *next;
 };
 
 typedef struct _insn_list insn_list;
-struct _insn_list {
+struct _insn_list
+{
   /* the instruction */
   insn_entry *insn;
   /* list of non constant bits that have been made constant */
@@ -67,14 +74,15 @@ struct _insn_list {
 typedef struct _gen_list gen_list;
 
 typedef struct _gen_entry gen_entry;
-struct _gen_entry {
+struct _gen_entry
+{
 
   /* as an entry in a table */
   int word_nr;
   int opcode_nr;
   gen_entry *sibling;
   opcode_bits *expanded_bits;
-  gen_entry *parent; /* parent has the opcode* data */
+  gen_entry *parent;           /* parent has the opcode* data */
 
   /* as a table containing entries */
   decode_table *opcode_rule;
@@ -96,7 +104,8 @@ struct _gen_entry {
 };
 
 
-struct _gen_list {
+struct _gen_list
+{
   model_entry *model;
   insn_table *isa;
   gen_entry *table;
@@ -105,7 +114,8 @@ struct _gen_list {
 
 
 typedef struct _gen_table gen_table;
-struct _gen_table {
+struct _gen_table
+{
   /* list of all the instructions */
   insn_table *isa;
   /* list of all the semantic functions */
@@ -118,38 +128,28 @@ struct _gen_table {
 };
 
 
-extern gen_table *make_gen_tables
-(insn_table *isa,
- decode_table *rules);
+extern gen_table *make_gen_tables (insn_table *isa, decode_table *rules);
 
 
-extern void gen_tables_expand_insns
-(gen_table *gen);
+extern void gen_tables_expand_insns (gen_table *gen);
 
-extern void gen_tables_expand_semantics
-(gen_table *gen);
+extern void gen_tables_expand_semantics (gen_table *gen);
 
-extern int gen_entry_depth
-(gen_entry *table);
+extern int gen_entry_depth (gen_entry *table);
 
 
 
 /* Traverse the created data structure */
 
 typedef void gen_entry_handler
-(lf *file,
- gen_entry *entry,
- int depth,
- void *data);
+  (lf *file, gen_entry *entry, int depth, void *data);
 
 extern void gen_entry_traverse_tree
-(lf *file,
- gen_entry *table,
- int depth,
- gen_entry_handler *start,
- gen_entry_handler *leaf,
- gen_entry_handler *end,
- void *data);
+  (lf *file,
+   gen_entry *table,
+   int depth,
+   gen_entry_handler * start,
+   gen_entry_handler * leaf, gen_entry_handler * end, void *data);
 
 
 
@@ -158,70 +158,57 @@ extern void gen_entry_traverse_tree
 
 /* Cache functions: */
 
-extern int print_icache_function_formal
-(lf *file, int nr_prefetched_words);
+extern int print_icache_function_formal (lf *file, int nr_prefetched_words);
 
-extern int print_icache_function_actual
-(lf *file, int nr_prefetched_words);
+extern int print_icache_function_actual (lf *file, int nr_prefetched_words);
 
-extern int print_icache_function_type
-(lf *file);
+extern int print_icache_function_type (lf *file);
 
-extern int print_semantic_function_formal
-(lf *file, int nr_prefetched_words);
+extern int print_semantic_function_formal (lf *file, int nr_prefetched_words);
 
-extern int print_semantic_function_actual
-(lf *file, int nr_prefetched_words);
+extern int print_semantic_function_actual (lf *file, int nr_prefetched_words);
 
-extern int print_semantic_function_type
-(lf *file);
+extern int print_semantic_function_type (lf *file);
 
-extern int print_idecode_function_formal
-(lf *file, int nr_prefetched_words);
+extern int print_idecode_function_formal (lf *file, int nr_prefetched_words);
 
-extern int print_idecode_function_actual
-(lf *file, int nr_prefetched_words);
+extern int print_idecode_function_actual (lf *file, int nr_prefetched_words);
 
-typedef enum {
+typedef enum
+{
   function_name_prefix_semantics,
   function_name_prefix_idecode,
   function_name_prefix_itable,
   function_name_prefix_icache,
   function_name_prefix_engine,
   function_name_prefix_none
-} lf_function_name_prefixes;
+}
+lf_function_name_prefixes;
 
-typedef enum {
+typedef enum
+{
   is_function_declaration = 0,
   is_function_definition = 1,
   is_function_variable,
-} function_decl_type;
+}
+function_decl_type;
 
 extern int print_function_name
-(lf *file,
- const char *basename,
- const char *format_name,
- const char *model_name,
- opcode_bits *expanded_bits,
- lf_function_name_prefixes prefix);
+  (lf *file,
+   const char *basename,
+   const char *format_name,
+   const char *model_name,
+   opcode_bits *expanded_bits, lf_function_name_prefixes prefix);
 
 extern void print_my_defines
-(lf *file,
- const char *basename,
- const char *format_name,
- opcode_bits *expanded_bits);
+  (lf *file,
+   const char *basename, const char *format_name, opcode_bits *expanded_bits);
 
-extern void print_itrace
-(lf *file,
- insn_entry *insn,
- int idecode);
+extern void print_itrace (lf *file, insn_entry * insn, int idecode);
 
-extern void print_sim_engine_abort
-(lf *file,
- const char *message);
+extern void print_sim_engine_abort (lf *file, const char *message);
 
 
 extern void print_include (lf *file, igen_module module);
-extern void print_include_inline  (lf *file, igen_module module);
+extern void print_include_inline (lf *file, igen_module module);
 extern void print_includes (lf *file);
-
index 717c0c6a75e33f392870631dd488cbb952f13ff0..d5896f2e221fdb77c51dde852d6a2673f773c545 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 
@@ -52,8 +55,7 @@
 /* Semantic functions */
 
 int
-print_semantic_function_formal (lf *file,
-                               int nr_prefetched_words)
+print_semantic_function_formal (lf *file, int nr_prefetched_words)
 {
   int nr = 0;
   int word_nr;
@@ -71,8 +73,7 @@ print_semantic_function_formal (lf *file,
       for (word_nr = 0; word_nr < nr_prefetched_words; word_nr++)
        {
          nr += lf_printf (file, "%sinstruction_word instruction_%d,\n",
-                          options.module.global.prefix.l,
-                          word_nr);
+                          options.module.global.prefix.l, word_nr);
        }
       nr += lf_printf (file, "%sinstruction_address cia",
                       options.module.global.prefix.l);
@@ -83,8 +84,7 @@ print_semantic_function_formal (lf *file,
       for (word_nr = 0; word_nr < nr_prefetched_words; word_nr++)
        {
          nr += lf_printf (file, "%sinstruction_word instruction_%d,\n",
-                          options.module.global.prefix.l,
-                          word_nr);
+                          options.module.global.prefix.l, word_nr);
        }
       nr += lf_printf (file, "%sinstruction_address cia",
                       options.module.global.prefix.l);
@@ -93,8 +93,7 @@ print_semantic_function_formal (lf *file,
 }
 
 int
-print_semantic_function_actual (lf *file,
-                               int nr_prefetched_words)
+print_semantic_function_actual (lf *file, int nr_prefetched_words)
 {
   int nr = 0;
   int word_nr;
@@ -128,15 +127,14 @@ print_semantic_function_type (lf *file)
 /* Idecode functions */
 
 int
-print_icache_function_formal (lf *file,
-                             int nr_prefetched_words)
+print_icache_function_formal (lf *file, int nr_prefetched_words)
 {
   int nr = 0;
   int word_nr;
   if (options.gen.smp)
-      nr += lf_printf (file, "sim_cpu *cpu,\n");
+    nr += lf_printf (file, "sim_cpu *cpu,\n");
   else
-      nr += lf_printf (file, "SIM_DESC sd,\n");
+    nr += lf_printf (file, "SIM_DESC sd,\n");
   for (word_nr = 0; word_nr < nr_prefetched_words; word_nr++)
     nr += lf_printf (file, " %sinstruction_word instruction_%d,\n",
                     options.module.global.prefix.l, word_nr);
@@ -148,8 +146,7 @@ print_icache_function_formal (lf *file,
 }
 
 int
-print_icache_function_actual (lf *file,
-                             int nr_prefetched_words)
+print_icache_function_actual (lf *file, int nr_prefetched_words)
 {
   int nr = 0;
   int word_nr;
@@ -183,8 +180,7 @@ print_icache_function_type (lf *file)
 /* Function names */
 
 static int
-print_opcode_bits (lf *file,
-                  opcode_bits *bits)
+print_opcode_bits (lf *file, opcode_bits *bits)
 {
   int nr = 0;
   if (bits == NULL)
@@ -193,19 +189,21 @@ print_opcode_bits (lf *file,
   nr += lf_putstr (file, bits->field->val_string);
   if (bits->opcode->is_boolean && bits->value == 0)
     nr += lf_putint (file, bits->opcode->boolean_constant);
-  else if (!bits->opcode->is_boolean) {
-    if (bits->opcode->last < bits->field->last)
-      nr += lf_putint (file, bits->value << (bits->field->last - bits->opcode->last));
-    else
-      nr += lf_putint (file, bits->value);
-  }
+  else if (!bits->opcode->is_boolean)
+    {
+      if (bits->opcode->last < bits->field->last)
+       nr +=
+         lf_putint (file,
+                    bits->value << (bits->field->last - bits->opcode->last));
+      else
+       nr += lf_putint (file, bits->value);
+    }
   nr += print_opcode_bits (file, bits->next);
   return nr;
 }
 
 static int
-print_c_name (lf *file,
-             const char *name)
+print_c_name (lf *file, const char *name)
 {
   int nr = 0;
   const char *pos;
@@ -261,7 +259,7 @@ print_function_name (lf *file,
     default:
       break;
     }
-  
+
   if (model_name != NULL)
     {
       nr += print_c_name (file, model_name);
@@ -270,7 +268,7 @@ print_function_name (lf *file,
 
   /* the function name */
   nr += print_c_name (file, basename);
-  
+
   /* the format name if available */
   if (format_name != NULL)
     {
@@ -288,8 +286,7 @@ print_function_name (lf *file,
 void
 print_my_defines (lf *file,
                  const char *basename,
-                 const char *format_name,
-                 opcode_bits *expanded_bits)
+                 const char *format_name, opcode_bits *expanded_bits)
 {
   /* #define MY_INDEX xxxxx */
   lf_indent_suppress (file);
@@ -298,16 +295,14 @@ print_my_defines (lf *file,
   lf_printf (file, "#define MY_INDEX ");
   print_function_name (file,
                       basename, format_name, NULL,
-                      NULL,
-                      function_name_prefix_itable);
+                      NULL, function_name_prefix_itable);
   lf_printf (file, "\n");
   /* #define MY_PREFIX xxxxxx */
   lf_indent_suppress (file);
   lf_printf (file, "#undef ");
   print_function_name (file,
                       basename, format_name, NULL,
-                      expanded_bits,
-                      function_name_prefix_none);
+                      expanded_bits, function_name_prefix_none);
   lf_printf (file, "\n");
   lf_indent_suppress (file);
   lf_printf (file, "#undef MY_PREFIX\n");
@@ -315,8 +310,7 @@ print_my_defines (lf *file,
   lf_printf (file, "#define MY_PREFIX ");
   print_function_name (file,
                       basename, format_name, NULL,
-                      expanded_bits,
-                      function_name_prefix_none);
+                      expanded_bits, function_name_prefix_none);
   lf_printf (file, "\n");
   /* #define MY_NAME xxxxxx */
   lf_indent_suppress (file);
@@ -326,8 +320,7 @@ print_my_defines (lf *file,
   lf_printf (file, "#define MY_NAME \"");
   print_function_name (file,
                       basename, format_name, NULL,
-                      expanded_bits,
-                      function_name_prefix_none);
+                      expanded_bits, function_name_prefix_none);
   lf_printf (file, "\"\n");
 }
 
@@ -337,18 +330,20 @@ print_itrace_prefix (lf *file)
 {
   const char *prefix = "trace_prefix (";
   int indent = strlen (prefix);
-  lf_printf (file, "%sSD, CPU, cia, CIA, TRACE_LINENUM_P (CPU), \\\n", prefix);
+  lf_printf (file, "%sSD, CPU, cia, CIA, TRACE_LINENUM_P (CPU), \\\n",
+            prefix);
   lf_indent (file, +indent);
-  lf_printf (file, "%sitable[MY_INDEX].file, \\\n", options.module.itable.prefix.l);
-  lf_printf (file, "%sitable[MY_INDEX].line_nr, \\\n", options.module.itable.prefix.l);
+  lf_printf (file, "%sitable[MY_INDEX].file, \\\n",
+            options.module.itable.prefix.l);
+  lf_printf (file, "%sitable[MY_INDEX].line_nr, \\\n",
+            options.module.itable.prefix.l);
   lf_printf (file, "\"");
   return indent;
 }
 
 
 static void
-print_itrace_format (lf *file,
-                    insn_mnemonic_entry *assembler)
+print_itrace_format (lf *file, insn_mnemonic_entry *assembler)
 {
   /* pass=1 is fmt string; pass=2 is arguments */
   int pass;
@@ -356,7 +351,7 @@ print_itrace_format (lf *file,
   for (pass = 1; pass <= 2; pass++)
     {
       const char *chp = assembler->format;
-      chp++; /* skip the leading quote */
+      chp++;                   /* skip the leading quote */
       /* write out the format/args */
       while (*chp != '\0')
        {
@@ -396,7 +391,8 @@ print_itrace_format (lf *file,
                }
              strlen_param = chp - param;
              if (chp[0] != '>')
-               error (assembler->line, "Missing closing `>' in assembler string\n");
+               error (assembler->line,
+                      "Missing closing `>' in assembler string\n");
              chp++;
              /* now process it */
              if (pass == 2)
@@ -427,7 +423,8 @@ print_itrace_format (lf *file,
                    lf_printf (file, "%%s");
                  else
                    {
-                     lf_printf (file, "%sstr_", options.module.global.prefix.l);
+                     lf_printf (file, "%sstr_",
+                                options.module.global.prefix.l);
                      lf_write (file, func, strlen_func);
                      lf_printf (file, " (SD_, ");
                      lf_write (file, param, strlen_param);
@@ -446,7 +443,7 @@ print_itrace_format (lf *file,
                    }
                }
              else if (strncmp (fmt, "%#lx<", 5) == 0)
-               /* simple hex with 0x prefix*/
+               /* simple hex with 0x prefix */
                {
                  if (pass == 1)
                    lf_printf (file, "%%#lx");
@@ -483,9 +480,7 @@ print_itrace_format (lf *file,
 
 
 void
-print_itrace (lf *file,
-             insn_entry *insn,
-             int idecode)
+print_itrace (lf *file, insn_entry * insn, int idecode)
 {
   /* NB: Here we escape each EOLN. This is so that the the compiler
      treats a trace function call as a single line.  Consequently any
@@ -510,8 +505,7 @@ print_itrace (lf *file,
              {
                int indent;
                lf_printf (file, "%sif (%s)\n",
-                          is_first ? "" : "else ",
-                          assembler->condition);
+                          is_first ? "" : "else ", assembler->condition);
                lf_indent (file, +2);
                lf_print__line_ref (file, assembler->line);
                indent = print_itrace_prefix (file);
@@ -520,7 +514,8 @@ print_itrace (lf *file,
                lf_indent (file, -indent);
                lf_indent (file, -2);
                if (assembler->next == NULL)
-                 error (assembler->line, "Missing final unconditional assembler\n");
+                 error (assembler->line,
+                        "Missing final unconditional assembler\n");
              }
            else
              {
@@ -538,7 +533,8 @@ print_itrace (lf *file,
                if (!is_first)
                  lf_indent (file, -2);
                if (assembler->next != NULL)
-                 error (assembler->line, "Unconditional assembler is not last\n");
+                 error (assembler->line,
+                        "Unconditional assembler is not last\n");
              }
            is_first = 0;
            assembler = assembler->next;
@@ -559,7 +555,9 @@ print_itrace (lf *file,
       }
     lf_printf (file, "/* trace the instruction execution if enabled */\n");
     lf_printf (file, "if (TRACE_%s_P (CPU))\n", phase);
-    lf_printf (file, "  trace_generic (SD, CPU, TRACE_%s_IDX, \" %%s\", itable[MY_INDEX].name);\n", phase);
+    lf_printf (file,
+              "  trace_generic (SD, CPU, TRACE_%s_IDX, \" %%s\", itable[MY_INDEX].name);\n",
+              phase);
   }
   lf_indent (file, -4);
   lf_printf (file, "  }\n");
@@ -569,8 +567,7 @@ print_itrace (lf *file,
 
 
 void
-print_sim_engine_abort (lf *file,
-                       const char *message)
+print_sim_engine_abort (lf *file, const char *message)
 {
   lf_printf (file, "sim_engine_abort (SD, CPU, cia, ");
   lf_printf (file, "\"%s\"", message);
@@ -579,15 +576,13 @@ print_sim_engine_abort (lf *file,
 
 
 void
-print_include (lf *file,
-              igen_module module)
+print_include (lf *file, igen_module module)
 {
   lf_printf (file, "#include \"%s%s.h\"\n", module.prefix.l, module.suffix.l);
 }
 
 void
-print_include_inline (lf *file,
-                     igen_module module)
+print_include_inline (lf *file, igen_module module)
 {
   lf_printf (file, "#if C_REVEALS_MODULE_P (%s_INLINE)\n", module.suffix.u);
   lf_printf (file, "#include \"%s%s.c\"\n", module.prefix.l, module.suffix.l);
@@ -613,9 +608,7 @@ print_includes (lf *file)
 
 
 static void
-gen_semantics_h (lf *file,
-                insn_list *semantics,
-                int max_nr_words)
+gen_semantics_h (lf *file, insn_list *semantics, int max_nr_words)
 {
   int word_nr;
   insn_list *semantic;
@@ -623,8 +616,7 @@ gen_semantics_h (lf *file,
     {
       lf_printf (file, "typedef ");
       print_semantic_function_type (file);
-      lf_printf (file, " %sidecode_semantic",
-                options.module.global.prefix.l);
+      lf_printf (file, " %sidecode_semantic", options.module.global.prefix.l);
       if (word_nr >= 0)
        lf_printf (file, "_%d", word_nr);
       lf_printf (file, "\n(");
@@ -657,9 +649,7 @@ gen_semantics_h (lf *file,
 
 
 static void
-gen_semantics_c (lf *file,
-                insn_list *semantics,
-                cache_entry *cache_rules)
+gen_semantics_c (lf *file, insn_list *semantics, cache_entry *cache_rules)
 {
   if (options.gen.code == generate_calls)
     {
@@ -694,23 +684,20 @@ gen_semantics_c (lf *file,
 static void
 gen_icache_h (lf *file,
              insn_list *semantic,
-             function_entry *functions,
-             int max_nr_words)
+             function_entry * functions, int max_nr_words)
 {
   int word_nr;
   for (word_nr = 0; word_nr <= max_nr_words; word_nr++)
     {
       lf_printf (file, "typedef ");
-      print_icache_function_type(file);
+      print_icache_function_type (file);
       lf_printf (file, " %sidecode_icache_%d\n(",
-                options.module.global.prefix.l,
-                word_nr);
-      print_icache_function_formal(file, word_nr);
+                options.module.global.prefix.l, word_nr);
+      print_icache_function_formal (file, word_nr);
       lf_printf (file, ");\n");
       lf_printf (file, "\n");
     }
-  if (options.gen.code == generate_calls
-      && options.gen.icache)
+  if (options.gen.code == generate_calls && options.gen.icache)
     {
       function_entry_traverse (file, functions,
                               print_icache_internal_function_declaration,
@@ -734,13 +721,11 @@ gen_icache_h (lf *file,
 static void
 gen_icache_c (lf *file,
              insn_list *semantic,
-             function_entry *functions,
-             cache_entry *cache_rules)
+             function_entry * functions, cache_entry *cache_rules)
 {
   /* output `internal' invalid/floating-point unavailable functions
      where needed */
-  if (options.gen.code == generate_calls
-      && options.gen.icache)
+  if (options.gen.code == generate_calls && options.gen.icache)
     {
       lf_printf (file, "\n");
       lf_printf (file, "#include \"cpu.h\"\n");
@@ -776,9 +761,7 @@ gen_icache_c (lf *file,
 
 static void
 gen_idecode_h (lf *file,
-              gen_table *gen,
-              insn_table *insns,
-              cache_entry *cache_rules)
+              gen_table *gen, insn_table *insns, cache_entry *cache_rules)
 {
   lf_printf (file, "typedef unsigned%d %sinstruction_word;\n",
             options.insn_bit_size, options.module.global.prefix.l);
@@ -788,13 +771,14 @@ gen_idecode_h (lf *file,
                 options.module.global.prefix.l);
       lf_printf (file, "  address_word ip; /* instruction pointer */\n");
       lf_printf (file, "  address_word dp; /* delayed-slot pointer */\n");
-      lf_printf (file, "} %sinstruction_address;\n", options.module.global.prefix.l);
+      lf_printf (file, "} %sinstruction_address;\n",
+                options.module.global.prefix.l);
     }
   else
     {
       lf_printf (file, "typedef address_word %sinstruction_address;\n",
                 options.module.global.prefix.l);
-      
+
     }
   if (options.gen.nia == nia_is_invalid
       && strlen (options.module.global.prefix.u) > 0)
@@ -821,14 +805,14 @@ gen_idecode_h (lf *file,
                                                ? entry->model->name
                                                : NULL),
                                               is_function_declaration,
-                                              1/*ALWAYS ONE WORD*/);
+                                              1 /*ALWAYS ONE WORD */ );
        }
       if (options.gen.multi_sim)
        {
          print_idecode_issue_function_header (file,
                                               NULL,
                                               is_function_variable,
-                                              1/*ALWAYS ONE WORD*/);
+                                              1 /*ALWAYS ONE WORD */ );
        }
     }
 }
@@ -836,9 +820,7 @@ gen_idecode_h (lf *file,
 
 static void
 gen_idecode_c (lf *file,
-              gen_table *gen,
-              insn_table *isa,
-              cache_entry *cache_rules)
+              gen_table *gen, insn_table *isa, cache_entry *cache_rules)
 {
   /* the intro */
   print_includes (file);
@@ -847,7 +829,7 @@ gen_idecode_c (lf *file,
 
   print_idecode_globals (file);
   lf_printf (file, "\n");
-  
+
   switch (options.gen.code)
     {
     case generate_calls:
@@ -856,7 +838,7 @@ gen_idecode_c (lf *file,
        for (entry = gen->tables; entry != NULL; entry = entry->next)
          {
            print_idecode_lookups (file, entry->table, cache_rules);
-       
+
            /* output the main idecode routine */
            if (!options.gen.icache)
              {
@@ -864,8 +846,8 @@ gen_idecode_c (lf *file,
                                                     (options.gen.multi_sim
                                                      ? entry->model->name
                                                      : NULL),
-                                                    1/*is definition*/,
-                                                    1/*ALWAYS ONE WORD*/);
+                                                    1 /*is definition */ ,
+                                                    1 /*ALWAYS ONE WORD */ );
                lf_printf (file, "{\n");
                lf_indent (file, +2);
                lf_printf (file, "%sinstruction_address nia;\n",
@@ -891,8 +873,7 @@ gen_idecode_c (lf *file,
 
 
 static void
-gen_run_c (lf *file,
-          gen_table *gen)
+gen_run_c (lf *file, gen_table *gen)
 {
   gen_list *entry;
   lf_printf (file, "#include \"sim-main.h\"\n");
@@ -903,12 +884,13 @@ gen_run_c (lf *file,
 
   if (options.gen.multi_sim)
     {
-      print_idecode_issue_function_header (file, NULL, is_function_variable, 1);
+      print_idecode_issue_function_header (file, NULL, is_function_variable,
+                                          1);
       lf_printf (file, "\n");
       print_engine_run_function_header (file, NULL, is_function_variable);
       lf_printf (file, "\n");
     }
-  
+
   lf_printf (file, "void\n");
   lf_printf (file, "sim_engine_run (SIM_DESC sd,\n");
   lf_printf (file, "                int next_cpu_nr,\n");
@@ -930,36 +912,27 @@ gen_run_c (lf *file,
        {
          if (options.gen.default_model != NULL
              && (strcmp (entry->model->name, options.gen.default_model) == 0
-                 || strcmp (entry->model->full_name, options.gen.default_model) == 0))
+                 || strcmp (entry->model->full_name,
+                            options.gen.default_model) == 0))
            lf_printf (file, "default:\n");
          lf_printf (file, "case bfd_mach_%s:\n", entry->model->full_name);
          lf_indent (file, +2);
-         print_function_name (file,
-                              "issue",
-                              NULL, /* format name */
-                              NULL, /* NO processor */
-                              NULL, /* expanded bits */
+         print_function_name (file, "issue", NULL,     /* format name */
+                              NULL,    /* NO processor */
+                              NULL,    /* expanded bits */
                               function_name_prefix_idecode);
          lf_printf (file, " = ");
-         print_function_name (file,
-                              "issue",
-                              NULL, /* format name */
-                              entry->model->name,
-                              NULL, /* expanded bits */
+         print_function_name (file, "issue", NULL,     /* format name */
+                              entry->model->name, NULL,        /* expanded bits */
                               function_name_prefix_idecode);
          lf_printf (file, ";\n");
-         print_function_name (file,
-                              "run",
-                              NULL, /* format name */
-                              NULL, /* NO processor */
-                              NULL, /* expanded bits */
+         print_function_name (file, "run", NULL,       /* format name */
+                              NULL,    /* NO processor */
+                              NULL,    /* expanded bits */
                               function_name_prefix_engine);
          lf_printf (file, " = ");
-         print_function_name (file,
-                              "run",
-                              NULL, /* format name */
-                              entry->model->name,
-                              NULL, /* expanded bits */
+         print_function_name (file, "run", NULL,       /* format name */
+                              entry->model->name, NULL,        /* expanded bits */
                               function_name_prefix_engine);
          lf_printf (file, ";\n");
          lf_printf (file, "break;\n");
@@ -970,18 +943,17 @@ gen_run_c (lf *file,
          lf_printf (file, "default:\n");
          lf_indent (file, +2);
          lf_printf (file, "sim_engine_abort (sd, NULL, NULL_CIA,\n");
-         lf_printf (file, "                  \"sim_engine_run - unknown machine\");\n");
+         lf_printf (file,
+                    "                  \"sim_engine_run - unknown machine\");\n");
          lf_printf (file, "break;\n");
          lf_indent (file, -2);
        }
       lf_indent (file, -2);
       lf_printf (file, "  }\n");
     }
-  print_function_name (file,
-                      "run",
-                      NULL, /* format name */
-                      NULL, /* NO processor */
-                      NULL, /* expanded bits */
+  print_function_name (file, "run", NULL,      /* format name */
+                      NULL,    /* NO processor */
+                      NULL,    /* expanded bits */
                       function_name_prefix_engine);
   lf_printf (file, " (sd, next_cpu_nr, nr_cpus, siggnal);\n");
   lf_indent (file, -2);
@@ -991,8 +963,7 @@ gen_run_c (lf *file,
 /****************************************************************/
 
 static gen_table *
-do_gen (insn_table *isa,
-       decode_table *decode_rules)
+do_gen (insn_table *isa, decode_table *decode_rules)
 {
   gen_table *gen;
   if (decode_rules == NULL)
@@ -1012,9 +983,7 @@ do_gen (insn_table *isa,
 igen_options options;
 
 int
-main (int argc,
-      char **argv,
-      char **envp)
+main (int argc, char **argv, char **envp)
 {
   cache_entry *cache_rules = NULL;
   lf_file_references file_references = lf_include_references;
@@ -1024,7 +993,8 @@ main (int argc,
   char *real_file_name = NULL;
   int is_header = 0;
   int ch;
-  lf *standard_out = lf_open ("-", "stdout", lf_omit_references, lf_is_text, "igen");
+  lf *standard_out =
+    lf_open ("-", "stdout", lf_omit_references, lf_is_text, "igen");
 
   INIT_OPTIONS ();
 
@@ -1038,95 +1008,140 @@ main (int argc,
       printf ("\n");
       printf ("  -B <bit-size>\n");
       printf ("\t Set the number of bits in an instruction (deprecated).\n");
-      printf ("\t This option can now be set directly in the instruction table.\n");
+      printf
+       ("\t This option can now be set directly in the instruction table.\n");
       printf ("\n");
       printf ("  -D <data-structure>\n");
-      printf ("\t Dump the specified data structure to stdout. Valid structures include:\n");
-      printf ("\t processor-names - list the names of all the processors (models)\n");
+      printf
+       ("\t Dump the specified data structure to stdout. Valid structures include:\n");
+      printf
+       ("\t processor-names - list the names of all the processors (models)\n");
       printf ("\n");
       printf ("  -F <filter-list>\n");
-      printf ("\t Filter out any instructions with a non-empty flags field that contains\n");
+      printf
+       ("\t Filter out any instructions with a non-empty flags field that contains\n");
       printf ("\t a flag not listed in the <filter-list>.\n");
       printf ("\n");
       printf ("  -H <high-bit>\n");
-      printf ("\t Set the number of the high (most significant) instruction bit (deprecated).\n");
-      printf ("\t This option can now be set directly in the instruction table.\n");
+      printf
+       ("\t Set the number of the high (most significant) instruction bit (deprecated).\n");
+      printf
+       ("\t This option can now be set directly in the instruction table.\n");
       printf ("\n");
       printf ("  -I <directory>\n");
-      printf ("\t Add <directory> to the list of directories searched when opening a file\n");
+      printf
+       ("\t Add <directory> to the list of directories searched when opening a file\n");
       printf ("\n");
       printf ("  -M <model-list>\n");
-      printf ("\t Filter out any instructions that do not support at least one of the listed\n");
-      printf ("\t models (An instructions with no model information is considered to support\n");
+      printf
+       ("\t Filter out any instructions that do not support at least one of the listed\n");
+      printf
+       ("\t models (An instructions with no model information is considered to support\n");
       printf ("\t all models.).\n");
       printf ("\n");
       printf ("  -N <nr-cpus>\n");
       printf ("\t Generate a simulator supporting <nr-cpus>\n");
-      printf ("\t Specify `-N 0' to disable generation of the SMP. Specifying `-N 1' will\n");
-      printf ("\t still generate an SMP enabled simulator but will only support one CPU.\n");
+      printf
+       ("\t Specify `-N 0' to disable generation of the SMP. Specifying `-N 1' will\n");
+      printf
+       ("\t still generate an SMP enabled simulator but will only support one CPU.\n");
       printf ("\n");
       printf ("  -T <mechanism>\n");
-      printf ("\t Override the decode mechanism specified by the decode rules\n");
+      printf
+       ("\t Override the decode mechanism specified by the decode rules\n");
       printf ("\n");
       printf ("  -P <prefix>\n");
-      printf ("\t Prepend global names (except itable) with the string <prefix>.\n");
-      printf ("\t Specify -P <module>=<prefix> to set a specific <module>'s prefix.\n");
+      printf
+       ("\t Prepend global names (except itable) with the string <prefix>.\n");
+      printf
+       ("\t Specify -P <module>=<prefix> to set a specific <module>'s prefix.\n");
       printf ("\n");
       printf ("  -S <suffix>\n");
-      printf ("\t Replace a global name (suffix) (except itable) with the string <suffix>.\n");
-      printf ("\t Specify -S <module>=<suffix> to change a specific <module>'s name (suffix).\n");
+      printf
+       ("\t Replace a global name (suffix) (except itable) with the string <suffix>.\n");
+      printf
+       ("\t Specify -S <module>=<suffix> to change a specific <module>'s name (suffix).\n");
       printf ("\n");
       printf ("  -Werror\n");
       printf ("\t Make warnings errors\n");
       printf ("  -Wnodiscard\n");
-      printf ("\t Suppress warnings about discarded functions and instructions\n");
+      printf
+       ("\t Suppress warnings about discarded functions and instructions\n");
       printf ("  -Wnowidth\n");
-      printf ("\t Suppress warnings about instructions with invalid widths\n");
+      printf
+       ("\t Suppress warnings about instructions with invalid widths\n");
       printf ("  -Wnounimplemented\n");
       printf ("\t Suppress warnings about unimplemented instructions\n");
       printf ("\n");
       printf ("  -G [!]<gen-option>\n");
       printf ("\t Any of the following options:\n");
       printf ("\n");
-      printf ("\t decode-duplicate       - Override the decode rules, forcing the duplication of\n");
+      printf
+       ("\t decode-duplicate       - Override the decode rules, forcing the duplication of\n");
       printf ("\t                          semantic functions\n");
-      printf ("\t decode-combine         - Combine any duplicated entries within a table\n");
-      printf ("\t decode-zero-reserved   - Override the decode rules, forcing reserved bits to be\n");
+      printf
+       ("\t decode-combine         - Combine any duplicated entries within a table\n");
+      printf
+       ("\t decode-zero-reserved   - Override the decode rules, forcing reserved bits to be\n");
       printf ("\t                          treated as zero.\n");
-      printf ("\t decode-switch-is-goto  - Overfide the padded-switch code type as a goto-switch\n");
+      printf
+       ("\t decode-switch-is-goto  - Overfide the padded-switch code type as a goto-switch\n");
       printf ("\n");
-      printf ("\t gen-conditional-issue  - conditionally issue each instruction\n");
-      printf ("\t gen-delayed-branch     - need both cia and nia passed around\n");
-      printf ("\t gen-direct-access      - use #defines to directly access values\n");
-      printf ("\t gen-zero-r<N>          - arch assumes GPR(<N>) == 0, keep it that way\n");
-      printf ("\t gen-icache[=<N>        - generate an instruction cracking cache of size <N>\n");
-      printf ("\t                          Default size is %d\n", options.gen.icache_size);
-      printf ("\t gen-insn-in-icache     - save original instruction when cracking\n");
-      printf ("\t gen-multi-sim[=MODEL]  - generate multiple simulators - one per model\n");
-      printf ("\t                          If specified MODEL is made the default architecture.\n");
-      printf ("\t                          By default, a single simulator that will\n");
-      printf ("\t                          execute any instruction is generated\n");
-      printf ("\t gen-multi-word         - generate code allowing for multi-word insns\n");
-      printf ("\t gen-semantic-icache    - include semantic code in cracking functions\n");
-      printf ("\t gen-slot-verification  - perform slot verification as part of decode\n");
+      printf
+       ("\t gen-conditional-issue  - conditionally issue each instruction\n");
+      printf
+       ("\t gen-delayed-branch     - need both cia and nia passed around\n");
+      printf
+       ("\t gen-direct-access      - use #defines to directly access values\n");
+      printf
+       ("\t gen-zero-r<N>          - arch assumes GPR(<N>) == 0, keep it that way\n");
+      printf
+       ("\t gen-icache[=<N>        - generate an instruction cracking cache of size <N>\n");
+      printf ("\t                          Default size is %d\n",
+             options.gen.icache_size);
+      printf
+       ("\t gen-insn-in-icache     - save original instruction when cracking\n");
+      printf
+       ("\t gen-multi-sim[=MODEL]  - generate multiple simulators - one per model\n");
+      printf
+       ("\t                          If specified MODEL is made the default architecture.\n");
+      printf
+       ("\t                          By default, a single simulator that will\n");
+      printf
+       ("\t                          execute any instruction is generated\n");
+      printf
+       ("\t gen-multi-word         - generate code allowing for multi-word insns\n");
+      printf
+       ("\t gen-semantic-icache    - include semantic code in cracking functions\n");
+      printf
+       ("\t gen-slot-verification  - perform slot verification as part of decode\n");
       printf ("\t gen-nia-invalid        - NIA defaults to nia_invalid\n");
       printf ("\t gen-nia-void           - do not compute/return NIA\n");
       printf ("\n");
-      printf ("\t trace-combine          - report combined entries a rule application\n");
-      printf ("\t trace-entries          - report entries after a rules application\n");
+      printf
+       ("\t trace-combine          - report combined entries a rule application\n");
+      printf
+       ("\t trace-entries          - report entries after a rules application\n");
       printf ("\t trace-rule-rejection   - report each rule as rejected\n");
       printf ("\t trace-rule-selection   - report each rule as selected\n");
-      printf ("\t trace-insn-insertion   - report each instruction as it is inserted into a decode table\n");
-      printf ("\t trace-rule-expansion   - report each instruction as it is expanded (before insertion into a decode table)\n");
+      printf
+       ("\t trace-insn-insertion   - report each instruction as it is inserted into a decode table\n");
+      printf
+       ("\t trace-rule-expansion   - report each instruction as it is expanded (before insertion into a decode table)\n");
       printf ("\t trace-all              - enable all trace options\n");
       printf ("\n");
-      printf ("\t field-widths           - instruction formats specify widths (deprecated)\n");
-      printf ("\t                          By default, an instruction format specifies bit\n");
+      printf
+       ("\t field-widths           - instruction formats specify widths (deprecated)\n");
+      printf
+       ("\t                          By default, an instruction format specifies bit\n");
       printf ("\t                          positions\n");
-      printf ("\t                          This option can now be set directly in the\n");
+      printf
+       ("\t                          This option can now be set directly in the\n");
       printf ("\t                          instruction table\n");
-      printf ("\t jumps                  - use jumps instead of function calls\n");
-      printf ("\t omit-line-numbers      - do not include line number information in the output\n");
+      printf
+       ("\t jumps                  - use jumps instead of function calls\n");
+      printf
+       ("\t omit-line-numbers      - do not include line number information in the output\n");
       printf ("\n");
       printf ("Input options:\n");
       printf ("\n");
@@ -1137,8 +1152,10 @@ main (int argc,
       printf ("Output options:\n");
       printf ("\n");
       printf ("  -x                    Perform expansion (required)\n");
-      printf ("  -n <real-name>        Specify the real name of the next output file\n"); 
-      printf ("  -h                   Generate the header (.h) file rather than the body (.c)\n");
+      printf
+       ("  -n <real-name>        Specify the real name of the next output file\n");
+      printf
+       ("  -h                 Generate the header (.h) file rather than the body (.c)\n");
       printf ("  -c <output-file>      output icache\n");
       printf ("  -d <output-file>      output idecode\n");
       printf ("  -e <output-file>      output engine\n");
@@ -1148,19 +1165,19 @@ main (int argc,
       printf ("  -s <output-file>      output schematic\n");
       printf ("  -t <output-file>      output itable\n");
     }
-  
-  while ((ch = getopt(argc, argv,
-                     "B:D:F:G:H:I:M:N:P:T:W:o:k:i:n:hc:d:e:m:r:s:t:f:x"))
+
+  while ((ch = getopt (argc, argv,
+                      "B:D:F:G:H:I:M:N:P:T:W:o:k:i:n:hc:d:e:m:r:s:t:f:x"))
         != -1)
     {
       fprintf (stderr, "  -%c ", ch);
       if (optarg)
        fprintf (stderr, "%s ", optarg);
       fprintf (stderr, "\\\n");
-      
-      switch(ch)
+
+      switch (ch)
        {
-         
+
        case 'M':
          filter_parse (&options.model_filter, optarg);
          break;
@@ -1181,7 +1198,7 @@ main (int argc,
        case 'F':
          filter_parse (&options.flags_filter, optarg);
          break;
-         
+
        case 'I':
          {
            table_include **dir = &options.include;
@@ -1191,7 +1208,7 @@ main (int argc,
            (*dir)->dir = strdup (optarg);
          }
          break;
-         
+
        case 'B':
          options.insn_bit_size = a2i (optarg);
          if (options.insn_bit_size <= 0
@@ -1206,7 +1223,7 @@ main (int argc,
              error (NULL, "Conflict betweem hi-bit-nr and insn-bit-size\n");
            }
          break;
-         
+
        case 'H':
          options.hi_bit_nr = a2i (optarg);
          if (options.hi_bit_nr != options.insn_bit_size - 1
@@ -1215,11 +1232,11 @@ main (int argc,
              error (NULL, "Conflict between hi-bit-nr and insn-bit-size\n");
            }
          break;
-         
+
        case 'N':
          options.gen.smp = a2i (optarg);
          break;
-         
+
        case 'P':
        case 'S':
          {
@@ -1234,7 +1251,7 @@ main (int argc,
              }
            else
              {
-               chp = chp + 1; /* skip `=' */
+               chp = chp + 1;  /* skip `=' */
                names = NULL;
                if (strncmp (optarg, "global=", chp - optarg) == 0)
                  {
@@ -1278,23 +1295,25 @@ main (int argc,
                name = &names->suffix;
                break;
              default:
-               abort (); /* Bad switch.  */
+               abort ();       /* Bad switch.  */
              }
            name->u = strdup (chp);
            name->l = strdup (chp);
            chp = name->u;
-           while (*chp) {
-             if (islower(*chp))
-               *chp = toupper(*chp);
-             chp++;
-           }
+           while (*chp)
+             {
+               if (islower (*chp))
+                 *chp = toupper (*chp);
+               chp++;
+             }
            if (name == &options.module.global.prefix)
              {
                options.module.engine.prefix = options.module.global.prefix;
                options.module.icache.prefix = options.module.global.prefix;
                options.module.idecode.prefix = options.module.global.prefix;
                /* options.module.itable.prefix = options.module.global.prefix; */
-               options.module.semantics.prefix = options.module.global.prefix;
+               options.module.semantics.prefix =
+                 options.module.global.prefix;
                options.module.support.prefix = options.module.global.prefix;
              }
            if (name == &options.module.global.suffix)
@@ -1303,12 +1322,13 @@ main (int argc,
                options.module.icache.suffix = options.module.global.suffix;
                options.module.idecode.suffix = options.module.global.suffix;
                /* options.module.itable.suffix = options.module.global.suffix; */
-               options.module.semantics.suffix = options.module.global.suffix;
+               options.module.semantics.suffix =
+                 options.module.global.suffix;
                options.module.support.suffix = options.module.global.suffix;
              }
            break;
          }
-       
+
        case 'W':
          {
            if (strcmp (optarg, "error") == 0)
@@ -1362,7 +1382,7 @@ main (int argc,
              {
                options.decode.zero_reserved = enable_p;
              }
-           
+
            else if (strcmp (argp, "gen-conditional-issue") == 0)
              {
                options.gen.conditional_issue = enable_p;
@@ -1370,7 +1390,8 @@ main (int argc,
            else if (strcmp (argp, "conditional-issue") == 0)
              {
                options.gen.conditional_issue = enable_p;
-               options.warning (NULL, "Option conditional-issue replaced by gen-conditional-issue\n");
+               options.warning (NULL,
+                                "Option conditional-issue replaced by gen-conditional-issue\n");
              }
            else if (strcmp (argp, "gen-delayed-branch") == 0)
              {
@@ -1379,7 +1400,8 @@ main (int argc,
            else if (strcmp (argp, "delayed-branch") == 0)
              {
                options.gen.delayed_branch = enable_p;
-               options.warning (NULL, "Option delayed-branch replaced by gen-delayed-branch\n");
+               options.warning (NULL,
+                                "Option delayed-branch replaced by gen-delayed-branch\n");
              }
            else if (strcmp (argp, "gen-direct-access") == 0)
              {
@@ -1388,7 +1410,8 @@ main (int argc,
            else if (strcmp (argp, "direct-access") == 0)
              {
                options.gen.direct_access = enable_p;
-               options.warning (NULL, "Option direct-access replaced by gen-direct-access\n");
+               options.warning (NULL,
+                                "Option direct-access replaced by gen-direct-access\n");
              }
            else if (strncmp (argp, "gen-zero-r", strlen ("gen-zero-r")) == 0)
              {
@@ -1399,28 +1422,32 @@ main (int argc,
              {
                options.gen.zero_reg = enable_p;
                options.gen.zero_reg_nr = atoi (argp + strlen ("zero-r"));
-               options.warning (NULL, "Option zero-r<N> replaced by gen-zero-r<N>\n");
+               options.warning (NULL,
+                                "Option zero-r<N> replaced by gen-zero-r<N>\n");
              }
            else if (strncmp (argp, "gen-icache", strlen ("gen-icache")) == 0)
              {
                switch (argp[strlen ("gen-icache")])
                  {
                  case '=':
-                   options.gen.icache_size = atoi (argp + strlen ("gen-icache") + 1);
+                   options.gen.icache_size =
+                     atoi (argp + strlen ("gen-icache") + 1);
                    options.gen.icache = enable_p;
                    break;
                  case '\0':
                    options.gen.icache = enable_p;
                    break;
                  default:
-                   error (NULL, "Expecting -Ggen-icache or -Ggen-icache=<N>\n");
+                   error (NULL,
+                          "Expecting -Ggen-icache or -Ggen-icache=<N>\n");
                  }
              }
            else if (strcmp (argp, "gen-insn-in-icache") == 0)
              {
                options.gen.insn_in_icache = enable_p;
              }
-           else if (strncmp (argp, "gen-multi-sim", strlen ("gen-multi-sim")) == 0)
+           else if (strncmp (argp, "gen-multi-sim", strlen ("gen-multi-sim"))
+                    == 0)
              {
                char *arg = &argp[strlen ("gen-multi-sim")];
                switch (arg[0])
@@ -1428,15 +1455,18 @@ main (int argc,
                  case '=':
                    options.gen.multi_sim = enable_p;
                    options.gen.default_model = arg + 1;
-                   if (! filter_is_member (options.model_filter, options.gen.default_model))
-                     error (NULL, "multi-sim model %s unknown\n", options.gen.default_model);
+                   if (!filter_is_member
+                       (options.model_filter, options.gen.default_model))
+                     error (NULL, "multi-sim model %s unknown\n",
+                            options.gen.default_model);
                    break;
                  case '\0':
                    options.gen.multi_sim = enable_p;
                    options.gen.default_model = NULL;
                    break;
                  default:
-                   error (NULL, "Expecting -Ggen-multi-sim or -Ggen-multi-sim=<MODEL>\n");
+                   error (NULL,
+                          "Expecting -Ggen-multi-sim or -Ggen-multi-sim=<MODEL>\n");
                    break;
                  }
              }
@@ -1455,7 +1485,8 @@ main (int argc,
            else if (strcmp (argp, "verify-slot") == 0)
              {
                options.gen.slot_verification = enable_p;
-               options.warning (NULL, "Option verify-slot replaced by gen-slot-verification\n");
+               options.warning (NULL,
+                                "Option verify-slot replaced by gen-slot-verification\n");
              }
            else if (strcmp (argp, "gen-nia-invalid") == 0)
              {
@@ -1464,7 +1495,8 @@ main (int argc,
            else if (strcmp (argp, "default-nia-minus-one") == 0)
              {
                options.gen.nia = nia_is_invalid;
-               options.warning (NULL, "Option default-nia-minus-one replaced by gen-nia-invalid\n");
+               options.warning (NULL,
+                                "Option default-nia-minus-one replaced by gen-nia-invalid\n");
              }
            else if (strcmp (argp, "gen-nia-void") == 0)
              {
@@ -1516,7 +1548,7 @@ main (int argc,
              }
            break;
          }
-       
+
        case 'i':
          isa = load_insn_table (optarg, cache_rules);
          if (isa->illegal_insn == NULL)
@@ -1538,13 +1570,13 @@ main (int argc,
          break;
 
        case 'n':
-         real_file_name = strdup(optarg);
+         real_file_name = strdup (optarg);
          break;
 
        case 'h':
          is_header = 1;
          break;
-         
+
        case 'c':
        case 'd':
        case 'e':
@@ -1554,15 +1586,16 @@ main (int argc,
        case 's':
        case 't':
          {
-           lf *file = lf_open(optarg, real_file_name, file_references,
-                              (is_header ? lf_is_h : lf_is_c),
-                              argv[0]);
+           lf *file = lf_open (optarg, real_file_name, file_references,
+                               (is_header ? lf_is_h : lf_is_c),
+                               argv[0]);
            if (gen == NULL && ch != 't' && ch != 'm' && ch != 'f')
              {
-               options.warning (NULL, "Explicitly generate tables with -x option\n");
+               options.warning (NULL,
+                                "Explicitly generate tables with -x option\n");
                gen = do_gen (isa, decode_rules);
              }
-           lf_print__file_start(file);
+           lf_print__file_start (file);
            switch (ch)
              {
              case 'm':
@@ -1590,7 +1623,7 @@ main (int argc,
                  gen_run_c (file, gen);
                break;
              case 's':
-               if(is_header)
+               if (is_header)
                  gen_semantics_h (file, gen->semantics, isa->max_nr_words);
                else
                  gen_semantics_c (file, gen->semantics, isa->caches);
@@ -1611,21 +1644,18 @@ main (int argc,
                if (is_header)
                  gen_icache_h (file,
                                gen->semantics,
-                               isa->functions,
-                               isa->max_nr_words);
+                               isa->functions, isa->max_nr_words);
                else
                  gen_icache_c (file,
-                               gen->semantics,
-                               isa->functions,
-                               cache_rules);
+                               gen->semantics, isa->functions, cache_rules);
                break;
              }
-           lf_print__file_finish(file);
-           lf_close(file);
+           lf_print__file_finish (file);
+           lf_close (file);
            is_header = 0;
          }
-       real_file_name = NULL;
-       break;
+         real_file_name = NULL;
+         break;
        default:
          ERROR ("Bad switch");
        }
index bdfdb833ef564f5a36f5f6f37cb4f5c14088fdd7..1ca456e4a94552a299ebd7ff1df50628d2bd8256 100644 (file)
@@ -1,26 +1,31 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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.  */
+
 
 /* code-generation options: */
 
-typedef enum {
+typedef enum
+{
 
   /* Transfer control to an instructions semantic code using the the
      standard call/return mechanism */
@@ -33,18 +38,22 @@ typedef enum {
 
   generate_jumps,
 
-} igen_code;
+}
+igen_code;
 
-typedef enum {
+typedef enum
+{
   nia_is_cia_plus_one,
   nia_is_void,
   nia_is_invalid,
-} igen_nia;
+}
+igen_nia;
 
 
 
 typedef struct _igen_gen_options igen_gen_options;
-struct _igen_gen_options {
+struct _igen_gen_options
+{
   int direct_access;
   int semantic_icache;
   int insn_in_icache;
@@ -83,7 +92,8 @@ struct _igen_gen_options {
 
 
 typedef struct _igen_trace_options igen_trace_options;
-struct _igen_trace_options {
+struct _igen_trace_options
+{
   int rule_selection;
   int rule_rejection;
   int insn_insertion;
@@ -92,16 +102,21 @@ struct _igen_trace_options {
   int combine;
 };
 
-typedef struct _igen_name {
+typedef struct _igen_name
+{
   char *u;
   char *l;
-} igen_name;
-typedef struct _igen_module {
+}
+igen_name;
+typedef struct _igen_module
+{
   igen_name prefix;
   igen_name suffix;
-} igen_module;
+}
+igen_module;
 
-typedef struct _igen_module_options {
+typedef struct _igen_module_options
+{
   igen_module global;
   igen_module engine;
   igen_module icache;
@@ -109,10 +124,12 @@ typedef struct _igen_module_options {
   igen_module itable;
   igen_module semantics;
   igen_module support;
-} igen_module_options;
+}
+igen_module_options;
 
-typedef struct _igen_decode_options igen_decode_options ;
-struct _igen_decode_options {
+typedef struct _igen_decode_options igen_decode_options;
+struct _igen_decode_options
+{
 
   /* Combine tables?  Should the generator make a second pass through
      each generated table looking for any sub-entries that contain the
@@ -139,7 +156,8 @@ struct _igen_decode_options {
 
 
 typedef struct _igen_warn_options igen_warn_options;
-struct _igen_warn_options {
+struct _igen_warn_options
+{
 
   /* Issue warning about discarded instructions */
   int discard;
@@ -155,7 +173,8 @@ struct _igen_warn_options {
 
 
 typedef struct _igen_options igen_options;
-struct _igen_options {
+struct _igen_options
+{
 
   /* What does the instruction look like - bit ordering, size, widths or
      offesets */
@@ -197,7 +216,7 @@ struct _igen_options {
 
 extern igen_options options;
 
-/* default options - hopefully backward compatible */ \
+/* default options - hopefully backward compatible */
 #define INIT_OPTIONS() \
 do { \
   memset (&options, 0, sizeof options); \
index 63bd111ac2e25376b7261b5610c236d17b72e787..c46aa9a14638eb1dfa1f19580bc812104c4a6915 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994,1995,1996, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
+
+   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 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.
-    */
 
 
 #include "misc.h"
@@ -33,7 +37,8 @@
 #endif
 
 
-enum {
+enum
+{
   ca_type,
   ca_field_name,
   ca_derived_name,
@@ -43,10 +48,10 @@ enum {
 };
 
 static const name_map cache_type_map[] = {
-  { "cache", cache_value },
-  { "compute", compute_value },
-  { "scratch", scratch_value },
-  { NULL, 0 },
+  {"cache", cache_value},
+  {"compute", compute_value},
+  {"scratch", scratch_value},
+  {NULL, 0},
 };
 
 
@@ -63,8 +68,7 @@ load_cache_table (char *file_name)
       new_rule->line = entry->line;
       new_rule->entry_type = name2i (entry->field[ca_type], cache_type_map);
       new_rule->name = entry->field[ca_derived_name];
-      filter_parse (&new_rule->original_fields,
-                   entry->field[ca_field_name]);
+      filter_parse (&new_rule->original_fields, entry->field[ca_field_name]);
       new_rule->type = entry->field[ca_type_def];
       /* expression is the concatenation of the remaining fields */
       if (entry->nr_fields > ca_expression)
@@ -97,7 +101,7 @@ load_cache_table (char *file_name)
 igen_options options;
 
 int
-main(int argc, char **argv)
+main (int argc, char **argv)
 {
   cache_entry *rules = NULL;
   lf *l;
index fb81e6a3b39bd4621ecaec1a7e4c184c5bb9ce5e..2ad60ea123ed64c19e98e581ceb80456b831147a 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994,1995,1996, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 
@@ -62,5 +65,4 @@
    new name had better be the same. */
 
 
-extern cache_entry *load_cache_table
-(char *file_name);
+extern cache_entry *load_cache_table (char *file_name);
index baea404d5a9c1bf6918ece78b9223d8953464de1..856b1ad92ad02b4baa2f413420537657a5c959d3 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994,1995,1996, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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.  */
+
 
 /* load the opcode stat structure */
 
 
 
 static const name_map decode_type_map[] = {
-  { "normal", normal_decode_rule },
-  { "boolean", boolean_rule },
-  { NULL, normal_decode_rule },
+  {"normal", normal_decode_rule},
+  {"boolean", boolean_rule},
+  {NULL, normal_decode_rule},
 };
 
 static const name_map decode_gen_map[] = {
-  { "array", array_gen },
-  { "switch", switch_gen },
-  { "padded-switch", padded_switch_gen },
-  { "goto-switch", goto_switch_gen },
-  { NULL, -1 },
+  {"array", array_gen},
+  {"switch", switch_gen},
+  {"padded-switch", padded_switch_gen},
+  {"goto-switch", goto_switch_gen},
+  {NULL, -1},
 };
 
 static const name_map decode_reserved_map[] = {
-  { "zero-reserved", 1 },
-  { NULL, 0 },
+  {"zero-reserved", 1},
+  {NULL, 0},
 };
 
 static const name_map decode_duplicates_map[] = {
-  { "duplicate", 1 },
-  { NULL, 0 },
+  {"duplicate", 1},
+  {NULL, 0},
 };
 
 static const name_map decode_combine_map[] = {
-  { "combine", 1 },
-  { NULL, 0 },
+  {"combine", 1},
+  {NULL, 0},
 };
 
 static const name_map decode_search_map[] = {
-  { "constants", decode_find_constants },
-  { "mixed", decode_find_mixed },
-  { "strings", decode_find_strings },
-  { NULL, decode_find_mixed },
+  {"constants", decode_find_constants},
+  {"mixed", decode_find_mixed},
+  {"strings", decode_find_strings},
+  {NULL, decode_find_mixed},
 };
 
 
 static void
-set_bits (int bit[max_insn_bit_size],
-         unsigned64 value)
+set_bits (int bit[max_insn_bit_size], unsigned64 value)
 {
   int bit_nr;
   for (bit_nr = 0; bit_nr < max_insn_bit_size; bit_nr++)
@@ -86,7 +89,7 @@ set_bits (int bit[max_insn_bit_size],
 }
 
 decode_table *
-load_decode_table(char *file_name)
+load_decode_table (char *file_name)
 {
   table *file = table_open (file_name);
   table_entry *entry;
@@ -103,20 +106,22 @@ load_decode_table(char *file_name)
       /* the options field */
       new_rule->type = name2i (decode_options, decode_type_map);
       if (options.decode.overriding_gen != NULL)
-       new_rule->gen = name2i (options.decode.overriding_gen, decode_gen_map);
+       new_rule->gen =
+         name2i (options.decode.overriding_gen, decode_gen_map);
       else
        new_rule->gen = name2i (decode_options, decode_gen_map);
-      if (new_rule->gen == padded_switch_gen
-         && options.decode.switch_as_goto)
+      if (new_rule->gen == padded_switch_gen && options.decode.switch_as_goto)
        new_rule->gen = goto_switch_gen;
       if (options.decode.zero_reserved)
        new_rule->with_zero_reserved = 1;
       else
-       new_rule->with_zero_reserved = name2i (decode_options, decode_reserved_map);
+       new_rule->with_zero_reserved =
+         name2i (decode_options, decode_reserved_map);
       if (options.decode.duplicate)
        new_rule->with_duplicates = 1;
       else
-       new_rule->with_duplicates = name2i (decode_options, decode_duplicates_map);
+       new_rule->with_duplicates =
+         name2i (decode_options, decode_duplicates_map);
       if (options.decode.combine)
        new_rule->with_combine = 1;
       else
@@ -165,7 +170,9 @@ load_decode_table(char *file_name)
          && strlen (entry->field[decode_force_first_field]) > 0)
        {
          new_rule->force_first = target_a2i (options.hi_bit_nr,
-                                             entry->field[decode_force_first_field]);
+                                             entry->
+                                             field
+                                             [decode_force_first_field]);
          if (new_rule->force_first < new_rule->first
              || new_rule->force_first > new_rule->last + 1)
            error (new_rule->line, "Force first out of range\n");
@@ -176,7 +183,8 @@ load_decode_table(char *file_name)
          && strlen (entry->field[decode_force_last_field]) > 0)
        {
          new_rule->force_last = target_a2i (options.hi_bit_nr,
-                                            entry->field[decode_force_last_field]);
+                                            entry->
+                                            field[decode_force_last_field]);
          if (new_rule->force_last > new_rule->last
              || new_rule->force_last < new_rule->first - 1)
            error (new_rule->line, "Force-last out of range\n");
@@ -213,7 +221,7 @@ load_decode_table(char *file_name)
            {
              (*last) = ZALLOC (decode_path_list);
              /* extra root/zero entry */
-             (*last)->path = ZALLOC (decode_path); 
+             (*last)->path = ZALLOC (decode_path);
              do
                {
                  decode_path *entry = ZALLOC (decode_path);
@@ -240,22 +248,32 @@ load_decode_table(char *file_name)
            decode_cond *cond = ZALLOC (decode_cond);
            decode_cond **last;
            if (entry->nr_fields > field_nr + decode_cond_mask_field)
-             set_bits (cond->mask, a2i (entry->field[field_nr + decode_cond_mask_field]));
+             set_bits (cond->mask,
+                       a2i (entry->
+                            field[field_nr + decode_cond_mask_field]));
            if (entry->nr_fields > field_nr + decode_cond_value_field)
-              {
-             if (entry->field[field_nr + decode_cond_value_field][0] == '!')
-               {
-                 cond->is_equal = 0;
-                 set_bits (cond->value, a2i (entry->field[field_nr + decode_cond_value_field] + 1));
-               }
-             else
-               {
-                 cond->is_equal = 1;
-                 set_bits (cond->value, a2i (entry->field[field_nr + decode_cond_value_field]));
-               }
-              }
+             {
+               if (entry->field[field_nr + decode_cond_value_field][0] ==
+                   '!')
+                 {
+                   cond->is_equal = 0;
+                   set_bits (cond->value,
+                             a2i (entry->
+                                  field[field_nr + decode_cond_value_field] +
+                                  1));
+                 }
+               else
+                 {
+                   cond->is_equal = 1;
+                   set_bits (cond->value,
+                             a2i (entry->
+                                  field[field_nr +
+                                        decode_cond_value_field]));
+                 }
+             }
            if (entry->nr_fields > field_nr + decode_cond_word_nr_field)
-             cond->word_nr = a2i (entry->field[field_nr + decode_cond_word_nr_field]);
+             cond->word_nr =
+               a2i (entry->field[field_nr + decode_cond_word_nr_field]);
            field_nr += nr_decode_cond_fields;
            /* insert it */
            last = &new_rule->conditions;
@@ -270,7 +288,7 @@ load_decode_table(char *file_name)
   return table;
 }
 
-  
+
 int
 decode_table_max_word_nr (decode_table *entry)
 {
@@ -293,10 +311,7 @@ decode_table_max_word_nr (decode_table *entry)
 
 
 static void
-dump_decode_cond (lf *file,
-                 char *prefix,
-                 decode_cond *cond,
-                 char *suffix)
+dump_decode_cond (lf *file, char *prefix, decode_cond *cond, char *suffix)
 {
   lf_printf (file, "%s(decode_cond *) 0x%lx", prefix, (long) cond);
   if (cond != NULL)
@@ -314,10 +329,7 @@ dump_decode_cond (lf *file,
 
 
 static void
-dump_decode_conds (lf *file,
-                  char *prefix,
-                  decode_cond *cond,
-                  char *suffix)
+dump_decode_conds (lf *file, char *prefix, decode_cond *cond, char *suffix)
 {
   lf_printf (file, "%s(decode_cond *) 0x%lx", prefix, (long) cond);
   while (cond != NULL)
@@ -330,23 +342,21 @@ dump_decode_conds (lf *file,
 
 
 void
-dump_decode_rule (lf *file,
-                 char *prefix,
-                 decode_table *rule,
-                 char *suffix)
+dump_decode_rule (lf *file, char *prefix, decode_table *rule, char *suffix)
 {
   lf_printf (file, "%s(decode_table *) 0x%lx", prefix, (long) rule);
   if (rule != NULL)
     {
       lf_indent (file, +1);
       dump_line_ref (file, "\n(line ", rule->line, ")");
-      lf_printf (file, "\n(type %s)", i2name(rule->type, decode_type_map));
-      lf_printf (file, "\n(gen %s)", i2name(rule->gen, decode_gen_map));
+      lf_printf (file, "\n(type %s)", i2name (rule->type, decode_type_map));
+      lf_printf (file, "\n(gen %s)", i2name (rule->gen, decode_gen_map));
       lf_printf (file, "\n(first %d)", rule->first);
       lf_printf (file, "\n(last %d)", rule->last);
       lf_printf (file, "\n(force_first %d)", rule->force_first);
       lf_printf (file, "\n(force_last %d)", rule->force_last);
-      dump_filter (file, "\n(constant_field_names \"", rule->constant_field_names, "\")");
+      dump_filter (file, "\n(constant_field_names \"",
+                  rule->constant_field_names, "\")");
       lf_printf (file, "\n(constant 0x%x)", rule->constant);
       lf_printf (file, "\n(word_nr %d)", rule->word_nr);
       lf_printf (file, "\n(with_zero_reserved %d)", rule->with_zero_reserved);
@@ -365,10 +375,7 @@ dump_decode_rule (lf *file,
 #ifdef MAIN
 
 static void
-dump_decode_rules (lf *file,
-                  char *prefix,
-                  decode_table *rule,
-                  char *suffix)
+dump_decode_rules (lf *file, char *prefix, decode_table *rule, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (rule != NULL)
@@ -384,7 +391,7 @@ dump_decode_rules (lf *file,
 igen_options options;
 
 int
-main(int argc, char **argv)
+main (int argc, char **argv)
 {
   lf *l;
   decode_table *rules;
index b24a231266a9f74203d2ede069995a3adbe6f42a..329e80de5d5dbf2fa81fc5c318d0a4b07b2b93a8 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994,1995,1996, Andrew Cagney <cagney@highland.com.au>
-
-    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.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   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.  */
+
 
 /* Instruction decode table:
 
        */
 
 
-typedef enum {
+typedef enum
+{
   normal_decode_rule,
   boolean_rule,
-} decode_special_type;
+}
+decode_special_type;
 
 
-typedef enum {
+typedef enum
+{
   invalid_gen,
   array_gen,
   switch_gen,
   padded_switch_gen,
   goto_switch_gen,
-} decode_gen_type;
+}
+decode_gen_type;
 
 
-enum {
+enum
+{
   decode_cond_mask_field,
   decode_cond_value_field,
   decode_cond_word_nr_field,
@@ -152,20 +161,23 @@ enum {
 };
 
 typedef struct _decode_path decode_path;
-struct _decode_path {
+struct _decode_path
+{
   int opcode_nr;
   decode_path *parent;
 };
 
 typedef struct _decode_path_list decode_path_list;
-struct _decode_path_list {
+struct _decode_path_list
+{
   decode_path *path;
   decode_path_list *next;
 };
 
 
 typedef struct _decode_cond decode_cond;
-struct _decode_cond {
+struct _decode_cond
+{
   int word_nr;
   int mask[max_insn_bit_size];
   int value[max_insn_bit_size];
@@ -173,13 +185,16 @@ struct _decode_cond {
   decode_cond *next;
 };
 
-typedef enum {
+typedef enum
+{
   decode_find_mixed,
   decode_find_constants,
   decode_find_strings,
-} decode_search_type;
+}
+decode_search_type;
 
-enum {
+enum
+{
   decode_options_field,
   decode_first_field,
   decode_last_field,
@@ -196,7 +211,8 @@ enum {
 
 
 typedef struct _decode_table decode_table;
-struct _decode_table {
+struct _decode_table
+{
   line_ref *line;
   decode_special_type type;
   decode_gen_type gen;
@@ -222,14 +238,9 @@ struct _decode_table {
 };
 
 
-extern decode_table *load_decode_table
-(char *file_name);
+extern decode_table *load_decode_table (char *file_name);
 
-extern int decode_table_max_word_nr
-(decode_table *rule);
+extern int decode_table_max_word_nr (decode_table *rule);
 
 extern void dump_decode_rule
-(lf *file,
- char *prefix,
- decode_table *rule,
- char *suffix);
+  (lf *file, char *prefix, decode_table *rule, char *suffix);
index f812199e749ae2504bf699f3f895a5c82973fe71..d74ff5b5a3a3cacc86e04c670b68b427f6232e14 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 #include "misc.h"
@@ -27,9 +30,7 @@
 #include "ld-insn.h"
 
 static insn_word_entry *
-parse_insn_word (line_ref *line,
-                char *string,
-                int word_nr)
+parse_insn_word (line_ref *line, char *string, int word_nr)
 {
   char *chp;
   insn_word_entry *word = ZALLOC (insn_word_entry);
@@ -53,241 +54,244 @@ parse_insn_word (line_ref *line,
   /* now work through the formats */
   chp = skip_spaces (string);
 
-  while (*chp != '\0') {
-    char *start_pos;
-    int strlen_pos;
-    char *start_val;
-    int strlen_val;
-    insn_field_entry *new_field;
-
-    /* create / link in the new field */
-    new_field = ZALLOC (insn_field_entry);
-    new_field->next = word->last;
-    new_field->prev = word->last->prev;
-    new_field->next->prev = new_field;
-    new_field->prev->next = new_field;
-    new_field->word_nr = word_nr;
-
-    /* break out the first field (if present) */
-    start_pos = chp;
-    chp = skip_to_separator (chp, ".,!");
-    strlen_pos = back_spaces (start_pos, chp) - start_pos;
-
-    /* break out the second field (if present) */
-    if (*chp != '.')
-      {
-       /* assume what was specified was the value (and not the start
-           position).  Assume the value length implicitly specifies
-           the number of bits */
-       start_val = start_pos;
-       strlen_val = strlen_pos;
-       start_pos = "";
-       strlen_pos = 0;
-      }
-    else
-      {
-       chp++; /* skip `.' */
-       chp = skip_spaces (chp);
-       start_val = chp;
-       if (*chp == '/' || *chp == '*')
-         {
-           do
-             {
-               chp++;
-             }
-           while (*chp == '/' || *chp == '*');
-         }
-       else if (isalpha(*start_val))
-         {
-           do
-             {
-               chp++;
-             }
-           while (isalnum(*chp) || *chp == '_');
-         }
-       else if (isdigit(*start_val))
-         {
-           do {
-             chp++;
+  while (*chp != '\0')
+    {
+      char *start_pos;
+      int strlen_pos;
+      char *start_val;
+      int strlen_val;
+      insn_field_entry *new_field;
+
+      /* create / link in the new field */
+      new_field = ZALLOC (insn_field_entry);
+      new_field->next = word->last;
+      new_field->prev = word->last->prev;
+      new_field->next->prev = new_field;
+      new_field->prev->next = new_field;
+      new_field->word_nr = word_nr;
+
+      /* break out the first field (if present) */
+      start_pos = chp;
+      chp = skip_to_separator (chp, ".,!");
+      strlen_pos = back_spaces (start_pos, chp) - start_pos;
+
+      /* break out the second field (if present) */
+      if (*chp != '.')
+       {
+         /* assume what was specified was the value (and not the start
+            position).  Assume the value length implicitly specifies
+            the number of bits */
+         start_val = start_pos;
+         strlen_val = strlen_pos;
+         start_pos = "";
+         strlen_pos = 0;
+       }
+      else
+       {
+         chp++;                /* skip `.' */
+         chp = skip_spaces (chp);
+         start_val = chp;
+         if (*chp == '/' || *chp == '*')
+           {
+             do
+               {
+                 chp++;
+               }
+             while (*chp == '/' || *chp == '*');
            }
-           while (isalnum(*chp));
-         }
-       strlen_val = chp - start_val;
-       chp = skip_spaces (chp);
-      }
-    if (strlen_val == 0)
-      error (line, "Empty value field\n");
-    
-    /* break out any conditional fields - { [ "!" | "=" [ <value> | <field-name> } */
-    while (*chp == '!' || *chp == '=')
-      {
-       char *start;
-       char *end;
-       int len;
-       insn_field_cond *new_cond = ZALLOC (insn_field_cond);
-       
-       /* determine the conditional test */
-       switch (*chp)
-         {
-         case '=':
-           new_cond->test = insn_field_cond_eq;
-           break;
-         case '!':
-           new_cond->test = insn_field_cond_ne;
-           break;
-         default:
-           ASSERT (0);
-         }
-         
-       /* save the value */
-       chp++; 
-       chp = skip_spaces (chp);
-       start = chp;
-       chp = skip_to_separator (chp, "+,:!=");
-       end = back_spaces (start, chp);
-       len = end - start;
-       if (len == 0)
-         error (line, "Missing or invalid conditional value\n");
-       new_cond->string = NZALLOC (char, len + 1);
-       strncpy (new_cond->string, start, len);
-
-       /* determine the conditional type */
-       if (isdigit (*start))
-         {
-           /* [ "!" | "=" ] <value> */
-           new_cond->type = insn_field_cond_value;
-           new_cond->value = a2i (new_cond->string);
-         }
-       else
+         else if (isalpha (*start_val))
+           {
+             do
+               {
+                 chp++;
+               }
+             while (isalnum (*chp) || *chp == '_');
+           }
+         else if (isdigit (*start_val))
+           {
+             do
+               {
+                 chp++;
+               }
+             while (isalnum (*chp));
+           }
+         strlen_val = chp - start_val;
+         chp = skip_spaces (chp);
+       }
+      if (strlen_val == 0)
+       error (line, "Empty value field\n");
+
+      /* break out any conditional fields - { [ "!" | "=" [ <value> | <field-name> } */
+      while (*chp == '!' || *chp == '=')
+       {
+         char *start;
+         char *end;
+         int len;
+         insn_field_cond *new_cond = ZALLOC (insn_field_cond);
+
+         /* determine the conditional test */
+         switch (*chp)
+           {
+           case '=':
+             new_cond->test = insn_field_cond_eq;
+             break;
+           case '!':
+             new_cond->test = insn_field_cond_ne;
+             break;
+           default:
+             ASSERT (0);
+           }
+
+         /* save the value */
+         chp++;
+         chp = skip_spaces (chp);
+         start = chp;
+         chp = skip_to_separator (chp, "+,:!=");
+         end = back_spaces (start, chp);
+         len = end - start;
+         if (len == 0)
+           error (line, "Missing or invalid conditional value\n");
+         new_cond->string = NZALLOC (char, len + 1);
+         strncpy (new_cond->string, start, len);
+
+         /* determine the conditional type */
+         if (isdigit (*start))
+           {
+             /* [ "!" | "=" ] <value> */
+             new_cond->type = insn_field_cond_value;
+             new_cond->value = a2i (new_cond->string);
+           }
+         else
+           {
+             /* [ "!" | "=" ] <field>  - check field valid */
+             new_cond->type = insn_field_cond_field;
+             /* new_cond->field is determined in later */
+           }
+
+         /* Only a single `=' is permitted. */
+         if ((new_cond->test == insn_field_cond_eq
+              && new_field->conditions != NULL)
+             || (new_field->conditions != NULL
+                 && new_field->conditions->test == insn_field_cond_eq))
+           error (line, "Only single conditional when `=' allowed\n");
+
+         /* insert it */
          {
-           /* [ "!" | "=" ] <field>  - check field valid */
-           new_cond->type = insn_field_cond_field;
-           /* new_cond->field is determined in later */
+           insn_field_cond **last = &new_field->conditions;
+           while (*last != NULL)
+             last = &(*last)->next;
+           *last = new_cond;
          }
-         
-       /* Only a single `=' is permitted. */
-       if ((new_cond->test == insn_field_cond_eq
-            && new_field->conditions != NULL)
-           || (new_field->conditions != NULL
-               && new_field->conditions->test == insn_field_cond_eq))
-         error (line, "Only single conditional when `=' allowed\n");
-
-       /* insert it */
+       }
+
+      /* NOW verify that the field was finished */
+      if (*chp == ',')
        {
-         insn_field_cond **last = &new_field->conditions;
-         while (*last != NULL)
-           last = &(*last)->next;
-         *last = new_cond;
+         chp = skip_spaces (chp + 1);
+         if (*chp == '\0')
+           error (line, "empty field\n");
+       }
+      else if (*chp != '\0')
+       {
+         error (line, "Missing field separator\n");
        }
-      }
 
-    /* NOW verify that the field was finished */
-    if (*chp == ',')
-      {
-       chp = skip_spaces (chp + 1);
-       if (*chp == '\0')
-         error (line, "empty field\n");
-      }
-    else if (*chp != '\0')
-      {
-       error (line, "Missing field separator\n");
-      }
+      /* copy the value */
+      new_field->val_string = NZALLOC (char, strlen_val + 1);
+      strncpy (new_field->val_string, start_val, strlen_val);
+      if (isdigit (new_field->val_string[0]))
+       {
+         if (strlen_pos == 0)
+           {
+             /* when the length/pos field is omited, an integer field
+                is always binary */
+             unsigned64 val = 0;
+             int i;
+             for (i = 0; i < strlen_val; i++)
+               {
+                 if (new_field->val_string[i] != '0'
+                     && new_field->val_string[i] != '1')
+                   error (line, "invalid binary field %s\n",
+                          new_field->val_string);
+                 val = (val << 1) + (new_field->val_string[i] == '1');
+               }
+             new_field->val_int = val;
+             new_field->type = insn_field_int;
+           }
+         else
+           {
+             new_field->val_int = a2i (new_field->val_string);
+             new_field->type = insn_field_int;
+           }
+       }
+      else if (new_field->val_string[0] == '/')
+       {
+         new_field->type = insn_field_reserved;
+       }
+      else if (new_field->val_string[0] == '*')
+       {
+         new_field->type = insn_field_wild;
+       }
+      else
+       {
+         new_field->type = insn_field_string;
+         if (filter_is_member (word->field_names, new_field->val_string))
+           error (line, "Field name %s is duplicated\n",
+                  new_field->val_string);
+         filter_parse (&word->field_names, new_field->val_string);
+       }
+      if (new_field->type != insn_field_string
+         && new_field->conditions != NULL)
+       error (line, "Conditionals can only be applied to named fields\n");
 
-    /* copy the value */
-    new_field->val_string = NZALLOC (char, strlen_val+1);
-    strncpy (new_field->val_string, start_val, strlen_val);
-    if (isdigit (new_field->val_string[0]))
-      {
-       if (strlen_pos == 0)
-         {
-           /* when the length/pos field is omited, an integer field
-               is always binary */
-           unsigned64 val = 0;
-           int i;
-           for (i = 0; i < strlen_val; i++)
-             {
-               if (new_field->val_string[i] != '0'
-                   && new_field->val_string[i] != '1')
-                 error (line, "invalid binary field %s\n",
-                        new_field->val_string);
-               val = (val << 1) + (new_field->val_string[i] == '1');
-             }
-           new_field->val_int = val;
-           new_field->type = insn_field_int;
-         }
-       else
-         {
-           new_field->val_int = a2i (new_field->val_string);
-           new_field->type = insn_field_int;
-         }
-      }
-    else if (new_field->val_string[0] == '/')
-      {
-       new_field->type = insn_field_reserved;
-      }
-    else if (new_field->val_string[0] == '*')
-      {
-       new_field->type = insn_field_wild;
-      }
-    else
-      {
-       new_field->type = insn_field_string;
-       if (filter_is_member (word->field_names, new_field->val_string))
-         error (line, "Field name %s is duplicated\n", new_field->val_string);
-       filter_parse (&word->field_names, new_field->val_string);
-      }
-    if (new_field->type != insn_field_string
-       && new_field->conditions != NULL)
-      error (line, "Conditionals can only be applied to named fields\n");
-
-    /* the copy the position */
-    new_field->pos_string = NZALLOC (char, strlen_pos + 1);
-    strncpy (new_field->pos_string, start_pos, strlen_pos);
-    if (strlen_pos == 0)
-      {
-       new_field->first = new_field->prev->last + 1;
-       if (new_field->first == 0 /* first field */
-           && *chp == '\0' /* no further fields */
-           && new_field->type == insn_field_string)
-         {
-           /* A single string without any position, assume that it
-               represents the entire instruction word */
-           new_field->width = options.insn_bit_size;
-         }
-       else
-         {
-           /* No explicit width/position, assume value implicitly
-              supplies the width */
-           new_field->width = strlen_val;
-         }
-       new_field->last = new_field->first + new_field->width - 1;
-       if (new_field->last >= options.insn_bit_size)
-         error (line, "Bit position %d exceed instruction bit size (%d)\n",
-                new_field->last, options.insn_bit_size);
-      }
-    else if (options.insn_specifying_widths)
-      {
-       new_field->first = new_field->prev->last + 1;
-       new_field->width = a2i(new_field->pos_string);
-       new_field->last = new_field->first + new_field->width - 1;
-       if (new_field->last >= options.insn_bit_size)
-         error (line, "Bit position %d exceed instruction bit size (%d)\n",
-                new_field->last, options.insn_bit_size);
-      }
-    else
-      {
-       new_field->first = target_a2i(options.hi_bit_nr,
-                                     new_field->pos_string);
-       new_field->last = new_field->next->first - 1; /* guess */
-       new_field->width = new_field->last - new_field->first + 1; /* guess */
-       new_field->prev->last = new_field->first - 1; /*fix*/
-       new_field->prev->width = new_field->first - new_field->prev->first; /*fix*/
-      }
-  }
+      /* the copy the position */
+      new_field->pos_string = NZALLOC (char, strlen_pos + 1);
+      strncpy (new_field->pos_string, start_pos, strlen_pos);
+      if (strlen_pos == 0)
+       {
+         new_field->first = new_field->prev->last + 1;
+         if (new_field->first == 0     /* first field */
+             && *chp == '\0'   /* no further fields */
+             && new_field->type == insn_field_string)
+           {
+             /* A single string without any position, assume that it
+                represents the entire instruction word */
+             new_field->width = options.insn_bit_size;
+           }
+         else
+           {
+             /* No explicit width/position, assume value implicitly
+                supplies the width */
+             new_field->width = strlen_val;
+           }
+         new_field->last = new_field->first + new_field->width - 1;
+         if (new_field->last >= options.insn_bit_size)
+           error (line, "Bit position %d exceed instruction bit size (%d)\n",
+                  new_field->last, options.insn_bit_size);
+       }
+      else if (options.insn_specifying_widths)
+       {
+         new_field->first = new_field->prev->last + 1;
+         new_field->width = a2i (new_field->pos_string);
+         new_field->last = new_field->first + new_field->width - 1;
+         if (new_field->last >= options.insn_bit_size)
+           error (line, "Bit position %d exceed instruction bit size (%d)\n",
+                  new_field->last, options.insn_bit_size);
+       }
+      else
+       {
+         new_field->first = target_a2i (options.hi_bit_nr,
+                                        new_field->pos_string);
+         new_field->last = new_field->next->first - 1; /* guess */
+         new_field->width = new_field->last - new_field->first + 1;    /* guess */
+         new_field->prev->last = new_field->first - 1; /*fix */
+         new_field->prev->width = new_field->first - new_field->prev->first;   /*fix */
+       }
+    }
 
   /* fiddle first/last so that the sentinals disapear */
-  ASSERT(word->first->last < 0);
-  ASSERT(word->last->first >= options.insn_bit_size);
+  ASSERT (word->first->last < 0);
+  ASSERT (word->last->first >= options.insn_bit_size);
   word->first = word->first->next;
   word->last = word->last->prev;
 
@@ -305,8 +309,7 @@ parse_insn_word (line_ref *line,
   {
     insn_field_entry *field;
     for (field = word->first;
-        field->last < options.insn_bit_size;
-        field = field->next)
+        field->last < options.insn_bit_size; field = field->next)
       {
        int i;
        for (i = field->first; i <= field->last; i++)
@@ -321,21 +324,21 @@ parse_insn_word (line_ref *line,
              case insn_field_int:
                word->bit[i]->mask = 1;
                word->bit[i]->value = ((field->val_int
-                                       & ((insn_uint)1 << (field->last - i)))
-                                      != 0);
+                                       & ((insn_uint) 1 <<
+                                          (field->last - i))) != 0);
              case insn_field_reserved:
              case insn_field_wild:
              case insn_field_string:
                /* if we encounter a constant conditional, encode
-                   their bit value. */
+                  their bit value. */
                if (field->conditions != NULL
                    && field->conditions->test == insn_field_cond_eq
                    && field->conditions->type == insn_field_cond_value)
                  {
                    word->bit[i]->mask = 1;
                    word->bit[i]->value = ((field->conditions->value
-                                           & ((insn_uint)1 << (field->last - i)))
-                                          != 0);
+                                           & ((insn_uint) 1 <<
+                                              (field->last - i))) != 0);
                  }
                break;
              }
@@ -348,8 +351,7 @@ parse_insn_word (line_ref *line,
 
 
 static void
-parse_insn_words (insn_entry *insn,
-                 char *formats)
+parse_insn_words (insn_entry * insn, char *formats)
 {
   insn_word_entry **last_word = &insn->words;
   char *chp;
@@ -405,8 +407,7 @@ parse_insn_words (insn_entry *insn,
     insn_word_entry *word;
     insn->word = NZALLOC (insn_word_entry *, insn->nr_words + 1);
     for (i = 0, word = insn->words;
-        i < insn->nr_words;
-        i++, word = word->next)
+        i < insn->nr_words; i++, word = word->next)
       insn->word[i] = word;
   }
 
@@ -419,14 +420,10 @@ parse_insn_words (insn_entry *insn,
       {
        insn_word_entry *word = insn->word[i];
        insn_field_entry *f;
-       for (f = word->first;
-            f->last < options.insn_bit_size;
-            f = f->next)
+       for (f = word->first; f->last < options.insn_bit_size; f = f->next)
          {
            insn_field_cond *cond;
-           for (cond = f->conditions;
-                cond != NULL;
-                cond = cond->next)
+           for (cond = f->conditions; cond != NULL; cond = cond->next)
              {
                if (cond->type == insn_field_cond_field)
                  {
@@ -444,7 +441,8 @@ parse_insn_words (insn_entry *insn,
                             refered_field = refered_field->next)
                          {
                            if (refered_field->type == insn_field_string
-                               && strcmp (refered_field->val_string, cond->string) == 0)
+                               && strcmp (refered_field->val_string,
+                                          cond->string) == 0)
                              {
                                /* found field being refered to by conditonal */
                                cond->field = refered_field;
@@ -453,7 +451,8 @@ parse_insn_words (insn_entry *insn,
                                if (f->width != refered_field->width)
                                  error (insn->line,
                                         "Conditional `%s' of field `%s' should be of size %s\n",
-                                        cond->string, f->val_string, refered_field->width);
+                                        cond->string, f->val_string,
+                                        refered_field->width);
                              }
                          }
                      }
@@ -466,12 +465,13 @@ parse_insn_words (insn_entry *insn,
          }
       }
   }
-  
+
 }
 
-typedef enum {
+typedef enum
+{
   unknown_record = 0,
-  insn_record, /* default */
+  insn_record,                 /* default */
   code_record,
   cache_record,
   compute_record,
@@ -488,25 +488,26 @@ typedef enum {
   model_static_record,
   model_function_record,
   model_internal_record,
-} insn_record_type;
+}
+insn_record_type;
 
 static const name_map insn_type_map[] = {
-  { "option", option_record },
-  { "cache", cache_record },
-  { "compute", compute_record },
-  { "scratch", scratch_record },
-  { "define", define_record },
-  { "include", include_record },
-  { "%s", string_function_record },
-  { "function", function_record },
-  { "internal", internal_record },
-  { "model", model_processor_record },
-  { "model-macro", model_macro_record },
-  { "model-data", model_data_record },
-  { "model-static", model_static_record },
-  { "model-internal", model_internal_record },
-  { "model-function", model_function_record },
-  { NULL, insn_record },
+  {"option", option_record},
+  {"cache", cache_record},
+  {"compute", compute_record},
+  {"scratch", scratch_record},
+  {"define", define_record},
+  {"include", include_record},
+  {"%s", string_function_record},
+  {"function", function_record},
+  {"internal", internal_record},
+  {"model", model_processor_record},
+  {"model-macro", model_macro_record},
+  {"model-data", model_data_record},
+  {"model-static", model_static_record},
+  {"model-internal", model_internal_record},
+  {"model-function", model_function_record},
+  {NULL, insn_record},
 };
 
 
@@ -551,15 +552,13 @@ record_type (table_entry *entry)
          return i;
        }
       else
-       return insn_record; /* default */
+       return insn_record;     /* default */
     }
   return unknown_record;
 }
 
 static int
-record_prefix_is (table_entry *entry,
-                 char ch,
-                 int nr_fields)
+record_prefix_is (table_entry *entry, char ch, int nr_fields)
 {
   if (entry->type != table_colon_entry)
     return 0;
@@ -574,8 +573,7 @@ static table_entry *
 parse_model_data_record (insn_table *isa,
                         table *file,
                         table_entry *record,
-                        int nr_fields,
-                        model_data **list)
+                        int nr_fields, model_data **list)
 {
   table_entry *model_record = record;
   table_entry *code_record = NULL;
@@ -609,7 +607,8 @@ parse_model_data_record (insn_table *isa,
 }
 
 
-typedef enum {
+typedef enum
+{
   insn_bit_size_option = 1,
   insn_specifying_widths_option,
   hi_bit_nr_option,
@@ -619,23 +618,23 @@ typedef enum {
   format_names_option,
   gen_delayed_branch,
   unknown_option,
-} option_names;
+}
+option_names;
 
 static const name_map option_map[] = {
-  { "insn-bit-size", insn_bit_size_option },
-  { "insn-specifying-widths", insn_specifying_widths_option },
-  { "hi-bit-nr", hi_bit_nr_option },
-  { "flags-filter", flags_filter_option },
-  { "model-filter", model_filter_option },
-  { "multi-sim", multi_sim_option },
-  { "format-names", format_names_option },
-  { "gen-delayed-branch", gen_delayed_branch },
-  { NULL, unknown_option },
+  {"insn-bit-size", insn_bit_size_option},
+  {"insn-specifying-widths", insn_specifying_widths_option},
+  {"hi-bit-nr", hi_bit_nr_option},
+  {"flags-filter", flags_filter_option},
+  {"model-filter", model_filter_option},
+  {"multi-sim", multi_sim_option},
+  {"format-names", format_names_option},
+  {"gen-delayed-branch", gen_delayed_branch},
+  {NULL, unknown_option},
 };
 
 static table_entry *
-parse_include_record (table *file,
-                     table_entry *record)
+parse_include_record (table *file, table_entry *record)
 {
   /* parse the include record */
   if (record->nr_fields < nr_include_fields)
@@ -648,7 +647,7 @@ parse_include_record (table *file,
     {
       table_push (file, record->line, options.include,
                  record->field[include_filename_field]);
-    }  
+    }
   /* nb: can't read next record until after the file has been pushed */
   record = table_read (file);
   return record;
@@ -656,8 +655,7 @@ parse_include_record (table *file,
 
 
 static table_entry *
-parse_option_record (table *file,
-                    table_entry *record)
+parse_option_record (table *file, table_entry *record)
 {
   table_entry *option_record;
   /* parse the option record */
@@ -681,10 +679,12 @@ parse_option_record (table *file,
            options.insn_bit_size = a2i (value);
            if (options.insn_bit_size < 0
                || options.insn_bit_size > max_insn_bit_size)
-             error (option_record->line, "Instruction bit size out of range\n");
+             error (option_record->line,
+                    "Instruction bit size out of range\n");
            if (options.hi_bit_nr != options.insn_bit_size - 1
                && options.hi_bit_nr != 0)
-             error (option_record->line, "insn-bit-size / hi-bit-nr conflict\n");
+             error (option_record->line,
+                    "insn-bit-size / hi-bit-nr conflict\n");
            break;
          }
        case insn_specifying_widths_option:
@@ -697,7 +697,8 @@ parse_option_record (table *file,
            options.hi_bit_nr = a2i (value);
            if (options.hi_bit_nr != 0
                && options.hi_bit_nr != options.insn_bit_size - 1)
-             error (option_record->line, "hi-bit-nr / insn-bit-size conflict\n");
+             error (option_record->line,
+                    "hi-bit-nr / insn-bit-size conflict\n");
            break;
          }
        case flags_filter_option:
@@ -731,7 +732,7 @@ parse_option_record (table *file,
            break;
          }
        }
-    }  
+    }
   return record;
 }
 
@@ -739,10 +740,9 @@ parse_option_record (table *file,
 static table_entry *
 parse_function_record (table *file,
                       table_entry *record,
-                      function_entry **list,
-                      function_entry **list_entry,
-                      int is_internal,
-                      model_table *model)
+                      function_entry ** list,
+                      function_entry ** list_entry,
+                      int is_internal, model_table *model)
 {
   function_entry *new_function;
   new_function = ZALLOC (function_entry);
@@ -776,7 +776,7 @@ parse_function_record (table *file,
   while (record != NULL
         && record_prefix_is (record, '*', nr_function_model_fields))
     {
-      char *model_name = record->field[function_model_name_field] + 1; /*skip `*'*/
+      char *model_name = record->field[function_model_name_field] + 1; /*skip `*' */
       filter_parse (&new_function->models, model_name);
       if (!filter_is_subset (model->processors, new_function->models))
        {
@@ -801,7 +801,8 @@ parse_function_record (table *file,
           && !filter_is_common (options.model_filter, new_function->models))
     {
       if (options.warn.discard)
-       notify (new_function->line, "Discarding function %s - filter models\n",
+       notify (new_function->line,
+               "Discarding function %s - filter models\n",
                new_function->name);
     }
   else
@@ -819,8 +820,7 @@ parse_function_record (table *file,
 static void
 parse_insn_model_record (table *file,
                         table_entry *record,
-                        insn_entry *insn,
-                        model_table *model)
+                        insn_entry * insn, model_table *model)
 {
   insn_model_entry **last_insn_model;
   insn_model_entry *new_insn_model = ZALLOC (insn_model_entry);
@@ -832,11 +832,11 @@ parse_insn_model_record (table *file,
   /* parse the model names, verify that all were defined */
   new_insn_model->names = NULL;
   filter_parse (&new_insn_model->names,
-               record->field[insn_model_name_field] + 1 /*skip `*'*/);
+               record->field[insn_model_name_field] + 1 /*skip `*' */ );
   if (new_insn_model->names == NULL)
     {
       /* No processor names - a generic model entry, enter it into all
-        the non-empty fields */
+         the non-empty fields */
       int index;
       for (index = 0; index < model->nr_models; index++)
        if (insn->model[index] == 0)
@@ -855,7 +855,8 @@ parse_insn_model_record (table *file,
       while (1)
        {
          name = filter_next (new_insn_model->names, name);
-         if (name == NULL) break;
+         if (name == NULL)
+           break;
          index = filter_is_member (model->processors, name) - 1;
          if (index < 0)
            {
@@ -863,8 +864,7 @@ parse_insn_model_record (table *file,
                     "machine model `%s' undefined\n", name);
            }
          /* store it in the corresponding model array entry */
-         if (insn->model[index] != NULL
-             && insn->model[index]->names != NULL)
+         if (insn->model[index] != NULL && insn->model[index]->names != NULL)
            {
              warning (new_insn_model->line,
                       "machine model `%s' previously defined\n", name);
@@ -893,8 +893,7 @@ parse_insn_model_record (table *file,
 
 static void
 parse_insn_mnemonic_record (table *file,
-                           table_entry *record,
-                           insn_entry *insn)
+                           table_entry *record, insn_entry * insn)
 {
   insn_mnemonic_entry **last_insn_mnemonic;
   insn_mnemonic_entry *new_insn_mnemonic = ZALLOC (insn_mnemonic_entry);
@@ -903,10 +902,13 @@ parse_insn_mnemonic_record (table *file,
   ASSERT (record->nr_fields > insn_mnemonic_format_field);
   new_insn_mnemonic->format = record->field[insn_mnemonic_format_field];
   ASSERT (new_insn_mnemonic->format[0] == '"');
-  if (new_insn_mnemonic->format[strlen (new_insn_mnemonic->format) - 1] != '"')
-    error (new_insn_mnemonic->line, "Missing closing double quote in mnemonic field\n");
+  if (new_insn_mnemonic->format[strlen (new_insn_mnemonic->format) - 1] !=
+      '"')
+    error (new_insn_mnemonic->line,
+          "Missing closing double quote in mnemonic field\n");
   if (record->nr_fields > insn_mnemonic_condition_field)
-    new_insn_mnemonic->condition = record->field[insn_mnemonic_condition_field];
+    new_insn_mnemonic->condition =
+      record->field[insn_mnemonic_condition_field];
   new_insn_mnemonic->insn = insn;
   /* insert it */
   last_insn_mnemonic = &insn->mnemonics;
@@ -918,8 +920,7 @@ parse_insn_mnemonic_record (table *file,
 
 
 static table_entry *
-parse_macro_record (table *file,
-                   table_entry *record)
+parse_macro_record (table *file, table_entry *record)
 {
 #if 1
   error (record->line, "Macros are not implemented");
@@ -938,7 +939,7 @@ parse_macro_record (table *file,
                    record->field[macro_name_field],
                    record->field[macro_args_field],
                    record->field[macro_expr_field]);
-    }  
+    }
   record = table_read (file);
 #endif
   return record;
@@ -946,15 +947,14 @@ parse_macro_record (table *file,
 
 
 insn_table *
-load_insn_table (char *file_name,
-                cache_entry *cache)
+load_insn_table (char *file_name, cache_entry *cache)
 {
   table *file = table_open (file_name);
   table_entry *record = table_read (file);
 
   insn_table *isa = ZALLOC (insn_table);
   model_table *model = ZALLOC (model_table);
-  
+
   isa->model = model;
   isa->caches = cache;
 
@@ -977,22 +977,20 @@ load_insn_table (char *file_name,
            record = parse_option_record (file, record);
            break;
          }
-       
+
        case string_function_record:
          {
            function_entry *function = NULL;
            record = parse_function_record (file, record,
                                            &isa->functions,
-                                           &function,
-                                           0/*is-internal*/,
+                                           &function, 0 /*is-internal */ ,
                                            model);
            /* convert a string function record into an internal function */
            if (function != NULL)
              {
                char *name = NZALLOC (char,
                                      (strlen ("str_")
-                                      + strlen (function->name)
-                                      + 1));
+                                      + strlen (function->name) + 1));
                strcat (name, "str_");
                strcat (name, function->name);
                function->name = name;
@@ -1000,13 +998,12 @@ load_insn_table (char *file_name,
              }
            break;
          }
-       
-       case function_record: /* function record */
+
+       case function_record:   /* function record */
          {
            record = parse_function_record (file, record,
                                            &isa->functions,
-                                           NULL,
-                                           0/*is-internal*/,
+                                           NULL, 0 /*is-internal */ ,
                                            model);
            break;
          }
@@ -1017,11 +1014,10 @@ load_insn_table (char *file_name,
            function_entry *function = NULL;
            record = parse_function_record (file, record,
                                            &isa->functions,
-                                           &function,
-                                           1/*is-internal*/,
+                                           &function, 1 /*is-internal */ ,
                                            model);
            /* check what was inserted to see if a pseudo-instruction
-               entry also needs to be created */
+              entry also needs to be created */
            if (function != NULL)
              {
                insn_entry **insn = NULL;
@@ -1048,8 +1044,8 @@ load_insn_table (char *file_name,
              }
            break;
          }
-         
-       case scratch_record: /* cache macro records */
+
+       case scratch_record:    /* cache macro records */
        case cache_record:
        case compute_record:
          {
@@ -1073,13 +1069,16 @@ load_insn_table (char *file_name,
            /* insert it but only if not filtered out */
            if (!filter_is_subset (options.flags_filter, new_cache->flags))
              {
-               notify (new_cache->line, "Discarding cache entry %s - filter flags\n",
+               notify (new_cache->line,
+                       "Discarding cache entry %s - filter flags\n",
                        new_cache->name);
              }
            else if (is_filtered_out (options.model_filter,
-                                     record->field[record_filter_models_field]))
+                                     record->
+                                     field[record_filter_models_field]))
              {
-               notify (new_cache->line, "Discarding cache entry %s - filter models\n",
+               notify (new_cache->line,
+                       "Discarding cache entry %s - filter models\n",
                        new_cache->name);
              }
            else
@@ -1094,14 +1093,15 @@ load_insn_table (char *file_name,
            record = table_read (file);
            break;
          }
-       
-       /* model records */
+
+         /* model records */
        case model_processor_record:
          {
            model_entry *new_model;
            /* parse the model */
            if (record->nr_fields < nr_model_processor_fields)
-             error (record->line, "Incorrect nr of fields for model record\n");
+             error (record->line,
+                    "Incorrect nr of fields for model record\n");
            if (isa->insns != NULL)
              error (record->line, "Model appears after first instruction\n");
            new_model = ZALLOC (model_entry);
@@ -1114,13 +1114,16 @@ load_insn_table (char *file_name,
            /* only insert it if not filtered out */
            if (!filter_is_subset (options.flags_filter, new_model->flags))
              {
-               notify (new_model->line, "Discarding processor model %s - filter flags\n",
+               notify (new_model->line,
+                       "Discarding processor model %s - filter flags\n",
                        new_model->name);
              }
            else if (is_filtered_out (options.model_filter,
-                                     record->field[record_filter_models_field]))
+                                     record->
+                                     field[record_filter_models_field]))
              {
-               notify (new_model->line, "Discarding processor model %s - filter models\n",
+               notify (new_model->line,
+                       "Discarding processor model %s - filter models\n",
                        new_model->name);
              }
            else if (filter_is_member (model->processors, new_model->name))
@@ -1136,70 +1139,69 @@ load_insn_table (char *file_name,
                  last = &(*last)->next;
                *last = new_model;
                /* count it */
-               model->nr_models ++;
+               model->nr_models++;
                filter_parse (&model->processors, new_model->name);
              }
            /* advance things */
            record = table_read (file);
          }
          break;
-         
+
        case model_macro_record:
          record = parse_model_data_record (isa, file, record,
                                            nr_model_macro_fields,
                                            &model->macros);
          break;
-         
+
        case model_data_record:
          record = parse_model_data_record (isa, file, record,
                                            nr_model_data_fields,
                                            &model->data);
          break;
-         
+
        case model_static_record:
          record = parse_function_record (file, record,
                                          &model->statics,
-                                         NULL,
-                                         0/*is internal*/,
+                                         NULL, 0 /*is internal */ ,
                                          model);
          break;
-         
+
        case model_internal_record:
          record = parse_function_record (file, record,
                                          &model->internals,
-                                         NULL,
-                                         1/*is internal*/,
+                                         NULL, 1 /*is internal */ ,
                                          model);
          break;
-         
+
        case model_function_record:
          record = parse_function_record (file, record,
                                          &model->functions,
-                                         NULL,
-                                         0/*is internal*/,
+                                         NULL, 0 /*is internal */ ,
                                          model);
          break;
-         
-       case insn_record: /* instruction records */
+
+       case insn_record:       /* instruction records */
          {
            insn_entry *new_insn;
            char *format;
            /* parse the instruction */
            if (record->nr_fields < nr_insn_fields)
-             error (record->line, "Incorrect nr of fields for insn record\n");
+             error (record->line,
+                    "Incorrect nr of fields for insn record\n");
            new_insn = ZALLOC (insn_entry);
            new_insn->line = record->line;
            filter_parse (&new_insn->flags,
                          record->field[record_filter_flags_field]);
            /* save the format field.  Can't parse it until after the
-               filter-out checks.  Could be filtered out because the
-               format is invalid */
+              filter-out checks.  Could be filtered out because the
+              format is invalid */
            format = record->field[insn_word_field];
            new_insn->format_name = record->field[insn_format_name_field];
            if (options.format_name_filter != NULL
                && !filter_is_member (options.format_name_filter,
                                      new_insn->format_name))
-             error (new_insn->line, "Unreconized instruction format name `%s'\n",
+             error (new_insn->line,
+                    "Unreconized instruction format name `%s'\n",
                     new_insn->format_name);
            filter_parse (&new_insn->options,
                          record->field[insn_options_field]);
@@ -1207,12 +1209,14 @@ load_insn_table (char *file_name,
            record = table_read (file);
            /* Parse any model/assember records */
            new_insn->nr_models = model->nr_models;
-           new_insn->model = NZALLOC (insn_model_entry*, model->nr_models + 1);
+           new_insn->model =
+             NZALLOC (insn_model_entry *, model->nr_models + 1);
            while (record != NULL)
              {
                if (record_prefix_is (record, '*', nr_insn_model_fields))
                  parse_insn_model_record (file, record, new_insn, model);
-               else if (record_prefix_is (record, '"', nr_insn_mnemonic_fields))
+               else
+                 if (record_prefix_is (record, '"', nr_insn_mnemonic_fields))
                  parse_insn_mnemonic_record (file, record, new_insn);
                else
                  break;
@@ -1241,8 +1245,8 @@ load_insn_table (char *file_name,
                                           new_insn->processors))
              {
                /* only discard an instruction based in the processor
-                   model when both the instruction and the options are
-                   nonempty */
+                  model when both the instruction and the options are
+                  nonempty */
                if (options.warn.discard)
                  notify (new_insn->line,
                          "Discarding instruction %s (processor-model)\n",
@@ -1259,7 +1263,7 @@ load_insn_table (char *file_name,
                  last = &(*last)->next;
                *last = new_insn;
                /* update global isa counters */
-               isa->nr_insns ++;
+               isa->nr_insns++;
                if (isa->max_nr_words < new_insn->nr_words)
                  isa->max_nr_words = new_insn->nr_words;
                filter_add (&isa->flags, new_insn->flags);
@@ -1267,7 +1271,7 @@ load_insn_table (char *file_name,
              }
            break;
          }
-      
+
        case define_record:
          record = parse_macro_record (file, record);
          break;
@@ -1284,8 +1288,7 @@ load_insn_table (char *file_name,
 
 
 void
-print_insn_words (lf *file,
-                 insn_entry *insn)
+print_insn_words (lf *file, insn_entry * insn)
 {
   insn_word_entry *word = insn->words;
   if (word != NULL)
@@ -1298,7 +1301,8 @@ print_insn_words (lf *file,
              if (options.insn_specifying_widths)
                lf_printf (file, "%d.", field->width);
              else
-               lf_printf (file, "%d.", i2target (options.hi_bit_nr, field->first));
+               lf_printf (file, "%d.",
+                          i2target (options.hi_bit_nr, field->first));
              switch (field->type)
                {
                case insn_field_invalid:
@@ -1329,14 +1333,13 @@ print_insn_words (lf *file,
        }
     }
 }
+\f
 
 
-\f
 void
 function_entry_traverse (lf *file,
-                        function_entry *functions,
-                        function_entry_handler *handler,
-                        void *data)
+                        function_entry * functions,
+                        function_entry_handler * handler, void *data)
 {
   function_entry *function;
   for (function = functions; function != NULL; function = function->next)
@@ -1348,8 +1351,7 @@ function_entry_traverse (lf *file,
 void
 insn_table_traverse_insn (lf *file,
                          insn_table *isa,
-                         insn_entry_handler *handler,
-                         void *data)
+                         insn_entry_handler * handler, void *data)
 {
   insn_entry *insn;
   for (insn = isa->insns; insn != NULL; insn = insn->next)
@@ -1357,13 +1359,11 @@ insn_table_traverse_insn (lf *file,
       handler (file, isa, insn, data);
     }
 }
-
 \f
+
 static void
 dump_function_entry (lf *file,
-                    char *prefix,
-                    function_entry *entry,
-                    char *suffix)
+                    char *prefix, function_entry * entry, char *suffix)
 {
   lf_printf (file, "%s(function_entry *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1382,9 +1382,7 @@ dump_function_entry (lf *file,
 
 static void
 dump_function_entries (lf *file,
-                      char *prefix,
-                      function_entry *entry,
-                      char *suffix)
+                      char *prefix, function_entry * entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1402,26 +1400,27 @@ cache_entry_type_to_str (cache_entry_type type)
 {
   switch (type)
     {
-    case scratch_value: return "scratch";
-    case cache_value: return "cache";
-    case compute_value: return "compute";
+    case scratch_value:
+      return "scratch";
+    case cache_value:
+      return "cache";
+    case compute_value:
+      return "compute";
     }
   ERROR ("Bad switch");
   return 0;
 }
 
 static void
-dump_cache_entry (lf *file,
-                 char *prefix,
-                 cache_entry *entry,
-                 char *suffix)
+dump_cache_entry (lf *file, char *prefix, cache_entry *entry, char *suffix)
 {
   lf_printf (file, "%s(cache_entry *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
     {
       dump_line_ref (file, "\n(line ", entry->line, ")");
       dump_filter (file, "\n(flags ", entry->flags, ")");
-      lf_printf (file, "\n(entry_type \"%s\")", cache_entry_type_to_str (entry->entry_type));
+      lf_printf (file, "\n(entry_type \"%s\")",
+                cache_entry_type_to_str (entry->entry_type));
       lf_printf (file, "\n(name \"%s\")", entry->name);
       dump_filter (file, "\n(original_fields ", entry->original_fields, ")");
       lf_printf (file, "\n(type \"%s\")", entry->type);
@@ -1432,10 +1431,7 @@ dump_cache_entry (lf *file,
 }
 
 void
-dump_cache_entries (lf *file,
-                   char *prefix,
-                   cache_entry *entry,
-                   char *suffix)
+dump_cache_entries (lf *file, char *prefix, cache_entry *entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1449,10 +1445,7 @@ dump_cache_entries (lf *file,
 }
 
 static void
-dump_model_data (lf *file,
-                char *prefix,
-                model_data *entry,
-                char *suffix)
+dump_model_data (lf *file, char *prefix, model_data *entry, char *suffix)
 {
   lf_printf (file, "%s(model_data *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1469,10 +1462,7 @@ dump_model_data (lf *file,
 }
 
 static void
-dump_model_datas (lf *file,
-                 char *prefix,
-                 model_data *entry,
-                 char *suffix)
+dump_model_datas (lf *file, char *prefix, model_data *entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1486,10 +1476,7 @@ dump_model_datas (lf *file,
 }
 
 static void
-dump_model_entry (lf *file,
-                 char *prefix,
-                 model_entry *entry,
-                 char *suffix)
+dump_model_entry (lf *file, char *prefix, model_entry *entry, char *suffix)
 {
   lf_printf (file, "%s(model_entry *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1507,10 +1494,7 @@ dump_model_entry (lf *file,
 }
 
 static void
-dump_model_entries (lf *file,
-                   char *prefix,
-                   model_entry *entry,
-                   char *suffix)
+dump_model_entries (lf *file, char *prefix, model_entry *entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1525,10 +1509,7 @@ dump_model_entries (lf *file,
 
 
 static void
-dump_model_table (lf *file,
-                 char *prefix,
-                 model_table *entry,
-                 char *suffix)
+dump_model_table (lf *file, char *prefix, model_table *entry, char *suffix)
 {
   lf_printf (file, "%s(model_table *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1553,11 +1534,17 @@ insn_field_type_to_str (insn_field_type type)
 {
   switch (type)
     {
-    case insn_field_invalid: ASSERT (0); return "(invalid)";
-    case insn_field_int: return "int";
-    case insn_field_reserved: return "reserved";
-    case insn_field_wild: return "wild";
-    case insn_field_string: return "string";
+    case insn_field_invalid:
+      ASSERT (0);
+      return "(invalid)";
+    case insn_field_int:
+      return "int";
+    case insn_field_reserved:
+      return "reserved";
+    case insn_field_wild:
+      return "wild";
+    case insn_field_string:
+      return "string";
     }
   ERROR ("bad switch");
   return 0;
@@ -1565,9 +1552,7 @@ insn_field_type_to_str (insn_field_type type)
 
 void
 dump_insn_field (lf *file,
-                char *prefix,
-                insn_field_entry *field,
-                char *suffix)
+                char *prefix, insn_field_entry *field, char *suffix)
 {
   char *sep = " ";
   lf_printf (file, "%s(insn_field_entry *) 0x%lx", prefix, (long) field);
@@ -1577,7 +1562,8 @@ dump_insn_field (lf *file,
       lf_printf (file, "%s(first %d)", sep, field->first);
       lf_printf (file, "%s(last %d)", sep, field->last);
       lf_printf (file, "%s(width %d)", sep, field->width);
-      lf_printf (file, "%s(type %s)", sep, insn_field_type_to_str (field->type));
+      lf_printf (file, "%s(type %s)", sep,
+                insn_field_type_to_str (field->type));
       switch (field->type)
        {
        case insn_field_invalid:
@@ -1605,9 +1591,7 @@ dump_insn_field (lf *file,
 
 void
 dump_insn_word_entry (lf *file,
-                     char *prefix,
-                     insn_word_entry *word,
-                     char *suffix)
+                     char *prefix, insn_word_entry *word, char *suffix)
 {
   lf_printf (file, "%s(insn_word_entry *) 0x%lx", prefix, (long) word);
   if (word != NULL)
@@ -1620,7 +1604,8 @@ dump_insn_word_entry (lf *file,
       lf_printf (file, "\n(bit");
       for (i = 0; i < options.insn_bit_size; i++)
        lf_printf (file, "\n ((value %d) (mask %d) (field 0x%lx))",
-                  word->bit[i]->value, word->bit[i]->mask, (long) word->bit[i]->field);
+                  word->bit[i]->value, word->bit[i]->mask,
+                  (long) word->bit[i]->field);
       lf_printf (file, ")");
       for (field = word->first; field != NULL; field = field->next)
        dump_insn_field (file, "\n(", field, ")");
@@ -1633,9 +1618,7 @@ dump_insn_word_entry (lf *file,
 
 static void
 dump_insn_word_entries (lf *file,
-                       char *prefix,
-                       insn_word_entry *word,
-                       char *suffix)
+                       char *prefix, insn_word_entry *word, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (word != NULL)
@@ -1648,9 +1631,7 @@ dump_insn_word_entries (lf *file,
 
 static void
 dump_insn_model_entry (lf *file,
-                      char *prefix,
-                      insn_model_entry *model,
-                      char *suffix)
+                      char *prefix, insn_model_entry *model, char *suffix)
 {
   lf_printf (file, "%s(insn_model_entry *) 0x%lx", prefix, (long) model);
   if (model != NULL)
@@ -1670,9 +1651,7 @@ dump_insn_model_entry (lf *file,
 
 static void
 dump_insn_model_entries (lf *file,
-                        char *prefix,
-                        insn_model_entry *model,
-                        char *suffix)
+                        char *prefix, insn_model_entry *model, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (model != NULL)
@@ -1687,10 +1666,10 @@ dump_insn_model_entries (lf *file,
 static void
 dump_insn_mnemonic_entry (lf *file,
                          char *prefix,
-                         insn_mnemonic_entry *mnemonic,
-                         char *suffix)
+                         insn_mnemonic_entry *mnemonic, char *suffix)
 {
-  lf_printf (file, "%s(insn_mnemonic_entry *) 0x%lx", prefix, (long) mnemonic);
+  lf_printf (file, "%s(insn_mnemonic_entry *) 0x%lx", prefix,
+            (long) mnemonic);
   if (mnemonic != NULL)
     {
       lf_indent (file, +1);
@@ -1709,8 +1688,7 @@ dump_insn_mnemonic_entry (lf *file,
 static void
 dump_insn_mnemonic_entries (lf *file,
                            char *prefix,
-                           insn_mnemonic_entry *mnemonic,
-                           char *suffix)
+                           insn_mnemonic_entry *mnemonic, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (mnemonic != NULL)
@@ -1722,10 +1700,7 @@ dump_insn_mnemonic_entries (lf *file,
 }
 
 void
-dump_insn_entry (lf *file,
-                char *prefix,
-                insn_entry *entry,
-                char *suffix)
+dump_insn_entry (lf *file, char *prefix, insn_entry * entry, char *suffix)
 {
   lf_printf (file, "%s(insn_entry *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1751,19 +1726,17 @@ dump_insn_entry (lf *file,
        lf_printf (file, " 0x%lx", (long) entry->model[i]);
       lf_printf (file, ")");
       dump_filter (file, "\n(processors ", entry->processors, ")");
-      dump_insn_mnemonic_entries (file, "\n(mnemonics ", entry->mnemonics, ")");
+      dump_insn_mnemonic_entries (file, "\n(mnemonics ", entry->mnemonics,
+                                 ")");
       dump_table_entry (file, "\n(code ", entry->code, ")");
       lf_printf (file, "\n(next 0x%lx)", (long) entry->next);
       lf_indent (file, -1);
-  }
+    }
   lf_printf (file, "%s", suffix);
 }
 
 static void
-dump_insn_entries (lf *file,
-                  char *prefix,
-                  insn_entry *entry,
-                  char *suffix)
+dump_insn_entries (lf *file, char *prefix, insn_entry * entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1779,10 +1752,7 @@ dump_insn_entries (lf *file,
 
 
 void
-dump_insn_table (lf *file,
-                char *prefix,
-                insn_table *isa,
-                char *suffix)
+dump_insn_table (lf *file, char *prefix, insn_table *isa, char *suffix)
 {
   lf_printf (file, "%s(insn_table *) 0x%lx", prefix, (long) isa);
   if (isa != NULL)
index 5f9d240bd561e68b1cef4c3f2bbdbd481fe849b2..08a6bd09413744116eae021aed9f94f8ebaf6769 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1998 Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 
@@ -35,7 +38,8 @@ typedef unsigned64 insn_uint;
    
  */
 
-enum {
+enum
+{
   record_type_field = 1,
   old_record_type_field = 2,
   record_filter_flags_field = 2,
@@ -57,7 +61,8 @@ enum {
 
    */
 
-enum {
+enum
+{
   include_filename_field = 4,
   nr_include_fields,
 };
@@ -96,10 +101,11 @@ enum {
        ;
 
 
-   These update the global options structure. */       
+   These update the global options structure. */
 
 
-enum {
+enum
+{
   option_name_field = 4,
   option_value_field,
   nr_option_fields,
@@ -126,7 +132,8 @@ enum {
    */
 
 
-enum {
+enum
+{
   macro_name_field = 4,
   macro_args_field,
   macro_expr_field,
@@ -174,29 +181,33 @@ enum {
 
    */
 
-enum {
+enum
+{
   function_typedef_field = 4,
   function_name_field,
   function_param_field,
   nr_function_fields,
 };
 
-enum {
+enum
+{
   function_model_name_field = 0,
   nr_function_model_fields = 1,
 };
 
-enum {
+enum
+{
   old_function_typedef_field = 0,
   old_function_type_field = 2,
   old_function_name_field = 4,
   old_function_param_field = 5,
-  nr_old_function_fields = 5, /* parameter-list is optional */
+  nr_old_function_fields = 5,  /* parameter-list is optional */
 };
 
 
 typedef struct _function_entry function_entry;
-struct _function_entry {
+struct _function_entry
+{
   line_ref *line;
   filter *flags;
   filter *models;
@@ -210,15 +221,11 @@ struct _function_entry {
 
 
 typedef void function_entry_handler
-(lf *file,
- function_entry *function,
- void *data);
+  (lf *file, function_entry * function, void *data);
 
 extern void function_entry_traverse
-(lf *file,
- function_entry *functions,
- function_entry_handler *handler,
- void *data);
+  (lf *file,
+   function_entry * functions, function_entry_handler * handler, void *data);
 
 
 /* cache-macro:
@@ -255,7 +262,8 @@ extern void function_entry_traverse
 
    */
 
-enum {
+enum
+{
   cache_typedef_field = 4,
   cache_name_field,
   cache_original_fields_field,
@@ -263,14 +271,17 @@ enum {
   nr_cache_fields,
 };
 
-typedef enum {
+typedef enum
+{
   scratch_value,
   cache_value,
   compute_value,
-} cache_entry_type;
+}
+cache_entry_type;
 
 typedef struct _cache_entry cache_entry;
-struct _cache_entry {
+struct _cache_entry
+{
   line_ref *line;
   filter *flags;
   filter *models;
@@ -329,7 +340,8 @@ struct _cache_entry {
 
  */
 
-enum {
+enum
+{
   nr_model_macro_fields = 4,
   nr_model_data_fields = 4,
   nr_model_static_fields = nr_function_fields,
@@ -338,7 +350,8 @@ enum {
 };
 
 typedef struct _model_data model_data;
-struct _model_data {
+struct _model_data
+{
   line_ref *line;
   filter *flags;
   table_entry *entry;
@@ -346,7 +359,8 @@ struct _model_data {
   model_data *next;
 };
 
-enum {
+enum
+{
   model_name_field = 4,
   model_full_name_field,
   model_unit_data_field,
@@ -354,7 +368,8 @@ enum {
 };
 
 typedef struct _model_entry model_entry;
-struct _model_entry {
+struct _model_entry
+{
   line_ref *line;
   filter *flags;
   char *name;
@@ -365,7 +380,8 @@ struct _model_entry {
 
 
 typedef struct _model_table model_table;
-struct _model_table {
+struct _model_table
+{
   filter *processors;
   int nr_models;
   model_entry *models;
@@ -407,16 +423,21 @@ struct _model_table {
 
 */
 
-typedef enum _insn_field_cond_type {
+typedef enum _insn_field_cond_type
+{
   insn_field_cond_value,
   insn_field_cond_field,
-} insn_field_cond_type;
-typedef enum _insn_field_cond_test {
+}
+insn_field_cond_type;
+typedef enum _insn_field_cond_test
+{
   insn_field_cond_eq,
   insn_field_cond_ne,
-} insn_field_cond_test;
+}
+insn_field_cond_test;
 typedef struct _insn_field_cond insn_field_cond;
-struct _insn_field_cond {
+struct _insn_field_cond
+{
   insn_field_cond_type type;
   insn_field_cond_test test;
   insn_uint value;
@@ -426,16 +447,19 @@ struct _insn_field_cond {
 };
 
 
-typedef enum _insn_field_type {
+typedef enum _insn_field_type
+{
   insn_field_invalid,
   insn_field_int,
   insn_field_reserved,
   insn_field_wild,
   insn_field_string,
-} insn_field_type;
+}
+insn_field_type;
 
 typedef struct _insn_field_entry insn_field_entry;
-struct _insn_field_entry {
+struct _insn_field_entry
+{
   int first;
   int last;
   int width;
@@ -450,7 +474,8 @@ struct _insn_field_entry {
 };
 
 typedef struct _insn_bit_entry insn_bit_entry;
-struct _insn_bit_entry {
+struct _insn_bit_entry
+{
   int value;
   int mask;
   insn_field_entry *field;
@@ -459,10 +484,11 @@ struct _insn_bit_entry {
 
 
 
-typedef struct _insn_entry insn_entry; /* forward */
+typedef struct _insn_entry insn_entry; /* forward */
 
 typedef struct _insn_word_entry insn_word_entry;
-struct _insn_word_entry {
+struct _insn_word_entry
+{
   /* list of sub-fields making up the instruction.  bit provides
      faster access to the field data for bit N.  */
   insn_field_entry *first;
@@ -496,14 +522,16 @@ struct _insn_word_entry {
 
    */
 
-enum {
+enum
+{
   insn_model_name_field = 0,
   insn_model_unit_data_field = 1,
   nr_insn_model_fields = 1,
 };
 
 typedef struct _insn_model_entry insn_model_entry;
-struct _insn_model_entry {
+struct _insn_model_entry
+{
   line_ref *line;
   insn_entry *insn;
   filter *names;
@@ -551,14 +579,16 @@ struct _insn_model_entry {
 
    */
 
-enum {
+enum
+{
   insn_mnemonic_format_field = 0,
   insn_mnemonic_condition_field = 1,
   nr_insn_mnemonic_fields = 1,
 };
 
 typedef struct _insn_mnemonic_entry insn_mnemonic_entry;
-struct _insn_mnemonic_entry {
+struct _insn_mnemonic_entry
+{
   line_ref *line;
   insn_entry *insn;
   char *format;
@@ -583,7 +613,8 @@ struct _insn_mnemonic_entry {
 
  */
 
-enum {
+enum
+{
   insn_word_field = 0,
   insn_format_name_field = 1,
   insn_filter_flags_field = 2,
@@ -594,9 +625,10 @@ enum {
 
 
 /* typedef struct _insn_entry insn_entry; */
-struct _insn_entry {
+struct _insn_entry
+{
   line_ref *line;
-  filter *flags; /* filtered by options.filters */
+  filter *flags;               /* filtered by options.filters */
   char *format_name;
   filter *options;
   char *name;
@@ -627,7 +659,8 @@ struct _insn_entry {
  */
 
 typedef struct _insn_table insn_table;
-struct _insn_table {
+struct _insn_table
+{
   cache_entry *caches;
   int max_nr_words;
   int nr_insns;
@@ -639,65 +672,37 @@ struct _insn_table {
   filter *flags;
 };
 
-extern insn_table *load_insn_table
-(char *file_name,
- cache_entry *cache);
+extern insn_table *load_insn_table (char *file_name, cache_entry *cache);
 
 typedef void insn_entry_handler
-(lf *file,
- insn_table *isa,
- insn_entry *insn,
- void *data);
+  (lf *file, insn_table *isa, insn_entry * insn, void *data);
 
 extern void insn_table_traverse_insn
-(lf *file,
- insn_table *isa,
- insn_entry_handler *handler,
- void *data);
+  (lf *file, insn_table *isa, insn_entry_handler * handler, void *data);
 
 
 
 /* Printing */
 
-extern void print_insn_words
-(lf *file,
- insn_entry *insn);
+extern void print_insn_words (lf *file, insn_entry * insn);
 
 
 
 /* Debugging */
 
 void
-dump_insn_field
-(lf *file,
- char *prefix,
- insn_field_entry *field,
- char *suffix);
+  dump_insn_field
+  (lf *file, char *prefix, insn_field_entry *field, char *suffix);
 
 void
-dump_insn_word_entry
-(lf *file,
- char *prefix,
- insn_word_entry *word,
- char *suffix);
+  dump_insn_word_entry
+  (lf *file, char *prefix, insn_word_entry *word, char *suffix);
 
 void
-dump_insn_entry
-(lf *file,
- char *prefix,
- insn_entry *insn,
- char *suffix);
+  dump_insn_entry (lf *file, char *prefix, insn_entry * insn, char *suffix);
 
 void
-dump_cache_entries
-(lf *file,
- char *prefix,
- cache_entry *entry,
- char *suffix);
+  dump_cache_entries
+  (lf *file, char *prefix, cache_entry *entry, char *suffix);
 
-void
-dump_insn_table
-(lf *file,
- char *prefix,
- insn_table *isa,
- char *suffix);
+void dump_insn_table (lf *file, char *prefix, insn_table *isa, char *suffix);
index d2098585657a78d21cea88c3f92d1a83d0611b67..42985f2a887f3dcb46307265a1b0abcaf3ba96d7 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
+
+   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 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.
-    */
 
 
 #include <stdio.h>
 #endif
 #endif
 
-struct _lf {
+struct _lf
+{
   FILE *stream;
-  int line_nr; /* nr complete lines written, curr line is line_nr+1 */
+  int line_nr;                 /* nr complete lines written, curr line is line_nr+1 */
   int indent;
   int line_blank;
   const char *name;
@@ -55,70 +60,73 @@ lf *
 lf_open (char *name,
         char *real_name,
         lf_file_references references,
-        lf_file_type type,
-        const char *program)
+        lf_file_type type, const char *program)
 {
   /* create a file object */
-  lf *new_lf = ZALLOC(lf);
+  lf *new_lf = ZALLOC (lf);
   ASSERT (new_lf != NULL);
   new_lf->references = references;
   new_lf->type = type;
   new_lf->name = (real_name == NULL ? name : real_name);
   new_lf->program = program;
   /* attach to stdout if pipe */
-  if (!strcmp(name, "-")) {
-    new_lf->stream = stdout;
-  }
-  else {
-    /* create a new file */
-    new_lf->stream = fopen(name, "w");
-    if (new_lf->stream == NULL) {
-      perror(name);
-      exit(1);
+  if (!strcmp (name, "-"))
+    {
+      new_lf->stream = stdout;
+    }
+  else
+    {
+      /* create a new file */
+      new_lf->stream = fopen (name, "w");
+      if (new_lf->stream == NULL)
+       {
+         perror (name);
+         exit (1);
+       }
     }
-  }
   return new_lf;
 }
 
 
 void
-lf_close(lf *file)
+lf_close (lf *file)
 {
-  if (file->stream != stdout) {
-    if (fclose(file->stream)) {
-      perror("lf_close.fclose");
-      exit(1);
+  if (file->stream != stdout)
+    {
+      if (fclose (file->stream))
+       {
+         perror ("lf_close.fclose");
+         exit (1);
+       }
+      free (file);
     }
-    free(file);
-  }
 }
 
 
 int
-lf_putchr(lf *file,
-         const char chr)
+lf_putchr (lf *file, const char chr)
 {
   int nr = 0;
-  if (chr == '\n') {
-    file->line_nr += 1;
-    file->line_blank = 1;
-  }
-  else if (file->line_blank) {
-    int pad;
-    for (pad = file->indent; pad > 0; pad--)
-      putc(' ', file->stream);
-    nr += file->indent;
-    file->line_blank = 0;
-  }
-  putc(chr, file->stream);
+  if (chr == '\n')
+    {
+      file->line_nr += 1;
+      file->line_blank = 1;
+    }
+  else if (file->line_blank)
+    {
+      int pad;
+      for (pad = file->indent; pad > 0; pad--)
+       putc (' ', file->stream);
+      nr += file->indent;
+      file->line_blank = 0;
+    }
+  putc (chr, file->stream);
   nr += 1;
   return nr;
 }
 
 int
-lf_write (lf *file,
-         const char *string,
-         int strlen_string)
+lf_write (lf *file, const char *string, int strlen_string)
 {
   int nr = 0;
   int i;
@@ -129,63 +137,63 @@ lf_write (lf *file,
 
 
 void
-lf_indent_suppress(lf *file)
+lf_indent_suppress (lf *file)
 {
   file->line_blank = 0;
 }
 
 
 int
-lf_putstr(lf *file,
-         const char *string)
+lf_putstr (lf *file, const char *string)
 {
   int nr = 0;
   const char *chp;
-  if (string != NULL) {
-    for (chp = string; *chp != '\0'; chp++) {
-      nr += lf_putchr(file, *chp);
+  if (string != NULL)
+    {
+      for (chp = string; *chp != '\0'; chp++)
+       {
+         nr += lf_putchr (file, *chp);
+       }
     }
-  }
   return nr;
 }
 
 static int
-do_lf_putunsigned(lf *file,
-             unsigned u)
+do_lf_putunsigned (lf *file, unsigned u)
 {
   int nr = 0;
-  if (u > 0) {
-    nr += do_lf_putunsigned(file, u / 10);
-    nr += lf_putchr(file, (u % 10) + '0');
-  }
+  if (u > 0)
+    {
+      nr += do_lf_putunsigned (file, u / 10);
+      nr += lf_putchr (file, (u % 10) + '0');
+    }
   return nr;
 }
 
 
 int
-lf_putint(lf *file,
-         int decimal)
+lf_putint (lf *file, int decimal)
 {
   int nr = 0;
   if (decimal == 0)
-    nr += lf_putchr(file, '0');
-  else if (decimal < 0) {
-    nr += lf_putchr(file, '-');
-    nr += do_lf_putunsigned(file, -decimal);
-  }
-  else if (decimal > 0) {
-    nr += do_lf_putunsigned(file, decimal);
-  }
+    nr += lf_putchr (file, '0');
+  else if (decimal < 0)
+    {
+      nr += lf_putchr (file, '-');
+      nr += do_lf_putunsigned (file, -decimal);
+    }
+  else if (decimal > 0)
+    {
+      nr += do_lf_putunsigned (file, decimal);
+    }
   else
-    ASSERT(0);
+    ASSERT (0);
   return nr;
 }
 
 
 int
-lf_printf (lf *file,
-          const char *fmt,
-          ...)
+lf_printf (lf *file, const char *fmt, ...)
 {
   int nr = 0;
   char buf[1024];
@@ -196,28 +204,25 @@ lf_printf (lf *file,
   /* FIXME - this is really stuffed but so is vsprintf() on a sun! */
   ASSERT (strlen (buf) < sizeof (buf));
   nr += lf_putstr (file, buf);
-  va_end(ap);
+  va_end (ap);
   return nr;
 }
 
 
 int
-lf_print__line_ref (lf *file,
-                   line_ref *line)
+lf_print__line_ref (lf *file, line_ref *line)
 {
   return lf_print__external_ref (file, line->line_nr, line->file_name);
 }
 
 int
-lf_print__external_ref (lf *file,
-                       int line_nr,
-                       const char *file_name)
+lf_print__external_ref (lf *file, int line_nr, const char *file_name)
 {
   int nr = 0;
   switch (file->references)
     {
     case lf_include_references:
-      lf_indent_suppress(file);
+      lf_indent_suppress (file);
       nr += lf_putstr (file, "#line ");
       nr += lf_putint (file, line_nr);
       nr += lf_putstr (file, " \"");
@@ -239,7 +244,7 @@ int
 lf_print__internal_ref (lf *file)
 {
   int nr = 0;
-  nr += lf_print__external_ref (file, file->line_nr+2, file->name);
+  nr += lf_print__external_ref (file, file->line_nr + 2, file->name);
   /* line_nr == last_line, want to number from next */
   return nr;
 }
@@ -255,135 +260,142 @@ int
 lf_print__gnu_copyleft (lf *file)
 {
   int nr = 0;
-  switch (file->type) {
-  case lf_is_c:
-  case lf_is_h:
-    nr += lf_printf(file, "\
-/*  This file is part of the program psim.\n\
+  switch (file->type)
+    {
+    case lf_is_c:
+    case lf_is_h:
+      nr += lf_printf (file, "\
+/* This file is part of GDB.\n\
 \n\
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>\n\
+   Copyright 2002 Free Software Foundation, Inc.\n\
 \n\
-    This program is free software; you can redistribute it and/or modify\n\
-    it under the terms of the GNU General Public License as published by\n\
-    the Free Software Foundation; either version 2 of the License, or\n\
-    (at your option) any later version.\n\
+   This program is free software; you can redistribute it and/or modify\n\
+   it under the terms of the GNU General Public License as published by\n\
+   the Free Software Foundation; either version 2 of the License, or\n\
+   (at your option) any later version.\n\
 \n\
-    This program is distributed in the hope that it will be useful,\n\
-    but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
-    GNU General Public License for more details.\n\
+   This program is distributed in the hope that it will be useful,\n\
+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
+   GNU General Public License for more details.\n\
  \n\
-    You should have received a copy of the GNU General Public License\n\
-    along with this program; if not, write to the Free Software\n\
-    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n\
+   You should have received a copy of the GNU General Public License\n\
+   along with this program; if not, write to the Free Software\n\
+   Foundation, Inc., 59 Temple Place - Suite 330,\n\
+   Boston, MA 02111-1307, USA.\n\
 \n\
-    --\n\
+   --\n\
 \n\
-    This file was generated by the program %s */\n\
-", filter_filename(file->program));
-    break;
-  default:
-    ASSERT(0);
-    break;
-  }
+   This file was generated by the program %s */\n\
+", filter_filename (file->program));
+      break;
+    default:
+      ASSERT (0);
+      break;
+    }
   return nr;
 }
 
 
 int
-lf_putbin(lf *file, int decimal, int width)
+lf_putbin (lf *file, int decimal, int width)
 {
   int nr = 0;
   int bit;
-  ASSERT(width > 0);
-  for (bit = 1 << (width-1); bit != 0; bit >>= 1) {
-    if (decimal & bit)
-      nr += lf_putchr(file, '1');
-    else
-      nr += lf_putchr(file, '0');
-  }
+  ASSERT (width > 0);
+  for (bit = 1 << (width - 1); bit != 0; bit >>= 1)
+    {
+      if (decimal & bit)
+       nr += lf_putchr (file, '1');
+      else
+       nr += lf_putchr (file, '0');
+    }
   return nr;
 }
 
 int
-lf_print__this_file_is_empty(lf *file,
-                            const char *reason)
+lf_print__this_file_is_empty (lf *file, const char *reason)
 {
   int nr = 0;
-  switch (file->type) {
-  case lf_is_c:
-  case lf_is_h:
-    nr += lf_printf (file,
-                   "/* This generated file (%s) is intentionally left blank",
-                   file->name);
-    if (reason != NULL)
-      nr += lf_printf (file, " - %s", reason);
-    nr += lf_printf (file, " */\n");
-    break;
-  default:
-    ERROR ("Bad switch");
-  }
+  switch (file->type)
+    {
+    case lf_is_c:
+    case lf_is_h:
+      nr += lf_printf (file,
+                      "/* This generated file (%s) is intentionally left blank",
+                      file->name);
+      if (reason != NULL)
+       nr += lf_printf (file, " - %s", reason);
+      nr += lf_printf (file, " */\n");
+      break;
+    default:
+      ERROR ("Bad switch");
+    }
   return nr;
 }
 
 int
-lf_print__ucase_filename(lf *file)
+lf_print__ucase_filename (lf *file)
 {
   int nr = 0;
   const char *chp = file->name;
-  while (*chp != '\0') {
-    char ch = *chp;
-    if (islower(ch)) {
-      nr += lf_putchr(file, toupper(ch));
+  while (*chp != '\0')
+    {
+      char ch = *chp;
+      if (islower (ch))
+       {
+         nr += lf_putchr (file, toupper (ch));
+       }
+      else if (ch == '.')
+       nr += lf_putchr (file, '_');
+      else
+       nr += lf_putchr (file, ch);
+      chp++;
     }
-    else if (ch == '.')
-      nr += lf_putchr(file, '_');
-    else
-      nr += lf_putchr(file, ch);
-    chp++;
-  }
   return nr;
 }
 
 int
-lf_print__file_start(lf *file)
+lf_print__file_start (lf *file)
 {
   int nr = 0;
-  switch (file->type) {
-  case lf_is_h:
-  case lf_is_c:
-    nr += lf_print__gnu_copyleft(file);
-    nr += lf_printf(file, "\n");
-    nr += lf_printf(file, "#ifndef ");
-    nr += lf_print__ucase_filename(file);
-    nr += lf_printf(file, "\n");
-    nr += lf_printf(file, "#define ");
-    nr += lf_print__ucase_filename(file);
-    nr += lf_printf(file, "\n");
-    nr += lf_printf(file, "\n");
-    break;
-  default:
-    ASSERT(0);
-  }
+  switch (file->type)
+    {
+    case lf_is_h:
+    case lf_is_c:
+      nr += lf_print__gnu_copyleft (file);
+      nr += lf_printf (file, "\n");
+      nr += lf_printf (file, "#ifndef ");
+      nr += lf_print__ucase_filename (file);
+      nr += lf_printf (file, "\n");
+      nr += lf_printf (file, "#define ");
+      nr += lf_print__ucase_filename (file);
+      nr += lf_printf (file, "\n");
+      nr += lf_printf (file, "\n");
+      break;
+    default:
+      ASSERT (0);
+    }
   return nr;
 }
 
 
 int
-lf_print__file_finish(lf *file)
+lf_print__file_finish (lf *file)
 {
   int nr = 0;
-  switch (file->type) {
-  case lf_is_h:
-  case lf_is_c:
-    nr += lf_printf(file, "\n");
-    nr += lf_printf(file, "#endif /* _");
-    nr += lf_print__ucase_filename(file);
-    nr += lf_printf(file, "_*/\n");
-    break;
-  default:
-    ASSERT(0);
-  }
+  switch (file->type)
+    {
+    case lf_is_h:
+    case lf_is_c:
+      nr += lf_printf (file, "\n");
+      nr += lf_printf (file, "#endif /* _");
+      nr += lf_print__ucase_filename (file);
+      nr += lf_printf (file, "_*/\n");
+      break;
+    default:
+      ASSERT (0);
+    }
   return nr;
 }
 
@@ -391,8 +403,7 @@ lf_print__file_finish(lf *file)
 int
 lf_print__function_type (lf *file,
                         const char *type,
-                        const char *prefix,
-                        const char *trailing_space)
+                        const char *prefix, const char *trailing_space)
 {
   int nr = 0;
   nr += lf_printf (file, "%s\\\n(%s)", prefix, type);
@@ -403,7 +414,7 @@ lf_print__function_type (lf *file,
 
 int
 lf_print__function_type_function (lf *file,
-                                 print_function *print_type,
+                                 print_function * print_type,
                                  const char *prefix,
                                  const char *trailing_space)
 {
@@ -415,4 +426,3 @@ lf_print__function_type_function (lf *file,
     nr += lf_printf (file, "%s", trailing_space);
   return nr;
 }
-
index e968f5f6cb617bdbe9770b0a90f965b3b656486a..7eb4ee4024ab8095dd73e01ff76a52c373e49047 100644 (file)
@@ -1,39 +1,47 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
+
+   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 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.
-    */
 
 
 /* LF: Line Numbered Output Stream */
 
 typedef struct _lf lf;
 
-typedef enum {
+typedef enum
+{
   lf_is_h,
   lf_is_c,
   lf_is_text,
-} lf_file_type;
+}
+lf_file_type;
 
 
-typedef enum {
+typedef enum
+{
   lf_include_references,
   lf_omit_references,
-} lf_file_references;
+}
+lf_file_references;
 
 
 /* Open the file NAME for writing ("-" for stdout).  Use REAL_NAME
@@ -43,44 +51,28 @@ typedef enum {
    the print messages below. */
 
 extern lf *lf_open
-(char *name,
- char *real_name,
- lf_file_references file_references,
- lf_file_type type,
- const char *program);
+  (char *name,
+   char *real_name,
+   lf_file_references file_references,
+   lf_file_type type, const char *program);
 
-extern void lf_close
-(lf *file);
+extern void lf_close (lf *file);
 
 
 /* Basic output functions */
 
-extern int lf_write
-(lf *file,
- const char *string,
- int len);
+extern int lf_write (lf *file, const char *string, int len);
 
-extern int lf_putchr
-(lf *file,
- const char ch);
+extern int lf_putchr (lf *file, const char ch);
 
-extern int lf_putstr
-(lf *file,
- const char *string);
+extern int lf_putstr (lf *file, const char *string);
 
-extern int lf_putint
-(lf *file,
- int decimal);
+extern int lf_putint (lf *file, int decimal);
 
-extern int lf_putbin
-(lf *file,
- int decimal,
- int width);
+extern int lf_putbin (lf *file, int decimal, int width);
 
 extern int lf_printf
-(lf *file,
- const char *fmt,
- ...) __attribute__((format(printf, 2, 3)));
+  (lf *file, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
 
 
 /* Indentation control.
@@ -88,56 +80,38 @@ extern int lf_printf
    lf_indent_suppress suppresses indentation on the next line (current
    line if that has not yet been started) */
 
-extern void lf_indent_suppress
-(lf *file);
+extern void lf_indent_suppress (lf *file);
 
-extern void lf_indent
-(lf *file,
- int delta);
+extern void lf_indent (lf *file, int delta);
 
 
 /* Print generic text: */
 
 
-extern int lf_print__gnu_copyleft
-(lf *file);
+extern int lf_print__gnu_copyleft (lf *file);
 
-extern int lf_print__file_start
-(lf *file);
+extern int lf_print__file_start (lf *file);
 
-extern int lf_print__this_file_is_empty
-(lf *file,
- const char *reason);
+extern int lf_print__this_file_is_empty (lf *file, const char *reason);
 
-extern int lf_print__file_finish
-(lf *file);
+extern int lf_print__file_finish (lf *file);
 
-extern int lf_print__internal_ref
-(lf *file);
+extern int lf_print__internal_ref (lf *file);
 
 extern int lf_print__external_ref
-(lf *file,
- int line_nr,
- const char *file_name);
+  (lf *file, int line_nr, const char *file_name);
 
-extern int lf_print__line_ref
-(lf *file,
- line_ref *line);
+extern int lf_print__line_ref (lf *file, line_ref *line);
 
-extern int lf_print__ucase_filename
-(lf *file);
+extern int lf_print__ucase_filename (lf *file);
 
 extern int lf_print__function_type
-(lf *file,
- const char *type,
- const char *prefix,
- const char *trailing_space);
+  (lf *file,
+   const char *type, const char *prefix, const char *trailing_space);
 
-typedef int print_function(lf *file);
+typedef int print_function (lf *file);
 
 extern int lf_print__function_type_function
-(lf *file,
- print_function *print_type,
- const char *prefix,
- const char *trailing_space);
-
+  (lf *file,
+   print_function * print_type,
+   const char *prefix, const char *trailing_space);
index 8490132f32e6e9c076786b178a08e7bcfb108796..c5389268fe8005fa7448252fbb586f2506f6698a 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
+
+   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 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.
-    */
 
 
 #include <stdio.h>
@@ -42,9 +46,7 @@
    trailing '\n' */
 
 void
-error (const line_ref *line,
-       char *msg,
-       ...)
+error (const line_ref *line, char *msg, ...)
 {
   va_list ap;
   if (line != NULL)
@@ -56,9 +58,7 @@ error (const line_ref *line,
 }
 
 void
-warning (const line_ref *line,
-        char *msg,
-        ...)
+warning (const line_ref *line, char *msg, ...)
 {
   va_list ap;
   if (line != NULL)
@@ -69,25 +69,23 @@ warning (const line_ref *line,
 }
 
 void
-notify (const line_ref *line,
-       char *msg,
-       ...)
+notify (const line_ref *line, char *msg, ...)
 {
   va_list ap;
   if (line != NULL)
     fprintf (stdout, "%s %d: info: ", line->file_name, line->line_nr);
-  va_start(ap, msg);
+  va_start (ap, msg);
   vfprintf (stdout, msg, ap);
-  va_end(ap);
+  va_end (ap);
 }
 
 void *
-zalloc(long size)
+zalloc (long size)
 {
-  void *memory = malloc(size);
+  void *memory = malloc (size);
   if (memory == NULL)
     ERROR ("zalloc failed");
-  memset(memory, 0, size);
+  memset (memory, 0, size);
   return memory;
 }
 
@@ -99,16 +97,14 @@ a2i (const char *a)
   int base = 10;
   unsigned long long num = 0;
   int looping;
-  
+
   while (isspace (*a))
     a++;
-  
-  if (strcmp (a, "true") == 0
-      || strcmp (a, "TRUE") == 0)
+
+  if (strcmp (a, "true") == 0 || strcmp (a, "TRUE") == 0)
     return 1;
 
-  if (strcmp (a, "false") == 0
-      || strcmp (a, "false") == 0)
+  if (strcmp (a, "false") == 0 || strcmp (a, "false") == 0)
     return 0;
 
   if (*a == '-')
@@ -116,7 +112,7 @@ a2i (const char *a)
       neg = 1;
       a++;
     }
-  
+
   if (*a == '0')
     {
       if (a[1] == 'x' || a[1] == 'X')
@@ -132,18 +128,18 @@ a2i (const char *a)
       else
        base = 8;
     }
-  
+
   looping = 1;
   while (looping)
     {
       int ch = *a++;
-      
+
       switch (base)
        {
        default:
          looping = 0;
          break;
-         
+
        case 2:
          if (ch >= '0' && ch <= '1')
            {
@@ -154,7 +150,7 @@ a2i (const char *a)
              looping = 0;
            }
          break;
-         
+
        case 10:
          if (ch >= '0' && ch <= '9')
            {
@@ -165,7 +161,7 @@ a2i (const char *a)
              looping = 0;
            }
          break;
-         
+
        case 8:
          if (ch >= '0' && ch <= '7')
            {
@@ -176,7 +172,7 @@ a2i (const char *a)
              looping = 0;
            }
          break;
-         
+
        case 16:
          if (ch >= '0' && ch <= '9')
            {
@@ -197,26 +193,24 @@ a2i (const char *a)
          break;
        }
     }
-  
+
   if (neg)
-    num = - num;
+    num = -num;
 
   return num;
 }
 
 unsigned
-target_a2i(int ms_bit_nr,
-          const char *a)
+target_a2i (int ms_bit_nr, const char *a)
 {
   if (ms_bit_nr)
-    return (ms_bit_nr - a2i(a));
+    return (ms_bit_nr - a2i (a));
   else
-    return a2i(a);
+    return a2i (a);
 }
 
 unsigned
-i2target(int ms_bit_nr,
-        unsigned bit)
+i2target (int ms_bit_nr, unsigned bit)
 {
   if (ms_bit_nr)
     return ms_bit_nr - bit;
@@ -226,20 +220,19 @@ i2target(int ms_bit_nr,
 
 
 int
-name2i (const char *names,
-        const name_map *map)
+name2i (const char *names, const name_map * map)
 {
   const name_map *curr;
   const char *name = names;
   while (*name != '\0')
     {
       /* find our name */
-      char *end = strchr(name, ',');
+      char *end = strchr (name, ',');
       char *next;
       unsigned len;
       if (end == NULL)
        {
-         end = strchr(name, '\0');
+         end = strchr (name, '\0');
          next = end;
        }
       else
@@ -270,8 +263,7 @@ name2i (const char *names,
 }
 
 const char *
-i2name (const int i,
-        const name_map *map)
+i2name (const int i, const name_map * map)
 {
   while (map->name != NULL)
     {
index 10a807fecc85f9f1768927011de3cd41a89aa528..54e6c9fb2a4db36e0efa4a9681ef176964e8a28c 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
+
+   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 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.
-    */
 
 
 /* Frustrating header junk */
@@ -24,7 +28,8 @@
 #include "config.h"
 
 
-enum {
+enum
+{
   default_insn_bit_size = 32,
   max_insn_bit_size = 64,
 };
@@ -38,7 +43,7 @@ enum {
 typedef long long signed64;
 typedef unsigned long long unsigned64;
 
-#else  /* _WIN32 */
+#else /* _WIN32 */
 
 typedef __int64 signed64;
 typedef unsigned __int64 unsigned64;
@@ -73,16 +78,14 @@ typedef unsigned __int64 unsigned64;
 #include "filter_host.h"
 
 typedef struct _line_ref line_ref;
-struct _line_ref {
+struct _line_ref
+{
   const char *file_name;
   int line_nr;
 };
 
 /* Error appends a new line, warning and notify do not */
-typedef void error_func
-(const line_ref *line,
- char *msg,
- ...);
+typedef void error_func (const line_ref *line, char *msg, ...);
 
 extern error_func error;
 extern error_func warning;
@@ -114,19 +117,13 @@ do { \
 #define STRNDUP(STRING,LEN) (strncpy (zalloc ((LEN) + 1), (STRING), (LEN)))
 #endif
 
-extern void *zalloc
-(long size);
+extern void *zalloc (long size);
 
-extern unsigned target_a2i
-(int ms_bit_nr,
- const char *a);
+extern unsigned target_a2i (int ms_bit_nr, const char *a);
 
-extern unsigned i2target
-(int ms_bit_nr,
- unsigned bit);
+extern unsigned i2target (int ms_bit_nr, unsigned bit);
 
-extern unsigned long long a2i
-(const char *a);
+extern unsigned long long a2i (const char *a);
 
 
 /* Try looking for name in the map table (returning the corresponding
@@ -135,15 +132,13 @@ extern unsigned long long a2i
    If the the sentinal (NAME == NULL) its value if >= zero is returned
    as the default. */
 
-typedef struct _name_map {
+typedef struct _name_map
+{
   const char *name;
   int i;
-} name_map;
+}
+name_map;
 
-extern int name2i
-(const char *name,
- const name_map *map);
+extern int name2i (const char *name, const name_map * map);
 
-extern const char *i2name
-(const int i,
- const name_map *map);
+extern const char *i2name (const int i, const name_map * map);
index f6a9e9bb3fcd3f5ea8c170255781bf56ac3f112d..29f7188ea03a631bdf9b734ea8ea66e14e8d83ba 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1995,1997 Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
+
+   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 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.
-    */
 
 
 #include <sys/types.h>
@@ -39,7 +43,8 @@
 #endif
 
 typedef struct _open_table open_table;
-struct _open_table {
+struct _open_table
+{
   size_t size;
   char *buffer;
   char *pos;
@@ -48,13 +53,14 @@ struct _open_table {
   open_table *parent;
   table *root;
 };
-struct _table {
+struct _table
+{
   open_table *current;
 };
 
 
 static line_ref *
-current_line (open_table *file)
+current_line (open_table * file)
 {
   line_ref *entry = ZALLOC (line_ref);
   *entry = file->pseudo_line;
@@ -62,8 +68,7 @@ current_line (open_table *file)
 }
 
 static table_entry *
-new_table_entry (open_table *file,
-                table_entry_type type)
+new_table_entry (open_table * file, table_entry_type type)
 {
   table_entry *entry;
   entry = ZALLOC (table_entry);
@@ -74,19 +79,16 @@ new_table_entry (open_table *file,
 }
 
 static void
-set_nr_table_entry_fields (table_entry *entry,
-                          int nr_fields)
+set_nr_table_entry_fields (table_entry *entry, int nr_fields)
 {
-  entry->field = NZALLOC (char*, nr_fields + 1);
+  entry->field = NZALLOC (char *, nr_fields + 1);
   entry->nr_fields = nr_fields;
 }
 
 
 void
 table_push (table *root,
-           line_ref *line,
-           table_include *includes,
-           const char *file_name)
+           line_ref *line, table_include *includes, const char *file_name)
 {
   FILE *ff;
   open_table *file;
@@ -111,7 +113,8 @@ table_push (table *root,
   while (1)
     {
       /* save the file name */
-      char *dup_name = NZALLOC (char, strlen (include->dir) + strlen (file_name) + 2);
+      char *dup_name =
+       NZALLOC (char, strlen (include->dir) + strlen (file_name) + 2);
       if (dup_name == NULL)
        {
          perror (file_name);
@@ -139,7 +142,7 @@ table_push (table *root,
          exit (1);
        }
       include = include->next;
-  }
+    }
 
 
   /* determine the size */
@@ -148,7 +151,7 @@ table_push (table *root,
   fseek (ff, 0, SEEK_SET);
 
   /* allocate this much memory */
-  file->buffer = (char*) zalloc (file->size + 1);
+  file->buffer = (char *) zalloc (file->size + 1);
   if (file->buffer == NULL)
     {
       perror (file_name);
@@ -157,15 +160,16 @@ table_push (table *root,
   file->pos = file->buffer;
 
   /* read it all in */
-  if (fread (file->buffer, 1, file->size, ff) < file->size) {
-    perror (file_name);
-    exit (1);
-  }
+  if (fread (file->buffer, 1, file->size, ff) < file->size)
+    {
+      perror (file_name);
+      exit (1);
+    }
   file->buffer[file->size] = '\0';
 
   /* set the initial line numbering */
-  file->real_line.line_nr = 1; /* specifies current line */
-  file->pseudo_line.line_nr = 1; /* specifies current line */
+  file->real_line.line_nr = 1; /* specifies current line */
+  file->pseudo_line.line_nr = 1;       /* specifies current line */
 
   /* done */
   fclose (ff);
@@ -193,9 +197,7 @@ skip_spaces (char *chp)
 {
   while (1)
     {
-      if (*chp == '\0'
-         || *chp == '\n'
-         || !isspace (*chp))
+      if (*chp == '\0' || *chp == '\n' || !isspace (*chp))
        return chp;
       chp++;
     }
@@ -207,8 +209,7 @@ back_spaces (char *start, char *chp)
 {
   while (1)
     {
-      if (chp <= start
-         || !isspace (chp[-1]))
+      if (chp <= start || !isspace (chp[-1]))
        return chp;
       chp--;
     }
@@ -219,17 +220,14 @@ skip_digits (char *chp)
 {
   while (1)
     {
-      if (*chp == '\0'
-         || *chp == '\n'
-         || !isdigit (*chp))
+      if (*chp == '\0' || *chp == '\n' || !isdigit (*chp))
        return chp;
       chp++;
     }
 }
 
 char *
-skip_to_separator (char *chp,
-                  char *separators)
+skip_to_separator (char *chp, char *separators)
 {
   while (1)
     {
@@ -254,14 +252,14 @@ skip_to_null (char *chp)
 
 
 static char *
-skip_to_nl (char * chp)
+skip_to_nl (char *chp)
 {
   return skip_to_separator (chp, "\n");
 }
 
 
 static void
-next_line (open_table *file)
+next_line (open_table * file)
 {
   file->pos = skip_to_nl (file->pos);
   if (*file->pos == '0')
@@ -278,7 +276,7 @@ table_read (table *root)
 {
   open_table *file = root->current;
   table_entry *entry = NULL;
-  while(1)
+  while (1)
     {
 
       /* end-of-file? */
@@ -297,7 +295,7 @@ table_read (table *root)
       if (*file->pos == '{')
        {
          char *chp;
-         next_line (file); /* discard leading brace */
+         next_line (file);     /* discard leading brace */
          entry = new_table_entry (file, table_code_entry);
          chp = file->pos;
          /* determine how many lines are involved - look for <nl> "}" */
@@ -364,7 +362,7 @@ table_read (table *root)
                if (*chp == '\t')
                  entry->field[line_nr] = chp + 1;
                else
-                 entry->field[line_nr] = ""; /* blank */
+                 entry->field[line_nr] = "";   /* blank */
                chp = skip_to_null (chp) + 1;
              }
          }
@@ -385,27 +383,28 @@ table_read (table *root)
              char *file_name;
              file->pos = chp;
              /* parse the number */
-             line_nr = atoi(file->pos) - 1;
+             line_nr = atoi (file->pos) - 1;
              /* skip to the file name */
              while (file->pos[0] != '0'
-                    && file->pos[0] != '"'
-                    && file->pos[0] != '\0')
+                    && file->pos[0] != '"' && file->pos[0] != '\0')
                file->pos++;
              if (file->pos[0] != '"')
-               error (&file->real_line, "Missing opening quote in cpp directive\n");
+               error (&file->real_line,
+                      "Missing opening quote in cpp directive\n");
              /* parse the file name */
              file->pos++;
              file_name = file->pos;
-             while (file->pos[0] != '"'
-                    && file->pos[0] != '\0')
+             while (file->pos[0] != '"' && file->pos[0] != '\0')
                file->pos++;
              if (file->pos[0] != '"')
-               error (&file->real_line, "Missing closing quote in cpp directive\n");
+               error (&file->real_line,
+                      "Missing closing quote in cpp directive\n");
              file->pos[0] = '\0';
              file->pos++;
              file->pos = skip_to_nl (file->pos);
              if (file->pos[0] != '\n')
-               error (&file->real_line, "Missing newline in cpp directive\n");
+               error (&file->real_line,
+                      "Missing newline in cpp directive\n");
              file->pseudo_line.file_name = file_name;
              file->pseudo_line.line_nr = line_nr;
              next_line (file);
@@ -494,40 +493,35 @@ table_read (table *root)
 }
 
 extern void
-table_print_code (lf *file,
-                 table_entry *entry)
+table_print_code (lf *file, table_entry *entry)
 {
   int field_nr;
   int nr = 0;
-  for (field_nr = 0;
-       field_nr < entry->nr_fields;
-       field_nr++)
+  for (field_nr = 0; field_nr < entry->nr_fields; field_nr++)
     {
       char *chp = entry->field[field_nr];
       int in_bit_field = 0;
       if (*chp == '#')
-       lf_indent_suppress(file);
-      while (*chp != '\0') 
+       lf_indent_suppress (file);
+      while (*chp != '\0')
        {
-         if (chp[0] == '{'
-             && !isspace(chp[1])
-             && chp[1] != '\0')
+         if (chp[0] == '{' && !isspace (chp[1]) && chp[1] != '\0')
            {
              in_bit_field = 1;
-             nr += lf_putchr(file, '_');
+             nr += lf_putchr (file, '_');
            }
          else if (in_bit_field && chp[0] == ':')
            {
-             nr += lf_putchr(file, '_');
+             nr += lf_putchr (file, '_');
            }
          else if (in_bit_field && *chp == '}')
            {
-             nr += lf_putchr(file, '_');
+             nr += lf_putchr (file, '_');
              in_bit_field = 0;
            }
-         else 
+         else
            {
-             nr += lf_putchr(file, *chp);
+             nr += lf_putchr (file, *chp);
            }
          chp++;
        }
@@ -537,17 +531,14 @@ table_print_code (lf *file,
          line.line_nr += field_nr;
          error (&line, "Bit field brace miss match\n");
        }
-      nr += lf_putchr(file, '\n');
+      nr += lf_putchr (file, '\n');
     }
 }
 
 
 
 void
-dump_line_ref (lf *file,
-                char *prefix,
-                const line_ref *line,
-                char *suffix)
+dump_line_ref (lf *file, char *prefix, const line_ref *line, char *suffix)
 {
   lf_printf (file, "%s(line_ref*) 0x%lx", prefix, (long) line);
   if (line != NULL)
@@ -566,17 +557,17 @@ table_entry_type_to_str (table_entry_type type)
 {
   switch (type)
     {
-    case table_code_entry: return "code-entry";
-    case table_colon_entry: return "colon-entry";
+    case table_code_entry:
+      return "code-entry";
+    case table_colon_entry:
+      return "colon-entry";
     }
   return "*invalid*";
 }
 
 void
-dump_table_entry(lf *file,
-                char *prefix,
-                const table_entry *entry,
-                char *suffix)
+dump_table_entry (lf *file,
+                 char *prefix, const table_entry *entry, char *suffix)
 {
   lf_printf (file, "%s(table_entry*) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -600,7 +591,7 @@ dump_table_entry(lf *file,
 
 #ifdef MAIN
 int
-main(int argc, char **argv)
+main (int argc, char **argv)
 {
   table *t;
   table_entry *entry;
@@ -609,7 +600,7 @@ main(int argc, char **argv)
 
   if (argc != 2)
     {
-      printf("Usage: table <file>\n");
+      printf ("Usage: table <file>\n");
       exit (1);
     }
 
@@ -621,7 +612,7 @@ main(int argc, char **argv)
     {
       char line[10];
       entry = table_read (t);
-      line_nr ++;
+      line_nr++;
       sprintf (line, "(%d ", line_nr);
       dump_table_entry (l, line, entry, ")\n");
     }
index e0bc81bf38eda99a18721e56cea29fcee0dd8f75..1a9e42c435a9401dc41480d079d9e017d1c74f8a 100644 (file)
@@ -1,22 +1,25 @@
-/*  This file is part of the program psim.
+/* The IGEN simulator generator for GDB, the GNU Debugger.
 
-    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+   Copyright 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.
+   Contributed by Andrew Cagney.
 
-    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 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.  */
 
 
 /* Read a table, line by line, from a file.
 
 typedef struct _table table;
 
-typedef enum {
+typedef enum
+{
   table_colon_entry,
   table_code_entry,
-} table_entry_type;
+}
+table_entry_type;
 
 
 typedef struct _table_entry table_entry;
-struct _table_entry {
+struct _table_entry
+{
   table *file;
   line_ref *line;
   table_entry_type type;
@@ -79,7 +85,8 @@ struct _table_entry {
 /* List of directories to search when opening a pushed file.  Current
    directory is always searched first */
 typedef struct _table_include table_include;
-struct _table_include {
+struct _table_include
+{
   char *dir;
   table_include *next;
 };
@@ -88,68 +95,47 @@ struct _table_include {
 /* Open/read a table file.  Since the file is read once during open
    (and then closed immediatly) there is no close method. */
 
-extern table *table_open
-(const char *file_name);
+extern table *table_open (const char *file_name);
 
-extern table_entry *table_read
-(table *file);
+extern table_entry *table_read (table *file);
 
 
 /* Push the the state of the current file and open FILE_NAME.  When
    the end of FILE_NAME is reached, return to the pushed file */
 
 extern void table_push
-(table *file,
- line_ref *line,
- table_include *search,
- const char *file_name);
+  (table *file, line_ref *line, table_include *search, const char *file_name);
 
 
 /* Expand the specified field_nr using the internal expansion table.
    A field is only expanded when explicitly specified.  */
 
-extern void table_expand_field
-(table_entry *entry,
- int field_nr);
+extern void table_expand_field (table_entry *entry, int field_nr);
 
 
 /* Given a code entry, write the code to FILE.  Since any
    leading/trailing braces were striped as part of the read, they are
    not written. */
 
-extern void table_print_code
-(lf *file,
- table_entry *entry);
+extern void table_print_code (lf *file, table_entry *entry);
 
 
 /* Debugging */
 
 extern void dump_line_ref
-(lf *file,
- char *prefix,
- const line_ref *line,
- char *suffix);
+  (lf *file, char *prefix, const line_ref *line, char *suffix);
 
 extern void dump_table_entry
-(lf *file,
- char *prefix,
- const table_entry *entry,
- char *suffix);
+  (lf *file, char *prefix, const table_entry *entry, char *suffix);
 
 
 
 /* Utilities for skipping around text */
 
-extern char *skip_digits
-(char *chp);
+extern char *skip_digits (char *chp);
 
-extern char *skip_spaces
-(char *chp);
+extern char *skip_spaces (char *chp);
 
-extern char *skip_to_separator
-(char *chp,
- char *separators);
+extern char *skip_to_separator (char *chp, char *separators);
 
-extern char *back_spaces
-(char *start,
- char *chp);
+extern char *back_spaces (char *start, char *chp);
index 6ee9d8562c43375c3fe20a9e243a7ea15f04911e..532e0242d33ca14f787f632d49b24492d21c5ea8 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-19  Doug Evans  <dje@sebabeach.org>
+
+       * arch.c,arch.h,cpuall.h: Regenerate.
+       * cpu.c,cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Regenerate.
+       * cpux.c,cpux.h,decodex.c,decodex.h,modelx.c,semx-switch.c: Regenerate.
+
 2002-06-16  Andrew Cagney  <ac131313@redhat.com>
 
        * configure: Regenerated to track ../common/aclocal.m4 changes.
index d6860c15b343604670a4816f2e8021a9cde8d1b6..0c02abbd43f62781b3587d019b44f84c1eaa216d 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index 9521f44369288176a12eb92c467c5187717f91a7..89aed248730b1b0f6cfee151c39e20c2309bc10c 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index d93943d3e6cf7104390c76641c43d63421f5c2c3..bdb7937366640ced418949a01573526177879aa7 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index 6f9a3ff7da7ef96083322f60c0c997b1a5fc8894..738aa1df444c53dcbd2544aef4427d3767ddf97f 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index 0c16b21c5ddae2538d05490970db16612cca3710..d60037b362b766005d146418c06da2db4296045b 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index 054828b2f0e419475d96952aa0506748e3ef8538..932978967bc89043500c4b89d47a2adf67bfea2b 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index 2d5cab49c1e47686ed3582750faebb4c86159edf..7fde2cc98e26f2b8cde33e2a15c2834eebd6f93f 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index 83c3a38e08b7fda8b0c02ba22e449fc315752d8b..e3b82cd612a780df37718f8a96124e3dcf44dea2 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
@@ -33,7 +33,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
    teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
    but won't be done until necessary (we don't currently support the runtime
    addition of instructions nor an SMP machine with different cpus).  */
-static IDESC m32rbf_insn_data[M32RBF_INSN_UNLOCK + 1];
+static IDESC m32rbf_insn_data[M32RBF_INSN__MAX];
 
 /* Commas between elements are contained in the macros.
    Some of these are conditionally compiled out.  */
@@ -186,7 +186,7 @@ m32rbf_init_idesc_table (SIM_CPU *cpu)
 {
   IDESC *id,*tabend;
   const struct insn_sem *t,*tend;
-  int tabsize = sizeof (m32rbf_insn_data) / sizeof (IDESC);
+  int tabsize = M32RBF_INSN__MAX;
   IDESC *table = m32rbf_insn_data;
 
   memset (table, 0, tabsize * sizeof (IDESC));
@@ -224,59 +224,59 @@ m32rbf_decode (SIM_CPU *current_cpu, IADDR pc,
       unsigned int val = (((insn >> 8) & (15 << 4)) | ((insn >> 4) & (15 << 0)));
       switch (val)
       {
-      case 0 : itype = M32RBF_INSN_SUBV;goto extract_sfmt_addv;
-      case 1 : itype = M32RBF_INSN_SUBX;goto extract_sfmt_addx;
-      case 2 : itype = M32RBF_INSN_SUB;goto extract_sfmt_add;
-      case 3 : itype = M32RBF_INSN_NEG;goto extract_sfmt_mv;
-      case 4 : itype = M32RBF_INSN_CMP;goto extract_sfmt_cmp;
-      case 5 : itype = M32RBF_INSN_CMPU;goto extract_sfmt_cmp;
-      case 8 : itype = M32RBF_INSN_ADDV;goto extract_sfmt_addv;
-      case 9 : itype = M32RBF_INSN_ADDX;goto extract_sfmt_addx;
-      case 10 : itype = M32RBF_INSN_ADD;goto extract_sfmt_add;
-      case 11 : itype = M32RBF_INSN_NOT;goto extract_sfmt_mv;
-      case 12 : itype = M32RBF_INSN_AND;goto extract_sfmt_add;
-      case 13 : itype = M32RBF_INSN_XOR;goto extract_sfmt_add;
-      case 14 : itype = M32RBF_INSN_OR;goto extract_sfmt_add;
-      case 16 : itype = M32RBF_INSN_SRL;goto extract_sfmt_add;
-      case 18 : itype = M32RBF_INSN_SRA;goto extract_sfmt_add;
-      case 20 : itype = M32RBF_INSN_SLL;goto extract_sfmt_add;
-      case 22 : itype = M32RBF_INSN_MUL;goto extract_sfmt_add;
-      case 24 : itype = M32RBF_INSN_MV;goto extract_sfmt_mv;
-      case 25 : itype = M32RBF_INSN_MVFC;goto extract_sfmt_mvfc;
-      case 26 : itype = M32RBF_INSN_MVTC;goto extract_sfmt_mvtc;
+      case 0 : itype = M32RBF_INSN_SUBV; goto extract_sfmt_addv;
+      case 1 : itype = M32RBF_INSN_SUBX; goto extract_sfmt_addx;
+      case 2 : itype = M32RBF_INSN_SUB; goto extract_sfmt_add;
+      case 3 : itype = M32RBF_INSN_NEG; goto extract_sfmt_mv;
+      case 4 : itype = M32RBF_INSN_CMP; goto extract_sfmt_cmp;
+      case 5 : itype = M32RBF_INSN_CMPU; goto extract_sfmt_cmp;
+      case 8 : itype = M32RBF_INSN_ADDV; goto extract_sfmt_addv;
+      case 9 : itype = M32RBF_INSN_ADDX; goto extract_sfmt_addx;
+      case 10 : itype = M32RBF_INSN_ADD; goto extract_sfmt_add;
+      case 11 : itype = M32RBF_INSN_NOT; goto extract_sfmt_mv;
+      case 12 : itype = M32RBF_INSN_AND; goto extract_sfmt_add;
+      case 13 : itype = M32RBF_INSN_XOR; goto extract_sfmt_add;
+      case 14 : itype = M32RBF_INSN_OR; goto extract_sfmt_add;
+      case 16 : itype = M32RBF_INSN_SRL; goto extract_sfmt_add;
+      case 18 : itype = M32RBF_INSN_SRA; goto extract_sfmt_add;
+      case 20 : itype = M32RBF_INSN_SLL; goto extract_sfmt_add;
+      case 22 : itype = M32RBF_INSN_MUL; goto extract_sfmt_add;
+      case 24 : itype = M32RBF_INSN_MV; goto extract_sfmt_mv;
+      case 25 : itype = M32RBF_INSN_MVFC; goto extract_sfmt_mvfc;
+      case 26 : itype = M32RBF_INSN_MVTC; goto extract_sfmt_mvtc;
       case 28 :
         {
           unsigned int val = (((insn >> 8) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RBF_INSN_JL;goto extract_sfmt_jl;
-          case 1 : itype = M32RBF_INSN_JMP;goto extract_sfmt_jmp;
+          case 0 : itype = M32RBF_INSN_JL; goto extract_sfmt_jl;
+          case 1 : itype = M32RBF_INSN_JMP; goto extract_sfmt_jmp;
           default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
-      case 29 : itype = M32RBF_INSN_RTE;goto extract_sfmt_rte;
-      case 31 : itype = M32RBF_INSN_TRAP;goto extract_sfmt_trap;
-      case 32 : itype = M32RBF_INSN_STB;goto extract_sfmt_stb;
-      case 34 : itype = M32RBF_INSN_STH;goto extract_sfmt_sth;
-      case 36 : itype = M32RBF_INSN_ST;goto extract_sfmt_st;
-      case 37 : itype = M32RBF_INSN_UNLOCK;goto extract_sfmt_unlock;
-      case 38 : itype = M32RBF_INSN_ST_PLUS;goto extract_sfmt_st_plus;
-      case 39 : itype = M32RBF_INSN_ST_MINUS;goto extract_sfmt_st_plus;
-      case 40 : itype = M32RBF_INSN_LDB;goto extract_sfmt_ldb;
-      case 41 : itype = M32RBF_INSN_LDUB;goto extract_sfmt_ldb;
-      case 42 : itype = M32RBF_INSN_LDH;goto extract_sfmt_ldh;
-      case 43 : itype = M32RBF_INSN_LDUH;goto extract_sfmt_ldh;
-      case 44 : itype = M32RBF_INSN_LD;goto extract_sfmt_ld;
-      case 45 : itype = M32RBF_INSN_LOCK;goto extract_sfmt_lock;
-      case 46 : itype = M32RBF_INSN_LD_PLUS;goto extract_sfmt_ld_plus;
-      case 48 : itype = M32RBF_INSN_MULHI;goto extract_sfmt_mulhi;
-      case 49 : itype = M32RBF_INSN_MULLO;goto extract_sfmt_mulhi;
-      case 50 : itype = M32RBF_INSN_MULWHI;goto extract_sfmt_mulhi;
-      case 51 : itype = M32RBF_INSN_MULWLO;goto extract_sfmt_mulhi;
-      case 52 : itype = M32RBF_INSN_MACHI;goto extract_sfmt_machi;
-      case 53 : itype = M32RBF_INSN_MACLO;goto extract_sfmt_machi;
-      case 54 : itype = M32RBF_INSN_MACWHI;goto extract_sfmt_machi;
-      case 55 : itype = M32RBF_INSN_MACWLO;goto extract_sfmt_machi;
+      case 29 : itype = M32RBF_INSN_RTE; goto extract_sfmt_rte;
+      case 31 : itype = M32RBF_INSN_TRAP; goto extract_sfmt_trap;
+      case 32 : itype = M32RBF_INSN_STB; goto extract_sfmt_stb;
+      case 34 : itype = M32RBF_INSN_STH; goto extract_sfmt_sth;
+      case 36 : itype = M32RBF_INSN_ST; goto extract_sfmt_st;
+      case 37 : itype = M32RBF_INSN_UNLOCK; goto extract_sfmt_unlock;
+      case 38 : itype = M32RBF_INSN_ST_PLUS; goto extract_sfmt_st_plus;
+      case 39 : itype = M32RBF_INSN_ST_MINUS; goto extract_sfmt_st_plus;
+      case 40 : itype = M32RBF_INSN_LDB; goto extract_sfmt_ldb;
+      case 41 : itype = M32RBF_INSN_LDUB; goto extract_sfmt_ldb;
+      case 42 : itype = M32RBF_INSN_LDH; goto extract_sfmt_ldh;
+      case 43 : itype = M32RBF_INSN_LDUH; goto extract_sfmt_ldh;
+      case 44 : itype = M32RBF_INSN_LD; goto extract_sfmt_ld;
+      case 45 : itype = M32RBF_INSN_LOCK; goto extract_sfmt_lock;
+      case 46 : itype = M32RBF_INSN_LD_PLUS; goto extract_sfmt_ld_plus;
+      case 48 : itype = M32RBF_INSN_MULHI; goto extract_sfmt_mulhi;
+      case 49 : itype = M32RBF_INSN_MULLO; goto extract_sfmt_mulhi;
+      case 50 : itype = M32RBF_INSN_MULWHI; goto extract_sfmt_mulhi;
+      case 51 : itype = M32RBF_INSN_MULWLO; goto extract_sfmt_mulhi;
+      case 52 : itype = M32RBF_INSN_MACHI; goto extract_sfmt_machi;
+      case 53 : itype = M32RBF_INSN_MACLO; goto extract_sfmt_machi;
+      case 54 : itype = M32RBF_INSN_MACWHI; goto extract_sfmt_machi;
+      case 55 : itype = M32RBF_INSN_MACWLO; goto extract_sfmt_machi;
       case 64 : /* fall through */
       case 65 : /* fall through */
       case 66 : /* fall through */
@@ -292,33 +292,33 @@ m32rbf_decode (SIM_CPU *current_cpu, IADDR pc,
       case 76 : /* fall through */
       case 77 : /* fall through */
       case 78 : /* fall through */
-      case 79 : itype = M32RBF_INSN_ADDI;goto extract_sfmt_addi;
+      case 79 : itype = M32RBF_INSN_ADDI; goto extract_sfmt_addi;
       case 80 : /* fall through */
-      case 81 : itype = M32RBF_INSN_SRLI;goto extract_sfmt_slli;
+      case 81 : itype = M32RBF_INSN_SRLI; goto extract_sfmt_slli;
       case 82 : /* fall through */
-      case 83 : itype = M32RBF_INSN_SRAI;goto extract_sfmt_slli;
+      case 83 : itype = M32RBF_INSN_SRAI; goto extract_sfmt_slli;
       case 84 : /* fall through */
-      case 85 : itype = M32RBF_INSN_SLLI;goto extract_sfmt_slli;
+      case 85 : itype = M32RBF_INSN_SLLI; goto extract_sfmt_slli;
       case 87 :
         {
           unsigned int val = (((insn >> 0) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RBF_INSN_MVTACHI;goto extract_sfmt_mvtachi;
-          case 1 : itype = M32RBF_INSN_MVTACLO;goto extract_sfmt_mvtachi;
+          case 0 : itype = M32RBF_INSN_MVTACHI; goto extract_sfmt_mvtachi;
+          case 1 : itype = M32RBF_INSN_MVTACLO; goto extract_sfmt_mvtachi;
           default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
-      case 88 : itype = M32RBF_INSN_RACH;goto extract_sfmt_rac;
-      case 89 : itype = M32RBF_INSN_RAC;goto extract_sfmt_rac;
+      case 88 : itype = M32RBF_INSN_RACH; goto extract_sfmt_rac;
+      case 89 : itype = M32RBF_INSN_RAC; goto extract_sfmt_rac;
       case 95 :
         {
           unsigned int val = (((insn >> 0) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RBF_INSN_MVFACHI;goto extract_sfmt_mvfachi;
-          case 1 : itype = M32RBF_INSN_MVFACLO;goto extract_sfmt_mvfachi;
-          case 2 : itype = M32RBF_INSN_MVFACMI;goto extract_sfmt_mvfachi;
+          case 0 : itype = M32RBF_INSN_MVFACHI; goto extract_sfmt_mvfachi;
+          case 1 : itype = M32RBF_INSN_MVFACLO; goto extract_sfmt_mvfachi;
+          case 2 : itype = M32RBF_INSN_MVFACMI; goto extract_sfmt_mvfachi;
           default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
@@ -337,17 +337,17 @@ m32rbf_decode (SIM_CPU *current_cpu, IADDR pc,
       case 108 : /* fall through */
       case 109 : /* fall through */
       case 110 : /* fall through */
-      case 111 : itype = M32RBF_INSN_LDI8;goto extract_sfmt_ldi8;
+      case 111 : itype = M32RBF_INSN_LDI8; goto extract_sfmt_ldi8;
       case 112 :
         {
           unsigned int val = (((insn >> 8) & (15 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RBF_INSN_NOP;goto extract_sfmt_nop;
-          case 12 : itype = M32RBF_INSN_BC8;goto extract_sfmt_bc8;
-          case 13 : itype = M32RBF_INSN_BNC8;goto extract_sfmt_bc8;
-          case 14 : itype = M32RBF_INSN_BL8;goto extract_sfmt_bl8;
-          case 15 : itype = M32RBF_INSN_BRA8;goto extract_sfmt_bra8;
+          case 0 : itype = M32RBF_INSN_NOP; goto extract_sfmt_nop;
+          case 12 : itype = M32RBF_INSN_BC8; goto extract_sfmt_bc8;
+          case 13 : itype = M32RBF_INSN_BNC8; goto extract_sfmt_bc8;
+          case 14 : itype = M32RBF_INSN_BL8; goto extract_sfmt_bl8;
+          case 15 : itype = M32RBF_INSN_BRA8; goto extract_sfmt_bra8;
           default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
@@ -370,45 +370,45 @@ m32rbf_decode (SIM_CPU *current_cpu, IADDR pc,
           unsigned int val = (((insn >> 8) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RBF_INSN_BC8;goto extract_sfmt_bc8;
-          case 1 : itype = M32RBF_INSN_BNC8;goto extract_sfmt_bc8;
-          case 2 : itype = M32RBF_INSN_BL8;goto extract_sfmt_bl8;
-          case 3 : itype = M32RBF_INSN_BRA8;goto extract_sfmt_bra8;
+          case 0 : itype = M32RBF_INSN_BC8; goto extract_sfmt_bc8;
+          case 1 : itype = M32RBF_INSN_BNC8; goto extract_sfmt_bc8;
+          case 2 : itype = M32RBF_INSN_BL8; goto extract_sfmt_bl8;
+          case 3 : itype = M32RBF_INSN_BRA8; goto extract_sfmt_bra8;
           default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
-      case 132 : itype = M32RBF_INSN_CMPI;goto extract_sfmt_cmpi;
-      case 133 : itype = M32RBF_INSN_CMPUI;goto extract_sfmt_cmpi;
-      case 136 : itype = M32RBF_INSN_ADDV3;goto extract_sfmt_addv3;
-      case 138 : itype = M32RBF_INSN_ADD3;goto extract_sfmt_add3;
-      case 140 : itype = M32RBF_INSN_AND3;goto extract_sfmt_and3;
-      case 141 : itype = M32RBF_INSN_XOR3;goto extract_sfmt_and3;
-      case 142 : itype = M32RBF_INSN_OR3;goto extract_sfmt_or3;
-      case 144 : itype = M32RBF_INSN_DIV;goto extract_sfmt_div;
-      case 145 : itype = M32RBF_INSN_DIVU;goto extract_sfmt_div;
-      case 146 : itype = M32RBF_INSN_REM;goto extract_sfmt_div;
-      case 147 : itype = M32RBF_INSN_REMU;goto extract_sfmt_div;
-      case 152 : itype = M32RBF_INSN_SRL3;goto extract_sfmt_sll3;
-      case 154 : itype = M32RBF_INSN_SRA3;goto extract_sfmt_sll3;
-      case 156 : itype = M32RBF_INSN_SLL3;goto extract_sfmt_sll3;
-      case 159 : itype = M32RBF_INSN_LDI16;goto extract_sfmt_ldi16;
-      case 160 : itype = M32RBF_INSN_STB_D;goto extract_sfmt_stb_d;
-      case 162 : itype = M32RBF_INSN_STH_D;goto extract_sfmt_sth_d;
-      case 164 : itype = M32RBF_INSN_ST_D;goto extract_sfmt_st_d;
-      case 168 : itype = M32RBF_INSN_LDB_D;goto extract_sfmt_ldb_d;
-      case 169 : itype = M32RBF_INSN_LDUB_D;goto extract_sfmt_ldb_d;
-      case 170 : itype = M32RBF_INSN_LDH_D;goto extract_sfmt_ldh_d;
-      case 171 : itype = M32RBF_INSN_LDUH_D;goto extract_sfmt_ldh_d;
-      case 172 : itype = M32RBF_INSN_LD_D;goto extract_sfmt_ld_d;
-      case 176 : itype = M32RBF_INSN_BEQ;goto extract_sfmt_beq;
-      case 177 : itype = M32RBF_INSN_BNE;goto extract_sfmt_beq;
-      case 184 : itype = M32RBF_INSN_BEQZ;goto extract_sfmt_beqz;
-      case 185 : itype = M32RBF_INSN_BNEZ;goto extract_sfmt_beqz;
-      case 186 : itype = M32RBF_INSN_BLTZ;goto extract_sfmt_beqz;
-      case 187 : itype = M32RBF_INSN_BGEZ;goto extract_sfmt_beqz;
-      case 188 : itype = M32RBF_INSN_BLEZ;goto extract_sfmt_beqz;
-      case 189 : itype = M32RBF_INSN_BGTZ;goto extract_sfmt_beqz;
-      case 220 : itype = M32RBF_INSN_SETH;goto extract_sfmt_seth;
+      case 132 : itype = M32RBF_INSN_CMPI; goto extract_sfmt_cmpi;
+      case 133 : itype = M32RBF_INSN_CMPUI; goto extract_sfmt_cmpi;
+      case 136 : itype = M32RBF_INSN_ADDV3; goto extract_sfmt_addv3;
+      case 138 : itype = M32RBF_INSN_ADD3; goto extract_sfmt_add3;
+      case 140 : itype = M32RBF_INSN_AND3; goto extract_sfmt_and3;
+      case 141 : itype = M32RBF_INSN_XOR3; goto extract_sfmt_and3;
+      case 142 : itype = M32RBF_INSN_OR3; goto extract_sfmt_or3;
+      case 144 : itype = M32RBF_INSN_DIV; goto extract_sfmt_div;
+      case 145 : itype = M32RBF_INSN_DIVU; goto extract_sfmt_div;
+      case 146 : itype = M32RBF_INSN_REM; goto extract_sfmt_div;
+      case 147 : itype = M32RBF_INSN_REMU; goto extract_sfmt_div;
+      case 152 : itype = M32RBF_INSN_SRL3; goto extract_sfmt_sll3;
+      case 154 : itype = M32RBF_INSN_SRA3; goto extract_sfmt_sll3;
+      case 156 : itype = M32RBF_INSN_SLL3; goto extract_sfmt_sll3;
+      case 159 : itype = M32RBF_INSN_LDI16; goto extract_sfmt_ldi16;
+      case 160 : itype = M32RBF_INSN_STB_D; goto extract_sfmt_stb_d;
+      case 162 : itype = M32RBF_INSN_STH_D; goto extract_sfmt_sth_d;
+      case 164 : itype = M32RBF_INSN_ST_D; goto extract_sfmt_st_d;
+      case 168 : itype = M32RBF_INSN_LDB_D; goto extract_sfmt_ldb_d;
+      case 169 : itype = M32RBF_INSN_LDUB_D; goto extract_sfmt_ldb_d;
+      case 170 : itype = M32RBF_INSN_LDH_D; goto extract_sfmt_ldh_d;
+      case 171 : itype = M32RBF_INSN_LDUH_D; goto extract_sfmt_ldh_d;
+      case 172 : itype = M32RBF_INSN_LD_D; goto extract_sfmt_ld_d;
+      case 176 : itype = M32RBF_INSN_BEQ; goto extract_sfmt_beq;
+      case 177 : itype = M32RBF_INSN_BNE; goto extract_sfmt_beq;
+      case 184 : itype = M32RBF_INSN_BEQZ; goto extract_sfmt_beqz;
+      case 185 : itype = M32RBF_INSN_BNEZ; goto extract_sfmt_beqz;
+      case 186 : itype = M32RBF_INSN_BLTZ; goto extract_sfmt_beqz;
+      case 187 : itype = M32RBF_INSN_BGEZ; goto extract_sfmt_beqz;
+      case 188 : itype = M32RBF_INSN_BLEZ; goto extract_sfmt_beqz;
+      case 189 : itype = M32RBF_INSN_BGTZ; goto extract_sfmt_beqz;
+      case 220 : itype = M32RBF_INSN_SETH; goto extract_sfmt_seth;
       case 224 : /* fall through */
       case 225 : /* fall through */
       case 226 : /* fall through */
@@ -424,7 +424,7 @@ m32rbf_decode (SIM_CPU *current_cpu, IADDR pc,
       case 236 : /* fall through */
       case 237 : /* fall through */
       case 238 : /* fall through */
-      case 239 : itype = M32RBF_INSN_LD24;goto extract_sfmt_ld24;
+      case 239 : itype = M32RBF_INSN_LD24; goto extract_sfmt_ld24;
       case 240 : /* fall through */
       case 241 : /* fall through */
       case 242 : /* fall through */
@@ -445,10 +445,10 @@ m32rbf_decode (SIM_CPU *current_cpu, IADDR pc,
           unsigned int val = (((insn >> 8) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RBF_INSN_BC24;goto extract_sfmt_bc24;
-          case 1 : itype = M32RBF_INSN_BNC24;goto extract_sfmt_bc24;
-          case 2 : itype = M32RBF_INSN_BL24;goto extract_sfmt_bl24;
-          case 3 : itype = M32RBF_INSN_BRA24;goto extract_sfmt_bra24;
+          case 0 : itype = M32RBF_INSN_BC24; goto extract_sfmt_bc24;
+          case 1 : itype = M32RBF_INSN_BNC24; goto extract_sfmt_bc24;
+          case 2 : itype = M32RBF_INSN_BL24; goto extract_sfmt_bl24;
+          case 3 : itype = M32RBF_INSN_BRA24; goto extract_sfmt_bra24;
           default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
index 1450667dfec8421e3cb8a3db62807129855154b0..f7a2237420da71c5079660b326044d59aca553ee 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
@@ -60,7 +60,7 @@ typedef enum m32rbf_insn_type {
  , M32RBF_INSN_ST, M32RBF_INSN_ST_D, M32RBF_INSN_STB, M32RBF_INSN_STB_D
  , M32RBF_INSN_STH, M32RBF_INSN_STH_D, M32RBF_INSN_ST_PLUS, M32RBF_INSN_ST_MINUS
  , M32RBF_INSN_SUB, M32RBF_INSN_SUBV, M32RBF_INSN_SUBX, M32RBF_INSN_TRAP
- , M32RBF_INSN_UNLOCK, M32RBF_INSN_MAX
+ , M32RBF_INSN_UNLOCK, M32RBF_INSN__MAX
 } M32RBF_INSN_TYPE;
 
 /* Enum declaration for semantic formats in cpu family m32rbf.  */
index 336ba3a43d07405f67289be3cbf569ae6f2eb30e..06317f08ecfa299e2ff2a99e7fdbb5acf7264dec 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
@@ -37,7 +37,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
    teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
    but won't be done until necessary (we don't currently support the runtime
    addition of instructions nor an SMP machine with different cpus).  */
-static IDESC m32rxf_insn_data[M32RXF_INSN_SNC + 1];
+static IDESC m32rxf_insn_data[M32RXF_INSN__MAX];
 
 /* Commas between elements are contained in the macros.
    Some of these are conditionally compiled out.  */
@@ -210,7 +210,7 @@ m32rxf_init_idesc_table (SIM_CPU *cpu)
 {
   IDESC *id,*tabend;
   const struct insn_sem *t,*tend;
-  int tabsize = sizeof (m32rxf_insn_data) / sizeof (IDESC);
+  int tabsize = M32RXF_INSN__MAX;
   IDESC *table = m32rxf_insn_data;
 
   memset (table, 0, tabsize * sizeof (IDESC));
@@ -258,80 +258,80 @@ m32rxf_decode (SIM_CPU *current_cpu, IADDR pc,
       unsigned int val = (((insn >> 8) & (15 << 4)) | ((insn >> 4) & (15 << 0)));
       switch (val)
       {
-      case 0 : itype = M32RXF_INSN_SUBV;goto extract_sfmt_addv;
-      case 1 : itype = M32RXF_INSN_SUBX;goto extract_sfmt_addx;
-      case 2 : itype = M32RXF_INSN_SUB;goto extract_sfmt_add;
-      case 3 : itype = M32RXF_INSN_NEG;goto extract_sfmt_mv;
-      case 4 : itype = M32RXF_INSN_CMP;goto extract_sfmt_cmp;
-      case 5 : itype = M32RXF_INSN_CMPU;goto extract_sfmt_cmp;
-      case 6 : itype = M32RXF_INSN_CMPEQ;goto extract_sfmt_cmp;
+      case 0 : itype = M32RXF_INSN_SUBV; goto extract_sfmt_addv;
+      case 1 : itype = M32RXF_INSN_SUBX; goto extract_sfmt_addx;
+      case 2 : itype = M32RXF_INSN_SUB; goto extract_sfmt_add;
+      case 3 : itype = M32RXF_INSN_NEG; goto extract_sfmt_mv;
+      case 4 : itype = M32RXF_INSN_CMP; goto extract_sfmt_cmp;
+      case 5 : itype = M32RXF_INSN_CMPU; goto extract_sfmt_cmp;
+      case 6 : itype = M32RXF_INSN_CMPEQ; goto extract_sfmt_cmp;
       case 7 :
         {
           unsigned int val = (((insn >> 8) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RXF_INSN_CMPZ;goto extract_sfmt_cmpz;
-          case 3 : itype = M32RXF_INSN_PCMPBZ;goto extract_sfmt_cmpz;
+          case 0 : itype = M32RXF_INSN_CMPZ; goto extract_sfmt_cmpz;
+          case 3 : itype = M32RXF_INSN_PCMPBZ; goto extract_sfmt_cmpz;
           default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
-      case 8 : itype = M32RXF_INSN_ADDV;goto extract_sfmt_addv;
-      case 9 : itype = M32RXF_INSN_ADDX;goto extract_sfmt_addx;
-      case 10 : itype = M32RXF_INSN_ADD;goto extract_sfmt_add;
-      case 11 : itype = M32RXF_INSN_NOT;goto extract_sfmt_mv;
-      case 12 : itype = M32RXF_INSN_AND;goto extract_sfmt_add;
-      case 13 : itype = M32RXF_INSN_XOR;goto extract_sfmt_add;
-      case 14 : itype = M32RXF_INSN_OR;goto extract_sfmt_add;
-      case 16 : itype = M32RXF_INSN_SRL;goto extract_sfmt_add;
-      case 18 : itype = M32RXF_INSN_SRA;goto extract_sfmt_add;
-      case 20 : itype = M32RXF_INSN_SLL;goto extract_sfmt_add;
-      case 22 : itype = M32RXF_INSN_MUL;goto extract_sfmt_add;
-      case 24 : itype = M32RXF_INSN_MV;goto extract_sfmt_mv;
-      case 25 : itype = M32RXF_INSN_MVFC;goto extract_sfmt_mvfc;
-      case 26 : itype = M32RXF_INSN_MVTC;goto extract_sfmt_mvtc;
+      case 8 : itype = M32RXF_INSN_ADDV; goto extract_sfmt_addv;
+      case 9 : itype = M32RXF_INSN_ADDX; goto extract_sfmt_addx;
+      case 10 : itype = M32RXF_INSN_ADD; goto extract_sfmt_add;
+      case 11 : itype = M32RXF_INSN_NOT; goto extract_sfmt_mv;
+      case 12 : itype = M32RXF_INSN_AND; goto extract_sfmt_add;
+      case 13 : itype = M32RXF_INSN_XOR; goto extract_sfmt_add;
+      case 14 : itype = M32RXF_INSN_OR; goto extract_sfmt_add;
+      case 16 : itype = M32RXF_INSN_SRL; goto extract_sfmt_add;
+      case 18 : itype = M32RXF_INSN_SRA; goto extract_sfmt_add;
+      case 20 : itype = M32RXF_INSN_SLL; goto extract_sfmt_add;
+      case 22 : itype = M32RXF_INSN_MUL; goto extract_sfmt_add;
+      case 24 : itype = M32RXF_INSN_MV; goto extract_sfmt_mv;
+      case 25 : itype = M32RXF_INSN_MVFC; goto extract_sfmt_mvfc;
+      case 26 : itype = M32RXF_INSN_MVTC; goto extract_sfmt_mvtc;
       case 28 :
         {
           unsigned int val = (((insn >> 8) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RXF_INSN_JC;goto extract_sfmt_jc;
-          case 1 : itype = M32RXF_INSN_JNC;goto extract_sfmt_jc;
-          case 2 : itype = M32RXF_INSN_JL;goto extract_sfmt_jl;
-          case 3 : itype = M32RXF_INSN_JMP;goto extract_sfmt_jmp;
+          case 0 : itype = M32RXF_INSN_JC; goto extract_sfmt_jc;
+          case 1 : itype = M32RXF_INSN_JNC; goto extract_sfmt_jc;
+          case 2 : itype = M32RXF_INSN_JL; goto extract_sfmt_jl;
+          case 3 : itype = M32RXF_INSN_JMP; goto extract_sfmt_jmp;
           default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
-      case 29 : itype = M32RXF_INSN_RTE;goto extract_sfmt_rte;
-      case 31 : itype = M32RXF_INSN_TRAP;goto extract_sfmt_trap;
-      case 32 : itype = M32RXF_INSN_STB;goto extract_sfmt_stb;
-      case 34 : itype = M32RXF_INSN_STH;goto extract_sfmt_sth;
-      case 36 : itype = M32RXF_INSN_ST;goto extract_sfmt_st;
-      case 37 : itype = M32RXF_INSN_UNLOCK;goto extract_sfmt_unlock;
-      case 38 : itype = M32RXF_INSN_ST_PLUS;goto extract_sfmt_st_plus;
-      case 39 : itype = M32RXF_INSN_ST_MINUS;goto extract_sfmt_st_plus;
-      case 40 : itype = M32RXF_INSN_LDB;goto extract_sfmt_ldb;
-      case 41 : itype = M32RXF_INSN_LDUB;goto extract_sfmt_ldb;
-      case 42 : itype = M32RXF_INSN_LDH;goto extract_sfmt_ldh;
-      case 43 : itype = M32RXF_INSN_LDUH;goto extract_sfmt_ldh;
-      case 44 : itype = M32RXF_INSN_LD;goto extract_sfmt_ld;
-      case 45 : itype = M32RXF_INSN_LOCK;goto extract_sfmt_lock;
-      case 46 : itype = M32RXF_INSN_LD_PLUS;goto extract_sfmt_ld_plus;
+      case 29 : itype = M32RXF_INSN_RTE; goto extract_sfmt_rte;
+      case 31 : itype = M32RXF_INSN_TRAP; goto extract_sfmt_trap;
+      case 32 : itype = M32RXF_INSN_STB; goto extract_sfmt_stb;
+      case 34 : itype = M32RXF_INSN_STH; goto extract_sfmt_sth;
+      case 36 : itype = M32RXF_INSN_ST; goto extract_sfmt_st;
+      case 37 : itype = M32RXF_INSN_UNLOCK; goto extract_sfmt_unlock;
+      case 38 : itype = M32RXF_INSN_ST_PLUS; goto extract_sfmt_st_plus;
+      case 39 : itype = M32RXF_INSN_ST_MINUS; goto extract_sfmt_st_plus;
+      case 40 : itype = M32RXF_INSN_LDB; goto extract_sfmt_ldb;
+      case 41 : itype = M32RXF_INSN_LDUB; goto extract_sfmt_ldb;
+      case 42 : itype = M32RXF_INSN_LDH; goto extract_sfmt_ldh;
+      case 43 : itype = M32RXF_INSN_LDUH; goto extract_sfmt_ldh;
+      case 44 : itype = M32RXF_INSN_LD; goto extract_sfmt_ld;
+      case 45 : itype = M32RXF_INSN_LOCK; goto extract_sfmt_lock;
+      case 46 : itype = M32RXF_INSN_LD_PLUS; goto extract_sfmt_ld_plus;
       case 48 : /* fall through */
-      case 56 : itype = M32RXF_INSN_MULHI_A;goto extract_sfmt_mulhi_a;
+      case 56 : itype = M32RXF_INSN_MULHI_A; goto extract_sfmt_mulhi_a;
       case 49 : /* fall through */
-      case 57 : itype = M32RXF_INSN_MULLO_A;goto extract_sfmt_mulhi_a;
+      case 57 : itype = M32RXF_INSN_MULLO_A; goto extract_sfmt_mulhi_a;
       case 50 : /* fall through */
-      case 58 : itype = M32RXF_INSN_MULWHI_A;goto extract_sfmt_mulhi_a;
+      case 58 : itype = M32RXF_INSN_MULWHI_A; goto extract_sfmt_mulhi_a;
       case 51 : /* fall through */
-      case 59 : itype = M32RXF_INSN_MULWLO_A;goto extract_sfmt_mulhi_a;
+      case 59 : itype = M32RXF_INSN_MULWLO_A; goto extract_sfmt_mulhi_a;
       case 52 : /* fall through */
-      case 60 : itype = M32RXF_INSN_MACHI_A;goto extract_sfmt_machi_a;
+      case 60 : itype = M32RXF_INSN_MACHI_A; goto extract_sfmt_machi_a;
       case 53 : /* fall through */
-      case 61 : itype = M32RXF_INSN_MACLO_A;goto extract_sfmt_machi_a;
+      case 61 : itype = M32RXF_INSN_MACLO_A; goto extract_sfmt_machi_a;
       case 54 : /* fall through */
-      case 62 : itype = M32RXF_INSN_MACWHI_A;goto extract_sfmt_machi_a;
+      case 62 : itype = M32RXF_INSN_MACWHI_A; goto extract_sfmt_machi_a;
       case 55 : /* fall through */
-      case 63 : itype = M32RXF_INSN_MACWLO_A;goto extract_sfmt_machi_a;
+      case 63 : itype = M32RXF_INSN_MACWLO_A; goto extract_sfmt_machi_a;
       case 64 : /* fall through */
       case 65 : /* fall through */
       case 66 : /* fall through */
@@ -347,38 +347,38 @@ m32rxf_decode (SIM_CPU *current_cpu, IADDR pc,
       case 76 : /* fall through */
       case 77 : /* fall through */
       case 78 : /* fall through */
-      case 79 : itype = M32RXF_INSN_ADDI;goto extract_sfmt_addi;
+      case 79 : itype = M32RXF_INSN_ADDI; goto extract_sfmt_addi;
       case 80 : /* fall through */
-      case 81 : itype = M32RXF_INSN_SRLI;goto extract_sfmt_slli;
+      case 81 : itype = M32RXF_INSN_SRLI; goto extract_sfmt_slli;
       case 82 : /* fall through */
-      case 83 : itype = M32RXF_INSN_SRAI;goto extract_sfmt_slli;
+      case 83 : itype = M32RXF_INSN_SRAI; goto extract_sfmt_slli;
       case 84 : /* fall through */
-      case 85 : itype = M32RXF_INSN_SLLI;goto extract_sfmt_slli;
+      case 85 : itype = M32RXF_INSN_SLLI; goto extract_sfmt_slli;
       case 87 :
         {
           unsigned int val = (((insn >> 0) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RXF_INSN_MVTACHI_A;goto extract_sfmt_mvtachi_a;
-          case 1 : itype = M32RXF_INSN_MVTACLO_A;goto extract_sfmt_mvtachi_a;
+          case 0 : itype = M32RXF_INSN_MVTACHI_A; goto extract_sfmt_mvtachi_a;
+          case 1 : itype = M32RXF_INSN_MVTACLO_A; goto extract_sfmt_mvtachi_a;
           default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
-      case 88 : itype = M32RXF_INSN_RACH_DSI;goto extract_sfmt_rac_dsi;
-      case 89 : itype = M32RXF_INSN_RAC_DSI;goto extract_sfmt_rac_dsi;
-      case 90 : itype = M32RXF_INSN_MULWU1;goto extract_sfmt_mulwu1;
-      case 91 : itype = M32RXF_INSN_MACWU1;goto extract_sfmt_macwu1;
-      case 92 : itype = M32RXF_INSN_MACLH1;goto extract_sfmt_macwu1;
-      case 93 : itype = M32RXF_INSN_MSBLO;goto extract_sfmt_msblo;
-      case 94 : itype = M32RXF_INSN_SADD;goto extract_sfmt_sadd;
+      case 88 : itype = M32RXF_INSN_RACH_DSI; goto extract_sfmt_rac_dsi;
+      case 89 : itype = M32RXF_INSN_RAC_DSI; goto extract_sfmt_rac_dsi;
+      case 90 : itype = M32RXF_INSN_MULWU1; goto extract_sfmt_mulwu1;
+      case 91 : itype = M32RXF_INSN_MACWU1; goto extract_sfmt_macwu1;
+      case 92 : itype = M32RXF_INSN_MACLH1; goto extract_sfmt_macwu1;
+      case 93 : itype = M32RXF_INSN_MSBLO; goto extract_sfmt_msblo;
+      case 94 : itype = M32RXF_INSN_SADD; goto extract_sfmt_sadd;
       case 95 :
         {
           unsigned int val = (((insn >> 0) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RXF_INSN_MVFACHI_A;goto extract_sfmt_mvfachi_a;
-          case 1 : itype = M32RXF_INSN_MVFACLO_A;goto extract_sfmt_mvfachi_a;
-          case 2 : itype = M32RXF_INSN_MVFACMI_A;goto extract_sfmt_mvfachi_a;
+          case 0 : itype = M32RXF_INSN_MVFACHI_A; goto extract_sfmt_mvfachi_a;
+          case 1 : itype = M32RXF_INSN_MVFACLO_A; goto extract_sfmt_mvfachi_a;
+          case 2 : itype = M32RXF_INSN_MVFACMI_A; goto extract_sfmt_mvfachi_a;
           default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
@@ -397,21 +397,27 @@ m32rxf_decode (SIM_CPU *current_cpu, IADDR pc,
       case 108 : /* fall through */
       case 109 : /* fall through */
       case 110 : /* fall through */
-      case 111 : itype = M32RXF_INSN_LDI8;goto extract_sfmt_ldi8;
+      case 111 : itype = M32RXF_INSN_LDI8; goto extract_sfmt_ldi8;
       case 112 :
         {
-          unsigned int val = (((insn >> 8) & (15 << 0)));
+          unsigned int val = (((insn >> 7) & (15 << 1)) | ((insn >> 0) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RXF_INSN_NOP;goto extract_sfmt_nop;
-          case 4 : itype = M32RXF_INSN_SC;goto extract_sfmt_sc;
-          case 5 : itype = M32RXF_INSN_SNC;goto extract_sfmt_sc;
-          case 8 : itype = M32RXF_INSN_BCL8;goto extract_sfmt_bcl8;
-          case 9 : itype = M32RXF_INSN_BNCL8;goto extract_sfmt_bcl8;
-          case 12 : itype = M32RXF_INSN_BC8;goto extract_sfmt_bc8;
-          case 13 : itype = M32RXF_INSN_BNC8;goto extract_sfmt_bc8;
-          case 14 : itype = M32RXF_INSN_BL8;goto extract_sfmt_bl8;
-          case 15 : itype = M32RXF_INSN_BRA8;goto extract_sfmt_bra8;
+          case 0 : itype = M32RXF_INSN_NOP; goto extract_sfmt_nop;
+          case 9 : itype = M32RXF_INSN_SC; goto extract_sfmt_sc;
+          case 11 : itype = M32RXF_INSN_SNC; goto extract_sfmt_sc;
+          case 16 : /* fall through */
+          case 17 : itype = M32RXF_INSN_BCL8; goto extract_sfmt_bcl8;
+          case 18 : /* fall through */
+          case 19 : itype = M32RXF_INSN_BNCL8; goto extract_sfmt_bcl8;
+          case 24 : /* fall through */
+          case 25 : itype = M32RXF_INSN_BC8; goto extract_sfmt_bc8;
+          case 26 : /* fall through */
+          case 27 : itype = M32RXF_INSN_BNC8; goto extract_sfmt_bc8;
+          case 28 : /* fall through */
+          case 29 : itype = M32RXF_INSN_BL8; goto extract_sfmt_bl8;
+          case 30 : /* fall through */
+          case 31 : itype = M32RXF_INSN_BRA8; goto extract_sfmt_bra8;
           default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
@@ -434,67 +440,67 @@ m32rxf_decode (SIM_CPU *current_cpu, IADDR pc,
           unsigned int val = (((insn >> 8) & (7 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RXF_INSN_BCL8;goto extract_sfmt_bcl8;
-          case 1 : itype = M32RXF_INSN_BNCL8;goto extract_sfmt_bcl8;
-          case 4 : itype = M32RXF_INSN_BC8;goto extract_sfmt_bc8;
-          case 5 : itype = M32RXF_INSN_BNC8;goto extract_sfmt_bc8;
-          case 6 : itype = M32RXF_INSN_BL8;goto extract_sfmt_bl8;
-          case 7 : itype = M32RXF_INSN_BRA8;goto extract_sfmt_bra8;
+          case 0 : itype = M32RXF_INSN_BCL8; goto extract_sfmt_bcl8;
+          case 1 : itype = M32RXF_INSN_BNCL8; goto extract_sfmt_bcl8;
+          case 4 : itype = M32RXF_INSN_BC8; goto extract_sfmt_bc8;
+          case 5 : itype = M32RXF_INSN_BNC8; goto extract_sfmt_bc8;
+          case 6 : itype = M32RXF_INSN_BL8; goto extract_sfmt_bl8;
+          case 7 : itype = M32RXF_INSN_BRA8; goto extract_sfmt_bra8;
           default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
-      case 132 : itype = M32RXF_INSN_CMPI;goto extract_sfmt_cmpi;
-      case 133 : itype = M32RXF_INSN_CMPUI;goto extract_sfmt_cmpi;
+      case 132 : itype = M32RXF_INSN_CMPI; goto extract_sfmt_cmpi;
+      case 133 : itype = M32RXF_INSN_CMPUI; goto extract_sfmt_cmpi;
       case 134 :
         {
           unsigned int val = (((insn >> -8) & (3 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RXF_INSN_SAT;goto extract_sfmt_sat;
-          case 2 : itype = M32RXF_INSN_SATH;goto extract_sfmt_satb;
-          case 3 : itype = M32RXF_INSN_SATB;goto extract_sfmt_satb;
+          case 0 : itype = M32RXF_INSN_SAT; goto extract_sfmt_sat;
+          case 2 : itype = M32RXF_INSN_SATH; goto extract_sfmt_satb;
+          case 3 : itype = M32RXF_INSN_SATB; goto extract_sfmt_satb;
           default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
-      case 136 : itype = M32RXF_INSN_ADDV3;goto extract_sfmt_addv3;
-      case 138 : itype = M32RXF_INSN_ADD3;goto extract_sfmt_add3;
-      case 140 : itype = M32RXF_INSN_AND3;goto extract_sfmt_and3;
-      case 141 : itype = M32RXF_INSN_XOR3;goto extract_sfmt_and3;
-      case 142 : itype = M32RXF_INSN_OR3;goto extract_sfmt_or3;
+      case 136 : itype = M32RXF_INSN_ADDV3; goto extract_sfmt_addv3;
+      case 138 : itype = M32RXF_INSN_ADD3; goto extract_sfmt_add3;
+      case 140 : itype = M32RXF_INSN_AND3; goto extract_sfmt_and3;
+      case 141 : itype = M32RXF_INSN_XOR3; goto extract_sfmt_and3;
+      case 142 : itype = M32RXF_INSN_OR3; goto extract_sfmt_or3;
       case 144 :
         {
           unsigned int val = (((insn >> -12) & (1 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RXF_INSN_DIV;goto extract_sfmt_div;
-          case 1 : itype = M32RXF_INSN_DIVH;goto extract_sfmt_div;
+          case 0 : itype = M32RXF_INSN_DIV; goto extract_sfmt_div;
+          case 1 : itype = M32RXF_INSN_DIVH; goto extract_sfmt_div;
           default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
-      case 145 : itype = M32RXF_INSN_DIVU;goto extract_sfmt_div;
-      case 146 : itype = M32RXF_INSN_REM;goto extract_sfmt_div;
-      case 147 : itype = M32RXF_INSN_REMU;goto extract_sfmt_div;
-      case 152 : itype = M32RXF_INSN_SRL3;goto extract_sfmt_sll3;
-      case 154 : itype = M32RXF_INSN_SRA3;goto extract_sfmt_sll3;
-      case 156 : itype = M32RXF_INSN_SLL3;goto extract_sfmt_sll3;
-      case 159 : itype = M32RXF_INSN_LDI16;goto extract_sfmt_ldi16;
-      case 160 : itype = M32RXF_INSN_STB_D;goto extract_sfmt_stb_d;
-      case 162 : itype = M32RXF_INSN_STH_D;goto extract_sfmt_sth_d;
-      case 164 : itype = M32RXF_INSN_ST_D;goto extract_sfmt_st_d;
-      case 168 : itype = M32RXF_INSN_LDB_D;goto extract_sfmt_ldb_d;
-      case 169 : itype = M32RXF_INSN_LDUB_D;goto extract_sfmt_ldb_d;
-      case 170 : itype = M32RXF_INSN_LDH_D;goto extract_sfmt_ldh_d;
-      case 171 : itype = M32RXF_INSN_LDUH_D;goto extract_sfmt_ldh_d;
-      case 172 : itype = M32RXF_INSN_LD_D;goto extract_sfmt_ld_d;
-      case 176 : itype = M32RXF_INSN_BEQ;goto extract_sfmt_beq;
-      case 177 : itype = M32RXF_INSN_BNE;goto extract_sfmt_beq;
-      case 184 : itype = M32RXF_INSN_BEQZ;goto extract_sfmt_beqz;
-      case 185 : itype = M32RXF_INSN_BNEZ;goto extract_sfmt_beqz;
-      case 186 : itype = M32RXF_INSN_BLTZ;goto extract_sfmt_beqz;
-      case 187 : itype = M32RXF_INSN_BGEZ;goto extract_sfmt_beqz;
-      case 188 : itype = M32RXF_INSN_BLEZ;goto extract_sfmt_beqz;
-      case 189 : itype = M32RXF_INSN_BGTZ;goto extract_sfmt_beqz;
-      case 220 : itype = M32RXF_INSN_SETH;goto extract_sfmt_seth;
+      case 145 : itype = M32RXF_INSN_DIVU; goto extract_sfmt_div;
+      case 146 : itype = M32RXF_INSN_REM; goto extract_sfmt_div;
+      case 147 : itype = M32RXF_INSN_REMU; goto extract_sfmt_div;
+      case 152 : itype = M32RXF_INSN_SRL3; goto extract_sfmt_sll3;
+      case 154 : itype = M32RXF_INSN_SRA3; goto extract_sfmt_sll3;
+      case 156 : itype = M32RXF_INSN_SLL3; goto extract_sfmt_sll3;
+      case 159 : itype = M32RXF_INSN_LDI16; goto extract_sfmt_ldi16;
+      case 160 : itype = M32RXF_INSN_STB_D; goto extract_sfmt_stb_d;
+      case 162 : itype = M32RXF_INSN_STH_D; goto extract_sfmt_sth_d;
+      case 164 : itype = M32RXF_INSN_ST_D; goto extract_sfmt_st_d;
+      case 168 : itype = M32RXF_INSN_LDB_D; goto extract_sfmt_ldb_d;
+      case 169 : itype = M32RXF_INSN_LDUB_D; goto extract_sfmt_ldb_d;
+      case 170 : itype = M32RXF_INSN_LDH_D; goto extract_sfmt_ldh_d;
+      case 171 : itype = M32RXF_INSN_LDUH_D; goto extract_sfmt_ldh_d;
+      case 172 : itype = M32RXF_INSN_LD_D; goto extract_sfmt_ld_d;
+      case 176 : itype = M32RXF_INSN_BEQ; goto extract_sfmt_beq;
+      case 177 : itype = M32RXF_INSN_BNE; goto extract_sfmt_beq;
+      case 184 : itype = M32RXF_INSN_BEQZ; goto extract_sfmt_beqz;
+      case 185 : itype = M32RXF_INSN_BNEZ; goto extract_sfmt_beqz;
+      case 186 : itype = M32RXF_INSN_BLTZ; goto extract_sfmt_beqz;
+      case 187 : itype = M32RXF_INSN_BGEZ; goto extract_sfmt_beqz;
+      case 188 : itype = M32RXF_INSN_BLEZ; goto extract_sfmt_beqz;
+      case 189 : itype = M32RXF_INSN_BGTZ; goto extract_sfmt_beqz;
+      case 220 : itype = M32RXF_INSN_SETH; goto extract_sfmt_seth;
       case 224 : /* fall through */
       case 225 : /* fall through */
       case 226 : /* fall through */
@@ -510,7 +516,7 @@ m32rxf_decode (SIM_CPU *current_cpu, IADDR pc,
       case 236 : /* fall through */
       case 237 : /* fall through */
       case 238 : /* fall through */
-      case 239 : itype = M32RXF_INSN_LD24;goto extract_sfmt_ld24;
+      case 239 : itype = M32RXF_INSN_LD24; goto extract_sfmt_ld24;
       case 240 : /* fall through */
       case 241 : /* fall through */
       case 242 : /* fall through */
@@ -531,12 +537,12 @@ m32rxf_decode (SIM_CPU *current_cpu, IADDR pc,
           unsigned int val = (((insn >> 8) & (7 << 0)));
           switch (val)
           {
-          case 0 : itype = M32RXF_INSN_BCL24;goto extract_sfmt_bcl24;
-          case 1 : itype = M32RXF_INSN_BNCL24;goto extract_sfmt_bcl24;
-          case 4 : itype = M32RXF_INSN_BC24;goto extract_sfmt_bc24;
-          case 5 : itype = M32RXF_INSN_BNC24;goto extract_sfmt_bc24;
-          case 6 : itype = M32RXF_INSN_BL24;goto extract_sfmt_bl24;
-          case 7 : itype = M32RXF_INSN_BRA24;goto extract_sfmt_bra24;
+          case 0 : itype = M32RXF_INSN_BCL24; goto extract_sfmt_bcl24;
+          case 1 : itype = M32RXF_INSN_BNCL24; goto extract_sfmt_bcl24;
+          case 4 : itype = M32RXF_INSN_BC24; goto extract_sfmt_bc24;
+          case 5 : itype = M32RXF_INSN_BNC24; goto extract_sfmt_bc24;
+          case 6 : itype = M32RXF_INSN_BL24; goto extract_sfmt_bl24;
+          case 7 : itype = M32RXF_INSN_BRA24; goto extract_sfmt_bra24;
           default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty;
           }
         }
index 6394f03a84cace000a4afa92102e890875784bd9..0880199203d172cd56cb7c4d8619e8801e2dc354 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
@@ -103,7 +103,7 @@ typedef enum m32rxf_insn_type {
  , M32RXF_INSN_WRITE_SADD, M32RXF_INSN_PAR_MACWU1, M32RXF_INSN_WRITE_MACWU1, M32RXF_INSN_PAR_MSBLO
  , M32RXF_INSN_WRITE_MSBLO, M32RXF_INSN_PAR_MULWU1, M32RXF_INSN_WRITE_MULWU1, M32RXF_INSN_PAR_MACLH1
  , M32RXF_INSN_WRITE_MACLH1, M32RXF_INSN_PAR_SC, M32RXF_INSN_WRITE_SC, M32RXF_INSN_PAR_SNC
- , M32RXF_INSN_WRITE_SNC, M32RXF_INSN_MAX
+ , M32RXF_INSN_WRITE_SNC, M32RXF_INSN__MAX
 } M32RXF_INSN_TYPE;
 
 /* Enum declaration for semantic formats in cpu family m32rxf.  */
index 419e58133211949e37c01696206c9f94bb07b1e6..841026f4d9659253cc786e353b34d3fdd8e9a6ae 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
@@ -4148,7 +4148,7 @@ m32r_init_cpu (SIM_CPU *cpu)
   CPU_PC_FETCH (cpu) = m32rbf_h_pc_get;
   CPU_PC_STORE (cpu) = m32rbf_h_pc_set;
   CPU_GET_IDATA (cpu) = m32rbf_get_idata;
-  CPU_MAX_INSNS (cpu) = M32RBF_INSN_UNLOCK + 1;
+  CPU_MAX_INSNS (cpu) = M32RBF_INSN__MAX;
   CPU_INSN_NAME (cpu) = cgen_insn_name;
   CPU_FULL_ENGINE_FN (cpu) = m32rbf_engine_run_full;
 #if WITH_FAST
index bdcb93a4637993b5d5972bd6bc55d62430c68638..a4723a2e306a215124c1831218b6a26777113a96 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
@@ -2879,7 +2879,7 @@ m32rx_init_cpu (SIM_CPU *cpu)
   CPU_PC_FETCH (cpu) = m32rxf_h_pc_get;
   CPU_PC_STORE (cpu) = m32rxf_h_pc_set;
   CPU_GET_IDATA (cpu) = m32rxf_get_idata;
-  CPU_MAX_INSNS (cpu) = M32RXF_INSN_SNC + 1;
+  CPU_MAX_INSNS (cpu) = M32RXF_INSN__MAX;
   CPU_INSN_NAME (cpu) = cgen_insn_name;
   CPU_FULL_ENGINE_FN (cpu) = m32rxf_engine_run_full;
 #if WITH_FAST
index 2d5489cbedfd20aa366ce9b1b243adb884dddbd9..9d08e570a7eb38bdd0bff615741e809ddcbb45bf 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index 8a20cc1bda7cc36e63f27a9639abcfddf8d67fdd..73609335c5aac65a83dc3fb99b8f4ffee4f33b1c 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index 3cc95b08a31973890bf271756858a7b879c76d26..d9919dcc67d07cab9a992b8ece17ade800260ce8 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
index e211d7b678bda0ff2d7a49858cf92b724bb5f5f8..c92eb064c077d800600bbd169e2a8087e0dfd45b 100644 (file)
@@ -1,3 +1,7 @@
+2002-12-16  Chris Demetriou  <cgd@broadcom.com>
+
+        * tconfig.in: Include "gdb/callback.h" and "gdb/remote-sim.h".
+
 2002-07-30  Chris Demetriou  <cgd@broadcom.com>
 
        * mips.igen (do_load_double, do_store_double): New functions.
index d59147403189817e335e56431e683b855d76fea3..7cea8454fd0402591bb1f3d86f452e7510dcf836 100644 (file)
@@ -6,8 +6,8 @@
 
 /* FIXME: This is unnecessarily necessary: */
 #include "ansidecl.h"
-#include "callback.h"
-#include "remote-sim.h"
+#include "gdb/callback.h"
+#include "gdb/remote-sim.h"
 #include "sim-module.h"
 
 MODULE_INSTALL_FN dv_sockser_install;
index d4bec0b4a604eeaba62716a10601a08b0d3b6c3e..a53c8eb36fa26729fdf9934fa03d89e68527a2e6 100644 (file)
@@ -1,3 +1,8 @@
+2002-11-28  Andrew Cagney  <cagney@redhat.com>
+
+       * sim-main.h: Only include "idecode.h" once.
+       * Makefile.in (SIM_EXTRA_DEPS): Define.
+
 2002-06-16  Andrew Cagney  <ac131313@redhat.com>
 
        * configure: Regenerated to track ../common/aclocal.m4 changes.
index 1f493ec467dcc30edf5f64fccf45de95f1712303..fc055529ba07fa8f4efb94f994dfb46bfdf835ab 100644 (file)
@@ -44,6 +44,8 @@ WITH_COMMON_RUN_OBJS = nrun.o
 SIM_RUN_OBJS = $(@mn10300_common@_COMMON_RUN_OBJS)
 
 SIM_EXTRA_CLEAN = clean-extra
+# Extra dependencies for "sim-main.h"
+SIM_EXTRA_DEPS = mn10300_sim.h itable.h idecode.h
 
 # Select mn10300 support in nltvals.def.
 NL_TARGET = -DNL_TARGET_mn10300
index d0ff4e47325c43374ff7be0fd6b9f2518ba0e327..c13619e821533f8812ea6f2a454a8954399fdf8d 100644 (file)
@@ -42,7 +42,6 @@
 /* These are generated files.  */
 #include "itable.h"
 #include "idecode.h"
-#include "idecode.h"
 
 typedef instruction_address sim_cia;
 static const sim_cia null_cia = {0}; /* Dummy */
index 2053096ece54d9cf75960014cf399315c077d5a4..5510497a36955312ce25d377ab0d72af005059cd 100644 (file)
@@ -1,3 +1,8 @@
+2002-11-30  Andrew Cagney  <cagney@redhat.com>
+
+       * simops.c: Use int, 1, 0 instead of boolean, true and false.
+       * sim-main.h: Ditto.
+
 2002-09-27  Jim Wilson  <wilson@redhat.com>
 
        * simops.c (OP_E6077E0): And op1 with 7 after reading register, not
index a16ec00a699b88eac2ae6ecef00bc8db61739137..e9f7aadac203175004424ec617343364361e41c0 100644 (file)
@@ -374,14 +374,14 @@ extern void divun ( unsigned int       N,
                    unsigned long int  sfi,
                    unsigned32 /*unsigned long int*/ *  quotient_ptr,
                    unsigned32 /*unsigned long int*/ *  remainder_ptr,
-                   boolean *          overflow_ptr
+                   int *overflow_ptr
                    );
 extern void divn ( unsigned int       N,
                   unsigned long int  als,
                   unsigned long int  sfi,
                   signed32 /*signed long int*/ *  quotient_ptr,
                   signed32 /*signed long int*/ *  remainder_ptr,
-                  boolean *          overflow_ptr
+                  int *overflow_ptr
                   );
 extern int type1_regs[];
 extern int type2_regs[];
index 04045234629fe78e1b3fa436bfac03c7c3784a9c..fd0172ead78eea0de2c17aff6fd4c40e0e27c029 100644 (file)
@@ -329,7 +329,7 @@ Add32 (unsigned long a1, unsigned long a2, int * carry)
 }
 
 static void
-Multiply64 (boolean sign, unsigned long op0)
+Multiply64 (int sign, unsigned long op0)
 {
   unsigned long op1;
   unsigned long lo;
@@ -1911,7 +1911,7 @@ OP_22207E0 (void)
 {
   trace_input ("mulu", OP_REG_REG_REG, 0);
 
-  Multiply64 (false, State.regs[ OP[0] ]);
+  Multiply64 (0, State.regs[ OP[0] ]);
 
   trace_output (OP_REG_REG_REG);
 
@@ -1982,7 +1982,7 @@ divun
   unsigned long int  sfi,
   unsigned32 /*unsigned long int*/ *  quotient_ptr,
   unsigned32 /*unsigned long int*/ *  remainder_ptr,
-  boolean *          overflow_ptr
+  int *          overflow_ptr
 )
 {
   unsigned long   ald = sfi >> (N - 1);
@@ -2056,7 +2056,7 @@ divn
   unsigned long int  sfi,
   signed32 /*signed long int*/ *  quotient_ptr,
   signed32 /*signed long int*/ *  remainder_ptr,
-  boolean *          overflow_ptr
+  int *          overflow_ptr
 )
 {
   unsigned long          ald = (signed long) sfi >> (N - 1);
@@ -2155,7 +2155,7 @@ OP_1C207E0 (void)
   unsigned32 /*unsigned long int*/  remainder;
   unsigned long int  divide_by;
   unsigned long int  divide_this;
-  boolean            overflow = false;
+  int            overflow = 0;
   unsigned int       imm5;
       
   trace_input ("sdivun", OP_IMM_REG_REG_REG, 0);
@@ -2190,7 +2190,7 @@ OP_1C007E0 (void)
   signed32 /*signed long int*/  remainder;
   signed long int  divide_by;
   signed long int  divide_this;
-  boolean          overflow = false;
+  int          overflow = 0;
   unsigned int     imm5;
       
   trace_input ("sdivn", OP_IMM_REG_REG_REG, 0);
@@ -2225,7 +2225,7 @@ OP_18207E0 (void)
   unsigned32 /*unsigned long int*/  remainder;
   unsigned long int  divide_by;
   unsigned long int  divide_this;
-  boolean            overflow = false;
+  int            overflow = 0;
   unsigned int       imm5;
       
   trace_input ("sdivhun", OP_IMM_REG_REG_REG, 0);
@@ -2260,7 +2260,7 @@ OP_18007E0 (void)
   signed32 /*signed long int*/  remainder;
   signed long int  divide_by;
   signed long int  divide_this;
-  boolean          overflow = false;
+  int          overflow = 0;
   unsigned int     imm5;
       
   trace_input ("sdivhn", OP_IMM_REG_REG_REG, 0);
@@ -2295,7 +2295,7 @@ OP_2C207E0 (void)
   unsigned long int remainder;
   unsigned long int divide_by;
   unsigned long int divide_this;
-  boolean           overflow = false;
+  int           overflow = 0;
   
   trace_input ("divu", OP_REG_REG_REG, 0);
   
@@ -2306,7 +2306,7 @@ OP_2C207E0 (void)
   
   if (divide_by == 0)
     {
-      overflow = true;
+      overflow = 1;
       divide_by  = 1;
     }
   
@@ -2333,7 +2333,7 @@ OP_2C007E0 (void)
   signed long int remainder;
   signed long int divide_by;
   signed long int divide_this;
-  boolean         overflow = false;
+  int         overflow = 0;
   
   trace_input ("div", OP_REG_REG_REG, 0);
   
@@ -2344,7 +2344,7 @@ OP_2C007E0 (void)
   
   if (divide_by == 0 || (divide_by == -1 && divide_this == (1 << 31)))
     {
-      overflow  = true;
+      overflow  = 1;
       divide_by = 1;
     }
   
@@ -2371,7 +2371,7 @@ OP_28207E0 (void)
   unsigned long int remainder;
   unsigned long int divide_by;
   unsigned long int divide_this;
-  boolean           overflow = false;
+  int           overflow = 0;
   
   trace_input ("divhu", OP_REG_REG_REG, 0);
   
@@ -2382,7 +2382,7 @@ OP_28207E0 (void)
   
   if (divide_by == 0)
     {
-      overflow = true;
+      overflow = 1;
       divide_by  = 1;
     }
   
@@ -2409,7 +2409,7 @@ OP_28007E0 (void)
   signed long int remainder;
   signed long int divide_by;
   signed long int divide_this;
-  boolean         overflow = false;
+  int         overflow = 0;
   
   trace_input ("divh", OP_REG_REG_REG, 0);
   
@@ -2420,7 +2420,7 @@ OP_28007E0 (void)
   
   if (divide_by == 0 || (divide_by == -1 && divide_this == (1 << 31)))
     {
-      overflow = true;
+      overflow = 1;
       divide_by  = 1;
     }
   
@@ -2445,7 +2445,7 @@ OP_24207E0 (void)
 {
   trace_input ("mulu", OP_IMM_REG_REG, 0);
 
-  Multiply64 (false, (OP[3] & 0x1f) | ((OP[3] >> 13) & 0x1e0));
+  Multiply64 (0, (OP[3] & 0x1f) | ((OP[3] >> 13) & 0x1e0));
 
   trace_output (OP_IMM_REG_REG);
 
@@ -2458,7 +2458,7 @@ OP_24007E0 (void)
 {
   trace_input ("mul", OP_IMM_REG_REG, 0);
 
-  Multiply64 (true, SEXT9 ((OP[3] & 0x1f) | ((OP[3] >> 13) & 0x1e0)));
+  Multiply64 (1, SEXT9 ((OP[3] & 0x1f) | ((OP[3] >> 13) & 0x1e0)));
 
   trace_output (OP_IMM_REG_REG);
 
@@ -2608,7 +2608,7 @@ OP_22007E0 (void)
 {
   trace_input ("mul", OP_REG_REG_REG, 0);
 
-  Multiply64 (true, State.regs[ OP[0] ]);
+  Multiply64 (1, State.regs[ OP[0] ]);
 
   trace_output (OP_REG_REG_REG);